tianheng-ui 0.1.63 → 0.1.65

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 (60) hide show
  1. package/lib/theme-chalk/index.scss +1 -1
  2. package/lib/theme-chalk/styles/feature.scss +1 -0
  3. package/lib/tianheng-ui.js +13 -13
  4. package/package.json +1 -1
  5. package/packages/CodeEditor/index.vue +41 -19
  6. package/packages/FormMaking/GenerateForm.vue +67 -71
  7. package/packages/FormMaking/WidgetConfig.vue +1 -1
  8. package/packages/FormMaking/WidgetForm.vue +11 -5
  9. package/packages/FormMaking/WidgetFormItem.vue +11 -4
  10. package/packages/FormMaking/WidgetGuide.vue +0 -0
  11. package/packages/FormMaking/WidgetTools.vue +2 -2
  12. package/packages/FormMaking/custom/config.js +320 -76
  13. package/packages/FormMaking/custom/configs/blank.vue +1 -1
  14. package/packages/FormMaking/custom/configs/button.vue +2 -2
  15. package/packages/FormMaking/custom/configs/cascader.vue +71 -34
  16. package/packages/FormMaking/custom/configs/cell.vue +1 -1
  17. package/packages/FormMaking/custom/configs/checkbox.vue +95 -64
  18. package/packages/FormMaking/custom/configs/color.vue +1 -1
  19. package/packages/FormMaking/custom/configs/date.vue +1 -1
  20. package/packages/FormMaking/custom/configs/descriptions.vue +314 -0
  21. package/packages/FormMaking/custom/configs/divider.vue +1 -1
  22. package/packages/FormMaking/custom/configs/editor.vue +1 -1
  23. package/packages/FormMaking/custom/configs/filler.vue +1 -1
  24. package/packages/FormMaking/custom/configs/grid.vue +33 -22
  25. package/packages/FormMaking/custom/configs/image.vue +1 -1
  26. package/packages/FormMaking/custom/configs/input.vue +1 -1
  27. package/packages/FormMaking/custom/configs/number.vue +1 -1
  28. package/packages/FormMaking/custom/configs/radio.vue +84 -53
  29. package/packages/FormMaking/custom/configs/rate.vue +1 -1
  30. package/packages/FormMaking/custom/configs/select.vue +157 -158
  31. package/packages/FormMaking/custom/configs/slider.vue +1 -1
  32. package/packages/FormMaking/custom/configs/switch.vue +1 -1
  33. package/packages/FormMaking/custom/configs/table.vue +1 -1
  34. package/packages/FormMaking/custom/configs/tableH5.vue +1 -1
  35. package/packages/FormMaking/custom/configs/tabs.vue +1 -1
  36. package/packages/FormMaking/custom/configs/text.vue +1 -1
  37. package/packages/FormMaking/custom/configs/textarea.vue +1 -1
  38. package/packages/FormMaking/custom/configs/time.vue +1 -1
  39. package/packages/FormMaking/custom/configs/upload.vue +1 -1
  40. package/packages/FormMaking/custom/configs/workflow.vue +494 -0
  41. package/packages/FormMaking/custom/index.js +4 -2
  42. package/packages/FormMaking/custom/items/cascader.vue +2 -2
  43. package/packages/FormMaking/custom/items/checkbox.vue +6 -10
  44. package/packages/FormMaking/custom/items/descriptions.vue +75 -0
  45. package/packages/FormMaking/custom/items/grid_dev.vue +2 -2
  46. package/packages/FormMaking/custom/items/list_dev.vue +10 -22
  47. package/packages/FormMaking/custom/items/radio.vue +5 -9
  48. package/packages/FormMaking/custom/items/select.vue +2 -4
  49. package/packages/FormMaking/custom/items/tableH5_dev.vue +9 -18
  50. package/packages/FormMaking/custom/items/table_dev.vue +13 -3
  51. package/packages/FormMaking/custom/items/tabs_dev.vue +3 -2
  52. package/packages/FormMaking/custom/items/workflow.vue +131 -0
  53. package/packages/FormMaking/custom/register.js +15 -1
  54. package/packages/FormMaking/index.vue +61 -27
  55. package/packages/FormMaking/styles/index.scss +156 -478
  56. package/packages/TableMaking/index.vue +4 -1
  57. package/packages/TableMaking/widgetGuide.vue +96 -0
  58. package/packages/TableMaking/widgetTable.vue +0 -7
  59. package/packages/Workflow/index.vue +0 -31
  60. package/packages/FormMaking/GenerateFormItemH5.vue +0 -825
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="configComponents">
2
+ <div class="component-config">
3
3
  <el-collapse-item title="组件配置" name="group-element">
