zmdms-webui 0.0.110 → 0.0.112

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.
@@ -26,6 +26,15 @@ interface ILayoutSiderProps {
26
26
  selectMainMenu?: (activeTab: any) => any;
27
27
  /** 菜单拼接规则 */
28
28
  menuJoinRule?: (menuInfo: any, preFix: string) => boolean | string;
29
+ /**
30
+ * 自定义渲染菜单
31
+ * addTab({
32
+ key: newPath,
33
+ path: newPath,
34
+ label: menuItem.name,
35
+ })
36
+ **/
37
+ renderItem?: (path: string, menu: any, onClick: any) => React__default.ReactNode | false;
29
38
  }
30
39
  declare const _default: React__default.NamedExoticComponent<ILayoutSiderProps>;
31
40
 
@@ -10,7 +10,7 @@ import { Layout } from 'antd';
10
10
  */
11
11
  var AppLayoutSider = function (props) {
12
12
  // console.log("layout-sider- rerender");
13
- 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, apps = props.apps, activeTab = props.activeTab, userMenus = props.userMenus, userSubMenus = props.userSubMenus, mergeSystemIds = props.mergeSystemIds, postMergeSystemIds = props.postMergeSystemIds, drawerTitle = props.drawerTitle, selectMainMenu = props.selectMainMenu, menuJoinRule = props.menuJoinRule;
13
+ 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, apps = props.apps, activeTab = props.activeTab, userMenus = props.userMenus, userSubMenus = props.userSubMenus, mergeSystemIds = props.mergeSystemIds, postMergeSystemIds = props.postMergeSystemIds, drawerTitle = props.drawerTitle, selectMainMenu = props.selectMainMenu, menuJoinRule = props.menuJoinRule, renderItem = props.renderItem;
14
14
  // 当前选中的主菜单item
15
15
  var _c = useState([]), mainMenuSelectedKeys = _c[0], setMainMenuSelectedKeys = _c[1];
16
16
  var layoutSiderRef = useRef();
@@ -38,6 +38,7 @@ var AppLayoutSider = function (props) {
38
38
  drawerTitle: drawerTitle,
39
39
  selectMainMenu: selectMainMenu,
40
40
  menuJoinRule: menuJoinRule,
41
+ renderItem: renderItem,
41
42
  } }, { children: jsx(Menu, { width: siderWidth, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, logo: logo, getPrefixByAppId: getPrefixByAppId }) })) })));
42
43
  };
43
44
  AppLayoutSider.displayName = "ZTXK_WEBUI_AppLayoutSider";
@@ -9,7 +9,7 @@ import { Menu } from 'antd';
9
9
 
10
10
  var MainMenu = function (props) {
11
11
  var onMouseEnter = props.onMouseEnter, addTab = props.addTab, getPrefixByAppId = props.getPrefixByAppId, subMenu = props.subMenu;
12
- var _a = useContext(LayoutMenuContext), mainMenuSelectedKeys = _a.mainMenuSelectedKeys, setMainMenuSelectedKeys = _a.setMainMenuSelectedKeys, userMenus = _a.userMenus, apps = _a.apps, mergeSystemIds = _a.mergeSystemIds, postMergeSystemIds = _a.postMergeSystemIds, menuJoinRule = _a.menuJoinRule;
12
+ var _a = useContext(LayoutMenuContext), mainMenuSelectedKeys = _a.mainMenuSelectedKeys, setMainMenuSelectedKeys = _a.setMainMenuSelectedKeys, userMenus = _a.userMenus, apps = _a.apps, mergeSystemIds = _a.mergeSystemIds, postMergeSystemIds = _a.postMergeSystemIds, menuJoinRule = _a.menuJoinRule, renderItem = _a.renderItem;
13
13
  // 获取主菜单展开的内容
14
14
  var _b = useMainMenuOpenKeys(userMenus, mainMenuSelectedKeys, { apps: apps, mergeSystemIds: mergeSystemIds, postMergeSystemIds: postMergeSystemIds }), mainMenuOpenKeys = _b.mainMenuOpenKeys, onMainMenuOpenChange = _b.onMainMenuOpenChange;
15
15
  // 创建主菜单标签
@@ -29,6 +29,12 @@ var MainMenu = function (props) {
29
29
  : prefix
30
30
  ? "/".concat(prefix).concat(path)
31
31
  : path;
32
+ if (renderItem) {
33
+ var result = renderItem(newPath, menuItem, addTab);
34
+ if (result) {
35
+ return result;
36
+ }
37
+ }
32
38
  // 根据type的类型做出不同的处理 这里只是留个入口 暂时没有特别的处理
33
39
  // 如果是以 _index结尾,说明是首页,路由保留
34
40
  // 并且要是顶层 并且之前的路由要是 /
@@ -57,7 +63,7 @@ var MainMenu = function (props) {
57
63
  label: menuItem.name,
58
64
  });
59
65
  } }, { children: menuItem.name })));
