<template>
|
<div
|
style="width: 100%;height: 100%;object-fit: cover"
|
class="bs-design-wrap"
|
:id="'border'+ config.code"
|
:style="{
|
opacity: opacity,
|
borderImageSlice:`${borderImageArray[0]} ${borderImageArray[1]} ${borderImageArray[2]} ${borderImageArray[3]} fill`,
|
borderImageWidth:`${borderImageArray[0]}px ${borderImageArray[1]}px ${borderImageArray[2]}px ${borderImageArray[3]}px`,
|
}"
|
>
|
</div>
|
</template>
|
<script>
|
import { refreshComponentMixin } from 'data-room-ui/js/mixins/refreshComponent'
|
import { getFileUrl } from 'data-room-ui/js/utils/file'
|
export default {
|
name: 'Border14',
|
components: {
|
},
|
mixins: [refreshComponentMixin],
|
props: {
|
id:{
|
type: String,
|
default: 'name'
|
},
|
// 卡片的属性
|
config: {
|
type: Object,
|
default: () => ({})
|
}
|
},
|
data () {
|
return {
|
borderWidth: 0,
|
borderHeight: 0
|
}
|
},
|
computed: {
|
url () {
|
return require('data-room-ui/BorderComponents/GcBorder16/component.png')
|
},
|
opacity () {
|
return this.config.border.opacity || 100
|
},
|
borderImageArray () {
|
const borderArr = this.config.border.borderArray ? this.config.border.borderArray
|
: [10, 10, 10, 10]
|
const arr = []
|
arr[0] = borderArr[0] * this.borderHeight / 100
|
arr[1] = borderArr[1] * this.borderWidth / 100
|
arr[2] = borderArr[2] * this.borderHeight / 100
|
arr[3] = borderArr[3] * this.borderWidth / 100
|
return arr
|
}
|
},
|
watch: {
|
'config.border.imgUrl': {
|
handler (val) {
|
if(val){
|
let ur=val
|
if(!val.startsWith('http')){
|
ur = getFileUrl(val)
|
}
|
const a =document.getElementById('border'+ this.config.code)
|
a.style['border-image-source']=`url(${ur})`
|
}else{
|
const a =document.getElementById('border'+ this.config.code)
|
a.style['border-image-source']=`url(${this.url})`
|
}
|
}
|
}
|
},
|
mounted () {
|
// 获取边框大小
|
const element = document.querySelector('.bs-design-wrap')
|
this.borderWidth = element.offsetWidth
|
this.borderHeight = element.offsetHeight
|
if(this.config.border.imgUrl){
|
let ur=this.config.border.imgUrl
|
if(!this.config.border.imgUrl.startsWith('http')){
|
ur = getFileUrl(this.config.border.imgUrl)
|
}
|
const a =document.getElementById('border'+ this.config.code)
|
a.style['border-image-source']=`url(${ur})`
|
}else{
|
const a =document.getElementById('border'+ this.config.code)
|
a.style['border-image-source']=`url(${this.url})`
|
}
|
},
|
methods: {
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
.bs-design-wrap {
|
// border-image-source:url(component.png);
|
width: 100%;
|
height: 100%;
|
position: absolute;
|
}
|
|
/*滚动条样式*/
|
::v-deep ::-webkit-scrollbar {
|
width: 4px;
|
border-radius: 4px;
|
height: 4px;
|
}
|
|
::v-deep ::-webkit-scrollbar-thumb {
|
background: #dddddd !important;
|
border-radius: 10px;
|
}
|
</style>
|