4
4
  <el-form-item label="标题">
5
5
  <el-input v-model="widget.name"></el-input>
@@ -24,13 +24,6 @@
24
24
  <el-input v-model="widget.options.width"></el-input>
25
25
  </el-form-item>
26
26
 
27
- <el-form-item label="布局方式">
28
- <el-radio-group v-model="widget.options.inline">
29
- <el-radio-button :label="false">块级</el-radio-button>
30
- <el-radio-button :label="true">inline</el-radio-button>
31
- </el-radio-group>
32
- </el-form-item>
33
-
34
27
  <el-form-item label="设置范围">
35
28
  <div style="display: flex;">
36
29
  <div style="width: 80px;">最小勾选:</div>
@@ -44,12 +37,19 @@
44
37
  </div>
45
38
  </el-form-item>
46
39
 
40
+ <el-form-item label="布局方式">
41
+ <el-radio-group v-model="widget.options.inline">
42
+ <el-radio-button :label="false">块级</el-radio-button>
43
+ <el-radio-button :label="true">inline</el-radio-button>
44
+ </el-radio-group>
45
+ </el-form-item>
46
+
47
47
  <el-form-item label="数据类型">
48
48
  <el-radio-group
49
- v-model="widget.options.remote"
49
+ v-model="widget.options.remote.open"
50
50
  @input="
51
51
  val => {
52
- if (!val) widget.options.remoteFunc = '';
52
+ if (!val) widget.options.remote.api = '';
53
53
  }
54
54
  "
55
55
  >
@@ -58,77 +58,74 @@
58
58
  </el-radio-group>
59
59
  </el-form-item>
60
60
  <el-form-item label-width="0">
61
- <template v-if="widget.options.remote">
61
+ <template v-if="widget.options.remote.open">
62
62
  <el-select
63
- style="width:100%"
64
- v-model="widget.options.remoteFunc"
65
- placeholder="请选择"
66
- no-data-text="暂无数据,请查阅相关文档说明"
67
- clearable
68
- filterable
69
- >
70
- <el-option
71
- v-for="item in apiOptions"
72
- :key="item.id"
73
- :label="item.name"
74
- :value="item.id"
63
+ style="width:100%;margin-bottom:5px;"
64
+ v-model="widget.options.remote.api"
65
+ placeholder="请选择"
66
+ no-data-text="暂无数据,请查阅相关文档说明"
67
+ clearable
68
+ filterable
75
69
  >
76
- </el-option>
77
- </el-select>
70
+ <el-option
71
+ v-for="item in apiOptions"
72
+ :key="item.id"
73
+ :label="item.name"
74
+ :value="item.id"
75
+ >
76
+ </el-option>
77
+ </el-select>
78
78
 
79
- <el-input v-model="widget.options.props.value">
80
- <div slot="prepend" style="width:50px;">值</div>
79
+ <el-input
80
+ style="margin-bottom:5px;"
81
+ v-model="widget.options.remote.props.value"
82
+ >
83
+ <div slot="prepend">内容</div>
81
84
  </el-input>
82
- <el-input v-model="widget.options.props.label">
83
- <div slot="prepend" style="width:50px;">标签</div>
85
+ <el-input
86
+ style="margin-bottom:5px;"
87
+ v-model="widget.options.remote.props.label"
88
+ >
89
+ <div slot="prepend">标签</div>
84
90
  </el-input>
