@cloudbase/weda-ui 3.30.2 → 3.31.1

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 (226) hide show
  1. package/README.md +77 -0
  2. package/dist/configs/components/button.d.ts +4 -5
  3. package/dist/configs/components/calendar.d.ts +1 -1
  4. package/dist/configs/components/chart/bar.d.ts +1 -1
  5. package/dist/configs/components/chart/line.d.ts +1 -1
  6. package/dist/configs/components/chart/pie.d.ts +1 -1
  7. package/dist/configs/components/chart/statisticsCard.d.ts +2 -2
  8. package/dist/configs/components/form-date.d.ts +2 -2
  9. package/dist/configs/components/form-depart-tree-select.d.ts +2 -2
  10. package/dist/configs/components/form-email.d.ts +2 -2
  11. package/dist/configs/components/form-image-uploader.d.ts +2 -2
  12. package/dist/configs/components/form-input.d.ts +4 -4
  13. package/dist/configs/components/form-location.d.ts +6 -6
  14. package/dist/configs/components/form-multi-region.d.ts +2 -2
  15. package/dist/configs/components/form-phone.d.ts +2 -2
  16. package/dist/configs/components/form-region.d.ts +2 -2
  17. package/dist/configs/components/form-select-multiple.d.ts +2 -2
  18. package/dist/configs/components/form-select.d.ts +2 -2
  19. package/dist/configs/components/form-text-area.d.ts +2 -2
  20. package/dist/configs/components/form-time.d.ts +2 -2
  21. package/dist/configs/components/form-url.d.ts +2 -2
  22. package/dist/configs/components/form-user-tree-select.d.ts +2 -2
  23. package/dist/configs/components/grid/col.d.ts +6 -6
  24. package/dist/configs/components/grid/row.d.ts +4 -4
  25. package/dist/configs/components/image.d.ts +4 -4
  26. package/dist/configs/components/link.d.ts +0 -1
  27. package/dist/configs/components/modal.d.ts +0 -1
  28. package/dist/configs/components/qr_code.d.ts +1 -1
  29. package/dist/configs/components/swiper.d.ts +2 -0
  30. package/dist/configs/components/swiper.js +25 -6
  31. package/dist/configs/components/tabs.d.ts +0 -1
  32. package/dist/configs/components/wd-bubble.d.ts +6 -7
  33. package/dist/configs/components/wd-button.d.ts +1 -1
  34. package/dist/configs/components/wd-calendar.d.ts +1 -1
  35. package/dist/configs/components/wd-canvas.d.ts +1 -1
  36. package/dist/configs/components/wd-card.d.ts +0 -1
  37. package/dist/configs/components/wd-cascader.d.ts +9 -9
  38. package/dist/configs/components/wd-checkbox.d.ts +3 -3
  39. package/dist/configs/components/wd-code-editor.d.ts +3 -3
  40. package/dist/configs/components/wd-date-range.d.ts +8 -8
  41. package/dist/configs/components/wd-date.d.ts +8 -8
  42. package/dist/configs/components/wd-department.d.ts +11 -11
  43. package/dist/configs/components/wd-drawer.d.ts +0 -1
  44. package/dist/configs/components/wd-form-arr.d.ts +3 -3
  45. package/dist/configs/components/wd-form-detail.d.ts +2 -2
  46. package/dist/configs/components/wd-form-obj.d.ts +3 -3
  47. package/dist/configs/components/wd-form.d.ts +6 -7
  48. package/dist/configs/components/wd-icon.d.ts +2 -2
  49. package/dist/configs/components/wd-image.d.ts +4 -4
  50. package/dist/configs/components/wd-input-email.d.ts +35 -35
  51. package/dist/configs/components/wd-input-number.d.ts +10 -10
  52. package/dist/configs/components/wd-input-phone.d.ts +37 -35
  53. package/dist/configs/components/wd-input-phone.js +22 -3
  54. package/dist/configs/components/wd-input-url.d.ts +35 -35
  55. package/dist/configs/components/wd-input.d.ts +5 -5
  56. package/dist/configs/components/wd-layout.d.ts +0 -1
  57. package/dist/configs/components/wd-link.d.ts +0 -1
  58. package/dist/configs/components/wd-location.d.ts +5 -5
  59. package/dist/configs/components/wd-member.d.ts +13 -13
  60. package/dist/configs/components/wd-menu-layout.d.ts +6 -7
  61. package/dist/configs/components/wd-modal.d.ts +0 -1
  62. package/dist/configs/components/wd-progress.d.ts +6 -7
  63. package/dist/configs/components/wd-radio.d.ts +3 -3
  64. package/dist/configs/components/wd-rating.d.ts +6 -6
  65. package/dist/configs/components/wd-region.d.ts +9 -9
  66. package/dist/configs/components/wd-rich-text.d.ts +3 -3
  67. package/dist/configs/components/wd-select-multiple.d.ts +10 -10
  68. package/dist/configs/components/wd-select.d.ts +9 -9
  69. package/dist/configs/components/wd-side-tab.d.ts +1 -2
  70. package/dist/configs/components/wd-switch.d.ts +6 -6
  71. package/dist/configs/components/wd-table.d.ts +9 -10
  72. package/dist/configs/components/wd-tag-select.d.ts +7 -7
  73. package/dist/configs/components/wd-text.d.ts +3 -3
  74. package/dist/configs/components/wd-textarea.d.ts +3 -3
  75. package/dist/configs/components/wd-time.d.ts +8 -8
  76. package/dist/configs/components/wd-top-tab.d.ts +1 -2
  77. package/dist/configs/components/wd-tree.d.ts +0 -1
  78. package/dist/configs/components/wd-upload-file.d.ts +5 -5
  79. package/dist/configs/components/wd-upload-image.d.ts +13 -13
  80. package/dist/configs/components/wedaVideo.d.ts +2 -2
  81. package/dist/configs/components/wxOpenApi/phone.d.ts +2 -2
  82. package/dist/configs/components/wxOpenApi/phoneCode.d.ts +1 -1
  83. package/dist/configs/components/wxOpenApi/share.d.ts +2 -2
  84. package/dist/configs/components/wxOpenApi/userInfo.d.ts +4 -4
  85. package/dist/configs/index.d.ts +532 -529
  86. package/dist/configs/type-utils/index.d.ts +1 -1
  87. package/dist/configs/type-utils/type-form.js +2 -2
  88. package/dist/style/index.css +4 -0
  89. package/dist/style/index.scss +1 -1
  90. package/dist/style/weda-ui.min.css +2 -2
  91. package/dist/web/components/chart/common/chart-custom-connector.d.ts +0 -1
  92. package/dist/web/components/flow/common/hooks/useFlowConfig.d.ts +0 -1
  93. package/dist/web/components/flow/modules/basic/Basic.d.ts +0 -1
  94. package/dist/web/components/flow/modules/basic/BasicMobile.d.ts +0 -1
  95. package/dist/web/components/flow/modules/combination/index.d.ts +0 -1
  96. package/dist/web/components/flow/modules/operations/control.d.ts +0 -1
  97. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/index.d.ts +0 -1
  98. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal/view-model.d.ts +0 -1
  99. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal.d.ts +0 -1
  100. package/dist/web/components/flow/modules/operations/controls-items/index.d.ts +0 -1
  101. package/dist/web/components/flow/modules/operations/view-model.d.ts +0 -1
  102. package/dist/web/components/flow/process/constants.d.ts +3 -3
  103. package/dist/web/components/form/enumSelect/NormalSelect.d.ts +0 -1
  104. package/dist/web/components/form/location/common/useLocationInfo.d.ts +0 -1
  105. package/dist/web/components/form/select/h5.d.ts +1 -1
  106. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +2 -2
  107. package/dist/web/components/form/userOrgSelect/component/depart-breadcrumb.d.ts +0 -1
  108. package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.d.ts +0 -1
  109. package/dist/web/components/form/userOrgSelect/component/error-tips.d.ts +0 -1
  110. package/dist/web/components/form/userOrgSelect/component/input-tags.d.ts +0 -1
  111. package/dist/web/components/form/userOrgSelect/component/modal-search-h5.d.ts +0 -1
  112. package/dist/web/components/form/userOrgSelect/component/modal-search.d.ts +0 -1
  113. package/dist/web/components/form/userOrgSelect/component/modal-select-h5.d.ts +0 -1
  114. package/dist/web/components/form/userOrgSelect/component/org-tree-h5.d.ts +0 -1
  115. package/dist/web/components/form/userOrgSelect/component/org-tree.d.ts +0 -1
  116. package/dist/web/components/form/userOrgSelect/component/selected-list-h5.d.ts +0 -1
  117. package/dist/web/components/form/userOrgSelect/component/selected-list.d.ts +0 -1
  118. package/dist/web/components/form/userOrgSelect/component/user-org-list.d.ts +0 -1
  119. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-list-h5.d.ts +0 -1
  120. package/dist/web/components/form/userOrgSelect/component/user-select-pc/error-tips.d.ts +0 -1
  121. package/dist/web/components/form/userOrgSelect/component/user-select-pc/model-user-list.d.ts +0 -1
  122. package/dist/web/components/form/userOrgSelect/component/user-select-pc/org-tree.d.ts +0 -1
  123. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.d.ts +0 -1
  124. package/dist/web/components/form-date/index.d.ts +9 -9
  125. package/dist/web/components/form-depart-tree-select/index.d.ts +9 -9
  126. package/dist/web/components/form-email/index.d.ts +7 -7
  127. package/dist/web/components/form-image-uploader/index.d.ts +9 -9
  128. package/dist/web/components/form-input/index.d.ts +14 -14
  129. package/dist/web/components/form-input-hooks/index.d.ts +1 -1
  130. package/dist/web/components/form-location/index.d.ts +13 -13
  131. package/dist/web/components/form-multi-region/index.d.ts +7 -7
  132. package/dist/web/components/form-phone/index.d.ts +7 -7
  133. package/dist/web/components/form-radio/index.d.ts +7 -7
  134. package/dist/web/components/form-region/index.d.ts +7 -7
  135. package/dist/web/components/form-rich-text/index.d.ts +5 -5
  136. package/dist/web/components/form-select/index.d.ts +12 -12
  137. package/dist/web/components/form-select-multiple/index.d.ts +11 -11
  138. package/dist/web/components/form-switch/index.d.ts +4 -4
  139. package/dist/web/components/form-text-area/index.d.ts +8 -8
  140. package/dist/web/components/form-time/index.d.ts +8 -8
  141. package/dist/web/components/form-upload-file/index.d.ts +10 -10
  142. package/dist/web/components/form-url/index.d.ts +7 -7
  143. package/dist/web/components/form-user-tree-select/index.d.ts +10 -10
  144. package/dist/web/components/grid/col.d.ts +2 -2
  145. package/dist/web/components/grid/row.d.ts +1 -1
  146. package/dist/web/components/lottery/index.d.ts +2 -2
  147. package/dist/web/components/pageLayout/PageContent/index.d.ts +0 -1
  148. package/dist/web/components/phone/index.d.ts +0 -1
  149. package/dist/web/components/phoneCode/index.d.ts +0 -1
  150. package/dist/web/components/share/index.d.ts +0 -1
  151. package/dist/web/components/swiper/index.d.ts +1 -1
  152. package/dist/web/components/swiper/index.js +35 -16
  153. package/dist/web/components/table/BaseTable.d.ts +0 -1
  154. package/dist/web/components/table/FieldRender.d.ts +1 -2
  155. package/dist/web/components/table/FilterFields.d.ts +0 -1
  156. package/dist/web/components/table/Form/Enum.d.ts +0 -1
  157. package/dist/web/components/table/Form/Location.d.ts +0 -1
  158. package/dist/web/components/table/QuoteModal.d.ts +0 -1
  159. package/dist/web/components/table/UserDepartment/ViewCell.d.ts +0 -1
  160. package/dist/web/components/table/UserDepartment/utils.d.ts +0 -1
  161. package/dist/web/components/userInfo/index.d.ts +0 -1
  162. package/dist/web/components/wd-calendar/MonthSelect.d.ts +0 -1
  163. package/dist/web/components/wd-code-editor/lang/index.d.ts +1 -1
  164. package/dist/web/components/wd-config-provider/wd-config-context.d.ts +1 -1
  165. package/dist/web/components/wd-date/elements/interface.d.ts +1 -1
  166. package/dist/web/components/wd-department/_design/wd-department-select.d.ts +0 -1
  167. package/dist/web/components/wd-form/hooks/use-auth-value.d.ts +1 -0
  168. package/dist/web/components/wd-form/hooks/use-auth-value.js +3 -1
  169. package/dist/web/components/wd-form/hooks/use-remote-value.js +39 -8
  170. package/dist/web/components/wd-form/index.js +35 -1
  171. package/dist/web/components/wd-form/wd-form.d.ts +0 -1
  172. package/dist/web/components/wd-form-cell/wd-form-cell.d.ts +0 -1
  173. package/dist/web/components/wd-form-item/wd-input-group.d.ts +0 -1
  174. package/dist/web/components/wd-form-item/wd-input-wrap.d.ts +0 -1
  175. package/dist/web/components/wd-image/ImagePreview.d.ts +0 -1
  176. package/dist/web/components/wd-input/wd-input.d.ts +23 -23
  177. package/dist/web/components/wd-input-email/wd-input-email.d.ts +15 -15
  178. package/dist/web/components/wd-input-group/wd-input-group.d.ts +0 -1
  179. package/dist/web/components/wd-input-phone/wd-input-phone.d.ts +23 -23
  180. package/dist/web/components/wd-input-url/wd-input-url.d.ts +15 -15
  181. package/dist/web/components/wd-layout/wd-layout.d.ts +0 -1
  182. package/dist/web/components/wd-location/_design/wd-location.d.ts +0 -1
  183. package/dist/web/components/wd-member/_design/wd-member-select.d.ts +0 -1
  184. package/dist/web/components/wd-radio/wd-radio.d.ts +0 -1
  185. package/dist/web/components/wd-region/_design/wd-region.d.ts +0 -1
  186. package/dist/web/components/wd-retry/wd-retry.d.ts +0 -1
  187. package/dist/web/components/wd-select/_design/wd-select.d.ts +0 -1
  188. package/dist/web/components/wd-select/hooks/useChooseList.d.ts +1 -1
  189. package/dist/web/components/wd-select/relationSelect/relationalSetting.d.ts +0 -1
  190. package/dist/web/components/wd-table/components/ExportFileModalByApi/index.d.ts +0 -1
  191. package/dist/web/components/wd-table/components/FieldRender/Form/Enum.d.ts +0 -1
  192. package/dist/web/components/wd-table/components/FieldRender/Form/Location.d.ts +0 -1
  193. package/dist/web/components/wd-table/components/FieldRender/ImagePreview.d.ts +0 -1
  194. package/dist/web/components/wd-table/components/FieldRender/QuoteModal.d.ts +0 -1
  195. package/dist/web/components/wd-table/components/FieldRender/UserDepartment/ViewCell.d.ts +0 -1
  196. package/dist/web/components/wd-table/components/FieldRender/UserDepartment/utils.d.ts +0 -1
  197. package/dist/web/components/wd-table/components/FieldRender/index.d.ts +3 -2
  198. package/dist/web/components/wd-table/components/FieldRender/index.js +6 -3
  199. package/dist/web/components/wd-table/components/FilterFieldsPanel/Fields.d.ts +0 -1
  200. package/dist/web/components/wd-table/components/FilterFieldsPanel/FilterFieldItem.d.ts +0 -1
  201. package/dist/web/components/wd-table/components/FilterFieldsPanel/InputAdornment.d.ts +0 -1
  202. package/dist/web/components/wd-table/components/FilterFieldsPanel/SelectSearch.d.ts +0 -1
  203. package/dist/web/components/wd-table/components/FilterFieldsPanel/filterFieldsGenerate.js +24 -1
  204. package/dist/web/components/wd-table/components/FilterFieldsPanel/index.js +187 -168
  205. package/dist/web/components/wd-table/components/ImportFileModalByApi/index.d.ts +0 -1
  206. package/dist/web/components/wd-table/components/InOrOutRecordModal.d.ts +0 -1
  207. package/dist/web/components/wd-table/components/Pagination/index.d.ts +0 -1
  208. package/dist/web/components/wd-table/components/SearchBox/index.d.ts +0 -1
  209. package/dist/web/components/wd-table/hooks/useAuthFields.d.ts +1 -0
  210. package/dist/web/components/wd-table/hooks/useAuthFields.js +12 -4
  211. package/dist/web/components/wd-table/hooks/useTableData.js +4 -4
  212. package/dist/web/components/wd-table/wd-table.js +3 -1
  213. package/dist/web/components/wd-tabs/tabs-h5.d.ts +0 -1
  214. package/dist/web/components/wd-tabs/tabs-pc.d.ts +0 -1
  215. package/dist/web/components/wd-tabs/tabs.d.ts +0 -1
  216. package/dist/web/components/wd-tag/_design.d.ts +0 -1
  217. package/dist/web/components/wd-tree/utils.d.ts +19 -19
  218. package/dist/web/components/wd-upload-file/_design/wd-upload-file.d.ts +0 -1
  219. package/dist/web/components/wd-upload-image/_design/wd-upload-image.d.ts +0 -1
  220. package/dist/web/utils/config-context/use-config.d.ts +1 -1
  221. package/dist/web/utils/datasource.d.ts +1 -0
  222. package/dist/web/utils/datasource.js +13 -25
  223. package/dist/web/utils/getPageQuery.d.ts +0 -1
  224. package/dist/web/utils/i18n/locale/en_US.d.ts +0 -1
  225. package/dist/web/utils/i18n/locale/zh_CN.d.ts +0 -1
  226. package/package.json +8 -4
