tianheng-ui 0.1.10 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/theme-chalk/styles/reset.scss +0 -2
- package/lib/tianheng-ui.js +13 -14
- package/package.json +1 -1
- package/packages/FormMaking/GenerateForm.vue +16 -11
- package/packages/FormMaking/GenerateFormItem.vue +73 -581
- package/packages/FormMaking/GenerateFormItemH5.vue +6 -6
- package/packages/FormMaking/Upload/index.vue +0 -1
- package/packages/FormMaking/WidgetConfig.vue +100 -77
- package/packages/FormMaking/WidgetForm.vue +7 -48
- package/packages/FormMaking/WidgetFormItem.vue +41 -65
- package/packages/FormMaking/WidgetSelect.vue +160 -0
- package/packages/FormMaking/WidgetTools.vue +538 -0
- package/packages/FormMaking/config/index.js +6 -0
- package/packages/FormMaking/custom/config.js +119 -87
- package/packages/FormMaking/custom/configs/button.vue +24 -25
- package/packages/FormMaking/custom/configs/cascader.vue +7 -7
- package/packages/FormMaking/custom/configs/checkbox.vue +23 -22
- package/packages/FormMaking/custom/configs/color.vue +3 -3
- package/packages/FormMaking/custom/configs/date.vue +3 -3
- package/packages/FormMaking/custom/configs/grid.vue +4 -4
- package/packages/FormMaking/custom/configs/input.vue +138 -31
- package/packages/FormMaking/custom/configs/number.vue +5 -5
- package/packages/FormMaking/custom/configs/radio.vue +23 -19
- package/packages/FormMaking/custom/configs/rate.vue +3 -3
- package/packages/FormMaking/custom/configs/select.vue +25 -20
- package/packages/FormMaking/custom/configs/slider.vue +3 -3
- package/packages/FormMaking/custom/configs/switch.vue +3 -3
- package/packages/FormMaking/custom/configs/table.vue +2 -2
- package/packages/FormMaking/custom/configs/{table_h5.vue → tableH5.vue} +2 -2
- package/packages/FormMaking/custom/configs/tabs.vue +18 -23
- package/packages/FormMaking/custom/configs/textarea.vue +124 -22
- package/packages/FormMaking/custom/configs/time.vue +3 -3
- package/packages/FormMaking/custom/configs/upload.vue +5 -5
- package/packages/FormMaking/custom/index.js +2 -4
- package/packages/FormMaking/custom/items/alliance.vue +30 -29
- package/packages/FormMaking/custom/items/blank_pro.vue +14 -0
- package/packages/FormMaking/custom/items/button.vue +36 -1
- package/packages/FormMaking/custom/items/cascader.vue +6 -2
- package/packages/FormMaking/custom/items/cell.vue +0 -2
- package/packages/FormMaking/custom/items/checkbox.vue +18 -8
- package/packages/FormMaking/custom/items/color.vue +1 -1
- package/packages/FormMaking/custom/items/date.vue +1 -1
- package/packages/FormMaking/custom/items/editor.vue +1 -1
- package/packages/FormMaking/custom/items/{grid.vue → grid_dev.vue} +16 -47
- package/packages/FormMaking/custom/items/grid_pro.vue +45 -0
- package/packages/FormMaking/custom/items/image.vue +0 -28
- package/packages/FormMaking/custom/items/input.vue +15 -9
- package/packages/FormMaking/custom/items/number.vue +4 -4
- package/packages/FormMaking/custom/items/radio.vue +17 -7
- package/packages/FormMaking/custom/items/rate.vue +1 -1
- package/packages/FormMaking/custom/items/select.vue +12 -6
- package/packages/FormMaking/custom/items/slider.vue +1 -1
- package/packages/FormMaking/custom/items/switch.vue +1 -1
- package/packages/FormMaking/custom/items/{table_h5.vue → tableH5_dev.vue} +44 -49
- package/packages/FormMaking/custom/items/tableH5_pro.vue +113 -0
- package/packages/FormMaking/custom/items/{table.vue → table_dev.vue} +21 -41
- package/packages/FormMaking/custom/items/table_pro.vue +114 -0
- package/packages/FormMaking/custom/items/tabs_dev.vue +101 -0
- package/packages/FormMaking/custom/items/tabs_pro.vue +50 -0
- package/packages/FormMaking/custom/items/text.vue +1 -1
- package/packages/FormMaking/custom/items/textarea.vue +4 -13
- package/packages/FormMaking/custom/items/time.vue +3 -3
- package/packages/FormMaking/custom/items/upload.vue +15 -14
- package/packages/FormMaking/custom/mixins/index.js +28 -6
- package/packages/FormMaking/custom/register.js +22 -11
- package/packages/FormMaking/index.vue +95 -468
- package/packages/FormMaking/styles/index.scss +235 -242
- package/packages/FormMaking/util/generateCode.js +3 -3
- package/packages/FormMaking/util/index.js +33 -23
- package/packages/FormMaking/util/request.js +9 -12
- package/packages/FormMaking/custom/items/tabs.vue +0 -145
- /package/packages/FormMaking/custom/items/{blank.vue → blank_dev.vue} +0 -0
@@ -19,7 +19,7 @@
|
|
19
19
|
<el-form-item label="列配置项">
|
20
20
|
<draggable
|
21
21
|
tag="ul"
|
22
|
-
:list="widget.columns"
|
22
|
+
:list="widget.options.columns"
|
23
23
|
v-bind="{
|
24
24
|
group: { name: 'options' },
|
25
25
|
ghostClass: 'ghost',
|
@@ -27,7 +27,7 @@
|
|
27
27
|
}"
|
28
28
|
handle=".drag-item"
|
29
29
|
>
|
30
|
-
<li v-for="(item, index) in widget.columns" :key="index">
|
30
|
+
<li v-for="(item, index) in widget.options.columns" :key="index">
|
31
31
|
<el-input
|
32
32
|
placeholder="栅格值"
|
33
33
|
style="width: 100px;"
|
@@ -88,13 +88,13 @@ export default {
|
|
88
88
|
mounted() {},
|
89
89
|
methods: {
|
90
90
|
handleAddOption() {
|
91
|
-
this.widget.columns.push({
|
91
|
+
this.widget.options.columns.push({
|
92
92
|
span: "",
|
93
93
|
list: []
|
94
94
|
});
|
95
95
|
},
|
96
96
|
handleOptionsRemove(index) {
|
97
|
-
this.widget.columns.splice(index, 1);
|
97
|
+
this.widget.options.columns.splice(index, 1);
|
98
98
|
}
|
99
99
|
}
|
100
100
|
};
|
@@ -6,7 +6,7 @@
|
|
6
6
|
</el-form-item>
|
7
7
|
|
8
8
|
<el-form-item label="标题">
|
9
|
-
<el-input v-model="widget.name"></el-input>
|
9
|
+
<el-input v-model="widget.name" clearable></el-input>
|
10
10
|
</el-form-item>
|
11
11
|
|
12
12
|
<el-form-item label="标签宽度">
|
@@ -25,15 +25,15 @@
|
|
25
25
|
</el-form-item>
|
26
26
|
|
27
27
|
<el-form-item label="宽度">
|
28
|
-
<el-input v-model="widget.options.width"></el-input>
|
28
|
+
<el-input v-model="widget.options.width" clearable></el-input>
|
29
29
|
</el-form-item>
|
30
30
|
|
31
31
|
<el-form-item label="占位内容">
|
32
|
-
<el-input v-model="widget.options.placeholder"></el-input>
|
32
|
+
<el-input v-model="widget.options.placeholder" clearable></el-input>
|
33
33
|
</el-form-item>
|
34
34
|
|
35
35
|
<el-form-item label="默认值">
|
36
|
-
<el-input v-model="widget.options.defaultValue"></el-input>
|
36
|
+
<el-input v-model="widget.options.defaultValue" clearable></el-input>
|
37
37
|
</el-form-item>
|
38
38
|
|
39
39
|
<el-form-item label="最大字数">
|
@@ -49,16 +49,18 @@
|
|
49
49
|
|
50
50
|
<el-form-item label="带入icon">
|
51
51
|
<el-input
|
52
|
-
placeholder="请输入icon类名"
|
53
52
|
v-model="widget.options.prefixIcon"
|
53
|
+
placeholder="请输入icon类名"
|
54
|
+
clearable
|
54
55
|
>
|
55
56
|
<template slot="prepend">
|
56
57
|
<div style="width:50px;">prefixIcon</div>
|
57
58
|
</template>
|
58
59
|
</el-input>
|
59
60
|
<el-input
|
60
|
-
placeholder="请输入icon类名"
|
61
61
|
v-model="widget.options.suffixIcon"
|
62
|
+
placeholder="请输入icon类名"
|
63
|
+
clearable
|
62
64
|
>
|
63
65
|
<template slot="prepend">
|
64
66
|
<div style="width:50px;">suffixIcon</div>
|
@@ -68,16 +70,18 @@
|
|
68
70
|
|
69
71
|
<el-form-item label="组件插槽">
|
70
72
|
<el-input
|
71
|
-
placeholder="请输入内容或HTML"
|
72
73
|
v-model="widget.options.prepend"
|
74
|
+
placeholder="请输入内容或HTML"
|
75
|
+
clearable
|
73
76
|
>
|
74
77
|
<template slot="prepend">
|
75
78
|
<div style="width:50px;">prepend</div>
|
76
79
|
</template>
|
77
80
|
</el-input>
|
78
81
|
<el-input
|
79
|
-
placeholder="请输入内容或HTML"
|
80
82
|
v-model="widget.options.append"
|
83
|
+
placeholder="请输入内容或HTML"
|
84
|
+
clearable
|
81
85
|
>
|
82
86
|
<template slot="prepend">
|
83
87
|
<div style="width:50px;">append</div>
|
@@ -97,27 +101,54 @@
|
|
97
101
|
</el-form-item>
|
98
102
|
|
99
103
|
<el-form-item label="校验">
|
100
|
-
<
|
101
|
-
|
102
|
-
<el-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
104
|
+
<div class="flexView">
|
105
|
+
<el-checkbox v-model="widget.options.required">必填</el-checkbox>
|
106
|
+
<el-select
|
107
|
+
style="flex: 1;margin-left:10px;"
|
108
|
+
v-model="widget.options.dataType"
|
109
|
+
@change="handleInputTypeChange"
|
110
|
+
>
|
111
|
+
<el-option
|
112
|
+
v-for="rule in Object.values(rulesOptions)"
|
113
|
+
:key="rule.value"
|
114
|
+
:value="rule.value"
|
115
|
+
:label="rule.label"
|
116
|
+
></el-option>
|
117
|
+
</el-select>
|
118
|
+
</div>
|
111
119
|
|
112
|
-
<
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
placeholder="填写正则表达式"
|
120
|
+
<div
|
121
|
+
v-for="(rule, index) in widget.rules"
|
122
|
+
class="flexView"
|
123
|
+
:key="index"
|
117
124
|
>
|
118
|
-
<
|
119
|
-
|
120
|
-
|
125
|
+
<el-input
|
126
|
+
class="config-pattern-input"
|
127
|
+
style="flex: 1;margin-right:10px;"
|
128
|
+
v-model="rule.patternStr"
|
129
|
+
placeholder="填写正则表达式"
|
130
|
+
clearable
|
131
|
+
>
|
132
|
+
<template slot="prepend">/</template>
|
133
|
+
<template slot="append">/</template>
|
134
|
+
</el-input>
|
135
|
+
<el-button
|
136
|
+
v-if="index === widget.rules.length - 1"
|
137
|
+
type="primary"
|
138
|
+
icon="el-icon-plus"
|
139
|
+
size="mini"
|
140
|
+
@click="
|
141
|
+
widget.rules.push({ id: new Date().getTime(), patternStr: '' })
|
142
|
+
"
|
143
|
+
></el-button>
|
144
|
+
<el-button
|
145
|
+
v-else
|
146
|
+
type="danger"
|
147
|
+
icon="el-icon-delete"
|
148
|
+
size="mini"
|
149
|
+
@click="widget.rules.splice(index, 1)"
|
150
|
+
></el-button>
|
151
|
+
</div>
|
121
152
|
</el-form-item>
|
122
153
|
|
123
154
|
<el-form-item>
|
@@ -140,9 +171,9 @@
|
|
140
171
|
>
|
141
172
|
<el-option
|
142
173
|
v-for="item in config.eventScript"
|
143
|
-
:key="item.
|
144
|
-
:label="item.
|
145
|
-
:value="item.
|
174
|
+
:key="item.id"
|
175
|
+
:label="item.label"
|
176
|
+
:value="item.id"
|
146
177
|
>
|
147
178
|
</el-option>
|
148
179
|
</el-select>
|
@@ -168,8 +199,84 @@ export default {
|
|
168
199
|
},
|
169
200
|
props: {},
|
170
201
|
mixins: [configComponent],
|
202
|
+
data() {
|
203
|
+
return {
|
204
|
+
rulesOptions: {
|
205
|
+
string: { label: "字符串", value: "string", pattern: "" },
|
206
|
+
number: { label: "数字", value: "number", pattern: "^[0-9]*$" },
|
207
|
+
numberOrAlphabet: {
|
208
|
+
label: "数字和大小写英文字母",
|
209
|
+
value: "numberOrAlphabet",
|
210
|
+
pattern: "^[A-Za-z0-9]+$"
|
211
|
+
},
|
212
|
+
integer: {
|
213
|
+
label: "正整数",
|
214
|
+
value: "integer",
|
215
|
+
pattern: "^[1-9]+[0-9]*$"
|
216
|
+
},
|
217
|
+
url: { label: "URL地址", value: "url", pattern: "" },
|
218
|
+
email: { label: "邮箱地址", value: "email", pattern: "" },
|
219
|
+
chineseName: {
|
220
|
+
label: "中文名(2-16位)",
|
221
|
+
value: "chineseName",
|
222
|
+
pattern: "^(?:[\\u4e00-\\u9fa5·]{2,16})$"
|
223
|
+
},
|
224
|
+
englishName: {
|
225
|
+
label: "英文名(2-22位)",
|
226
|
+
value: "englishName",
|
227
|
+
pattern: "(^[a-zA-Z]{1}[a-zA-Z\\s]{0,20}[a-zA-Z]{1}$)"
|
228
|
+
},
|
229
|
+
tel: { label: "手机号", value: "tel", pattern: "^1\\d{10}$" },
|
230
|
+
specialPlane: {
|
231
|
+
label: "座机号(xxx-xxxxxxxx)",
|
232
|
+
value: "specialPlane",
|
233
|
+
pattern: "^\\d{3}-\\d{8}$|^\\d{4}-\\d{7}$"
|
234
|
+
},
|
235
|
+
idCard: {
|
236
|
+
label: "身份证(18位)",
|
237
|
+
value: "idCard",
|
238
|
+
pattern: "^\\d{17}(\\d|X)$"
|
239
|
+
},
|
240
|
+
bankCard: {
|
241
|
+
label: "银行卡号",
|
242
|
+
value: "bankCard",
|
243
|
+
pattern: "^[1-9]\\d{9,29}$"
|
244
|
+
},
|
245
|
+
creditCode: {
|
246
|
+
label: "统一社会信用代码",
|
247
|
+
value: "creditCode",
|
248
|
+
pattern: "^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$"
|
249
|
+
}
|
250
|
+
}
|
251
|
+
};
|
252
|
+
},
|
171
253
|
mounted() {},
|
172
|
-
methods: {
|
254
|
+
methods: {
|
255
|
+
handleInputTypeChange() {
|
256
|
+
const ruleType = this.widget.options.dataType;
|
257
|
+
if (this.rulesOptions[ruleType].pattern) {
|
258
|
+
let isNew = true;
|
259
|
+
this.widget.rules.forEach(rule => {
|
260
|
+
if (rule.name) {
|
261
|
+
rule.name = ruleType;
|
262
|
+
rule.patternStr = this.rulesOptions[ruleType].pattern;
|
263
|
+
isNew = false;
|
264
|
+
}
|
265
|
+
});
|
266
|
+
if (isNew) {
|
267
|
+
this.widget.rules.unshift({
|
268
|
+
id: new Date().getTime(),
|
269
|
+
name: ruleType,
|
270
|
+
patternStr: this.rulesOptions[ruleType].pattern
|
271
|
+
});
|
272
|
+
}
|
273
|
+
} else {
|
274
|
+
this.widget.rules = this.widget.rules.filter(rule => {
|
275
|
+
return !rule.name;
|
276
|
+
});
|
277
|
+
}
|
278
|
+
}
|
279
|
+
}
|
173
280
|
};
|
174
281
|
</script>
|
175
282
|
|
@@ -38,7 +38,7 @@
|
|
38
38
|
<div style="flex:1;">最大值:</div>
|
39
39
|
<el-input-number
|
40
40
|
v-model="widget.options.max"
|
41
|
-
:min="
|
41
|
+
:min="-1"
|
42
42
|
>
|
43
43
|
</el-input-number>
|
44
44
|
</div>
|
@@ -56,7 +56,7 @@
|
|
56
56
|
<el-input-number
|
57
57
|
v-model="widget.options.precision"
|
58
58
|
:min="0"
|
59
|
-
:max="
|
59
|
+
:max="6"
|
60
60
|
:step="1"
|
61
61
|
></el-input-number>
|
62
62
|
</div>
|
@@ -104,9 +104,9 @@
|
|
104
104
|
>
|
105
105
|
<el-option
|
106
106
|
v-for="item in config.eventScript"
|
107
|
-
:key="item.
|
108
|
-
:label="item.
|
109
|
-
:value="item.
|
107
|
+
:key="item.id"
|
108
|
+
:label="item.label"
|
109
|
+
:value="item.id"
|
110
110
|
>
|
111
111
|
</el-option>
|
112
112
|
</el-select>
|
@@ -35,33 +35,31 @@
|
|
35
35
|
</el-radio-group>
|
36
36
|
</el-form-item>
|
37
37
|
|
38
|
-
<el-form-item
|
39
|
-
<div
|
40
|
-
|
41
|
-
|
42
|
-
|
38
|
+
<el-form-item>
|
39
|
+
<div class="config-header" slot="label">
|
40
|
+
<span class="title">选项</span>
|
41
|
+
<el-radio-group
|
42
|
+
class="value"
|
43
|
+
v-model="widget.options.remote"
|
44
|
+
size="mini"
|
45
|
+
>
|
43
46
|
<el-radio-button :label="false">静态数据</el-radio-button>
|
44
47
|
<el-radio-button :label="true">远端数据</el-radio-button>
|
45
48
|
</el-radio-group>
|
46
|
-
|
47
|
-
<div v-if="!widget.options.remote">
|
48
|
-
<span>显示标签</span>
|
49
|
-
<el-switch v-model="widget.options.showLabel"> </el-switch>
|
50
|
-
</div>
|
51
49
|
</div>
|
52
50
|
|
53
51
|
<template v-if="widget.options.remote">
|
54
52
|
<el-select
|
55
53
|
style="width:100%"
|
56
54
|
v-model="widget.options.remoteFunc"
|
57
|
-
value-key="
|
55
|
+
:value-key="config.remoteFuncs.props.key"
|
58
56
|
placeholder="请选择远端方法"
|
59
57
|
clearable
|
60
58
|
>
|
61
59
|
<el-option
|
62
|
-
v-for="item in
|
63
|
-
:key="item.
|
64
|
-
:label="item.
|
60
|
+
v-for="item in config.remoteFuncs.options"
|
61
|
+
:key="item[config.remoteFuncs.props.key]"
|
62
|
+
:label="item[config.remoteFuncs.props.label]"
|
65
63
|
:value="item"
|
66
64
|
>
|
67
65
|
</el-option>
|
@@ -78,6 +76,12 @@
|
|
78
76
|
</el-input>
|
79
77
|
</template>
|
80
78
|
<template v-else>
|
79
|
+
<el-switch
|
80
|
+
v-model="widget.options.showLabel"
|
81
|
+
active-text="显示标签"
|
82
|
+
inactive-text="隐藏标签"
|
83
|
+
>
|
84
|
+
</el-switch>
|
81
85
|
<el-radio-group v-model="widget.options.defaultValue">
|
82
86
|
<draggable
|
83
87
|
tag="ul"
|
@@ -165,9 +169,9 @@
|
|
165
169
|
>
|
166
170
|
<el-option
|
167
171
|
v-for="item in config.eventScript"
|
168
|
-
:key="item.
|
169
|
-
:label="item.
|
170
|
-
:value="item.
|
172
|
+
:key="item.id"
|
173
|
+
:label="item.label"
|
174
|
+
:value="item.id"
|
171
175
|
>
|
172
176
|
</el-option>
|
173
177
|
</el-select>
|
@@ -197,8 +201,8 @@ export default {
|
|
197
201
|
methods: {
|
198
202
|
handleAddOption() {
|
199
203
|
this.widget.options.options.push({
|
200
|
-
value:
|
201
|
-
label:
|
204
|
+
value: `选值 ${this.widget.options.options.length + 1}`,
|
205
|
+
label: `选项 ${this.widget.options.options.length + 1}`
|
202
206
|
});
|
203
207
|
},
|
204
208
|
handleOptionsRemove(index) {
|
@@ -33,31 +33,29 @@
|
|
33
33
|
</el-form-item>
|
34
34
|
|
35
35
|
<el-form-item label="选项">
|
36
|
-
<div
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
<div class="config-header" slot="label">
|
37
|
+
<span class="title">选项</span>
|
38
|
+
<el-radio-group
|
39
|
+
class="value"
|
40
|
+
v-model="widget.options.remote"
|
41
|
+
size="mini"
|
42
|
+
>
|
40
43
|
<el-radio-button :label="false">静态数据</el-radio-button>
|
41
44
|
<el-radio-button :label="true">远端数据</el-radio-button>
|
42
45
|
</el-radio-group>
|
43
|
-
|
44
|
-
<div v-if="!widget.options.remote">
|
45
|
-
<span>显示标签</span>
|
46
|
-
<el-switch v-model="widget.options.showLabel"> </el-switch>
|
47
|
-
</div>
|
48
46
|
</div>
|
49
47
|
<template v-if="widget.options.remote">
|
50
48
|
<el-select
|
51
49
|
style="width:100%"
|
52
50
|
v-model="widget.options.remoteFunc"
|
53
|
-
value-key="
|
51
|
+
value-key="id"
|
54
52
|
placeholder="请选择远端方法"
|
55
53
|
clearable
|
56
54
|
>
|
57
55
|
<el-option
|
58
|
-
v-for="item in
|
59
|
-
:key="item.
|
60
|
-
:label="item.
|
56
|
+
v-for="item in config.remoteFuncs"
|
57
|
+
:key="item.id"
|
58
|
+
:label="item.label"
|
61
59
|
:value="item"
|
62
60
|
>
|
63
61
|
</el-option>
|
@@ -74,6 +72,12 @@
|
|
74
72
|
</el-input>
|
75
73
|
</template>
|
76
74
|
<template v-else>
|
75
|
+
<el-switch
|
76
|
+
v-model="widget.options.showLabel"
|
77
|
+
active-text="显示标签"
|
78
|
+
inactive-text="隐藏标签"
|
79
|
+
>
|
80
|
+
</el-switch>
|
77
81
|
<template v-if="widget.options.multiple">
|
78
82
|
<el-checkbox-group v-model="widget.options.defaultValue">
|
79
83
|
<draggable
|
@@ -92,18 +96,19 @@
|
|
92
96
|
>
|
93
97
|
<el-checkbox :label="item.value" style="margin-right: 5px;">
|
94
98
|
<el-input
|
99
|
+
v-model="item.value"
|
95
100
|
:style="{
|
96
101
|
width: widget.options.showLabel ? '90px' : '180px'
|
97
102
|
}"
|
98
|
-
v-model="item.value"
|
99
103
|
:disabled="
|
100
104
|
widget.options.defaultValue.indexOf(item.value) !== -1
|
101
105
|
"
|
102
106
|
></el-input>
|
103
107
|
<el-input
|
104
|
-
v-
|
108
|
+
v-show="widget.options.showLabel"
|
105
109
|
style="width:90px;"
|
106
110
|
v-model="item.label"
|
111
|
+
placeholder="标签"
|
107
112
|
>
|
108
113
|
</el-input>
|
109
114
|
</el-checkbox>
|
@@ -244,9 +249,9 @@
|
|
244
249
|
>
|
245
250
|
<el-option
|
246
251
|
v-for="item in config.eventScript"
|
247
|
-
:key="item.
|
248
|
-
:label="item.
|
249
|
-
:value="item.
|
252
|
+
:key="item.id"
|
253
|
+
:label="item.label"
|
254
|
+
:value="item.id"
|
250
255
|
>
|
251
256
|
</el-option>
|
252
257
|
</el-select>
|
@@ -291,8 +296,8 @@ export default {
|
|
291
296
|
},
|
292
297
|
handleAddOption() {
|
293
298
|
this.widget.options.options.push({
|
294
|
-
value:
|
295
|
-
label:
|
299
|
+
value: `选值 ${this.widget.options.options.length + 1}`,
|
300
|
+
label: `选项 ${this.widget.options.options.length + 1}`
|
296
301
|
});
|
297
302
|
},
|
298
303
|
handleOptionsRemove(index) {
|
@@ -84,8 +84,8 @@ export default {
|
|
84
84
|
let dic = {};
|
85
85
|
this.widget.list.forEach(item => {
|
86
86
|
if (item.type === "grid") {
|
87
|
-
for (let i = 0; i < item.columns.length; i++) {
|
88
|
-
const element = item.columns[i];
|
87
|
+
for (let i = 0; i < item.options.columns.length; i++) {
|
88
|
+
const element = item.options.columns[i];
|
89
89
|
for (let j = 0; j < element.list.length; j++) {
|
90
90
|
const element2 = element.list[j];
|
91
91
|
dic[element2.model] = element2.options.defaultValue;
|
@@ -81,8 +81,8 @@ export default {
|
|
81
81
|
let dic = {};
|
82
82
|
this.widget.list.forEach(item => {
|
83
83
|
if (item.type === "grid") {
|
84
|
-
for (let i = 0; i < item.columns.length; i++) {
|
85
|
-
const element = item.columns[i];
|
84
|
+
for (let i = 0; i < item.options.columns.length; i++) {
|
85
|
+
const element = item.options.columns[i];
|
86
86
|
for (let j = 0; j < element.list.length; j++) {
|
87
87
|
const element2 = element.list[j];
|
88
88
|
dic[element2.model] = element2.options.defaultValue;
|
@@ -46,38 +46,33 @@
|
|
46
46
|
<el-form-item label="选项">
|
47
47
|
<el-radio-group
|
48
48
|
v-model="widget.options.remote"
|
49
|
-
size="mini"
|
50
49
|
style="margin-bottom:10px;"
|
50
|
+
size="mini"
|
51
51
|
>
|
52
52
|
<el-radio-button :label="false">静态数据</el-radio-button>
|
53
|
-
<el-radio-button :label="true">远端数据</el-radio-button>
|
53
|
+
<el-radio-button :label="true" disabled>远端数据</el-radio-button>
|
54
54
|
</el-radio-group>
|
55
55
|
<div v-if="widget.options.remote">
|
56
56
|
<el-select
|
57
|
+
v-model="widget.options.remoteFunc"
|
57
58
|
class="remoteApis"
|
58
59
|
size="mini"
|
59
|
-
v-model="widget.options.remoteFunc"
|
60
60
|
placeholder="请选择远端方法"
|
61
61
|
>
|
62
62
|
<template slot="prefix">
|
63
63
|
<div style="width:70px;">接口名</div>
|
64
64
|
</template>
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
:
|
65
|
+
|
66
|
+
<el-option
|
67
|
+
v-for="item in config.remoteFuncs.options"
|
68
|
+
:key="item[config.remoteFuncs.props.key]"
|
69
|
+
:label="item[config.remoteFuncs.props.label]"
|
70
|
+
:value="item"
|
69
71
|
>
|
70
|
-
|
71
|
-
v-for="item in group.options"
|
72
|
-
:key="item.value"
|
73
|
-
:label="item.label"
|
74
|
-
:value="item.value"
|
75
|
-
>
|
76
|
-
</el-option>
|
77
|
-
</el-option-group>
|
72
|
+
</el-option>
|
78
73
|
</el-select>
|
79
74
|
|
80
|
-
<el-input size="mini" style="" v-model="widget.options.props.value">
|
75
|
+
<!-- <el-input size="mini" style="" v-model="widget.options.props.value">
|
81
76
|
<template slot="prepend">
|
82
77
|
<div style="width:30px;">值</div>
|
83
78
|
</template>
|
@@ -86,13 +81,13 @@
|
|
86
81
|
<template slot="prepend">
|
87
82
|
<div style="width:30px;">标签</div>
|
88
83
|
</template>
|
89
|
-
</el-input>
|
84
|
+
</el-input> -->
|
90
85
|
</div>
|
91
86
|
<template v-else>
|
92
87
|
<el-radio-group v-model="widget.options.defaultValue">
|
93
88
|
<draggable
|
94
89
|
tag="ul"
|
95
|
-
:list="widget.
|
90
|
+
:list="widget.options.columns"
|
96
91
|
v-bind="{
|
97
92
|
group: { name: 'tabs' },
|
98
93
|
ghostClass: 'ghost',
|
@@ -100,7 +95,7 @@
|
|
100
95
|
}"
|
101
96
|
handle=".drag-item"
|
102
97
|
>
|
103
|
-
<li v-for="(item, index) in widget.
|
98
|
+
<li v-for="(item, index) in widget.options.columns" :key="index">
|
104
99
|
<el-radio :label="item.value" style="margin-right: 5px;">
|
105
100
|
<el-input
|
106
101
|
v-model="item.value"
|
@@ -159,12 +154,12 @@ export default {
|
|
159
154
|
mounted() {},
|
160
155
|
methods: {
|
161
156
|
handleOptionsRemove(index) {
|
162
|
-
this.widget.
|
157
|
+
this.widget.options.columns.splice(index, 1);
|
163
158
|
},
|
164
159
|
handleAddOption() {
|
165
|
-
this.widget.
|
166
|
-
label: `选项${this.widget.
|
167
|
-
value: `tab${this.widget.
|
160
|
+
this.widget.options.columns.push({
|
161
|
+
label: `选项${this.widget.options.columns.length + 1}`,
|
162
|
+
value: `tab${this.widget.options.columns.length + 1}`,
|
168
163
|
list: []
|
169
164
|
});
|
170
165
|
}
|