@pisell/materials 1.0.1051 → 1.0.1053

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 (169) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +2 -2
  6. package/build/lowcode/preview.js +8 -8
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +13 -13
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +13 -13
  11. package/es/components/PisellCards/index.d.ts +6 -6
  12. package/es/components/appVersionControl/index.js +1 -1
  13. package/es/components/calendar/index.d.ts +2 -2
  14. package/es/components/checkbox/index.d.ts +2 -2
  15. package/es/components/dataSourceComponents/dataSourceForm/BaseForm.js +3 -3
  16. package/es/components/dataSourceComponents/dataSourceForm/formItem.js +1 -1
  17. package/es/components/dataSourceComponents/dataSourceForm/index.js +1 -1
  18. package/es/components/dataSourceComponents/dataSourceForm/submitButton/index.js +2 -2
  19. package/es/components/dataSourceComponents/dataSourceForm/utils.js +3 -3
  20. package/es/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +2 -2
  21. package/es/components/dataSourceComponents/dataSourceSubForm/index.d.ts +16 -0
  22. package/es/components/dataSourceComponents/dataSourceSubForm/index.js +329 -0
  23. package/es/components/dataSourceComponents/dataSourceSubForm/index.less +19 -0
  24. package/es/components/dataSourceComponents/dataSourceSubForm/schema-full-example.json +538 -0
  25. package/es/components/dataSourceComponents/dataSourceSubForm/schema-simple-example.json +174 -0
  26. package/es/components/dataSourceComponents/dataSourceSubForm/types.d.ts +121 -0
  27. package/es/components/dataSourceComponents/dataSourceTable/BaseTable.js +1 -1
  28. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.js +1 -1
  29. package/es/components/dataSourceComponents/dataSourceTable/type.d.ts +1 -1
  30. package/es/components/dataSourceComponents/dataSourceWrapper/BaseWrapper.js +1 -1
  31. package/es/components/dataSourceComponents/fields/Checkbox/WithMode.d.ts +3 -3
  32. package/es/components/dataSourceComponents/fields/DateRangePicker/WithMode.js +1 -1
  33. package/es/components/dataSourceComponents/fields/Input.Mobile/WithMode.js +1 -1
  34. package/es/components/dataSourceComponents/fields/Input.Phone/WithMode.js +1 -1
  35. package/es/components/dataSourceComponents/fields/Radio/WithMode.d.ts +2 -2
  36. package/es/components/dataSourceComponents/fields/Radio/WithMode.js +1 -1
  37. package/es/components/dataSourceComponents/fields/RecordListWrapper/README.md +247 -0
  38. package/es/components/dataSourceComponents/fields/RecordListWrapper/ReadPretty.js +39 -0
  39. package/es/components/dataSourceComponents/fields/RecordListWrapper/WithMode.js +84 -0
  40. package/es/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +17 -0
  41. package/es/components/dataSourceComponents/fields/RecordListWrapper/index.js +9 -0
  42. package/es/components/dataSourceComponents/fields/RecordListWrapper/type.d.ts +91 -0
  43. package/es/components/dataSourceComponents/fields/Select/WithMode.js +1 -1
  44. package/es/components/dataSourceComponents/fields/Select/index.d.ts +3 -3
  45. package/es/components/dataSourceComponents/fields/Tabs/ReadPretty.js +16 -0
  46. package/es/components/dataSourceComponents/fields/Tabs/Tabs.js +75 -0
  47. package/es/components/dataSourceComponents/fields/Tabs/Tabs.less +55 -0
  48. package/es/components/dataSourceComponents/fields/Tabs/WithMode.js +13 -0
  49. package/es/components/dataSourceComponents/fields/Tabs/index.d.ts +19 -0
  50. package/es/components/dataSourceComponents/fields/Tabs/index.js +10 -0
  51. package/es/components/dataSourceComponents/fields/Tabs/type.d.ts +36 -0
  52. package/es/components/dataSourceComponents/fields/index.js +5 -1
  53. package/es/components/dataSourceComponents/fields/utils.js +3 -0
  54. package/es/components/dataSourceComponents/hooks/useActions.js +1 -1
  55. package/es/components/dataSourceComponents/provider/dataSource/DataSourceProvider.js +1 -1
  56. package/es/components/date-picker/index.d.ts +2 -2
  57. package/es/components/input/index.d.ts +2 -2
  58. package/es/components/pisell-config-provider/context.d.ts +2 -2
  59. package/es/components/pisellDataSourceContainer/type.d.ts +1 -1
  60. package/es/components/pisellDatePicker/index.d.ts +2 -2
  61. package/es/components/pisellInput/components/Copy/index.js +1 -1
  62. package/es/components/pisellModal/index.d.ts +6 -6
  63. package/es/components/pisellMultipleSelect/PisellMultipleSelect.less +15 -7
  64. package/es/components/pisellQuickFilter/index.d.ts +2 -2
  65. package/es/components/pisellRecordBoard/PisellRecordBoard.js +10 -3
  66. package/es/components/pisellRecordBoard/shellFrame/ToolBar/index.js +3 -1
  67. package/es/components/pisellRecordBoard/shellFrame/ToolBarReset/index.js +4 -2
  68. package/es/components/pisellRecordBoard/types.d.ts +4 -0
  69. package/es/components/pisellSingleSelect/PisellSingleSelect.less +15 -0
  70. package/es/components/pisellWalletPassCard/index.js +1 -1
  71. package/es/components/radio/index.d.ts +2 -2
  72. package/es/components/section-footers/index.d.ts +2 -2
  73. package/es/components/select/index.less +18 -2
  74. package/es/components/skeleton/index.d.ts +2 -2
  75. package/es/components/table/Actions/component/ExportImport/index.js +1 -1
  76. package/es/components/table/Table/fields/select/Edit/index.js +1 -1
  77. package/es/components/table/Table/tableConfig/SortRow/index.js +1 -1
  78. package/es/components/table/Table/tableConfig/body/CellProvider/index.js +1 -1
  79. package/es/components/time-picker/index.d.ts +2 -2
  80. package/es/components/typography/index.d.ts +2 -2
  81. package/es/components/upload/index.d.ts +2 -2
  82. package/es/index.d.ts +5 -1
  83. package/es/index.js +8 -5
  84. package/lib/components/PisellCards/index.d.ts +6 -6
  85. package/lib/components/PisellFields/index.d.ts +12 -12
  86. package/lib/components/PisellLayouts/index.d.ts +9 -9
  87. package/lib/components/PisellMetrics/index.d.ts +4 -4
  88. package/lib/components/appVersionControl/index.js +4 -4
  89. package/lib/components/calendar/index.d.ts +2 -2
  90. package/lib/components/checkbox/index.d.ts +2 -2
  91. package/lib/components/dataSourceComponents/dataSourceForm/BaseForm.js +3 -3
  92. package/lib/components/dataSourceComponents/dataSourceForm/formItem.js +1 -1
  93. package/lib/components/dataSourceComponents/dataSourceForm/index.js +1 -1
  94. package/lib/components/dataSourceComponents/dataSourceForm/submitButton/index.js +2 -2
  95. package/lib/components/dataSourceComponents/dataSourceForm/utils.js +3 -3
  96. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +2 -2
  97. package/lib/components/dataSourceComponents/dataSourceSubForm/index.d.ts +16 -0
  98. package/lib/components/dataSourceComponents/dataSourceSubForm/index.js +332 -0
  99. package/lib/components/dataSourceComponents/dataSourceSubForm/index.less +19 -0
  100. package/lib/components/dataSourceComponents/dataSourceSubForm/schema-full-example.json +538 -0
  101. package/lib/components/dataSourceComponents/dataSourceSubForm/schema-simple-example.json +174 -0
  102. package/lib/components/dataSourceComponents/dataSourceSubForm/types.d.ts +121 -0
  103. package/lib/components/dataSourceComponents/dataSourceTable/BaseTable.js +1 -1
  104. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.js +1 -1
  105. package/lib/components/dataSourceComponents/dataSourceTable/type.d.ts +1 -1
  106. package/lib/components/dataSourceComponents/dataSourceWrapper/BaseWrapper.js +1 -1
  107. package/lib/components/dataSourceComponents/fields/Checkbox/WithMode.d.ts +3 -3
  108. package/lib/components/dataSourceComponents/fields/DateRangePicker/WithMode.js +1 -1
  109. package/lib/components/dataSourceComponents/fields/Input.Mobile/WithMode.js +1 -1
  110. package/lib/components/dataSourceComponents/fields/Input.Password/index.d.ts +2 -2
  111. package/lib/components/dataSourceComponents/fields/Input.Phone/WithMode.js +1 -1
  112. package/lib/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +2 -2
  113. package/lib/components/dataSourceComponents/fields/Input.TextArea/index.d.ts +2 -2
  114. package/lib/components/dataSourceComponents/fields/Radio/WithMode.d.ts +2 -2
  115. package/lib/components/dataSourceComponents/fields/Radio/WithMode.js +1 -1
  116. package/lib/components/dataSourceComponents/fields/RecordListWrapper/README.md +247 -0
  117. package/lib/components/dataSourceComponents/fields/RecordListWrapper/ReadPretty.js +41 -0
  118. package/lib/components/dataSourceComponents/fields/RecordListWrapper/WithMode.js +86 -0
  119. package/lib/components/dataSourceComponents/fields/RecordListWrapper/index.d.ts +17 -0
  120. package/lib/components/dataSourceComponents/fields/RecordListWrapper/index.js +9 -0
  121. package/lib/components/dataSourceComponents/fields/RecordListWrapper/type.d.ts +91 -0
  122. package/lib/components/dataSourceComponents/fields/Select/WithMode.js +1 -1
  123. package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
  124. package/lib/components/dataSourceComponents/fields/Tabs/ReadPretty.js +16 -0
  125. package/lib/components/dataSourceComponents/fields/Tabs/Tabs.js +78 -0
  126. package/lib/components/dataSourceComponents/fields/Tabs/Tabs.less +55 -0
  127. package/lib/components/dataSourceComponents/fields/Tabs/WithMode.js +13 -0
  128. package/lib/components/dataSourceComponents/fields/Tabs/index.d.ts +19 -0
  129. package/lib/components/dataSourceComponents/fields/Tabs/index.js +10 -0
  130. package/lib/components/dataSourceComponents/fields/Tabs/type.d.ts +35 -0
  131. package/lib/components/dataSourceComponents/fields/index.js +37 -33
  132. package/lib/components/dataSourceComponents/fields/utils.js +3 -0
  133. package/lib/components/dataSourceComponents/hooks/useActions.js +1 -1
  134. package/lib/components/dataSourceComponents/provider/dataSource/DataSourceProvider.js +1 -1
  135. package/lib/components/date-picker/index.d.ts +2 -2
  136. package/lib/components/input/index.d.ts +2 -2
  137. package/lib/components/pisell-config-provider/context.d.ts +2 -2
  138. package/lib/components/pisellDataSourceContainer/components/Pagination/index.d.ts +2 -2
  139. package/lib/components/pisellDataSourceContainer/components/Table/index.d.ts +2 -2
  140. package/lib/components/pisellDataSourceContainer/type.d.ts +1 -1
  141. package/lib/components/pisellDatePicker/index.d.ts +2 -2
  142. package/lib/components/pisellInput/components/Copy/index.js +1 -1
  143. package/lib/components/pisellMultipleSelect/PisellMultipleSelect.less +15 -7
  144. package/lib/components/pisellRecordBoard/PisellRecordBoard.js +10 -3
  145. package/lib/components/pisellRecordBoard/shellFrame/ToolBar/index.js +3 -1
  146. package/lib/components/pisellRecordBoard/shellFrame/ToolBarReset/index.js +4 -2
  147. package/lib/components/pisellRecordBoard/types.d.ts +4 -0
  148. package/lib/components/pisellSingleSelect/PisellSingleSelect.less +15 -0
  149. package/lib/components/pisellWalletPassCard/index.js +1 -1
  150. package/lib/components/radio/index.d.ts +2 -2
  151. package/lib/components/section-footers/index.d.ts +2 -2
  152. package/lib/components/select/index.less +18 -2
  153. package/lib/components/skeleton/index.d.ts +2 -2
  154. package/lib/components/table/Actions/component/ExportImport/index.js +1 -1
  155. package/lib/components/table/Table/fields/select/Edit/index.js +1 -1
  156. package/lib/components/table/Table/tableConfig/SortRow/index.js +1 -1
  157. package/lib/components/table/Table/tableConfig/body/CellProvider/index.js +1 -1
  158. package/lib/components/time-picker/index.d.ts +2 -2
  159. package/lib/components/upload/index.d.ts +2 -2
  160. package/lib/index.d.ts +5 -1
  161. package/lib/index.js +256 -250
  162. package/lowcode/data-source-form/constants.ts +3 -0
  163. package/lowcode/data-source-form/utils.ts +19 -5
  164. package/lowcode/data-source-sub-form/meta.ts +274 -0
  165. package/lowcode/data-source-sub-form/snippets.ts +135 -0
  166. package/lowcode/form-item-record-list-wrapper/meta.ts +246 -0
  167. package/lowcode/form-item-record-list-wrapper/snippets.ts +24 -0
  168. package/lowcode/form-item-tabs/meta.ts +172 -0
  169. package/package.json +1 -1
