<template> <view class="uni-section" nvue> <view v-if="type" class="uni-section__head"> <view :class="type" class="uni-section__head-tag" /> </view> <view class="uni-section__content"> <text :class="{'distraction':!subTitle}" class="uni-section__content-title">{{ title }}</text> <text v-if="subTitle" class="uni-section__content-sub">{{ subTitle }}</text> </view> <slot /> </view> </template> <script> /** * Section 标题栏 * @description 标题栏 * @property {String} type = [line|circle] 标题装饰类型 * @value line 竖线 * @value circle 圆形 * @property {String} title 主标题 * @property {String} subTitle 副标题 */ export default { name: 'UniSection', props: { type: { type: String, default: '' }, title: { type: String, default: '' }, subTitle: { type: String, default: '' } }, data() { return {} }, watch: { title(newVal) { if (uni.report && newVal !== '') { uni.report('title', newVal) } } }, methods: { onClick() { this.$emit('click') } } } </script> <style lang="scss" scoped> .uni-section { position: relative; /* #ifndef APP-NVUE */ display: flex; /* #endif */ margin-top: 10px; flex-direction: row; align-items: center; padding: 0 10px; height: 50px; background-color: $uni-bg-color-grey; /* #ifdef APP-NVUE */ // border-bottom-color: $uni-border-color; // border-bottom-style: solid; // border-bottom-width: 0.5px; /* #endif */ font-weight: normal; } /* #ifndef APP-NVUE */ // .uni-section:after { // position: absolute; // bottom: 0; // right: 0; // left: 0; // height: 1px; // content: ''; // -webkit-transform: scaleY(.5); // transform: scaleY(.5); // background-color: $uni-border-color; // } /* #endif */ .uni-section__head { flex-direction: row; justify-content: center; align-items: center; margin-right: 10px; } .line { height: 15px; background-color: $uni-text-color-disable; border-radius: 5px; width: 3px; } .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; background-color: $uni-text-color-disable; } .uni-section__content { flex-direction: column; flex: 1; color: $uni-text-color; } .uni-section__content-title { font-size: $uni-font-size-base; color: $uni-text-color; } .distraction { flex-direction: row; align-items: center; } .uni-section__content-sub { font-size: $uni-font-size-sm; color: $uni-text-color-grey; } </style>