85
- <el-input v-model="widget.options.props.children">
86
- <div slot="prepend" style="width:50px">子选项</div>
91
+ <el-input
92
+ style="margin-bottom:5px;"
93
+ v-model="widget.options.remote.props.children"
94
+ >
95
+ <div slot="prepend">子选项</div>
87
96
  </el-input>
88
97
  </template>
89
98
  <template v-else>
90
- <el-switch
91
- v-model="widget.options.showLabel"
92
- active-text="显示标签"
93
- inactive-text="隐藏标签"
99
+ <el-checkbox-group
100
+ style="width: 100%;"
101
+ v-model="widget.options.defaultValue"
94
102
  >
95
- </el-switch>
96
- <el-checkbox-group v-model="widget.options.defaultValue">
97
103
  <draggable
98
- tag="ul"
99
104
  :list="widget.options.options"
100
105
  v-bind="{
101
106
  group: { name: 'options' },
102
107
  ghostClass: 'ghost',
103
- handle: '.drag-item'
108
+ handle: '.drag'
104
109
  }"
105
- handle=".drag-item"
110
+ handle=".drag"
106
111
  >
107
- <li v-for="(item, index) in widget.options.options" :key="index">
108
- <el-checkbox :label="item.value" style="margin-right: 5px;">
109
- <el-input
110
- :style="{
111
- width: widget.options.showLabel ? '90px' : '180px'
112
- }"
113
- v-model="item.value"
114
- :disabled="
115
- widget.options.defaultValue.indexOf(item.value) !== -1
116
- "
117
- ></el-input>
112
+ <div
113
+ v-for="(item, index) in widget.options.options"
114
+ class="draggable-item"
115
+ :key="index"
116
+ >
117
+ <i class="drag"><i class="iconfont icon-icon_bars"></i></i>
118
+ <el-checkbox :label="item.value"><span></span></el-checkbox>
119
+ <div class="content">
118
120
  <el-input
119
- v-if="widget.options.showLabel"
120
- style="width:90px;"
121
+ v-show="widget.options.showLabel"
121
122
  v-model="item.label"
122
123
  >
123
124
  </el-input>
124
- </el-checkbox>
125
- <i
126
- class="drag-item"
127
- style="font-size: 16px;margin: 0 5px;cursor: move;"
128
- ><i class="iconfont icon-icon_bars"></i
129
- ></i>
125
+ <el-input v-model="item.value"></el-input>
126
+ </div>
130
127
  <el-button
131
- style="padding: 2px;margin-left: 5px;"
128
+ class="delete"
132
129
  type="danger"
133
130
  icon="el-icon-minus"
134
131
  circle
@@ -138,11 +135,19 @@
138
135
  "
139
136
  @click="handleOptionsRemove(index)"
140
137
  ></el-button>
141
- </li>
138
+ </div>
142
139
  </draggable>
143
140
  </el-checkbox-group>
144
141
 
145
- <div style="margin-left: 22px;">
142
+ <div
143
+ style="display: flex;align-items: center; justify-content: space-between;"
144
+ >
145
+ <el-switch
146
+ v-model="widget.options.showLabel"
147
+ active-text="显示标签"
148
+ inactive-text="隐藏标签"
149
+ >
150
+ </el-switch>
146
151
  <el-button type="text" @click="handleAddOption">添加选项</el-button>
147
152
  </div>
148
153
  </template>
@@ -150,7 +155,7 @@
150
155
 
151
156
  <el-form-item label="默认值">
152
157
  <el-input
153
- :value="JSON.stringify(widget.options.defaultValue || [])"
158
+ :value="JSON.stringify(widget.options.defaultValue)"
154
159
  readonly
155
160
  ></el-input>
156
161
  </el-form-item>
@@ -194,4 +199,30 @@ export default {
194
199
  };
195
200
  </script>
