vxe-table 4.10.6-beta.8 → 4.10.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/grid/src/grid.js +1 -1
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/ar-EG.js +2 -1
- package/es/locale/lang/de-DE.js +2 -1
- package/es/locale/lang/en-US.js +4 -3
- package/es/locale/lang/es-ES.js +2 -1
- package/es/locale/lang/fr-FR.js +2 -1
- package/es/locale/lang/hu-HU.js +2 -1
- package/es/locale/lang/hy-AM.js +2 -1
- package/es/locale/lang/it-IT.js +2 -1
- package/es/locale/lang/ja-JP.js +2 -1
- package/es/locale/lang/ko-KR.js +2 -1
- package/es/locale/lang/nb-NO.js +2 -1
- package/es/locale/lang/pt-BR.js +2 -1
- package/es/locale/lang/ru-RU.js +4 -3
- package/es/locale/lang/th-TH.js +2 -1
- package/es/locale/lang/ug-CN.js +2 -1
- package/es/locale/lang/uk-UA.js +518 -517
- package/es/locale/lang/vi-VN.js +2 -1
- package/es/locale/lang/zh-CHT.js +2 -1
- package/es/locale/lang/zh-CN.js +2 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/hook.js +7 -7
- package/es/table/module/export/hook.js +97 -62
- package/es/table/module/keyboard/hook.js +63 -27
- package/es/table/src/body.js +128 -81
- package/es/table/src/cell.js +41 -55
- package/es/table/src/column.js +13 -1
- package/es/table/src/columnInfo.js +3 -0
- package/es/table/src/emits.js +2 -0
- package/es/table/src/footer.js +48 -10
- package/es/table/src/header.js +70 -168
- package/es/table/src/props.js +14 -4
- package/es/table/src/table.js +884 -426
- package/es/table/src/util.js +77 -62
- package/es/table/style.css +253 -189
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +26 -11
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +253 -189
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +1533 -917
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +2 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +2 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +4 -3
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +4 -3
- package/lib/locale/lang/es-ES.js +2 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +2 -1
- package/lib/locale/lang/fr-FR.js +2 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +2 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +2 -1
- package/lib/locale/lang/hy-AM.js +2 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/it-IT.js +2 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +2 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +2 -1
- package/lib/locale/lang/ko-KR.js +2 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +2 -1
- package/lib/locale/lang/nb-NO.js +2 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +2 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +2 -1
- package/lib/locale/lang/ru-RU.js +4 -3
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +4 -3
- package/lib/locale/lang/th-TH.js +2 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +2 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +518 -517
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +518 -517
- package/lib/locale/lang/vi-VN.js +2 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +2 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CN.js +2 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +2 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/hook.js +7 -2
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/export/hook.js +97 -57
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/module/keyboard/hook.js +71 -28
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/src/body.js +129 -80
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +32 -42
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +13 -1
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +3 -0
- package/lib/table/src/columnInfo.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/footer.js +48 -8
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +54 -181
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/props.js +14 -4
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +935 -417
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +100 -82
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +253 -189
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +26 -11
- 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 +253 -189
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +1 -1
- package/packages/locale/lang/ar-EG.ts +2 -1
- package/packages/locale/lang/de-DE.ts +2 -1
- package/packages/locale/lang/en-US.ts +4 -3
- package/packages/locale/lang/es-ES.ts +2 -1
- package/packages/locale/lang/fr-FR.ts +2 -1
- package/packages/locale/lang/hu-HU.ts +2 -1
- package/packages/locale/lang/hy-AM.ts +2 -1
- package/packages/locale/lang/it-IT.ts +2 -1
- package/packages/locale/lang/ja-JP.ts +2 -1
- package/packages/locale/lang/ko-KR.ts +2 -1
- package/packages/locale/lang/nb-NO.ts +2 -1
- package/packages/locale/lang/pt-BR.ts +2 -1
- package/packages/locale/lang/ru-RU.ts +4 -3
- package/packages/locale/lang/th-TH.ts +2 -1
- package/packages/locale/lang/ug-CN.ts +2 -1
- package/packages/locale/lang/uk-UA.ts +518 -517
- package/packages/locale/lang/vi-VN.ts +2 -1
- package/packages/locale/lang/zh-CHT.ts +2 -1
- package/packages/locale/lang/zh-CN.ts +2 -1
- package/packages/table/module/edit/hook.ts +7 -7
- package/packages/table/module/export/hook.ts +118 -65
- package/packages/table/module/keyboard/hook.ts +59 -25
- package/packages/table/src/body.ts +148 -91
- package/packages/table/src/cell.ts +41 -63
- package/packages/table/src/column.ts +13 -1
- package/packages/table/src/columnInfo.ts +3 -0
- package/packages/table/src/emits.ts +5 -1
- package/packages/table/src/footer.ts +51 -11
- package/packages/table/src/header.ts +70 -168
- package/packages/table/src/props.ts +14 -5
- package/packages/table/src/table.ts +890 -428
- package/packages/table/src/util.ts +81 -62
- package/packages/ui/index.ts +25 -10
- package/styles/components/table.scss +319 -271
- package/styles/theme/base.scss +4 -6
- package/styles/theme/dark.scss +1 -0
- package/styles/theme/light.scss +1 -0
- package/styles/variable.scss +1 -1
- /package/es/{iconfont.1736840923205.ttf → iconfont.1738985856004.ttf} +0 -0
- /package/es/{iconfont.1736840923205.woff → iconfont.1738985856004.woff} +0 -0
- /package/es/{iconfont.1736840923205.woff2 → iconfont.1738985856004.woff2} +0 -0
- /package/lib/{iconfont.1736840923205.ttf → iconfont.1738985856004.ttf} +0 -0
- /package/lib/{iconfont.1736840923205.woff → iconfont.1738985856004.woff} +0 -0
- /package/lib/{iconfont.1736840923205.woff2 → iconfont.1738985856004.woff2} +0 -0
|
@@ -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(m){let{props:R,reactData:C,internalData:_}=m,o=m.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:w,computeCheckboxOpts:h,computeTreeOpts:E,computeValidOpts:s}=m.getComputeMaps(),I={},f={},p=(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")};function u(){var{editStore:e,tableColumn:t}=C,l=w.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))}function b(e,t){let{tableFullTreeData:i,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:s}=_;var l=E.value;let{rowField:u,parentField:c,mapChildrenField:v}=l,g=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(m,l),o=t?_xeUtils.default.findTree(i,e=>t===e[u],{children:v}):null;if(o){var o=o.item,a=s[(0,_util.getRowid)(m,o)],a=a?a.level:0;let e=o[g],t=o[v];_xeUtils.default.isArray(e)||(e=o[g]=[]),_xeUtils.default.isArray(t)||(t=o[g]=[]),e[w](l),t[w](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,oTop:0};d[r]=o,s[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[w](l),i[w](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,oTop:0};d[r]=a,s[r]=a}})}let d=(t,l,d)=>{let o=R.treeConfig;var{mergeList:e,editStore:r}=C;let{tableFullTreeData:s,afterFullData:a,tableFullData:i,fullDataRowIdData:u,fullAllDataRowIdData:c}=_,v=E.value,{transform:n,rowField:g,mapChildrenField:w}=v,f=v.children||v.childrenField,p=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(m.defineField(t.map(e=>Object.assign(o&&n?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&n?b(p,!1):(p.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,oTop:0};u[t]=l,c[t]=l,a.unshift(e),i.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+p.length)}));else if(-1===l)o&&n?b(p,!0):(p.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:a,parent:null,level:0,height:0,oTop:0};u[t]=l,c[t]=l,a.push(e),i.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>a.length&&(e.rowspan=l+p.length)}));else if(o&&n){let n=_xeUtils.default.findTree(s,e=>l[g]===e[g],{children:w});if(n){let o=n.parent,a=o?o[w]:s;t=c[(0,_util.getRowid)(m,o)];let i=t?t.level:0;if(p.forEach((e,t)=>{var l=(0,_util.getRowid)(m,e);"development"===process.env.NODE_ENV&&e[v.parentField]&&o&&e[v.parentField]!==o[g]&&(0,_log.errLog)("vxe.error.errProp",[v.parentField+"="+e[v.parentField],v.parentField+"="+o[g]]),o&&(e[v.parentField]=o[g]);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,oTop:0};u[l]=t,c[l]=t}),o){t=_xeUtils.default.findTree(s,e=>l[g]===e[g],{children:f});if(t){var x=t.items;let e=t.index;d&&(e+=1),x.splice(e,0,...p)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),b(p,!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=m.findRowIndexOf(a,l),-1===(r=d?Math.min(a.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));a.splice(r,0,...p);t=m.findRowIndexOf(i,l);-1<t?i.splice(t+(d?1:0),0,...p):i.push(...p),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+p.length:t+l>r&&(e.rowspan=l+p.length)})}let h=r.insertMaps;return p.forEach(e=>{var t=(0,_util.getRowid)(m,e);h[t]=e}),m.cacheRowMap(),m.updateScrollYStatus(),m.handleTableData(o&&n),o&&n||m.updateAfterDataIndex(),m.updateFooter(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},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]),d(e.map(e=>Object.assign({},e,{[n]:t[i]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.treeConfig=false","tree-config.treeConfig=true"]),Promise.resolve({row:null,rows:[]}))},x=(e,t)=>{let l=R.mouseConfig;var r=C.editStore,{actived:r,focused:o}=r,{row:a,column:i}=r,n=s.value;let d=c.value;if(a||i){if(t&&(0,_util.getRowid)(m,t)!==(0,_util.getRowid)(m,a))return(0,_vue.nextTick)();u(),r.args=null,r.row=null,r.column=null,m.updateFooter(),m.dispatchEvent("edit-closed",{row:a,rowIndex:m.getRowIndex(a),$rowIndex:m.getVMRowIndex(a),column:i,columnIndex:m.getColumnIndex(i),$columnIndex:m.getVMColumnIndex(i)},e||null)}return(0,_vue.nextTick)(()=>{if(l&&d.area&&m.handleRecalculateCellAreas)return m.handleRecalculateCellAreas()}),n.autoClear&&("full"!==n.msgMode||"obsolete"===getConfig().cellVaildMode)&&m.clearValidate?m.clearValidate():(o.row=null,(o.column=null,_vue.nextTick)())};return I={insert(e){return d(e,null)},insertAt(e,t){return d(e,t)},insertNextAt(e,t){return d(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;let{mergeList:l,editStore:r,selectCheckboxMaps:o}=C,{tableFullTreeData:a,afterFullData:i,tableFullData:n}=_;var d=h.value,s=E.value;let{transform:u,mapChildrenField:c}=s,v=s.children||s.childrenField,{actived:g,removeMaps:w}=r,f=Object.assign({},r.insertMaps),p=Object.assign({},C.pendingRowMaps);s=d.checkField;let x=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;m.isInsertByRow(e)||(t=(0,_util.getRowid)(m,e),w[t]=e)}),!s){let t=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(m,e);t[e]&&delete t[e]}),C.selectCheckboxMaps=t}return n===e?(e=x=n.slice(0),_.tableFullData=[],_.afterFullData=[],m.clearMergeCells()):t&&u?e.forEach(e=>{let t=(0,_util.getRowid)(m,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(m,e),{children:c}),l=(l&&(l=l.items.splice(l.index,1),x.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(m,e),{children:v})),l=(l&&l.items.splice(l.index,1),m.findRowIndexOf(i,e));-1<l&&i.splice(l,1)}):e.forEach(e=>{var t=m.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),x.push(t[0]));let r=m.findRowIndexOf(i,e);-1<r&&(l.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),i.splice(r,1))}),g.row&&-1<m.findRowIndexOf(e,g.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(m,e);f[e]&&delete f[e],p[e]&&delete p[e]}),r.insertMaps=f,C.pendingRowMaps=p,m.updateFooter(),m.cacheRowMap(),m.handleTableData(t&&u),t&&u||m.updateAfterDataIndex(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:x.length?x[x.length-1]:null,rows:x}))},removeCheckboxRow(){return I.remove(m.getCheckboxRecords()).then(e=>(m.clearCheckboxRow(),e))},removeRadioRow(){var e=m.getRadioRecord();return I.remove(e||[]).then(e=>(m.clearRadioRow(),e))},removeCurrentRow(){var e=m.getCurrentRecord();return I.remove(e||[]).then(e=>(m.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=m.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>m.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=C.editStore;let l=_.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=R,l=_.tableFullData,r=E.value;return e?(u(),t?_xeUtils.default.filterTree(l,e=>m.isUpdateByRow(e),r):l.filter(e=>m.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=C.editStore,t=_.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<m.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=C.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},clearEdit(e){return x(null,e)},clearSelected(){var e=C.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},isEditByRow(e){var t=C.editStore;return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=_.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(r=_xeUtils.default.isString(t)?m.getColumnByField(t):t),m.setEditCell(e,r)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(t,e){var l=R.editConfig;let r=_xeUtils.default.isString(e)?m.getColumnByField(e):e;return t&&r&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(r.editRender)?m.scrollToRow(t,r).then(()=>{var e=m.getCellElement(t,r);return e&&(f.handleEdit({row:t,rowIndex:m.getRowIndex(t),column:r,columnIndex:m.getColumnIndex(r),cell:e,$table:m}),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell(e,t){var l=C.tableData,r=w.value,t=_xeUtils.default.isString(t)?m.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=m.findRowIndexOf(l,e))&&t&&(l=m.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:m.getColumnIndex(t),cell:l},m.handleSelected(e,{})),(0,_vue.nextTick)()}},f={handleEdit(l,r){var{editConfig:e,mouseConfig:o}=R,{editStore:a,tableColumn:i}=C,n=w.value,d=n.mode,{actived:a,focused:t}=a;let{row:s,column:u}=l;var c=u.editRender,v=l.cell||m.getCellElement(s,u),g=n.beforeEditMethod||n.activeMethod;if((l.cell=v)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(c)&&!m.isPendingByRow(s)){if(a.row!==s||"cell"===d&&a.column!==u){let t="edit-disabled";if(!g||g(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))){o&&(I.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),m.closeTooltip(),a.column&&x(r),t="edit-activated",u.renderHeight=v.offsetHeight,a.args=l,a.row=s,a.column=u,"row"===d?i.forEach(e=>p(s,e)):p(s,u);let e=n.afterEditMethod;(0,_vue.nextTick)(()=>{f.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))})}m.dispatchEvent(t,{row:s,rowIndex:m.getRowIndex(s),$rowIndex:m.getVMRowIndex(s),column:u,columnIndex:m.getColumnIndex(u),$columnIndex:m.getVMColumnIndex(u)},r),"edit-activated"===t&&m.dispatchEvent("edit-actived",{row:s,rowIndex:m.getRowIndex(s),$rowIndex:m.getVMRowIndex(s),column:u,columnIndex:m.getColumnIndex(u),$columnIndex:m.getVMColumnIndex(u)},r)}else{e=a.column;o&&(I.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),e!==u&&(c=e.model,c.update&&(0,_util.setCellValue)(s,e,c.value),m.clearValidate)&&m.clearValidate(s,u),u.renderHeight=v.offsetHeight,a.args=l,a.column=u,setTimeout(()=>{f.handleFocus(l,r)})}t.column=null,t.row=null,m.focus()}return(0,_vue.nextTick)()},handleActived(e,t){return f.handleEdit(e,t)},handleClearEdit:x,handleFocus(r){var{row:o,column:a,cell:i}=r,n=a.editRender,d=w.value;if((0,_utils.isEnableConf)(n)){var s=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.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():_dom.browse.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!a.fixed&&m.scrollToRow(o,a)}},handleSelected(e,t){var l=R.mouseConfig,r=C.editStore,o=c.value;let a=w.value,{actived:i,selected:n}=r,{row:d,column:s}=e,u=l&&o.selected;return!u||n.row===d&&n.column===s||(i.row!==d||"cell"===a.mode&&i.column!==s)&&(x(t),I.clearSelected(),m.clearCellAreas&&(m.clearCellAreas(),m.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&f.addCellSelectedClass(),m.focus(),t)&&m.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=C.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=m.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),f)},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","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(m){let{props:R,reactData:C,internalData:_}=m,o=m.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:w,computeCheckboxOpts:x,computeTreeOpts:E,computeValidOpts:s}=m.getComputeMaps(),I={},f={},h=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},i=(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")};function u(){var{editStore:e,tableColumn:t}=C,l=w.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>i(r,e)):i(r,o))}function b(e,t){let{tableFullTreeData:a,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:s}=_;var l=E.value;let{rowField:u,parentField:c,mapChildrenField:g}=l,v=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(m,l),o=t?_xeUtils.default.findTree(a,e=>t===e[u],{children:g}):null;if(o){var o=o.item,i=s[(0,_util.getRowid)(m,o)],i=i?i.level:0;let e=o[v],t=o[g];_xeUtils.default.isArray(e)||(e=o[v]=[]),_xeUtils.default.isArray(t)||(t=o[v]=[]),e[w](l),t[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0};d[r]=o,s[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[w](l),a[w](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0};d[r]=i,s[r]=i}})}let d=(t,l,d)=>{let o=R.treeConfig;var{mergeList:e,editStore:r}=C;let{tableFullTreeData:s,afterFullData:i,tableFullData:a,fullDataRowIdData:u,fullAllDataRowIdData:c}=_,g=E.value,{transform:n,rowField:v,mapChildrenField:w}=g,f=g.children||g.childrenField,h=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(m.defineField(t.map(e=>Object.assign(o&&n?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&n?b(h,!1):(h.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0};u[t]=l,c[t]=l,i.unshift(e),a.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+h.length)}));else if(-1===l)o&&n?b(h,!0):(h.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0};u[t]=l,c[t]=l,i.push(e),a.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>i.length&&(e.rowspan=l+h.length)}));else if(o&&n){let n=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:w});if(n){let o=n.parent,i=o?o[w]:s;t=c[(0,_util.getRowid)(m,o)];let a=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(m,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&o&&e[g.parentField]!==o[v]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+o[v]]),o&&(e[g.parentField]=o[v]);let r=n.index+t;d&&(r+=1),i.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0};u[l]=t,c[l]=t}),o){t=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:f});if(t){var p=t.items;let e=t.index;d&&(e+=1),p.splice(e,0,...h)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),b(h,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<i.length&&(r=l):r=m.findRowIndexOf(i,l),-1===(r=d?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...h);t=m.findRowIndexOf(a,l);-1<t?a.splice(t+(d?1:0),0,...h):a.push(...h),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+h.length:t+l>r&&(e.rowspan=l+h.length)})}let x=r.insertMaps;return h.forEach(e=>{var t=(0,_util.getRowid)(m,e);x[t]=e}),m.cacheRowMap(!1),m.updateScrollYStatus(),m.handleTableData(o&&n),o&&n||m.updateAfterDataIndex(),m.updateFooter(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},r=(e,t,l,r)=>{var o=R.treeConfig;let{transform:i,rowField:a,parentField:n}=E.value;return o&&i?(_xeUtils.default.isArray(e)||(e=[e]),d(e.map(e=>Object.assign({},e,{[n]:t[a]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.treeConfig=false","tree-config.treeConfig=true"]),Promise.resolve({row:null,rows:[]}))},p=(e,t)=>{let l=R.mouseConfig;var r=C.editStore,{actived:r,focused:o}=r,{row:i,column:a}=r,n=s.value;let d=c.value;if(i||a){if(t&&(0,_util.getRowid)(m,t)!==(0,_util.getRowid)(m,i))return(0,_vue.nextTick)();u(),r.args=null,r.row=null,r.column=null,m.updateFooter(),m.dispatchEvent("edit-closed",{row:i,rowIndex:m.getRowIndex(i),$rowIndex:m.getVMRowIndex(i),column:a,columnIndex:m.getColumnIndex(a),$columnIndex:m.getVMColumnIndex(a)},e||null)}return(0,_vue.nextTick)(()=>{if(l&&d.area&&m.handleRecalculateCellAreas)return m.handleRecalculateCellAreas()}),n.autoClear&&("full"!==n.msgMode||"obsolete"===getConfig().cellVaildMode)&&m.clearValidate?m.clearValidate():(o.row=null,(o.column=null,_vue.nextTick)())};return I={insert(e){return d(e,null)},insertAt(e,t){return d(e,t)},insertNextAt(e,t){return d(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;let{mergeList:l,editStore:r,selectCheckboxMaps:o}=C,{tableFullTreeData:i,afterFullData:a,tableFullData:n}=_;var d=x.value,s=E.value;let{transform:u,mapChildrenField:c}=s,g=s.children||s.childrenField,{actived:v,removeMaps:w}=r,f=Object.assign({},r.insertMaps),h=Object.assign({},C.pendingRowMaps);s=d.checkField;let p=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;m.isInsertByRow(e)||(t=(0,_util.getRowid)(m,e),w[t]=e)}),!s){let t=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(m,e);t[e]&&delete t[e]}),C.selectCheckboxMaps=t}return n===e?(e=p=n.slice(0),_.tableFullData=[],_.afterFullData=[],m.clearMergeCells()):t&&u?e.forEach(e=>{let t=(0,_util.getRowid)(m,e);var l=_xeUtils.default.findTree(i,e=>t===(0,_util.getRowid)(m,e),{children:c}),l=(l&&(l=l.items.splice(l.index,1),p.push(l[0])),_xeUtils.default.findTree(i,e=>t===(0,_util.getRowid)(m,e),{children:g})),l=(l&&l.items.splice(l.index,1),m.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=m.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),p.push(t[0]));let r=m.findRowIndexOf(a,e);-1<r&&(l.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))}),v.row&&-1<m.findRowIndexOf(e,v.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(m,e);f[e]&&delete f[e],h[e]&&delete h[e]}),r.insertMaps=f,C.pendingRowMaps=h,m.updateFooter(),m.cacheRowMap(!1),m.handleTableData(t&&u),t&&u||m.updateAfterDataIndex(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},removeCheckboxRow(){return I.remove(m.getCheckboxRecords()).then(e=>(m.clearCheckboxRow(),e))},removeRadioRow(){var e=m.getRadioRecord();return I.remove(e||[]).then(e=>(m.clearRadioRow(),e))},removeCurrentRow(){var e=m.getCurrentRecord();return I.remove(e||[]).then(e=>(m.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=m.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>m.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=C.editStore;let l=_.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=R,l=_.tableFullData,r=E.value;return e?(u(),t?_xeUtils.default.filterTree(l,e=>m.isUpdateByRow(e),r):l.filter(e=>m.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=C.editStore,t=_.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<m.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=C.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},clearEdit(e){return p(null,e)},clearSelected(){var e=C.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},isEditByRow(e){var t=C.editStore;return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=_.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(r=_xeUtils.default.isString(t)?m.getColumnByField(t):t),m.setEditCell(e,r)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(t,e){var l=R.editConfig;let r=_xeUtils.default.isString(e)?m.getColumnByField(e):e;return t&&r&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(r.editRender)?m.scrollToRow(t,r).then(()=>{var e=m.getCellElement(t,r);return e&&(f.handleEdit({row:t,rowIndex:m.getRowIndex(t),column:r,columnIndex:m.getColumnIndex(r),cell:e,$table:m}),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell(e,t){var l=C.tableData,r=w.value,t=_xeUtils.default.isString(t)?m.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=m.findRowIndexOf(l,e))&&t&&(l=m.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:m.getColumnIndex(t),cell:l},m.handleSelected(e,{})),(0,_vue.nextTick)()}},f={handleEdit(l,r){var{editConfig:e,mouseConfig:o}=R,{editStore:i,tableColumn:a}=C,n=w.value,d=n.mode,{actived:i,focused:t}=i;let{row:s,column:u}=l;var c=u.editRender,g=l.cell||m.getCellElement(s,u),v=n.beforeEditMethod||n.activeMethod;if((l.cell=g)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(c)&&!m.isPendingByRow(s)){if(i.row!==s||"cell"===d&&i.column!==u){let t="edit-disabled";if(!v||v(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))){o&&(I.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),m.closeTooltip(),i.column&&p(r),t="edit-activated",u.renderHeight=g.offsetHeight,i.args=l,i.row=s,i.column=u,"row"===d?a.forEach(e=>h(s,e)):h(s,u);let e=n.afterEditMethod;(0,_vue.nextTick)(()=>{f.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))})}m.dispatchEvent(t,{row:s,rowIndex:m.getRowIndex(s),$rowIndex:m.getVMRowIndex(s),column:u,columnIndex:m.getColumnIndex(u),$columnIndex:m.getVMColumnIndex(u)},r),"edit-activated"===t&&m.dispatchEvent("edit-actived",{row:s,rowIndex:m.getRowIndex(s),$rowIndex:m.getVMRowIndex(s),column:u,columnIndex:m.getColumnIndex(u),$columnIndex:m.getVMColumnIndex(u)},r)}else{e=i.column;o&&(I.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),e!==u&&(c=e.model,c.update&&(0,_util.setCellValue)(s,e,c.value),m.clearValidate)&&m.clearValidate(s,u),u.renderHeight=g.offsetHeight,i.args=l,i.column=u,setTimeout(()=>{f.handleFocus(l,r)})}t.column=null,t.row=null,m.focus()}return(0,_vue.nextTick)()},handleActived(e,t){return f.handleEdit(e,t)},handleClearEdit:p,handleFocus(r){var{row:o,column:i,cell:a}=r,n=i.editRender,d=w.value;if((0,_utils.isEnableConf)(n)){var s=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?a.querySelector("input,textarea"):a.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!i.fixed&&m.scrollToRow(o,i)}},handleSelected(e,t){var l=R.mouseConfig,r=C.editStore,o=c.value;let i=w.value,{actived:a,selected:n}=r,{row:d,column:s}=e,u=l&&o.selected;return!u||n.row===d&&n.column===s||(a.row!==d||"cell"===i.mode&&a.column!==s)&&(p(t),I.clearSelected(),m.clearCellAreas&&(m.clearCellAreas(),m.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&f.addCellSelectedClass(),m.focus(),t)&&m.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=C.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=m.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),f)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
|
|
@@ -132,7 +132,21 @@ function getTxtCellValue(val, vMaps) {
|
|
|
132
132
|
const rest = replaceTxtCell(val, vMaps);
|
|
133
133
|
return rest.replace(/^"+$/g, qVal => '"'.repeat(Math.ceil(qVal.length / 2)));
|
|
134
134
|
}
|
|
135
|
-
function
|
|
135
|
+
function toExportField(tableConf, field) {
|
|
136
|
+
const {
|
|
137
|
+
fieldMaps,
|
|
138
|
+
titleMaps
|
|
139
|
+
} = tableConf;
|
|
140
|
+
// title 转 field
|
|
141
|
+
if (!fieldMaps[field]) {
|
|
142
|
+
const teCol = titleMaps[field];
|
|
143
|
+
if (teCol && teCol.field) {
|
|
144
|
+
field = teCol.field;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return field;
|
|
148
|
+
}
|
|
149
|
+
function parseCsvAndTxt(tableConf, content, cellSeparator) {
|
|
136
150
|
const list = content.split(enterSymbol);
|
|
137
151
|
const rows = [];
|
|
138
152
|
let fields = [];
|
|
@@ -153,7 +167,7 @@ function parseCsvAndTxt(columns, content, cellSeparator) {
|
|
|
153
167
|
});
|
|
154
168
|
const cells = rVal.split(cellSeparator);
|
|
155
169
|
if (!fields.length) {
|
|
156
|
-
fields = cells.map(val => getTxtCellValue(val.trim(), vMaps));
|
|
170
|
+
fields = cells.map(val => toExportField(tableConf, getTxtCellValue(val.trim(), vMaps)));
|
|
157
171
|
} else {
|
|
158
172
|
cells.forEach((val, colIndex) => {
|
|
159
173
|
if (colIndex < fields.length) {
|
|
@@ -170,13 +184,13 @@ function parseCsvAndTxt(columns, content, cellSeparator) {
|
|
|
170
184
|
rows
|
|
171
185
|
};
|
|
172
186
|
}
|
|
173
|
-
function parseCsv(
|
|
174
|
-
return parseCsvAndTxt(
|
|
187
|
+
function parseCsv(tableConf, content) {
|
|
188
|
+
return parseCsvAndTxt(tableConf, content, ',');
|
|
175
189
|
}
|
|
176
|
-
function parseTxt(
|
|
177
|
-
return parseCsvAndTxt(
|
|
190
|
+
function parseTxt(tableConf, content) {
|
|
191
|
+
return parseCsvAndTxt(tableConf, content, '\t');
|
|
178
192
|
}
|
|
179
|
-
function parseHTML(
|
|
193
|
+
function parseHTML(tableConf, content) {
|
|
180
194
|
const domParser = new DOMParser();
|
|
181
195
|
const xmlDoc = domParser.parseFromString(content, 'text/html');
|
|
182
196
|
const bodyNodes = getElementsByTagName(xmlDoc, 'body');
|
|
@@ -189,7 +203,7 @@ function parseHTML(columns, content) {
|
|
|
189
203
|
if (theadNodes.length) {
|
|
190
204
|
_xeUtils.default.arrayEach(getElementsByTagName(theadNodes[0], 'tr'), rowNode => {
|
|
191
205
|
_xeUtils.default.arrayEach(getElementsByTagName(rowNode, 'th'), cellNode => {
|
|
192
|
-
fields.push(cellNode.textContent);
|
|
206
|
+
fields.push(toExportField(tableConf, cellNode.textContent || ''));
|
|
193
207
|
});
|
|
194
208
|
});
|
|
195
209
|
const tbodyNodes = getElementsByTagName(tableNodes[0], 'tbody');
|
|
@@ -212,7 +226,7 @@ function parseHTML(columns, content) {
|
|
|
212
226
|
rows
|
|
213
227
|
};
|
|
214
228
|
}
|
|
215
|
-
function parseXML(
|
|
229
|
+
function parseXML(tableConf, content) {
|
|
216
230
|
const domParser = new DOMParser();
|
|
217
231
|
const xmlDoc = domParser.parseFromString(content, 'application/xml');
|
|
218
232
|
const sheetNodes = getElementsByTagName(xmlDoc, 'Worksheet');
|
|
@@ -224,7 +238,7 @@ function parseXML(columns, content) {
|
|
|
224
238
|
const rowNodes = getElementsByTagName(tableNodes[0], 'Row');
|
|
225
239
|
if (rowNodes.length) {
|
|
226
240
|
_xeUtils.default.arrayEach(getElementsByTagName(rowNodes[0], 'Cell'), cellNode => {
|
|
227
|
-
fields.push(cellNode.textContent);
|
|
241
|
+
fields.push(toExportField(tableConf, cellNode.textContent || ''));
|
|
228
242
|
});
|
|
229
243
|
_xeUtils.default.arrayEach(rowNodes, (rowNode, index) => {
|
|
230
244
|
if (index) {
|
|
@@ -257,21 +271,6 @@ function clearColumnConvert(columns) {
|
|
|
257
271
|
children: 'children'
|
|
258
272
|
});
|
|
259
273
|
}
|
|
260
|
-
/**
|
|
261
|
-
* 检查导入的列是否完整
|
|
262
|
-
* @param {Array} fields 字段名列表
|
|
263
|
-
* @param {Array} rows 数据列表
|
|
264
|
-
*/
|
|
265
|
-
function checkImportData(columns, fields) {
|
|
266
|
-
const tableFields = [];
|
|
267
|
-
columns.forEach(column => {
|
|
268
|
-
const field = column.field;
|
|
269
|
-
if (field) {
|
|
270
|
-
tableFields.push(field);
|
|
271
|
-
}
|
|
272
|
-
});
|
|
273
|
-
return fields.some(field => tableFields.indexOf(field) > -1);
|
|
274
|
-
}
|
|
275
274
|
const tableExportMethodKeys = ['exportData', 'importByFile', 'importData', 'saveFile', 'readFile', 'print', 'getPrintHtml', 'openImport', 'closeImport', 'openExport', 'closeExport', 'openPrint', 'closePrint'];
|
|
276
275
|
hooks.add('tableExportModule', {
|
|
277
276
|
setupTable($xeTable) {
|
|
@@ -900,25 +899,41 @@ hooks.add('tableExportModule', {
|
|
|
900
899
|
fields: [],
|
|
901
900
|
rows: []
|
|
902
901
|
};
|
|
902
|
+
const tableFieldMaps = {};
|
|
903
|
+
const tableTitleMaps = {};
|
|
904
|
+
tableFullColumn.forEach(column => {
|
|
905
|
+
const field = column.field;
|
|
906
|
+
const title = column.getTitle();
|
|
907
|
+
if (field) {
|
|
908
|
+
tableFieldMaps[field] = column;
|
|
909
|
+
}
|
|
910
|
+
if (title) {
|
|
911
|
+
tableTitleMaps[column.getTitle()] = column;
|
|
912
|
+
}
|
|
913
|
+
});
|
|
914
|
+
const tableConf = {
|
|
915
|
+
fieldMaps: tableFieldMaps,
|
|
916
|
+
titleMaps: tableTitleMaps
|
|
917
|
+
};
|
|
903
918
|
switch (opts.type) {
|
|
904
919
|
case 'csv':
|
|
905
|
-
rest = parseCsv(
|
|
920
|
+
rest = parseCsv(tableConf, content);
|
|
906
921
|
break;
|
|
907
922
|
case 'txt':
|
|
908
|
-
rest = parseTxt(
|
|
923
|
+
rest = parseTxt(tableConf, content);
|
|
909
924
|
break;
|
|
910
925
|
case 'html':
|
|
911
|
-
rest = parseHTML(
|
|
926
|
+
rest = parseHTML(tableConf, content);
|
|
912
927
|
break;
|
|
913
928
|
case 'xml':
|
|
914
|
-
rest = parseXML(
|
|
929
|
+
rest = parseXML(tableConf, content);
|
|
915
930
|
break;
|
|
916
931
|
}
|
|
917
932
|
const {
|
|
918
933
|
fields,
|
|
919
934
|
rows
|
|
920
935
|
} = rest;
|
|
921
|
-
const status =
|
|
936
|
+
const status = fields.some(field => tableFieldMaps[field] || tableTitleMaps[field]);
|
|
922
937
|
if (status) {
|
|
923
938
|
$xeTable.createData(rows).then(data => {
|
|
924
939
|
let loadRest;
|
|
@@ -1076,6 +1091,43 @@ hooks.add('tableExportModule', {
|
|
|
1076
1091
|
return Promise.reject(e);
|
|
1077
1092
|
});
|
|
1078
1093
|
};
|
|
1094
|
+
const handleFilterColumns = (exportOpts, column, columns) => {
|
|
1095
|
+
return columns.some(item => {
|
|
1096
|
+
if ((0, _util.isColumnInfo)(item)) {
|
|
1097
|
+
return column.id === item.id;
|
|
1098
|
+
} else if (_xeUtils.default.isString(item)) {
|
|
1099
|
+
return column.field === item;
|
|
1100
|
+
} else {
|
|
1101
|
+
const colid = item.id || item.colId;
|
|
1102
|
+
const type = item.type;
|
|
1103
|
+
const field = item.field;
|
|
1104
|
+
if (colid) {
|
|
1105
|
+
return column.id === colid;
|
|
1106
|
+
} else if (field && type) {
|
|
1107
|
+
return column.field === field && column.type === type;
|
|
1108
|
+
} else if (field) {
|
|
1109
|
+
return column.field === field;
|
|
1110
|
+
} else if (type) {
|
|
1111
|
+
return column.type === type;
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
return false;
|
|
1115
|
+
});
|
|
1116
|
+
};
|
|
1117
|
+
const handleFilterFields = (exportOpts, column, includeFields, excludeFields) => {
|
|
1118
|
+
if (excludeFields) {
|
|
1119
|
+
if (_xeUtils.default.includes(excludeFields, column.field)) {
|
|
1120
|
+
return false;
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
if (includeFields) {
|
|
1124
|
+
if (_xeUtils.default.includes(includeFields, column.field)) {
|
|
1125
|
+
return true;
|
|
1126
|
+
}
|
|
1127
|
+
return false;
|
|
1128
|
+
}
|
|
1129
|
+
return exportOpts.original ? column.field : defaultFilterExportColumn(column);
|
|
1130
|
+
};
|
|
1079
1131
|
const handleExportAndPrint = (options, isPrint) => {
|
|
1080
1132
|
const {
|
|
1081
1133
|
treeConfig,
|
|
@@ -1116,7 +1168,9 @@ hooks.add('tableExportModule', {
|
|
|
1116
1168
|
const checkMethod = customOpts.checkMethod;
|
|
1117
1169
|
const exportColumns = collectColumn.slice(0);
|
|
1118
1170
|
const {
|
|
1119
|
-
columns
|
|
1171
|
+
columns,
|
|
1172
|
+
excludeFields,
|
|
1173
|
+
includeFields
|
|
1120
1174
|
} = defOpts;
|
|
1121
1175
|
// 处理类型
|
|
1122
1176
|
const typeList = types.map(value => {
|
|
@@ -1140,33 +1194,19 @@ hooks.add('tableExportModule', {
|
|
|
1140
1194
|
// 默认选中
|
|
1141
1195
|
_xeUtils.default.eachTree(exportColumns, (column, index, items, path, parent) => {
|
|
1142
1196
|
const isColGroup = column.children && column.children.length;
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
const colid = item.id || item.colId;
|
|
1151
|
-
const type = item.type;
|
|
1152
|
-
const field = item.field;
|
|
1153
|
-
if (colid) {
|
|
1154
|
-
return column.id === colid;
|
|
1155
|
-
} else if (field && type) {
|
|
1156
|
-
return column.field === field && column.type === type;
|
|
1157
|
-
} else if (field) {
|
|
1158
|
-
return column.field === field;
|
|
1159
|
-
} else if (type) {
|
|
1160
|
-
return column.type === type;
|
|
1161
|
-
}
|
|
1162
|
-
}
|
|
1163
|
-
return false;
|
|
1164
|
-
}) : column.visible;
|
|
1165
|
-
column.halfChecked = false;
|
|
1166
|
-
column.disabled = parent && parent.disabled || (checkMethod ? !checkMethod({
|
|
1167
|
-
column
|
|
1168
|
-
}) : false);
|
|
1197
|
+
let isChecked = false;
|
|
1198
|
+
if (columns && columns.length) {
|
|
1199
|
+
isChecked = handleFilterColumns(defOpts, column, columns);
|
|
1200
|
+
} else if (excludeFields || includeFields) {
|
|
1201
|
+
isChecked = handleFilterFields(defOpts, column, includeFields, excludeFields);
|
|
1202
|
+
} else {
|
|
1203
|
+
isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
|
|
1169
1204
|
}
|
|
1205
|
+
column.checked = isChecked;
|
|
1206
|
+
column.halfChecked = false;
|
|
1207
|
+
column.disabled = parent && parent.disabled || (checkMethod ? !checkMethod({
|
|
1208
|
+
column
|
|
1209
|
+
}) : false);
|
|
1170
1210
|
});
|
|
1171
1211
|
// 更新条件
|
|
1172
1212
|
Object.assign(exportStore, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_utils=require("../../../ui/src/utils"),_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(e,t){let l=e.footerFilterMethod;return l?t.filter((e,t)=>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 parseCsvAndTxt(e,t,a){t=t.split(enterSymbol);let i=[],s=[];if(t.length){let r={},o=Date.now();t.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=>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(e,t){var l,t=getElementsByTagName((new DOMParser).parseFromString(t,"text/html"),"body");let r=[],o=[];return t.length&&(t=getElementsByTagName(t[0],"table")).length&&(l=getElementsByTagName(t[0],"thead")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{_xeUtils.default.arrayEach(getElementsByTagName(e,"th"),e=>{o.push(e.textContent)})}),(l=getElementsByTagName(t[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(e,t){var t=getElementsByTagName((new DOMParser).parseFromString(t,"application/xml"),"Worksheet");let r=[],o=[];return t.length&&(t=getElementsByTagName(t[0],"Table")).length&&(t=getElementsByTagName(t[0],"Row")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(t[0],"Cell"),e=>{o.push(e.textContent)}),_xeUtils.default.arrayEach(t,(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"})}function checkImportData(e,t){let l=[];return e.forEach(e=>{e=e.field;e&&l.push(e)}),t.some(e=>-1<l.indexOf(e))}let tableExportMethodKeys=["exportData","importByFile","importData","saveFile","readFile","print","getPrintHtml","openImport","closeImport","openExport","closeExport","openPrint","closePrint"];hooks.add("tableExportModule",{setupTable(C){let{props:T,reactData:E,internalData:w}=C,{computeTreeOpts:k,computePrintOpts:i,computeExportOpts:M,computeImportOpts:c,computeCustomOpts:U,computeSeqOpts:s,computeRadioOpts:r,computeCheckboxOpts:o,computeColumnOpts:n}=C.getComputeMaps(),j=(0,_vue.inject)("$xeGrid",null),g=e=>{var t=k.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({row:t,rowIndex:C.getRowIndex(t),$rowIndex:l,column:r,columnIndex:C.getColumnIndex(r),$columnIndex:o}):e};function I(e,t){var l=n.value,l=t.headerExportMethod||l.headerExportMethod;return l?l({column:t,options:e,$table:C}):(e.original?t.field:t.getTitle())||""}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=T.treeConfig;let m=r.value,h=o.value;var l=k.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)&&C.isTreeExpandByRow(e)){l=g(d);let i={_row:d,_level:r.length-1,_hasChild:l,_expand:l&&C.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:C,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(C.isCheckedByCheckboxRow(d)),i._checkboxLabel=h.labelField?_xeUtils.default.get(d,h.labelField):"",i._checkboxDisabled=h.checkMethod&&!h.checkMethod({row:d});break;case"radio":l=v(C.isCheckedByRadioRow(d)),i._radioLabel=m.labelField?_xeUtils.default.get(d,m.labelField):"",i._radioDisabled=m.checkMethod&&!m.checkMethod({row:d});break;default:c.original?l=(0,_util.getCellValue)(d,e):(l=C.getCellLabel(d,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=C.getCellElement(d,e))&&(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:C,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(C.isCheckedByCheckboxRow(i)),n._checkboxLabel=h.labelField?_xeUtils.default.get(i,h.labelField):"",n._checkboxDisabled=h.checkMethod&&!h.checkMethod({row:i});break;case"radio":l=v(C.isCheckedByRadioRow(i)),n._radioLabel=m.labelField?_xeUtils.default.get(i,m.labelField):"",n._radioDisabled=m.checkMethod&&!m.checkMethod({row:i});break;default:c.original?l=(0,_util.getCellValue)(i,e):(l=C.getCellLabel(i,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=C.getCellElement(i,e))&&(l=a.innerText.trim()))}n[e.id]=b(l)}),n})},F=(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=C.getVTColumnIndex(l);return a?a({$table:C,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=(l,e,t)=>{let r=csvBOM;return l.isHeader&&(r+=e.map(e=>toTxtCellLabel(I(l,e))).join(",")+enterSymbol),t.forEach(t=>{r+=e.map(e=>toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))).join(",")+enterSymbol}),l.isFooter&&(t=E.footerTableData,getFooterData(l,t).forEach(t=>{r+=e.map(e=>toTxtCellLabel(F(l,t,e))).join(",")+enterSymbol})),r},p=(l,e,t)=>{let r="";return l.isHeader&&(r+=e.map(e=>toTxtCellLabel(I(l,e))).join("\t")+enterSymbol),t.forEach(t=>{r+=e.map(e=>toTxtCellLabel(t[e.id])).join("\t")+enterSymbol}),l.isFooter&&(t=E.footerTableData,getFooterData(l,t).forEach(t=>{r+=e.map(e=>toTxtCellLabel(F(l,t,e))).join("\t")+enterSymbol})),r},N=(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}=E;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}=T,{isAllSelected:m,isIndeterminate:o,mergeList:h}=E,i=k.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=N(t,"showHeaderOverflow",p)?["col--ellipsis"]:[],r=I(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=N(e,"showHeaderOverflow",p)?["col--ellipsis"]:[],r=I(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 e=t.align||c,l=N(t,"showOverflow",u)?["col--ellipsis"]:[],r=o[t.id];if(e&&l.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>`),l.push("vxe-table--tree-node"),"radio"===t.type?`<td class="${l.join(" ")}" title="${r}"><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(r)?"checked":""}><span>${o._radioLabel}</span></div></div></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}" title="${r}"><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(r)?"checked":""}><span>${o._checkboxLabel}</span></div></div></div></td>`:`<td class="${l.join(" ")}" title="${r}"><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">${r}</div></div></div></td>`}return"radio"===t.type?`<td class="${l.join(" ")}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><input type="radio" name="radio_${d}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._radioLabel}</span></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._checkboxLabel}</span></div></td>`:`<td class="${l.join(" ")}" title="${r}"><div ${x?"":`style="width: ${t.renderWidth}px"`}>${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")+"</tr>")}):t.forEach(n=>{w.push("<tr>"+e.map(e=>{var t=e.align||c,l=N(e,"showOverflow",u)?["col--ellipsis"]:[],r=n[e.id];let o=1,a=1;if(b&&h.length){var i=C.getVTRowIndex(n._row),s=C.getVTColumnIndex(e),i=(0,_util.mergeBodyMethod)(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=E.footerTableData,(t=getFooterData(s,t)).length)&&(w.push("<tfoot>"),t.forEach(o=>{w.push(`<tr>${e.map(e=>{var t=e.footerAlign||e.align||a||c,l=N(e,"showOverflow",u)?["col--ellipsis"]:[],r=F(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">${I(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=E.footerTableData,getFooterData(l,t).forEach(t=>{r+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${F(l,t,e)}</Data></Cell>`).join("")}</Row>`})),r+"</Table></Worksheet></Workbook>"},$=l=>{let{remote:r,columns:o,colgroups:a,exportMethod:i,afterExportMethod:t}=l;return new Promise(t=>{if(r){var e={options:l,$table:C,$grid:j};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({row:e,$rowIndex:t}))),d(e,t,r)})(l);t(C.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)=>{if(t.length)switch(e.type){case"csv":return u(e,t,l);case"txt":return p(e,t,l);case"html":return m(e,t,l);case"xml":return h(e,t,l)}return""})(l,o,e))))}}).then(e=>(clearColumnConvert(o),l.print||t&&t({status:!0,options:l,$table:C,$grid:j}),Object.assign({status:!0},e))).catch(()=>{clearColumnConvert(o),l.print||t&&t({status:!1,options:l,$table:C,$grid:j});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),w._importResolve=null,w._importReject=null},r=e=>{l(e),w._importResolve=null,w._importReject=null};if(w._importResolve=e,w._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:C})).then(()=>{e({status:!0})}).catch(()=>{e({status:!0})}):e({status:!0}):(o=w.tableFullColumn,C.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}=w,a={fields:[],rows:[]};switch(l.type){case"csv":a=parseCsv(t,e);break;case"txt":a=parseTxt(t,e);break;case"html":a=parseHTML(t,e);break;case"xml":a=parseXML(t,e)}let{fields:i,rows:s}=a;checkImportData(t,i)?C.createData(s).then(e=>{let t;return"insert"!==l.mode&&"insertBottom"!==l.mode||(t=C.insertAt(e,-1)),t="insertTop"===l.mode?C.insert(e):C.reloadData(e),!1!==l.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.impSuccess",[s.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"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notExp"),e({status:!0})}).then(()=>{t&&t({status:!0,options:i,$table:C})}).catch(e=>(t&&t({status:!1,options:i,$table:C}),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}))},l=(e,t)=>{var{treeConfig:l,showHeader:r,showFooter:o}=T,{initStore:a,mergeList:i,mergeFooterList:s,isGroup:n,footerTableData:d,exportStore:c,exportParams:u}=E,p=w.collectColumn,m=M.value,h=U.value,x=C.getCheckboxRecords(),g=j?j.getComputeMaps().computeProxyOpts.value:{},d=!!d.length,i=!(!i.length&&!s.length),s=Object.assign({message:!0,isHeader:r,isFooter:o,isColgroup:n,isMerge:i,useStyle:!0,current:"current",modes:["current","selected"].concat(g.ajax&&g.ajax.queryAll?["all"]:[])},e),r=s.types||_xeUtils.default.keys(m._typeMaps),o=s.modes||[];let f=h.checkMethod;g=p.slice(0);let v=s.columns;e=r.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),m=o.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.export.modes."+e)});_xeUtils.default.eachTree(g,(r,e,t,l,o)=>{(r.children&&r.children.length||defaultFilterExportColumn(r))&&(r.checked=v?v.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)}):r.visible,r.halfChecked=!1,r.disabled=o&&o.disabled||!!f&&!f({column:r}))}),Object.assign(c,{columns:g,typeList:e,modeList:m,hasFooter:d,hasMerge:i,hasTree:l,isPrint:t,hasColgroup:n,visible:!0}),Object.assign(u,{mode:x.length?"selected":"current"},s);let{filename:b,sheetName:_,mode:y,type:$}=u;return b&&(_xeUtils.default.isFunction(b)?u.filename=b({options:s,$table:C,$grid:j}):u.filename=""+b),_&&(_xeUtils.default.isFunction(_)?u.sheetName=_({options:s,$table:C,$grid:j}):u.sheetName=""+_),m.some(e=>e.value===y)||(u.mode=m[0].value),e.some(e=>e.value===$)||(u.type=e[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 e=T.treeConfig,{isGroup:l,tableGroupColumn:n}=E;let{tableFullColumn:a,afterFullData:t}=w;var d=M.value,r=k.value,s=Object.assign({isHeader:!0,isFooter:!0,isColgroup:!0,download:!0,type:"csv",mode:"current"},d,s);let{filename:o,sheetName:i,type:c,mode:u,columns:p,original:m,columnFilterMethod:h,beforeExportMethod:x,includeFields:g,excludeFields:f}=s,v=[];var b=p&&p.length?p:null;let _=Object.assign({},s,{filename:"",sheetName:""}),y=(b||h||(_.columnFilterMethod=({column:e})=>(!f||!_xeUtils.default.includes(f,e.field))&&(g?!!_xeUtils.default.includes(g,e.field):m?e.field:defaultFilterExportColumn(e))),v=b?(_._isCustomColumn=!0,_xeUtils.default.searchTree(_xeUtils.default.mapTree(b,e=>{let r;if(e){if((0,_util.isColumnInfo)(e))r=e;else if(_xeUtils.default.isString(e))r=C.getColumnByField(e);else{var o=e.id||e.colId;let t=e.type,l=e.field;o?r=C.getColumnById(o):l&&t?r=a.find(e=>e.field===l&&e.type===t):l?r=C.getColumnByField(l):t&&(r=a.find(e=>e.type===t))}return r||{}}},{children:"childNodes",mapChildren:"_children"}),(e,t)=>(0,_util.isColumnInfo)(e)&&(!h||h({column:e,$columnIndex:t})),{children:"_children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(l?n:a,(e,t)=>e.visible&&(!h||h({column:e,$columnIndex:t})),{children:"children",mapChildren:"childNodes",original:!0}),[]);if(_xeUtils.default.eachTree(v,e=>{e.children&&e.children.length||y.push(e)},{children:"childNodes"}),_.columns=y,_.colgroups=convertToRows(v),o&&(_xeUtils.default.isFunction(o)?_.filename=o({options:s,$table:C,$grid:j}):_.filename=""+o),_.filename||(_.filename=getI18n(_.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),i&&(_xeUtils.default.isFunction(i)?_.sheetName=i({options:s,$table:C,$grid:j}):_.sheetName=""+i),_.sheetName||(_.sheetName=document.title||""),!_.exportMethod&&!_xeUtils.default.includes(_xeUtils.default.keys(d._typeMaps),c))return(0,_log.errLog)("vxe.error.notType",[c]),"development"===process.env.NODE_ENV&&["xlsx","pdf"].includes(c)&&(0,_log.warnLog)("vxe.error.reqPlugin",[4,"plugin-export-xlsx"]),Promise.reject({status:!1});if(_.print||x&&x({options:_,$table:C,$grid:j}),!_.data)if(_.data=[],"selected"===u){let t=C.getCheckboxRecords();-1<["html","pdf"].indexOf(c)&&e?_.data=_xeUtils.default.searchTree(C.getTableData().fullData,e=>-1<C.findRowIndexOf(t,e),Object.assign({},r,{data:"_row"})):_.data=t}else if("all"===u){if("development"!==process.env.NODE_ENV||j||(0,_log.warnLog)("vxe.error.errProp",["all","mode=current,selected"]),j&&!_.remote){b=j.reactData,l=j.getComputeMaps().computeProxyOpts,n=l.value,s=b.sortData;let{beforeQueryAll:e,afterQueryAll:r,ajax:t={}}=n,o=n.response||n.props||{};d=t.queryAll;let a=t.queryAllSuccess,i=t.queryAllError;if("development"!==process.env.NODE_ENV||d||(0,_log.warnLog)("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),d){let l={$table:C,$grid:j,sort:s.length?s[0]:{},sorts:s,filters:b.filterData,form:b.formData,options:_};return Promise.resolve((e||d)(l)).then(e=>{var t=o.list;return _.data=(t?_xeUtils.default.isFunction(t)?t({data:e,$grid:j}):_xeUtils.default.get(e,t):e)||[],r&&r(l),a&&a(Object.assign(Object.assign({},l),{response:e})),$(_)}).catch(e=>{i&&i(Object.assign(Object.assign({},l),{response:e}))})}}}else"current"===u&&(_.data=t);return $(_)},importByFile(e,t){var t=Object.assign({},t),l=t.beforeImportMethod;return l&&l({options:t,$table:C}),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:C}),_ui.VxeUI.readFile(l).catch(e=>(o&&o({status:!1,options:l,$table:C}),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:C,$grid:j}):""+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:C}):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:C}):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 C.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}=T;let{initStore:r,importStore:o,importParams:a}=E;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=M.value,t=Object.assign({message:!0,types:_xeUtils.default.keys(t._typeMaps)},t,e);"development"!==process.env.NODE_ENV||T.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);"development"!==process.env.NODE_ENV||T.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"),_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(e,t){let l=e.footerFilterMethod;return l?t.filter((e,t)=>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(T){let{props:k,reactData:M,internalData:U}=T,{computeTreeOpts:C,computePrintOpts:i,computeExportOpts:F,computeImportOpts:c,computeCustomOpts:j,computeSeqOpts:s,computeRadioOpts:r,computeCheckboxOpts:o,computeColumnOpts:n}=T.getComputeMaps(),I=(0,_vue.inject)("$xeGrid",null),g=e=>{var t=C.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({row:t,rowIndex:T.getRowIndex(t),$rowIndex:l,column:r,columnIndex:T.getColumnIndex(r),$columnIndex:o}):e};function E(e,t){var l=n.value,l=t.headerExportMethod||l.headerExportMethod;return l?l({column:t,options:e,$table:T}):(e.original?t.field:t.getTitle())||""}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=k.treeConfig;let m=r.value,h=o.value;var l=C.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)&&T.isTreeExpandByRow(e)){l=g(d);let i={_row:d,_level:r.length-1,_hasChild:l,_expand:l&&T.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:T,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(T.isCheckedByCheckboxRow(d)),i._checkboxLabel=h.labelField?_xeUtils.default.get(d,h.labelField):"",i._checkboxDisabled=h.checkMethod&&!h.checkMethod({row:d});break;case"radio":l=v(T.isCheckedByRadioRow(d)),i._radioLabel=m.labelField?_xeUtils.default.get(d,m.labelField):"",i._radioDisabled=m.checkMethod&&!m.checkMethod({row:d});break;default:c.original?l=(0,_util.getCellValue)(d,e):(l=T.getCellLabel(d,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=T.getCellElement(d,e))&&(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:T,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(T.isCheckedByCheckboxRow(i)),n._checkboxLabel=h.labelField?_xeUtils.default.get(i,h.labelField):"",n._checkboxDisabled=h.checkMethod&&!h.checkMethod({row:i});break;case"radio":l=v(T.isCheckedByRadioRow(i)),n._radioLabel=m.labelField?_xeUtils.default.get(i,m.labelField):"",n._radioDisabled=m.checkMethod&&!m.checkMethod({row:i});break;default:c.original?l=(0,_util.getCellValue)(i,e):(l=T.getCellLabel(i,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=T.getCellElement(i,e))&&(l=a.innerText.trim()))}n[e.id]=b(l)}),n})},N=(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=T.getVTColumnIndex(l);return a?a({$table:T,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=(l,e,t)=>{let r=csvBOM;return l.isHeader&&(r+=e.map(e=>toTxtCellLabel(E(l,e))).join(",")+enterSymbol),t.forEach(t=>{r+=e.map(e=>toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))).join(",")+enterSymbol}),l.isFooter&&(t=M.footerTableData,getFooterData(l,t).forEach(t=>{r+=e.map(e=>toTxtCellLabel(N(l,t,e))).join(",")+enterSymbol})),r},p=(l,e,t)=>{let r="";return l.isHeader&&(r+=e.map(e=>toTxtCellLabel(E(l,e))).join("\t")+enterSymbol),t.forEach(t=>{r+=e.map(e=>toTxtCellLabel(t[e.id])).join("\t")+enterSymbol}),l.isFooter&&(t=M.footerTableData,getFooterData(l,t).forEach(t=>{r+=e.map(e=>toTxtCellLabel(N(l,t,e))).join("\t")+enterSymbol})),r},D=(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}=M;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}=k,{isAllSelected:m,isIndeterminate:o,mergeList:h}=M,i=C.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=D(t,"showHeaderOverflow",p)?["col--ellipsis"]:[],r=E(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=D(e,"showHeaderOverflow",p)?["col--ellipsis"]:[],r=E(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 e=t.align||c,l=D(t,"showOverflow",u)?["col--ellipsis"]:[],r=o[t.id];if(e&&l.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>`),l.push("vxe-table--tree-node"),"radio"===t.type?`<td class="${l.join(" ")}" title="${r}"><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(r)?"checked":""}><span>${o._radioLabel}</span></div></div></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}" title="${r}"><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(r)?"checked":""}><span>${o._checkboxLabel}</span></div></div></div></td>`:`<td class="${l.join(" ")}" title="${r}"><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">${r}</div></div></div></td>`}return"radio"===t.type?`<td class="${l.join(" ")}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><input type="radio" name="radio_${d}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._radioLabel}</span></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._checkboxLabel}</span></div></td>`:`<td class="${l.join(" ")}" title="${r}"><div ${x?"":`style="width: ${t.renderWidth}px"`}>${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")+"</tr>")}):t.forEach(n=>{w.push("<tr>"+e.map(e=>{var t=e.align||c,l=D(e,"showOverflow",u)?["col--ellipsis"]:[],r=n[e.id];let o=1,a=1;if(b&&h.length){var i=T.getVTRowIndex(n._row),s=T.getVTColumnIndex(e),i=(0,_util.mergeBodyMethod)(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=M.footerTableData,(t=getFooterData(s,t)).length)&&(w.push("<tfoot>"),t.forEach(o=>{w.push(`<tr>${e.map(e=>{var t=e.footerAlign||e.align||a||c,l=D(e,"showOverflow",u)?["col--ellipsis"]:[],r=N(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">${E(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=M.footerTableData,getFooterData(l,t).forEach(t=>{r+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${N(l,t,e)}</Data></Cell>`).join("")}</Row>`})),r+"</Table></Worksheet></Workbook>"},$=l=>{let{remote:r,columns:o,colgroups:a,exportMethod:i,afterExportMethod:t}=l;return new Promise(t=>{if(r){var e={options:l,$table:T,$grid:I};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({row:e,$rowIndex:t}))),d(e,t,r)})(l);t(T.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)=>{if(t.length)switch(e.type){case"csv":return u(e,t,l);case"txt":return p(e,t,l);case"html":return m(e,t,l);case"xml":return h(e,t,l)}return""})(l,o,e))))}}).then(e=>(clearColumnConvert(o),l.print||t&&t({status:!0,options:l,$table:T,$grid:I}),Object.assign({status:!0},e))).catch(()=>{clearColumnConvert(o),l.print||t&&t({status:!1,options:l,$table:T,$grid:I});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),U._importResolve=null,U._importReject=null},r=e=>{l(e),U._importResolve=null,U._importReject=null};if(U._importResolve=e,U._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:T})).then(()=>{e({status:!0})}).catch(()=>{e({status:!0})}):e({status:!0}):(o=U.tableFullColumn,T.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}=U,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])?T.createData(c).then(e=>{let t;return"insert"!==l.mode&&"insertBottom"!==l.mode||(t=T.insertAt(e,-1)),t="insertTop"===l.mode?T.insert(e):T.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"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notExp"),e({status:!0})}).then(()=>{t&&t({status:!0,options:i,$table:T})}).catch(e=>(t&&t({status:!1,options:i,$table:T}),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}))},l=(e,t)=>{var{treeConfig:l,showHeader:r,showFooter:o}=k,{initStore:a,mergeList:i,mergeFooterList:s,isGroup:n,footerTableData:d,exportStore:c,exportParams:u}=M,p=U.collectColumn,m=F.value,h=j.value,x=T.getCheckboxRecords(),g=I?I.getComputeMaps().computeProxyOpts.value:{},d=!!d.length,i=!(!i.length&&!s.length);let f=Object.assign({message:!0,isHeader:r,isFooter:o,isColgroup:n,isMerge:i,useStyle:!0,current:"current",modes:["current","selected"].concat(g.ajax&&g.ajax.queryAll?["all"]:[])},e);s=f.types||_xeUtils.default.keys(m._typeMaps),r=f.modes||[];let v=h.checkMethod;o=p.slice(0);let{columns:b,excludeFields:_,includeFields:y}=f;g=s.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,i,s,n,d,c=e.children&&e.children.length;let u=!1;u=b&&b.length?(f,d=e,b.some(e=>{var t,l;return(0,_util.isColumnInfo)(e)?d.id===e.id:_xeUtils.default.isString(e)?d.field===e:(t=e.id||e.colId,l=e.type,e=e.field,t?d.id===t:e&&l?d.field===e&&d.type===l:e?d.field===e:!!l&&d.type===l)})):_||y?(a=f,i=e,s=y,(!(n=_)||!_xeUtils.default.includes(n,i.field))&&(s?!!_xeUtils.default.includes(s,i.field):a.original?i.field:defaultFilterExportColumn(i))):e.visible&&(c||defaultFilterExportColumn(e)),e.checked=u,e.halfChecked=!1,e.disabled=o&&o.disabled||!!v&&!v({column:e})}),Object.assign(c,{columns:o,typeList:g,modeList:e,hasFooter:d,hasMerge:i,hasTree:l,isPrint:t,hasColgroup:n,visible:!0}),Object.assign(u,{mode:x.length?"selected":"current"},f);let{filename:$,sheetName:w,mode:C,type:E}=u;return $&&(_xeUtils.default.isFunction($)?u.filename=$({options:f,$table:T,$grid:I}):u.filename=""+$),w&&(_xeUtils.default.isFunction(w)?u.sheetName=w({options:f,$table:T,$grid:I}):u.sheetName=""+w),e.some(e=>e.value===C)||(u.mode=e[0].value),g.some(e=>e.value===E)||(u.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 e=k.treeConfig,{isGroup:l,tableGroupColumn:n}=M;let{tableFullColumn:a,afterFullData:t}=U;var d=F.value,r=C.value,s=Object.assign({isHeader:!0,isFooter:!0,isColgroup:!0,download:!0,type:"csv",mode:"current"},d,s);let{filename:o,sheetName:i,type:c,mode:u,columns:p,original:m,columnFilterMethod:h,beforeExportMethod:x,includeFields:g,excludeFields:f}=s,v=[];var b=p&&p.length?p:null;let _=Object.assign({},s,{filename:"",sheetName:""}),y=(b||h||(_.columnFilterMethod=({column:e})=>(!f||!_xeUtils.default.includes(f,e.field))&&(g?!!_xeUtils.default.includes(g,e.field):m?e.field:defaultFilterExportColumn(e))),v=b?(_._isCustomColumn=!0,_xeUtils.default.searchTree(_xeUtils.default.mapTree(b,e=>{let r;if(e){if((0,_util.isColumnInfo)(e))r=e;else if(_xeUtils.default.isString(e))r=T.getColumnByField(e);else{var o=e.id||e.colId;let t=e.type,l=e.field;o?r=T.getColumnById(o):l&&t?r=a.find(e=>e.field===l&&e.type===t):l?r=T.getColumnByField(l):t&&(r=a.find(e=>e.type===t))}return r||{}}},{children:"childNodes",mapChildren:"_children"}),(e,t)=>(0,_util.isColumnInfo)(e)&&(!h||h({column:e,$columnIndex:t})),{children:"_children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(l?n:a,(e,t)=>e.visible&&(!h||h({column:e,$columnIndex:t})),{children:"children",mapChildren:"childNodes",original:!0}),[]);if(_xeUtils.default.eachTree(v,e=>{e.children&&e.children.length||y.push(e)},{children:"childNodes"}),_.columns=y,_.colgroups=convertToRows(v),o&&(_xeUtils.default.isFunction(o)?_.filename=o({options:s,$table:T,$grid:I}):_.filename=""+o),_.filename||(_.filename=getI18n(_.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),i&&(_xeUtils.default.isFunction(i)?_.sheetName=i({options:s,$table:T,$grid:I}):_.sheetName=""+i),_.sheetName||(_.sheetName=document.title||""),!_.exportMethod&&!_xeUtils.default.includes(_xeUtils.default.keys(d._typeMaps),c))return(0,_log.errLog)("vxe.error.notType",[c]),"development"===process.env.NODE_ENV&&["xlsx","pdf"].includes(c)&&(0,_log.warnLog)("vxe.error.reqPlugin",[4,"plugin-export-xlsx"]),Promise.reject({status:!1});if(_.print||x&&x({options:_,$table:T,$grid:I}),!_.data)if(_.data=[],"selected"===u){let t=T.getCheckboxRecords();-1<["html","pdf"].indexOf(c)&&e?_.data=_xeUtils.default.searchTree(T.getTableData().fullData,e=>-1<T.findRowIndexOf(t,e),Object.assign({},r,{data:"_row"})):_.data=t}else if("all"===u){if("development"!==process.env.NODE_ENV||I||(0,_log.warnLog)("vxe.error.errProp",["all","mode=current,selected"]),I&&!_.remote){b=I.reactData,l=I.getComputeMaps().computeProxyOpts,n=l.value,s=b.sortData;let{beforeQueryAll:e,afterQueryAll:r,ajax:t={}}=n,o=n.response||n.props||{};d=t.queryAll;let a=t.queryAllSuccess,i=t.queryAllError;if("development"!==process.env.NODE_ENV||d||(0,_log.warnLog)("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),d){let l={$table:T,$grid:I,sort:s.length?s[0]:{},sorts:s,filters:b.filterData,form:b.formData,options:_};return Promise.resolve((e||d)(l)).then(e=>{var t=o.list;return _.data=(t?_xeUtils.default.isFunction(t)?t({data:e,$grid:I}):_xeUtils.default.get(e,t):e)||[],r&&r(l),a&&a(Object.assign(Object.assign({},l),{response:e})),$(_)}).catch(e=>{i&&i(Object.assign(Object.assign({},l),{response:e}))})}}}else"current"===u&&(_.data=t);return $(_)},importByFile(e,t){var t=Object.assign({},t),l=t.beforeImportMethod;return l&&l({options:t,$table:T}),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:T}),_ui.VxeUI.readFile(l).catch(e=>(o&&o({status:!1,options:l,$table:T}),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:T,$grid:I}):""+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:T}):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:T}):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 T.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}=k;let{initStore:r,importStore:o,importParams:a}=M;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=F.value,t=Object.assign({message:!0,types:_xeUtils.default.keys(t._typeMaps)},t,e);"development"!==process.env.NODE_ENV||k.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);"development"!==process.env.NODE_ENV||k.printConfig||(0,_log.errLog)("vxe.error.reqProp",["print-config"]),l(t,!0)}};return x},setupGrid(e){return e.extendTableMethods(tableExportMethodKeys)}});
|
|
@@ -46,38 +46,75 @@ hooks.add('tableKeyboardModule', {
|
|
|
46
46
|
computeEditOpts,
|
|
47
47
|
computeCheckboxOpts,
|
|
48
48
|
computeMouseOpts,
|
|
49
|
-
computeTreeOpts
|
|
49
|
+
computeTreeOpts,
|
|
50
|
+
computeRowOpts,
|
|
51
|
+
computeCellOpts,
|
|
52
|
+
computeDefaultRowHeight
|
|
50
53
|
} = $xeTable.getComputeMaps();
|
|
51
54
|
function getCheckboxRangeRows(evnt, params, targetTrElem, trRect, offsetClientTop, moveRange) {
|
|
55
|
+
const {
|
|
56
|
+
showOverflow
|
|
57
|
+
} = props;
|
|
58
|
+
const {
|
|
59
|
+
fullAllDataRowIdData,
|
|
60
|
+
isResizeCellHeight
|
|
61
|
+
} = internalData;
|
|
62
|
+
const rowOpts = computeRowOpts.value;
|
|
63
|
+
const cellOpts = computeCellOpts.value;
|
|
64
|
+
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
65
|
+
const {
|
|
66
|
+
row
|
|
67
|
+
} = params;
|
|
52
68
|
let countHeight = 0;
|
|
53
69
|
let rangeRows = [];
|
|
54
70
|
let moveSize = 0;
|
|
55
71
|
const isDown = moveRange > 0;
|
|
56
72
|
const {
|
|
57
|
-
scrollYLoad
|
|
58
|
-
rowHeight
|
|
73
|
+
scrollYLoad
|
|
59
74
|
} = reactData;
|
|
60
75
|
const {
|
|
61
76
|
afterFullData
|
|
62
77
|
} = internalData;
|
|
78
|
+
if (isDown) {
|
|
79
|
+
moveSize = offsetClientTop + moveRange;
|
|
80
|
+
} else {
|
|
81
|
+
moveSize = trRect.height - offsetClientTop + Math.abs(moveRange);
|
|
82
|
+
}
|
|
63
83
|
if (scrollYLoad) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
84
|
+
const _rowIndex = $xeTable.getVTRowIndex(row);
|
|
85
|
+
const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
|
|
86
|
+
if (!isCustomCellHeight && showOverflow) {
|
|
87
|
+
if (isDown) {
|
|
88
|
+
rangeRows = afterFullData.slice(_rowIndex, _rowIndex + Math.ceil(moveSize / defaultRowHeight));
|
|
89
|
+
} else {
|
|
90
|
+
rangeRows = afterFullData.slice(_rowIndex - Math.floor(moveSize / defaultRowHeight), _rowIndex + 1);
|
|
91
|
+
}
|
|
72
92
|
} else {
|
|
73
|
-
|
|
93
|
+
if (isDown) {
|
|
94
|
+
for (let i = _rowIndex; i < afterFullData.length; i++) {
|
|
95
|
+
const item = afterFullData[i];
|
|
96
|
+
const rowid = $xeTable.getRowid(item);
|
|
97
|
+
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
98
|
+
countHeight += rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight;
|
|
99
|
+
rangeRows.push(item);
|
|
100
|
+
if (countHeight > moveSize) {
|
|
101
|
+
return rangeRows;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
} else {
|
|
105
|
+
for (let len = _rowIndex; len >= 0; len--) {
|
|
106
|
+
const item = afterFullData[len];
|
|
107
|
+
const rowid = $xeTable.getRowid(item);
|
|
108
|
+
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
109
|
+
countHeight += rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight;
|
|
110
|
+
rangeRows.push(item);
|
|
111
|
+
if (countHeight > moveSize) {
|
|
112
|
+
return rangeRows;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
74
116
|
}
|
|
75
117
|
} else {
|
|
76
|
-
if (isDown) {
|
|
77
|
-
moveSize = evnt.clientY - trRect.y;
|
|
78
|
-
} else {
|
|
79
|
-
moveSize = trRect.y - evnt.clientY + trRect.height;
|
|
80
|
-
}
|
|
81
118
|
const siblingProp = isDown ? 'next' : 'previous';
|
|
82
119
|
while (targetTrElem && countHeight < moveSize) {
|
|
83
120
|
const rowNodeRest = $xeTable.getRowNode(targetTrElem);
|
|
@@ -91,24 +128,30 @@ hooks.add('tableKeyboardModule', {
|
|
|
91
128
|
return rangeRows;
|
|
92
129
|
}
|
|
93
130
|
const handleCheckboxRangeEvent = (evnt, params) => {
|
|
131
|
+
const {
|
|
132
|
+
elemStore
|
|
133
|
+
} = internalData;
|
|
134
|
+
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
135
|
+
const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
|
|
136
|
+
const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
|
|
94
137
|
const {
|
|
95
138
|
column,
|
|
96
139
|
cell
|
|
97
140
|
} = params;
|
|
98
141
|
if (column.type === 'checkbox') {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const bodyWrapperElem = (0, _util.getRefElem)(elemStore[`${column.fixed || 'main'}-body-wrapper`] || elemStore['main-body-wrapper']);
|
|
142
|
+
let bodyWrapperElem = bodyScrollElem;
|
|
143
|
+
if (leftScrollElem && column.fixed === 'left') {
|
|
144
|
+
bodyWrapperElem = leftScrollElem;
|
|
145
|
+
} else if (rightScrollElem && column.fixed === 'right') {
|
|
146
|
+
bodyWrapperElem = rightScrollElem;
|
|
147
|
+
}
|
|
106
148
|
if (!bodyWrapperElem) {
|
|
107
149
|
return;
|
|
108
150
|
}
|
|
151
|
+
const el = refElem.value;
|
|
152
|
+
const disX = evnt.clientX;
|
|
153
|
+
const disY = evnt.clientY;
|
|
109
154
|
const checkboxRangeElem = bodyWrapperElem.querySelector('.vxe-table--checkbox-range');
|
|
110
|
-
const domMousemove = document.onmousemove;
|
|
111
|
-
const domMouseup = document.onmouseup;
|
|
112
155
|
const trElem = cell.parentElement;
|
|
113
156
|
const selectRecords = $xeTable.getCheckboxRecords();
|
|
114
157
|
let lastRangeRows = [];
|
|
@@ -251,8 +294,8 @@ hooks.add('tableKeyboardModule', {
|
|
|
251
294
|
stopMouseScroll();
|
|
252
295
|
(0, _dom.removeClass)(el, 'drag--range');
|
|
253
296
|
checkboxRangeElem.removeAttribute('style');
|
|
254
|
-
document.onmousemove =
|
|
255
|
-
document.onmouseup =
|
|
297
|
+
document.onmousemove = null;
|
|
298
|
+
document.onmouseup = null;
|
|
256
299
|
triggerEvent('end', evnt);
|
|
257
300
|
};
|
|
258
301
|
triggerEvent('start', evnt);
|