vxe-table 4.8.5 → 4.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/panel.js +32 -8
- package/es/table/module/validator/hook.js +1 -1
- package/es/table/src/body.js +14 -8
- package/es/table/src/header.js +2 -2
- package/es/table/src/table.js +69 -45
- package/es/table/style.css +25 -15
- 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 +25 -15
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.umd.js +117 -54
- 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/panel.js +35 -5
- 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/header.js +2 -2
- package/lib/table/src/table.js +70 -40
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +25 -15
- 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 +25 -15
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/module/custom/panel.ts +35 -8
- package/packages/table/module/validator/hook.ts +1 -1
- package/packages/table/src/body.ts +14 -8
- package/packages/table/src/header.ts +2 -2
- package/packages/table/src/table.ts +69 -45
- package/packages/ui/index.ts +2 -1
- package/styles/components/table-module/custom.scss +2 -1
- package/styles/components/table.scss +36 -26
- /package/es/{iconfont.1730971754265.ttf → iconfont.1731032736115.ttf} +0 -0
- /package/es/{iconfont.1730971754265.woff → iconfont.1731032736115.woff} +0 -0
- /package/es/{iconfont.1730971754265.woff2 → iconfont.1731032736115.woff2} +0 -0
- /package/lib/{iconfont.1730971754265.ttf → iconfont.1731032736115.ttf} +0 -0
- /package/lib/{iconfont.1730971754265.woff → iconfont.1731032736115.woff} +0 -0
- /package/lib/{iconfont.1730971754265.woff2 → iconfont.1731032736115.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,renderEmptyElement}=_ui.VxeUI;var _default=exports.default=(0,_vue.defineComponent)({name:"TableCustomPanel",props:{customStore:{type:Object,default:()=>({})}},setup(W){const j=_ui.VxeUI.getComponent("VxeModal"),$=_ui.VxeUI.getComponent("VxeDrawer"),G=_ui.VxeUI.getComponent("VxeButton"),P=_ui.VxeUI.getComponent("VxeInput"),Y=_ui.VxeUI.getComponent("VxeTooltip"),Z=_ui.VxeUI.getComponent("VxeRadioGroup"),J=(0,_vue.inject)("$xeTable",{}),Q=J["reactData"],{computeCustomOpts:ee,computeColumnOpts:te,computeIsMaxFixedColumn:oe}=J.getComputeMaps(),le=(0,_vue.ref)(),ae=(0,_vue.ref)(),se=(0,_vue.ref)(),ie=(0,_vue.ref)();let c;const ne=e=>{var t=W["customStore"];t.activeWrapper=!0,J.customOpenEvent(e)},re=e=>{const t=W["customStore"];t.activeWrapper=!1,setTimeout(()=>{t.activeBtn||t.activeWrapper||J.customCloseEvent(e)},300)},ce=({$event:e})=>{J.saveCustom(),J.closeCustom(),J.emitCustomEvent("confirm",e)},ue=({$event:e})=>{J.closeCustom(),J.emitCustomEvent("close",e)},de=({$event:e})=>{J.cancelCustom(),J.closeCustom(),J.emitCustomEvent("cancel",e)},o=e=>{J.resetCustom(!0),J.closeCustom(),J.emitCustomEvent("reset",e)},me=({$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=Q["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))},ve=e=>{const t=!e.renderVisible;ee.value.immediate?(_xeUtils.default.eachTree([e],e=>{e.visible=t,e.renderVisible=t,e.halfVisible=!1}),J.handleCustom(),J.saveCustomStore("update:visible")):_xeUtils.default.eachTree([e],e=>{e.renderVisible=t,e.halfVisible=!1}),l(e),J.checkCustomStatus()},pe=(e,t)=>{var o=oe.value;ee.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}),J.handleCustom(),J.saveCustomStore("update:fixed")):e.renderFixed===t?_xeUtils.default.eachTree([e],e=>{e.renderFixed=""}):o&&!e.renderFixed||_xeUtils.default.eachTree([e],e=>{e.renderFixed=t})},xe=()=>{J.toggleCustomAllCheckbox()},_e=e=>{var t=e.currentTarget.parentNode.parentNode,o=t.getAttribute("colid"),o=J.getColumnById(o);t.draggable=!0,ie.value=o,(0,_dom.addClass)(t,"active--drag-origin"),a(e)},he=e=>{var e=e.currentTarget.parentNode.parentNode,t=se.value;e.draggable=!1,(ie.value=null,_dom.removeClass)(e,"active--drag-origin"),t&&(t.style.display="")},ge=e=>{var t=new Image;e.dataTransfer&&e.dataTransfer.setDragImage(t,0,0)},be=e=>{var t=Q["customColumnList"],o=ee.value,e=e.currentTarget,l=se.value;if(c){if(c!==e){var a=c.getAttribute("drag-pos"),s=e.getAttribute("colid");const n=J.getColumnById(s);if(!n)return;var s=_xeUtils.default.findIndexOf(t,e=>e.id===n.id),i=c.getAttribute("colid");const r=J.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")}ie.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)}),J.handleCustom(),J.saveCustomStore("update:sort"))},Ce=e=>{var t=e.currentTarget,o=(c!==t&&(0,_dom.removeClass)(c,"active--drag-target"),t.getAttribute("colid")),o=J.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=se.value,l=ae.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=ee.value["mode"];j||(0,_log.errLog)("vxe.error.reqComp",["vxe-modal"]),$||"drawer"!==e||(0,_log.errLog)("vxe.error.reqComp",["vxe-drawer"]),G||(0,_log.errLog)("vxe.error.reqComp",["vxe-button"]),P||(0,_log.errLog)("vxe.error.reqComp",["vxe-input"]),Y||(0,_log.errLog)("vxe.error.reqComp",["vxe-tooltip"]),Z||(0,_log.errLog)("vxe.error.reqComp",["vxe-radio-group"])}),()=>{var e=ee.value;if(["modal","drawer","popup"].includes(""+e.mode)){const u=W["customStore"];e=Q["customColumnList"];const d=ee.value,{modalOptions:R,drawerOptions:K,allowVisible:m,allowSort:v,allowFixed:p,allowResizable:x,checkMethod:_,visibleMethod:h}=d,g=te.value["maxFixedSize"];var t=d["mode"],o=Object.assign({},R),l=Object.assign({},K);const b=oe.value;var a=d.slots||{};const C=a.header,f=a.top,I=a.bottom,T=a.default,E=a.footer,V=[],N=u.isAll,k=u.isIndeterminate,O=ie.value,y={$table:J,$grid:J.xegrid,columns:e,isAllChecked:N,isAllIndeterminate:k};_xeUtils.default.eachTree(e,(t,e,o,l,a)=>{if(!h||h({column:t})){var s=t.renderVisible,i=t.halfVisible,n=(0,_utils.formatText)(t.getTitle(),1),r=t.children&&t.children.length;const u=!!_&&!_({column:t});var c=!s;V.push((0,_vue.h)("tr",{key:t.id,colid:t.id,class:["vxe-table-custom-popup--row level--"+t.level,{"is--group":r}],onDragstart:ge,onDragend:be,onDragover:Ce},[m?(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":i,"is--disabled":u}],title:getI18n("vxe.custom.setting.colVisible"),onClick:()=>{u||ve(t)}},[(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)(),v?(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":u||c}],title:getI18n("vxe.custom.setting.sortHelpTip")},u||c?{}:{onMousedown:_e,onMouseup:he}),[(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:n}):(0,_vue.h)("div",{key:"0",class:"vxe-table-custom-popup--name",title:n},n)]),x?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--resizable"},[t.children&&t.children.length?(0,_vue.h)("span","-"):P?(0,_vue.h)(P,{type:"integer",disabled:u||c,modelValue:t.renderResizeWidth,"onUpdate:modelValue"(e){t.renderResizeWidth=Math.max(0,Number(e))}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)(),p?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--fixed"},[a?(0,_vue.h)("span","-"):Z?(0,_vue.h)(Z,{modelValue:t.renderFixed||"",type:"button",size:"mini",disabled:u||c,options:[{label:getI18n("vxe.custom.setting.fixedLeft"),value:"left",disabled:u||c||b},{label:getI18n("vxe.custom.setting.fixedUnset"),value:"",disabled:u||c},{label:getI18n("vxe.custom.setting.fixedRight"),value:"right",disabled:u||c||b}],"onUpdate:modelValue"(e){t.renderFixed=e}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}});a={default:()=>T?J.callSlot(T,y):(0,_vue.h)("div",{ref:ae,class:"vxe-table-custom-popup--body"},[f?(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-top"},J.callSlot(f,y)):renderEmptyElement(J),(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-wrapper"},[(0,_vue.h)("table",{},[(0,_vue.h)("colgroup",{},[m?(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"}),x?(0,_vue.h)("col",{class:"vxe-table-custom-popup--table-col-width"}):(0,_vue.createCommentVNode)(),p?(0,_vue.h)("col",{class:"vxe-table-custom-popup--table-col-fixed"}):(0,_vue.createCommentVNode)()]),(0,_vue.h)("thead",{},[(0,_vue.h)("tr",{},[m?(0,_vue.h)("th",{},[(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":N,"is--indeterminate":k}],title:getI18n("vxe.table.allTitle"),onClick:xe},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",k?getIcon().TABLE_CHECKBOX_INDETERMINATE:N?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")),Y?(0,_vue.h)(Y,{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")),x?(0,_vue.h)("th",{},getI18n("vxe.custom.setting.colResizable")):(0,_vue.createCommentVNode)(),p?(0,_vue.h)("th",{},getI18n("vxe.custom.setting."+(g?"colFixedMax":"colFixed"),[g])):(0,_vue.createCommentVNode)()])]),(0,_vue.h)(_vue.TransitionGroup,{class:"vxe-table-custom--panel-list",tag:"tbody",name:"vxe-table-custom--list"},{default:()=>V})])]),I?(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-bottom"},J.callSlot(I,y)):renderEmptyElement(J),(0,_vue.h)("div",{ref:se,class:"vxe-table-custom-popup--drag-hint"},getI18n("vxe.custom.cstmDragTarget",[O?O.getTitle():""]))]),footer:()=>E?J.callSlot(E,y):(0,_vue.h)("div",{class:"vxe-table-custom-popup--footer"},[G?(0,_vue.h)(G,{content:d.resetButtonText||getI18n("vxe.custom.cstmRestore"),onClick:me}):(0,_vue.createCommentVNode)(),G?(0,_vue.h)(G,{content:d.resetButtonText||getI18n("vxe.custom.cstmCancel"),onClick:de}):(0,_vue.createCommentVNode)(),G?(0,_vue.h)(G,{status:"primary",content:d.confirmButtonText||getI18n("vxe.custom.cstmConfirm"),onClick:ce}):(0,_vue.createCommentVNode)()])};return C&&(a.header=()=>J.callSlot(C,y)),"drawer"===t?$?(0,_vue.h)($,{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)():j?(0,_vue.h)(j,{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=W["customStore"],t=Q["customColumnList"],l=ee.value,o=e["maxHeight"];const{checkMethod:B,visibleMethod:A,allowVisible:w,allowSort:X,allowFixed:q,trigger:z,placement:L}=l,F=oe.value;var a=l.slots||{},M=a.header,U=a.top,S=a.bottom,D=a.default,a=a.footer;const H=[];var s={},i=e.isAll,n=e.isIndeterminate,r=ie.value,c=("hover"===z&&(s.onMouseenter=ne,s.onMouseleave=re),{$table:J,$grid:J.xegrid,columns:t,isAllChecked:i,isAllIndeterminate:n});return _xeUtils.default.eachTree(t,(e,t,o,l,a)=>{if(!A||A({column:e})){var s=e.renderVisible,i=e.halfVisible,n=e.children&&e.children.length,r=(0,_utils.formatText)(e.getTitle(),1);const u=!!B&&!B({column:e});var c=!s;H.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:ge,onDragend:be,onDragover:Ce},[w?(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||ve(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:_e,onMouseup:he}),[(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"},[G?(0,_vue.h)(G,{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||F&&!e.renderFixed,title:getI18n("left"===e.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedLeft"),onClick:()=>{pe(e,"left")}}):(0,_vue.createCommentVNode)(),G?(0,_vue.h)(G,{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||F&&!e.renderFixed,title:getI18n("right"===e.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedRight"),onClick:()=>{pe(e,"right")}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}}),(0,_vue.h)("div",{ref:le,key:"simple",class:["vxe-table-custom-wrapper","placement--"+L,{"is--active":e.visible}],style:o&&!["left","right"].includes(L)?{maxHeight:o+"px"}:{}},e.visible?[(0,_vue.h)("div",{class:"vxe-table-custom--header"},M?J.callSlot(M,c):[(0,_vue.h)("ul",{class:"vxe-table-custom--panel-list"},[(0,_vue.h)("li",{class:"vxe-table-custom--option"},[w?(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":i,"is--indeterminate":n}],title:getI18n("vxe.table.allTitle"),onClick:xe},[(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:ae,class:"vxe-table-custom--body"},[U?(0,_vue.h)("div",{class:"vxe-table-custom--panel-top"},J.callSlot(U,c)):renderEmptyElement(J),D?(0,_vue.h)("div",{class:"vxe-table-custom--panel-body"},J.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:()=>H}),S?(0,_vue.h)("div",{class:"vxe-table-custom--panel-bottom"},J.callSlot(S,c)):renderEmptyElement(J),(0,_vue.h)("div",{ref:se,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?J.callSlot(a,c):[(0,_vue.h)("div",{class:"vxe-table-custom--footer-buttons"},[G?(0,_vue.h)(G,{mode:"text",content:l.resetButtonText||getI18n("vxe.table.customRestore"),onClick:me}):(0,_vue.createCommentVNode)(),l.immediate?G?(0,_vue.h)(G,{mode:"text",content:l.closeButtonText||getI18n("vxe.table.customClose"),onClick:ue}):(0,_vue.createCommentVNode)():G?(0,_vue.h)(G,{mode:"text",content:l.cancelButtonText||getI18n("vxe.table.customCancel"),onClick:de}):(0,_vue.createCommentVNode)(),!l.immediate&&G?(0,_vue.h)(G,{mode:"text",status:"primary",content:l.confirmButtonText||getI18n("vxe.table.customConfirm"),onClick:ce}):(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(P){const Y=_ui.VxeUI.getComponent("VxeModal"),Z=_ui.VxeUI.getComponent("VxeDrawer"),J=_ui.VxeUI.getComponent("VxeButton"),Q=_ui.VxeUI.getComponent("VxeNumberInput"),ee=_ui.VxeUI.getComponent("VxeTooltip"),te=_ui.VxeUI.getComponent("VxeRadioGroup"),oe=(0,_vue.inject)("$xeTable",{}),{props:le,reactData:ae}=oe,{computeCustomOpts:se,computeColumnOpts:ie,computeIsMaxFixedColumn:ne,computeResizableOpts:re}=oe.getComputeMaps(),ce=(0,_vue.ref)(),ue=(0,_vue.ref)(),de=(0,_vue.ref)(),me=(0,_vue.ref)();let c;const ve=e=>{var t=P["customStore"];t.activeWrapper=!0,oe.customOpenEvent(e)},pe=e=>{const t=P["customStore"];t.activeWrapper=!1,setTimeout(()=>{t.activeBtn||t.activeWrapper||oe.customCloseEvent(e)},300)},xe=({$event:e})=>{oe.saveCustom(),oe.closeCustom(),oe.emitCustomEvent("confirm",e)},_e=({$event:e})=>{oe.closeCustom(),oe.emitCustomEvent("close",e)},he=({$event:e})=>{oe.cancelCustom(),oe.closeCustom(),oe.emitCustomEvent("cancel",e)},o=e=>{oe.resetCustom(!0),oe.closeCustom(),oe.emitCustomEvent("reset",e)},be=({$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=ae["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))},ge=e=>{const t=!e.renderVisible;se.value.immediate?(_xeUtils.default.eachTree([e],e=>{e.visible=t,e.renderVisible=t,e.halfVisible=!1}),oe.handleCustom(),oe.saveCustomStore("update:visible")):_xeUtils.default.eachTree([e],e=>{e.renderVisible=t,e.halfVisible=!1}),l(e),oe.checkCustomStatus()},Ce=(e,t)=>{var o=ne.value;se.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}),oe.handleCustom(),oe.saveCustomStore("update:fixed")):e.renderFixed===t?_xeUtils.default.eachTree([e],e=>{e.renderFixed=""}):o&&!e.renderFixed||_xeUtils.default.eachTree([e],e=>{e.renderFixed=t})},fe=()=>{oe.toggleCustomAllCheckbox()},Ie=e=>{var t=e.currentTarget.parentNode.parentNode,o=t.getAttribute("colid"),o=oe.getColumnById(o);t.draggable=!0,me.value=o,(0,_dom.addClass)(t,"active--drag-origin"),a(e)},Te=e=>{var e=e.currentTarget.parentNode.parentNode,t=de.value;e.draggable=!1,(me.value=null,_dom.removeClass)(e,"active--drag-origin"),t&&(t.style.display="")},Ee=e=>{var t=new Image;e.dataTransfer&&e.dataTransfer.setDragImage(t,0,0)},Ve=e=>{var t=ae["customColumnList"],o=se.value,e=e.currentTarget,l=de.value;if(c){if(c!==e){var a=c.getAttribute("drag-pos"),s=e.getAttribute("colid");const n=oe.getColumnById(s);if(!n)return;var s=_xeUtils.default.findIndexOf(t,e=>e.id===n.id),i=c.getAttribute("colid");const r=oe.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")}me.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)}),oe.handleCustom(),oe.saveCustomStore("update:sort"))},Ne=e=>{var t=e.currentTarget,o=(c!==t&&(0,_dom.removeClass)(c,"active--drag-target"),t.getAttribute("colid")),o=oe.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=de.value,l=ue.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=se.value["mode"];Y||(0,_log.errLog)("vxe.error.reqComp",["vxe-modal"]),Z||"drawer"!==e||(0,_log.errLog)("vxe.error.reqComp",["vxe-drawer"]),J||(0,_log.errLog)("vxe.error.reqComp",["vxe-button"]),Q||(0,_log.errLog)("vxe.error.reqComp",["vxe-number-input"]),ee||(0,_log.errLog)("vxe.error.reqComp",["vxe-tooltip"]),te||(0,_log.errLog)("vxe.error.reqComp",["vxe-radio-group"])}),()=>{var e=se.value;if(["modal","drawer","popup"].includes(""+e.mode)){const u=P["customStore"],R=le["resizable"];e=ae["customColumnList"];const d=se.value,{modalOptions:K,drawerOptions:z,allowVisible:m,allowSort:v,allowFixed:p,allowResizable:x,checkMethod:_,visibleMethod:h}=d,b=ie.value,g=b["maxFixedSize"],{minWidth:C,maxWidth:f}=re.value;var t=d["mode"],o=Object.assign({},K),l=Object.assign({},z);const I=ne.value;var a=d.slots||{};const T=a.header,E=a.top,V=a.bottom,N=a.default,k=a.footer,O=[],y=u.isAll,B=u.isIndeterminate,A=me.value,w={$table:oe,$grid:oe.xegrid,columns:e,isAllChecked:y,isAllIndeterminate:B};_xeUtils.default.eachTree(e,(o,l,e,t,a)=>{if(!h||h({column:o})){let e=0,t=0;x&&(l={$table:oe,column:o,columnIndex:l,$columnIndex:l,$rowIndex:-1},C&&(e=_xeUtils.default.toNumber(_xeUtils.default.isFunction(C)?C(l):C)),f)&&(t=_xeUtils.default.toNumber(_xeUtils.default.isFunction(f)?f(l):f));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;O.push((0,_vue.h)("tr",{key:o.id,colid:o.id,class:["vxe-table-custom-popup--row level--"+o.level,{"is--group":n}],onDragstart:Ee,onDragend:Ve,onDragover:Ne},[m?(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||ge(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:Ie,onMouseup:Te}),[(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)]),x?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--resizable"},[o.children&&o.children.length||!(_xeUtils.default.isBoolean(o.resizable)?o.resizable:b.resizable||R)?(0,_vue.h)("span","-"):Q?(0,_vue.h)(Q,{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)(),p?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--fixed"},[a?(0,_vue.h)("span","-"):te?(0,_vue.h)(te,{modelValue:o.renderFixed||"",type:"button",size:"mini",disabled:c||r,options:[{label:getI18n("vxe.custom.setting.fixedLeft"),value:"left",disabled:c||r||I},{label:getI18n("vxe.custom.setting.fixedUnset"),value:"",disabled:c||r},{label:getI18n("vxe.custom.setting.fixedRight"),value:"right",disabled:c||r||I}],"onUpdate:modelValue"(e){o.renderFixed=e}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}});a={default:()=>N?oe.callSlot(N,w):(0,_vue.h)("div",{ref:ue,class:"vxe-table-custom-popup--body"},[E?(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-top"},oe.callSlot(E,w)):renderEmptyElement(oe),(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-wrapper"},[(0,_vue.h)("table",{},[(0,_vue.h)("colgroup",{},[m?(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"}),x?(0,_vue.h)("col",{class:"vxe-table-custom-popup--table-col-width"}):(0,_vue.createCommentVNode)(),p?(0,_vue.h)("col",{class:"vxe-table-custom-popup--table-col-fixed"}):(0,_vue.createCommentVNode)()]),(0,_vue.h)("thead",{},[(0,_vue.h)("tr",{},[m?(0,_vue.h)("th",{},[(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":y,"is--indeterminate":B}],title:getI18n("vxe.table.allTitle"),onClick:fe},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",B?getIcon().TABLE_CHECKBOX_INDETERMINATE:y?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")),ee?(0,_vue.h)(ee,{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")),x?(0,_vue.h)("th",{},getI18n("vxe.custom.setting.colResizable")):(0,_vue.createCommentVNode)(),p?(0,_vue.h)("th",{},getI18n("vxe.custom.setting."+(g?"colFixedMax":"colFixed"),[g])):(0,_vue.createCommentVNode)()])]),(0,_vue.h)(_vue.TransitionGroup,{class:"vxe-table-custom--panel-list",tag:"tbody",name:"vxe-table-custom--list"},{default:()=>O})])]),V?(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-bottom"},oe.callSlot(V,w)):renderEmptyElement(oe),(0,_vue.h)("div",{ref:de,class:"vxe-table-custom-popup--drag-hint"},getI18n("vxe.custom.cstmDragTarget",[A?A.getTitle():""]))]),footer:()=>k?oe.callSlot(k,w):(0,_vue.h)("div",{class:"vxe-table-custom-popup--footer"},[J?(0,_vue.h)(J,{content:d.resetButtonText||getI18n("vxe.custom.cstmRestore"),onClick:be}):(0,_vue.createCommentVNode)(),J?(0,_vue.h)(J,{content:d.resetButtonText||getI18n("vxe.custom.cstmCancel"),onClick:he}):(0,_vue.createCommentVNode)(),J?(0,_vue.h)(J,{status:"primary",content:d.confirmButtonText||getI18n("vxe.custom.cstmConfirm"),onClick:xe}):(0,_vue.createCommentVNode)()])};return T&&(a.header=()=>oe.callSlot(T,w)),"drawer"===t?Z?(0,_vue.h)(Z,{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)():Y?(0,_vue.h)(Y,{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=P["customStore"],t=ae["customColumnList"],l=se.value,o=e["maxHeight"];const{checkMethod:L,visibleMethod:U,allowVisible:F,allowSort:X,allowFixed:q,trigger:W,placement:$}=l,j=ne.value;var a=l.slots||{},H=a.header,M=a.top,S=a.bottom,D=a.default,a=a.footer;const G=[];var s={},i=e.isAll,n=e.isIndeterminate,r=me.value,c=("hover"===W&&(s.onMouseenter=ve,s.onMouseleave=pe),{$table:oe,$grid:oe.xegrid,columns:t,isAllChecked:i,isAllIndeterminate:n});return _xeUtils.default.eachTree(t,(e,t,o,l,a)=>{if(!U||U({column:e})){var s=e.renderVisible,i=e.halfVisible,n=e.children&&e.children.length,r=(0,_utils.formatText)(e.getTitle(),1);const u=!!L&&!L({column:e});var c=!s;G.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:Ee,onDragend:Ve,onDragover:Ne},[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||ge(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:Ie,onMouseup:Te}),[(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"},[J?(0,_vue.h)(J,{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||j&&!e.renderFixed,title:getI18n("left"===e.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedLeft"),onClick:()=>{Ce(e,"left")}}):(0,_vue.createCommentVNode)(),J?(0,_vue.h)(J,{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||j&&!e.renderFixed,title:getI18n("right"===e.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedRight"),onClick:()=>{Ce(e,"right")}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}}),(0,_vue.h)("div",{ref:ce,key:"simple",class:["vxe-table-custom-wrapper","placement--"+$,{"is--active":e.visible}],style:o&&!["left","right"].includes($)?{maxHeight:o+"px"}:{}},e.visible?[(0,_vue.h)("div",{class:"vxe-table-custom--header"},H?oe.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:fe},[(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:ue,class:"vxe-table-custom--body"},[M?(0,_vue.h)("div",{class:"vxe-table-custom--panel-top"},oe.callSlot(M,c)):renderEmptyElement(oe),D?(0,_vue.h)("div",{class:"vxe-table-custom--panel-body"},oe.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:()=>G}),S?(0,_vue.h)("div",{class:"vxe-table-custom--panel-bottom"},oe.callSlot(S,c)):renderEmptyElement(oe),(0,_vue.h)("div",{ref:de,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?oe.callSlot(a,c):[(0,_vue.h)("div",{class:"vxe-table-custom--footer-buttons"},[J?(0,_vue.h)(J,{mode:"text",content:l.resetButtonText||getI18n("vxe.table.customRestore"),onClick:be}):(0,_vue.createCommentVNode)(),l.immediate?J?(0,_vue.h)(J,{mode:"text",content:l.closeButtonText||getI18n("vxe.table.customClose"),onClick:_e}):(0,_vue.createCommentVNode)():J?(0,_vue.h)(J,{mode:"text",content:l.cancelButtonText||getI18n("vxe.table.customCancel"),onClick:he}):(0,_vue.createCommentVNode)(),!l.immediate&&J?(0,_vue.h)(J,{mode:"text",status:"primary",content:l.confirmButtonText||getI18n("vxe.table.customConfirm"),onClick:xe}):(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/header.js
CHANGED
|
@@ -200,7 +200,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
200
200
|
tableColumn
|
|
201
201
|
} = props;
|
|
202
202
|
const {
|
|
203
|
-
resizable,
|
|
203
|
+
resizable: allResizable,
|
|
204
204
|
border,
|
|
205
205
|
columnKey,
|
|
206
206
|
headerRowClassName,
|
|
@@ -362,7 +362,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
362
362
|
/**
|
|
363
363
|
* 列宽拖动
|
|
364
364
|
*/
|
|
365
|
-
!fixedHiddenColumn && !isColGroup && (_xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable ||
|
|
365
|
+
!fixedHiddenColumn && !isColGroup && (_xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable) ? (0, _vue.h)('div', {
|
|
366
366
|
class: ['vxe-resizable', {
|
|
367
367
|
'is--line': !border || border === 'none'
|
|
368
368
|
}],
|
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';
|
|
@@ -2647,10 +2648,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2647
2648
|
const {
|
|
2648
2649
|
rowExpandedMaps
|
|
2649
2650
|
} = reactData;
|
|
2650
|
-
rowRest
|
|
2651
|
+
if (rowRest) {
|
|
2652
|
+
rowRest.expandLoaded = true;
|
|
2653
|
+
}
|
|
2651
2654
|
rowExpandedMaps[rowid] = row;
|
|
2652
2655
|
}).catch(() => {
|
|
2653
|
-
rowRest
|
|
2656
|
+
if (rowRest) {
|
|
2657
|
+
rowRest.expandLoaded = false;
|
|
2658
|
+
}
|
|
2654
2659
|
}).finally(() => {
|
|
2655
2660
|
const {
|
|
2656
2661
|
rowExpandLazyLoadedMaps
|
|
@@ -3204,13 +3209,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
3204
3209
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
3205
3210
|
if (!treeTempExpandedMaps[rowid]) {
|
|
3206
3211
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
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
|
+
}
|
|
3214
3221
|
}
|
|
3215
3222
|
}
|
|
3216
3223
|
}
|
|
@@ -6331,7 +6338,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6331
6338
|
}
|
|
6332
6339
|
};
|
|
6333
6340
|
const updateRowDropTipContent = tdEl => {
|
|
6334
|
-
|
|
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;
|
|
6335
6357
|
};
|
|
6336
6358
|
/**
|
|
6337
6359
|
* 处理显示 tooltip
|
|
@@ -6372,6 +6394,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6372
6394
|
}
|
|
6373
6395
|
return (0, _vue.nextTick)();
|
|
6374
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
|
+
};
|
|
6375
6408
|
/**
|
|
6376
6409
|
* 内部方法
|
|
6377
6410
|
*/
|
|
@@ -6380,17 +6413,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
6380
6413
|
return getConfig();
|
|
6381
6414
|
},
|
|
6382
6415
|
updateAfterDataIndex,
|
|
6383
|
-
callSlot
|
|
6384
|
-
if (slotFunc) {
|
|
6385
|
-
if ($xeGrid) {
|
|
6386
|
-
return $xeGrid.callSlot(slotFunc, params);
|
|
6387
|
-
}
|
|
6388
|
-
if (_xeUtils.default.isFunction(slotFunc)) {
|
|
6389
|
-
return (0, _vn.getSlotVNs)(slotFunc(params));
|
|
6390
|
-
}
|
|
6391
|
-
}
|
|
6392
|
-
return [];
|
|
6393
|
-
},
|
|
6416
|
+
callSlot,
|
|
6394
6417
|
/**
|
|
6395
6418
|
* 获取父容器元素
|
|
6396
6419
|
*/
|
|
@@ -8148,7 +8171,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8148
8171
|
tableColumn,
|
|
8149
8172
|
tableGroupColumn,
|
|
8150
8173
|
fixedColumn
|
|
8151
|
-
}) : (
|
|
8174
|
+
}) : renderEmptyElement($xeTable), (0, _vue.h)(_body.default, {
|
|
8152
8175
|
ref: isFixedLeft ? refTableLeftBody : refTableRightBody,
|
|
8153
8176
|
fixedType,
|
|
8154
8177
|
tableData,
|
|
@@ -8160,7 +8183,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8160
8183
|
tableColumn,
|
|
8161
8184
|
fixedColumn,
|
|
8162
8185
|
fixedType
|
|
8163
|
-
}) : (
|
|
8186
|
+
}) : renderEmptyElement($xeTable)]);
|
|
8164
8187
|
};
|
|
8165
8188
|
const renderEmptyBody = () => {
|
|
8166
8189
|
const emptyOpts = computeEmptyOpts.value;
|
|
@@ -8215,7 +8238,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8215
8238
|
columnStore,
|
|
8216
8239
|
filterStore,
|
|
8217
8240
|
customStore,
|
|
8218
|
-
tooltipStore
|
|
8241
|
+
tooltipStore,
|
|
8242
|
+
dragRow,
|
|
8243
|
+
dragTipText
|
|
8219
8244
|
} = reactData;
|
|
8220
8245
|
const {
|
|
8221
8246
|
leftList,
|
|
@@ -8227,6 +8252,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8227
8252
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
8228
8253
|
const treeOpts = computeTreeOpts.value;
|
|
8229
8254
|
const rowOpts = computeRowOpts.value;
|
|
8255
|
+
const dragOpts = computeDragOpts.value;
|
|
8230
8256
|
const columnOpts = computeColumnOpts.value;
|
|
8231
8257
|
const vSize = computeSize.value;
|
|
8232
8258
|
const tableBorder = computeTableBorder.value;
|
|
@@ -8236,6 +8262,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8236
8262
|
const isMenu = computeIsMenu.value;
|
|
8237
8263
|
const currLoading = reactData._isLoading || loading;
|
|
8238
8264
|
const virtualScrollBars = computeVirtualScrollBars.value;
|
|
8265
|
+
const dragSlots = dragOpts.slots || {};
|
|
8266
|
+
const rowTipSlot = dragSlots.rowTip;
|
|
8239
8267
|
return (0, _vue.h)('div', {
|
|
8240
8268
|
ref: refElem,
|
|
8241
8269
|
class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
|
|
@@ -8289,7 +8317,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8289
8317
|
tableData,
|
|
8290
8318
|
tableColumn,
|
|
8291
8319
|
tableGroupColumn
|
|
8292
|
-
}) : (
|
|
8320
|
+
}) : renderEmptyElement($xeTable),
|
|
8293
8321
|
/**
|
|
8294
8322
|
* 表体
|
|
8295
8323
|
*/
|
|
@@ -8305,9 +8333,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8305
8333
|
ref: refTableFooter,
|
|
8306
8334
|
footerTableData,
|
|
8307
8335
|
tableColumn
|
|
8308
|
-
}) : (
|
|
8336
|
+
}) : renderEmptyElement($xeTable)]), (0, _vue.h)('div', {
|
|
8309
8337
|
class: 'vxe-table--fixed-wrapper'
|
|
8310
|
-
}, [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', {
|
|
8311
8339
|
key: 'vx',
|
|
8312
8340
|
ref: refScrollXVirtualElem,
|
|
8313
8341
|
class: 'vxe-table--scroll-x-virtual'
|
|
@@ -8318,7 +8346,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8318
8346
|
}, [(0, _vue.h)('div', {
|
|
8319
8347
|
ref: refScrollXSpaceElem,
|
|
8320
8348
|
class: 'vxe-table--scroll-x-space'
|
|
8321
|
-
})])]) : (
|
|
8349
|
+
})])]) : renderEmptyElement($xeTable), virtualScrollBars.y ? (0, _vue.h)('div', {
|
|
8322
8350
|
key: 'vy',
|
|
8323
8351
|
ref: refScrollYVirtualElem,
|
|
8324
8352
|
class: 'vxe-table--scroll-y-virtual'
|
|
@@ -8329,7 +8357,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8329
8357
|
}, [(0, _vue.h)('div', {
|
|
8330
8358
|
ref: refScrollYSpaceElem,
|
|
8331
8359
|
class: 'vxe-table--scroll-x-space'
|
|
8332
|
-
})])]) : (
|
|
8360
|
+
})])]) : renderEmptyElement($xeTable),
|
|
8333
8361
|
/**
|
|
8334
8362
|
* 空数据
|
|
8335
8363
|
*/
|
|
@@ -8372,7 +8400,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8372
8400
|
$table: $xeTable,
|
|
8373
8401
|
$grid: $xeGrid
|
|
8374
8402
|
})
|
|
8375
|
-
} : {}) : (
|
|
8403
|
+
} : {}) : renderEmptyElement($xeTable),
|
|
8376
8404
|
/**
|
|
8377
8405
|
* 自定义列
|
|
8378
8406
|
*/
|
|
@@ -8380,7 +8408,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8380
8408
|
key: 'cs',
|
|
8381
8409
|
ref: refTableCustom,
|
|
8382
8410
|
customStore
|
|
8383
|
-
}) : (
|
|
8411
|
+
}) : renderEmptyElement($xeTable),
|
|
8384
8412
|
/**
|
|
8385
8413
|
* 筛选
|
|
8386
8414
|
*/
|
|
@@ -8388,7 +8416,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8388
8416
|
key: 'tf',
|
|
8389
8417
|
ref: refTableFilter,
|
|
8390
8418
|
filterStore
|
|
8391
|
-
}) : (
|
|
8419
|
+
}) : renderEmptyElement($xeTable),
|
|
8392
8420
|
/**
|
|
8393
8421
|
* 导入
|
|
8394
8422
|
*/
|
|
@@ -8396,7 +8424,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8396
8424
|
key: 'it',
|
|
8397
8425
|
defaultOptions: reactData.importParams,
|
|
8398
8426
|
storeData: reactData.importStore
|
|
8399
|
-
}) : (
|
|
8427
|
+
}) : renderEmptyElement($xeTable),
|
|
8400
8428
|
/**
|
|
8401
8429
|
* 导出
|
|
8402
8430
|
*/
|
|
@@ -8404,21 +8432,23 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8404
8432
|
key: 'et',
|
|
8405
8433
|
defaultOptions: reactData.exportParams,
|
|
8406
8434
|
storeData: reactData.exportStore
|
|
8407
|
-
}) : (
|
|
8435
|
+
}) : renderEmptyElement($xeTable),
|
|
8408
8436
|
/**
|
|
8409
8437
|
* 快捷菜单
|
|
8410
8438
|
*/
|
|
8411
8439
|
isMenu ? (0, _vue.h)(_panel3.default, {
|
|
8412
8440
|
key: 'tm',
|
|
8413
8441
|
ref: refTableMenu
|
|
8414
|
-
}) : (
|
|
8442
|
+
}) : renderEmptyElement($xeTable),
|
|
8415
8443
|
/**
|
|
8416
8444
|
* 拖拽提示
|
|
8417
8445
|
*/
|
|
8418
|
-
rowOpts.drag ? (0, _vue.h)('div', {
|
|
8446
|
+
rowOpts.drag && (dragRow || dragTipText) ? (0, _vue.h)('div', {
|
|
8419
8447
|
ref: refRowDragTipElem,
|
|
8420
|
-
class: 'vxe-table--row-drag-
|
|
8421
|
-
},
|
|
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),
|
|
8422
8452
|
/**
|
|
8423
8453
|
* 提示相关
|
|
8424
8454
|
*/
|
|
@@ -8448,7 +8478,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
8448
8478
|
class: [{
|
|
8449
8479
|
'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete'
|
|
8450
8480
|
}, 'vxe-table--valid-error']
|
|
8451
|
-
}, validOpts.message === 'tooltip' || tableData.length === 1 ? validTipOpts : {})) : (
|
|
8481
|
+
}, validOpts.message === 'tooltip' || tableData.length === 1 ? validTipOpts : {})) : renderEmptyElement($xeTable)]) : renderEmptyElement($xeTable)]);
|
|
8452
8482
|
};
|
|
8453
8483
|
const dataFlag = (0, _vue.ref)(0);
|
|
8454
8484
|
(0, _vue.watch)(() => props.data ? props.data.length : -1, () => {
|