eoss 0.1.0-alpha.20 → 0.1.0-alpha.21

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 (207) hide show
  1. package/lib/account-login.js +1943 -1890
  2. package/lib/alert.js +4 -4
  3. package/lib/aside.js +4 -4
  4. package/lib/autocomplete.js +4936 -4834
  5. package/lib/avatar.js +4 -4
  6. package/lib/backtop.js +4 -4
  7. package/lib/badge.js +4 -4
  8. package/lib/breadcrumb-item.js +6 -6
  9. package/lib/breadcrumb.js +7 -7
  10. package/lib/button-group.js +11 -14
  11. package/lib/button.js +6 -6
  12. package/lib/ca-login.js +2480 -2382
  13. package/lib/calendar.js +798 -798
  14. package/lib/card.js +4 -4
  15. package/lib/carousel-item.js +911 -813
  16. package/lib/carousel.js +1646 -1548
  17. package/lib/cascader-panel.js +2556 -2458
  18. package/lib/cascader.js +4546 -4444
  19. package/lib/checkbox-button.js +4 -4
  20. package/lib/checkbox-group.js +2894 -2841
  21. package/lib/checkbox.js +4 -4
  22. package/lib/col.js +2 -2
  23. package/lib/collapse-item.js +35159 -2572
  24. package/lib/collapse.js +35410 -2762
  25. package/lib/color-picker.js +494 -490
  26. package/lib/config/api.js +15 -1
  27. package/lib/container.js +4 -4
  28. package/lib/cron.js +4 -4
  29. package/lib/data-table.js +1895 -1842
  30. package/lib/date-picker.js +6422 -6320
  31. package/lib/dialog.js +2912 -2806
  32. package/lib/divider.js +4 -4
  33. package/lib/drawer.js +311 -299
  34. package/lib/dropdown-item.js +6 -6
  35. package/lib/dropdown-menu.js +539 -535
  36. package/lib/dropdown.js +2270 -2172
  37. package/lib/email-login.js +1783 -1730
  38. package/lib/empty.js +723 -0
  39. package/lib/eoss.common.js +63680 -56193
  40. package/lib/flip.js +4 -4
  41. package/lib/flow-group.js +2985 -2887
  42. package/lib/flow.js +28067 -28022
  43. package/lib/footer.js +4 -4
  44. package/lib/form-item.js +1935 -1837
  45. package/lib/form.js +9230 -9092
  46. package/lib/header.js +4 -4
  47. package/lib/icon.js +1708 -1590
  48. package/lib/icons.js +4 -4
  49. package/lib/image-viewer.js +1660 -1562
  50. package/lib/image.js +162 -162
  51. package/lib/index.js +1 -1
  52. package/lib/infinite-scroll.js +76 -76
  53. package/lib/input-number.js +172 -172
  54. package/lib/input.js +1362 -1264
  55. package/lib/link.js +4 -4
  56. package/lib/loading.js +321 -317
  57. package/lib/login.js +3306 -3300
  58. package/lib/lowcode.js +13320 -0
  59. package/lib/main.js +14465 -14339
  60. package/lib/marquee.js +1237 -1139
  61. package/lib/menu-item-group.js +119 -119
  62. package/lib/menu-item.js +114 -114
  63. package/lib/menu.js +6193 -6091
  64. package/lib/message-box.js +3582 -3480
  65. package/lib/message.js +2265 -2163
  66. package/lib/notification.js +2430 -2328
  67. package/lib/option-group.js +4 -4
  68. package/lib/option.js +842 -744
  69. package/lib/page-header.js +4 -4
  70. package/lib/pagination.js +1916 -1815
  71. package/lib/phone-login.js +1788 -1735
  72. package/lib/popconfirm.js +8 -8
  73. package/lib/popover.js +4559 -4457
  74. package/lib/progress.js +4 -4
  75. package/lib/qr-code.js +9 -9
  76. package/lib/qrcode-login.js +1600 -1543
  77. package/lib/radio-button.js +6 -6
  78. package/lib/radio-group.js +2142 -2089
  79. package/lib/radio.js +6 -6
  80. package/lib/rate.js +1226 -1128
  81. package/lib/row.js +2 -2
  82. package/lib/scrollbar.js +2695 -2597
  83. package/lib/select.js +5985 -5961
  84. package/lib/selector-panel.js +5239 -5186
  85. package/lib/selector.js +1712 -1659
  86. package/lib/slider.js +16 -16
  87. package/lib/step.js +35836 -2736
  88. package/lib/steps.js +1281 -1183
  89. package/lib/submenu.js +461 -457
  90. package/lib/switch.js +1010 -912
  91. package/lib/tab-pane.js +4 -4
  92. package/lib/table-column.js +2595 -2497
  93. package/lib/table.js +9225 -9239
  94. package/lib/tabs.js +2414 -2320
  95. package/lib/tag.js +4 -4
  96. package/lib/theme-chalk/account-login.css +1 -1
  97. package/lib/theme-chalk/autocomplete.css +1 -1
  98. package/lib/theme-chalk/base.css +1 -1
  99. package/lib/theme-chalk/cascader.css +1 -1
  100. package/lib/theme-chalk/date-picker.css +1 -1
  101. package/lib/theme-chalk/empty.css +1 -0
  102. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  103. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  104. package/lib/theme-chalk/form.css +1 -1
  105. package/lib/theme-chalk/icon.css +1 -1
  106. package/lib/theme-chalk/index.css +1 -1
  107. package/lib/theme-chalk/input-number.css +1 -1
  108. package/lib/theme-chalk/input.css +1 -1
  109. package/lib/theme-chalk/login.css +1 -1
  110. package/lib/theme-chalk/lowcode.css +1 -0
  111. package/lib/theme-chalk/main.css +1 -1
  112. package/lib/theme-chalk/message-box.css +1 -1
  113. package/lib/theme-chalk/pagination.css +1 -1
  114. package/lib/theme-chalk/qrcode-login.css +1 -1
  115. package/lib/theme-chalk/select.css +1 -1
  116. package/lib/theme-chalk/slider.css +1 -1
  117. package/lib/theme-chalk/tabs.css +1 -1
  118. package/lib/theme-chalk/time-picker.css +1 -1
  119. package/lib/theme-chalk/transfer.css +1 -1
  120. package/lib/time-picker.js +5823 -5819
  121. package/lib/time-select.js +3578 -3574
  122. package/lib/timeline-item.js +4 -4
  123. package/lib/timeline.js +4 -4
  124. package/lib/tips.js +1633 -1580
  125. package/lib/toolbar.js +213 -213
  126. package/lib/tooltip.js +4441 -4339
  127. package/lib/transfer.js +938 -840
  128. package/lib/tree-group.js +1875 -1757
  129. package/lib/tree.js +2626 -2573
  130. package/lib/upload.js +7209 -7156
  131. package/lib/utils/ajax.js +185 -243
  132. package/lib/utils/bus.js +2 -2
  133. package/lib/utils/popup/index.js +5 -1
  134. package/lib/utils/util.js +108 -11
  135. package/package.json +2 -2
  136. package/packages/button/src/button-group.vue +1 -4
  137. package/packages/collapse/src/collapse-item.vue +47 -33
  138. package/packages/dialog/src/dialog.vue +4 -1
  139. package/packages/drawer/src/drawer.vue +12 -4
  140. package/packages/empty/index.js +7 -0
  141. package/packages/empty/src/img-empty.vue +132 -0
  142. package/packages/empty/src/index.vue +49 -0
  143. package/packages/form/src/form-item-render.vue +16 -18
  144. package/packages/form/src/form.vue +27 -5
  145. package/packages/icons/src/icon.json +1 -1
  146. package/packages/login/src/login.vue +19 -21
  147. package/packages/login/src/mixins.js +2 -1
  148. package/packages/lowcode/index.js +5 -0
  149. package/packages/lowcode/src/aside.vue +331 -0
  150. package/packages/lowcode/src/attribute/bind.vue +441 -0
  151. package/packages/lowcode/src/attribute/dependency.vue +325 -0
  152. package/packages/lowcode/src/attribute/function.vue +112 -0
  153. package/packages/lowcode/src/attribute/property.vue +331 -0
  154. package/packages/lowcode/src/attribute/styles.vue +318 -0
  155. package/packages/lowcode/src/attribute.vue +135 -0
  156. package/packages/lowcode/src/canvas.vue +296 -0
  157. package/packages/lowcode/src/json.vue +32 -0
  158. package/packages/lowcode/src/lowcode.vue +539 -0
  159. package/packages/lowcode/src/modules.vue +93 -0
  160. package/packages/lowcode/src/pages.vue +91 -0
  161. package/packages/lowcode/src/render.vue +247 -0
  162. package/packages/lowcode/src/source.vue +32 -0
  163. package/packages/lowcode/src/toolbar.vue +162 -0
  164. package/packages/main/src/components/pages.vue +28 -2
  165. package/packages/main/src/components/set-menus.vue +3 -3
  166. package/packages/main/src/components/user.vue +6 -1
  167. package/packages/main/src/early.vue +2 -2
  168. package/packages/main/src/gzw.vue +55 -61
  169. package/packages/main/src/minxs.js +113 -36
  170. package/packages/pagination/src/pager.vue +2 -2
  171. package/packages/pagination/src/pagination.js +4 -1
  172. package/packages/qrcode-login/src/qrcode-login.vue +6 -2
  173. package/packages/select/src/select.vue +28 -6
  174. package/packages/steps/src/step.vue +7 -5
  175. package/packages/tabs/src/tab-nav.vue +1 -0
  176. package/packages/tabs/src/tabs.vue +0 -2
  177. package/packages/theme-chalk/dist/fonts/iconfont.ttf +0 -0
  178. package/packages/theme-chalk/dist/fonts/iconfont.woff +0 -0
  179. package/packages/theme-chalk/gulpfile.js +3 -0
  180. package/packages/theme-chalk/src/account-login.scss +1 -0
  181. package/packages/theme-chalk/src/base.scss +1 -1
  182. package/packages/theme-chalk/src/common/var.scss +16 -0
  183. package/packages/theme-chalk/src/empty.scss +45 -0
  184. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  185. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  186. package/packages/theme-chalk/src/form.scss +1 -8
  187. package/packages/theme-chalk/src/icon.scss +30 -1
  188. package/packages/theme-chalk/src/index.scss +2 -0
  189. package/packages/theme-chalk/src/input-number.scss +0 -4
  190. package/packages/theme-chalk/src/input.scss +9 -0
  191. package/packages/theme-chalk/src/login.scss +32 -29
  192. package/packages/theme-chalk/src/lowcode.scss +461 -0
  193. package/packages/theme-chalk/src/main.scss +28 -65
  194. package/packages/theme-chalk/src/pagination.scss +4 -55
  195. package/packages/theme-chalk/src/qrcode-login.scss +3 -1
  196. package/packages/theme-chalk/src/tabs.scss +81 -50
  197. package/src/config/api.js +13 -0
  198. package/src/index.js +17 -4
  199. package/src/utils/ajax.js +61 -65
  200. package/src/utils/bus.js +2 -2
  201. package/src/utils/popup/index.js +5 -1
  202. package/src/utils/util.js +104 -7
  203. package/lib/index_/345/211/257/346/234/254.js +0 -583
  204. package/packages/dialog copy/index.js +0 -8
  205. package/packages/dialog copy/src/dialog.vue +0 -615
  206. package/src/index_/345/211/257/346/234/254.js +0 -359
  207. /package/{packages/form/src → src/components}/field-render.vue +0 -0
