zmdms-webui 0.0.39 → 0.0.40
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/es/applayoutheader/appLayoutHeader.d.ts +0 -1
- package/dist/es/applayoutheader/appLayoutHeader.js +2 -2
- package/dist/es/applayoutheader/setting/index.js +2 -2
- package/dist/es/applayoutheader/setting/userInfo.js +4 -1
- package/dist/es/applayoutsider/LayoutSiderContext.js +7 -0
- package/dist/es/applayoutsider/appLayoutSider.d.ts +0 -6
- package/dist/es/applayoutsider/appLayoutSider.js +12 -3
- package/dist/es/applayoutsider/menu/MainMenu.js +14 -8
- package/dist/es/applayoutsider/menu/SubMenu.js +29 -6
- package/dist/es/applayoutsider/menu/hook.js +122 -0
- package/dist/es/applayoutsider/menu/index.js +3 -18
- package/dist/es/config/LayoutContext.d.ts +22 -0
- package/dist/es/config/LayoutContext.js +6 -0
- package/dist/es/descriptions/descriptions.js +1 -1
- package/dist/es/formitem/formItem.js +4 -8
- package/dist/index.build.d.ts +1 -0
- package/dist/index.dark.css +1 -1
- package/dist/index.default.css +1 -1
- package/dist/index.es.js +1 -0
- package/dist/index.umd.js +2 -2
- package/package.json +1 -1
|
@@ -6,9 +6,9 @@ import SettingCom from './setting/index.js';
|
|
|
6
6
|
import { Layout } from 'antd';
|
|
7
7
|
|
|
8
8
|
var AppLayoutHeader = function (_a) {
|
|
9
|
-
var tabs = _a.tabs, activeTab = _a.activeTab, deleteTabHandle = _a.deleteTabHandle, deleteTabsHandle = _a.deleteTabsHandle, setActiveTab = _a.setActiveTab,
|
|
9
|
+
var tabs = _a.tabs, activeTab = _a.activeTab, deleteTabHandle = _a.deleteTabHandle, deleteTabsHandle = _a.deleteTabsHandle, setActiveTab = _a.setActiveTab, logout = _a.logout;
|
|
10
10
|
// console.log("layout-header- rerender");
|
|
11
|
-
return (jsxs(Layout.Header, __assign({ className: "zmdms-content--header" }, { children: [jsx(TabsCom, { tabs: tabs, activeTab: activeTab, deleteTabHandle: deleteTabHandle, deleteTabsHandle: deleteTabsHandle, setActiveTab: setActiveTab }), jsx(SettingCom, {
|
|
11
|
+
return (jsxs(Layout.Header, __assign({ className: "zmdms-content--header" }, { children: [jsx(TabsCom, { tabs: tabs, activeTab: activeTab, deleteTabHandle: deleteTabHandle, deleteTabsHandle: deleteTabsHandle, setActiveTab: setActiveTab }), jsx(SettingCom, { logout: logout })] })));
|
|
12
12
|
};
|
|
13
13
|
AppLayoutHeader.displayName = "ZTXK_WEBUI_AppLayoutHeader";
|
|
14
14
|
var AppLayoutHeader$1 = memo(AppLayoutHeader);
|
|
@@ -4,8 +4,8 @@ import FullCom from './fullCom.js';
|
|
|
4
4
|
import UserInfo from './userInfo.js';
|
|
5
5
|
|
|
6
6
|
var SettingCom = function (_a) {
|
|
7
|
-
var
|
|
8
|
-
return (jsxs("div", __assign({ className: "zmdms-content--header-info" }, { children: [jsx(FullCom, {}), jsx(UserInfo, {
|
|
7
|
+
var logout = _a.logout;
|
|
8
|
+
return (jsxs("div", __assign({ className: "zmdms-content--header-info" }, { children: [jsx(FullCom, {}), jsx(UserInfo, { logout: logout })] })));
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export { SettingCom as default };
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { __assign } from '../../_virtual/_tslib.js';
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useContext } from 'react';
|
|
4
|
+
import LayoutContext from '../../config/LayoutContext.js';
|
|
3
5
|
import UserOutlined from '../../node_modules/@ant-design/icons/es/icons/UserOutlined.js';
|
|
4
6
|
import UnlockOutlined from '../../node_modules/@ant-design/icons/es/icons/UnlockOutlined.js';
|
|
5
7
|
import LogoutOutlined from '../../node_modules/@ant-design/icons/es/icons/LogoutOutlined.js';
|
|
6
8
|
import { Dropdown } from 'antd';
|
|
7
9
|
|
|
8
10
|
var UserInfo = function (_a) {
|
|
9
|
-
var
|
|
11
|
+
var logout = _a.logout;
|
|
12
|
+
var userInfo = useContext(LayoutContext).userInfo;
|
|
10
13
|
var items = [
|
|
11
14
|
{
|
|
12
15
|
label: (jsxs("div", { children: [jsx(UserOutlined, { style: { marginRight: 5 } }), " \u8D26\u53F7\u4FE1\u606F"] })),
|
|
@@ -3,15 +3,9 @@ import React__default from 'react';
|
|
|
3
3
|
interface ILayoutSiderProps {
|
|
4
4
|
siderWidth?: number;
|
|
5
5
|
subMenuWidth?: number;
|
|
6
|
-
userMenus?: any;
|
|
7
|
-
userSubMenus?: any;
|
|
8
6
|
addTab?: any;
|
|
9
7
|
siderBg?: any;
|
|
10
8
|
logo?: any;
|
|
11
|
-
/**
|
|
12
|
-
* 微应用列表,在qiankun下有用 需要拼接路由前缀
|
|
13
|
-
*/
|
|
14
|
-
apps?: any;
|
|
15
9
|
}
|
|
16
10
|
declare const _default: React__default.NamedExoticComponent<ILayoutSiderProps>;
|
|
17
11
|
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { __assign } from '../_virtual/_tslib.js';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { memo, useRef, useCallback } from 'react';
|
|
3
|
+
import { memo, useContext, useState, useRef, useCallback } from 'react';
|
|
4
4
|
import Menu from './menu/index.js';
|
|
5
|
+
import { LayoutMenuContext } from './LayoutSiderContext.js';
|
|
6
|
+
import LayoutContext from '../config/LayoutContext.js';
|
|
5
7
|
import { Layout } from 'antd';
|
|
6
8
|
|
|
9
|
+
/**
|
|
10
|
+
* TODO: 增加收藏、搜索菜单的功能
|
|
11
|
+
*/
|
|
7
12
|
var AppLayoutSider = function (props) {
|
|
8
13
|
// console.log("layout-sider- rerender");
|
|
9
|
-
var _a = props.siderWidth, siderWidth = _a === void 0 ? 118 : _a, _b = props.subMenuWidth, subMenuWidth = _b === void 0 ? 162 : _b,
|
|
14
|
+
var _a = props.siderWidth, siderWidth = _a === void 0 ? 118 : _a, _b = props.subMenuWidth, subMenuWidth = _b === void 0 ? 162 : _b, addTab = props.addTab, siderBg = props.siderBg, logo = props.logo;
|
|
15
|
+
// 微应用信息
|
|
16
|
+
var apps = useContext(LayoutContext).apps;
|
|
17
|
+
// 当前选中的主菜单item
|
|
18
|
+
var _c = useState([]), mainMenuSelectedKeys = _c[0], setMainMenuSelectedKeys = _c[1];
|
|
10
19
|
var layoutSiderRef = useRef();
|
|
11
20
|
// 通过系统id获取前缀
|
|
12
21
|
var getPrefixByAppId = useCallback(function (id) {
|
|
@@ -20,7 +29,7 @@ var AppLayoutSider = function (props) {
|
|
|
20
29
|
}, [apps]);
|
|
21
30
|
return (jsx(Layout.Sider, __assign({ className: "zmdms-sider", collapsedWidth: "0", collapsible: true, trigger: null, width: siderWidth, ref: layoutSiderRef, style: {
|
|
22
31
|
backgroundImage: "url(".concat(siderBg, ")"),
|
|
23
|
-
} }, { children: jsx(
|
|
32
|
+
} }, { children: jsx(LayoutMenuContext.Provider, __assign({ value: { mainMenuSelectedKeys: mainMenuSelectedKeys, setMainMenuSelectedKeys: setMainMenuSelectedKeys } }, { children: jsx(Menu, { width: siderWidth, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, logo: logo, getPrefixByAppId: getPrefixByAppId }) })) })));
|
|
24
33
|
};
|
|
25
34
|
AppLayoutSider.displayName = "ZTXK_WEBUI_AppLayoutSider";
|
|
26
35
|
var AppLayoutSider$1 = memo(AppLayoutSider);
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { __assign } from '../../_virtual/_tslib.js';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { useCallback, useMemo } from 'react';
|
|
3
|
+
import { useContext, useCallback, useMemo } from 'react';
|
|
4
4
|
import { Link } from 'react-router-dom';
|
|
5
|
+
import { useMainMenuOpenKeys } from './hook.js';
|
|
6
|
+
import { LayoutMenuContext } from '../LayoutSiderContext.js';
|
|
7
|
+
import LayoutContext from '../../config/LayoutContext.js';
|
|
5
8
|
import IconFont from '../../icon/index.js';
|
|
6
9
|
import { Menu } from 'antd';
|
|
7
10
|
|
|
8
11
|
var MainMenu = function (props) {
|
|
9
|
-
var
|
|
12
|
+
var onMouseEnter = props.onMouseEnter, addTab = props.addTab, getPrefixByAppId = props.getPrefixByAppId;
|
|
13
|
+
var _a = useContext(LayoutContext), userMenus = _a.userMenus, apps = _a.apps;
|
|
14
|
+
var _b = useContext(LayoutMenuContext), mainMenuSelectedKeys = _b.mainMenuSelectedKeys, setMainMenuSelectedKeys = _b.setMainMenuSelectedKeys;
|
|
15
|
+
// 获取主菜单展开的内容
|
|
16
|
+
var _c = useMainMenuOpenKeys(userMenus, mainMenuSelectedKeys, { apps: apps }), mainMenuOpenKeys = _c.mainMenuOpenKeys, onMainMenuOpenChange = _c.onMainMenuOpenChange;
|
|
10
17
|
// 创建主菜单标签
|
|
11
18
|
var getLabel = useCallback(function (menuItem) {
|
|
12
19
|
// 获取当前菜单的系统id
|
|
@@ -75,12 +82,11 @@ var MainMenu = function (props) {
|
|
|
75
82
|
};
|
|
76
83
|
});
|
|
77
84
|
}, [userMenus, getLabel]);
|
|
78
|
-
//
|
|
79
|
-
var
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return (jsx(Menu, { className: "zmdms-menu--main", items: items, inlineIndent: 10, mode: "inline", onMouseEnter: onMouseEnter, onClick: onClickHandle }));
|
|
85
|
+
// 主菜单选中时调用
|
|
86
|
+
var onSelectHandle = useCallback(function (info) {
|
|
87
|
+
setMainMenuSelectedKeys && setMainMenuSelectedKeys(info.selectedKeys);
|
|
88
|
+
}, [setMainMenuSelectedKeys]);
|
|
89
|
+
return (jsx(Menu, { className: "zmdms-menu--main", items: items, inlineIndent: 10, mode: "inline", onMouseEnter: onMouseEnter, selectedKeys: mainMenuSelectedKeys, onSelect: onSelectHandle, openKeys: mainMenuOpenKeys, onOpenChange: onMainMenuOpenChange }));
|
|
84
90
|
};
|
|
85
91
|
|
|
86
92
|
export { MainMenu as default };
|
|
@@ -1,17 +1,39 @@
|
|
|
1
1
|
import { __assign } from '../../_virtual/_tslib.js';
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { memo, forwardRef, useState, useCallback, useImperativeHandle
|
|
3
|
+
import { memo, forwardRef, useContext, useMemo, useState, useCallback, useImperativeHandle } from 'react';
|
|
4
4
|
import { Link } from 'react-router-dom';
|
|
5
|
+
import { useSubMenuOpenKeys } from './hook.js';
|
|
6
|
+
import { LayoutMenuContext } from '../LayoutSiderContext.js';
|
|
7
|
+
import LayoutContext from '../../config/LayoutContext.js';
|
|
5
8
|
import ButtonCom from '../../button/button.js';
|
|
6
9
|
import IconFont from '../../icon/index.js';
|
|
7
10
|
import { Drawer, Menu } from 'antd';
|
|
8
11
|
|
|
12
|
+
var defaultSubMenu = [];
|
|
9
13
|
var SubMenu = function (props, ref) {
|
|
10
|
-
var marginLeft = props.marginLeft,
|
|
14
|
+
var marginLeft = props.marginLeft, subMenuWidth = props.subMenuWidth, layoutSiderRef = props.layoutSiderRef, addTab = props.addTab, getPrefixByAppId = props.getPrefixByAppId;
|
|
15
|
+
var _a = useContext(LayoutContext), activeTab = _a.activeTab, userSubMenus = _a.userSubMenus;
|
|
16
|
+
var _b = useContext(LayoutMenuContext), mainMenuSelectedKeys = _b.mainMenuSelectedKeys, setMainMenuSelectedKeys = _b.setMainMenuSelectedKeys;
|
|
17
|
+
// 二级菜单当前选中项
|
|
18
|
+
var subMenusSelectedKeys = useMemo(function () {
|
|
19
|
+
return activeTab ? [activeTab] : [];
|
|
20
|
+
}, [activeTab]);
|
|
21
|
+
// 根据主菜单当前选中项,设置二级菜单应该展示的内容
|
|
22
|
+
var subMenus = useMemo(function () {
|
|
23
|
+
if (mainMenuSelectedKeys && mainMenuSelectedKeys.length > 0) {
|
|
24
|
+
return userSubMenus[mainMenuSelectedKeys[0]];
|
|
25
|
+
}
|
|
26
|
+
return defaultSubMenu;
|
|
27
|
+
}, [mainMenuSelectedKeys, userSubMenus]);
|
|
28
|
+
// 展开指定的二级菜单
|
|
29
|
+
var _c = useSubMenuOpenKeys(userSubMenus, activeTab, {
|
|
30
|
+
getPrefixByAppId: getPrefixByAppId,
|
|
31
|
+
setMainMenuSelectedKeys: setMainMenuSelectedKeys,
|
|
32
|
+
}), subMenuOpenKeys = _c.subMenuOpenKeys, onSubMenuOpenChange = _c.onSubMenuOpenChange;
|
|
11
33
|
// 二级菜单是否显示
|
|
12
|
-
var
|
|
34
|
+
var _d = useState(), visible = _d[0], setVisible = _d[1];
|
|
13
35
|
// 二级菜单是否固定
|
|
14
|
-
var
|
|
36
|
+
var _e = useState(), isFixed = _e[0], setIsFixed = _e[1];
|
|
15
37
|
var onToggleSubMenuFixed = useCallback(function () {
|
|
16
38
|
setIsFixed(function (preFixed) {
|
|
17
39
|
layoutSiderRef.current.style.marginRight = !preFixed
|
|
@@ -57,7 +79,8 @@ var SubMenu = function (props, ref) {
|
|
|
57
79
|
});
|
|
58
80
|
} }, { children: menuItem.name }))),
|
|
59
81
|
title: menuItem.name,
|
|
60
|
-
key: menuItem.id,
|
|
82
|
+
// key: menuItem.id,
|
|
83
|
+
key: newPath === "/" ? menuItem.id : newPath,
|
|
61
84
|
// icon: menuItem.source ? (
|
|
62
85
|
// <Icon type={menuItem.source} style={{ fontSize: "18px" }} />
|
|
63
86
|
// ) : null,
|
|
@@ -73,7 +96,7 @@ var SubMenu = function (props, ref) {
|
|
|
73
96
|
var newSubMenusItems = dfn(subMenus);
|
|
74
97
|
return newSubMenusItems;
|
|
75
98
|
}, [subMenus, addTab, getPrefixByAppId]);
|
|
76
|
-
return (jsx(Drawer, __assign({ mask: false, placement: "left", width: subMenuWidth, zIndex: 99, closable: false, open: visible, className: "zmdms-menu--sub", style: { marginLeft: marginLeft }, footer: footerDom }, { children: jsx(Menu, { inlineIndent: 10, mode: "inline", items: items }) })));
|
|
99
|
+
return (jsx(Drawer, __assign({ mask: false, placement: "left", width: subMenuWidth, zIndex: 99, closable: false, open: visible, className: "zmdms-menu--sub", style: { marginLeft: marginLeft }, footer: footerDom }, { children: jsx(Menu, { inlineIndent: 10, selectedKeys: subMenusSelectedKeys, mode: "inline", items: items, openKeys: subMenuOpenKeys, onOpenChange: onSubMenuOpenChange }) })));
|
|
77
100
|
};
|
|
78
101
|
var SubMenu$1 = memo(forwardRef(SubMenu));
|
|
79
102
|
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { useState, useEffect, useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
// 需要打开的主菜单
|
|
4
|
+
function useMainMenuOpenKeys(userMenus, mainMenuSelectedKeys, options) {
|
|
5
|
+
var apps = options.apps;
|
|
6
|
+
var firstInRef = useRef(true);
|
|
7
|
+
// 展开指定的主菜单
|
|
8
|
+
var _a = useState([]), openKeys = _a[0], setOpenKeys = _a[1];
|
|
9
|
+
var onOpenChange = function (openKeys) {
|
|
10
|
+
firstInRef.current = false;
|
|
11
|
+
setOpenKeys(openKeys);
|
|
12
|
+
};
|
|
13
|
+
useEffect(function () {
|
|
14
|
+
// 如果不是基座,那么不需要展开功能
|
|
15
|
+
if (!apps) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
// 获取当前选中项的父级节点
|
|
19
|
+
if (!userMenus || !Array.isArray(userMenus)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// 如果是第一次进来,默认打开所有菜单
|
|
23
|
+
if (firstInRef.current) {
|
|
24
|
+
setOpenKeys(userMenus.map(function (userMenu) { return userMenu.id + ""; }));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// 遍历主菜单,找到当前选中项对应的父级菜单
|
|
28
|
+
var selectedKey = mainMenuSelectedKeys && mainMenuSelectedKeys.length > 0
|
|
29
|
+
? mainMenuSelectedKeys[0]
|
|
30
|
+
: "";
|
|
31
|
+
if (!selectedKey) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
userMenus.find(function (userMenu) {
|
|
35
|
+
var userMenuChild = userMenu.children;
|
|
36
|
+
if (!userMenuChild) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
return userMenuChild.find(function (item) {
|
|
40
|
+
if (item.id === selectedKey) {
|
|
41
|
+
// 如果是单点登录,那么打开选中的菜单
|
|
42
|
+
// 或者不是第一次点击
|
|
43
|
+
if (!firstInRef.current) {
|
|
44
|
+
setOpenKeys([item.parentId + ""]);
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}, [userMenus, mainMenuSelectedKeys, apps]);
|
|
52
|
+
return {
|
|
53
|
+
mainMenuOpenKeys: openKeys,
|
|
54
|
+
onMainMenuOpenChange: onOpenChange,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// 需要打开的二级菜单
|
|
58
|
+
function useSubMenuOpenKeys(userSubMenus, activeTab, options) {
|
|
59
|
+
var getPrefixByAppId = options.getPrefixByAppId, setMainMenuSelectedKeys = options.setMainMenuSelectedKeys;
|
|
60
|
+
// 展开指定的二级菜单
|
|
61
|
+
var _a = useState([]), openKeys = _a[0], setOpenKeys = _a[1];
|
|
62
|
+
var onOpenChange = function (openKeys) {
|
|
63
|
+
setOpenKeys(openKeys);
|
|
64
|
+
};
|
|
65
|
+
// 选中的页签 需要展开指定的父级菜单
|
|
66
|
+
useEffect(function () {
|
|
67
|
+
if (!userSubMenus) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// 遍历二级菜单
|
|
71
|
+
for (var _i = 0, _a = Object.entries(userSubMenus); _i < _a.length; _i++) {
|
|
72
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
73
|
+
if (!Array.isArray(value)) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
// 存放当前二级菜单的值
|
|
77
|
+
// let currentSubMenu: any = null;
|
|
78
|
+
var result = value.find(function (subMenuVal) {
|
|
79
|
+
var system = subMenuVal.system, path = subMenuVal.path;
|
|
80
|
+
var prefix = getPrefixByAppId(system);
|
|
81
|
+
// 二级菜单如果没有配置路由的 不需要跳转
|
|
82
|
+
var newPath = path === "/" ? "/" : prefix ? "/".concat(prefix).concat(path) : path;
|
|
83
|
+
// 如果值相等的话,说明这个就是目标值
|
|
84
|
+
// 即父级就是当前选中项
|
|
85
|
+
if (newPath === activeTab) {
|
|
86
|
+
// currentSubMenu = { ...subMenuVal };
|
|
87
|
+
// 这里可能有点问题 应该是当前的id
|
|
88
|
+
setOpenKeys([subMenuVal.parentId]);
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
// 如果没有子元素,或者子元素不是数组 直接下一轮遍历
|
|
92
|
+
if (!subMenuVal.children || !Array.isArray(subMenuVal.children)) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
return subMenuVal.children.find(function (item) {
|
|
96
|
+
var system = item.system, path = item.path;
|
|
97
|
+
var prefix = getPrefixByAppId(system);
|
|
98
|
+
// 二级菜单如果没有配置路由的 不需要跳转
|
|
99
|
+
var newPath = path === "/" ? "/" : prefix ? "/".concat(prefix).concat(path) : path;
|
|
100
|
+
if (newPath === activeTab) {
|
|
101
|
+
// currentSubMenu = { ...item };
|
|
102
|
+
setOpenKeys([item.parentId]);
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
// 找到当前路由 对应的二级菜单 提前结束循环
|
|
109
|
+
if (result) {
|
|
110
|
+
// 设置一级菜单选中的key
|
|
111
|
+
setMainMenuSelectedKeys && setMainMenuSelectedKeys([key]);
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}, [userSubMenus, activeTab, getPrefixByAppId, setMainMenuSelectedKeys]);
|
|
116
|
+
return {
|
|
117
|
+
subMenuOpenKeys: openKeys,
|
|
118
|
+
onSubMenuOpenChange: onOpenChange,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export { useMainMenuOpenKeys, useSubMenuOpenKeys };
|
|
@@ -1,40 +1,25 @@
|
|
|
1
1
|
import { __assign } from '../../_virtual/_tslib.js';
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { memo, useRef,
|
|
3
|
+
import { memo, useRef, useCallback } from 'react';
|
|
4
4
|
import Logo from './Logo.js';
|
|
5
5
|
import MainMenu from './MainMenu.js';
|
|
6
6
|
import SubMenu from './SubMenu.js';
|
|
7
7
|
|
|
8
|
-
var defaultSubMenu = [];
|
|
9
8
|
var MenuCom = function (props) {
|
|
10
|
-
var width = props.width, subMenuWidth = props.subMenuWidth, layoutSiderRef = props.layoutSiderRef,
|
|
9
|
+
var width = props.width, subMenuWidth = props.subMenuWidth, layoutSiderRef = props.layoutSiderRef, addTab = props.addTab, logo = props.logo, getPrefixByAppId = props.getPrefixByAppId;
|
|
11
10
|
// 二级菜单Ref对象
|
|
12
11
|
var subMenu = useRef({});
|
|
13
|
-
var _a = useState(defaultSubMenu), subMenus = _a[0], setSubMenus = _a[1];
|
|
14
12
|
// 一级菜单mouseEnter事件
|
|
15
13
|
var onMouseEnter = useCallback(function () {
|
|
16
14
|
var _a;
|
|
17
15
|
(_a = subMenu.current) === null || _a === void 0 ? void 0 : _a.setVisible(true);
|
|
18
16
|
}, []);
|
|
19
|
-
// 一级菜单点击事件
|
|
20
|
-
// 1、设置二级菜单内容
|
|
21
|
-
// 2、设置二级菜单显示
|
|
22
|
-
var onMainLinkClick = useCallback(function (mainMenuId) {
|
|
23
|
-
if (mainMenuId) {
|
|
24
|
-
if (userSubMenus) {
|
|
25
|
-
setSubMenus(userSubMenus[mainMenuId]);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
setSubMenus(defaultSubMenu);
|
|
30
|
-
}
|
|
31
|
-
}, [userSubMenus]);
|
|
32
17
|
// 主容器mouseLeave事件
|
|
33
18
|
var onMouseLeave = useCallback(function () {
|
|
34
19
|
var _a;
|
|
35
20
|
(_a = subMenu.current) === null || _a === void 0 ? void 0 : _a.setVisible(false);
|
|
36
21
|
}, []);
|
|
37
|
-
return (jsxs("div", __assign({ className: "zmdms-menu", onMouseLeave: onMouseLeave }, { children: [jsx(Logo, { logo: logo }), jsx(MainMenu, {
|
|
22
|
+
return (jsxs("div", __assign({ className: "zmdms-menu", onMouseLeave: onMouseLeave }, { children: [jsx(Logo, { logo: logo }), jsx(MainMenu, { onMouseEnter: onMouseEnter, addTab: addTab, getPrefixByAppId: getPrefixByAppId }), jsx(SubMenu, { ref: subMenu, marginLeft: width, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, getPrefixByAppId: getPrefixByAppId })] })));
|
|
38
23
|
};
|
|
39
24
|
var Menu = memo(MenuCom);
|
|
40
25
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 菜单相关的context配置
|
|
5
|
+
*/
|
|
6
|
+
interface IZtxkLayoutContext {
|
|
7
|
+
/** 当前选中页签 */
|
|
8
|
+
activeTab?: string;
|
|
9
|
+
/** 用户一级菜单 */
|
|
10
|
+
userMenus?: any;
|
|
11
|
+
/** 用户二级菜单 */
|
|
12
|
+
userSubMenus?: any;
|
|
13
|
+
/** 用户信息 */
|
|
14
|
+
userInfo?: any;
|
|
15
|
+
/**
|
|
16
|
+
* 微应用列表,在qiankun下有用 需要拼接路由前缀
|
|
17
|
+
*/
|
|
18
|
+
apps?: any;
|
|
19
|
+
}
|
|
20
|
+
declare const LayoutContext: React__default.Context<IZtxkLayoutContext>;
|
|
21
|
+
|
|
22
|
+
export { LayoutContext as default };
|
|
@@ -7,7 +7,7 @@ var Descriptions = function (props) {
|
|
|
7
7
|
var className = props.className, resetProps = __rest(props, ["className"]);
|
|
8
8
|
// 主容器类名
|
|
9
9
|
var classes = classNames("ztxk-descriptions", className, {});
|
|
10
|
-
return (jsx(Descriptions$1, __assign({ column:
|
|
10
|
+
return (jsx(Descriptions$1, __assign({ column: 3, size: "middle", className: classes }, resetProps)));
|
|
11
11
|
};
|
|
12
12
|
var DescriptionsCom = Descriptions;
|
|
13
13
|
DescriptionsCom.displayName = "ZTXK_WEBUI_Descriptions";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __rest, __assign } from '../_virtual/_tslib.js';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { memo } from 'react';
|
|
4
4
|
import classNames from '../node_modules/classnames/index.js';
|
|
5
5
|
import '../config/ZtxkContext.js';
|
|
@@ -9,12 +9,8 @@ import { Col } from 'antd';
|
|
|
9
9
|
|
|
10
10
|
var FormItem = function (props) {
|
|
11
11
|
var _a;
|
|
12
|
-
var children = props.children, isDisplay = props.isDisplay, isRequired = props.isRequired, isChangeable = props.isChangeable, isStress = props.isStress, preNode = props.preNode, nextNode = props.nextNode; props.dynamicDisabled; var hiddenBorder = props.hiddenBorder, singleSelectShowBorder = props.singleSelectShowBorder, hiddenLabel = props.hiddenLabel, width = props.width, className = props.className, itemClassName = props.itemClassName, render = props.render, shouldUpdateNames = props.shouldUpdateNames; props.shouldUpdateClear; var dependencies = props.dependencies, shouldUpdate = props.shouldUpdate; props.index; props.outsideState; props.shouldUpdateBeOutsideState;
|
|
12
|
+
var children = props.children, isDisplay = props.isDisplay, isRequired = props.isRequired, isChangeable = props.isChangeable, isStress = props.isStress, preNode = props.preNode, nextNode = props.nextNode; props.dynamicDisabled; var hiddenBorder = props.hiddenBorder, singleSelectShowBorder = props.singleSelectShowBorder, hiddenLabel = props.hiddenLabel, width = props.width, className = props.className, itemClassName = props.itemClassName, render = props.render, shouldUpdateNames = props.shouldUpdateNames; props.shouldUpdateClear; var dependencies = props.dependencies, shouldUpdate = props.shouldUpdate; props.index; props.outsideState; props.shouldUpdateBeOutsideState; props.nonForm; var resetProps = __rest(props, ["children", "isDisplay", "isRequired", "isChangeable", "isStress", "preNode", "nextNode", "dynamicDisabled", "hiddenBorder", "singleSelectShowBorder", "hiddenLabel", "width", "className", "itemClassName", "render", "shouldUpdateNames", "shouldUpdateClear", "dependencies", "shouldUpdate", "index", "outsideState", "shouldUpdateBeOutsideState", "nonForm"]);
|
|
13
13
|
var form = MemoForm.useFormInstance();
|
|
14
|
-
// 如果是纯文本渲染
|
|
15
|
-
if (nonForm) {
|
|
16
|
-
return render ? (render({}, form)) : (jsx(Col, { className: "ztxk-form__item--collapse", span: 24 }));
|
|
17
|
-
}
|
|
18
14
|
// 根据配置属性,判断是否渲染表单项
|
|
19
15
|
// 是否显示表单项
|
|
20
16
|
if (isDisplay === false || isDisplay === "0") {
|
|
@@ -66,7 +62,7 @@ var FormItem = function (props) {
|
|
|
66
62
|
return (jsx(MemoForm.Item, __assign({}, resetProps, { className: itemClasses }, { children: render && render(itemProps, formInstance) })));
|
|
67
63
|
} })), nextNode ? nextNode : null] })));
|
|
68
64
|
}
|
|
69
|
-
if (shouldUpdate || shouldUpdateNames) {
|
|
65
|
+
if (shouldUpdate !== undefined || shouldUpdateNames) {
|
|
70
66
|
var shouldUpdateHandle = shouldUpdateNames
|
|
71
67
|
? function (prevValues, curValues, info) {
|
|
72
68
|
for (var i = 0; i < shouldUpdateNames.length; i++) {
|
|
@@ -132,4 +128,4 @@ var FormItem$1 = memo(FormItem, function (prev, next) {
|
|
|
132
128
|
return isEqual(prev, next);
|
|
133
129
|
});
|
|
134
130
|
|
|
135
|
-
export { FormItem$1 as default };
|
|
131
|
+
export { ItemWrap, FormItem$1 as default };
|
package/dist/index.build.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ export { default as TreeSelect } from './es/treeselect/treeSelect.js';
|
|
|
29
29
|
export { default as Tree } from './es/tree/tree.js';
|
|
30
30
|
export { default as Descriptions } from './es/descriptions/descriptions.js';
|
|
31
31
|
export { default as Title } from './es/title/title.js';
|
|
32
|
+
export { default as LayoutContext } from './es/config/LayoutContext.js';
|
|
32
33
|
export { Affix, Alert, Anchor, AutoComplete, Avatar, BackTop, Badge, Breadcrumb, Card, Carousel, Cascader, Checkbox, Col, Collapse, Comment, ConfigProvider, Divider, Drawer, Dropdown, Empty, Grid, Image, Layout, List, Mentions, Menu, PageHeader, Popconfirm, Popover, Progress, Radio, Rate, Result, Row, Segmented, Skeleton, Slider, Space, Spin, Statistic, Steps, Switch, Tag, Timeline, Tooltip, Transfer, Typography, Upload, message, notification } from 'antd';
|
|
33
34
|
export { IModalOpenOptions, IModalProps, IModalRef } from './es/modal/interface.js';
|
|
34
35
|
export { IFooterDom, IFooterProps } from './es/footer/interface.js';
|