vxe-table 4.13.43 → 4.13.45
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 +4 -4
- package/es/{iconfont.1750301151390.ttf → iconfont.1750641793236.ttf} +0 -0
- package/es/iconfont.1750641793236.woff +0 -0
- package/es/iconfont.1750641793236.woff2 +0 -0
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/hook.js +9 -1
- package/es/table/module/custom/panel.js +320 -224
- package/es/table/module/edit/hook.js +24 -10
- package/es/table/module/export/hook.js +19 -6
- package/es/table/src/cell.js +4 -4
- package/es/table/src/emits.js +3 -0
- package/es/table/src/table.js +16 -4
- package/es/table/style.css +37 -9
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +7 -3
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +37 -9
- package/es/vxe-table/style.min.css +1 -1
- package/lib/{iconfont.1750301151390.ttf → iconfont.1750641793236.ttf} +0 -0
- package/lib/iconfont.1750641793236.woff +0 -0
- package/lib/iconfont.1750641793236.woff2 +0 -0
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +275 -89
- 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 +11 -1
- package/lib/table/module/custom/hook.min.js +1 -1
- package/lib/table/module/custom/panel.js +181 -60
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/edit/hook.js +46 -10
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/export/hook.js +19 -4
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/src/cell.js +4 -4
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/emits.js +1 -1
- package/lib/table/src/emits.min.js +1 -1
- package/lib/table/src/table.js +5 -5
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +37 -9
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +7 -3
- 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 +37 -9
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/module/custom/hook.ts +10 -1
- package/packages/table/module/custom/panel.ts +338 -236
- package/packages/table/module/edit/hook.ts +24 -10
- package/packages/table/module/export/hook.ts +18 -7
- package/packages/table/src/cell.ts +4 -4
- package/packages/table/src/emits.ts +3 -0
- package/packages/table/src/table.ts +17 -4
- package/packages/ui/index.ts +6 -2
- package/styles/components/icon.scss +9 -1
- package/styles/components/table-module/custom.scss +26 -3
- package/styles/helpers/baseMixin.scss +16 -2
- package/styles/icon/iconfont.ttf +0 -0
- package/styles/icon/iconfont.woff +0 -0
- package/styles/icon/iconfont.woff2 +0 -0
- package/es/iconfont.1750301151390.woff +0 -0
- package/es/iconfont.1750301151390.woff2 +0 -0
- package/lib/iconfont.1750301151390.woff +0 -0
- package/lib/iconfont.1750301151390.woff2 +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../../ui/src/comp"),_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}}let{getI18n,getIcon,renderEmptyElement}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"TableCustomPanel",props:{customStore:{type:Object,default:()=>({})}},setup(D){let U=_ui.VxeUI.getComponent("VxeModal"),L=_ui.VxeUI.getComponent("VxeDrawer"),F=_ui.VxeUI.getComponent("VxeButton"),M=_ui.VxeUI.getComponent("VxeNumberInput"),R=_ui.VxeUI.getComponent("VxeRadioGroup"),H=(0,_vue.inject)("$xeTable",{}),{props:z,reactData:K,internalData:s}=H,{computeCustomOpts:W,computeColumnDragOpts:X,computeColumnOpts:ie,computeIsMaxFixedColumn:$,computeResizableOpts:re}=H.getComputeMaps(),A=(0,_vue.ref)(),q=(0,_vue.ref)(),r=(0,_vue.ref)(),n=(0,_vue.ref)(),u=(0,_vue.ref)(),b,C=!1,f,S=e=>{var t=D.customStore;t.activeWrapper=!0,H.customOpenEvent(e)},O=e=>{let t=D.customStore;t.activeWrapper=!1,setTimeout(()=>{t.activeBtn||t.activeWrapper||H.customCloseEvent(e)},300)},G=({$event:e})=>{K.isCustomStatus=!0,H.saveCustom(),H.closeCustom(),H.emitCustomEvent("confirm",e)},j=({$event:e})=>{H.closeCustom(),H.emitCustomEvent("close",e)},P=({$event:e})=>{H.cancelCustom(),H.closeCustom(),H.emitCustomEvent("cancel",e)},l=e=>{H.resetCustom(!0),H.closeCustom(),H.emitCustomEvent("reset",e)},Y=({$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&&l(t)}):l(t)},o=t=>{var e=K.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),o(e))},Z=e=>{let t=!e.renderVisible;W.value.immediate?(_xeUtils.default.eachTree([e],e=>{e.visible=t,e.renderVisible=t,e.halfVisible=!1}),K.isCustomStatus=!0,H.handleCustom(),H.saveCustomStore("update:visible")):_xeUtils.default.eachTree([e],e=>{e.renderVisible=t,e.halfVisible=!1}),o(e),H.checkCustomStatus()},ne=e=>{W.value.immediate&&e.renderResizeWidth!==e.renderWidth&&(e.resizeWidth=e.renderResizeWidth,e.renderWidth=e.renderResizeWidth,K.isCustomStatus=!0,H.handleCustom(),H.saveCustomStore("update:width"))},J=(e,t)=>{var l=$.value;W.value.immediate?(e.renderFixed===t?_xeUtils.default.eachTree([e],e=>{e.fixed="",e.renderFixed=""}):l&&!e.renderFixed||_xeUtils.default.eachTree([e],e=>{e.fixed=t,e.renderFixed=t}),K.isCustomStatus=!0,H.handleCustom(),H.saveCustomStore("update:fixed")):e.renderFixed===t?_xeUtils.default.eachTree([e],e=>{e.renderFixed=""}):l&&!e.renderFixed||_xeUtils.default.eachTree([e],e=>{e.renderFixed=t})},Q=()=>{H.toggleCustomAllCheckbox()},c=(e,t,l,o)=>{var a,s,i=q.value;i&&(a=i.getBoundingClientRect(),t&&(s=r.value)&&(l?(t=t.getBoundingClientRect(),s.style.display="block",s.style.top=Math.max(1,t.y+i.scrollTop-a.y)+"px",s.style.height=t.height+"px",s.style.width=t.width+"px",s.setAttribute("drag-pos",o),s.setAttribute("drag-to-child",C?"y":"n")):s.style.display=""),t=n.value)&&(t.style.display="block",t.style.top=Math.min(i.clientHeight+i.scrollTop-t.clientHeight,e.clientY+i.scrollTop-a.y)+"px",t.style.left=Math.min(i.clientWidth+i.scrollLeft-t.clientWidth,e.clientX+i.scrollLeft-a.x)+"px",t.setAttribute("drag-status",l?C?"sub":"normal":"disabled"))},a=()=>{var e=n.value,t=r.value;e&&(e.style.display=""),t&&(t.style.display="")},ee=e=>{var e=e.currentTarget.parentElement.parentElement.parentElement,t=e.getAttribute("colid"),t=H.getColumnById(t);e.draggable=!0,u.value=t,(0,_dom.addClass)(e,"active--drag-origin")},te=e=>{e=e.currentTarget.parentElement.parentElement.parentElement;a(),e.draggable=!1,(u.value=null,_dom.removeClass)(e,"active--drag-origin")},le=e=>{e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0)},oe=c=>{let d=z.mouseConfig,m=K.customColumnList,v=s.collectColumn;let p=W.value.immediate;var e=c.currentTarget,t=u.value;let{isCrossDrag:x,isSelfToChildDrag:h,isToChildDrag:_,dragEndMethod:l}=X.value,g="bottom"===f?1:0;if(b&&t&&b!==t){let n=t,u=b;Promise.resolve(!l||l({oldColumn:n,newColumn:u,dragColumn:n,dragPos:f,dragToChild:!!C,offsetIndex:g})).then(a=>{if(a){let e=-1,t=-1,l={},o=(_xeUtils.default.eachTree([n],e=>{l[e.id]=e}),!1);if(p){if(n.parentId&&u.parentId){if(!x)return;if(l[u.id]&&(o=!0,!x||!h))return void(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({status:"error",content:getI18n("vxe.error.treeDragChild")}))}else if(n.parentId){if(!x)return}else if(u.parentId){if(!x)return;if(l[u.id]&&(o=!0,!x||!h))return void(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({status:"error",content:getI18n("vxe.error.treeDragChild")}))}var s,i,r,a=_xeUtils.default.findTree(v,e=>e.id===n.id),a=(o&&x&&h?a&&({items:s,index:r}=a,(i=n.children||[]).forEach(e=>{e.parentId=n.parentId}),s.splice(r,1,...i),n.children=[]):a&&({items:s,index:r,parent:i}=a,s.splice(r,1),i||(e=r)),_xeUtils.default.findTree(v,e=>e.id===u.id));a&&({items:s,index:i,parent:r}=a,x&&_&&C?(n.parentId=u.id,u.children=(u.children||[]).concat([n])):(n.parentId=u.parentId,s.splice(i+g,0,n)),r||(t=i)),_xeUtils.default.eachTree(v,(e,t,l,o,a)=>{a||(e.renderSortNumber=t+1)})}else e=_xeUtils.default.findIndexOf(m,e=>e.id===n.id),m.splice(e,1),t=_xeUtils.default.findIndexOf(m,e=>e.id===u.id),m.splice(t+g,0,n);K.isDragColMove=!0,d&&(H.clearSelected&&H.clearSelected(),H.clearCellAreas)&&(H.clearCellAreas(),H.clearCopyCellArea()),H.dispatchEvent("column-dragend",{oldColumn:n,newColumn:u,dragColumn:n,dragPos:f,offsetIndex:g,_index:{newIndex:t,oldIndex:e}},c),p&&(K.customColumnList=v.slice(0),H.handleColDragSwapColumn())}}).catch(()=>{})}a(),u.value=null,e.draggable=!1,e.removeAttribute("drag-pos"),(0,_dom.removeClass)(e,"active--drag-target"),(0,_dom.removeClass)(e,"active--drag-origin")},ae=e=>{var t,l=W.value.immediate,{isCrossDrag:o,isToChildDrag:a}=X.value,s=e.currentTarget,i=(0,_dom.hasControlKey)(e),r=s.getAttribute("colid"),r=H.getColumnById(r),n=u.value;r&&(o||1===r.level)&&(e.preventDefault(),t=e.clientY-s.getBoundingClientRect().y<s.clientHeight/2?"top":"bottom",n&&n.id===r.id||!o&&1<r.level||!l&&1<r.level||r.renderFixed?c(e,s,!1,t):(C=!!(o&&a&&i&&l),b=r,f=t,c(e,s,!0,t)))},se=()=>{var e=u.value,t=X.value;return(0,_vue.h)("div",{},[(0,_vue.h)("div",{ref:r,class:["vxe-table-custom-popup--drag-line",{"is--guides":t.showGuidesStatus}]}),(0,_vue.h)("div",{ref:n,class:"vxe-table-custom-popup--drag-tip"},[(0,_vue.h)("div",{class:"vxe-table-custom-popup--drag-tip-wrapper"},[(0,_vue.h)("div",{class:"vxe-table-custom-popup--drag-tip-status"},[(0,_vue.h)("span",{class:["vxe-table-custom-popup--drag-tip-normal-status",getIcon().TABLE_DRAG_STATUS_ROW]}),(0,_vue.h)("span",{class:["vxe-table-custom-popup--drag-tip-sub-status",getIcon().TABLE_DRAG_STATUS_SUB_ROW]}),(0,_vue.h)("span",{class:["vxe-table-custom-popup--drag-tip-disabled-status",getIcon().TABLE_DRAG_DISABLED]})]),(0,_vue.h)("div",{class:"vxe-table-custom-popup--drag-tip-content"},getI18n("vxe.custom.cstmDragTarget",[e&&"html"!==e.type?e.getTitle():""]))])])])};return(0,_vue.nextTick)(()=>{var e=W.value.mode;U||"modal"!==e||(0,_log.errLog)("vxe.error.reqComp",["vxe-modal"]),L||"drawer"!==e||(0,_log.errLog)("vxe.error.reqComp",["vxe-drawer"]),F||(0,_log.errLog)("vxe.error.reqComp",["vxe-button"]),M||(0,_log.errLog)("vxe.error.reqComp",["vxe-number-input"]),R||(0,_log.errLog)("vxe.error.reqComp",["vxe-radio-group"])}),()=>{var e=W.value;return(["modal","drawer","popup"].includes(""+e.mode)?()=>{var e=H.xeGrid;let t=D.customStore,c=z.resizable,{isCustomStatus:l,customColumnList:o}=K,a=W.value,d=a.immediate;var s=X.value;let{mode:i,modalOptions:r,drawerOptions:n,allowVisible:m,allowSort:v,allowFixed:p,allowResizable:x,checkMethod:h,visibleMethod:_}=a,g=ie.value,u=g.maxFixedSize,{minWidth:b,maxWidth:C}=re.value;var f=Object.assign({},r),I=Object.assign({},n);let T=$.value,E=s.isCrossDrag;s=a.slots||{};let V=s.header,y=s.top,k=s.bottom,A=s.default,S=s.footer,O=[],B=t.isAll,w=t.isIndeterminate,N={$table:H,$grid:e,columns:o,isAllChecked:B,isAllIndeterminate:w,isCustomStatus:l};_xeUtils.default.eachTree(o,(o,a,e,t,s)=>{if(!_||_({$table:H,column:o})){let e=0,t=0;x&&(a={$table:H,column:o,columnIndex:a,$columnIndex:a,$rowIndex:-1},b&&(e=_xeUtils.default.toNumber(_xeUtils.default.isFunction(b)?b(a):b)),C)&&(t=_xeUtils.default.toNumber(_xeUtils.default.isFunction(C)?C(a):C));var a=o.renderVisible,i=o.halfVisible,r=(0,_utils.formatText)(o.getTitle(),1),n=o.children&&o.children.length;let l=!!h&&!h({$table:H,column:o});var u=!a;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:le,onDragend:oe,onDragover:ae},[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":a,"is--indeterminate":i,"is--disabled":l}],title:getI18n("vxe.custom.setting.colVisible"),onClick:()=>{l||Z(o)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?getIcon().TABLE_CHECKBOX_INDETERMINATE:a?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})])]):(0,_vue.createCommentVNode)(),(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--name"},[(0,_vue.h)("div",{class:"vxe-table-custom-popup--name"},[v?E&&d||1===o.level?(0,_vue.h)("div",Object.assign({class:["vxe-table-custom-popup--column-sort-btn",{"is--disabled":l||u||o.renderFixed}],title:getI18n("vxe.custom.setting.sortHelpTip")},l||u||o.renderFixed?{}:{onMousedown:ee,onMouseup:te}),[(0,_vue.h)("i",{class:getIcon().TABLE_CUSTOM_SORT})]):(0,_vue.h)("div",{class:"vxe-table-custom-popup--column-sort-placeholder"}):(0,_vue.createCommentVNode)(),"html"===o.type?(0,_vue.h)("div",{key:"1",class:"vxe-table-custom-popup--title",innerHTML:r}):(0,_vue.h)("div",{key:"0",class:"vxe-table-custom-popup--title",title:r},r)])]),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:g.resizable||c)?(0,_vue.h)("span","-"):M?(0,_vue.h)(M,{type:"integer",immediate:!1,disabled:l||u,modelValue:o.renderResizeWidth,min:e||void 0,max:t||void 0,"onUpdate:modelValue"(e){e=Math.max(0,Number(e));o.renderResizeWidth=e},onChange(){ne(o)}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)(),p?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--fixed"},[s?(0,_vue.h)("span","-"):R?(0,_vue.h)(R,{modelValue:o.renderFixed||"",type:"button",size:"mini",disabled:l||u,options:[{label:getI18n("vxe.custom.setting.fixedLeft"),value:"left",disabled:l||u||T},{label:getI18n("vxe.custom.setting.fixedUnset"),value:"",disabled:l||u},{label:getI18n("vxe.custom.setting.fixedRight"),value:"right",disabled:l||u||T}],"onUpdate:modelValue"(e){J(o,e)}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}});s={default:()=>A?H.callSlot(A,N):(0,_vue.h)("div",{ref:q,class:"vxe-table-custom-popup--body"},[y?(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-top"},H.callSlot(y,N)):renderEmptyElement(H),(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)(),(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":B,"is--indeterminate":w}],title:getI18n("vxe.table.allTitle"),onClick:Q},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",w?getIcon().TABLE_CHECKBOX_INDETERMINATE:B?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.toolbar.customAll"))])]):(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."+(u?"colFixedMax":"colFixed"),[u])):(0,_vue.createCommentVNode)()])]),(0,_vue.h)(_vue.TransitionGroup,{class:"vxe-table-custom--panel-list",tag:"tbody",name:"vxe-table-custom--list"},{default:()=>O})])]),k?(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-bottom"},H.callSlot(k,N)):renderEmptyElement(H),se()]),footer:()=>S?H.callSlot(S,N):(0,_vue.h)("div",{class:"vxe-table-custom-popup--footer"},[F?(0,_vue.h)(F,{content:a.resetButtonText||getI18n("vxe.custom.cstmRestore"),disabled:!l,onClick:Y}):(0,_vue.createCommentVNode)(),d?F?(0,_vue.h)(F,{content:a.closeButtonText||getI18n("vxe.table.customClose"),onClick:j}):(0,_vue.createCommentVNode)():F?(0,_vue.h)(F,{content:a.cancelButtonText||getI18n("vxe.table.customCancel"),onClick:P}):(0,_vue.createCommentVNode)(),!d&&F?(0,_vue.h)(F,{status:"primary",content:a.confirmButtonText||getI18n("vxe.custom.cstmConfirm"),onClick:G}):(0,_vue.createCommentVNode)()])};return V&&(s.header=()=>H.callSlot(V,N)),"drawer"===i?L?(0,_vue.h)(L,{key:"drawer",className:["vxe-table-custom-drawer-wrapper","vxe-table--ignore-clear",I.className||""].join(" "),modelValue:t.visible,title:I.title||getI18n("vxe.custom.cstmTitle"),width:I.width||Math.min(880,Math.floor(.6*document.documentElement.clientWidth)),position:I.position,resize:!!I.resize,escClosable:!!I.escClosable,maskClosable:!!I.maskClosable,destroyOnClose:!0,showFooter:!0,"onUpdate:modelValue"(e){t.visible=e}},s):(0,_vue.createCommentVNode)():U?(0,_vue.h)(U,{key:"modal",className:["vxe-table-custom-modal-wrapper","vxe-table--ignore-clear",f.className||""].join(" "),modelValue:t.visible,title:f.title||getI18n("vxe.custom.cstmTitle"),width:f.width||Math.min(880,document.documentElement.clientWidth),minWidth:f.minWidth||700,height:f.height||Math.min(680,document.documentElement.clientHeight),minHeight:f.minHeight||400,showZoom:f.showZoom,showMaximize:f.showMaximize,showMinimize:f.showMinimize,mask:f.mask,lockView:f.lockView,resize:f.resize,escClosable:!!f.escClosable,maskClosable:!!f.maskClosable,destroyOnClose:!0,showFooter:!0,"onUpdate:modelValue"(e){t.visible=e}},s):(0,_vue.createCommentVNode)()}:()=>{var e=H.xeGrid,t=H.props,l=D.customStore,{treeConfig:t,rowGroupConfig:o,aggregateConfig:a}=t,{isCustomStatus:s,customColumnList:i}=K,r=W.value;let c=r.immediate;var n=X.value,u=l.maxHeight;let{checkMethod:d,visibleMethod:m,allowVisible:v,allowSort:p,allowFixed:x,trigger:h,placement:_}=r,g=$.value,b=n.isCrossDrag;var n=r.slots||{},C=n.header,f=n.top,I=n.bottom,T=n.default,n=n.footer;let E=[];var V={},y=l.isAll,k=l.isIndeterminate,e=("hover"===h&&(V.onMouseenter=S,V.onMouseleave=O),{$table:H,$grid:e,columns:i,isAllChecked:y,isAllIndeterminate:k,isCustomStatus:s});return _xeUtils.default.eachTree(i,(t,e,l,o,a)=>{if(!m||m({$table:H,column:t})){var s=t.renderVisible,i=t.halfVisible,r=t.children&&t.children.length,n=(0,_utils.formatText)(t.getTitle(),1);let e=!!d&&!d({$table:H,column:t});var u=!s;E.push((0,_vue.h)("li",{key:t.id,colid:t.id,class:["vxe-table-custom--option","level--"+t.level,{"is--hidden":e||u,"is--group":r}],onDragstart:le,onDragend:oe,onDragover:ae},[v?(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":s,"is--indeterminate":i,"is--disabled":e}],title:getI18n("vxe.custom.setting.colVisible"),onClick:()=>{e||Z(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)(),(0,_vue.h)("div",{class:"vxe-table-custom--name-option"},[p&&(b&&c||1===t.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":e||u||t.renderFixed}],title:getI18n("vxe.custom.setting.sortHelpTip")},e||u||t.renderFixed?{}:{onMousedown:ee,onMouseup:te}),[(0,_vue.h)("i",{class:getIcon().TABLE_CUSTOM_SORT})])]):(0,_vue.createCommentVNode)(),"html"===t.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)]),!a&&x?(0,_vue.h)("div",{class:"vxe-table-custom--fixed-option"},[F?(0,_vue.h)(F,{mode:"text",icon:"left"===t.renderFixed?getIcon().TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:getIcon().TOOLBAR_TOOLS_FIXED_LEFT,status:"left"===t.renderFixed?"primary":"",disabled:e||u||g&&!t.renderFixed,title:getI18n("left"===t.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedLeft"),onClick:()=>{J(t,"left")}}):(0,_vue.createCommentVNode)(),F?(0,_vue.h)(F,{mode:"text",icon:"right"===t.renderFixed?getIcon().TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:getIcon().TOOLBAR_TOOLS_FIXED_RIGHT,status:"right"===t.renderFixed?"primary":"",disabled:e||u||g&&!t.renderFixed,title:getI18n("right"===t.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedRight"),onClick:()=>{J(t,"right")}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}}),(0,_vue.h)("div",{ref:A,key:"simple",class:["vxe-table-custom-wrapper","placement--"+_,{"is--active":l.visible}],style:u&&!["left","right"].includes(_)?{maxHeight:u+"px"}:{}},l.visible?[!t&&(a||o)&&H.getPivotTableAggregateSimplePanel?(0,_vue.h)(H.getPivotTableAggregateSimplePanel(),{customStore:l}):renderEmptyElement(H),(0,_vue.h)("div",{class:"vxe-table-custom--handle-wrapper"},[(0,_vue.h)("div",{class:"vxe-table-custom--header"},C?H.callSlot(C,e):[(0,_vue.h)("ul",{class:"vxe-table-custom--panel-list"},[(0,_vue.h)("li",{class:"vxe-table-custom--option"},[v?(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":y,"is--indeterminate":k}],title:getI18n("vxe.table.allTitle"),onClick:Q},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",k?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.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.customTitle"))])])]),(0,_vue.h)("div",{ref:q,class:"vxe-table-custom--body"},[f?(0,_vue.h)("div",{class:"vxe-table-custom--panel-top"},H.callSlot(f,e)):renderEmptyElement(H),T?(0,_vue.h)("div",{class:"vxe-table-custom--panel-body"},H.callSlot(T,e)):(0,_vue.h)(_vue.TransitionGroup,Object.assign({class:"vxe-table-custom--panel-list",name:"vxe-table-custom--list",tag:"ul"},V),{default:()=>E}),I?(0,_vue.h)("div",{class:"vxe-table-custom--panel-bottom"},H.callSlot(I,e)):renderEmptyElement(H),se()]),r.showFooter?(0,_vue.h)("div",{class:"vxe-table-custom--footer"},n?H.callSlot(n,e):[(0,_vue.h)("div",{class:"vxe-table-custom--footer-buttons"},[F?(0,_vue.h)(F,{mode:"text",content:r.resetButtonText||getI18n("vxe.table.customRestore"),disabled:!s,onClick:Y}):(0,_vue.createCommentVNode)(),c?F?(0,_vue.h)(F,{mode:"text",content:r.closeButtonText||getI18n("vxe.table.customClose"),onClick:j}):(0,_vue.createCommentVNode)():F?(0,_vue.h)(F,{mode:"text",content:r.cancelButtonText||getI18n("vxe.table.customCancel"),onClick:P}):(0,_vue.createCommentVNode)(),!c&&F?(0,_vue.h)(F,{mode:"text",status:"primary",content:r.confirmButtonText||getI18n("vxe.table.customConfirm"),onClick:G}):(0,_vue.createCommentVNode)()])]):null])]:[])})()}}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../../ui/src/comp"),_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}}let{getI18n,getIcon,renderEmptyElement}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"TableCustomPanel",props:{customStore:{type:Object,default:()=>({})}},setup(N,t){var e=_xeUtils.default.uniqueId();let U=_ui.VxeUI.getComponent("VxeModal"),L=_ui.VxeUI.getComponent("VxeDrawer"),M=_ui.VxeUI.getComponent("VxeButton"),F=_ui.VxeUI.getComponent("VxeNumberInput"),R=_ui.VxeUI.getComponent("VxeRadioGroup"),H=(0,_vue.inject)("$xeTable",{}),{props:z,reactData:G,internalData:r}=H,{computeCustomOpts:W,computeColumnDragOpts:K,computeColumnOpts:ie,computeIsMaxFixedColumn:$,computeResizableOpts:re}=H.getComputeMaps(),y=(0,_vue.ref)(),P=(0,_vue.ref)(),X=(0,_vue.ref)(),u=(0,_vue.ref)(),d=(0,_vue.ref)(),f=(0,_vue.reactive)({dragCol:null,dragGroup:null,dragValues:null,dragTipText:""}),T={},a={refElem:y,refBodyWrapperElem:P,refCustomBodyElem:X,refDragLineElem:u,refDragTipElem:d},s={},k=e=>{var t=N.customStore;t.activeWrapper=!0,H.customOpenEvent(e)},S=e=>{let t=N.customStore;t.activeWrapper=!1,setTimeout(()=>{t.activeBtn||t.activeWrapper||H.customCloseEvent(e)},300)},q=({$event:e})=>{G.isCustomStatus=!0,H.saveCustom(),H.closeCustom(),H.emitCustomEvent("confirm",e)},j=({$event:e})=>{H.closeCustom(),H.emitCustomEvent("close",e)},Y=({$event:e})=>{H.cancelCustom(),H.closeCustom(),H.emitCustomEvent("cancel",e)},l=e=>{H.resetCustom(!0),H.closeCustom(),H.emitCustomEvent("reset",e)},Z=({$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&&l(t)}):l(t)},o=t=>{var e=G.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),o(e))},J=(e,t)=>{let l=!e.renderVisible;W.value.immediate?(_xeUtils.default.eachTree([e],e=>{e.visible=l,e.renderVisible=l,e.halfVisible=!1}),G.isCustomStatus=!0,H.handleCustom(),H.saveCustomStore("update:visible")):_xeUtils.default.eachTree([e],e=>{e.renderVisible=l,e.halfVisible=!1}),o(e),H.checkCustomStatus(),H.dispatchEvent("custom-visible-change",{column:e,checked:l},t)},ne=e=>{W.value.immediate&&e.renderResizeWidth!==e.renderWidth&&(e.resizeWidth=e.renderResizeWidth,e.renderWidth=e.renderResizeWidth,G.isCustomStatus=!0,H.handleCustom(),H.saveCustomStore("update:width"))},Q=(e,t,l)=>{var o=$.value;let a=null;W.value.immediate?(e.renderFixed===t?(a="",_xeUtils.default.eachTree([e],e=>{e.fixed="",e.renderFixed=""})):o&&!e.renderFixed||(a=t,_xeUtils.default.eachTree([e],e=>{e.fixed=t,e.renderFixed=t})),G.isCustomStatus=!0,H.handleCustom(),H.saveCustomStore("update:fixed")):e.renderFixed===t?(a="",_xeUtils.default.eachTree([e],e=>{e.renderFixed=""})):o&&!e.renderFixed||(a=t,_xeUtils.default.eachTree([e],e=>{e.renderFixed=t})),null!==!a&&H.dispatchEvent("custom-fixed-change",{column:e,fixed:a},l)},ee=e=>{var t=G.customStore,t=!t.isAll;H.toggleCustomAllCheckbox(),H.dispatchEvent("custom-visible-all",{checked:t},e)},c=(e,t,l,o)=>{var a,s,i,r,n=P.value;n&&(r=X.value)&&(a=T.prevDragToChild,s=n.getBoundingClientRect(),r=r.getBoundingClientRect(),t&&(i=u.value)&&(l?(t=t.getBoundingClientRect(),i.style.display="block",i.style.left=Math.max(0,r.x-s.x)+"px",i.style.top=Math.max(1,t.y+n.scrollTop-s.y)+"px",i.style.height=t.height+"px",i.style.width=t.width+"px",i.setAttribute("drag-pos",o),i.setAttribute("drag-to-child",a?"y":"n")):i.style.display=""),r=d.value)&&(r.style.display="block",r.style.top=Math.min(n.clientHeight+n.scrollTop-r.clientHeight,e.clientY+n.scrollTop-s.y)+"px",r.style.left=Math.min(n.clientWidth+n.scrollLeft-r.clientWidth,e.clientX+n.scrollLeft-s.x)+"px",r.setAttribute("drag-status",l?a?"sub":"normal":"disabled"))},n=()=>{var e=f.dragCol,t=K.value.tooltipMethod;let l="";l=t?""+(t({$table:H,column:e})||""):getI18n("vxe.custom.cstmDragTarget",[e&&"html"!==e.type?e.getTitle():""]),f.dragTipText=l},i=()=>{var e=d.value,t=u.value;e&&(e.style.display=""),t&&(t.style.display="")},te=e=>{var e=e.currentTarget.parentElement.parentElement.parentElement,t=e.getAttribute("colid"),t=H.getColumnById(t);e.draggable=!0,f.dragCol=t,n(),(0,_dom.addClass)(e,"active--drag-origin")},le=e=>{e=e.currentTarget.parentElement.parentElement.parentElement;i(),e.draggable=!1,(f.dragCol=null,_dom.removeClass)(e,"active--drag-origin")},oe=e=>{e.dataTransfer&&e.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0),f.dragGroup=null,f.dragValues=null},ae=d=>{let c=z.mouseConfig,m=G.customColumnList,v=r.collectColumn;let p=W.value.immediate;var e=d.currentTarget;let{isCrossDrag:x,isSelfToChildDrag:h,isToChildDrag:g,dragEndMethod:t}=K.value;var{dragCol:l,dragGroup:o,dragValues:a}=f;let{prevDragCol:s,prevDragPos:_,prevDragToChild:b}=T,C="bottom"===_?1:0;if(o||a)H.handlePivotTableAggregatePanelDragendEvent&&H.handlePivotTableAggregatePanelDragendEvent(d);else if(s&&l&&s!==l){let n=l,u=s;Promise.resolve(!t||t({oldColumn:n,newColumn:u,dragColumn:n,dragPos:_,dragToChild:!!b,offsetIndex:C})).then(a=>{if(a){let e=-1,t=-1,l={},o=(_xeUtils.default.eachTree([n],e=>{l[e.id]=e}),!1);if(p){if(n.parentId&&u.parentId){if(!x)return;if(l[u.id]&&(o=!0,!x||!h))return void(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({status:"error",content:getI18n("vxe.error.treeDragChild")}))}else if(n.parentId){if(!x)return}else if(u.parentId){if(!x)return;if(l[u.id]&&(o=!0,!x||!h))return void(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({status:"error",content:getI18n("vxe.error.treeDragChild")}))}var s,i,r,a=_xeUtils.default.findTree(v,e=>e.id===n.id),a=(o&&x&&h?a&&({items:s,index:r}=a,(i=n.children||[]).forEach(e=>{e.parentId=n.parentId}),s.splice(r,1,...i),n.children=[]):a&&({items:s,index:r,parent:i}=a,s.splice(r,1),i||(e=r)),_xeUtils.default.findTree(v,e=>e.id===u.id));a&&({items:s,index:i,parent:r}=a,x&&g&&b?(n.parentId=u.id,u.children=(u.children||[]).concat([n])):(n.parentId=u.parentId,s.splice(i+C,0,n)),r||(t=i)),_xeUtils.default.eachTree(v,(e,t,l,o,a)=>{a||(e.renderSortNumber=t+1)})}else e=_xeUtils.default.findIndexOf(m,e=>e.id===n.id),m.splice(e,1),t=_xeUtils.default.findIndexOf(m,e=>e.id===u.id),m.splice(t+C,0,n);G.isDragColMove=!0,c&&(H.clearSelected&&H.clearSelected(),H.clearCellAreas)&&(H.clearCellAreas(),H.clearCopyCellArea()),H.dispatchEvent("column-dragend",{oldColumn:n,newColumn:u,dragColumn:n,dragPos:_,offsetIndex:C,_index:{newIndex:t,oldIndex:e}},d),p&&(G.customColumnList=v.slice(0),H.handleColDragSwapColumn())}}).catch(()=>{})}i(),f.dragCol=null,f.dragGroup=null,f.dragValues=null,e.draggable=!1,e.removeAttribute("drag-pos"),(0,_dom.removeClass)(e,"active--drag-target"),(0,_dom.removeClass)(e,"active--drag-origin")},se=e=>{var t,l=W.value.immediate,{isCrossDrag:o,isToChildDrag:a}=K.value,s=e.currentTarget,i=(0,_dom.hasControlKey)(e),r=s.getAttribute("colid"),r=H.getColumnById(r),n=f.dragCol;f.dragGroup=null,f.dragValues=null,r&&(o||1===r.level)&&(e.preventDefault(),t=e.clientY-s.getBoundingClientRect().y<s.clientHeight/2?"top":"bottom",n&&n.id===r.id||!o&&1<r.level||!l&&1<r.level||r.renderFixed?c(e,s,!1,t):(T.prevDragToChild=!!(o&&a&&i&&l),T.prevDragCol=r,T.prevDragPos=t,c(e,s,!0,t)))},ue=()=>{var e=f.dragTipText,t=K.value;return(0,_vue.h)("div",{},[(0,_vue.h)("div",{ref:u,class:["vxe-table-custom-popup--drag-line",{"is--guides":t.showGuidesStatus}]}),(0,_vue.h)("div",{ref:d,class:"vxe-table-custom-popup--drag-tip"},[(0,_vue.h)("div",{class:"vxe-table-custom-popup--drag-tip-wrapper"},[(0,_vue.h)("div",{class:"vxe-table-custom-popup--drag-tip-status"},[(0,_vue.h)("span",{class:["vxe-table-custom-popup--drag-tip-normal-status",getIcon().TABLE_DRAG_STATUS_ROW]}),(0,_vue.h)("span",{class:["vxe-table-custom-popup--drag-tip-sub-status",getIcon().TABLE_DRAG_STATUS_SUB_ROW]}),(0,_vue.h)("span",{class:["vxe-table-custom-popup--drag-tip-group-status",getIcon().TABLE_DRAG_STATUS_AGG_GROUP]}),(0,_vue.h)("span",{class:["vxe-table-custom-popup--drag-tip-values-status",getIcon().TABLE_DRAG_STATUS_AGG_VALUES]}),(0,_vue.h)("span",{class:["vxe-table-custom-popup--drag-tip-disabled-status",getIcon().TABLE_DRAG_DISABLED]})]),(0,_vue.h)("div",{class:"vxe-table-custom-popup--drag-tip-content"},""+(e||""))])])])};(0,_vue.nextTick)(()=>{var e=W.value.mode;U||"modal"!==e||(0,_log.errLog)("vxe.error.reqComp",["vxe-modal"]),L||"drawer"!==e||(0,_log.errLog)("vxe.error.reqComp",["vxe-drawer"]),M||(0,_log.errLog)("vxe.error.reqComp",["vxe-button"]),F||(0,_log.errLog)("vxe.error.reqComp",["vxe-number-input"]),R||(0,_log.errLog)("vxe.error.reqComp",["vxe-radio-group"])});e={xID:e,props:N,context:t,reactData:f,internalData:T,xeTable:H,getRefMaps:()=>a,getComputeMaps:()=>s,renderVN:()=>{var e=W.value;return(["modal","drawer","popup"].includes(""+e.mode)?()=>{var e=H.xeGrid;let t=N.customStore,d=z.resizable,{isCustomStatus:l,customColumnList:o}=G,a=W.value,c=a.immediate;var s=K.value;let{mode:i,modalOptions:r,drawerOptions:n,allowVisible:m,allowSort:v,allowFixed:p,allowResizable:x,checkMethod:h,visibleMethod:g}=a,_=ie.value,u=_.maxFixedSize,{minWidth:b,maxWidth:C}=re.value;var f=Object.assign({},r),T=Object.assign({},n);let I=$.value,E=s.isCrossDrag;s=a.slots||{};let V=s.header,A=s.top,D=s.bottom,y=s.default,k=s.footer,S=[],B=t.isAll,w=t.isIndeterminate,O={$table:H,$grid:e,columns:o,isAllChecked:B,isAllIndeterminate:w,isCustomStatus:l};_xeUtils.default.eachTree(o,(o,a,e,t,s)=>{if(!g||g({$table:H,column:o})){let e=0,t=0;x&&(a={$table:H,column:o,columnIndex:a,$columnIndex:a,$rowIndex:-1},b&&(e=_xeUtils.default.toNumber(_xeUtils.default.isFunction(b)?b(a):b)),C)&&(t=_xeUtils.default.toNumber(_xeUtils.default.isFunction(C)?C(a):C));var a=o.renderVisible,i=o.halfVisible,r=(0,_utils.formatText)(o.getTitle(),1),n=o.children&&o.children.length;let l=!!h&&!h({$table:H,column:o});var u=!a;S.push((0,_vue.h)("tr",{key:o.id,colid:o.id,class:["vxe-table-custom-popup--row level--"+o.level,{"is--group":n}],onDragstart:oe,onDragend:ae,onDragover:se},[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":a,"is--indeterminate":i,"is--disabled":l}],title:getI18n("vxe.custom.setting.colVisible"),onClick:e=>{l||J(o,e)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?getIcon().TABLE_CHECKBOX_INDETERMINATE:a?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})])]):(0,_vue.createCommentVNode)(),(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--name"},[(0,_vue.h)("div",{class:"vxe-table-custom-popup--name"},[v?E&&c||1===o.level?(0,_vue.h)("div",Object.assign({class:["vxe-table-custom-popup--column-sort-btn",{"is--disabled":l||u||o.renderFixed}],title:getI18n("vxe.custom.setting.sortHelpTip")},l||u||o.renderFixed?{}:{onMousedown:te,onMouseup:le}),[(0,_vue.h)("i",{class:getIcon().TABLE_CUSTOM_SORT})]):(0,_vue.h)("div",{class:"vxe-table-custom-popup--column-sort-placeholder"}):(0,_vue.createCommentVNode)(),"html"===o.type?(0,_vue.h)("div",{key:"1",class:"vxe-table-custom-popup--title",innerHTML:r}):(0,_vue.h)("div",{key:"0",class:"vxe-table-custom-popup--title",title:r},r)])]),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:_.resizable||d)?(0,_vue.h)("span","-"):F?(0,_vue.h)(F,{type:"integer",immediate:!1,disabled:l||u,modelValue:o.renderResizeWidth,min:e||void 0,max:t||void 0,"onUpdate:modelValue"(e){e=Math.max(0,Number(e));o.renderResizeWidth=e},onChange(){ne(o)}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)(),p?(0,_vue.h)("td",{class:"vxe-table-custom-popup--column-item col--fixed"},[s?(0,_vue.h)("span","-"):R?(0,_vue.h)(R,{modelValue:o.renderFixed||"",type:"button",size:"mini",disabled:l||u,options:[{label:getI18n("vxe.custom.setting.fixedLeft"),value:"left",disabled:l||u||I},{label:getI18n("vxe.custom.setting.fixedUnset"),value:"",disabled:l||u},{label:getI18n("vxe.custom.setting.fixedRight"),value:"right",disabled:l||u||I}],onChange({label:e,$event:t}){Q(o,e,t)}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}});s={default:()=>(0,_vue.h)("div",{ref:P,class:"vxe-table-custom-popup--body-wrapper"},y?H.callSlot(y,O):[(0,_vue.h)("div",{ref:X,class:"vxe-table-custom-popup--handle-wrapper"},[A?(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-top"},H.callSlot(A,O)):renderEmptyElement(H),(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)(),(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":B,"is--indeterminate":w}],title:getI18n("vxe.table.allTitle"),onClick:ee},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",w?getIcon().TABLE_CHECKBOX_INDETERMINATE:B?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.toolbar.customAll"))])]):(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."+(u?"colFixedMax":"colFixed"),[u])):(0,_vue.createCommentVNode)()])]),(0,_vue.h)(_vue.TransitionGroup,{class:"vxe-table-custom--panel-list",tag:"tbody",name:"vxe-table-custom--list"},{default:()=>S})])]),D?(0,_vue.h)("div",{class:"vxe-table-custom-popup--table-bottom"},H.callSlot(D,O)):renderEmptyElement(H),ue()])]),footer:()=>k?H.callSlot(k,O):(0,_vue.h)("div",{class:"vxe-table-custom-popup--footer"},[M?(0,_vue.h)(M,{content:a.resetButtonText||getI18n("vxe.custom.cstmRestore"),disabled:!l,onClick:Z}):(0,_vue.createCommentVNode)(),c?M?(0,_vue.h)(M,{content:a.closeButtonText||getI18n("vxe.table.customClose"),onClick:j}):(0,_vue.createCommentVNode)():M?(0,_vue.h)(M,{content:a.cancelButtonText||getI18n("vxe.table.customCancel"),onClick:Y}):(0,_vue.createCommentVNode)(),!c&&M?(0,_vue.h)(M,{status:"primary",content:a.confirmButtonText||getI18n("vxe.custom.cstmConfirm"),onClick:q}):(0,_vue.createCommentVNode)()])};return V&&(s.header=()=>H.callSlot(V,O)),"drawer"===i?L?(0,_vue.h)(L,{key:"drawer",className:["vxe-table-custom-drawer-wrapper","vxe-table--ignore-clear",T.className||""].join(" "),modelValue:t.visible,title:T.title||getI18n("vxe.custom.cstmTitle"),width:T.width||Math.min(880,Math.floor(.6*document.documentElement.clientWidth)),position:T.position,resize:!!T.resize,escClosable:!!T.escClosable,maskClosable:!!T.maskClosable,destroyOnClose:!0,showFooter:!0,"onUpdate:modelValue"(e){t.visible=e}},s):(0,_vue.createCommentVNode)():U?(0,_vue.h)(U,{key:"modal",className:["vxe-table-custom-modal-wrapper","vxe-table--ignore-clear",f.className||""].join(" "),modelValue:t.visible,title:f.title||getI18n("vxe.custom.cstmTitle"),width:f.width||Math.min(880,document.documentElement.clientWidth),minWidth:f.minWidth||700,height:f.height||Math.min(680,document.documentElement.clientHeight),minHeight:f.minHeight||400,showZoom:f.showZoom,showMaximize:f.showMaximize,showMinimize:f.showMinimize,mask:f.mask,lockView:f.lockView,resize:f.resize,escClosable:!!f.escClosable,maskClosable:!!f.maskClosable,destroyOnClose:!0,showFooter:!0,"onUpdate:modelValue"(e){t.visible=e}},s):(0,_vue.createCommentVNode)()}:()=>{var e=H.xeGrid,t=H.props,l=N.customStore,{treeConfig:t,rowGroupConfig:o,aggregateConfig:a}=t,{isCustomStatus:s,customColumnList:i}=G,r=W.value;let d=r.immediate;var n=K.value,u=l.maxHeight;let{checkMethod:c,visibleMethod:m,allowVisible:v,allowSort:p,allowFixed:x,trigger:h,placement:g}=r,_=$.value,b=n.isCrossDrag;var n=r.slots||{},C=n.header,f=n.top,T=n.bottom,I=n.default,n=n.footer;let E=[];var V={},A=l.isAll,D=l.isIndeterminate,e=("hover"===h&&(V.onMouseenter=k,V.onMouseleave=S),{$table:H,$grid:e,columns:i,isAllChecked:A,isAllIndeterminate:D,isCustomStatus:s});return _xeUtils.default.eachTree(i,(l,e,t,o,a)=>{if(!m||m({$table:H,column:l})){var s=l.renderVisible,i=l.halfVisible,r=l.children&&l.children.length,n=(0,_utils.formatText)(l.getTitle(),1);let t=!!c&&!c({$table:H,column:l});var u=!s;E.push((0,_vue.h)("li",{key:l.id,colid:l.id,class:["vxe-table-custom--option","level--"+l.level,{"is--hidden":t||u,"is--group":r}],onDragstart:oe,onDragend:ae,onDragover:se},[v?(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":s,"is--indeterminate":i,"is--disabled":t}],title:getI18n("vxe.custom.setting.colVisible"),onClick:e=>{t||J(l,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)(),(0,_vue.h)("div",{class:"vxe-table-custom--name-option"},[p&&(b&&d||1===l.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":t||u||l.renderFixed}],title:getI18n("vxe.custom.setting.sortHelpTip")},t||u||l.renderFixed?{}:{onMousedown:te,onMouseup:le}),[(0,_vue.h)("i",{class:getIcon().TABLE_CUSTOM_SORT})])]):(0,_vue.createCommentVNode)(),"html"===l.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)]),!a&&x?(0,_vue.h)("div",{class:"vxe-table-custom--fixed-option"},[M?(0,_vue.h)(M,{mode:"text",icon:"left"===l.renderFixed?getIcon().TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:getIcon().TOOLBAR_TOOLS_FIXED_LEFT,status:"left"===l.renderFixed?"primary":"",disabled:t||u||_&&!l.renderFixed,title:getI18n("left"===l.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedLeft"),onClick:({$event:e})=>{Q(l,"left",e)}}):(0,_vue.createCommentVNode)(),M?(0,_vue.h)(M,{mode:"text",icon:"right"===l.renderFixed?getIcon().TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:getIcon().TOOLBAR_TOOLS_FIXED_RIGHT,status:"right"===l.renderFixed?"primary":"",disabled:t||u||_&&!l.renderFixed,title:getI18n("right"===l.renderFixed?"vxe.toolbar.cancelFixed":"vxe.toolbar.fixedRight"),onClick:({$event:e})=>{Q(l,"right",e)}}):(0,_vue.createCommentVNode)()]):(0,_vue.createCommentVNode)()]))}}),(0,_vue.h)("div",{ref:y,key:"simple",class:["vxe-table-custom-wrapper","placement--"+g,{"is--active":l.visible}],style:u&&!["left","right"].includes(g)?{maxHeight:u+"px"}:{}},l.visible?[(0,_vue.h)("div",{ref:P,class:"vxe-table-custom-simple--body-wrapper"},[!t&&(a||o)&&H.getPivotTableAggregateSimplePanel?(0,_vue.h)(H.getPivotTableAggregateSimplePanel(),{customStore:l}):renderEmptyElement(H),(0,_vue.h)("div",{ref:X,class:"vxe-table-custom--handle-wrapper"},[(0,_vue.h)("div",{class:"vxe-table-custom--header"},C?H.callSlot(C,e):[(0,_vue.h)("ul",{class:"vxe-table-custom--panel-list"},[(0,_vue.h)("li",{class:"vxe-table-custom--option"},[v?(0,_vue.h)("div",{class:["vxe-table-custom--checkbox-option",{"is--checked":A,"is--indeterminate":D}],title:getI18n("vxe.table.allTitle"),onClick:ee},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",D?getIcon().TABLE_CHECKBOX_INDETERMINATE:A?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",{class:"vxe-table-custom--body"},[f?(0,_vue.h)("div",{class:"vxe-table-custom--panel-top"},H.callSlot(f,e)):renderEmptyElement(H),I?(0,_vue.h)("div",{class:"vxe-table-custom--panel-body"},H.callSlot(I,e)):(0,_vue.h)(_vue.TransitionGroup,Object.assign({class:"vxe-table-custom--panel-list",name:"vxe-table-custom--list",tag:"ul"},V),{default:()=>E}),T?(0,_vue.h)("div",{class:"vxe-table-custom--panel-bottom"},H.callSlot(T,e)):renderEmptyElement(H)]),r.showFooter?(0,_vue.h)("div",{class:"vxe-table-custom--footer"},n?H.callSlot(n,e):[(0,_vue.h)("div",{class:"vxe-table-custom--footer-buttons"},[M?(0,_vue.h)(M,{mode:"text",content:r.resetButtonText||getI18n("vxe.table.customRestore"),disabled:!s,onClick:Z}):(0,_vue.createCommentVNode)(),d?M?(0,_vue.h)(M,{mode:"text",content:r.closeButtonText||getI18n("vxe.table.customClose"),onClick:j}):(0,_vue.createCommentVNode)():M?(0,_vue.h)(M,{mode:"text",content:r.cancelButtonText||getI18n("vxe.table.customCancel"),onClick:Y}):(0,_vue.createCommentVNode)(),!d&&M?(0,_vue.h)(M,{mode:"text",status:"primary",content:r.confirmButtonText||getI18n("vxe.table.customConfirm"),onClick:q}):(0,_vue.createCommentVNode)()])]):null]),ue()])]:[])})()}};return(0,_vue.provide)("$xeTableCustomPanel",e),e},render(){return this.renderVN()}});
|
|
@@ -14,7 +14,7 @@ const {
|
|
|
14
14
|
hooks,
|
|
15
15
|
getI18n
|
|
16
16
|
} = _ui.VxeUI;
|
|
17
|
-
const tableEditMethodKeys = ['insert', 'insertAt', 'insertNextAt', 'insertChild', 'insertChildAt', 'insertChildNextAt', 'remove', 'removeCheckboxRow', 'removeRadioRow', 'removeCurrentRow', 'getRecordset', 'getInsertRecords', 'getRemoveRecords', 'getUpdateRecords', 'getEditRecord', 'getActiveRecord', 'getSelectedCell', 'clearEdit', 'clearActived', 'clearSelected', 'isEditByRow', 'isActiveByRow', 'setEditRow', 'setActiveRow', 'setEditCell', 'setActiveCell', 'setSelectCell'];
|
|
17
|
+
const tableEditMethodKeys = ['insert', 'insertAt', 'insertNextAt', 'insertChild', 'insertChildAt', 'insertChildNextAt', 'remove', 'removeCheckboxRow', 'removeRadioRow', 'removeCurrentRow', 'getRecordset', 'getInsertRecords', 'getRemoveRecords', 'getUpdateRecords', 'getEditRecord', 'getActiveRecord', 'getEditCell', 'getSelectedCell', 'clearEdit', 'clearActived', 'clearSelected', 'isEditByRow', 'isActiveByRow', 'setEditRow', 'setActiveRow', 'setEditCell', 'setActiveCell', 'setSelectCell'];
|
|
18
18
|
hooks.add('tableEditModule', {
|
|
19
19
|
setupTable($xeTable) {
|
|
20
20
|
const {
|
|
@@ -911,23 +911,56 @@ hooks.add('tableEditModule', {
|
|
|
911
911
|
return [];
|
|
912
912
|
},
|
|
913
913
|
getActiveRecord() {
|
|
914
|
-
(0, _log.warnLog)('vxe.error.delFunc', ['getActiveRecord', '
|
|
915
|
-
|
|
914
|
+
(0, _log.warnLog)('vxe.error.delFunc', ['getActiveRecord', 'getEditCell']);
|
|
915
|
+
const {
|
|
916
|
+
editStore
|
|
917
|
+
} = reactData;
|
|
918
|
+
const {
|
|
919
|
+
fullAllDataRowIdData
|
|
920
|
+
} = internalData;
|
|
921
|
+
const {
|
|
922
|
+
args,
|
|
923
|
+
row
|
|
924
|
+
} = editStore.actived;
|
|
925
|
+
if (args && row && fullAllDataRowIdData[(0, _util.getRowid)($xeTable, row)]) {
|
|
926
|
+
return Object.assign({}, args, {
|
|
927
|
+
row
|
|
928
|
+
});
|
|
929
|
+
}
|
|
930
|
+
return null;
|
|
916
931
|
},
|
|
917
932
|
getEditRecord() {
|
|
933
|
+
(0, _log.warnLog)('vxe.error.delFunc', ['getEditRecord', 'getEditCell']);
|
|
918
934
|
const {
|
|
919
935
|
editStore
|
|
920
936
|
} = reactData;
|
|
921
937
|
const {
|
|
922
|
-
|
|
938
|
+
fullAllDataRowIdData
|
|
923
939
|
} = internalData;
|
|
924
|
-
const el = refElem.value;
|
|
925
940
|
const {
|
|
926
941
|
args,
|
|
927
942
|
row
|
|
928
943
|
} = editStore.actived;
|
|
929
|
-
if (args &&
|
|
930
|
-
return Object.assign({}, args
|
|
944
|
+
if (args && row && fullAllDataRowIdData[(0, _util.getRowid)($xeTable, row)]) {
|
|
945
|
+
return Object.assign({}, args, {
|
|
946
|
+
row
|
|
947
|
+
});
|
|
948
|
+
}
|
|
949
|
+
return null;
|
|
950
|
+
},
|
|
951
|
+
getEditCell() {
|
|
952
|
+
const {
|
|
953
|
+
editStore
|
|
954
|
+
} = reactData;
|
|
955
|
+
const {
|
|
956
|
+
row,
|
|
957
|
+
column
|
|
958
|
+
} = editStore.actived;
|
|
959
|
+
if (column && row) {
|
|
960
|
+
return {
|
|
961
|
+
row,
|
|
962
|
+
column
|
|
963
|
+
};
|
|
931
964
|
}
|
|
932
965
|
return null;
|
|
933
966
|
},
|
|
@@ -939,11 +972,14 @@ hooks.add('tableEditModule', {
|
|
|
939
972
|
editStore
|
|
940
973
|
} = reactData;
|
|
941
974
|
const {
|
|
942
|
-
|
|
975
|
+
row,
|
|
943
976
|
column
|
|
944
977
|
} = editStore.selected;
|
|
945
|
-
if (
|
|
946
|
-
return
|
|
978
|
+
if (row && column) {
|
|
979
|
+
return {
|
|
980
|
+
row,
|
|
981
|
+
column
|
|
982
|
+
};
|
|
947
983
|
}
|
|
948
984
|
return null;
|
|
949
985
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(p){let{props:R,reactData:m,internalData:C}=p,o=p.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:x,computeCheckboxOpts:_,computeTreeOpts:E,computeValidOpts:n}=p.getComputeMaps(),s=_xeUtils.default.browse(),I={},g={},b=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},a=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=o.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},d=()=>{var{editStore:e,tableColumn:t}=m,l=x.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))},F=(e,t)=>{let{tableFullTreeData:i,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:u}=C;var l=E.value;let{rowField:s,parentField:c,mapChildrenField:g}=l,w=l.children||l.childrenField,v=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(p,l),o=t?_xeUtils.default.findTree(i,e=>t===e[s],{children:g}):null;if(o){var o=o.item,a=u[(0,_util.getRowid)(p,o)],a=a?a.level:0;let e=o[w],t=o[g];_xeUtils.default.isArray(e)||(e=o[w]=[]),_xeUtils.default.isArray(t)||(t=o[w]=[]),e[v](l),t[v](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,u[r]=o}else{t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[v](l),i[v](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=a,u[r]=a}})},u=(t,l,d)=>{let o=R.treeConfig,{tableFullTreeData:e,afterFullData:a,mergeBodyList:i,tableFullData:n,fullDataRowIdData:u,fullAllDataRowIdData:s,insertRowMaps:r}=C,c=E.value,{transform:g,rowField:w,mapChildrenField:v}=c,f=c.children||c.childrenField,h=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(p.defineField(t.map(e=>Object.assign(o&&g?{[v]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&g?F(h,!1):(h.forEach(e=>{var t=(0,_util.getRowid)(p,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,s[t]=l,a.unshift(e),n.unshift(e)}),i.forEach(e=>{var t=e.row;0<t&&(e.row=t+h.length)}));else if(-1===l)o&&g?F(h,!0):(h.forEach(e=>{var t=(0,_util.getRowid)(p,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,s[t]=l,a.push(e),n.push(e)}),i.forEach(e=>{var{row:t,rowspan:l}=e;t+l>a.length&&(e.rowspan=l+h.length)}));else if(o&&g){let n=_xeUtils.default.findTree(e,e=>l[w]===e[w],{children:v});if(n){let o=n.parent,a=o?o[v]:e;t=s[(0,_util.getRowid)(p,o)];let i=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(p,e);e[c.parentField]&&o&&e[c.parentField]!==o[w]&&(0,_log.errLog)("vxe.error.errProp",[c.parentField+"="+e[c.parentField],c.parentField+"="+o[w]]),o&&(e[c.parentField]=o[w]);let r=n.index+t;d&&(r+=1),a.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,s[l]=t}),o){t=_xeUtils.default.findTree(e,e=>l[w]===e[w],{children:f});if(t){var x=t.items;let e=t.index;d&&(e+=1),x.splice(e,0,...h)}}}else(0,_log.warnLog)("vxe.error.unableInsert"),F(h,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<a.length&&(r=l):r=p.findRowIndexOf(a,l),-1===(r=d?Math.min(a.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));a.splice(r,0,...h);t=p.findRowIndexOf(n,l);-1<t?n.splice(t+(d?1:0),0,...h):n.push(...h),i.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+h.length:t+l>r&&(e.rowspan=l+h.length)})}return h.forEach(e=>{var t=(0,_util.getRowid)(p,e);r[t]=e}),m.insertRowFlag++,p.cacheRowMap(!1),p.updateScrollYStatus(),p.handleTableData(o&&g),o&&g||p.updateAfterDataIndex(),p.updateFooter(),p.handleUpdateBodyMerge(),p.checkSelectionStatus(),m.scrollYLoad&&p.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(p.updateCellAreas(),p.recalculate(!0))).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},r=(e,t,l,r)=>{var o=R.treeConfig;let{transform:a,rowField:i,parentField:n}=E.value;return o&&a?(_xeUtils.default.isArray(e)||(e=[e]),u(e.map(e=>Object.assign({},e,{[n]:t[i]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))},A=(e,t)=>{var l=m.editStore,{actived:l,focused:r}=l,{row:o,column:a}=l,i=n.value;if(o||a){if(t&&(0,_util.getRowid)(p,t)!==(0,_util.getRowid)(p,o))return(0,_vue.nextTick)();d(),l.args=null,l.row=null,l.column=null,p.updateFooter(),p.dispatchEvent("edit-closed",{row:o,rowIndex:p.getRowIndex(o),$rowIndex:p.getVMRowIndex(o),column:a,columnIndex:p.getColumnIndex(a),$columnIndex:p.getVMColumnIndex(a)},e||null)}return r.row=null,r.column=null,i.autoClear&&("full"!==i.msgMode||"obsolete"===getConfig().cellVaildMode)&&p.clearValidate?p.clearValidate():(0,_vue.nextTick)().then(()=>p.updateCellAreas())},i=(l,r,o,e)=>{let a=p.xeGrid;var{editConfig:t,mouseConfig:i}=R,{editStore:n,tableColumn:d}=m,u=x.value,s=u.mode,{actived:n,focused:c}=n;let{row:g,column:w}=l;var v=w.editRender,f=l.cell||p.getCellElement(g,w),h=u.beforeEditMethod||u.activeMethod;if((l.cell=f)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(v)&&!p.isPendingByRow(g)&&!p.isAggregateRecord(g)){if(n.row!==g||"cell"===s&&n.column!==w){let t="edit-disabled";if(!h||h(Object.assign(Object.assign({},l),{$table:p,$grid:a}))){i&&(p.clearSelected(),p.clearCellAreas)&&(p.clearCellAreas(),p.clearCopyCellArea()),p.closeTooltip(),n.column&&A(r),t="edit-activated",w.renderHeight=f.offsetHeight,n.args=l,n.row=g,n.column=w,"row"===s?d.forEach(e=>b(g,e)):b(g,w);let e=u.afterEditMethod;(0,_vue.nextTick)(()=>{o&&p.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:p,$grid:a}))})}p.dispatchEvent(t,{row:g,rowIndex:p.getRowIndex(g),$rowIndex:p.getVMRowIndex(g),column:w,columnIndex:p.getColumnIndex(w),$columnIndex:p.getVMColumnIndex(w)},r),"edit-activated"===t&&p.dispatchEvent("edit-actived",{row:g,rowIndex:p.getRowIndex(g),$rowIndex:p.getVMRowIndex(g),column:w,columnIndex:p.getColumnIndex(w),$columnIndex:p.getVMColumnIndex(w)},r)}else{t=n.column;i&&(p.clearSelected(),p.clearCellAreas)&&(p.clearCellAreas(),p.clearCopyCellArea()),t!==w&&(v=t.model,v.update&&(0,_util.setCellValue)(g,t,v.value),p.clearValidate)&&p.clearValidate(g,w),w.renderHeight=f.offsetHeight,n.args=l,n.column=w,e&&setTimeout(()=>{p.handleFocus(l,r)})}c.column=null,c.row=null,p.focus()}return(0,_vue.nextTick)()},w=(t,e,l)=>{var r=R.editConfig;let o=_xeUtils.default.isString(e)?p.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)&&!p.isAggregateRecord(t)?Promise.resolve(l?p.scrollToRow(t,o):null).then(()=>{var e=p.getCellElement(t,o);return e&&(i({row:t,rowIndex:p.getRowIndex(t),column:o,columnIndex:p.getColumnIndex(o),cell:e,$table:p},null,l,l),C._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return I={insert(e){return u(e,null)},insertAt(e,t){return u(e,t)},insertNextAt(e,t){return u(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=R.treeConfig,l=m.editStore;let{tableFullTreeData:r,selectCheckboxMaps:o,afterFullData:a,mergeBodyList:i,tableFullData:n,pendingRowMaps:d,insertRowMaps:u,removeRowMaps:s}=C;var c=_.value,g=E.value;let{transform:w,mapChildrenField:v}=g,f=g.children||g.childrenField;g=l.actived,l=c.checkField;let h=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;p.isInsertByRow(e)||(t=(0,_util.getRowid)(p,e),s[t]=e)}),l||(e.forEach(e=>{e=(0,_util.getRowid)(p,e);o[e]&&delete o[e]}),m.updateCheckboxFlag++),n===e?(e=h=n.slice(0),C.tableFullData=[],C.afterFullData=[],p.clearMergeCells()):t&&w?e.forEach(e=>{let t=(0,_util.getRowid)(p,e);var l=_xeUtils.default.findTree(r,e=>t===(0,_util.getRowid)(p,e),{children:v}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(r,e=>t===(0,_util.getRowid)(p,e),{children:f})),l=(l&&l.items.splice(l.index,1),p.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=p.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),h.push(t[0]));let r=p.findRowIndexOf(a,e);-1<r&&(i.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),a.splice(r,1))}),g.row&&-1<p.findRowIndexOf(e,g.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(p,e);u[e]&&delete u[e],d[e]&&delete d[e]}),m.removeRowFlag++,m.insertRowFlag++,m.pendingRowFlag++,p.cacheRowMap(!1),p.handleTableData(t&&w),p.updateFooter(),p.handleUpdateBodyMerge(),t&&w||p.updateAfterDataIndex(),p.checkSelectionStatus(),m.scrollYLoad&&p.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(p.updateCellAreas(),p.recalculate(!0))).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},removeCheckboxRow(){return I.remove(p.getCheckboxRecords()).then(e=>(p.clearCheckboxRow(),e))},removeRadioRow(){var e=p.getRadioRecord();return I.remove(e||[]).then(e=>(p.clearRadioRow(),e))},removeCurrentRow(){var e=p.getCurrentRecord();return I.remove(e||[]).then(e=>(p.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=p.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>p.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=C,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=R,l=C.tableFullData,r=E.value;return e?(d(),t?_xeUtils.default.filterTree(l,e=>p.isUpdateByRow(e),r):l.filter(e=>p.isUpdateByRow(e))):[]},getActiveRecord(){return(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),p.getEditRecord()},getEditRecord(){var e=m.editStore,t=C.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<p.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=m.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),p.clearEdit(e)},clearEdit(e){return A(null,e)},clearSelected(){var e=m.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),p.isEditByRow(e)},isEditByRow(e){var t=m.editStore;return t.actived.row===e},setActiveRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=C.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender)),o=!1;return t&&(o=!0)!==t&&(r=_xeUtils.default.isString(t)?p.getColumnByField(t):t),w(e,r,o)},setActiveCell(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(e,t){return w(e,t,!0)},setSelectCell(e,t){var l=m.tableData,r=x.value,t=_xeUtils.default.isString(t)?p.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=p.findRowIndexOf(l,e))&&t&&(l=p.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:p.getColumnIndex(t),cell:l},p.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return i(e,t,!0,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:A,handleFocus(r){var{row:o,column:a,cell:i}=r,n=a.editRender,d=x.value;if((0,_utils.isEnableConf)(n)){var u=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&u&&(e=u.tableAutoFocus||u.tableAutofocus||u.autofocus),!t&&u&&(t=u.tableAutoSelect||u.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?i.querySelector("input,textarea"):i.querySelector(e))&&l.focus()),l?t?l.select():s.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!a.fixed&&p.scrollToRow(o,a)}},handleSelected(e,t){var l=R.mouseConfig,r=m.editStore,o=c.value;let a=x.value,{actived:i,selected:n}=r,{row:d,column:u}=e,s=l&&o.selected;return!s||n.row===d&&n.column===u||(i.row!==d||"cell"===a.mode&&i.column!==u)&&(A(t),p.clearSelected(),p.clearCellAreas&&(p.clearCellAreas(),p.clearCopyCellArea()),n.args=e,n.row=d,n.column=u,s&&g.addCellSelectedClass(),p.focus(),t)&&p.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=m.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=p.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
|
|
1
|
+
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getEditCell","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(R){let{props:m,reactData:p,internalData:C}=R,t=R.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:x,computeCheckboxOpts:_,computeTreeOpts:E,computeValidOpts:n}=R.getComputeMaps(),s=_xeUtils.default.browse(),I={},g={},b=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},a=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=t.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},d=()=>{var{editStore:e,tableColumn:t}=p,l=x.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))},F=(e,t)=>{let{tableFullTreeData:i,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:u}=C;var l=E.value;let{rowField:s,parentField:c,mapChildrenField:g}=l,w=l.children||l.childrenField,v=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(R,l),o=t?_xeUtils.default.findTree(i,e=>t===e[s],{children:g}):null;if(o){var o=o.item,a=u[(0,_util.getRowid)(R,o)],a=a?a.level:0;let e=o[w],t=o[g];_xeUtils.default.isArray(e)||(e=o[w]=[]),_xeUtils.default.isArray(t)||(t=o[w]=[]),e[v](l),t[v](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,u[r]=o}else{t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[v](l),i[v](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=a,u[r]=a}})},u=(t,l,d)=>{let o=m.treeConfig,{tableFullTreeData:e,afterFullData:a,mergeBodyList:i,tableFullData:n,fullDataRowIdData:u,fullAllDataRowIdData:s,insertRowMaps:r}=C,c=E.value,{transform:g,rowField:w,mapChildrenField:v}=c,f=c.children||c.childrenField,h=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(R.defineField(t.map(e=>Object.assign(o&&g?{[v]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&g?F(h,!1):(h.forEach(e=>{var t=(0,_util.getRowid)(R,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,s[t]=l,a.unshift(e),n.unshift(e)}),i.forEach(e=>{var t=e.row;0<t&&(e.row=t+h.length)}));else if(-1===l)o&&g?F(h,!0):(h.forEach(e=>{var t=(0,_util.getRowid)(R,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,s[t]=l,a.push(e),n.push(e)}),i.forEach(e=>{var{row:t,rowspan:l}=e;t+l>a.length&&(e.rowspan=l+h.length)}));else if(o&&g){let n=_xeUtils.default.findTree(e,e=>l[w]===e[w],{children:v});if(n){let o=n.parent,a=o?o[v]:e;t=s[(0,_util.getRowid)(R,o)];let i=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(R,e);e[c.parentField]&&o&&e[c.parentField]!==o[w]&&(0,_log.errLog)("vxe.error.errProp",[c.parentField+"="+e[c.parentField],c.parentField+"="+o[w]]),o&&(e[c.parentField]=o[w]);let r=n.index+t;d&&(r+=1),a.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,s[l]=t}),o){t=_xeUtils.default.findTree(e,e=>l[w]===e[w],{children:f});if(t){var x=t.items;let e=t.index;d&&(e+=1),x.splice(e,0,...h)}}}else(0,_log.warnLog)("vxe.error.unableInsert"),F(h,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<a.length&&(r=l):r=R.findRowIndexOf(a,l),-1===(r=d?Math.min(a.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));a.splice(r,0,...h);t=R.findRowIndexOf(n,l);-1<t?n.splice(t+(d?1:0),0,...h):n.push(...h),i.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+h.length:t+l>r&&(e.rowspan=l+h.length)})}return h.forEach(e=>{var t=(0,_util.getRowid)(R,e);r[t]=e}),p.insertRowFlag++,R.cacheRowMap(!1),R.updateScrollYStatus(),R.handleTableData(o&&g),o&&g||R.updateAfterDataIndex(),R.updateFooter(),R.handleUpdateBodyMerge(),R.checkSelectionStatus(),p.scrollYLoad&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(R.updateCellAreas(),R.recalculate(!0))).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},r=(e,t,l,r)=>{var o=m.treeConfig;let{transform:a,rowField:i,parentField:n}=E.value;return o&&a?(_xeUtils.default.isArray(e)||(e=[e]),u(e.map(e=>Object.assign({},e,{[n]:t[i]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))},A=(e,t)=>{var l=p.editStore,{actived:l,focused:r}=l,{row:o,column:a}=l,i=n.value;if(o||a){if(t&&(0,_util.getRowid)(R,t)!==(0,_util.getRowid)(R,o))return(0,_vue.nextTick)();d(),l.args=null,l.row=null,l.column=null,R.updateFooter(),R.dispatchEvent("edit-closed",{row:o,rowIndex:R.getRowIndex(o),$rowIndex:R.getVMRowIndex(o),column:a,columnIndex:R.getColumnIndex(a),$columnIndex:R.getVMColumnIndex(a)},e||null)}return r.row=null,r.column=null,i.autoClear&&("full"!==i.msgMode||"obsolete"===getConfig().cellVaildMode)&&R.clearValidate?R.clearValidate():(0,_vue.nextTick)().then(()=>R.updateCellAreas())},i=(l,r,o,e)=>{let a=R.xeGrid;var{editConfig:t,mouseConfig:i}=m,{editStore:n,tableColumn:d}=p,u=x.value,s=u.mode,{actived:n,focused:c}=n;let{row:g,column:w}=l;var v=w.editRender,f=l.cell||R.getCellElement(g,w),h=u.beforeEditMethod||u.activeMethod;if((l.cell=f)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(v)&&!R.isPendingByRow(g)&&!R.isAggregateRecord(g)){if(n.row!==g||"cell"===s&&n.column!==w){let t="edit-disabled";if(!h||h(Object.assign(Object.assign({},l),{$table:R,$grid:a}))){i&&(R.clearSelected(),R.clearCellAreas)&&(R.clearCellAreas(),R.clearCopyCellArea()),R.closeTooltip(),n.column&&A(r),t="edit-activated",w.renderHeight=f.offsetHeight,n.args=l,n.row=g,n.column=w,"row"===s?d.forEach(e=>b(g,e)):b(g,w);let e=u.afterEditMethod;(0,_vue.nextTick)(()=>{o&&R.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:R,$grid:a}))})}R.dispatchEvent(t,{row:g,rowIndex:R.getRowIndex(g),$rowIndex:R.getVMRowIndex(g),column:w,columnIndex:R.getColumnIndex(w),$columnIndex:R.getVMColumnIndex(w)},r),"edit-activated"===t&&R.dispatchEvent("edit-actived",{row:g,rowIndex:R.getRowIndex(g),$rowIndex:R.getVMRowIndex(g),column:w,columnIndex:R.getColumnIndex(w),$columnIndex:R.getVMColumnIndex(w)},r)}else{t=n.column;i&&(R.clearSelected(),R.clearCellAreas)&&(R.clearCellAreas(),R.clearCopyCellArea()),t!==w&&(v=t.model,v.update&&(0,_util.setCellValue)(g,t,v.value),R.clearValidate)&&R.clearValidate(g,w),w.renderHeight=f.offsetHeight,n.args=l,n.column=w,e&&setTimeout(()=>{R.handleFocus(l,r)})}c.column=null,c.row=null,R.focus()}return(0,_vue.nextTick)()},w=(t,e,l)=>{var r=m.editConfig;let o=_xeUtils.default.isString(e)?R.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)&&!R.isAggregateRecord(t)?Promise.resolve(l?R.scrollToRow(t,o):null).then(()=>{var e=R.getCellElement(t,o);return e&&(i({row:t,rowIndex:R.getRowIndex(t),column:o,columnIndex:R.getColumnIndex(o),cell:e,$table:R},null,l,l),C._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return I={insert(e){return u(e,null)},insertAt(e,t){return u(e,t)},insertNextAt(e,t){return u(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=m.treeConfig,l=p.editStore;let{tableFullTreeData:r,selectCheckboxMaps:o,afterFullData:a,mergeBodyList:i,tableFullData:n,pendingRowMaps:d,insertRowMaps:u,removeRowMaps:s}=C;var c=_.value,g=E.value;let{transform:w,mapChildrenField:v}=g,f=g.children||g.childrenField;g=l.actived,l=c.checkField;let h=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;R.isInsertByRow(e)||(t=(0,_util.getRowid)(R,e),s[t]=e)}),l||(e.forEach(e=>{e=(0,_util.getRowid)(R,e);o[e]&&delete o[e]}),p.updateCheckboxFlag++),n===e?(e=h=n.slice(0),C.tableFullData=[],C.afterFullData=[],R.clearMergeCells()):t&&w?e.forEach(e=>{let t=(0,_util.getRowid)(R,e);var l=_xeUtils.default.findTree(r,e=>t===(0,_util.getRowid)(R,e),{children:v}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(r,e=>t===(0,_util.getRowid)(R,e),{children:f})),l=(l&&l.items.splice(l.index,1),R.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=R.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),h.push(t[0]));let r=R.findRowIndexOf(a,e);-1<r&&(i.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),a.splice(r,1))}),g.row&&-1<R.findRowIndexOf(e,g.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(R,e);u[e]&&delete u[e],d[e]&&delete d[e]}),p.removeRowFlag++,p.insertRowFlag++,p.pendingRowFlag++,R.cacheRowMap(!1),R.handleTableData(t&&w),R.updateFooter(),R.handleUpdateBodyMerge(),t&&w||R.updateAfterDataIndex(),R.checkSelectionStatus(),p.scrollYLoad&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(R.updateCellAreas(),R.recalculate(!0))).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},removeCheckboxRow(){return I.remove(R.getCheckboxRecords()).then(e=>(R.clearCheckboxRow(),e))},removeRadioRow(){var e=R.getRadioRecord();return I.remove(e||[]).then(e=>(R.clearRadioRow(),e))},removeCurrentRow(){var e=R.getCurrentRecord();return I.remove(e||[]).then(e=>(R.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=R.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>R.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=C,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=m,l=C.tableFullData,r=E.value;return e?(d(),t?_xeUtils.default.filterTree(l,e=>R.isUpdateByRow(e),r):l.filter(e=>R.isUpdateByRow(e))):[]},getActiveRecord(){(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditCell"]);var e=p.editStore,t=C.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(R,l)]?Object.assign({},e,{row:l}):null},getEditRecord(){(0,_log.warnLog)("vxe.error.delFunc",["getEditRecord","getEditCell"]);var e=p.editStore,t=C.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(R,l)]?Object.assign({},e,{row:l}):null},getEditCell(){var e=p.editStore,{row:e,column:t}=e.actived;return t&&e?{row:e,column:t}:null},getSelectedCell(){var e=p.editStore,{row:e,column:t}=e.selected;return e&&t?{row:e,column:t}:null},clearActived(e){return(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),R.clearEdit(e)},clearEdit(e){return A(null,e)},clearSelected(){var e=p.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),R.isEditByRow(e)},isEditByRow(e){var t=p.editStore;return t.actived.row===e},setActiveRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=C.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender)),o=!1;return t&&(o=!0)!==t&&(r=_xeUtils.default.isString(t)?R.getColumnByField(t):t),w(e,r,o)},setActiveCell(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(e,t){return w(e,t,!0)},setSelectCell(e,t){var l=p.tableData,r=x.value,t=_xeUtils.default.isString(t)?R.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=R.findRowIndexOf(l,e))&&t&&(l=R.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:R.getColumnIndex(t),cell:l},R.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return i(e,t,!0,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:A,handleFocus(r){var{row:o,column:a,cell:i}=r,n=a.editRender,d=x.value;if((0,_utils.isEnableConf)(n)){var u=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&u&&(e=u.tableAutoFocus||u.tableAutofocus||u.autofocus),!t&&u&&(t=u.tableAutoSelect||u.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?i.querySelector("input,textarea"):i.querySelector(e))&&l.focus()),l?t?l.select():s.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!a.fixed&&R.scrollToRow(o,a)}},handleSelected(e,t){var l=m.mouseConfig,r=p.editStore,o=c.value;let a=x.value,{actived:i,selected:n}=r,{row:d,column:u}=e,s=l&&o.selected;return!s||n.row===d&&n.column===u||(i.row!==d||"cell"===a.mode&&i.column!==u)&&(A(t),R.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea()),n.args=e,n.row=d,n.column=u,s&&g.addCellSelectedClass(),R.focus(),t)&&R.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=p.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=R.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
|
|
@@ -348,11 +348,20 @@ hooks.add('tableExportModule', {
|
|
|
348
348
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
349
349
|
// 如果是树表格只允许导出数据源
|
|
350
350
|
const rest = [];
|
|
351
|
-
const expandMaps =
|
|
351
|
+
const expandMaps = {};
|
|
352
|
+
const useMaps = {};
|
|
353
|
+
const {
|
|
354
|
+
handleGetRowId
|
|
355
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
352
356
|
_xeUtils.default.eachTree(datas, (item, $rowIndex, items, path, parent, nodes) => {
|
|
353
357
|
const row = item._row || item;
|
|
358
|
+
const rowid = handleGetRowId(row);
|
|
359
|
+
if (useMaps[rowid]) {
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
354
362
|
const parentRow = parent && parent._row ? parent._row : parent;
|
|
355
|
-
|
|
363
|
+
const pRowid = parentRow ? handleGetRowId(parentRow) : '';
|
|
364
|
+
if (isAllExpand || !parentRow || expandMaps[pRowid] && $xeTable.isTreeExpandByRow(parentRow)) {
|
|
356
365
|
const hasRowChild = hasTreeChildren(row);
|
|
357
366
|
const item = {
|
|
358
367
|
_row: row,
|
|
@@ -423,7 +432,10 @@ hooks.add('tableExportModule', {
|
|
|
423
432
|
}
|
|
424
433
|
item[column.id] = toStringValue(cellValue);
|
|
425
434
|
});
|
|
426
|
-
|
|
435
|
+
useMaps[rowid] = true;
|
|
436
|
+
if (pRowid) {
|
|
437
|
+
expandMaps[pRowid] = true;
|
|
438
|
+
}
|
|
427
439
|
rest.push(Object.assign(item, row));
|
|
428
440
|
}
|
|
429
441
|
}, {
|
|
@@ -1297,6 +1309,7 @@ hooks.add('tableExportModule', {
|
|
|
1297
1309
|
const {
|
|
1298
1310
|
tableFullColumn,
|
|
1299
1311
|
afterFullData,
|
|
1312
|
+
afterTreeFullData,
|
|
1300
1313
|
collectColumn,
|
|
1301
1314
|
mergeBodyList,
|
|
1302
1315
|
mergeFooterList
|
|
@@ -1574,8 +1587,10 @@ hooks.add('tableExportModule', {
|
|
|
1574
1587
|
}
|
|
1575
1588
|
}
|
|
1576
1589
|
if (mode === 'current') {
|
|
1577
|
-
handleOptions.data = afterFullData;
|
|
1590
|
+
handleOptions.data = treeConfig ? afterTreeFullData : afterFullData;
|
|
1578
1591
|
}
|
|
1592
|
+
} else {
|
|
1593
|
+
handleOptions._isCustomData = true;
|
|
1579
1594
|
}
|
|
1580
1595
|
return handleExport(handleOptions);
|
|
1581
1596
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util2=require("./util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,hooks,renderer}=_ui.VxeUI,htmlCellElem,csvBOM="\ufeff",enterSymbol="\r\n";function defaultFilterExportColumn(e){return!!e.field||-1===["seq","checkbox","radio"].indexOf(e.type||"")}let getConvertColumns=e=>{let t=[];return e.forEach(e=>{e.childNodes&&e.childNodes.length?(t.push(e),t.push(...getConvertColumns(e.childNodes))):t.push(e)}),t},convertToRows=e=>{let t=1,r=(l,e)=>{if(e&&(l._level=e._level+1,t<l._level)&&(t=l._level),l.childNodes&&l.childNodes.length){let t=0;l.childNodes.forEach(e=>{r(e,l),t+=e._colSpan}),l._colSpan=t}else l._colSpan=1},l=(e.forEach(e=>{e._level=1,r(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getConvertColumns(e).forEach(e=>{e.childNodes&&e.childNodes.length?e._rowSpan=1:e._rowSpan=t-e._level+1,l[e._level-1].push(e)}),l};function toTableBorder(e){return!0===e?"full":e||"default"}function getBooleanValue(e){return"TRUE"===e||"true"===e||!0===e}function getFooterData(l,e,t){let r=e.footerFilterMethod;return r?t.filter((e,t)=>r({$table:l,items:e,$rowIndex:t})):t}function getCsvCellTypeLabel(e,t){if(t){if("seq"===e.type)return` `+t;switch(e.cellType){case"string":if(isNaN(t))break;return` `+t;case"number":break;default:if(12<=t.length&&!isNaN(t))return` `+t}}return t}function toTxtCellLabel(e){return/[",\s\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function getElementsByTagName(e,t){return e.getElementsByTagName(t)}function getTxtCellKey(e){return`#${e}@`+_xeUtils.default.uniqueId()}function replaceTxtCell(e,t){return e.replace(/#\d+@\d+/g,e=>_xeUtils.default.hasOwnProp(t,e)?t[e]:e)}function getTxtCellValue(e,t){return replaceTxtCell(e,t).replace(/^"+$/g,e=>'"'.repeat(Math.ceil(e.length/2)))}function toExportField(e,t){var{fieldMaps:e,titleMaps:l}=e;return e[t]||(e=l[t])&&e.field&&(t=e.field),t}function parseCsvAndTxt(t,e,a){e=e.split(enterSymbol);let i=[],s=[];if(e.length){let r={},o=Date.now();e.forEach(e=>{if(e){let l={};e=(e=e.replace(/("")|(\n)/g,(e,t)=>{var l=getTxtCellKey(o);return r[l]=t?'"':"\n",l}).replace(/"(.*?)"/g,(e,t)=>{var l=getTxtCellKey(o);return r[l]=replaceTxtCell(t,r),l})).split(a);s.length?(e.forEach((e,t)=>{t<s.length&&(l[s[t]]=getTxtCellValue(e.trim(),r))}),i.push(l)):s=e.map(e=>toExportField(t,getTxtCellValue(e.trim(),r)))}})}return{fields:s,rows:i}}function parseCsv(e,t){return parseCsvAndTxt(e,t,",")}function parseTxt(e,t){return parseCsvAndTxt(e,t,"\t")}function parseHTML(t,e){var l,e=getElementsByTagName((new DOMParser).parseFromString(e,"text/html"),"body");let r=[],o=[];return e.length&&(e=getElementsByTagName(e[0],"table")).length&&(l=getElementsByTagName(e[0],"thead")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{_xeUtils.default.arrayEach(getElementsByTagName(e,"th"),e=>{o.push(toExportField(t,e.textContent||""))})}),(l=getElementsByTagName(e[0],"tbody")).length)&&_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{let l={};_xeUtils.default.arrayEach(getElementsByTagName(e,"td"),(e,t)=>{o[t]&&(l[o[t]]=e.textContent||"")}),r.push(l)}),{fields:o,rows:r}}function parseXML(t,e){var e=getElementsByTagName((new DOMParser).parseFromString(e,"application/xml"),"Worksheet");let r=[],o=[];return e.length&&(e=getElementsByTagName(e[0],"Table")).length&&(e=getElementsByTagName(e[0],"Row")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(e[0],"Cell"),e=>{o.push(toExportField(t,e.textContent||""))}),_xeUtils.default.arrayEach(e,(e,t)=>{if(t){let l={};t=getElementsByTagName(e,"Cell");_xeUtils.default.arrayEach(t,(e,t)=>{o[t]&&(l[o[t]]=e.textContent)}),r.push(l)}})),{fields:o,rows:r}}function clearColumnConvert(e){_xeUtils.default.eachTree(e,e=>{delete e._level,delete e._colSpan,delete e._rowSpan,delete e._children,delete e.childNodes},{children:"children"})}let tableExportMethodKeys=["exportData","importByFile","importData","saveFile","readFile","print","getPrintHtml","openImport","closeImport","openExport","closeExport","openPrint","closePrint"];hooks.add("tableExportModule",{setupTable(j){let{props:I,reactData:D,internalData:O}=j,{computeTreeOpts:N,computePrintOpts:i,computeExportOpts:L,computeImportOpts:c,computeCustomOpts:E,computeSeqOpts:s,computeRadioOpts:r,computeCheckboxOpts:o,computeColumnOpts:n}=j.getComputeMaps(),R=(0,_vue.inject)("$xeGrid",null),g=e=>{var t=N.value,t=t.children||t.childrenField;return e[t]&&e[t].length},f=(e,t,l,r,o)=>{var a=s.value.seqMethod||r.seqMethod;return a?a({$table:j,row:t,rowIndex:j.getRowIndex(t),$rowIndex:l,column:r,columnIndex:j.getColumnIndex(r),$columnIndex:o}):e};function C(e,t){var l=n.value,l=t.headerExportMethod||l.headerExportMethod;return l?l({column:t,options:e,$table:j}):(e.isTitle?t.getTitle():t.field)||""}let v=e=>_xeUtils.default.isBoolean(e)?e?"TRUE":"FALSE":e,b=e=>(0,_utils.eqEmptyValue)(e)?"":""+e,d=(c,u,e)=>{let{isAllExpand:i,mode:p}=c;var t=I.treeConfig;let m=r.value,h=o.value;var l=N.value;let x=n.value;if(htmlCellElem=htmlCellElem||document.createElement("div"),t){t=l.children||l.childrenField;let o=[],a=new Map;return _xeUtils.default.eachTree(e,(e,s,t,n,l,r)=>{let d=e._row||e;e=l&&l._row?l._row:l;if(i||!e||a.has(e)&&j.isTreeExpandByRow(e)){l=g(d);let i={_row:d,_level:r.length-1,_hasChild:l,_expand:l&&j.isTreeExpandByRow(d)};u.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||x.exportMethod;if(o=(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)||x.exportMethod)l=o({$table:j,row:d,column:e,options:c});else switch(e.type){case"seq":var a=n.map((e,t)=>t%2==0?Number(e)+1:".").join("");l="all"===p?a:f(a,d,s,e,t);break;case"checkbox":l=v(j.isCheckedByCheckboxRow(d)),i._checkboxLabel=h.labelField?_xeUtils.default.get(d,h.labelField):"",i._checkboxDisabled=h.checkMethod&&!h.checkMethod({$table:j,row:d});break;case"radio":l=v(j.isCheckedByRadioRow(d)),i._radioLabel=m.labelField?_xeUtils.default.get(d,m.labelField):"",i._radioDisabled=m.checkMethod&&!m.checkMethod({$table:j,row:d});break;default:c.original?l=(0,_util.getCellValue)(d,e):(l=j.getCellLabel(d,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=j.getCellElement(d,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}i[e.id]=b(l)}),a.set(d,1),o.push(Object.assign(i,d))}},{children:t}),o}return e.map((i,s)=>{let n={_row:i};return u.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||x.exportMethod;if(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)l=o({$table:j,row:i,column:e,options:c});else switch(e.type){case"seq":var a=s+1;l="all"===p?a:f(a,i,s,e,t);break;case"checkbox":l=v(j.isCheckedByCheckboxRow(i)),n._checkboxLabel=h.labelField?_xeUtils.default.get(i,h.labelField):"",n._checkboxDisabled=h.checkMethod&&!h.checkMethod({$table:j,row:i});break;case"radio":l=v(j.isCheckedByRadioRow(i)),n._radioLabel=m.labelField?_xeUtils.default.get(i,m.labelField):"",n._radioDisabled=m.checkMethod&&!m.checkMethod({$table:j,row:i});break;default:c.original?l=(0,_util.getCellValue)(i,e):(l=j.getCellLabel(i,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=j.getCellElement(i,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}n[e.id]=b(l)}),n})},T=(e,t,l)=>{var r=n.value,o=l.editRender||l.cellRender;let a=l.footerExportMethod;a=(a=!a&&o&&o.name&&(o=renderer.get(o.name))?o.tableFooterExportMethod||o.footerExportMethod:a)||r.footerExportMethod;o=j.getVTColumnIndex(l);return a?a({$table:j,items:t,itemIndex:o,row:t,_columnIndex:o,column:l,options:e}):_xeUtils.default.isArray(t)?_xeUtils.default.toValueString(t[o]):_xeUtils.default.get(t,l.field)},u=(e,l,r,t)=>{let o=csvBOM;return l.isHeader&&(o+=r.map(e=>toTxtCellLabel(C(l,e))).join(",")+enterSymbol),t.forEach(t=>{o+=r.map(e=>toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))).join(",")+enterSymbol}),l.isFooter&&(t=D.footerTableData,getFooterData(e,l,t).forEach(t=>{o+=r.map(e=>toTxtCellLabel(T(l,t,e))).join(",")+enterSymbol})),o},p=(e,l,r,t)=>{let o="";return l.isHeader&&(o+=r.map(e=>toTxtCellLabel(C(l,e))).join("\t")+enterSymbol),t.forEach(t=>{o+=r.map(e=>toTxtCellLabel(t[e.id])).join("\t")+enterSymbol}),l.isFooter&&(t=D.footerTableData,getFooterData(e,l,t).forEach(t=>{o+=r.map(e=>toTxtCellLabel(T(l,t,e))).join("\t")+enterSymbol})),o},k=(e,t,l)=>{e=e[t],t=_xeUtils.default.isUndefined(e)||_xeUtils.default.isNull(e)?l:e;let r="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;var{scrollXLoad:l,scrollYLoad:e}=D;return r=l||e?r||!0:r},m=(s,e,t)=>{let{id:d,border:l,treeConfig:r,headerAlign:n,align:c,footerAlign:a,showOverflow:u,showHeaderOverflow:p}=I,{isAllSelected:m,isIndeterminate:o}=D,h=O.mergeBodyCellMaps,i=N.value,{print:x,isHeader:g,isFooter:f,isColgroup:v,isMerge:b,colgroups:_,original:y}=s,$="check-all";let w=[`<table class="${["vxe-table","border--"+toTableBorder(l),x?"is--print":"",g?"is--header":""].filter(e=>e).join(" ")}" border="0" cellspacing="0" cellpadding="0">`,`<colgroup>${e.map(e=>`<col style="width:${e.renderWidth}px">`).join("")}</colgroup>`];g&&(w.push("<thead>"),v&&!y?_.forEach(e=>{w.push(`<tr>${e.map(t=>{var e=t.headerAlign||t.align||n||c,l=k(t,"showHeaderOverflow",p)?["col--ellipsis"]:[],r=C(s,t);let o=0,a=0;_xeUtils.default.eachTree([t],e=>{e.childNodes&&t.childNodes.length||a++,o+=e.renderWidth},{children:"childNodes"});var i=o-a;return e&&l.push("col--"+e),"checkbox"===t.type?`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}"><div ${x?"":`style="width: ${i}px"`}><input type="checkbox" class="${$}" ${m?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}" title="${r}"><div ${x?"":`style="width: ${i}px"`}><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`)}):w.push(`<tr>${e.map(e=>{var t=e.headerAlign||e.align||n||c,l=k(e,"showHeaderOverflow",p)?["col--ellipsis"]:[],r=C(s,e);return t&&l.push("col--"+t),"checkbox"===e.type?`<th class="${l.join(" ")}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><input type="checkbox" class="${$}" ${m?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" title="${r}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`),w.push("</thead>")),t.length&&(w.push("<tbody>"),r?t.forEach(o=>{w.push("<tr>"+e.map(t=>{var l=t.id,e=t.align||c,r=k(t,"showOverflow",u)?["col--ellipsis"]:[],l=o[l];if(e&&r.push("col--"+e),t.treeNode){let e="";return o._hasChild&&(e=`<i class="${o._expand?"vxe-table--tree-fold-icon":"vxe-table--tree-unfold-icon"}"></i>`),r.push("vxe-table--tree-node"),"radio"===t.type?`<td class="${r.join(" ")}" title="${l}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*i.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${d}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._radioLabel}</span></div></div></div></td>`:"checkbox"===t.type?`<td class="${r.join(" ")}" title="${l}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*i.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._checkboxLabel}</span></div></div></div></td>`:`<td class="${r.join(" ")}" title="${l}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*i.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell">${l}</div></div></div></td>`}return"radio"===t.type?`<td class="${r.join(" ")}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><input type="radio" name="radio_${d}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._radioLabel}</span></div></td>`:"checkbox"===t.type?`<td class="${r.join(" ")}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._checkboxLabel}</span></div></td>`:`<td class="${r.join(" ")}" title="${l}"><div ${x?"":`style="width: ${t.renderWidth}px"`}>${(0,_utils.formatText)(l,!0)}</div></td>`}).join("")+"</tr>")}):t.forEach(n=>{w.push("<tr>"+e.map(e=>{var t=e.align||c,l=k(e,"showOverflow",u)?["col--ellipsis"]:[],r=n[e.id];let o=1,a=1;if(b){var i=j.getVTRowIndex(n._row),s=j.getVTColumnIndex(e),i=h[i+":"+s];if(i){var{rowspan:s,colspan:i}=i;if(!s||!i)return"";1<s&&(o=s),1<i&&(a=i)}}return t&&l.push("col--"+t),"radio"===e.type?`<td class="${l.join(" ")}" rowspan="${o}" colspan="${a}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><input type="radio" name="radio_${d}" ${n._radioDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${n._radioLabel}</span></div></td>`:"checkbox"===e.type?`<td class="${l.join(" ")}" rowspan="${o}" colspan="${a}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><input type="checkbox" ${n._checkboxDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${n._checkboxLabel}</span></div></td>`:`<td class="${l.join(" ")}" rowspan="${o}" colspan="${a}" title="${r}"><div ${x?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")+"</tr>")}),w.push("</tbody>")),f&&(t=D.footerTableData,(t=getFooterData(j,s,t)).length)&&(w.push("<tfoot>"),t.forEach(o=>{w.push(`<tr>${e.map(e=>{var t=e.footerAlign||e.align||a||c,l=k(e,"showOverflow",u)?["col--ellipsis"]:[],r=T(s,o,e);return t&&l.push("col--"+t),`<td class="${l.join(" ")}" title="${r}"><div ${x?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")}</tr>`)}),w.push("</tfoot>"));t=!m&&o?`<script>(function(){var a=document.querySelector(".${$}");if(a){a.indeterminate=true}})()</script>`:"";return w.push("</table>",t),x?w.join(""):(0,_util2.createHtmlPage)(s,w.join(""))},h=(l,e,t)=>{let r=['<?xml version="1.0"?>','<?mso-application progid="Excel.Sheet"?>','<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">','<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">',"<Version>16.00</Version>","</DocumentProperties>",'<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">',"<WindowHeight>7920</WindowHeight>","<WindowWidth>21570</WindowWidth>","<WindowTopX>32767</WindowTopX>","<WindowTopY>32767</WindowTopY>","<ProtectStructure>False</ProtectStructure>","<ProtectWindows>False</ProtectWindows>","</ExcelWorkbook>",`<Worksheet ss:Name="${l.sheetName}">`,"<Table>",e.map(e=>`<Column ss:Width="${e.renderWidth}"/>`).join("")].join("");return l.isHeader&&(r+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${C(l,e)}</Data></Cell>`).join("")}</Row>`),t.forEach(t=>{r+="<Row>"+e.map(e=>`<Cell><Data ss:Type="String">${t[e.id]}</Data></Cell>`).join("")+"</Row>"}),l.isFooter&&(t=D.footerTableData,getFooterData(j,l,t).forEach(t=>{r+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${T(l,t,e)}</Data></Cell>`).join("")}</Row>`})),r+"</Table></Worksheet></Workbook>"},S=l=>{let{remote:r,columns:o,colgroups:a,exportMethod:i,afterExportMethod:t}=l;return new Promise(t=>{if(r){var e={options:l,$table:j,$grid:R};t(i?i(e):e)}else{let e=(e=>{let{columns:t,dataFilterMethod:l}=e,r=e.data;return l&&(r=r.filter((e,t)=>l({$table:j,row:e,$rowIndex:t}))),d(e,t,r)})(l);t(j.preventEvent(null,"event.export",{options:l,columns:o,colgroups:a,datas:e},()=>((e,t)=>{var{filename:l,type:r,download:o}=e;if(!o)return o=(0,_util2.getExportBlobByContent)(t,e),Promise.resolve({type:r,content:t,blob:o});_ui.VxeUI.saveFile&&_ui.VxeUI.saveFile({filename:l,type:r,content:t}).then(()=>{!1!==e.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.expSuccess"),status:"success"})})})(l,((e,t,l,r)=>{if(l.length)switch(t.type){case"csv":return u(e,t,l,r);case"txt":return p(e,t,l,r);case"html":return m(t,l,r);case"xml":return h(t,l,r)}return""})(j,l,o,e))))}}).then(e=>(clearColumnConvert(o),l.print||t&&t({status:!0,options:l,$table:j,$grid:R}),Object.assign({status:!0},e))).catch(()=>{clearColumnConvert(o),l.print||t&&t({status:!1,options:l,$table:j,$grid:R});return Promise.reject({status:!1})})},a=(a,i)=>{let{importMethod:s,afterImportMethod:t}=i,{type:n,filename:d}=(0,_utils.parseFile)(a);var e=c.value;return s||_xeUtils.default.includes(_xeUtils.default.keys(e._typeMaps),n)?new Promise((t,l)=>{let e=e=>{t(e),O._importResolve=null,O._importReject=null},r=e=>{l(e),O._importResolve=null,O._importReject=null};if(O._importResolve=e,O._importReject=r,window.FileReader){let t=Object.assign({mode:"insertTop"},i,{type:n,filename:d});var o;t.remote?s?Promise.resolve(s({file:a,options:t,$table:j})).then(()=>{e({status:!0})}).catch(()=>{e({status:!0})}):e({status:!0}):(o=O.tableFullColumn,j.preventEvent(null,"event.import",{file:a,options:t,columns:o},()=>{var e=new FileReader;e.onerror=()=>{(0,_log.errLog)("vxe.error.notType",[n]),r({status:!1})},e.onload=e=>{((e,l)=>{let{tableFullColumn:t,_importResolve:r,_importReject:o}=O,a={fields:[],rows:[]},i={},s={};t.forEach(e=>{var t=e.field,l=e.getTitle();t&&(i[t]=e),l&&(s[e.getTitle()]=e)});var n={fieldMaps:i,titleMaps:s};switch(l.type){case"csv":a=parseCsv(n,e);break;case"txt":a=parseTxt(n,e);break;case"html":a=parseHTML(n,e);break;case"xml":a=parseXML(n,e)}let{fields:d,rows:c}=a;d.some(e=>i[e]||s[e])?j.createData(c).then(e=>{let t;return"insert"!==l.mode&&"insertBottom"!==l.mode||(t=j.insertAt(e,-1)),t="insertTop"===l.mode?j.insert(e):j.reloadData(e),!1!==l.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.impSuccess",[c.length]),status:"success"}),t.then(()=>{r&&r({status:!0})})}):!1!==l.message&&(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.impFields"),status:"error"}),o)&&o({status:!1})})(e.target.result,t)},e.readAsText(a,t.encoding||"UTF-8")}))}else(0,_log.errLog)("vxe.error.notExp"),e({status:!0})}).then(()=>{t&&t({status:!0,options:i,$table:j})}).catch(e=>(t&&t({status:!1,options:i,$table:j}),Promise.reject(e))):(!1!==i.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.notType",[n]),status:"error"}),Promise.reject({status:!1}))},B=(e,r,t)=>t.some(e=>{var t,l;return(0,_util.isColumnInfo)(e)?r.id===e.id:_xeUtils.default.isString(e)?r.field===e:(t=e.id||e.colId,l=e.type,e=e.field,t?r.id===t:e&&l?r.field===e&&r.type===l:e?r.field===e:!!l&&r.type===l)}),P=(e,t,l,r)=>(!r||!_xeUtils.default.includes(r,t.field))&&(l?!!_xeUtils.default.includes(l,t.field):e.original?!!t.field:defaultFilterExportColumn(t)),l=(e,t)=>{var{treeConfig:l,showHeader:r,showFooter:o}=I,{initStore:a,isGroup:i,footerTableData:s,exportStore:n,exportParams:d}=D,{collectColumn:c,mergeBodyList:u,mergeFooterList:p}=O,m=L.value,h=E.value,x=j.getCheckboxRecords(),g=R?R.getComputeMaps().computeProxyOpts.value:{},s=!!s.length,u=!(!u.length&&!p.length);let f=Object.assign({message:!0,isHeader:r,isTitle:r,isFooter:o,isColgroup:i,isMerge:u,useStyle:!0,current:"current",modes:(g.ajax&&g.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"])},e);p=f.types||_xeUtils.default.keys(m._typeMaps),r=f.modes||[];let v=h.checkMethod;o=c.slice(0);let{columns:b,excludeFields:_,includeFields:y}=f;g=p.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),e=r.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.export.modes."+e)});_xeUtils.default.eachTree(o,(e,t,l,r,o)=>{var a=e.children&&0<e.children.length;let i=!1;i=b&&b.length?B(f,e,b):_||y?P(f,e,y,_):e.visible&&(a||defaultFilterExportColumn(e)),e.checked=i,e.halfChecked=!1,e.disabled=o&&o.disabled||!!v&&!v({$table:j,column:e})}),Object.assign(n,{columns:o,typeList:g,modeList:e,hasFooter:s,hasMerge:u,hasTree:l,isPrint:t,hasColgroup:i,visible:!0}),Object.assign(d,{mode:x.length?"selected":"current"},f);let{filename:$,sheetName:w,mode:C,type:T}=d;return $&&(_xeUtils.default.isFunction($)?d.filename=$({options:f,$table:j,$grid:R}):d.filename=""+$),w&&(_xeUtils.default.isFunction(w)?d.sheetName=w({options:f,$table:j,$grid:R}):d.sheetName=""+w),e.some(e=>e.value===C)||(d.mode=e[0].value),g.some(e=>e.value===T)||(d.type=g[0].value),a.export=!0,(0,_vue.nextTick)()};var e=()=>_ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_EXPORT_MODAL"):Promise.resolve();let x={exportData(s){var{treeConfig:e,showHeader:n,showFooter:d}=I,t=D.isGroup;let{tableFullColumn:a,afterFullData:l,collectColumn:r,mergeBodyList:o,mergeFooterList:i}=O;var c=L.value,u=N.value;let p=R?R.getComputeMaps().computeProxyOpts.value:{};var m=!(!o.length&&!i.length);let h=Object.assign({message:!0,isHeader:n,isTitle:n,isFooter:d,isColgroup:t,isMerge:m,useStyle:!0,current:"current",modes:(p.ajax&&p.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"]),download:!0,type:"csv"},c,s),{filename:x,sheetName:g,type:f,mode:v,columns:b,original:_,columnFilterMethod:y,beforeExportMethod:$,includeFields:w,excludeFields:C}=h,T=[],E=j.getCheckboxRecords(),k=(v=v||(E.length?"selected":"current"),!1),M=[],F=(M=b&&b.length?(k=!0,b):_xeUtils.default.searchTree(r,e=>{var t=e.children&&0<e.children.length;let l=!1;return l=b&&b.length?B(h,e,b):C||w?P(h,e,w,C):e.visible&&(t||defaultFilterExportColumn(e))},{children:"children",mapChildren:"childNodes",original:!0}),Object.assign({},h,{filename:"",sheetName:""})),U=(k||y||(y=({column:e})=>(!C||!_xeUtils.default.includes(C,e.field))&&(w?!!_xeUtils.default.includes(w,e.field):_?!!e.field:defaultFilterExportColumn(e)),F.columnFilterMethod=y),T=M?(F._isCustomColumn=!0,_xeUtils.default.searchTree(_xeUtils.default.mapTree(M,e=>{let r;if(e){if((0,_util.isColumnInfo)(e))r=e;else if(_xeUtils.default.isString(e))r=j.getColumnByField(e);else{var o=e.id||e.colId;let t=e.type,l=e.field;o?r=j.getColumnById(o):l&&t?r=a.find(e=>e.field===l&&e.type===t):l?r=j.getColumnByField(l):t&&(r=a.find(e=>e.type===t))}return r||{}}},{children:"childNodes",mapChildren:"_children"}),(e,t)=>(0,_util.isColumnInfo)(e)&&(!y||y({$table:j,column:e,$columnIndex:t})),{children:"_children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(t?r:a,(e,t)=>e.visible&&(!y||y({$table:j,column:e,$columnIndex:t})),{children:"children",mapChildren:"childNodes",original:!0}),[]);if(_xeUtils.default.eachTree(T,e=>{e.children&&e.children.length||U.push(e)},{children:"childNodes"}),F.columns=U,F.colgroups=convertToRows(T),x&&(_xeUtils.default.isFunction(x)?F.filename=x({options:h,$table:j,$grid:R}):F.filename=""+x),F.filename||(F.filename=getI18n(F.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),g&&(_xeUtils.default.isFunction(g)?F.sheetName=g({options:h,$table:j,$grid:R}):F.sheetName=""+g),F.sheetName||(F.sheetName=document.title||""),!F.exportMethod&&!_xeUtils.default.includes(_xeUtils.default.keys(c._typeMaps),f))return(0,_log.errLog)("vxe.error.notType",[f]),["xlsx","pdf"].includes(f)&&(0,_log.warnLog)("vxe.error.reqPlugin",[4,"plugin-export-xlsx"]),Promise.reject({status:!1});if(F.print||$&&$({options:F,$table:j,$grid:R}),!F.data){if(F.data=[],"selected"===v)-1<["html","pdf"].indexOf(f)&&e?F.data=_xeUtils.default.searchTree(j.getTableData().fullData,e=>-1<j.findRowIndexOf(E,e),Object.assign({},u,{data:"_row"})):F.data=E;else if("all"===v&&(R||(0,_log.errLog)("vxe.error.errProp",["all","mode=current,selected"]),R)&&!F.remote){n=R.reactData,d=R.getComputeMaps().computeProxyOpts;let e=d.value;m=n.sortData;let{beforeQueryAll:t,afterQueryAll:r,ajax:l={}}=e,o=e.response||e.props||{};s=l.queryAll;let a=l.queryAllSuccess,i=l.queryAllError;if(s||(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),s){let l={$table:j,$grid:R,sort:m.length?m[0]:{},sorts:m,filters:n.filterData,form:n.formData,options:F};return Promise.resolve((t||s)(l)).then(e=>{var t=o.list;return F.data=(t?_xeUtils.default.isFunction(t)?t({data:e,$grid:R}):_xeUtils.default.get(e,t):e)||[],r&&r(l),a&&a(Object.assign(Object.assign({},l),{response:e})),S(F)}).catch(e=>{i&&i(Object.assign(Object.assign({},l),{response:e}))})}}"current"===v&&(F.data=l)}return S(F)},importByFile(e,t){var t=Object.assign({},t),l=t.beforeImportMethod;return l&&l({options:t,$table:j}),a(e,t)},importData(e){var t=c.value;let l=Object.assign({types:_xeUtils.default.keys(t._typeMaps)},t,e),{beforeImportMethod:r,afterImportMethod:o}=l;return r&&r({options:l,$table:j}),_ui.VxeUI.readFile(l).catch(e=>(o&&o({status:!1,options:l,$table:j}),Promise.reject(e))).then(e=>{e=e.file;return a(e,l)})},saveFile(e){return _ui.VxeUI.saveFile(e)},readFile(e){return _ui.VxeUI.readFile(e)},print(e){var t=i.value;let l=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});t=l.sheetName;let r="",o=(r=(r=t?_xeUtils.default.isFunction(t)?t({options:l,$table:j,$grid:R}):""+t:r)||document.title||"",l.beforePrintMethod),a=l.html||l.content;return new Promise((e,t)=>{_ui.VxeUI.print?a?e(_ui.VxeUI.print({title:r,html:a,customStyle:l.style,beforeMethod:o?({html:e})=>o({html:e,content:e,options:l,$table:j}):void 0})):e(x.exportData(l).then(({content:e})=>_ui.VxeUI.print({title:r,html:e,customStyle:l.style,beforeMethod:o?({html:e})=>o({html:e,content:e,options:l,$table:j}):void 0}))):t({status:!1})})},getPrintHtml(e){var t=i.value,t=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});return j.exportData(t).then(({content:e})=>({html:e}))},closeImport(){return _ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_IMPORT_MODAL"):Promise.resolve()},openImport(e){var{treeConfig:t,importConfig:l}=I;let{initStore:r,importStore:o,importParams:a}=D;var i=c.value,i=Object.assign({mode:"insertTop",message:!0,types:_xeUtils.default.keys(i._typeMaps),modes:["insertTop","covering"]},i,e),e=i.types||[],s=i.modes||[];!t?(l||(0,_log.errLog)("vxe.error.reqProp",["import-config"]),t=e.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),l=s.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.import.modes."+e)}),Object.assign(o,{file:null,type:"",filename:"",modeList:l,typeList:t,visible:!0}),Object.assign(a,i),l.some(e=>e.value===a.mode)||(a.mode=l[0].value),r.import=!0):i.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.treeNotImp"),status:"error"})},closeExport:e,openExport(e){var t=L.value,t=Object.assign({message:!0,types:_xeUtils.default.keys(t._typeMaps)},t,e);return I.exportConfig||(0,_log.errLog)("vxe.error.reqProp",["export-config"]),l(t)},closePrint:e,openPrint(e){var t=i.value,t=Object.assign({message:!0},t,e);return I.printConfig||(0,_log.errLog)("vxe.error.reqProp",["print-config"]),l(t,!0)}};return x},setupGrid(e){return e.extendTableMethods(tableExportMethodKeys)}});
|
|
1
|
+
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util2=require("./util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,hooks,renderer}=_ui.VxeUI,htmlCellElem,csvBOM="\ufeff",enterSymbol="\r\n";function defaultFilterExportColumn(e){return!!e.field||-1===["seq","checkbox","radio"].indexOf(e.type||"")}let getConvertColumns=e=>{let t=[];return e.forEach(e=>{e.childNodes&&e.childNodes.length?(t.push(e),t.push(...getConvertColumns(e.childNodes))):t.push(e)}),t},convertToRows=e=>{let t=1,r=(l,e)=>{if(e&&(l._level=e._level+1,t<l._level)&&(t=l._level),l.childNodes&&l.childNodes.length){let t=0;l.childNodes.forEach(e=>{r(e,l),t+=e._colSpan}),l._colSpan=t}else l._colSpan=1},l=(e.forEach(e=>{e._level=1,r(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getConvertColumns(e).forEach(e=>{e.childNodes&&e.childNodes.length?e._rowSpan=1:e._rowSpan=t-e._level+1,l[e._level-1].push(e)}),l};function toTableBorder(e){return!0===e?"full":e||"default"}function getBooleanValue(e){return"TRUE"===e||"true"===e||!0===e}function getFooterData(l,e,t){let r=e.footerFilterMethod;return r?t.filter((e,t)=>r({$table:l,items:e,$rowIndex:t})):t}function getCsvCellTypeLabel(e,t){if(t){if("seq"===e.type)return` `+t;switch(e.cellType){case"string":if(isNaN(t))break;return` `+t;case"number":break;default:if(12<=t.length&&!isNaN(t))return` `+t}}return t}function toTxtCellLabel(e){return/[",\s\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function getElementsByTagName(e,t){return e.getElementsByTagName(t)}function getTxtCellKey(e){return`#${e}@`+_xeUtils.default.uniqueId()}function replaceTxtCell(e,t){return e.replace(/#\d+@\d+/g,e=>_xeUtils.default.hasOwnProp(t,e)?t[e]:e)}function getTxtCellValue(e,t){return replaceTxtCell(e,t).replace(/^"+$/g,e=>'"'.repeat(Math.ceil(e.length/2)))}function toExportField(e,t){var{fieldMaps:e,titleMaps:l}=e;return e[t]||(e=l[t])&&e.field&&(t=e.field),t}function parseCsvAndTxt(t,e,a){e=e.split(enterSymbol);let i=[],s=[];if(e.length){let r={},o=Date.now();e.forEach(e=>{if(e){let l={};e=(e=e.replace(/("")|(\n)/g,(e,t)=>{var l=getTxtCellKey(o);return r[l]=t?'"':"\n",l}).replace(/"(.*?)"/g,(e,t)=>{var l=getTxtCellKey(o);return r[l]=replaceTxtCell(t,r),l})).split(a);s.length?(e.forEach((e,t)=>{t<s.length&&(l[s[t]]=getTxtCellValue(e.trim(),r))}),i.push(l)):s=e.map(e=>toExportField(t,getTxtCellValue(e.trim(),r)))}})}return{fields:s,rows:i}}function parseCsv(e,t){return parseCsvAndTxt(e,t,",")}function parseTxt(e,t){return parseCsvAndTxt(e,t,"\t")}function parseHTML(t,e){var l,e=getElementsByTagName((new DOMParser).parseFromString(e,"text/html"),"body");let r=[],o=[];return e.length&&(e=getElementsByTagName(e[0],"table")).length&&(l=getElementsByTagName(e[0],"thead")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{_xeUtils.default.arrayEach(getElementsByTagName(e,"th"),e=>{o.push(toExportField(t,e.textContent||""))})}),(l=getElementsByTagName(e[0],"tbody")).length)&&_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{let l={};_xeUtils.default.arrayEach(getElementsByTagName(e,"td"),(e,t)=>{o[t]&&(l[o[t]]=e.textContent||"")}),r.push(l)}),{fields:o,rows:r}}function parseXML(t,e){var e=getElementsByTagName((new DOMParser).parseFromString(e,"application/xml"),"Worksheet");let r=[],o=[];return e.length&&(e=getElementsByTagName(e[0],"Table")).length&&(e=getElementsByTagName(e[0],"Row")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(e[0],"Cell"),e=>{o.push(toExportField(t,e.textContent||""))}),_xeUtils.default.arrayEach(e,(e,t)=>{if(t){let l={};t=getElementsByTagName(e,"Cell");_xeUtils.default.arrayEach(t,(e,t)=>{o[t]&&(l[o[t]]=e.textContent)}),r.push(l)}})),{fields:o,rows:r}}function clearColumnConvert(e){_xeUtils.default.eachTree(e,e=>{delete e._level,delete e._colSpan,delete e._rowSpan,delete e._children,delete e.childNodes},{children:"children"})}let tableExportMethodKeys=["exportData","importByFile","importData","saveFile","readFile","print","getPrintHtml","openImport","closeImport","openExport","closeExport","openPrint","closePrint"];hooks.add("tableExportModule",{setupTable(I){let{props:D,reactData:O,internalData:N}=I,{computeTreeOpts:L,computePrintOpts:i,computeExportOpts:R,computeImportOpts:c,computeCustomOpts:E,computeSeqOpts:s,computeRadioOpts:r,computeCheckboxOpts:o,computeColumnOpts:n}=I.getComputeMaps(),S=(0,_vue.inject)("$xeGrid",null),_=e=>{var t=L.value,t=t.children||t.childrenField;return e[t]&&e[t].length},y=(e,t,l,r,o)=>{var a=s.value.seqMethod||r.seqMethod;return a?a({$table:I,row:t,rowIndex:I.getRowIndex(t),$rowIndex:l,column:r,columnIndex:I.getColumnIndex(r),$columnIndex:o}):e};function C(e,t){var l=n.value,l=t.headerExportMethod||l.headerExportMethod;return l?l({column:t,options:e,$table:I}):(e.isTitle?t.getTitle():t.field)||""}let $=e=>_xeUtils.default.isBoolean(e)?e?"TRUE":"FALSE":e,w=e=>(0,_utils.eqEmptyValue)(e)?"":""+e,d=(m,h,e)=>{let{isAllExpand:x,mode:g}=m;var t=D.treeConfig;let f=r.value,v=o.value;var l=L.value;let b=n.value;if(htmlCellElem=htmlCellElem||document.createElement("div"),t){t=l.children||l.childrenField;let c=[],u={},p={},i=(0,_util.createHandleGetRowId)(I).handleGetRowId;return _xeUtils.default.eachTree(e,(e,s,t,n,l,r)=>{let d=e._row||e;var o=i(d);if(!p[o]){e=l&&l._row?l._row:l,l=e?i(e):"";if(x||!e||u[l]&&I.isTreeExpandByRow(e)){var a=_(d);let i={_row:d,_level:r.length-1,_hasChild:a,_expand:a&&I.isTreeExpandByRow(d)};h.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||b.exportMethod;if(o=(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)||b.exportMethod)l=o({$table:I,row:d,column:e,options:m});else switch(e.type){case"seq":var a=n.map((e,t)=>t%2==0?Number(e)+1:".").join("");l="all"===g?a:y(a,d,s,e,t);break;case"checkbox":l=$(I.isCheckedByCheckboxRow(d)),i._checkboxLabel=v.labelField?_xeUtils.default.get(d,v.labelField):"",i._checkboxDisabled=v.checkMethod&&!v.checkMethod({$table:I,row:d});break;case"radio":l=$(I.isCheckedByRadioRow(d)),i._radioLabel=f.labelField?_xeUtils.default.get(d,f.labelField):"",i._radioDisabled=f.checkMethod&&!f.checkMethod({$table:I,row:d});break;default:m.original?l=(0,_util.getCellValue)(d,e):(l=I.getCellLabel(d,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=I.getCellElement(d,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}i[e.id]=w(l)}),p[o]=!0,l&&(u[l]=!0),c.push(Object.assign(i,d))}}},{children:t}),c}return e.map((i,s)=>{let n={_row:i};return h.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||b.exportMethod;if(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)l=o({$table:I,row:i,column:e,options:m});else switch(e.type){case"seq":var a=s+1;l="all"===g?a:y(a,i,s,e,t);break;case"checkbox":l=$(I.isCheckedByCheckboxRow(i)),n._checkboxLabel=v.labelField?_xeUtils.default.get(i,v.labelField):"",n._checkboxDisabled=v.checkMethod&&!v.checkMethod({$table:I,row:i});break;case"radio":l=$(I.isCheckedByRadioRow(i)),n._radioLabel=f.labelField?_xeUtils.default.get(i,f.labelField):"",n._radioDisabled=f.checkMethod&&!f.checkMethod({$table:I,row:i});break;default:m.original?l=(0,_util.getCellValue)(i,e):(l=I.getCellLabel(i,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=I.getCellElement(i,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}n[e.id]=w(l)}),n})},T=(e,t,l)=>{var r=n.value,o=l.editRender||l.cellRender;let a=l.footerExportMethod;a=(a=!a&&o&&o.name&&(o=renderer.get(o.name))?o.tableFooterExportMethod||o.footerExportMethod:a)||r.footerExportMethod;o=I.getVTColumnIndex(l);return a?a({$table:I,items:t,itemIndex:o,row:t,_columnIndex:o,column:l,options:e}):_xeUtils.default.isArray(t)?_xeUtils.default.toValueString(t[o]):_xeUtils.default.get(t,l.field)},u=(e,l,r,t)=>{let o=csvBOM;return l.isHeader&&(o+=r.map(e=>toTxtCellLabel(C(l,e))).join(",")+enterSymbol),t.forEach(t=>{o+=r.map(e=>toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))).join(",")+enterSymbol}),l.isFooter&&(t=O.footerTableData,getFooterData(e,l,t).forEach(t=>{o+=r.map(e=>toTxtCellLabel(T(l,t,e))).join(",")+enterSymbol})),o},p=(e,l,r,t)=>{let o="";return l.isHeader&&(o+=r.map(e=>toTxtCellLabel(C(l,e))).join("\t")+enterSymbol),t.forEach(t=>{o+=r.map(e=>toTxtCellLabel(t[e.id])).join("\t")+enterSymbol}),l.isFooter&&(t=O.footerTableData,getFooterData(e,l,t).forEach(t=>{o+=r.map(e=>toTxtCellLabel(T(l,t,e))).join("\t")+enterSymbol})),o},k=(e,t,l)=>{e=e[t],t=_xeUtils.default.isUndefined(e)||_xeUtils.default.isNull(e)?l:e;let r="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;var{scrollXLoad:l,scrollYLoad:e}=O;return r=l||e?r||!0:r},m=(s,e,t)=>{let{id:d,border:l,treeConfig:r,headerAlign:n,align:c,footerAlign:a,showOverflow:u,showHeaderOverflow:p}=D,{isAllSelected:m,isIndeterminate:o}=O,h=N.mergeBodyCellMaps,i=L.value,{print:x,isHeader:g,isFooter:f,isColgroup:v,isMerge:b,colgroups:_,original:y}=s,$="check-all";let w=[`<table class="${["vxe-table","border--"+toTableBorder(l),x?"is--print":"",g?"is--header":""].filter(e=>e).join(" ")}" border="0" cellspacing="0" cellpadding="0">`,`<colgroup>${e.map(e=>`<col style="width:${e.renderWidth}px">`).join("")}</colgroup>`];g&&(w.push("<thead>"),v&&!y?_.forEach(e=>{w.push(`<tr>${e.map(t=>{var e=t.headerAlign||t.align||n||c,l=k(t,"showHeaderOverflow",p)?["col--ellipsis"]:[],r=C(s,t);let o=0,a=0;_xeUtils.default.eachTree([t],e=>{e.childNodes&&t.childNodes.length||a++,o+=e.renderWidth},{children:"childNodes"});var i=o-a;return e&&l.push("col--"+e),"checkbox"===t.type?`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}"><div ${x?"":`style="width: ${i}px"`}><input type="checkbox" class="${$}" ${m?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}" title="${r}"><div ${x?"":`style="width: ${i}px"`}><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`)}):w.push(`<tr>${e.map(e=>{var t=e.headerAlign||e.align||n||c,l=k(e,"showHeaderOverflow",p)?["col--ellipsis"]:[],r=C(s,e);return t&&l.push("col--"+t),"checkbox"===e.type?`<th class="${l.join(" ")}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><input type="checkbox" class="${$}" ${m?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" title="${r}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`),w.push("</thead>")),t.length&&(w.push("<tbody>"),r?t.forEach(o=>{w.push("<tr>"+e.map(t=>{var l=t.id,e=t.align||c,r=k(t,"showOverflow",u)?["col--ellipsis"]:[],l=o[l];if(e&&r.push("col--"+e),t.treeNode){let e="";return o._hasChild&&(e=`<i class="${o._expand?"vxe-table--tree-fold-icon":"vxe-table--tree-unfold-icon"}"></i>`),r.push("vxe-table--tree-node"),"radio"===t.type?`<td class="${r.join(" ")}" title="${l}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*i.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${d}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._radioLabel}</span></div></div></div></td>`:"checkbox"===t.type?`<td class="${r.join(" ")}" title="${l}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*i.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._checkboxLabel}</span></div></div></div></td>`:`<td class="${r.join(" ")}" title="${l}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*i.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell">${l}</div></div></div></td>`}return"radio"===t.type?`<td class="${r.join(" ")}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><input type="radio" name="radio_${d}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._radioLabel}</span></div></td>`:"checkbox"===t.type?`<td class="${r.join(" ")}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._checkboxLabel}</span></div></td>`:`<td class="${r.join(" ")}" title="${l}"><div ${x?"":`style="width: ${t.renderWidth}px"`}>${(0,_utils.formatText)(l,!0)}</div></td>`}).join("")+"</tr>")}):t.forEach(n=>{w.push("<tr>"+e.map(e=>{var t=e.align||c,l=k(e,"showOverflow",u)?["col--ellipsis"]:[],r=n[e.id];let o=1,a=1;if(b){var i=I.getVTRowIndex(n._row),s=I.getVTColumnIndex(e),i=h[i+":"+s];if(i){var{rowspan:s,colspan:i}=i;if(!s||!i)return"";1<s&&(o=s),1<i&&(a=i)}}return t&&l.push("col--"+t),"radio"===e.type?`<td class="${l.join(" ")}" rowspan="${o}" colspan="${a}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><input type="radio" name="radio_${d}" ${n._radioDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${n._radioLabel}</span></div></td>`:"checkbox"===e.type?`<td class="${l.join(" ")}" rowspan="${o}" colspan="${a}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><input type="checkbox" ${n._checkboxDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${n._checkboxLabel}</span></div></td>`:`<td class="${l.join(" ")}" rowspan="${o}" colspan="${a}" title="${r}"><div ${x?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")+"</tr>")}),w.push("</tbody>")),f&&(t=O.footerTableData,(t=getFooterData(I,s,t)).length)&&(w.push("<tfoot>"),t.forEach(o=>{w.push(`<tr>${e.map(e=>{var t=e.footerAlign||e.align||a||c,l=k(e,"showOverflow",u)?["col--ellipsis"]:[],r=T(s,o,e);return t&&l.push("col--"+t),`<td class="${l.join(" ")}" title="${r}"><div ${x?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")}</tr>`)}),w.push("</tfoot>"));t=!m&&o?`<script>(function(){var a=document.querySelector(".${$}");if(a){a.indeterminate=true}})()</script>`:"";return w.push("</table>",t),x?w.join(""):(0,_util2.createHtmlPage)(s,w.join(""))},h=(l,e,t)=>{let r=['<?xml version="1.0"?>','<?mso-application progid="Excel.Sheet"?>','<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">','<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">',"<Version>16.00</Version>","</DocumentProperties>",'<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">',"<WindowHeight>7920</WindowHeight>","<WindowWidth>21570</WindowWidth>","<WindowTopX>32767</WindowTopX>","<WindowTopY>32767</WindowTopY>","<ProtectStructure>False</ProtectStructure>","<ProtectWindows>False</ProtectWindows>","</ExcelWorkbook>",`<Worksheet ss:Name="${l.sheetName}">`,"<Table>",e.map(e=>`<Column ss:Width="${e.renderWidth}"/>`).join("")].join("");return l.isHeader&&(r+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${C(l,e)}</Data></Cell>`).join("")}</Row>`),t.forEach(t=>{r+="<Row>"+e.map(e=>`<Cell><Data ss:Type="String">${t[e.id]}</Data></Cell>`).join("")+"</Row>"}),l.isFooter&&(t=O.footerTableData,getFooterData(I,l,t).forEach(t=>{r+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${T(l,t,e)}</Data></Cell>`).join("")}</Row>`})),r+"</Table></Worksheet></Workbook>"},B=l=>{let{remote:r,columns:o,colgroups:a,exportMethod:i,afterExportMethod:t}=l;return new Promise(t=>{if(r){var e={options:l,$table:I,$grid:S};t(i?i(e):e)}else{let e=(e=>{let{columns:t,dataFilterMethod:l}=e,r=e.data;return l&&(r=r.filter((e,t)=>l({$table:I,row:e,$rowIndex:t}))),d(e,t,r)})(l);t(I.preventEvent(null,"event.export",{options:l,columns:o,colgroups:a,datas:e},()=>((e,t)=>{var{filename:l,type:r,download:o}=e;if(!o)return o=(0,_util2.getExportBlobByContent)(t,e),Promise.resolve({type:r,content:t,blob:o});_ui.VxeUI.saveFile&&_ui.VxeUI.saveFile({filename:l,type:r,content:t}).then(()=>{!1!==e.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.expSuccess"),status:"success"})})})(l,((e,t,l,r)=>{if(l.length)switch(t.type){case"csv":return u(e,t,l,r);case"txt":return p(e,t,l,r);case"html":return m(t,l,r);case"xml":return h(t,l,r)}return""})(I,l,o,e))))}}).then(e=>(clearColumnConvert(o),l.print||t&&t({status:!0,options:l,$table:I,$grid:S}),Object.assign({status:!0},e))).catch(()=>{clearColumnConvert(o),l.print||t&&t({status:!1,options:l,$table:I,$grid:S});return Promise.reject({status:!1})})},a=(a,i)=>{let{importMethod:s,afterImportMethod:t}=i,{type:n,filename:d}=(0,_utils.parseFile)(a);var e=c.value;return s||_xeUtils.default.includes(_xeUtils.default.keys(e._typeMaps),n)?new Promise((t,l)=>{let e=e=>{t(e),N._importResolve=null,N._importReject=null},r=e=>{l(e),N._importResolve=null,N._importReject=null};if(N._importResolve=e,N._importReject=r,window.FileReader){let t=Object.assign({mode:"insertTop"},i,{type:n,filename:d});var o;t.remote?s?Promise.resolve(s({file:a,options:t,$table:I})).then(()=>{e({status:!0})}).catch(()=>{e({status:!0})}):e({status:!0}):(o=N.tableFullColumn,I.preventEvent(null,"event.import",{file:a,options:t,columns:o},()=>{var e=new FileReader;e.onerror=()=>{(0,_log.errLog)("vxe.error.notType",[n]),r({status:!1})},e.onload=e=>{((e,l)=>{let{tableFullColumn:t,_importResolve:r,_importReject:o}=N,a={fields:[],rows:[]},i={},s={};t.forEach(e=>{var t=e.field,l=e.getTitle();t&&(i[t]=e),l&&(s[e.getTitle()]=e)});var n={fieldMaps:i,titleMaps:s};switch(l.type){case"csv":a=parseCsv(n,e);break;case"txt":a=parseTxt(n,e);break;case"html":a=parseHTML(n,e);break;case"xml":a=parseXML(n,e)}let{fields:d,rows:c}=a;d.some(e=>i[e]||s[e])?I.createData(c).then(e=>{let t;return"insert"!==l.mode&&"insertBottom"!==l.mode||(t=I.insertAt(e,-1)),t="insertTop"===l.mode?I.insert(e):I.reloadData(e),!1!==l.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.impSuccess",[c.length]),status:"success"}),t.then(()=>{r&&r({status:!0})})}):!1!==l.message&&(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.impFields"),status:"error"}),o)&&o({status:!1})})(e.target.result,t)},e.readAsText(a,t.encoding||"UTF-8")}))}else(0,_log.errLog)("vxe.error.notExp"),e({status:!0})}).then(()=>{t&&t({status:!0,options:i,$table:I})}).catch(e=>(t&&t({status:!1,options:i,$table:I}),Promise.reject(e))):(!1!==i.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.notType",[n]),status:"error"}),Promise.reject({status:!1}))},P=(e,r,t)=>t.some(e=>{var t,l;return(0,_util.isColumnInfo)(e)?r.id===e.id:_xeUtils.default.isString(e)?r.field===e:(t=e.id||e.colId,l=e.type,e=e.field,t?r.id===t:e&&l?r.field===e&&r.type===l:e?r.field===e:!!l&&r.type===l)}),V=(e,t,l,r)=>(!r||!_xeUtils.default.includes(r,t.field))&&(l?!!_xeUtils.default.includes(l,t.field):e.original?!!t.field:defaultFilterExportColumn(t)),l=(e,t)=>{var{treeConfig:l,showHeader:r,showFooter:o}=D,{initStore:a,isGroup:i,footerTableData:s,exportStore:n,exportParams:d}=O,{collectColumn:c,mergeBodyList:u,mergeFooterList:p}=N,m=R.value,h=E.value,x=I.getCheckboxRecords(),g=S?S.getComputeMaps().computeProxyOpts.value:{},s=!!s.length,u=!(!u.length&&!p.length);let f=Object.assign({message:!0,isHeader:r,isTitle:r,isFooter:o,isColgroup:i,isMerge:u,useStyle:!0,current:"current",modes:(g.ajax&&g.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"])},e);p=f.types||_xeUtils.default.keys(m._typeMaps),r=f.modes||[];let v=h.checkMethod;o=c.slice(0);let{columns:b,excludeFields:_,includeFields:y}=f;g=p.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),e=r.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.export.modes."+e)});_xeUtils.default.eachTree(o,(e,t,l,r,o)=>{var a=e.children&&0<e.children.length;let i=!1;i=b&&b.length?P(f,e,b):_||y?V(f,e,y,_):e.visible&&(a||defaultFilterExportColumn(e)),e.checked=i,e.halfChecked=!1,e.disabled=o&&o.disabled||!!v&&!v({$table:I,column:e})}),Object.assign(n,{columns:o,typeList:g,modeList:e,hasFooter:s,hasMerge:u,hasTree:l,isPrint:t,hasColgroup:i,visible:!0}),Object.assign(d,{mode:x.length?"selected":"current"},f);let{filename:$,sheetName:w,mode:C,type:T}=d;return $&&(_xeUtils.default.isFunction($)?d.filename=$({options:f,$table:I,$grid:S}):d.filename=""+$),w&&(_xeUtils.default.isFunction(w)?d.sheetName=w({options:f,$table:I,$grid:S}):d.sheetName=""+w),e.some(e=>e.value===C)||(d.mode=e[0].value),g.some(e=>e.value===T)||(d.type=g[0].value),a.export=!0,(0,_vue.nextTick)()};var e=()=>_ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_EXPORT_MODAL"):Promise.resolve();let x={exportData(s){var{treeConfig:e,showHeader:n,showFooter:d}=D,t=O.isGroup;let{tableFullColumn:a,afterFullData:l,afterTreeFullData:r,collectColumn:o,mergeBodyList:i,mergeFooterList:c}=N;var u=R.value,p=L.value;let m=S?S.getComputeMaps().computeProxyOpts.value:{};var h=!(!i.length&&!c.length);let x=Object.assign({message:!0,isHeader:n,isTitle:n,isFooter:d,isColgroup:t,isMerge:h,useStyle:!0,current:"current",modes:(m.ajax&&m.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"]),download:!0,type:"csv"},u,s),{filename:g,sheetName:f,type:v,mode:b,columns:_,original:y,columnFilterMethod:$,beforeExportMethod:w,includeFields:C,excludeFields:T}=x,E=[],k=I.getCheckboxRecords(),M=(b=b||(k.length?"selected":"current"),!1),F=[],U=(F=_&&_.length?(M=!0,_):_xeUtils.default.searchTree(o,e=>{var t=e.children&&0<e.children.length;let l=!1;return l=_&&_.length?P(x,e,_):T||C?V(x,e,C,T):e.visible&&(t||defaultFilterExportColumn(e))},{children:"children",mapChildren:"childNodes",original:!0}),Object.assign({},x,{filename:"",sheetName:""})),j=(M||$||($=({column:e})=>(!T||!_xeUtils.default.includes(T,e.field))&&(C?!!_xeUtils.default.includes(C,e.field):y?!!e.field:defaultFilterExportColumn(e)),U.columnFilterMethod=$),E=F?(U._isCustomColumn=!0,_xeUtils.default.searchTree(_xeUtils.default.mapTree(F,e=>{let r;if(e){if((0,_util.isColumnInfo)(e))r=e;else if(_xeUtils.default.isString(e))r=I.getColumnByField(e);else{var o=e.id||e.colId;let t=e.type,l=e.field;o?r=I.getColumnById(o):l&&t?r=a.find(e=>e.field===l&&e.type===t):l?r=I.getColumnByField(l):t&&(r=a.find(e=>e.type===t))}return r||{}}},{children:"childNodes",mapChildren:"_children"}),(e,t)=>(0,_util.isColumnInfo)(e)&&(!$||$({$table:I,column:e,$columnIndex:t})),{children:"_children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(t?o:a,(e,t)=>e.visible&&(!$||$({$table:I,column:e,$columnIndex:t})),{children:"children",mapChildren:"childNodes",original:!0}),[]);if(_xeUtils.default.eachTree(E,e=>{e.children&&e.children.length||j.push(e)},{children:"childNodes"}),U.columns=j,U.colgroups=convertToRows(E),g&&(_xeUtils.default.isFunction(g)?U.filename=g({options:x,$table:I,$grid:S}):U.filename=""+g),U.filename||(U.filename=getI18n(U.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),f&&(_xeUtils.default.isFunction(f)?U.sheetName=f({options:x,$table:I,$grid:S}):U.sheetName=""+f),U.sheetName||(U.sheetName=document.title||""),!U.exportMethod&&!_xeUtils.default.includes(_xeUtils.default.keys(u._typeMaps),v))return(0,_log.errLog)("vxe.error.notType",[v]),["xlsx","pdf"].includes(v)&&(0,_log.warnLog)("vxe.error.reqPlugin",[4,"plugin-export-xlsx"]),Promise.reject({status:!1});if(U.print||w&&w({options:U,$table:I,$grid:S}),U.data)U._isCustomData=!0;else{if(U.data=[],"selected"===b)-1<["html","pdf"].indexOf(v)&&e?U.data=_xeUtils.default.searchTree(I.getTableData().fullData,e=>-1<I.findRowIndexOf(k,e),Object.assign({},p,{data:"_row"})):U.data=k;else if("all"===b&&(S||(0,_log.errLog)("vxe.error.errProp",["all","mode=current,selected"]),S)&&!U.remote){n=S.reactData,d=S.getComputeMaps().computeProxyOpts;let e=d.value;h=n.sortData;let{beforeQueryAll:t,afterQueryAll:r,ajax:l={}}=e,o=e.response||e.props||{};s=l.queryAll;let a=l.queryAllSuccess,i=l.queryAllError;if(s||(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),s){let l={$table:I,$grid:S,sort:h.length?h[0]:{},sorts:h,filters:n.filterData,form:n.formData,options:U};return Promise.resolve((t||s)(l)).then(e=>{var t=o.list;return U.data=(t?_xeUtils.default.isFunction(t)?t({data:e,$grid:S}):_xeUtils.default.get(e,t):e)||[],r&&r(l),a&&a(Object.assign(Object.assign({},l),{response:e})),B(U)}).catch(e=>{i&&i(Object.assign(Object.assign({},l),{response:e}))})}}"current"===b&&(U.data=e?r:l)}return B(U)},importByFile(e,t){var t=Object.assign({},t),l=t.beforeImportMethod;return l&&l({options:t,$table:I}),a(e,t)},importData(e){var t=c.value;let l=Object.assign({types:_xeUtils.default.keys(t._typeMaps)},t,e),{beforeImportMethod:r,afterImportMethod:o}=l;return r&&r({options:l,$table:I}),_ui.VxeUI.readFile(l).catch(e=>(o&&o({status:!1,options:l,$table:I}),Promise.reject(e))).then(e=>{e=e.file;return a(e,l)})},saveFile(e){return _ui.VxeUI.saveFile(e)},readFile(e){return _ui.VxeUI.readFile(e)},print(e){var t=i.value;let l=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});t=l.sheetName;let r="",o=(r=(r=t?_xeUtils.default.isFunction(t)?t({options:l,$table:I,$grid:S}):""+t:r)||document.title||"",l.beforePrintMethod),a=l.html||l.content;return new Promise((e,t)=>{_ui.VxeUI.print?a?e(_ui.VxeUI.print({title:r,html:a,customStyle:l.style,beforeMethod:o?({html:e})=>o({html:e,content:e,options:l,$table:I}):void 0})):e(x.exportData(l).then(({content:e})=>_ui.VxeUI.print({title:r,html:e,customStyle:l.style,beforeMethod:o?({html:e})=>o({html:e,content:e,options:l,$table:I}):void 0}))):t({status:!1})})},getPrintHtml(e){var t=i.value,t=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});return I.exportData(t).then(({content:e})=>({html:e}))},closeImport(){return _ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_IMPORT_MODAL"):Promise.resolve()},openImport(e){var{treeConfig:t,importConfig:l}=D;let{initStore:r,importStore:o,importParams:a}=O;var i=c.value,i=Object.assign({mode:"insertTop",message:!0,types:_xeUtils.default.keys(i._typeMaps),modes:["insertTop","covering"]},i,e),e=i.types||[],s=i.modes||[];!t?(l||(0,_log.errLog)("vxe.error.reqProp",["import-config"]),t=e.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),l=s.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.import.modes."+e)}),Object.assign(o,{file:null,type:"",filename:"",modeList:l,typeList:t,visible:!0}),Object.assign(a,i),l.some(e=>e.value===a.mode)||(a.mode=l[0].value),r.import=!0):i.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.treeNotImp"),status:"error"})},closeExport:e,openExport(e){var t=R.value,t=Object.assign({message:!0,types:_xeUtils.default.keys(t._typeMaps)},t,e);return D.exportConfig||(0,_log.errLog)("vxe.error.reqProp",["export-config"]),l(t)},closePrint:e,openPrint(e){var t=i.value,t=Object.assign({message:!0},t,e);return D.printConfig||(0,_log.errLog)("vxe.error.reqProp",["print-config"]),l(t,!0)}};return x},setupGrid(e){return e.extendTableMethods(tableExportMethodKeys)}});
|
package/lib/table/src/cell.js
CHANGED
|
@@ -857,7 +857,7 @@ const Cell = exports.Cell = {
|
|
|
857
857
|
const radioVNs = [];
|
|
858
858
|
if (isVisible) {
|
|
859
859
|
radioVNs.push((0, _vue.h)('span', {
|
|
860
|
-
class: ['vxe-radio--icon', isChecked ? getIcon().TABLE_RADIO_CHECKED : getIcon().TABLE_RADIO_UNCHECKED]
|
|
860
|
+
class: ['vxe-radio--icon', isChecked ? getIcon().TABLE_RADIO_CHECKED : isDisabled ? getIcon().TABLE_RADIO_DISABLED_UNCHECKED : getIcon().TABLE_RADIO_UNCHECKED]
|
|
861
861
|
}));
|
|
862
862
|
}
|
|
863
863
|
if (defaultSlot || labelField) {
|
|
@@ -935,7 +935,7 @@ const Cell = exports.Cell = {
|
|
|
935
935
|
}],
|
|
936
936
|
title: _xeUtils.default.eqNull(headerTitle) ? getI18n('vxe.table.allTitle') : `${headerTitle || ''}`
|
|
937
937
|
}, ons), [(0, _vue.h)('span', {
|
|
938
|
-
class: ['vxe-checkbox--icon', isAllCheckboxIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllCheckboxSelected ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
938
|
+
class: ['vxe-checkbox--icon', isAllCheckboxIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllCheckboxSelected ? getIcon().TABLE_CHECKBOX_CHECKED : isAllCheckboxDisabled ? getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
939
939
|
})].concat(titleSlot || colTitle ? [(0, _vue.h)('span', {
|
|
940
940
|
class: 'vxe-checkbox--label'
|
|
941
941
|
}, titleSlot ? $table.callSlot(titleSlot, checkboxParams) : colTitle)] : []))]));
|
|
@@ -1013,7 +1013,7 @@ const Cell = exports.Cell = {
|
|
|
1013
1013
|
const checkVNs = [];
|
|
1014
1014
|
if (isVisible) {
|
|
1015
1015
|
checkVNs.push((0, _vue.h)('span', {
|
|
1016
|
-
class: ['vxe-checkbox--icon', indeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
1016
|
+
class: ['vxe-checkbox--icon', indeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : isDisabled ? getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
1017
1017
|
}));
|
|
1018
1018
|
}
|
|
1019
1019
|
if (defaultSlot || labelField) {
|
|
@@ -1107,7 +1107,7 @@ const Cell = exports.Cell = {
|
|
|
1107
1107
|
const checkVNs = [];
|
|
1108
1108
|
if (isVisible) {
|
|
1109
1109
|
checkVNs.push((0, _vue.h)('span', {
|
|
1110
|
-
class: ['vxe-checkbox--icon', isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
1110
|
+
class: ['vxe-checkbox--icon', isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : isDisabled ? getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
1111
1111
|
}));
|
|
1112
1112
|
if (defaultSlot || labelField) {
|
|
1113
1113
|
checkVNs.push((0, _vue.h)('span', {
|