|                                                                                                                                                                |  | <template>	<view		class="u-notice"		@tap="clickHandler"	>		<slot name="icon">			<view				class="u-notice__left-icon"				v-if="icon"			>				<u-icon					:name="icon"					:color="color"					size="19"				></u-icon>			</view>		</slot>		<swiper			:disable-touch="disableTouch"			:vertical="step ? false : true"			circular			:interval="duration"			:autoplay="true"			class="u-notice__swiper"			@change="noticeChange"		>			<swiper-item				v-for="(item, index) in text"				:key="index"				class="u-notice__swiper__item"			>				<text					class="u-notice__swiper__item__text u-line-1"					:style="[textStyle]"				>{{ item }}</text>			</swiper-item>		</swiper>		<view			class="u-notice__right-icon"			v-if="['link', 'closable'].includes(mode)"		>			<u-icon				v-if="mode === 'link'"				name="arrow-right"				:size="17"				:color="color"			></u-icon>			<u-icon				v-if="mode === 'closable'"				name="close"				:size="16"				:color="color"				@click="close"			></u-icon>		</view>	</view></template>
<script>	import props from './props.js';	/**	 * ColumnNotice 滚动通知中的垂直滚动 内部组件	 * @description 该组件用于滚动通告场景,是其中的垂直滚动方式	 * @tutorial https://www.uviewui.com/components/noticeBar.html
	 * @property {Array}			text 			显示的内容,字符串	 * @property {String}			icon 			是否显示左侧的音量图标 ( 默认 'volume' )	 * @property {String}			mode 			通告模式,link-显示右箭头,closable-显示右侧关闭图标	 * @property {String}			color 			文字颜色,各图标也会使用文字颜色 ( 默认 '#f9ae3d' )	 * @property {String}			bgColor 		背景颜色 ( 默认 '#fdf6ec' )	 * @property {String | Number}	fontSize		字体大小,单位px  ( 默认 14 )	 * @property {String | Number}	speed			水平滚动时的滚动速度,即每秒滚动多少px(rpx),这有利于控制文字无论多少时,都能有一个恒定的速度 ( 默认 80 )	 * @property {Boolean}			step			direction = row时,是否使用步进形式滚动 ( 默认 false )	 * @property {String | Number}	duration		滚动一个周期的时间长,单位ms ( 默认 1500 )	 * @property {Boolean}			disableTouch	是否禁止用手滑动切换   目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序 ( 默认 true )	 * @example 	 */	export default {		mixins: [uni.$u.mpMixin, uni.$u.mixin,props],		watch: {			text: {				immediate: true,				handler(newValue, oldValue) {					if(!uni.$u.test.array(newValue)) {						uni.$u.error('noticebar组件direction为column时,要求text参数为数组形式')					}				}			}		},		computed: {			// 文字内容的样式
			textStyle() {				let style = {}				style.color = this.color				style.fontSize = uni.$u.addUnit(this.fontSize)				return style			},			// 垂直或者水平滚动
			vertical() {				if (this.mode == 'horizontal') return false				else return true			},		},		data() {			return {				index:0			}		},		methods: {			noticeChange(e){				this.index = e.detail.current			},			// 点击通告栏
			clickHandler() {				this.$emit('click', this.index)			},			// 点击关闭按钮
			close() {				this.$emit('close')			}		}	};</script>
<style lang="scss" scoped>	@import "../../libs/css/components.scss";
	.u-notice {		@include flex;		align-items: center;		justify-content: space-between;
		&__left-icon {			align-items: center;			margin-right: 5px;		}
		&__right-icon {			margin-left: 5px;			align-items: center;		}
		&__swiper {			height: 16px;			@include flex;			align-items: center;			flex: 1;
			&__item {				@include flex;				align-items: center;				overflow: hidden;
				&__text {					font-size: 14px;					color: $u-warning;				}			}		}	}</style>
 |