Commit 69a6aa251baa8cc3f31244d048c0540f71704d1b

Authored by YunaiV
1 parent 2d40e4bc

Form 动态表单的清理,去除无用的代码

yudao-admin-ui/src/router/index.js
@@ -157,7 +157,7 @@ export const constantRoutes = [ @@ -157,7 +157,7 @@ export const constantRoutes = [
157 children: [ 157 children: [
158 { 158 {
159 path: 'manager/form/edit', 159 path: 'manager/form/edit',
160 - component: (resolve) => require(['@/views/bpm/form/build/index'], resolve), 160 + component: (resolve) => require(['@/views/bpm/form/formEditor'], resolve),
161 name: '流程表单-编辑', 161 name: '流程表单-编辑',
162 meta: { title: '流程表单-编辑' } 162 meta: { title: '流程表单-编辑' }
163 } 163 }
yudao-admin-ui/src/views/bpm/form/build/DraggableItem.vue deleted
1 -<script>  
2 -import draggable from 'vuedraggable'  
3 -import render from '@/utils/generator/render'  
4 -  
5 -const components = {  
6 - itemBtns(h, element, index, parent) {  
7 - const { copyItem, deleteItem } = this.$listeners  
8 - return [  
9 - <span class="drawing-item-copy" title="复制" onClick={event => {  
10 - copyItem(element, parent); event.stopPropagation()  
11 - }}>  
12 - <i class="el-icon-copy-document" />  
13 - </span>,  
14 - <span class="drawing-item-delete" title="删除" onClick={event => {  
15 - deleteItem(index, parent); event.stopPropagation()  
16 - }}>  
17 - <i class="el-icon-delete" />  
18 - </span>  
19 - ]  
20 - }  
21 -}  
22 -const layouts = {  
23 - colFormItem(h, element, index, parent) {  
24 - const { activeItem } = this.$listeners  
25 - let className = this.activeId === element.formId ? 'drawing-item active-from-item' : 'drawing-item'  
26 - if (this.formConf.unFocusedComponentBorder) className += ' unfocus-bordered'  
27 - return (  
28 - <el-col span={element.span} class={className}  
29 - nativeOnClick={event => { activeItem(element); event.stopPropagation() }}>  
30 - <el-form-item label-width={element.labelWidth ? `${element.labelWidth}px` : null}  
31 - label={element.label} required={element.required}>  
32 - <render key={element.renderKey} conf={element} onInput={ event => {  
33 - this.$set(element, 'defaultValue', event)  
34 - }} />  
35 - </el-form-item>  
36 - {components.itemBtns.apply(this, arguments)}  
37 - </el-col>  
38 - )  
39 - },  
40 - rowFormItem(h, element, index, parent) {  
41 - const { activeItem } = this.$listeners  
42 - const className = this.activeId === element.formId ? 'drawing-row-item active-from-item' : 'drawing-row-item'  
43 - let child = renderChildren.apply(this, arguments)  
44 - if (element.type === 'flex') {  
45 - child = <el-row type={element.type} justify={element.justify} align={element.align}>  
46 - {child}  
47 - </el-row>  
48 - }  
49 - return (  
50 - <el-col span={element.span}>  
51 - <el-row gutter={element.gutter} class={className}  
52 - nativeOnClick={event => { activeItem(element); event.stopPropagation() }}>  
53 - <span class="component-name">{element.componentName}</span>  
54 - <draggable list={element.children} animation={340} group="componentsGroup" class="drag-wrapper">  
55 - {child}  
56 - </draggable>  
57 - {components.itemBtns.apply(this, arguments)}  
58 - </el-row>  
59 - </el-col>  
60 - )  
61 - }  
62 -}  
63 -  
64 -function renderChildren(h, element, index, parent) {  
65 - if (!Array.isArray(element.children)) return null  
66 - return element.children.map((el, i) => {  
67 - const layout = layouts[el.layout]  
68 - if (layout) {  
69 - return layout.call(this, h, el, i, element.children)  
70 - }  
71 - return layoutIsNotFound()  
72 - })  
73 -}  
74 -  
75 -function layoutIsNotFound() {  
76 - throw new Error(`没有与${this.element.layout}匹配的layout`)  
77 -}  
78 -  
79 -export default {  
80 - components: {  
81 - render,  
82 - draggable  
83 - },  
84 - props: [  
85 - 'element',  
86 - 'index',  
87 - 'drawingList',  
88 - 'activeId',  
89 - 'formConf'  
90 - ],  
91 - render(h) {  
92 - const layout = layouts[this.element.layout]  
93 -  
94 - if (layout) {  
95 - return layout.call(this, h, this.element, this.index, this.drawingList)  
96 - }  
97 - return layoutIsNotFound()  
98 - }  
99 -}  
100 -</script>  
yudao-admin-ui/src/views/bpm/form/build/IconsDialog.vue deleted
1 -<template>  
2 - <div class="icon-dialog">  
3 - <el-dialog  
4 - v-bind="$attrs"  
5 - width="980px"  
6 - :modal-append-to-body="false"  
7 - v-on="$listeners"  
8 - @open="onOpen"  
9 - @close="onClose"  
10 - >  
11 - <div slot="title">  
12 - 选择图标  
13 - <el-input  
14 - v-model="key"  
15 - size="mini"  
16 - :style="{width: '260px'}"  
17 - placeholder="请输入图标名称"  
18 - prefix-icon="el-icon-search"  
19 - clearable  
20 - />  
21 - </div>  
22 - <ul class="icon-ul">  
23 - <li  
24 - v-for="icon in iconList"  
25 - :key="icon"  
26 - :class="active===icon?'active-item':''"  
27 - @click="onSelect(icon)"  
28 - >  
29 - <i :class="icon" />  
30 - <div>{{ icon }}</div>  
31 - </li>  
32 - </ul>  
33 - </el-dialog>  
34 - </div>  
35 -</template>  
36 -<script>  
37 -import iconList from '@/utils/generator/icon.json'  
38 -  
39 -const originList = iconList.map(name => `el-icon-${name}`)  
40 -  
41 -export default {  
42 - inheritAttrs: false,  
43 - props: ['current'],  
44 - data() {  
45 - return {  
46 - iconList: originList,  
47 - active: null,  
48 - key: ''  
49 - }  
50 - },  
51 - watch: {  
52 - key(val) {  
53 - if (val) {  
54 - this.iconList = originList.filter(name => name.indexOf(val) > -1)  
55 - } else {  
56 - this.iconList = originList  
57 - }  
58 - }  
59 - },  
60 - methods: {  
61 - onOpen() {  
62 - this.active = this.current  
63 - this.key = ''  
64 - },  
65 - onClose() {},  
66 - onSelect(icon) {  
67 - this.active = icon  
68 - this.$emit('select', icon)  
69 - this.$emit('update:visible', false)  
70 - }  
71 - }  
72 -}  
73 -</script>  
74 -<style lang="scss" scoped>  
75 -.icon-ul {  
76 - margin: 0;  
77 - padding: 0;  
78 - font-size: 0;  
79 - li {  
80 - list-style-type: none;  
81 - text-align: center;  
82 - font-size: 14px;  
83 - display: inline-block;  
84 - width: 16.66%;  
85 - box-sizing: border-box;  
86 - height: 108px;  
87 - padding: 15px 6px 6px 6px;  
88 - cursor: pointer;  
89 - overflow: hidden;  
90 - &:hover {  
91 - background: #f2f2f2;  
92 - }  
93 - &.active-item{  
94 - background: #e1f3fb;  
95 - color: #7a6df0  
96 - }  
97 - > i {  
98 - font-size: 30px;  
99 - line-height: 50px;  
100 - }  
101 - }  
102 -}  
103 -.icon-dialog {  
104 - ::v-deep .el-dialog {  
105 - border-radius: 8px;  
106 - margin-bottom: 0;  
107 - margin-top: 4vh !important;  
108 - display: flex;  
109 - flex-direction: column;  
110 - max-height: 92vh;  
111 - overflow: hidden;  
112 - box-sizing: border-box;  
113 - .el-dialog__header {  
114 - padding-top: 14px;  
115 - }  
116 - .el-dialog__body {  
117 - margin: 0 20px 20px 20px;  
118 - padding: 0;  
119 - overflow: auto;  
120 - }  
121 - }  
122 -}  
123 -</style>  
yudao-admin-ui/src/views/bpm/form/build/RightPanel.vue deleted
1 -<template>  
2 - <div class="right-board">  
3 - <el-tabs v-model="currentTab" class="center-tabs">  
4 - <el-tab-pane label="组件属性" name="field" />  
5 - <el-tab-pane label="表单属性" name="form" />  
6 - </el-tabs>  
7 - <div class="field-box">  
8 -<!-- <a class="document-link" target="_blank" :href="documentLink" title="查看组件文档">-->  
9 -<!-- <i class="el-icon-link" />-->  
10 -<!-- </a>-->  
11 - <el-scrollbar class="right-scrollbar">  
12 - <!-- 组件属性 -->  
13 - <el-form v-show="currentTab==='field' && showField" size="small" label-width="90px">  
14 - <el-form-item v-if="activeData.changeTag" label="组件类型">  
15 - <el-select  
16 - v-model="activeData.tagIcon"  
17 - placeholder="请选择组件类型"  
18 - :style="{width: '100%'}"  
19 - @change="tagChange"  
20 - >  
21 - <el-option-group v-for="group in tagList" :key="group.label" :label="group.label">  
22 - <el-option  
23 - v-for="item in group.options"  
24 - :key="item.label"  
25 - :label="item.label"  
26 - :value="item.tagIcon"  
27 - >  
28 - <svg-icon class="node-icon" :icon-class="item.tagIcon" />  
29 - <span> {{ item.label }}</span>  
30 - </el-option>  
31 - </el-option-group>  
32 - </el-select>  
33 - </el-form-item>  
34 - <el-form-item v-if="activeData.vModel!==undefined" label="字段名">  
35 - <el-input v-model="activeData.vModel" placeholder="请输入字段名(v-model)" />  
36 - </el-form-item>  
37 - <el-form-item v-if="activeData.componentName!==undefined" label="组件名">  
38 - {{ activeData.componentName }}  
39 - </el-form-item>  
40 - <el-form-item v-if="activeData.label!==undefined" label="标题">  
41 - <el-input v-model="activeData.label" placeholder="请输入标题" />  
42 - </el-form-item>  
43 - <el-form-item v-if="activeData.placeholder!==undefined" label="占位提示">  
44 - <el-input v-model="activeData.placeholder" placeholder="请输入占位提示" />  
45 - </el-form-item>  
46 - <el-form-item v-if="activeData['start-placeholder']!==undefined" label="开始占位">  
47 - <el-input v-model="activeData['start-placeholder']" placeholder="请输入占位提示" />  
48 - </el-form-item>  
49 - <el-form-item v-if="activeData['end-placeholder']!==undefined" label="结束占位">  
50 - <el-input v-model="activeData['end-placeholder']" placeholder="请输入占位提示" />  
51 - </el-form-item>  
52 - <el-form-item v-if="activeData.span!==undefined" label="表单栅格">  
53 - <el-slider v-model="activeData.span" :max="24" :min="1" :marks="{12:''}" @change="spanChange" />  
54 - </el-form-item>  
55 - <el-form-item v-if="activeData.layout==='rowFormItem'" label="栅格间隔">  
56 - <el-input-number v-model="activeData.gutter" :min="0" placeholder="栅格间隔" />  
57 - </el-form-item>  
58 - <el-form-item v-if="activeData.layout==='rowFormItem'" label="布局模式">  
59 - <el-radio-group v-model="activeData.type">  
60 - <el-radio-button label="default" />  
61 - <el-radio-button label="flex" />  
62 - </el-radio-group>  
63 - </el-form-item>  
64 - <el-form-item v-if="activeData.justify!==undefined&&activeData.type==='flex'" label="水平排列">  
65 - <el-select v-model="activeData.justify" placeholder="请选择水平排列" :style="{width: '100%'}">  
66 - <el-option  
67 - v-for="(item, index) in justifyOptions"  
68 - :key="index"  
69 - :label="item.label"  
70 - :value="item.value"  
71 - />  
72 - </el-select>  
73 - </el-form-item>  
74 - <el-form-item v-if="activeData.align!==undefined&&activeData.type==='flex'" label="垂直排列">  
75 - <el-radio-group v-model="activeData.align">  
76 - <el-radio-button label="top" />  
77 - <el-radio-button label="middle" />  
78 - <el-radio-button label="bottom" />  
79 - </el-radio-group>  
80 - </el-form-item>  
81 - <el-form-item v-if="activeData.labelWidth!==undefined" label="标签宽度">  
82 - <el-input v-model.number="activeData.labelWidth" type="number" placeholder="请输入标签宽度" />  
83 - </el-form-item>  
84 - <el-form-item v-if="activeData.style&&activeData.style.width!==undefined" label="组件宽度">  
85 - <el-input v-model="activeData.style.width" placeholder="请输入组件宽度" clearable />  
86 - </el-form-item>  
87 - <el-form-item v-if="activeData.vModel!==undefined" label="默认值">  
88 - <el-input  
89 - :value="setDefaultValue(activeData.defaultValue)"  
90 - placeholder="请输入默认值"  
91 - @input="onDefaultValueInput"  
92 - />  
93 - </el-form-item>  
94 - <el-form-item v-if="activeData.tag==='el-checkbox-group'" label="至少应选">  
95 - <el-input-number  
96 - :value="activeData.min"  
97 - :min="0"  
98 - placeholder="至少应选"  
99 - @input="$set(activeData, 'min', $event?$event:undefined)"  
100 - />  
101 - </el-form-item>  
102 - <el-form-item v-if="activeData.tag==='el-checkbox-group'" label="最多可选">  
103 - <el-input-number  
104 - :value="activeData.max"  
105 - :min="0"  
106 - placeholder="最多可选"  
107 - @input="$set(activeData, 'max', $event?$event:undefined)"  
108 - />  
109 - </el-form-item>  
110 - <el-form-item v-if="activeData.prepend!==undefined" label="前缀">  
111 - <el-input v-model="activeData.prepend" placeholder="请输入前缀" />  
112 - </el-form-item>  
113 - <el-form-item v-if="activeData.append!==undefined" label="后缀">  
114 - <el-input v-model="activeData.append" placeholder="请输入后缀" />  
115 - </el-form-item>  
116 - <el-form-item v-if="activeData['prefix-icon']!==undefined" label="前图标">  
117 - <el-input v-model="activeData['prefix-icon']" placeholder="请输入前图标名称">  
118 - <el-button slot="append" icon="el-icon-thumb" @click="openIconsDialog('prefix-icon')">  
119 - 选择  
120 - </el-button>  
121 - </el-input>  
122 - </el-form-item>  
123 - <el-form-item v-if="activeData['suffix-icon'] !== undefined" label="后图标">  
124 - <el-input v-model="activeData['suffix-icon']" placeholder="请输入后图标名称">  
125 - <el-button slot="append" icon="el-icon-thumb" @click="openIconsDialog('suffix-icon')">  
126 - 选择  
127 - </el-button>  
128 - </el-input>  
129 - </el-form-item>  
130 - <el-form-item v-if="activeData.tag === 'el-cascader'" label="选项分隔符">  
131 - <el-input v-model="activeData.separator" placeholder="请输入选项分隔符" />  
132 - </el-form-item>  
133 - <el-form-item v-if="activeData.autosize !== undefined" label="最小行数">  
134 - <el-input-number v-model="activeData.autosize.minRows" :min="1" placeholder="最小行数" />  
135 - </el-form-item>  
136 - <el-form-item v-if="activeData.autosize !== undefined" label="最大行数">  
137 - <el-input-number v-model="activeData.autosize.maxRows" :min="1" placeholder="最大行数" />  
138 - </el-form-item>  
139 - <el-form-item v-if="activeData.min !== undefined" label="最小值">  
140 - <el-input-number v-model="activeData.min" placeholder="最小值" />  
141 - </el-form-item>  
142 - <el-form-item v-if="activeData.max !== undefined" label="最大值">  
143 - <el-input-number v-model="activeData.max" placeholder="最大值" />  
144 - </el-form-item>  
145 - <el-form-item v-if="activeData.step !== undefined" label="步长">  
146 - <el-input-number v-model="activeData.step" placeholder="步数" />  
147 - </el-form-item>  
148 - <el-form-item v-if="activeData.tag === 'el-input-number'" label="精度">  
149 - <el-input-number v-model="activeData.precision" :min="0" placeholder="精度" />  
150 - </el-form-item>  
151 - <el-form-item v-if="activeData.tag === 'el-input-number'" label="按钮位置">  
152 - <el-radio-group v-model="activeData['controls-position']">  
153 - <el-radio-button label="">  
154 - 默认  
155 - </el-radio-button>  
156 - <el-radio-button label="right">  
157 - 右侧  
158 - </el-radio-button>  
159 - </el-radio-group>  
160 - </el-form-item>  
161 - <el-form-item v-if="activeData.maxlength !== undefined" label="最多输入">  
162 - <el-input v-model="activeData.maxlength" placeholder="请输入字符长度">  
163 - <template slot="append">  
164 - 个字符  
165 - </template>  
166 - </el-input>  
167 - </el-form-item>  
168 - <el-form-item v-if="activeData['active-text'] !== undefined" label="开启提示">  
169 - <el-input v-model="activeData['active-text']" placeholder="请输入开启提示" />  
170 - </el-form-item>  
171 - <el-form-item v-if="activeData['inactive-text'] !== undefined" label="关闭提示">  
172 - <el-input v-model="activeData['inactive-text']" placeholder="请输入关闭提示" />  
173 - </el-form-item>  
174 - <el-form-item v-if="activeData['active-value'] !== undefined" label="开启值">  
175 - <el-input  
176 - :value="setDefaultValue(activeData['active-value'])"  
177 - placeholder="请输入开启值"  
178 - @input="onSwitchValueInput($event, 'active-value')"  
179 - />  
180 - </el-form-item>  
181 - <el-form-item v-if="activeData['inactive-value'] !== undefined" label="关闭值">  
182 - <el-input  
183 - :value="setDefaultValue(activeData['inactive-value'])"  
184 - placeholder="请输入关闭值"  
185 - @input="onSwitchValueInput($event, 'inactive-value')"  
186 - />  
187 - </el-form-item>  
188 - <el-form-item  
189 - v-if="activeData.type !== undefined && 'el-date-picker' === activeData.tag"  
190 - label="时间类型"  
191 - >  
192 - <el-select  
193 - v-model="activeData.type"  
194 - placeholder="请选择时间类型"  
195 - :style="{ width: '100%' }"  
196 - @change="dateTypeChange"  
197 - >  
198 - <el-option  
199 - v-for="(item, index) in dateOptions"  
200 - :key="index"  
201 - :label="item.label"  
202 - :value="item.value"  
203 - />  
204 - </el-select>  
205 - </el-form-item>  
206 - <el-form-item v-if="activeData.name !== undefined" label="文件字段名">  
207 - <el-input v-model="activeData.name" placeholder="请输入上传文件字段名" />  
208 - </el-form-item>  
209 - <el-form-item v-if="activeData.accept !== undefined" label="文件类型">  
210 - <el-select  
211 - v-model="activeData.accept"  
212 - placeholder="请选择文件类型"  
213 - :style="{ width: '100%' }"  
214 - clearable  
215 - >  
216 - <el-option label="图片" value="image/*" />  
217 - <el-option label="视频" value="video/*" />  
218 - <el-option label="音频" value="audio/*" />  
219 - <el-option label="excel" value=".xls,.xlsx" />  
220 - <el-option label="word" value=".doc,.docx" />  
221 - <el-option label="pdf" value=".pdf" />  
222 - <el-option label="txt" value=".txt" />  
223 - </el-select>  
224 - </el-form-item>  
225 - <el-form-item v-if="activeData.fileSize !== undefined" label="文件大小">  
226 - <el-input v-model.number="activeData.fileSize" placeholder="请输入文件大小">  
227 - <el-select slot="append" v-model="activeData.sizeUnit" :style="{ width: '66px' }">  
228 - <el-option label="KB" value="KB" />  
229 - <el-option label="MB" value="MB" />  
230 - <el-option label="GB" value="GB" />  
231 - </el-select>  
232 - </el-input>  
233 - </el-form-item>  
234 - <el-form-item v-if="activeData.action !== undefined" label="上传地址">  
235 - <el-input v-model="activeData.action" placeholder="请输入上传地址" clearable />  
236 - </el-form-item>  
237 - <el-form-item v-if="activeData['list-type'] !== undefined" label="列表类型">  
238 - <el-radio-group v-model="activeData['list-type']" size="small">  
239 - <el-radio-button label="text">  
240 - text  
241 - </el-radio-button>  
242 - <el-radio-button label="picture">  
243 - picture  
244 - </el-radio-button>  
245 - <el-radio-button label="picture-card">  
246 - picture-card  
247 - </el-radio-button>  
248 - </el-radio-group>  
249 - </el-form-item>  
250 - <el-form-item  
251 - v-if="activeData.buttonText !== undefined"  
252 - v-show="'picture-card' !== activeData['list-type']"  
253 - label="按钮文字"  
254 - >  
255 - <el-input v-model="activeData.buttonText" placeholder="请输入按钮文字" />  
256 - </el-form-item>  
257 - <el-form-item v-if="activeData['range-separator'] !== undefined" label="分隔符">  
258 - <el-input v-model="activeData['range-separator']" placeholder="请输入分隔符" />  
259 - </el-form-item>  
260 - <el-form-item v-if="activeData['picker-options'] !== undefined" label="时间段">  
261 - <el-input  
262 - v-model="activeData['picker-options'].selectableRange"  
263 - placeholder="请输入时间段"  
264 - />  
265 - </el-form-item>  
266 - <el-form-item v-if="activeData.format !== undefined" label="时间格式">  
267 - <el-input  
268 - :value="activeData.format"  
269 - placeholder="请输入时间格式"  
270 - @input="setTimeValue($event)"  
271 - />  
272 - </el-form-item>  
273 - <template v-if="['el-checkbox-group', 'el-radio-group', 'el-select'].indexOf(activeData.tag) > -1">  
274 - <el-divider>选项</el-divider>  
275 - <draggable  
276 - :list="activeData.options"  
277 - :animation="340"  
278 - group="selectItem"  
279 - handle=".option-drag"  
280 - >  
281 - <div v-for="(item, index) in activeData.options" :key="index" class="select-item">  
282 - <div class="select-line-icon option-drag">  
283 - <i class="el-icon-s-operation" />  
284 - </div>  
285 - <el-input v-model="item.label" placeholder="选项名" size="small" />  
286 - <el-input  
287 - placeholder="选项值"  
288 - size="small"  
289 - :value="item.value"  
290 - @input="setOptionValue(item, $event)"  
291 - />  
292 - <div class="close-btn select-line-icon" @click="activeData.options.splice(index, 1)">  
293 - <i class="el-icon-remove-outline" />  
294 - </div>  
295 - </div>  
296 - </draggable>  
297 - <div style="margin-left: 20px;">  
298 - <el-button  
299 - style="padding-bottom: 0"  
300 - icon="el-icon-circle-plus-outline"  
301 - type="text"  
302 - @click="addSelectItem"  
303 - >  
304 - 添加选项  
305 - </el-button>  
306 - </div>  
307 - <el-divider />  
308 - </template>  
309 -  
310 - <template v-if="['el-cascader'].indexOf(activeData.tag) > -1">  
311 - <el-divider>选项</el-divider>  
312 - <el-form-item label="数据类型">  
313 - <el-radio-group v-model="activeData.dataType" size="small">  
314 - <el-radio-button label="dynamic">  
315 - 动态数据  
316 - </el-radio-button>  
317 - <el-radio-button label="static">  
318 - 静态数据  
319 - </el-radio-button>  
320 - </el-radio-group>  
321 - </el-form-item>  
322 -  
323 - <template v-if="activeData.dataType === 'dynamic'">  
324 - <el-form-item label="标签键名">  
325 - <el-input v-model="activeData.labelKey" placeholder="请输入标签键名" />  
326 - </el-form-item>  
327 - <el-form-item label="值键名">  
328 - <el-input v-model="activeData.valueKey" placeholder="请输入值键名" />  
329 - </el-form-item>  
330 - <el-form-item label="子级键名">  
331 - <el-input v-model="activeData.childrenKey" placeholder="请输入子级键名" />  
332 - </el-form-item>  
333 - </template>  
334 -  
335 - <el-tree  
336 - v-if="activeData.dataType === 'static'"  
337 - draggable  
338 - :data="activeData.options"  
339 - node-key="id"  
340 - :expand-on-click-node="false"  
341 - :render-content="renderContent"  
342 - />  
343 - <div v-if="activeData.dataType === 'static'" style="margin-left: 20px">  
344 - <el-button  
345 - style="padding-bottom: 0"  
346 - icon="el-icon-circle-plus-outline"  
347 - type="text"  
348 - @click="addTreeItem"  
349 - >  
350 - 添加父级  
351 - </el-button>  
352 - </div>  
353 - <el-divider />  
354 - </template>  
355 -  
356 - <el-form-item v-if="activeData.optionType !== undefined" label="选项样式">  
357 - <el-radio-group v-model="activeData.optionType">  
358 - <el-radio-button label="default">  
359 - 默认  
360 - </el-radio-button>  
361 - <el-radio-button label="button">  
362 - 按钮  
363 - </el-radio-button>  
364 - </el-radio-group>  
365 - </el-form-item>  
366 - <el-form-item v-if="activeData['active-color'] !== undefined" label="开启颜色">  
367 - <el-color-picker v-model="activeData['active-color']" />  
368 - </el-form-item>  
369 - <el-form-item v-if="activeData['inactive-color'] !== undefined" label="关闭颜色">  
370 - <el-color-picker v-model="activeData['inactive-color']" />  
371 - </el-form-item>  
372 -  
373 - <el-form-item v-if="activeData['allow-half'] !== undefined" label="允许半选">  
374 - <el-switch v-model="activeData['allow-half']" />  
375 - </el-form-item>  
376 - <el-form-item v-if="activeData['show-text'] !== undefined" label="辅助文字">  
377 - <el-switch v-model="activeData['show-text']" @change="rateTextChange" />  
378 - </el-form-item>  
379 - <el-form-item v-if="activeData['show-score'] !== undefined" label="显示分数">  
380 - <el-switch v-model="activeData['show-score']" @change="rateScoreChange" />  
381 - </el-form-item>  
382 - <el-form-item v-if="activeData['show-stops'] !== undefined" label="显示间断点">  
383 - <el-switch v-model="activeData['show-stops']" />  
384 - </el-form-item>  
385 - <el-form-item v-if="activeData.range !== undefined" label="范围选择">  
386 - <el-switch v-model="activeData.range" @change="rangeChange" />  
387 - </el-form-item>  
388 - <el-form-item  
389 - v-if="activeData.border !== undefined && activeData.optionType === 'default'"  
390 - label="是否带边框"  
391 - >  
392 - <el-switch v-model="activeData.border" />  
393 - </el-form-item>  
394 - <el-form-item v-if="activeData.tag === 'el-color-picker'" label="颜色格式">  
395 - <el-select  
396 - v-model="activeData['color-format']"  
397 - placeholder="请选择颜色格式"  
398 - :style="{ width: '100%' }"  
399 - @change="colorFormatChange"  
400 - >  
401 - <el-option  
402 - v-for="(item, index) in colorFormatOptions"  
403 - :key="index"  
404 - :label="item.label"  
405 - :value="item.value"  
406 - />  
407 - </el-select>  
408 - </el-form-item>  
409 - <el-form-item  
410 - v-if="activeData.size !== undefined &&  
411 - (activeData.optionType === 'button' ||  
412 - activeData.border ||  
413 - activeData.tag === 'el-color-picker')"  
414 - label="选项尺寸"  
415 - >  
416 - <el-radio-group v-model="activeData.size">  
417 - <el-radio-button label="medium">  
418 - 中等  
419 - </el-radio-button>  
420 - <el-radio-button label="small">  
421 - 较小  
422 - </el-radio-button>  
423 - <el-radio-button label="mini">  
424 - 迷你  
425 - </el-radio-button>  
426 - </el-radio-group>  
427 - </el-form-item>  
428 - <el-form-item v-if="activeData['show-word-limit'] !== undefined" label="输入统计">  
429 - <el-switch v-model="activeData['show-word-limit']" />  
430 - </el-form-item>  
431 - <el-form-item v-if="activeData.tag === 'el-input-number'" label="严格步数">  
432 - <el-switch v-model="activeData['step-strictly']" />  
433 - </el-form-item>  
434 - <el-form-item v-if="activeData.tag === 'el-cascader'" label="是否多选">  
435 - <el-switch v-model="activeData.props.props.multiple" />  
436 - </el-form-item>  
437 - <el-form-item v-if="activeData.tag === 'el-cascader'" label="展示全路径">  
438 - <el-switch v-model="activeData['show-all-levels']" />  
439 - </el-form-item>  
440 - <el-form-item v-if="activeData.tag === 'el-cascader'" label="可否筛选">  
441 - <el-switch v-model="activeData.filterable" />  
442 - </el-form-item>  
443 - <el-form-item v-if="activeData.clearable !== undefined" label="能否清空">  
444 - <el-switch v-model="activeData.clearable" />  
445 - </el-form-item>  
446 - <el-form-item v-if="activeData.showTip !== undefined" label="显示提示">  
447 - <el-switch v-model="activeData.showTip" />  
448 - </el-form-item>  
449 - <el-form-item v-if="activeData.multiple !== undefined" label="多选文件">  
450 - <el-switch v-model="activeData.multiple" />  
451 - </el-form-item>  
452 - <el-form-item v-if="activeData['auto-upload'] !== undefined" label="自动上传">  
453 - <el-switch v-model="activeData['auto-upload']" />  
454 - </el-form-item>  
455 - <el-form-item v-if="activeData.readonly !== undefined" label="是否只读">  
456 - <el-switch v-model="activeData.readonly" />  
457 - </el-form-item>  
458 - <el-form-item v-if="activeData.disabled !== undefined" label="是否禁用">  
459 - <el-switch v-model="activeData.disabled" />  
460 - </el-form-item>  
461 - <el-form-item v-if="activeData.tag === 'el-select'" label="是否可搜索">  
462 - <el-switch v-model="activeData.filterable" />  
463 - </el-form-item>  
464 - <el-form-item v-if="activeData.tag === 'el-select'" label="是否多选">  
465 - <el-switch v-model="activeData.multiple" @change="multipleChange" />  
466 - </el-form-item>  
467 - <el-form-item v-if="activeData.required !== undefined" label="是否必填">  
468 - <el-switch v-model="activeData.required" />  
469 - </el-form-item>  
470 -  
471 - <template v-if="activeData.layoutTree">  
472 - <el-divider>布局结构树</el-divider>  
473 - <el-tree  
474 - :data="[activeData]"  
475 - :props="layoutTreeProps"  
476 - node-key="renderKey"  
477 - default-expand-all  
478 - draggable  
479 - >  
480 - <span slot-scope="{ node, data }">  
481 - <span class="node-label">  
482 - <svg-icon class="node-icon" :icon-class="data.tagIcon" />  
483 - {{ node.label }}  
484 - </span>  
485 - </span>  
486 - </el-tree>  
487 - </template>  
488 -  
489 - <template v-if="activeData.layout === 'colFormItem'">  
490 - <el-divider>正则校验</el-divider>  
491 - <div  
492 - v-for="(item, index) in activeData.regList"  
493 - :key="index"  
494 - class="reg-item"  
495 - >  
496 - <span class="close-btn" @click="activeData.regList.splice(index, 1)">  
497 - <i class="el-icon-close" />  
498 - </span>  
499 - <el-form-item label="表达式">  
500 - <el-input v-model="item.pattern" placeholder="请输入正则" />  
501 - </el-form-item>  
502 - <el-form-item label="错误提示" style="margin-bottom:0">  
503 - <el-input v-model="item.message" placeholder="请输入错误提示" />  
504 - </el-form-item>  
505 - </div>  
506 - <div style="margin-left: 20px">  
507 - <el-button icon="el-icon-circle-plus-outline" type="text" @click="addReg">  
508 - 添加规则  
509 - </el-button>  
510 - </div>  
511 - </template>  
512 - </el-form>  
513 - <!-- 表单属性 -->  
514 - <el-form v-show="currentTab === 'form'" size="small" label-width="90px">  
515 - <el-form-item label="表单名">  
516 - <el-input v-model="formConf.formRef" placeholder="请输入表单名(ref)" />  
517 - </el-form-item>  
518 - <el-form-item label="表单模型">  
519 - <el-input v-model="formConf.formModel" placeholder="请输入数据模型" />  
520 - </el-form-item>  
521 - <el-form-item label="校验模型">  
522 - <el-input v-model="formConf.formRules" placeholder="请输入校验模型" />  
523 - </el-form-item>  
524 - <el-form-item label="表单尺寸">  
525 - <el-radio-group v-model="formConf.size">  
526 - <el-radio-button label="medium">  
527 - 中等  
528 - </el-radio-button>  
529 - <el-radio-button label="small">  
530 - 较小  
531 - </el-radio-button>  
532 - <el-radio-button label="mini">  
533 - 迷你  
534 - </el-radio-button>  
535 - </el-radio-group>  
536 - </el-form-item>  
537 - <el-form-item label="标签对齐">  
538 - <el-radio-group v-model="formConf.labelPosition">  
539 - <el-radio-button label="left">  
540 - 左对齐  
541 - </el-radio-button>  
542 - <el-radio-button label="right">  
543 - 右对齐  
544 - </el-radio-button>  
545 - <el-radio-button label="top">  
546 - 顶部对齐  
547 - </el-radio-button>  
548 - </el-radio-group>  
549 - </el-form-item>  
550 - <el-form-item label="标签宽度">  
551 - <el-input-number v-model="formConf.labelWidth" placeholder="标签宽度" />  
552 - </el-form-item>  
553 - <el-form-item label="栅格间隔">  
554 - <el-input-number v-model="formConf.gutter" :min="0" placeholder="栅格间隔" />  
555 - </el-form-item>  
556 - <el-form-item label="禁用表单">  
557 - <el-switch v-model="formConf.disabled" />  
558 - </el-form-item>  
559 - <el-form-item label="表单按钮">  
560 - <el-switch v-model="formConf.formBtns" />  
561 - </el-form-item>  
562 - <el-form-item label="显示未选中组件边框">  
563 - <el-switch v-model="formConf.unFocusedComponentBorder" />  
564 - </el-form-item>  
565 - </el-form>  
566 - </el-scrollbar>  
567 - </div>  
568 -  
569 - <treeNode-dialog :visible.sync="dialogVisible" title="添加选项" @commit="addNode" />  
570 - <icons-dialog :visible.sync="iconsVisible" :current="activeData[currentIconModel]" @select="setIcon" />  
571 - </div>  
572 -</template>  
573 -  
574 -<script>  
575 -import { isArray } from 'util'  
576 -import TreeNodeDialog from './TreeNodeDialog'  
577 -import { isNumberStr } from '@/utils/index'  
578 -import IconsDialog from './IconsDialog'  
579 -import {  
580 - inputComponents,  
581 - selectComponents,  
582 - layoutComponents  
583 -} from '@/utils/generator/config'  
584 -  
585 -const dateTimeFormat = {  
586 - date: 'yyyy-MM-dd',  
587 - week: 'yyyy 第 WW 周',  
588 - month: 'yyyy-MM',  
589 - year: 'yyyy',  
590 - datetime: 'yyyy-MM-dd HH:mm:ss',  
591 - daterange: 'yyyy-MM-dd',  
592 - monthrange: 'yyyy-MM',  
593 - datetimerange: 'yyyy-MM-dd HH:mm:ss'  
594 -}  
595 -  
596 -export default {  
597 - components: {  
598 - TreeNodeDialog,  
599 - IconsDialog  
600 - },  
601 - props: ['showField', 'activeData', 'formConf'],  
602 - data() {  
603 - return {  
604 - currentTab: 'field',  
605 - currentNode: null,  
606 - dialogVisible: false,  
607 - iconsVisible: false,  
608 - currentIconModel: null,  
609 - dateTypeOptions: [  
610 - {  
611 - label: '日(date)',  
612 - value: 'date'  
613 - },  
614 - {  
615 - label: '周(week)',  
616 - value: 'week'  
617 - },  
618 - {  
619 - label: '月(month)',  
620 - value: 'month'  
621 - },  
622 - {  
623 - label: '年(year)',  
624 - value: 'year'  
625 - },  
626 - {  
627 - label: '日期时间(datetime)',  
628 - value: 'datetime'  
629 - }  
630 - ],  
631 - dateRangeTypeOptions: [  
632 - {  
633 - label: '日期范围(daterange)',  
634 - value: 'daterange'  
635 - },  
636 - {  
637 - label: '月范围(monthrange)',  
638 - value: 'monthrange'  
639 - },  
640 - {  
641 - label: '日期时间范围(datetimerange)',  
642 - value: 'datetimerange'  
643 - }  
644 - ],  
645 - colorFormatOptions: [  
646 - {  
647 - label: 'hex',  
648 - value: 'hex'  
649 - },  
650 - {  
651 - label: 'rgb',  
652 - value: 'rgb'  
653 - },  
654 - {  
655 - label: 'rgba',  
656 - value: 'rgba'  
657 - },  
658 - {  
659 - label: 'hsv',  
660 - value: 'hsv'  
661 - },  
662 - {  
663 - label: 'hsl',  
664 - value: 'hsl'  
665 - }  
666 - ],  
667 - justifyOptions: [  
668 - {  
669 - label: 'start',  
670 - value: 'start'  
671 - },  
672 - {  
673 - label: 'end',  
674 - value: 'end'  
675 - },  
676 - {  
677 - label: 'center',  
678 - value: 'center'  
679 - },  
680 - {  
681 - label: 'space-around',  
682 - value: 'space-around'  
683 - },  
684 - {  
685 - label: 'space-between',  
686 - value: 'space-between'  
687 - }  
688 - ],  
689 - layoutTreeProps: {  
690 - label(data, node) {  
691 - return data.componentName || `${data.label}: ${data.vModel}`  
692 - }  
693 - }  
694 - }  
695 - },  
696 - computed: {  
697 - documentLink() {  
698 - return (  
699 - this.activeData.document  
700 - || 'https://element.eleme.cn/#/zh-CN/component/installation'  
701 - )  
702 - },  
703 - dateOptions() {  
704 - if (  
705 - this.activeData.type !== undefined  
706 - && this.activeData.tag === 'el-date-picker'  
707 - ) {  
708 - if (this.activeData['start-placeholder'] === undefined) {  
709 - return this.dateTypeOptions  
710 - }  
711 - return this.dateRangeTypeOptions  
712 - }  
713 - return []  
714 - },  
715 - tagList() {  
716 - return [  
717 - {  
718 - label: '输入型组件',  
719 - options: inputComponents  
720 - },  
721 - {  
722 - label: '选择型组件',  
723 - options: selectComponents  
724 - }  
725 - ]  
726 - }  
727 - },  
728 - methods: {  
729 - addReg() {  
730 - this.activeData.regList.push({  
731 - pattern: '',  
732 - message: ''  
733 - })  
734 - },  
735 - addSelectItem() {  
736 - this.activeData.options.push({  
737 - label: '',  
738 - value: ''  
739 - })  
740 - },  
741 - addTreeItem() {  
742 - ++this.idGlobal  
743 - this.dialogVisible = true  
744 - this.currentNode = this.activeData.options  
745 - },  
746 - renderContent(h, { node, data, store }) {  
747 - return (  
748 - <div class="custom-tree-node">  
749 - <span>{node.label}</span>  
750 - <span class="node-operation">  
751 - <i on-click={() => this.append(data)}  
752 - class="el-icon-plus"  
753 - title="添加"  
754 - ></i>  
755 - <i on-click={() => this.remove(node, data)}  
756 - class="el-icon-delete"  
757 - title="删除"  
758 - ></i>  
759 - </span>  
760 - </div>  
761 - )  
762 - },  
763 - append(data) {  
764 - if (!data.children) {  
765 - this.$set(data, 'children', [])  
766 - }  
767 - this.dialogVisible = true  
768 - this.currentNode = data.children  
769 - },  
770 - remove(node, data) {  
771 - const { parent } = node  
772 - const children = parent.data.children || parent.data  
773 - const index = children.findIndex(d => d.id === data.id)  
774 - children.splice(index, 1)  
775 - },  
776 - addNode(data) {  
777 - this.currentNode.push(data)  
778 - },  
779 - setOptionValue(item, val) {  
780 - item.value = isNumberStr(val) ? +val : val  
781 - },  
782 - setDefaultValue(val) {  
783 - if (Array.isArray(val)) {  
784 - return val.join(',')  
785 - }  
786 - if (['string', 'number'].indexOf(val) > -1) {  
787 - return val  
788 - }  
789 - if (typeof val === 'boolean') {  
790 - return `${val}`  
791 - }  
792 - return val  
793 - },  
794 - onDefaultValueInput(str) {  
795 - if (isArray(this.activeData.defaultValue)) {  
796 - // 数组  
797 - this.$set(  
798 - this.activeData,  
799 - 'defaultValue',  
800 - str.split(',').map(val => (isNumberStr(val) ? +val : val))  
801 - )  
802 - } else if (['true', 'false'].indexOf(str) > -1) {  
803 - // 布尔  
804 - this.$set(this.activeData, 'defaultValue', JSON.parse(str))  
805 - } else {  
806 - // 字符串和数字  
807 - this.$set(  
808 - this.activeData,  
809 - 'defaultValue',  
810 - isNumberStr(str) ? +str : str  
811 - )  
812 - }  
813 - },  
814 - onSwitchValueInput(val, name) {  
815 - if (['true', 'false'].indexOf(val) > -1) {  
816 - this.$set(this.activeData, name, JSON.parse(val))  
817 - } else {  
818 - this.$set(this.activeData, name, isNumberStr(val) ? +val : val)  
819 - }  
820 - },  
821 - setTimeValue(val, type) {  
822 - const valueFormat = type === 'week' ? dateTimeFormat.date : val  
823 - this.$set(this.activeData, 'defaultValue', null)  
824 - this.$set(this.activeData, 'value-format', valueFormat)  
825 - this.$set(this.activeData, 'format', val)  
826 - },  
827 - spanChange(val) {  
828 - this.formConf.span = val  
829 - },  
830 - multipleChange(val) {  
831 - this.$set(this.activeData, 'defaultValue', val ? [] : '')  
832 - },  
833 - dateTypeChange(val) {  
834 - this.setTimeValue(dateTimeFormat[val], val)  
835 - },  
836 - rangeChange(val) {  
837 - this.$set(  
838 - this.activeData,  
839 - 'defaultValue',  
840 - val ? [this.activeData.min, this.activeData.max] : this.activeData.min  
841 - )  
842 - },  
843 - rateTextChange(val) {  
844 - if (val) this.activeData['show-score'] = false  
845 - },  
846 - rateScoreChange(val) {  
847 - if (val) this.activeData['show-text'] = false  
848 - },  
849 - colorFormatChange(val) {  
850 - this.activeData.defaultValue = null  
851 - this.activeData['show-alpha'] = val.indexOf('a') > -1  
852 - this.activeData.renderKey = +new Date() // 更新renderKey,重新渲染该组件  
853 - },  
854 - openIconsDialog(model) {  
855 - this.iconsVisible = true  
856 - this.currentIconModel = model  
857 - },  
858 - setIcon(val) {  
859 - this.activeData[this.currentIconModel] = val  
860 - },  
861 - tagChange(tagIcon) {  
862 - let target = inputComponents.find(item => item.tagIcon === tagIcon)  
863 - if (!target) target = selectComponents.find(item => item.tagIcon === tagIcon)  
864 - this.$emit('tag-change', target)  
865 - }  
866 - }  
867 -}  
868 -</script>  
869 -  
870 -<style lang="scss" scoped>  
871 -.right-board {  
872 - width: 350px;  
873 - position: absolute;  
874 - right: 0;  
875 - top: 0;  
876 - padding-top: 3px;  
877 - .field-box {  
878 - position: relative;  
879 - height: calc(100vh - 42px);  
880 - box-sizing: border-box;  
881 - overflow: hidden;  
882 - }  
883 - .el-scrollbar {  
884 - height: 100%;  
885 - }  
886 -}  
887 -.select-item {  
888 - display: flex;  
889 - border: 1px dashed #fff;  
890 - box-sizing: border-box;  
891 - & .close-btn {  
892 - cursor: pointer;  
893 - color: #f56c6c;  
894 - }  
895 - & .el-input + .el-input {  
896 - margin-left: 4px;  
897 - }  
898 -}  
899 -.select-item + .select-item {  
900 - margin-top: 4px;  
901 -}  
902 -.select-item.sortable-chosen {  
903 - border: 1px dashed #409eff;  
904 -}  
905 -.select-line-icon {  
906 - line-height: 32px;  
907 - font-size: 22px;  
908 - padding: 0 4px;  
909 - color: #777;  
910 -}  
911 -.option-drag {  
912 - cursor: move;  
913 -}  
914 -.time-range {  
915 - .el-date-editor {  
916 - width: 227px;  
917 - }  
918 - ::v-deep .el-icon-time {  
919 - display: none;  
920 - }  
921 -}  
922 -.document-link {  
923 - position: absolute;  
924 - display: block;  
925 - width: 26px;  
926 - height: 26px;  
927 - top: 0;  
928 - left: 0;  
929 - cursor: pointer;  
930 - background: #409eff;  
931 - z-index: 1;  
932 - border-radius: 0 0 6px 0;  
933 - text-align: center;  
934 - line-height: 26px;  
935 - color: #fff;  
936 - font-size: 18px;  
937 -}  
938 -.node-label{  
939 - font-size: 14px;  
940 -}  
941 -.node-icon{  
942 - color: #bebfc3;  
943 -}  
944 -</style>  
yudao-admin-ui/src/views/bpm/form/build/TreeNodeDialog.vue deleted
1 -<template>  
2 - <div>  
3 - <el-dialog  
4 - v-bind="$attrs"  
5 - :close-on-click-modal="false"  
6 - :modal-append-to-body="false"  
7 - v-on="$listeners"  
8 - @open="onOpen"  
9 - @close="onClose"  
10 - >  
11 - <el-row :gutter="0">  
12 - <el-form  
13 - ref="elForm"  
14 - :model="formData"  
15 - :rules="rules"  
16 - size="small"  
17 - label-width="100px"  
18 - >  
19 - <el-col :span="24">  
20 - <el-form-item  
21 - label="选项名"  
22 - prop="label"  
23 - >  
24 - <el-input  
25 - v-model="formData.label"  
26 - placeholder="请输入选项名"  
27 - clearable  
28 - />  
29 - </el-form-item>  
30 - </el-col>  
31 - <el-col :span="24">  
32 - <el-form-item  
33 - label="选项值"  
34 - prop="value"  
35 - >  
36 - <el-input  
37 - v-model="formData.value"  
38 - placeholder="请输入选项值"  
39 - clearable  
40 - >  
41 - <el-select  
42 - slot="append"  
43 - v-model="dataType"  
44 - :style="{width: '100px'}"  
45 - >  
46 - <el-option  
47 - v-for="(item, index) in dataTypeOptions"  
48 - :key="index"  
49 - :label="item.label"  
50 - :value="item.value"  
51 - :disabled="item.disabled"  
52 - />  
53 - </el-select>  
54 - </el-input>  
55 - </el-form-item>  
56 - </el-col>  
57 - </el-form>  
58 - </el-row>  
59 - <div slot="footer">  
60 - <el-button  
61 - type="primary"  
62 - @click="handelConfirm"  
63 - >  
64 - 确定  
65 - </el-button>  
66 - <el-button @click="close">  
67 - 取消  
68 - </el-button>  
69 - </div>  
70 - </el-dialog>  
71 - </div>  
72 -</template>  
73 -<script>  
74 -import { isNumberStr } from '@/utils/index'  
75 -  
76 -export default {  
77 - components: {},  
78 - inheritAttrs: false,  
79 - props: [],  
80 - data() {  
81 - return {  
82 - id: 100,  
83 - formData: {  
84 - label: undefined,  
85 - value: undefined  
86 - },  
87 - rules: {  
88 - label: [  
89 - {  
90 - required: true,  
91 - message: '请输入选项名',  
92 - trigger: 'blur'  
93 - }  
94 - ],  
95 - value: [  
96 - {  
97 - required: true,  
98 - message: '请输入选项值',  
99 - trigger: 'blur'  
100 - }  
101 - ]  
102 - },  
103 - dataType: 'string',  
104 - dataTypeOptions: [  
105 - {  
106 - label: '字符串',  
107 - value: 'string'  
108 - },  
109 - {  
110 - label: '数字',  
111 - value: 'number'  
112 - }  
113 - ]  
114 - }  
115 - },  
116 - computed: {},  
117 - watch: {  
118 - // eslint-disable-next-line func-names  
119 - 'formData.value': function (val) {  
120 - this.dataType = isNumberStr(val) ? 'number' : 'string'  
121 - }  
122 - },  
123 - created() {},  
124 - mounted() {},  
125 - methods: {  
126 - onOpen() {  
127 - this.formData = {  
128 - label: undefined,  
129 - value: undefined  
130 - }  
131 - },  
132 - onClose() {},  
133 - close() {  
134 - this.$emit('update:visible', false)  
135 - },  
136 - handelConfirm() {  
137 - this.$refs.elForm.validate(valid => {  
138 - if (!valid) return  
139 - if (this.dataType === 'number') {  
140 - this.formData.value = parseFloat(this.formData.value)  
141 - }  
142 - this.formData.id = this.id++  
143 - this.$emit('commit', this.formData)  
144 - this.close()  
145 - })  
146 - }  
147 - }  
148 -}  
149 -</script>  
yudao-admin-ui/src/views/bpm/form/build/index.vue renamed to yudao-admin-ui/src/views/bpm/form/formEditor.vue
@@ -97,18 +97,13 @@ @@ -97,18 +97,13 @@
97 <script> 97 <script>
98 import draggable from 'vuedraggable' 98 import draggable from 'vuedraggable'
99 import render from '@/utils/generator/render' 99 import render from '@/utils/generator/render'
100 -import RightPanel from './RightPanel'  
101 -import {  
102 - inputComponents,  
103 - selectComponents,  
104 - layoutComponents,  
105 - formConf  
106 -} from '@/utils/generator/config' 100 +import { inputComponents, selectComponents, layoutComponents, formConf} from '@/utils/generator/config'
107 import drawingDefalut from '@/utils/generator/drawingDefalut' 101 import drawingDefalut from '@/utils/generator/drawingDefalut'
108 // import logo from '@/assets/logo/logo.png' 102 // import logo from '@/assets/logo/logo.png'
109 -import DraggableItem from './DraggableItem' 103 +import DraggableItem from './../../tool/build/DraggableItem'
  104 +import RightPanel from './../../tool/build/RightPanel'
110 105
111 -const emptyActiveData = { style: {}, autosize: {} } 106 +// const emptyActiveData = { style: {}, autosize: {} }
112 let oldActiveId 107 let oldActiveId
113 let tempActiveData 108 let tempActiveData
114 109
@@ -147,8 +142,6 @@ export default { @@ -147,8 +142,6 @@ export default {
147 } 142 }
148 } 143 }
149 }, 144 },
150 - computed: {  
151 - },  
152 watch: { 145 watch: {
153 // eslint-disable-next-line func-names 146 // eslint-disable-next-line func-names
154 'activeData.label': function (val, oldVal) { 147 'activeData.label': function (val, oldVal) {