|
|
@ -1,6 +1,6 @@ |
|
|
|
<template> |
|
|
|
<div class="boardPreview" ref="compBox"> |
|
|
|
<div class="boardBox" :style="boardStyle"> |
|
|
|
<div class="boardBox" :style="boardStyle" v-if="isReady"> |
|
|
|
<p class="boardTxt" v-for="item,index in contentArr" :key="index" :style="boardTxtStyle" v-html="item" v-if="(index + 1) <= lineTotal"> |
|
|
|
</p> |
|
|
|
</div> |
|
|
@ -11,6 +11,7 @@ export default { |
|
|
|
name:"BoardPreview", |
|
|
|
data(){ |
|
|
|
return { |
|
|
|
isReady: false, |
|
|
|
boardStyle:null, |
|
|
|
boardTxtStyle:null, |
|
|
|
contentArr:{ |
|
|
@ -53,21 +54,28 @@ export default { |
|
|
|
methods:{ |
|
|
|
setStyle() { |
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
|
|
let boxW = this.$refs["compBox"].clientWidth; |
|
|
|
let boxH = this.$refs["compBox"].clientHeight; |
|
|
|
let conW = this.tpl.displayAreaWidth; |
|
|
|
let conH = this.tpl.displayAreaHeight; |
|
|
|
let arr = this.boardWH.split("*"); |
|
|
|
let scale = 1; |
|
|
|
if (conW / conH > boxW / boxH) { |
|
|
|
scale = boxW / conW; |
|
|
|
if (boxH > 20) { //判断是否设置了显示高度,判断>0即可,20是为了兼容误差 |
|
|
|
if (arr[0] / arr[1] > boxW / boxH) { |
|
|
|
scale = boxW / arr[0]; |
|
|
|
} else { |
|
|
|
scale = boxH / conH; |
|
|
|
scale = boxH / arr[1]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (arr[0] > boxW) { |
|
|
|
scale = boxW / arr[0]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
this.boardStyle = { |
|
|
|
width: `${conW * scale}px`, |
|
|
|
height: `${conH * scale}px`, |
|
|
|
width: `${arr[0] * scale}px`, |
|
|
|
height: `${arr[1] * scale}px`, |
|
|
|
"background-color":`${this.tpl.backgroundColor}px`, |
|
|
|
"align-items" : ['flex-start', 'flex-end', 'center'][this.tpl.verticalAlignment] |
|
|
|
"align-items" : ['flex-start', 'flex-end', 'center'][this.tpl.verticalAlignment] //模板的字段为为formatStyle |
|
|
|
} |
|
|
|
let fontSize = 0; |
|
|
|
if (_.isString(this.tpl.fontSize)) { |
|
|
@ -76,12 +84,14 @@ export default { |
|
|
|
fontSize = this.tpl.fontSize; |
|
|
|
} |
|
|
|
this.boardTxtStyle = { |
|
|
|
"color": "#" + this.tpl.foregroundColor, |
|
|
|
"color": "#" + this.tpl.foregroundColor, //模板的字段为fontColor |
|
|
|
"font-size": `${fontSize*scale}px`, |
|
|
|
"font-family": this.fontTypeDic[this.tpl.font || '3'], |
|
|
|
"font-family": this.fontTypeDic[this.tpl.font || '3'], //模板的字段为fontType |
|
|
|
"min-height": `${fontSize * scale}px` |
|
|
|
} |
|
|
|
this.lineTotal = Math.floor(conH / fontSize); |
|
|
|
this.lineTotal = Math.floor(arr[1] / fontSize); |
|
|
|
this.isReady = true; |
|
|
|
|
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|