zmdms-webui 3.4.5 → 3.4.7

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.
@@ -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.zmdms-content--header-tabs{width:300px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab>div{padding:0}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab a{color:#768696;display:inline-block;padding:0 20px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab.ant-tabs-tab-with-remove a{padding:0 10px 0 20px}.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.zmdms-menu--main-hide-bg .ant-menu-item-selected{background:#1566d2!important}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-item-line .ant-menu-item{height:auto!important;line-height:20px!important;min-height:36px}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-item-line .ant-menu-item .ant-menu-title-content{word-wrap:break-word;display:inline-block;height:auto!important;text-overflow:unset!important;white-space:pre-wrap;width:100%}.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-title-content>a,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:active{background:#0000}.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-root>.ant-menu-item-only-child{margin-top:2px}.zmdms-menu--sub .ant-drawer-body .ant-menu-root>.ant-menu-item-only-child .ant-menu-title-content{font-weight:700}.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}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-content,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-content .ant-menu{background:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-header{background:#fff;border-bottom:1px solid #ebf3fe}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-track{background:#fff;border-radius:4px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-thumb{background:#8695a1;border-radius:4px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#727e88}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item a,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a{color:#000000d9}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a:hover{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title{color:#000000a6;font-size:13px;font-weight:700;height:30px;line-height:30px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a{color:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:active,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:active{background:#0000}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-submenu-arrow{color:#000000d9}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:active,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:active{background:#0000}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item-selected{background-color:#e6f7ff!important;color:#4285f4!important}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-footer{-webkit-backdrop-filter:none;backdrop-filter:none;background:none;border-top:1px solid #ebf3fe}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-footer .zt-btn-link{color:#4285f4!important}.zmdms-menu--sub.zmdms-menu--sub-item-line .ant-menu-item{height:auto!important;line-height:20px!important;min-height:30px}.zmdms-menu--sub.zmdms-menu--sub-item-line .ant-menu-item .ant-menu-title-content{word-wrap:break-word;display:inline-block;height:auto!important;text-overflow:unset!important;white-space:pre-wrap;width:100%}.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.zmdms-content--header-tabs{width:300px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab>div{padding:0}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab a{color:#768696;display:inline-block;padding:0 20px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab.ant-tabs-tab-with-remove a{padding:0 10px 0 20px}.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.zmdms-menu--main-hide-bg .ant-menu-item-selected{background:#1566d2!important}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-item-line .ant-menu-item{height:auto!important;line-height:20px!important;min-height:36px}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-item-line .ant-menu-item .ant-menu-title-content{word-wrap:break-word;display:inline-block;height:auto!important;text-overflow:unset!important;white-space:pre-wrap;width:100%}.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;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{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-title-content>a,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:active{background:#0000}.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-root>.ant-menu-item-only-child{margin-top:2px}.zmdms-menu--sub .ant-drawer-body .ant-menu-root>.ant-menu-item-only-child .ant-menu-title-content{font-weight:700}.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;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}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-content,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-content .ant-menu{background:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-header{background:#fff;border-bottom:1px solid #ebf3fe}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body{backdrop-filter:none;background:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-track{background:#fff;border-radius:4px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-thumb{background:#8695a1;border-radius:4px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#727e88}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item a,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a{color:#000000d9}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a:hover{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title{color:#000000a6;font-size:13px;font-weight:700;height:30px;line-height:30px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a{color:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:active,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:active{background:#0000}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-submenu-arrow{color:#000000d9}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:active,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:active{background:#0000}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item-selected{background-color:#e6f7ff!important;color:#4285f4!important}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-footer{backdrop-filter:none;background:none;border-top:1px solid #ebf3fe}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-footer .zt-btn-link{color:#4285f4!important}.zmdms-menu--sub.zmdms-menu--sub-item-line .ant-menu-item{height:auto!important;line-height:20px!important;min-height:30px}.zmdms-menu--sub.zmdms-menu--sub-item-line .ant-menu-item .ant-menu-title-content{word-wrap:break-word;display:inline-block;height:auto!important;text-overflow:unset!important;white-space:pre-wrap;width:100%}.logout-spin{background-color:#ffffffb3;bottom:0;left:0;padding-top:100px;position:fixed;right:0;top:0;z-index:1000}
@@ -65,6 +65,8 @@ interface ILayoutSiderProps {
65
65
  maxDeepIndex?: number;
66
66
  /** 是否持久化二级菜单固定状态,刷新后保持 */
67
67
  persist?: boolean;
68
+ /** 自定义渲染主菜单图标,传入则替代默认 Icon 组件 */
69
+ renderIcon?: (menuItem: any) => React__default.ReactNode;
68
70
  }
69
71
  declare const _default: React__default.NamedExoticComponent<ILayoutSiderProps>;
70
72
 
@@ -16,7 +16,7 @@ var AppLayoutSider = function (props) {
16
16
  // 118 宽度改成 134宽度
17
17
  _b = props.siderWidth,
18
18
  // 118 宽度改成 134宽度
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, logoStyle = props.logoStyle, 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, openOnlyHasSubmenus = props.openOnlyHasSubmenus, hideSubMenuBg = props.hideSubMenuBg, menuItemLine = props.menuItemLine, subMenuItemLine = props.subMenuItemLine, bottomContainer = props.bottomContainer, onLogoClick = props.onLogoClick, filterMenuHandle = props.filterMenuHandle, logoTitle = props.logoTitle, maxDeepIndex = props.maxDeepIndex, persist = props.persist;
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, logoStyle = props.logoStyle, 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, openOnlyHasSubmenus = props.openOnlyHasSubmenus, hideSubMenuBg = props.hideSubMenuBg, menuItemLine = props.menuItemLine, subMenuItemLine = props.subMenuItemLine, bottomContainer = props.bottomContainer, onLogoClick = props.onLogoClick, filterMenuHandle = props.filterMenuHandle, logoTitle = props.logoTitle, maxDeepIndex = props.maxDeepIndex, persist = props.persist, renderIcon = props.renderIcon;
20
20
  // 当前选中的主菜单item
21
21
  var _e = useState([]), mainMenuSelectedKeys = _e[0], setMainMenuSelectedKeys = _e[1];
22
22
  // 内部二级菜单管理
@@ -75,7 +75,7 @@ var AppLayoutSider = function (props) {
75
75
  getNewPath: getNewPath,
76
76
  renderItem: renderItem,
77
77
  filterMenuHandle: filterMenuHandle,
78
- } }, { children: jsx(Menu, { width: siderWidth, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, logo: logo, logoStyle: logoStyle, subMenuLogo: subMenuLogo, getPrefixByAppId: getPrefixByAppId, defaultVisible: defaultVisible, openOnlyHasSubmenus: openOnlyHasSubmenus, defaultFixed: defaultFixed, isShowSearchInput: isShowSearchInput, hideSubMenuBg: hideSubMenuBg, menuItemLine: menuItemLine, subMenuItemLine: subMenuItemLine, bottomContainer: bottomContainer, onLogoClick: onLogoClick, logoTitle: logoTitle, maxDeepIndex: maxDeepIndex, persist: persist }) })) })));
78
+ } }, { children: jsx(Menu, { width: siderWidth, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, logo: logo, logoStyle: logoStyle, subMenuLogo: subMenuLogo, getPrefixByAppId: getPrefixByAppId, defaultVisible: defaultVisible, openOnlyHasSubmenus: openOnlyHasSubmenus, defaultFixed: defaultFixed, isShowSearchInput: isShowSearchInput, hideSubMenuBg: hideSubMenuBg, menuItemLine: menuItemLine, subMenuItemLine: subMenuItemLine, bottomContainer: bottomContainer, onLogoClick: onLogoClick, logoTitle: logoTitle, maxDeepIndex: maxDeepIndex, persist: persist, renderIcon: renderIcon }) })) })));
79
79
  };
