You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
< 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 {
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 : 8 px 0 ;
flex : 1 ;
}
. uni - title _ _base {
font - size : 15 px ;
color : # 333 ;
font - weight : 500 ;
}
. uni - h1 {
font - size : 20 px ;
color : # 333 ;
font - weight : bold ;
}
. uni - h2 {
font - size : 18 px ;
color : # 333 ;
font - weight : bold ;
}
. uni - h3 {
font - size : 16 px ;
color : # 333 ;
font - weight : bold ;
/* font-weight: 400; */
}
. uni - h4 {
font - size : 14 px ;
color : # 333 ;
font - weight : bold ;
/* font-weight: 300; */
}
. uni - h5 {
font - size : 12 px ;
color : # 333 ;
font - weight : bold ;
/* font-weight: 200; */
}
< / style >