196
201
 
197
- <style></style>
202
+ <style lang="scss" scoped>
203
+ .draggable-item {
204
+ margin-bottom: 5px;
205
+ display: flex;
206
+ align-items: center;
207
+ .el-checkbox {
208
+ margin-right: 0;
209
+ padding-left: 10px;
210
+ }
211
+
212
+ .content {
213
+ flex: 1;
214
+ display: flex;
215
+ margin-right: 5px;
216
+ > div {
217
+ margin: 0 2px;
218
+ }
219
+ }
220
+ .drag {
221
+ font-size: 16px;
222
+ cursor: move;
223
+ }
224
+ .delete {
225
+ padding: 4px;
226
+ }
227
+ }
228
+ </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="configComponents">
2
+ <div class="component-config">
3
3
  <el-collapse-item title="组件配置" name="group-element">
4
4
  <el-form-item label="标题">
5
5
  <el-input v-model="widget.name"></el-input>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="configComponents">
2
+ <div class="component-config">
3
3
  <el-collapse-item title="组件配置" name="group-element">
4
4
  <el-form-item label="标题">
5
5
  <el-input v-model="widget.name"></el-input>
@@ -0,0 +1,314 @@
1
+ <template>
2
+ <div class="component-config">
3
+ <el-collapse-item title="组件配置" name="group-element">
4
+ <el-form-item label="标题">
5
+ <el-input v-model="widget.name" clearable></el-input>
6
+ </el-form-item>
7
+ <el-form-item label="标题宽度">
8
+ <el-input v-model="widget.options.labelWidth" clearable></el-input>
9
+ </el-form-item>
10
+ <el-form-item label="标题排列">
11
+ <el-radio-group v-model="widget.options.textAlignLast">
12
+ <el-radio-button label="left">靠左</el-radio-button>
13
+ <el-radio-button label="center">居中</el-radio-button>
14
+ <el-radio-button label="right">靠右</el-radio-button>
15
+ <el-radio-button label="justify">两端</el-radio-button>
16
+ </el-radio-group>
17
+ </el-form-item>
18
+ <el-form-item label="每行列数">
19
+ <el-input-number
20
+ v-model="widget.options.column"
21
+ controls-position="right"
22
+ :min="1"
23
+ :max="4"
24
+ ></el-input-number>
25
+ </el-form-item>
26
+ <el-form-item label="排列方向">
27
+ <el-radio-group v-model="widget.options.direction">
28
+ <el-radio-button label="vertical">纵向</el-radio-button>
29
+ <el-radio-button label="horizontal">横向</el-radio-button>
30
+ </el-radio-group>
31
+ </el-form-item>
32
+ <el-form-item label="尺寸">
33
+ <el-radio-group v-model="widget.options.size">
34
+ <el-radio-button label="medium">medium</el-radio-button>
35
+ <el-radio-button label="small">small</el-radio-button>
36
+ <el-radio-button label="mini">mini</el-radio-button>
37
+ </el-radio-group>
38
+ </el-form-item>
39
+ <el-form-item label="显示边框">
40
+ <el-switch v-model="widget.options.border"></el-switch>
41
+ </el-form-item>
42
+ <el-form-item label="自带冒号">
43
+ <el-switch v-model="widget.options.colon"></el-switch>
44
+ </el-form-item>
45
+
46
+ <el-form-item label="数据类型">
47
+ <el-radio-group
48
+ v-model="widget.options.remote.open"
49
+ @input="handleRemoteChange"
50
+ >
51
+ <el-radio-button :label="false">静态数据</el-radio-button>
52
+ <el-radio-button :label="true">远端数据</el-radio-button>
53
+ </el-radio-group>
54
+ </el-form-item>
55
+
56
+ <el-form-item label-width="0">
57
+ <div v-if="widget.options.remote.open">
58
+ <el-select
59
+ style="width:100%;margin-bottom: 5px;"
60
+ v-model="widget.options.remote.api"
61
+ placeholder="请选择"
62
+ no-data-text="暂无数据,请查阅相关文档说明"
63
+ clearable
64
+ filterable
65
+ >
66
+ <el-option
67
+ v-for="item in apiOptions"
68
+ :key="item.id"
69
+ :label="item.name"
70
+ :value="item.id"
71
+ >
72
+ </el-option>
73
+ </el-select>
74
+ </div>
75
+ <div v-else>
76
+ <draggable
77
+ :list="widget.options.defaultValue"
78
+ v-bind="{
79
+ group: { name: 'options' },
80
+ ghostClass: 'ghost',
81
+ handle: '.drag'
82
+ }"
83
+ handle=".drag"
84
+ >
85
+ <div
86
+ v-for="(item, index) in widget.options.defaultValue"
87
+ class="draggable-item"
88
+ :key="index"
89
+ >
90
+ <i class="drag"><i class="iconfont icon-icon_bars"></i></i>
91
+ <div class="content">
92
+ <el-input v-model="item.label" placeholder="标题" clearable>
93
+ </el-input>
94
+ <el-input
95
+ v-model="item.value"
96
+ placeholder="内容"
97
+ clearable
98
+ ></el-input>
99
+ </div>
100
+ <el-button
101
+ class="action"
102
+ type="primary"
103
+ size="mini"
104
+ icon="el-icon-set-up"
105
+ circle
106
+ plain
107
+ @click="handleDetailOption(index)"
108
+ ></el-button>
109
+
110
+ <el-button
111
+ class="action"
112
+ type="danger"
113
+ size="mini"
114
+ icon="el-icon-minus"
115
+ circle
116
+ plain
117
+ @click="handleRemoveOption(index)"
118
+ ></el-button>
119
+ </div>
120
+ </draggable>
121
+
122
+ <div style="margin-left: 22px;">
123
+ <el-button type="text" @click="handleAddOption">添加选项</el-button>
124
+ </div>
125
+ </div>
126
+ </el-form-item>
127
+ </el-collapse-item>
128
+
129
+ <th-dialog
130
+ v-model="dialog.show"
131
+ title="数据配置"
132
+ :modal-append-to-body="false"
133
+ :showFooter="false"
134
+ >
135
+ <div class="th-flex_box th-is_border">
136
+ <div class="box-list th-flex_aside th-is_border_right">
137
+ <div class="box-header th-sticky_top">
138
+ <div>数据列表</div>
139
+ <el-button
140
+ type="text"
141
+ icon="el-icon-plus"
142
+ size="mini"
143
+ @click="handleAddOption"
144
+ >添加</el-button
145
+ >
146
+ </div>
147
+ <div
148
+ v-for="(item, index) in widget.options.defaultValue"
149
+ class="list-item th-is_hover"
150
+ :class="{
151
+ 'th-is_active': dialog.data && dialog.data.label === item.label
152
+ }"
153
+ :key="index"
154
+ @click="dialog.data = item"
155
+ >
156
+ <div class="list-item-value">{{ item.label }}</div>
157
+ <el-popconfirm
158
+ :title="`是否确定删除 ${item.label}`"
159
+ confirm-button-text="删除"
160
+ confirm-button-type="danger"
161
+ @confirm="handleRemoveOption(index)"
162
+ >
163
+ <i class="delete el-icon-delete" slot="reference"></i>
164
+ </el-popconfirm>
165
+ </div>
166
+ </div>
167
+ <div class="box-content th-fiex_content">
168
+ <div class="box-header th-sticky_top">数据详情</div>
169
+ <el-form
170
+ v-if="dialog.data"
171
+ style="padding:10px"
172
+ :model="dialog.data"
173
+ label-width="80px"
174
+ size="mini"
175
+ >
176
+ <el-form-item label="标题">
177
+ <el-input v-model="dialog.data.label"></el-input>
178
+ </el-form-item>
179
+ <el-form-item label="内容">
180
+ <el-input v-model="dialog.data.value"></el-input>
181
+ </el-form-item>
182
+ <el-form-item label="图标">
183
+ <th-icons v-model="dialog.data.icon"></th-icons>
184
+ </el-form-item>
185
+ <el-form-item label="标题宽度">
186
+ <el-input
187
+ v-model="dialog.data.options.style.label.width"
188
+ ></el-input>
189
+ </el-form-item>
190
+ <el-form-item label="数据类型">
191
+ <el-select
192
+ style="width:100%"
193
+ v-model="dialog.data.type"
194
+ placeholder="请选择"
195
+ >
196
+ <el-option
197
+ v-for="item in valueTypeOptions"
198
+ :key="item.value"
199
+ :label="item.label"
200
+ :value="item.value"
201
+ >
202
+ </el-option>
203
+ </el-select>
204
+ </el-form-item>
205
+ <el-form-item v-if="dialog.data.type === 'date'" label="格式化">
206
+ <el-input v-model="dialog.data.options.format"></el-input>
207
+ </el-form-item>
208
+ </el-form>
209
+ </div>
210
+ </div>
211
+ </th-dialog>
212
+ </div>
213
+ </template>
214
+
215
+ <script>
216
+ import Draggable from "vuedraggable";
217
+ import { configComponent } from "../mixins";
218
+ export default {
219
+ components: { Draggable },
220
+ mixins: [configComponent],
221
+ data() {
222
+ return {
223
+ valueTypeOptions: [{ label: "文本", value: "text" }],
224
+ dialog: { show: false, data: "", index: "" }
225
+ };
226
+ },
227
+ created() {},
228
+ mounted() {},
229
+ methods: {
230
+ handleAddOption() {
231
+ this.widget.options.defaultValue.push({
232
+ type: "text", //数据类型
233
+ label: `标题 ${this.widget.options.defaultValue.length + 1}`, //支持HTML标签
234
+ value: `内容 ${this.widget.options.defaultValue.length + 1}`, //支持HTML标签
235
+ icon: "", //标题左侧图标
236
+ options: {
237
+ showTitle: true, //显示标题
238
+ format: "", //type=date 时选填
239
+ //样式对象
240
+ style: {
241
+ label: { width: "", customStyle: "" }, // 标题样式
242
+ value: { customStyle: "" } // 内容样式
243
+ }
244
+ }
245
+ });
246
+ },
247
+ handleRemoveOption(index) {
248
+ this.widget.options.defaultValue.splice(index, 1);
249
+ },
250
+ handleRemoteChange(val) {
251
+ if (val) return;
252
+ this.widget.options.remote.api = "";
253
+ },
254
+ handleDetailOption(index) {
255
+ this.dialog = {
256
+ show: true,
257
+ data: this.widget.options.defaultValue[index],
258
+ index
259
+ };
260
+ }
261
+ }
262
+ };
263
+ </script>
264
+
265
+ <style lang="scss" scoped>
266
+ .draggable-item {
267
+ margin-bottom: 5px;
268
+ display: flex;
269
+ align-items: center;
270
+
271
+ .content {
272
+ display: flex;
273
+ margin: 0 5px;
274
+ > div {
275
+ margin: 0 2px;
276
+ }
277
+ }
278
+ .drag {
279
+ font-size: 16px;
280
+ cursor: move;
281
+ }
282
+ .action {
283
+ padding: 4px;
284
+ }
285
+ }
286
+ .th-flex_box {
287
+ .box-list {
288
+ .list-item {
289
+ padding: 10px 10px;
290
+ display: flex;
291
+ align-items: center;
292
+ justify-content: space-between;
293
+ transition: 0.25s;
294
+
295
+ .delete {
296
+ color: #f56c6c;
297
+ cursor: pointer;
298
+ }
299
+ .delete:hover {
300
+ color: #f78989;
301
+ }
302
+ }
303
+ }
304
+ .box-content {
305
+ }
306
+ .box-header {
307
+ padding: 0 10px;
308
+ height: 40px;
309
+ display: flex;
310
+ align-items: center;
311
+ justify-content: space-between;
312
+ }
313
+ }
314
+ </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="configComponents">
2
+ <div class="component-config">
3
3
  <el-collapse-item title="组件配置" name="group-element">
