¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="uni-section"> |
| | | <view class="uni-section-header" @click="onClick"> |
| | | <view class="uni-section-header__decoration" v-if="type" :class="type" /> |
| | | <slot v-else name="decoration"></slot> |
| | | |
| | | <view class="uni-section-header__content"> |
| | | <text :style="{'font-size':titleFontSize,'color':titleColor}" class="uni-section__content-title" :class="{'distraction':!subTitle}">{{ title }}</text> |
| | | <text v-if="subTitle" :style="{'font-size':subTitleFontSize,'color':subTitleColor}" class="uni-section-header__content-sub">{{ subTitle }}</text> |
| | | </view> |
| | | |
| | | <view class="uni-section-header__slot-right"> |
| | | <slot name="right"></slot> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="uni-section-content" :style="{padding: _padding}"> |
| | | <slot /> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | /** |
| | | * Section æ 颿 |
| | | * @description æ 颿 |
| | | * @property {String} type = [line|circle|square] æ é¢è£
饰类å |
| | | * @value line ç«çº¿ |
| | | * @value circle åå½¢ |
| | | * @value square æ£æ¹å½¢ |
| | | * @property {String} title 主æ é¢ |
| | | * @property {String} titleFontSize 主æ é¢åä½å¤§å° |
| | | * @property {String} titleColor 主æ é¢åä½é¢è² |
| | | * @property {String} subTitle 坿 é¢ |
| | | * @property {String} subTitleFontSize 坿 é¢åä½å¤§å° |
| | | * @property {String} subTitleColor 坿 é¢åä½é¢è² |
| | | * @property {String} padding é»è®¤ææ§½ padding |
| | | */ |
| | | |
| | | export default { |
| | | name: 'UniSection', |
| | | emits:['click'], |
| | | props: { |
| | | type: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | title: { |
| | | type: String, |
| | | required: true, |
| | | default: '' |
| | | }, |
| | | titleFontSize: { |
| | | type: String, |
| | | default: '14px' |
| | | }, |
| | | titleColor:{ |
| | | type: String, |
| | | default: '#333' |
| | | }, |
| | | subTitle: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | subTitleFontSize: { |
| | | type: String, |
| | | default: '12px' |
| | | }, |
| | | subTitleColor: { |
| | | type: String, |
| | | default: '#999' |
| | | }, |
| | | padding: { |
| | | type: [Boolean, String], |
| | | default: false |
| | | } |
| | | }, |
| | | computed:{ |
| | | _padding(){ |
| | | if(typeof this.padding === 'string'){ |
| | | return this.padding |
| | | } |
| | | |
| | | return this.padding?'10px':'' |
| | | } |
| | | }, |
| | | watch: { |
| | | title(newVal) { |
| | | if (uni.report && newVal !== '') { |
| | | uni.report('title', newVal) |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | onClick() { |
| | | this.$emit('click') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" > |
| | | $uni-primary: #2979ff !default; |
| | | |
| | | .uni-section { |
| | | background-color: #fff; |
| | | .uni-section-header { |
| | | position: relative; |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: row; |
| | | align-items: center; |
| | | padding: 12px 10px; |
| | | font-weight: normal; |
| | | |
| | | &__decoration{ |
| | | margin-right: 6px; |
| | | background-color: $uni-primary; |
| | | &.line { |
| | | width: 4px; |
| | | height: 12px; |
| | | border-radius: 10px; |
| | | } |
| | | |
| | | &.circle { |
| | | width: 8px; |
| | | height: 8px; |
| | | border-top-right-radius: 50px; |
| | | border-top-left-radius: 50px; |
| | | border-bottom-left-radius: 50px; |
| | | border-bottom-right-radius: 50px; |
| | | } |
| | | |
| | | &.square { |
| | | width: 8px; |
| | | height: 8px; |
| | | } |
| | | } |
| | | |
| | | &__content { |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: column; |
| | | flex: 1; |
| | | color: #333; |
| | | |
| | | .distraction { |
| | | flex-direction: row; |
| | | align-items: center; |
| | | } |
| | | &-sub { |
| | | margin-top: 2px; |
| | | } |
| | | } |
| | | |
| | | &__slot-right{ |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | |
| | | .uni-section-content{ |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | </style> |