@cloudbase/weda-ui 3.4.11 → 3.4.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 (150) hide show
  1. package/dist/configs/components/common/form-input-required.js +3 -3
  2. package/dist/configs/components/customer-service.js +3 -0
  3. package/dist/configs/components/dataView.js +20 -10
  4. package/dist/configs/components/form-checkbox.js +15 -2
  5. package/dist/configs/components/form-email.js +17 -2
  6. package/dist/configs/components/form-input.js +17 -2
  7. package/dist/configs/components/form-phone.js +17 -2
  8. package/dist/configs/components/form-radio.js +15 -2
  9. package/dist/configs/components/form-select-multiple.js +362 -0
  10. package/dist/configs/components/form-switch.js +15 -2
  11. package/dist/configs/components/form-text-area.js +15 -2
  12. package/dist/configs/components/form-url.js +17 -2
  13. package/dist/configs/components/form-user-tree-select.js +13 -0
  14. package/dist/configs/components/listView.js +32 -49
  15. package/dist/configs/components/table.json +1 -54
  16. package/dist/configs/components/wd-bubble.js +46 -8
  17. package/dist/configs/components/wd-button.js +3 -0
  18. package/dist/configs/components/wd-checkbox.js +464 -0
  19. package/dist/configs/components/wd-form.js +66 -10
  20. package/dist/configs/components/wd-input-email.js +37 -0
  21. package/dist/configs/components/wd-input-phone.js +43 -0
  22. package/dist/configs/components/wd-input-url.js +37 -0
  23. package/dist/configs/components/wd-input.js +94 -0
  24. package/dist/configs/components/wd-official-account.js +87 -0
  25. package/dist/configs/components/wd-radio.js +443 -0
  26. package/dist/configs/components/wd-switch.js +315 -0
  27. package/dist/configs/components/wd-table.js +8 -56
  28. package/dist/configs/components/wd-textarea.js +82 -0
  29. package/dist/configs/components/wd-tree.js +443 -0
  30. package/dist/configs/components/web-view.js +3 -0
  31. package/dist/configs/index.js +24 -1
  32. package/dist/configs/type-utils/type-form.js +681 -0
  33. package/dist/docs/common/components/json-schema-view.js +1 -1
  34. package/dist/docs/common/components/methods-view.js +1 -1
  35. package/dist/docs/common/components/properties-view.js +3 -1
  36. package/dist/docs/common/format.js +7 -7
  37. package/dist/docs/common/tableView.js +3 -1
  38. package/dist/enum/index.js +196 -0
  39. package/dist/style/index.scss +1 -1
  40. package/dist/web/actions/showMessage/index.js +4 -1
  41. package/dist/web/components/carousel/index.js +1 -1
  42. package/dist/web/components/customer-service/customer-service.js +19 -2
  43. package/dist/web/components/dataView/index.js +16 -3
  44. package/dist/web/components/flow/common/hooks/useCommonFlowData/flow-get.js +5 -1
  45. package/dist/web/components/flow/common/request.js +5 -5
  46. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal.js +90 -0
  47. package/dist/web/components/form/formcell/index.css +13 -1
  48. package/dist/web/components/form/formcell/index.js +1 -1
  49. package/dist/web/components/form/location/components/LocationH5/location.h5.js +1 -1
  50. package/dist/web/components/form/select/dropdown-select/index.js +7 -1
  51. package/dist/web/components/form/select/h5.js +18 -8
  52. package/dist/web/components/form/select/index.js +9 -9
  53. package/dist/web/components/form/select/region/index.js +1 -1
  54. package/dist/web/components/form/selectMultiple/dropdown-select/h5.js +111 -0
  55. package/dist/web/components/form/selectMultiple/dropdown-select/index.css +270 -0
  56. package/dist/web/components/form/selectMultiple/dropdown-select/index.js +206 -0
  57. package/dist/web/components/form/selectMultiple/dropdown-select/pc.js +115 -0
  58. package/dist/web/components/form/selectMultiple/dropdown-select/ui.js +113 -0
  59. package/dist/web/components/form/selectMultiple/h5.js +40 -0
  60. package/dist/web/components/form/selectMultiple/index.js +94 -0
  61. package/dist/web/components/form/selectMultiple/request.js +76 -0
  62. package/dist/web/components/form/selectMultiple/status/allEmpty.js +5 -0
  63. package/dist/web/components/form/selectMultiple/status/empty.js +19 -0
  64. package/dist/web/components/form/selectMultiple/status/index.css +63 -0
  65. package/dist/web/components/form/selectMultiple/status/index.js +7 -0
  66. package/dist/web/components/form/selectMultiple/status/loading.js +19 -0
  67. package/dist/web/components/form/selectMultiple/status/propsType.js +1 -0
  68. package/dist/web/components/form/selectMultiple/status/retry.js +19 -0
  69. package/dist/web/components/form/tips/index.css +9 -3
  70. package/dist/web/components/form/uploader/index.css +10 -0
  71. package/dist/web/components/form/uploader/uploader.h5.js +60 -62
  72. package/dist/web/components/form/uploader/uploader.pc.js +48 -41
  73. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +8 -33
  74. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +8 -37
  75. package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +76 -50
  76. package/dist/web/components/form/userOrgSelect/common/utils.js +24 -8
  77. package/dist/web/components/form/userOrgSelect/component/depart-select/depart-select-pc.js +3 -8
  78. package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +14 -18
  79. package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.js +20 -14
  80. package/dist/web/components/form/userOrgSelect/component/modal-select-h5.js +1 -1
  81. package/dist/web/components/form/userOrgSelect/component/org-tree.js +21 -9
  82. package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +57 -10
  83. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +2 -7
  84. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +6 -4
  85. package/dist/web/components/form/userOrgSelect/component/userOrgSelect.css +8 -2
  86. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +25 -51
  87. package/dist/web/components/form/userOrgSelect/hooks/use-depart-data.js +3 -3
  88. package/dist/web/components/form-input-hooks/index.js +39 -14
  89. package/dist/web/components/form-select-multiple/index.js +26 -0
  90. package/dist/web/components/form-user-tree-select/index.js +2 -2
  91. package/dist/web/components/formdetail/index.css +31 -1
  92. package/dist/web/components/formdetail/index.js +30 -0
  93. package/dist/web/components/index.js +17 -1
  94. package/dist/web/components/listView/index.js +20 -5
  95. package/dist/web/components/phone/index.js +26 -1
  96. package/dist/web/components/phoneCode/index.js +3 -1
  97. package/dist/web/components/richText/index.css +70 -67
  98. package/dist/web/components/richText/index.js +311 -251
  99. package/dist/web/components/richText/richtext.module.css +1 -0
  100. package/dist/web/components/richTextView/index.css +39 -0
  101. package/dist/web/components/richTextView/index.js +1 -1
  102. package/dist/web/components/share/index.js +26 -1
  103. package/dist/web/components/wd-checkbox/checkbox.js +34 -0
  104. package/dist/web/components/wd-checkbox/index.js +3 -0
  105. package/dist/web/components/wd-checkbox-list/checkboxList.js +140 -0
  106. package/dist/web/components/wd-checkbox-list/index.js +3 -0
  107. package/dist/web/components/wd-form/index.js +25 -12
  108. package/dist/web/components/wd-form/wd-form.js +42 -0
  109. package/dist/web/components/wd-form-cell/index.js +3 -0
  110. package/dist/web/components/wd-form-cell/wd-form-cell.js +42 -0
  111. package/dist/web/components/wd-form-item/index.js +4 -0
  112. package/dist/web/components/wd-form-item/wd-form-item.js +55 -0
  113. package/dist/web/components/wd-form-item/wd-input-group.js +24 -0
  114. package/dist/web/components/wd-input/index.js +3 -0
  115. package/dist/web/components/wd-input/wd-input.js +155 -0
  116. package/dist/web/components/wd-input-email/index.js +3 -0
  117. package/dist/web/components/wd-input-email/wd-input-email.js +13 -0
  118. package/dist/web/components/wd-input-group/index.js +3 -0
  119. package/dist/web/components/wd-input-group/wd-input-group.js +10 -0
  120. package/dist/web/components/wd-input-phone/index.js +3 -0
  121. package/dist/web/components/wd-input-phone/wd-input-phone.js +14 -0
  122. package/dist/web/components/wd-input-url/index.js +3 -0
  123. package/dist/web/components/wd-input-url/wd-input-url.js +13 -0
  124. package/dist/web/components/wd-input-wrap/index.js +3 -0
  125. package/dist/web/components/wd-input-wrap/wd-input-wrap.js +18 -0
  126. package/dist/web/components/wd-official-account/index.css +29 -0
  127. package/dist/web/components/wd-official-account/index.js +36 -0
  128. package/dist/web/components/wd-radio/index.js +3 -0
  129. package/dist/web/components/wd-radio/wd-radio.js +30 -0
  130. package/dist/web/components/wd-radio-list/index.js +3 -0
  131. package/dist/web/components/wd-radio-list/wd-radio-list.js +104 -0
  132. package/dist/web/components/wd-switch/index.js +3 -0
  133. package/dist/web/components/wd-switch/wd-switch.js +52 -0
  134. package/dist/web/components/wd-table/components/FieldRender/index.js +5 -4
  135. package/dist/web/components/wd-table/components/Table/index.js +12 -2
  136. package/dist/web/components/wd-table/hooks/useQueryParams.js +4 -1
  137. package/dist/web/components/wd-table/utils/index.js +6 -2
  138. package/dist/web/components/wd-table/wd-table.js +70 -57
  139. package/dist/web/components/wd-textarea/index.js +3 -0
  140. package/dist/web/components/wd-textarea/wd-textarea.js +78 -0
  141. package/dist/web/components/wd-tree/index.js +3 -0
  142. package/dist/web/components/wd-tree/utils.js +291 -0
  143. package/dist/web/components/wd-tree/wd-tree.js +193 -0
  144. package/dist/web/utils/constant.js +16 -0
  145. package/dist/web/utils/datasource.js +2 -2
  146. package/dist/web/utils/date.js +3 -3
  147. package/dist/web/utils/hooks/useFormLegacy.js +111 -0
  148. package/dist/web/utils/tool.js +12 -2
  149. package/dist/web/weda-ui.css +193 -3
  150. package/package.json +6 -5
