|
@@ -1,105 +1,111 @@
|
|
<template>
|
|
<template>
|
|
- <el-row>
|
|
|
|
- <el-form-item label="控件栅格">
|
|
|
|
- <el-slider v-model="activeData.__config__.span" :max="24" :min="6" show-stops :step="2" show-tooltip />
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="展示文本">
|
|
|
|
- <el-input :value="activeData.__slot__.default" @input="onDefaultValueInput" placeholder="显示在分割线上的文字" />
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="模式">
|
|
|
|
- <el-radio-group v-model="activeData.__config__.type" size="mini">
|
|
|
|
- <el-radio-button label="0">系统</el-radio-button>
|
|
|
|
- <el-radio-button label="1">自定义</el-radio-button>
|
|
|
|
- </el-radio-group>
|
|
|
|
- </el-form-item>
|
|
|
|
-
|
|
|
|
- <div v-show="activeData.__config__.type == '0'">
|
|
|
|
- <el-form-item label="模板列表">
|
|
|
|
- <el-select v-model="activeData.__config__.svgModel" placeholder="请选择">
|
|
|
|
- <el-option v-for="item in svgList" :key="item.value" :value="item.value" :label="item.label">
|
|
|
|
- <div v-if="item.value == '1'">
|
|
|
|
- <!-- <svg-divider1 :text="activeData.__slot__.default" :bgColor="activeData.__config__.bgColor"></svg-divider1> -->
|
|
|
|
- </div>
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
|
|
+ <div>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-form-item label="控件栅格">
|
|
|
|
+ <el-slider v-model="activeData.__config__.span" :max="24" :min="6" show-stops :step="2" show-tooltip />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="背景颜色">
|
|
|
|
- <el-color-picker v-model="activeData.__config__.bgColor" show-alpha @change="onBgColorChange"></el-color-picker>
|
|
|
|
|
|
+ <el-form-item label="展示文本">
|
|
|
|
+ <el-input :value="activeData.__slot__.default" @input="onDefaultValueInput" placeholder="显示在分割线上的文字" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="文字颜色">
|
|
|
|
- <el-color-picker v-model="activeData.__config__.fontStyle.color" show-alpha @change="onColorChange($event, 'color')"></el-color-picker>
|
|
|
|
|
|
+ <el-form-item label="模式">
|
|
|
|
+ <el-radio-group v-model="activeData.__config__.type" size="mini">
|
|
|
|
+ <el-radio-button label="0">系统</el-radio-button>
|
|
|
|
+ <el-radio-button label="1">自定义</el-radio-button>
|
|
|
|
+ </el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <!-- <el-form-item label="文字加粗">
|
|
|
|
- <el-switch v-model="activeData.__config__.fontStyle.weight" @change="onColorChange($event, 'weight')"></el-switch>
|
|
|
|
- </el-form-item> -->
|
|
|
|
- <el-form-item label="文字大小">
|
|
|
|
- <el-input-number v-model="activeData.__config__.fontStyle.size" :min="10" :max="40" @change="onColorChange($event, 'size')"></el-input-number>
|
|
|
|
- </el-form-item>
|
|
|
|
- <!-- <el-form-item label="文字间隔">
|
|
|
|
- <el-input-number v-model="activeData.__config__.fontStyle.spacing" :min="0" :max="100" @change="onColorChange($event, 'spacing')"></el-input-number>
|
|
|
|
- </el-form-item> -->
|
|
|
|
- </div>
|
|
|
|
- <div v-show="activeData.__config__.type == '1'">
|
|
|
|
- <!-- <img :src="'https://windata.platomix.net/uploads/owteeh2//2024//3//0404f0ef-9397-4771-ac42-9b48e527ecf1.svg'" alt="" /> -->
|
|
|
|
- <el-form-item label="上传文件">
|
|
|
|
- <el-upload :action="define.comUploadUrl" :headers="uploadHeaders" :on-success="handleSuccess" :show-file-list="false" accept="SVG/*" list-type="picture-card" :limit="1" class="upload-btn">
|
|
|
|
- <div v-if="activeData.__config__.svgUrl != ''">
|
|
|
|
- <img style="width: 148px" :src="define.comUrl + '/' + activeData.__config__.svgUrl" alt="" />
|
|
|
|
- </div>
|
|
|
|
- <i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
|
- </el-upload>
|
|
|
|
- </el-form-item>
|
|
|
|
- </div>
|
|
|
|
|
|
|
|
- <!-- <el-form-item label="文字位置">
|
|
|
|
- <el-form-item label-width="40px" label="上">
|
|
|
|
- <el-input-number v-model="activeData.__config__.positionStyle.top" size="mini" :min="-20" :max="100" @change="onPositionChange($event, 'top')"></el-input-number>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label-width="40px" label="下">
|
|
|
|
- <el-input-number v-model="activeData.__config__.positionStyle.bottom" size="mini" :min="-20" :max="100" @change="onPositionChange($event, 'bottom')"></el-input-number>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label-width="40px" label="左">
|
|
|
|
- <el-input-number v-model="activeData.__config__.positionStyle.left" size="mini" :min="-20" :max="100" @change="onPositionChange($event, 'left')"></el-input-number>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label-width="40px" label="右">
|
|
|
|
- <el-input-number v-model="activeData.__config__.positionStyle.right" size="mini" :min="-20" :max="100" @change="onPositionChange($event, 'right')"></el-input-number>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-form-item> -->
|
|
|
|
- </el-row>
|
|
|
|
|
|
+ <div v-show="activeData.__config__.type == '0'">
|
|
|
|
+ <el-form-item label="模板列表">
|
|
|
|
+ <el-button type="primary" size="mini" plain @click="show = true">选择模板</el-button>
|
|
|
|
+ <div>
|
|
|
|
+ <svg-divider :svgStyle="{ ...svgStyle, ...{ svgModel: activeModel } }"></svg-divider>
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="背景颜色">
|
|
|
|
+ <el-color-picker v-model="activeData.__config__.bgColor" show-alpha @change="onBgColorChange"></el-color-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="文字颜色">
|
|
|
|
+ <el-color-picker v-model="activeData.__config__.fontStyle.color" show-alpha @change="onColorChange($event, 'color')"></el-color-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="文字大小">
|
|
|
|
+ <el-input-number v-model="activeData.__config__.fontStyle.size" :min="10" :max="40" @change="onColorChange($event, 'size')"></el-input-number>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-show="activeData.__config__.type == '1'">
|
|
|
|
+ <el-form-item label="上传文件(请上传1440*60的svg文件)">
|
|
|
|
+ <el-upload :action="define.comUploadUrl" :headers="uploadHeaders" :on-success="handleSuccess" :show-file-list="false" accept="SVG/*" list-type="picture-card" :limit="1" class="upload-btn">
|
|
|
|
+ <div v-if="activeData.__config__.svgUrl != ''">
|
|
|
|
+ <img style="width: 148px" :src="define.comUrl + '/' + activeData.__config__.svgUrl" alt="" />
|
|
|
|
+ </div>
|
|
|
|
+ </el-upload>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </div>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-dialog title="分割线模板" :visible.sync="show" width="70%" append-to-body modal-append-to-body>
|
|
|
|
+ <div class="svgBody" v-if="show">
|
|
|
|
+ <div class="svg-list" :class="item.value == activeModel ? 'active' : ''" v-for="(item, index) in svgList" :key="index" @click="checkSvgModel(item.value)">
|
|
|
|
+ <svg-divider :svgStyle="{ ...svgStyle, ...{ svgModel: item.value } }"></svg-divider>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ </div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
import comMixin from './mixin'
|
|
import comMixin from './mixin'
|
|
import { getToken } from '@/utils/auth'
|
|
import { getToken } from '@/utils/auth'
|
|
-import svgDivider1 from '@/components/Generator/components/NewDivider/divider1.vue'
|
|
|
|
-// import svgDivider2 from '@/components/Generator/components/NewDivider/divider2.vue'
|
|
|
|
-// import svgDivider3 from '@/components/Generator/components/NewDivider/divider3.vue'
|
|
|
|
|
|
+import svgDivider from '@/components/Generator/components/NewDivider/divider.vue'
|
|
export default {
|
|
export default {
|
|
props: ['activeData'],
|
|
props: ['activeData'],
|
|
mixins: [comMixin],
|
|
mixins: [comMixin],
|
|
components: {
|
|
components: {
|
|
- svgDivider1
|
|
|
|
- // svgDivider2,
|
|
|
|
- // svgDivider3
|
|
|
|
|
|
+ svgDivider
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ activeModel: '1',
|
|
uploadHeaders: { 'Blade-Auth': 'bearer ' + getToken() },
|
|
uploadHeaders: { 'Blade-Auth': 'bearer ' + getToken() },
|
|
|
|
+ show: false,
|
|
svgList: [
|
|
svgList: [
|
|
{
|
|
{
|
|
value: '1',
|
|
value: '1',
|
|
label: '模板1'
|
|
label: '模板1'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: '2',
|
|
|
|
+ label: '模板2'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: '3',
|
|
|
|
+ label: '模板3'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: '4',
|
|
|
|
+ label: '模板4'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: '5',
|
|
|
|
+ label: '模板5'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: '6',
|
|
|
|
+ label: '模板6'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: '7',
|
|
|
|
+ label: '模板7'
|
|
}
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- mounted() {
|
|
|
|
- console.log(this.define.comUrl)
|
|
|
|
-
|
|
|
|
- // let mySvg = document.getElementById('my-svg')
|
|
|
|
- // let svg = mySvg.getElementsByTagName('svg')
|
|
|
|
- // console.log(svg.style)
|
|
|
|
- // let path = svg.getElementsByTagName('path')
|
|
|
|
- // console.log(path)
|
|
|
|
|
|
+ computed: {
|
|
|
|
+ svgStyle() {
|
|
|
|
+ return {
|
|
|
|
+ bgColor: this.activeData.__config__.bgColor,
|
|
|
|
+ text: this.activeData.__slot__.default,
|
|
|
|
+ color: this.activeData.__config__.fontStyle.color,
|
|
|
|
+ size: this.activeData.__config__.fontStyle.size
|
|
|
|
+ }
|
|
|
|
+ }
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
handleSuccess(res) {
|
|
handleSuccess(res) {
|
|
@@ -124,8 +130,31 @@ export default {
|
|
},
|
|
},
|
|
onPositionChange(val, type) {
|
|
onPositionChange(val, type) {
|
|
this.$set(this.activeData.__config__.positionStyle, type, val)
|
|
this.$set(this.activeData.__config__.positionStyle, type, val)
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ checkSvgModel(val) {
|
|
|
|
+ this.activeModel = val
|
|
|
|
+ this.$set(this.activeData.__config__, 'svgModel', val)
|
|
|
|
+ this.show = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
-<style lang="scss"></style>
|
|
|
|
|
|
+<style lang="scss">
|
|
|
|
+.svgBody {
|
|
|
|
+ padding: 0 20px;
|
|
|
|
+ .svg-list {
|
|
|
|
+ margin-top: 20px;
|
|
|
|
+ border: 1px solid #ebeef5;
|
|
|
|
+ padding: 15px;
|
|
|
|
+ border-radius: 10px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ &:hover {
|
|
|
|
+ border: 1px solid #409eff;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .active {
|
|
|
|
+ border: 1px solid #409eff;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</style>
|