vxe-table 4.20.8 → 4.20.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.esm.js +12 -5
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/export/hook.js +3 -3
- package/es/table/src/table.js +7 -0
- package/es/table/style.css +22 -12
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +22 -12
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +8 -8
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/export/hook.js +3 -3
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/src/table.js +3 -3
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +22 -12
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- 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 +22 -12
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/module/export/hook.ts +3 -3
- package/packages/table/src/table.ts +7 -0
- package/styles/components/table.scss +24 -6
- package/styles/theme/base.scss +0 -1
- /package/es/{iconfont.1785140083044.ttf → iconfont.1785242738274.ttf} +0 -0
- /package/es/{iconfont.1785140083044.woff → iconfont.1785242738274.woff} +0 -0
- /package/es/{iconfont.1785140083044.woff2 → iconfont.1785242738274.woff2} +0 -0
- /package/lib/{iconfont.1785140083044.ttf → iconfont.1785242738274.ttf} +0 -0
- /package/lib/{iconfont.1785140083044.woff → iconfont.1785242738274.woff} +0 -0
- /package/lib/{iconfont.1785140083044.woff2 → iconfont.1785242738274.woff2} +0 -0
|
@@ -1536,7 +1536,7 @@ hooks.add('tableExportModule', {
|
|
|
1536
1536
|
const isColGroup = column.children && column.children.length > 0;
|
|
1537
1537
|
let isChecked = false;
|
|
1538
1538
|
const isExtraChecked = extraFdMaps[column.field];
|
|
1539
|
-
if (columns
|
|
1539
|
+
if (columns) {
|
|
1540
1540
|
isChecked = handleFilterColumns(defOpts, column, columns);
|
|
1541
1541
|
} else if (excludeFields || includeFields) {
|
|
1542
1542
|
isChecked = handleFilterFields(defOpts, column, includeFields, includeFdMaps, excludeFdMaps, extraFdMaps);
|
|
@@ -1716,7 +1716,7 @@ hooks.add('tableExportModule', {
|
|
|
1716
1716
|
}
|
|
1717
1717
|
let isCustomCol = false;
|
|
1718
1718
|
let customCols = [];
|
|
1719
|
-
if (columns
|
|
1719
|
+
if (columns) {
|
|
1720
1720
|
isCustomCol = true;
|
|
1721
1721
|
customCols = _xeUtils.default.searchTree(columns, () => true, {
|
|
1722
1722
|
children: 'children',
|
|
@@ -1728,7 +1728,7 @@ hooks.add('tableExportModule', {
|
|
|
1728
1728
|
const isColGroup = column.children && column.children.length > 0;
|
|
1729
1729
|
let isChecked = false;
|
|
1730
1730
|
const isExtraChecked = extraFdMaps[column.field];
|
|
1731
|
-
if (columns
|
|
1731
|
+
if (columns) {
|
|
1732
1732
|
isChecked = handleFilterColumns(opts, column, columns);
|
|
1733
1733
|
} else if (excludeFields || includeFields) {
|
|
1734
1734
|
isChecked = handleFilterFields(opts, column, includeFields, includeFdMaps, excludeFdMaps, extraFdMaps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util2=require("./util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("table"),{getI18n,hooks,renderer}=_ui.VxeUI,htmlCellElem,csvBOM="\ufeff",enterSymbol="\r\n";function defaultFilterExportColumn(e){return!!e.field||-1===["seq","checkbox","radio"].indexOf(e.type||"")}let getConvertColumns=e=>{let t=[];return e.forEach(e=>{e.childNodes&&e.childNodes.length?(t.push(e),t.push(...getConvertColumns(e.childNodes))):t.push(e)}),t},convertToRows=e=>{let t=1,r=(l,e)=>{if(e&&(l._level=e._level+1,t<l._level)&&(t=l._level),l.childNodes&&l.childNodes.length){let t=0;l.childNodes.forEach(e=>{r(e,l),t+=e._colSpan}),l._colSpan=t}else l._colSpan=1},l=(e.forEach(e=>{e._level=1,r(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getConvertColumns(e).forEach(e=>{e.childNodes&&e.childNodes.length?e._rowSpan=1:e._rowSpan=t-e._level+1,l[e._level-1].push(e)}),l};function toTableBorder(e){return!0===e?"full":e||"default"}function getBooleanValue(e){return"TRUE"===e||"true"===e||!0===e}function getFooterData(l,e,t){let r=l.xeGrid,o=l.xeGantt,a=e.footerFilterMethod;return a?t.filter((e,t)=>a({$table:l,$grid:r,$gantt:o,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,'""')}"`:_xeUtils.default.eqNull(e)?"":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(V){let{props:B,reactData:P,internalData:S}=V,{computeTreeOpts:A,computePrintOpts:n,computeExportOpts:q,computeImportOpts:c,computeCustomOpts:L,computeSeqOpts:i,computeRadioOpts:a,computeCheckboxOpts:s,computeColumnOpts:u,computeAggregateOpts:p}=V.getComputeMaps(),R=(e,t,l,r,o)=>{var a=i.value.seqMethod||r.seqMethod;return a?a({$table:V,row:t,rowIndex:V.getRowIndex(t),_rowIndex:V.getVTRowIndex(t),$rowIndex:l,column:r,columnIndex:V.getColumnIndex(r),_columnIndex:V.getVTColumnIndex(r),$columnIndex:o}):e};function D(e,t){var l=u.value,l=t.headerExportMethod||l.headerExportMethod;return l?l({column:t,options:e,$table:V}):(e.isTitle?V.getHeaderCellLabel(t):t.field)||""}let N=e=>_xeUtils.default.isBoolean(e)?e?"TRUE":"FALSE":e,O=e=>(0,_utils.eqEmptyValue)(e)?"":""+e,d=(M,m,e)=>{let{isTreeAllExpanded:i,isRowGroupAllExpanded:d,mode:k}=M;var t=B.treeConfig,l=P.isRowGroupStatus;let F=S.fullColumnFieldData,U=a.value,I=s.value;var r=A.value;let j=u.value;var o=p.value;htmlCellElem=htmlCellElem||document.createElement("div");let g=(0,_util.createHandleGetRowId)(V).handleGetRowId;if(l){let{mode:_,showTotal:$,totalMethod:y,countFields:w,contentMethod:C,formatValuesMethod:T,mapChildrenField:E}=o,i=[],s={},n={};return _xeUtils.default.eachTree(e,(e,f,t,v,l,r)=>{let b=e._row||e;var o=g(b);if(!n[o]){e=l&&l._row?l._row:l,l=e?g(e):"";if(d||!e||s[l]&&V.isRowExpandByRow(e)){var a=E&&b[E]&&b[E].length;let x={_row:b,_level:r.length-1,_hasChild:a,_expand:a&&V.isRowExpandByRow(b)};m.forEach((e,t)=>{var{field:l,editRender:r,cellRender:o,aggFunc:a,rowGroupNode:i}=e;let s="";var n,d,c,u,p,h,r=r||o;let m=e.exportMethod||j.exportMethod;if(m=(m=!m&&r&&r.name&&(o=renderer.get(r.name))?o.tableExportMethod||o.exportMethod:m)||j.exportMethod)s=m({$table:V,row:b,column:e,options:M});else switch(e.type){case"seq":var g=v.map((e,t)=>t%2==0?Number(e)+1:".").join("");s="all"===k?g:R(g,b,f,e,t);break;case"checkbox":s=N(V.isCheckedByCheckboxRow(b)),x._checkboxLabel=I.labelField?_xeUtils.default.get(b,I.labelField):"",x._checkboxDisabled=I.checkMethod&&!I.checkMethod({$table:V,row:b});break;case"radio":s=N(V.isCheckedByRadioRow(b)),x._radioLabel=U.labelField?_xeUtils.default.get(b,U.labelField):"",x._radioDisabled=U.checkMethod&&!U.checkMethod({$table:V,row:b});break;default:l&&b.isAggregate?(n=(n=(g=b).aggData)?n[l]:null,u=g.groupField,d=g.groupContent,h=E&&g[E]||[],c=g.childCount,p=F[u]||{},u={$table:V,groupField:u,groupColumn:p?p.column:null,column:e,groupValue:d,childList:h,childCount:c,aggValue:null,children:h,totalValue:c},("column"===_?l===g.groupField:i)?(s=d,C&&(s=""+C(u)),$&&(s=getI18n("vxe.table.rowGroupContentTotal",[s,y?y(u):c,c]))):V.getPivotTableAggregateCellAggValue?(p={$table:V,row:b,column:e},s=V.getPivotTableAggregateCellAggValue(p)):(!0===a||w&&w.includes(l))&&(s=n?n.value:c,u.aggValue=s,T)&&(s=T(u))):M.original?s=(0,_util.getCellValue)(b,e):(s=V.getCellLabel(b,e),"html"===e.type?(htmlCellElem.innerHTML=s,s=htmlCellElem.innerText.trim()):(h=V.getCellElement(b,e))&&!(0,_dom.hasClass)(h,"is--progress")&&(s=h.innerText.trim()))}x[e.id]=O(s)}),n[o]=!0,l&&(s[l]=!0),i.push(Object.assign(x,b))}}},{children:E}),i}if(t){let c=r.children||r.childrenField,u=[],p={},h={};return _xeUtils.default.eachTree(e,(e,s,t,n,l,r)=>{let d=e._row||e;var o=g(d);if(!h[o]){e=l&&l._row?l._row:l,l=e?g(e):"";if(i||!e||p[l]&&V.isTreeExpandByRow(e)){var a=d[c]&&d[c].length;let i={_row:d,_level:r.length-1,_hasChild:a,_expand:a&&V.isTreeExpandByRow(d)};m.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||j.exportMethod;if(o=(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)||j.exportMethod)l=o({$table:V,row:d,column:e,options:M});else switch(e.type){case"seq":var a=n.map((e,t)=>t%2==0?Number(e)+1:".").join("");l="all"===k?a:R(a,d,s,e,t);break;case"checkbox":l=N(V.isCheckedByCheckboxRow(d)),i._checkboxLabel=I.labelField?_xeUtils.default.get(d,I.labelField):"",i._checkboxDisabled=I.checkMethod&&!I.checkMethod({$table:V,row:d});break;case"radio":l=N(V.isCheckedByRadioRow(d)),i._radioLabel=U.labelField?_xeUtils.default.get(d,U.labelField):"",i._radioDisabled=U.checkMethod&&!U.checkMethod({$table:V,row:d});break;default:M.original?l=(0,_util.getCellValue)(d,e):(l=V.getCellLabel(d,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=V.getCellElement(d,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}i[e.id]=O(l)}),h[o]=!0,l&&(p[l]=!0),u.push(Object.assign(i,d))}}},{children:c}),u}return e.map((i,s)=>{let n={_row:i};return m.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||j.exportMethod;if(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)l=o({$table:V,row:i,column:e,options:M});else switch(e.type){case"seq":var a=s+1;l="all"===k?a:R(a,i,s,e,t);break;case"checkbox":l=N(V.isCheckedByCheckboxRow(i)),n._checkboxLabel=I.labelField?_xeUtils.default.get(i,I.labelField):"",n._checkboxDisabled=I.checkMethod&&!I.checkMethod({$table:V,row:i});break;case"radio":l=N(V.isCheckedByRadioRow(i)),n._radioLabel=U.labelField?_xeUtils.default.get(i,U.labelField):"",n._radioDisabled=U.checkMethod&&!U.checkMethod({$table:V,row:i});break;default:M.original?l=(0,_util.getCellValue)(i,e):(l=V.getCellLabel(i,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=V.getCellElement(i,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}n[e.id]=O(l)}),n})},H=(e,t,l)=>{var r=u.value,o=l.editRender||l.cellRender;let a=l.footerExportMethod;return(a=(a=!a&&o&&o.name&&(o=renderer.get(o.name))?o.tableFooterExportMethod||o.footerExportMethod:a)||r.footerExportMethod)?(o=V.getVTColumnIndex(l),a({$table:V,items:t,itemIndex:o,row:t,_columnIndex:o,column:l,options:e})):V.getFooterCellLabel(t,l)},h=(e,l,r,t)=>{let o=csvBOM;return l.isHeader&&(o+=r.map(e=>toTxtCellLabel(D(l,e))).join(",")+enterSymbol),t.forEach(t=>{o+=r.map(e=>toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))).join(",")+enterSymbol}),l.isFooter&&(t=P.footerTableData,getFooterData(e,l,t).forEach(t=>{o+=r.map(e=>toTxtCellLabel(H(l,t,e))).join(",")+enterSymbol})),o},m=(e,l,r,t)=>{let o="";return l.isHeader&&(o+=r.map(e=>toTxtCellLabel(D(l,e))).join("\t")+enterSymbol),t.forEach(t=>{o+=r.map(e=>toTxtCellLabel(t[e.id])).join("\t")+enterSymbol}),l.isFooter&&(t=P.footerTableData,getFooterData(e,l,t).forEach(t=>{o+=r.map(e=>toTxtCellLabel(H(l,t,e))).join("\t")+enterSymbol})),o},G=(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}=P;return r=l||e?r||!0:r},W=e=>`${e.field||""}:`+(e.type||""),g=(c,e,t)=>{let{id:d,border:l,treeConfig:r,headerAlign:o,align:u,footerAlign:p,showOverflow:h,showHeaderOverflow:a}=B,{isAllSelected:i,isIndeterminate:s}=P,{mergeBodyCellMaps:m,mergeFooterCellMaps:g}=S,n=A.value,{print:x,widthMode:f,isHeader:v,isFooter:b,isColgroup:_,isMerge:$,colgroups:y,_columnConfs:w,original:C}=c,T="auto"===f,E="scale"===f,M=!T&&!E,k={},F=(w&&w.forEach(e=>{(0,_util.isColumnInfo)(e)||(e.field||e.type)&&e.width&&(k[W(e)]=e.width)}),{}),U={};if(x){let o=0;e.forEach(e=>{o+=e.renderWidth}),y&&y.forEach(e=>{e.forEach(r=>{if(r.childNodes&&r.childNodes.length){let t=0,l=0;_xeUtils.default.eachTree([r],e=>{e.childNodes&&r.childNodes.length||l++;e=U[e.id];t+=e||0},{children:"childNodes"});var e=t-l;F[r.id]=e,U[r.id]=_xeUtils.default.floor(e/o*180,2)}})}),e.forEach(e=>{var t=e.renderWidth;e.width&&(F[e.id]=t),U[e.id]=_xeUtils.default.floor(t/o*180,2)})}let I=e=>{var t=W(e),t=k[t];return t?"width:"+(0,_dom.toCssUnit)(t):T||M?"":E?U[e.id]?"width:"+U[e.id]+"mm":"":F[e.id]?"width:"+(0,_dom.toCssUnit)(F[e.id]):""},j="check-all";let L=[`<table class="${["vxe-table","border--"+toTableBorder(l),x?"is--print":"",T?"is--auto-width":"",E?"is--scale-width":"",M?"is--default-width":"",v?"is--header":""].filter(e=>e).join(" ")}" border="0" cellspacing="0" cellpadding="0">`,`<colgroup>${e.map(e=>{return`<col style="${e=e,t=W(e),t=k[t],t?"width:"+(0,_dom.toCssUnit)(t):T?"":E?U[e.id]?"width:"+U[e.id]+"mm":"":F[e.id]?"width:"+(0,_dom.toCssUnit)(F[e.id]):""}">`;var t}).join("")}</colgroup>`];v&&(L.push("<thead>"),_&&!C?y.forEach(e=>{L.push(`<tr>${e.map(e=>{var t=e.headerAlign||e.align||o||u,l=G(e,"showHeaderOverflow",a)?["col--ellipsis"]:[],r=D(c,e);return t&&l.push("col--"+t),"checkbox"===e.type?`<th class="${l.join(" ")}" colspan="${e._colSpan}" rowspan="${e._rowSpan}"><div style="${I(e)}"><input type="checkbox" class="${j}" ${i?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" colspan="${e._colSpan}" rowspan="${e._rowSpan}" title="${r}"><div style="${I(e)}"><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`)}):L.push(`<tr>${e.map(e=>{var t=e.headerAlign||e.align||o||u,l=G(e,"showHeaderOverflow",a)?["col--ellipsis"]:[],r=D(c,e);return t&&l.push("col--"+t),"checkbox"===e.type?`<th class="${l.join(" ")}"><div style="${I(e)}"><input type="checkbox" class="${j}" ${i?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" title="${r}"><div style="${I(e)}"><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`),L.push("</thead>")),t.length&&(L.push("<tbody>"),r?t.forEach(o=>{L.push("<tr>"+e.map(t=>{var l=t.id,e=t.align||u,r=G(t,"showOverflow",h)?["col--ellipsis"]:[],l=o[l];if(e&&r.push("col--"+e),t.treeNode){let e="";return o._hasChild&&(e=`<i class="${o._expand?"vxe-table--tree-fold-icon":"vxe-table--tree-unfold-icon"}"></i>`),r.push("vxe-table--tree-node"),"radio"===t.type?`<td class="${r.join(" ")}" title="${l}"><div style="${I(t)}"><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*n.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${d}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._radioLabel}</span></div></div></div></td>`:"checkbox"===t.type?`<td class="${r.join(" ")}" title="${l}"><div style="${I(t)}"><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*n.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._checkboxLabel}</span></div></div></div></td>`:`<td class="${r.join(" ")}" title="${l}"><div style="${I(t)}"><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*n.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell">${l}</div></div></div></td>`}return"radio"===t.type?`<td class="${r.join(" ")}"><div style="${I(t)}"><input type="radio" name="radio_${d}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._radioLabel}</span></div></td>`:"checkbox"===t.type?`<td class="${r.join(" ")}"><div style="${I(t)}"><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._checkboxLabel}</span></div></td>`:`<td class="${r.join(" ")}" title="${l}"><div style="${I(t)}">${(0,_utils.formatText)(l,!0)}</div></td>`}).join("")+"</tr>")}):t.forEach(n=>{L.push("<tr>"+e.map(e=>{var t=e.align||u,l=G(e,"showOverflow",h)?["col--ellipsis"]:[],r=n[e.id];let o=1,a=1;if($){var i=V.getVTRowIndex(n._row),s=V.getVTColumnIndex(e),i=m[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 style="${I(e)}"><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 style="${I(e)}"><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 style="${I(e)}">${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")+"</tr>")}),L.push("</tbody>")),b&&(t=P.footerTableData,(t=getFooterData(V,c,t)).length)&&(L.push("<tfoot>"),t.forEach((n,d)=>{L.push(`<tr>${e.map(e=>{var t=e.footerAlign||e.align||p||u,l=G(e,"showOverflow",h)?["col--ellipsis"]:[],r=H(c,n,e);let o=1,a=1;if($){var i=d,s=V.getVTColumnIndex(e),i=g[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),`<td class="${l.join(" ")}" rowspan="${o}" colspan="${a}" title="${r}"><div style="${I(e)}">${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")}</tr>`)}),L.push("</tfoot>"));t=!i&&s?`<script>(function(){var a=document.querySelector(".${j}");if(a){a.indeterminate=true}})()</script>`:"";return L.push("</table>",t),x?L.join(""):(0,_util2.createHtmlPage)(c,L.join(""))},x=(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">${D(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=P.footerTableData,getFooterData(V,l,t).forEach(t=>{r+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${H(l,t,e)}</Data></Cell>`).join("")}</Row>`})),r+"</Table></Worksheet></Workbook>"},X=l=>{let r=V.xeGrid,o=V.xeGantt,{remote:a,columns:i,colgroups:s,exportMethod:n,afterExportMethod:t}=l;return new Promise(t=>{if(a){var e={options:l,$table:V,$grid:r,$gantt:o};t(n?n(e):e)}else{let e=(e=>{let l=V.xeGrid,r=V.xeGantt,{columns:t,dataFilterMethod:o}=e,a=e.data;return o&&(a=a.filter((e,t)=>o({$table:V,$grid:l,$gantt:r,row:e,$rowIndex:t}))),d(e,t,a)})(l);t(V.preventEvent(null,"event.export",{options:l,columns:i,colgroups:s,datas:e},()=>((e,t)=>{var{filename:l,type:r,download:o}=e;if(!o)return o=(0,_util2.getExportBlobByContent)(t,e),Promise.resolve({type:r,content:t,blob:o});_ui.VxeUI.saveFile&&_ui.VxeUI.saveFile({filename:l,type:r,content:t}).then(()=>{!1!==e.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.expSuccess"),status:"success"})})})(l,((e,t,l,r)=>{if(l.length)switch(t.type){case"csv":return h(e,t,l,r);case"txt":return m(e,t,l,r);case"html":return g(t,l,r);case"xml":return x(t,l,r)}return""})(V,l,i,e))))}}).then(e=>(clearColumnConvert(i),l.print||t&&t({status:!0,options:l,$table:V,$grid:r,$gantt:o}),Object.assign({status:!0},e))).catch(()=>{clearColumnConvert(i),l.print||t&&t({status:!1,options:l,$table:V,$grid:r,$gantt:o});return Promise.reject({status:!1})})},f=(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),S._importResolve=null,S._importReject=null},r=e=>{l(e),S._importResolve=null,S._importReject=null};if(S._importResolve=e,S._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:V})).then(()=>{e({status:!0})}).catch(()=>{e({status:!0})}):e({status:!0}):(o=S.tableFullColumn,V.preventEvent(null,"event.import",{file:a,options:t,columns:o},()=>{var e=new FileReader;e.onerror=()=>{errLog("vxe.error.notType",[n]),r({status:!1})},e.onload=e=>{((e,l)=>{let{tableFullColumn:t,_importResolve:r,_importReject:o}=S,a={fields:[],rows:[]},i={},s={};t.forEach(e=>{var t=e.field,l=V.getHeaderCellLabel(e);t&&(i[t]=e),l&&(s[l]=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])?V.createData(c).then(e=>{let t;return t="insert"===l.mode||"insertBottom"===l.mode?V.insertAt(e,-1):"insertTop"===l.mode?V.insert(e):V.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 errLog("vxe.error.notExp"),e({status:!0})}).then(()=>{t&&t({status:!0,options:i,$table:V})}).catch(e=>(t&&t({status:!1,options:i,$table:V}),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}))},K=(e,r,t)=>t.some(e=>{var t,l;return(0,_util.isColumnInfo)(e)?r.id===e.id:_xeUtils.default.isString(e)?r.field===e:(t=e.id||e.colId,l=e.type,e=e.field,t?r.id===t:e&&l?r.field===e&&r.type===l:e?r.field===e:!!l&&r.type===l)}),Y=(e,t,l,r,o,a)=>{var i=t.field;return!o[i]&&(l?!!r[i]:!!a[i]||(e.original?!!i:defaultFilterExportColumn(t)))},l=(e,t)=>{var l=V.xeGrid,r=V.xeGantt,o=l||r,{treeConfig:a,showHeader:i,showFooter:s}=B,{initStore:n,isGroup:d,rowGroupList:c,footerTableData:u,exportStore:p,exportParams:h}=P,{collectColumn:m,mergeBodyList:g,mergeFooterList:x}=S,f=q.value,a=!!a,c=0<c.length,v=L.value,b=V.getCheckboxRecords(),o=o?o.getComputeMaps().computeProxyOpts.value:{},u=!!u.length,g=!(!g.length&&!x.length);let _=Object.assign({message:!0,isHeader:i,isTitle:i,isFooter:s,isColgroup:d,isMerge:g,useStyle:!0,current:"current",modes:(o.ajax&&o.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"])},e);_xeUtils.default.isBoolean(_.isAllExpand)&&(warnLog("vxe.error.delProp",["isAllExpand","isTreeAllExpanded"]),_.isTreeAllExpanded=_.isAllExpand);x=_.types||_xeUtils.default.keys(f._typeMaps),i=_.modes||[];let $=v.checkMethod;s=m.slice(0);let{columns:y,excludeFields:w,includeFields:C,extraFields:T}=_;o=x.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),e=i.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.export.modes."+e)});let E={},M=(w&&w.length&&w.forEach(e=>{E[e]=1}),{}),k=(C&&C.length&&C.forEach(e=>{M[e]=1}),{}),{filename:F,sheetName:U,mode:I,type:j}=(T&&T.forEach(e=>{k[e]=1}),_xeUtils.default.eachTree(s,(e,t,l,r,o)=>{var a=e.children&&0<e.children.length;let i=!1;var s=k[e.field];i=y&&y.length?K(_,e,y):w||C?Y(_,e,C,M,E,k):!!s||e.visible&&(a||defaultFilterExportColumn(e)),e.checked=i,e.halfChecked=!1,e.disabled=o&&o.disabled||!!$&&!$({$table:V,column:e})}),p.columns=s,p.typeList=o,p.modeList=e,p.hasFooter=u,p.hasMerge=g,p.hasTree=a,p.hasRowGroup=c,p.isPrint=!!t,p.hasColgroup=d,p.visible=!0,Object.assign(h,{mode:b.length?"selected":"current"},_),h);return F&&(_xeUtils.default.isFunction(F)?h.filename=F({options:_,$table:V,$grid:l,$gantt:r}):h.filename=""+F),U&&(_xeUtils.default.isFunction(U)?h.sheetName=U({options:_,$table:V,$grid:l,$gantt:r}):h.sheetName=""+U),e.some(e=>e.value===I)||(h.mode=e[0].value),o.some(e=>e.value===j)||(h.type=o[0].value),h.widthMode||(h.widthMode=""),n.export=!0,(0,_vue.nextTick)()};var e=()=>_ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_EXPORT_MODAL"):Promise.resolve();let v={exportData(n){let d=V.xeGrid,c=V.xeGantt;var r=d||c,{treeConfig:e,showHeader:u,showFooter:p}=B,t=P.isGroup;let{tableFullColumn:a,afterFullData:l,afterTreeFullData:o,collectColumn:i,mergeBodyList:s,mergeFooterList:N}=S;var h=q.value,O=A.value;let m=r?r.getComputeMaps().computeProxyOpts.value:{};var g=!(!s.length&&!N.length);let x=Object.assign({message:!0,isHeader:u,isTitle:u,isFooter:p,isColgroup:t,isMerge:g,useStyle:!0,current:"current",modes:(m.ajax&&m.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"]),download:!0,type:"csv"},h,n),{filename:f,sheetName:v,type:b,mode:_,columns:$,columnFilterMethod:y,beforeExportMethod:w,includeFields:C,excludeFields:T,extraFields:E}=(_xeUtils.default.isBoolean(x.isAllExpand)&&(warnLog("vxe.error.delProp",["isAllExpand","isTreeAllExpanded"]),x.isTreeAllExpanded=x.isAllExpand),x),M=[],k=V.getCheckboxRecords(),F=(_=_||(k.length?"selected":"current"),{}),U=(T&&T.length&&T.forEach(e=>{F[e]=1}),{}),I=(C&&C.length&&C.forEach(e=>{U[e]=1}),{}),j=(E&&E.forEach(e=>{I[e]=1}),!1),L=[],R=(L=$&&$.length?(j=!0,_xeUtils.default.searchTree($,()=>!0,{children:"children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(i,e=>{var t=e.children&&0<e.children.length;let l=!1;var r=I[e.field];return l=$&&$.length?K(x,e,$):T||C?Y(x,e,C,U,F,I):!!r||e.visible&&(t||defaultFilterExportColumn(e))},{children:"children",mapChildren:"childNodes",original:!0}),Object.assign({},x,{filename:"",sheetName:"",_columnConfs:$})),D=(j||y||(y=({column:e})=>Y(R,e,C,U,F,I),R.columnFilterMethod=y),M=L?(R._isCustomColumn=!0,_xeUtils.default.searchTree(_xeUtils.default.mapTree(L,e=>{let r;if(e){if((0,_util.isColumnInfo)(e))r=e;else if(_xeUtils.default.isString(e))r=V.getColumnByField(e);else{var o=e.id||e.colId;let t=e.type,l=e.field;o?r=V.getColumnById(o):l&&t?r=a.find(e=>e.field===l&&e.type===t):l?r=V.getColumnByField(l):t&&(r=a.find(e=>e.type===t))}return r||{}}},{children:"childNodes",mapChildren:"_children"}),(e,t)=>(0,_util.isColumnInfo)(e)&&(!y||y({$table:V,$grid:d,$gantt:c,column:e,$columnIndex:t})),{children:"_children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(t?i:a,(e,t)=>e.visible&&(!y||y({$table:V,$grid:d,$gantt:c,column:e,$columnIndex:t})),{children:"children",mapChildren:"childNodes",original:!0}),[]);if(_xeUtils.default.eachTree(M,e=>{e.children&&e.children.length||D.push(e)},{children:"childNodes"}),R.columns=D,R.colgroups=convertToRows(M),f&&(_xeUtils.default.isFunction(f)?R.filename=f({options:x,$table:V,$grid:d,$gantt:c}):R.filename=""+f),R.filename||(R.filename=getI18n(R.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),v&&(_xeUtils.default.isFunction(v)?R.sheetName=v({options:x,$table:V,$grid:d,$gantt:c}):R.sheetName=""+v),R.sheetName||(R.sheetName=document.title||""),!R.exportMethod&&!_xeUtils.default.includes(_xeUtils.default.keys(h._typeMaps),b))return errLog("vxe.error.notType",[b]),["xlsx","pdf"].includes(b)&&warnLog("vxe.error.reqPlugin",[4,"plugin-export-xlsx"]),Promise.reject({status:!1});if(R.print||w&&w({options:R,$table:V,$grid:d,$gantt:c}),R.data)R._isCustomData=!0;else{if(R.data=[],"selected"===_)-1<["html","pdf"].indexOf(b)&&e?R.data=_xeUtils.default.searchTree(V.getTableData().fullData,e=>-1<V.findRowIndexOf(k,e),Object.assign({},O,{data:"_row"})):R.data=k;else if("all"===_&&(r||errLog("vxe.error.errProp",["all","mode=current,selected"]),r)&&!R.remote){u=r.reactData,p=r.getComputeMaps().computeProxyOpts;let e=p.value;g=u.sortData;let{beforeQueryAll:t,afterQueryAll:o,ajax:l={}}=e,a=e.response||e.props||{};n=l.queryAll;let i=l.queryAllSuccess,s=l.queryAllError;if(n||errLog("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),n){let r={$table:V,$grid:d,$gantt:c,sort:g.length?g[0]:{},sorts:g,filters:u.filterData,form:u.formData,options:R};return Promise.resolve((t||n)(r)).then(e=>{var t=a.list;let l=[];return t?l=_xeUtils.default.isFunction(t)?t({data:e,$table:V,$grid:d,$gantt:c}):_xeUtils.default.isArray(e)?e:_xeUtils.default.get(e,t):_xeUtils.default.isArray(e)&&(l=e),R.data=l,o&&o(r),i&&i(Object.assign(Object.assign({},r),{response:e})),X(R)}).catch(e=>{s&&s(Object.assign(Object.assign({},r),{response:e}))})}}"current"===_&&(R.data=e?o:l)}return X(R)},importByFile(e,t){var t=Object.assign({},t),l=t.beforeImportMethod;return l&&l({options:t,$table:V}),f(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:V}),_ui.VxeUI.readFile(l).catch(e=>(o&&o({status:!1,options:l,$table:V}),Promise.reject(e))).then(e=>{e=e.file;return f(e,l)})},saveFile(e){return _ui.VxeUI.saveFile(e)},readFile(e){return _ui.VxeUI.readFile(e)},print(e){let l=V.xeGrid,r=V.xeGantt;var t=n.value;let o=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});t=o.sheetName;let a="",i=(a=(a=t?_xeUtils.default.isFunction(t)?t({options:o,$table:V,$grid:l,$gantt:r}):""+t:a)||document.title||"",o.beforePrintMethod),s=o.html||o.content;return new Promise((e,t)=>{_ui.VxeUI.print?s?e(_ui.VxeUI.print({title:a,html:s,customStyle:o.style,beforeMethod:i?({html:e})=>i({html:e,content:e,options:o,$table:V,$grid:l,$gantt:r}):void 0})):e(v.exportData(o).then(({content:e})=>_ui.VxeUI.print({title:a,html:e,customStyle:o.style,beforeMethod:i?({html:e})=>i({html:e,content:e,options:o,$table:V,$grid:l,$gantt:r}):void 0}))):t({status:!1})})},getPrintHtml(e){var t=n.value,t=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});return V.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}=B;let{initStore:r,importStore:o,importParams:a}=P;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||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=q.value,t=Object.assign({message:!0,types:_xeUtils.default.keys(t._typeMaps)},t,e);return B.exportConfig||errLog("vxe.error.reqProp",["export-config"]),l(t)},closePrint:e,openPrint(e){var t=n.value,t=Object.assign({message:!0},t,e);return B.printConfig||errLog("vxe.error.reqProp",["print-config"]),l(t,!0)}};return v},setupGrid(e){return e.extendTableMethods(tableExportMethodKeys)},setupGantt(e){return e.extendTableMethods(tableExportMethodKeys)}});
|
|
1
|
+
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util2=require("./util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("table"),{getI18n,hooks,renderer}=_ui.VxeUI,htmlCellElem,csvBOM="\ufeff",enterSymbol="\r\n";function defaultFilterExportColumn(e){return!!e.field||-1===["seq","checkbox","radio"].indexOf(e.type||"")}let getConvertColumns=e=>{let t=[];return e.forEach(e=>{e.childNodes&&e.childNodes.length?(t.push(e),t.push(...getConvertColumns(e.childNodes))):t.push(e)}),t},convertToRows=e=>{let t=1,r=(l,e)=>{if(e&&(l._level=e._level+1,t<l._level)&&(t=l._level),l.childNodes&&l.childNodes.length){let t=0;l.childNodes.forEach(e=>{r(e,l),t+=e._colSpan}),l._colSpan=t}else l._colSpan=1},l=(e.forEach(e=>{e._level=1,r(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getConvertColumns(e).forEach(e=>{e.childNodes&&e.childNodes.length?e._rowSpan=1:e._rowSpan=t-e._level+1,l[e._level-1].push(e)}),l};function toTableBorder(e){return!0===e?"full":e||"default"}function getBooleanValue(e){return"TRUE"===e||"true"===e||!0===e}function getFooterData(l,e,t){let r=l.xeGrid,o=l.xeGantt,a=e.footerFilterMethod;return a?t.filter((e,t)=>a({$table:l,$grid:r,$gantt:o,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,'""')}"`:_xeUtils.default.eqNull(e)?"":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(V){let{props:B,reactData:P,internalData:S}=V,{computeTreeOpts:A,computePrintOpts:n,computeExportOpts:q,computeImportOpts:c,computeCustomOpts:L,computeSeqOpts:i,computeRadioOpts:a,computeCheckboxOpts:s,computeColumnOpts:u,computeAggregateOpts:p}=V.getComputeMaps(),R=(e,t,l,r,o)=>{var a=i.value.seqMethod||r.seqMethod;return a?a({$table:V,row:t,rowIndex:V.getRowIndex(t),_rowIndex:V.getVTRowIndex(t),$rowIndex:l,column:r,columnIndex:V.getColumnIndex(r),_columnIndex:V.getVTColumnIndex(r),$columnIndex:o}):e};function D(e,t){var l=u.value,l=t.headerExportMethod||l.headerExportMethod;return l?l({column:t,options:e,$table:V}):(e.isTitle?V.getHeaderCellLabel(t):t.field)||""}let N=e=>_xeUtils.default.isBoolean(e)?e?"TRUE":"FALSE":e,O=e=>(0,_utils.eqEmptyValue)(e)?"":""+e,d=(M,m,e)=>{let{isTreeAllExpanded:i,isRowGroupAllExpanded:d,mode:k}=M;var t=B.treeConfig,l=P.isRowGroupStatus;let F=S.fullColumnFieldData,U=a.value,I=s.value;var r=A.value;let j=u.value;var o=p.value;htmlCellElem=htmlCellElem||document.createElement("div");let g=(0,_util.createHandleGetRowId)(V).handleGetRowId;if(l){let{mode:_,showTotal:$,totalMethod:y,countFields:w,contentMethod:C,formatValuesMethod:T,mapChildrenField:E}=o,i=[],s={},n={};return _xeUtils.default.eachTree(e,(e,f,t,v,l,r)=>{let b=e._row||e;var o=g(b);if(!n[o]){e=l&&l._row?l._row:l,l=e?g(e):"";if(d||!e||s[l]&&V.isRowExpandByRow(e)){var a=E&&b[E]&&b[E].length;let x={_row:b,_level:r.length-1,_hasChild:a,_expand:a&&V.isRowExpandByRow(b)};m.forEach((e,t)=>{var{field:l,editRender:r,cellRender:o,aggFunc:a,rowGroupNode:i}=e;let s="";var n,d,c,u,p,h,r=r||o;let m=e.exportMethod||j.exportMethod;if(m=(m=!m&&r&&r.name&&(o=renderer.get(r.name))?o.tableExportMethod||o.exportMethod:m)||j.exportMethod)s=m({$table:V,row:b,column:e,options:M});else switch(e.type){case"seq":var g=v.map((e,t)=>t%2==0?Number(e)+1:".").join("");s="all"===k?g:R(g,b,f,e,t);break;case"checkbox":s=N(V.isCheckedByCheckboxRow(b)),x._checkboxLabel=I.labelField?_xeUtils.default.get(b,I.labelField):"",x._checkboxDisabled=I.checkMethod&&!I.checkMethod({$table:V,row:b});break;case"radio":s=N(V.isCheckedByRadioRow(b)),x._radioLabel=U.labelField?_xeUtils.default.get(b,U.labelField):"",x._radioDisabled=U.checkMethod&&!U.checkMethod({$table:V,row:b});break;default:l&&b.isAggregate?(n=(n=(g=b).aggData)?n[l]:null,u=g.groupField,d=g.groupContent,h=E&&g[E]||[],c=g.childCount,p=F[u]||{},u={$table:V,groupField:u,groupColumn:p?p.column:null,column:e,groupValue:d,childList:h,childCount:c,aggValue:null,children:h,totalValue:c},("column"===_?l===g.groupField:i)?(s=d,C&&(s=""+C(u)),$&&(s=getI18n("vxe.table.rowGroupContentTotal",[s,y?y(u):c,c]))):V.getPivotTableAggregateCellAggValue?(p={$table:V,row:b,column:e},s=V.getPivotTableAggregateCellAggValue(p)):(!0===a||w&&w.includes(l))&&(s=n?n.value:c,u.aggValue=s,T)&&(s=T(u))):M.original?s=(0,_util.getCellValue)(b,e):(s=V.getCellLabel(b,e),"html"===e.type?(htmlCellElem.innerHTML=s,s=htmlCellElem.innerText.trim()):(h=V.getCellElement(b,e))&&!(0,_dom.hasClass)(h,"is--progress")&&(s=h.innerText.trim()))}x[e.id]=O(s)}),n[o]=!0,l&&(s[l]=!0),i.push(Object.assign(x,b))}}},{children:E}),i}if(t){let c=r.children||r.childrenField,u=[],p={},h={};return _xeUtils.default.eachTree(e,(e,s,t,n,l,r)=>{let d=e._row||e;var o=g(d);if(!h[o]){e=l&&l._row?l._row:l,l=e?g(e):"";if(i||!e||p[l]&&V.isTreeExpandByRow(e)){var a=d[c]&&d[c].length;let i={_row:d,_level:r.length-1,_hasChild:a,_expand:a&&V.isTreeExpandByRow(d)};m.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||j.exportMethod;if(o=(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)||j.exportMethod)l=o({$table:V,row:d,column:e,options:M});else switch(e.type){case"seq":var a=n.map((e,t)=>t%2==0?Number(e)+1:".").join("");l="all"===k?a:R(a,d,s,e,t);break;case"checkbox":l=N(V.isCheckedByCheckboxRow(d)),i._checkboxLabel=I.labelField?_xeUtils.default.get(d,I.labelField):"",i._checkboxDisabled=I.checkMethod&&!I.checkMethod({$table:V,row:d});break;case"radio":l=N(V.isCheckedByRadioRow(d)),i._radioLabel=U.labelField?_xeUtils.default.get(d,U.labelField):"",i._radioDisabled=U.checkMethod&&!U.checkMethod({$table:V,row:d});break;default:M.original?l=(0,_util.getCellValue)(d,e):(l=V.getCellLabel(d,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=V.getCellElement(d,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}i[e.id]=O(l)}),h[o]=!0,l&&(p[l]=!0),u.push(Object.assign(i,d))}}},{children:c}),u}return e.map((i,s)=>{let n={_row:i};return m.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||j.exportMethod;if(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)l=o({$table:V,row:i,column:e,options:M});else switch(e.type){case"seq":var a=s+1;l="all"===k?a:R(a,i,s,e,t);break;case"checkbox":l=N(V.isCheckedByCheckboxRow(i)),n._checkboxLabel=I.labelField?_xeUtils.default.get(i,I.labelField):"",n._checkboxDisabled=I.checkMethod&&!I.checkMethod({$table:V,row:i});break;case"radio":l=N(V.isCheckedByRadioRow(i)),n._radioLabel=U.labelField?_xeUtils.default.get(i,U.labelField):"",n._radioDisabled=U.checkMethod&&!U.checkMethod({$table:V,row:i});break;default:M.original?l=(0,_util.getCellValue)(i,e):(l=V.getCellLabel(i,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=V.getCellElement(i,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}n[e.id]=O(l)}),n})},H=(e,t,l)=>{var r=u.value,o=l.editRender||l.cellRender;let a=l.footerExportMethod;return(a=(a=!a&&o&&o.name&&(o=renderer.get(o.name))?o.tableFooterExportMethod||o.footerExportMethod:a)||r.footerExportMethod)?(o=V.getVTColumnIndex(l),a({$table:V,items:t,itemIndex:o,row:t,_columnIndex:o,column:l,options:e})):V.getFooterCellLabel(t,l)},h=(e,l,r,t)=>{let o=csvBOM;return l.isHeader&&(o+=r.map(e=>toTxtCellLabel(D(l,e))).join(",")+enterSymbol),t.forEach(t=>{o+=r.map(e=>toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))).join(",")+enterSymbol}),l.isFooter&&(t=P.footerTableData,getFooterData(e,l,t).forEach(t=>{o+=r.map(e=>toTxtCellLabel(H(l,t,e))).join(",")+enterSymbol})),o},m=(e,l,r,t)=>{let o="";return l.isHeader&&(o+=r.map(e=>toTxtCellLabel(D(l,e))).join("\t")+enterSymbol),t.forEach(t=>{o+=r.map(e=>toTxtCellLabel(t[e.id])).join("\t")+enterSymbol}),l.isFooter&&(t=P.footerTableData,getFooterData(e,l,t).forEach(t=>{o+=r.map(e=>toTxtCellLabel(H(l,t,e))).join("\t")+enterSymbol})),o},G=(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}=P;return r=l||e?r||!0:r},W=e=>`${e.field||""}:`+(e.type||""),g=(c,e,t)=>{let{id:d,border:l,treeConfig:r,headerAlign:o,align:u,footerAlign:p,showOverflow:h,showHeaderOverflow:a}=B,{isAllSelected:i,isIndeterminate:s}=P,{mergeBodyCellMaps:m,mergeFooterCellMaps:g}=S,n=A.value,{print:x,widthMode:f,isHeader:v,isFooter:b,isColgroup:_,isMerge:$,colgroups:y,_columnConfs:w,original:C}=c,T="auto"===f,E="scale"===f,M=!T&&!E,k={},F=(w&&w.forEach(e=>{(0,_util.isColumnInfo)(e)||(e.field||e.type)&&e.width&&(k[W(e)]=e.width)}),{}),U={};if(x){let o=0;e.forEach(e=>{o+=e.renderWidth}),y&&y.forEach(e=>{e.forEach(r=>{if(r.childNodes&&r.childNodes.length){let t=0,l=0;_xeUtils.default.eachTree([r],e=>{e.childNodes&&r.childNodes.length||l++;e=U[e.id];t+=e||0},{children:"childNodes"});var e=t-l;F[r.id]=e,U[r.id]=_xeUtils.default.floor(e/o*180,2)}})}),e.forEach(e=>{var t=e.renderWidth;e.width&&(F[e.id]=t),U[e.id]=_xeUtils.default.floor(t/o*180,2)})}let I=e=>{var t=W(e),t=k[t];return t?"width:"+(0,_dom.toCssUnit)(t):T||M?"":E?U[e.id]?"width:"+U[e.id]+"mm":"":F[e.id]?"width:"+(0,_dom.toCssUnit)(F[e.id]):""},j="check-all";let L=[`<table class="${["vxe-table","border--"+toTableBorder(l),x?"is--print":"",T?"is--auto-width":"",E?"is--scale-width":"",M?"is--default-width":"",v?"is--header":""].filter(e=>e).join(" ")}" border="0" cellspacing="0" cellpadding="0">`,`<colgroup>${e.map(e=>{return`<col style="${e=e,t=W(e),t=k[t],t?"width:"+(0,_dom.toCssUnit)(t):T?"":E?U[e.id]?"width:"+U[e.id]+"mm":"":F[e.id]?"width:"+(0,_dom.toCssUnit)(F[e.id]):""}">`;var t}).join("")}</colgroup>`];v&&(L.push("<thead>"),_&&!C?y.forEach(e=>{L.push(`<tr>${e.map(e=>{var t=e.headerAlign||e.align||o||u,l=G(e,"showHeaderOverflow",a)?["col--ellipsis"]:[],r=D(c,e);return t&&l.push("col--"+t),"checkbox"===e.type?`<th class="${l.join(" ")}" colspan="${e._colSpan}" rowspan="${e._rowSpan}"><div style="${I(e)}"><input type="checkbox" class="${j}" ${i?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" colspan="${e._colSpan}" rowspan="${e._rowSpan}" title="${r}"><div style="${I(e)}"><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`)}):L.push(`<tr>${e.map(e=>{var t=e.headerAlign||e.align||o||u,l=G(e,"showHeaderOverflow",a)?["col--ellipsis"]:[],r=D(c,e);return t&&l.push("col--"+t),"checkbox"===e.type?`<th class="${l.join(" ")}"><div style="${I(e)}"><input type="checkbox" class="${j}" ${i?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" title="${r}"><div style="${I(e)}"><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`),L.push("</thead>")),t.length&&(L.push("<tbody>"),r?t.forEach(o=>{L.push("<tr>"+e.map(t=>{var l=t.id,e=t.align||u,r=G(t,"showOverflow",h)?["col--ellipsis"]:[],l=o[l];if(e&&r.push("col--"+e),t.treeNode){let e="";return o._hasChild&&(e=`<i class="${o._expand?"vxe-table--tree-fold-icon":"vxe-table--tree-unfold-icon"}"></i>`),r.push("vxe-table--tree-node"),"radio"===t.type?`<td class="${r.join(" ")}" title="${l}"><div style="${I(t)}"><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*n.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${d}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._radioLabel}</span></div></div></div></td>`:"checkbox"===t.type?`<td class="${r.join(" ")}" title="${l}"><div style="${I(t)}"><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*n.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._checkboxLabel}</span></div></div></div></td>`:`<td class="${r.join(" ")}" title="${l}"><div style="${I(t)}"><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*n.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell">${l}</div></div></div></td>`}return"radio"===t.type?`<td class="${r.join(" ")}"><div style="${I(t)}"><input type="radio" name="radio_${d}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._radioLabel}</span></div></td>`:"checkbox"===t.type?`<td class="${r.join(" ")}"><div style="${I(t)}"><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(l)?"checked":""}><span>${o._checkboxLabel}</span></div></td>`:`<td class="${r.join(" ")}" title="${l}"><div style="${I(t)}">${(0,_utils.formatText)(l,!0)}</div></td>`}).join("")+"</tr>")}):t.forEach(n=>{L.push("<tr>"+e.map(e=>{var t=e.align||u,l=G(e,"showOverflow",h)?["col--ellipsis"]:[],r=n[e.id];let o=1,a=1;if($){var i=V.getVTRowIndex(n._row),s=V.getVTColumnIndex(e),i=m[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 style="${I(e)}"><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 style="${I(e)}"><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 style="${I(e)}">${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")+"</tr>")}),L.push("</tbody>")),b&&(t=P.footerTableData,(t=getFooterData(V,c,t)).length)&&(L.push("<tfoot>"),t.forEach((n,d)=>{L.push(`<tr>${e.map(e=>{var t=e.footerAlign||e.align||p||u,l=G(e,"showOverflow",h)?["col--ellipsis"]:[],r=H(c,n,e);let o=1,a=1;if($){var i=d,s=V.getVTColumnIndex(e),i=g[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),`<td class="${l.join(" ")}" rowspan="${o}" colspan="${a}" title="${r}"><div style="${I(e)}">${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")}</tr>`)}),L.push("</tfoot>"));t=!i&&s?`<script>(function(){var a=document.querySelector(".${j}");if(a){a.indeterminate=true}})()</script>`:"";return L.push("</table>",t),x?L.join(""):(0,_util2.createHtmlPage)(c,L.join(""))},x=(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">${D(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=P.footerTableData,getFooterData(V,l,t).forEach(t=>{r+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${H(l,t,e)}</Data></Cell>`).join("")}</Row>`})),r+"</Table></Worksheet></Workbook>"},X=l=>{let r=V.xeGrid,o=V.xeGantt,{remote:a,columns:i,colgroups:s,exportMethod:n,afterExportMethod:t}=l;return new Promise(t=>{if(a){var e={options:l,$table:V,$grid:r,$gantt:o};t(n?n(e):e)}else{let e=(e=>{let l=V.xeGrid,r=V.xeGantt,{columns:t,dataFilterMethod:o}=e,a=e.data;return o&&(a=a.filter((e,t)=>o({$table:V,$grid:l,$gantt:r,row:e,$rowIndex:t}))),d(e,t,a)})(l);t(V.preventEvent(null,"event.export",{options:l,columns:i,colgroups:s,datas:e},()=>((e,t)=>{var{filename:l,type:r,download:o}=e;if(!o)return o=(0,_util2.getExportBlobByContent)(t,e),Promise.resolve({type:r,content:t,blob:o});_ui.VxeUI.saveFile&&_ui.VxeUI.saveFile({filename:l,type:r,content:t}).then(()=>{!1!==e.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.expSuccess"),status:"success"})})})(l,((e,t,l,r)=>{if(l.length)switch(t.type){case"csv":return h(e,t,l,r);case"txt":return m(e,t,l,r);case"html":return g(t,l,r);case"xml":return x(t,l,r)}return""})(V,l,i,e))))}}).then(e=>(clearColumnConvert(i),l.print||t&&t({status:!0,options:l,$table:V,$grid:r,$gantt:o}),Object.assign({status:!0},e))).catch(()=>{clearColumnConvert(i),l.print||t&&t({status:!1,options:l,$table:V,$grid:r,$gantt:o});return Promise.reject({status:!1})})},f=(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),S._importResolve=null,S._importReject=null},r=e=>{l(e),S._importResolve=null,S._importReject=null};if(S._importResolve=e,S._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:V})).then(()=>{e({status:!0})}).catch(()=>{e({status:!0})}):e({status:!0}):(o=S.tableFullColumn,V.preventEvent(null,"event.import",{file:a,options:t,columns:o},()=>{var e=new FileReader;e.onerror=()=>{errLog("vxe.error.notType",[n]),r({status:!1})},e.onload=e=>{((e,l)=>{let{tableFullColumn:t,_importResolve:r,_importReject:o}=S,a={fields:[],rows:[]},i={},s={};t.forEach(e=>{var t=e.field,l=V.getHeaderCellLabel(e);t&&(i[t]=e),l&&(s[l]=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])?V.createData(c).then(e=>{let t;return t="insert"===l.mode||"insertBottom"===l.mode?V.insertAt(e,-1):"insertTop"===l.mode?V.insert(e):V.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 errLog("vxe.error.notExp"),e({status:!0})}).then(()=>{t&&t({status:!0,options:i,$table:V})}).catch(e=>(t&&t({status:!1,options:i,$table:V}),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}))},K=(e,r,t)=>t.some(e=>{var t,l;return(0,_util.isColumnInfo)(e)?r.id===e.id:_xeUtils.default.isString(e)?r.field===e:(t=e.id||e.colId,l=e.type,e=e.field,t?r.id===t:e&&l?r.field===e&&r.type===l:e?r.field===e:!!l&&r.type===l)}),Y=(e,t,l,r,o,a)=>{var i=t.field;return!o[i]&&(l?!!r[i]:!!a[i]||(e.original?!!i:defaultFilterExportColumn(t)))},l=(e,t)=>{var l=V.xeGrid,r=V.xeGantt,o=l||r,{treeConfig:a,showHeader:i,showFooter:s}=B,{initStore:n,isGroup:d,rowGroupList:c,footerTableData:u,exportStore:p,exportParams:h}=P,{collectColumn:m,mergeBodyList:g,mergeFooterList:x}=S,f=q.value,a=!!a,c=0<c.length,v=L.value,b=V.getCheckboxRecords(),o=o?o.getComputeMaps().computeProxyOpts.value:{},u=!!u.length,g=!(!g.length&&!x.length);let _=Object.assign({message:!0,isHeader:i,isTitle:i,isFooter:s,isColgroup:d,isMerge:g,useStyle:!0,current:"current",modes:(o.ajax&&o.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"])},e);_xeUtils.default.isBoolean(_.isAllExpand)&&(warnLog("vxe.error.delProp",["isAllExpand","isTreeAllExpanded"]),_.isTreeAllExpanded=_.isAllExpand);x=_.types||_xeUtils.default.keys(f._typeMaps),i=_.modes||[];let $=v.checkMethod;s=m.slice(0);let{columns:y,excludeFields:w,includeFields:C,extraFields:T}=_;o=x.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),e=i.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.export.modes."+e)});let E={},M=(w&&w.length&&w.forEach(e=>{E[e]=1}),{}),k=(C&&C.length&&C.forEach(e=>{M[e]=1}),{}),{filename:F,sheetName:U,mode:I,type:j}=(T&&T.forEach(e=>{k[e]=1}),_xeUtils.default.eachTree(s,(e,t,l,r,o)=>{var a=e.children&&0<e.children.length;let i=!1;var s=k[e.field];i=y?K(_,e,y):w||C?Y(_,e,C,M,E,k):!!s||e.visible&&(a||defaultFilterExportColumn(e)),e.checked=i,e.halfChecked=!1,e.disabled=o&&o.disabled||!!$&&!$({$table:V,column:e})}),p.columns=s,p.typeList=o,p.modeList=e,p.hasFooter=u,p.hasMerge=g,p.hasTree=a,p.hasRowGroup=c,p.isPrint=!!t,p.hasColgroup=d,p.visible=!0,Object.assign(h,{mode:b.length?"selected":"current"},_),h);return F&&(_xeUtils.default.isFunction(F)?h.filename=F({options:_,$table:V,$grid:l,$gantt:r}):h.filename=""+F),U&&(_xeUtils.default.isFunction(U)?h.sheetName=U({options:_,$table:V,$grid:l,$gantt:r}):h.sheetName=""+U),e.some(e=>e.value===I)||(h.mode=e[0].value),o.some(e=>e.value===j)||(h.type=o[0].value),h.widthMode||(h.widthMode=""),n.export=!0,(0,_vue.nextTick)()};var e=()=>_ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_EXPORT_MODAL"):Promise.resolve();let v={exportData(n){let d=V.xeGrid,c=V.xeGantt;var r=d||c,{treeConfig:e,showHeader:u,showFooter:p}=B,t=P.isGroup;let{tableFullColumn:a,afterFullData:l,afterTreeFullData:o,collectColumn:i,mergeBodyList:s,mergeFooterList:N}=S;var h=q.value,O=A.value;let m=r?r.getComputeMaps().computeProxyOpts.value:{};var g=!(!s.length&&!N.length);let x=Object.assign({message:!0,isHeader:u,isTitle:u,isFooter:p,isColgroup:t,isMerge:g,useStyle:!0,current:"current",modes:(m.ajax&&m.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"]),download:!0,type:"csv"},h,n),{filename:f,sheetName:v,type:b,mode:_,columns:$,columnFilterMethod:y,beforeExportMethod:w,includeFields:C,excludeFields:T,extraFields:E}=(_xeUtils.default.isBoolean(x.isAllExpand)&&(warnLog("vxe.error.delProp",["isAllExpand","isTreeAllExpanded"]),x.isTreeAllExpanded=x.isAllExpand),x),M=[],k=V.getCheckboxRecords(),F=(_=_||(k.length?"selected":"current"),{}),U=(T&&T.length&&T.forEach(e=>{F[e]=1}),{}),I=(C&&C.length&&C.forEach(e=>{U[e]=1}),{}),j=(E&&E.forEach(e=>{I[e]=1}),!1),L=[],R=(L=$?(j=!0,_xeUtils.default.searchTree($,()=>!0,{children:"children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(i,e=>{var t=e.children&&0<e.children.length;let l=!1;var r=I[e.field];return l=$?K(x,e,$):T||C?Y(x,e,C,U,F,I):!!r||e.visible&&(t||defaultFilterExportColumn(e))},{children:"children",mapChildren:"childNodes",original:!0}),Object.assign({},x,{filename:"",sheetName:"",_columnConfs:$})),D=(j||y||(y=({column:e})=>Y(R,e,C,U,F,I),R.columnFilterMethod=y),M=L?(R._isCustomColumn=!0,_xeUtils.default.searchTree(_xeUtils.default.mapTree(L,e=>{let r;if(e){if((0,_util.isColumnInfo)(e))r=e;else if(_xeUtils.default.isString(e))r=V.getColumnByField(e);else{var o=e.id||e.colId;let t=e.type,l=e.field;o?r=V.getColumnById(o):l&&t?r=a.find(e=>e.field===l&&e.type===t):l?r=V.getColumnByField(l):t&&(r=a.find(e=>e.type===t))}return r||{}}},{children:"childNodes",mapChildren:"_children"}),(e,t)=>(0,_util.isColumnInfo)(e)&&(!y||y({$table:V,$grid:d,$gantt:c,column:e,$columnIndex:t})),{children:"_children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(t?i:a,(e,t)=>e.visible&&(!y||y({$table:V,$grid:d,$gantt:c,column:e,$columnIndex:t})),{children:"children",mapChildren:"childNodes",original:!0}),[]);if(_xeUtils.default.eachTree(M,e=>{e.children&&e.children.length||D.push(e)},{children:"childNodes"}),R.columns=D,R.colgroups=convertToRows(M),f&&(_xeUtils.default.isFunction(f)?R.filename=f({options:x,$table:V,$grid:d,$gantt:c}):R.filename=""+f),R.filename||(R.filename=getI18n(R.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),v&&(_xeUtils.default.isFunction(v)?R.sheetName=v({options:x,$table:V,$grid:d,$gantt:c}):R.sheetName=""+v),R.sheetName||(R.sheetName=document.title||""),!R.exportMethod&&!_xeUtils.default.includes(_xeUtils.default.keys(h._typeMaps),b))return errLog("vxe.error.notType",[b]),["xlsx","pdf"].includes(b)&&warnLog("vxe.error.reqPlugin",[4,"plugin-export-xlsx"]),Promise.reject({status:!1});if(R.print||w&&w({options:R,$table:V,$grid:d,$gantt:c}),R.data)R._isCustomData=!0;else{if(R.data=[],"selected"===_)-1<["html","pdf"].indexOf(b)&&e?R.data=_xeUtils.default.searchTree(V.getTableData().fullData,e=>-1<V.findRowIndexOf(k,e),Object.assign({},O,{data:"_row"})):R.data=k;else if("all"===_&&(r||errLog("vxe.error.errProp",["all","mode=current,selected"]),r)&&!R.remote){u=r.reactData,p=r.getComputeMaps().computeProxyOpts;let e=p.value;g=u.sortData;let{beforeQueryAll:t,afterQueryAll:o,ajax:l={}}=e,a=e.response||e.props||{};n=l.queryAll;let i=l.queryAllSuccess,s=l.queryAllError;if(n||errLog("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),n){let r={$table:V,$grid:d,$gantt:c,sort:g.length?g[0]:{},sorts:g,filters:u.filterData,form:u.formData,options:R};return Promise.resolve((t||n)(r)).then(e=>{var t=a.list;let l=[];return t?l=_xeUtils.default.isFunction(t)?t({data:e,$table:V,$grid:d,$gantt:c}):_xeUtils.default.isArray(e)?e:_xeUtils.default.get(e,t):_xeUtils.default.isArray(e)&&(l=e),R.data=l,o&&o(r),i&&i(Object.assign(Object.assign({},r),{response:e})),X(R)}).catch(e=>{s&&s(Object.assign(Object.assign({},r),{response:e}))})}}"current"===_&&(R.data=e?o:l)}return X(R)},importByFile(e,t){var t=Object.assign({},t),l=t.beforeImportMethod;return l&&l({options:t,$table:V}),f(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:V}),_ui.VxeUI.readFile(l).catch(e=>(o&&o({status:!1,options:l,$table:V}),Promise.reject(e))).then(e=>{e=e.file;return f(e,l)})},saveFile(e){return _ui.VxeUI.saveFile(e)},readFile(e){return _ui.VxeUI.readFile(e)},print(e){let l=V.xeGrid,r=V.xeGantt;var t=n.value;let o=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});t=o.sheetName;let a="",i=(a=(a=t?_xeUtils.default.isFunction(t)?t({options:o,$table:V,$grid:l,$gantt:r}):""+t:a)||document.title||"",o.beforePrintMethod),s=o.html||o.content;return new Promise((e,t)=>{_ui.VxeUI.print?s?e(_ui.VxeUI.print({title:a,html:s,customStyle:o.style,beforeMethod:i?({html:e})=>i({html:e,content:e,options:o,$table:V,$grid:l,$gantt:r}):void 0})):e(v.exportData(o).then(({content:e})=>_ui.VxeUI.print({title:a,html:e,customStyle:o.style,beforeMethod:i?({html:e})=>i({html:e,content:e,options:o,$table:V,$grid:l,$gantt:r}):void 0}))):t({status:!1})})},getPrintHtml(e){var t=n.value,t=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});return V.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}=B;let{initStore:r,importStore:o,importParams:a}=P;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||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=q.value,t=Object.assign({message:!0,types:_xeUtils.default.keys(t._typeMaps)},t,e);return B.exportConfig||errLog("vxe.error.reqProp",["export-config"]),l(t)},closePrint:e,openPrint(e){var t=n.value,t=Object.assign({message:!0},t,e);return B.printConfig||errLog("vxe.error.reqProp",["print-config"]),l(t,!0)}};return v},setupGrid(e){return e.extendTableMethods(tableExportMethodKeys)},setupGantt(e){return e.extendTableMethods(tableExportMethodKeys)}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -814,14 +814,14 @@ dispatchEvent('current-change',Object.assign({oldValue,newValue},params),evnt);}
|
|
|
814
814
|
* 单元格按下事件
|
|
815
815
|
*/triggerCellMousedownEvent(evnt,params){const{column}=params;const{type,treeNode}=column;const isRadioType=type==='radio';const isCheckboxType=type==='checkbox';const isExpandType=type==='expand';const rowOpts=computeRowOpts.value;const rowDragOpts=computeRowDragOpts.value;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=rowDragOpts;const cell=evnt.currentTarget;params.cell=cell;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerRadio=isRadioType&&(0,_dom.getEventTargetNode)(evnt,cell,'vxe-cell--radio').flag;const triggerCheckbox=isCheckboxType&&(0,_dom.getEventTargetNode)(evnt,cell,'vxe-cell--checkbox').flag;const triggerTreeNode=treeNode&&(0,_dom.getEventTargetNode)(evnt,cell,'vxe-cell--tree-btn').flag;const triggerExpandNode=isExpandType&&(0,_dom.getEventTargetNode)(evnt,cell,'vxe-table--expanded').flag;let isColDragCell=false;if(rowOpts.drag){isColDragCell=trigger==='row'||column.dragSort&&trigger==='cell';}let triggerDrag=false;if(!(triggerInput||triggerRadio||triggerCheckbox||triggerTreeNode||triggerExpandNode)){if(isColDragCell&&(isCrossDrag||isPeerDrag||!params.level)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&$xeTable.handleCellMousedownEvent){$xeTable.handleCellMousedownEvent(evnt,params);}$xeTable.focus();$xeTable.closeFilter();if($xeTable.closeMenu){$xeTable.closeMenu();}},triggerCellMouseupEvent(){clearDragStatus();},/**
|
|
816
816
|
* 行拖拽
|
|
817
|
-
*/handleRowDragDragstartEvent(evnt){if(evnt.dataTransfer){evnt.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0);}$xeTable.closeTooltip();},handleRowDragSwapEvent(evnt,isSyncRow,dragRow,prevDragRow,prevDragPos,prevDragToChild){const{treeConfig,dragConfig}=props;const rowDragOpts=computeRowDragOpts.value;const{afterFullData,tableFullData,fullAllDataRowIdData}=internalData;const $xeGanttView=internalData.xeGanttView;const{animation,isPeerDrag,isCrossDrag,isSelfToChildDrag,dragEndMethod,dragToChildMethod}=rowDragOpts;const treeOpts=computeTreeOpts.value;const cellOpts=computeCellOpts.value;const rowOpts=computeRowOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const{transform,rowField,mapChildrenField,parentField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const dEndMethod=dragEndMethod||(dragConfig?dragConfig.dragEndMethod:null);const dragOffsetIndex=prevDragPos==='bottom'?1:0;const el=refElem.value;const errRest={status:false};if(!(el&&prevDragRow&&dragRow)){return Promise.resolve(errRest);}// 判断是否有拖动
|
|
817
|
+
*/handleRowDragDragstartEvent(evnt){if(evnt.dataTransfer){evnt.dataTransfer.setDragImage((0,_dom.getTpImg)(),0,0);}$xeTable.closeTooltip();},handleRowDragSwapEvent(evnt,isSyncRow,dragRow,prevDragRow,prevDragPos,prevDragToChild){const{treeConfig,dragConfig}=props;const rowDragOpts=computeRowDragOpts.value;const{afterFullData,tableFullData,fullAllDataRowIdData}=internalData;const $xeGanttView=internalData.xeGanttView;const{animation,isPeerDrag,isCrossDrag,isSelfToChildDrag,dragEndMethod,dragToChildMethod}=rowDragOpts;const treeOpts=computeTreeOpts.value;const cellOpts=computeCellOpts.value;const rowOpts=computeRowOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const{transform,rowField,mapChildrenField,parentField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const dEndMethod=dragEndMethod||(dragConfig?dragConfig.dragEndMethod:null);const dragOffsetIndex=prevDragPos==='bottom'?1:0;const el=refElem.value;const errRest={status:false};if(!(el&&prevDragRow&&dragRow)){handleRowDragEndClearStatus();return Promise.resolve(errRest);}// 判断是否有拖动
|
|
818
818
|
if(prevDragRow!==dragRow){const dragParams={oldRow:dragRow,newRow:prevDragRow,dragRow,dragPos:prevDragPos,dragToChild:!!prevDragToChild,offsetIndex:dragOffsetIndex};const dragRowid=(0,_util.getRowid)($xeTable,dragRow);const dragRowRest=fullAllDataRowIdData[dragRowid]||{};const _dragRowIndex=dragRowRest._index;let dragRowHeight=0;let dragOffsetTop=-1;if(animation){dragRowHeight=(0,_util.getCellRestHeight)(dragRowRest,cellOpts,rowOpts,defaultRowHeight);const oldTrEl=el.querySelector(`.vxe-body--row[rowid="${dragRowid}"]`);if(oldTrEl){dragOffsetTop=oldTrEl.offsetTop;}}let oafIndex=-1;let nafIndex=-1;const oldRest=dragRowRest;const newRowid=(0,_util.getRowid)($xeTable,prevDragRow);const newRest=fullAllDataRowIdData[newRowid];const oldAllMaps={};let isSelfToChildStatus=false;// 如果为树结构
|
|
819
819
|
if(treeConfig){if(transform){if(oldRest&&newRest){const{level:oldLevel}=oldRest;const{level:newLevel}=newRest;_xeUtils.default.eachTree([dragRow],item=>{oldAllMaps[(0,_util.getRowid)($xeTable,item)]=item;},{children:mapChildrenField});if(oldLevel&&newLevel){// 子到子
|
|
820
820
|
if(isPeerDrag&&!isCrossDrag){if(oldRest.row[parentField]!==newRest.row[parentField]){// 非同级
|
|
821
821
|
handleRowDragEndClearStatus();return Promise.resolve(errRest);}}else{if(!isCrossDrag){handleRowDragEndClearStatus();return Promise.resolve(errRest);}if(oldAllMaps[newRowid]){isSelfToChildStatus=true;if(!(isCrossDrag&&isSelfToChildDrag)){if(_ui.VxeUI.modal){_ui.VxeUI.modal.message({status:'error',content:getI18n('vxe.error.treeDragChild')});}handleRowDragEndClearStatus();return Promise.resolve(errRest);}}}}else if(oldLevel){// 子到根
|
|
822
822
|
if(!isCrossDrag){handleRowDragEndClearStatus();return Promise.resolve(errRest);}}else if(newLevel){// 根到子
|
|
823
823
|
if(!isCrossDrag){handleRowDragEndClearStatus();return Promise.resolve(errRest);}if(oldAllMaps[newRowid]){isSelfToChildStatus=true;if(!(isCrossDrag&&isSelfToChildDrag)){if(_ui.VxeUI.modal){_ui.VxeUI.modal.message({status:'error',content:getI18n('vxe.error.treeDragChild')});}handleRowDragEndClearStatus();return Promise.resolve(errRest);}}}else{// 根到根
|
|
824
|
-
}}}}const isDragToChildFlag=isSelfToChildDrag&&dragToChildMethod?dragToChildMethod(dragParams):prevDragToChild;return Promise.resolve(dEndMethod?dEndMethod(dragParams):true).then(status=>{if(!status){return errRest;}// 如果为树结构
|
|
824
|
+
}}}}const isDragToChildFlag=isSelfToChildDrag&&dragToChildMethod?dragToChildMethod(dragParams):prevDragToChild;if(dEndMethod){handleRowDragEndClearStatus();}return Promise.resolve(dEndMethod?dEndMethod(dragParams):true).then(status=>{if(!status){return errRest;}// 如果为树结构
|
|
825
825
|
if(treeConfig){if(transform){// 移出源位置
|
|
826
826
|
if(oldRest&&newRest){const fullList=_xeUtils.default.toTreeArray(internalData.afterTreeFullData,{updated:false,key:rowField,parentKey:parentField,children:mapChildrenField});// 移出
|
|
827
827
|
const otfIndex=$xeTable.findRowIndexOf(fullList,dragRow);fullList.splice(otfIndex,1);// 插入
|
|
@@ -839,7 +839,7 @@ rsIndex=_newRowIndex-_firstRowIndex;reIndex=rsIndex+_dragRowIndex-_newRowIndex+1
|
|
|
839
839
|
*/handleCrossTableRowDragoverEmptyEvent(evnt){const{tableData}=reactData;const rowDragOpts=computeRowDragOpts.value;const{isCrossTableDrag}=rowDragOpts;if(isCrossTableDrag&&crossTableDragRowObj&&!tableData.length){const{$oldTable,$newTable}=crossTableDragRowObj;if($oldTable){const oldTableReactData=$oldTable.reactData;if($oldTable.xID!==$xeTable.xID){if($newTable&&$newTable.xID!==$xeTable.xID){$newTable.hideCrossTableRowDropClearStatus();}evnt.preventDefault();$oldTable.hideCrossTableRowDropClearStatus();crossTableDragRowObj.$newTable=$xeTable;internalData.prevDragRow=null;reactData.dragTipText=oldTableReactData.dragTipText;showDropTip(evnt,evnt.currentTarget,null,true,'');}}}},/**
|
|
840
840
|
* 处理跨表拖插入
|
|
841
841
|
*/handleCrossTableRowDragInsertEvent(evnt){const{treeConfig}=props;const{prevDragRow,prevDragPos,prevDragToChild}=internalData;const rowDragOpts=computeRowDragOpts.value;const{animation,isSelfToChildDrag,isCrossTableDrag,dragEndMethod,dragToChildMethod}=rowDragOpts;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const treeOpts=computeTreeOpts.value;const{parentField,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;// 跨表拖拽
|
|
842
|
-
if(isCrossTableDrag&&crossTableDragRowObj&&crossTableDragRowInfo){const{row:oldRow}=crossTableDragRowInfo;const{$oldTable}=crossTableDragRowObj;const el=refElem.value;if($oldTable&&oldRow){const dragRow=oldRow;let dragOffsetIndex=-1;if(prevDragRow){dragOffsetIndex=prevDragPos==='bottom'?1:0;}const dragParams={oldRow:dragRow,newRow:prevDragRow,dragRow,dragPos:prevDragPos,dragToChild:!!prevDragToChild,offsetIndex:dragOffsetIndex};const isDragToChildFlag=isSelfToChildDrag&&dragToChildMethod?dragToChildMethod(dragParams):prevDragToChild;const errRest={status:false};Promise.resolve(dragEndMethod?dragEndMethod(dragParams):true).then(status=>{if(!status){if($oldTable){if($oldTable.xID!==$xeTable.xID){$oldTable.handleCrossTableRowDragCancelEvent(evnt);}}handleRowDragEndClearStatus();return errRest;}let insertRest=Promise.resolve();if(treeConfig){const dragList=_xeUtils.default.toTreeArray([dragRow],{updated:true,children:mapChildrenField});$oldTable.handleCrossTableRowDragFinishEvent(evnt);if(prevDragRow){dragRow[parentField]=prevDragRow[parentField];}else{dragRow[parentField]=null;}dragList.forEach(row=>{row[childrenField]=undefined;row[mapChildrenField]=undefined;});if(prevDragRow){if(prevDragPos==='bottom'){insertRest=$xeTable.insertNextAt(dragList,prevDragRow);}else{insertRest=$xeTable.insertAt(dragList,prevDragRow);}}else{insertRest=$xeTable.insert(dragList);}}else{$oldTable.handleCrossTableRowDragFinishEvent(evnt);if(prevDragRow){if(prevDragPos==='bottom'){insertRest=$xeTable.insertNextAt(dragRow,prevDragRow);}else{insertRest=$xeTable.insertAt(dragRow,prevDragRow);}}else{insertRest=$xeTable.insert(dragRow);}}dispatchEvent('row-insert-dragend',{oldRow,newRow:prevDragRow,dragRow,dragPos:prevDragPos,dragToChild:isDragToChildFlag,offsetIndex:dragOffsetIndex},evnt);clearRowDragData();insertRest.then(()=>{const{tableData}=reactData;const{fullAllDataRowIdData}=internalData;const oldRowid=(0,_util.getRowid)($xeTable,dragRow);const oldRowRest=fullAllDataRowIdData[oldRowid];let dragRowHeight=0;let rsIndex=-1;if(oldRowRest){if(animation){dragRowHeight=(0,_util.getCellRestHeight)(oldRowRest,cellOpts,rowOpts,defaultRowHeight);}rsIndex=oldRowRest.$index;}const dragRangeList=rsIndex>-1?tableData.slice(rsIndex):[];if(animation&&dragRowHeight&&dragRangeList.length){const $xeGanttView=internalData.xeGanttView;let wrapperEl=el;if($xeGantt&&$xeGanttView){const{refGanttContainerElem}=$xeGantt.getRefMaps();const ganttContainerElem=refGanttContainerElem.value;if(ganttContainerElem){wrapperEl=ganttContainerElem;}}const dtClss=[];dragRangeList.forEach(row=>{const rowid=(0,_util.getRowid)($xeTable,row);dtClss.push(`.vxe-body--row[rowid="${rowid}"]`);if($xeGantt){dtClss.push(`.vxe-gantt-view--body-row[rowid="${rowid}"]`,`.vxe-gantt-view--chart-row[rowid="${rowid}"]`);}});const dtTrList=wrapperEl.querySelectorAll(dtClss.join(','));(0,_anime.moveRowAnimateToTb)(dtTrList,-dragRowHeight);}});});}}},hideCrossTableRowDropClearStatus(){hideDropTip();},handleRowDragDragendEvent(evnt){const{treeConfig}=props;const{fullAllDataRowIdData,prevDragToChild}=internalData;const{dragRow}=reactData;const treeOpts=computeTreeOpts.value;const{lazy}=treeOpts;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const{prevDragRow,prevDragPos}=internalData;const rowDragOpts=computeRowDragOpts.value;const{isCrossTableDrag}=rowDragOpts;// 跨表拖拽
|
|
842
|
+
if(isCrossTableDrag&&crossTableDragRowObj&&crossTableDragRowInfo){const{row:oldRow}=crossTableDragRowInfo;const{$oldTable}=crossTableDragRowObj;const el=refElem.value;if($oldTable&&oldRow){const dragRow=oldRow;let dragOffsetIndex=-1;if(prevDragRow){dragOffsetIndex=prevDragPos==='bottom'?1:0;}const dragParams={oldRow:dragRow,newRow:prevDragRow,dragRow,dragPos:prevDragPos,dragToChild:!!prevDragToChild,offsetIndex:dragOffsetIndex};const isDragToChildFlag=isSelfToChildDrag&&dragToChildMethod?dragToChildMethod(dragParams):prevDragToChild;const errRest={status:false};if(dragEndMethod){handleRowDragEndClearStatus();}Promise.resolve(dragEndMethod?dragEndMethod(dragParams):true).then(status=>{if(!status){if($oldTable){if($oldTable.xID!==$xeTable.xID){$oldTable.handleCrossTableRowDragCancelEvent(evnt);}}handleRowDragEndClearStatus();return errRest;}let insertRest=Promise.resolve();if(treeConfig){const dragList=_xeUtils.default.toTreeArray([dragRow],{updated:true,children:mapChildrenField});$oldTable.handleCrossTableRowDragFinishEvent(evnt);if(prevDragRow){dragRow[parentField]=prevDragRow[parentField];}else{dragRow[parentField]=null;}dragList.forEach(row=>{row[childrenField]=undefined;row[mapChildrenField]=undefined;});if(prevDragRow){if(prevDragPos==='bottom'){insertRest=$xeTable.insertNextAt(dragList,prevDragRow);}else{insertRest=$xeTable.insertAt(dragList,prevDragRow);}}else{insertRest=$xeTable.insert(dragList);}}else{$oldTable.handleCrossTableRowDragFinishEvent(evnt);if(prevDragRow){if(prevDragPos==='bottom'){insertRest=$xeTable.insertNextAt(dragRow,prevDragRow);}else{insertRest=$xeTable.insertAt(dragRow,prevDragRow);}}else{insertRest=$xeTable.insert(dragRow);}}dispatchEvent('row-insert-dragend',{oldRow,newRow:prevDragRow,dragRow,dragPos:prevDragPos,dragToChild:isDragToChildFlag,offsetIndex:dragOffsetIndex},evnt);clearRowDragData();insertRest.then(()=>{const{tableData}=reactData;const{fullAllDataRowIdData}=internalData;const oldRowid=(0,_util.getRowid)($xeTable,dragRow);const oldRowRest=fullAllDataRowIdData[oldRowid];let dragRowHeight=0;let rsIndex=-1;if(oldRowRest){if(animation){dragRowHeight=(0,_util.getCellRestHeight)(oldRowRest,cellOpts,rowOpts,defaultRowHeight);}rsIndex=oldRowRest.$index;}const dragRangeList=rsIndex>-1?tableData.slice(rsIndex):[];if(animation&&dragRowHeight&&dragRangeList.length){const $xeGanttView=internalData.xeGanttView;let wrapperEl=el;if($xeGantt&&$xeGanttView){const{refGanttContainerElem}=$xeGantt.getRefMaps();const ganttContainerElem=refGanttContainerElem.value;if(ganttContainerElem){wrapperEl=ganttContainerElem;}}const dtClss=[];dragRangeList.forEach(row=>{const rowid=(0,_util.getRowid)($xeTable,row);dtClss.push(`.vxe-body--row[rowid="${rowid}"]`);if($xeGantt){dtClss.push(`.vxe-gantt-view--body-row[rowid="${rowid}"]`,`.vxe-gantt-view--chart-row[rowid="${rowid}"]`);}});const dtTrList=wrapperEl.querySelectorAll(dtClss.join(','));(0,_anime.moveRowAnimateToTb)(dtTrList,-dragRowHeight);}});});}}},hideCrossTableRowDropClearStatus(){hideDropTip();},handleRowDragDragendEvent(evnt){const{treeConfig}=props;const{fullAllDataRowIdData,prevDragToChild}=internalData;const{dragRow}=reactData;const treeOpts=computeTreeOpts.value;const{lazy}=treeOpts;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const{prevDragRow,prevDragPos}=internalData;const rowDragOpts=computeRowDragOpts.value;const{isCrossTableDrag}=rowDragOpts;// 跨表拖拽
|
|
843
843
|
if(isCrossTableDrag&&crossTableDragRowObj){const{$newTable}=crossTableDragRowObj;if($newTable&&$newTable.xID!==$xeTable.xID){$newTable.handleCrossTableRowDragInsertEvent(evnt);return;}}if(treeConfig&&lazy&&prevDragToChild){// 懒加载
|
|
844
844
|
const newRowid=(0,_util.getRowid)($xeTable,prevDragRow);const rowRest=fullAllDataRowIdData[newRowid];if(prevDragRow[hasChildField]){if(rowRest&&rowRest.treeLoaded){$xeTable.handleRowDragSwapEvent(evnt,true,dragRow,prevDragRow,prevDragPos,prevDragToChild);}}else{$xeTable.handleRowDragSwapEvent(evnt,true,dragRow,prevDragRow,prevDragPos,prevDragToChild);}}else{$xeTable.handleRowDragSwapEvent(evnt,true,dragRow,prevDragRow,prevDragPos,prevDragToChild);}},handleRowDragDragoverEvent(evnt){const{treeConfig}=props;const{fullAllDataRowIdData}=internalData;const{dragRow}=reactData;const treeOpts=computeTreeOpts.value;const{lazy,transform,parentField}=treeOpts;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;const rowDragOpts=computeRowDragOpts.value;const{isPeerDrag,isCrossDrag,isToChildDrag,isCrossTableDrag}=rowDragOpts;if(!dragRow&&!(isCrossTableDrag&&(!treeConfig||isCrossDrag)&&crossTableDragRowObj)){evnt.preventDefault();return;}const isControlKey=(0,_dom.hasControlKey)(evnt);const trEl=evnt.currentTarget;const rowid=trEl.getAttribute('rowid')||'';const rowRest=fullAllDataRowIdData[rowid];if(rowRest){evnt.preventDefault();const row=rowRest.row;const offsetY=evnt.clientY-trEl.getBoundingClientRect().y;const dragPos=offsetY<trEl.clientHeight/2?'top':'bottom';internalData.prevDragToChild=!!(treeConfig&&transform&&isCrossDrag&&isToChildDrag&&isControlKey);internalData.prevDragRow=row;internalData.prevDragPos=dragPos;// 跨表拖拽
|
|
845
845
|
if(isCrossTableDrag&&(!treeConfig||isCrossDrag)&&crossTableDragRowObj){const{$oldTable,$newTable}=crossTableDragRowObj;if($oldTable){const oldTableReactData=$oldTable.reactData;if($oldTable.xID===$xeTable.xID){if($newTable){$newTable.hideCrossTableRowDropClearStatus();}reactData.isCrossDragRow=false;oldTableReactData.isCrossDragRow=false;crossTableDragRowObj.$newTable=null;}else{if($newTable&&$newTable.xID!==$xeTable.xID){$newTable.hideCrossTableRowDropClearStatus();}$oldTable.hideCrossTableRowDropClearStatus();oldTableReactData.isCrossDragRow=true;reactData.dragTipText=oldTableReactData.dragTipText;crossTableDragRowObj.$newTable=$xeTable;showDropTip(evnt,trEl,null,true,dragPos);return;}}}if($xeTable.eqRow(dragRow,row)||isControlKey&&treeConfig&&lazy&&row[hasChildField]&&rowRest&&!rowRest.treeLoaded||!isCrossDrag&&treeConfig&&transform&&(isPeerDrag?dragRow[parentField]!==row[parentField]:rowRest.level)){showDropTip(evnt,trEl,null,false,dragPos);return;}showDropTip(evnt,trEl,null,true,dragPos);dispatchEvent('row-dragover',{oldRow:dragRow,targetRow:row,dragPos},evnt);}},handleCellDragMousedownEvent(evnt,params){var _a;evnt.stopPropagation();const{dragConfig}=props;const rowDragOpts=computeRowDragOpts.value;const{isCrossTableDrag,trigger,dragStartMethod}=rowDragOpts;const{row}=params;const dragEl=evnt.currentTarget;const tdEl=trigger==='cell'||trigger==='row'?dragEl:(_a=dragEl.parentElement)===null||_a===void 0?void 0:_a.parentElement;const trEl=tdEl.parentElement;const dStartMethod=dragStartMethod||(dragConfig?dragConfig.dragStartMethod:null);clearRowDropOrigin();if(dStartMethod&&!dStartMethod(params)){trEl.draggable=false;reactData.dragRow=null;reactData.dragCol=null;clearCrossTableDragStatus();hideDropTip();return;}if(isCrossTableDrag){crossTableDragRowInfo.row=row;crossTableDragRowObj={$oldTable:$xeTable,$newTable:null};}reactData.dragRow=row;reactData.isCrossDragRow=false;reactData.dragCol=null;trEl.draggable=true;updateRowDropOrigin(row);updateRowDropTipContent(tdEl);dispatchEvent('row-dragstart',params,evnt);},handleCellDragMouseupEvent(){clearDragStatus();},/**
|