@@ -0,0 +1,331 @@
1
+ <template>
2
+ <es-scrollbar class="es-lowcode__property">
3
+ <es-form label-width="auto" size="small" :model="models">
4
+ <es-collapse v-model="active">
5
+ <es-collapse-item name="hook">
6
+ <template slot="title">
7
+ <span>生命周期</span>
8
+ </template>
9
+ <es-form-item
10
+ v-for="item in hooks"
11
+ :label="item.label"
12
+ :key="item.name"
13
+ >
14
+ <es-input v-model="models[item.name]" clearable @change="handleChange('hooks')"></es-input>
15
+ </es-form-item>
16
+ </es-collapse-item>
17
+ <es-collapse-item name="props">
18
+ <template slot="title">
19
+ <span>props</span>
20
+ <es-button
21
+ size="small"
22
+ type="text"
23
+ @click.stop="handleAdd('props')"
24
+ icon="es-icon-jia"
25
+ ></es-button>
26
+ </template>
27
+ <es-form-item
28
+ v-for="item in props"
29
+ :label="item.label"
30
+ :key="item.name"
31
+ >
32
+ <es-input v-model="models[item.name]" clearable @change="handleChange('props')">
33
+
34
+ <i
35
+ v-if="item.custom"
36
+ slot="append"
37
+ class="es-icon-shanchu"
38
+ @click.stop="handleDelete('props', item.name)"
39
+ ></i>
40
+ </es-input>
41
+ </es-form-item>
42
+ </es-collapse-item>
43
+ <es-collapse-item name="data">
44
+ <template slot="title">
45
+ <span>data</span>
46
+ <es-button
47
+ size="small"
48
+ type="text"
49
+ @click.stop="handleAdd('datas')"
50
+ icon="es-icon-jia"
51
+ ></es-button>
52
+ </template>
53
+ <es-form-item
54
+ v-for="item in datas"
55
+ :label="item.label"
56
+ :key="item.name"
57
+ >
58
+ <es-input v-model="models[item.name]" clearable @change="handleChange('data')">
59
+
60
+ <i
61
+ v-if="item.custom"
62
+ slot="append"
63
+ class="es-icon-shanchu"
64
+ @click.stop="handleDelete('datas', item.name)"
65
+ ></i>
66
+ </es-input>
67
+ </es-form-item>
68
+ </es-collapse-item>
69
+ <es-collapse-item name="computed">
70
+ <template slot="title">
71
+ <span>computed</span>
72
+ <es-button
73
+ size="small"
74
+ type="text"
75
+ @click.stop="handleAdd('computeds')"
76
+ icon="es-icon-jia"
77
+ ></es-button>
78
+ </template>
79
+ <es-form-item
80
+ v-for="item in computeds"
81
+ :label="item.label"
82
+ :key="item.name"
83
+ >
84
+ <es-input v-model="models[item.name]" clearable @change="handleChange('computed')">
85
+ <i
86
+ v-if="item.custom"
87
+ slot="append"
88
+ class="es-icon-shanchu"
89
+ @click.stop="handleDelete('computeds', item.name)"
90
+ ></i>
91
+ </es-input>
92
+ </es-form-item>
93
+ </es-collapse-item>
94
+ <es-collapse-item name="watch">
95
+ <template slot="title">
96
+ <span>watch</span>
97
+ <es-button
98
+ size="small"
99
+ type="text"
100
+ @click.stop="handleAdd('watchs')"
101
+ icon="es-icon-jia"
102
+ ></es-button>
103
+ </template>
104
+ <es-form-item
105
+ v-for="item in watchs"
106
+ :label="item.label"
107
+ :key="item.name"
108
+ >
109
+ <es-input v-model="models[item.name]" clearable @change="handleChange('watch')">
110
+
111
+ <i
112
+ v-if="item.custom"
113
+ slot="append"
114
+ class="es-icon-shanchu"
115
+ @click.stop="handleDelete('watchs', item.name)"
116
+ ></i>
117
+ </es-input>
118
+ </es-form-item>
119
+ </es-collapse-item>
120
+ </es-collapse>
121
+ </es-form>
122
+ <es-dialog
123
+ title="添加自定义属性"
124
+ :visible.sync="visible"
125
+ :showScale="false"
126
+ width="400px"
127
+ height="200px"
128
+ @close="handleClose"
129
+ >
130
+ <es-form :model="value" label-width="80px" size="small" ref="keyRef" :rules="rules">
131
+ <es-form-item label="属性名" prop="key">
132
+ <es-input v-model="value.key"></es-input>
133
+ </es-form-item>
134
+ <es-form-item label="属性值" prop="value">
135
+ <es-input v-model="value.value"></es-input>
136
+ </es-form-item>
137
+ <div class="es-lowcode__property--dialog-footer">
138
+ <es-button size="small" @click="visible = false">取消</es-button>
139
+ <es-button size="small" @click="handleSubmit" type="primary"
140
+ >确定</es-button
141
+ >
142
+ </div>
143
+ </es-form>
144
+ </es-dialog>
145
+ </es-scrollbar>
146
+ </template>
147
+ <script>
148
+ export default {
149
+ name: 'Bind',
150
+
151
+ components: {},
152
+
153
+ props: {
154
+ model: {
155
+ type: Object,
156
+ default: () => ({})
157
+ },
158
+ },
159
+
160
+ data() {
161
+ return {
162
+ hooks: [
163
+ {
164
+ name: 'beforeCreate',
165
+ label: 'beforeCreate',
166
+ type: 'text',
167
+ clearable: true
168
+ },
169
+ {
170
+ name: 'created',
171
+ label: 'created',
172
+ type: 'text',
173
+ clearable: true
174
+ },
175
+ {
176
+ name: 'beforeMount',
177
+ label: 'beforeMount',
178
+ type: 'text',
179
+ clearable: true
180
+ },
181
+ {
182
+ name: 'mounted',
183
+ label: 'mounted',
184
+ type: 'text',
185
+ clearable: true
186
+ },
187
+ {
188
+ name: 'beforeUpdate',
189
+ label: 'beforeUpdate',
190
+ type: 'text',
191
+ clearable: true
192
+ },
193
+ {
194
+ name: 'updated',
195
+ label: 'updated',
196
+ type: 'text',
197
+ clearable: true
198
+ },
199
+ {
200
+ name: 'beforeDestroy',
201
+ label: 'beforeDestroy',
202
+ type: 'text',
203
+ clearable: true
204
+ },
205
+ {
206
+ name: 'destroyed',
207
+ label: 'destroyed',
208
+ type: 'text',
209
+ clearable: true
210
+ }
211
+ ],
212
+ props: [],
213
+ datas: [],
214
+ computeds: [],
215
+ watchs: [],
216
+ hookValues: {},
217
+ propValues: {},
218
+ dataValues: {},
219
+ computedValues: {},
220
+ watchValues: {},
221
+ /**
222
+ * 活动项
223
+ */
224
+ active: ['hook', 'props', 'data', 'computed', 'watch'],
225
+ visible: false,
226
+ /**
227
+ * 新增属性值
228
+ */
229
+ value: {},
230
+ /**
231
+ * 新增属性值规则
232
+ */
233
+ rules: {
234
+ key: [{ required: true, message: '请输入属性名', trigger: 'blur' }]
235
+ },
236
+ /**
237
+ * 新增属性值类型
238
+ */
239
+ type: '',
240
+ contrast: {
241
+ props:'propsValues',
242
+ datas:'dataValues',
243
+ computeds:'computedValues',
244
+ watchs:'watchValues'
245
+ }
246
+ };
247
+ },
248
+
249
+ computed: {
250
+ models() {
251
+ return {
252
+ ...this.hookValues,
253
+ ...this.propValues,
254
+ ...this.dataValues,
255
+ ...this.computedValues,
256
+ ...this.watchValues,
257
+ };
258
+ }
259
+ },
260
+
261
+ watch: {
262
+ /**
263
+ * 监听 model prop 变化(仅用于切换组件时的初始化同步)
264
+ */
265
+ model: {
266
+ handler(val) {
267
+ this.hookValues = val.hooks || {};
268
+ this.propValues = val.props || {};
269
+ this.dataValues = val.data || {};
270
+ this.computedValues = val.computed || {};
271
+ this.watchValues = val.watch || {};
272
+ },
273
+ immediate: true
274
+ }
275
+ },
276
+
277
+ created() {},
278
+
279
+ mounted() {},
280
+
281
+ methods: {
282
+ /**
283
+ * 处理输入框内容变更,根据分类通过 change 事件通知父组件
284
+ * @param {String} category - 变更字段所属分类(hooks/props/data/computed/watch)
285
+ */
286
+ handleChange(category) {
287
+ const emitMap = {
288
+ hooks: 'hookValues',
289
+ props: 'propValues',
290
+ data: 'dataValues',
291
+ computed: 'computedValues',
292
+ watch: 'watchValues'
293
+ };
294
+ const key = emitMap[category];
295
+ if (key) {
296
+ this.$emit('change', { [category]: { ...this[key] } });
297
+ }
298
+ },
299
+ /**
300
+ * 处理添加事件
301
+ */
302
+ handleAdd(type) {
303
+ this.type = type;
304
+ this.visible = true;
305
+ },
306
+ handleClose() {
307
+ this.$refs.keyRef.resetFields();
308
+ this.value.key = '';
309
+ },
310
+ /**
311
+ * 处理提交事件
312
+ */
313
+ handleSubmit() {
314
+ this.$refs.keyRef.validate((valid) => {
315
+ if (valid) {
316
+ this[this.type].push({
317
+ name: this.value.key,
318
+ label: this.value.key,
319
+ type: 'text'
320
+ });
321
+ this.$set(this[this.contrast[this.type]], this.value.key, '');
322
+ this.visible = false;
323
+ }
324
+ });
325
+ }
326
+ },
327
+ updated() {
328
+ this.$refs.keyRef.resetFields();
329
+ }
330
+ };
331
+ </script>
@@ -0,0 +1,318 @@
1
+ <template>
2
+ <div class="es-lowcode__styles">
3
+ <es-form
4
+ ref="formRef"
5
+ label-width="auto"
6
+ size="small"
7
+ :model="models"
8
+ :contents="contents"
9
+ :show-buttons="false"
10
+ @change="handleChange"
11
+ >
12
+ </es-form>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ import EsForm from 'eoss/packages/form';
18
+ export default {
19
+ name: 'Styles',
20
+ inject: ['lowcode'],
21
+
22
+ components: { EsForm },
23
+
24
+ props: {
25
+ model: {
26
+ type: Object,
27
+ default: () => ({})
28
+ }
29
+ },
30
+
31
+ data() {
32
+ return {
33
+ contents: [
34
+ {
35
+ name: 'display',
36
+ label: '布局',
37
+ type: 'select',
38
+ allowCreate: true,
39
+ filterable: true,
40
+ clearable: true,
41
+ data: [
42
+ {
43
+ name: '瀑布流',
44
+ value: 'masonry'
45
+ },
46
+ {
47
+ name: 'grid',
48
+ value: 'grid'
49
+ },
50
+ {
51
+ name: 'flex',
52
+ value: 'flex'
53
+ }
54
+ ],
55
+ events: {
56
+ change: this.handleChangeDisplayType
57
+ }
58
+ },
59
+ {
60
+ name: 'columns',
61
+ label: '总列数',
62
+ min: 1,
63
+ max: 12,
64
+ default: false,
65
+ type: 'number'
66
+ },
67
+ {
68
+ name: 'span',
69
+ label: '列数',
70
+ min: 1,
71
+ max: 12,
72
+ default: false,
73
+ type: 'number'
74
+ },
75
+ {
76
+ name: 'gap',
77
+ label: '列间隙',
78
+ type: 'text',
79
+ clearable: true
80
+ },
81
+ {
82
+ name: 'flex-direction',
83
+ label: '排列方向',
84
+ type: 'select',
85
+ clearable: true,
86
+ allowCreate: true,
87
+ filterable: true,
88
+ data: [
89
+ {
90
+ label: 'row',
91
+ value: 'row'
92
+ },
93
+ {
94
+ label: 'column',
95
+ value: 'row-reverse'
96
+ },
97
+ {
98
+ label: 'column',
99
+ value: 'column'
100
+ },
101
+ {
102
+ label: 'column',
103
+ value: 'column-reverse'
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ name: 'flex-wrap',
109
+ label: 'flex容器换行',
110
+ type: 'select',
111
+ clearable: true,
112
+ allowCreate: true,
113
+ filterable: true,
114
+ data: [
115
+ {
116
+ label: 'nowrap',
117
+ value: 'nowrap'
118
+ },
119
+ {
120
+ label: 'wrap',
121
+ value: 'wrap'
122
+ }
123
+ ]
124
+ },
125
+ {
126
+ name: 'align-items',
127
+ label: '纵轴对齐方式',
128
+ type: 'select',
129
+ clearable: true,
130
+ allowCreate: true,
131
+ filterable: true,
132
+ data: [
133
+ {
134
+ label: 'flex-start',
135
+ value: 'flex-start'
136
+ },
137
+ {
138
+ label: 'flex-end',
139
+ value: 'flex-end'
140
+ },
141
+ {
142
+ label: 'center',
143
+ value: 'center'
144
+ }
145
+ ]
146
+ },
147
+ {
148
+ name: 'justify-content',
149
+ label: '横轴对齐方式',
150
+ type: 'select',
151
+ clearable: true,
152
+ allowCreate: true,
153
+ filterable: true,
154
+ data: [
155
+ {
156
+ label: 'flex-start',
157
+ value: 'flex-start'
158
+ },
159
+ {
160
+ label: 'flex-end',
161
+ value: 'flex-end'
162
+ },
163
+ {
164
+ label: 'center',
165
+ value: 'center'
166
+ },
167
+ {
168
+ label: 'space-between',
169
+ value: 'space-between'
170
+ },
171
+ {
172
+ label: 'space-around',
173
+ value: 'space-around'
174
+ }
175
+ ]
176
+ },
177
+ {
178
+ name: 'background',
179
+ label: '背景',
180
+ type: 'text',
181
+ clearable: true
182
+ },
183
+ {
184
+ name: 'border',
185
+ label: '边框',
186
+ type: 'text',
187
+ clearable: true
188
+ },
189
+ {
190
+ name: 'padding',
191
+ label: '内边距',
192
+ type: 'text',
193
+ clearable: true
194
+ },
195
+ {
196
+ name: 'margin',
197
+ label: '外边距',
198
+ type: 'text',
199
+ clearable: true
200
+ },
201
+ {
202
+ name: 'font-size',
203
+ label: '字体大小',
204
+ type: 'select',
205
+ clearable: true,
206
+ allowCreate: true,
207
+ filterable: true,
208
+ data: [
209
+ {
210
+ label: '12',
211
+ value: '12px'
212
+ },
213
+ {
214
+ label: '14',
215
+ value: '14px'
216
+ },
217
+ {
218
+ label: '16',
219
+ value: '16px'
220
+ },
221
+ {
222
+ label: '20',
223
+ value: '20px'
224
+ },
225
+ {
226
+ label: '24',
227
+ value: '24px'
228
+ },
229
+ {
230
+ label: '32',
231
+ value: '32px'
232
+ },
233
+ {
234
+ label: '40',
235
+ value: '40px'
236
+ }
237
+ ]
238
+ },
239
+ {
240
+ name: 'color',
241
+ label: '颜色',
242
+ type: 'text',
243
+ clearable: true
244
+ },
245
+ {
246
+ name: 'text-align',
247
+ label: '文本对齐',
248
+ type: 'select',
249
+ clearable: true,
250
+ allowCreate: true,
251
+ filterable: true,
252
+ data: [
253
+ {
254
+ label: 'left',
255
+ value: 'left'
256
+ },
257
+ {
258
+ label: 'center',
259
+ value: 'center'
260
+ },
261
+ {
262
+ label: 'right',
263
+ value: 'right'
264
+ }
265
+ ]
266
+ },
267
+ {
268
+ name: 'line-height',
269
+ label: '行高',
270
+ type: 'text',
271
+ clearable: true
272
+ }
273
+ ],
274
+ models: {}
275
+ };
276
+ },
277
+
278
+ computed: {},
279
+
280
+ watch: {
281
+ /**
282
+ * 监听 model prop 变化(仅用于切换组件时的初始化同步)
283
+ * 不使用 deep,因为编辑操作通过 @change 事件驱动,不需要深度监听
284
+ */
285
+ model: {
286
+ handler(val) {
287
+ let style = val.style || {};
288
+ if (!style.display && (this.lowcode.page && this.lowcode.page.type === 'page')) {
289
+ style = { ...style, display: 'masonry' };
290
+ this.$nextTick(() => {
291
+ this.handleChange();
292
+ });
293
+ }
294
+ this.models = style;
295
+ },
296
+ immediate: true
297
+ }
298
+ },
299
+
300
+ created() {},
301
+
302
+ mounted() {},
303
+
304
+ methods: {
305
+ handleChangeDisplayType(val) {
306
+ if (val === 'flex') {
307
+ this.$set(this.contents[1], 'hide', true);
308
+ } else {
309
+ this.$set(this.contents[1], 'hide', false);
310
+ }
311
+ },
312
+ handleChange() {
313
+ this.$emit('change', { style: this.models });
314
+ }
315
+ }
316
+ };
317
+ </script>
318
+ <style lang="scss" scoped></style>