zmdms-webui 3.5.3 → 3.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/applayout/index.css +1 -1
- package/dist/es/canvastable/canvasTable.js +13 -0
- package/dist/es/canvastable/hooks/useSelectionSnapshot.js +115 -0
- package/dist/es/canvastable/interface.d.ts +29 -1
- package/dist/es/config/useLocale.d.ts +8 -2
- package/dist/index.build.d.ts +1 -1
- package/dist/index.dark.css +2 -2
- package/dist/index.default.css +2 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
.zmdms-container{background-color:#e9ecf3}.zmdms-container .zmdms-sider{background-color:#5b76f6;background-repeat:no-repeat;background-size:100% auto;background-size:cover;z-index:102}.zmdms-container .zmdms-content{background-color:#e9ecf3}.zmdms-container .zmdms-content--header{align-items:center;background:#fff;display:flex;height:48px;justify-content:space-between;line-height:48px;padding:0 0 0 10px}.zmdms-container .zmdms-content--header .ant-tabs{flex:1;margin-top:8px;width:calc(100% - 350px)}.zmdms-container .zmdms-content--header .ant-tabs.zmdms-content--header-tabs{width:300px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab>div{padding:0}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab a{color:#768696;display:inline-block;padding:0 20px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab.ant-tabs-tab-with-remove a{padding:0 10px 0 20px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-nav{margin-bottom:0}.zmdms-container .zmdms-content--content{height:calc(100vh - 48px);position:relative}.zmdms-container .zmdms-content--header-info{color:#000000a6;display:flex;height:48px;max-width:350px}.zmdms-container .zmdms-content--header-info .full-screen{cursor:pointer;text-align:center;width:36px}.zmdms-container .zmdms-content--header-info .user-operation{align-items:center;cursor:pointer;display:flex;padding:0 12px}.zmdms-container .zmdms-content--header-info .user-operation:hover{background-color:#f7f7f7}.zmdms-container .zmdms-content--header-info .user-operation>span:last-child{color:#000000a6;display:inline-block;margin-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:70px}.zmdms-menu{display:flex;flex-direction:column;height:100vh}.zmdms-menu .zmdms-logo{align-items:center;display:block;display:flex;height:48px;padding:9px 0 5px}.zmdms-menu .zmdms-logo.zmdms-logo--line{position:relative;z-index:1000}.zmdms-menu .zmdms-logo.zmdms-logo--line:after{background:#505cbe;content:"";height:29px;position:absolute;right:-.5px;width:1px}.zmdms-menu .zmdms-logo>img{display:block;margin:0 auto;width:78px}.zmdms-menu .zmdms-menu--search{background-color:#5b8af666;position:relative}.zmdms-menu .zmdms-menu--search>input{background-color:#5b8af666;border:none;color:#fff;font-size:13px;height:36px;line-height:36px}.zmdms-menu .zmdms-menu--search>input::placeholder{color:#fff;font-size:13px}.zmdms-menu .zmdms-menu--search .zmdms-menu--search__icon{align-items:center;color:#fff;cursor:pointer;display:flex;font-size:16px;height:30px;justify-content:center;position:absolute;right:0;top:3px;width:30px}.zmdms-menu .zmdms-menu--main{background:#0000;border-right:none;flex:1;overflow-x:hidden;overflow-y:auto}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-hide-bg .ant-menu-item-selected{background:#1566d2!important}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-item-line .ant-menu-item{height:auto!important;line-height:20px!important;min-height:36px}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-item-line .ant-menu-item .ant-menu-title-content{word-wrap:break-word;display:inline-block;height:auto!important;text-overflow:unset!important;white-space:pre-wrap;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu,.zmdms-menu .zmdms-menu--main>.ant-menu-submenu.ant-menu-submenu-open>.ant-menu-submenu-title{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#5b76f5;background-color:#5b8af666;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0;padding:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{color:#ffffffa6;right:6px}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content{flex:none;width:88%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub.ant-menu-inline{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item{align-items:center;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item a{color:inherit}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:active{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:hover{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item.ant-menu-item-selected{background:#5b76f5;color:#fff;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item.ant-menu-item-selected:after{border-right:none}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-track{background:#fff0;border-radius:4px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-thumb{background:#5b76f6;border-radius:4px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-thumb:hover{background:#5b76f6}.zmdms-menu .zmdms-menu--main>.ant-menu-item{align-items:center;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0}.zmdms-menu .zmdms-menu--main>.ant-menu-item a{color:inherit}.zmdms-menu .zmdms-menu--main>.ant-menu-item:active{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-item:hover{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu .zmdms-menu--main>.ant-menu-item.ant-menu-item-selected{background:#5b76f6;color:#fff;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-item.ant-menu-item-selected:after{border-right:none}.zmdms-menu--sub{padding:0}.zmdms-menu--sub .ant-drawer-content{background:#0000;background-position:100%;background-repeat:no-repeat;background-size:cover;overflow:hidden}.zmdms-menu--sub .ant-drawer-content .ant-menu{background:#0000;color:#fff}.zmdms-menu--sub.ant-drawer-left>.ant-drawer-content-wrapper{left:-1px}.zmdms-menu--sub .ant-drawer-header{background:#0000;border-bottom:none;padding:0}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title{align-items:center;color:#fff;display:flex;height:48px;justify-content:center}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title .ant-drawer-title{align-items:center;color:#fff;display:flex;font-size:14px;justify-content:center}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title .ant-drawer-title img{width:118px}.zmdms-menu--sub .ant-drawer-body{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#5b76f566;font-size:13px;overflow-x:hidden;padding:0}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-track{background:#fff0;border-radius:4px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-thumb{background:#5b76f6;border-radius:4px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#5b76f6}.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu.ant-menu-submenu-inline{border-bottom:1px solid #8d9eff47;padding-bottom:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline{background:#0000;padding:0 10px}.zmdms-menu--sub .ant-drawer-body .ant-menu-item,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item{align-items:center;border-radius:4px;color:#fff;display:flex;font-size:13px;height:30px;line-height:30px;margin:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:not(:last-child),.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-item a,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:last-child,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:last-child{margin-bottom:10px}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title{color:#fff;font-size:13px;font-weight:700;height:30px;line-height:30px}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-root>.ant-menu-item-only-child{margin-top:2px}.zmdms-menu--sub .ant-drawer-body .ant-menu-root>.ant-menu-item-only-child .ant-menu-title-content{font-weight:700}.zmdms-menu--sub .ant-drawer-body .ant-menu-item-selected{background-color:#5b76f5!important;color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-item-selected:after{border-right:none}.zmdms-menu--sub .ant-drawer-footer{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#5b76f566;border-top:1px solid #5670ea;display:flex;height:40px;justify-content:center;line-height:40px;padding:3px 10px}.zmdms-menu--sub .ant-drawer-footer .zt-btn-link{color:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-content,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-content .ant-menu{background:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-header{background:#fff;border-bottom:1px solid #ebf3fe}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-track{background:#fff;border-radius:4px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-thumb{background:#8695a1;border-radius:4px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#727e88}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item a,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a{color:#000000d9}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a:hover{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title{color:#000000a6;font-size:13px;font-weight:700;height:30px;line-height:30px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a{color:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:active,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:active{background:#0000}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-submenu-arrow{color:#000000d9}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:active,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:active{background:#0000}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item-selected{background-color:#e6f7ff!important;color:#4285f4!important}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-footer{-webkit-backdrop-filter:none;backdrop-filter:none;background:none;border-top:1px solid #ebf3fe}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-footer .zt-btn-link{color:#4285f4!important}.zmdms-menu--sub.zmdms-menu--sub-item-line .ant-menu-item{height:auto!important;line-height:20px!important;min-height:30px}.zmdms-menu--sub.zmdms-menu--sub-item-line .ant-menu-item .ant-menu-title-content{word-wrap:break-word;display:inline-block;height:auto!important;text-overflow:unset!important;white-space:pre-wrap;width:100%}.logout-spin{background-color:#ffffffb3;bottom:0;left:0;padding-top:100px;position:fixed;right:0;top:0;z-index:1000}
|
|
1
|
+
.zmdms-container{background-color:#e9ecf3}.zmdms-container .zmdms-sider{background-color:#5b76f6;background-repeat:no-repeat;background-size:100% auto;background-size:cover;z-index:102}.zmdms-container .zmdms-content{background-color:#e9ecf3}.zmdms-container .zmdms-content--header{align-items:center;background:#fff;display:flex;height:48px;justify-content:space-between;line-height:48px;padding:0 0 0 10px}.zmdms-container .zmdms-content--header .ant-tabs{flex:1;margin-top:8px;width:calc(100% - 350px)}.zmdms-container .zmdms-content--header .ant-tabs.zmdms-content--header-tabs{width:300px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab>div{padding:0}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab a{color:#768696;display:inline-block;padding:0 20px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-tab.ant-tabs-tab-with-remove a{padding:0 10px 0 20px}.zmdms-container .zmdms-content--header .ant-tabs .ant-tabs-nav{margin-bottom:0}.zmdms-container .zmdms-content--content{height:calc(100vh - 48px);position:relative}.zmdms-container .zmdms-content--header-info{color:#000000a6;display:flex;height:48px;max-width:350px}.zmdms-container .zmdms-content--header-info .full-screen{cursor:pointer;text-align:center;width:36px}.zmdms-container .zmdms-content--header-info .user-operation{align-items:center;cursor:pointer;display:flex;padding:0 12px}.zmdms-container .zmdms-content--header-info .user-operation:hover{background-color:#f7f7f7}.zmdms-container .zmdms-content--header-info .user-operation>span:last-child{color:#000000a6;display:inline-block;margin-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:70px}.zmdms-menu{display:flex;flex-direction:column;height:100vh}.zmdms-menu .zmdms-logo{align-items:center;display:block;display:flex;height:48px;padding:9px 0 5px}.zmdms-menu .zmdms-logo.zmdms-logo--line{position:relative;z-index:1000}.zmdms-menu .zmdms-logo.zmdms-logo--line:after{background:#505cbe;content:"";height:29px;position:absolute;right:-.5px;width:1px}.zmdms-menu .zmdms-logo>img{display:block;margin:0 auto;width:78px}.zmdms-menu .zmdms-menu--search{background-color:#5b8af666;position:relative}.zmdms-menu .zmdms-menu--search>input{background-color:#5b8af666;border:none;color:#fff;font-size:13px;height:36px;line-height:36px}.zmdms-menu .zmdms-menu--search>input::placeholder{color:#fff;font-size:13px}.zmdms-menu .zmdms-menu--search .zmdms-menu--search__icon{align-items:center;color:#fff;cursor:pointer;display:flex;font-size:16px;height:30px;justify-content:center;position:absolute;right:0;top:3px;width:30px}.zmdms-menu .zmdms-menu--main{background:#0000;border-right:none;flex:1;overflow-x:hidden;overflow-y:auto}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-hide-bg .ant-menu-item-selected{background:#1566d2!important}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-item-line .ant-menu-item{height:auto!important;line-height:20px!important;min-height:36px}.zmdms-menu .zmdms-menu--main.zmdms-menu--main-item-line .ant-menu-item .ant-menu-title-content{word-wrap:break-word;display:inline-block;height:auto!important;text-overflow:unset!important;white-space:pre-wrap;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu,.zmdms-menu .zmdms-menu--main>.ant-menu-submenu.ant-menu-submenu-open>.ant-menu-submenu-title{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title{align-items:center;backdrop-filter:blur(4px);background-color:#5b76f5;background-color:#5b8af666;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0;padding:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{color:#ffffffa6;right:6px}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content{flex:none;width:88%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu .zmdms-menu--main>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub.ant-menu-inline{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item{align-items:center;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item a{color:inherit}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:active{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:hover{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item.ant-menu-item-selected{background:#5b76f5;color:#fff;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-submenu .ant-menu-sub>.ant-menu-item.ant-menu-item-selected:after{border-right:none}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-track{background:#fff0;border-radius:4px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-thumb{background:#5b76f6;border-radius:4px}.zmdms-menu .zmdms-menu--main::-webkit-scrollbar-thumb:hover{background:#5b76f6}.zmdms-menu .zmdms-menu--main>.ant-menu-item{align-items:center;color:#ffffffa6;display:flex;font-size:13px;height:36px;line-height:36px;margin:0}.zmdms-menu .zmdms-menu--main>.ant-menu-item a{color:inherit}.zmdms-menu .zmdms-menu--main>.ant-menu-item:active{background:#0000}.zmdms-menu .zmdms-menu--main>.ant-menu-item:hover{color:#fff}.zmdms-menu .zmdms-menu--main>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu .zmdms-menu--main>.ant-menu-item.ant-menu-item-selected{background:#5b76f6;color:#fff;width:100%}.zmdms-menu .zmdms-menu--main>.ant-menu-item.ant-menu-item-selected:after{border-right:none}.zmdms-menu--sub{padding:0}.zmdms-menu--sub .ant-drawer-content{background:#0000;background-position:100%;background-repeat:no-repeat;background-size:cover;overflow:hidden}.zmdms-menu--sub .ant-drawer-content .ant-menu{background:#0000;color:#fff}.zmdms-menu--sub.ant-drawer-left>.ant-drawer-content-wrapper{left:-1px}.zmdms-menu--sub .ant-drawer-header{background:#0000;border-bottom:none;padding:0}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title{align-items:center;color:#fff;display:flex;height:48px;justify-content:center}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title .ant-drawer-title{align-items:center;color:#fff;display:flex;font-size:14px;justify-content:center}.zmdms-menu--sub .ant-drawer-header .ant-drawer-header-title .ant-drawer-title img{width:118px}.zmdms-menu--sub .ant-drawer-body{backdrop-filter:blur(2px);background:#5b76f566;font-size:13px;overflow-x:hidden;padding:0}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-track{background:#fff0;border-radius:4px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-thumb{background:#5b76f6;border-radius:4px}.zmdms-menu--sub .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#5b76f6}.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu.ant-menu-submenu-inline{border-bottom:1px solid #8d9eff47;padding-bottom:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline{background:#0000;padding:0 10px}.zmdms-menu--sub .ant-drawer-body .ant-menu-item,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item{align-items:center;border-radius:4px;color:#fff;display:flex;font-size:13px;height:30px;line-height:30px;margin:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:not(:last-child),.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:not(:last-child){margin-bottom:0}.zmdms-menu--sub .ant-drawer-body .ant-menu-item a,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-item:last-child,.zmdms-menu--sub .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item:last-child{margin-bottom:10px}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title{color:#fff;font-size:13px;font-weight:700;height:30px;line-height:30px}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:hover,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:active,.zmdms-menu--sub .ant-drawer-body .ant-menu-submenu-title:active{background:#0000}.zmdms-menu--sub .ant-drawer-body .ant-menu-root>.ant-menu-item-only-child{margin-top:2px}.zmdms-menu--sub .ant-drawer-body .ant-menu-root>.ant-menu-item-only-child .ant-menu-title-content{font-weight:700}.zmdms-menu--sub .ant-drawer-body .ant-menu-item-selected{background-color:#5b76f5!important;color:#fff}.zmdms-menu--sub .ant-drawer-body .ant-menu-item-selected:after{border-right:none}.zmdms-menu--sub .ant-drawer-footer{align-items:center;backdrop-filter:blur(2px);background:#5b76f566;border-top:1px solid #5670ea;display:flex;height:40px;justify-content:center;line-height:40px;padding:3px 10px}.zmdms-menu--sub .ant-drawer-footer .zt-btn-link{color:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-content,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-content .ant-menu{background:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-header{background:#fff;border-bottom:1px solid #ebf3fe}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body{backdrop-filter:none;background:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar{height:4px;width:6px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-track{background:#fff;border-radius:4px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-thumb{background:#8695a1;border-radius:4px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#727e88}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item a,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a{color:#000000d9}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-sub.ant-menu-inline>.ant-menu-item a:hover{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title{color:#000000a6;font-size:13px;font-weight:700;height:30px;line-height:30px}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a{color:#fff}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-title-content>a:active,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-title-content>a:active{background:#0000}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title .ant-menu-submenu-arrow{color:#000000d9}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:hover,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:hover .ant-menu-submenu-arrow{color:#5b76f6}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title:active,.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-submenu-title:active{background:#0000}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-body .ant-menu-item-selected{background-color:#e6f7ff!important;color:#4285f4!important}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-footer{backdrop-filter:none;background:none;border-top:1px solid #ebf3fe}.zmdms-menu--sub.zmdms-menu--sub-hide-bg .ant-drawer-footer .zt-btn-link{color:#4285f4!important}.zmdms-menu--sub.zmdms-menu--sub-item-line .ant-menu-item{height:auto!important;line-height:20px!important;min-height:30px}.zmdms-menu--sub.zmdms-menu--sub-item-line .ant-menu-item .ant-menu-title-content{word-wrap:break-word;display:inline-block;height:auto!important;text-overflow:unset!important;white-space:pre-wrap;width:100%}.logout-spin{background-color:#ffffffb3;bottom:0;left:0;padding-top:100px;position:fixed;right:0;top:0;z-index:1000}
|
|
@@ -39,6 +39,7 @@ import { useExcelExport } from '../table/excel.js';
|
|
|
39
39
|
import { getTableColumns } from '../table/utils.js';
|
|
40
40
|
import DynamicSetting from '../dynamicsetting/dynamicSetting.js';
|
|
41
41
|
import '../dynamicsetting/useTemplate.js';
|
|
42
|
+
import { useSelectionSnapshot } from './hooks/useSelectionSnapshot.js';
|
|
42
43
|
import useLocale from '../config/useLocale.js';
|
|
43
44
|
import '../config/ZtxkContext.js';
|
|
44
45
|
import '../config/MyStorage.js';
|
|
@@ -367,6 +368,18 @@ function CanvasTable(props) {
|
|
|
367
368
|
columns: processedColumns,
|
|
368
369
|
containerRef: containerRef,
|
|
369
370
|
}), getSelectedCellsText = _9.getSelectedCellsText, copyToClipboard = _9.copyToClipboard;
|
|
371
|
+
useSelectionSnapshot({
|
|
372
|
+
selection: state.cellSelection,
|
|
373
|
+
selecting: state.isSelecting,
|
|
374
|
+
columns: processedColumns,
|
|
375
|
+
rows: processedDataSource,
|
|
376
|
+
scrollLeft: scrollState.scrollLeft,
|
|
377
|
+
scrollTop: scrollState.scrollTop,
|
|
378
|
+
containerRef: containerRef,
|
|
379
|
+
getText: getSelectedCellsText,
|
|
380
|
+
headerHeight: calculatedHeaderHeight,
|
|
381
|
+
onChange: props.onCellSelectionChange,
|
|
382
|
+
});
|
|
370
383
|
// 处理右键菜单的复制操作
|
|
371
384
|
var handleCopy = useCallback(function () {
|
|
372
385
|
var text = getSelectedCellsText();
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { __assign, __spreadArray } from '../../_virtual/_tslib.js';
|
|
2
|
+
import { useRef, useEffect } from 'react';
|
|
3
|
+
import { flattenHeaders } from '../utils/multiHeaderHelpers.js';
|
|
4
|
+
|
|
5
|
+
/** 按显示顺序收集叶子列标题和明确配置的单位,保留多级表头路径。 */
|
|
6
|
+
function selectionColumns(columns, parents, parentUnit) {
|
|
7
|
+
if (parents === void 0) { parents = []; }
|
|
8
|
+
return columns.flatMap(function (column) {
|
|
9
|
+
var _a, _b, _c, _d, _e, _f;
|
|
10
|
+
var title = (_c = (_b = (_a = column.aiContext) === null || _a === void 0 ? void 0 : _a.columnTitle) !== null && _b !== void 0 ? _b : column.dynamicTitle) !== null && _c !== void 0 ? _c : (typeof column.title === "string" ? column.title : column.key);
|
|
11
|
+
var path = __spreadArray(__spreadArray([], parents, true), [title], false);
|
|
12
|
+
var unit = (_e = (_d = column.aiContext) === null || _d === void 0 ? void 0 : _d.displayUnit) !== null && _e !== void 0 ? _e : parentUnit;
|
|
13
|
+
return ((_f = column.children) === null || _f === void 0 ? void 0 : _f.length)
|
|
14
|
+
? selectionColumns(column.children, path, unit)
|
|
15
|
+
: [
|
|
16
|
+
{
|
|
17
|
+
key: column.key,
|
|
18
|
+
fieldKey: column.dataIndex,
|
|
19
|
+
columnTitle: path.join(" / "),
|
|
20
|
+
displayUnit: unit || undefined,
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/** 框选完成才发布快照;数据、列、滚动变化清除旧快照,避免旧位置指向新记录。 */
|
|
26
|
+
function useSelectionSnapshot(options) {
|
|
27
|
+
var selection = options.selection, selecting = options.selecting, columns = options.columns, rows = options.rows, scrollLeft = options.scrollLeft, scrollTop = options.scrollTop, headerHeight = options.headerHeight, containerRef = options.containerRef, getText = options.getText, onChange = options.onChange;
|
|
28
|
+
var point = useRef({ x: 0, y: 0 });
|
|
29
|
+
var previous = useRef({ selection: selection, selecting: selecting });
|
|
30
|
+
var callback = useRef(onChange);
|
|
31
|
+
callback.current = onChange;
|
|
32
|
+
var enabled = !!onChange;
|
|
33
|
+
useEffect(function () {
|
|
34
|
+
if (!enabled)
|
|
35
|
+
return;
|
|
36
|
+
/** 在 Canvas mouseup 状态提交前记录最终鼠标坐标。 */
|
|
37
|
+
var rememberPoint = function (event) {
|
|
38
|
+
point.current = { x: event.clientX, y: event.clientY };
|
|
39
|
+
};
|
|
40
|
+
document.addEventListener("pointerup", rememberPoint, true);
|
|
41
|
+
return function () { return document.removeEventListener("pointerup", rememberPoint, true); };
|
|
42
|
+
}, [enabled]);
|
|
43
|
+
useEffect(function () {
|
|
44
|
+
var _a, _b, _c, _d, _e, _f;
|
|
45
|
+
var old = previous.current;
|
|
46
|
+
previous.current = { selection: selection, selecting: selecting };
|
|
47
|
+
if (!callback.current)
|
|
48
|
+
return;
|
|
49
|
+
if (!selection ||
|
|
50
|
+
selecting ||
|
|
51
|
+
(!old.selecting && selection === old.selection) ||
|
|
52
|
+
!containerRef.current) {
|
|
53
|
+
callback.current(null);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
var count = (Math.abs(selection.endRow - selection.startRow) + 1) *
|
|
57
|
+
(Math.abs(selection.endCol - selection.startCol) + 1);
|
|
58
|
+
// ponytail: 最多同步读取 200 格;更大范围分析应使用分页数据接口。
|
|
59
|
+
if (count > 200) {
|
|
60
|
+
callback.current(null);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
var metadata = selectionColumns(columns)
|
|
64
|
+
.slice(Math.min(selection.startCol, selection.endCol), Math.max(selection.startCol, selection.endCol) + 1)
|
|
65
|
+
.filter(function (column) {
|
|
66
|
+
return column.key !== "__selection__" && column.key !== "__index__";
|
|
67
|
+
});
|
|
68
|
+
var text = getText();
|
|
69
|
+
// 单击分组表头时解释实际表头,不能把所在叶子列误当成点击目标。
|
|
70
|
+
if (selection.startRow === -1 &&
|
|
71
|
+
selection.endRow === -1 &&
|
|
72
|
+
selection.startCol === selection.endCol) {
|
|
73
|
+
var headers = flattenHeaders(columns);
|
|
74
|
+
var y = point.current.y - containerRef.current.getBoundingClientRect().top;
|
|
75
|
+
var depth = Math.min(headers.length - 1, Math.max(0, Math.floor(y / (headerHeight / headers.length))));
|
|
76
|
+
var header = (_a = headers[depth]) === null || _a === void 0 ? void 0 : _a.find(function (cell) {
|
|
77
|
+
return selection.startCol >= cell.colIndex &&
|
|
78
|
+
selection.startCol < cell.colIndex + cell.colSpan;
|
|
79
|
+
});
|
|
80
|
+
if ((_b = header === null || header === void 0 ? void 0 : header.column.children) === null || _b === void 0 ? void 0 : _b.length) {
|
|
81
|
+
var column = header.column;
|
|
82
|
+
text =
|
|
83
|
+
(_e = (_d = (_c = column.aiContext) === null || _c === void 0 ? void 0 : _c.columnTitle) !== null && _d !== void 0 ? _d : column.dynamicTitle) !== null && _e !== void 0 ? _e : (typeof column.title === "string" ? column.title : column.key);
|
|
84
|
+
metadata.splice(0, metadata.length, {
|
|
85
|
+
key: column.key,
|
|
86
|
+
fieldKey: column.dataIndex,
|
|
87
|
+
columnTitle: text,
|
|
88
|
+
displayUnit: (_f = column.aiContext) === null || _f === void 0 ? void 0 : _f.displayUnit,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (!text.trim()) {
|
|
93
|
+
callback.current(null);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
callback.current({
|
|
97
|
+
range: __assign({}, selection),
|
|
98
|
+
columns: metadata,
|
|
99
|
+
text: text,
|
|
100
|
+
anchor: __assign({}, point.current),
|
|
101
|
+
});
|
|
102
|
+
}, [
|
|
103
|
+
selection,
|
|
104
|
+
selecting,
|
|
105
|
+
columns,
|
|
106
|
+
rows,
|
|
107
|
+
scrollLeft,
|
|
108
|
+
scrollTop,
|
|
109
|
+
headerHeight,
|
|
110
|
+
containerRef,
|
|
111
|
+
getText,
|
|
112
|
+
]);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export { useSelectionSnapshot };
|
|
@@ -7,6 +7,11 @@ interface FilterConfig {
|
|
|
7
7
|
}
|
|
8
8
|
type ColumnDataType = "text" | "number" | "date" | "boolean";
|
|
9
9
|
interface ICanvasColumnType<RecordType = any> {
|
|
10
|
+
/** 选区的展示标题和单位;子列继承父列单位,空字符串取消继承。 */
|
|
11
|
+
aiContext?: {
|
|
12
|
+
columnTitle?: string;
|
|
13
|
+
displayUnit?: string;
|
|
14
|
+
};
|
|
10
15
|
/**
|
|
11
16
|
* 列的key,唯一标识
|
|
12
17
|
*/
|
|
@@ -479,6 +484,8 @@ interface ICanvasTableProps<RecordType = any> {
|
|
|
479
484
|
* 表格id(用于自动高度计算时定位元素)
|
|
480
485
|
*/
|
|
481
486
|
canvasTableId?: string;
|
|
487
|
+
/** 框选结束发布展示快照,开始框选、数据或滚动变化传 null 使旧快照失效。 */
|
|
488
|
+
onCellSelectionChange?: (selection: ICanvasCellSelection | null) => void;
|
|
482
489
|
/**
|
|
483
490
|
* 表格ref句柄,用于暴露表格的一些方法
|
|
484
491
|
*/
|
|
@@ -590,6 +597,27 @@ interface ICanvasTableRefHandle {
|
|
|
590
597
|
* 清除过滤
|
|
591
598
|
*/
|
|
592
599
|
clearFilter: () => void;
|
|
600
|
+
}
|
|
601
|
+
/** 完成选区的展示快照,不暴露完整记录;超过 200 格不生成快照。 */
|
|
602
|
+
interface ICanvasCellSelection {
|
|
603
|
+
range: ICellSelection;
|
|
604
|
+
columns: {
|
|
605
|
+
fieldKey?: string;
|
|
606
|
+
columnTitle: string;
|
|
607
|
+
displayUnit?: string;
|
|
608
|
+
}[];
|
|
609
|
+
text: string;
|
|
610
|
+
/** 屏幕坐标,用于定位选区操作入口。 */
|
|
611
|
+
anchor: {
|
|
612
|
+
x: number;
|
|
613
|
+
y: number;
|
|
614
|
+
};
|
|
615
|
+
}
|
|
616
|
+
interface ICellSelection {
|
|
617
|
+
startRow: number;
|
|
618
|
+
endRow: number;
|
|
619
|
+
startCol: number;
|
|
620
|
+
endCol: number;
|
|
593
621
|
}
|
|
594
622
|
|
|
595
|
-
export { ColumnDataType, FilterConfig, IBadgeProps, ICanvasColumnType, ICanvasColumnsType, ICanvasRowSelection, ICanvasTableProps, ICanvasTableRefHandle, IExpandable, SortOrder };
|
|
623
|
+
export { ColumnDataType, FilterConfig, IBadgeProps, ICanvasCellSelection, ICanvasColumnType, ICanvasColumnsType, ICanvasRowSelection, ICanvasTableProps, ICanvasTableRefHandle, ICellSelection, IExpandable, SortOrder };
|
|
@@ -131,6 +131,7 @@ declare function useLocale(): {
|
|
|
131
131
|
retranslate: string;
|
|
132
132
|
apiError: string;
|
|
133
133
|
noTaskId: string;
|
|
134
|
+
/** 将任意语言码归一化为组件库支持的语系:zh 系(zh/zh-CN/zh-cn…)→ "zh",其余 → "en" */
|
|
134
135
|
translatingProgress: string;
|
|
135
136
|
originalDoc: string;
|
|
136
137
|
translatedDoc: string;
|
|
@@ -148,7 +149,12 @@ declare function useLocale(): {
|
|
|
148
149
|
fileTypeTitle: string;
|
|
149
150
|
fileNameTitle: string;
|
|
150
151
|
nameTitle: string;
|
|
151
|
-
uploadTimeTitle: string;
|
|
152
|
+
uploadTimeTitle: string; /**
|
|
153
|
+
* 获取语言配置 目前支持中文、英文
|
|
154
|
+
* 底层由 i18next 驱动:应用调用 i18next.changeLanguage("en") 后组件自动更新。
|
|
155
|
+
* 兼容旧模式:使用方通过 ZtxkContext.Provider 传入 locale 时会同步到 i18next。
|
|
156
|
+
* @returns 返回当前语言配置
|
|
157
|
+
*/
|
|
152
158
|
attachOwnerTitle: string;
|
|
153
159
|
dateFormat: string;
|
|
154
160
|
useElectronicSeal: string;
|
|
@@ -433,7 +439,7 @@ declare function useLocale(): {
|
|
|
433
439
|
lastTabCannotClose: string;
|
|
434
440
|
fullscreen: string;
|
|
435
441
|
exitFullscreen: string;
|
|
436
|
-
accountInfo: string;
|
|
442
|
+
accountInfo: string;
|
|
437
443
|
changePassword: string;
|
|
438
444
|
logout: string;
|
|
439
445
|
loggingOut: string;
|
package/dist/index.build.d.ts
CHANGED
|
@@ -55,7 +55,7 @@ export { default as Sortable } from './es/sortable/sortable.js';
|
|
|
55
55
|
export { default as ElectronSignatures } from './es/electronsignatures/index.js';
|
|
56
56
|
export { default as message } from './es/message/index.js';
|
|
57
57
|
export { default as CanvasTable } from './es/canvastable/canvasTable.js';
|
|
58
|
-
export { ICanvasColumnType, ICanvasColumnsType, ICanvasTableProps, ICanvasTableRefHandle } from './es/canvastable/interface.js';
|
|
58
|
+
export { ICanvasCellSelection, ICanvasColumnType, ICanvasColumnsType, ICanvasTableProps, ICanvasTableRefHandle } from './es/canvastable/interface.js';
|
|
59
59
|
export { default as TranslationButton } from './es/translationbutton/translationButton.js';
|
|
60
60
|
export { default as PreviewFile } from './es/translationbutton/PreviewFile.js';
|
|
61
61
|
export { Affix, Anchor, AutoComplete, Avatar, BackTop, Badge, Breadcrumb, Card, Carousel, Cascader, Checkbox, Col, Comment, ConfigProvider, Divider, Drawer, Dropdown, Grid, Image, Layout, List, Mentions, Menu, PageHeader, Popconfirm, Popover, Progress, Radio, Rate, Result, Row, Segmented, Skeleton, Slider, Space, Spin, Statistic, Steps, Switch, Timeline, Tooltip, Transfer, Typography, Upload, notification } from 'antd';
|