| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view |
| | | class="u-notice-bar" |
| | | v-if="show" |
| | | :style="[{ |
| | | backgroundColor: bgColor |
| | | }, $u.addStyle(customStyle)]" |
| | | > |
| | | <template v-if="direction === 'column' || (direction === 'row' && step)"> |
| | | <u-column-notice |
| | | :color="color" |
| | | :bgColor="bgColor" |
| | | :text="text" |
| | | :mode="mode" |
| | | :step="step" |
| | | :icon="icon" |
| | | :disable-touch="disableTouch" |
| | | :fontSize="fontSize" |
| | | :duration="duration" |
| | | @close="close" |
| | | @click="click" |
| | | ></u-column-notice> |
| | | </template> |
| | | <template v-else> |
| | | <u-row-notice |
| | | :color="color" |
| | | :bgColor="bgColor" |
| | | :text="text" |
| | | :mode="mode" |
| | | :fontSize="fontSize" |
| | | :speed="speed" |
| | | :url="url" |
| | | :linkType="linkType" |
| | | :icon="icon" |
| | | @close="close" |
| | | @click="click" |
| | | ></u-row-notice> |
| | | </template> |
| | | </view> |
| | | </template> |
| | | <script> |
| | | import props from './props.js'; |
| | | |
| | | /** |
| | | * noticeBar æ»å¨éç¥ |
| | | * @description 该ç»ä»¶ç¨äºæ»å¨éååºæ¯ï¼æå¤ç§æ¨¡å¼å¯ä¾éæ© |
| | | * @tutorial https://www.uviewui.com/components/noticeBar.html |
| | | * @property {Array | String} text æ¾ç¤ºçå
å®¹ï¼æ°ç» |
| | | * @property {String} direction é忻卿¨¡å¼ï¼row-æ¨ªåæ»å¨ï¼column-ç«åæ»å¨ ( é»è®¤ 'row' ) |
| | | * @property {Boolean} step direction = rowæ¶ï¼æ¯å¦ä½¿ç¨æ¥è¿å½¢å¼æ»å¨ ( é»è®¤ false ) |
| | | * @property {String} icon æ¯å¦æ¾ç¤ºå·¦ä¾§çé³é徿 ( é»è®¤ 'volume' ) |
| | | * @property {String} mode é忍¡å¼ï¼link-æ¾ç¤ºå³ç®å¤´ï¼closable-æ¾ç¤ºå³ä¾§å
³é徿 |
| | | * @property {String} color æåé¢è²ï¼å徿 ä¹ä¼ä½¿ç¨æåé¢è² ( é»è®¤ '#f9ae3d' ) |
| | | * @property {String} bgColor èæ¯é¢è² ( é»è®¤ '#fdf6ec' ) |
| | | * @property {String | Number} speed æ°´å¹³æ»å¨æ¶çæ»å¨é度ï¼å³æ¯ç§æ»å¨å¤å°px(px)ï¼è¿æå©äºæ§å¶æåæ 论å¤å°æ¶ï¼é½è½æä¸ä¸ªæå®çé度 ( é»è®¤ 80 ) |
| | | * @property {String | Number} fontSize åä½å¤§å° ( é»è®¤ 14 ) |
| | | * @property {String | Number} duration æ»å¨ä¸ä¸ªå¨æçæ¶é´é¿ï¼åä½ms ( é»è®¤ 2000 ) |
| | | * @property {Boolean} disableTouch æ¯å¦ç¦æ¢ç¨ææ»å¨åæ¢ ç®åHX2.6.11ï¼åªæ¯æApp 2.5.5+ãH5 2.5.5+ãæ¯ä»å®å°ç¨åºãåèè·³å¨å°ç¨åºï¼é»è®¤34ï¼ ( é»è®¤ true ) |
| | | * @property {String} url 跳转ç页é¢è·¯å¾ |
| | | * @property {String} linkType 页é¢è·³è½¬çç±»å ( é»è®¤ navigateTo ) |
| | | * @property {Object} customStyle å®ä¹éè¦ç¨å°çå¤é¨æ ·å¼ |
| | | * |
| | | * @event {Function} click ç¹å»éåæå触å |
| | | * @event {Function} close ç¹å»å³ä¾§å
³é徿 触å |
| | | * @example <u-notice-bar :more-icon="true" :list="list"></u-notice-bar> |
| | | */ |
| | | export default { |
| | | name: "u-notice-bar", |
| | | mixins: [uni.$u.mpMixin, uni.$u.mixin,props], |
| | | data() { |
| | | return { |
| | | show: true |
| | | } |
| | | }, |
| | | methods: { |
| | | // ç¹å»éåæ |
| | | click(index) { |
| | | this.$emit('click', index) |
| | | if (this.url && this.linkType) { |
| | | // æ¤æ¹æ³åå¨mixinä¸ï¼å¦å¤è·³è½¬çurlålinkTypeåæ°ä¹å¨mixinçpropsä¸ |
| | | this.openPage() |
| | | } |
| | | }, |
| | | // ç¹å»å
³éæé® |
| | | close() { |
| | | this.show = false |
| | | this.$emit('close') |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "../../libs/css/components.scss"; |
| | | |
| | | .u-notice-bar { |
| | | overflow: hidden; |
| | | padding: 9px 12px; |
| | | flex: 1; |
| | | } |
| | | </style> |