|
|
@ -1,7 +1,7 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="right-board"> |
|
|
<div class="right-board"> |
|
|
<el-tabs v-model="currentTab" class="center-tabs"> |
|
|
<el-tabs v-model="currentTab" class="center-tabs"> |
|
|
<el-tab-pane label="组件属性" name="field" /> |
|
|
<el-tab-pane label="组件属性" name="field"/> |
|
|
</el-tabs> |
|
|
</el-tabs> |
|
|
<div class="field-box"> |
|
|
<div class="field-box"> |
|
|
<el-scrollbar class="right-scrollbar"> |
|
|
<el-scrollbar class="right-scrollbar"> |
|
|
@ -21,42 +21,45 @@ |
|
|
:label="item.__config__.label" |
|
|
:label="item.__config__.label" |
|
|
:value="item.__config__.tagIcon" |
|
|
:value="item.__config__.tagIcon" |
|
|
> |
|
|
> |
|
|
<svg-icon :name="item.__config__.tagIcon" class="node-icon" /> |
|
|
<svg-icon :name="item.__config__.tagIcon" class="node-icon"/> |
|
|
<!-- <svg-icon class="node-icon" :icon-class="item.__config__.tagIcon" />--> |
|
|
<!-- <svg-icon class="node-icon" :icon-class="item.__config__.tagIcon" />--> |
|
|
<span> {{ item.__config__.label }}{{item.__config__.tagIcon}}</span> |
|
|
<span> {{ item.__config__.label }}{{ item.__config__.tagIcon }}</span> |
|
|
|
|
|
|
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-option-group> |
|
|
</el-option-group> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<!-- <el-form-item v-if="activeData.__vModel__!==undefined" label="字段名">--> |
|
|
<!-- <el-form-item v-if="activeData.__vModel__!==undefined" label="字段名">--> |
|
|
<!-- <el-input v-model="activeData.__vModel__" placeholder="请输入字段名(v-model)" />--> |
|
|
<!-- <el-input v-model="activeData.__vModel__" placeholder="请输入字段名(v-model)" />--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </el-form-item>--> |
|
|
<el-form-item v-if="activeData.__config__.componentName!==undefined" label="组件名"> |
|
|
<el-form-item v-if="activeData.__config__.componentName!==undefined" label="组件名"> |
|
|
{{ activeData.__config__.componentName }} |
|
|
{{ activeData.__config__.componentName }} |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.label!==undefined" label="标题"> |
|
|
<el-form-item v-if="activeData.__config__.label!==undefined" label="标题"> |
|
|
<el-input v-model="activeData.__config__.label" placeholder="请输入标题" @input="changeRenderKey" /> |
|
|
<el-input v-model="activeData.__config__.label" placeholder="请输入标题" @input="changeRenderKey"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.placeholder!==undefined" label="占位提示"> |
|
|
<el-form-item v-if="activeData.placeholder!==undefined" label="占位提示"> |
|
|
<el-input v-model="activeData.placeholder" placeholder="请输入占位提示" @input="changeRenderKey" /> |
|
|
<el-input v-model="activeData.placeholder" placeholder="请输入占位提示" @input="changeRenderKey"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['start-placeholder']!==undefined" label="开始占位"> |
|
|
<el-form-item v-if="activeData['start-placeholder']!==undefined" label="开始占位"> |
|
|
<el-input v-model="activeData['start-placeholder']" placeholder="请输入占位提示" /> |
|
|
<el-input v-model="activeData['start-placeholder']" placeholder="请输入占位提示"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['end-placeholder']!==undefined" label="结束占位"> |
|
|
<el-form-item v-if="activeData['end-placeholder']!==undefined" label="结束占位"> |
|
|
<el-input v-model="activeData['end-placeholder']" placeholder="请输入占位提示" /> |
|
|
<el-input v-model="activeData['end-placeholder']" placeholder="请输入占位提示"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.span!==undefined" label="表单栅格"> |
|
|
<el-form-item v-if="activeData.__config__.span!==undefined" label="表单栅格"> |
|
|
<el-slider v-model="activeData.__config__.span" :max="24" :min="1" :marks="{12:''}" @change="spanChange" /> |
|
|
<el-slider v-model="activeData.__config__.span" :max="24" :min="1" :marks="{12:''}" |
|
|
|
|
|
@change="spanChange"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.layout==='rowFormItem'&&activeData.gutter!==undefined" label="栅格间隔"> |
|
|
<el-form-item v-if="activeData.__config__.layout==='rowFormItem'&&activeData.gutter!==undefined" |
|
|
<el-input-number v-model="activeData.gutter" :min="0" placeholder="栅格间隔" /> |
|
|
label="栅格间隔"> |
|
|
|
|
|
<el-input-number v-model="activeData.gutter" :min="0" placeholder="栅格间隔"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.layout==='rowFormItem'&&activeData.type!==undefined" label="布局模式"> |
|
|
<el-form-item v-if="activeData.__config__.layout==='rowFormItem'&&activeData.type!==undefined" |
|
|
|
|
|
label="布局模式"> |
|
|
<el-radio-group v-model="activeData.type"> |
|
|
<el-radio-group v-model="activeData.type"> |
|
|
<el-radio-button label="default" /> |
|
|
<el-radio-button label="default"/> |
|
|
<el-radio-button label="flex" /> |
|
|
<el-radio-button label="flex"/> |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.justify!==undefined&&activeData.type==='flex'" label="水平排列"> |
|
|
<el-form-item v-if="activeData.justify!==undefined&&activeData.type==='flex'" label="水平排列"> |
|
|
@ -71,16 +74,17 @@ |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.align!==undefined&&activeData.type==='flex'" label="垂直排列"> |
|
|
<el-form-item v-if="activeData.align!==undefined&&activeData.type==='flex'" label="垂直排列"> |
|
|
<el-radio-group v-model="activeData.align"> |
|
|
<el-radio-group v-model="activeData.align"> |
|
|
<el-radio-button label="top" /> |
|
|
<el-radio-button label="top"/> |
|
|
<el-radio-button label="middle" /> |
|
|
<el-radio-button label="middle"/> |
|
|
<el-radio-button label="bottom" /> |
|
|
<el-radio-button label="bottom"/> |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.labelWidth!==undefined" label="标签宽度"> |
|
|
<el-form-item v-if="activeData.__config__.labelWidth!==undefined" label="标签宽度"> |
|
|
<el-input v-model.number="activeData.__config__.labelWidth" type="number" placeholder="请输入标签宽度" /> |
|
|
<el-input v-model.number="activeData.__config__.labelWidth" type="number" |
|
|
|
|
|
placeholder="请输入标签宽度"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.style&&activeData.style.width!==undefined" label="组件宽度"> |
|
|
<el-form-item v-if="activeData.style&&activeData.style.width!==undefined" label="组件宽度"> |
|
|
<el-input v-model="activeData.style.width" placeholder="请输入组件宽度" clearable /> |
|
|
<el-input v-model="activeData.style.width" placeholder="请输入组件宽度" clearable/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__vModel__!==undefined" label="默认值"> |
|
|
<el-form-item v-if="activeData.__vModel__!==undefined" label="默认值"> |
|
|
<el-input |
|
|
<el-input |
|
|
@ -106,10 +110,10 @@ |
|
|
/> |
|
|
/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__slot__&&activeData.__slot__.prepend!==undefined" label="前缀"> |
|
|
<el-form-item v-if="activeData.__slot__&&activeData.__slot__.prepend!==undefined" label="前缀"> |
|
|
<el-input v-model="activeData.__slot__.prepend" placeholder="请输入前缀" /> |
|
|
<el-input v-model="activeData.__slot__.prepend" placeholder="请输入前缀"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__slot__&&activeData.__slot__.append!==undefined" label="后缀"> |
|
|
<el-form-item v-if="activeData.__slot__&&activeData.__slot__.append!==undefined" label="后缀"> |
|
|
<el-input v-model="activeData.__slot__.append" placeholder="请输入后缀" /> |
|
|
<el-input v-model="activeData.__slot__.append" placeholder="请输入后缀"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['prefix-icon']!==undefined" label="前图标"> |
|
|
<el-form-item v-if="activeData['prefix-icon']!==undefined" label="前图标"> |
|
|
<el-input v-model="activeData['prefix-icon']" placeholder="请输入前图标名称"> |
|
|
<el-input v-model="activeData['prefix-icon']" placeholder="请输入前图标名称"> |
|
|
@ -136,28 +140,28 @@ |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-cascader'" label="选项分隔符"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-cascader'" label="选项分隔符"> |
|
|
<el-input v-model="activeData.separator" placeholder="请输入选项分隔符" /> |
|
|
<el-input v-model="activeData.separator" placeholder="请输入选项分隔符"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.autosize !== undefined" label="最小行数"> |
|
|
<el-form-item v-if="activeData.autosize !== undefined" label="最小行数"> |
|
|
<el-input-number v-model="activeData.autosize.minRows" :min="1" placeholder="最小行数" /> |
|
|
<el-input-number v-model="activeData.autosize.minRows" :min="1" placeholder="最小行数"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.autosize !== undefined" label="最大行数"> |
|
|
<el-form-item v-if="activeData.autosize !== undefined" label="最大行数"> |
|
|
<el-input-number v-model="activeData.autosize.maxRows" :min="1" placeholder="最大行数" /> |
|
|
<el-input-number v-model="activeData.autosize.maxRows" :min="1" placeholder="最大行数"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="isShowMin" label="最小值"> |
|
|
<el-form-item v-if="isShowMin" label="最小值"> |
|
|
<el-input-number v-model="activeData.min" placeholder="最小值" /> |
|
|
<el-input-number v-model="activeData.min" placeholder="最小值"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="isShowMax" label="最大值"> |
|
|
<el-form-item v-if="isShowMax" label="最大值"> |
|
|
<el-input-number v-model="activeData.max" placeholder="最大值" /> |
|
|
<el-input-number v-model="activeData.max" placeholder="最大值"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.height!==undefined" label="组件高度"> |
|
|
<el-form-item v-if="activeData.height!==undefined" label="组件高度"> |
|
|
<el-input-number v-model="activeData.height" placeholder="高度" @input="changeRenderKey" /> |
|
|
<el-input-number v-model="activeData.height" placeholder="高度" @input="changeRenderKey"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="isShowStep" label="步长"> |
|
|
<el-form-item v-if="isShowStep" label="步长"> |
|
|
<el-input-number v-model="activeData.step" placeholder="步数" /> |
|
|
<el-input-number v-model="activeData.step" placeholder="步数"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-input-number'" label="精度"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-input-number'" label="精度"> |
|
|
<el-input-number v-model="activeData.precision" :min="0" placeholder="精度" /> |
|
|
<el-input-number v-model="activeData.precision" :min="0" placeholder="精度"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-input-number'" label="按钮位置"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-input-number'" label="按钮位置"> |
|
|
<el-radio-group v-model="activeData['controls-position']"> |
|
|
<el-radio-group v-model="activeData['controls-position']"> |
|
|
@ -177,10 +181,10 @@ |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['active-text'] !== undefined" label="开启提示"> |
|
|
<el-form-item v-if="activeData['active-text'] !== undefined" label="开启提示"> |
|
|
<el-input v-model="activeData['active-text']" placeholder="请输入开启提示" /> |
|
|
<el-input v-model="activeData['active-text']" placeholder="请输入开启提示"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['inactive-text'] !== undefined" label="关闭提示"> |
|
|
<el-form-item v-if="activeData['inactive-text'] !== undefined" label="关闭提示"> |
|
|
<el-input v-model="activeData['inactive-text']" placeholder="请输入关闭提示" /> |
|
|
<el-input v-model="activeData['inactive-text']" placeholder="请输入关闭提示"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['active-value'] !== undefined" label="开启值"> |
|
|
<el-form-item v-if="activeData['active-value'] !== undefined" label="开启值"> |
|
|
<el-input |
|
|
<el-input |
|
|
@ -214,9 +218,9 @@ |
|
|
/> |
|
|
/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<!-- <el-form-item v-if="activeData.name !== undefined" label="文件字段名">--> |
|
|
<!-- <el-form-item v-if="activeData.name !== undefined" label="文件字段名">--> |
|
|
<!-- <el-input v-model="activeData.name" placeholder="请输入上传文件字段名" />--> |
|
|
<!-- <el-input v-model="activeData.name" placeholder="请输入上传文件字段名" />--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </el-form-item>--> |
|
|
<el-form-item v-if="activeData.accept !== undefined" label="文件类型"> |
|
|
<el-form-item v-if="activeData.accept !== undefined" label="文件类型"> |
|
|
<el-select |
|
|
<el-select |
|
|
v-model="activeData.accept" |
|
|
v-model="activeData.accept" |
|
|
@ -224,27 +228,28 @@ |
|
|
:style="{ width: '100%' }" |
|
|
:style="{ width: '100%' }" |
|
|
clearable |
|
|
clearable |
|
|
> |
|
|
> |
|
|
<el-option label="图片" value="image/*" /> |
|
|
<el-option label="图片" value="image/*"/> |
|
|
<el-option label="视频" value="video/*" /> |
|
|
<el-option label="视频" value="video/*"/> |
|
|
<el-option label="音频" value="audio/*" /> |
|
|
<el-option label="音频" value="audio/*"/> |
|
|
<el-option label="excel" value=".xls,.xlsx" /> |
|
|
<el-option label="excel" value=".xls,.xlsx"/> |
|
|
<el-option label="word" value=".doc,.docx" /> |
|
|
<el-option label="word" value=".doc,.docx"/> |
|
|
<el-option label="pdf" value=".pdf" /> |
|
|
<el-option label="pdf" value=".pdf"/> |
|
|
<el-option label="txt" value=".txt" /> |
|
|
<el-option label="txt" value=".txt"/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.fileSize !== undefined" label="文件大小"> |
|
|
<el-form-item v-if="activeData.__config__.fileSize !== undefined" label="文件大小"> |
|
|
<el-input v-model.number="activeData.__config__.fileSize" placeholder="请输入文件大小"> |
|
|
<el-input v-model.number="activeData.__config__.fileSize" placeholder="请输入文件大小"> |
|
|
<el-select slot="append" v-model="activeData.__config__.sizeUnit" :style="{ width: '66px' }"> |
|
|
<el-select slot="append" v-model="activeData.__config__.sizeUnit" |
|
|
<el-option label="KB" value="KB" /> |
|
|
:style="{ width: '66px' }"> |
|
|
<el-option label="MB" value="MB" /> |
|
|
<el-option label="KB" value="KB"/> |
|
|
<el-option label="GB" value="GB" /> |
|
|
<el-option label="MB" value="MB"/> |
|
|
|
|
|
<el-option label="GB" value="GB"/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<!-- <el-form-item v-if="activeData.action !== undefined" label="上传地址">--> |
|
|
<!-- <el-form-item v-if="activeData.action !== undefined" label="上传地址">--> |
|
|
<!-- <el-input v-model="activeData.action" placeholder="请输入上传地址" clearable />--> |
|
|
<!-- <el-input v-model="activeData.action" placeholder="请输入上传地址" clearable />--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </el-form-item>--> |
|
|
<el-form-item v-if="activeData['list-type'] !== undefined" label="列表类型"> |
|
|
<el-form-item v-if="activeData['list-type'] !== undefined" label="列表类型"> |
|
|
<el-radio-group v-model="activeData['list-type']" size="small"> |
|
|
<el-radio-group v-model="activeData['list-type']" size="small"> |
|
|
<el-radio-button label="text"> |
|
|
<el-radio-button label="text"> |
|
|
@ -263,12 +268,12 @@ |
|
|
label="按钮类型" |
|
|
label="按钮类型" |
|
|
> |
|
|
> |
|
|
<el-select v-model="activeData.type" :style="{ width: '100%' }"> |
|
|
<el-select v-model="activeData.type" :style="{ width: '100%' }"> |
|
|
<el-option label="primary" value="primary" /> |
|
|
<el-option label="primary" value="primary"/> |
|
|
<el-option label="success" value="success" /> |
|
|
<el-option label="success" value="success"/> |
|
|
<el-option label="warning" value="warning" /> |
|
|
<el-option label="warning" value="warning"/> |
|
|
<el-option label="danger" value="danger" /> |
|
|
<el-option label="danger" value="danger"/> |
|
|
<el-option label="info" value="info" /> |
|
|
<el-option label="info" value="info"/> |
|
|
<el-option label="text" value="text" /> |
|
|
<el-option label="text" value="text"/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item |
|
|
<el-form-item |
|
|
@ -276,16 +281,16 @@ |
|
|
v-show="'picture-card' !== activeData['list-type']" |
|
|
v-show="'picture-card' !== activeData['list-type']" |
|
|
label="按钮文字" |
|
|
label="按钮文字" |
|
|
> |
|
|
> |
|
|
<el-input v-model="activeData.__config__.buttonText" placeholder="请输入按钮文字" /> |
|
|
<el-input v-model="activeData.__config__.buttonText" placeholder="请输入按钮文字"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item |
|
|
<el-form-item |
|
|
v-if="activeData.__config__.tag === 'el-button'" |
|
|
v-if="activeData.__config__.tag === 'el-button'" |
|
|
label="按钮文字" |
|
|
label="按钮文字" |
|
|
> |
|
|
> |
|
|
<el-input v-model="activeData.__slot__.default" placeholder="请输入按钮文字" /> |
|
|
<el-input v-model="activeData.__slot__.default" placeholder="请输入按钮文字"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['range-separator'] !== undefined" label="分隔符"> |
|
|
<el-form-item v-if="activeData['range-separator'] !== undefined" label="分隔符"> |
|
|
<el-input v-model="activeData['range-separator']" placeholder="请输入分隔符" /> |
|
|
<el-input v-model="activeData['range-separator']" placeholder="请输入分隔符"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['picker-options'] !== undefined" label="时间段"> |
|
|
<el-form-item v-if="activeData['picker-options'] !== undefined" label="时间段"> |
|
|
<el-input |
|
|
<el-input |
|
|
@ -300,7 +305,8 @@ |
|
|
@input="setTimeValue($event)" |
|
|
@input="setTimeValue($event)" |
|
|
/> |
|
|
/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<template v-if="['el-checkbox-group', 'el-radio-group', 'el-select'].indexOf(activeData.__config__.tag) > -1"> |
|
|
<template |
|
|
|
|
|
v-if="['el-checkbox-group', 'el-radio-group', 'el-select'].indexOf(activeData.__config__.tag) > -1"> |
|
|
<el-divider>选项</el-divider> |
|
|
<el-divider>选项</el-divider> |
|
|
<draggable |
|
|
<draggable |
|
|
:list="activeData.__slot__.options" |
|
|
:list="activeData.__slot__.options" |
|
|
@ -310,17 +316,18 @@ |
|
|
> |
|
|
> |
|
|
<div v-for="(item, index) in activeData.__slot__.options" :key="index" class="select-item"> |
|
|
<div v-for="(item, index) in activeData.__slot__.options" :key="index" class="select-item"> |
|
|
<div class="select-line-icon option-drag"> |
|
|
<div class="select-line-icon option-drag"> |
|
|
<i class="el-icon-s-operation" /> |
|
|
<i class="el-icon-s-operation"/> |
|
|
</div> |
|
|
</div> |
|
|
<el-input v-model="item.label" placeholder="选项名" size="small" /> |
|
|
<el-input v-model="item.label" placeholder="选项名" size="small"/> |
|
|
<!-- <el-input--> |
|
|
<!-- <el-input--> |
|
|
<!-- placeholder="选项值"--> |
|
|
<!-- placeholder="选项值"--> |
|
|
<!-- size="small"--> |
|
|
<!-- size="small"--> |
|
|
<!-- :value="item.value"--> |
|
|
<!-- :value="item.value"--> |
|
|
<!-- @input="setOptionValue(item, $event)"--> |
|
|
<!-- @input="setOptionValue(item, $event)"--> |
|
|
<!-- />--> |
|
|
<!-- />--> |
|
|
<div class="close-btn select-line-icon" @click="activeData.__slot__.options.splice(index, 1)"> |
|
|
<div class="close-btn select-line-icon" |
|
|
<i class="el-icon-remove-outline" /> |
|
|
@click="activeData.__slot__.options.splice(index, 1)"> |
|
|
|
|
|
<i class="el-icon-remove-outline"/> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</draggable> |
|
|
</draggable> |
|
|
@ -333,61 +340,70 @@ |
|
|
> |
|
|
> |
|
|
添加选项 |
|
|
添加选项 |
|
|
</el-button> |
|
|
</el-button> |
|
|
|
|
|
<el-button |
|
|
|
|
|
v-if="['el-checkbox-group', 'el-radio-group'].indexOf(activeData.__config__.tag) > -1" |
|
|
|
|
|
style="padding-bottom: 0" |
|
|
|
|
|
icon="el-icon-circle-plus-outline" |
|
|
|
|
|
type="text" |
|
|
|
|
|
@click="addSelectOtherItem" |
|
|
|
|
|
> |
|
|
|
|
|
添加其他 |
|
|
|
|
|
</el-button> |
|
|
</div> |
|
|
</div> |
|
|
<el-divider /> |
|
|
<el-divider/> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<template v-if="['el-cascader'].indexOf(activeData.__config__.tag) > -1"> |
|
|
<template v-if="['el-cascader'].indexOf(activeData.__config__.tag) > -1"> |
|
|
<el-divider>选项</el-divider> |
|
|
<el-divider>选项</el-divider> |
|
|
<!-- <el-form-item label="数据类型">--> |
|
|
<!-- <el-form-item label="数据类型">--> |
|
|
<!-- <el-radio-group v-model="activeData.__config__.dataType" size="small">--> |
|
|
<!-- <el-radio-group v-model="activeData.__config__.dataType" size="small">--> |
|
|
<!-- <el-radio-button label="dynamic">--> |
|
|
<!-- <el-radio-button label="dynamic">--> |
|
|
<!-- 动态数据--> |
|
|
<!-- 动态数据--> |
|
|
<!-- </el-radio-button>--> |
|
|
<!-- </el-radio-button>--> |
|
|
<!-- <el-radio-button label="static">--> |
|
|
<!-- <el-radio-button label="static">--> |
|
|
<!-- 静态数据--> |
|
|
<!-- 静态数据--> |
|
|
<!-- </el-radio-button>--> |
|
|
<!-- </el-radio-button>--> |
|
|
<!-- </el-radio-group>--> |
|
|
<!-- </el-radio-group>--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </el-form-item>--> |
|
|
|
|
|
|
|
|
<!-- <template v-if="activeData.__config__.dataType === 'dynamic'">--> |
|
|
<!-- <template v-if="activeData.__config__.dataType === 'dynamic'">--> |
|
|
<!-- <el-form-item label="接口地址">--> |
|
|
<!-- <el-form-item label="接口地址">--> |
|
|
<!-- <el-input--> |
|
|
<!-- <el-input--> |
|
|
<!-- v-model="activeData.__config__.url"--> |
|
|
<!-- v-model="activeData.__config__.url"--> |
|
|
<!-- :title="activeData.__config__.url"--> |
|
|
<!-- :title="activeData.__config__.url"--> |
|
|
<!-- placeholder="请输入接口地址"--> |
|
|
<!-- placeholder="请输入接口地址"--> |
|
|
<!-- clearable--> |
|
|
<!-- clearable--> |
|
|
<!-- >--> |
|
|
<!-- >--> |
|
|
<!-- <el-select--> |
|
|
<!-- <el-select--> |
|
|
<!-- slot="prepend"--> |
|
|
<!-- slot="prepend"--> |
|
|
<!-- v-model="activeData.__config__.method"--> |
|
|
<!-- v-model="activeData.__config__.method"--> |
|
|
<!-- :style="{width: '85px'}"--> |
|
|
<!-- :style="{width: '85px'}"--> |
|
|
<!-- >--> |
|
|
<!-- >--> |
|
|
<!-- <el-option label="get" value="get" />--> |
|
|
<!-- <el-option label="get" value="get" />--> |
|
|
<!-- <el-option label="post" value="post" />--> |
|
|
<!-- <el-option label="post" value="post" />--> |
|
|
<!-- <el-option label="put" value="put" />--> |
|
|
<!-- <el-option label="put" value="put" />--> |
|
|
<!-- <el-option label="delete" value="delete" />--> |
|
|
<!-- <el-option label="delete" value="delete" />--> |
|
|
<!-- </el-select>--> |
|
|
<!-- </el-select>--> |
|
|
<!-- </el-input>--> |
|
|
<!-- </el-input>--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- <el-form-item label="数据位置">--> |
|
|
<!-- <el-form-item label="数据位置">--> |
|
|
<!-- <el-input v-model="activeData.__config__.dataKey" placeholder="请输入标签键名" />--> |
|
|
<!-- <el-input v-model="activeData.__config__.dataKey" placeholder="请输入标签键名" />--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- <el-form-item label="标签键名">--> |
|
|
<!-- <el-form-item label="标签键名">--> |
|
|
<!-- <el-input v-model="activeData.props.props.label" placeholder="请输入标签键名" />--> |
|
|
<!-- <el-input v-model="activeData.props.props.label" placeholder="请输入标签键名" />--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- <el-form-item label="值键名">--> |
|
|
<!-- <el-form-item label="值键名">--> |
|
|
<!-- <el-input v-model="activeData.props.props.value" placeholder="请输入值键名" />--> |
|
|
<!-- <el-input v-model="activeData.props.props.value" placeholder="请输入值键名" />--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- <el-form-item label="子级键名">--> |
|
|
<!-- <el-form-item label="子级键名">--> |
|
|
<!-- <el-input v-model="activeData.props.props.children" placeholder="请输入子级键名" />--> |
|
|
<!-- <el-input v-model="activeData.props.props.children" placeholder="请输入子级键名" />--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </template>--> |
|
|
<!-- </template>--> |
|
|
|
|
|
|
|
|
<!-- 级联选择静态树 --> |
|
|
<!-- 级联选择静态树 --> |
|
|
<el-tree |
|
|
<el-tree |
|
|
v-if="activeData.__config__.dataType === 'static'" |
|
|
v-if="activeData.__config__.dataType === 'static'" |
|
|
draggable |
|
|
draggable="true" |
|
|
:data="activeData.options" |
|
|
:data="activeData.options" |
|
|
node-key="id" |
|
|
node-key="id" |
|
|
:expand-on-click-node="false" |
|
|
:expand-on-click-node="false" |
|
|
@ -403,7 +419,7 @@ |
|
|
添加父级 |
|
|
添加父级 |
|
|
</el-button> |
|
|
</el-button> |
|
|
</div> |
|
|
</div> |
|
|
<el-divider /> |
|
|
<el-divider/> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<el-form-item v-if="activeData.__config__.optionType !== undefined" label="选项样式"> |
|
|
<el-form-item v-if="activeData.__config__.optionType !== undefined" label="选项样式"> |
|
|
@ -417,40 +433,40 @@ |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['active-color'] !== undefined" label="开启颜色"> |
|
|
<el-form-item v-if="activeData['active-color'] !== undefined" label="开启颜色"> |
|
|
<el-color-picker v-model="activeData['active-color']" /> |
|
|
<el-color-picker v-model="activeData['active-color']"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['inactive-color'] !== undefined" label="关闭颜色"> |
|
|
<el-form-item v-if="activeData['inactive-color'] !== undefined" label="关闭颜色"> |
|
|
<el-color-picker v-model="activeData['inactive-color']" /> |
|
|
<el-color-picker v-model="activeData['inactive-color']"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item v-if="activeData.__config__.showLabel !== undefined |
|
|
<el-form-item v-if="activeData.__config__.showLabel !== undefined |
|
|
&& activeData.__config__.labelWidth !== undefined" label="显示标签" |
|
|
&& activeData.__config__.labelWidth !== undefined" label="显示标签" |
|
|
> |
|
|
> |
|
|
<el-switch v-model="activeData.__config__.showLabel" /> |
|
|
<el-switch v-model="activeData.__config__.showLabel"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.branding !== undefined" label="品牌烙印"> |
|
|
<el-form-item v-if="activeData.branding !== undefined" label="品牌烙印"> |
|
|
<el-switch v-model="activeData.branding" @input="changeRenderKey" /> |
|
|
<el-switch v-model="activeData.branding" @input="changeRenderKey"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['allow-half'] !== undefined" label="允许半选"> |
|
|
<el-form-item v-if="activeData['allow-half'] !== undefined" label="允许半选"> |
|
|
<el-switch v-model="activeData['allow-half']" /> |
|
|
<el-switch v-model="activeData['allow-half']"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['show-text'] !== undefined" label="辅助文字"> |
|
|
<el-form-item v-if="activeData['show-text'] !== undefined" label="辅助文字"> |
|
|
<el-switch v-model="activeData['show-text']" @change="rateTextChange" /> |
|
|
<el-switch v-model="activeData['show-text']" @change="rateTextChange"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['show-score'] !== undefined" label="显示分数"> |
|
|
<el-form-item v-if="activeData['show-score'] !== undefined" label="显示分数"> |
|
|
<el-switch v-model="activeData['show-score']" @change="rateScoreChange" /> |
|
|
<el-switch v-model="activeData['show-score']" @change="rateScoreChange"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['show-stops'] !== undefined" label="显示间断点"> |
|
|
<el-form-item v-if="activeData['show-stops'] !== undefined" label="显示间断点"> |
|
|
<el-switch v-model="activeData['show-stops']" /> |
|
|
<el-switch v-model="activeData['show-stops']"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.range !== undefined" label="范围选择"> |
|
|
<el-form-item v-if="activeData.range !== undefined" label="范围选择"> |
|
|
<el-switch v-model="activeData.range" @change="rangeChange" /> |
|
|
<el-switch v-model="activeData.range" @change="rangeChange"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item |
|
|
<el-form-item |
|
|
v-if="activeData.__config__.border !== undefined && activeData.__config__.optionType === 'default'" |
|
|
v-if="activeData.__config__.border !== undefined && activeData.__config__.optionType === 'default'" |
|
|
label="是否带边框" |
|
|
label="是否带边框" |
|
|
> |
|
|
> |
|
|
<el-switch v-model="activeData.__config__.border" /> |
|
|
<el-switch v-model="activeData.__config__.border"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-color-picker'" label="颜色格式"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-color-picker'" label="颜色格式"> |
|
|
<el-select |
|
|
<el-select |
|
|
@ -489,52 +505,52 @@ |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData['show-word-limit'] !== undefined" label="输入统计"> |
|
|
<el-form-item v-if="activeData['show-word-limit'] !== undefined" label="输入统计"> |
|
|
<el-switch v-model="activeData['show-word-limit']" /> |
|
|
<el-switch v-model="activeData['show-word-limit']"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-input-number'" label="严格步数"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-input-number'" label="严格步数"> |
|
|
<el-switch v-model="activeData['step-strictly']" /> |
|
|
<el-switch v-model="activeData['step-strictly']"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-cascader'" label="任选层级"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-cascader'" label="任选层级"> |
|
|
<el-switch v-model="activeData.props.props.checkStrictly" /> |
|
|
<el-switch v-model="activeData.props.props.checkStrictly"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-cascader'" label="是否多选"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-cascader'" label="是否多选"> |
|
|
<el-switch v-model="activeData.props.props.multiple" /> |
|
|
<el-switch v-model="activeData.props.props.multiple"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-cascader'" label="展示全路径"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-cascader'" label="展示全路径"> |
|
|
<el-switch v-model="activeData['show-all-levels']" /> |
|
|
<el-switch v-model="activeData['show-all-levels']"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-cascader'" label="可否筛选"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-cascader'" label="可否筛选"> |
|
|
<el-switch v-model="activeData.filterable" /> |
|
|
<el-switch v-model="activeData.filterable"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.clearable !== undefined" label="能否清空"> |
|
|
<el-form-item v-if="activeData.clearable !== undefined" label="能否清空"> |
|
|
<el-switch v-model="activeData.clearable" /> |
|
|
<el-switch v-model="activeData.clearable"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.showTip !== undefined" label="显示提示"> |
|
|
<el-form-item v-if="activeData.__config__.showTip !== undefined" label="显示提示"> |
|
|
<el-switch v-model="activeData.__config__.showTip" /> |
|
|
<el-switch v-model="activeData.__config__.showTip"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-upload'" label="多选文件"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-upload'" label="多选文件"> |
|
|
<el-switch v-model="activeData.multiple" /> |
|
|
<el-switch v-model="activeData.multiple"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-upload'" label="文件个数"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-upload'" label="文件个数"> |
|
|
<el-input-number v-model="activeData.limit" /> |
|
|
<el-input-number v-model="activeData.limit"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<!-- <el-form-item v-if="activeData['auto-upload'] !== undefined" label="自动上传">--> |
|
|
<!-- <el-form-item v-if="activeData['auto-upload'] !== undefined" label="自动上传">--> |
|
|
<!-- <el-switch v-model="activeData['auto-upload']" />--> |
|
|
<!-- <el-switch v-model="activeData['auto-upload']" />--> |
|
|
<!-- </el-form-item>--> |
|
|
<!-- </el-form-item>--> |
|
|
<el-form-item v-if="activeData.readonly !== undefined" label="是否只读"> |
|
|
<el-form-item v-if="activeData.readonly !== undefined" label="是否只读"> |
|
|
<el-switch v-model="activeData.readonly" /> |
|
|
<el-switch v-model="activeData.readonly"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.disabled !== undefined" label="是否禁用"> |
|
|
<el-form-item v-if="activeData.disabled !== undefined" label="是否禁用"> |
|
|
<el-switch v-model="activeData.disabled" /> |
|
|
<el-switch v-model="activeData.disabled"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-select'" label="能否搜索"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-select'" label="能否搜索"> |
|
|
<el-switch v-model="activeData.filterable" /> |
|
|
<el-switch v-model="activeData.filterable"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-select'" label="是否多选"> |
|
|
<el-form-item v-if="activeData.__config__.tag === 'el-select'" label="是否多选"> |
|
|
<el-switch v-model="activeData.multiple" @change="multipleChange" /> |
|
|
<el-switch v-model="activeData.multiple" @change="multipleChange"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="activeData.__config__.required !== undefined" label="是否必填"> |
|
|
<el-form-item v-if="activeData.__config__.required !== undefined" label="是否必填"> |
|
|
<el-switch v-model="activeData.__config__.required" /> |
|
|
<el-switch v-model="activeData.__config__.required"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<template v-if="activeData.__config__.layoutTree"> |
|
|
<template v-if="activeData.__config__.layoutTree"> |
|
|
@ -544,11 +560,11 @@ |
|
|
:props="layoutTreeProps" |
|
|
:props="layoutTreeProps" |
|
|
node-key="renderKey" |
|
|
node-key="renderKey" |
|
|
default-expand-all |
|
|
default-expand-all |
|
|
draggable |
|
|
draggable="true" |
|
|
> |
|
|
> |
|
|
<span slot-scope="{ node, data }"> |
|
|
<span slot-scope="{ node, data }"> |
|
|
<span class="node-label"> |
|
|
<span class="node-label"> |
|
|
<svg-icon :name="data.__config__?data.__config__.tagIcon:data.tagIcon" class="node-icon" /> |
|
|
<svg-icon :name="data.__config__?data.__config__.tagIcon:data.tagIcon" class="node-icon"/> |
|
|
{{ node.label }} |
|
|
{{ node.label }} |
|
|
</span> |
|
|
</span> |
|
|
</span> |
|
|
</span> |
|
|
@ -563,13 +579,13 @@ |
|
|
class="reg-item" |
|
|
class="reg-item" |
|
|
> |
|
|
> |
|
|
<span class="close-btn" @click="activeData.__config__.regList.splice(index, 1)"> |
|
|
<span class="close-btn" @click="activeData.__config__.regList.splice(index, 1)"> |
|
|
<i class="el-icon-close" /> |
|
|
<i class="el-icon-close"/> |
|
|
</span> |
|
|
</span> |
|
|
<el-form-item label="表达式"> |
|
|
<el-form-item label="表达式"> |
|
|
<el-input v-model="item.pattern" placeholder="请输入正则" /> |
|
|
<el-input v-model="item.pattern" placeholder="请输入正则"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="错误提示" style="margin-bottom:0"> |
|
|
<el-form-item label="错误提示" style="margin-bottom:0"> |
|
|
<el-input v-model="item.message" placeholder="请输入错误提示" /> |
|
|
<el-input v-model="item.message" placeholder="请输入错误提示"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</div> |
|
|
</div> |
|
|
<div style="margin-left: 20px"> |
|
|
<div style="margin-left: 20px"> |
|
|
@ -581,13 +597,13 @@ |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-form v-show="currentTab === 'form'" size="small" label-width="90px"> |
|
|
<el-form v-show="currentTab === 'form'" size="small" label-width="90px"> |
|
|
<el-form-item label="表单名"> |
|
|
<el-form-item label="表单名"> |
|
|
<el-input v-model="formConf.formRef" placeholder="请输入表单名(ref)" /> |
|
|
<el-input v-model="formConf.formRef" placeholder="请输入表单名(ref)"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="表单模型"> |
|
|
<el-form-item label="表单模型"> |
|
|
<el-input v-model="formConf.formModel" placeholder="请输入数据模型" /> |
|
|
<el-input v-model="formConf.formModel" placeholder="请输入数据模型"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="校验模型"> |
|
|
<el-form-item label="校验模型"> |
|
|
<el-input v-model="formConf.formRules" placeholder="请输入校验模型" /> |
|
|
<el-input v-model="formConf.formRules" placeholder="请输入校验模型"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="表单尺寸"> |
|
|
<el-form-item label="表单尺寸"> |
|
|
<el-radio-group v-model="formConf.size"> |
|
|
<el-radio-group v-model="formConf.size"> |
|
|
@ -616,39 +632,42 @@ |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="标签宽度"> |
|
|
<el-form-item label="标签宽度"> |
|
|
<el-input v-model.number="formConf.labelWidth" type="number" placeholder="请输入标签宽度" /> |
|
|
<el-input v-model.number="formConf.labelWidth" type="number" placeholder="请输入标签宽度"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="栅格间隔"> |
|
|
<el-form-item label="栅格间隔"> |
|
|
<el-input-number v-model="formConf.gutter" :min="0" placeholder="栅格间隔" /> |
|
|
<el-input-number v-model="formConf.gutter" :min="0" placeholder="栅格间隔"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="禁用表单"> |
|
|
<el-form-item label="禁用表单"> |
|
|
<el-switch v-model="formConf.disabled" /> |
|
|
<el-switch v-model="formConf.disabled"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="表单按钮"> |
|
|
<el-form-item label="表单按钮"> |
|
|
<el-switch v-model="formConf.formBtns" /> |
|
|
<el-switch v-model="formConf.formBtns"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="显示未选中组件边框"> |
|
|
<el-form-item label="显示未选中组件边框"> |
|
|
<el-switch v-model="formConf.unFocusedComponentBorder" /> |
|
|
<el-switch v-model="formConf.unFocusedComponentBorder"/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
</el-scrollbar> |
|
|
</el-scrollbar> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<treeNode-dialog :visible.sync="dialogVisible" title="添加选项" @commit="addNode" /> |
|
|
<treeNode-dialog :visible.sync="dialogVisible" title="添加选项" @commit="addNode"/> |
|
|
<icons-dialog :visible.sync="iconsVisible" :current="activeData[currentIconModel]" @select="setIcon" /> |
|
|
<icons-dialog :visible.sync="iconsVisible" :current="activeData[currentIconModel]" @select="setIcon"/> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import { isArray } from 'util' |
|
|
import {isArray} from 'util' |
|
|
import TreeNodeDialog from '@/views/form/TreeNodeDialog' |
|
|
import TreeNodeDialog from '@/views/form/TreeNodeDialog' |
|
|
import { isNumberStr } from '@/utils/index' |
|
|
import {isNumberStr} from '@/utils/index' |
|
|
import IconsDialog from './IconsDialog' |
|
|
import IconsDialog from './IconsDialog' |
|
|
import { |
|
|
import { |
|
|
inputComponents, selectComponents |
|
|
inputComponents, selectComponents |
|
|
} from '@/components/generator/config' |
|
|
} from '@/components/generator/config' |
|
|
import { saveFormConf } from '@/utils/db' |
|
|
import DraggableItem from './DraggableItem' |
|
|
import {debounce} from "throttle-debounce" |
|
|
import {saveFormConf} from '@/utils/db' |
|
|
|
|
|
import {debounce} from 'throttle-debounce' |
|
|
|
|
|
import draggable from 'vuedraggable' |
|
|
|
|
|
|
|
|
const dateTimeFormat = { |
|
|
const dateTimeFormat = { |
|
|
date: 'yyyy-MM-dd', |
|
|
date: 'yyyy-MM-dd', |
|
|
week: 'yyyy 第 WW 周', |
|
|
week: 'yyyy 第 WW 周', |
|
|
@ -666,6 +685,7 @@ const needRerenderList = ['tinymce'] |
|
|
export default { |
|
|
export default { |
|
|
components: { |
|
|
components: { |
|
|
TreeNodeDialog, |
|
|
TreeNodeDialog, |
|
|
|
|
|
draggable, |
|
|
IconsDialog |
|
|
IconsDialog |
|
|
}, |
|
|
}, |
|
|
props: ['showField', 'activeData', 'formConf'], |
|
|
props: ['showField', 'activeData', 'formConf'], |
|
|
@ -809,17 +829,17 @@ export default { |
|
|
}, |
|
|
}, |
|
|
deep: true |
|
|
deep: true |
|
|
}, |
|
|
}, |
|
|
activeData : { |
|
|
activeData: { |
|
|
handler(newValue,oldValue) { |
|
|
handler(newValue, oldValue) { |
|
|
// 切换选中时不触发 |
|
|
// 切换选中时不触发 |
|
|
if(newValue.__config__.formId===oldValue.__config__.formId){ |
|
|
if (newValue.__config__.formId === oldValue.__config__.formId) { |
|
|
if(newValue){ |
|
|
if (newValue) { |
|
|
this.dataChange(newValue) |
|
|
this.dataChange(newValue) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
deep: true |
|
|
deep: true |
|
|
}, |
|
|
} |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
addReg() { |
|
|
addReg() { |
|
|
@ -832,7 +852,20 @@ export default { |
|
|
|
|
|
|
|
|
this.activeData.__slot__.options.push({ |
|
|
this.activeData.__slot__.options.push({ |
|
|
label: '', |
|
|
label: '', |
|
|
value: this.activeData.__slot__.options.length+1 |
|
|
value: this.activeData.__slot__.options.length + 1 |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
addSelectOtherItem() { |
|
|
|
|
|
let item = this.activeData.__slot__.options.find((item) => { |
|
|
|
|
|
return item.value == 0 |
|
|
|
|
|
}) |
|
|
|
|
|
console.log(item) |
|
|
|
|
|
if (item) { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
this.activeData.__slot__.options.push({ |
|
|
|
|
|
label: '其他', |
|
|
|
|
|
value: 0 |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
addTreeItem() { |
|
|
addTreeItem() { |
|
|
@ -840,7 +873,7 @@ export default { |
|
|
this.dialogVisible = true |
|
|
this.dialogVisible = true |
|
|
this.currentNode = this.activeData.options |
|
|
this.currentNode = this.activeData.options |
|
|
}, |
|
|
}, |
|
|
renderContent(h, { node, data, store }) { |
|
|
renderContent(h, {node, data, store}) { |
|
|
return ( |
|
|
return ( |
|
|
<div class="custom-tree-node"> |
|
|
<div class="custom-tree-node"> |
|
|
<span>{node.label}</span> |
|
|
<span>{node.label}</span> |
|
|
@ -866,7 +899,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
remove(node, data) { |
|
|
remove(node, data) { |
|
|
this.activeData.__config__.defaultValue = [] // 避免删除时报错 |
|
|
this.activeData.__config__.defaultValue = [] // 避免删除时报错 |
|
|
const { parent } = node |
|
|
const {parent} = node |
|
|
const children = parent.data.children || parent.data |
|
|
const children = parent.data.children || parent.data |
|
|
const index = children.findIndex(d => d.id === data.id) |
|
|
const index = children.findIndex(d => d.id === data.id) |
|
|
children.splice(index, 1) |
|
|
children.splice(index, 1) |
|
|
@ -975,62 +1008,76 @@ export default { |
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
<style lang="scss" scoped> |
|
|
@import '@/assets/styles/form/index'; |
|
|
@import '@/assets/styles/form/index'; |
|
|
|
|
|
|
|
|
.right-board { |
|
|
.right-board { |
|
|
width: 350px; |
|
|
width: 350px; |
|
|
position: absolute; |
|
|
position: absolute; |
|
|
right: 17px; |
|
|
right: 17px; |
|
|
top: 0; |
|
|
top: 0; |
|
|
padding-top: 3px; |
|
|
padding-top: 3px; |
|
|
|
|
|
background-color: #FFFFFF; |
|
|
|
|
|
|
|
|
.field-box { |
|
|
.field-box { |
|
|
position: relative; |
|
|
position: relative; |
|
|
height: calc(100vh - 242px); |
|
|
height: calc(100vh - 242px); |
|
|
box-sizing: border-box; |
|
|
box-sizing: border-box; |
|
|
overflow: hidden; |
|
|
overflow: hidden; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.el-scrollbar { |
|
|
.el-scrollbar { |
|
|
height: 100%; |
|
|
height: 100%; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.select-item { |
|
|
.select-item { |
|
|
display: flex; |
|
|
display: flex; |
|
|
border: 1px dashed #fff; |
|
|
border: 1px dashed #fff; |
|
|
box-sizing: border-box; |
|
|
box-sizing: border-box; |
|
|
|
|
|
|
|
|
& .close-btn { |
|
|
& .close-btn { |
|
|
cursor: pointer; |
|
|
cursor: pointer; |
|
|
color: #f56c6c; |
|
|
color: #f56c6c; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
& .el-input + .el-input { |
|
|
& .el-input + .el-input { |
|
|
margin-left: 4px; |
|
|
margin-left: 4px; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.select-item + .select-item { |
|
|
.select-item + .select-item { |
|
|
margin-top: 4px; |
|
|
margin-top: 4px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.select-item.sortable-chosen { |
|
|
.select-item.sortable-chosen { |
|
|
border: 1px dashed #409eff; |
|
|
border: 1px dashed #409eff; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.select-line-icon { |
|
|
.select-line-icon { |
|
|
line-height: 32px; |
|
|
line-height: 32px; |
|
|
font-size: 22px; |
|
|
font-size: 22px; |
|
|
padding: 0 4px; |
|
|
padding: 0 4px; |
|
|
color: #777; |
|
|
color: #777; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.option-drag { |
|
|
.option-drag { |
|
|
cursor: move; |
|
|
cursor: move; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.time-range { |
|
|
.time-range { |
|
|
.el-date-editor { |
|
|
.el-date-editor { |
|
|
width: 227px; |
|
|
width: 227px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
::v-deep .el-icon-time { |
|
|
::v-deep .el-icon-time { |
|
|
display: none; |
|
|
display: none; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.node-label{ |
|
|
.node-label { |
|
|
font-size: 14px; |
|
|
font-size: 14px; |
|
|
} |
|
|
} |
|
|
.node-icon{ |
|
|
|
|
|
|
|
|
.node-icon { |
|
|
color: #bebfc3; |
|
|
color: #bebfc3; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
|