@@ -7,26 +7,26 @@ export type FormSelectMultipleProps = CommonPropsType & DataType & {
7
7
  readOnly: boolean;
8
8
  } & EventsType;
9
9
  declare const FormSelectMultiple: React.ForwardRefExoticComponent<CommonPropsType & {
10
- size: "l" | "m" | "s" | "full";
10
+ name: string;
11
+ label: string;
11
12
  format: "many-many" | "one-many";
12
13
  value: string[];
13
- label: string;
14
- disabled: boolean;
15
- name: string;
16
14
  required: boolean;
17
- viewId: string;
18
- dataSourceName: string;
19
- labelVisible: boolean;
15
+ size: "s" | "m" | "l" | "full";
16
+ disabled: boolean;
17
+ placeholder: string;
18
+ layout: "" | "horizontal" | "vertical";
20
19
  range: {
21
- value: string;
22
20
  label: string;
21
+ value: string;
23
22
  }[];
23
+ dataSourceName: string;
24
+ tipBlock: string;
25
+ labelVisible: boolean;
24
26
  requiredFlag: boolean;
25
27
  requiredMsg: string;
26
- layout: "" | "horizontal" | "vertical";
27
- tipBlock: string;
28
+ viewId: string;
28
29
  enumName: string;
29
- placeholder: string;
30
30
  primaryField: string;
31
31
  } & {
32
32
  onChange: (v: DataType['value']) => void;
@@ -7,15 +7,15 @@ export type FormSwitchProps = CommonPropsType & DataType & {
7
7
  readOnly: boolean;
8
8
  } & EventsType;
9
9
  declare const FormSwitch: React.ForwardRefExoticComponent<CommonPropsType & {
10
- value: boolean;
11
- label: string;
12
- disabled: boolean;
13
10
  name: string;
11
+ label: string;
12
+ value: boolean;
14
13
  required: boolean;
14
+ disabled: boolean;
15
+ layout: "" | "horizontal" | "vertical";
15
16
  labelVisible: boolean;
16
17
  requiredFlag: boolean;
17
18
  requiredMsg: string;
18
- layout: "" | "horizontal" | "vertical";
19
19
  } & {
20
20
  onChange: (v: DataType['value']) => void;
21
21
  disabled: boolean;
@@ -7,20 +7,20 @@ export type FormTextAreaProps = CommonPropsType & DataType & {
7
7
  readOnly: boolean;
8
8
  } & EventsType;
9
9
  declare const FormTextArea: React.ForwardRefExoticComponent<CommonPropsType & {
10
- size: "l" | "m" | "s" | "full";
11
- value: string;
12
- label: string;
13
- disabled: boolean;
14
10
  name: string;
11
+ label: string;
12
+ focus: boolean;
13
+ value: string;
15
14
  required: boolean;
15
+ size: "s" | "m" | "l" | "full";
16
+ disabled: boolean;
16
17
  maxLength: number;
18
+ placeholder: string;
19
+ layout: "" | "horizontal" | "vertical";
17
20
  labelVisible: boolean;
21
+ counterVisible: boolean;
18
22
  requiredFlag: boolean;
19
23
  requiredMsg: string;
20
- layout: "" | "horizontal" | "vertical";
21
- placeholder: string;
22
- focus: boolean;
23
- counterVisible: boolean;
24
24
  } & {
25
25
  onChange: (v: string) => void;
26
26
  disabled: boolean;
@@ -7,20 +7,20 @@ export type FormTimeProps = CommonPropsType & DataType & {
7
7
  readOnly: boolean;
8
8
  } & EventsType;
9
9
  declare const FormTime: React.ForwardRefExoticComponent<CommonPropsType & {
10
- size: "l" | "m" | "s" | "full";
11
- value: string;
12
- label: string;
13
- disabled: boolean;
14
10
  name: string;
11
+ label: string;
12
+ value: string;
15
13
  required: boolean;
14
+ size: "s" | "m" | "l" | "full";
15
+ disabled: boolean;
16
+ placeholder: string;
17
+ end: string;
18
+ start: string;
19
+ layout: "" | "horizontal" | "vertical";
16
20
  clearable: boolean;
17
21
  labelVisible: boolean;
18
22
  requiredFlag: boolean;
19
23
  requiredMsg: string;
20
- layout: "" | "horizontal" | "vertical";
21
- placeholder: string;
22
- start: string;
23
- end: string;
24
24
  } & {
25
25
  onChange: (v: DataType['value']) => void;
26
26
  disabled: boolean;
@@ -7,22 +7,22 @@ export type FormUploadFileProps = CommonPropsType & DataType & {
7
7
  readOnly: boolean;
8
8
  } & EventsType;
9
9
  declare const FormUploadFile: React.ForwardRefExoticComponent<CommonPropsType & {
10
- value: string[];
11
- label: string;
12
- disabled: boolean;
13
10
  name: string;
11
+ label: string;
12
+ value: string[];
14
13
  required: boolean;
15
- labelVisible: boolean;
16
- requiredFlag: boolean;
17
- requiredMsg: string;
14
+ disabled: boolean;
18
15
  layout: "" | "horizontal" | "vertical";
19
- acceptTypes: string[];
20
- maxSize: number;
21
- maxUploadCount: number;
22
16
  single: boolean;
23
- disableMultiSwitch: boolean;
17
+ maxUploadCount: number;
18
+ labelVisible: boolean;
24
19
  downloadVisible: boolean;
25
20
  deleteVisible: boolean;
21
+ acceptTypes: string[];
22
+ maxSize: number;
23
+ requiredFlag: boolean;
24
+ requiredMsg: string;
25
+ disableMultiSwitch: boolean;
26
26
  } & {
27
27
  value: string | string[];
28
28
  } & {
@@ -7,20 +7,20 @@ export type PropsType = CommonPropsType & DataType & {
7
7
  readOnly: boolean;
8
8
  } & EventsType;
9
9
  declare const FormUrl: React.ForwardRefExoticComponent<CommonPropsType & {
10
- size: "l" | "m" | "s" | "full";
11
- value: string;
12
- label: string;
13
- disabled: boolean;
14
10
  name: string;
11
+ label: string;
12
+ focus: boolean;
13
+ value: string;
15
14
  required: boolean;
15
+ size: "s" | "m" | "l" | "full";
16
+ disabled: boolean;
16
17
  maxLength: number;
18
+ placeholder: string;
19
+ layout: "" | "horizontal" | "vertical";
17
20
  clearable: boolean;
18
21
  labelVisible: boolean;
19
22
  requiredFlag: boolean;
20
23
  requiredMsg: string;
21
- layout: "" | "horizontal" | "vertical";
22
- placeholder: string;
23
- focus: boolean;
24
24
  } & {
25
25
  onChange: (v: string) => void;
26
26
  disabled: boolean;
@@ -7,23 +7,23 @@ export type FormUserTreeSelectProps = CommonPropsType & DataType & {
7
7
  readOnly: boolean;
8
8
  } & EventsType;
9
9
  declare const FormUserTreeSelect: React.ForwardRefExoticComponent<CommonPropsType & {
10
- size: "l" | "m" | "s" | "full";
11
- value: string;
12
- label: string;
13
- disabled: boolean;
14
10
  name: string;
11
+ label: string;
12
+ value: string;
15
13
  required: boolean;
14
+ size: "s" | "m" | "l" | "full";
15
+ disabled: boolean;
16
+ placeholder: string;
17
+ layout: "" | "horizontal" | "vertical";
18
+ multiple: boolean;
16
19
  where: any[];
17
20
  labelVisible: boolean;
21
+ secondDisplay: string;
22
+ corpScope: string[];
18
23
  requiredFlag: boolean;
19
24
  requiredMsg: string;
20
- layout: "" | "horizontal" | "vertical";
21
- placeholder: string;
22
- defaultValueType: "noneUser" | "confirmUser" | "loginUser";
23
25
  confirmValue: string;
24
- multiple: boolean;
25
- secondDisplay: string;
26
- corpScope: string[];
26
+ defaultValueType: "noneUser" | "confirmUser" | "loginUser";
27
27
  } & {
28
28
  onChange: (v: DataType['value']) => void;
29
29
  disabled: boolean;
@@ -3,11 +3,11 @@ import type { CommonPropsType } from '../../types';
3
3
  import './style';
4
4
  declare const _default: React.ForwardRefExoticComponent<CommonPropsType & {
5
5
  alignSelf?: string;
6
- widthType: ("auto-fill" | "fit-content" | (1 | "1") | ("2" | 2) | (3 | "3") | ("4" | 4) | ("5" | 5) | (6 | "6") | (7 | "7") | (8 | "8") | (9 | "9") | (10 | "10") | (11 | "11") | (12 | "12")) | {
6
+ widthType: ("fit-content" | "auto-fill" | (1 | "1") | (2 | "2") | (3 | "3") | (4 | "4") | (5 | "5") | (6 | "6") | (7 | "7") | (8 | "8") | (9 | "9") | (10 | "10") | (11 | "11") | (12 | "12")) | {
7
7
  type: string;
8
8
  value: string;
9
9
  };
10
- lgWidthType: ("auto-fill" | "fit-content" | (1 | "1") | ("2" | 2) | (3 | "3") | ("4" | 4) | ("5" | 5) | (6 | "6") | (7 | "7") | (8 | "8") | (9 | "9") | (10 | "10") | (11 | "11") | (12 | "12")) | {
10
+ lgWidthType: ("fit-content" | "auto-fill" | (1 | "1") | (2 | "2") | (3 | "3") | (4 | "4") | (5 | "5") | (6 | "6") | (7 | "7") | (8 | "8") | (9 | "9") | (10 | "10") | (11 | "11") | (12 | "12")) | {
11
11
  type: string;
12
12
  value: string;
13
13
  };
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import type { CommonPropsType } from '../../types';
3
3
  import './style';
4
4
  declare const _default: React.ForwardRefExoticComponent<CommonPropsType & {
5
- alignItems?: "start" | "end" | "center";
5
+ alignItems?: "center" | "end" | "start";
6
6
  gutterX: string;
7
7
  } & {
8
8
  events: {
@@ -6,12 +6,12 @@ type TCompRef = ICompRef<{
6
6
  start: () => void;
7
7
  }>;
8
8
  declare const _default: React.ForwardRefExoticComponent<CommonPropsType & {
9
+ duration: number;
9
10
  prizeList: {
10
- image: string;
11
11
  title: string;
12
+ image: string;
12
13
  }[];
13
14
  enablePrize: boolean;
14
- duration: number;
15
15
  prizeResult: string;
16
16
  } & {
17
17
  events: {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { CommonPropsType } from '../../../types';
3
2
  import './style';
4
3
  interface IPageContent extends CommonPropsType {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import '../style';
3
2
  import type { CommonPropsType } from '../../types';
4
3
  import type { DataType } from '../../../configs/components/wxOpenApi/phone';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ButtonProps } from '../../components/button';
3
2
  import type { FromSchema } from 'json-schema-to-ts';
4
3
  import type CompConfig from '../../../configs/components/wxOpenApi/phoneCode';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import '../style';
3
2
  import type { ButtonProps } from '../../components/button';
4
3
  import type { DataType } from '../../../configs/components/wxOpenApi/share';
@@ -4,4 +4,4 @@ import type { DataType } from '../../../configs/components/swiper';
4
4
  import './style';
5
5
  export interface SwiperPropsType extends CommonPropsType, DataType {
6
6
  }
7
- export default function Swiper({ children, className, style, autoplay, circular, vertical, indicatorDots, indicatorColor, indicatorActiveColor, duration, interval, current, events, id, loop, }: SwiperPropsType): JSX.Element;
7
+ export default function Swiper({ children, className, style, autoplay, circular, vertical, indicatorDots, indicatorColor, indicatorActiveColor, duration, interval, current, events, id, loop: loopProp, circularEnabled, }: SwiperPropsType): JSX.Element;
@@ -8,13 +8,30 @@ import useDebouncedCallback from '../../utils/hooks/use-debounced-callback';
8
8
  import { emptyObject, noop } from '../../utils/constant';
9
9
  import './style';
10
10
  import { useSyncValue } from '../../utils/hooks/useSyncValue';
11
- export default function Swiper({ children, className, style, autoplay = true, circular = true, vertical = false, indicatorDots, indicatorColor = 'rgba(200, 200, 200, 0.9)', indicatorActiveColor = 'rgba(0, 0, 0, 0.9)', duration = 500, interval = 5000, current = 0, events = emptyObject, id, loop = true, }) {
11
+ export default function Swiper({ children, className, style, autoplay = true, circular, vertical = false, indicatorDots, indicatorColor = 'rgba(200, 200, 200, 0.9)', indicatorActiveColor = 'rgba(0, 0, 0, 0.9)', duration = 500, interval = 5000, current = 0, events = emptyObject, id, loop: loopProp, circularEnabled, }) {
12
+ // 循环切换字段优先级(解开 loop/circular 历史死结):
13
+ // 1. circularEnabled —— 新增统一字段,仅当用户在编辑器主动开启/关闭时才有值。最高优先级
14
+ // 2. loopProp —— 历史 Web 字段,存量 Web 项目可能配过 loop=false
15
+ // 3. circular —— 历史 MP 字段,存量 MP 项目可能配过 circular=false
16
+ // 4. true —— 全部缺省时默认开启循环(保持原默认行为)
17
+ // 这种"新字段一旦显式有值就覆盖老字段"的模式可以彻底避免存量项目行为反转,
18
+ // 也能让老用户通过新字段干净地修改循环行为,无需手工清理 DSL。
19
+ const loop = circularEnabled !== undefined
20
+ ? circularEnabled
21
+ : loopProp !== undefined
22
+ ? loopProp
23
+ : circular !== undefined
24
+ ? circular
25
+ : true;
12
26
  const originChildrenRef = useRef(null);
13
27
  const [realChildren, setRealChildren] = useState(children);
14
28
  const itemCount = React.Children.count(realChildren);
15
29
  current = Math.max(0, Math.min(itemCount - 1, current));
16
30
  const [currentIndex, setCurrentIndex] = useSyncValue(current);
17
- const [swipeStyle, setSwipeStyle] = useState(null);
31
+ // 初始偏移:布局为 [最后克隆] [1] [2] ... [n] [第一克隆],第一张在索引 1,偏移 100%
32
+ const [swipeStyle, setSwipeStyle] = useState({
33
+ transform: vertical ? `translate3d(0, -${(current + 1) * 100}%, 0)` : `translate3d(-${(current + 1) * 100}%, 0, 0)`,
34
+ });
18
35
  const [height, setHeight] = useState(0);
19
36
  const { change = () => { } } = events;
20
37
  useEffect(() => {
@@ -67,7 +84,9 @@ export default function Swiper({ children, className, style, autoplay = true, ci
67
84
  cleanupTimeout();
68
85
  pre.index = currentIndex;
69
86
  };
70
- }, [currentIndex, vertical]);
87
+ // loop 加入依赖:用户在编辑器热切换 circularEnabled / loop / circular 时,
88
+ // 需要立即按新的循环开关重算 swipeStyle,否则要等下次切换才能生效。
89
+ }, [currentIndex, vertical, loop]);
71
90
  const outerWrapRef = useRef();
72
91
  useEventListener(outerWrapRef, 'load', (e) => {
73
92
  setHeight(e.target.clientHeight);
@@ -82,24 +101,23 @@ export default function Swiper({ children, className, style, autoplay = true, ci
82
101
  setCurrentIndex(index);
83
102
  };
84
103
  // 设置容器样式、动画
85
- // TODO fix settimeout mess
104
+ // 布局:[最后克隆] [1] [2] ... [n] [第一克隆],偏移基数为 (to + 1) * 100%
105
+ // 与 Carousel 保持一致
86
106
  const updateSwipeStyle = (to, cur, length) => {
87
107
  if (to === cur)
88
108
  return noop;
89
109
  let timeout = null;
90
- // 最后向前到最开始
110
+ // 最后向前到最开始(正向循环)
91
111
  if (to === 0 && cur === length - 1) {
92
- circular &&
112
+ loop &&
93
113
  setSwipeStyle({
94
114
  transform: `translate3d(0, 0, 0)`,
95
115
  });
96
- // 不知道
97
116
  // eslint-disable-next-line rulesdir/no-timer
98
117
  timeout = setTimeout(() => {
99
118
  setSwipeStyle({
100
- transform: vertical ? `translate3d(0, -0%, 0)` : `translate3d(-0%, 0, 0)`,
119
+ transform: vertical ? `translate3d(0, -100%, 0)` : `translate3d(-100%, 0, 0)`,
101
120
  transitionDuration: `${duration}ms`,
102
- transitionProperty: 'transform',
103
121
  });
104
122
  }, 50);
105
123
  return () => {
@@ -108,16 +126,16 @@ export default function Swiper({ children, className, style, autoplay = true, ci
108
126
  }
109
127
  };
110
128
  }
111
- // 第一个后退到最后
129
+ // 第一个后退到最后(反向循环)
112
130
  if (to === length - 1 && cur === 0) {
113
- circular &&
131
+ loop &&
114
132
  setSwipeStyle({
115
- transform: vertical ? `translate3d(0, -${to * 100}%, 0)` : `translate3d(-${to * 100}%, 0, 0)`,
133
+ transform: vertical ? `translate3d(0, -${(to + 2) * 100}%, 0)` : `translate3d(-${(to + 2) * 100}%, 0, 0)`,
116
134
  });
117
135
  // eslint-disable-next-line rulesdir/no-timer
118
136
  timeout = setTimeout(() => {
119
137
  setSwipeStyle({
120
- transform: vertical ? `translate3d(0, -${to * 100}%, 0)` : `translate3d(-${to * 100}%, 0, 0)`,
138
+ transform: vertical ? `translate3d(0, -${(to + 1) * 100}%, 0)` : `translate3d(-${(to + 1) * 100}%, 0, 0)`,
121
139
  transitionDuration: `${duration}ms`,
122
140
  });
123
141
  }, 50);
@@ -127,8 +145,9 @@ export default function Swiper({ children, className, style, autoplay = true, ci
127
145
  }
128
146
  };
129
147
  }
148
+ // 普通切换
130
149
  const style = {
131
- transform: vertical ? `translate3d(0, -${to * 100}%, 0)` : `translate3d(-${to * 100}%, 0, 0)`,
150
+ transform: vertical ? `translate3d(0, -${(to + 1) * 100}%, 0)` : `translate3d(-${(to + 1) * 100}%, 0, 0)`,
132
151
  };
133
152
  if (to !== cur) {
134
153
  style.transitionDuration = `${duration}ms`;
@@ -154,9 +173,9 @@ export default function Swiper({ children, className, style, autoplay = true, ci
154
173
  vertical && setIndex(currentIndex - 1);
155
174
  }, onSwipeUp: () => {
156
175
  vertical && setIndex(currentIndex + 1);
157
- }, children: [React.Children.map(realChildren, (x, i) => {
176
+ }, children: [_jsx(SwiperItem, { height: height, setHeight: setHeight, currentIndex: currentIndex, index: itemCount - 1, useless: true, children: React.Children.toArray(realChildren)[itemCount - 1] }), React.Children.map(realChildren, (x, i) => {
158
177
  return (_jsx(SwiperItem, { height: height, setHeight: setHeight, currentIndex: currentIndex, index: i, children: x }));
159
- }), _jsx(SwiperItem, { height: height, setHeight: setHeight, currentIndex: 0, index: 0, useless: true, children: React.Children.map(realChildren, (x) => x)[0] })] })) : null, indicatorDots ? (_jsx("div", { className: "g-swiper__pagination", children: React.Children.map(realChildren, (x, i) => {
178
+ }), _jsx(SwiperItem, { height: height, setHeight: setHeight, currentIndex: 0, index: 0, useless: true, children: React.Children.toArray(realChildren)[0] })] })) : null, indicatorDots ? (_jsx("div", { className: "g-swiper__pagination", children: React.Children.map(realChildren, (x, i) => {
160
179
  return (_jsx("a", { href: "#", className: "g-swiper__pagination-bulletm", style: {
161
180
  backgroundColor: currentIndex === i ? indicatorActiveColor : indicatorColor,
162
181
  }, onClick: (e) => {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './style';
3
2
  /**
4
3
  * 基础表格
@@ -1,10 +1,9 @@
1
- /// <reference types="react" />
2
1
  /**
3
2
  * 根据类型获取展示字段组件的 render 方法,用于表格/详情中的值转换
4
3
  * extra: { modelType: 'list' | 'detail' | 'update' | 'create', showTip: boolean }
5
4
  * 表格中的字符串/枚举数组,详情中的字符串数组会截断并showTip
6
5
  */
7
- export declare function getFieldRender(field?: any, extra?: any): (val: any) => "-" | JSX.Element;
6
+ export declare function getFieldRender(field?: any, extra?: any): (val: any) => JSX.Element | "-";
8
7
  /**
9
8
  * object类型,展示表单组件
10
9
  */
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const FilterFieldsPanel: ({ data, getChooseList, fetchData, isH5, }: {
3
2
  data: any;
4
3
  getChooseList: any;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const EnumSelect: (props: any) => JSX.Element;
3
2
  export declare const formatEnum: (value: any, field: any, enumOptions: any) => any;
4
3
  export declare const EnumView: (props: any) => any;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './style';
3
2
  export declare const locationProperties: {
4
3
  address: {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  /**
3
2
  * 引用类型显示弹窗
4
3
  * @description 使用组件方式编写,避免数据流中断
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './style';
3
2
  export declare const ViewCell: ({ data, showType, relation }: {
4
3
  data: any;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const parentIcon: ({ expanded }: {
3
2
  expanded: any;
4
3
  }) => JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import '../style';
3
2
  import type { ButtonProps } from '../../components/button';
4
3
  import type { CommonPropsType } from '../../types';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface IMonthSelect {
3
2
  value?: any;
4
3
  onChange?: any;
@@ -14,7 +14,7 @@ export declare const langs: {
14
14
  markdown: () => import("@codemirror/language").LanguageSupport;
15
15
  };
16
16
  /** Language list */
17
- export declare const langNames: ("jsx" | "javascript" | "typescript" | "mongodb" | "sql" | "mysql" | "json" | "markdown" | "tsx")[];
17
+ export declare const langNames: ("json" | "javascript" | "typescript" | "mongodb" | "sql" | "mysql" | "markdown" | "jsx" | "tsx")[];
18
18
  export type LanguageName = keyof typeof langs;
19
19
  export declare function loadLanguage(name: LanguageName): import("@codemirror/language").LanguageSupport;
20
20
  export declare function format(value: any): Promise<any>;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  export declare const DEFAULT_CLASS_PREFIX: string;
3
- export declare const DEFAULT_LOCALE: "en" | "zh";
3
+ export declare const DEFAULT_LOCALE: "zh" | "en";
4
4
  export interface Config {
5
5
  /**
6
6
  * 组件类名前缀
@@ -1,5 +1,5 @@
1
- /// <reference types="react" />
2
1
  /// <reference types="moment" />
2
+ /// <reference types="react" />
3
3
  import type { DataType } from '../../../../configs/components/wd-date';
4
4
  type IDateValue = number | string | moment.Moment;
5
5
  export interface IDatePickerOptions {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { CommonPropsType } from '../../../types';
3
2
  export declare const WdDepartmentSelect: () => JSX.Element;
4
3
  export interface WdDepartmentSelectProps extends CommonPropsType {
@@ -11,5 +11,6 @@ type BoolSetter = (val: boolean) => void;
11
11
  export declare const createSetStateForAuth: (setters: {
12
12
  setVisible: BoolSetter;
13
13
  setReadOnly: BoolSetter;
14
+ unregister?: () => void;
14
15
  }) => (value: 'n' | 'rw' | 'r') => "rw" | "r" | "n";
15
16
  export {};
@@ -26,10 +26,12 @@ export function useAuthValue({ isDataModel, dataSourceName, }) {
26
26
  return authValue;
27
27
  }
28
28
  export const createSetStateForAuth = (setters) => {
29
- const { setReadOnly, setVisible } = setters;
29
+ const { setReadOnly, setVisible, unregister } = setters;
30
30
  return (value) => {
31
31
  if (value === 'n') {
32
32
  setVisible === null || setVisible === void 0 ? void 0 : setVisible(false);
33
+ // 无权限时取消注册,从表单容器移除
34
+ unregister === null || unregister === void 0 ? void 0 : unregister();
33
35
  }
34
36
  else if (value === 'r') {
35
37
  setVisible === null || setVisible === void 0 ? void 0 : setVisible(true);
@@ -2,6 +2,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react';
2
2
  import { debug } from '../../../utils/console';
3
3
  // import { usePlatform } from '../../../utils/platform';
4
4
  // import { alertError } from '../../form/form';
5
+ import { convertMoment } from '../../../utils/hooks/useFormLegacy';
5
6
  import { useTimeoutEffect } from '@react-hookz/web';
6
7
  import useSWR from 'swr';
7
8
  import { emptyObject } from '../../../utils/constant';
@@ -182,6 +183,21 @@ const SINGLE_SELECT_FORMATS = [
182
183
  'one-one-r',
183
184
  ];
184
185
  const MULTI_SELECT_FORMATS = ['many-many', 'one-many'];
186
+ // 判断关联关系字段是否有有效值(排除 null, undefined, '', {}, [])
187
+ function isValidRelationValue(value) {
188
+ if (value === null || value === undefined || value === '') {
189
+ return false;
190
+ }
191
+ // 排除空对象 {}
192
+ if (typeof value === 'object' && !Array.isArray(value) && Object.keys(value).length === 0) {
193
+ return false;
194
+ }
195
+ // 排除空数组 []
196
+ if (Array.isArray(value) && value.length === 0) {
197
+ return false;
198
+ }
199
+ return true;
200
+ }
185
201
  export function useInitValueFromRemote(dataSourceType, dataSourceProfile, fetchedInitialValues) {
186
202
  return useSWR(() => {
187
203
  if ((dataSourceType === 'expression' || dataSourceProfile) && fetchedInitialValues) {
@@ -195,8 +211,9 @@ export function useInitValueFromRemote(dataSourceType, dataSourceProfile, fetche
195
211
  return fetchedInitialValues;
196
212
  }
197
213
  const result = Object.keys(fetchedInitialValues).reduce((acc, field) => {
198
- var _a, _b, _c, _d, _e, _f, _g;
214
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
199
215
  const format = (_c = (_b = (_a = dataSourceProfile.schema) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b[field]) === null || _c === void 0 ? void 0 : _c.format;
216
+ const type = (_f = (_e = (_d = dataSourceProfile.schema) === null || _d === void 0 ? void 0 : _d.properties) === null || _e === void 0 ? void 0 : _e[field]) === null || _f === void 0 ? void 0 : _f.type;
200
217
  acc[field] = fetchedInitialValues[field];
201
218
  // 统一文档型数据库和mysql数据库返回:
202
219
  // 结论如下:
@@ -204,14 +221,26 @@ export function useInitValueFromRemote(dataSourceType, dataSourceProfile, fetche
204
221
  // one-one, many-one, one-one-r 返回对象{_id:'xxx'}
205
222
  // one-many, many-many, 返回对象数组[{_id:'xxx'}]
206
223
  // 没有值 返回 null,"",或者不返回
207
- if (['father-son', 'related'].includes(format) && ((_d = fetchedInitialValues[field]) === null || _d === void 0 ? void 0 : _d['_id'])) {
208
- acc[field] = (_e = fetchedInitialValues[field]) === null || _e === void 0 ? void 0 : _e['_id'];
224
+ if (['father-son', 'related'].includes(format) && ((_g = fetchedInitialValues[field]) === null || _g === void 0 ? void 0 : _g['_id'])) {
225
+ acc[field] = (_h = fetchedInitialValues[field]) === null || _h === void 0 ? void 0 : _h['_id'];
209
226
  }
227
+ // 单选关联:正常返回 { _id } / {} / null;历史/异常情况下可能是字符串 'xxx',透传保留
210
228
  if ([...SINGLE_SELECT_FORMATS].includes(format)) {
211
- acc[field] = (_f = fetchedInitialValues[field]) === null || _f === void 0 ? void 0 : _f['_id'];
229
+ const v = fetchedInitialValues[field];
230
+ if (v && typeof v === 'object' && !Array.isArray(v)) {
231
+ acc[field] = v === null || v === void 0 ? void 0 : v['_id'];
232
+ }
233
+ // 非对象(字符串/null/undefined)情况下保留 acc[field] = fetchedInitialValues[field](已在上方赋值)
212
234
  }
213
235
  if (MULTI_SELECT_FORMATS.includes(format)) {
214
- acc[field] = (_g = fetchedInitialValues[field]) === null || _g === void 0 ? void 0 : _g.map((item) => item === null || item === void 0 ? void 0 : item['_id']);
236
+ acc[field] = (_j = fetchedInitialValues[field]) === null || _j === void 0 ? void 0 : _j.map((item) => item === null || item === void 0 ? void 0 : item['_id']);
237
+ }
238
+ const fieldValue = fetchedInitialValues[field];
239
+ if (fieldValue && Object.prototype.hasOwnProperty.call(fieldValue, '$date') && type === 'number') {
240
+ acc[field] = (_l = (_k = convertMoment(fieldValue)) === null || _k === void 0 ? void 0 : _k.valueOf()) !== null && _l !== void 0 ? _l : null;
241
+ }
242
+ if (['date', 'datetime'].includes(format) && type === 'number') {
243
+ acc[field] = (_o = (_m = convertMoment(fieldValue)) === null || _m === void 0 ? void 0 : _m.valueOf()) !== null && _o !== void 0 ? _o : null;
215
244
  }
216
245
  return acc;
217
246
  }, {});
@@ -231,14 +260,16 @@ export function useRemoteParamsFromValue({ dataSourceProfile, formData, formType
231
260
  return ['useRemoteParamsFromValueParams', dataSourceProfile, formType, formData];
232
261
  }, () => {
233
262
  const data = Object.keys(formData).reduce((acc, cur) => {
234
- var _a, _b, _c, _d;
263
+ var _a, _b, _c;
235
264
  const format = (_c = (_b = (_a = dataSourceProfile.schema) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b[cur]) === null || _c === void 0 ? void 0 : _c.format;
236
265
  acc[cur] = formData[cur];
237
266
  if (SINGLE_SELECT_FORMATS.includes(format)) {
238
- acc[cur] = { _id: formData[cur] };
267
+ // 空值(null/undefined/''/{})时不转换,保持 null,避免提交 { _id: null } 或 { _id: {} }
268
+ acc[cur] = isValidRelationValue(formData[cur]) ? { _id: formData[cur] } : null;
239
269
  }
240
270
  if (MULTI_SELECT_FORMATS.includes(format)) {
241
- acc[cur] = (_d = acc[cur]) === null || _d === void 0 ? void 0 : _d.map((_id) => ({ _id }));
271
+ // 空值时返回 null,有值时转换为 [{ _id: 'xxx' }] 格式
272
+ acc[cur] = isValidRelationValue(formData[cur]) ? formData[cur].map((_id) => ({ _id })) : null;
242
273
  }
243
274
  if ('x-json' === format && typeof formData[cur] === 'string') {
244
275
  try {