tianheng-ui 0.1.63 → 0.1.65

Sign up to get free protection for your applications and to get access to all the features.
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>