80
80
  AppLayoutSider.displayName = "ZTXK_WEBUI_AppLayoutSider";
81
81
  var AppLayoutSider$1 = memo(AppLayoutSider);
@@ -10,7 +10,7 @@ import { Menu } from 'antd';
10
10
 
11
11
  // 是否隐藏菜单 isHiddenMenu 1 是 2 否
12
12
  var MainMenu = function (props) {
13
- var onMouseEnter = props.onMouseEnter, addTab = props.addTab, getPrefixByAppId = props.getPrefixByAppId, subMenu = props.subMenu, hideSubMenuBg = props.hideSubMenuBg, menuItemLine = props.menuItemLine;
13
+ var onMouseEnter = props.onMouseEnter, addTab = props.addTab, getPrefixByAppId = props.getPrefixByAppId, subMenu = props.subMenu, hideSubMenuBg = props.hideSubMenuBg, menuItemLine = props.menuItemLine, renderIcon = props.renderIcon;
14
14
  var _a = useContext(LayoutMenuContext), mainMenuSelectedKeys = _a.mainMenuSelectedKeys, setMainMenuSelectedKeys = _a.setMainMenuSelectedKeys, userMenus = _a.userMenus, apps = _a.apps, mergeSystemIds = _a.mergeSystemIds, postMergeSystemIds = _a.postMergeSystemIds, getNewPath = _a.getNewPath, renderItem = _a.renderItem, filterMenuHandle = _a.filterMenuHandle;
15
15
  // 获取主菜单展开的内容
16
16
  var _b = useMainMenuOpenKeys(userMenus, mainMenuSelectedKeys, { apps: apps, mergeSystemIds: mergeSystemIds, postMergeSystemIds: postMergeSystemIds }), mainMenuOpenKeys = _b.mainMenuOpenKeys, onMainMenuOpenChange = _b.onMainMenuOpenChange;
@@ -56,6 +56,18 @@ var MainMenu = function (props) {
56
56
  });