4
4
  <el-form-item label="标题">
5
5
  <el-input v-model="widget.name"></el-input>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="configComponents">
2
+ <div class="component-config">
3
3
  <el-collapse-item title="组件配置" name="group-element">
4
4
  <el-form-item label="标题">
5
5
  <el-input v-model="widget.name"></el-input>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="configComponents">
2
+ <div class="component-config">
3
3
  <el-collapse-item title="组件配置" name="group-element">
4
4
  <el-form-item label="标题">
5
5
  <el-input v-model="widget.name"></el-input>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="configComponents">
2
+ <div class="component-config">
3
3
  <el-collapse-item title="组件配置" name="group-element">
4
4
  <el-form-item label="标题">
5
5
  <el-input v-model="widget.name"></el-input>
@@ -14,39 +14,32 @@
14
14
 
15
15
  <el-form-item label="列配置项">
16
16
  <draggable
17
- tag="ul"
18
17
  :list="widget.options.columns"
19
18
  v-bind="{
20
19
  group: { name: 'options' },
21
20
  ghostClass: 'ghost',
22
- handle: '.drag-item'
21
+ handle: '.drag'
23
22
  }"
24
- handle=".drag-item"
23
+ handle=".drag"
25
24
  >
26
- <li v-for="(item, index) in widget.options.columns" :key="index">
27
- <el-input
28
- placeholder="栅格值"
29
- style="width: 100px;"
30
- type="number"
31
- v-model.number="item.span"
32
- >
33
- </el-input>
34
- <i
35
- class="drag-item"
36
- style="font-size: 16px;margin: 0 5px;cursor: move;"
37
- ><i class="iconfont icon-icon_bars"></i
38
- ></i>
25
+ <div
26
+ v-for="(item, index) in widget.options.columns"
27
+ class="draggable-item"
28
+ :key="index"
29
+ >
30
+ <i class="drag"><i class="iconfont icon-icon_bars"></i></i>
31
+ <el-input v-model.number="item.span" type="number"> </el-input>
39
32
  <el-button
