zmdms-webui 3.4.7 → 3.4.9

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;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}
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}
@@ -50,6 +50,17 @@ interface IZtxkConfig {
50
50
  * 是否给所有附件默认开启翻译按钮功能
51
51
  */
52
52
  enableTranslationButton?: boolean;
53
+ /**
54
+ * 附件列表 text 模式是否启用自定义列表项渲染
55
+ * (图标 / 文件名 / 文件大小 / 操作按钮)
56
+ * 默认 true 启用新样式;传入 false 沿用 antd 原生展示
57
+ */
58
+ enableUploadListTextItemRender?: boolean;
59
+ /**
60
+ * 附件列表是否显示文件大小(仅在自定义列表项渲染启用时生效)
61
+ * 默认 true 显示;传入 false 不显示
62
+ */
63
+ enableUploadListFileSize?: boolean;
53
64
  /**
54
65
  * 表单是否采用新的布局模式
55
66
  */
@@ -12,6 +12,8 @@ var ztxkConfig = {
12
12
  enableDynamicColumnSearch: false,
13
13
  translationPreviewRoute: "",
14
14
  enableTranslationButton: false,
15
+ enableUploadListTextItemRender: true,
16
+ enableUploadListFileSize: true,
15
17
  enableNewFormLayout: false,
16
18
  enableDynamicColumnText: false,
17
19
  enableTableSummaryCollapse: false,
@@ -0,0 +1,18 @@
1
+ import _objectSpread2 from '../../../../@babel/runtime/helpers/esm/objectSpread2.js';
2
+ import * as React from 'react';
3
+ import PaperClipOutlinedSvg from '../../../icons-svg/es/asn/PaperClipOutlined.js';
4
+ import AntdIcon from '../components/AntdIcon.js';
5
+
6
+ var PaperClipOutlined = function PaperClipOutlined(props, ref) {
7
+ return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread2(_objectSpread2({}, props), {}, {
8
+ ref: ref,
9
+ icon: PaperClipOutlinedSvg
10
+ }));
11
+ };
12
+ var RefIcon = /*#__PURE__*/React.forwardRef(PaperClipOutlined);
13
+ if (process.env.NODE_ENV !== 'production') {
14
+ RefIcon.displayName = 'PaperClipOutlined';
15
+ }
16
+ var PaperClipOutlined$1 = RefIcon;
17
+
18
+ export { PaperClipOutlined$1 as default };
@@ -0,0 +1,5 @@
1
+ // This icon file is generated automatically.
2
+ var PaperClipOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z" } }] }, "name": "paper-clip", "theme": "outlined" };
3
+ var PaperClipOutlinedSvg = PaperClipOutlined;
4
+
5
+ export { PaperClipOutlinedSvg as default };
@@ -4,6 +4,7 @@ import { useCallback } from 'react';
4
4
  import { Table } from 'antd';
5
5
  import { plus, addThousedSeparator } from 'zmdms-utils';
6
6
  import { IS_SUMMARY, MERGE_ROW_SPANS } from './constant.js';
7
+ import { getFieldMergeKey } from './utils.js';
7
8
 
8
9
  function useSummary(summaryConfig, columns, options) {
9
10
  var summaryFixed = options.summaryFixed, rowSelection = options.rowSelection, expandable = options.expandable, isAdd = options.isAdd, isDel = options.isDel, isTableSummaryCollapse = options.isTableSummaryCollapse, showSummary = options.showSummary, renderTableSummaryCollapse = options.renderTableSummaryCollapse;
@@ -135,35 +136,6 @@ function getSummaryData(summaryConfig, dataSource, options) {
135
136
  }
136
137
  return _summaryData;
137
138
  }
138
- /**
139
- * 从 columns 中查找字段的 mergeKey 配置
140
- * @param fieldName 字段名
141
- * @param columns 列配置
142
- * @returns 合并字段名(如果有 mergeKey 则返回 mergeKey,否则返回字段名本身)
143
- */
144
- function getFieldMergeKey(fieldName, columns) {
145
- // 递归查找字段配置
146
- function findFieldMergeKey(cols, targetField) {
147
- if (!Array.isArray(cols))
148
- return null;
149
- for (var _i = 0, cols_1 = cols; _i < cols_1.length; _i++) {
150
- var col = cols_1[_i];
151
- // 检查当前列
152
- if (col.key === targetField || col.dataIndex === targetField) {
153
- return col.mergeKey || null;
154
- }
155
- // 如果有子列,递归查找
156
- if (col.children && Array.isArray(col.children)) {
157
- var result = findFieldMergeKey(col.children, targetField);
158
- if (result !== null)
159
- return result;
160
- }
161
- }
162
- return null;
163
- }
164
- var mergeKey = findFieldMergeKey(columns, fieldName);
165
- return mergeKey || fieldName; // 如果有 mergeKey 返回 mergeKey,否则返回字段名本身
166
- }
167
139
  // 为 getSubtotalObj 编写测试用例 TODO:
168
140
  function getSubtotalObj(fields, dataSource, columns) {
169
141
  if (!Array.isArray(dataSource)) {
@@ -491,7 +491,8 @@ function flattenRecordsOptimized(records, mergeKeys, dimensionSummaryKeys, summa
491
491
  summaryKeys &&
492
492
  summaryKeys.length > 0) {
493
493
  result = insertDimensionSummaryRows(result, mergeKeys, // 传入完整的维度字段列表
494
- dimensionSummaryKeys, summaryKeys, order, dimensionCustomSumKeys // 传入自定义合计配置
494
+ dimensionSummaryKeys, summaryKeys, order, dimensionCustomSumKeys, // 传入自定义合计配置
495
+ columns // 传入列配置,用于查找字段的 mergeKey
495
496
  );
496
497
  }
497
498
  // 3. 为每行初始化合并信息
@@ -781,7 +782,8 @@ function sortByDimensions(records, dimensionKeys, order, columns) {
781
782
  function insertDimensionSummaryRows(records, allDimensionKeys, // 完整的维度字段列表
782
783
  dimensionSummaryKeys, // 需要合计的维度字段
783
784
  summaryKeys, order, // 排序配置
784
- dimensionCustomSumKeys // 自定义合计配置
785
+ dimensionCustomSumKeys, // 自定义合计配置
786
+ columns // 列配置,透传给 createSummaryRow 用于查找 mergeKey
785
787
  ) {
786
788
  var result = __spreadArray([], records, true);
787
789
  // 按维度层级从深到浅处理
@@ -804,7 +806,8 @@ dimensionCustomSumKeys // 自定义合计配置
804
806
  newResult.push.apply(newResult, group.items);
805
807
  // 创建合计行
806
808
  var summaryRow = createSummaryRow(group.items, group.key, groupingKeys, allDimensionKeys, // 传入完整的维度字段列表
807
- summaryKeys, currentDimensionIndex, dimensionCustomSumKeys // 传入自定义合计配置
809
+ summaryKeys, currentDimensionIndex, dimensionCustomSumKeys, // 传入自定义合计配置
810
+ columns // 传入列配置,用于查找字段的 mergeKey
808
811
  );
809
812
  newResult.push(summaryRow);
810
813
  }
@@ -843,7 +846,8 @@ function groupByDimensions(records, dimensionKeys) {
843
846
  function createSummaryRow(items, groupKey, groupingKeys, // 当前分组使用的维度字段
844
847
  allDimensionKeys, // 完整的维度字段列表
845
848
  summaryKeys, summaryLevelIndex, // 在完整维度列表中的索引
846
- dimensionCustomSumKeys // 自定义合计配置
849
+ dimensionCustomSumKeys, // 自定义合计配置
850
+ columns // 列配置,用于查找字段的 mergeKey
847
851
  ) {
848
852
  var summaryRow = {};
849
853
  // 设置所有维度字段
@@ -862,15 +866,20 @@ dimensionCustomSumKeys // 自定义合计配置
862
866
  summaryRow[dimensionKey] = "";
863
867
  }
864
868
  }
869
+ // 计算合计值
870
+ var filteredSummaryItems = items.filter(function (item) { return !isSummaryRow(item); }); // 排除已有的合计行
871
+ // 预计算分组内各字段的合并状态,与底部小计逻辑保持一致:跳过 rowSpan===0 的字段行
872
+ var summaryRowSpans = computeRowSpans(filteredSummaryItems, allDimensionKeys);
865
873
  var _loop_5 = function (summaryKey) {
866
- summaryRow[summaryKey] = items
867
- .filter(function (item) { return !isSummaryRow(item); }) // 排除已有的合计行
868
- .reduce(function (sum, item) {
874
+ var mergeKey = getFieldMergeKey(summaryKey, columns);
875
+ summaryRow[summaryKey] = filteredSummaryItems.reduce(function (sum, item, idx) {
876
+ var _a;
877
+ if (((_a = summaryRowSpans[idx]) === null || _a === void 0 ? void 0 : _a[mergeKey]) === 0)
878
+ return sum; // 该字段被合并到上一行,跳过统计
869
879
  var value = parseFloat(item[summaryKey]) || 0;
870
880
  return plus(sum, value);
871
881
  }, 0);
872
882
  };
873
- // 计算合计值
874
883
  for (var _i = 0, summaryKeys_1 = summaryKeys; _i < summaryKeys_1.length; _i++) {
875
884
  var summaryKey = summaryKeys_1[_i];
876
885
  _loop_5(summaryKey);
@@ -984,6 +993,80 @@ function hasParentGroupChanged(records, currentIndex, mergeKeys, currentKeyIndex
984
993
  }
985
994
  return false;
986
995
  }
996
+ /**
997
+ * 从 columns 中查找字段的 mergeKey 配置
998
+ * 与 useSummary 的合并判断保持一致:若列配置了 mergeKey 则用 mergeKey,否则用字段名本身
999
+ */
1000
+ function getFieldMergeKey(fieldName, columns) {
1001
+ if (!Array.isArray(columns))
1002
+ return fieldName;
1003
+ function findFieldMergeKey(cols, targetField) {
1004
+ if (!Array.isArray(cols))
1005
+ return null;
1006
+ for (var _i = 0, cols_2 = cols; _i < cols_2.length; _i++) {
1007
+ var col = cols_2[_i];
1008
+ if (col.key === targetField || col.dataIndex === targetField) {
1009
+ return col.mergeKey || null;
1010
+ }
1011
+ if (col.children && Array.isArray(col.children)) {
1012
+ var result = findFieldMergeKey(col.children, targetField);
1013
+ if (result !== null)
1014
+ return result;
1015
+ }
1016
+ }
1017
+ return null;
1018
+ }
1019
+ var mergeKey = findFieldMergeKey(columns, fieldName);
1020
+ return mergeKey || fieldName;
1021
+ }
1022
+ /**
1023
+ * 在给定数据范围内计算各合并字段的 rowSpan
1024
+ * 与主流程 flattenRecordsOptimized 的合并算法保持一致
1025
+ * rowSpan===0 表示该字段被合并到上一行,统计时应跳过
1026
+ */
1027
+ function computeRowSpans(records, mergeKeys) {
1028
+ var spansList = records.map(function () { return ({}); });
1029
+ if (!mergeKeys.length)
1030
+ return spansList;
1031
+ for (var keyIndex = 0; keyIndex < mergeKeys.length; keyIndex++) {
1032
+ var currentKey = mergeKeys[keyIndex];
1033
+ // 找出所有分组的起始点(父级字段组合发生变化即为新分组)
1034
+ var groupStarts = [];
1035
+ for (var i = 0; i < records.length; i++) {
1036
+ if (i === 0 || hasParentGroupChanged(records, i, mergeKeys, keyIndex)) {
1037
+ groupStarts.push(i);
1038
+ }
1039
+ }
1040
+ // 在每个分组内查找连续相同值的行
1041
+ for (var g = 0; g < groupStarts.length; g++) {
1042
+ var groupStart = groupStarts[g];
1043
+ var groupEnd = g < groupStarts.length - 1 ? groupStarts[g + 1] : records.length;
1044
+ for (var i = groupStart; i < groupEnd; i++) {
1045
+ if (spansList[i][currentKey] === 0)
1046
+ continue;
1047
+ var currentValue = records[i][currentKey];
1048
+ var spanCount = 1;
1049
+ for (var j = i + 1; j < groupEnd; j++) {
1050
+ if (records[j][currentKey] === currentValue)
1051
+ spanCount++;
1052
+ else
1053
+ break;
1054
+ }
1055
+ if (spanCount > 1) {
1056
+ spansList[i][currentKey] = spanCount;
1057
+ for (var k = 1; k < spanCount; k++) {
1058
+ spansList[i + k][currentKey] = 0;
1059
+ }
1060
+ }
1061
+ else {
1062
+ spansList[i][currentKey] = 1;
1063
+ }
1064
+ i += spanCount - 1;
1065
+ }
1066
+ }
1067
+ }
1068
+ return spansList;
1069
+ }
987
1070
  /**
988
1071
  * 按所有合并键的组合进行分组并计算合计值
989
1072
  * 确保相同维度组合的记录被正确分组
@@ -1122,4 +1205,4 @@ summaryKeys, dimensionCustomSumKeys) {
1122
1205
  return result;
1123
1206
  }
1124
1207
 
1125
- export { copyColData, flattenRecordsOptimized, getFilterRecords, getNextColumn, getTableColumns, parsePasteData, startColumnInsertTableData };
1208
+ export { copyColData, flattenRecordsOptimized, getFieldMergeKey, getFilterRecords, getNextColumn, getTableColumns, parsePasteData, startColumnInsertTableData };
@@ -1 +1 @@
1
- .ant-upload{font-feature-settings:"tnum";box-sizing:border-box;color:#000000a6;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;outline:0;padding:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;outline:none;width:100%}.ant-upload input[type=file]{cursor:pointer}.ant-upload.ant-upload-select{display:inline-block}.ant-upload.ant-upload-disabled{color:#00000040;cursor:not-allowed}.ant-upload.ant-upload-select-picture-card{background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;height:104px;margin-bottom:8px;margin-right:8px;text-align:center;transition:border-color .3s;vertical-align:top;width:104px}.ant-upload.ant-upload-select-picture-card>.ant-upload{align-items:center;display:flex;height:100%;justify-content:center;text-align:center}.ant-upload.ant-upload-select-picture-card:hover{border-color:#5b76f6}.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover{border-color:#d9d9d9}.ant-upload.ant-upload-drag{background:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;height:100%;position:relative;text-align:center;transition:border-color .3s;width:100%}.ant-upload.ant-upload-drag .ant-upload{padding:16px 0}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#4255cf}.ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-drag .ant-upload-btn{display:table;height:100%}.ant-upload.ant-upload-drag .ant-upload-drag-container{display:table-cell;vertical-align:middle}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#879fff}.ant-upload.ant-upload-drag p.ant-upload-drag-icon{margin-bottom:20px}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#879fff;font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{color:#000000d9;font-size:16px;margin:0 0 4px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:#00000073;font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:#00000040;font-size:30px;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:#00000073}.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.ant-upload-picture-card-wrapper:before{content:"";display:table}.ant-upload-picture-card-wrapper:after{clear:both;content:"";display:table}.ant-upload-list{font-feature-settings:"tnum";box-sizing:border-box;color:#000000a6;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-upload-list:after,.ant-upload-list:before{content:"";display:table}.ant-upload-list:after{clear:both}.ant-upload-list-item{font-size:14px;height:22.001px;margin-top:8px;position:relative}.ant-upload-list-item-name{display:inline-block;line-height:1.5715;overflow:hidden;padding-left:22px;text-overflow:ellipsis;white-space:nowrap;width:100%}.ant-upload-list-item-card-actions{position:absolute;right:0}.ant-upload-list-item-card-actions-btn{opacity:0}.ant-upload-list-item-card-actions-btn.ant-btn-sm{height:22.001px;line-height:1;vertical-align:top}.ant-upload-list-item-card-actions.picture{line-height:0;top:22px}.ant-upload-list-item-card-actions-btn:focus,.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-card-actions .anticon{color:#00000073;transition:all .3s}.ant-upload-list-item-card-actions:hover .anticon{color:#000000a6}.ant-upload-list-item-info{height:100%;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;height:100%;width:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{color:#00000073;font-size:14px;position:absolute;top:5px}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#f5f5f5}.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:#ff4d4f}.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-progress{bottom:-12px;font-size:14px;line-height:0;padding-left:26px;position:absolute;width:100%}.ant-upload-list-picture .ant-upload-list-item,.ant-upload-list-picture-card .ant-upload-list-item{border:1px solid #d9d9d9;border-radius:2px;height:66px;padding:8px;position:relative}.ant-upload-list-picture .ant-upload-list-item:hover,.ant-upload-list-picture-card .ant-upload-list-item:hover{background:#0000}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:#ff4d4f}.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info{background:#0000}.ant-upload-list-picture .ant-upload-list-item-uploading,.ant-upload-list-picture-card .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{height:48px;line-height:60px;opacity:.8;text-align:center;width:48px}.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"]{fill:#fff2f0}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"]{fill:#ff4d4f}.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-picture-card .ant-upload-list-item-icon{font-size:26px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.ant-upload-list-picture .ant-upload-list-item-icon .anticon,.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-image,.ant-upload-list-picture-card .ant-upload-list-item-image{max-width:100%}.ant-upload-list-picture .ant-upload-list-item-thumbnail img,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:48px;overflow:hidden;width:48px}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-name{box-sizing:border-box;display:inline-block;line-height:44px;margin:0 0 0 8px;max-width:100%;overflow:hidden;padding-left:48px;padding-right:8px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name{margin-bottom:12px}.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:14px;margin-top:0;padding-left:56px;width:calc(100% - 24px)}.ant-upload-list-picture-card-container{display:inline-block;height:104px;margin:0 8px 8px 0;vertical-align:top;width:104px}.ant-upload-list-picture-card .ant-upload-list-item{height:100%;margin:0}.ant-upload-list-picture-card .ant-upload-list-item-info{height:100%;overflow:hidden;position:relative}.ant-upload-list-picture-card .ant-upload-list-item-info:before{background-color:#00000080;content:" ";height:100%;opacity:0;position:absolute;transition:all .3s;width:100%;z-index:1}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info:before{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-actions{left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .3s;white-space:nowrap;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{color:#ffffffd9;cursor:pointer;font-size:16px;margin:0 4px;transition:all .3s;width:16px;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:100%;object-fit:contain;position:static;width:100%}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;line-height:1.5715;margin:8px 0 0;padding:0;text-align:center}.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{bottom:10px;display:block;position:absolute}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info:before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;padding-left:0;width:calc(100% - 14px)}.ant-upload-list-picture-container,.ant-upload-list-text-container{transition:opacity .3s,height .3s}.ant-upload-list-picture-container:before,.ant-upload-list-text-container:before{content:"";display:table;height:0;width:0}.ant-upload-list-picture-container .ant-upload-span,.ant-upload-list-text-container .ant-upload-span{display:block;flex:auto}.ant-upload-list-picture .ant-upload-span,.ant-upload-list-text .ant-upload-span{align-items:center;display:flex}.ant-upload-list-picture .ant-upload-span>*,.ant-upload-list-text .ant-upload-span>*{flex:none}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-text .ant-upload-list-item-name{flex:auto;margin:0;padding:0 8px}.ant-upload-list-picture .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-text-icon .anticon{position:static}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter{animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{animation-name:uploadAnimateInlineOut}@keyframes uploadAnimateInlineIn{0%{height:0;margin:0;opacity:0;padding:0;width:0}}@keyframes uploadAnimateInlineOut{to{height:0;margin:0;opacity:0;padding:0;width:0}}.ant-upload-rtl{direction:rtl}.ant-upload-rtl.ant-upload.ant-upload-select-picture-card{margin-left:8px;margin-right:auto}.ant-upload-list-rtl{direction:rtl}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-left:14px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-left:28px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name{padding-left:0;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1{padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-card-actions{left:0;right:auto}.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-info{padding:0 4px 0 12px}.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-progress{padding-left:0;padding-right:26px}.ant-upload-list-picture .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item-info{padding:0}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{left:auto;right:8px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name{margin:0 8px 0 0;padding-left:8px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1{padding-left:18px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2{padding-left:36px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress{padding-left:0;padding-right:0}.ant-upload-list-rtl .ant-upload-list-picture-card-container{margin:0 0 8px 8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{margin:8px 0 0;padding:0}.ztxk-upload .ant-upload.ant-upload-select-picture-card{height:auto;width:auto}.ztxk-upload .ztxk-upload--picture{align-items:center;background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;display:flex;flex-direction:column;height:110px;justify-content:center;text-align:center;width:110px}.ztxk-upload .ant-upload-list-picture-card-container{height:110px;width:110px}.ztxk-upload .ztxk-upload--tips{margin-left:10px}.ztxk-upload .ztxk-table{margin-top:10px}.ztxk-upload .ztxk-table .ztxk-upload--progress{align-items:center;display:flex;justify-content:center}.ztxk-upload .ztxk-table .ztxk-upload--progress .ant-progress-text{width:30px}.ztxk-upload>button{margin-left:10px}.ztxk-upload>button:first-child{margin-left:0}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--preview-list__item{align-items:center;display:flex;justify-content:space-between;padding-right:10px}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--preview-list__item .preview-list__item--left>button{display:flex;height:auto}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--preview-list__item .preview-list__item--left>button>span:first-child{margin-top:1px}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--preview-list__item .preview-list__item--left>button>span:last-child{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--preview-list__item .preview-list__item--right{align-items:center;display:flex;flex-shrink:0}.ztxk-upload-imgcrop .ant-modal-body>button{bottom:10px}
1
+ .ant-upload{font-feature-settings:"tnum";box-sizing:border-box;color:#000000a6;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;outline:0;padding:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;outline:none;width:100%}.ant-upload input[type=file]{cursor:pointer}.ant-upload.ant-upload-select{display:inline-block}.ant-upload.ant-upload-disabled{color:#00000040;cursor:not-allowed}.ant-upload.ant-upload-select-picture-card{background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;height:104px;margin-bottom:8px;margin-right:8px;text-align:center;transition:border-color .3s;vertical-align:top;width:104px}.ant-upload.ant-upload-select-picture-card>.ant-upload{align-items:center;display:flex;height:100%;justify-content:center;text-align:center}.ant-upload.ant-upload-select-picture-card:hover{border-color:#5b76f6}.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover{border-color:#d9d9d9}.ant-upload.ant-upload-drag{background:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;height:100%;position:relative;text-align:center;transition:border-color .3s;width:100%}.ant-upload.ant-upload-drag .ant-upload{padding:16px 0}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#4255cf}.ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-drag .ant-upload-btn{display:table;height:100%}.ant-upload.ant-upload-drag .ant-upload-drag-container{display:table-cell;vertical-align:middle}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#879fff}.ant-upload.ant-upload-drag p.ant-upload-drag-icon{margin-bottom:20px}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#879fff;font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{color:#000000d9;font-size:16px;margin:0 0 4px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:#00000073;font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:#00000040;font-size:30px;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:#00000073}.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.ant-upload-picture-card-wrapper:before{content:"";display:table}.ant-upload-picture-card-wrapper:after{clear:both;content:"";display:table}.ant-upload-list{font-feature-settings:"tnum";box-sizing:border-box;color:#000000a6;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;margin:0;padding:0}.ant-upload-list:after,.ant-upload-list:before{content:"";display:table}.ant-upload-list:after{clear:both}.ant-upload-list-item{font-size:14px;height:22.001px;margin-top:8px;position:relative}.ant-upload-list-item-name{display:inline-block;line-height:1.5715;overflow:hidden;padding-left:22px;text-overflow:ellipsis;white-space:nowrap;width:100%}.ant-upload-list-item-card-actions{position:absolute;right:0}.ant-upload-list-item-card-actions-btn{opacity:0}.ant-upload-list-item-card-actions-btn.ant-btn-sm{height:22.001px;line-height:1;vertical-align:top}.ant-upload-list-item-card-actions.picture{line-height:0;top:22px}.ant-upload-list-item-card-actions-btn:focus,.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-card-actions .anticon{color:#00000073;transition:all .3s}.ant-upload-list-item-card-actions:hover .anticon{color:#000000a6}.ant-upload-list-item-info{height:100%;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;height:100%;width:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{color:#00000073;font-size:14px;position:absolute;top:5px}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#f5f5f5}.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:#ff4d4f}.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-progress{bottom:-12px;font-size:14px;line-height:0;padding-left:26px;position:absolute;width:100%}.ant-upload-list-picture .ant-upload-list-item,.ant-upload-list-picture-card .ant-upload-list-item{border:1px solid #d9d9d9;border-radius:2px;height:66px;padding:8px;position:relative}.ant-upload-list-picture .ant-upload-list-item:hover,.ant-upload-list-picture-card .ant-upload-list-item:hover{background:#0000}.ant-upload-list-picture .ant-upload-list-item-error,.ant-upload-list-picture-card .ant-upload-list-item-error{border-color:#ff4d4f}.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info{background:#0000}.ant-upload-list-picture .ant-upload-list-item-uploading,.ant-upload-list-picture-card .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{height:48px;line-height:60px;opacity:.8;text-align:center;width:48px}.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"]{fill:#fff2f0}.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"],.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"]{fill:#ff4d4f}.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-picture-card .ant-upload-list-item-icon{font-size:26px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.ant-upload-list-picture .ant-upload-list-item-icon .anticon,.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon{font-size:26px}.ant-upload-list-picture .ant-upload-list-item-image,.ant-upload-list-picture-card .ant-upload-list-item-image{max-width:100%}.ant-upload-list-picture .ant-upload-list-item-thumbnail img,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:48px;overflow:hidden;width:48px}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-name{box-sizing:border-box;display:inline-block;line-height:44px;margin:0 0 0 8px;max-width:100%;overflow:hidden;padding-left:48px;padding-right:8px;text-overflow:ellipsis;transition:all .3s;white-space:nowrap}.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name{margin-bottom:12px}.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:14px;margin-top:0;padding-left:56px;width:calc(100% - 24px)}.ant-upload-list-picture-card-container{display:inline-block;height:104px;margin:0 8px 8px 0;vertical-align:top;width:104px}.ant-upload-list-picture-card .ant-upload-list-item{height:100%;margin:0}.ant-upload-list-picture-card .ant-upload-list-item-info{height:100%;overflow:hidden;position:relative}.ant-upload-list-picture-card .ant-upload-list-item-info:before{background-color:#00000080;content:" ";height:100%;opacity:0;position:absolute;transition:all .3s;width:100%;z-index:1}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info:before{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-actions{left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .3s;white-space:nowrap;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{color:#ffffffd9;cursor:pointer;font-size:16px;margin:0 4px;transition:all .3s;width:16px;z-index:10}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{display:block;height:100%;object-fit:contain;position:static;width:100%}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;line-height:1.5715;margin:8px 0 0;padding:0;text-align:center}.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{bottom:10px;display:block;position:absolute}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info:before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;padding-left:0;width:calc(100% - 14px)}.ant-upload-list-picture-container,.ant-upload-list-text-container{transition:opacity .3s,height .3s}.ant-upload-list-picture-container:before,.ant-upload-list-text-container:before{content:"";display:table;height:0;width:0}.ant-upload-list-picture-container .ant-upload-span,.ant-upload-list-text-container .ant-upload-span{display:block;flex:auto}.ant-upload-list-picture .ant-upload-span,.ant-upload-list-text .ant-upload-span{align-items:center;display:flex}.ant-upload-list-picture .ant-upload-span>*,.ant-upload-list-text .ant-upload-span>*{flex:none}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-text .ant-upload-list-item-name{flex:auto;margin:0;padding:0 8px}.ant-upload-list-picture .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-text-icon .anticon{position:static}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter{animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{animation-name:uploadAnimateInlineOut}@keyframes uploadAnimateInlineIn{0%{height:0;margin:0;opacity:0;padding:0;width:0}}@keyframes uploadAnimateInlineOut{to{height:0;margin:0;opacity:0;padding:0;width:0}}.ant-upload-rtl{direction:rtl}.ant-upload-rtl.ant-upload.ant-upload-select-picture-card{margin-left:8px;margin-right:auto}.ant-upload-list-rtl{direction:rtl}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-left:14px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-left:28px;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name{padding-left:0;padding-right:22px}.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1{padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-card-actions{left:0;right:auto}.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-info{padding:0 4px 0 12px}.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{padding-left:5px;padding-right:0}.ant-upload-list-rtl .ant-upload-list-item-progress{padding-left:0;padding-right:26px}.ant-upload-list-picture .ant-upload-list-item-info,.ant-upload-list-picture-card .ant-upload-list-item-info{padding:0}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail{left:auto;right:8px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name{margin:0 8px 0 0;padding-left:8px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1{padding-left:18px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2{padding-left:36px;padding-right:48px}.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress{padding-left:0;padding-right:0}.ant-upload-list-rtl .ant-upload-list-picture-card-container{margin:0 0 8px 8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{left:auto;right:50%;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{margin:8px 0 0;padding:0}.ztxk-upload .ant-upload.ant-upload-select-picture-card{height:auto;width:auto}.ztxk-upload .ztxk-upload--picture{align-items:center;background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;display:flex;flex-direction:column;height:110px;justify-content:center;text-align:center;width:110px}.ztxk-upload .ant-upload-list-picture-card-container{height:110px;width:110px}.ztxk-upload .ztxk-upload--tips{margin-left:10px}.ztxk-upload .ztxk-table{margin-top:10px}.ztxk-upload .ztxk-table .ztxk-upload--progress{align-items:center;display:flex;justify-content:center}.ztxk-upload .ztxk-table .ztxk-upload--progress .ant-progress-text{width:30px}.ztxk-upload>button{margin-left:10px}.ztxk-upload>button:first-child{margin-left:0}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--preview-list__item{align-items:center;display:flex;justify-content:space-between;padding-right:10px}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--preview-list__item .preview-list__item--left>button{display:flex;height:auto}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--preview-list__item .preview-list__item--left>button>span:first-child{margin-top:1px}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--preview-list__item .preview-list__item--left>button>span:last-child{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--preview-list__item .preview-list__item--right{align-items:center;display:flex;flex-shrink:0}.ztxk-upload .ztxk-upload--text-item{align-items:center;display:flex;height:100%}.ztxk-upload .ztxk-upload--text-item:hover{background-color:#f5f5f5}.ztxk-upload .ztxk-upload--text-item__icon{color:#00000073;flex-shrink:0;font-size:14px;margin-right:8px}.ztxk-upload .ztxk-upload--text-item__name{cursor:pointer;display:flex;flex:0 0 40%;max-width:40%;min-width:0}.ztxk-upload .ztxk-upload--text-item__name:hover{color:#1890ff}.ztxk-upload .ztxk-upload--text-item__name-body{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ztxk-upload .ztxk-upload--text-item__name-ext{flex-shrink:0;white-space:nowrap}.ztxk-upload .ztxk-upload--text-item__size{color:#00000073;flex-shrink:0;font-size:12px;margin-left:10px}.ztxk-upload .ztxk-upload--text-item__actions{align-items:center;display:flex;flex-shrink:0;gap:4px;margin-left:10px}.ztxk-upload .ztxk-upload--text-item__delete,.ztxk-upload .ztxk-upload--text-item__download{height:auto;line-height:1.5;padding:0}.ztxk-upload .ztxk-upload--text-item.is-error .ztxk-upload--text-item__name{color:#ff4d4f}.ztxk-upload .ztxk-upload--text-item.is-error .ztxk-upload--text-item__name:hover{color:#ff7875}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--text-item__name{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--text-item__name .ztxk-upload--text-item__name-body{overflow:visible;text-overflow:clip;white-space:normal;word-break:break-all}.ztxk-upload .ztxk-upload--preview-list .ztxk-upload--text-item__name .ztxk-upload--text-item__name-ext{white-space:normal}.ztxk-table .ztxk-upload--text-item__name{flex:1;max-width:none}.ztxk-upload-imgcrop .ant-modal-body>button{bottom:10px}
@@ -39,6 +39,16 @@ interface IUploadListProps extends Omit<UploadProps, "onChange"> {
39
39
  /** 是否显示下载按钮 */
40
40
  isDownload?: boolean;
41
41
  isDelete?: boolean;
42
+ /**
43
+ * 是否启用自定义 text-item 渲染(图标/文件名/大小/操作按钮)
44
+ * 覆盖全局 enableUploadListTextItemRender;不传则用全局值
45
+ */
46
+ textItemRender?: boolean;
47
+ /**
48
+ * 是否显示文件大小
49
+ * 覆盖全局 enableUploadListFileSize;不传则用全局值
50
+ */
51
+ showFileSize?: boolean;
42
52
  /** 是否支持文件预览 */
43
53
  filePreview?: boolean;
44
54
  /** 批量下载的zip包名 */
@@ -1,6 +1,6 @@
1
1
  import { __rest, __assign, __awaiter, __generator } from '../_virtual/_tslib.js';
2
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
- import { memo, forwardRef, useRef, useState, useEffect, useMemo, useImperativeHandle } from 'react';
3
+ import { memo, forwardRef, useRef, useState, useEffect, useMemo, useCallback, useImperativeHandle } from 'react';
4
4
  import { Upload, Tooltip, Popconfirm, Dropdown } from 'antd';
5
5
  import UploadTable from './uploadTable.js';
6
6
  import UploadListDetail from './uploadListDetail.js';
@@ -21,6 +21,7 @@ import UploadOutlined from '../node_modules/@ant-design/icons/es/icons/UploadOut
21
21
  import ModalComponent from '../modal/modal.js';
22
22
  import myMessage from '../message/index.js';
23
23
  import DownloadOutlined from '../node_modules/@ant-design/icons/es/icons/DownloadOutlined.js';
24
+ import PaperClipOutlined from '../node_modules/@ant-design/icons/es/icons/PaperClipOutlined.js';
24
25
 
25
26
  // 最大字节
26
27
  var MAXSIZE = 104857600; // 100 * 1024 * 1024
@@ -33,10 +34,13 @@ var MAXSIZE = 104857600; // 100 * 1024 * 1024
33
34
  */
34
35
  var UploadList = function (props, ref) {
35
36
  var _a;
36
- var children = props.children, btnText = props.btnText, className = props.className, _b = props.showTip, showTip = _b === void 0 ? true : _b, _c = props.maxSize, maxSize = _c === void 0 ? MAXSIZE : _c, showTable = props.showTable, acceptList = props.acceptList, beforeUpload = props.beforeUpload, onChange = props.onChange, PROPS_API_BASEURL = props.API_BASEURL, PROPS_FILE_API_BASEURL = props.FILE_API_BASEURL, action = props.action, headers = props.headers, data = props.data, userName = props.userName, fileList = props.fileList, isPublic = props.isPublic, _d = props.maxPreviewSize, maxPreviewSize = _d === void 0 ? MAX_PREVIEW_SIZE : _d, isPreview = props.isPreview, isDownload = props.isDownload, isDelete = props.isDelete, _e = props.filePreview, filePreview = _e === void 0 ? true : _e, _f = props.zipName, zipName = _f === void 0 ? "\u6279\u91CF\u4E0B\u8F7D-".concat(Date.now(), ".zip") : _f, isImage = props.isImage, _g = props.isImageCrop, isImageCrop = _g === void 0 ? true : _g, imgCropProps = props.imgCropProps, _h = props.imgWidth, imgWidth = _h === void 0 ? 110 : _h, _j = props.imgHeight, imgHeight = _j === void 0 ? 110 : _j, customRenderBtn = props.customRenderBtn, disAllowDuplicateFile = props.disAllowDuplicateFile, fieldNames = props.fieldNames, tableColumns = props.tableColumns, onBeforeDownloadValidate = props.onBeforeDownloadValidate, onBeforePreviewValidate = props.onBeforePreviewValidate, onBeforeDeleteValidate = props.onBeforeDeleteValidate, isImgPreview = props.isImgPreview, isTranslation = props.isTranslation, renderTableOperationColumn = props.renderTableOperationColumn, renderDetailPrepend = props.renderDetailPrepend, resetProps = __rest(props, ["children", "btnText", "className", "showTip", "maxSize", "showTable", "acceptList", "beforeUpload", "onChange", "API_BASEURL", "FILE_API_BASEURL", "action", "headers", "data", "userName", "fileList", "isPublic", "maxPreviewSize", "isPreview", "isDownload", "isDelete", "filePreview", "zipName", "isImage", "isImageCrop", "imgCropProps", "imgWidth", "imgHeight", "customRenderBtn", "disAllowDuplicateFile", "fieldNames", "tableColumns", "onBeforeDownloadValidate", "onBeforePreviewValidate", "onBeforeDeleteValidate", "isImgPreview", "isTranslation", "renderTableOperationColumn", "renderDetailPrepend"]);
37
- var _k = useBaseContext(), apiBaseUrl = _k.apiBaseUrl, fileBaseUrl = _k.fileBaseUrl, enableTranslationButton = _k.enableTranslationButton, fileListRequestHeaders = _k.fileListRequestHeaders, isUIWeeklyReview = _k.isUIWeeklyReview;
37
+ var children = props.children, btnText = props.btnText, className = props.className, _b = props.showTip, showTip = _b === void 0 ? true : _b, _c = props.maxSize, maxSize = _c === void 0 ? MAXSIZE : _c, showTable = props.showTable, acceptList = props.acceptList, beforeUpload = props.beforeUpload, onChange = props.onChange, PROPS_API_BASEURL = props.API_BASEURL, PROPS_FILE_API_BASEURL = props.FILE_API_BASEURL, action = props.action, headers = props.headers, data = props.data, userName = props.userName, fileList = props.fileList, isPublic = props.isPublic, _d = props.maxPreviewSize, maxPreviewSize = _d === void 0 ? MAX_PREVIEW_SIZE : _d, isPreview = props.isPreview, isDownload = props.isDownload, isDelete = props.isDelete, _e = props.filePreview, filePreview = _e === void 0 ? true : _e, _f = props.zipName, zipName = _f === void 0 ? "\u6279\u91CF\u4E0B\u8F7D-".concat(Date.now(), ".zip") : _f, isImage = props.isImage, _g = props.isImageCrop, isImageCrop = _g === void 0 ? true : _g, imgCropProps = props.imgCropProps, _h = props.imgWidth, imgWidth = _h === void 0 ? 110 : _h, _j = props.imgHeight, imgHeight = _j === void 0 ? 110 : _j, customRenderBtn = props.customRenderBtn, disAllowDuplicateFile = props.disAllowDuplicateFile, fieldNames = props.fieldNames, tableColumns = props.tableColumns, onBeforeDownloadValidate = props.onBeforeDownloadValidate, onBeforePreviewValidate = props.onBeforePreviewValidate, onBeforeDeleteValidate = props.onBeforeDeleteValidate, isImgPreview = props.isImgPreview, isTranslation = props.isTranslation, renderTableOperationColumn = props.renderTableOperationColumn, renderDetailPrepend = props.renderDetailPrepend, textItemRender = props.textItemRender, showFileSize = props.showFileSize, customItemRender = props.itemRender, resetProps = __rest(props, ["children", "btnText", "className", "showTip", "maxSize", "showTable", "acceptList", "beforeUpload", "onChange", "API_BASEURL", "FILE_API_BASEURL", "action", "headers", "data", "userName", "fileList", "isPublic", "maxPreviewSize", "isPreview", "isDownload", "isDelete", "filePreview", "zipName", "isImage", "isImageCrop", "imgCropProps", "imgWidth", "imgHeight", "customRenderBtn", "disAllowDuplicateFile", "fieldNames", "tableColumns", "onBeforeDownloadValidate", "onBeforePreviewValidate", "onBeforeDeleteValidate", "isImgPreview", "isTranslation", "renderTableOperationColumn", "renderDetailPrepend", "textItemRender", "showFileSize", "itemRender"]);
38
+ var _k = useBaseContext(), apiBaseUrl = _k.apiBaseUrl, fileBaseUrl = _k.fileBaseUrl, enableTranslationButton = _k.enableTranslationButton, fileListRequestHeaders = _k.fileListRequestHeaders, isUIWeeklyReview = _k.isUIWeeklyReview, enableUploadListTextItemRender = _k.enableUploadListTextItemRender, enableUploadListFileSize = _k.enableUploadListFileSize;
38
39
  // 翻译按钮是否显示
39
40
  var isTranslationButton = getFinalValue(enableTranslationButton, isTranslation);
41
+ // 列表项渲染:组件级 props 优先,否则取全局值
42
+ var finalTextItemRender = getFinalValue(enableUploadListTextItemRender, textItemRender);
43
+ var finalShowFileSize = getFinalValue(enableUploadListFileSize, showFileSize);
40
44
  var maxCount = resetProps.maxCount, listType = resetProps.listType, method = resetProps.method;
41
45
  var imgSizeClassName = "temporary-className-".concat(imgWidth, "-").concat(imgHeight);
42
46
  var classes = classNames("ztxk-upload", className, (_a = {},
@@ -301,8 +305,38 @@ var UploadList = function (props, ref) {
301
305
  : undefined,
302
306
  };
303
307
  }, [showTable, isDownload, isDelete]);
308
+ /**
309
+ * text 模式下的列表项自定义渲染
310
+ * 格式:图标 / 文件名 / 文件大小 / 下载(可选) / 删除按钮
311
+ */
312
+ var itemRenderText = useCallback(function (originNode, file, _fileList, actions) {
313
+ // 上传中保持 antd 默认渲染(显示进度条)
314
+ if (file.status === "uploading") {
315
+ return originNode;
316
+ }
317
+ var isError = file.status === "error";
318
+ var fileName = file.name || file.attachName || "";
319
+ var fileSize = file.size != null ? file.size : file.attachSize;
320
+ // 拆分文件名主体与后缀,仅对主体做超出省略,后缀始终完整显示
321
+ var dotIndex = fileName.lastIndexOf(".");
322
+ var hasExt = dotIndex > 0;
323
+ var nameBody = hasExt ? fileName.slice(0, dotIndex) : fileName;
324
+ var nameExt = hasExt ? fileName.slice(dotIndex) : "";
325
+ var nameEl = (jsxs("span", __assign({ className: "ztxk-upload--text-item__name", onClick: function () {
326
+ if (!isError && filePreview) {
327
+ actions.preview();
328
+ }
329
+ }, title: isError ? undefined : fileName }, { children: [jsx("span", __assign({ className: "ztxk-upload--text-item__name-body" }, { children: nameBody })), nameExt ? (jsx("span", __assign({ className: "ztxk-upload--text-item__name-ext" }, { children: nameExt }))) : null] })));
330
+ return (jsxs("span", __assign({ className: classNames("ztxk-upload--text-item", {
331
+ "is-error": isError,
332
+ }) }, { children: [jsx("span", __assign({ className: "ztxk-upload--text-item__icon" }, { children: jsx(PaperClipOutlined, {}) })), isError ? (jsx(Tooltip, __assign({ title: "\u4E0A\u4F20\u5931\u8D25" }, { children: nameEl }))) : (nameEl), finalShowFileSize !== false && fileSize != null ? (jsx("span", __assign({ className: "ztxk-upload--text-item__size" }, { children: formatUnit(fileSize) }))) : null, jsxs("span", __assign({ className: "ztxk-upload--text-item__actions" }, { children: [isDownload && !isError ? (jsx(ButtonCom, __assign({ type: "link", size: "small", className: "ztxk-upload--text-item__download", onClick: function () { return actions.download(); } }, { children: "\u4E0B\u8F7D" }))) : null, isDelete ? (jsx(ButtonCom, __assign({ type: "link", size: "small", danger: true, className: "ztxk-upload--text-item__delete", onClick: function () { return actions.remove(); } }, { children: "\u5220\u9664" }))) : null] }))] })));
333
+ }, [filePreview, isDownload, isDelete, finalShowFileSize]);
304
334
  // 上传子元素
305
- var uploadBtn = (jsx(Upload, __assign({ showUploadList: showUploadListMemo, multiple: maxCount === 1 ? false : true, beforeUpload: beforeUploadHandle, onChange: onChangeHandle, action: fileAction, headers: fileHeaders, data: fileData, fileList: innerFileList, onPreview: onPreview, onDownload: onDownload }, resetProps, { children: children ? (children) : !listType || listType === "text" ? (jsxs(ButtonCom, __assign({ type: "primary", icon: jsx(UploadOutlined, {}) }, { children: [btnText || "添加附件", maxCount ? "(\u6700\u591A\u4E0A\u4F20".concat(maxCount, "\u4E2A\u6587\u4EF6)") : ""] }))) : isImage &&
335
+ var uploadBtn = (jsx(Upload, __assign({ showUploadList: showUploadListMemo, multiple: maxCount === 1 ? false : true, beforeUpload: beforeUploadHandle, onChange: onChangeHandle, action: fileAction, headers: fileHeaders, data: fileData, fileList: innerFileList, onPreview: onPreview, onDownload: onDownload }, resetProps, { itemRender: !showTable &&
336
+ (!listType || listType === "text") &&
337
+ finalTextItemRender !== false
338
+ ? customItemRender || itemRenderText
339
+ : customItemRender }, { children: children ? (children) : !listType || listType === "text" ? (jsxs(ButtonCom, __assign({ type: "primary", icon: jsx(UploadOutlined, {}) }, { children: [btnText || "添加附件", maxCount ? "(\u6700\u591A\u4E0A\u4F20".concat(maxCount, "\u4E2A\u6587\u4EF6)") : ""] }))) : isImage &&
306
340
  maxCount &&
307
341
  innerFileList &&
308
342
  innerFileList.length >= maxCount &&
@@ -403,7 +437,7 @@ var UploadList = function (props, ref) {
403
437
  onClick: function (e) {
404
438
  onBatchDownloadHandle(e.key);
405
439
  },
406
- }, placement: "bottomLeft" }, { children: jsx(ButtonCom, __assign({ type: "primary" }, { children: "\u6279\u91CF\u4E0B\u8F7D" })) }))) : null, customRenderBtn, showTable ? (jsx(UploadTable, { dataSource: uploadTableData, action: fileAction, headers: fileHeaders, data: fileData, method: method, setInnerFileList: setInnerFileList, isPublic: isPublic, API_BASEURL: API_BASEURL, FILE_API_BASEURL: FILE_API_BASEURL, maxPreviewSize: maxPreviewSize, isPreview: isPreview, filePreview: filePreview, isDelete: isDelete, isDownload: isDownload, ref: tableRef, listType: listType, tableColumns: tableColumns, onBeforeDeleteValidate: onBeforeDeleteValidate, onBeforeDownloadValidate: onBeforeDownloadValidate, onBeforePreviewValidate: onBeforePreviewValidate, isTranslation: isTranslationButton, renderTableOperationColumn: renderTableOperationColumn })) : null, isPreview && !showTable && !isImage ? (jsx(UploadListDetail, { dataSource: uploadTableData, action: fileAction, headers: fileHeaders, data: fileData, method: method, setInnerFileList: setInnerFileList, isPublic: isPublic, API_BASEURL: API_BASEURL, FILE_API_BASEURL: FILE_API_BASEURL, maxPreviewSize: maxPreviewSize, isPreview: isPreview, isDelete: isDelete, isDownload: isDownload, ref: tableRef, listType: listType, tableColumns: tableColumns, onBeforeDeleteValidate: onBeforeDeleteValidate, onBeforeDownloadValidate: onBeforeDownloadValidate, onBeforePreviewValidate: onBeforePreviewValidate, isTranslation: isTranslationButton, renderDetailPrepend: renderDetailPrepend })) : null, isImage && (jsx(ModalComponent, __assign({ ref: modalRef, footer: null, width: "520px" }, { children: jsx("div", __assign({ style: {
440
+ }, placement: "bottomLeft" }, { children: jsx(ButtonCom, __assign({ type: "primary" }, { children: "\u6279\u91CF\u4E0B\u8F7D" })) }))) : null, customRenderBtn, showTable ? (jsx(UploadTable, { dataSource: uploadTableData, action: fileAction, headers: fileHeaders, data: fileData, method: method, setInnerFileList: setInnerFileList, isPublic: isPublic, API_BASEURL: API_BASEURL, FILE_API_BASEURL: FILE_API_BASEURL, maxPreviewSize: maxPreviewSize, isPreview: isPreview, filePreview: filePreview, isDelete: isDelete, isDownload: isDownload, ref: tableRef, listType: listType, tableColumns: tableColumns, onBeforeDeleteValidate: onBeforeDeleteValidate, onBeforeDownloadValidate: onBeforeDownloadValidate, onBeforePreviewValidate: onBeforePreviewValidate, isTranslation: isTranslationButton, renderTableOperationColumn: renderTableOperationColumn })) : null, isPreview && !showTable && !isImage ? (jsx(UploadListDetail, { dataSource: uploadTableData, action: fileAction, headers: fileHeaders, data: fileData, method: method, setInnerFileList: setInnerFileList, isPublic: isPublic, API_BASEURL: API_BASEURL, FILE_API_BASEURL: FILE_API_BASEURL, maxPreviewSize: maxPreviewSize, isPreview: isPreview, isDelete: isDelete, isDownload: isDownload, ref: tableRef, listType: listType, tableColumns: tableColumns, onBeforeDeleteValidate: onBeforeDeleteValidate, onBeforeDownloadValidate: onBeforeDownloadValidate, onBeforePreviewValidate: onBeforePreviewValidate, isTranslation: isTranslationButton, renderDetailPrepend: renderDetailPrepend, textItemRender: finalTextItemRender, showFileSize: finalShowFileSize })) : null, isImage && (jsx(ModalComponent, __assign({ ref: modalRef, footer: null, width: "520px" }, { children: jsx("div", __assign({ style: {
407
441
  textAlign: "center",
408
442
  } }, { children: jsx("img", { src: imgSrc, alt: "\u9884\u89C8", style: {
409
443
  maxWidth: "400px",
@@ -1,18 +1,19 @@
1
1
  import { __assign, __awaiter, __generator } from '../_virtual/_tslib.js';
2
2
  import { jsx, jsxs } from 'react/jsx-runtime';
3
3
  import { forwardRef, useState, useImperativeHandle } from 'react';
4
- import { downloadFile } from 'zmdms-utils';
4
+ import { formatUnit, downloadFile } from 'zmdms-utils';
5
5
  import { toPreviewFile } from './utils.js';
6
+ import PaperClipOutlined from '../node_modules/@ant-design/icons/es/icons/PaperClipOutlined.js';
6
7
  import ButtonCom from '../button/button.js';
7
- import myMessage from '../message/index.js';
8
+ import TranslationButton from '../translationbutton/translationButton.js';
8
9
  import LinkOutlined from '../node_modules/@ant-design/icons/es/icons/LinkOutlined.js';
9
10
  import DownloadOutlined from '../node_modules/@ant-design/icons/es/icons/DownloadOutlined.js';
10
- import TranslationButton from '../translationbutton/translationButton.js';
11
+ import myMessage from '../message/index.js';
11
12
  import { Spin } from 'antd';
12
13
 
13
14
  var UploadTable = function (_a, ref) {
14
15
  var _b;
15
- var dataSource = _a.dataSource; _a.action; _a.headers; _a.data; _a.method; var setInnerFileList = _a.setInnerFileList, isPublic = _a.isPublic, _c = _a.API_BASEURL, API_BASEURL = _c === void 0 ? "" : _c, _d = _a.FILE_API_BASEURL, FILE_API_BASEURL = _d === void 0 ? "" : _d, maxPreviewSize = _a.maxPreviewSize, isPreview = _a.isPreview, isDelete = _a.isDelete, isDownload = _a.isDownload; _a.listType; _a.tableColumns; var onBeforeDownloadValidate = _a.onBeforeDownloadValidate, onBeforePreviewValidate = _a.onBeforePreviewValidate; _a.onBeforeDeleteValidate; var isTranslation = _a.isTranslation, renderDetailPrepend = _a.renderDetailPrepend;
16
+ var dataSource = _a.dataSource; _a.action; _a.headers; _a.data; _a.method; var setInnerFileList = _a.setInnerFileList, isPublic = _a.isPublic, _c = _a.API_BASEURL, API_BASEURL = _c === void 0 ? "" : _c, _d = _a.FILE_API_BASEURL, FILE_API_BASEURL = _d === void 0 ? "" : _d, maxPreviewSize = _a.maxPreviewSize, isPreview = _a.isPreview, isDelete = _a.isDelete, isDownload = _a.isDownload; _a.listType; _a.tableColumns; var onBeforeDownloadValidate = _a.onBeforeDownloadValidate, onBeforePreviewValidate = _a.onBeforePreviewValidate; _a.onBeforeDeleteValidate; var isTranslation = _a.isTranslation, renderDetailPrepend = _a.renderDetailPrepend, textItemRender = _a.textItemRender, showFileSize = _a.showFileSize;
16
17
  var _e = useState(false), loading = _e[0], setLoading = _e[1];
17
18
  var _f = useState(), checked = _f[0], setChecked = _f[1];
18
19
  var isDownloadSingleBoolean = isDownload;
@@ -201,13 +202,27 @@ var UploadTable = function (_a, ref) {
201
202
  var statusBtnConfig = createOpt(record);
202
203
  var isPreviewAuth = statusBtnConfig.find(function (item) { return item.type === "preview"; });
203
204
  var isDownloadAuth = statusBtnConfig.find(function (item) { return item.type === "download"; });
204
- return (jsxs("div", __assign({ className: "ztxk-upload--preview-list__item" }, { children: [jsx("div", __assign({ className: "preview-list__item--left" }, { children: jsxs(ButtonCom, __assign({ type: "link", onClick: function () {
205
- if (isPreviewAuth) {
206
- return operationCallback("preview", record, index);
207
- }
208
- myMessage.info("暂无预览权限!");
209
- return Promise.resolve();
210
- }, style: { textAlign: "left" }, title: record.attachName }, { children: [jsx(LinkOutlined, {}), record.attachName] })) })), jsxs("div", __assign({ className: "preview-list__item--right" }, { children: [renderDetailPrepend && renderDetailPrepend(record, index), isDownloadAuth ? (jsx(ButtonCom, __assign({ type: "link", onClick: function () { return operationCallback("download", record, index); }, style: { textAlign: "left" }, title: "\u4E0B\u8F7D" }, { children: jsx(DownloadOutlined, {}) }))) : null, isTranslation && (jsx(TranslationButton, { attachId: record.attachId, attachName: record.attachName }))] }))] }), record.attachId || record.fileId || index));
205
+ var handlePreview = function () {
206
+ if (isPreviewAuth) {
207
+ return operationCallback("preview", record, index);
208
+ }
209
+ myMessage.info("暂无预览权限!");
210
+ return Promise.resolve();
211
+ };
212
+ var itemKey = record.attachId || record.fileId || index;
213
+ // 开启新样式:图标 / 文件名(主体+后缀) / 文件大小 / 操作按钮
214
+ if (textItemRender !== false) {
215
+ var fileName = record.attachName || "";
216
+ var dotIndex = fileName.lastIndexOf(".");
217
+ var hasExt = dotIndex > 0;
218
+ var nameBody = hasExt ? fileName.slice(0, dotIndex) : fileName;
219
+ var nameExt = hasExt ? fileName.slice(dotIndex) : "";
220
+ return (jsxs("div", __assign({ className: "ztxk-upload--text-item" }, { children: [jsx("span", __assign({ className: "ztxk-upload--text-item__icon" }, { children: jsx(PaperClipOutlined, {}) })), jsxs("span", __assign({ className: "ztxk-upload--text-item__name", onClick: handlePreview, title: fileName }, { children: [jsx("span", __assign({ className: "ztxk-upload--text-item__name-body" }, { children: nameBody })), nameExt ? (jsx("span", __assign({ className: "ztxk-upload--text-item__name-ext" }, { children: nameExt }))) : null] })), showFileSize !== false &&
221
+ record.attachSize != null ? (jsx("span", __assign({ className: "ztxk-upload--text-item__size" }, { children: formatUnit(record.attachSize) }))) : null, jsxs("span", __assign({ className: "ztxk-upload--text-item__actions" }, { children: [renderDetailPrepend && renderDetailPrepend(record, index), isDownloadAuth ? (jsx(ButtonCom, __assign({ type: "link", size: "small", className: "ztxk-upload--text-item__download", onClick: function () {
222
+ return operationCallback("download", record, index);
223
+ } }, { children: "\u4E0B\u8F7D" }))) : null, isTranslation ? (jsx(TranslationButton, { attachId: record.attachId, attachName: record.attachName })) : null] }))] }), itemKey));
224
+ }
225
+ return (jsxs("div", __assign({ className: "ztxk-upload--preview-list__item" }, { children: [jsx("div", __assign({ className: "preview-list__item--left" }, { children: jsxs(ButtonCom, __assign({ type: "link", onClick: handlePreview, style: { textAlign: "left" }, title: record.attachName }, { children: [jsx(LinkOutlined, {}), record.attachName] })) })), jsxs("div", __assign({ className: "preview-list__item--right" }, { children: [renderDetailPrepend && renderDetailPrepend(record, index), isDownloadAuth ? (jsx(ButtonCom, __assign({ type: "link", onClick: function () { return operationCallback("download", record, index); }, style: { textAlign: "left" }, title: "\u4E0B\u8F7D" }, { children: jsx(DownloadOutlined, {}) }))) : null, isTranslation && (jsx(TranslationButton, { attachId: record.attachId, attachName: record.attachName }))] }))] }), itemKey));
211
226
  }) })) })));
212
227
  };
213
228
  var UploadListDetail = forwardRef(UploadTable);