60
- }, [addTab, getPrefixByAppId, menuJoinRule]);
66
+ }, [addTab, getPrefixByAppId, menuJoinRule, renderItem]);
61
67
  var items = useMemo(function () {
62
68
  var _a;
63
69
  if (!Array.isArray(userMenus)) {
@@ -12,7 +12,7 @@ import { Drawer, Menu } from 'antd';
12
12
  var defaultSubMenu = [];
13
13
  var SubMenu = function (props, ref) {
14
14
  var marginLeft = props.marginLeft, subMenuWidth = props.subMenuWidth, layoutSiderRef = props.layoutSiderRef, addTab = props.addTab, getPrefixByAppId = props.getPrefixByAppId;
15
- var _a = useContext(LayoutMenuContext), mainMenuSelectedKeys = _a.mainMenuSelectedKeys, setMainMenuSelectedKeys = _a.setMainMenuSelectedKeys, activeTab = _a.activeTab, userSubMenus = _a.userSubMenus, drawerTitle = _a.drawerTitle, selectMainMenu = _a.selectMainMenu, menuJoinRule = _a.menuJoinRule;
15
+ var _a = useContext(LayoutMenuContext), mainMenuSelectedKeys = _a.mainMenuSelectedKeys, setMainMenuSelectedKeys = _a.setMainMenuSelectedKeys, activeTab = _a.activeTab, userSubMenus = _a.userSubMenus, drawerTitle = _a.drawerTitle, selectMainMenu = _a.selectMainMenu, menuJoinRule = _a.menuJoinRule, renderItem = _a.renderItem;
16
16
  // 二级菜单当前选中项
17
17
  var subMenusSelectedKeys = useMemo(function () {
18
18
  return activeTab ? [activeTab] : [];
@@ -89,8 +89,17 @@ var SubMenu = function (props, ref) {
89
89
  : prefix
90
90
  ? "/".concat(prefix).concat(path)
91
91
  : path;
92
- var subMenuItem = {
93
- label: newPath === "/" ? (menuItem.name) : (jsx(Link, __assign({ to: newPath, onClick: function () {
92
+ var getLabel = function () {
93
+ if (renderItem) {
94
+ var result = renderItem(newPath, menuItem, function (info) {
95
+ isClickSubMenu.current = true;
96
+ addTab(info);
97
+ });
98
+ if (result) {
99
+ return result;
100
+ }
101
+ }
102
+ return newPath === "/" ? (menuItem.name) : (jsx(Link, __assign({ to: newPath, onClick: function () {
94
103
  isClickSubMenu.current = true;
95
104
  // 增加一个页签
96
105
  addTab({
@@ -98,7 +107,10 @@ var SubMenu = function (props, ref) {
98
107
  path: newPath,
99
108
  label: menuItem.name,
100
109
  });
101
- } }, { children: menuItem.name }))),
110
+ } }, { children: menuItem.name })));
111
+ };
112
+ var subMenuItem = {
113
+ label: getLabel(),
102
114
  title: menuItem.name,
103
115
  // key: menuItem.id,
104
116
  key: newPath === "/" ? menuItem.id : newPath,
@@ -116,7 +128,7 @@ var SubMenu = function (props, ref) {
116
128
  };
117
129
  var newSubMenusItems = dfn(subMenus);
118
130
  return newSubMenusItems;
119
- }, [subMenus, addTab, getPrefixByAppId, menuJoinRule]);
131
+ }, [subMenus, addTab, getPrefixByAppId, menuJoinRule, renderItem]);
120
132
  var classes = classNames("zmdms-menu--sub", {
121
133
  "zmdms-menu--sub-margin": !drawerTitle,
122
134
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zmdms-webui",
3
- "version": "0.0.110",
3
+ "version": "0.0.112",
4
4
  "private": false,
5
5
  "main": "dist/index.es.js",
6
6
  "module": "dist/index.es.js",