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.
Files changed (72) hide show
  1. package/lib/theme-chalk/styles/reset.scss +0 -2
  2. package/lib/tianheng-ui.js +13 -14
  3. package/package.json +1 -1
  4. package/packages/FormMaking/GenerateForm.vue +16 -11
  5. package/packages/FormMaking/GenerateFormItem.vue +73 -581
  6. package/packages/FormMaking/GenerateFormItemH5.vue +6 -6
  7. package/packages/FormMaking/Upload/index.vue +0 -1
  8. package/packages/FormMaking/WidgetConfig.vue +100 -77
  9. package/packages/FormMaking/WidgetForm.vue +7 -48
  10. package/packages/FormMaking/WidgetFormItem.vue +41 -65
  11. package/packages/FormMaking/WidgetSelect.vue +160 -0
  12. package/packages/FormMaking/WidgetTools.vue +538 -0
  13. package/packages/FormMaking/config/index.js +6 -0
  14. package/packages/FormMaking/custom/config.js +119 -87
  15. package/packages/FormMaking/custom/configs/button.vue +24 -25
  16. package/packages/FormMaking/custom/configs/cascader.vue +7 -7
  17. package/packages/FormMaking/custom/configs/checkbox.vue +23 -22
  18. package/packages/FormMaking/custom/configs/color.vue +3 -3
  19. package/packages/FormMaking/custom/configs/date.vue +3 -3
  20. package/packages/FormMaking/custom/configs/grid.vue +4 -4
  21. package/packages/FormMaking/custom/configs/input.vue +138 -31
  22. package/packages/FormMaking/custom/configs/number.vue +5 -5
  23. package/packages/FormMaking/custom/configs/radio.vue +23 -19
  24. package/packages/FormMaking/custom/configs/rate.vue +3 -3
  25. package/packages/FormMaking/custom/configs/select.vue +25 -20
  26. package/packages/FormMaking/custom/configs/slider.vue +3 -3
  27. package/packages/FormMaking/custom/configs/switch.vue +3 -3
  28. package/packages/FormMaking/custom/configs/table.vue +2 -2
  29. package/packages/FormMaking/custom/configs/{table_h5.vue → tableH5.vue} +2 -2
  30. package/packages/FormMaking/custom/configs/tabs.vue +18 -23
  31. package/packages/FormMaking/custom/configs/textarea.vue +124 -22
  32. package/packages/FormMaking/custom/configs/time.vue +3 -3
  33. package/packages/FormMaking/custom/configs/upload.vue +5 -5
  34. package/packages/FormMaking/custom/index.js +2 -4
  35. package/packages/FormMaking/custom/items/alliance.vue +30 -29
  36. package/packages/FormMaking/custom/items/blank_pro.vue +14 -0
  37. package/packages/FormMaking/custom/items/button.vue +36 -1
  38. package/packages/FormMaking/custom/items/cascader.vue +6 -2
  39. package/packages/FormMaking/custom/items/cell.vue +0 -2
  40. package/packages/FormMaking/custom/items/checkbox.vue +18 -8
  41. package/packages/FormMaking/custom/items/color.vue +1 -1
  42. package/packages/FormMaking/custom/items/date.vue +1 -1
  43. package/packages/FormMaking/custom/items/editor.vue +1 -1
  44. package/packages/FormMaking/custom/items/{grid.vue → grid_dev.vue} +16 -47
  45. package/packages/FormMaking/custom/items/grid_pro.vue +45 -0
  46. package/packages/FormMaking/custom/items/image.vue +0 -28
  47. package/packages/FormMaking/custom/items/input.vue +15 -9
  48. package/packages/FormMaking/custom/items/number.vue +4 -4
  49. package/packages/FormMaking/custom/items/radio.vue +17 -7
  50. package/packages/FormMaking/custom/items/rate.vue +1 -1
  51. package/packages/FormMaking/custom/items/select.vue +12 -6
  52. package/packages/FormMaking/custom/items/slider.vue +1 -1
  53. package/packages/FormMaking/custom/items/switch.vue +1 -1
  54. package/packages/FormMaking/custom/items/{table_h5.vue → tableH5_dev.vue} +44 -49
  55. package/packages/FormMaking/custom/items/tableH5_pro.vue +113 -0
  56. package/packages/FormMaking/custom/items/{table.vue → table_dev.vue} +21 -41
  57. package/packages/FormMaking/custom/items/table_pro.vue +114 -0
  58. package/packages/FormMaking/custom/items/tabs_dev.vue +101 -0
  59. package/packages/FormMaking/custom/items/tabs_pro.vue +50 -0
  60. package/packages/FormMaking/custom/items/text.vue +1 -1
  61. package/packages/FormMaking/custom/items/textarea.vue +4 -13
  62. package/packages/FormMaking/custom/items/time.vue +3 -3
  63. package/packages/FormMaking/custom/items/upload.vue +15 -14
  64. package/packages/FormMaking/custom/mixins/index.js +28 -6
  65. package/packages/FormMaking/custom/register.js +22 -11
  66. package/packages/FormMaking/index.vue +95 -468
  67. package/packages/FormMaking/styles/index.scss +235 -242
  68. package/packages/FormMaking/util/generateCode.js +3 -3
  69. package/packages/FormMaking/util/index.js +33 -23
  70. package/packages/FormMaking/util/request.js +9 -12
  71. package/packages/FormMaking/custom/items/tabs.vue +0 -145
  72. /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