@@ -0,0 +1,246 @@
1
+ import snippets from './snippets';
2
+ import {
3
+ formItemGeneralDataGroup,
4
+ generalItemMap,
5
+ getFormItemGeneralInfoGroup,
6
+ formItemGeneralOptionTypeGroup,
7
+ } from '../_utils/defaultSchema';
8
+ import { createFormItemSchema } from '../data-source-form/utils';
9
+
10
+ /**
11
+ * @title: 将 xRecordSchema JSON 字段定义转换为低代码子组件 Schema
12
+ * @description:
13
+ * 解析 xRecordSchema(支持单对象、数组、字符串),对每个字段补全 uiSchema,
14
+ * 调用 createFormItemSchema 生成低代码引擎可识别的组件 Schema。
15
+ */
16
+ const parseXRecordSchemaToChildSchemas = (value: any): any[] => {
17
+ let fields = value;
18
+
19
+ // 解析字符串
20
+ if (typeof fields === 'string') {
21
+ try {
22
+ fields = JSON.parse(fields);
23
+ } catch {
24
+ return [];
25
+ }
26
+ }
27
+
28
+ if (!fields) {
29
+ return [];
30
+ }
31
+
32
+ // 单对象转数组
33
+ if (!Array.isArray(fields)) {
34
+ fields = [fields];
35
+ }
36
+
37
+ // 补全每个字段的 uiSchema 并生成子组件 Schema
38
+ return fields
39
+ .filter(Boolean)
40
+ .map((field: any) => {
41
+ const uiSchema = { ...(field.uiSchema || {}) };
42
+
43
+ // 从 interface 映射 x-component(如 Select、Input 等)
44
+ if (!uiSchema['x-component'] && field.interface) {
45
+ uiSchema['x-component'] = field.interface;
46
+ }
47
+
48
+ // 兼容简单格式(只有 componentName/component,没有 interface 和 uiSchema)
49
+ if (!uiSchema['x-component']) {
50
+ uiSchema['x-component'] =
51
+ field.componentName || field.component || 'Input';
52
+ }
53
+
54
+ // 从 field.type 映射 uiSchema.type
55
+ if (!uiSchema.type && field.type) {
56
+ uiSchema.type = field.type;
57
+ }
58
+
59
+ // 确保 title 存在(用于生成 label)
60
+ if (!uiSchema.title && field.label) {
61
+ uiSchema.title = field.label;
62
+ }
63
+
64
+ return createFormItemSchema({ ...field, uiSchema }, 'edit');
65
+ })
66
+ .filter((schema: any) => !!schema?.componentName);
67
+ };
68
+
69
+ export default {
70
+ snippets,
71
+ componentName: 'FormItemRecordListWrapper',
72
+ title: '记录列表包装器',
73
+ category: '无代码表单',
74
+ group: '无代码组件',
75
+ docUrl: '',
76
+ screenshot: '',
77
+ devMode: 'proCode',
78
+ npm: {
79
+ package: '@pisell/materials',
80
+ version: '1.0.1',
81
+ exportName: 'FormItemRecordListWrapper',
82
+ main: 'src/index.tsx',
83
+ destructuring: true,
84
+ subName: '',
85
+ },
86
+ generalProps: [
87
+ // 数据分组
88
+ formItemGeneralDataGroup,
89
+ // 信息分组
90
+ getFormItemGeneralInfoGroup([
91
+ generalItemMap['label'],
92
+ generalItemMap['placeholder'],
93
+ generalItemMap['tooltip'],
94
+ generalItemMap['extra'],
95
+ generalItemMap['hideLabel'],
96
+ generalItemMap['renderMode'],
97
+ generalItemMap['defaultValue'],
98
+ ]),
99
+ // 选项类型分组
100
+ formItemGeneralOptionTypeGroup,
101
+ // Schema 分组
102
+ {
103
+ type: 'group',
104
+ title: {
105
+ type: 'i18n',
106
+ 'en-US': 'Schema',
107
+ 'zh-CN': 'Schema',
108
+ },
109
+ display: 'accordion',
110
+ items: [
111
+ {
112
+ name: 'xRecordSchema',
113
+ title: {
114
+ label: {
115
+ type: 'i18n',
116
+ 'en-US': 'Record Schema',
117
+ 'zh-CN': '记录字段配置',
118
+ },
119
+ tip: {
120
+ type: 'i18n',
121
+ 'en-US':
122
+ 'Define the fields for each record. When configured, the system will automatically generate form fields based on the schema. You can also manually drag form items into the container.',
123
+ 'zh-CN':
124
+ '定义每条记录的字段结构。配置后,系统会自动根据 Schema 生成表单字段。你也可以手动拖拽表单项到容器中。',
125
+ },
126
+ },
127
+ propType: 'string',
128
+ setter: 'JsonSetter',
129
+ description: `
130
+ 示例配置:
131
+ [
132
+ {
133
+ "name": "code",
134
+ "uiSchema": {
135
+ "title": "代码",
136
+ "x-component": "Input",
137
+ "x-component-props": {
138
+ "placeholder": "请输入代码"
139
+ }
140
+ }
141
+ },
142
+ {
143
+ "name": "type",
144
+ "uiSchema": {
145
+ "title": "类型",
146
+ "x-component": "Select",
147
+ "enum": [
148
+ { "label": "类型A", "value": "a" },
149
+ { "label": "类型B", "value": "b" }
150
+ ]
151
+ }
152
+ }
153
+ ]
154
+ `,
155
+ extraProps: {
156
+ /**
157
+ * 当 xRecordSchema 值变化时,解析 JSON 并生成子组件节点
158
+ */
159
+ setValue(target: any, value: any) {
160
+ target.getProps().setPropValue('xRecordSchema', value);
161
+
162
+ // 解析 xRecordSchema -> 子组件 Schema
163
+ const childSchemas = parseXRecordSchemaToChildSchemas(value);
164
+
165
+ if (childSchemas.length > 0) {
166
+ // 导入子组件到设计树
167
+ target.node.children.importSchema(childSchemas);
168
+ }
169
+ },
170
+ },
171
+ },
172
+ ],
173
+ },
174
+ // 插槽分组
175
+ {
176
+ type: 'group',
177
+ title: {
178
+ type: 'i18n',
179
+ 'en-US': 'Slot',
180
+ 'zh-CN': '插槽',
181
+ },
182
+ display: 'accordion',
183
+ items: [
184
+ {
185
+ name: 'topSlot',
186
+ title: {
187
+ label: {
188
+ type: 'i18n',
189
+ 'en-US': 'Tab Area',
190
+ 'zh-CN': 'Tab 区域',
191
+ },
192
+ tip: {
193
+ type: 'i18n',
194
+ 'en-US':
195
+ 'Drag a component here to customize the tab navigation. The component will receive options, value, and onChange props.',
196
+ 'zh-CN':
197
+ '拖入自定义组件来替换默认 Tab 导航。组件会自动接收 options、value、onChange 属性。',
198
+ },
199
+ },
200
+ setter: {
201
+ componentName: 'SlotSetter',
202
+ initialValue: {
203
+ type: 'JSSlot',
204
+ value: [],
205
+ },
206
+ },
207
+ },
208
+ ],
209
+ },
210
+ ],
211
+ configure: {
212
+ component: {
213
+ isContainer: true,
214
+ nestingRule: {
215
+ // 允许所有表单项组件作为子组件
216
+ childWhitelist: [
217
+ 'FormItemInput',
218
+ 'FormItemSelect',
219
+ 'FormItemInputNumber',
220
+ 'FormItemDatePicker',
221
+ 'FormItemTimePicker',
222
+ 'FormItemRadio',
223
+ 'FormItemCheckbox',
224
+ 'FormItemSwitch',
225
+ 'FormItemUpload',
226
+ 'FormItemTranslation',
227
+ 'FormItemInputJSON',
228
+ ],
229
+ },
230
+ },
231
+ supports: {
232
+ style: true,
233
+ events: [
234
+ { name: 'onChange', template: 'onChange(value,${extParams}){}' },
235
+ ],
236
+ },
237
+ advanced: {
238
+ callbacks: {
239
+ // 当拖入新组件时的回调
240
+ onNodeAdd: (dragment: any, currentNode: any) => {
241
+ console.log('RecordListWrapper: 新增子组件', dragment?.componentName);
242
+ },
243
+ },
244
+ },
245
+ },
246
+ };
@@ -0,0 +1,24 @@
1
+ const snippets = [
2
+ {
3
+ title: '记录列表包装器',
4
+ screenshot: '',
5
+ schema: {
6
+ componentName: 'FormItemRecordListWrapper',
7
+ props: {
8
+ label: '记录列表',
9
+ name: 'recordList',
10
+ optionSourceType: 'default',
11
+ options: [],
12
+ xRecordSchema: [
13
+ {
14
+ name: 'title',
15
+ label: '标题',
16
+ componentName: 'Input',
17
+ },
18
+ ],
19
+ },
20
+ },
21
+ },
22
+ ];
23
+
24
+ export default snippets;
@@ -0,0 +1,172 @@
1
+ import { uuid } from '../_utils/utils';
2
+ import {
3
+ formItemGeneralDataGroup,
4
+ generalItemMap,
5
+ getFormItemGeneralInfoGroup,
6
+ formItemGeneralOptionTypeGroup,
7
+ getFormItemValidateGroup,
8
+ getFormItemGeneralAppearanceGroup,
9
+ } from '../_utils/defaultSchema';
10
+
11
+ export default {
12
+ componentName: 'FormItemTabs',
13
+ title: '选项卡',
14
+ category: '无代码表单',
15
+ group: '无代码组件',
16
+ docUrl: '',
17
+ screenshot: '',
18
+ devMode: 'proCode',
19
+ npm: {
20
+ package: '@pisell/materials',
21
+ version: '1.0.1',
22
+ exportName: 'FormItemTabs',
23
+ main: 'src/index.tsx',
24
+ destructuring: true,
25
+ subName: '',
26
+ },
27
+ generalProps: [
28
+ // 数据分组
29
+ formItemGeneralDataGroup,
30
+ // 信息分组
31
+ getFormItemGeneralInfoGroup([
32
+ generalItemMap['label'],
33
+ generalItemMap['tooltip'],
34
+ generalItemMap['extra'],
35
+ generalItemMap['hideLabel'],
36
+ generalItemMap['renderMode'],
37
+ generalItemMap['defaultValue'],
38
+ ]),
39
+ // 选项类型分组
40
+ formItemGeneralOptionTypeGroup,
41
+ // 校验分组
42
+ getFormItemValidateGroup([generalItemMap['requiredobj']]),
43
+ // 外观分组
44
+ getFormItemGeneralAppearanceGroup([]),
45
+ ],
46
+ props: [
47
+ {
48
+ name: 'defaultValue',
49
+ title: { label: '默认值', tip: '默认选中的选项值' },
50
+ propType: { type: 'oneOfType', value: ['string', 'number'] },
51
+ setter: ['StringSetter', 'NumberSetter', 'VariableSetter'],
52
+ supportVariable: true,
53
+ },
54
+ {
55
+ name: 'value',
56
+ title: { label: '当前值', tip: '当前选中的选项值(受控)' },
57
+ propType: { type: 'oneOfType', value: ['string', 'number'] },
58
+ setter: ['StringSetter', 'NumberSetter', 'VariableSetter'],
59
+ supportVariable: true,
60
+ },
61
+ {
62
+ name: 'disabled',
63
+ title: { label: '是否禁用', tip: '是否禁用整个选项卡组件' },
64
+ propType: 'bool',
65
+ defaultValue: false,
66
+ setter: 'BoolSetter',
67
+ supportVariable: true,
68
+ },
69
+ {
70
+ name: 'options',
71
+ title: { label: '选项列表', tip: '配置各选项卡的标签和对应值' },
72
+ propType: {
73
+ type: 'arrayOf',
74
+ value: {
75
+ type: 'shape',
76
+ value: [
77
+ {
78
+ name: 'label',
79
+ propType: 'string',
80
+ description: '选项名',
81
+ defaultValue: '选项名',
82
+ },
83
+ {
84
+ name: 'value',
85
+ propType: { type: 'oneOfType', value: ['string', 'number'] },
86
+ description: '选项值',
87
+ defaultValue: '选项值',
88
+ },
89
+ {
90
+ name: 'disabled',
91
+ propType: 'bool',
92
+ description: '是否禁用该选项',
93
+ defaultValue: false,
94
+ },
95
+ ],
96
+ },
97
+ },
98
+ setter: {
99
+ componentName: 'ArraySetter',
100
+ props: {
101
+ itemSetter: {
102
+ componentName: 'ObjectSetter',
103
+ props: {
104
+ config: {
105
+ items: [
106
+ {
107
+ name: 'label',
108
+ title: '选项名',
109
+ setter: ['PisellI18nSetter', 'StringSetter', 'VariableSetter'],
110
+ isRequired: true,
111
+ },
112
+ {
113
+ name: 'value',
114
+ title: '选项值',
115
+ setter: ['StringSetter', 'NumberSetter', 'VariableSetter'],
116
+ isRequired: true,
117
+ },
118
+ {
119
+ name: 'disabled',
120
+ title: '是否禁用',
121
+ setter: 'BoolSetter',
122
+ },
123
+ ],
124
+ },
125
+ },
126
+ initialValue: () => {
127
+ return {
128
+ label: '选项名',
129
+ value: uuid(),
130
+ disabled: false,
131
+ };
132
+ },
133
+ },
134
+ },
135
+ },
136
+ },
137
+ {
138
+ name: 'onChange',
139
+ title: { label: '变化时回调', tip: '切换选项时触发的回调函数' },
140
+ propType: 'func',
141
+ },
142
+ ],
143
+ configure: {
144
+ supports: {
145
+ style: true,
146
+ events: [
147
+ {
148
+ name: 'onChange',
149
+ template:
150
+ "onChange(value,${extParams}){\n// 切换选项时回调\nconsole.log('onChange', value);}",
151
+ },
152
+ ],
153
+ },
154
+ },
155
+ snippets: [
156
+ {
157
+ title: '选项卡',
158
+ screenshot: '',
159
+ schema: {
160
+ componentName: 'FormItemTabs',
161
+ props: {
162
+ optionSourceType: 'custom',
163
+ options: [
164
+ { label: '选项A', value: 'A' },
165
+ { label: '选项B', value: 'B' },
166
+ { label: '选项C', value: 'C' },
167
+ ],
168
+ },
169
+ },
170
+ },
171
+ ],
172
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/materials",
3
- "version": "1.0.1051",
3
+ "version": "1.0.1053",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.js",
6
6
  "types": "./lib/index.d.ts",