@@ -0,0 +1,464 @@
1
+ import { defineConfig, Type, Tuple } from '../type-utils';
2
+ import { FORM_ITEM_DATA_TITLE, FORM_ITEM_METHODS, FORM_ITEM_META, ItemData, } from '../type-utils/type-form';
3
+ const WD_CHECKBOX_DIRECTION = [
4
+ {
5
+ label: '纵向',
6
+ value: 'vertical',
7
+ },
8
+ {
9
+ label: '横向',
10
+ value: 'inline',
11
+ },
12
+ ];
13
+ const WD_CKECKBOX_SIZE = [
14
+ {
15
+ label: '默认',
16
+ value: '',
17
+ },
18
+ {
19
+ label: '大',
20
+ value: 'lg',
21
+ },
22
+ {
23
+ label: '中',
24
+ value: 'md',
25
+ },
26
+ {
27
+ label: '小',
28
+ value: 'sm',
29
+ },
30
+ ];
31
+ // 输入组件状态
32
+ export const WD_CHECKBOX_STATUS = [
33
+ {
34
+ label: '编辑',
35
+ value: 'edit',
36
+ },
37
+ {
38
+ label: '禁用',
39
+ value: 'disabled',
40
+ },
41
+ {
42
+ label: '只读',
43
+ value: 'readOnly',
44
+ },
45
+ ];
46
+ // 属性分类
47
+ const X_CATEGORY = {
48
+ COMMON: '通用',
49
+ TITLE: '标题',
50
+ OPTION: '选项',
51
+ VERIFY: '状态/校验',
52
+ };
53
+ // 属性类型定义
54
+ const data = Type.Object({
55
+ name: Type.String({
56
+ title: '绑定字段',
57
+ type: 'string',
58
+ 'x-index': 10,
59
+ default: 'formCheckbox',
60
+ remarks: '提交表单时会将组件值提交保存到所配置的字段中',
61
+ 'x-category': X_CATEGORY.COMMON,
62
+ 'x-rules': [
63
+ {
64
+ message: '该字段必填',
65
+ required: true,
66
+ },
67
+ {
68
+ message: '必须以字母开头,仅能输入字母或下划线或数字',
69
+ pattern: '^[a-zA-Z][0-9a-zA-Z_]*$',
70
+ },
71
+ ],
72
+ required: true,
73
+ description: '表单字段的Key值,用于提交数据时,匹配数据模型字段标识。页面内需保证唯一。',
74
+ }),
75
+ range: Type.Array(Type.Object({
76
+ label: Type.String({
77
+ type: 'string',
78
+ title: '选项名称',
79
+ default: '选项1',
80
+ }),
81
+ value: Type.String({
82
+ type: 'string',
83
+ title: '选项值',
84
+ default: '1',
85
+ }),
86
+ }, {
87
+ type: 'object',
88
+ default: {
89
+ label: '选项1',
90
+ value: '1',
91
+ },
92
+ display: 'label',
93
+ }), {
94
+ type: 'array',
95
+ title: '选项',
96
+ default: [
97
+ {
98
+ label: '选项1',
99
+ value: '1',
100
+ },
101
+ {
102
+ label: '选项2',
103
+ value: '2',
104
+ },
105
+ ],
106
+ remarks: '供用户进行选择的选项列表',
107
+ 'x-category': X_CATEGORY.COMMON,
108
+ 'x-index': 20,
109
+ 'x-props': {
110
+ 'data-withBindMeta': true,
111
+ },
112
+ 'x-component': 'list',
113
+ 'x-linkages': [
114
+ {
115
+ type: 'value:schema',
116
+ schema: {
117
+ items: {
118
+ path: 'range.*',
119
+ type: 'object',
120
+ default: {
121
+ label: "{{'选项' + ($self.value.length+1)}}",
122
+ value: "{{($self.value.length+1) + ''}}",
123
+ },
124
+ display: 'label',
125
+ properties: {
126
+ label: {
127
+ type: 'string',
128
+ title: '选项名称',
129
+ default: '选项1',
130
+ },
131
+ value: {
132
+ type: 'string',
133
+ title: '选项值',
134
+ default: '1',
135
+ },
136
+ },
137
+ },
138
+ },
139
+ target: 'range',
140
+ },
141
+ ],
142
+ }),
143
+ value: Type.Array(Type.String({
144
+ title: 'value',
145
+ }), {
146
+ title: '选中值',
147
+ 'x-index': 30,
148
+ default: [],
149
+ remarks: '默认选中的选项',
150
+ 'x-category': X_CATEGORY.COMMON,
151
+ }),
152
+ size: Type.StringEnum({
153
+ title: '组件尺寸',
154
+ type: 'string',
155
+ 'x-index': 40,
156
+ default: '',
157
+ description: '多选组件的尺寸宽度,仅在PC端生效',
158
+ enum: Tuple(WD_CKECKBOX_SIZE),
159
+ 'x-category': X_CATEGORY.COMMON,
160
+ 'x-platforms': ['PCWEB'],
161
+ }),
162
+ ...FORM_ITEM_DATA_TITLE,
163
+ extra: Type.String({
164
+ title: '下方提示',
165
+ type: 'string',
166
+ description: '配置后提示内容常显在组件下方',
167
+ 'x-index': 120,
168
+ 'x-category': X_CATEGORY.OPTION,
169
+ }),
170
+ direction: Type.StringEnum({
171
+ title: '选项排列方式',
172
+ type: 'string',
173
+ 'x-index': 130,
174
+ default: 'vertical',
175
+ enum: Tuple(WD_CHECKBOX_DIRECTION),
176
+ 'x-category': X_CATEGORY.OPTION,
177
+ }),
178
+ borderedH5: Type.Boolean({
179
+ title: '移动端显示下划线',
180
+ type: 'boolean',
181
+ default: true,
182
+ description: '关闭后移动端不显示底部下划线',
183
+ 'x-index': 140,
184
+ 'x-category': X_CATEGORY.OPTION,
185
+ }),
186
+ // 新增且需兼容 disabled
187
+ status: Type.StringEnum({
188
+ title: '状态',
189
+ enum: Tuple(WD_CHECKBOX_STATUS),
190
+ default: 'edit',
191
+ type: 'string',
192
+ 'x-index': 170,
193
+ 'x-category': X_CATEGORY.VERIFY,
194
+ }),
195
+ required: Type.Boolean({
196
+ title: '必填',
197
+ type: 'boolean',
198
+ 'x-index': 180,
199
+ default: false,
200
+ remarks: '启用后该组件强制必填,值不可为空',
201
+ 'x-category': X_CATEGORY.VERIFY,
202
+ 'x-linkages': [
203
+ {
204
+ type: 'value:visible',
205
+ target: '*(requiredFlag,requiredMsg)',
206
+ condition: '{{$self.value}}',
207
+ },
208
+ ],
209
+ }),
210
+ requiredFlag: Type.Boolean({
211
+ title: '必填标识',
212
+ type: 'boolean',
213
+ 'x-index': 190,
214
+ default: true,
215
+ remarks: '启用后,组件若要求必填,则会显示必填星号标记',
216
+ 'x-category': X_CATEGORY.VERIFY,
217
+ }),
218
+ requiredMsg: Type.String({
219
+ title: '必填校验提示',
220
+ type: 'string',
221
+ 'x-index': 200,
222
+ default: '该项为必填项',
223
+ 'x-category': X_CATEGORY.VERIFY,
224
+ remarks: '启用必填,但组件值为空时的提示信息',
225
+ }),
226
+ format: Type.String({
227
+ title: '字段类型',
228
+ type: 'string',
229
+ 'x-index': 210,
230
+ default: '',
231
+ display: false,
232
+ 'x-category': X_CATEGORY.COMMON,
233
+ 'x-platforms': [],
234
+ 'x-linkages': [
235
+ {
236
+ type: 'value:visible',
237
+ target: 'range',
238
+ condition: "{{$self.value!='x-enum'}}",
239
+ },
240
+ {
241
+ type: 'value:visible',
242
+ target: 'tipBlock',
243
+ condition: "{{$self.value=='x-enum'}}",
244
+ },
245
+ ],
246
+ }),
247
+ enumName: Type.String({
248
+ title: '通用选项集名称',
249
+ type: 'string',
250
+ 'x-index': 220,
251
+ default: '',
252
+ 'x-category': X_CATEGORY.COMMON,
253
+ display: false,
254
+ 'x-platforms': [],
255
+ }),
256
+ tipBlock: Type.String({
257
+ title: '选项',
258
+ type: 'string',
259
+ 'x-index': 230,
260
+ default: '',
261
+ 'x-category': X_CATEGORY.COMMON,
262
+ 'x-props': {
263
+ 'data-hidebind': true,
264
+ },
265
+ 'x-component': 'selection-tip',
266
+ }),
267
+ });
268
+ const properties = Type.Pick(ItemData, [
269
+ 'name',
270
+ 'value',
271
+ 'label',
272
+ 'required',
273
+ 'visible',
274
+ 'disabled',
275
+ 'readOnly',
276
+ ]);
277
+ // export default
278
+ const config = defineConfig({
279
+ $schema: 'https://comp-public-1303824488.cos.ap-shanghai.myqcloud.com/schema/lcds_component.json',
280
+ // 属性定义
281
+ data,
282
+ // 只读属性定义
283
+ properties,
284
+ // 样式API
285
+ classes: [
286
+ {
287
+ name: '根元素',
288
+ selector: `.wd-checkbox-root`,
289
+ description: '组件最外层元素',
290
+ },
291
+ {
292
+ name: 'H5 端根元素',
293
+ selector: `.wd-h5-checkbox-root`,
294
+ description: '可设定 H5 端的根元素样式',
295
+ },
296
+ {
297
+ name: 'PC 端根元素',
298
+ selector: `.wd-pc-checkbox-root`,
299
+ description: '可设定 PC 端的根元素样式',
300
+ },
301
+ {
302
+ name: '小程序端根元素',
303
+ selector: `.wd-mp-checkbox-root`,
304
+ description: '可设定小程序端的根元素样式',
305
+ },
306
+ {
307
+ name: '无边框状态',
308
+ selector: `.wd-checkbox-root.is-borderless`,
309
+ description: '设置组件无边框状态样式',
310
+ },
311
+ {
312
+ name: '必填状态',
313
+ selector: `.wd-checkbox-root.is-required`,
314
+ description: '设置组件必填状态样式',
315
+ },
316
+ {
317
+ name: '标题',
318
+ selector: `.wd-checkbox__label`,
319
+ description: '组件标题元素',
320
+ },
321
+ {
322
+ name: '标题禁用状态',
323
+ selector: `.wd-checkbox__label.is-disabled`,
324
+ description: '设置组件标题禁用状态样式',
325
+ },
326
+ {
327
+ name: '标题不换行',
328
+ selector: `.wd-checkbox__label.is-nowrap`,
329
+ description: '设置组件标题不换行时状态样式',
330
+ },
331
+ {
332
+ name: '提示文字',
333
+ selector: `.wd-checkbox__help`,
334
+ description: '设置组件提示文字样式',
335
+ },
336
+ {
337
+ name: '校验信息',
338
+ selector: `.wd-checkbox__error`,
339
+ description: '设置组件校验信息样式',
340
+ },
341
+ {
342
+ name: '组件本身',
343
+ selector: '.wd-checkbox-group',
344
+ description: '组件本身元素',
345
+ },
346
+ {
347
+ name: '行内排版',
348
+ selector: '.wd-checkbox-group--inline',
349
+ description: '组件行内排版样式',
350
+ },
351
+ {
352
+ name: '选项样式',
353
+ selector: '.wd-checkbox-wrap',
354
+ description: '选项样式',
355
+ },
356
+ {
357
+ name: '选项禁用状态',
358
+ selector: '.wd-checkbox-wrap.is-disabled',
359
+ description: '选项禁用状态',
360
+ },
361
+ {
362
+ name: '选项只读状态',
363
+ selector: '.wd-checkbox-wrap.is-disabled',
364
+ description: '选项只读状态',
365
+ },
366
+ {
367
+ name: '小尺寸',
368
+ selector: '.wd-checkbox-wrap.size-sm',
369
+ description: '小尺寸样式(仅PC端有效)',
370
+ },
371
+ {
372
+ name: '默认尺寸',
373
+ selector: '.wd-checkbox-wrap.size-md',
374
+ description: '默认、中尺寸样式(仅PC端有效)',
375
+ },
376
+ {
377
+ name: '大尺寸',
378
+ selector: '.wd-checkbox-wrap.size-lg',
379
+ description: '大尺寸样式',
380
+ },
381
+ {
382
+ name: '勾选状态',
383
+ selector: '.wd-checkbox-wrap.is-checked',
384
+ description: '选项勾选状态',
385
+ },
386
+ {
387
+ name: '所有状态',
388
+ selector: '.wd-checkbox-wrap.is-indeterminate',
389
+ description: '选项所有状态',
390
+ },
391
+ {
392
+ name: '按钮背景样式',
393
+ selector: '.wd-checkbox-inner',
394
+ description: '选项按钮背景样式',
395
+ },
396
+ {
397
+ name: '按钮样式',
398
+ selector: '.wd-checkbox-inner::after',
399
+ description: '选项按钮样式',
400
+ },
401
+ {
402
+ name: '文本样式',
403
+ selector: '.wd-checkbox-label',
404
+ description: '选项内部文本样式',
405
+ },
406
+ ],
407
+ // 组件方法
408
+ methods: [
409
+ {
410
+ ...FORM_ITEM_METHODS.setValue,
411
+ params: {
412
+ properties: {
413
+ value: Type.Array(Type.String({
414
+ title: 'value',
415
+ }), {
416
+ title: '值',
417
+ default: [],
418
+ description: '使用多选组件的设置值方法时,值需要为数组格式。示例:[1,2],其中1和2对应多选组件的选项值',
419
+ 'x-helper-text': '使用多选组件的设置值方法时,值需要为数组格式。示例:[1,2],其中1和2对应多选组件的选项值',
420
+ }),
421
+ },
422
+ },
423
+ },
424
+ FORM_ITEM_METHODS.setVisible,
425
+ FORM_ITEM_METHODS.setDisabled,
426
+ FORM_ITEM_METHODS.clearValue,
427
+ FORM_ITEM_METHODS.setReadOnly,
428
+ FORM_ITEM_METHODS.handleValidate,
429
+ FORM_ITEM_METHODS.clearValidate,
430
+ ],
431
+ // 组件对外暴露事件
432
+ events: [
433
+ {
434
+ title: '值改变',
435
+ name: 'change',
436
+ detail: {
437
+ value: Type.BasicTypeUnion({
438
+ type: 'array',
439
+ description: '多选组件选中值',
440
+ }),
441
+ },
442
+ },
443
+ ],
444
+ // 组件元信息
445
+ meta: {
446
+ name: 'WdCheckboxList',
447
+ title: '多选',
448
+ // 组件别名,用于生成组件 id,例如 Icon1
449
+ componentName: 'Checkbox',
450
+ description: '用于在页面中平铺展示多个可选项,由用户进行多项选择的场景',
451
+ icon: '../../icons/Checkbox.svg',
452
+ categoryOrder: 500,
453
+ componentOrder: 390,
454
+ docsUrl: 'https://docs.cloudbase.net/lowcode/components/wedaUI/src/docs/compsdocs/form/WdCheckbox',
455
+ category: FORM_ITEM_META.category,
456
+ shortcut: FORM_ITEM_META.shortcut,
457
+ group: FORM_ITEM_META.group,
458
+ visible: FORM_ITEM_META.visible,
459
+ },
460
+ compConfig: {
461
+ componentType: 'formField',
462
+ },
463
+ });
464
+ export default config;
@@ -1,4 +1,28 @@
1
- import { defineConfig, Tuple, Type } from '../type-utils';
1
+ import { defineConfig, Tuple, Type, } from '../type-utils';
2
+ const events = [
3
+ {
4
+ title: '提交',
5
+ name: 'submit',
6
+ },
7
+ ];
8
+ // const WD_FORM_LABEL_DIRECTION = [
9
+ // {
10
+ // label: '水平左对齐',
11
+ // value: 'horizontal-left',
12
+ // },
13
+ // {
14
+ // label: '水平右对齐',
15
+ // value: 'horizontal-right',
16
+ // },
17
+ // {
18
+ // label: '垂直左对齐',
19
+ // value: 'vertical-left',
20
+ // },
21
+ // {
22
+ // label: '垂直右对齐',
23
+ // value: 'vertical-right',
24
+ // },
25
+ // ];
2
26
  const data = Type.Object({
3
27
  contentSlot: Type.Slot({
4
28
  description: '内容插槽',
@@ -243,6 +267,14 @@ const data = Type.Object({
243
267
  },
244
268
  ]),
245
269
  }),
270
+ // labelPosition: Type.StringEnum({
271
+ // title: '标题位置',
272
+ // type: 'string',
273
+ // 'x-index': 62,
274
+ // default: 'vertical-left',
275
+ // enum: Tuple(WD_FORM_LABEL_DIRECTION),
276
+ // 'x-category': '基础属性',
277
+ // }),
246
278
  methodCreate: Type.String({
247
279
  type: 'string',
248
280
  title: '新增方法',
@@ -330,15 +362,21 @@ const properties = Type.Intersect([
330
362
  format: Type.String(),
331
363
  message: Type.String(),
332
364
  }), {
365
+ title: '错误信息',
333
366
  description: '提交的校验错误信息对象',
334
367
  }),
335
368
  remoteValue: Type.Record(Type.String(), Type.Any(), {
369
+ title: '数据源初始值',
336
370
  description: '数据源初始化请求的初始值',
337
371
  }),
338
372
  value: Type.Record(Type.String(), Type.Any(), {
373
+ title: '表单前端值',
339
374
  description: '当前前端表单状态值',
340
375
  }),
341
- dataSourceProfile: Type.Any({ description: '数据源信息' }),
376
+ dataSourceProfile: Type.Any({
377
+ title: '数据源类型信息',
378
+ description: '数据源信息',
379
+ }),
342
380
  // TODO:
343
381
  // clearValidate: Type.Function([], Type.Void()),
344
382
  }),
