@zat-design/sisyphus-react 4.5.9 → 4.5.10-beta.2
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/dist/index.esm.css +1 -1
- package/dist/less.esm.css +1 -1
- package/es/FormsProvider/index.js +14 -21
- package/es/ProAction/components/CheckModalContent/index.js +12 -26
- package/es/ProAction/index.js +79 -83
- package/es/ProAction/propsType.js +0 -1
- package/es/ProConfigProvider/index.js +63 -110
- package/es/ProConfigProvider/propsType.js +0 -1
- package/es/ProDownload/index.d.ts +2 -1
- package/es/ProDownload/index.js +74 -69
- package/es/ProDownload/propsType.js +0 -1
- package/es/ProDownload/utils.d.ts +10 -5
- package/es/ProDownload/utils.js +63 -95
- package/es/ProDrawerForm/components/ProDrawer/index.js +83 -113
- package/es/ProDrawerForm/components/ProModal/index.js +77 -108
- package/es/ProDrawerForm/components/index.js +6 -2
- package/es/ProDrawerForm/hooks/useConfirmClose.js +20 -39
- package/es/ProDrawerForm/index.js +29 -38
- package/es/ProDrawerForm/propsType.js +0 -1
- package/es/ProDrawerForm/utils/index.js +18 -36
- package/es/ProEditLabel/components/RenderProForm.js +45 -49
- package/es/ProEditLabel/index.js +126 -163
- package/es/ProEditLabel/propsType.js +0 -1
- package/es/ProEditLabel/utils/index.js +5 -8
- package/es/ProEditTable/components/ActionButton/index.js +111 -119
- package/es/ProEditTable/components/RcTable/BaseTable.js +38 -51
- package/es/ProEditTable/components/RcTable/DraggableTable.js +97 -129
- package/es/ProEditTable/components/RcTable/index.js +6 -4
- package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +77 -95
- package/es/ProEditTable/components/RenderField/index.js +490 -587
- package/es/ProEditTable/components/RenderField/propsType.js +0 -1
- package/es/ProEditTable/components/RenderField/tools.js +115 -112
- package/es/ProEditTable/components/RenderToolbar/index.js +47 -73
- package/es/ProEditTable/components/Summary/index.js +38 -64
- package/es/ProEditTable/components/Validator/index.js +46 -46
- package/es/ProEditTable/components/index.js +12 -5
- package/es/ProEditTable/index.js +456 -378
- package/es/ProEditTable/propsType.js +0 -1
- package/es/ProEditTable/utils/config.js +60 -122
- package/es/ProEditTable/utils/diffOriginal.js +45 -82
- package/es/ProEditTable/utils/getDefaultProps.js +19 -24
- package/es/ProEditTable/utils/index.js +154 -235
- package/es/ProEditTable/utils/tools.js +149 -286
- package/es/ProEditTable/utils/transform.js +25 -30
- package/es/ProEditTable/utils/useEditTableError.js +30 -43
- package/es/ProEditTable/utils/useShouldUpdateForTable.js +42 -72
- package/es/ProEditTable/utils/validateAll.js +87 -154
- package/es/ProEnum/components/Group.js +38 -30
- package/es/ProEnum/components/Tag.js +22 -26
- package/es/ProEnum/hooks/useEnum.js +48 -116
- package/es/ProEnum/hooks/useEnumRequest.js +182 -212
- package/es/ProEnum/hooks/useFrequentEnumRequest.js +40 -48
- package/es/ProEnum/index.js +162 -172
- package/es/ProEnum/propsType.js +0 -1
- package/es/ProEnum/utils/eventCenter.js +10 -12
- package/es/ProEnum/utils/frequentEnum.js +35 -92
- package/es/ProEnum/utils/getEnum.js +32 -90
- package/es/ProEnum/utils/getEnumLabel.js +44 -49
- package/es/ProEnum/utils/index.js +93 -207
- package/es/ProForm/components/Container.js +13 -28
- package/es/ProForm/components/FormFooter/index.js +36 -44
- package/es/ProForm/components/FormFooter/propsType.js +0 -1
- package/es/ProForm/components/base/Checkbox/index.js +32 -59
- package/es/ProForm/components/base/DatePicker/index.js +49 -71
- package/es/ProForm/components/base/Input/index.js +63 -97
- package/es/ProForm/components/base/Input/propsType.js +0 -1
- package/es/ProForm/components/base/InputNumber/index.js +118 -172
- package/es/ProForm/components/base/Radio/index.js +39 -52
- package/es/ProForm/components/base/RangePicker/index.js +109 -127
- package/es/ProForm/components/base/RangePicker/useDateRange.js +20 -17
- package/es/ProForm/components/base/Select/index.js +63 -89
- package/es/ProForm/components/base/Switch/index.js +27 -35
- package/es/ProForm/components/base/SwitchCheckbox/index.js +36 -54
- package/es/ProForm/components/base/TextArea/index.js +30 -41
- package/es/ProForm/components/base/TimePicker/index.js +27 -37
- package/es/ProForm/components/combination/Container/index.js +37 -47
- package/es/ProForm/components/combination/Container/propsType.js +0 -1
- package/es/ProForm/components/combination/FormList/components/ActionButton.js +165 -237
- package/es/ProForm/components/combination/FormList/components/BlockFields.js +98 -102
- package/es/ProForm/components/combination/FormList/components/Empty.js +28 -55
- package/es/ProForm/components/combination/FormList/components/LineFields.js +57 -54
- package/es/ProForm/components/combination/FormList/components/ToolbarButton.js +61 -109
- package/es/ProForm/components/combination/FormList/index.js +151 -161
- package/es/ProForm/components/combination/FormList/propsType.js +0 -1
- package/es/ProForm/components/combination/FormList/style/index.less +6 -0
- package/es/ProForm/components/combination/FormList/utils.js +22 -38
- package/es/ProForm/components/combination/Group/component/AddonWrapper/index.js +12 -28
- package/es/ProForm/components/combination/Group/component/ComRender.js +50 -111
- package/es/ProForm/components/combination/Group/component/FlexibleGroup.js +106 -213
- package/es/ProForm/components/combination/Group/hooks/index.js +69 -129
- package/es/ProForm/components/combination/Group/index.js +87 -126
- package/es/ProForm/components/combination/Group/propsType.js +0 -1
- package/es/ProForm/components/combination/Group/utils/index.js +124 -239
- package/es/ProForm/components/combination/ProCascader/index.js +156 -199
- package/es/ProForm/components/combination/ProCascader/propsType.js +0 -1
- package/es/ProForm/components/combination/ProCascader/utils/index.js +12 -21
- package/es/ProForm/components/combination/ProModalSelect/hooks/useRequestList.js +72 -70
- package/es/ProForm/components/combination/ProModalSelect/index.js +309 -347
- package/es/ProForm/components/combination/ProModalSelect/propsType.js +0 -1
- package/es/ProForm/components/combination/ProModalSelect/utils/index.js +32 -39
- package/es/ProForm/components/combination/ProNumberRange/index.js +100 -156
- package/es/ProForm/components/combination/ProNumberRange/propsType.js +0 -1
- package/es/ProForm/components/combination/ProRangeLimit/index.js +104 -115
- package/es/ProForm/components/combination/ProRangeLimit/propsType.js +0 -1
- package/es/ProForm/components/combination/ProTimeLimit/hooks/useControlled.js +16 -16
- package/es/ProForm/components/combination/ProTimeLimit/index.js +75 -109
- package/es/ProForm/components/index.js +56 -34
- package/es/ProForm/components/render/ChangedWrapper.js +85 -94
- package/es/ProForm/components/render/ConfirmWrapper.js +27 -39
- package/es/ProForm/components/render/CustomComponentViewWrapper.js +65 -82
- package/es/ProForm/components/render/Render.js +223 -329
- package/es/ProForm/components/render/RenderFields.js +76 -113
- package/es/ProForm/components/render/propsType.js +0 -1
- package/es/ProForm/hooks/useControlled.js +8 -10
- package/es/ProForm/hooks/useDeepCompareMemo.js +11 -11
- package/es/ProForm/hooks/useFieldProps.js +8 -4
- package/es/ProForm/hooks/useForm.js +50 -110
- package/es/ProForm/hooks/useRules.js +17 -33
- package/es/ProForm/hooks/useShouldUpdate.js +77 -152
- package/es/ProForm/hooks/useWatch.js +62 -134
- package/es/ProForm/index.js +157 -194
- package/es/ProForm/propsType.js +15 -7
- package/es/ProForm/utils/buildFormItemProps.js +51 -58
- package/es/ProForm/utils/diffOriginal.js +43 -73
- package/es/ProForm/utils/getDefaultProps.js +18 -24
- package/es/ProForm/utils/index.js +160 -235
- package/es/ProForm/utils/processDependencies.js +21 -60
- package/es/ProForm/utils/reactiveValues.js +20 -34
- package/es/ProForm/utils/rulesCreator.js +42 -40
- package/es/ProForm/utils/transformNames.js +10 -13
- package/es/ProForm/utils/transformValue.js +16 -29
- package/es/ProForm/utils/valueType.js +96 -178
- package/es/ProIcon/config/index.js +340 -274
- package/es/ProIcon/index.js +135 -209
- package/es/ProIcon/propsTypes.js +0 -1
- package/es/ProIcon/utils/index.js +24 -39
- package/es/ProLayout/components/Layout/Header/index.js +108 -141
- package/es/ProLayout/components/Layout/Menu/FoldMenu/index.js +134 -190
- package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +113 -139
- package/es/ProLayout/components/Layout/Menu/OpenMenu/propsType.js +0 -1
- package/es/ProLayout/components/Layout/Menu/SideMenu/index.js +23 -31
- package/es/ProLayout/components/Layout/Menu/index.js +92 -89
- package/es/ProLayout/components/Layout/Notice/index.js +13 -27
- package/es/ProLayout/components/Layout/index.js +8 -3
- package/es/ProLayout/components/ProCollapse/PropTypes.js +0 -1
- package/es/ProLayout/components/ProCollapse/index.js +89 -111
- package/es/ProLayout/components/ProFooter/PropTypes.js +0 -1
- package/es/ProLayout/components/ProFooter/index.js +27 -24
- package/es/ProLayout/components/ProHeader/PropTypes.js +0 -1
- package/es/ProLayout/components/ProHeader/components/Copy/index.js +23 -21
- package/es/ProLayout/components/ProHeader/components/Describe/index.js +67 -84
- package/es/ProLayout/components/ProHeader/components/ProBackBtn/index.js +18 -21
- package/es/ProLayout/components/ProHeader/components/ProBackBtn/propsType.js +0 -1
- package/es/ProLayout/components/ProHeader/components/index.js +6 -2
- package/es/ProLayout/components/ProHeader/index.js +216 -356
- package/es/ProLayout/components/ProHeader/utils/index.js +19 -26
- package/es/ProLayout/components/TabsManager/components/TabContextMenu.js +92 -85
- package/es/ProLayout/components/TabsManager/components/TabItem.js +53 -63
- package/es/ProLayout/components/TabsManager/components/TabsContext.js +5 -5
- package/es/ProLayout/components/TabsManager/components/TabsHeader.js +42 -52
- package/es/ProLayout/components/TabsManager/hooks/useActiveTab.js +8 -9
- package/es/ProLayout/components/TabsManager/hooks/useIframeRoute.js +19 -32
- package/es/ProLayout/components/TabsManager/hooks/useProLayoutTabs.js +6 -20
- package/es/ProLayout/components/TabsManager/hooks/useTabsCache.js +25 -42
- package/es/ProLayout/components/TabsManager/hooks/useTabsState.js +320 -350
- package/es/ProLayout/components/TabsManager/hooks/useTabsUrlSync.d.ts +19 -0
- package/es/ProLayout/components/TabsManager/hooks/useTabsUrlSync.js +332 -0
- package/es/ProLayout/components/TabsManager/index.js +407 -351
- package/es/ProLayout/components/TabsManager/propTypes.d.ts +4 -0
- package/es/ProLayout/components/TabsManager/propTypes.js +7 -15
- package/es/ProLayout/components/TabsManager/style/index.less +1 -1
- package/es/ProLayout/components/TabsManager/utils/historyObserver.d.ts +7 -0
- package/es/ProLayout/components/TabsManager/utils/historyObserver.js +65 -0
- package/es/ProLayout/components/TabsManager/utils/index.d.ts +15 -2
- package/es/ProLayout/components/TabsManager/utils/index.js +156 -159
- package/es/ProLayout/components/index.js +8 -3
- package/es/ProLayout/index.js +173 -228
- package/es/ProLayout/propTypes.d.ts +28 -1
- package/es/ProLayout/propTypes.js +12 -52
- package/es/ProLayout/utils/index.js +48 -128
- package/es/ProSelect/components/AdaptiveTooltip.js +26 -25
- package/es/ProSelect/index.js +187 -223
- package/es/ProSelect/propsType.js +0 -1
- package/es/ProSelect/style/index.less +13 -0
- package/es/ProSelect/utils/index.js +100 -146
- package/es/ProStep/components/Anchor/index.js +71 -82
- package/es/ProStep/components/Item/index.js +49 -56
- package/es/ProStep/components/LazyLoad/index.js +23 -29
- package/es/ProStep/components/Listener/index.js +20 -33
- package/es/ProStep/components/Step/index.js +31 -38
- package/es/ProStep/constants.js +4 -1
- package/es/ProStep/index.js +166 -153
- package/es/ProStep/propsType.js +0 -1
- package/es/ProStep/style/index.less +1 -1
- package/es/ProStep/utils/index.js +29 -55
- package/es/ProStepTab/index.js +83 -138
- package/es/ProStepTab/propsType.js +0 -1
- package/es/ProTable/components/EditableCell/EditIcon.js +10 -14
- package/es/ProTable/components/EditableCell/index.js +37 -71
- package/es/ProTable/components/EditableCell/propsType.js +0 -1
- package/es/ProTable/components/FormatColumn/index.js +209 -340
- package/es/ProTable/components/FormatColumn/propsType.js +0 -1
- package/es/ProTable/components/RcTable/components/BaseTable/index.js +35 -39
- package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/index.js +80 -107
- package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/index.js +54 -48
- package/es/ProTable/components/RcTable/components/DraggableTable/components/DndWrapper/utils/propsType.js +0 -1
- package/es/ProTable/components/RcTable/components/DraggableTable/index.js +47 -54
- package/es/ProTable/components/RcTable/index.js +6 -4
- package/es/ProTable/components/RenderColumn/index.js +158 -186
- package/es/ProTable/components/RenderEmptyText/index.js +12 -21
- package/es/ProTable/components/RenderFooter/index.js +15 -15
- package/es/ProTable/components/RenderSummary/index.js +33 -50
- package/es/ProTable/components/RenderTableHeader/index.js +44 -46
- package/es/ProTable/components/RenderTabs/index.js +47 -51
- package/es/ProTable/components/TableResizable/index.js +56 -72
- package/es/ProTable/components/TooltipTitle/index.js +13 -21
- package/es/ProTable/components/index.js +16 -36
- package/es/ProTable/hooks/useAntdTable.js +191 -224
- package/es/ProTable/index.js +232 -249
- package/es/ProTable/propsType.js +0 -1
- package/es/ProTable/utils/columnStorage.js +63 -88
- package/es/ProTable/utils/index.js +57 -90
- package/es/ProTabs/components/Card/index.js +20 -48
- package/es/ProTabs/components/index.js +4 -1
- package/es/ProTabs/index.js +41 -58
- package/es/ProTabs/propType.js +0 -1
- package/es/ProThemeTools/component/ProTools/index.js +106 -158
- package/es/ProThemeTools/component/index.js +4 -1
- package/es/ProThemeTools/context/ThemeContext.js +67 -146
- package/es/ProThemeTools/index.js +103 -156
- package/es/ProThemeTools/propsType.js +0 -1
- package/es/ProThemeTools/utils/index.js +60 -109
- package/es/ProTooltip/index.js +132 -168
- package/es/ProTooltip/propsType.js +0 -1
- package/es/ProTree/components/AdaptiveTooltip.js +15 -17
- package/es/ProTree/components/CloseIcon.js +18 -26
- package/es/ProTree/components/List.js +28 -47
- package/es/ProTree/components/ProTree.js +152 -211
- package/es/ProTree/components/ProTreeSelect/index.js +255 -459
- package/es/ProTree/components/ProTreeSelect/propsType.js +0 -1
- package/es/ProTree/components/SearchTitle.js +23 -42
- package/es/ProTree/components/Tree.js +147 -195
- package/es/ProTree/components/index.js +10 -5
- package/es/ProTree/index.js +12 -16
- package/es/ProTree/propsType.js +0 -1
- package/es/ProTree/utils.js +46 -118
- package/es/ProTreeModal/components/Cascader.js +56 -64
- package/es/ProTreeModal/components/CloseIcon.js +18 -26
- package/es/ProTreeModal/components/List.js +114 -180
- package/es/ProTreeModal/components/SearchTitle.js +15 -18
- package/es/ProTreeModal/components/SortableItem.js +29 -58
- package/es/ProTreeModal/components/Tree.js +99 -113
- package/es/ProTreeModal/components/Trigger.js +87 -121
- package/es/ProTreeModal/components/index.js +14 -6
- package/es/ProTreeModal/index.js +397 -438
- package/es/ProTreeModal/propsType.js +0 -1
- package/es/ProTreeModal/utils.js +52 -95
- package/es/ProUpload/components/ButtonRender.js +44 -54
- package/es/ProUpload/components/DragRender.js +94 -148
- package/es/ProUpload/components/DraggableUploadListItem.js +12 -25
- package/es/ProUpload/components/Example.js +27 -31
- package/es/ProUpload/components/FileItem.js +69 -163
- package/es/ProUpload/components/ImageRender.js +134 -170
- package/es/ProUpload/index.js +68 -100
- package/es/ProUpload/propsType.js +0 -1
- package/es/ProUpload/uitls.js +8 -4
- package/es/ProUtils/utils/index.js +17 -13
- package/es/ProViewer/index.js +154 -175
- package/es/ProViewer/propsType.js +0 -5
- package/es/ProWaterMark/index.js +9 -16
- package/es/ProWaterMark/propsType.js +0 -1
- package/es/hooks/useDraggableRow.js +25 -53
- package/es/index.js +57 -77
- package/es/locale/en_US.js +153 -142
- package/es/locale/index.js +23 -36
- package/es/locale/zh_CN.js +145 -142
- package/es/tokens.js +84 -83
- package/es/utils/index.js +24 -51
- package/package.json +4 -2
- package/es/ProConfigProvider/demo/locale.js +0 -58
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { PlusOutlined } from
|
|
3
|
-
import { tools } from
|
|
4
|
-
import { message } from
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PlusOutlined } from "@ant-design/icons";
|
|
3
|
+
import { tools } from "@zat-design/utils";
|
|
4
|
+
import { message } from "antd";
|
|
5
|
+
import set from "lodash/set";
|
|
5
6
|
import { onDelete, getRandom } from "./tools";
|
|
6
7
|
import locale from "../../locale";
|
|
7
|
-
|
|
8
|
-
export const defaultBtnNameMap = {
|
|
8
|
+
const defaultBtnNameMap = {
|
|
9
9
|
add: locale.ProEditTable.add,
|
|
10
10
|
edit: locale.ProEditTable.edit,
|
|
11
11
|
copy: locale.ProEditTable.copy,
|
|
@@ -15,23 +15,14 @@ export const defaultBtnNameMap = {
|
|
|
15
15
|
cancel: locale.ProEditTable.cancel,
|
|
16
16
|
custom: locale.ProEditTable.custom
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export const iconMap = {
|
|
21
|
-
add: /*#__PURE__*/_jsx(PlusOutlined, {})
|
|
18
|
+
const iconMap = {
|
|
19
|
+
add: /* @__PURE__ */ jsx(PlusOutlined, {})
|
|
22
20
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
// 编辑状态下只显示保存、取消按钮
|
|
29
|
-
export const defaultEditingActionKeys = ['save', 'cancel'];
|
|
30
|
-
// 工具栏默认配置按钮
|
|
31
|
-
export const defaultToolbarKeys = ['add', 'mulDelete'];
|
|
32
|
-
|
|
33
|
-
// 操作枚举
|
|
34
|
-
export const actions = {
|
|
21
|
+
const defaultSingleActionKeys = ["edit", "delete", "save", "cancel"];
|
|
22
|
+
const defaultMultipleActionKeys = ["delete"];
|
|
23
|
+
const defaultEditingActionKeys = ["save", "cancel"];
|
|
24
|
+
const defaultToolbarKeys = ["add", "mulDelete"];
|
|
25
|
+
const actions = {
|
|
35
26
|
edit: ({
|
|
36
27
|
record,
|
|
37
28
|
editingKeys,
|
|
@@ -41,64 +32,37 @@ export const actions = {
|
|
|
41
32
|
virtualKey,
|
|
42
33
|
onlyOneLineMsg
|
|
43
34
|
}) => {
|
|
44
|
-
// 单行编辑时,需要先保存,才能进行下面的编辑
|
|
45
35
|
if (virtualKey && editingKeys.length >= 1) {
|
|
46
36
|
message.warning(onlyOneLineMsg);
|
|
47
37
|
return false;
|
|
48
38
|
}
|
|
49
39
|
const nextEditingKeys = [...editingKeys];
|
|
50
|
-
// 开启编辑状态
|
|
51
40
|
nextEditingKeys.push(record.rowKey);
|
|
52
|
-
|
|
53
|
-
if (nextEditingKeys?.length) {
|
|
41
|
+
if (nextEditingKeys == null ? void 0 : nextEditingKeys.length) {
|
|
54
42
|
record._isEditing = true;
|
|
55
43
|
} else {
|
|
56
44
|
delete record._isEditing;
|
|
57
45
|
}
|
|
58
|
-
|
|
59
|
-
form.setFieldValue(virtualRowName, {
|
|
60
|
-
...record
|
|
61
|
-
});
|
|
46
|
+
form.setFieldValue(virtualRowName, { ...record });
|
|
62
47
|
setState({
|
|
63
48
|
editingKeys: nextEditingKeys
|
|
64
49
|
});
|
|
65
50
|
},
|
|
66
|
-
save: async ({
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
virtualRowName,
|
|
73
|
-
result
|
|
74
|
-
}) => {
|
|
75
|
-
// 保存返回数据与当前行内数据做合并
|
|
76
|
-
const updateData = typeof result === 'object' ? result : {};
|
|
77
|
-
record = {
|
|
78
|
-
...record,
|
|
79
|
-
...form.getFieldValue(virtualRowName),
|
|
80
|
-
...updateData
|
|
81
|
-
};
|
|
82
|
-
delete record._addFlag; // 删除第一次新增的标记
|
|
83
|
-
// 关闭当前保存行的编辑状态
|
|
84
|
-
const nextEditingKeys = editingKeys.filter(key => key !== record.rowKey);
|
|
85
|
-
// 保存后取消编辑状态,供validator做保存校验
|
|
86
|
-
if (nextEditingKeys?.length) {
|
|
51
|
+
save: async ({ record, editingKeys, setState, form, rowName, virtualRowName, result }) => {
|
|
52
|
+
const updateData = typeof result === "object" ? result : {};
|
|
53
|
+
record = { ...record, ...form.getFieldValue(virtualRowName), ...updateData };
|
|
54
|
+
delete record._addFlag;
|
|
55
|
+
const nextEditingKeys = editingKeys.filter((key) => key !== record.rowKey);
|
|
56
|
+
if (nextEditingKeys == null ? void 0 : nextEditingKeys.length) {
|
|
87
57
|
record._isEditing = true;
|
|
88
58
|
} else {
|
|
89
59
|
delete record._isEditing;
|
|
90
60
|
}
|
|
91
|
-
// 防止value引用不变, 值不更新 - (自定义组件)
|
|
92
|
-
// 必须取全量 store(true):names 组合列只注册合并字段,拆分子字段(如 address/postcode)
|
|
93
|
-
// 未注册;getFieldsValue() 会丢掉它们,叠加 setFieldsValue 对数组「整体覆盖」会抹掉其他行的子字段
|
|
94
61
|
const values = form.getFieldsValue(true);
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
_set(values, virtualRowName, record);
|
|
62
|
+
set(values, rowName, record);
|
|
63
|
+
set(values, virtualRowName, record);
|
|
98
64
|
form.setFieldsValue(values);
|
|
99
|
-
setState({
|
|
100
|
-
editingKeys: nextEditingKeys
|
|
101
|
-
});
|
|
65
|
+
setState({ editingKeys: nextEditingKeys });
|
|
102
66
|
},
|
|
103
67
|
cancel: ({
|
|
104
68
|
name,
|
|
@@ -110,17 +74,13 @@ export const actions = {
|
|
|
110
74
|
virtualKey,
|
|
111
75
|
rowName
|
|
112
76
|
}) => {
|
|
113
|
-
const nextEditingKeys = editingKeys.filter(key => key !== record.rowKey);
|
|
114
|
-
|
|
115
|
-
if (nextEditingKeys?.length) {
|
|
77
|
+
const nextEditingKeys = editingKeys.filter((key) => key !== record.rowKey);
|
|
78
|
+
if (nextEditingKeys == null ? void 0 : nextEditingKeys.length) {
|
|
116
79
|
record._isEditing = true;
|
|
117
80
|
} else {
|
|
118
81
|
delete record._isEditing;
|
|
119
82
|
}
|
|
120
|
-
setState({
|
|
121
|
-
editingKeys: nextEditingKeys
|
|
122
|
-
}); // 关闭编辑状态
|
|
123
|
-
// 取消分两种,一编辑取消,二添加取消
|
|
83
|
+
setState({ editingKeys: nextEditingKeys });
|
|
124
84
|
if (record._addFlag) {
|
|
125
85
|
onDelete({
|
|
126
86
|
name,
|
|
@@ -129,29 +89,17 @@ export const actions = {
|
|
|
129
89
|
selectedRowKeys: [record.rowKey]
|
|
130
90
|
});
|
|
131
91
|
} else {
|
|
132
|
-
// 取消时使用主 form 原始行数据重置虚拟 form,避免编辑值残留
|
|
133
|
-
// 同 save:取全量 store(true),避免抹掉其他行未注册的 names 拆分子字段
|
|
134
92
|
const originalRecord = form.getFieldValue(rowName);
|
|
135
93
|
const values = form.getFieldsValue(true);
|
|
136
|
-
|
|
94
|
+
set(values, virtualRowName, originalRecord ?? record);
|
|
137
95
|
form.setFieldsValue(values);
|
|
138
96
|
}
|
|
139
97
|
},
|
|
140
|
-
delete: ({
|
|
141
|
-
name,
|
|
142
|
-
record,
|
|
143
|
-
editingKeys,
|
|
144
|
-
setState,
|
|
145
|
-
form,
|
|
146
|
-
virtualKey,
|
|
147
|
-
onlyOneLineMsg
|
|
148
|
-
}) => {
|
|
149
|
-
// 单行编辑时,需要先保存,才能进行下面的编辑
|
|
98
|
+
delete: ({ name, record, editingKeys, setState, form, virtualKey, onlyOneLineMsg }) => {
|
|
150
99
|
if (virtualKey && editingKeys.length >= 1) {
|
|
151
100
|
message.warning(onlyOneLineMsg);
|
|
152
101
|
return false;
|
|
153
102
|
}
|
|
154
|
-
// 删除当前行数据
|
|
155
103
|
onDelete({
|
|
156
104
|
name,
|
|
157
105
|
form,
|
|
@@ -159,11 +107,8 @@ export const actions = {
|
|
|
159
107
|
selectedRowKeys: [record.rowKey]
|
|
160
108
|
});
|
|
161
109
|
if (virtualKey) {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
setState({
|
|
165
|
-
editingKeys: nextEditingKeys
|
|
166
|
-
});
|
|
110
|
+
const nextEditingKeys = editingKeys.filter((key) => key === record.rowKey);
|
|
111
|
+
setState({ editingKeys: nextEditingKeys });
|
|
167
112
|
}
|
|
168
113
|
},
|
|
169
114
|
add: async ({
|
|
@@ -177,69 +122,62 @@ export const actions = {
|
|
|
177
122
|
virtualKey,
|
|
178
123
|
onlyOneLineMsg,
|
|
179
124
|
tableRef,
|
|
180
|
-
prefixCls =
|
|
125
|
+
prefixCls = "ant",
|
|
181
126
|
page,
|
|
182
127
|
handlePageChange,
|
|
183
128
|
virtual
|
|
184
129
|
}) => {
|
|
185
|
-
|
|
186
|
-
|
|
130
|
+
var _a, _b;
|
|
131
|
+
const nextData = [...form.getFieldValue(name) || []];
|
|
187
132
|
if (virtualKey && editingKeys.length >= 1) {
|
|
188
133
|
message.warning(onlyOneLineMsg);
|
|
189
134
|
return false;
|
|
190
135
|
}
|
|
191
136
|
const rowKey = getRandom();
|
|
192
|
-
// 添加新增对象数据
|
|
193
137
|
const addData = {
|
|
194
|
-
...
|
|
138
|
+
...typeof result === "object" ? result : {},
|
|
195
139
|
rowKey
|
|
196
140
|
};
|
|
197
|
-
|
|
198
|
-
// 单行编辑时,需要操作一下数据结构,判断是否第一次新增,以及是否是编辑状态
|
|
199
141
|
if (virtualKey) {
|
|
200
142
|
addData._addFlag = true;
|
|
201
143
|
addData._isEditing = true;
|
|
202
144
|
}
|
|
203
|
-
if (insertType ===
|
|
145
|
+
if (insertType === "before") {
|
|
204
146
|
nextData.unshift(addData);
|
|
205
147
|
setTimeout(async () => {
|
|
206
148
|
handlePageChange(1, page.pageSize);
|
|
207
149
|
}, 0);
|
|
208
150
|
} else {
|
|
209
151
|
nextData.push(addData);
|
|
210
|
-
const nextPageNum = Math.ceil(tools.calc(nextData.length,
|
|
152
|
+
const nextPageNum = Math.ceil(tools.calc(nextData.length, "/", page.pageSize));
|
|
211
153
|
setTimeout(async () => {
|
|
212
154
|
handlePageChange(nextPageNum, page.pageSize);
|
|
213
155
|
}, 0);
|
|
214
156
|
}
|
|
215
|
-
|
|
216
|
-
// 当单选情况下,存储正在编辑值
|
|
217
157
|
if (virtualKey) {
|
|
218
158
|
const nextEditingKeys = [...editingKeys];
|
|
219
|
-
// 开启编辑状态
|
|
220
159
|
nextEditingKeys.push(rowKey);
|
|
221
160
|
form.setFieldValue(virtualName, nextData);
|
|
222
|
-
setState({
|
|
223
|
-
editingKeys: nextEditingKeys
|
|
224
|
-
});
|
|
161
|
+
setState({ editingKeys: nextEditingKeys });
|
|
225
162
|
}
|
|
226
163
|
form.setFieldValue(name, nextData);
|
|
227
164
|
if (virtual) {
|
|
228
|
-
// 虚拟表格无 .ant-table-body 原生滚动容器,使用 antd Table ref 的 scrollTo 按行索引定位
|
|
229
|
-
// 不传 align:新增行在视口外时虚拟列表会自动贴边(尾部插入贴底、头部插入贴顶)
|
|
230
165
|
requestAnimationFrame(() => {
|
|
231
|
-
|
|
232
|
-
|
|
166
|
+
var _a2, _b2;
|
|
167
|
+
(_b2 = (_a2 = tableRef.current) == null ? void 0 : _a2.scrollTo) == null ? void 0 : _b2.call(_a2, {
|
|
168
|
+
index: insertType === "before" ? 0 : nextData.length - 1
|
|
233
169
|
});
|
|
234
170
|
});
|
|
235
171
|
} else {
|
|
236
|
-
const tableBody = tableRef.current
|
|
172
|
+
const tableBody = (_b = (_a = tableRef.current) == null ? void 0 : _a.children[0]) == null ? void 0 : _b.querySelector(
|
|
173
|
+
`.${prefixCls}-table-body`
|
|
174
|
+
);
|
|
237
175
|
if (tableBody) {
|
|
238
|
-
// 等待新行渲染完毕再读取 scrollHeight,确保能滚动到真正的底部
|
|
239
176
|
requestAnimationFrame(() => {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
177
|
+
var _a2;
|
|
178
|
+
(_a2 = tableBody.scrollTo) == null ? void 0 : _a2.call(tableBody, {
|
|
179
|
+
top: insertType === "before" ? 0 : tableBody.scrollHeight,
|
|
180
|
+
behavior: "smooth"
|
|
243
181
|
});
|
|
244
182
|
});
|
|
245
183
|
}
|
|
@@ -248,15 +186,7 @@ export const actions = {
|
|
|
248
186
|
await form.validateFields([name]);
|
|
249
187
|
}
|
|
250
188
|
},
|
|
251
|
-
mulDelete: ({
|
|
252
|
-
form,
|
|
253
|
-
name,
|
|
254
|
-
virtualKey,
|
|
255
|
-
setState,
|
|
256
|
-
selectedRowKeys,
|
|
257
|
-
editingKeys = []
|
|
258
|
-
}) => {
|
|
259
|
-
// 删除选中数据
|
|
189
|
+
mulDelete: ({ form, name, virtualKey, setState, selectedRowKeys, editingKeys = [] }) => {
|
|
260
190
|
onDelete({
|
|
261
191
|
name,
|
|
262
192
|
form,
|
|
@@ -267,10 +197,18 @@ export const actions = {
|
|
|
267
197
|
selectedRowKeys: [],
|
|
268
198
|
selectedRows: []
|
|
269
199
|
};
|
|
270
|
-
|
|
271
|
-
if (virtualKey && selectedRowKeys.includes(editingKeys?.[0])) {
|
|
200
|
+
if (virtualKey && selectedRowKeys.includes(editingKeys == null ? void 0 : editingKeys[0])) {
|
|
272
201
|
nextData.editingKeys = [];
|
|
273
202
|
}
|
|
274
203
|
setState(nextData);
|
|
275
204
|
}
|
|
276
|
-
};
|
|
205
|
+
};
|
|
206
|
+
export {
|
|
207
|
+
actions,
|
|
208
|
+
defaultBtnNameMap,
|
|
209
|
+
defaultEditingActionKeys,
|
|
210
|
+
defaultMultipleActionKeys,
|
|
211
|
+
defaultSingleActionKeys,
|
|
212
|
+
defaultToolbarKeys,
|
|
213
|
+
iconMap
|
|
214
|
+
};
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { validate } from
|
|
5
|
-
const {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
// 比较策略接口
|
|
10
|
-
|
|
11
|
-
// 数字类型标准化函数
|
|
12
|
-
const normalizeNumberValue = value => {
|
|
13
|
-
if (value === null || value === undefined || value === '') return null;
|
|
1
|
+
import isEqual from "lodash/isEqual";
|
|
2
|
+
import isFunction from "lodash/isFunction";
|
|
3
|
+
import isObject from "lodash/isObject";
|
|
4
|
+
import { validate } from "@zat-design/utils";
|
|
5
|
+
const { isEmpty } = validate;
|
|
6
|
+
const normalizeNumberValue = (value) => {
|
|
7
|
+
if (value === null || value === void 0 || value === "")
|
|
8
|
+
return null;
|
|
14
9
|
const num = Number(value);
|
|
15
10
|
return Number.isNaN(num) ? null : num;
|
|
16
11
|
};
|
|
17
|
-
|
|
18
|
-
// InputNumber 比较策略
|
|
19
12
|
const inputNumberStrategy = {
|
|
20
13
|
compare: (val1, val2) => {
|
|
21
14
|
const num1 = normalizeNumberValue(val1);
|
|
@@ -23,12 +16,12 @@ const inputNumberStrategy = {
|
|
|
23
16
|
return num1 === num2;
|
|
24
17
|
}
|
|
25
18
|
};
|
|
26
|
-
|
|
27
|
-
// ProNumberRange 比较策略
|
|
28
19
|
const proNumberRangeStrategy = {
|
|
29
20
|
compare: (val1, val2) => {
|
|
30
|
-
if (!Array.isArray(val1) || !Array.isArray(val2))
|
|
31
|
-
|
|
21
|
+
if (!Array.isArray(val1) || !Array.isArray(val2))
|
|
22
|
+
return false;
|
|
23
|
+
if (val1.length !== val2.length)
|
|
24
|
+
return false;
|
|
32
25
|
return val1.every((item, index) => {
|
|
33
26
|
const num1 = normalizeNumberValue(item);
|
|
34
27
|
const num2 = normalizeNumberValue(val2[index]);
|
|
@@ -36,45 +29,30 @@ const proNumberRangeStrategy = {
|
|
|
36
29
|
});
|
|
37
30
|
}
|
|
38
31
|
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const handleNumberTypeDiff = params => {
|
|
42
|
-
const {
|
|
43
|
-
originalValue,
|
|
44
|
-
value,
|
|
45
|
-
type
|
|
46
|
-
} = params;
|
|
32
|
+
const handleNumberTypeDiff = (params) => {
|
|
33
|
+
const { originalValue, value, type } = params;
|
|
47
34
|
const isEmptyVal = isEmpty(value);
|
|
48
35
|
const isEmptyOrg = isEmpty(originalValue);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (isEmptyOrg && isEmptyVal)
|
|
52
|
-
|
|
53
|
-
// 如果原始值为空 且当前有值的话 视为新增
|
|
54
|
-
if (isEmptyOrg && !isEmptyVal) return 'add';
|
|
55
|
-
|
|
56
|
-
// 根据类型选择对应的比较策略
|
|
36
|
+
if (isEmptyOrg && isEmptyVal)
|
|
37
|
+
return "same";
|
|
38
|
+
if (isEmptyOrg && !isEmptyVal)
|
|
39
|
+
return "add";
|
|
57
40
|
let compareStrategy;
|
|
58
|
-
if (type ===
|
|
41
|
+
if (type === "InputNumber") {
|
|
59
42
|
compareStrategy = inputNumberStrategy;
|
|
60
|
-
} else if (type ===
|
|
43
|
+
} else if (type === "ProNumberRange") {
|
|
61
44
|
compareStrategy = proNumberRangeStrategy;
|
|
62
45
|
} else {
|
|
63
|
-
return
|
|
46
|
+
return "changed";
|
|
64
47
|
}
|
|
65
|
-
return compareStrategy.compare(value, originalValue) ?
|
|
48
|
+
return compareStrategy.compare(value, originalValue) ? "same" : "changed";
|
|
66
49
|
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const filterObject = data => {
|
|
71
|
-
if (!_isObject(data) || data === null) return data;
|
|
72
|
-
|
|
73
|
-
// ['1', undefined] ['1', ''] 视为相等
|
|
50
|
+
const filterObject = (data) => {
|
|
51
|
+
if (!isObject(data) || data === null)
|
|
52
|
+
return data;
|
|
74
53
|
if (Array.isArray(data)) {
|
|
75
|
-
// 数组中全是empty值的话 视为null
|
|
76
54
|
let isFillNull = true;
|
|
77
|
-
const arr = data.map(item => {
|
|
55
|
+
const arr = data.map((item) => {
|
|
78
56
|
if (isEmpty(item)) {
|
|
79
57
|
return null;
|
|
80
58
|
}
|
|
@@ -84,29 +62,18 @@ const filterObject = data => {
|
|
|
84
62
|
return isFillNull ? null : arr;
|
|
85
63
|
}
|
|
86
64
|
const resData = {};
|
|
87
|
-
Object.keys(data).forEach(key => {
|
|
65
|
+
Object.keys(data).forEach((key) => {
|
|
88
66
|
if (!isEmpty(data[key])) {
|
|
89
67
|
resData[key] = data[key];
|
|
90
68
|
}
|
|
91
69
|
});
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if (!Object.keys(resData).length) return null;
|
|
70
|
+
if (!Object.keys(resData).length)
|
|
71
|
+
return null;
|
|
95
72
|
return resData;
|
|
96
73
|
};
|
|
97
|
-
|
|
98
|
-
const {
|
|
99
|
-
|
|
100
|
-
value,
|
|
101
|
-
onDiff,
|
|
102
|
-
originRecord,
|
|
103
|
-
record,
|
|
104
|
-
index,
|
|
105
|
-
type
|
|
106
|
-
} = params;
|
|
107
|
-
|
|
108
|
-
// 支持传入自定义比较事件
|
|
109
|
-
if (_isFunction(onDiff)) {
|
|
74
|
+
const diffOriginal = (params) => {
|
|
75
|
+
const { originalValue, value, onDiff, originRecord, record, index, type } = params;
|
|
76
|
+
if (isFunction(onDiff)) {
|
|
110
77
|
const diffRes = onDiff({
|
|
111
78
|
originValue: originalValue,
|
|
112
79
|
originRecord,
|
|
@@ -114,30 +81,26 @@ export const diffOriginal = params => {
|
|
|
114
81
|
record,
|
|
115
82
|
index
|
|
116
83
|
});
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return diffRes ? 'same' : 'changed';
|
|
84
|
+
if (diffRes !== void 0) {
|
|
85
|
+
if (typeof diffRes === "boolean") {
|
|
86
|
+
return diffRes ? "same" : "changed";
|
|
121
87
|
}
|
|
122
88
|
return diffRes;
|
|
123
89
|
}
|
|
124
90
|
}
|
|
125
|
-
|
|
126
|
-
// 数字类型特殊处理
|
|
127
|
-
if (['InputNumber', 'ProNumberRange'].includes(type)) {
|
|
91
|
+
if (["InputNumber", "ProNumberRange"].includes(type)) {
|
|
128
92
|
return handleNumberTypeDiff(params);
|
|
129
93
|
}
|
|
130
|
-
|
|
131
|
-
// 其他类型使用原有逻辑
|
|
132
94
|
const _value = filterObject(value);
|
|
133
95
|
const _originalValue = filterObject(originalValue);
|
|
134
96
|
const isEmptyVal = isEmpty(_value);
|
|
135
97
|
const isEmptyOrg = isEmpty(_originalValue);
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
if (isEmptyOrg && isEmptyVal)
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
98
|
+
if (isEmptyOrg && isEmptyVal)
|
|
99
|
+
return "same";
|
|
100
|
+
if (isEmptyOrg && !isEmptyVal)
|
|
101
|
+
return "add";
|
|
102
|
+
return isEqual(_value, _originalValue) ? "same" : "changed";
|
|
103
|
+
};
|
|
104
|
+
export {
|
|
105
|
+
diffOriginal
|
|
106
|
+
};
|
|
@@ -1,36 +1,31 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import get from "lodash/get";
|
|
2
|
+
import isEqual from "lodash/isEqual";
|
|
3
3
|
const defaultPropsMap = {
|
|
4
|
-
ProSelect: props => {
|
|
5
|
-
const {
|
|
6
|
-
|
|
7
|
-
name,
|
|
8
|
-
namePath
|
|
9
|
-
} = props;
|
|
10
|
-
const {
|
|
11
|
-
filterInList
|
|
12
|
-
} = fieldProps || {};
|
|
4
|
+
ProSelect: (props) => {
|
|
5
|
+
const { fieldProps, name, namePath } = props;
|
|
6
|
+
const { filterInList } = fieldProps || {};
|
|
13
7
|
const defaultProps = {};
|
|
14
|
-
|
|
15
|
-
// formList场景传入列表过滤时
|
|
16
8
|
if (filterInList && namePath && name) {
|
|
17
9
|
const _namePath = [...namePath].splice(2, namePath.length - 1);
|
|
18
10
|
defaultProps.shouldUpdate = (preValues, curValues) => {
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
var _a, _b, _c, _d;
|
|
12
|
+
const preListValue = (_b = (_a = get(preValues, name)) == null ? void 0 : _a.map) == null ? void 0 : _b.call(_a, (item) => {
|
|
13
|
+
return get(item, _namePath);
|
|
21
14
|
});
|
|
22
|
-
const curListValue =
|
|
23
|
-
return
|
|
15
|
+
const curListValue = (_d = (_c = get(curValues, name)) == null ? void 0 : _c.map) == null ? void 0 : _d.call(_c, (item) => {
|
|
16
|
+
return get(item, _namePath);
|
|
24
17
|
});
|
|
25
|
-
return !
|
|
18
|
+
return !isEqual(preListValue, curListValue);
|
|
26
19
|
};
|
|
27
20
|
}
|
|
28
21
|
return defaultProps;
|
|
29
22
|
}
|
|
30
23
|
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
const getDefaultProps = (props) => {
|
|
25
|
+
var _a;
|
|
26
|
+
const { type } = props;
|
|
27
|
+
return (_a = defaultPropsMap[type]) == null ? void 0 : _a.call(defaultPropsMap, props);
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
getDefaultProps
|
|
31
|
+
};
|