| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | 
							- <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>
 
 
  |