zmdms-webui 0.0.110 → 0.0.111

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,14 @@ 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, addTab);
95
+ if (result) {
96
+ return result;
97
+ }
98
+ }
99
+ return newPath === "/" ? (menuItem.name) : (jsx(Link, __assign({ to: newPath, onClick: function () {
94
100
  isClickSubMenu.current = true;
95
101
  // 增加一个页签
96
102
  addTab({
@@ -98,7 +104,10 @@ var SubMenu = function (props, ref) {
98
104
  path: newPath,
99
105
  label: menuItem.name,
100
106
  });
101
- } }, { children: menuItem.name }))),
107
+ } }, { children: menuItem.name })));
108
+ };
109
+ var subMenuItem = {
110
+ label: getLabel(),
102
111
  title: menuItem.name,
103
112
  // key: menuItem.id,
104
113
  key: newPath === "/" ? menuItem.id : newPath,
@@ -116,7 +125,7 @@ var SubMenu = function (props, ref) {
116
125
  };
117
126
  var newSubMenusItems = dfn(subMenus);
118
127
  return newSubMenusItems;
119
- }, [subMenus, addTab, getPrefixByAppId, menuJoinRule]);
128
+ }, [subMenus, addTab, getPrefixByAppId, menuJoinRule, renderItem]);
120
129
  var classes = classNames("zmdms-menu--sub", {
121
130
  "zmdms-menu--sub-margin": !drawerTitle,
122
131
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zmdms-webui",
3
- "version": "0.0.110",
3
+ "version": "0.0.111",
4
4
  "private": false,
5
5
  "main": "dist/index.es.js",
6
6
  "module": "dist/index.es.js",