| <template> | 
|     <view | 
|         class="u-divider" | 
|         :style="[$u.addStyle(customStyle)]" | 
|         @tap="click" | 
|     > | 
|         <u-line | 
|             :color="lineColor" | 
|             :customStyle="leftLineStyle" | 
|             :hairline="hairline" | 
|             :dashed="dashed" | 
|         ></u-line> | 
|         <text | 
|             v-if="dot" | 
|             class="u-divider__dot" | 
|         >●</text> | 
|         <text | 
|             v-else-if="text" | 
|             class="u-divider__text" | 
|             :style="[textStyle]" | 
|         >{{text}}</text> | 
|         <u-line | 
|             :color="lineColor" | 
|             :customStyle="rightLineStyle" | 
|             :hairline="hairline" | 
|             :dashed="dashed" | 
|         ></u-line> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     import props from './props.js'; | 
|     /** | 
|      * divider 分割线 | 
|      * @description 区隔内容的分割线,一般用于页面底部"没有更多"的提示。 | 
|      * @tutorial https://www.uviewui.com/components/divider.html | 
|      * @property {Boolean}            dashed            是否虚线 (默认 false ) | 
|      * @property {Boolean}            hairline        是否细线 (默认  true ) | 
|      * @property {Boolean}            dot                是否以点替代文字,优先于text字段起作用 (默认 false ) | 
|      * @property {String}            textPosition    内容文本的位置,left-左边,center-中间,right-右边 (默认 'center' ) | 
|      * @property {String | Number}    text            文本内容 | 
|      * @property {String | Number}    textSize        文本大小 (默认 14) | 
|      * @property {String}            textColor        文本颜色 (默认 '#909399' ) | 
|      * @property {String}            lineColor        线条颜色 (默认 '#dcdfe6' ) | 
|      * @property {Object}            customStyle        定义需要用到的外部样式 | 
|      * | 
|      * @event {Function}    click    divider组件被点击时触发 | 
|      * @example <u-divider :color="color">锦瑟无端五十弦</u-divider> | 
|      */ | 
|     export default { | 
|         name:'u-divider', | 
|         mixins: [uni.$u.mpMixin, uni.$u.mixin,props], | 
|         computed: { | 
|             textStyle() { | 
|                 const style = {} | 
|                 style.fontSize = uni.$u.addUnit(this.textSize) | 
|                 style.color = this.textColor | 
|                 return style | 
|             }, | 
|             // 左边线条的的样式 | 
|             leftLineStyle() { | 
|                 const style = {} | 
|                 // 如果是在左边,设置左边的宽度为固定值 | 
|                 if (this.textPosition === 'left') { | 
|                     style.width = '80rpx' | 
|                 } else { | 
|                     style.flex = 1 | 
|                 } | 
|                 return style | 
|             }, | 
|             // 右边线条的的样式 | 
|             rightLineStyle() { | 
|                 const style = {} | 
|                 // 如果是在右边,设置右边的宽度为固定值 | 
|                 if (this.textPosition === 'right') { | 
|                     style.width = '80rpx' | 
|                 } else { | 
|                     style.flex = 1 | 
|                 } | 
|                 return style | 
|             } | 
|         }, | 
|         methods: { | 
|             // divider组件被点击时触发 | 
|             click() { | 
|                 this.$emit('click'); | 
|             } | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
|     @import '../../libs/css/components.scss'; | 
|     $u-divider-margin:15px 0 !default; | 
|     $u-divider-text-margin:0 15px !default; | 
|     $u-divider-dot-font-size:12px !default; | 
|     $u-divider-dot-margin:0 12px !default; | 
|     $u-divider-dot-color: #c0c4cc !default; | 
|   | 
|     .u-divider { | 
|         @include flex; | 
|         flex-direction: row; | 
|         align-items: center; | 
|         margin: $u-divider-margin; | 
|   | 
|         &__text { | 
|             margin: $u-divider-text-margin; | 
|         } | 
|   | 
|         &__dot { | 
|             font-size: $u-divider-dot-font-size; | 
|             margin: $u-divider-dot-margin; | 
|             color: $u-divider-dot-color; | 
|         } | 
|     } | 
| </style> |