123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- <template>
- <view class="uni-title__box" :style="{'align-items':textAlign}">
- <text class="uni-title__base" :class="['uni-'+type]" :style="{'color':color}">{{title}}</text>
- </view>
- </template>
- <script>
- /**
- * Title 章节标题
- * @description 章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题
- * @tutorial https://ext.dcloud.net.cn/plugin?id=1066
- * @property {String} type = [h1|h2|h3|h4|h5] 标题类型
- * @value h1 一级标题
- * @value h2 二级标题
- * @value h3 三级标题
- * @value h4 四级标题
- * @value h5 五级标题
- * @property {String} title 章节标题内容
- * @property {String} align = [left|center|right] 对齐方式
- * @value left 做对齐
- * @value center 居中对齐
- * @value right 右对齐
- * @property {String} color 字体颜色
- * @property {Boolean} stat = [true|false] 是否开启统计功能呢,如不填写type值,默认为开启,填写 type 属性,默认为关闭
- */
- export default {
- name:"UniTitle",
- props: {
- type: {
- type: String,
- default: ''
- },
- title: {
- type: String,
- default: ''
- },
- align: {
- type: String,
- default: 'left'
- },
- color: {
- type: String,
- default: '#333333'
- },
- stat: {
- type: [Boolean, String],
- default: ''
- }
- },
- data() {
- return {
- };
- },
- computed: {
- textAlign() {
- let align = 'center';
- switch (this.align) {
- case 'left':
- align = 'flex-start'
- break;
- case 'center':
- align = 'center'
- break;
- case 'right':
- align = 'flex-end'
- break;
- }
- return align
- }
- },
- watch: {
- title(newVal) {
- if (this.isOpenStat()) {
- // 上报数据
- if (uni.report) {
- uni.report('title', this.title)
- }
- }
- }
- },
- mounted() {
- if (this.isOpenStat()) {
- // 上报数据
- if (uni.report) {
- uni.report('title', this.title)
- }
- }
- },
- methods: {
- isOpenStat() {
- if (this.stat === '') {
- this.isStat = false
- }
- let stat_type = (typeof(this.stat) === 'boolean' && this.stat) || (typeof(this.stat) === 'string' && this.stat !==
- '')
- if (this.type === "") {
- this.isStat = true
- if (this.stat.toString() === 'false') {
- this.isStat = false
- }
- }
- if (this.type !== '') {
- this.isStat = true
- if (stat_type) {
- this.isStat = true
- } else {
- this.isStat = false
- }
- }
- return this.isStat
- }
- }
- }
- </script>
- <style scoped>
- /* .uni-title {
- } */
- .uni-title__box {
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- flex-direction: column;
- align-items: flex-start;
- justify-content: center;
- padding: 8px 0;
- flex: 1;
- }
- .uni-title__base {
- font-size: 15px;
- color: #333;
- font-weight: 500;
- }
- .uni-h1 {
- font-size: 20px;
- color: #333;
- font-weight: bold;
- }
- .uni-h2 {
- font-size: 18px;
- color: #333;
- font-weight: bold;
- }
- .uni-h3 {
- font-size: 16px;
- color: #333;
- font-weight: bold;
- /* font-weight: 400; */
- }
- .uni-h4 {
- font-size: 14px;
- color: #333;
- font-weight: bold;
- /* font-weight: 300; */
- }
- .uni-h5 {
- font-size: 12px;
- color: #333;
- font-weight: bold;
- /* font-weight: 200; */
- }
- </style>
|