57
57
  } }, { children: menuItem.name })));
58
58
  }, [addTab, getPrefixByAppId, getNewPath, renderItem]);
59
+ // 获取菜单图标,支持外部传入 renderIcon 替代默认 Icon 组件
60
+ var getIcon = useCallback(function (menuItem, placeholder) {
61
+ if (placeholder === void 0) { placeholder = false; }
62
+ if (menuItem.source) {
63
+ return renderIcon ? (renderIcon(menuItem)) : (jsx(IconFont, { type: menuItem.source, style: { fontSize: "18px" } }));
64
+ }
65
+ return placeholder ? (jsx("span", { style: {
66
+ fontSize: "18px",
67
+ display: "inline-block",
68
+ width: "1em",
69
+ } })) : null;
70
+ }, [renderIcon]);
59
71
  var items = useMemo(function () {
60
72
  var _a;
61
73
  if (!Array.isArray(userMenus)) {
@@ -75,7 +87,7 @@ var MainMenu = function (props) {
75
87
  label: getLabel(userMenu),
76
88
  title: (_a = userMenu.name) === null || _a === void 0 ? void 0 : _a.trim(),
77
89
  key: userMenu.id,
78
- icon: userMenu.source ? (jsx(IconFont, { type: userMenu.source, style: { fontSize: "18px" } })) : null,
90
+ icon: getIcon(userMenu),
79
91
  };
80
92
  });
81
93
  }
@@ -93,7 +105,7 @@ var MainMenu = function (props) {
93
105
  label: jsx("span", __assign({ title: (_a = userMenu.name) === null || _a === void 0 ? void 0 : _a.trim() }, { children: userMenu.name })),
94
106
  title: (_b = userMenu.name) === null || _b === void 0 ? void 0 : _b.trim(),
95
107
  key: userMenu.id,
96
- icon: userMenu.source ? (jsx(IconFont, { type: userMenu.source, style: { fontSize: "18px" } })) : null,
108
+ icon: getIcon(userMenu),
97
109
  children: children
98
110
  ? filterMenus.map(function (item) {
99
111
  var _a;
@@ -101,17 +113,13 @@ var MainMenu = function (props) {
101
113
  label: getLabel(item),
102
114
  title: (_a = item.name) === null || _a === void 0 ? void 0 : _a.trim(),
103
115
  key: item.id,
104
- icon: item.source ? (jsx(IconFont, { type: item.source, style: { fontSize: "18px" } })) : (jsx("span", { style: {
105
- fontSize: "18px",
106
- display: "inline-block",
107
- width: "1em",
108
- } })),
116
+ icon: getIcon(item, true),
109
117
  };
110
118
  })
111
119
  : null,
112
120
  };
113
121
  });
114
- }, [userMenus, getLabel, filterMenuHandle]);
122
+ }, [userMenus, getLabel, filterMenuHandle, getIcon]);
115
123
  // 主菜单选中时调用