40
- @click="handleOptionsRemove(index)"
33
+ class="delete"
41
34
  circle
42
35
  plain
43
36
  type="danger"
44
37
  icon="el-icon-minus"
45
- style="padding: 3px;margin-left: 5px;"
38
+ @click="handleOptionsRemove(index)"
46
39
  ></el-button>
47
- </li>
40
+ </div>
48
41
  </draggable>
49
- <div style="margin-left: 22px;">
42
+ <div style="margin-left: 22px;text-align: right;">
50
43
  <el-button type="text" @click="handleAddOption">添加列</el-button>
51
44
  </div>
52
45
  </el-form-item>
@@ -108,4 +101,22 @@ export default {
108
101
  };
109
102
  </script>
110
103
 
111
- <style></style>
104
+ <style lang="scss" scoped>
105
+ .draggable-item {
106
+ margin-bottom: 5px;
107
+ display: flex;
108
+ align-items: center;
109
+
110
+ .el-input {
111
+ margin: 0 5px;
112
+ }
113
+
114
+ .drag {
115
+ font-size: 16px;
116
+ cursor: move;
117
+ }
118
+ .delete {
119
+ padding: 4px;
120
+ }
121
+ }
122
+ </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="configComponents">
2
+ <div class="component-config">
3
3
  <el-collapse-item title="组件配置" name="group-element">
4
4
  <el-form-item label="标题">
5
5
  <el-input v-model="widget.name"></el-input>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="configComponents">
2
+ <div class="component-config">
3
3
  <el-collapse-item title="组件配置" name="group-element">
4
4
  <el-form-item label="标题">
5
5
  <el-input v-model="widget.name" clearable></el-input>