@@ -351,21 +389,39 @@ export default defineConfig({
351
389
  isDataContainer: true,
352
390
  componentType: 'form',
353
391
  },
354
- methods: [
392
+ defaultStyles: {
393
+ display: 'block',
394
+ },
395
+ properties,
396
+ classes: [
355
397
  {
356
- name: 'submit',
357
- label: '提交',
398
+ name: '根元素',
399
+ selector: '.wd-form',
400
+ description: '分割线组件根元素',
401
+ },
402
+ {
403
+ name: 'PC 端分割线根元素',
404
+ selector: '.wd-pc-form',
405
+ description: '可以为 PC 端的分割线编写样式',
406
+ },
407
+ {
408
+ name: 'H5 端分割线根元素',
409
+ selector: '.wd-h5-form',
410
+ description: '可以为 H5 端的分割线编写样式',
411
+ },
412
+ {
413
+ name: '小程序端分割线根元素',
414
+ selector: '.wd-mp-form',
415
+ description: '可以为小程序端的分割线编写样式',
358
416
  },
359
417
  ],
360
- events: [
418
+ methods: [
361
419
  {
362
- title: '提交',
363
420
  name: 'submit',
421
+ label: '提交',
364
422
  },
365
423
  ],
366
- defaultStyles: {
367
- display: 'block',
368
- },
424
+ events,
369
425
  meta: {
370
426
  description: '作为单行输入、下拉选择等各项表单类组件的父级容器,实现数据提交。',
371
427
  title: '表单容器',
@@ -0,0 +1,37 @@
1
+ import { defineConfig, Type } from '../type-utils';
2
+ import { omit, getFormItemClasses, FORM_ITEM_META, } from '../type-utils/type-form';
3
+ import wdInputConfig, { WD_INPUT_DATA } from './wd-input';
4
+ // 属性类型定义
5
+ const data = Type.Partial(Type.Object(Object.assign(omit(WD_INPUT_DATA, ['password', 'type', 'isNickNameType', 'rules']), {
6
+ name: { ...WD_INPUT_DATA.name, default: 'formEmail' },
7
+ label: { ...WD_INPUT_DATA.label, default: '邮箱' },
8
+ placeholder: { ...WD_INPUT_DATA.placeholder, default: '请输入邮箱' },
9
+ })));
10
+ const classes = getFormItemClasses('input-email');
11
+ // export default
12
+ const config = defineConfig({
13
+ $schema: 'https://comp-public-1303824488.cos.ap-shanghai.myqcloud.com/schema/lcds_component.json',
14
+ data,
15
+ properties: wdInputConfig.properties,
16
+ classes,
17
+ methods: wdInputConfig.methods,
18
+ events: wdInputConfig.events,
19
+ meta: {
20
+ description: '用于输入邮箱地址,会强制校验输入内容是否符合邮箱格式。',
21
+ icon: '../../icons/OfficialAccount.svg',
22
+ title: '邮箱输入',
23
+ name: 'WdInputEmail',
24
+ componentName: 'InputEmail',
25
+ categoryOrder: 500,
26
+ componentOrder: 520,
27
+ docsUrl: 'https://docs.cloudbase.net/lowcode/components/wedaUI/src/docs/compsdocs/form/WdInputEmail',
28
+ category: FORM_ITEM_META.category,
29
+ shortcut: FORM_ITEM_META.shortcut,
30
+ group: FORM_ITEM_META.group,
31
+ visible: FORM_ITEM_META.visible,
32
+ },
33
+ compConfig: {
34
+ componentType: 'formField',
35
+ },
36
+ });
37
+ export default config;
@@ -0,0 +1,43 @@
1
+ import { defineConfig, Type } from '../type-utils';
2
+ import { getFormItemClasses, omit, FORM_ITEM_META, } from '../type-utils/type-form';
3
+ import wdInputConfig, { WD_INPUT_DATA } from './wd-input';
4
+ // 属性类型定义
5
+ const data = Type.Partial(Type.Object(Object.assign(omit(WD_INPUT_DATA, [
6
+ 'password',
7
+ 'type',
8
+ 'isNickNameType',
9
+ 'rules',
10
+ 'maxLength',
11
+ ]), {
12
+ name: { ...WD_INPUT_DATA.name, default: 'formPhone' },
13
+ label: { ...WD_INPUT_DATA.label, default: '手机' },
14
+ placeholder: { ...WD_INPUT_DATA.placeholder, default: '请输入手机号' },
15
+ })));
16
+ const classes = getFormItemClasses('input-phone');
17
+ // export default
18
+ const config = defineConfig({
19
+ $schema: 'https://comp-public-1303824488.cos.ap-shanghai.myqcloud.com/schema/lcds_component.json',
20
+ data,
21
+ properties: wdInputConfig.properties,
22
+ classes,
23
+ methods: wdInputConfig.methods,
24
+ events: wdInputConfig.events,
25
+ meta: {
26
+ description: '用于输入电话号码,会强制校验输入内容是否符合电话格式。',
27
+ icon: '../../icons/PhoneCode.svg',
28
+ title: '电话输入',
29
+ name: 'WdInputPhone',
30
+ componentName: 'InputPhone',
31
+ categoryOrder: 500,
32
+ componentOrder: 500,
33
+ docsUrl: 'https://docs.cloudbase.net/lowcode/components/wedaUI/src/docs/compsdocs/form/WdInputPhone',
34
+ category: FORM_ITEM_META.category,
35
+ shortcut: FORM_ITEM_META.shortcut,
36
+ group: FORM_ITEM_META.group,
37
+ visible: FORM_ITEM_META.visible,
38
+ },
39
+ compConfig: {
40
+ componentType: 'formField',
41
+ },
42
+ });
43
+ export default config;
@@ -0,0 +1,37 @@
1
+ import { defineConfig, Type } from '../type-utils';
2
+ import { getFormItemClasses, omit, FORM_ITEM_META, } from '../type-utils/type-form';
3
+ import wdInputConfig, { WD_INPUT_DATA } from './wd-input';
4
+ // 属性类型定义
5
+ const data = Type.Partial(Type.Object(Object.assign(omit(WD_INPUT_DATA, ['password', 'type', 'isNickNameType', 'rules']), {
6
+ name: { ...WD_INPUT_DATA.name, default: 'formUrl' },
7
+ label: { ...WD_INPUT_DATA.label, default: '网址' },
8
+ placeholder: { ...WD_INPUT_DATA.placeholder, default: '请输入网址' },
9
+ })));
10
+ const classes = getFormItemClasses('input-url');
11
+ // export default
12
+ const config = defineConfig({
13
+ $schema: 'https://comp-public-1303824488.cos.ap-shanghai.myqcloud.com/schema/lcds_component.json',
14
+ data,
15
+ properties: wdInputConfig.properties,
16
+ classes,
17
+ methods: wdInputConfig.methods,
18
+ events: wdInputConfig.events,
19
+ meta: {
20
+ description: '用于输入URL地址,会强制校验输入内容是否符合URL格式。',
21
+ icon: '../../icons/Badge.svg',
22
+ title: 'URL输入',
23
+ name: 'WdInputUrl',
24
+ componentName: 'InputUrl',
25
+ categoryOrder: 500,
26
+ componentOrder: 510,
27
+ docsUrl: 'https://docs.cloudbase.net/lowcode/components/wedaUI/src/docs/compsdocs/form/WdInputUrl',
28
+ category: FORM_ITEM_META.category,
29
+ shortcut: FORM_ITEM_META.shortcut,
30
+ group: FORM_ITEM_META.group,
31
+ visible: FORM_ITEM_META.visible,
32
+ },
33
+ compConfig: {
34
+ componentType: 'formField',
35
+ },
36
+ });
37
+ export default config;