You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

166 lines
4.1 KiB

<template>
<!-- 标题 -->
<view class="title-box acea-row row-between row-middle" :style="[...boxStyle]" @click="goPage">
<view class="acea-row row-middle" >
<view :style="[...titleStyle]">{{ titleTxt }}</view>
<view class="ml6" :style="[...titleFuStyle]">{{ titleFuTxt }}</view>
</view>
<view v-if="!selectShow" :style="[...titleRightStyle]">{{ titleRightTxt }}<text :style="[...titleRightStyle]" class="iconfont icon-xiangyou"></text></view>
</view>
</template>
<script>
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
export default {
name: 'titles',
props: {
dataConfig: {
type: Object,
default: () => {}
},
},
computed: {
//最外层盒子的样式
boxStyle() {
return [{
'border-radius': 2*this.dataConfig.bgTopStyle.val +
'rpx' +
' ' +
2*this.dataConfig.bgTopStyle.val +
'rpx' +
' ' +
2*this.dataConfig.bgDownStyle.val +
'rpx' +
' ' +
2*this.dataConfig.bgDownStyle.val +
'rpx',
},
{
'background-image': this.selectStyle ?
`linear-gradient(to right,${this.dataConfig.bgColor.color[0].item}, ${this.dataConfig.bgColor.color[1].item})` :
`url(${this.bgImgUrl})`,
},
{
margin: 2*this.dataConfig.mbConfig.val + 'rpx' + ' ' + 2*this.dataConfig.lrConfig.val + 'rpx' + ' ' +
0
},
{
padding: 2*this.dataConfig.upConfig.val + 'rpx' + ' ' + '20rpx' + ' ' + 2*this.dataConfig.downConfig
.val + 'rpx'
},
];
},
titleStyle() {
return [{
'font-weight': this.dataConfig.textStyle.list[this.dataConfig.textStyle.tabVal].style,
},
{
'font-style': this.dataConfig.textStyle.list[this.dataConfig.textStyle.tabVal].style
},
{
fontSize: 2*this.dataConfig.fontSize.val + 'rpx',
},
{
color: this.dataConfig.fontColor.color[0].item
},
];
},
titleFuStyle() {
return [{
fontSize: 2*this.dataConfig.fontFuSize.val + 'rpx',
},
{
color: this.dataConfig.fontFuColor.color[0].item
},
];
},
titleRightStyle() {
return [{
fontSize: 2*this.dataConfig.fontRightSize.val + 'rpx',
},
{
color: this.dataConfig.fontRightColor.color[0].item
},
];
},
},
data() {
return {
configObj: null,
titleTxt: '',
titleFuTxt: '',
titleRightTxt: '',
link: '',
txtPosition: '',
txtStyle: '',
fontSize: 0,
mTOP: 0,
titleColor: '',
themeColor: '',
prConfig: 0,
bgStyle: 0,
pageData: {},
selectShow: '',
selectStyle: '',
bgImgUrl: '',
};
},
created() {
this.setConfig()
},
methods: {
setConfig(data) {
this.configObj = this.data;
this.titleTxt = this.dataConfig.titleConfig.val;
this.titleFuTxt = this.dataConfig.titleFuConfig.val;
this.titleRightTxt = this.dataConfig.titleRightConfig.val;
this.link = this.dataConfig.linkConfig.val;
this.bgImgUrl = this.dataConfig.bgImg.url;
this.selectShow = this.dataConfig.selectShow.tabVal;
this.selectStyle = this.dataConfig.selectStyle.tabVal;
},
goPage() {
this.$util.navigateTo(this.dataConfig.linkConfig.val)
}
}
}
</script>
<style scoped lang="scss">
.title-box{
background-repeat: no-repeat;
object-fit: contain;
}
.title {
font-size: 32rpx;
color: #000;
text-align: center;
&.left {
text-align: left;
}
&.right {
text-align: right;
}
&.blod {
font-weight: bold;
}
&.italics {
font-style: italic;
}
}
.ml6 {
margin-left: 12rpx;
}
</style>