zmdms-webui 1.0.2 → 1.0.4
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/applayout/index.css +1 -1
- package/dist/es/applayoutsider/appLayoutSider.d.ts +4 -0
- package/dist/es/applayoutsider/appLayoutSider.js +13 -4
- package/dist/es/applayoutsider/menu/SearchInput.js +44 -0
- package/dist/es/applayoutsider/menu/SubMenu.js +9 -3
- package/dist/es/applayoutsider/menu/constants.js +4 -0
- package/dist/es/applayoutsider/menu/index.js +3 -2
- package/dist/es/microloading/micro-loading.d.ts +4 -1
- package/dist/es/microloading/micro-loading.js +4 -2
- package/dist/es/node_modules/@ant-design/icons/es/icons/SearchOutlined.js +15 -0
- package/dist/es/node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js +5 -0
- package/dist/es/suspensecomponent/index.d.ts +2 -1
- package/dist/es/suspensecomponent/index.js +3 -2
- package/dist/es/table/useSummary.js +2 -6
- package/dist/index.dark.css +1 -1
- package/dist/index.default.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
.zmdms-container{background-color:#e9ecf3}.zmdms-container .zmdms-sider{background-color:#5b76f6;background-repeat:no-repeat;background-size:100% auto;background-size:cover;z-index:102}.zmdms-container .zmdms-content{background-color:#e9ecf3}.zmdms-container .zmdms-content--header{align-items:center;background:#fff;display:flex;height:48px;justify-content:space-between;line-height:48px;padding:0 0 0 10px}.zmdms-container .zmdms-content--header .ant-tabs{flex:1;margin-top:8px;width:calc(100% - 350px)}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab a{color:#768696;display:inline-block;padding:0 5px 0 10px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-nav{margin-bottom:0}.zmdms-container .zmdms-content--content{height:calc(100vh - 48px);position:relative}.zmdms-container .zmdms-content--header-info{color:#000000a6;display:flex;height:48px;max-width:350px}.zmdms-container .zmdms-content--header-info .full-screen{cursor:pointer;text-align:center;width:36px}.zmdms-container .zmdms-content--header-info .user-operation{align-items:center;cursor:pointer;display:flex;padding:0 12px}.zmdms-container .zmdms-content--header-info .user-operation:hover{background-color:#f7f7f7}.zmdms-container .zmdms-content--header-info .user-operation>span:last-child{color:#000000a6;display:inline-block;margin-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:70px}.zmdms-menu{display:flex;flex-direction:column;height:100vh}.zmdms-menu .zmdms-logo{align-items:center;display:block;display:flex;height:48px;padding:9px 0 5px}.zmdms-menu .zmdms-logo.zmdms-logo--line{position:relative;z-index:1000}.zmdms-menu .zmdms-logo.zmdms-logo--line:after{background:#505cbe;content:"";height:29px;position:absolute;right:-.5px;width:1px}.zmdms-menu .zmdms-logo>img{display:block;margin:0 auto;width:78px}.zmdms-menu .zmdms-menu--main{background:#0000;border-right:none;flex:1;overflow-x:hidden;overflow-y:auto}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu,.zmdms-menu .zmdms-menu--main>.ant-menu-submenu.ant-menu-submenu-open>.ant-menu-submenu-title{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#5b76f5;background-color:#5b8af666;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0;padding:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{color:#ffffffa6;right:6px}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content{flex:none;width:88%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub.ant-menu-inline{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item{align-items:center;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item a{color:inherit}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:active{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:hover{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item.ant-menu-item-selected{background:#5b76f5;color:#fff;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item.ant-menu-item-selected:after{border-right:none}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-track{background:#fff0;border-radius:4px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-thumb{background:#5b76f6;border-radius:4px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-thumb:hover{background:#5b76f6}.zmdms-menu .zmdms-menu--main>.ant-menu-item{align-items:center;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0}.zmdms-menu .zmdms-menu--main>.ant-menu-item a{color:inherit}.zmdms-menu .zmdms-menu--main>.ant-menu-item:active{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-item:hover{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu .zmdms-menu--main>.ant-menu-item.ant-menu-item-selected{background:#5b76f6;color:#fff;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-item.ant-menu-item-selected:after{border-right:none}.zmdms-menu--sub{padding:0}.zmdms-menu--sub .ant-drawer-content{background:#0000;background-position:100%;background-repeat:no-repeat;background-size:cover;overflow:hidden}.zmdms-menu--sub .ant-drawer-content .ant-menu{background:#0000;color:#fff}.zmdms-menu--sub.ant-drawer-left>.ant-drawer-content-wrapper{left:-1px}.zmdms-menu--sub .ant-drawer-header{background:#0000;border-bottom:none;padding:0}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title{align-items:center;color:#fff;display:flex;height:48px;justify-content:center}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title .ant-drawer-title{align-items:center;color:#fff;display:flex;font-size:14px;justify-content:center}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title .ant-drawer-title img{width:118px}.zmdms-menu--sub .ant-drawer-body{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#5b76f566;font-size:13px;overflow-x:hidden;padding:0}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-track{background:#fff0;border-radius:4px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-thumb{background:#5b76f6;border-radius:4px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#5b76f6}.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu.ant-menu-submenu-inline{border-bottom:1px solid #8d9eff47;padding-bottom:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline{background:#0000;padding:0 10px}.zmdms-menu--sub .ant-drawer-body .ant-menu-item,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item{align-items:center;border-radius:4px;color:#fff;display:flex;font-size:13px;height:30px;line-height:30px;margin:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:not(:last-child),.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-item a,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:last-child,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:last-child{margin-bottom:10px}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title{color:#fff;font-size:13px;font-weight:700;height:30px;line-height:30px}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-item-selected{background-color:#5b76f5!important;color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-item-selected:after{border-right:none}.zmdms-menu--sub .ant-drawer-footer{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#5b76f566;border-top:1px solid #5670ea;display:flex;height:40px;justify-content:center;line-height:40px;padding:3px 10px}.zmdms-menu--sub .ant-drawer-footer .zt-btn-link{color:#fff}.logout-spin{background-color:#ffffffb3;bottom:0;left:0;padding-top:100px;position:fixed;right:0;top:0;z-index:1000}
|
|
1
|
+
.zmdms-container{background-color:#e9ecf3}.zmdms-container .zmdms-sider{background-color:#5b76f6;background-repeat:no-repeat;background-size:100% auto;background-size:cover;z-index:102}.zmdms-container .zmdms-content{background-color:#e9ecf3}.zmdms-container .zmdms-content--header{align-items:center;background:#fff;display:flex;height:48px;justify-content:space-between;line-height:48px;padding:0 0 0 10px}.zmdms-container .zmdms-content--header .ant-tabs{flex:1;margin-top:8px;width:calc(100% - 350px)}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab a{color:#768696;display:inline-block;padding:0 5px 0 10px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-nav{margin-bottom:0}.zmdms-container .zmdms-content--content{height:calc(100vh - 48px);position:relative}.zmdms-container .zmdms-content--header-info{color:#000000a6;display:flex;height:48px;max-width:350px}.zmdms-container .zmdms-content--header-info .full-screen{cursor:pointer;text-align:center;width:36px}.zmdms-container .zmdms-content--header-info .user-operation{align-items:center;cursor:pointer;display:flex;padding:0 12px}.zmdms-container .zmdms-content--header-info .user-operation:hover{background-color:#f7f7f7}.zmdms-container .zmdms-content--header-info .user-operation>span:last-child{color:#000000a6;display:inline-block;margin-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:70px}.zmdms-menu{display:flex;flex-direction:column;height:100vh}.zmdms-menu .zmdms-logo{align-items:center;display:block;display:flex;height:48px;padding:9px 0 5px}.zmdms-menu .zmdms-logo.zmdms-logo--line{position:relative;z-index:1000}.zmdms-menu .zmdms-logo.zmdms-logo--line:after{background:#505cbe;content:"";height:29px;position:absolute;right:-.5px;width:1px}.zmdms-menu .zmdms-logo>img{display:block;margin:0 auto;width:78px}.zmdms-menu .zmdms-menu--search{background-color:#5b8af666;position:relative}.zmdms-menu .zmdms-menu--search>input{background-color:#5b8af666;border:none;color:#fff;font-size:13px;height:36px;line-height:36px}.zmdms-menu .zmdms-menu--search>input::placeholder{color:#fff;font-size:13px}.zmdms-menu .zmdms-menu--search .zmdms-menu--search__icon{align-items:center;color:#fff;cursor:pointer;display:flex;font-size:16px;height:30px;justify-content:center;position:absolute;right:0;top:3px;width:30px}.zmdms-menu .zmdms-menu--main{background:#0000;border-right:none;flex:1;overflow-x:hidden;overflow-y:auto}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu,.zmdms-menu .zmdms-menu--main>.ant-menu-submenu.ant-menu-submenu-open>.ant-menu-submenu-title{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#5b76f5;background-color:#5b8af666;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0;padding:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{color:#ffffffa6;right:6px}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content{flex:none;width:88%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub.ant-menu-inline{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item{align-items:center;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item a{color:inherit}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:active{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:hover{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item.ant-menu-item-selected{background:#5b76f5;color:#fff;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item.ant-menu-item-selected:after{border-right:none}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-track{background:#fff0;border-radius:4px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-thumb{background:#5b76f6;border-radius:4px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-thumb:hover{background:#5b76f6}.zmdms-menu .zmdms-menu--main>.ant-menu-item{align-items:center;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0}.zmdms-menu .zmdms-menu--main>.ant-menu-item a{color:inherit}.zmdms-menu .zmdms-menu--main>.ant-menu-item:active{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-item:hover{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu .zmdms-menu--main>.ant-menu-item.ant-menu-item-selected{background:#5b76f6;color:#fff;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-item.ant-menu-item-selected:after{border-right:none}.zmdms-menu--sub{padding:0}.zmdms-menu--sub .ant-drawer-content{background:#0000;background-position:100%;background-repeat:no-repeat;background-size:cover;overflow:hidden}.zmdms-menu--sub .ant-drawer-content .ant-menu{background:#0000;color:#fff}.zmdms-menu--sub.ant-drawer-left>.ant-drawer-content-wrapper{left:-1px}.zmdms-menu--sub .ant-drawer-header{background:#0000;border-bottom:none;padding:0}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title{align-items:center;color:#fff;display:flex;height:48px;justify-content:center}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title .ant-drawer-title{align-items:center;color:#fff;display:flex;font-size:14px;justify-content:center}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title .ant-drawer-title img{width:118px}.zmdms-menu--sub .ant-drawer-body{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#5b76f566;font-size:13px;overflow-x:hidden;padding:0}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-track{background:#fff0;border-radius:4px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-thumb{background:#5b76f6;border-radius:4px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#5b76f6}.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu.ant-menu-submenu-inline{border-bottom:1px solid #8d9eff47;padding-bottom:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline{background:#0000;padding:0 10px}.zmdms-menu--sub .ant-drawer-body .ant-menu-item,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item{align-items:center;border-radius:4px;color:#fff;display:flex;font-size:13px;height:30px;line-height:30px;margin:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:not(:last-child),.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-item a,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:last-child,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:last-child{margin-bottom:10px}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title{color:#fff;font-size:13px;font-weight:700;height:30px;line-height:30px}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-item-selected{background-color:#5b76f5!important;color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-item-selected:after{border-right:none}.zmdms-menu--sub .ant-drawer-footer{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#5b76f566;border-top:1px solid #5670ea;display:flex;height:40px;justify-content:center;line-height:40px;padding:3px 10px}.zmdms-menu--sub .ant-drawer-footer .zt-btn-link{color:#fff}.logout-spin{background-color:#ffffffb3;bottom:0;left:0;padding-top:100px;position:fixed;right:0;top:0;z-index:1000}
|
|
@@ -3,20 +3,27 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { memo, useState, useRef, useCallback } from 'react';
|
|
4
4
|
import Menu from './menu/index.js';
|
|
5
5
|
import { LayoutMenuContext } from './LayoutSiderContext.js';
|
|
6
|
+
import { MENU_SEARCH_KEY, MENU_COLLECT_KEY } from './menu/constants.js';
|
|
6
7
|
import { Layout } from 'antd';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* TODO: 增加收藏、搜索菜单的功能
|
|
10
11
|
*/
|
|
11
12
|
var AppLayoutSider = function (props) {
|
|
13
|
+
var _a;
|
|
12
14
|
// console.log("layout-sider- rerender");
|
|
13
15
|
var
|
|
14
16
|
// 118 宽度改成 134宽度
|
|
15
|
-
|
|
17
|
+
_b = props.siderWidth,
|
|
16
18
|
// 118 宽度改成 134宽度
|
|
17
|
-
siderWidth =
|
|
19
|
+
siderWidth = _b === void 0 ? 134 : _b, _c = props.subMenuWidth, subMenuWidth = _c === void 0 ? 162 : _c, addTab = props.addTab, siderBg = props.siderBg, logo = props.logo, subMenuLogo = props.subMenuLogo, _d = props.isShowSearchInput, isShowSearchInput = _d === void 0 ? true : _d, 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, defaultVisible = props.defaultVisible, defaultFixed = props.defaultFixed;
|
|
18
20
|
// 当前选中的主菜单item
|
|
19
|
-
var
|
|
21
|
+
var _e = useState([]), mainMenuSelectedKeys = _e[0], setMainMenuSelectedKeys = _e[1];
|
|
22
|
+
// 内部二级菜单管理
|
|
23
|
+
var _f = useState((_a = {},
|
|
24
|
+
_a[MENU_SEARCH_KEY] = [],
|
|
25
|
+
_a[MENU_COLLECT_KEY] = [],
|
|
26
|
+
_a)), innerUserSubMenus = _f[0], setInnerUserSubMenus = _f[1];
|
|
20
27
|
var layoutSiderRef = useRef();
|
|
21
28
|
// 通过系统id获取前缀
|
|
22
29
|
var getPrefixByAppId = useCallback(function (id) {
|
|
@@ -37,13 +44,15 @@ var AppLayoutSider = function (props) {
|
|
|
37
44
|
activeTab: activeTab,
|
|
38
45
|
userMenus: userMenus,
|
|
39
46
|
userSubMenus: userSubMenus,
|
|
47
|
+
innerUserSubMenus: innerUserSubMenus,
|
|
48
|
+
setInnerUserSubMenus: setInnerUserSubMenus,
|
|
40
49
|
mergeSystemIds: mergeSystemIds,
|
|
41
50
|
postMergeSystemIds: postMergeSystemIds,
|
|
42
51
|
drawerTitle: drawerTitle,
|
|
43
52
|
selectMainMenu: selectMainMenu,
|
|
44
53
|
menuJoinRule: menuJoinRule,
|
|
45
54
|
renderItem: renderItem,
|
|
46
|
-
} }, { children: jsx(Menu, { width: siderWidth, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, logo: logo, subMenuLogo: subMenuLogo, getPrefixByAppId: getPrefixByAppId, defaultVisible: defaultVisible, defaultFixed: defaultFixed }) })) })));
|
|
55
|
+
} }, { children: jsx(Menu, { width: siderWidth, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, logo: logo, subMenuLogo: subMenuLogo, getPrefixByAppId: getPrefixByAppId, defaultVisible: defaultVisible, defaultFixed: defaultFixed, isShowSearchInput: isShowSearchInput }) })) })));
|
|
47
56
|
};
|
|
48
57
|
AppLayoutSider.displayName = "ZTXK_WEBUI_AppLayoutSider";
|
|
49
58
|
var AppLayoutSider$1 = memo(AppLayoutSider);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { __assign } from '../../_virtual/_tslib.js';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useState, useContext } from 'react';
|
|
4
|
+
import { useMemoizedFn } from 'ahooks';
|
|
5
|
+
import { LayoutMenuContext } from '../LayoutSiderContext.js';
|
|
6
|
+
import { MENU_SEARCH_KEY } from './constants.js';
|
|
7
|
+
import MemoInput from '../../input/input.js';
|
|
8
|
+
import SearchOutlined from '../../node_modules/@ant-design/icons/es/icons/SearchOutlined.js';
|
|
9
|
+
|
|
10
|
+
var SearchInput = function () {
|
|
11
|
+
var _a = useState("菜单搜索"), placeholderText = _a[0], setPlaceholderText = _a[1];
|
|
12
|
+
var _b = useState(), searchValue = _b[0], setSearchValue = _b[1];
|
|
13
|
+
var _c = useContext(LayoutMenuContext), userSubMenus = _c.userSubMenus, setMainMenuSelectedKeys = _c.setMainMenuSelectedKeys, setInnerUserSubMenus = _c.setInnerUserSubMenus;
|
|
14
|
+
var onSearch = useMemoizedFn(function () {
|
|
15
|
+
if (!searchValue) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
var newSubUserMenuArr = [];
|
|
19
|
+
Object.keys(userSubMenus).forEach(function (key) {
|
|
20
|
+
var subUserMenuArr = userSubMenus[key];
|
|
21
|
+
subUserMenuArr.forEach(function (item) {
|
|
22
|
+
var copyItem = __assign(__assign({}, item), { selectedKey: key });
|
|
23
|
+
if (Array.isArray(item === null || item === void 0 ? void 0 : item.children)) {
|
|
24
|
+
var result = item === null || item === void 0 ? void 0 : item.children.filter(function (child) {
|
|
25
|
+
return child.name.includes(searchValue);
|
|
26
|
+
});
|
|
27
|
+
copyItem.children = result.map(function (resultItem) { return (__assign(__assign({}, resultItem), { selectedKey: key })); });
|
|
28
|
+
}
|
|
29
|
+
if ((Array.isArray(copyItem.children) && copyItem.children.length > 0) ||
|
|
30
|
+
(copyItem.name.includes(searchValue) && copyItem.path !== "/")) {
|
|
31
|
+
newSubUserMenuArr.push(copyItem);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
setMainMenuSelectedKeys === null || setMainMenuSelectedKeys === void 0 ? void 0 : setMainMenuSelectedKeys([MENU_SEARCH_KEY]);
|
|
36
|
+
setInnerUserSubMenus(function (pre) {
|
|
37
|
+
var _a;
|
|
38
|
+
return __assign(__assign({}, pre), (_a = {}, _a[MENU_SEARCH_KEY] = newSubUserMenuArr, _a));
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
return (jsxs("div", __assign({ className: "zmdms-menu--search" }, { children: [jsx(MemoInput, { placeholder: placeholderText, onBlur: function () { return setPlaceholderText("菜单搜索"); }, onFocus: function () { return setPlaceholderText(""); }, value: searchValue, onChange: function (e) { return setSearchValue(e.target.value); }, onPressEnter: function () { return onSearch(); } }), jsx(SearchOutlined, { className: "zmdms-menu--search__icon", onClick: function () { return onSearch(); } })] })));
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export { SearchInput as default };
|
|
@@ -7,6 +7,7 @@ import { LayoutMenuContext } from '../LayoutSiderContext.js';
|
|
|
7
7
|
import classNames from '../../node_modules/classnames/index.js';
|
|
8
8
|
import { filterMenu } from './MainMenu.js';
|
|
9
9
|
import { useMount } from 'ahooks';
|
|
10
|
+
import { MENU_SEARCH_KEY, MENU_COLLECT_KEY } from './constants.js';
|
|
10
11
|
import ButtonCom from '../../button/button.js';
|
|
11
12
|
import SwapOutlined from '../../node_modules/@ant-design/icons/es/icons/SwapOutlined.js';
|
|
12
13
|
import { Drawer, Menu } from 'antd';
|
|
@@ -14,7 +15,7 @@ import { Drawer, Menu } from 'antd';
|
|
|
14
15
|
var defaultSubMenu = [];
|
|
15
16
|
var SubMenu = function (props, ref) {
|
|
16
17
|
var marginLeft = props.marginLeft, subMenuWidth = props.subMenuWidth, layoutSiderRef = props.layoutSiderRef, addTab = props.addTab, getPrefixByAppId = props.getPrefixByAppId, subMenuLogo = props.subMenuLogo, visible = props.visible, setVisible = props.setVisible, _a = props.defaultFixed, defaultFixed = _a === void 0 ? true : _a;
|
|
17
|
-
var _b = useContext(LayoutMenuContext), mainMenuSelectedKeys = _b.mainMenuSelectedKeys, setMainMenuSelectedKeys = _b.setMainMenuSelectedKeys, activeTab = _b.activeTab, userSubMenus = _b.userSubMenus, drawerTitle = _b.drawerTitle, selectMainMenu = _b.selectMainMenu, menuJoinRule = _b.menuJoinRule, renderItem = _b.renderItem;
|
|
18
|
+
var _b = useContext(LayoutMenuContext), mainMenuSelectedKeys = _b.mainMenuSelectedKeys, setMainMenuSelectedKeys = _b.setMainMenuSelectedKeys, activeTab = _b.activeTab, userSubMenus = _b.userSubMenus, innerUserSubMenus = _b.innerUserSubMenus, drawerTitle = _b.drawerTitle, selectMainMenu = _b.selectMainMenu, menuJoinRule = _b.menuJoinRule, renderItem = _b.renderItem;
|
|
18
19
|
// 二级菜单当前选中项
|
|
19
20
|
var subMenusSelectedKeys = useMemo(function () {
|
|
20
21
|
return activeTab ? [activeTab] : [];
|
|
@@ -22,10 +23,15 @@ var SubMenu = function (props, ref) {
|
|
|
22
23
|
// 根据主菜单当前选中项,设置二级菜单应该展示的内容
|
|
23
24
|
var subMenus = useMemo(function () {
|
|
24
25
|
if (mainMenuSelectedKeys && mainMenuSelectedKeys.length > 0) {
|
|
25
|
-
|
|
26
|
+
var mainSelectedKey = mainMenuSelectedKeys[0];
|
|
27
|
+
if (mainSelectedKey === MENU_SEARCH_KEY ||
|
|
28
|
+
mainSelectedKey === MENU_COLLECT_KEY) {
|
|
29
|
+
return innerUserSubMenus[mainSelectedKey];
|
|
30
|
+
}
|
|
31
|
+
return userSubMenus[mainSelectedKey];
|
|
26
32
|
}
|
|
27
33
|
return defaultSubMenu;
|
|
28
|
-
}, [mainMenuSelectedKeys, userSubMenus]);
|
|
34
|
+
}, [mainMenuSelectedKeys, userSubMenus, innerUserSubMenus]);
|
|
29
35
|
// 展开指定的二级菜单
|
|
30
36
|
var isClickSubMenu = useRef(false); // 是否用户点击二级菜单
|
|
31
37
|
var _c = useSubMenuOpenKeys(userSubMenus, activeTab, {
|
|
@@ -2,11 +2,12 @@ import { __assign } from '../../_virtual/_tslib.js';
|
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { memo, useState, useRef, useCallback } from 'react';
|
|
4
4
|
import Logo from './Logo.js';
|
|
5
|
+
import SearchInput from './SearchInput.js';
|
|
5
6
|
import MainMenu from './MainMenu.js';
|
|
6
7
|
import SubMenu from './SubMenu.js';
|
|
7
8
|
|
|
8
9
|
var MenuCom = function (props) {
|
|
9
|
-
var width = props.width, subMenuWidth = props.subMenuWidth, layoutSiderRef = props.layoutSiderRef, addTab = props.addTab, logo = props.logo, getPrefixByAppId = props.getPrefixByAppId, subMenuLogo = props.subMenuLogo, _a = props.defaultVisible, defaultVisible = _a === void 0 ? true : _a, defaultFixed = props.defaultFixed;
|
|
10
|
+
var width = props.width, subMenuWidth = props.subMenuWidth, layoutSiderRef = props.layoutSiderRef, addTab = props.addTab, logo = props.logo, getPrefixByAppId = props.getPrefixByAppId, subMenuLogo = props.subMenuLogo, _a = props.defaultVisible, defaultVisible = _a === void 0 ? true : _a, defaultFixed = props.defaultFixed, isShowSearchInput = props.isShowSearchInput;
|
|
10
11
|
// 二级菜单是否显示
|
|
11
12
|
var _b = useState(defaultVisible), visible = _b[0], setVisible = _b[1];
|
|
12
13
|
// 二级菜单Ref对象
|
|
@@ -21,7 +22,7 @@ var MenuCom = function (props) {
|
|
|
21
22
|
var _a;
|
|
22
23
|
(_a = subMenu.current) === null || _a === void 0 ? void 0 : _a.setVisible(false);
|
|
23
24
|
}, []);
|
|
24
|
-
return (jsxs("div", __assign({ className: "zmdms-menu", onMouseLeave: onMouseLeave }, { children: [jsx(Logo, { logo: logo, showLine: visible }), jsx(MainMenu, { onMouseEnter: onMouseEnter, addTab: addTab, getPrefixByAppId: getPrefixByAppId, subMenu: subMenu }), jsx(SubMenu, { ref: subMenu, marginLeft: width, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, getPrefixByAppId: getPrefixByAppId, subMenuLogo: subMenuLogo, visible: visible, setVisible: setVisible, defaultFixed: defaultFixed })] })));
|
|
25
|
+
return (jsxs("div", __assign({ className: "zmdms-menu", onMouseLeave: onMouseLeave }, { children: [jsx(Logo, { logo: logo, showLine: visible }), isShowSearchInput && jsx(SearchInput, {}), jsx(MainMenu, { onMouseEnter: onMouseEnter, addTab: addTab, getPrefixByAppId: getPrefixByAppId, subMenu: subMenu }), jsx(SubMenu, { ref: subMenu, marginLeft: width, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, getPrefixByAppId: getPrefixByAppId, subMenuLogo: subMenuLogo, visible: visible, setVisible: setVisible, defaultFixed: defaultFixed })] })));
|
|
25
26
|
};
|
|
26
27
|
var Menu = memo(MenuCom);
|
|
27
28
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { Spin } from 'antd';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
// tip = '子应用加载中...'
|
|
5
|
+
var MicroLoading = function (_a) {
|
|
6
|
+
var _b = _a.tip, tip = _b === void 0 ? "" : _b;
|
|
7
|
+
return jsx(Spin, { spinning: true, tip: tip, className: "micro-loading" });
|
|
6
8
|
};
|
|
7
9
|
|
|
8
10
|
export { MicroLoading as default };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import _objectSpread2 from '../../../../@babel/runtime/helpers/esm/objectSpread2.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import SearchOutlinedSvg from '../../../icons-svg/es/asn/SearchOutlined.js';
|
|
4
|
+
import AntdIcon from '../components/AntdIcon.js';
|
|
5
|
+
|
|
6
|
+
var SearchOutlined = function SearchOutlined(props, ref) {
|
|
7
|
+
return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread2(_objectSpread2({}, props), {}, {
|
|
8
|
+
ref: ref,
|
|
9
|
+
icon: SearchOutlinedSvg
|
|
10
|
+
}));
|
|
11
|
+
};
|
|
12
|
+
SearchOutlined.displayName = 'SearchOutlined';
|
|
13
|
+
var SearchOutlined$1 = /*#__PURE__*/React.forwardRef(SearchOutlined);
|
|
14
|
+
|
|
15
|
+
export { SearchOutlined$1 as default };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// This icon file is generated automatically.
|
|
2
|
+
var SearchOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z" } }] }, "name": "search", "theme": "outlined" };
|
|
3
|
+
var SearchOutlinedSvg = SearchOutlined;
|
|
4
|
+
|
|
5
|
+
export { SearchOutlinedSvg as default };
|
|
@@ -3,7 +3,8 @@ import React__default from 'react';
|
|
|
3
3
|
|
|
4
4
|
interface IProps {
|
|
5
5
|
children: React__default.ReactNode;
|
|
6
|
+
tip?: React__default.ReactNode;
|
|
6
7
|
}
|
|
7
|
-
declare const SuspenseComponent: ({ children }: IProps) => react_jsx_runtime.JSX.Element;
|
|
8
|
+
declare const SuspenseComponent: ({ children, tip }: IProps) => react_jsx_runtime.JSX.Element;
|
|
8
9
|
|
|
9
10
|
export { SuspenseComponent as default };
|
|
@@ -3,9 +3,10 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { Suspense } from 'react';
|
|
4
4
|
import { Spin } from 'antd';
|
|
5
5
|
|
|
6
|
+
// tip = "路由加载中..."
|
|
6
7
|
var SuspenseComponent = function (_a) {
|
|
7
|
-
var children = _a.children;
|
|
8
|
-
return (jsx(Suspense, __assign({ fallback: jsx(Spin, { spinning: true, tip:
|
|
8
|
+
var children = _a.children, _b = _a.tip, tip = _b === void 0 ? "" : _b;
|
|
9
|
+
return (jsx(Suspense, __assign({ fallback: jsx(Spin, { spinning: true, tip: tip, className: "micro-loading" }) }, { children: children })));
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
export { SuspenseComponent as default };
|
|
@@ -2,6 +2,7 @@ import { __assign } from '../_virtual/_tslib.js';
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
4
|
import { Table } from 'antd';
|
|
5
|
+
import { plus } from 'zmdms-utils';
|
|
5
6
|
|
|
6
7
|
function useSummary(summaryConfig, columns, options) {
|
|
7
8
|
var summaryFixed = options.summaryFixed, rowSelection = options.rowSelection, expandable = options.expandable, isAdd = options.isAdd, isDel = options.isDel;
|
|
@@ -177,8 +178,7 @@ function getSubtotalObj(fields, dataSource) {
|
|
|
177
178
|
dataItem = isNaN(dataItem) ? 0 : dataItem;
|
|
178
179
|
var summaryItem = (summaryTotalObj === null || summaryTotalObj === void 0 ? void 0 : summaryTotalObj[field]) || 0;
|
|
179
180
|
summaryTotalObj[field] = summaryItem
|
|
180
|
-
?
|
|
181
|
-
plus(summaryItem, dataItem)
|
|
181
|
+
? plus(summaryItem, dataItem)
|
|
182
182
|
: dataItem;
|
|
183
183
|
}
|
|
184
184
|
else {
|
|
@@ -312,10 +312,6 @@ function getTotalObj(fields) {
|
|
|
312
312
|
}
|
|
313
313
|
});
|
|
314
314
|
return summaryTotalObj;
|
|
315
|
-
}
|
|
316
|
-
// 暂时用这里的加法
|
|
317
|
-
function plus(a, b) {
|
|
318
|
-
return a + b;
|
|
319
315
|
}
|
|
320
316
|
|
|
321
317
|
export { useSummary as default };
|