@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,55 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @description 是否带有菜单界面的配置
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @description 添加标签页的业务参数
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* @description 添加标签页的选项
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @description 更新标签页的字段(仅允许更新展示与扩展数据)
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* @description 获取标签页信息返回值
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @description ProLayout 标签页实例接口(类似 FormInstance)
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @description iframe 路由表配置项
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* @description iframe 嵌入配置
|
|
39
|
-
*
|
|
40
|
-
* **触发条件**:URL query 上带 `?isIframe`(大小写不敏感,值不限,只看 key 是否存在)。
|
|
41
|
-
* 第三方系统通过在 iframe src 上拼 `?isIframe=1` 来触发组件库的嵌入模式。
|
|
42
|
-
*
|
|
43
|
-
* 未带该 query 时(独立访问),即使配置了 `tabs.iframe`,组件库也完全不读取,
|
|
44
|
-
* 维持完整 Layout 渲染。
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
export const isTabsMode = props => props.mode === 'tabs';
|
|
48
|
-
export const validateTabsProps = (mode = 'normal', tabs) => {
|
|
49
|
-
if (mode === 'tabs' && !tabs) {
|
|
50
|
-
throw new Error('ProLayout: tabs configuration is required when mode="tabs",例如 <ProLayout mode="tabs" tabs={{ max: 10 }} />');
|
|
1
|
+
const isTabsMode = (props) => props.mode === "tabs";
|
|
2
|
+
const validateTabsProps = (mode = "normal", tabs) => {
|
|
3
|
+
if (mode === "tabs" && !tabs) {
|
|
4
|
+
throw new Error(
|
|
5
|
+
'ProLayout: tabs configuration is required when mode="tabs",例如 <ProLayout mode="tabs" tabs={{ max: 10 }} />'
|
|
6
|
+
);
|
|
51
7
|
}
|
|
52
|
-
if (mode !==
|
|
8
|
+
if (mode !== "tabs" && tabs) {
|
|
53
9
|
console.warn('ProLayout: tabs configuration is ignored because mode is not "tabs"');
|
|
54
10
|
}
|
|
55
|
-
};
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
isTabsMode,
|
|
14
|
+
validateTabsProps
|
|
15
|
+
};
|
|
@@ -1,91 +1,51 @@
|
|
|
1
|
-
import
|
|
2
|
-
/* eslint-disable prefer-destructuring */
|
|
3
|
-
/* eslint-disable no-mixed-operators */
|
|
4
|
-
/**
|
|
5
|
-
* 检查并更新最佳模糊匹配
|
|
6
|
-
* @param pathName 目标路径
|
|
7
|
-
* @param itemUrl 菜单项URL
|
|
8
|
-
* @param itemRedirectUrl 菜单项重定向URL
|
|
9
|
-
* @param keyIdPath 菜单项ID路径
|
|
10
|
-
* @param bestMatch 当前最佳匹配
|
|
11
|
-
* @returns 更新后的最佳匹配
|
|
12
|
-
*/
|
|
1
|
+
import isPlainObject from "lodash/isPlainObject";
|
|
13
2
|
const updateBestMatch = (pathName, itemUrl, itemRedirectUrl, keyIdPath, bestMatch) => {
|
|
14
|
-
// 检查 itemUrl 是否匹配
|
|
15
3
|
if (itemUrl && pathName.includes(itemUrl)) {
|
|
16
4
|
const urlLength = itemUrl.length;
|
|
17
5
|
if (!bestMatch || urlLength > bestMatch.urlLength) {
|
|
18
|
-
return {
|
|
19
|
-
keyIdPath,
|
|
20
|
-
urlLength
|
|
21
|
-
};
|
|
6
|
+
return { keyIdPath, urlLength };
|
|
22
7
|
}
|
|
23
8
|
}
|
|
24
|
-
|
|
25
|
-
// 检查 itemRedirectUrl 是否匹配
|
|
26
9
|
if (itemRedirectUrl && pathName.includes(itemRedirectUrl)) {
|
|
27
10
|
const urlLength = itemRedirectUrl.length;
|
|
28
11
|
if (!bestMatch || urlLength > bestMatch.urlLength) {
|
|
29
|
-
return {
|
|
30
|
-
keyIdPath,
|
|
31
|
-
urlLength
|
|
32
|
-
};
|
|
12
|
+
return { keyIdPath, urlLength };
|
|
33
13
|
}
|
|
34
14
|
}
|
|
35
15
|
return bestMatch;
|
|
36
16
|
};
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* 通过URL获取对应keyIdPath
|
|
40
|
-
* @param menus 菜单数据
|
|
41
|
-
* @param activeMenu 上一次激活url地址
|
|
42
|
-
* @return result
|
|
43
|
-
*/
|
|
44
|
-
export const getIdsByPathName = (menus, activeMenu) => {
|
|
17
|
+
const getIdsByPathName = (menus, activeMenu) => {
|
|
45
18
|
const _pathName = activeMenu || window.location.pathname;
|
|
46
19
|
let result;
|
|
47
20
|
let bestMatch = null;
|
|
48
|
-
const menuDeep = menuDeepItem => {
|
|
21
|
+
const menuDeep = (menuDeepItem) => {
|
|
22
|
+
var _a, _b;
|
|
49
23
|
for (let i = 0; i <= menuDeepItem.length - 1; i++) {
|
|
50
24
|
const item = menuDeepItem[i];
|
|
51
|
-
const itemUrl = item
|
|
52
|
-
const itemRedirectUrl = item
|
|
53
|
-
|
|
54
|
-
// 精确匹配:完全相等时直接返回
|
|
55
|
-
if (item?.url === _pathName || item.redirectUrl === _pathName) {
|
|
25
|
+
const itemUrl = ((_a = item == null ? void 0 : item.url) == null ? void 0 : _a.split("?")[0]) || "";
|
|
26
|
+
const itemRedirectUrl = ((_b = item == null ? void 0 : item.redirectUrl) == null ? void 0 : _b.split("?")[0]) || "";
|
|
27
|
+
if ((item == null ? void 0 : item.url) === _pathName || item.redirectUrl === _pathName) {
|
|
56
28
|
result = item.keyIdPath;
|
|
57
29
|
return;
|
|
58
30
|
}
|
|
59
|
-
|
|
60
|
-
// 如果有子菜单,递归查找
|
|
61
31
|
const hasChildren = Array.isArray(item.children) && item.children.length;
|
|
62
32
|
if (hasChildren) {
|
|
63
33
|
menuDeep(item.children);
|
|
64
|
-
// 如果递归后找到了精确匹配,直接返回
|
|
65
34
|
if (result) {
|
|
66
35
|
return;
|
|
67
36
|
}
|
|
68
37
|
continue;
|
|
69
38
|
}
|
|
70
|
-
|
|
71
|
-
// 叶子节点:使用最长匹配策略选择最精确的匹配
|
|
72
39
|
bestMatch = updateBestMatch(_pathName, itemUrl, itemRedirectUrl, item.keyIdPath, bestMatch);
|
|
73
40
|
}
|
|
74
41
|
};
|
|
75
42
|
menuDeep(menus);
|
|
76
|
-
|
|
77
|
-
// 如果没有精确匹配,使用最佳模糊匹配
|
|
78
|
-
return result || bestMatch?.keyIdPath || [];
|
|
43
|
+
return result || (bestMatch == null ? void 0 : bestMatch.keyIdPath) || [];
|
|
79
44
|
};
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* 转换菜单数据源评价keyUrlPath与keyIdPath
|
|
83
|
-
* @param menuData 菜单数据源
|
|
84
|
-
* @returns []
|
|
85
|
-
*/
|
|
86
|
-
export const transformMenu = (menuData, pathPrefix) => {
|
|
45
|
+
const transformMenu = (menuData, pathPrefix) => {
|
|
87
46
|
const data = [...menuData];
|
|
88
|
-
const menuDeep = menuDeepItem => {
|
|
47
|
+
const menuDeep = (menuDeepItem) => {
|
|
48
|
+
var _a, _b, _c;
|
|
89
49
|
if (!Array.isArray(menuDeepItem) || !menuDeepItem.length) {
|
|
90
50
|
return [];
|
|
91
51
|
}
|
|
@@ -93,27 +53,23 @@ export const transformMenu = (menuData, pathPrefix) => {
|
|
|
93
53
|
const item = menuDeepItem[i];
|
|
94
54
|
item.code = item.code || item.id;
|
|
95
55
|
item.url = `${pathPrefix}${item.url}`;
|
|
96
|
-
item.redirectUrl = item
|
|
97
|
-
|
|
98
|
-
if (item?.keyUrlPath?.length) {
|
|
56
|
+
item.redirectUrl = (item == null ? void 0 : item.redirectUrl) ? `${pathPrefix}${item.redirectUrl}` : "";
|
|
57
|
+
if ((_a = item == null ? void 0 : item.keyUrlPath) == null ? void 0 : _a.length) {
|
|
99
58
|
item.keyUrlPath.push(item.redirectUrl || item.url);
|
|
100
|
-
// 去重解决重复问题
|
|
101
59
|
item.keyUrlPath = [...new Set(item.keyUrlPath)];
|
|
102
60
|
} else {
|
|
103
61
|
item.keyUrlPath = [item.redirectUrl || item.url];
|
|
104
62
|
}
|
|
105
|
-
if (item
|
|
63
|
+
if ((_b = item == null ? void 0 : item.keyIdPath) == null ? void 0 : _b.length) {
|
|
106
64
|
item.keyIdPath.push(item.id);
|
|
107
|
-
// 去重解决重复问题
|
|
108
65
|
item.keyIdPath = [...new Set(item.keyIdPath)];
|
|
109
66
|
} else {
|
|
110
67
|
item.keyIdPath = [item.id];
|
|
111
68
|
}
|
|
112
|
-
if (![
|
|
69
|
+
if (!["PAGE", "MENU"].includes(item.type)) {
|
|
113
70
|
menuDeepItem.splice(i, 1);
|
|
114
|
-
} else if (Array.isArray(item
|
|
115
|
-
|
|
116
|
-
item.children.forEach(childrenItem => {
|
|
71
|
+
} else if (Array.isArray(item == null ? void 0 : item.children) && ((_c = item == null ? void 0 : item.children) == null ? void 0 : _c.length)) {
|
|
72
|
+
item.children.forEach((childrenItem) => {
|
|
117
73
|
childrenItem.keyUrlPath = [...item.keyUrlPath];
|
|
118
74
|
childrenItem.keyIdPath = [...item.keyIdPath];
|
|
119
75
|
});
|
|
@@ -124,19 +80,11 @@ export const transformMenu = (menuData, pathPrefix) => {
|
|
|
124
80
|
menuDeep(data);
|
|
125
81
|
return data;
|
|
126
82
|
};
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
* @param data 菜单数据源
|
|
131
|
-
* @returns []
|
|
132
|
-
*/
|
|
133
|
-
export const transformMenus = (data, pathPrefix) => {
|
|
134
|
-
if (_isPlainObject(data)) {
|
|
135
|
-
// @ts-ignore
|
|
136
|
-
if (!Array.isArray(data?.menus)) {
|
|
83
|
+
const transformMenus = (data, pathPrefix) => {
|
|
84
|
+
if (isPlainObject(data)) {
|
|
85
|
+
if (!Array.isArray(data == null ? void 0 : data.menus)) {
|
|
137
86
|
return [];
|
|
138
87
|
}
|
|
139
|
-
// @ts-ignore
|
|
140
88
|
data.menus = transformMenu(data.menus, pathPrefix);
|
|
141
89
|
return data;
|
|
142
90
|
}
|
|
@@ -145,23 +93,15 @@ export const transformMenus = (data, pathPrefix) => {
|
|
|
145
93
|
}
|
|
146
94
|
return data;
|
|
147
95
|
};
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
* @param name 参数key
|
|
152
|
-
* @returns string
|
|
153
|
-
*/
|
|
154
|
-
export function getUrlParams(name) {
|
|
155
|
-
const {
|
|
156
|
-
search
|
|
157
|
-
} = window.location;
|
|
158
|
-
const tmpArray = search.substr(1, search.length).split('&');
|
|
96
|
+
function getUrlParams(name) {
|
|
97
|
+
const { search } = window.location;
|
|
98
|
+
const tmpArray = search.substr(1, search.length).split("&");
|
|
159
99
|
let paramsObj = {};
|
|
160
100
|
if (tmpArray != null) {
|
|
161
101
|
for (let i = 0; i < tmpArray.length; i++) {
|
|
162
|
-
const reg = /[=|^==]/;
|
|
163
|
-
const set1 = tmpArray[i].replace(reg,
|
|
164
|
-
const tmpStr2 = set1.split(
|
|
102
|
+
const reg = /[=|^==]/;
|
|
103
|
+
const set1 = tmpArray[i].replace(reg, "&");
|
|
104
|
+
const tmpStr2 = set1.split("&");
|
|
165
105
|
const array = {};
|
|
166
106
|
array[tmpStr2[0]] = tmpStr2[1];
|
|
167
107
|
paramsObj = {
|
|
@@ -170,79 +110,59 @@ export function getUrlParams(name) {
|
|
|
170
110
|
};
|
|
171
111
|
}
|
|
172
112
|
}
|
|
173
|
-
|
|
174
|
-
return paramsObj[name] ? decodeURIComponent(paramsObj[name]) : '';
|
|
113
|
+
return paramsObj[name] ? decodeURIComponent(paramsObj[name]) : "";
|
|
175
114
|
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* 通过URL获取对应keyIdPath
|
|
179
|
-
* @param menus 菜单数据
|
|
180
|
-
* @param pathName url地址
|
|
181
|
-
* @param routerMatch 匹配模式id & url
|
|
182
|
-
*/
|
|
183
|
-
export const getPathNameKey = ({
|
|
184
|
-
menus,
|
|
185
|
-
pathName
|
|
186
|
-
}) => {
|
|
115
|
+
const getPathNameKey = ({ menus, pathName }) => {
|
|
187
116
|
let result;
|
|
188
117
|
let bestMatch = null;
|
|
189
|
-
const menuDeep = menuDeepItem => {
|
|
118
|
+
const menuDeep = (menuDeepItem) => {
|
|
119
|
+
var _a, _b;
|
|
190
120
|
if (!Array.isArray(menuDeepItem) || !menuDeepItem.length) {
|
|
191
121
|
return;
|
|
192
122
|
}
|
|
193
123
|
for (let i = 0; i <= menuDeepItem.length - 1; i++) {
|
|
194
124
|
const item = menuDeepItem[i];
|
|
195
|
-
|
|
196
|
-
// 跳过无效的菜单项
|
|
197
125
|
if (!Array.isArray(item.keyUrlPath) || !item.keyUrlPath.length) {
|
|
198
126
|
continue;
|
|
199
127
|
}
|
|
200
|
-
const itemUrl = item
|
|
201
|
-
const itemRedirectUrl = item
|
|
202
|
-
|
|
203
|
-
// 精确匹配:完全相等时直接返回
|
|
204
|
-
if (item?.url === pathName || item?.redirectUrl === pathName) {
|
|
128
|
+
const itemUrl = ((_a = item == null ? void 0 : item.url) == null ? void 0 : _a.split("?")[0]) || "";
|
|
129
|
+
const itemRedirectUrl = ((_b = item == null ? void 0 : item.redirectUrl) == null ? void 0 : _b.split("?")[0]) || "";
|
|
130
|
+
if ((item == null ? void 0 : item.url) === pathName || (item == null ? void 0 : item.redirectUrl) === pathName) {
|
|
205
131
|
result = item.keyIdPath;
|
|
206
132
|
return;
|
|
207
133
|
}
|
|
208
|
-
|
|
209
|
-
// 如果有子菜单,递归查找
|
|
210
134
|
const hasChildren = Array.isArray(item.children) && item.children.length;
|
|
211
135
|
if (hasChildren) {
|
|
212
136
|
menuDeep(item.children);
|
|
213
|
-
// 如果递归后找到了精确匹配,直接返回
|
|
214
137
|
if (result) {
|
|
215
138
|
return;
|
|
216
139
|
}
|
|
217
140
|
continue;
|
|
218
141
|
}
|
|
219
|
-
|
|
220
|
-
// 叶子节点:使用最长匹配策略选择最精确的匹配
|
|
221
142
|
bestMatch = updateBestMatch(pathName, itemUrl, itemRedirectUrl, item.keyIdPath, bestMatch);
|
|
222
143
|
}
|
|
223
144
|
};
|
|
224
145
|
menuDeep(menus);
|
|
225
|
-
|
|
226
|
-
// 如果没有精确匹配,使用最佳模糊匹配
|
|
227
|
-
return result || bestMatch?.keyIdPath;
|
|
146
|
+
return result || (bestMatch == null ? void 0 : bestMatch.keyIdPath);
|
|
228
147
|
};
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* 根据key查找完整的菜单项数据
|
|
232
|
-
* @param menus 菜单数据数组
|
|
233
|
-
* @param key 要查找的菜单项key
|
|
234
|
-
* @returns 找到的菜单项数据或null
|
|
235
|
-
*/
|
|
236
|
-
export const findMenuItemByKey = (menus, key) => {
|
|
237
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
148
|
+
const findMenuItemByKey = (menus, key) => {
|
|
238
149
|
for (const item of menus) {
|
|
239
150
|
if (String(item.id) === key) {
|
|
240
151
|
return item;
|
|
241
152
|
}
|
|
242
153
|
if (Array.isArray(item.children) && item.children.length) {
|
|
243
154
|
const found = findMenuItemByKey(item.children, key);
|
|
244
|
-
if (found)
|
|
155
|
+
if (found)
|
|
156
|
+
return found;
|
|
245
157
|
}
|
|
246
158
|
}
|
|
247
159
|
return null;
|
|
248
|
-
};
|
|
160
|
+
};
|
|
161
|
+
export {
|
|
162
|
+
findMenuItemByKey,
|
|
163
|
+
getIdsByPathName,
|
|
164
|
+
getPathNameKey,
|
|
165
|
+
getUrlParams,
|
|
166
|
+
transformMenu,
|
|
167
|
+
transformMenus
|
|
168
|
+
};
|
|
@@ -1,40 +1,41 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
const AdaptiveTooltip = ({
|
|
5
|
-
|
|
6
|
-
}) => {
|
|
7
|
-
const [placement, setPlacement] = useState('right');
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Tooltip } from "antd";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
const AdaptiveTooltip = ({ children }) => {
|
|
5
|
+
const [placement, setPlacement] = useState("right");
|
|
8
6
|
useEffect(() => {
|
|
9
7
|
const handleResize = () => {
|
|
10
|
-
const tooltipElement = document.getElementById(
|
|
8
|
+
const tooltipElement = document.getElementById("adaptive-tooltip");
|
|
11
9
|
if (tooltipElement) {
|
|
12
10
|
const boundingRect = tooltipElement.getBoundingClientRect();
|
|
13
11
|
const windowWidth = window.innerWidth;
|
|
14
12
|
if (windowWidth - boundingRect.right < 150) {
|
|
15
|
-
setPlacement(
|
|
13
|
+
setPlacement("left");
|
|
16
14
|
} else {
|
|
17
|
-
setPlacement(
|
|
15
|
+
setPlacement("right");
|
|
18
16
|
}
|
|
19
17
|
}
|
|
20
18
|
};
|
|
21
|
-
window.addEventListener(
|
|
19
|
+
window.addEventListener("resize", handleResize);
|
|
22
20
|
handleResize();
|
|
23
21
|
return () => {
|
|
24
|
-
window.removeEventListener(
|
|
22
|
+
window.removeEventListener("resize", handleResize);
|
|
25
23
|
};
|
|
26
24
|
}, [children]);
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
25
|
+
return /* @__PURE__ */ jsx(
|
|
26
|
+
Tooltip,
|
|
27
|
+
{
|
|
28
|
+
placement,
|
|
29
|
+
title: /* @__PURE__ */ jsx("div", { onMouseDown: (e) => e.stopPropagation(), children }),
|
|
30
|
+
id: "adaptive-tooltip",
|
|
31
|
+
children: /* @__PURE__ */ jsxs("span", { className: "pro-select-ellipse", children: [
|
|
32
|
+
" ",
|
|
33
|
+
children
|
|
34
|
+
] })
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
var AdaptiveTooltip_default = AdaptiveTooltip;
|
|
39
|
+
export {
|
|
40
|
+
AdaptiveTooltip_default as default
|
|
39
41
|
};
|
|
40
|
-
export default AdaptiveTooltip;
|