vxe-table 4.8.4 → 4.8.6
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/README.md +12 -12
- package/es/grid/src/grid.js +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/hook.js +135 -3
- package/es/table/module/custom/panel.js +179 -181
- package/es/table/module/validator/hook.js +1 -1
- package/es/table/src/body.js +14 -8
- package/es/table/src/table.js +77 -73
- package/es/table/style.css +67 -52
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +3 -2
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +67 -52
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +374 -247
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/custom/hook.js +177 -3
- package/lib/table/module/custom/hook.min.js +1 -1
- package/lib/table/module/custom/panel.js +108 -162
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/validator/hook.js +1 -1
- package/lib/table/module/validator/hook.min.js +1 -1
- package/lib/table/src/body.js +5 -3
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/table.js +78 -74
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +67 -52
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +3 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +67 -52
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +1 -1
- package/packages/table/module/custom/hook.ts +136 -3
- package/packages/table/module/custom/panel.ts +186 -185
- package/packages/table/module/validator/hook.ts +1 -1
- package/packages/table/src/body.ts +14 -8
- package/packages/table/src/table.ts +77 -73
- package/packages/ui/index.ts +2 -1
- package/styles/components/table-module/custom.scss +23 -6
- package/styles/components/table.scss +36 -26
- /package/es/{iconfont.1730946045701.ttf → iconfont.1731028500961.ttf} +0 -0
- /package/es/{iconfont.1730946045701.woff → iconfont.1731028500961.woff} +0 -0
- /package/es/{iconfont.1730946045701.woff2 → iconfont.1731028500961.woff2} +0 -0
- /package/lib/{iconfont.1730946045701.ttf → iconfont.1731028500961.ttf} +0 -0
- /package/lib/{iconfont.1730946045701.woff → iconfont.1731028500961.woff} +0 -0
- /package/lib/{iconfont.1730946045701.woff2 → iconfont.1731028500961.woff2} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,getIcon}=_ui.VxeUI;var _default=exports.default=(0,_vue.defineComponent)({name:"TableCustomPanel",props:{customStore:{type:Object,default:()=>({})}},setup(L){const F=_ui.VxeUI.getComponent("VxeModal"),A=_ui.VxeUI.getComponent("VxeDrawer"),M=_ui.VxeUI.getComponent("VxeButton"),U=_ui.VxeUI.getComponent("VxeInput"),H=_ui.VxeUI.getComponent("VxeTooltip"),R=_ui.VxeUI.getComponent("VxeRadioGroup"),d=(0,_vue.inject)("$xeTable",{}),S=d["reactData"],{computeCustomOpts:D,computeColumnOpts:K,computeIsMaxFixedColumn:z}=d.getComputeMaps(),W=(0,_vue.ref)(),X=(0,_vue.ref)(),q=(0,_vue.ref)(),j=(0,_vue.ref)();let u;const G=e=>{var t=L["customStore"];t.activeWrapper=!0,d.customOpenEvent(e)},$=e=>{const t=L["customStore"];t.activeWrapper=!1,setTimeout(()=>{t.activeBtn||t.activeWrapper||d.customCloseEvent(e)},300)},P=({$event:e})=>{var t=S["customColumnList"];const{allowVisible:s,allowSort:a,allowFixed:r,allowResizable:n}=D.value;_xeUtils.default.eachTree(t,(e,t,o,l,i)=>{i?e.fixed=i.fixed:(a&&(e.renderSortNumber=t+1),r&&(e.fixed=e.renderFixed)),n&&e.renderVisible&&(!e.children||e.children.length)&&e.renderResizeWidth!==e.renderWidth&&(e.resizeWidth=e.renderResizeWidth,e.renderWidth=e.renderResizeWidth),s&&(e.visible=e.renderVisible)}),d.closeCustom(),d.emitCustomEvent("confirm",e),d.saveCustomStore("confirm")},Y=({$event:e})=>{d.closeCustom(),d.emitCustomEvent("close",e)},Z=({$event:e})=>{var t=L["customStore"],o=S["customColumnList"];const{oldSortMaps:i,oldFixedMaps:s,oldVisibleMaps:a}=t,{allowVisible:r,allowSort:n,allowFixed:u,allowResizable:c}=D.value;_xeUtils.default.eachTree(o,e=>{var t=e.getKey(),o=!!a[t],l=s[t]||"";r&&(e.renderVisible=o,e.visible=o),u&&(e.renderFixed=l,e.fixed=l),n&&(e.renderSortNumber=i[t]||0),c&&(e.renderResizeWidth=e.renderWidth)},{children:"children"}),d.closeCustom(),d.emitCustomEvent("cancel",e)},o=e=>{d.resetColumn(!0),d.closeCustom(),d.emitCustomEvent("reset",e)},J=({$event:t})=>{_ui.VxeUI.modal?_ui.VxeUI.modal.confirm({content:getI18n("vxe.custom.cstmConfirmRestore"),className:"vxe-table--ignore-clear",escClosable:!0}).then(e=>{"confirm"===e&&o(t)}):o(t)},l=t=>{var e=S["customColumnList"],e=_xeUtils.default.findTree(e,e=>e===t);e&&e.parent&&(e=e["parent"],e.children)&&e.children.length&&(e.renderVisible=e.children.every(e=>e.renderVisible),e.halfVisible=!e.renderVisible&&e.children.some(e=>e.renderVisible||e.halfVisible),l(e))},Q=e=>{const t=!e.renderVisible;D.value.immediate?(_xeUtils.default.eachTree([e],e=>{e.visible=t,e.renderVisible=t,e.halfVisible=!1}),d.handleCustom(),d.saveCustomStore("update:visible")):_xeUtils.default.eachTree([e],e=>{e.renderVisible=t,e.halfVisible=!1}),l(e),d.checkCustomStatus()},ee=(e,t)=>{var o=z.value;D.value.immediate?(e.renderFixed===t?_xeUtils.default.eachTree([e],e=>{e.fixed="",e.renderFixed=""}):o&&!e.renderFixed||_xeUtils.default.eachTree([e],e=>{e.fixed=t,e.renderFixed=t}),d.handleCustom(),d.saveCustomStore("update:fixed")):e.renderFixed===t?_xeUtils.default.eachTree([e],e=>{e.renderFixed=""}):o&&!e.renderFixed||_xeUtils.default.eachTree([e],e=>{e.renderFixed=t})},te=()=>{var e=L["customStore"],t=S["customColumnList"],o=D.value;const{checkMethod:l,visibleMethod:i}=o,s=!e.isAll;o.immediate?(_xeUtils.default.eachTree(t,e=>{i&&!i({column:e})||l&&!l({column:e})||(e.visible=s,e.renderVisible=s,e.halfVisible=!1)}),e.isAll=s,d.handleCustom(),d.saveCustomStore("update:visible")):(_xeUtils.default.eachTree(t,e=>{i&&!i({column:e})||l&&!l({column:e})||(e.renderVisible=s,e.halfVisible=!1)}),e.isAll=s),d.checkCustomStatus()},oe=e=>{var e=e.currentTarget.parentNode.parentNode,t=e.getAttribute("colid"),t=d.getColumnById(t);e.draggable=!0,j.value=t,(0,_dom.addClass)(e,"active--drag-origin")},le=e=>{var e=e.currentTarget.parentNode.parentNode,t=q.value;e.draggable=!1,(j.value=null,_dom.removeClass)(e,"active--drag-origin"),t&&(t.style.display="")},ie=e=>{var t=new Image;e.dataTransfer&&e.dataTransfer.setDragImage(t,0,0)},se=e=>{var t=S["customColumnList"],o=D.value,e=e.currentTarget,l=q.value;if(u){if(u!==e){var i=u.getAttribute("drag-pos"),s=e.getAttribute("colid");const r=d.getColumnById(s);if(!r)return;var s=_xeUtils.default.findIndexOf(t,e=>e.id===r.id),a=u.getAttribute("colid");const n=d.getColumnById(a);if(!n)return;t.splice(s,1);a=_xeUtils.default.findIndexOf(t,e=>e.id===n.id);t.splice(a+("bottom"===i?1:0),0,r)}u.draggable=!1,u.removeAttribute("drag-pos"),(0,_dom.removeClass)(u,"active--drag-target")}j.value=null,e.draggable=!1,e.removeAttribute("drag-pos"),l&&(l.style.display=""),(0,_dom.removeClass)(e,"active--drag-target"),(0,_dom.removeClass)(e,"active--drag-origin"),o.immediate&&(_xeUtils.default.eachTree(t,(e,t,o,l,i)=>{i||(e.renderSortNumber=t+1)}),d.handleCustom(),d.saveCustomStore("update:sort"))},ae=e=>{var t=e.currentTarget,o=(u!==t&&(0,_dom.removeClass)(u,"active--drag-target"),t.getAttribute("colid")),o=d.getColumnById(o);o&&1===o.level&&(e.preventDefault(),o=e.clientY-t.getBoundingClientRect().y<t.clientHeight/2?"top":"bottom",(0,_dom.addClass)(t,"active--drag-target"),t.setAttribute("drag-pos",o),u=t);{o=e;var l=q.value,i=X.value;i&&l&&(e=(t=i.parentNode).getBoundingClientRect(),l.style.display="block",l.style.top=Math.min(t.clientHeight-t.scrollTop-l.clientHeight,o.clientY-e.y)+"px",l.style.left=Math.min(t.clientWidth-t.scrollLeft-l.clientWidth-16,o.clientX-e.x)+"px")}};return"development"===process.env.NODE_ENV&&(0,_vue.nextTick)(()=>{var e=D.value["mode"];F||(0,_log.errLog)("vxe.error.reqComp",["vxe-modal"]),A||"drawer"!==e||(0,_log.errLog)("vxe.error.reqComp",["vxe-drawer"]),M||(0,_log.errLog)("vxe.error.reqComp",["vxe-button"]),U||(0,_log.errLog)("vxe.error.reqComp",["vxe-input"]),H||(0,_log.errLog)("vxe.error.reqComp",["vxe-tooltip"]),R||(0,_log.errLog)("vxe.error.reqComp",["vxe-radio-group"])}),()=>{var e=D.value;if(["modal","drawer","popup"].includes(""+e.mode)){const r=L["customStore"];e=S["customColumnList"];const n=D.value,{modalOptions:u,drawerOptions:c,allowVisible:d,allowSort:m,allowFixed:v,allowResizable:h,checkMethod:x,visibleMethod:_}=n,p=K.value["maxFixedSize"];var t=n["mode"],o=Object.assign({},u),l=Object.assign({},c);const g=z.value,b=[],C=(_xeUtils.default.eachTree(e,(t,e,o,l,i)=>{if(!_||_({column:t})){var s=t.renderVisible,a=t.halfVisible,r=(0,_utils.formatText)(t.getTitle(),1),n=t.children&&t.children.length;const c=!!x&&!x({column:t});var u=!s;b.push((0,_vue.h)("tr",{key:t.id,colid:t.id,class:["vxe-table-custom-popup--row level--"+t.level,{"is--group":n}],onDragstart:ie,onDragend:se,onDragover:ae},[d?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--visible"},[(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":s,"is--indeterminate":a,"is--disabled":c}],title:getI18n("vxe.custom.setting.colVisible"),onClick:()=>{c||Q(t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",a?getIcon().TABLE_CHECKBOX_INDETERMINATE:s?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})])]):(0,_vue.createCommentVNode)(),m?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--sort"},[1===t.level?(0,_vue.h)("span",Object.assign({class:["vxe-table-custom-popup--column-sort-btn",{"is--disabled":c||u}],title:getI18n("vxe.custom.setting.sortHelpTip")},c||u?{}:{onMousedown:oe,onMouseup:le}),[(0,_vue.h)("i",{class:getIcon().TABLE_CUSTOM_SORT})]):(0,_vue.h)("span","-")]):(0,_vue.createCommentVNode)(),(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--name"},["html"===t.type?(0,_vue.h)("div",{key:"1",class:"vxe-table-custom-popup--name",innerHTML:r}):(0,_vue.h)("div",{key:"0",class:"vxe-table-custom-popup--name",title:r},r)]),h?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--resizable"},[t.children&&t.children.length?(0,_vue.h)("span","-"):U?(0,_vue.h)(U,{type:"integer",disabled:c||u,modelValue:t.renderResizeWidth,"onUpdate:modelValue"(e){t.renderResizeWidth=Math.max(0,Number(e))}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)(),v?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--fixed"},[i?(0,_vue.h)("span","-"):R?(0,_vue.h)(R,{modelValue:t.renderFixed||"",type:"button",size:"mini",disabled:c||u,options:[{label:getI18n("vxe.custom.setting.fixedLeft"),value:"left",disabled:c||u||g},{label:getI18n("vxe.custom.setting.fixedUnset"),value:"",disabled:c||u},{label:getI18n("vxe.custom.setting.fixedRight"),value:"right",disabled:c||u||g}],"onUpdate:modelValue"(e){t.renderFixed=e}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}}),r.isAll),f=r.isIndeterminate,T=j.value;e={default:()=>(0,_vue.h)("div",{ref:X,class:"vxe-table-custom-popup--body"},[(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-wrapper"},[(0,_vue.h)("table",{},[(0,_vue.h)("colgroup",{},[d?(0,_vue.h)("col",{style:{width:"80px"}}):(0,_vue.createCommentVNode)(),m?(0,_vue.h)("col",{style:{width:"80px"}}):(0,_vue.createCommentVNode)(),(0,_vue.h)("col",{style:{minWidth:"120px"}}),h?(0,_vue.h)("col",{style:{width:"140px"}}):(0,_vue.createCommentVNode)(),v?(0,_vue.h)("col",{style:{width:"200px"}}):(0,_vue.createCommentVNode)()]),(0,_vue.h)("thead",{},[(0,_vue.h)("tr",{},[d?(0,_vue.h)("th",{},[(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":C,"is--indeterminate":f}],title:getI18n("vxe.table.allTitle"),onClick:te},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",f?getIcon().TABLE_CHECKBOX_INDETERMINATE:C?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.toolbar.customAll"))])]):(0,_vue.createCommentVNode)(),m?(0,_vue.h)("th",{},[(0,_vue.h)("span",{class:"vxe-table-custom-popup--table-sort-help-title"},getI18n("vxe.custom.setting.colSort")),H?(0,_vue.h)(H,{enterable:!0,content:getI18n("vxe.custom.setting.sortHelpTip"),popupClassName:"vxe-table--ignore-clear"},{default:()=>(0,_vue.h)("i",{class:"vxe-table-custom-popup--table-sort-help-icon vxe-icon-question-circle-fill"})}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)(),(0,_vue.h)("th",{},getI18n("vxe.custom.setting.colTitle")),h?(0,_vue.h)("th",{},getI18n("vxe.custom.setting.colResizable")):(0,_vue.createCommentVNode)(),v?(0,_vue.h)("th",{},getI18n("vxe.custom.setting."+(p?"colFixedMax":"colFixed"),[p])):(0,_vue.createCommentVNode)()])]),(0,_vue.h)(_vue.TransitionGroup,{class:"vxe-table-custom--body",tag:"tbody",name:"vxe-table-custom--list"},{default:()=>b})])]),(0,_vue.h)("div",{ref:q,class:"vxe-table-custom-popup--drag-hint"},getI18n("vxe.custom.cstmDragTarget",[T?T.getTitle():""]))]),footer:()=>(0,_vue.h)("div",{class:"vxe-table-custom-popup--footer"},[M?(0,_vue.h)(M,{content:n.resetButtonText||getI18n("vxe.custom.cstmRestore"),onClick:J}):(0,_vue.createCommentVNode)(),M?(0,_vue.h)(M,{content:n.resetButtonText||getI18n("vxe.custom.cstmCancel"),onClick:Z}):(0,_vue.createCommentVNode)(),M?(0,_vue.h)(M,{status:"primary",content:n.confirmButtonText||getI18n("vxe.custom.cstmConfirm"),onClick:P}):(0,_vue.createCommentVNode)()])};return"drawer"===t?A?(0,_vue.h)(A,{key:"drawer",className:["vxe-table-custom-drawer-wrapper","vxe-table--ignore-clear",l.className||""].join(" "),modelValue:r.visible,title:l.title||getI18n("vxe.custom.cstmTitle"),width:l.width||Math.min(880,document.documentElement.clientWidth),position:l.position,escClosable:!!l.escClosable,destroyOnClose:!0,showFooter:!0,"onUpdate:modelValue"(e){r.visible=e}},e):(0,_vue.createCommentVNode)():F?(0,_vue.h)(F,{key:"modal",className:["vxe-table-custom-modal-wrapper","vxe-table--ignore-clear",o.className||""].join(" "),modelValue:r.visible,title:o.title||getI18n("vxe.custom.cstmTitle"),width:o.width||Math.min(880,document.documentElement.clientWidth),minWidth:o.minWidth||700,height:o.height||Math.min(680,document.documentElement.clientHeight),minHeight:o.minHeight||400,showZoom:o.showZoom,showMaximize:o.showMaximize,showMinimize:o.showMinimize,mask:o.mask,lockView:o.lockView,resize:o.resize,escClosable:!!o.escClosable,destroyOnClose:!0,showFooter:!0,"onUpdate:modelValue"(e){r.visible=e}},e):(0,_vue.createCommentVNode)()}{t=L["customStore"],l=S["customColumnList"],o=D.value,e=t["maxHeight"];const{checkMethod:I,visibleMethod:V,allowVisible:E,allowSort:N,allowFixed:w,trigger:k,placement:O}=o,y=z.value,B=[];var i={},l=("hover"===k&&(i.onMouseenter=G,i.onMouseleave=$),_xeUtils.default.eachTree(l,(e,t,o,l,i)=>{if(!V||V({column:e})){var s=e.renderVisible,a=e.halfVisible,r=e.children&&e.children.length,n=(0,_utils.formatText)(e.getTitle(),1);const c=!!I&&!I({column:e});var u=!s;B.push((0,_vue.h)("li",{key:e.id,colid:e.id,class:["vxe-table-custom--option","level--"+e.level,{"is--hidden":c||u,"is--group":r}],onDragstart:ie,onDragend:se,onDragover:ae},[E?(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":s,"is--indeterminate":a,"is--disabled":c}],title:getI18n("vxe.custom.setting.colVisible"),onClick:()=>{c||Q(e)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",a?getIcon().TABLE_CHECKBOX_INDETERMINATE:s?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]):(0,_vue.createCommentVNode)(),N&&1===e.level?(0,_vue.h)("div",{class:"vxe-table-custom--sort-option"},[(0,_vue.h)("span",Object.assign({class:["vxe-table-custom--sort-btn",{"is--disabled":c||u}],title:getI18n("vxe.custom.setting.sortHelpTip")},c||u?{}:{onMousedown:oe,onMouseup:le}),[(0,_vue.h)("i",{class:getIcon().TABLE_CUSTOM_SORT})])]):(0,_vue.createCommentVNode)(),"html"===e.type?(0,_vue.h)("div",{key:"1",class:"vxe-table-custom--checkbox-label",innerHTML:n}):(0,_vue.h)("div",{key:"0",class:"vxe-table-custom--checkbox-label"},n),!i&&w?(0,_vue.h)("div",{class:"vxe-table-custom--fixed-option"},[M?(0,_vue.h)(M,{mode:"text",icon:"left"===e.renderFixed?getIcon().TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:getIcon().TOOLBAR_TOOLS_FIXED_LEFT,status:"left"===e.renderFixed?"primary":"",disabled:c||u||y&&!e.renderFixed,title:getI18n("left"===e.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedLeft"),onClick:()=>{ee(e,"left")}}):(0,_vue.createCommentVNode)(),M?(0,_vue.h)(M,{mode:"text",icon:"right"===e.renderFixed?getIcon().TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:getIcon().TOOLBAR_TOOLS_FIXED_RIGHT,status:"right"===e.renderFixed?"primary":"",disabled:c||u||y&&!e.renderFixed,title:getI18n("right"===e.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedRight"),onClick:()=>{ee(e,"right")}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}}),t.isAll),s=t.isIndeterminate,a=j.value;return(0,_vue.h)("div",{ref:W,key:"simple",class:["vxe-table-custom-wrapper","placement--"+O,{"is--active":t.visible}],style:e&&!["left","right"].includes(O)?{maxHeight:e+"px"}:{}},t.visible?[(0,_vue.h)("ul",{class:"vxe-table-custom--header"},[(0,_vue.h)("li",{class:"vxe-table-custom--option"},[E?(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":l,"is--indeterminate":s}],title:getI18n("vxe.table.allTitle"),onClick:te},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",s?getIcon().TABLE_CHECKBOX_INDETERMINATE:l?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.toolbar.customAll"))]):(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.customTitle"))])]),(0,_vue.h)("div",{ref:X,class:"vxe-table-custom--list-wrapper"},[(0,_vue.h)(_vue.TransitionGroup,Object.assign({class:"vxe-table-custom--body",name:"vxe-table-custom--list",tag:"ul"},i),{default:()=>B}),(0,_vue.h)("div",{ref:q,class:"vxe-table-custom-popup--drag-hint"},getI18n("vxe.custom.cstmDragTarget",[a&&"html"!==a.type?a.getTitle():""]))]),o.showFooter?(0,_vue.h)("div",{class:"vxe-table-custom--footer"},[M?(0,_vue.h)(M,{mode:"text",content:o.resetButtonText||getI18n("vxe.table.customRestore"),onClick:J}):(0,_vue.createCommentVNode)(),o.immediate?M?(0,_vue.h)(M,{mode:"text",content:o.closeButtonText||getI18n("vxe.table.customClose"),onClick:Y}):(0,_vue.createCommentVNode)():M?(0,_vue.h)(M,{mode:"text",content:o.cancelButtonText||getI18n("vxe.table.customCancel"),onClick:Z}):(0,_vue.createCommentVNode)(),!o.immediate&&M?(0,_vue.h)(M,{mode:"text",status:"primary",content:o.confirmButtonText||getI18n("vxe.table.customConfirm"),onClick:P}):(0,_vue.createCommentVNode)()]):null]:[]);return}}}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,getIcon,renderEmptyElement}=_ui.VxeUI;var _default=exports.default=(0,_vue.defineComponent)({name:"TableCustomPanel",props:{customStore:{type:Object,default:()=>({})}},setup(j){const G=_ui.VxeUI.getComponent("VxeModal"),P=_ui.VxeUI.getComponent("VxeDrawer"),Y=_ui.VxeUI.getComponent("VxeButton"),Z=_ui.VxeUI.getComponent("VxeNumberInput"),J=_ui.VxeUI.getComponent("VxeTooltip"),Q=_ui.VxeUI.getComponent("VxeRadioGroup"),ee=(0,_vue.inject)("$xeTable",{}),te=ee["reactData"],{computeCustomOpts:oe,computeColumnOpts:le,computeIsMaxFixedColumn:ae,computeResizableOpts:se}=ee.getComputeMaps(),ie=(0,_vue.ref)(),ne=(0,_vue.ref)(),re=(0,_vue.ref)(),ce=(0,_vue.ref)();let c;const ue=e=>{var t=j["customStore"];t.activeWrapper=!0,ee.customOpenEvent(e)},me=e=>{const t=j["customStore"];t.activeWrapper=!1,setTimeout(()=>{t.activeBtn||t.activeWrapper||ee.customCloseEvent(e)},300)},de=({$event:e})=>{ee.saveCustom(),ee.closeCustom(),ee.emitCustomEvent("confirm",e)},ve=({$event:e})=>{ee.closeCustom(),ee.emitCustomEvent("close",e)},xe=({$event:e})=>{ee.cancelCustom(),ee.closeCustom(),ee.emitCustomEvent("cancel",e)},o=e=>{ee.resetCustom(!0),ee.closeCustom(),ee.emitCustomEvent("reset",e)},pe=({$event:t})=>{_ui.VxeUI.modal?_ui.VxeUI.modal.confirm({content:getI18n("vxe.custom.cstmConfirmRestore"),className:"vxe-table--ignore-clear",escClosable:!0}).then(e=>{"confirm"===e&&o(t)}):o(t)},l=t=>{var e=te["customColumnList"],e=_xeUtils.default.findTree(e,e=>e===t);e&&e.parent&&(e=e["parent"],e.children)&&e.children.length&&(e.renderVisible=e.children.every(e=>e.renderVisible),e.halfVisible=!e.renderVisible&&e.children.some(e=>e.renderVisible||e.halfVisible),l(e))},_e=e=>{const t=!e.renderVisible;oe.value.immediate?(_xeUtils.default.eachTree([e],e=>{e.visible=t,e.renderVisible=t,e.halfVisible=!1}),ee.handleCustom(),ee.saveCustomStore("update:visible")):_xeUtils.default.eachTree([e],e=>{e.renderVisible=t,e.halfVisible=!1}),l(e),ee.checkCustomStatus()},he=(e,t)=>{var o=ae.value;oe.value.immediate?(e.renderFixed===t?_xeUtils.default.eachTree([e],e=>{e.fixed="",e.renderFixed=""}):o&&!e.renderFixed||_xeUtils.default.eachTree([e],e=>{e.fixed=t,e.renderFixed=t}),ee.handleCustom(),ee.saveCustomStore("update:fixed")):e.renderFixed===t?_xeUtils.default.eachTree([e],e=>{e.renderFixed=""}):o&&!e.renderFixed||_xeUtils.default.eachTree([e],e=>{e.renderFixed=t})},be=()=>{ee.toggleCustomAllCheckbox()},ge=e=>{var t=e.currentTarget.parentNode.parentNode,o=t.getAttribute("colid"),o=ee.getColumnById(o);t.draggable=!0,ce.value=o,(0,_dom.addClass)(t,"active--drag-origin"),a(e)},Ce=e=>{var e=e.currentTarget.parentNode.parentNode,t=re.value;e.draggable=!1,(ce.value=null,_dom.removeClass)(e,"active--drag-origin"),t&&(t.style.display="")},fe=e=>{var t=new Image;e.dataTransfer&&e.dataTransfer.setDragImage(t,0,0)},Ie=e=>{var t=te["customColumnList"],o=oe.value,e=e.currentTarget,l=re.value;if(c){if(c!==e){var a=c.getAttribute("drag-pos"),s=e.getAttribute("colid");const n=ee.getColumnById(s);if(!n)return;var s=_xeUtils.default.findIndexOf(t,e=>e.id===n.id),i=c.getAttribute("colid");const r=ee.getColumnById(i);if(!r)return;t.splice(s,1);i=_xeUtils.default.findIndexOf(t,e=>e.id===r.id);t.splice(i+("bottom"===a?1:0),0,n)}c.draggable=!1,c.removeAttribute("drag-pos"),(0,_dom.removeClass)(c,"active--drag-target")}ce.value=null,e.draggable=!1,e.removeAttribute("drag-pos"),l&&(l.style.display=""),(0,_dom.removeClass)(e,"active--drag-target"),(0,_dom.removeClass)(e,"active--drag-origin"),o.immediate&&(_xeUtils.default.eachTree(t,(e,t,o,l,a)=>{a||(e.renderSortNumber=t+1)}),ee.handleCustom(),ee.saveCustomStore("update:sort"))},Te=e=>{var t=e.currentTarget,o=(c!==t&&(0,_dom.removeClass)(c,"active--drag-target"),t.getAttribute("colid")),o=ee.getColumnById(o);o&&1===o.level&&(e.preventDefault(),o=e.clientY-t.getBoundingClientRect().y<t.clientHeight/2?"top":"bottom",(0,_dom.addClass)(t,"active--drag-target"),t.setAttribute("drag-pos",o),c=t),a(e)},a=e=>{var t,o=re.value,l=ne.value;l&&o&&(t=(l=l.parentNode).getBoundingClientRect(),o.style.display="block",o.style.top=Math.min(l.clientHeight-l.scrollTop-o.clientHeight,e.clientY-t.y)+"px",o.style.left=Math.min(l.clientWidth-l.scrollLeft-o.clientWidth-16,e.clientX-t.x)+"px")};return"development"===process.env.NODE_ENV&&(0,_vue.nextTick)(()=>{var e=oe.value["mode"];G||(0,_log.errLog)("vxe.error.reqComp",["vxe-modal"]),P||"drawer"!==e||(0,_log.errLog)("vxe.error.reqComp",["vxe-drawer"]),Y||(0,_log.errLog)("vxe.error.reqComp",["vxe-button"]),Z||(0,_log.errLog)("vxe.error.reqComp",["vxe-number-input"]),J||(0,_log.errLog)("vxe.error.reqComp",["vxe-tooltip"]),Q||(0,_log.errLog)("vxe.error.reqComp",["vxe-radio-group"])}),()=>{var e=oe.value;if(["modal","drawer","popup"].includes(""+e.mode)){const u=j["customStore"];e=te["customColumnList"];const m=oe.value,{modalOptions:R,drawerOptions:K,allowVisible:d,allowSort:v,allowFixed:x,allowResizable:p,checkMethod:_,visibleMethod:h}=m,b=le.value["maxFixedSize"],{minWidth:g,maxWidth:C}=se.value;var t=m["mode"],o=Object.assign({},R),l=Object.assign({},K);const f=ae.value;var a=m.slots||{};const I=a.header,T=a.top,E=a.bottom,V=a.default,N=a.footer,k=[],O=u.isAll,y=u.isIndeterminate,B=ce.value,A={$table:ee,$grid:ee.xegrid,columns:e,isAllChecked:O,isAllIndeterminate:y};_xeUtils.default.eachTree(e,(o,l,e,t,a)=>{if(!h||h({column:o})){let e=0,t=0;p&&(l={$table:ee,column:o,columnIndex:l,$columnIndex:l,$rowIndex:-1},g&&(e=_xeUtils.default.toNumber(_xeUtils.default.isFunction(g)?g(l):g)),C)&&(t=_xeUtils.default.toNumber(_xeUtils.default.isFunction(C)?C(l):C));var l=o.renderVisible,s=o.halfVisible,i=(0,_utils.formatText)(o.getTitle(),1),n=o.children&&o.children.length;const c=!!_&&!_({column:o});var r=!l;k.push((0,_vue.h)("tr",{key:o.id,colid:o.id,class:["vxe-table-custom-popup--row level--"+o.level,{"is--group":n}],onDragstart:fe,onDragend:Ie,onDragover:Te},[d?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--visible"},[(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":l,"is--indeterminate":s,"is--disabled":c}],title:getI18n("vxe.custom.setting.colVisible"),onClick:()=>{c||_e(o)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",s?getIcon().TABLE_CHECKBOX_INDETERMINATE:l?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})])]):(0,_vue.createCommentVNode)(),v?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--sort"},[1===o.level?(0,_vue.h)("span",Object.assign({class:["vxe-table-custom-popup--column-sort-btn",{"is--disabled":c||r}],title:getI18n("vxe.custom.setting.sortHelpTip")},c||r?{}:{onMousedown:ge,onMouseup:Ce}),[(0,_vue.h)("i",{class:getIcon().TABLE_CUSTOM_SORT})]):(0,_vue.h)("span","-")]):(0,_vue.createCommentVNode)(),(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--name"},["html"===o.type?(0,_vue.h)("div",{key:"1",class:"vxe-table-custom-popup--name",innerHTML:i}):(0,_vue.h)("div",{key:"0",class:"vxe-table-custom-popup--name",title:i},i)]),p?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--resizable"},[o.children&&o.children.length?(0,_vue.h)("span","-"):Z?(0,_vue.h)(Z,{type:"integer",disabled:c||r,modelValue:o.renderResizeWidth,min:e||void 0,max:t||void 0,"onUpdate:modelValue"(e){o.renderResizeWidth=Math.max(0,Number(e))}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)(),x?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--fixed"},[a?(0,_vue.h)("span","-"):Q?(0,_vue.h)(Q,{modelValue:o.renderFixed||"",type:"button",size:"mini",disabled:c||r,options:[{label:getI18n("vxe.custom.setting.fixedLeft"),value:"left",disabled:c||r||f},{label:getI18n("vxe.custom.setting.fixedUnset"),value:"",disabled:c||r},{label:getI18n("vxe.custom.setting.fixedRight"),value:"right",disabled:c||r||f}],"onUpdate:modelValue"(e){o.renderFixed=e}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}});a={default:()=>V?ee.callSlot(V,A):(0,_vue.h)("div",{ref:ne,class:"vxe-table-custom-popup--body"},[T?(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-top"},ee.callSlot(T,A)):renderEmptyElement(ee),(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-wrapper"},[(0,_vue.h)("table",{},[(0,_vue.h)("colgroup",{},[d?(0,_vue.h)("col",{class:"vxe-table-custom-popup--table-col-seq"}):(0,_vue.createCommentVNode)(),v?(0,_vue.h)("col",{class:"vxe-table-custom-popup--table-col-sort"}):(0,_vue.createCommentVNode)(),(0,_vue.h)("col",{class:"vxe-table-custom-popup--table-col-title"}),p?(0,_vue.h)("col",{class:"vxe-table-custom-popup--table-col-width"}):(0,_vue.createCommentVNode)(),x?(0,_vue.h)("col",{class:"vxe-table-custom-popup--table-col-fixed"}):(0,_vue.createCommentVNode)()]),(0,_vue.h)("thead",{},[(0,_vue.h)("tr",{},[d?(0,_vue.h)("th",{},[(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":O,"is--indeterminate":y}],title:getI18n("vxe.table.allTitle"),onClick:be},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",y?getIcon().TABLE_CHECKBOX_INDETERMINATE:O?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.toolbar.customAll"))])]):(0,_vue.createCommentVNode)(),v?(0,_vue.h)("th",{},[(0,_vue.h)("span",{class:"vxe-table-custom-popup--table-sort-help-title"},getI18n("vxe.custom.setting.colSort")),J?(0,_vue.h)(J,{enterable:!0,content:getI18n("vxe.custom.setting.sortHelpTip"),popupClassName:"vxe-table--ignore-clear"},{default:()=>(0,_vue.h)("i",{class:"vxe-table-custom-popup--table-sort-help-icon vxe-icon-question-circle-fill"})}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)(),(0,_vue.h)("th",{},getI18n("vxe.custom.setting.colTitle")),p?(0,_vue.h)("th",{},getI18n("vxe.custom.setting.colResizable")):(0,_vue.createCommentVNode)(),x?(0,_vue.h)("th",{},getI18n("vxe.custom.setting."+(b?"colFixedMax":"colFixed"),[b])):(0,_vue.createCommentVNode)()])]),(0,_vue.h)(_vue.TransitionGroup,{class:"vxe-table-custom--panel-list",tag:"tbody",name:"vxe-table-custom--list"},{default:()=>k})])]),E?(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-bottom"},ee.callSlot(E,A)):renderEmptyElement(ee),(0,_vue.h)("div",{ref:re,class:"vxe-table-custom-popup--drag-hint"},getI18n("vxe.custom.cstmDragTarget",[B?B.getTitle():""]))]),footer:()=>N?ee.callSlot(N,A):(0,_vue.h)("div",{class:"vxe-table-custom-popup--footer"},[Y?(0,_vue.h)(Y,{content:m.resetButtonText||getI18n("vxe.custom.cstmRestore"),onClick:pe}):(0,_vue.createCommentVNode)(),Y?(0,_vue.h)(Y,{content:m.resetButtonText||getI18n("vxe.custom.cstmCancel"),onClick:xe}):(0,_vue.createCommentVNode)(),Y?(0,_vue.h)(Y,{status:"primary",content:m.confirmButtonText||getI18n("vxe.custom.cstmConfirm"),onClick:de}):(0,_vue.createCommentVNode)()])};return I&&(a.header=()=>ee.callSlot(I,A)),"drawer"===t?P?(0,_vue.h)(P,{key:"drawer",className:["vxe-table-custom-drawer-wrapper","vxe-table--ignore-clear",l.className||""].join(" "),modelValue:u.visible,title:l.title||getI18n("vxe.custom.cstmTitle"),width:l.width||Math.min(880,document.documentElement.clientWidth),position:l.position,escClosable:!!l.escClosable,destroyOnClose:!0,showFooter:!0,"onUpdate:modelValue"(e){u.visible=e}},a):(0,_vue.createCommentVNode)():G?(0,_vue.h)(G,{key:"modal",className:["vxe-table-custom-modal-wrapper","vxe-table--ignore-clear",o.className||""].join(" "),modelValue:u.visible,title:o.title||getI18n("vxe.custom.cstmTitle"),width:o.width||Math.min(880,document.documentElement.clientWidth),minWidth:o.minWidth||700,height:o.height||Math.min(680,document.documentElement.clientHeight),minHeight:o.minHeight||400,showZoom:o.showZoom,showMaximize:o.showMaximize,showMinimize:o.showMinimize,mask:o.mask,lockView:o.lockView,resize:o.resize,escClosable:!!o.escClosable,destroyOnClose:!0,showFooter:!0,"onUpdate:modelValue"(e){u.visible=e}},a):(0,_vue.createCommentVNode)()}{e=j["customStore"],t=te["customColumnList"],l=oe.value,o=e["maxHeight"];const{checkMethod:w,visibleMethod:L,allowVisible:F,allowSort:X,allowFixed:q,trigger:z,placement:U}=l,W=ae.value;var a=l.slots||{},H=a.header,M=a.top,S=a.bottom,D=a.default,a=a.footer;const $=[];var s={},i=e.isAll,n=e.isIndeterminate,r=ce.value,c=("hover"===z&&(s.onMouseenter=ue,s.onMouseleave=me),{$table:ee,$grid:ee.xegrid,columns:t,isAllChecked:i,isAllIndeterminate:n});return _xeUtils.default.eachTree(t,(e,t,o,l,a)=>{if(!L||L({column:e})){var s=e.renderVisible,i=e.halfVisible,n=e.children&&e.children.length,r=(0,_utils.formatText)(e.getTitle(),1);const u=!!w&&!w({column:e});var c=!s;$.push((0,_vue.h)("li",{key:e.id,colid:e.id,class:["vxe-table-custom--option","level--"+e.level,{"is--hidden":u||c,"is--group":n}],onDragstart:fe,onDragend:Ie,onDragover:Te},[F?(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":s,"is--indeterminate":i,"is--disabled":u}],title:getI18n("vxe.custom.setting.colVisible"),onClick:()=>{u||_e(e)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?getIcon().TABLE_CHECKBOX_INDETERMINATE:s?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]):(0,_vue.createCommentVNode)(),X&&1===e.level?(0,_vue.h)("div",{class:"vxe-table-custom--sort-option"},[(0,_vue.h)("span",Object.assign({class:["vxe-table-custom--sort-btn",{"is--disabled":u||c}],title:getI18n("vxe.custom.setting.sortHelpTip")},u||c?{}:{onMousedown:ge,onMouseup:Ce}),[(0,_vue.h)("i",{class:getIcon().TABLE_CUSTOM_SORT})])]):(0,_vue.createCommentVNode)(),"html"===e.type?(0,_vue.h)("div",{key:"1",class:"vxe-table-custom--checkbox-label",innerHTML:r}):(0,_vue.h)("div",{key:"0",class:"vxe-table-custom--checkbox-label"},r),!a&&q?(0,_vue.h)("div",{class:"vxe-table-custom--fixed-option"},[Y?(0,_vue.h)(Y,{mode:"text",icon:"left"===e.renderFixed?getIcon().TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:getIcon().TOOLBAR_TOOLS_FIXED_LEFT,status:"left"===e.renderFixed?"primary":"",disabled:u||c||W&&!e.renderFixed,title:getI18n("left"===e.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedLeft"),onClick:()=>{he(e,"left")}}):(0,_vue.createCommentVNode)(),Y?(0,_vue.h)(Y,{mode:"text",icon:"right"===e.renderFixed?getIcon().TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:getIcon().TOOLBAR_TOOLS_FIXED_RIGHT,status:"right"===e.renderFixed?"primary":"",disabled:u||c||W&&!e.renderFixed,title:getI18n("right"===e.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedRight"),onClick:()=>{he(e,"right")}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}}),(0,_vue.h)("div",{ref:ie,key:"simple",class:["vxe-table-custom-wrapper","placement--"+U,{"is--active":e.visible}],style:o&&!["left","right"].includes(U)?{maxHeight:o+"px"}:{}},e.visible?[(0,_vue.h)("div",{class:"vxe-table-custom--header"},H?ee.callSlot(H,c):[(0,_vue.h)("ul",{class:"vxe-table-custom--panel-list"},[(0,_vue.h)("li",{class:"vxe-table-custom--option"},[F?(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":i,"is--indeterminate":n}],title:getI18n("vxe.table.allTitle"),onClick:be},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",n?getIcon().TABLE_CHECKBOX_INDETERMINATE:i?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.toolbar.customAll"))]):(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.customTitle"))])])]),(0,_vue.h)("div",{ref:ne,class:"vxe-table-custom--body"},[M?(0,_vue.h)("div",{class:"vxe-table-custom--panel-top"},ee.callSlot(M,c)):renderEmptyElement(ee),D?(0,_vue.h)("div",{class:"vxe-table-custom--panel-body"},ee.callSlot(D,c)):(0,_vue.h)(_vue.TransitionGroup,Object.assign({class:"vxe-table-custom--panel-list",name:"vxe-table-custom--list",tag:"ul"},s),{default:()=>$}),S?(0,_vue.h)("div",{class:"vxe-table-custom--panel-bottom"},ee.callSlot(S,c)):renderEmptyElement(ee),(0,_vue.h)("div",{ref:re,class:"vxe-table-custom-popup--drag-hint"},getI18n("vxe.custom.cstmDragTarget",[r&&"html"!==r.type?r.getTitle():""]))]),l.showFooter?(0,_vue.h)("div",{class:"vxe-table-custom--footer"},a?ee.callSlot(a,c):[(0,_vue.h)("div",{class:"vxe-table-custom--footer-buttons"},[Y?(0,_vue.h)(Y,{mode:"text",content:l.resetButtonText||getI18n("vxe.table.customRestore"),onClick:pe}):(0,_vue.createCommentVNode)(),l.immediate?Y?(0,_vue.h)(Y,{mode:"text",content:l.closeButtonText||getI18n("vxe.table.customClose"),onClick:ve}):(0,_vue.createCommentVNode)():Y?(0,_vue.h)(Y,{mode:"text",content:l.cancelButtonText||getI18n("vxe.table.customCancel"),onClick:xe}):(0,_vue.createCommentVNode)(),!l.immediate&&Y?(0,_vue.h)(Y,{mode:"text",status:"primary",content:l.confirmButtonText||getI18n("vxe.table.customConfirm"),onClick:de}):(0,_vue.createCommentVNode)()])]):null]:[]);return}}}});
|
|
@@ -83,7 +83,7 @@ hooks.add('tableValidatorModule', {
|
|
|
83
83
|
const validOpts = computeValidOpts.value;
|
|
84
84
|
if (validOpts.msgMode === 'single') {
|
|
85
85
|
const keys = Object.keys(validErrMaps);
|
|
86
|
-
const resMaps =
|
|
86
|
+
const resMaps = {};
|
|
87
87
|
if (keys.length) {
|
|
88
88
|
const firstKey = keys[0];
|
|
89
89
|
resMaps[firstKey] = validErrMaps[firstKey];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util=require("../../src/util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getConfig,validators,hooks}=_ui.VxeUI;class Rule{constructor(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}const tableValidatorMethodKeys=["fullValidate","validate","clearValidate"];hooks.add("tableValidatorModule",{setupTable(v){const{props:m,reactData:f,internalData:h}=v,g=v.getRefMaps()["refValidTooltip"],{computeValidOpts:_,computeTreeOpts:x,computeEditOpts:u}=v.getComputeMaps();let w={},E={},R;const l=(e,u,i)=>{const d={},{editRules:t,treeConfig:l}=m,{afterFullData:c,visibleColumn:g}=h;var r=x.value,r=r.children||r.childrenField;const p=_.value;let a;!0===e?a=c:e&&(_xeUtils.default.isFunction(e)?u=e:a=_xeUtils.default.isArray(e)?e:[e]),a=a||(v.getInsertRecords?v.getInsertRecords().concat(v.getUpdateRecords()):[]);const o=[],s=(h._lastCallTime=Date.now(),R=!1,w.clearValidate(),{});if(t){const n=v.getColumns();e=r=>{if(i||!R){const e=[];n.forEach(l=>{!i&&R||!_xeUtils.default.has(t,l.property)||e.push(E.validCellRules("all",r,l).catch(({rule:e,rules:t})=>{t={rule:e,rules:t,rowIndex:v.getRowIndex(r),row:r,columnIndex:v.getColumnIndex(l),column:l,field:l.property,$table:v};if(d[l.property]||(d[l.property]=[]),s[(0,_util.getRowid)(v,r)+":"+l.id]={column:l,row:r,rule:e,content:e.content},d[l.property].push(t),!i)return R=!0,Promise.reject(t)}))}),o.push(Promise.all(e))}};return l?_xeUtils.default.eachTree(a,e,{children:r}):a.forEach(e),Promise.all(o).then(()=>{const e=Object.keys(d);var t,l,r;return f.validErrorMaps=(t=s,"single"===_.value.msgMode?(l=
|
|
1
|
+
"use strict";var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util=require("../../src/util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getConfig,validators,hooks}=_ui.VxeUI;class Rule{constructor(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}const tableValidatorMethodKeys=["fullValidate","validate","clearValidate"];hooks.add("tableValidatorModule",{setupTable(v){const{props:m,reactData:f,internalData:h}=v,g=v.getRefMaps()["refValidTooltip"],{computeValidOpts:_,computeTreeOpts:x,computeEditOpts:u}=v.getComputeMaps();let w={},E={},R;const l=(e,u,i)=>{const d={},{editRules:t,treeConfig:l}=m,{afterFullData:c,visibleColumn:g}=h;var r=x.value,r=r.children||r.childrenField;const p=_.value;let a;!0===e?a=c:e&&(_xeUtils.default.isFunction(e)?u=e:a=_xeUtils.default.isArray(e)?e:[e]),a=a||(v.getInsertRecords?v.getInsertRecords().concat(v.getUpdateRecords()):[]);const o=[],s=(h._lastCallTime=Date.now(),R=!1,w.clearValidate(),{});if(t){const n=v.getColumns();e=r=>{if(i||!R){const e=[];n.forEach(l=>{!i&&R||!_xeUtils.default.has(t,l.property)||e.push(E.validCellRules("all",r,l).catch(({rule:e,rules:t})=>{t={rule:e,rules:t,rowIndex:v.getRowIndex(r),row:r,columnIndex:v.getColumnIndex(l),column:l,field:l.property,$table:v};if(d[l.property]||(d[l.property]=[]),s[(0,_util.getRowid)(v,r)+":"+l.id]={column:l,row:r,rule:e,content:e.content},d[l.property].push(t),!i)return R=!0,Promise.reject(t)}))}),o.push(Promise.all(e))}};return l?_xeUtils.default.eachTree(a,e,{children:r}):a.forEach(e),Promise.all(o).then(()=>{const e=Object.keys(d);var t,l,r;return f.validErrorMaps=(t=s,"single"===_.value.msgMode?(l={},(r=Object.keys(t)).length&&(l[r=r[0]]=t[r]),l):t),(0,_vue.nextTick)().then(()=>{if(e.length)return Promise.reject(d[e[0]][0]);u&&u()})}).catch(n=>new Promise((e,t)=>{const l=()=>{(0,_vue.nextTick)(()=>{u?(u(d),e()):("obsolete"===getConfig().validToReject?t:e)(d)})};var r,i,a,o,s=()=>{var t;n.cell=v.getCellElement(n.row,n.column),(0,_dom.scrollToView)(n.cell),t=n,new Promise(e=>{!1===_.value.autoPos?(v.dispatchEvent("valid-error",t,null),e()):v.handleEdit(t,{type:"valid-error",trigger:"call"}).then(()=>{e(E.showValidTooltip(t))})}).then(l)};!1===p.autoPos?l():(o=n.row,r=n.column,a=c.indexOf(o),i=g.indexOf(r),a=0<a?c[a-1]:o,o=0<i?g[i-1]:r,v.scrollToRow(a,o).then(s))}))}return f.validErrorMaps={},(0,_vue.nextTick)().then(()=>{u&&u()})},V=(w={fullValidate(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["fullValidate(rows, callback)","fullValidate(rows)"]),l(e,t,!0)},validate(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["validate(rows, callback)","validate(rows)"]),l(e,t)},clearValidate(e,t){var l=f["validErrorMaps"],r=g.value,i=_.value,e=_xeUtils.default.isArray(e)?e:e?[e]:[];const a=_xeUtils.default.isArray(t)?t:(t?[t]:[]).map(e=>(0,_util.handleFieldOrColumn)(v,e));let o={};if(r&&r.reactData.visible&&r.close(),"single"===i.msgMode)f.validErrorMaps={};else{if(e.length&&a.length)o=Object.assign({},l),e.forEach(t=>{a.forEach(e=>{e=(0,_util.getRowid)(v,t)+":"+e.id;o[e]&&delete o[e]})});else if(e.length){const s=e.map(e=>""+(0,_util.getRowid)(v,e));_xeUtils.default.each(l,(e,t)=>{-1<s.indexOf(t.split(":")[0])&&(o[t]=e)})}else if(a.length){const n=a.map(e=>""+e.id);_xeUtils.default.each(l,(e,t)=>{-1<n.indexOf(t.split(":")[1])&&(o[t]=e)})}f.validErrorMaps=o}return(0,_vue.nextTick)()}},(e,t)=>{var{type:e,min:l,max:r,pattern:i}=e,e="number"===e,a=e?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||!_xeUtils.default.eqNull(l)&&a<_xeUtils.default.toNumber(l)||!_xeUtils.default.eqNull(r)&&a>_xeUtils.default.toNumber(r)||!(!i||(_xeUtils.default.isRegExp(i)?i:new RegExp(i)).test(t))});return E={validCellRules(e,n,u,t){var l=m["editRules"],r=u["field"];const d=[],c=[];if(r&&l){const g=_xeUtils.default.get(l,r);if(g){const p=_xeUtils.default.isUndefined(t)?_xeUtils.default.get(n,r):t;g.forEach(t=>{const{type:l,trigger:r,required:i,validator:a}=t;if("all"===e||!r||e===r)if(a){var o={cellValue:p,rule:t,rules:g,row:n,rowIndex:v.getRowIndex(n),column:u,columnIndex:v.getColumnIndex(u),field:u.field,$table:v,$grid:v.xegrid};let e;_xeUtils.default.isString(a)?(s=validators.get(a))?(s=s.tableCellValidatorMethod||s.cellValidatorMethod)?e=s(o):"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.notValidators",[a]):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notValidators",[a]):e=a(o),e&&(_xeUtils.default.isError(e)?(R=!0,d.push(new Rule({type:"custom",trigger:r,content:e.message,rule:new Rule(t)}))):e.catch&&c.push(e.catch(e=>{R=!0,d.push(new Rule({type:"custom",trigger:r,content:e&&e.message?e.message:t.content||t.message,rule:new Rule(t)}))})))}else{var s="array"===l,o=_xeUtils.default.isArray(p);let e=!0;e=s||o?!o||!p.length:_xeUtils.default.isString(p)?(0,_utils.eqEmptyValue)(p.trim()):(0,_utils.eqEmptyValue)(p),(i?e||V(t,p):!e&&V(t,p))&&(R=!0,d.push(new Rule(t)))}})}}return Promise.all(c).then(()=>{var e;if(d.length)return e={rules:d,rule:d[0]},Promise.reject(e)})},hasCellRules(t,e,l){var r=m["editRules"],l=l["field"];return!(!l||!r)&&(r=_xeUtils.default.get(r,l))&&!!_xeUtils.default.find(r,e=>"all"===t||!e.trigger||t===e.trigger)},triggerValidate(t){var{editConfig:e,editRules:l}=m,r=f["editStore"],r=r["actived"];const i=u.value;var a=_.value;if(l&&"single"===a.msgMode&&(f.validErrorMaps={}),e&&l&&r.row){const{row:o,column:s,cell:n}=r.args;if(E.hasCellRules(t,o,s))return E.validCellRules(t,o,s).then(()=>{"row"===i.mode&&w.clearValidate(o,s)}).catch(({rule:e})=>{return e.trigger&&t!==e.trigger?Promise.resolve():(e={rule:e,row:o,column:s,cell:n},E.showValidTooltip(e),Promise.reject(e))})}return Promise.resolve()},showValidTooltip(e){var t=m["height"],{tableData:l,validStore:r,validErrorMaps:i}=f,{rule:a,row:o,column:s,cell:n}=e,u=_.value,d=g.value,c=a.content;return r.visible=!0,"single"===u.msgMode?f.validErrorMaps={[(0,_util.getRowid)(v,o)+":"+s.id]:{column:s,row:o,rule:a,content:c}}:f.validErrorMaps=Object.assign({},i,{[(0,_util.getRowid)(v,o)+":"+s.id]:{column:s,row:o,rule:a,content:c}}),v.dispatchEvent("valid-error",e,null),d&&("tooltip"===u.message||"default"===u.message&&!t&&l.length<2)?d.open(n,c):(0,_vue.nextTick)()}},Object.assign(Object.assign({},w),E)},setupGrid(e){return e.extendTableMethods(tableValidatorMethodKeys)}});
|
package/lib/table/src/body.js
CHANGED
|
@@ -391,13 +391,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
391
391
|
const validSlot = slots ? slots.valid : null;
|
|
392
392
|
const validParams = Object.assign(Object.assign({}, params), errorValidItem);
|
|
393
393
|
tdVNs.push((0, _vue.h)('div', {
|
|
394
|
-
class: ['vxe-cell--valid-error-
|
|
394
|
+
class: ['vxe-cell--valid-error-tip', (0, _dom.getPropClass)(validOpts.className, validParams)],
|
|
395
395
|
style: errRule && errRule.maxWidth ? {
|
|
396
396
|
width: `${errRule.maxWidth}px`
|
|
397
397
|
} : null
|
|
398
|
-
},
|
|
398
|
+
}, [(0, _vue.h)('div', {
|
|
399
|
+
class: `vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-${validOpts.theme || 'normal'}`
|
|
400
|
+
}, [validSlot ? $xeTable.callSlot(validSlot, validParams) : [(0, _vue.h)('span', {
|
|
399
401
|
class: 'vxe-cell--valid-error-msg'
|
|
400
|
-
}, errorValidItem.content)]));
|
|
402
|
+
}, errorValidItem.content)]])]));
|
|
401
403
|
}
|
|
402
404
|
}
|
|
403
405
|
let cellHeight = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,renderer}=_ui.VxeUI,renderType="body",lineOffsetSizes={mini:3,small:2,medium:1};var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(y){const ue=(0,_vue.inject)("$xeTable",{}),l=(0,_vue.inject)("xesize",null),{xID:_,props:ce,context:b,reactData:pe,internalData:ve}=ue,{refTableBody:m,refTableHeader:v,refTableFooter:g,refTableLeftBody:f,refTableRightBody:w,refScrollXHandleElem:h,refScrollYHandleElem:x}=ue.getRefMaps(),{computeEditOpts:ge,computeMouseOpts:U,computeSYOpts:he,computeEmptyOpts:q,computeKeyboardOpts:j,computeTooltipOpts:we,computeRadioOpts:e,computeExpandOpts:W,computeTreeOpts:c,computeCheckboxOpts:xe,computeCellOpts:ye,computeValidOpts:_e,computeRowOpts:me,computeColumnOpts:be}=ue.getComputeMaps(),T=(0,_vue.ref)(),S=(0,_vue.ref)(),C=(0,_vue.ref)(),O=(0,_vue.ref)(),R=(0,_vue.ref)(),D=(0,_vue.ref)(),E=(0,_vue.ref)(),p=()=>{if(l){var e=l.value;if(e)return lineOffsetSizes[e]||0}return 0},fe=()=>{var e=ce["delayHover"],{lastScrollTime:l,_isResize:t}=pe;return!!(t||l&&Date.now()<l+e)},$=(e,l)=>{let t=1;if(e){var o=c.value,a=e[o.children||o.childrenField];if(a&&ue.isTreeExpandByRow(e))for(let e=0;e<a.length;e++)t+=$(a[e],l)}return t},Te=e=>{var{row:l,column:t}=e,o=ve["afterFullData"],a=ce["treeConfig"],r=c.value,{slots:t,treeNode:s}=t,n=ve["fullAllDataRowIdData"],n=n[(0,_util.getRowid)(ue,l)];let i=0,d=0,u=[];return n&&(i=n.level,d=n._index,u=n.items),t&&t.line?ue.callSlot(t.line,e):(n=ue.eqRow(o[0],l),a&&s&&(r.showLine||r.line)?[(0,_vue.h)("div",{class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${n?1:((e,l,t)=>{let o=1;return t&&(o=$(l[t-1],e)),pe.rowHeight*o-(t?1:12-p())})(e,u,d)}px`,left:i*r.indent+(i?2-p():0)+16+"px"}})])]:[])},K=(e,l,t,o,a,r,s,n,i,d,U,q)=>{var j=ve["fullAllDataRowIdData"],{columnKey:B,height:u,showOverflow:N,cellClassName:A,cellStyle:c,align:F,spanMethod:Y,mouseConfig:V,editConfig:W,editRules:p,tooltipConfig:K}=ce,{tableData:P,overflowX:v,currentColumn:X,scrollYLoad:z,mergeList:g,editStore:h,isAllOverflow:G,validErrorMaps:x}=pe,J=ve["afterFullData"],m=ye.value,f=_e.value,Q=xe.value,w=ge.value,y=we.value,Z=me.value,_=he.value,ee=be.value,{type:le,cellRender:te,editRender:b,align:T,showOverflow:S,className:oe,treeNode:ae,slots:re}=i,m=m["verticalAlign"],h=h["actived"],_=_["rHeight"],C=Z["height"],O=i.id,R=b||te,R=R?renderer.get(R.name):null,se=R?R.tableCellClassName||R.cellClassName:null,D=R?R.tableCellStyle||R.cellStyle:"";const E=y.showAll;var y=ue.getColumnIndex(i),ne=ue.getVTColumnIndex(i),ie=(0,_utils.isEnableConf)(b);let $=t?i.fixed!==t:i.fixed&&v;v=_xeUtils.default.isUndefined(S)||_xeUtils.default.isNull(S)?N:S,S="ellipsis"===v;const L="title"===v,M=!0===v||"tooltip"===v;v=L||M||S;let de;var I={},j=j[l],T=T||(R?R.tableCellAlign:"")||F,R=x[l+":"+O],F=p&&f.showMessage&&("default"===f.message?u||1<P.length:"inline"===f.message),x={colid:O};const H={$table:ue,$grid:ue.xegrid,isEdit:!1,seq:e,rowid:l,row:a,rowIndex:r,$rowIndex:s,_rowIndex:n,column:i,columnIndex:y,$columnIndex:d,_columnIndex:ne,fixed:t,type:renderType,isHidden:$,level:o,visibleData:J,data:P,items:q};if((L||M||E||K)&&(I.onMouseenter=e=>{fe()||(L?(0,_dom.updateCellTitle)(e.currentTarget,i):(M||E)&&ue.triggerBodyTooltipEvent(e,H),ue.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},H),e))}),(M||E||K)&&(I.onMouseleave=e=>{fe()||((M||E)&&ue.handleTargetLeaveEvent(e),ue.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},H),e))}),(Q.range||V)&&(I.onMousedown=e=>{ue.triggerCellMousedownEvent(e,H)}),I.onClick=e=>{ue.triggerCellClickEvent(e,H)},I.onDblclick=e=>{ue.triggerCellDblclickEvent(e,H)},g.length){p=(0,_util.mergeBodyMethod)(g,n,ne);if(p){var{rowspan:u,colspan:e}=p;if(!u||!e)return null;1<u&&(x.rowspan=u),1<e&&(x.colspan=e)}}else if(Y){var{rowspan:l=1,colspan:r=1}=Y(H)||{};if(!l||!r)return null;1<l&&(x.rowspan=l),1<r&&(x.colspan=r)}!($=$&&g&&(1<x.colspan||1<x.rowspan)?!1:$)&&W&&(b||te)&&(w.showStatus||w.showUpdateStatus)&&(de=ue.isUpdateByRow(a,i.field));s=[];$&&N&&G?s.push((0,_vue.h)("div",{class:["vxe-cell",{"c--title":L,"c--tooltip":M,"c--ellipsis":S}],style:{maxHeight:v&&(_||C)?`${_||C}px`:""}})):(s.push(...Te(H),(0,_vue.h)("div",{class:["vxe-cell",{"c--title":L,"c--tooltip":M,"c--ellipsis":S}],style:{maxHeight:v&&(_||C)?`${_||C}px`:""},title:L?ue.getCellLabel(a,i):null},i.renderCell(H))),F&&R&&(y=R.rule,t=re?re.valid:null,o=Object.assign(Object.assign({},H),R),s.push((0,_vue.h)("div",{class:["vxe-cell--valid-error-hint",(0,_dom.getPropClass)(f.className,o)],style:y&&y.maxWidth?{width:y.maxWidth+"px"}:null},t?ue.callSlot(t,o):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},R.content)]))));let k="";return v&&(_||C)?k=`${_||C}px`:z&&!v&&(k=`${j.height||24}px`),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-body--column",O,{["col--"+T]:T,["col--vertical-"+m]:m,["col--"+le]:le,"col--last":d===U.length-1,"col--tree-node":ae,"col--edit":ie,"col--ellipsis":v,"fixed--hidden":$,"col--dirty":de,"col--active":W&&ie&&h.row===a&&(h.column===i||"row"===w.mode),"col--valid-error":!!R,"col--current":X===i},(0,_dom.getPropClass)(se,H),(0,_dom.getPropClass)(oe,H),(0,_dom.getPropClass)(A,H)],key:B||ee.useKey||Z.useKey?O:d},x),{style:Object.assign({height:k},_xeUtils.default.isFunction(D)?D(H):D,_xeUtils.default.isFunction(c)?c(H):c)}),I),s)},V=(x,m,f)=>{const{stripe:w,rowKey:y,highlightHoverRow:_,rowClassName:b,rowStyle:T,showOverflow:S,editConfig:C,treeConfig:O}=ce,{hasFixedColumn:R,treeExpandedMaps:D,scrollYLoad:E,rowExpandedMaps:$,expandColumn:L,selectRadioRow:M,pendingRowMaps:I,pendingRowList:H}=pe,k=ve["fullAllDataRowIdData"],U=xe.value,q=e.value,j=c.value,B=ge.value,N=me.value,A=j["transform"],F=j.children||j.childrenField,Y=[];return m.forEach((t,o)=>{var e={};let a;a=ue.getRowIndex(t),(N.isHover||_)&&(e.onMouseenter=e=>{fe()||ue.triggerHoverEvent(e,{row:t,rowIndex:a})},e.onMouseleave=()=>{fe()||ue.clearHoverRow()}),N.drag&&(e.onDragstart=ue.handleRowDragDragstartEvent,e.onDragend=ue.handleRowDragDragendEvent,e.onDragover=ue.handleRowDragDragoverEvent);const r=(0,_util.getRowid)(ue,t);var l=k[r];let s=0,n=-1,i=0;l&&(s=l.level,n=l.seq,i=l._index);var d,u,c,l={$table:ue,seq:n,rowid:r,fixed:x,type:renderType,level:s,row:t,rowIndex:a,$rowIndex:o,_rowIndex:i},p=L&&!!$[r];let v=!1,g=[],h=!1;C&&(h=ue.isInsertByRow(t)),!O||E||A||(g=t[F],v=g&&0<g.length&&!!D[r]),Y.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--row",O?"row--level-"+s:"",{"row--stripe":w&&(ue.getVTRowIndex(t)+1)%2==0,"is--new":h,"is--expand-row":p,"is--expand-tree":v,"row--new":h&&(B.showStatus||B.showInsertStatus),"row--radio":q.highlight&&ue.eqRow(M,t),"row--checked":U.highlight&&ue.isCheckedByCheckboxRow(t),"row--pending":H.length&&!!I[r]},(0,_dom.getPropClass)(b,l)],rowid:r,style:T?_xeUtils.default.isFunction(T)?T(l):T:null,key:y||N.useKey||N.drag||O?r:o},e),f.map((e,l)=>K(n,r,x,s,t,a,o,i,e,l,f,m)))),p&&({height:l,padding:p}=W.value,d={},u=(l&&(d.height=l+"px"),O&&(d.paddingLeft=s*j.indent+30+"px"),L)["showOverflow"],u=_xeUtils.default.isUndefined(u)||_xeUtils.default.isNull(u)?S:u,c={$table:ue,seq:n,column:L,fixed:x,type:renderType,level:s,row:t,rowIndex:a,$rowIndex:o,_rowIndex:i},Y.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--expanded-row",{"is--padding":p}],key:"expand_"+r,style:T?_xeUtils.default.isFunction(T)?T(c):T:null},e),[(0,_vue.h)("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":x&&!R,"col--ellipsis":u},colspan:f.length},[(0,_vue.h)("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":l},style:d},[L.renderData(c)])])]))),v&&Y.push(...V(x,g,f))}),Y},B=e=>{var l=y["fixedType"],{lastScrollTop:t,lastScrollLeft:o}=ve,a=v.value,r=m.value,s=g.value,n=f.value,i=w.value,d=T.value,a=a?a.$el:null,s=s?s.$el:null,r=r.$el,n=n?n.$el:null,i=i?i.$el:null,d=d.scrollTop,u=r.scrollLeft,o=u!==o,t=d!==t,c=h.value,p=x.value;p?p.scrollTop=d:t&&(ve.lastScrollTop=d,ve.lastScrollLeft=u,n&&"left"===l?((0,_dom.setScrollTop)(r,d),(0,_dom.setScrollTop)(i,d)):i&&"right"===l?((0,_dom.setScrollTop)(r,d),(0,_dom.setScrollTop)(n,d)):((0,_dom.setScrollTop)(n,d),(0,_dom.setScrollTop)(i,d)),ue.handleScrollEvent(e,t,o,{type:renderType,fixed:l,scrollTop:d,scrollLeft:u})),c?c.scrollLeft=u:o&&(ve.lastScrollTop=d,ve.lastScrollLeft=u,(0,_dom.setScrollLeft)(a,u),(0,_dom.setScrollLeft)(s,u),ue.handleScrollEvent(e,t,o,{type:renderType,fixed:l,scrollTop:d,scrollLeft:u}))};let L,M=0,I=0,H=0,k=!1;const N=(a,r,e,s,n)=>{var l=ve["elemStore"],{scrollXLoad:t,scrollYLoad:o}=pe,i=m.value,d=f.value,u=w.value;const c=d?d.$el:null,p=u?u.$el:null,v=i.$el;d=l["main-body-ySpace"],u=d?d.value:null,i=l["main-body-xSpace"],d=i?i.value:null;const g=(o&&u?u:v).clientHeight,h=(t&&d?d:v).clientWidth;l=k===r?Math.max(0,M-H):0;k=r,M=Math.abs(r?e-l:e+l),I=0,H=0,clearTimeout(L);const x=()=>{var e,l,t,o;H<M&&(e=y["fixedType"],{scrollTop:o,clientHeight:l,scrollHeight:t}=(I=Math.max(5,Math.floor(1.5*I)),(H+=I)>M&&(I-=H-M),v),o=o+I*(r?-1:1),v.scrollTop=o,c&&(c.scrollTop=o),p&&(p.scrollTop=o),(r?o<t-l:0<=o)&&(L=setTimeout(x,10)),ue.dispatchEvent("scroll",{type:renderType,fixed:e,scrollTop:v.scrollTop,scrollLeft:v.scrollLeft,scrollHeight:v.scrollHeight,scrollWidth:v.scrollWidth,bodyHeight:g,bodyWidth:h,isX:s,isY:n},a))};x()},A=e=>{var{deltaY:l,deltaX:t}=e,o=ce["highlightHoverRow"],a=pe["scrollYLoad"],{lastScrollTop:r,lastScrollLeft:s}=ve,n=me.value,i=m.value,d=T.value,i=i.$el,u=l<0;(u?d.scrollTop<=0:d.scrollTop>=d.scrollHeight-d.clientHeight)||(d=d.scrollTop+l,t=(i=i.scrollLeft+t)!==s,(s=d!==r)&&(e.preventDefault(),ve.lastScrollTop=d,ve.lastScrollLeft=i,pe.lastScrollTime=Date.now(),(n.isHover||o)&&ue.clearHoverRow(),N(e,u,l,t,s),a)&&ue.triggerScrollYEvent(e))};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=y["fixedType"],l=ve["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=T,l[e+"table"]=S,l[e+"colgroup"]=C,l[e+"list"]=O,l[e+"xSpace"]=R,l[e+"ySpace"]=D,l[e+"emptyBlock"]=E})}),(0,_vue.onBeforeUnmount)(()=>{clearTimeout(L)}),(0,_vue.onUnmounted)(()=>{var e=y["fixedType"],l=ve["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null});return()=>{let{fixedColumn:e,fixedType:l,tableColumn:t}=y;var{keyboardConfig:o,showOverflow:a,spanMethod:r,mouseConfig:s}=ce;const{tableData:n,mergeList:i,scrollYLoad:d,isAllOverflow:u,isDragRowMove:c}=pe;var p=ve["visibleColumn"],v=b["slots"],g=me.value,h=he.value,x=q.value,m=j.value,f=U.value;l&&(t=pe.expandColumn||!(d||a&&u)||i.length||r||o&&m.isMerge?p:e);let w;a=v?v.empty:null;return w=a?ue.callSlot(a,{$table:ue,$grid:ue.xegrid}):(o=(r=x.name?renderer.get(x.name):null)?r.renderTableEmpty||r.renderTableEmptyView||r.renderEmpty:null)?(0,_vn.getSlotVNs)(o(x,{$table:ue})):ce.emptyText||getI18n("vxe.table.emptyText"),(0,_vue.h)("div",Object.assign({ref:T,class:["vxe-table--body-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:_,onScroll:B},"wheel"===h.mode?{onWheel:A}:{}),[l?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:R,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:D,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--body",xid:_,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:C},t.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),g.drag?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-body--row-list"+(c?"":"-disabled"),tag:"tbody"},{default:()=>V(l,n,t)}):(0,_vue.h)("tbody",{ref:O},V(l,n,t))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&f.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},f.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){ue.triggerCellExtendMousedownEvent(e,{$table:ue,fixed:l,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-copy-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"})]):null,l?null:(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:E},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},w)])])}}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,renderer}=_ui.VxeUI,renderType="body",lineOffsetSizes={mini:3,small:2,medium:1};var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(y){const ue=(0,_vue.inject)("$xeTable",{}),l=(0,_vue.inject)("xesize",null),{xID:_,props:ce,context:b,reactData:pe,internalData:ve}=ue,{refTableBody:m,refTableHeader:v,refTableFooter:g,refTableLeftBody:f,refTableRightBody:w,refScrollXHandleElem:h,refScrollYHandleElem:x}=ue.getRefMaps(),{computeEditOpts:ge,computeMouseOpts:U,computeSYOpts:he,computeEmptyOpts:q,computeKeyboardOpts:j,computeTooltipOpts:we,computeRadioOpts:e,computeExpandOpts:W,computeTreeOpts:c,computeCheckboxOpts:xe,computeCellOpts:ye,computeValidOpts:_e,computeRowOpts:me,computeColumnOpts:be}=ue.getComputeMaps(),T=(0,_vue.ref)(),S=(0,_vue.ref)(),C=(0,_vue.ref)(),O=(0,_vue.ref)(),R=(0,_vue.ref)(),D=(0,_vue.ref)(),E=(0,_vue.ref)(),p=()=>{if(l){var e=l.value;if(e)return lineOffsetSizes[e]||0}return 0},fe=()=>{var e=ce["delayHover"],{lastScrollTime:l,_isResize:t}=pe;return!!(t||l&&Date.now()<l+e)},$=(e,l)=>{let t=1;if(e){var o=c.value,r=e[o.children||o.childrenField];if(r&&ue.isTreeExpandByRow(e))for(let e=0;e<r.length;e++)t+=$(r[e],l)}return t},Te=e=>{var{row:l,column:t}=e,o=ve["afterFullData"],r=ce["treeConfig"],a=c.value,{slots:t,treeNode:s}=t,n=ve["fullAllDataRowIdData"],n=n[(0,_util.getRowid)(ue,l)];let i=0,d=0,u=[];return n&&(i=n.level,d=n._index,u=n.items),t&&t.line?ue.callSlot(t.line,e):(n=ue.eqRow(o[0],l),r&&s&&(a.showLine||a.line)?[(0,_vue.h)("div",{class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${n?1:((e,l,t)=>{let o=1;return t&&(o=$(l[t-1],e)),pe.rowHeight*o-(t?1:12-p())})(e,u,d)}px`,left:i*a.indent+(i?2-p():0)+16+"px"}})])]:[])},K=(e,l,t,o,r,a,s,n,i,d,U,q)=>{var j=ve["fullAllDataRowIdData"],{columnKey:B,height:u,showOverflow:N,cellClassName:A,cellStyle:c,align:F,spanMethod:Y,mouseConfig:V,editConfig:W,editRules:p,tooltipConfig:K}=ce,{tableData:P,overflowX:v,currentColumn:X,scrollYLoad:z,mergeList:g,editStore:h,isAllOverflow:G,validErrorMaps:x}=pe,J=ve["afterFullData"],m=ye.value,f=_e.value,Q=xe.value,w=ge.value,y=we.value,Z=me.value,_=he.value,ee=be.value,{type:le,cellRender:te,editRender:b,align:T,showOverflow:S,className:oe,treeNode:re,slots:ae}=i,m=m["verticalAlign"],h=h["actived"],_=_["rHeight"],C=Z["height"],O=i.id,R=b||te,R=R?renderer.get(R.name):null,se=R?R.tableCellClassName||R.cellClassName:null,D=R?R.tableCellStyle||R.cellStyle:"";const E=y.showAll;var y=ue.getColumnIndex(i),ne=ue.getVTColumnIndex(i),ie=(0,_utils.isEnableConf)(b);let $=t?i.fixed!==t:i.fixed&&v;v=_xeUtils.default.isUndefined(S)||_xeUtils.default.isNull(S)?N:S,S="ellipsis"===v;const L="title"===v,M=!0===v||"tooltip"===v;v=L||M||S;let de;var I={},j=j[l],T=T||(R?R.tableCellAlign:"")||F,R=x[l+":"+O],F=p&&f.showMessage&&("default"===f.message?u||1<P.length:"inline"===f.message),x={colid:O};const H={$table:ue,$grid:ue.xegrid,isEdit:!1,seq:e,rowid:l,row:r,rowIndex:a,$rowIndex:s,_rowIndex:n,column:i,columnIndex:y,$columnIndex:d,_columnIndex:ne,fixed:t,type:renderType,isHidden:$,level:o,visibleData:J,data:P,items:q};if((L||M||E||K)&&(I.onMouseenter=e=>{fe()||(L?(0,_dom.updateCellTitle)(e.currentTarget,i):(M||E)&&ue.triggerBodyTooltipEvent(e,H),ue.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},H),e))}),(M||E||K)&&(I.onMouseleave=e=>{fe()||((M||E)&&ue.handleTargetLeaveEvent(e),ue.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},H),e))}),(Q.range||V)&&(I.onMousedown=e=>{ue.triggerCellMousedownEvent(e,H)}),I.onClick=e=>{ue.triggerCellClickEvent(e,H)},I.onDblclick=e=>{ue.triggerCellDblclickEvent(e,H)},g.length){p=(0,_util.mergeBodyMethod)(g,n,ne);if(p){var{rowspan:u,colspan:e}=p;if(!u||!e)return null;1<u&&(x.rowspan=u),1<e&&(x.colspan=e)}}else if(Y){var{rowspan:l=1,colspan:a=1}=Y(H)||{};if(!l||!a)return null;1<l&&(x.rowspan=l),1<a&&(x.colspan=a)}!($=$&&g&&(1<x.colspan||1<x.rowspan)?!1:$)&&W&&(b||te)&&(w.showStatus||w.showUpdateStatus)&&(de=ue.isUpdateByRow(r,i.field));s=[];$&&N&&G?s.push((0,_vue.h)("div",{class:["vxe-cell",{"c--title":L,"c--tooltip":M,"c--ellipsis":S}],style:{maxHeight:v&&(_||C)?`${_||C}px`:""}})):(s.push(...Te(H),(0,_vue.h)("div",{class:["vxe-cell",{"c--title":L,"c--tooltip":M,"c--ellipsis":S}],style:{maxHeight:v&&(_||C)?`${_||C}px`:""},title:L?ue.getCellLabel(r,i):null},i.renderCell(H))),F&&R&&(y=R.rule,t=ae?ae.valid:null,o=Object.assign(Object.assign({},H),R),s.push((0,_vue.h)("div",{class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(f.className,o)],style:y&&y.maxWidth?{width:y.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(f.theme||"normal")},[t?ue.callSlot(t,o):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))));let k="";return v&&(_||C)?k=`${_||C}px`:z&&!v&&(k=`${j.height||24}px`),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-body--column",O,{["col--"+T]:T,["col--vertical-"+m]:m,["col--"+le]:le,"col--last":d===U.length-1,"col--tree-node":re,"col--edit":ie,"col--ellipsis":v,"fixed--hidden":$,"col--dirty":de,"col--active":W&&ie&&h.row===r&&(h.column===i||"row"===w.mode),"col--valid-error":!!R,"col--current":X===i},(0,_dom.getPropClass)(se,H),(0,_dom.getPropClass)(oe,H),(0,_dom.getPropClass)(A,H)],key:B||ee.useKey||Z.useKey?O:d},x),{style:Object.assign({height:k},_xeUtils.default.isFunction(D)?D(H):D,_xeUtils.default.isFunction(c)?c(H):c)}),I),s)},V=(x,m,f)=>{const{stripe:w,rowKey:y,highlightHoverRow:_,rowClassName:b,rowStyle:T,showOverflow:S,editConfig:C,treeConfig:O}=ce,{hasFixedColumn:R,treeExpandedMaps:D,scrollYLoad:E,rowExpandedMaps:$,expandColumn:L,selectRadioRow:M,pendingRowMaps:I,pendingRowList:H}=pe,k=ve["fullAllDataRowIdData"],U=xe.value,q=e.value,j=c.value,B=ge.value,N=me.value,A=j["transform"],F=j.children||j.childrenField,Y=[];return m.forEach((t,o)=>{var e={};let r;r=ue.getRowIndex(t),(N.isHover||_)&&(e.onMouseenter=e=>{fe()||ue.triggerHoverEvent(e,{row:t,rowIndex:r})},e.onMouseleave=()=>{fe()||ue.clearHoverRow()}),N.drag&&(e.onDragstart=ue.handleRowDragDragstartEvent,e.onDragend=ue.handleRowDragDragendEvent,e.onDragover=ue.handleRowDragDragoverEvent);const a=(0,_util.getRowid)(ue,t);var l=k[a];let s=0,n=-1,i=0;l&&(s=l.level,n=l.seq,i=l._index);var d,u,c,l={$table:ue,seq:n,rowid:a,fixed:x,type:renderType,level:s,row:t,rowIndex:r,$rowIndex:o,_rowIndex:i},p=L&&!!$[a];let v=!1,g=[],h=!1;C&&(h=ue.isInsertByRow(t)),!O||E||A||(g=t[F],v=g&&0<g.length&&!!D[a]),Y.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--row",O?"row--level-"+s:"",{"row--stripe":w&&(ue.getVTRowIndex(t)+1)%2==0,"is--new":h,"is--expand-row":p,"is--expand-tree":v,"row--new":h&&(B.showStatus||B.showInsertStatus),"row--radio":q.highlight&&ue.eqRow(M,t),"row--checked":U.highlight&&ue.isCheckedByCheckboxRow(t),"row--pending":H.length&&!!I[a]},(0,_dom.getPropClass)(b,l)],rowid:a,style:T?_xeUtils.default.isFunction(T)?T(l):T:null,key:y||N.useKey||N.drag||O?a:o},e),f.map((e,l)=>K(n,a,x,s,t,r,o,i,e,l,f,m)))),p&&({height:l,padding:p}=W.value,d={},u=(l&&(d.height=l+"px"),O&&(d.paddingLeft=s*j.indent+30+"px"),L)["showOverflow"],u=_xeUtils.default.isUndefined(u)||_xeUtils.default.isNull(u)?S:u,c={$table:ue,seq:n,column:L,fixed:x,type:renderType,level:s,row:t,rowIndex:r,$rowIndex:o,_rowIndex:i},Y.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--expanded-row",{"is--padding":p}],key:"expand_"+a,style:T?_xeUtils.default.isFunction(T)?T(c):T:null},e),[(0,_vue.h)("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":x&&!R,"col--ellipsis":u},colspan:f.length},[(0,_vue.h)("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":l},style:d},[L.renderData(c)])])]))),v&&Y.push(...V(x,g,f))}),Y},B=e=>{var l=y["fixedType"],{lastScrollTop:t,lastScrollLeft:o}=ve,r=v.value,a=m.value,s=g.value,n=f.value,i=w.value,d=T.value,r=r?r.$el:null,s=s?s.$el:null,a=a.$el,n=n?n.$el:null,i=i?i.$el:null,d=d.scrollTop,u=a.scrollLeft,o=u!==o,t=d!==t,c=h.value,p=x.value;p?p.scrollTop=d:t&&(ve.lastScrollTop=d,ve.lastScrollLeft=u,n&&"left"===l?((0,_dom.setScrollTop)(a,d),(0,_dom.setScrollTop)(i,d)):i&&"right"===l?((0,_dom.setScrollTop)(a,d),(0,_dom.setScrollTop)(n,d)):((0,_dom.setScrollTop)(n,d),(0,_dom.setScrollTop)(i,d)),ue.handleScrollEvent(e,t,o,{type:renderType,fixed:l,scrollTop:d,scrollLeft:u})),c?c.scrollLeft=u:o&&(ve.lastScrollTop=d,ve.lastScrollLeft=u,(0,_dom.setScrollLeft)(r,u),(0,_dom.setScrollLeft)(s,u),ue.handleScrollEvent(e,t,o,{type:renderType,fixed:l,scrollTop:d,scrollLeft:u}))};let L,M=0,I=0,H=0,k=!1;const N=(r,a,e,s,n)=>{var l=ve["elemStore"],{scrollXLoad:t,scrollYLoad:o}=pe,i=m.value,d=f.value,u=w.value;const c=d?d.$el:null,p=u?u.$el:null,v=i.$el;d=l["main-body-ySpace"],u=d?d.value:null,i=l["main-body-xSpace"],d=i?i.value:null;const g=(o&&u?u:v).clientHeight,h=(t&&d?d:v).clientWidth;l=k===a?Math.max(0,M-H):0;k=a,M=Math.abs(a?e-l:e+l),I=0,H=0,clearTimeout(L);const x=()=>{var e,l,t,o;H<M&&(e=y["fixedType"],{scrollTop:o,clientHeight:l,scrollHeight:t}=(I=Math.max(5,Math.floor(1.5*I)),(H+=I)>M&&(I-=H-M),v),o=o+I*(a?-1:1),v.scrollTop=o,c&&(c.scrollTop=o),p&&(p.scrollTop=o),(a?o<t-l:0<=o)&&(L=setTimeout(x,10)),ue.dispatchEvent("scroll",{type:renderType,fixed:e,scrollTop:v.scrollTop,scrollLeft:v.scrollLeft,scrollHeight:v.scrollHeight,scrollWidth:v.scrollWidth,bodyHeight:g,bodyWidth:h,isX:s,isY:n},r))};x()},A=e=>{var{deltaY:l,deltaX:t}=e,o=ce["highlightHoverRow"],r=pe["scrollYLoad"],{lastScrollTop:a,lastScrollLeft:s}=ve,n=me.value,i=m.value,d=T.value,i=i.$el,u=l<0;(u?d.scrollTop<=0:d.scrollTop>=d.scrollHeight-d.clientHeight)||(d=d.scrollTop+l,t=(i=i.scrollLeft+t)!==s,(s=d!==a)&&(e.preventDefault(),ve.lastScrollTop=d,ve.lastScrollLeft=i,pe.lastScrollTime=Date.now(),(n.isHover||o)&&ue.clearHoverRow(),N(e,u,l,t,s),r)&&ue.triggerScrollYEvent(e))};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=y["fixedType"],l=ve["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=T,l[e+"table"]=S,l[e+"colgroup"]=C,l[e+"list"]=O,l[e+"xSpace"]=R,l[e+"ySpace"]=D,l[e+"emptyBlock"]=E})}),(0,_vue.onBeforeUnmount)(()=>{clearTimeout(L)}),(0,_vue.onUnmounted)(()=>{var e=y["fixedType"],l=ve["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null});return()=>{let{fixedColumn:e,fixedType:l,tableColumn:t}=y;var{keyboardConfig:o,showOverflow:r,spanMethod:a,mouseConfig:s}=ce;const{tableData:n,mergeList:i,scrollYLoad:d,isAllOverflow:u,isDragRowMove:c}=pe;var p=ve["visibleColumn"],v=b["slots"],g=me.value,h=he.value,x=q.value,m=j.value,f=U.value;l&&(t=pe.expandColumn||!(d||r&&u)||i.length||a||o&&m.isMerge?p:e);let w;r=v?v.empty:null;return w=r?ue.callSlot(r,{$table:ue,$grid:ue.xegrid}):(o=(a=x.name?renderer.get(x.name):null)?a.renderTableEmpty||a.renderTableEmptyView||a.renderEmpty:null)?(0,_vn.getSlotVNs)(o(x,{$table:ue})):ce.emptyText||getI18n("vxe.table.emptyText"),(0,_vue.h)("div",Object.assign({ref:T,class:["vxe-table--body-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:_,onScroll:B},"wheel"===h.mode?{onWheel:A}:{}),[l?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:R,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:D,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--body",xid:_,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:C},t.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),g.drag?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-body--row-list"+(c?"":"-disabled"),tag:"tbody"},{default:()=>V(l,n,t)}):(0,_vue.h)("tbody",{ref:O},V(l,n,t))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&f.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},f.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){ue.triggerCellExtendMousedownEvent(e,{$table:ue,fixed:l,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-copy-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"})]):null,l?null:(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:E},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},w)])])}}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -35,7 +35,8 @@ const {
|
|
|
35
35
|
hooks,
|
|
36
36
|
globalEvents,
|
|
37
37
|
GLOBAL_EVENT_KEYS,
|
|
38
|
-
useFns
|
|
38
|
+
useFns,
|
|
39
|
+
renderEmptyElement
|
|
39
40
|
} = _ui.VxeUI;
|
|
40
41
|
const isWebkit = _dom.browse['-webkit'] && !_dom.browse.edge;
|
|
41
42
|
const customStorageKey = 'VXE_CUSTOM_STORE';
|
|
@@ -2562,7 +2563,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2562
2563
|
$table: $xeTable,
|
|
2563
2564
|
row
|
|
2564
2565
|
})).then(childRecords => {
|
|
2565
|
-
rowRest
|
|
2566
|
+
if (rowRest) {
|
|
2567
|
+
rowRest.treeLoaded = true;
|
|
2568
|
+
}
|
|
2566
2569
|
if (treeExpandLazyLoadedMaps[rowid]) {
|
|
2567
2570
|
delete treeExpandLazyLoadedMaps[rowid];
|
|
2568
2571
|
}
|
|
@@ -2592,7 +2595,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2592
2595
|
const {
|
|
2593
2596
|
treeExpandLazyLoadedMaps
|
|
2594
2597
|
} = reactData;
|
|
2595
|
-
rowRest
|
|
2598
|
+
if (rowRest) {
|
|
2599
|
+
rowRest.treeLoaded = false;
|
|
2600
|
+
}
|
|
2596
2601
|
if (treeExpandLazyLoadedMaps[rowid]) {
|
|
2597
2602
|
delete treeExpandLazyLoadedMaps[rowid];
|
|
2598
2603
|
}
|
|
@@ -2643,10 +2648,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2643
2648
|
const {
|
|
2644
2649
|
rowExpandedMaps
|
|
2645
2650
|
} = reactData;
|
|
2646
|
-
rowRest
|
|
2651
|
+
if (rowRest) {
|
|
2652
|
+
rowRest.expandLoaded = true;
|
|
2653
|
+
}
|
|
2647
2654
|
rowExpandedMaps[rowid] = row;
|
|
2648
2655
|
}).catch(() => {
|
|
2649
|
-
rowRest
|
|
2656
|
+
if (rowRest) {
|
|
2657
|
+
rowRest.expandLoaded = false;
|
|
2658
|
+
}
|
|
2650
2659
|
}).finally(() => {
|
|
2651
2660
|
const {
|
|
2652
2661
|
rowExpandLazyLoadedMaps
|
|
@@ -3200,13 +3209,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3200
3209
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
3201
3210
|
if (!treeTempExpandedMaps[rowid]) {
|
|
3202
3211
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3212
|
+
if (rowRest) {
|
|
3213
|
+
const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
|
|
3214
|
+
// 是否使用懒加载
|
|
3215
|
+
if (isLoad) {
|
|
3216
|
+
result.push(handleAsyncTreeExpandChilds(row));
|
|
3217
|
+
} else {
|
|
3218
|
+
if (row[childrenField] && row[childrenField].length) {
|
|
3219
|
+
treeTempExpandedMaps[rowid] = row;
|
|
3220
|
+
}
|
|
3210
3221
|
}
|
|
3211
3222
|
}
|
|
3212
3223
|
}
|
|
@@ -4229,38 +4240,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
4229
4240
|
* 如果已关联工具栏,则会同步更新
|
|
4230
4241
|
*/
|
|
4231
4242
|
resetColumn(options) {
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
} = internalData;
|
|
4235
|
-
const customOpts = computeCustomOpts.value;
|
|
4236
|
-
const {
|
|
4237
|
-
checkMethod
|
|
4238
|
-
} = customOpts;
|
|
4239
|
-
const opts = Object.assign({
|
|
4240
|
-
visible: true,
|
|
4241
|
-
resizable: options === true,
|
|
4242
|
-
fixed: options === true,
|
|
4243
|
-
sort: options === true
|
|
4244
|
-
}, options);
|
|
4245
|
-
_xeUtils.default.eachTree(collectColumn, column => {
|
|
4246
|
-
if (opts.resizable) {
|
|
4247
|
-
column.resizeWidth = 0;
|
|
4248
|
-
}
|
|
4249
|
-
if (opts.fixed) {
|
|
4250
|
-
column.fixed = column.defaultFixed;
|
|
4251
|
-
}
|
|
4252
|
-
if (opts.sort) {
|
|
4253
|
-
column.renderSortNumber = column.sortNumber;
|
|
4254
|
-
}
|
|
4255
|
-
if (!checkMethod || checkMethod({
|
|
4256
|
-
column
|
|
4257
|
-
})) {
|
|
4258
|
-
column.visible = column.defaultVisible;
|
|
4259
|
-
}
|
|
4260
|
-
column.renderResizeWidth = column.renderWidth;
|
|
4261
|
-
});
|
|
4262
|
-
$xeTable.saveCustomStore('reset');
|
|
4263
|
-
return tablePrivateMethods.handleCustom();
|
|
4243
|
+
(0, _log.warnLog)('vxe.error.delFunc', ['resetColumn', 'resetCustom']);
|
|
4244
|
+
return $xeTable.resetCustom(options);
|
|
4264
4245
|
},
|
|
4265
4246
|
/**
|
|
4266
4247
|
* 刷新列信息
|
|
@@ -6357,7 +6338,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6357
6338
|
}
|
|
6358
6339
|
};
|
|
6359
6340
|
const updateRowDropTipContent = tdEl => {
|
|
6360
|
-
|
|
6341
|
+
const {
|
|
6342
|
+
dragRow
|
|
6343
|
+
} = reactData;
|
|
6344
|
+
const dragOpts = computeDragOpts.value;
|
|
6345
|
+
const {
|
|
6346
|
+
rowTooltipMethod
|
|
6347
|
+
} = dragOpts;
|
|
6348
|
+
let tipContent = '';
|
|
6349
|
+
if (rowTooltipMethod) {
|
|
6350
|
+
tipContent = `${rowTooltipMethod({
|
|
6351
|
+
row: dragRow
|
|
6352
|
+
}) || ''}`;
|
|
6353
|
+
} else {
|
|
6354
|
+
tipContent = getI18n('vxe.table.dragTip', [tdEl.textContent || '']);
|
|
6355
|
+
}
|
|
6356
|
+
reactData.dragTipText = tipContent;
|
|
6361
6357
|
};
|
|
6362
6358
|
/**
|
|
6363
6359
|
* 处理显示 tooltip
|
|
@@ -6398,6 +6394,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6398
6394
|
}
|
|
6399
6395
|
return (0, _vue.nextTick)();
|
|
6400
6396
|
};
|
|
6397
|
+
const callSlot = (slotFunc, params) => {
|
|
6398
|
+
if (slotFunc) {
|
|
6399
|
+
if ($xeGrid) {
|
|
6400
|
+
return $xeGrid.callSlot(slotFunc, params);
|
|
6401
|
+
}
|
|
6402
|
+
if (_xeUtils.default.isFunction(slotFunc)) {
|
|
6403
|
+
return (0, _vn.getSlotVNs)(slotFunc(params));
|
|
6404
|
+
}
|
|
6405
|
+
}
|
|
6406
|
+
return [];
|
|
6407
|
+
};
|
|
6401
6408
|
/**
|
|
6402
6409
|
* 内部方法
|
|
6403
6410
|
*/
|
|
@@ -6406,17 +6413,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6406
6413
|
return getConfig();
|
|
6407
6414
|
},
|
|
6408
6415
|
updateAfterDataIndex,
|
|
6409
|
-
callSlot
|
|
6410
|
-
if (slotFunc) {
|
|
6411
|
-
if ($xeGrid) {
|
|
6412
|
-
return $xeGrid.callSlot(slotFunc, params);
|
|
6413
|
-
}
|
|
6414
|
-
if (_xeUtils.default.isFunction(slotFunc)) {
|
|
6415
|
-
return (0, _vn.getSlotVNs)(slotFunc(params));
|
|
6416
|
-
}
|
|
6417
|
-
}
|
|
6418
|
-
return [];
|
|
6419
|
-
},
|
|
6416
|
+
callSlot,
|
|
6420
6417
|
/**
|
|
6421
6418
|
* 获取父容器元素
|
|
6422
6419
|
*/
|
|
@@ -8174,7 +8171,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8174
8171
|
tableColumn,
|
|
8175
8172
|
tableGroupColumn,
|
|
8176
8173
|
fixedColumn
|
|
8177
|
-
}) : (
|
|
8174
|
+
}) : renderEmptyElement($xeTable), (0, _vue.h)(_body.default, {
|
|
8178
8175
|
ref: isFixedLeft ? refTableLeftBody : refTableRightBody,
|
|
8179
8176
|
fixedType,
|
|
8180
8177
|
tableData,
|
|
@@ -8186,7 +8183,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8186
8183
|
tableColumn,
|
|
8187
8184
|
fixedColumn,
|
|
8188
8185
|
fixedType
|
|
8189
|
-
}) : (
|
|
8186
|
+
}) : renderEmptyElement($xeTable)]);
|
|
8190
8187
|
};
|
|
8191
8188
|
const renderEmptyBody = () => {
|
|
8192
8189
|
const emptyOpts = computeEmptyOpts.value;
|
|
@@ -8241,7 +8238,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8241
8238
|
columnStore,
|
|
8242
8239
|
filterStore,
|
|
8243
8240
|
customStore,
|
|
8244
|
-
tooltipStore
|
|
8241
|
+
tooltipStore,
|
|
8242
|
+
dragRow,
|
|
8243
|
+
dragTipText
|
|
8245
8244
|
} = reactData;
|
|
8246
8245
|
const {
|
|
8247
8246
|
leftList,
|
|
@@ -8253,6 +8252,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8253
8252
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
8254
8253
|
const treeOpts = computeTreeOpts.value;
|
|
8255
8254
|
const rowOpts = computeRowOpts.value;
|
|
8255
|
+
const dragOpts = computeDragOpts.value;
|
|
8256
8256
|
const columnOpts = computeColumnOpts.value;
|
|
8257
8257
|
const vSize = computeSize.value;
|
|
8258
8258
|
const tableBorder = computeTableBorder.value;
|
|
@@ -8262,6 +8262,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8262
8262
|
const isMenu = computeIsMenu.value;
|
|
8263
8263
|
const currLoading = reactData._isLoading || loading;
|
|
8264
8264
|
const virtualScrollBars = computeVirtualScrollBars.value;
|
|
8265
|
+
const dragSlots = dragOpts.slots || {};
|
|
8266
|
+
const rowTipSlot = dragSlots.rowTip;
|
|
8265
8267
|
return (0, _vue.h)('div', {
|
|
8266
8268
|
ref: refElem,
|
|
8267
8269
|
class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
|
|
@@ -8315,7 +8317,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8315
8317
|
tableData,
|
|
8316
8318
|
tableColumn,
|
|
8317
8319
|
tableGroupColumn
|
|
8318
|
-
}) : (
|
|
8320
|
+
}) : renderEmptyElement($xeTable),
|
|
8319
8321
|
/**
|
|
8320
8322
|
* 表体
|
|
8321
8323
|
*/
|
|
@@ -8331,9 +8333,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8331
8333
|
ref: refTableFooter,
|
|
8332
8334
|
footerTableData,
|
|
8333
8335
|
tableColumn
|
|
8334
|
-
}) : (
|
|
8336
|
+
}) : renderEmptyElement($xeTable)]), (0, _vue.h)('div', {
|
|
8335
8337
|
class: 'vxe-table--fixed-wrapper'
|
|
8336
|
-
}, [leftList && leftList.length && overflowX ? renderFixed('left') : (
|
|
8338
|
+
}, [leftList && leftList.length && overflowX ? renderFixed('left') : renderEmptyElement($xeTable), rightList && rightList.length && overflowX ? renderFixed('right') : renderEmptyElement($xeTable)])]), virtualScrollBars.x ? (0, _vue.h)('div', {
|
|
8337
8339
|
key: 'vx',
|
|
8338
8340
|
ref: refScrollXVirtualElem,
|
|
8339
8341
|
class: 'vxe-table--scroll-x-virtual'
|
|
@@ -8344,7 +8346,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8344
8346
|
}, [(0, _vue.h)('div', {
|
|
8345
8347
|
ref: refScrollXSpaceElem,
|
|
8346
8348
|
class: 'vxe-table--scroll-x-space'
|
|
8347
|
-
})])]) : (
|
|
8349
|
+
})])]) : renderEmptyElement($xeTable), virtualScrollBars.y ? (0, _vue.h)('div', {
|
|
8348
8350
|
key: 'vy',
|
|
8349
8351
|
ref: refScrollYVirtualElem,
|
|
8350
8352
|
class: 'vxe-table--scroll-y-virtual'
|
|
@@ -8355,7 +8357,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8355
8357
|
}, [(0, _vue.h)('div', {
|
|
8356
8358
|
ref: refScrollYSpaceElem,
|
|
8357
8359
|
class: 'vxe-table--scroll-x-space'
|
|
8358
|
-
})])]) : (
|
|
8360
|
+
})])]) : renderEmptyElement($xeTable),
|
|
8359
8361
|
/**
|
|
8360
8362
|
* 空数据
|
|
8361
8363
|
*/
|
|
@@ -8398,7 +8400,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8398
8400
|
$table: $xeTable,
|
|
8399
8401
|
$grid: $xeGrid
|
|
8400
8402
|
})
|
|
8401
|
-
} : {}) : (
|
|
8403
|
+
} : {}) : renderEmptyElement($xeTable),
|
|
8402
8404
|
/**
|
|
8403
8405
|
* 自定义列
|
|
8404
8406
|
*/
|
|
@@ -8406,7 +8408,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8406
8408
|
key: 'cs',
|
|
8407
8409
|
ref: refTableCustom,
|
|
8408
8410
|
customStore
|
|
8409
|
-
}) : (
|
|
8411
|
+
}) : renderEmptyElement($xeTable),
|
|
8410
8412
|
/**
|
|
8411
8413
|
* 筛选
|
|
8412
8414
|
*/
|
|
@@ -8414,7 +8416,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8414
8416
|
key: 'tf',
|
|
8415
8417
|
ref: refTableFilter,
|
|
8416
8418
|
filterStore
|
|
8417
|
-
}) : (
|
|
8419
|
+
}) : renderEmptyElement($xeTable),
|
|
8418
8420
|
/**
|
|
8419
8421
|
* 导入
|
|
8420
8422
|
*/
|
|
@@ -8422,7 +8424,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8422
8424
|
key: 'it',
|
|
8423
8425
|
defaultOptions: reactData.importParams,
|
|
8424
8426
|
storeData: reactData.importStore
|
|
8425
|
-
}) : (
|
|
8427
|
+
}) : renderEmptyElement($xeTable),
|
|
8426
8428
|
/**
|
|
8427
8429
|
* 导出
|
|
8428
8430
|
*/
|
|
@@ -8430,21 +8432,23 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8430
8432
|
key: 'et',
|
|
8431
8433
|
defaultOptions: reactData.exportParams,
|
|
8432
8434
|
storeData: reactData.exportStore
|
|
8433
|
-
}) : (
|
|
8435
|
+
}) : renderEmptyElement($xeTable),
|
|
8434
8436
|
/**
|
|
8435
8437
|
* 快捷菜单
|
|
8436
8438
|
*/
|
|
8437
8439
|
isMenu ? (0, _vue.h)(_panel3.default, {
|
|
8438
8440
|
key: 'tm',
|
|
8439
8441
|
ref: refTableMenu
|
|
8440
|
-
}) : (
|
|
8442
|
+
}) : renderEmptyElement($xeTable),
|
|
8441
8443
|
/**
|
|
8442
8444
|
* 拖拽提示
|
|
8443
8445
|
*/
|
|
8444
|
-
rowOpts.drag ? (0, _vue.h)('div', {
|
|
8446
|
+
rowOpts.drag && (dragRow || dragTipText) ? (0, _vue.h)('div', {
|
|
8445
8447
|
ref: refRowDragTipElem,
|
|
8446
|
-
class: 'vxe-table--row-drag-
|
|
8447
|
-
},
|
|
8448
|
+
class: 'vxe-table--row-drag-tip'
|
|
8449
|
+
}, rowTipSlot ? dragRow ? callSlot(rowTipSlot, {
|
|
8450
|
+
row: dragRow
|
|
8451
|
+
}) : [renderEmptyElement($xeTable)] : dragTipText ? [(0, _vue.h)('span', dragTipText)] : [renderEmptyElement($xeTable)]) : renderEmptyElement($xeTable),
|
|
8448
8452
|
/**
|
|
8449
8453
|
* 提示相关
|
|
8450
8454
|
*/
|
|
@@ -8474,7 +8478,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8474
8478
|
class: [{
|
|
8475
8479
|
'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete'
|
|
8476
8480
|
}, 'vxe-table--valid-error']
|
|
8477
|
-
}, validOpts.message === 'tooltip' || tableData.length === 1 ? validTipOpts : {})) : (
|
|
8481
|
+
}, validOpts.message === 'tooltip' || tableData.length === 1 ? validTipOpts : {})) : renderEmptyElement($xeTable)]) : renderEmptyElement($xeTable)]);
|
|
8478
8482
|
};
|
|
8479
8483
|
const dataFlag = (0, _vue.ref)(0);
|
|
8480
8484
|
(0, _vue.watch)(() => props.data ? props.data.length : -1, () => {
|