@pisell/materials 1.0.970 → 1.0.971
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.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +6 -6
- package/build/lowcode/preview.js +14 -12
- package/build/lowcode/render/default/view.js +26 -30
- package/build/lowcode/view.js +26 -30
- package/es/components/auto-complete-number/index.d.ts +1 -0
- package/es/components/badge/index.d.ts +1 -0
- package/es/components/batch-editor/fields/index.d.ts +1 -0
- package/es/components/calendar/index.d.ts +1 -0
- package/es/components/checkbox/index.d.ts +1 -0
- package/es/components/classicLayout/index.d.ts +1 -0
- package/es/components/colorPicker/index.d.ts +1 -0
- package/es/components/config-provider/index.d.ts +1 -0
- package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +28 -0
- package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +33 -0
- package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
- package/es/components/dataSourceComponents/fields/Upload/BaseUpload.d.ts +5 -0
- package/es/components/dataSourceComponents/fields/Upload/CameraPopover.d.ts +5 -0
- package/es/components/dataSourceComponents/fields/Upload/index.d.ts +3 -0
- package/es/components/dataSourceComponents/fields/Upload/type.d.ts +38 -0
- package/es/components/dataSourceComponents/fields/index.d.ts +17 -17
- package/es/components/date-picker/index.d.ts +0 -1
- package/es/components/dropdown/index.d.ts +1 -0
- package/es/components/filter/components/items/index.d.ts +1 -0
- package/es/components/filter/components/items/text/Editor/index.d.ts +1 -0
- package/es/components/filter/components/items/text/Preview/index.d.ts +1 -0
- package/es/components/filter/components/items/text/index.d.ts +1 -0
- package/es/components/filter/types.d.ts +46 -0
- package/es/components/pisellCamera/index.d.ts +4 -0
- package/es/components/pisellCard/index.d.ts +1 -0
- package/es/components/pisellDatePicker/datePickerCpt.d.ts +1 -0
- package/es/components/pisellDatePicker/index.d.ts +1 -0
- package/es/components/pisellInformationEntry/Scan/index.d.ts +1 -0
- package/es/components/pisellInput/components/BankCard/index.d.ts +1 -0
- package/es/components/pisellInput/components/SecurityCode/index.d.ts +1 -0
- package/es/components/pisellTooltip/index.d.ts +1 -0
- package/es/components/pisellUpload/index.d.ts +1 -0
- package/es/components/pisellWalletPassCard/index.d.ts +148 -0
- package/es/components/productCard/components/Divider/index.d.ts +1 -0
- package/es/components/productCard/components/Time/components/Like/index.d.ts +1 -0
- package/es/components/radio/index.d.ts +1 -0
- package/es/components/segmented/index.d.ts +1 -0
- package/es/components/select-time/RightPanel/index.d.ts +1 -0
- package/es/components/skeleton/index.d.ts +1 -0
- package/es/components/slider/index.d.ts +1 -0
- package/es/components/sort/components/InlineMenu/index.d.ts +1 -0
- package/es/components/table/Actions/component/ExportImport/components/ExportFile/index.d.ts +1 -0
- package/es/components/table/Actions/component/ExportImport/components/ExportTable/index.d.ts +1 -0
- package/es/components/table/Actions/component/ExportImport/components/ImportLog/index.d.ts +1 -0
- package/es/components/table/Actions/component/ExportImport/components/ImportTable/index.d.ts +1 -0
- package/es/components/table/Actions/component/Group/PopoverContent.d.ts +1 -0
- package/es/components/table/Actions/component/ViewMode/index.d.ts +1 -0
- package/es/components/table/Actions/index.d.ts +17 -0
- package/es/components/table/Summary/index.d.ts +1 -0
- package/es/components/table/Table/SelectField/index.d.ts +0 -1
- package/es/components/table/Table/fields/date/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/date/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/image/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/image/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/index.d.ts +0 -1
- package/es/components/table/Table/fields/link/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/link/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/number/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/number/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/numberRange/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/numberRange/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/oldRangePicker/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/oldRangePicker/Show/index.d.ts +1 -0
- package/es/components/table/Table/fields/oldRangePicker/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/pSwitch/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/pSwitch/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/rangePicker/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/rangePicker/Show/index.d.ts +1 -0
- package/es/components/table/Table/fields/rangePicker/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/search/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/search/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/select/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/select/Show/index.d.ts +1 -0
- package/es/components/table/Table/fields/select/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/text/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/text/Sort/index.d.ts +1 -0
- package/es/components/table/Table/fields/treeSelect/Config/index.d.ts +1 -0
- package/es/components/table/Table/fields/treeSelect/Show/index.d.ts +1 -0
- package/es/components/table/Table/fields/treeSelect/Sort/index.d.ts +1 -0
- package/es/components/table/Table/tableConfig/summary/index.d.ts +1 -0
- package/es/components/table/TableFilter/SortIcon.d.ts +1 -0
- package/es/components/time-picker/index.d.ts +1 -0
- package/es/components/upload/index.d.ts +1 -0
- package/es/components/virtual-keyboard/Time/utils.d.ts +1 -0
- package/es/components/walletCard/Guest/index.d.ts +1 -0
- package/es/components/walletCard/Guide/index.d.ts +1 -0
- package/es/components/walletCard/index.d.ts +79 -0
- package/lib/components/auto-complete-number/index.d.ts +1 -0
- package/lib/components/badge/index.d.ts +1 -0
- package/lib/components/batch-editor/fields/index.d.ts +1 -0
- package/lib/components/calendar/index.d.ts +1 -0
- package/lib/components/checkbox/index.d.ts +1 -0
- package/lib/components/classicLayout/index.d.ts +1 -0
- package/lib/components/colorPicker/index.d.ts +1 -0
- package/lib/components/config-provider/index.d.ts +1 -0
- package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +28 -0
- package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +33 -0
- package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
- package/lib/components/dataSourceComponents/fields/Upload/BaseUpload.d.ts +5 -0
- package/lib/components/dataSourceComponents/fields/Upload/CameraPopover.d.ts +5 -0
- package/lib/components/dataSourceComponents/fields/Upload/index.d.ts +3 -0
- package/lib/components/dataSourceComponents/fields/Upload/type.d.ts +38 -0
- package/lib/components/dataSourceComponents/fields/index.d.ts +17 -17
- package/lib/components/date-picker/index.d.ts +0 -1
- package/lib/components/dropdown/index.d.ts +1 -0
- package/lib/components/filter/components/items/index.d.ts +1 -0
- package/lib/components/filter/components/items/text/Editor/index.d.ts +1 -0
- package/lib/components/filter/components/items/text/Preview/index.d.ts +1 -0
- package/lib/components/filter/components/items/text/index.d.ts +1 -0
- package/lib/components/filter/types.d.ts +46 -0
- package/lib/components/pisellCamera/index.d.ts +4 -0
- package/lib/components/pisellCard/index.d.ts +1 -0
- package/lib/components/pisellDatePicker/datePickerCpt.d.ts +1 -0
- package/lib/components/pisellDatePicker/index.d.ts +1 -0
- package/lib/components/pisellInformationEntry/Scan/index.d.ts +1 -0
- package/lib/components/pisellInput/components/BankCard/index.d.ts +1 -0
- package/lib/components/pisellInput/components/SecurityCode/index.d.ts +1 -0
- package/lib/components/pisellTooltip/index.d.ts +1 -0
- package/lib/components/pisellUpload/index.d.ts +1 -0
- package/lib/components/pisellWalletPassCard/index.d.ts +148 -0
- package/lib/components/productCard/components/Divider/index.d.ts +1 -0
- package/lib/components/productCard/components/Time/components/Like/index.d.ts +1 -0
- package/lib/components/radio/index.d.ts +1 -0
- package/lib/components/segmented/index.d.ts +1 -0
- package/lib/components/select-time/RightPanel/index.d.ts +1 -0
- package/lib/components/skeleton/index.d.ts +1 -0
- package/lib/components/slider/index.d.ts +1 -0
- package/lib/components/sort/components/InlineMenu/index.d.ts +1 -0
- package/lib/components/table/Actions/component/ExportImport/components/ExportFile/index.d.ts +1 -0
- package/lib/components/table/Actions/component/ExportImport/components/ExportTable/index.d.ts +1 -0
- package/lib/components/table/Actions/component/ExportImport/components/ImportLog/index.d.ts +1 -0
- package/lib/components/table/Actions/component/ExportImport/components/ImportTable/index.d.ts +1 -0
- package/lib/components/table/Actions/component/Group/PopoverContent.d.ts +1 -0
- package/lib/components/table/Actions/component/ViewMode/index.d.ts +1 -0
- package/lib/components/table/Actions/index.d.ts +17 -0
- package/lib/components/table/Summary/index.d.ts +1 -0
- package/lib/components/table/Table/SelectField/index.d.ts +0 -1
- package/lib/components/table/Table/fields/date/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/date/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/image/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/image/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/index.d.ts +0 -1
- package/lib/components/table/Table/fields/link/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/link/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/number/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/number/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/numberRange/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/numberRange/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/oldRangePicker/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/oldRangePicker/Show/index.d.ts +1 -0
- package/lib/components/table/Table/fields/oldRangePicker/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/pSwitch/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/pSwitch/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/rangePicker/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/rangePicker/Show/index.d.ts +1 -0
- package/lib/components/table/Table/fields/rangePicker/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/search/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/search/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/select/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/select/Show/index.d.ts +1 -0
- package/lib/components/table/Table/fields/select/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/text/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/text/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/fields/treeSelect/Config/index.d.ts +1 -0
- package/lib/components/table/Table/fields/treeSelect/Show/index.d.ts +1 -0
- package/lib/components/table/Table/fields/treeSelect/Sort/index.d.ts +1 -0
- package/lib/components/table/Table/tableConfig/summary/index.d.ts +1 -0
- package/lib/components/table/TableFilter/SortIcon.d.ts +1 -0
- package/lib/components/time-picker/index.d.ts +1 -0
- package/lib/components/upload/index.d.ts +1 -0
- package/lib/components/virtual-keyboard/Time/utils.d.ts +1 -0
- package/lib/components/walletCard/Guest/index.d.ts +1 -0
- package/lib/components/walletCard/Guide/index.d.ts +1 -0
- package/lib/components/walletCard/index.d.ts +79 -0
- package/lowcode/data-source-form/meta.ts +48 -6
- package/lowcode/data-source-form/utils.ts +108 -13
- package/package.json +3 -3
|
@@ -110,14 +110,50 @@ const dataSourceForm: MetaType = {
|
|
|
110
110
|
target.getProps().setPropValue('title', '');
|
|
111
111
|
target.node.children.importSchema([]);
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
113
|
+
// 检查是否fields包含group信息
|
|
114
|
+
const hasGroupInfo = value.item.fields?.some((field: any) => field._groupId);
|
|
115
|
+
|
|
116
|
+
let formGroupSchemas: any[] = [];
|
|
117
|
+
|
|
118
|
+
if (hasGroupInfo) {
|
|
119
|
+
// 按group分组
|
|
120
|
+
const groupedFields = new Map<string, { groupTitle: string; items: any[] }>();
|
|
121
|
+
|
|
122
|
+
value.item.fields.forEach((field: any) => {
|
|
123
|
+
const groupId = field._groupId;
|
|
124
|
+
if (!groupedFields.has(groupId)) {
|
|
125
|
+
groupedFields.set(groupId, {
|
|
126
|
+
groupTitle: field._groupTitle,
|
|
127
|
+
items: []
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
// 移除group标记,避免污染
|
|
131
|
+
const { _groupId, _groupTitle, ...cleanField } = field;
|
|
132
|
+
groupedFields.get(groupId)!.items.push(cleanField);
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// 为每个group创建一个FormGroup
|
|
136
|
+
groupedFields.forEach(({ groupTitle, items }) => {
|
|
137
|
+
const childrenSchemas = fields2ChildrenSchemas(
|
|
138
|
+
items,
|
|
139
|
+
target.getProps().getPropValue('renderMode')
|
|
140
|
+
);
|
|
141
|
+
formGroupSchemas.push(
|
|
142
|
+
createFormGroup(childrenSchemas, groupTitle)
|
|
143
|
+
);
|
|
144
|
+
});
|
|
145
|
+
} else {
|
|
146
|
+
// 原有逻辑:没有group信息时,创建单个FormGroup
|
|
147
|
+
let childrenSchemas = fields2ChildrenSchemas(
|
|
148
|
+
value.item.fields,
|
|
149
|
+
target.getProps().getPropValue('renderMode')
|
|
150
|
+
);
|
|
151
|
+
formGroupSchemas = [createFormGroup(childrenSchemas)];
|
|
152
|
+
}
|
|
117
153
|
|
|
118
154
|
if (target.node.children.isEmptyNode) {
|
|
119
155
|
target.node.children.importSchema([
|
|
120
|
-
|
|
156
|
+
...formGroupSchemas,
|
|
121
157
|
createSubmitButton(),
|
|
122
158
|
]);
|
|
123
159
|
}
|
|
@@ -131,11 +167,17 @@ const dataSourceForm: MetaType = {
|
|
|
131
167
|
}
|
|
132
168
|
|
|
133
169
|
const dataSource = value.isVariable ? value.value : value.item;
|
|
170
|
+
|
|
171
|
+
// 清理fields中的group标记
|
|
172
|
+
const cleanFields = value.item.fields?.map((field: any) => {
|
|
173
|
+
const { _groupId, _groupTitle, ...cleanField } = field;
|
|
174
|
+
return cleanField;
|
|
175
|
+
}) || value.item.fields;
|
|
134
176
|
|
|
135
177
|
setBatchVariables(target, [
|
|
136
178
|
{
|
|
137
179
|
label: 'currentFields',
|
|
138
|
-
value:
|
|
180
|
+
value: cleanFields,
|
|
139
181
|
},
|
|
140
182
|
{
|
|
141
183
|
label: 'dataSourceTitle',
|
|
@@ -14,17 +14,19 @@ type UiSchema = {
|
|
|
14
14
|
'x-component-props': Record<string, any>;
|
|
15
15
|
'x-read-pretty': boolean;
|
|
16
16
|
'x-validator'?: string;
|
|
17
|
+
'x-display'?: 'visible' | 'hidden' | 'none';
|
|
18
|
+
'x-pattern'?: 'editable' | 'disabled' | 'readPretty';
|
|
17
19
|
type: 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
18
20
|
};
|
|
19
21
|
|
|
20
22
|
// 创建表单组
|
|
21
|
-
export const createFormGroup = (children: any[]) => {
|
|
23
|
+
export const createFormGroup = (children: any[], groupTitle?: string) => {
|
|
22
24
|
return {
|
|
23
25
|
children,
|
|
24
26
|
componentName: 'FormGroup',
|
|
25
27
|
title: '分组',
|
|
26
28
|
props: {
|
|
27
|
-
title: 'Group',
|
|
29
|
+
title: groupTitle || 'Group',
|
|
28
30
|
showTitle: true,
|
|
29
31
|
showDescription: true,
|
|
30
32
|
showBackgroundColor: true,
|
|
@@ -110,7 +112,7 @@ const modeMap: Record<string, any> = {
|
|
|
110
112
|
view: 'view',
|
|
111
113
|
};
|
|
112
114
|
|
|
113
|
-
|
|
115
|
+
|
|
114
116
|
export const createFormItemSchema = (
|
|
115
117
|
item: {
|
|
116
118
|
name: string;
|
|
@@ -129,15 +131,46 @@ export const createFormItemSchema = (
|
|
|
129
131
|
'x-read-pretty': readPretty,
|
|
130
132
|
default: defaultValue,
|
|
131
133
|
'x-component-props': xProps,
|
|
134
|
+
'x-pattern': xPattern,
|
|
135
|
+
'x-display': xDisplay,
|
|
136
|
+
type,
|
|
132
137
|
} = uiSchema;
|
|
133
138
|
|
|
134
139
|
let cptTitle = undefined;
|
|
135
140
|
|
|
141
|
+
// 根据 x-pattern 和 x-display 确定 renderMode
|
|
142
|
+
// 优先级: x-display > x-pattern > x-read-pretty > x-component-props.renderMode > mode 参数
|
|
143
|
+
let renderMode = modeMap[mode] || 'edit';
|
|
144
|
+
|
|
145
|
+
// 先检查 x-component-props 中是否已有 renderMode
|
|
146
|
+
if (xProps?.renderMode) {
|
|
147
|
+
renderMode = xProps.renderMode;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// x-read-pretty 兼容旧逻辑(优先级高于 x-component-props)
|
|
151
|
+
if (readPretty) {
|
|
152
|
+
renderMode = 'view';
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// x-pattern 映射到 renderMode(优先级更高)
|
|
156
|
+
if (xPattern === 'readPretty') {
|
|
157
|
+
renderMode = 'view';
|
|
158
|
+
} else if (xPattern === 'disabled') {
|
|
159
|
+
renderMode = 'disabled';
|
|
160
|
+
} else if (xPattern === 'editable') {
|
|
161
|
+
renderMode = 'edit';
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// x-display = 'hidden' 优先级最高
|
|
165
|
+
if (xDisplay === 'hidden') {
|
|
166
|
+
renderMode = 'hidden';
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// 构建 props: 先设置默认值,再用 x-component-props 覆盖,最后设置 renderMode
|
|
136
170
|
let props: Record<string, any> = {
|
|
137
|
-
|
|
171
|
+
// 默认值
|
|
138
172
|
label: title,
|
|
139
173
|
name,
|
|
140
|
-
renderMode: modeMap[mode] || 'edit',
|
|
141
174
|
allowClear: true,
|
|
142
175
|
placeholder: {
|
|
143
176
|
type: 'i18n',
|
|
@@ -145,10 +178,23 @@ export const createFormItemSchema = (
|
|
|
145
178
|
'zh-CN': '请输入',
|
|
146
179
|
'zh-HK': '請輸入',
|
|
147
180
|
},
|
|
181
|
+
// x-component-props 中的所有字段直接映射,可以覆盖上面的默认值
|
|
182
|
+
...xProps,
|
|
183
|
+
// renderMode 最终计算结果(综合了所有来源)
|
|
184
|
+
renderMode,
|
|
148
185
|
};
|
|
186
|
+
|
|
187
|
+
// 如果 x-component-props 中存在 required 字段,额外添加 requiredobj
|
|
188
|
+
if (xProps?.required !== undefined) {
|
|
189
|
+
props.requiredobj = {
|
|
190
|
+
required: xProps.required,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
|
|
149
194
|
let componentName = xComponent;
|
|
150
195
|
|
|
151
196
|
let childrenSchema: any[] = [];
|
|
197
|
+
let propertiesSchema: Record<string, any> = {};
|
|
152
198
|
|
|
153
199
|
if (item?.interface === 'phone') {
|
|
154
200
|
cptTitle = '电话号码输入';
|
|
@@ -199,6 +245,11 @@ export const createFormItemSchema = (
|
|
|
199
245
|
childrenSchema = jsonChildren.map((child: any) =>
|
|
200
246
|
createFormItemSchema(child, mode)
|
|
201
247
|
);
|
|
248
|
+
// 同时构建 properties 格式
|
|
249
|
+
jsonChildren.forEach((child: any) => {
|
|
250
|
+
const childSchema = createFormItemSchema(child, mode);
|
|
251
|
+
propertiesSchema[child.name] = childSchema;
|
|
252
|
+
});
|
|
202
253
|
} else {
|
|
203
254
|
componentName = 'Input.InputJSON';
|
|
204
255
|
props.autoSize = {
|
|
@@ -284,23 +335,62 @@ export const createFormItemSchema = (
|
|
|
284
335
|
props.defaultValue = null;
|
|
285
336
|
}
|
|
286
337
|
|
|
287
|
-
// 如果设置了x-read-pretty,则设置为只读
|
|
288
|
-
if (readPretty) {
|
|
289
|
-
props.renderMode = 'view';
|
|
290
|
-
}
|
|
291
|
-
|
|
292
338
|
if (xComponent === 'ColorPicker') {
|
|
293
339
|
props.defaultValue = defaultValue;
|
|
294
340
|
}
|
|
295
341
|
|
|
296
342
|
const _componentName = nocobaseCpt2PisellCptMap[componentName];
|
|
297
343
|
|
|
298
|
-
|
|
299
|
-
|
|
344
|
+
// 确定 schema type
|
|
345
|
+
let schemaType: 'void' | 'string' | 'number' | 'object' | 'array' = 'string';
|
|
346
|
+
if (type) {
|
|
347
|
+
schemaType = type as any;
|
|
348
|
+
} else if (xComponent === 'InputNumber' || xComponent === 'Percent') {
|
|
349
|
+
schemaType = 'number';
|
|
350
|
+
} else if (xComponent === 'Input.JSON' || item?.interface === 'i18nInput') {
|
|
351
|
+
schemaType = 'object';
|
|
352
|
+
} else if (['Checkbox.Group', 'Select'].includes(xComponent) && props.mode === 'multiple') {
|
|
353
|
+
schemaType = 'array';
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// 构建完整的 UI Schema 格式
|
|
357
|
+
const schema: any = {
|
|
358
|
+
// 基础属性
|
|
359
|
+
type: schemaType,
|
|
360
|
+
name: name,
|
|
361
|
+
title: title,
|
|
362
|
+
|
|
363
|
+
// 组件相关
|
|
364
|
+
'x-component': _componentName,
|
|
365
|
+
'x-component-props': props,
|
|
366
|
+
|
|
367
|
+
// 包装器 (FormItem 作为 decorator)
|
|
368
|
+
'x-decorator': 'FormItem',
|
|
369
|
+
'x-decorator-props': {
|
|
370
|
+
label: title,
|
|
371
|
+
},
|
|
372
|
+
|
|
373
|
+
// 默认值
|
|
374
|
+
default: defaultValue,
|
|
375
|
+
|
|
376
|
+
// 校验
|
|
377
|
+
...(validator && { 'x-validator': validator }),
|
|
378
|
+
|
|
379
|
+
// children 节点 (兼容旧格式和新格式)
|
|
380
|
+
...(childrenSchema.length > 0 && { children: childrenSchema }),
|
|
381
|
+
...(Object.keys(propertiesSchema).length > 0 && { properties: propertiesSchema }),
|
|
382
|
+
|
|
383
|
+
// 设计器相关 (如果需要)
|
|
384
|
+
// 'x-initializer': undefined,
|
|
385
|
+
// 'x-settings': undefined,
|
|
386
|
+
// 'x-toolbar': undefined,
|
|
387
|
+
|
|
388
|
+
// 兼容旧格式: 保留 componentName 供旧代码使用
|
|
300
389
|
componentName: _componentName,
|
|
301
390
|
props,
|
|
302
|
-
children: childrenSchema,
|
|
303
391
|
};
|
|
392
|
+
|
|
393
|
+
return schema;
|
|
304
394
|
};
|
|
305
395
|
|
|
306
396
|
type FieldOption = {
|
|
@@ -535,7 +625,12 @@ export const getDataSourceVariables = (target: any) => {
|
|
|
535
625
|
};
|
|
536
626
|
|
|
537
627
|
export const getCurrentValueVariables = (target: any) => {
|
|
628
|
+
if (target?.getProps()?.getPropValue('_variables')?.dataSourceValue?.fromSettingMeta) {
|
|
629
|
+
return [];
|
|
630
|
+
}
|
|
631
|
+
|
|
538
632
|
const variables = getParentVariables(target);
|
|
633
|
+
|
|
539
634
|
const currentDataSourceTitle = getVariable(target, 'dataSourceTitle');
|
|
540
635
|
|
|
541
636
|
const currentValueVariables: any[] = [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pisell/materials",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.971",
|
|
4
4
|
"main": "./lib/index.js",
|
|
5
5
|
"module": "./es/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
"vod-js-sdk-v6": "^1.4.11",
|
|
77
77
|
"react-camera-pro": "1.4.0",
|
|
78
78
|
"@pisell/date-picker": "1.0.127",
|
|
79
|
-
"@pisell/
|
|
80
|
-
"@pisell/
|
|
79
|
+
"@pisell/utils": "1.0.55",
|
|
80
|
+
"@pisell/icon": "0.0.10"
|
|
81
81
|
},
|
|
82
82
|
"peerDependencies": {
|
|
83
83
|
"react": "^18.0.0",
|