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