116
124
  var onSelectHandle = useCallback(function (info) {
117
125
  var _a, _b;
@@ -8,7 +8,7 @@ import SubMenu from './SubMenu.js';
8
8
  import { SUB_MENU_FIXED_STORAGE_KEY } from './constants.js';
9
9
 
10
10
  var MenuCom = function (props) {
11
- var width = props.width, subMenuWidth = props.subMenuWidth, layoutSiderRef = props.layoutSiderRef, addTab = props.addTab, logo = props.logo, logoStyle = props.logoStyle, getPrefixByAppId = props.getPrefixByAppId, subMenuLogo = props.subMenuLogo, _a = props.defaultVisible, defaultVisible = _a === void 0 ? false : _a, openOnlyHasSubmenus = props.openOnlyHasSubmenus, defaultFixed = props.defaultFixed, isShowSearchInput = props.isShowSearchInput, hideSubMenuBg = props.hideSubMenuBg, menuItemLine = props.menuItemLine, subMenuItemLine = props.subMenuItemLine, bottomContainer = props.bottomContainer, onLogoClick = props.onLogoClick, logoTitle = props.logoTitle, maxDeepIndex = props.maxDeepIndex, persist = props.persist;
11
+ var width = props.width, subMenuWidth = props.subMenuWidth, layoutSiderRef = props.layoutSiderRef, addTab = props.addTab, logo = props.logo, logoStyle = props.logoStyle, getPrefixByAppId = props.getPrefixByAppId, subMenuLogo = props.subMenuLogo, _a = props.defaultVisible, defaultVisible = _a === void 0 ? false : _a, openOnlyHasSubmenus = props.openOnlyHasSubmenus, defaultFixed = props.defaultFixed, isShowSearchInput = props.isShowSearchInput, hideSubMenuBg = props.hideSubMenuBg, menuItemLine = props.menuItemLine, subMenuItemLine = props.subMenuItemLine, bottomContainer = props.bottomContainer, onLogoClick = props.onLogoClick, logoTitle = props.logoTitle, maxDeepIndex = props.maxDeepIndex, persist = props.persist, renderIcon = props.renderIcon;
12
12
  // 二级菜单是否显示
13
13
  var _b = useState(function () {
14
14
  if (persist) {
@@ -38,7 +38,7 @@ var MenuCom = function (props) {
38
38
  var _a;
39
39
  (_a = subMenu.current) === null || _a === void 0 ? void 0 : _a.setVisible(false);
40
40
  }, []);
41
- return (jsxs("div", __assign({ className: "zmdms-menu", onMouseLeave: onMouseLeave }, { children: [jsx(Logo, { logo: logo, showLine: visible && !hideSubMenuBg, style: logoStyle, onClick: onLogoClick, logoTitle: logoTitle }), isShowSearchInput && jsx(SearchInput, { setVisible: setVisible }), jsx(MainMenu, { onMouseEnter: onMouseEnter, addTab: addTab, getPrefixByAppId: getPrefixByAppId, subMenu: subMenu, hideSubMenuBg: hideSubMenuBg, menuItemLine: menuItemLine }), jsx(SubMenu, { ref: subMenu, marginLeft: width, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, getPrefixByAppId: getPrefixByAppId, subMenuLogo: subMenuLogo, visible: visible, setVisible: setVisible, defaultFixed: defaultFixed, hideSubMenuBg: hideSubMenuBg, subMenuItemLine: subMenuItemLine, openOnlyHasSubmenus: openOnlyHasSubmenus, maxDeepIndex: maxDeepIndex, persist: persist }), bottomContainer] })));
41
+ return (jsxs("div", __assign({ className: "zmdms-menu", onMouseLeave: onMouseLeave }, { children: [jsx(Logo, { logo: logo, showLine: visible && !hideSubMenuBg, style: logoStyle, onClick: onLogoClick, logoTitle: logoTitle }), isShowSearchInput && jsx(SearchInput, { setVisible: setVisible }), jsx(MainMenu, { onMouseEnter: onMouseEnter, addTab: addTab, getPrefixByAppId: getPrefixByAppId, subMenu: subMenu, hideSubMenuBg: hideSubMenuBg, menuItemLine: menuItemLine, renderIcon: renderIcon }), jsx(SubMenu, { ref: subMenu, marginLeft: width, subMenuWidth: subMenuWidth, layoutSiderRef: layoutSiderRef, addTab: addTab, getPrefixByAppId: getPrefixByAppId, subMenuLogo: subMenuLogo, visible: visible, setVisible: setVisible, defaultFixed: defaultFixed, hideSubMenuBg: hideSubMenuBg, subMenuItemLine: subMenuItemLine, openOnlyHasSubmenus: openOnlyHasSubmenus, maxDeepIndex: maxDeepIndex, persist: persist }), bottomContainer] })));
42
42
  };
43
43
  var Menu = memo(MenuCom);
44
44
 
@@ -1,4 +1,4 @@
1
- import { __assign } from '../_virtual/_tslib.js';
1
+ import { __spreadArray, __assign } from '../_virtual/_tslib.js';
2
2
  import { jsx, jsxs } from 'react/jsx-runtime';
3
3
  import { useRef, useState, useCallback, useMemo, useEffect, useImperativeHandle } from 'react';
4
4
  import { Spin } from 'antd';
@@ -11,7 +11,7 @@ import CanvasTableMenu from './components/CanvasTableMenu.js';
11
11
  import './components/ColumnDynamic.js';
12
12
  import HeaderOverlay from './components/HeaderOverlay.js';
13
13
  import { useContextMenu as Fe } from '../node_modules/react-contexify/dist/index.js';
14
- import { useTableState } from './hooks/useTableState.js';
14
+ import { useTableState, processData, generateAutoFilters } from './hooks/useTableState.js';
15
15
  import { useTableSelection } from './hooks/useTableSelection.js';
16
16
  import { useExpandable } from './hooks/useExpandable.js';
17
17
  import { useTableRender } from './hooks/useTableRender.js';
@@ -32,9 +32,9 @@ import { SCROLLBAR_SIZE } from './utils/constants.js';
32
32
  import { calculateTotalHeight, calculateColumnRenderInfos, calculateTotalWidth } from './utils/tableCalculations.js';
33
33
  import 'zmdms-utils';
34
34
  import 'dayjs';
35
- import { TABLE_DYNAMIC_KEY } from '../table/constant.js';
35
+ import { IS_SUMMARY, TABLE_DYNAMIC_KEY } from '../table/constant.js';
36
36
  import { useDynamicListByColumns } from '../table/useDynamicListByColumns.js';
37
- import { useAutoMerge } from '../table/hooks.js';
37
+ import { useAutoMerge, recalcMergeRowSpans } from '../table/hooks.js';
38
38
  import { useExcelExport } from '../table/excel.js';
39
39
  import { getTableColumns } from '../table/utils.js';
40
40
  import DynamicSetting from '../dynamicsetting/dynamicSetting.js';
@@ -96,7 +96,7 @@ function CanvasTable(props) {
96
96
  rowSelection: rowSelection,
97
97
  onFilterChange: onFilterChange,
98
98
  isAutoMerge: isAutoMerge,
99
- }), state = _0.state, setState = _0.setState, processedDataSource = _0.processedDataSource, handleFilterChange = _0.handleFilterChange, closeFilterPopover = _0.closeFilterPopover, autoGeneratedFilters = _0.autoGeneratedFilters;
99
+ }), state = _0.state, setState = _0.setState, handleFilterChange = _0.handleFilterChange, closeFilterPopover = _0.closeFilterPopover;
100
100
  // 树形展开管理
101
101
  var _1 = useExpandable({
102
102
  dataSource: dataSource,
@@ -108,7 +108,7 @@ function CanvasTable(props) {
108
108
  ? { field: state.sortField, order: state.sortOrder }
109
109
  : undefined;
110
110
  }, [state.sortOrder, state.sortField]);
111
- var _2 = useAutoMerge(processedDataSource, processedColumnsOld, {
111
+ var _2 = useAutoMerge(dataSource, processedColumnsOld, {
112
112
  isAutoMerge: isAutoMerge,
113
113
  isDimensionDynamic: isDimensionDynamic,
114
114
  isDimensionMergeChildren: isDimensionMergeChildren,
@@ -122,17 +122,50 @@ function CanvasTable(props) {
122
122
  }
123
123
  return newDataSource;
124
124
  }, [hasExpandable, flattenedData, newDataSource]);
125
- // 生成合计行和最终数据源
125
+ // 生成合计行和最终数据源(基于全量数据,合计值不随筛选变化)
126
126
  var _3 = useSummaryRow({
127
127
  columns: processedColumns,
128
128
  dataSource: expandedDataSource,
129
- }), finalDataSource = _3.finalDataSource, hasSummaryRow = _3.hasSummaryRow;
129
+ }), finalDataSource = _3.finalDataSource, hasSummaryRowConfig = _3.hasSummaryRow;
130
+ // 基于含合计行的全量数据筛选
131
+ // 末尾合计行(总计)始终保留在最后,不参与筛选
132
+ var processedDataSource = useMemo(function () {
133
+ // 分离末尾合计行(始终保留,不参与筛选)
134
+ var lastRow = finalDataSource[finalDataSource.length - 1];
135
+ var summaryRow = hasSummaryRowConfig && (lastRow === null || lastRow === void 0 ? void 0 : lastRow[IS_SUMMARY]) ? lastRow : null;
136
+ var dataToFilter = summaryRow
137
+ ? finalDataSource.slice(0, -1)
138
+ : finalDataSource;
139
+ // 筛选(不含末尾合计行)
140
+ var result = processData(dataToFilter, state.filters, processedColumns, state.sortField, state.sortOrder, isAutoMerge);
141
+ // 仅在筛选后行数减少时重新计算合并 rowSpan(筛选前保持原始逻辑)
142
+ if (isAutoMerge && result.length < dataToFilter.length) {
143
+ result = recalcMergeRowSpans(result);
144
+ }
145
+ // 末尾合计行始终追加到末尾
146
+ if (summaryRow) {
147
+ result = __spreadArray(__spreadArray([], result, true), [summaryRow], false);
148
+ }
149
+ return result;
150
+ }, [
151
+ finalDataSource,
152
+ state.filters,
153
+ processedColumns,
154
+ state.sortField,
155
+ state.sortOrder,
156
+ isAutoMerge,
157
+ hasSummaryRowConfig,
158
+ ]);
159
+ // 是否存在末尾合计行(始终保留)
160
+ var hasSummaryRow = hasSummaryRowConfig;
161
+ // 基于含合计行的全量数据源生成筛选候选值
162
+ var autoGeneratedFilters = useMemo(function () { return generateAutoFilters(finalDataSource, processedColumns); }, [finalDataSource, processedColumns]);
130
163
  // 用于存储计算后的表头高度(用于自动高度的精确计算)
131
164
  var _4 = useState(undefined), preciseHeaderHeight = _4[0], setPreciseHeaderHeight = _4[1];
132
165
  // 用于存储是否需要横向滚动条(用于自动高度的精确计算)
133
166
  var _5 = useState(false), needHorizontalScrollbar = _5[0], setNeedHorizontalScrollbar = _5[1];
134
167
  // 自动高度计算(需要在容器尺寸计算之前)
135
- var autoHeight = useCanvasTableAutoHeight(isAutoScrollY, autoScrollYMarginBottom, canvasTableId, finalDataSource.length, // 数据行数(用于 content 模式)
168
+ var autoHeight = useCanvasTableAutoHeight(isAutoScrollY, autoScrollYMarginBottom, canvasTableId, processedDataSource.length, // 数据行数(用于 content 模式)
136
169
  headerHeight, // 表头基础高度(用于 content 模式的初始计算)
137
170
  rowHeight, // 行高(用于 content 模式)
138
171
  preciseHeaderHeight, // 计算后的表头高度(用于 content 模式的精确计算)
@@ -152,7 +185,7 @@ function CanvasTable(props) {
152
185
  var columnRenderInfos = useMemo(function () {
153
186
  // 计算原始总高度
154
187
  var tempTotalHeight = calculateTotalHeight(headerHeight, // 使用基础表头高度做粗略判断
155
- finalDataSource.length, rowHeight);
188
+ processedDataSource.length, rowHeight);
156
189
  // 判断是否需要垂直滚动条
157
190
  var needVerticalScrollbar = tempTotalHeight > containerHeight;
158
191
  // 第二步:计算实际可用宽度(如果需要垂直滚动条,减去滚动条宽度)
@@ -166,7 +199,7 @@ function CanvasTable(props) {
166
199
  containerWidth,
167
200
  containerHeight,
168
201
  headerHeight,
169
- finalDataSource.length,
202
+ processedDataSource.length,
170
203
  rowHeight,
171
204
  manuallyResizedColumnKeys,
172
205
  ]);
@@ -186,7 +219,7 @@ function CanvasTable(props) {
186
219
  }, [isAutoScrollY, calculatedHeaderHeight, preciseHeaderHeight]);
187
220
  // 计算合并单元格信息
188
221
  var mergeCellMap = useMergeCells({
189
- dataSource: finalDataSource,
222
+ dataSource: processedDataSource,
190
223
  columns: processedColumns,
191
224
  isIndexMerge: isIndexMerge,
192
225
  isSelectionMerge: isSelectionMerge,
@@ -194,8 +227,8 @@ function CanvasTable(props) {
194
227
  // 计算总宽度和总高度
195
228
  var totalWidth = useMemo(function () { return calculateTotalWidth(columnRenderInfos); }, [columnRenderInfos]);
196
229
  var totalHeight = useMemo(function () {
197
- return calculateTotalHeight(calculatedHeaderHeight, finalDataSource.length, rowHeight);
198
- }, [calculatedHeaderHeight, finalDataSource.length, rowHeight]);
230
+ return calculateTotalHeight(calculatedHeaderHeight, processedDataSource.length, rowHeight);
231
+ }, [calculatedHeaderHeight, processedDataSource.length, rowHeight]);
199
232
  // 计算滚动条指标
200
233
  var _6 = useScrollbarMetrics({
201
234
  containerWidth: containerWidth,
@@ -326,7 +359,7 @@ function CanvasTable(props) {
326
359
  // 复制到剪贴板
327
360
  var _10 = useCopyToClipboard({
328
361
  cellSelection: state.cellSelection,
329
- processedDataSource: finalDataSource,
362
+ processedDataSource: processedDataSource,
330
363
  columns: processedColumns,
331
364
  containerRef: containerRef,
332
365
  }), getSelectedCellsText = _10.getSelectedCellsText, copyToClipboard = _10.copyToClipboard;
@@ -354,7 +387,7 @@ function CanvasTable(props) {
354
387
  setState: setState,
355
388
  scrollState: scrollState,
356
389
  setScrollState: setScrollState,
357
- processedDataSource: finalDataSource,
390
+ processedDataSource: processedDataSource,
358
391
  columnRenderInfos: columnRenderInfos,
359
392
  columns: processedColumns,
360
393
  expandable: expandable,
@@ -401,13 +434,13 @@ function CanvasTable(props) {
401
434
  summaryFixed: summaryFixed,
402
435
  }), handleCanvasMouseDown = _11.handleCanvasMouseDown, handleCanvasMouseMove = _11.handleCanvasMouseMove, handleCanvasMouseUp = _11.handleCanvasMouseUp, handleCanvasMouseLeave = _11.handleCanvasMouseLeave, handleCanvasContextMenu = _11.handleCanvasContextMenu;
403
436
  // 渲染表格
404
- useTableRender(__assign(__assign({ canvasRef: canvasRef, processedDataSource: finalDataSource, columnRenderInfos: columnRenderInfos, columns: processedColumns, // 传递原始columns用于渲染多级表头
437
+ useTableRender(__assign(__assign({ canvasRef: canvasRef, processedDataSource: processedDataSource, columnRenderInfos: columnRenderInfos, columns: processedColumns, // 传递原始columns用于渲染多级表头
405
438
  state: state, scrollState: scrollState, rowSelection: rowSelection, containerWidth: containerWidth, containerHeight: containerHeight, headerHeight: calculatedHeaderHeight, baseHeaderHeight: headerHeight, // 传入原始基础高度用于计算每层高度
406
439
  rowHeight: rowHeight, bordered: bordered, striped: striped, headerAlign: headerAlign }, scrollbarMetrics), { getRowKey: getRowKey, resizeState: resizeState, getColumnWidth: getColumnWidth, RESIZE_HANDLE_WIDTH: RESIZE_HANDLE_WIDTH, mergeCellMap: mergeCellMap, hasSummaryRow: hasSummaryRow, fixedRowsCount: fixedRowsCount, fixedRowsConfig: fixedRowsConfig, summaryFixed: summaryFixed, expandable: expandable, flattenedData: flattenedData }));
407
440
  // 单元格覆盖层
408
441
  var cellOverlays = useTableCellOverlay({
409
442
  canvasRef: canvasRef,
410
- processedDataSource: finalDataSource,
443
+ processedDataSource: processedDataSource,
411
444
  columnRenderInfos: columnRenderInfos,
412
445
  scrollState: scrollState,
413
446
  containerWidth: containerWidth,
@@ -570,7 +603,7 @@ function CanvasTable(props) {
570
603
  WebkitFontSmoothing: "antialiased",
571
604
  MozOsxFontSmoothing: "grayscale",
572
605
  textRendering: "optimizeLegibility",
573
- } }), dynamicKey ? (jsx(DynamicSetting, { parentDynamicKey: TABLE_DYNAMIC_KEY, dynamicKey: dynamicKey, defaultList: defaultDynamicList, onCurrentListChange: onCurrentListChange, ref: dynamicSettingRef, hiddenOperationIcon: true, isMore: true, isFixed: true, isDimensionDynamic: isDimensionDynamic })) : null, jsx(EmptyPlaceholder, { visible: finalDataSource.length === 0, text: emptyText, headerHeight: calculatedHeaderHeight }), jsx(HeaderOverlay, { overlays: headerOverlays }), jsx(CellOverlay, { overlays: cellOverlays }), filterPopoverElement, jsx(Tooltip, { visible: state.tooltip.visible, content: state.tooltip.content, position: state.tooltip.position }), jsx(BadgePopover, { visible: state.badgePopover.visible, content: state.badgePopover.content, position: state.badgePopover.position, popoverRef: badgePopoverRef }), menuId ? (jsx(CanvasTableMenu, { menuId: menuId, containerRef: containerRef, isFullscreenHandle: isFullscreenHandle, tableMenuRef: tableMenuRef, onCopy: handleCopy, onExport: function () {
606
+ } }), dynamicKey ? (jsx(DynamicSetting, { parentDynamicKey: TABLE_DYNAMIC_KEY, dynamicKey: dynamicKey, defaultList: defaultDynamicList, onCurrentListChange: onCurrentListChange, ref: dynamicSettingRef, hiddenOperationIcon: true, isMore: true, isFixed: true, isDimensionDynamic: isDimensionDynamic })) : null, jsx(EmptyPlaceholder, { visible: processedDataSource.length === 0, text: emptyText, headerHeight: calculatedHeaderHeight }), jsx(HeaderOverlay, { overlays: headerOverlays }), jsx(CellOverlay, { overlays: cellOverlays }), filterPopoverElement, jsx(Tooltip, { visible: state.tooltip.visible, content: state.tooltip.content, position: state.tooltip.position }), jsx(BadgePopover, { visible: state.badgePopover.visible, content: state.badgePopover.content, position: state.badgePopover.position, popoverRef: badgePopoverRef }), menuId ? (jsx(CanvasTableMenu, { menuId: menuId, containerRef: containerRef, isFullscreenHandle: isFullscreenHandle, tableMenuRef: tableMenuRef, onCopy: handleCopy, onExport: function () {
574
607
  return exportExcel((exportExcelConfig === null || exportExcelConfig === void 0 ? void 0 : exportExcelConfig.fileName) || "表格数据.xlsx", exportExcelConfig);
575
608
  } })) : null] })) })));
576
609
  }
@@ -169,7 +169,7 @@ var DataRowRenderer = /** @class */ (function () {
169
169
  }
170
170
  else if (column.key === "__index__") {
171
171
  // 处理序号列
172
- this.renderIndexCell(rowIndex, drawX, y, width, cellHeight);
172
+ this.renderIndexCell(rowIndex, colIndex, drawX, y, width, cellHeight);
173
173
  }
174
174
  else {
175
175
  this.renderDataCell(column, colIndex, rowIndex, record, drawX, y, width, cellHeight, isSummaryRow);
@@ -178,15 +178,35 @@ var DataRowRenderer = /** @class */ (function () {
178
178
  /**
179
179
  * 渲染序号单元格
180
180
  */
181
- DataRowRenderer.prototype.renderIndexCell = function (rowIndex, drawX, y, width, cellHeight) {
181
+ DataRowRenderer.prototype.renderIndexCell = function (rowIndex, colIndex, drawX, y, width, cellHeight) {
182
182
  if (!this.context)
183
183
  return;
184
- var _a = this.context, ctx = _a.ctx, flattenedData = _a.flattenedData, expandable = _a.expandable;
185
- var indexText = String(rowIndex + 1); // 默认使用行索引
186
- if (flattenedData && flattenedData[rowIndex]) {
187
- var flattenedRow = flattenedData[rowIndex];
188
- // 使用 indexInParent 作为显示序号
189
- indexText = String(flattenedRow.indexInParent);
184
+ var _a = this.context, ctx = _a.ctx, flattenedData = _a.flattenedData, expandable = _a.expandable, mergeCellMap = _a.mergeCellMap, processedDataSource = _a.processedDataSource;
185
+ var indexText;
186
+ if (expandable && flattenedData && flattenedData[rowIndex]) {
187
+ // 展开行场景:使用 indexInParent 作为显示序号
188
+ indexText = String(flattenedData[rowIndex].indexInParent);
189
+ }
190
+ else {
191
+ var currentRecord = processedDataSource === null || processedDataSource === void 0 ? void 0 : processedDataSource[rowIndex];
192
+ if (currentRecord && currentRecord[IS_SUMMARY]) {
193
+ // 合计行不显示序号
194
+ indexText = "";
195
+ }
196
+ else {
197
+ // 计算逻辑序号:跳过被合并的行和合计行
198
+ var logicIndex = 0;
199
+ for (var i = 0; i <= rowIndex; i++) {
200
+ var record = processedDataSource === null || processedDataSource === void 0 ? void 0 : processedDataSource[i];
201
+ if (record && record[IS_SUMMARY])
202
+ continue;
203
+ var info = mergeCellMap === null || mergeCellMap === void 0 ? void 0 : mergeCellMap.get("".concat(i, "-").concat(colIndex));
204
+ if (info === null || info === void 0 ? void 0 : info.skip)
205
+ continue;
206
+ logicIndex++;
207
+ }
208
+ indexText = String(logicIndex);
209
+ }
190
210
  }
191
211
  // 检查是否需要在序号列中渲染展开图标
192
212
  var expandIconWidth = 0;
@@ -3,6 +3,7 @@ import { drawCheckbox, truncateText } from '../../utils/canvasDrawHelpers.js';
3
3
  import { formatCellValue } from '../../utils/formatHelpers.js';
4
4
  import '../../../_virtual/_tslib.js';
5
5
  import { setTextAlign, calculateTextX } from '../../utils/renderHelpers.js';
6
+ import { IS_SUMMARY } from '../../../table/constant.js';
6
7
 
7
8
  /**
8
9
  * 固定行渲染器
@@ -85,7 +86,7 @@ var FixedRowRenderer = /** @class */ (function () {
85
86
  if (onlyFixed === void 0) { onlyFixed = false; }
86
87
  if (!this.context)
87
88
  return;
88
- var _a = this.context, ctx = _a.ctx, processedDataSource = _a.processedDataSource, columnRenderInfos = _a.columnRenderInfos, rowHeight = _a.rowHeight, scrollState = _a.scrollState, state = _a.state, getRowKey = _a.getRowKey, displayWidth = _a.displayWidth, fixedRowsConfig = _a.fixedRowsConfig, striped = _a.striped, getColumnWidth = _a.getColumnWidth;
89
+ var _a = this.context, ctx = _a.ctx, processedDataSource = _a.processedDataSource, columnRenderInfos = _a.columnRenderInfos, rowHeight = _a.rowHeight, scrollState = _a.scrollState, state = _a.state, getRowKey = _a.getRowKey, displayWidth = _a.displayWidth, fixedRowsConfig = _a.fixedRowsConfig, striped = _a.striped, getColumnWidth = _a.getColumnWidth, mergeCellMap = _a.mergeCellMap;
89
90
  var record = processedDataSource[rowIndex];
90
91
  if (!record)
91
92
  return;
@@ -129,7 +130,22 @@ var FixedRowRenderer = /** @class */ (function () {
129
130
  // 处理序号�?
130
131
  if (column.key === "__index__") {
131
132
  if (position !== "summary") {
132
- var indexText = String(rowIndex + 1);
133
+ var currentRecord = processedDataSource[rowIndex];
134
+ if (currentRecord && currentRecord[IS_SUMMARY]) {
135
+ return; // 合计行不显示序号
136
+ }
137
+ // 计算逻辑序号:跳过被合并的行和合计行
138
+ var logicIndex = 0;
139
+ for (var i = 0; i <= rowIndex; i++) {
140
+ var record_1 = processedDataSource[i];
141
+ if (record_1 && record_1[IS_SUMMARY])
142
+ continue;
143
+ var info_1 = mergeCellMap === null || mergeCellMap === void 0 ? void 0 : mergeCellMap.get("".concat(i, "-").concat(colIndex));
144
+ if (info_1 === null || info_1 === void 0 ? void 0 : info_1.skip)
145
+ continue;
146
+ logicIndex++;
147
+ }
148
+ var indexText = String(logicIndex);
133
149
  ctx.fillStyle = COLORS.text;
134
150
  ctx.font = "".concat(FONT_WEIGHT, " ").concat(FONT_SIZE, "px ").concat(FONT_FAMILY);
135
151
  ctx.textBaseline = "middle";