- <el-checkbox v-model="widget.options.required">必填</el-checkbox>
101
- <el-select style="width:100%" v-model="widget.options.dataType">
102
- <el-option value="string" label="字符串"></el-option>
103
- <el-option value="number" label="数字"></el-option>
104
- <el-option value="boolean" label="布尔值"></el-option>
105
- <el-option value="integer" label="整数"></el-option>
106
- <el-option value="float" label="浮点数"></el-option>
107
- <el-option value="url" label="URL地址"></el-option>
108
- <el-option value="email" label="邮箱地址"></el-option>
109
- <el-option value="hex" label="十六进制"></el-option>
110
- </el-select>
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
- <el-input
113
- class="config-pattern-input"
114
- style=" width: 100%;"
115
- v-model.lazy="widget.options.pattern"
116
- placeholder="填写正则表达式"
120
+ <div
121
+ v-for="(rule, index) in widget.rules"
122
+ class="flexView"
123
+ :key="index"
117
124
  >
118
- <template slot="prepend">/</template>
119
- <template slot="append">/</template>
120
- </el-input>
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.key"
144
- :label="item.name"
145
- :value="item.key"
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="widget.options.min || 1"
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="100"
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.key"
108
- :label="item.name"
109
- :value="item.key"
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 label="选项">
39
- <div
40
- style="display: flex;align-items: center;justify-content: space-between;margin-bottom:10px;"
41
- >
42
- <el-radio-group v-model="widget.options.remote" size="mini">
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="api"
55
+ :value-key="config.remoteFuncs.props.key"
58
56
  placeholder="请选择远端方法"
59
57
  clearable
60
58
  >
61
59
  <el-option
62
- v-for="item in remoteApis"
63
- :key="item.api"
64
- :label="item.name"
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.key"
169
- :label="item.name"
170
- :value="item.key"
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: `新选项${this.widget.options.options.length + 1}`,
201
- label: `新选项${this.widget.options.options.length + 1}`
204
+ value: `选值 ${this.widget.options.options.length + 1}`,
205
+ label: `选项 ${this.widget.options.options.length + 1}`
202
206
  });
203
207
  },
204
208
  handleOptionsRemove(index) {
@@ -73,9 +73,9 @@
73
73
  >
74
74
  <el-option
75
75
  v-for="item in config.eventScript"
76
- :key="item.key"
77
- :label="item.name"
78
- :value="item.key"
76
+ :key="item.id"
77
+ :label="item.label"
78
+ :value="item.id"
79
79
  >
80
80
  </el-option>
81
81
  </el-select>
@@ -33,31 +33,29 @@
33
33
  </el-form-item>
34
34
 
35
35
  <el-form-item label="选项">
36
- <div
37
- style="display: flex;align-items: center;justify-content: space-between;margin-bottom:10px;"
38
- >
39
- <el-radio-group v-model="widget.options.remote" size="mini">
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="api"
51
+ value-key="id"
54
52
  placeholder="请选择远端方法"
55
53
  clearable
56
54
  >
57
55
  <el-option
58
- v-for="item in remoteApis"
59
- :key="item.api"
60
- :label="item.name"
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-if="widget.options.showLabel"
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.key"
248
- :label="item.name"
249
- :value="item.key"
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: `新选项${this.widget.options.options.length + 1}`,
295
- label: `新选项${this.widget.options.options.length + 1}`
299
+ value: `选值 ${this.widget.options.options.length + 1}`,
300
+ label: `选项 ${this.widget.options.options.length + 1}`
296
301
  });
297
302
  },
298
303
  handleOptionsRemove(index) {
@@ -106,9 +106,9 @@
106
106
  >
107
107
  <el-option
108
108
  v-for="item in config.eventScript"
109
- :key="item.key"
110
- :label="item.name"
111
- :value="item.key"
109
+ :key="item.id"
110
+ :label="item.label"
111
+ :value="item.id"
112
112
  >
113
113
  </el-option>
114
114
  </el-select>
@@ -94,9 +94,9 @@
94
94
  >
95
95
  <el-option
96
96
  v-for="item in config.eventScript"
97
- :key="item.key"
98
- :label="item.name"
99
- :value="item.key"
97
+ :key="item.id"
98
+ :label="item.label"
99
+ :value="item.id"
100
100
  >
101
101
  </el-option>
102
102
  </el-select>
@@ -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
- <el-option-group
66
- v-for="group in remoteApis"
67
- :key="group.label"
68
- :label="group.label"
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
- <el-option
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.tabs"
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.tabs" :key="index">
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.tabs.splice(index, 1);
157
+ this.widget.options.columns.splice(index, 1);
163
158
  },
164
159
  handleAddOption() {
165
- this.widget.tabs.push({
166
- label: `选项${this.widget.tabs.length + 1}`,
167
- value: `tab${this.widget.tabs.length + 1}`,
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
  }