vxe-table 4.9.30 → 4.9.32
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/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/hook.js +40 -16
- package/es/table/module/export/hook.js +8 -5
- package/es/table/module/filter/panel.js +6 -4
- package/es/table/src/table.js +15 -8
- package/es/table/style.css +3 -25
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +2 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +3 -25
- 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 +85 -35
- 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/edit/hook.js +50 -16
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/export/hook.js +7 -4
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/module/filter/panel.js +9 -3
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/src/table.js +15 -9
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +3 -25
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +2 -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 +3 -25
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +1 -1
- package/packages/table/module/edit/hook.ts +41 -17
- package/packages/table/module/export/hook.ts +11 -7
- package/packages/table/module/filter/panel.ts +6 -4
- package/packages/table/src/table.ts +15 -8
- package/packages/ui/index.ts +1 -0
- package/styles/components/table.scss +3 -22
- /package/es/{iconfont.1734489196175.ttf → iconfont.1734659096070.ttf} +0 -0
- /package/es/{iconfont.1734489196175.woff → iconfont.1734659096070.woff} +0 -0
- /package/es/{iconfont.1734489196175.woff2 → iconfont.1734659096070.woff2} +0 -0
- /package/lib/{iconfont.1734489196175.ttf → iconfont.1734659096070.ttf} +0 -0
- /package/lib/{iconfont.1734489196175.woff → iconfont.1734659096070.woff} +0 -0
- /package/lib/{iconfont.1734489196175.woff2 → iconfont.1734659096070.woff2} +0 -0
|
@@ -14,7 +14,7 @@ const {
|
|
|
14
14
|
hooks,
|
|
15
15
|
getI18n
|
|
16
16
|
} = _ui.VxeUI;
|
|
17
|
-
const tableEditMethodKeys = ['insert', 'insertAt', 'insertNextAt', 'remove', 'removeCheckboxRow', 'removeRadioRow', 'removeCurrentRow', 'getRecordset', 'getInsertRecords', 'getRemoveRecords', 'getUpdateRecords', 'getEditRecord', 'getActiveRecord', 'getSelectedCell', 'clearEdit', 'clearActived', 'clearSelected', 'isEditByRow', 'isActiveByRow', 'setEditRow', 'setActiveRow', 'setEditCell', 'setActiveCell', 'setSelectCell'];
|
|
17
|
+
const tableEditMethodKeys = ['insert', 'insertAt', 'insertNextAt', 'insertChild', 'insertChildAt', 'insertChildNextAt', 'remove', 'removeCheckboxRow', 'removeRadioRow', 'removeCurrentRow', 'getRecordset', 'getInsertRecords', 'getRemoveRecords', 'getUpdateRecords', 'getEditRecord', 'getActiveRecord', 'getSelectedCell', 'clearEdit', 'clearActived', 'clearSelected', 'isEditByRow', 'isActiveByRow', 'setEditRow', 'setActiveRow', 'setEditCell', 'setActiveCell', 'setSelectCell'];
|
|
18
18
|
hooks.add('tableEditModule', {
|
|
19
19
|
setupTable($xeTable) {
|
|
20
20
|
const {
|
|
@@ -161,7 +161,7 @@ hooks.add('tableEditModule', {
|
|
|
161
161
|
}
|
|
162
162
|
});
|
|
163
163
|
}
|
|
164
|
-
const handleInsertRowAt = (records,
|
|
164
|
+
const handleInsertRowAt = (records, targetRow, isInsertNextRow) => {
|
|
165
165
|
const {
|
|
166
166
|
treeConfig
|
|
167
167
|
} = props;
|
|
@@ -190,7 +190,7 @@ hooks.add('tableEditModule', {
|
|
|
190
190
|
[mapChildrenField]: [],
|
|
191
191
|
[childrenField]: []
|
|
192
192
|
} : {}, record))));
|
|
193
|
-
if (_xeUtils.default.eqNull(
|
|
193
|
+
if (_xeUtils.default.eqNull(targetRow)) {
|
|
194
194
|
// 如果为虚拟树
|
|
195
195
|
if (treeConfig && transform) {
|
|
196
196
|
insertTreeRow(newRecords, false);
|
|
@@ -225,7 +225,7 @@ hooks.add('tableEditModule', {
|
|
|
225
225
|
});
|
|
226
226
|
}
|
|
227
227
|
} else {
|
|
228
|
-
if (
|
|
228
|
+
if (targetRow === -1) {
|
|
229
229
|
// 如果为虚拟树
|
|
230
230
|
if (treeConfig && transform) {
|
|
231
231
|
insertTreeRow(newRecords, true);
|
|
@@ -263,7 +263,7 @@ hooks.add('tableEditModule', {
|
|
|
263
263
|
} else {
|
|
264
264
|
// 如果为虚拟树
|
|
265
265
|
if (treeConfig && transform) {
|
|
266
|
-
const matchMapObj = _xeUtils.default.findTree(tableFullTreeData, item =>
|
|
266
|
+
const matchMapObj = _xeUtils.default.findTree(tableFullTreeData, item => targetRow[rowField] === item[rowField], {
|
|
267
267
|
children: mapChildrenField
|
|
268
268
|
});
|
|
269
269
|
if (matchMapObj) {
|
|
@@ -307,7 +307,7 @@ hooks.add('tableEditModule', {
|
|
|
307
307
|
});
|
|
308
308
|
// 源
|
|
309
309
|
if (parentRow) {
|
|
310
|
-
const matchObj = _xeUtils.default.findTree(tableFullTreeData, item =>
|
|
310
|
+
const matchObj = _xeUtils.default.findTree(tableFullTreeData, item => targetRow[rowField] === item[rowField], {
|
|
311
311
|
children: childrenField
|
|
312
312
|
});
|
|
313
313
|
if (matchObj) {
|
|
@@ -331,12 +331,12 @@ hooks.add('tableEditModule', {
|
|
|
331
331
|
}
|
|
332
332
|
let afIndex = -1;
|
|
333
333
|
// 如果是可视索引
|
|
334
|
-
if (_xeUtils.default.isNumber(
|
|
335
|
-
if (
|
|
336
|
-
afIndex =
|
|
334
|
+
if (_xeUtils.default.isNumber(targetRow)) {
|
|
335
|
+
if (targetRow < afterFullData.length) {
|
|
336
|
+
afIndex = targetRow;
|
|
337
337
|
}
|
|
338
338
|
} else {
|
|
339
|
-
afIndex = $xeTable.findRowIndexOf(afterFullData,
|
|
339
|
+
afIndex = $xeTable.findRowIndexOf(afterFullData, targetRow);
|
|
340
340
|
}
|
|
341
341
|
// 如果是插入指定行的下一行
|
|
342
342
|
if (isInsertNextRow) {
|
|
@@ -346,7 +346,7 @@ hooks.add('tableEditModule', {
|
|
|
346
346
|
throw new Error(getI18n('vxe.error.unableInsert'));
|
|
347
347
|
}
|
|
348
348
|
afterFullData.splice(afIndex, 0, ...newRecords);
|
|
349
|
-
tableFullData.splice($xeTable.findRowIndexOf(tableFullData,
|
|
349
|
+
tableFullData.splice($xeTable.findRowIndexOf(tableFullData, targetRow), 0, ...newRecords);
|
|
350
350
|
// 刷新单元格合并
|
|
351
351
|
mergeList.forEach(mergeItem => {
|
|
352
352
|
const {
|
|
@@ -390,6 +390,31 @@ hooks.add('tableEditModule', {
|
|
|
390
390
|
};
|
|
391
391
|
});
|
|
392
392
|
};
|
|
393
|
+
const handleInsertChildRowAt = (records, parentRow, targetRow, isInsertNextRow) => {
|
|
394
|
+
const {
|
|
395
|
+
treeConfig
|
|
396
|
+
} = props;
|
|
397
|
+
const treeOpts = computeTreeOpts.value;
|
|
398
|
+
const {
|
|
399
|
+
transform,
|
|
400
|
+
rowField,
|
|
401
|
+
parentField
|
|
402
|
+
} = treeOpts;
|
|
403
|
+
if (treeConfig && transform) {
|
|
404
|
+
if (!_xeUtils.default.isArray(records)) {
|
|
405
|
+
records = [records];
|
|
406
|
+
}
|
|
407
|
+
return handleInsertRowAt(records.map(item => Object.assign({}, item, {
|
|
408
|
+
[parentField]: parentRow[rowField]
|
|
409
|
+
})), targetRow, isInsertNextRow);
|
|
410
|
+
} else {
|
|
411
|
+
(0, _log.errLog)('vxe.error.errProp', ['tree-config.treeConfig=false', 'tree-config.treeConfig=true']);
|
|
412
|
+
}
|
|
413
|
+
return Promise.resolve({
|
|
414
|
+
row: null,
|
|
415
|
+
rows: []
|
|
416
|
+
});
|
|
417
|
+
};
|
|
393
418
|
const handleClearEdit = (evnt, targetRow) => {
|
|
394
419
|
const {
|
|
395
420
|
mouseConfig
|
|
@@ -456,13 +481,22 @@ hooks.add('tableEditModule', {
|
|
|
456
481
|
* 如果 row 为 -1 则从插入到底部,如果为树结构,则插入到目标节点底部
|
|
457
482
|
* 如果 row 为有效行则插入到该行的位置,如果为树结构,则有插入到效的目标节点该行的位置
|
|
458
483
|
* @param {Object/Array} records 新的数据
|
|
459
|
-
* @param {Row}
|
|
484
|
+
* @param {Row} targetRow 指定行
|
|
460
485
|
*/
|
|
461
|
-
insertAt(records,
|
|
462
|
-
return handleInsertRowAt(records,
|
|
486
|
+
insertAt(records, targetRow) {
|
|
487
|
+
return handleInsertRowAt(records, targetRow);
|
|
488
|
+
},
|
|
489
|
+
insertNextAt(records, targetRow) {
|
|
490
|
+
return handleInsertRowAt(records, targetRow, true);
|
|
491
|
+
},
|
|
492
|
+
insertChild(records, parentRow) {
|
|
493
|
+
return handleInsertChildRowAt(records, parentRow, null);
|
|
494
|
+
},
|
|
495
|
+
insertChildAt(records, parentRow, targetRow) {
|
|
496
|
+
return handleInsertChildRowAt(records, parentRow, targetRow);
|
|
463
497
|
},
|
|
464
|
-
|
|
465
|
-
return
|
|
498
|
+
insertChildNextAt(records, parentRow, targetRow) {
|
|
499
|
+
return handleInsertChildRowAt(records, parentRow, targetRow, true);
|
|
466
500
|
},
|
|
467
501
|
/**
|
|
468
502
|
* 删除指定行数据
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";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}}const{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","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(E){const{props:b,reactData:I,internalData:F}=E,o=E.getRefMaps()["refElem"],{computeMouseOpts:u,computeEditOpts:f,computeCheckboxOpts:x,computeTreeOpts:A,computeValidOpts:s}=E.getComputeMaps();let R={},m={};const p=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},n=(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 c(){var{editStore:e,tableColumn:t}=I,l=f.value,e=e["actived"];const{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>n(r,e)):n(r,o))}function S(e,t){const{tableFullTreeData:a,afterFullData:i,fullDataRowIdData:d,fullAllDataRowIdData:s}=F;var l=A.value;const{rowField:c,parentField:u,mapChildrenField:v}=l,g=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{const t=l[u];var r=(0,_util.getRowid)(E,l),o=t?_xeUtils.default.findTree(a,e=>t===e[c],{children:v}):null;if(o){var o=o["item"],n=s[(0,_util.getRowid)(E,o)],n=n?n.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,items:e,parent:o,level:n+1,height:0};d[r]=o,s[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),i[w](l),a[w](l);n={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0,height:0};d[r]=n,s[r]=n}})}const r=(t,l,o)=>{const n=b["treeConfig"];var{mergeList:e,editStore:r}=I;const{tableFullTreeData:a,afterFullData:i,tableFullData:d,fullDataRowIdData:s,fullAllDataRowIdData:c}=F,u=A.value,{transform:v,rowField:g,mapChildrenField:w}=u,f=u.children||u.childrenField,m=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(E.defineField(t.map(e=>Object.assign(n&&v?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))n&&v?S(m,!1):(m.forEach(e=>{var t=(0,_util.getRowid)(E,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,items:i,parent:null,level:0,height:0};s[t]=l,c[t]=l,i.unshift(e),d.unshift(e)}),e.forEach(e=>{var t=e["row"];0<t&&(e.row=t+m.length)}));else if(-1===l)n&&v?S(m,!0):(m.forEach(e=>{var t=(0,_util.getRowid)(E,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,items:i,parent:null,level:0,height:0};s[t]=l,c[t]=l,i.push(e),d.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>i.length&&(e.rowspan=l+m.length)}));else if(n&&v){const x=_xeUtils.default.findTree(a,e=>l[g]===e[g],{children:w});if(x){const R=x["parent"],_=R?R[w]:a;t=c[(0,_util.getRowid)(E,R)];const C=t?t.level:0;if(m.forEach((e,t)=>{var l=(0,_util.getRowid)(E,e);"development"===process.env.NODE_ENV&&e[u.parentField]&&R&&e[u.parentField]!==R[g]&&(0,_log.errLog)("vxe.error.errProp",[u.parentField+"="+e[u.parentField],u.parentField+"="+R[g]]),R&&(e[u.parentField]=R[g]);let r=x.index+t;o&&(r+=1),_.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,items:_,parent:R,level:C+1,height:0};s[l]=t,c[l]=t}),R){t=_xeUtils.default.findTree(a,e=>l[g]===e[g],{children:f});if(t){var p=t.items;let e=t.index;o&&(e+=1),p.splice(e,0,...m)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),S(m,!0)}else{if(n)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<i.length&&(r=l):r=E.findRowIndexOf(i,l),-1===(r=o?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...m),d.splice(E.findRowIndexOf(d,l),0,...m),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+m.length:t+l>r&&(e.rowspan=l+m.length)})}const h=r["insertMaps"];return m.forEach(e=>{var t=(0,_util.getRowid)(E,e);h[t]=e}),E.cacheRowMap(),E.updateScrollYStatus(),E.handleTableData(n&&v),n&&v||E.updateAfterDataIndex(),E.updateFooter(),E.checkSelectionStatus(),I.scrollYLoad&&E.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(E.updateCellAreas(),E.recalculate())).then(()=>({row:m.length?m[m.length-1]:null,rows:m}))},h=(e,t)=>{const l=b["mouseConfig"];var r=I["editStore"],{actived:r,focused:o}=r,{row:n,column:a}=r,i=s.value;const d=u.value;if(n||a){if(t&&(0,_util.getRowid)(E,t)!==(0,_util.getRowid)(E,n))return(0,_vue.nextTick)();c(),r.args=null,r.row=null,r.column=null,E.updateFooter(),E.dispatchEvent("edit-closed",{row:n,rowIndex:E.getRowIndex(n),$rowIndex:E.getVMRowIndex(n),column:a,columnIndex:E.getColumnIndex(a),$columnIndex:E.getVMColumnIndex(a)},e||null)}return(0,_vue.nextTick)(()=>{if(l&&d.area&&E.handleRecalculateCellAreas)return E.handleRecalculateCellAreas()}),i.autoClear&&("full"!==i.msgMode||"obsolete"===getConfig().cellVaildMode)&&E.clearValidate?E.clearValidate():(o.row=null,(o.column=null,_vue.nextTick)())};return R={insert(e){return r(e,null)},insertAt(e,t){return r(e,t)},insertNextAt(e,t){return r(e,t,!0)},remove(e){var t=b["treeConfig"];const{mergeList:l,editStore:r,selectCheckboxMaps:o}=I,{tableFullTreeData:n,afterFullData:a,tableFullData:i}=F;var d=x.value,s=A.value;const{transform:c,mapChildrenField:u}=s,v=s.children||s.childrenField,{actived:g,removeMaps:w}=r,f=Object.assign({},r.insertMaps),m=Object.assign({},I.pendingRowMaps);s=d.checkField;let p=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=i,e.forEach(e=>{var t;E.isInsertByRow(e)||(t=(0,_util.getRowid)(E,e),w[t]=e)}),!s){const h=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(E,e);h[e]&&delete h[e]}),I.selectCheckboxMaps=h}return i===e?(e=p=i.slice(0),F.tableFullData=[],F.afterFullData=[],E.clearMergeCells()):t&&c?e.forEach(e=>{const t=(0,_util.getRowid)(E,e);var l=_xeUtils.default.findTree(n,e=>t===(0,_util.getRowid)(E,e),{children:u}),l=(l&&(l=l.items.splice(l.index,1),p.push(l[0])),_xeUtils.default.findTree(n,e=>t===(0,_util.getRowid)(E,e),{children:v})),l=(l&&l.items.splice(l.index,1),E.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=E.findRowIndexOf(i,e);-1<t&&(t=i.splice(t,1),p.push(t[0]));const r=E.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))}),g.row&&-1<E.findRowIndexOf(e,g.row)&&R.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(E,e);f[e]&&delete f[e],m[e]&&delete m[e]}),r.insertMaps=f,I.pendingRowMaps=m,E.updateFooter(),E.cacheRowMap(),E.handleTableData(t&&c),t&&c||E.updateAfterDataIndex(),E.checkSelectionStatus(),I.scrollYLoad&&E.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(E.updateCellAreas(),E.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},removeCheckboxRow(){return R.remove(E.getCheckboxRecords()).then(e=>(E.clearCheckboxRow(),e))},removeRadioRow(){var e=E.getRadioRecord();return R.remove(e||[]).then(e=>(E.clearRadioRow(),e))},removeCurrentRow(){var e=E.getCurrentRecord();return R.remove(e||[]).then(e=>(E.clearCurrentRow(),e))},getRecordset(){var e=R.getRemoveRecords(),t=E.getPendingRecords();const l=e.concat(t);var r=R.getUpdateRecords().filter(t=>!l.some(e=>E.eqRow(e,t)));return{insertRecords:R.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=I["editStore"];const l=F["fullAllDataRowIdData"];e=e.insertMaps;const r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=I["editStore"],e=e["removeMaps"];const t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=b,l=F["tableFullData"],r=A.value;return e?(c(),t?_xeUtils.default.filterTree(l,e=>E.isUpdateByRow(e),r):l.filter(e=>E.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=I["editStore"],t=F["afterFullData"],l=o.value,{args:e,row:r}=e.actived;return e&&-1<E.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=I["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 h(null,e)},clearSelected(){var e=I["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=I["editStore"];return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),R.setEditRow(e)},setEditRow(e,t){var l=F["visibleColumn"];let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(r=_xeUtils.default.isString(t)?E.getColumnByField(t):t),E.setEditCell(e,r)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),R.setEditCell(e,t)},setEditCell(t,e){var l=b["editConfig"];const r=_xeUtils.default.isString(e)?E.getColumnByField(e):e;return t&&r&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(r.editRender)?E.scrollToRow(t,r).then(()=>{var e=E.getCellElement(t,r);return e&&(m.handleEdit({row:t,rowIndex:E.getRowIndex(t),column:r,columnIndex:E.getColumnIndex(r),cell:e,$table:E}),F._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell(e,t){var l=I["tableData"],r=f.value,t=_xeUtils.default.isString(t)?E.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=E.findRowIndexOf(l,e))&&t&&(l=E.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:E.getColumnIndex(t),cell:l},E.handleSelected(e,{})),(0,_vue.nextTick)()}},m={handleEdit(t,l){var{editConfig:e,mouseConfig:r}=b,{editStore:o,tableColumn:n}=I,a=f.value,i=a["mode"],{actived:o,focused:d}=o;const{row:s,column:c}=t;var u=c["editRender"],v=t.cell||E.getCellElement(s,c),g=a.beforeEditMethod||a.activeMethod;if((t.cell=v)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(u)&&!E.isPendingByRow(s)){if(o.row!==s||"cell"===i&&o.column!==c){let e="edit-disabled";if(!g||g(Object.assign(Object.assign({},t),{$table:E,$grid:E.xegrid}))){r&&(R.clearSelected(),E.clearCellAreas)&&(E.clearCellAreas(),E.clearCopyCellArea()),E.closeTooltip(),o.column&&h(l),e="edit-activated",c.renderHeight=v.offsetHeight,o.args=t,o.row=s,o.column=c,"row"===i?n.forEach(e=>p(s,e)):p(s,c);const w=a.afterEditMethod;(0,_vue.nextTick)(()=>{m.handleFocus(t,l),w&&w(Object.assign(Object.assign({},t),{$table:E,$grid:E.xegrid}))})}E.dispatchEvent(e,{row:s,rowIndex:E.getRowIndex(s),$rowIndex:E.getVMRowIndex(s),column:c,columnIndex:E.getColumnIndex(c),$columnIndex:E.getVMColumnIndex(c)},l),"edit-activated"===e&&E.dispatchEvent("edit-actived",{row:s,rowIndex:E.getRowIndex(s),$rowIndex:E.getVMRowIndex(s),column:c,columnIndex:E.getColumnIndex(c),$columnIndex:E.getVMColumnIndex(c)},l)}else{e=o["column"];r&&(R.clearSelected(),E.clearCellAreas)&&(E.clearCellAreas(),E.clearCopyCellArea()),e!==c&&(u=e["model"],u.update&&(0,_util.setCellValue)(s,e,u.value),E.clearValidate)&&E.clearValidate(s,c),c.renderHeight=v.offsetHeight,o.args=t,o.column=c,setTimeout(()=>{m.handleFocus(t,l)})}d.column=null,d.row=null,E.focus()}return(0,_vue.nextTick)()},handleActived(e,t){return m.handleEdit(e,t)},handleClearEdit:h,handleFocus(r){var{row:o,column:n,cell:a}=r,i=n["editRender"],d=f.value;if((0,_utils.isEnableConf)(i)){var s=renderer.get(i.name);let e=i.autofocus||i.autoFocus,t=i.autoSelect||i.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&&((i=l.createTextRange()).collapse(!1),i.select()):d.autoPos&&!n.fixed&&E.scrollToRow(o,n)}},handleSelected(e,t){var l=b["mouseConfig"],r=I["editStore"],o=u.value;const n=f.value,{actived:a,selected:i}=r,{row:d,column:s}=e,c=l&&o.selected;return!c||i.row===d&&i.column===s||(a.row!==d||"cell"===n.mode&&a.column!==s)&&(h(t),R.clearSelected(),E.clearCellAreas&&(E.clearCellAreas(),E.clearCopyCellArea()),i.args=e,i.row=d,i.column=s,c&&m.addCellSelectedClass(),E.focus(),t)&&E.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=I["editStore"],e=e["selected"],{row:e,column:t}=e;l(),e&&t&&(e=E.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},R),m)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
|
|
1
|
+
"use strict";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}}const{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(E){const{props:b,reactData:I,internalData:A}=E,o=E.getRefMaps()["refElem"],{computeMouseOpts:u,computeEditOpts:f,computeCheckboxOpts:x,computeTreeOpts:F,computeValidOpts:s}=E.getComputeMaps();let R={},m={};const h=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},n=(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 c(){var{editStore:e,tableColumn:t}=I,l=f.value,e=e["actived"];const{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>n(r,e)):n(r,o))}function S(e,t){const{tableFullTreeData:a,afterFullData:i,fullDataRowIdData:d,fullAllDataRowIdData:s}=A;var l=F.value;const{rowField:c,parentField:u,mapChildrenField:v}=l,g=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{const t=l[u];var r=(0,_util.getRowid)(E,l),o=t?_xeUtils.default.findTree(a,e=>t===e[c],{children:v}):null;if(o){var o=o["item"],n=s[(0,_util.getRowid)(E,o)],n=n?n.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,items:e,parent:o,level:n+1,height:0};d[r]=o,s[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),i[w](l),a[w](l);n={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0,height:0};d[r]=n,s[r]=n}})}const d=(t,l,o)=>{const n=b["treeConfig"];var{mergeList:e,editStore:r}=I;const{tableFullTreeData:a,afterFullData:i,tableFullData:d,fullDataRowIdData:s,fullAllDataRowIdData:c}=A,u=F.value,{transform:v,rowField:g,mapChildrenField:w}=u,f=u.children||u.childrenField,m=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(E.defineField(t.map(e=>Object.assign(n&&v?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))n&&v?S(m,!1):(m.forEach(e=>{var t=(0,_util.getRowid)(E,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,items:i,parent:null,level:0,height:0};s[t]=l,c[t]=l,i.unshift(e),d.unshift(e)}),e.forEach(e=>{var t=e["row"];0<t&&(e.row=t+m.length)}));else if(-1===l)n&&v?S(m,!0):(m.forEach(e=>{var t=(0,_util.getRowid)(E,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,items:i,parent:null,level:0,height:0};s[t]=l,c[t]=l,i.push(e),d.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>i.length&&(e.rowspan=l+m.length)}));else if(n&&v){const x=_xeUtils.default.findTree(a,e=>l[g]===e[g],{children:w});if(x){const R=x["parent"],C=R?R[w]:a;t=c[(0,_util.getRowid)(E,R)];const _=t?t.level:0;if(m.forEach((e,t)=>{var l=(0,_util.getRowid)(E,e);"development"===process.env.NODE_ENV&&e[u.parentField]&&R&&e[u.parentField]!==R[g]&&(0,_log.errLog)("vxe.error.errProp",[u.parentField+"="+e[u.parentField],u.parentField+"="+R[g]]),R&&(e[u.parentField]=R[g]);let r=x.index+t;o&&(r+=1),C.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,items:C,parent:R,level:_+1,height:0};s[l]=t,c[l]=t}),R){t=_xeUtils.default.findTree(a,e=>l[g]===e[g],{children:f});if(t){var h=t.items;let e=t.index;o&&(e+=1),h.splice(e,0,...m)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),S(m,!0)}else{if(n)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<i.length&&(r=l):r=E.findRowIndexOf(i,l),-1===(r=o?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...m),d.splice(E.findRowIndexOf(d,l),0,...m),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+m.length:t+l>r&&(e.rowspan=l+m.length)})}const p=r["insertMaps"];return m.forEach(e=>{var t=(0,_util.getRowid)(E,e);p[t]=e}),E.cacheRowMap(),E.updateScrollYStatus(),E.handleTableData(n&&v),n&&v||E.updateAfterDataIndex(),E.updateFooter(),E.checkSelectionStatus(),I.scrollYLoad&&E.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(E.updateCellAreas(),E.recalculate())).then(()=>({row:m.length?m[m.length-1]:null,rows:m}))},r=(e,t,l,r)=>{var o=b["treeConfig"];const{transform:n,rowField:a,parentField:i}=F.value;return o&&n?(_xeUtils.default.isArray(e)||(e=[e]),d(e.map(e=>Object.assign({},e,{[i]: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)=>{const l=b["mouseConfig"];var r=I["editStore"],{actived:r,focused:o}=r,{row:n,column:a}=r,i=s.value;const d=u.value;if(n||a){if(t&&(0,_util.getRowid)(E,t)!==(0,_util.getRowid)(E,n))return(0,_vue.nextTick)();c(),r.args=null,r.row=null,r.column=null,E.updateFooter(),E.dispatchEvent("edit-closed",{row:n,rowIndex:E.getRowIndex(n),$rowIndex:E.getVMRowIndex(n),column:a,columnIndex:E.getColumnIndex(a),$columnIndex:E.getVMColumnIndex(a)},e||null)}return(0,_vue.nextTick)(()=>{if(l&&d.area&&E.handleRecalculateCellAreas)return E.handleRecalculateCellAreas()}),i.autoClear&&("full"!==i.msgMode||"obsolete"===getConfig().cellVaildMode)&&E.clearValidate?E.clearValidate():(o.row=null,(o.column=null,_vue.nextTick)())};return R={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=b["treeConfig"];const{mergeList:l,editStore:r,selectCheckboxMaps:o}=I,{tableFullTreeData:n,afterFullData:a,tableFullData:i}=A;var d=x.value,s=F.value;const{transform:c,mapChildrenField:u}=s,v=s.children||s.childrenField,{actived:g,removeMaps:w}=r,f=Object.assign({},r.insertMaps),m=Object.assign({},I.pendingRowMaps);s=d.checkField;let h=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=i,e.forEach(e=>{var t;E.isInsertByRow(e)||(t=(0,_util.getRowid)(E,e),w[t]=e)}),!s){const p=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(E,e);p[e]&&delete p[e]}),I.selectCheckboxMaps=p}return i===e?(e=h=i.slice(0),A.tableFullData=[],A.afterFullData=[],E.clearMergeCells()):t&&c?e.forEach(e=>{const t=(0,_util.getRowid)(E,e);var l=_xeUtils.default.findTree(n,e=>t===(0,_util.getRowid)(E,e),{children:u}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(n,e=>t===(0,_util.getRowid)(E,e),{children:v})),l=(l&&l.items.splice(l.index,1),E.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=E.findRowIndexOf(i,e);-1<t&&(t=i.splice(t,1),h.push(t[0]));const r=E.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))}),g.row&&-1<E.findRowIndexOf(e,g.row)&&R.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(E,e);f[e]&&delete f[e],m[e]&&delete m[e]}),r.insertMaps=f,I.pendingRowMaps=m,E.updateFooter(),E.cacheRowMap(),E.handleTableData(t&&c),t&&c||E.updateAfterDataIndex(),E.checkSelectionStatus(),I.scrollYLoad&&E.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(E.updateCellAreas(),E.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},removeCheckboxRow(){return R.remove(E.getCheckboxRecords()).then(e=>(E.clearCheckboxRow(),e))},removeRadioRow(){var e=E.getRadioRecord();return R.remove(e||[]).then(e=>(E.clearRadioRow(),e))},removeCurrentRow(){var e=E.getCurrentRecord();return R.remove(e||[]).then(e=>(E.clearCurrentRow(),e))},getRecordset(){var e=R.getRemoveRecords(),t=E.getPendingRecords();const l=e.concat(t);var r=R.getUpdateRecords().filter(t=>!l.some(e=>E.eqRow(e,t)));return{insertRecords:R.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=I["editStore"];const l=A["fullAllDataRowIdData"];e=e.insertMaps;const r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=I["editStore"],e=e["removeMaps"];const t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=b,l=A["tableFullData"],r=F.value;return e?(c(),t?_xeUtils.default.filterTree(l,e=>E.isUpdateByRow(e),r):l.filter(e=>E.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=I["editStore"],t=A["afterFullData"],l=o.value,{args:e,row:r}=e.actived;return e&&-1<E.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=I["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=I["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=I["editStore"];return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),R.setEditRow(e)},setEditRow(e,t){var l=A["visibleColumn"];let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(r=_xeUtils.default.isString(t)?E.getColumnByField(t):t),E.setEditCell(e,r)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),R.setEditCell(e,t)},setEditCell(t,e){var l=b["editConfig"];const r=_xeUtils.default.isString(e)?E.getColumnByField(e):e;return t&&r&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(r.editRender)?E.scrollToRow(t,r).then(()=>{var e=E.getCellElement(t,r);return e&&(m.handleEdit({row:t,rowIndex:E.getRowIndex(t),column:r,columnIndex:E.getColumnIndex(r),cell:e,$table:E}),A._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell(e,t){var l=I["tableData"],r=f.value,t=_xeUtils.default.isString(t)?E.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=E.findRowIndexOf(l,e))&&t&&(l=E.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:E.getColumnIndex(t),cell:l},E.handleSelected(e,{})),(0,_vue.nextTick)()}},m={handleEdit(t,l){var{editConfig:e,mouseConfig:r}=b,{editStore:o,tableColumn:n}=I,a=f.value,i=a["mode"],{actived:o,focused:d}=o;const{row:s,column:c}=t;var u=c["editRender"],v=t.cell||E.getCellElement(s,c),g=a.beforeEditMethod||a.activeMethod;if((t.cell=v)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(u)&&!E.isPendingByRow(s)){if(o.row!==s||"cell"===i&&o.column!==c){let e="edit-disabled";if(!g||g(Object.assign(Object.assign({},t),{$table:E,$grid:E.xegrid}))){r&&(R.clearSelected(),E.clearCellAreas)&&(E.clearCellAreas(),E.clearCopyCellArea()),E.closeTooltip(),o.column&&p(l),e="edit-activated",c.renderHeight=v.offsetHeight,o.args=t,o.row=s,o.column=c,"row"===i?n.forEach(e=>h(s,e)):h(s,c);const w=a.afterEditMethod;(0,_vue.nextTick)(()=>{m.handleFocus(t,l),w&&w(Object.assign(Object.assign({},t),{$table:E,$grid:E.xegrid}))})}E.dispatchEvent(e,{row:s,rowIndex:E.getRowIndex(s),$rowIndex:E.getVMRowIndex(s),column:c,columnIndex:E.getColumnIndex(c),$columnIndex:E.getVMColumnIndex(c)},l),"edit-activated"===e&&E.dispatchEvent("edit-actived",{row:s,rowIndex:E.getRowIndex(s),$rowIndex:E.getVMRowIndex(s),column:c,columnIndex:E.getColumnIndex(c),$columnIndex:E.getVMColumnIndex(c)},l)}else{e=o["column"];r&&(R.clearSelected(),E.clearCellAreas)&&(E.clearCellAreas(),E.clearCopyCellArea()),e!==c&&(u=e["model"],u.update&&(0,_util.setCellValue)(s,e,u.value),E.clearValidate)&&E.clearValidate(s,c),c.renderHeight=v.offsetHeight,o.args=t,o.column=c,setTimeout(()=>{m.handleFocus(t,l)})}d.column=null,d.row=null,E.focus()}return(0,_vue.nextTick)()},handleActived(e,t){return m.handleEdit(e,t)},handleClearEdit:p,handleFocus(r){var{row:o,column:n,cell:a}=r,i=n["editRender"],d=f.value;if((0,_utils.isEnableConf)(i)){var s=renderer.get(i.name);let e=i.autofocus||i.autoFocus,t=i.autoSelect||i.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&&((i=l.createTextRange()).collapse(!1),i.select()):d.autoPos&&!n.fixed&&E.scrollToRow(o,n)}},handleSelected(e,t){var l=b["mouseConfig"],r=I["editStore"],o=u.value;const n=f.value,{actived:a,selected:i}=r,{row:d,column:s}=e,c=l&&o.selected;return!c||i.row===d&&i.column===s||(a.row!==d||"cell"===n.mode&&a.column!==s)&&(p(t),R.clearSelected(),E.clearCellAreas&&(E.clearCellAreas(),E.clearCopyCellArea()),i.args=e,i.row=d,i.column=s,c&&m.addCellSelectedClass(),E.focus(),t)&&E.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=I["editStore"],e=e["selected"],{row:e,column:t}=e;l(),e&&t&&(e=E.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},R),m)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
|
|
@@ -324,6 +324,9 @@ hooks.add('tableExportModule', {
|
|
|
324
324
|
const toBooleanValue = cellValue => {
|
|
325
325
|
return _xeUtils.default.isBoolean(cellValue) ? cellValue ? 'TRUE' : 'FALSE' : cellValue;
|
|
326
326
|
};
|
|
327
|
+
const toStringValue = cellValue => {
|
|
328
|
+
return (0, _utils.eqEmptyValue)(cellValue) ? '' : `${cellValue}`;
|
|
329
|
+
};
|
|
327
330
|
const getBodyLabelData = (opts, columns, datas) => {
|
|
328
331
|
const {
|
|
329
332
|
isAllExpand,
|
|
@@ -401,7 +404,7 @@ hooks.add('tableExportModule', {
|
|
|
401
404
|
if (opts.original) {
|
|
402
405
|
cellValue = (0, _util.getCellValue)(row, column);
|
|
403
406
|
} else {
|
|
404
|
-
cellValue =
|
|
407
|
+
cellValue = $xeTable.getCellLabel(row, column);
|
|
405
408
|
if (column.type === 'html') {
|
|
406
409
|
htmlCellElem.innerHTML = cellValue;
|
|
407
410
|
cellValue = htmlCellElem.innerText.trim();
|
|
@@ -414,7 +417,7 @@ hooks.add('tableExportModule', {
|
|
|
414
417
|
}
|
|
415
418
|
}
|
|
416
419
|
}
|
|
417
|
-
item[column.id] =
|
|
420
|
+
item[column.id] = toStringValue(cellValue);
|
|
418
421
|
});
|
|
419
422
|
expandMaps.set(row, 1);
|
|
420
423
|
rest.push(Object.assign(item, row));
|
|
@@ -471,7 +474,7 @@ hooks.add('tableExportModule', {
|
|
|
471
474
|
if (opts.original) {
|
|
472
475
|
cellValue = (0, _util.getCellValue)(row, column);
|
|
473
476
|
} else {
|
|
474
|
-
cellValue =
|
|
477
|
+
cellValue = $xeTable.getCellLabel(row, column);
|
|
475
478
|
if (column.type === 'html') {
|
|
476
479
|
htmlCellElem.innerHTML = cellValue;
|
|
477
480
|
cellValue = htmlCellElem.innerText.trim();
|
|
@@ -484,7 +487,7 @@ hooks.add('tableExportModule', {
|
|
|
484
487
|
}
|
|
485
488
|
}
|
|
486
489
|
}
|
|
487
|
-
item[column.id] =
|
|
490
|
+
item[column.id] = toStringValue(cellValue);
|
|
488
491
|
});
|
|
489
492
|
return item;
|
|
490
493
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";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}}const{getI18n,hooks,renderer}=_ui.VxeUI;let htmlCellElem;const csvBOM="\ufeff",enterSymbol="\r\n";function defaultFilterExportColumn(e){return e.field||-1<["seq","checkbox","radio"].indexOf(e.type)}const getConvertColumns=e=>{const 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;const o=(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=>{o(e,l),t+=e._colSpan}),l._colSpan=t}else l._colSpan=1},l=(e.forEach(e=>{e._level=1,o(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){const 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,o){t=t.split(enterSymbol);const r=[];let a=[];if(t.length){const s={},i=Date.now();t.forEach(e=>{if(e){const l={};e=(e=e.replace(/("")|(\n)/g,(e,t)=>{var l=getTxtCellKey(i);return s[l]=t?'"':"\n",l}).replace(/"(.*?)"/g,(e,t)=>{var l=getTxtCellKey(i);return s[l]=replaceTxtCell(t,s),l})).split(o);a.length?(e.forEach((e,t)=>{t<a.length&&(l[a[t]]=getTxtCellValue(e.trim(),s))}),r.push(l)):a=e.map(e=>getTxtCellValue(e.trim(),s))}})}return{fields:a,rows:r}}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");const o=[],r=[];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=>{r.push(e.textContent)})}),(l=getElementsByTagName(t[0],"tbody")).length)&&_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{const l={};_xeUtils.default.arrayEach(getElementsByTagName(e,"td"),(e,t)=>{r[t]&&(l[r[t]]=e.textContent||"")}),o.push(l)}),{fields:r,rows:o}}function parseXML(e,t){var t=getElementsByTagName((new DOMParser).parseFromString(t,"application/xml"),"Worksheet");const o=[],r=[];return t.length&&(t=getElementsByTagName(t[0],"Table")).length&&(t=getElementsByTagName(t[0],"Row")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(t[0],"Cell"),e=>{r.push(e.textContent)}),_xeUtils.default.arrayEach(t,(e,t)=>{if(t){const l={};t=getElementsByTagName(e,"Cell");_xeUtils.default.arrayEach(t,(e,t)=>{r[t]&&(l[r[t]]=e.textContent)}),o.push(l)}})),{fields:r,rows:o}}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){const l=[];return e.forEach(e=>{e=e.field;e&&l.push(e)}),t.some(e=>-1<l.indexOf(e))}const tableExportMethodKeys=["exportData","importByFile","importData","saveFile","readFile","print","getPrintHtml","openImport","closeImport","openExport","closeExport","openPrint","closePrint"];hooks.add("tableExportModule",{setupTable(E){const{props:k,reactData:M,internalData:U}=E,{computeTreeOpts:I,computePrintOpts:a,computeExportOpts:j,computeImportOpts:d,computeCustomOpts:_,computeSeqOpts:s,computeRadioOpts:o,computeCheckboxOpts:i,computeColumnOpts:n}=E.getComputeMaps(),D=(0,_vue.inject)("$xeGrid",null),f=(e,t,l,o,r)=>{var a=s.value.seqMethod||o.seqMethod;return a?a({row:t,rowIndex:E.getRowIndex(t),$rowIndex:l,column:o,columnIndex:E.getColumnIndex(o),$columnIndex:r}):e};function C(e,t){var l=n.value,l=t.headerExportMethod||l.headerExportMethod;return l?l({column:t,options:e,$table:E}):(e.original?t.field:t.getTitle())||""}const v=e=>_xeUtils.default.isBoolean(e)?e?"TRUE":"FALSE":e,c=(c,r,e)=>{const{isAllExpand:a,mode:u}=c;var t=k["treeConfig"];const p=o.value,m=i.value;var l=I.value;const h=n.value;if(htmlCellElem=htmlCellElem||document.createElement("div"),t){t=l.children||l.childrenField;const x=[],g=new Map;return _xeUtils.default.eachTree(e,(s,i,e,n,t,l)=>{const d=s._row||s;var o,s=t&&t._row?t._row:t;if(a||!s||g.has(s)&&E.isTreeExpandByRow(s)){t=d,o=(o=I.value).children||o.childrenField;t=t[o]&&t[o].length;const s={_row:d,_level:l.length-1,_hasChild:t,_expand:t&&E.isTreeExpandByRow(d)};r.forEach((e,t)=>{let l="";var o=e.editRender||e.cellRender;let r=e.exportMethod||h.exportMethod;if(r=(r=!r&&o&&o.name&&(o=renderer.get(o.name))?o.tableExportMethod||o.exportMethod:r)||h.exportMethod)l=r({$table:E,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"===u?a:f(a,d,i,e,t);break;case"checkbox":l=v(E.isCheckedByCheckboxRow(d)),s._checkboxLabel=m.labelField?_xeUtils.default.get(d,m.labelField):"",s._checkboxDisabled=m.checkMethod&&!m.checkMethod({row:d});break;case"radio":l=v(E.isCheckedByRadioRow(d)),s._radioLabel=p.labelField?_xeUtils.default.get(d,p.labelField):"",s._radioDisabled=p.checkMethod&&!p.checkMethod({row:d});break;default:c.original?l=(0,_util.getCellValue)(d,e):(l=""+E.getCellLabel(d,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=E.getCellElement(d,e))&&(l=a.innerText.trim()))}s[e.id]=_xeUtils.default.toValueString(l)}),g.set(d,1),x.push(Object.assign(s,d))}},{children:t}),x}return e.map((s,i)=>{const n={_row:s};return r.forEach((e,t)=>{let l="";var o=e.editRender||e.cellRender;let r=e.exportMethod||h.exportMethod;if(r=!r&&o&&o.name&&(o=renderer.get(o.name))?o.tableExportMethod||o.exportMethod:r)l=r({$table:E,row:s,column:e,options:c});else switch(e.type){case"seq":var a=i+1;l="all"===u?a:f(a,s,i,e,t);break;case"checkbox":l=v(E.isCheckedByCheckboxRow(s)),n._checkboxLabel=m.labelField?_xeUtils.default.get(s,m.labelField):"",n._checkboxDisabled=m.checkMethod&&!m.checkMethod({row:s});break;case"radio":l=v(E.isCheckedByRadioRow(s)),n._radioLabel=p.labelField?_xeUtils.default.get(s,p.labelField):"",n._radioDisabled=p.checkMethod&&!p.checkMethod({row:s});break;default:c.original?l=(0,_util.getCellValue)(s,e):(l=""+E.getCellLabel(s,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=E.getCellElement(s,e))&&(l=a.innerText.trim()))}n[e.id]=_xeUtils.default.toValueString(l)}),n})},T=(e,t,l)=>{var o=n.value,r=l.editRender||l.cellRender;let a=l.footerExportMethod;a=(a=!a&&r&&r.name&&(r=renderer.get(r.name))?r.tableFooterExportMethod||r.footerExportMethod:a)||o.footerExportMethod;r=E.getVTColumnIndex(l);return a?a({$table:E,items:t,itemIndex:r,row:t,_columnIndex:r,column:l,options:e}):_xeUtils.default.isArray(t)?_xeUtils.default.toValueString(t[r]):_xeUtils.default.get(t,l.field)},u=(l,e,t)=>{let o=csvBOM;return l.isHeader&&(o+=e.map(e=>toTxtCellLabel(C(l,e))).join(",")+enterSymbol),t.forEach(t=>{o+=e.map(e=>toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))).join(",")+enterSymbol}),l.isFooter&&(t=M["footerTableData"],getFooterData(l,t).forEach(t=>{o+=e.map(e=>toTxtCellLabel(T(l,t,e))).join(",")+enterSymbol})),o},p=(l,e,t)=>{let o="";return l.isHeader&&(o+=e.map(e=>toTxtCellLabel(C(l,e))).join("\t")+enterSymbol),t.forEach(t=>{o+=e.map(e=>toTxtCellLabel(t[e.id])).join("\t")+enterSymbol}),l.isFooter&&(t=M["footerTableData"],getFooterData(l,t).forEach(t=>{o+=e.map(e=>toTxtCellLabel(T(l,t,e))).join("\t")+enterSymbol})),o},F=(e,t,l)=>{e=e[t],t=_xeUtils.default.isUndefined(e)||_xeUtils.default.isNull(e)?l:e;let o="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;var{scrollXLoad:l,scrollYLoad:e}=M;return o=l||e?o||!0:o},m=(i,e,t)=>{const{id:d,border:l,treeConfig:o,headerAlign:n,align:c,footerAlign:a,showOverflow:u,showHeaderOverflow:p}=k,{isAllSelected:m,isIndeterminate:r,mergeList:h}=M,s=I.value,{print:x,isHeader:g,isFooter:f,isColgroup:v,isMerge:b,colgroups:_,original:y}=i,$="check-all";const 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=F(t,"showHeaderOverflow",p)?["col--ellipsis"]:[],o=C(i,t);let r=0,a=0;_xeUtils.default.eachTree([t],e=>{e.childNodes&&t.childNodes.length||a++,r+=e.renderWidth},{children:"childNodes"});var s=r-a;return e&&l.push("col--"+e),"checkbox"===t.type?`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}"><div ${x?"":`style="width: ${s}px"`}><input type="checkbox" class="${$}" ${m?"checked":""}><span>${o}</span></div></th>`:`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}" title="${o}"><div ${x?"":`style="width: ${s}px"`}><span>${(0,_utils.formatText)(o,!0)}</span></div></th>`}).join("")}</tr>`)}):w.push(`<tr>${e.map(e=>{var t=e.headerAlign||e.align||n||c,l=F(e,"showHeaderOverflow",p)?["col--ellipsis"]:[],o=C(i,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>${o}</span></div></th>`:`<th class="${l.join(" ")}" title="${o}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><span>${(0,_utils.formatText)(o,!0)}</span></div></th>`}).join("")}</tr>`),w.push("</thead>")),t.length&&(w.push("<tbody>"),o?t.forEach(r=>{w.push("<tr>"+e.map(t=>{var e=t.align||c,l=F(t,"showOverflow",u)?["col--ellipsis"]:[],o=r[t.id];if(e&&l.push("col--"+e),t.treeNode){let e="";return r._hasChild&&(e=`<i class="${r._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="${o}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${r._level*s.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${d}" ${r._radioDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${r._radioLabel}</span></div></div></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}" title="${o}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${r._level*s.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${r._checkboxDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${r._checkboxLabel}</span></div></div></div></td>`:`<td class="${l.join(" ")}" title="${o}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${r._level*s.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell">${o}</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}" ${r._radioDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${r._radioLabel}</span></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><input type="checkbox" ${r._checkboxDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${r._checkboxLabel}</span></div></td>`:`<td class="${l.join(" ")}" title="${o}"><div ${x?"":`style="width: ${t.renderWidth}px"`}>${(0,_utils.formatText)(o,!0)}</div></td>`}).join("")+"</tr>")}):t.forEach(n=>{w.push("<tr>"+e.map(e=>{var t=e.align||c,l=F(e,"showOverflow",u)?["col--ellipsis"]:[],o=n[e.id];let r=1,a=1;if(b&&h.length){var s=E.getVTRowIndex(n._row),i=E.getVTColumnIndex(e),s=(0,_util.mergeBodyMethod)(h,s,i);if(s){var{rowspan:i,colspan:s}=s;if(!i||!s)return"";1<i&&(r=i),1<s&&(a=s)}}return t&&l.push("col--"+t),"radio"===e.type?`<td class="${l.join(" ")}" rowspan="${r}" colspan="${a}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><input type="radio" name="radio_${d}" ${n._radioDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${n._radioLabel}</span></div></td>`:"checkbox"===e.type?`<td class="${l.join(" ")}" rowspan="${r}" colspan="${a}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><input type="checkbox" ${n._checkboxDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${n._checkboxLabel}</span></div></td>`:`<td class="${l.join(" ")}" rowspan="${r}" colspan="${a}" title="${o}"><div ${x?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(o,!0)}</div></td>`}).join("")+"</tr>")}),w.push("</tbody>")),f&&(t=M["footerTableData"],(t=getFooterData(i,t)).length)&&(w.push("<tfoot>"),t.forEach(r=>{w.push(`<tr>${e.map(e=>{var t=e.footerAlign||e.align||a||c,l=F(e,"showOverflow",u)?["col--ellipsis"]:[],o=T(i,r,e);return t&&l.push("col--"+t),`<td class="${l.join(" ")}" title="${o}"><div ${x?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(o,!0)}</div></td>`}).join("")}</tr>`)}),w.push("</tfoot>"));t=!m&&r?`<script>(function(){var a=document.querySelector(".${$}");if(a){a.indeterminate=true}})()</script>`:"";return w.push("</table>",t),x?w.join(""):(0,_util2.createHtmlPage)(i,w.join(""))},h=(l,e,t)=>{let o=['<?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&&(o+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${C(l,e)}</Data></Cell>`).join("")}</Row>`),t.forEach(t=>{o+="<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=>{o+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${T(l,t,e)}</Data></Cell>`).join("")}</Row>`})),o+"</Table></Worksheet></Workbook>"},N=s=>{const{remote:l,columns:i,colgroups:o,exportMethod:r,afterExportMethod:t}=s;return new Promise(e=>{if(l){var t={options:s,$table:E,$grid:D};e(r?r(t):t)}else{const a=(e=>{const{columns:t,dataFilterMethod:l}=e;let o=e.data;return l&&(o=o.filter((e,t)=>l({row:e,$rowIndex:t}))),c(e,t,o)})(s);e(E.preventEvent(null,"event.export",{options:s,columns:i,colgroups:o,datas:a},()=>{var e=s,t=((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""})(s,i,a),{filename:l,type:o,download:r}=e;if(!r)return r=(0,_util2.getExportBlobByContent)(t,e),Promise.resolve({type:o,content:t,blob:r});_ui.VxeUI.saveFile&&_ui.VxeUI.saveFile({filename:l,type:o,content:t}).then(()=>{!1!==e.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.expSuccess"),status:"success"})})}))}}).then(e=>(clearColumnConvert(i),s.print||t&&t({status:!0,options:s,$table:E,$grid:D}),Object.assign({status:!0},e))).catch(()=>{clearColumnConvert(i),s.print||t&&t({status:!1,options:s,$table:E,$grid:D});return Promise.reject({status:!1})})},x=(a,s)=>{const{importMethod:i,afterImportMethod:t}=s,{type:n,filename:c}=(0,_utils.parseFile)(a);var e=d.value;return i||_xeUtils.default.includes(_xeUtils.default.keys(e._typeMaps),n)?new Promise((t,l)=>{const e=e=>{t(e),U._importResolve=null,U._importReject=null},o=e=>{l(e),U._importResolve=null,U._importReject=null};if(U._importResolve=e,U._importReject=o,window.FileReader){const d=Object.assign({mode:"insertTop"},s,{type:n,filename:c});var r;d.remote?i?Promise.resolve(i({file:a,options:d,$table:E})).then(()=>{e({status:!0})}).catch(()=>{e({status:!0})}):e({status:!0}):(r=U["tableFullColumn"],E.preventEvent(null,"event.import",{file:a,options:d,columns:r},()=>{var e=new FileReader;e.onerror=()=>{(0,_log.errLog)("vxe.error.notType",[n]),o({status:!1})},e.onload=t=>{{var l=t.target.result,o=d;const{tableFullColumn:r,_importResolve:a,_importReject:s}=U;let e={fields:[],rows:[]};switch(o.type){case"csv":e=parseCsv(r,l);break;case"txt":e=parseTxt(r,l);break;case"html":e=parseHTML(r,l);break;case"xml":e=parseXML(r,l)}const{fields:i,rows:n}=e;checkImportData(r,i)?E.createData(n).then(e=>{let t;return"insert"!==o.mode&&"insertBottom"!==o.mode||(t=E.insertAt(e,-1)),t="insertTop"===o.mode?E.insert(e):E.reloadData(e),!1!==o.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.impSuccess",[n.length]),status:"success"}),t.then(()=>{a&&a({status:!0})})}):!1!==o.message&&(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.impFields"),status:"error"}),s)&&s({status:!1})}},e.readAsText(a,d.encoding||"UTF-8")}))}else"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notExp"),e({status:!0})}).then(()=>{t&&t({status:!0,options:s,$table:E})}).catch(e=>(t&&t({status:!1,options:s,$table:E}),Promise.reject(e))):(!1!==s.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:o,showFooter:r}=k;const{initStore:a,mergeList:s,isGroup:i,footerTableData:n,exportStore:d,exportParams:c}=M;var u=U["collectColumn"],p=j.value,m=_.value,h=E.getCheckboxRecords(),x=D?D.getComputeMaps().computeProxyOpts.value:{},g=!!n.length,f=!l&&s.length,o=Object.assign({message:!0,isHeader:o,isFooter:r,current:"current",modes:["current","selected"].concat(x.ajax&&x.ajax.queryAll?["all"]:[])},e),r=o.types||_xeUtils.default.keys(p._typeMaps),x=o.modes||[];const v=m.checkMethod;e=u.slice(0);const b=o["columns"];p=r.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),m=x.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.export.modes."+e)});return _xeUtils.default.eachTree(e,(o,e,t,l,r)=>{(o.children&&o.children.length||defaultFilterExportColumn(o))&&(o.checked=b?b.some(e=>{var t,l;return(0,_util.isColumnInfo)(e)?o===e:_xeUtils.default.isString(e)?o.field===e:(t=e.id||e.colId,l=e.type,e=e.field,t?o.id===t:e&&l?o.field===e&&o.type===l:e?o.field===e:!!l&&o.type===l)}):o.visible,o.halfChecked=!1,o.disabled=r&&r.disabled||!!v&&!v({column:o}))}),Object.assign(d,{columns:e,typeList:p,modeList:m,hasFooter:g,hasMerge:f,hasTree:l,isPrint:t,hasColgroup:i,visible:!0}),Object.assign(c,{mode:h.length?"selected":"current"},o),m.some(e=>e.value===c.mode)||(c.mode=m[0].value),p.some(e=>e.value===c.type)||(c.type=p[0].value),a.export=!0,(0,_vue.nextTick)()};var e=()=>_ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_EXPORT_MODAL"):Promise.resolve();const g={exportData(e){var t=k["treeConfig"],{isGroup:l,tableGroupColumn:o}=M;const{tableFullColumn:a,afterFullData:r}=U;var s=j.value,i=I.value;const n=Object.assign({isHeader:!0,isFooter:!0,isColgroup:!0,download:!0,type:"csv",mode:"current"},s,{print:!1},e),{type:d,mode:c,columns:u,original:p,beforeExportMethod:m,includeFields:h,excludeFields:x}=n;let g=[];e=u&&u.length?u:null;let f=n.columnFilterMethod;e||(f=f||(({column:e})=>(!x||!_xeUtils.default.includes(x,e.field))&&(h?!!_xeUtils.default.includes(h,e.field):p?e.field:defaultFilterExportColumn(e)))),g=e?(n._isCustomColumn=!0,_xeUtils.default.searchTree(_xeUtils.default.mapTree(e,e=>{let t;if(e){if((0,_util.isColumnInfo)(e))t=e;else if(_xeUtils.default.isString(e))t=E.getColumnByField(e);else{var l=e.id||e.colId;const o=e.type,r=e.field;l?t=E.getColumnById(l):r&&o?t=a.find(e=>e.field===r&&e.type===o):r?t=E.getColumnByField(r):o&&(t=a.find(e=>e.type===o))}return t||{}}},{children:"childNodes",mapChildren:"_children"}),(e,t)=>(0,_util.isColumnInfo)(e)&&(!f||f({column:e,$columnIndex:t})),{children:"_children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(l?o:a,(e,t)=>e.visible&&(!f||f({column:e,$columnIndex:t})),{children:"children",mapChildren:"childNodes",original:!0});const v=[];if(_xeUtils.default.eachTree(g,e=>{e.children&&e.children.length||v.push(e)},{children:"childNodes"}),n.columns=v,n.colgroups=convertToRows(g),n.filename||(n.filename=getI18n(n.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),n.sheetName||(n.sheetName=document.title),!n.exportMethod&&!_xeUtils.default.includes(_xeUtils.default.keys(s._typeMaps),d))return(0,_log.errLog)("vxe.error.notType",[d]),"development"===process.env.NODE_ENV&&["xlsx","pdf"].includes(d)&&(0,_log.warnLog)("vxe.error.reqPlugin",[4,"plugin-export-xlsx"]),Promise.reject({status:!1});if(n.print||m&&m({options:n,$table:E,$grid:D}),!n.data)if(n.data=[],"selected"===c){const b=E.getCheckboxRecords();-1<["html","pdf"].indexOf(d)&&t?n.data=_xeUtils.default.searchTree(E.getTableData().fullData,e=>-1<E.findRowIndexOf(b,e),Object.assign({},i,{data:"_row"})):n.data=b}else if("all"===c){if("development"!==process.env.NODE_ENV||D||(0,_log.warnLog)("vxe.error.errProp",["all","mode=current,selected"]),D&&!n.remote){e=D["reactData"],l=D.getComputeMaps()["computeProxyOpts"],o=e["sortData"];const{beforeQueryAll:_,afterQueryAll:y,ajax:$={},props:k={}}=l.value;s=$.queryAll;const w=$.queryAllSuccess,C=$.queryAllError;if("development"!==process.env.NODE_ENV||s||(0,_log.warnLog)("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),s){const T={$table:E,$grid:D,sort:o.length?o[0]:{},sorts:o,filters:e.filterData,form:e.formData,options:n};return Promise.resolve((_||s)(T)).then(e=>(n.data=(k.list?_xeUtils.default.get(e,k.list):e)||[],y&&y(T),w&&w(Object.assign(Object.assign({},T),{response:e})),N(n))).catch(e=>{C&&C(Object.assign(Object.assign({},T),{response:e}))})}}}else"current"===c&&(n.data=r);return N(n)},importByFile(e,t){var t=Object.assign({},t),l=t["beforeImportMethod"];return l&&l({options:t,$table:E}),x(e,t)},importData(e){var t=d.value;const l=Object.assign({types:_xeUtils.default.keys(t._typeMaps)},t,e),{beforeImportMethod:o,afterImportMethod:r}=l;return o&&o({options:l,$table:E}),_ui.VxeUI.readFile(l).catch(e=>(r&&r({status:!1,options:l,$table:E}),Promise.reject(e))).then(e=>{e=e.file;return x(e,l)})},saveFile(e){return _ui.VxeUI.saveFile(e)},readFile(e){return _ui.VxeUI.readFile(e)},print(e){var t=a.value;const l=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0}),o=(l.sheetName||(l.sheetName=document.title),l.beforePrintMethod),r=l.html||l.content;return new Promise((e,t)=>{_ui.VxeUI.print?r?e(_ui.VxeUI.print({title:l.sheetName,html:r,customStyle:l.style,beforeMethod:o?({html:e})=>o({html:e,content:e,options:l,$table:E}):void 0})):e(g.exportData(l).then(({content:e})=>_ui.VxeUI.print({title:l.sheetName,html:e,customStyle:l.style,beforeMethod:o?({html:e})=>o({html:e,content:e,options:l,$table:E}):void 0}))):t({status:!1})})},getPrintHtml(e){var t=a.value,t=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});return g.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;const{initStore:o,importStore:r,importParams:a}=M;var s=d.value,s=Object.assign({mode:"insertTop",message:!0,types:_xeUtils.default.keys(s._typeMaps),modes:["insertTop","covering"]},s,e),e=s.types||[],i=s.modes||[];!t?(l||(0,_log.errLog)("vxe.error.reqProp",["import-config"]),t=e.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),l=i.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.import.modes."+e)}),Object.assign(r,{file:null,type:"",filename:"",modeList:l,typeList:t,visible:!0}),Object.assign(a,s),l.some(e=>e.value===a.mode)||(a.mode=l[0].value),o.import=!0):s.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.treeNotImp"),status:"error"})},closeExport:e,openExport(e){var t=j.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=a.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 g},setupGrid(e){return e.extendTableMethods(tableExportMethodKeys)}});
|
|
1
|
+
"use strict";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}}const{getI18n,hooks,renderer}=_ui.VxeUI;let htmlCellElem;const csvBOM="\ufeff",enterSymbol="\r\n";function defaultFilterExportColumn(e){return e.field||-1<["seq","checkbox","radio"].indexOf(e.type)}const getConvertColumns=e=>{const 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;const o=(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=>{o(e,l),t+=e._colSpan}),l._colSpan=t}else l._colSpan=1},l=(e.forEach(e=>{e._level=1,o(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){const 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,o){t=t.split(enterSymbol);const r=[];let a=[];if(t.length){const s={},i=Date.now();t.forEach(e=>{if(e){const l={};e=(e=e.replace(/("")|(\n)/g,(e,t)=>{var l=getTxtCellKey(i);return s[l]=t?'"':"\n",l}).replace(/"(.*?)"/g,(e,t)=>{var l=getTxtCellKey(i);return s[l]=replaceTxtCell(t,s),l})).split(o);a.length?(e.forEach((e,t)=>{t<a.length&&(l[a[t]]=getTxtCellValue(e.trim(),s))}),r.push(l)):a=e.map(e=>getTxtCellValue(e.trim(),s))}})}return{fields:a,rows:r}}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");const o=[],r=[];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=>{r.push(e.textContent)})}),(l=getElementsByTagName(t[0],"tbody")).length)&&_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{const l={};_xeUtils.default.arrayEach(getElementsByTagName(e,"td"),(e,t)=>{r[t]&&(l[r[t]]=e.textContent||"")}),o.push(l)}),{fields:r,rows:o}}function parseXML(e,t){var t=getElementsByTagName((new DOMParser).parseFromString(t,"application/xml"),"Worksheet");const o=[],r=[];return t.length&&(t=getElementsByTagName(t[0],"Table")).length&&(t=getElementsByTagName(t[0],"Row")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(t[0],"Cell"),e=>{r.push(e.textContent)}),_xeUtils.default.arrayEach(t,(e,t)=>{if(t){const l={};t=getElementsByTagName(e,"Cell");_xeUtils.default.arrayEach(t,(e,t)=>{r[t]&&(l[r[t]]=e.textContent)}),o.push(l)}})),{fields:r,rows:o}}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){const l=[];return e.forEach(e=>{e=e.field;e&&l.push(e)}),t.some(e=>-1<l.indexOf(e))}const tableExportMethodKeys=["exportData","importByFile","importData","saveFile","readFile","print","getPrintHtml","openImport","closeImport","openExport","closeExport","openPrint","closePrint"];hooks.add("tableExportModule",{setupTable(E){const{props:k,reactData:M,internalData:I}=E,{computeTreeOpts:j,computePrintOpts:a,computeExportOpts:U,computeImportOpts:d,computeCustomOpts:_,computeSeqOpts:s,computeRadioOpts:o,computeCheckboxOpts:i,computeColumnOpts:n}=E.getComputeMaps(),D=(0,_vue.inject)("$xeGrid",null),f=(e,t,l,o,r)=>{var a=s.value.seqMethod||o.seqMethod;return a?a({row:t,rowIndex:E.getRowIndex(t),$rowIndex:l,column:o,columnIndex:E.getColumnIndex(o),$columnIndex:r}):e};function C(e,t){var l=n.value,l=t.headerExportMethod||l.headerExportMethod;return l?l({column:t,options:e,$table:E}):(e.original?t.field:t.getTitle())||""}const v=e=>_xeUtils.default.isBoolean(e)?e?"TRUE":"FALSE":e,b=e=>(0,_utils.eqEmptyValue)(e)?"":""+e,c=(c,r,e)=>{const{isAllExpand:a,mode:u}=c;var t=k["treeConfig"];const p=o.value,m=i.value;var l=j.value;const h=n.value;if(htmlCellElem=htmlCellElem||document.createElement("div"),t){t=l.children||l.childrenField;const x=[],g=new Map;return _xeUtils.default.eachTree(e,(s,i,e,n,t,l)=>{const d=s._row||s;var o,s=t&&t._row?t._row:t;if(a||!s||g.has(s)&&E.isTreeExpandByRow(s)){t=d,o=(o=j.value).children||o.childrenField;t=t[o]&&t[o].length;const s={_row:d,_level:l.length-1,_hasChild:t,_expand:t&&E.isTreeExpandByRow(d)};r.forEach((e,t)=>{let l="";var o=e.editRender||e.cellRender;let r=e.exportMethod||h.exportMethod;if(r=(r=!r&&o&&o.name&&(o=renderer.get(o.name))?o.tableExportMethod||o.exportMethod:r)||h.exportMethod)l=r({$table:E,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"===u?a:f(a,d,i,e,t);break;case"checkbox":l=v(E.isCheckedByCheckboxRow(d)),s._checkboxLabel=m.labelField?_xeUtils.default.get(d,m.labelField):"",s._checkboxDisabled=m.checkMethod&&!m.checkMethod({row:d});break;case"radio":l=v(E.isCheckedByRadioRow(d)),s._radioLabel=p.labelField?_xeUtils.default.get(d,p.labelField):"",s._radioDisabled=p.checkMethod&&!p.checkMethod({row:d});break;default:c.original?l=(0,_util.getCellValue)(d,e):(l=E.getCellLabel(d,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=E.getCellElement(d,e))&&(l=a.innerText.trim()))}s[e.id]=b(l)}),g.set(d,1),x.push(Object.assign(s,d))}},{children:t}),x}return e.map((s,i)=>{const n={_row:s};return r.forEach((e,t)=>{let l="";var o=e.editRender||e.cellRender;let r=e.exportMethod||h.exportMethod;if(r=!r&&o&&o.name&&(o=renderer.get(o.name))?o.tableExportMethod||o.exportMethod:r)l=r({$table:E,row:s,column:e,options:c});else switch(e.type){case"seq":var a=i+1;l="all"===u?a:f(a,s,i,e,t);break;case"checkbox":l=v(E.isCheckedByCheckboxRow(s)),n._checkboxLabel=m.labelField?_xeUtils.default.get(s,m.labelField):"",n._checkboxDisabled=m.checkMethod&&!m.checkMethod({row:s});break;case"radio":l=v(E.isCheckedByRadioRow(s)),n._radioLabel=p.labelField?_xeUtils.default.get(s,p.labelField):"",n._radioDisabled=p.checkMethod&&!p.checkMethod({row:s});break;default:c.original?l=(0,_util.getCellValue)(s,e):(l=E.getCellLabel(s,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=E.getCellElement(s,e))&&(l=a.innerText.trim()))}n[e.id]=b(l)}),n})},T=(e,t,l)=>{var o=n.value,r=l.editRender||l.cellRender;let a=l.footerExportMethod;a=(a=!a&&r&&r.name&&(r=renderer.get(r.name))?r.tableFooterExportMethod||r.footerExportMethod:a)||o.footerExportMethod;r=E.getVTColumnIndex(l);return a?a({$table:E,items:t,itemIndex:r,row:t,_columnIndex:r,column:l,options:e}):_xeUtils.default.isArray(t)?_xeUtils.default.toValueString(t[r]):_xeUtils.default.get(t,l.field)},u=(l,e,t)=>{let o=csvBOM;return l.isHeader&&(o+=e.map(e=>toTxtCellLabel(C(l,e))).join(",")+enterSymbol),t.forEach(t=>{o+=e.map(e=>toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))).join(",")+enterSymbol}),l.isFooter&&(t=M["footerTableData"],getFooterData(l,t).forEach(t=>{o+=e.map(e=>toTxtCellLabel(T(l,t,e))).join(",")+enterSymbol})),o},p=(l,e,t)=>{let o="";return l.isHeader&&(o+=e.map(e=>toTxtCellLabel(C(l,e))).join("\t")+enterSymbol),t.forEach(t=>{o+=e.map(e=>toTxtCellLabel(t[e.id])).join("\t")+enterSymbol}),l.isFooter&&(t=M["footerTableData"],getFooterData(l,t).forEach(t=>{o+=e.map(e=>toTxtCellLabel(T(l,t,e))).join("\t")+enterSymbol})),o},F=(e,t,l)=>{e=e[t],t=_xeUtils.default.isUndefined(e)||_xeUtils.default.isNull(e)?l:e;let o="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;var{scrollXLoad:l,scrollYLoad:e}=M;return o=l||e?o||!0:o},m=(i,e,t)=>{const{id:d,border:l,treeConfig:o,headerAlign:n,align:c,footerAlign:a,showOverflow:u,showHeaderOverflow:p}=k,{isAllSelected:m,isIndeterminate:r,mergeList:h}=M,s=j.value,{print:x,isHeader:g,isFooter:f,isColgroup:v,isMerge:b,colgroups:_,original:y}=i,$="check-all";const 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=F(t,"showHeaderOverflow",p)?["col--ellipsis"]:[],o=C(i,t);let r=0,a=0;_xeUtils.default.eachTree([t],e=>{e.childNodes&&t.childNodes.length||a++,r+=e.renderWidth},{children:"childNodes"});var s=r-a;return e&&l.push("col--"+e),"checkbox"===t.type?`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}"><div ${x?"":`style="width: ${s}px"`}><input type="checkbox" class="${$}" ${m?"checked":""}><span>${o}</span></div></th>`:`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}" title="${o}"><div ${x?"":`style="width: ${s}px"`}><span>${(0,_utils.formatText)(o,!0)}</span></div></th>`}).join("")}</tr>`)}):w.push(`<tr>${e.map(e=>{var t=e.headerAlign||e.align||n||c,l=F(e,"showHeaderOverflow",p)?["col--ellipsis"]:[],o=C(i,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>${o}</span></div></th>`:`<th class="${l.join(" ")}" title="${o}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><span>${(0,_utils.formatText)(o,!0)}</span></div></th>`}).join("")}</tr>`),w.push("</thead>")),t.length&&(w.push("<tbody>"),o?t.forEach(r=>{w.push("<tr>"+e.map(t=>{var e=t.align||c,l=F(t,"showOverflow",u)?["col--ellipsis"]:[],o=r[t.id];if(e&&l.push("col--"+e),t.treeNode){let e="";return r._hasChild&&(e=`<i class="${r._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="${o}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${r._level*s.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${d}" ${r._radioDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${r._radioLabel}</span></div></div></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}" title="${o}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${r._level*s.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${r._checkboxDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${r._checkboxLabel}</span></div></div></div></td>`:`<td class="${l.join(" ")}" title="${o}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${r._level*s.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell">${o}</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}" ${r._radioDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${r._radioLabel}</span></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}"><div ${x?"":`style="width: ${t.renderWidth}px"`}><input type="checkbox" ${r._checkboxDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${r._checkboxLabel}</span></div></td>`:`<td class="${l.join(" ")}" title="${o}"><div ${x?"":`style="width: ${t.renderWidth}px"`}>${(0,_utils.formatText)(o,!0)}</div></td>`}).join("")+"</tr>")}):t.forEach(n=>{w.push("<tr>"+e.map(e=>{var t=e.align||c,l=F(e,"showOverflow",u)?["col--ellipsis"]:[],o=n[e.id];let r=1,a=1;if(b&&h.length){var s=E.getVTRowIndex(n._row),i=E.getVTColumnIndex(e),s=(0,_util.mergeBodyMethod)(h,s,i);if(s){var{rowspan:i,colspan:s}=s;if(!i||!s)return"";1<i&&(r=i),1<s&&(a=s)}}return t&&l.push("col--"+t),"radio"===e.type?`<td class="${l.join(" ")}" rowspan="${r}" colspan="${a}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><input type="radio" name="radio_${d}" ${n._radioDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${n._radioLabel}</span></div></td>`:"checkbox"===e.type?`<td class="${l.join(" ")}" rowspan="${r}" colspan="${a}"><div ${x?"":`style="width: ${e.renderWidth}px"`}><input type="checkbox" ${n._checkboxDisabled?"disabled ":""}${getBooleanValue(o)?"checked":""}><span>${n._checkboxLabel}</span></div></td>`:`<td class="${l.join(" ")}" rowspan="${r}" colspan="${a}" title="${o}"><div ${x?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(o,!0)}</div></td>`}).join("")+"</tr>")}),w.push("</tbody>")),f&&(t=M["footerTableData"],(t=getFooterData(i,t)).length)&&(w.push("<tfoot>"),t.forEach(r=>{w.push(`<tr>${e.map(e=>{var t=e.footerAlign||e.align||a||c,l=F(e,"showOverflow",u)?["col--ellipsis"]:[],o=T(i,r,e);return t&&l.push("col--"+t),`<td class="${l.join(" ")}" title="${o}"><div ${x?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(o,!0)}</div></td>`}).join("")}</tr>`)}),w.push("</tfoot>"));t=!m&&r?`<script>(function(){var a=document.querySelector(".${$}");if(a){a.indeterminate=true}})()</script>`:"";return w.push("</table>",t),x?w.join(""):(0,_util2.createHtmlPage)(i,w.join(""))},h=(l,e,t)=>{let o=['<?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&&(o+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${C(l,e)}</Data></Cell>`).join("")}</Row>`),t.forEach(t=>{o+="<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=>{o+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${T(l,t,e)}</Data></Cell>`).join("")}</Row>`})),o+"</Table></Worksheet></Workbook>"},N=s=>{const{remote:l,columns:i,colgroups:o,exportMethod:r,afterExportMethod:t}=s;return new Promise(e=>{if(l){var t={options:s,$table:E,$grid:D};e(r?r(t):t)}else{const a=(e=>{const{columns:t,dataFilterMethod:l}=e;let o=e.data;return l&&(o=o.filter((e,t)=>l({row:e,$rowIndex:t}))),c(e,t,o)})(s);e(E.preventEvent(null,"event.export",{options:s,columns:i,colgroups:o,datas:a},()=>{var e=s,t=((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""})(s,i,a),{filename:l,type:o,download:r}=e;if(!r)return r=(0,_util2.getExportBlobByContent)(t,e),Promise.resolve({type:o,content:t,blob:r});_ui.VxeUI.saveFile&&_ui.VxeUI.saveFile({filename:l,type:o,content:t}).then(()=>{!1!==e.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.expSuccess"),status:"success"})})}))}}).then(e=>(clearColumnConvert(i),s.print||t&&t({status:!0,options:s,$table:E,$grid:D}),Object.assign({status:!0},e))).catch(()=>{clearColumnConvert(i),s.print||t&&t({status:!1,options:s,$table:E,$grid:D});return Promise.reject({status:!1})})},x=(a,s)=>{const{importMethod:i,afterImportMethod:t}=s,{type:n,filename:c}=(0,_utils.parseFile)(a);var e=d.value;return i||_xeUtils.default.includes(_xeUtils.default.keys(e._typeMaps),n)?new Promise((t,l)=>{const e=e=>{t(e),I._importResolve=null,I._importReject=null},o=e=>{l(e),I._importResolve=null,I._importReject=null};if(I._importResolve=e,I._importReject=o,window.FileReader){const d=Object.assign({mode:"insertTop"},s,{type:n,filename:c});var r;d.remote?i?Promise.resolve(i({file:a,options:d,$table:E})).then(()=>{e({status:!0})}).catch(()=>{e({status:!0})}):e({status:!0}):(r=I["tableFullColumn"],E.preventEvent(null,"event.import",{file:a,options:d,columns:r},()=>{var e=new FileReader;e.onerror=()=>{(0,_log.errLog)("vxe.error.notType",[n]),o({status:!1})},e.onload=t=>{{var l=t.target.result,o=d;const{tableFullColumn:r,_importResolve:a,_importReject:s}=I;let e={fields:[],rows:[]};switch(o.type){case"csv":e=parseCsv(r,l);break;case"txt":e=parseTxt(r,l);break;case"html":e=parseHTML(r,l);break;case"xml":e=parseXML(r,l)}const{fields:i,rows:n}=e;checkImportData(r,i)?E.createData(n).then(e=>{let t;return"insert"!==o.mode&&"insertBottom"!==o.mode||(t=E.insertAt(e,-1)),t="insertTop"===o.mode?E.insert(e):E.reloadData(e),!1!==o.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.impSuccess",[n.length]),status:"success"}),t.then(()=>{a&&a({status:!0})})}):!1!==o.message&&(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.impFields"),status:"error"}),s)&&s({status:!1})}},e.readAsText(a,d.encoding||"UTF-8")}))}else"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notExp"),e({status:!0})}).then(()=>{t&&t({status:!0,options:s,$table:E})}).catch(e=>(t&&t({status:!1,options:s,$table:E}),Promise.reject(e))):(!1!==s.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:o,showFooter:r}=k;const{initStore:a,mergeList:s,isGroup:i,footerTableData:n,exportStore:d,exportParams:c}=M;var u=I["collectColumn"],p=U.value,m=_.value,h=E.getCheckboxRecords(),x=D?D.getComputeMaps().computeProxyOpts.value:{},g=!!n.length,f=!l&&s.length,o=Object.assign({message:!0,isHeader:o,isFooter:r,current:"current",modes:["current","selected"].concat(x.ajax&&x.ajax.queryAll?["all"]:[])},e),r=o.types||_xeUtils.default.keys(p._typeMaps),x=o.modes||[];const v=m.checkMethod;e=u.slice(0);const b=o["columns"];p=r.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),m=x.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.export.modes."+e)});return _xeUtils.default.eachTree(e,(o,e,t,l,r)=>{(o.children&&o.children.length||defaultFilterExportColumn(o))&&(o.checked=b?b.some(e=>{var t,l;return(0,_util.isColumnInfo)(e)?o===e:_xeUtils.default.isString(e)?o.field===e:(t=e.id||e.colId,l=e.type,e=e.field,t?o.id===t:e&&l?o.field===e&&o.type===l:e?o.field===e:!!l&&o.type===l)}):o.visible,o.halfChecked=!1,o.disabled=r&&r.disabled||!!v&&!v({column:o}))}),Object.assign(d,{columns:e,typeList:p,modeList:m,hasFooter:g,hasMerge:f,hasTree:l,isPrint:t,hasColgroup:i,visible:!0}),Object.assign(c,{mode:h.length?"selected":"current"},o),m.some(e=>e.value===c.mode)||(c.mode=m[0].value),p.some(e=>e.value===c.type)||(c.type=p[0].value),a.export=!0,(0,_vue.nextTick)()};var e=()=>_ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_EXPORT_MODAL"):Promise.resolve();const g={exportData(e){var t=k["treeConfig"],{isGroup:l,tableGroupColumn:o}=M;const{tableFullColumn:a,afterFullData:r}=I;var s=U.value,i=j.value;const n=Object.assign({isHeader:!0,isFooter:!0,isColgroup:!0,download:!0,type:"csv",mode:"current"},s,{print:!1},e),{type:d,mode:c,columns:u,original:p,beforeExportMethod:m,includeFields:h,excludeFields:x}=n;let g=[];e=u&&u.length?u:null;let f=n.columnFilterMethod;e||(f=f||(({column:e})=>(!x||!_xeUtils.default.includes(x,e.field))&&(h?!!_xeUtils.default.includes(h,e.field):p?e.field:defaultFilterExportColumn(e)))),g=e?(n._isCustomColumn=!0,_xeUtils.default.searchTree(_xeUtils.default.mapTree(e,e=>{let t;if(e){if((0,_util.isColumnInfo)(e))t=e;else if(_xeUtils.default.isString(e))t=E.getColumnByField(e);else{var l=e.id||e.colId;const o=e.type,r=e.field;l?t=E.getColumnById(l):r&&o?t=a.find(e=>e.field===r&&e.type===o):r?t=E.getColumnByField(r):o&&(t=a.find(e=>e.type===o))}return t||{}}},{children:"childNodes",mapChildren:"_children"}),(e,t)=>(0,_util.isColumnInfo)(e)&&(!f||f({column:e,$columnIndex:t})),{children:"_children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(l?o:a,(e,t)=>e.visible&&(!f||f({column:e,$columnIndex:t})),{children:"children",mapChildren:"childNodes",original:!0});const v=[];if(_xeUtils.default.eachTree(g,e=>{e.children&&e.children.length||v.push(e)},{children:"childNodes"}),n.columns=v,n.colgroups=convertToRows(g),n.filename||(n.filename=getI18n(n.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),n.sheetName||(n.sheetName=document.title),!n.exportMethod&&!_xeUtils.default.includes(_xeUtils.default.keys(s._typeMaps),d))return(0,_log.errLog)("vxe.error.notType",[d]),"development"===process.env.NODE_ENV&&["xlsx","pdf"].includes(d)&&(0,_log.warnLog)("vxe.error.reqPlugin",[4,"plugin-export-xlsx"]),Promise.reject({status:!1});if(n.print||m&&m({options:n,$table:E,$grid:D}),!n.data)if(n.data=[],"selected"===c){const b=E.getCheckboxRecords();-1<["html","pdf"].indexOf(d)&&t?n.data=_xeUtils.default.searchTree(E.getTableData().fullData,e=>-1<E.findRowIndexOf(b,e),Object.assign({},i,{data:"_row"})):n.data=b}else if("all"===c){if("development"!==process.env.NODE_ENV||D||(0,_log.warnLog)("vxe.error.errProp",["all","mode=current,selected"]),D&&!n.remote){e=D["reactData"],l=D.getComputeMaps()["computeProxyOpts"],o=e["sortData"];const{beforeQueryAll:_,afterQueryAll:y,ajax:$={},props:k={}}=l.value;s=$.queryAll;const w=$.queryAllSuccess,C=$.queryAllError;if("development"!==process.env.NODE_ENV||s||(0,_log.warnLog)("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),s){const T={$table:E,$grid:D,sort:o.length?o[0]:{},sorts:o,filters:e.filterData,form:e.formData,options:n};return Promise.resolve((_||s)(T)).then(e=>(n.data=(k.list?_xeUtils.default.get(e,k.list):e)||[],y&&y(T),w&&w(Object.assign(Object.assign({},T),{response:e})),N(n))).catch(e=>{C&&C(Object.assign(Object.assign({},T),{response:e}))})}}}else"current"===c&&(n.data=r);return N(n)},importByFile(e,t){var t=Object.assign({},t),l=t["beforeImportMethod"];return l&&l({options:t,$table:E}),x(e,t)},importData(e){var t=d.value;const l=Object.assign({types:_xeUtils.default.keys(t._typeMaps)},t,e),{beforeImportMethod:o,afterImportMethod:r}=l;return o&&o({options:l,$table:E}),_ui.VxeUI.readFile(l).catch(e=>(r&&r({status:!1,options:l,$table:E}),Promise.reject(e))).then(e=>{e=e.file;return x(e,l)})},saveFile(e){return _ui.VxeUI.saveFile(e)},readFile(e){return _ui.VxeUI.readFile(e)},print(e){var t=a.value;const l=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0}),o=(l.sheetName||(l.sheetName=document.title),l.beforePrintMethod),r=l.html||l.content;return new Promise((e,t)=>{_ui.VxeUI.print?r?e(_ui.VxeUI.print({title:l.sheetName,html:r,customStyle:l.style,beforeMethod:o?({html:e})=>o({html:e,content:e,options:l,$table:E}):void 0})):e(g.exportData(l).then(({content:e})=>_ui.VxeUI.print({title:l.sheetName,html:e,customStyle:l.style,beforeMethod:o?({html:e})=>o({html:e,content:e,options:l,$table:E}):void 0}))):t({status:!1})})},getPrintHtml(e){var t=a.value,t=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});return g.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;const{initStore:o,importStore:r,importParams:a}=M;var s=d.value,s=Object.assign({mode:"insertTop",message:!0,types:_xeUtils.default.keys(s._typeMaps),modes:["insertTop","covering"]},s,e),e=s.types||[],i=s.modes||[];!t?(l||(0,_log.errLog)("vxe.error.reqProp",["import-config"]),t=e.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),l=i.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.import.modes."+e)}),Object.assign(r,{file:null,type:"",filename:"",modeList:l,typeList:t,visible:!0}),Object.assign(a,s),l.some(e=>e.value===a.mode)||(a.mode=l[0].value),o.import=!0):s.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.treeNotImp"),status:"error"})},closeExport:e,openExport(e){var t=U.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=a.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 g},setupGrid(e){return e.extendTableMethods(tableExportMethodKeys)}});
|
|
@@ -195,6 +195,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
195
195
|
initStore
|
|
196
196
|
} = tableReactData;
|
|
197
197
|
const {
|
|
198
|
+
visible,
|
|
199
|
+
multiple,
|
|
198
200
|
column
|
|
199
201
|
} = filterStore;
|
|
200
202
|
const filterRender = column ? column.filterRender : null;
|
|
@@ -204,14 +206,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
204
206
|
$panel,
|
|
205
207
|
$table: $xeTable
|
|
206
208
|
});
|
|
209
|
+
const filterOpts = computeFilterOpts.value;
|
|
210
|
+
const {
|
|
211
|
+
destroyOnClose
|
|
212
|
+
} = filterOpts;
|
|
207
213
|
return (0, _vue.h)('div', {
|
|
208
214
|
class: ['vxe-table--filter-wrapper', 'filter--prevent-default', (0, _dom.getPropClass)(filterClassName, params), {
|
|
209
215
|
'is--animat': $xeTable.props.animat,
|
|
210
|
-
'is--multiple':
|
|
211
|
-
'is--active':
|
|
216
|
+
'is--multiple': multiple,
|
|
217
|
+
'is--active': visible
|
|
212
218
|
}],
|
|
213
219
|
style: filterStore.style
|
|
214
|
-
}, initStore.filter && column ? renderOptions(filterRender, compConf).concat(renderFooters()) : []);
|
|
220
|
+
}, initStore.filter && (destroyOnClose ? visible : true) && column ? renderOptions(filterRender, compConf).concat(renderFooters()) : []);
|
|
215
221
|
};
|
|
216
222
|
return renderVN;
|
|
217
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_vn=require("../../../ui/src/vn");const{getI18n,getIcon,renderer}=_ui.VxeUI;var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFilterPanel",props:{filterStore:Object},setup(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_vn=require("../../../ui/src/vn");const{getI18n,getIcon,renderer}=_ui.VxeUI;var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFilterPanel",props:{filterStore:Object},setup(u){const v=(0,_vue.inject)("$xeTable",{}),{reactData:d,internalData:p,getComputeMaps:e}=v,_=e()["computeFilterOpts"],h=(0,_vue.computed)(()=>{var e=u["filterStore"];return e&&e.options.some(e=>e.checked)}),b=e=>{v.handleFilterConfirmFilter(e)};const m=e=>{v.handleFilterResetFilter(e)};const f=(e,t,l)=>{v.handleFilterChangeOption(e,t,l)},C=(e,t)=>{var l,i=u["filterStore"];i.multiple?(l=t,(i=u.filterStore).options.forEach(e=>{e._checked=l,e.checked=l}),i.isAllSelected=l,i.isIndeterminate=!1):m(e)},x={changeRadioOption:(e,t,l)=>{v.handleFilterChangeRadioOption(e,t,l)},changeMultipleOption:(e,t,l)=>{v.handleFilterChangeMultipleOption(e,t,l)},changeAllOption:C,changeOption:f,confirmFilter:b,resetFilter:m};return()=>{var e=u["filterStore"],t=d["initStore"],{visible:l,multiple:i,column:r}=e,a=r?r.filterRender:null,n=(0,_utils.isEnableConf)(a)?renderer.get(a.name):null,s=n?n.tableFilterClassName||n.filterClassName:"",o=Object.assign({},p._currFilterParams,{$panel:x,$table:v}),c=_.value["destroyOnClose"];return(0,_vue.h)("div",{class:["vxe-table--filter-wrapper","filter--prevent-default",(0,_dom.getPropClass)(s,o),{"is--animat":v.props.animat,"is--multiple":i,"is--active":l}],style:e.style},t.filter&&(!c||l)&&r?((e,t)=>{const l=u["filterStore"],{column:i,multiple:r,maxHeight:a}=l;var n=i?i.slots:null,n=n?n.filter:null,s=Object.assign({},p._currFilterParams,{$panel:x,$table:v}),t=t?t.renderTableFilter||t.renderFilter:null;return n?[(0,_vue.h)("div",{class:"vxe-table--filter-template"},v.callSlot(n,s))]:t?[(0,_vue.h)("div",{class:"vxe-table--filter-template"},(0,_vn.getSlotVNs)(t(e,s)))]:(n=r?l.isAllSelected:!l.options.some(e=>e._checked),t=r&&l.isIndeterminate,[(0,_vue.h)("ul",{class:"vxe-table--filter-header"},[(0,_vue.h)("li",{class:["vxe-table--filter-option",{"is--checked":n,"is--indeterminate":t}],title:getI18n(r?"vxe.table.allTitle":"vxe.table.allFilter"),onClick:e=>{C(e,!l.isAllSelected)}},(r?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",t?getIcon().TABLE_CHECKBOX_INDETERMINATE:n?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.allFilter"))]))]),(0,_vue.h)("ul",{class:"vxe-table--filter-body",style:a?{maxHeight:a+"px"}:{}},l.options.map(t=>{var e=t._checked;return(0,_vue.h)("li",{class:["vxe-table--filter-option",{"is--checked":t._checked}],title:t.label,onClick:e=>{f(e,!t._checked,t)}},(r?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},(0,_utils.formatText)(t.label,1))]))}))])})(a,n).concat((()=>{var e=u["filterStore"],{column:t,multiple:l}=e,i=_.value,r=h.value,t=t["filterRender"],t=(0,_utils.isEnableConf)(t)?renderer.get(t.name):null,r=!r&&!e.isAllSelected&&!e.isIndeterminate;return l&&(!t||!1!==t.showTableFilterFooter&&!1!==t.showFilterFooter&&!1!==t.isFooter)?[(0,_vue.h)("div",{class:"vxe-table--filter-footer"},[(0,_vue.h)("button",{class:{"is--disabled":r},disabled:r,onClick:b},i.confirmButtonText||getI18n("vxe.table.confirmFilter")),(0,_vue.h)("button",{onClick:m},i.resetButtonText||getI18n("vxe.table.resetFilter"))])]:[]})()):[])}}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -5640,7 +5640,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5640
5640
|
const rowRest = fullAllDataRowIdData[(0, _util.getRowid)($xeTable, row)];
|
|
5641
5641
|
return rowRest && !!rowRest.treeLoaded;
|
|
5642
5642
|
},
|
|
5643
|
-
clearTreeExpandLoaded(
|
|
5643
|
+
clearTreeExpandLoaded(rows) {
|
|
5644
5644
|
const {
|
|
5645
5645
|
treeExpandedMaps
|
|
5646
5646
|
} = reactData;
|
|
@@ -5649,16 +5649,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
5649
5649
|
} = internalData;
|
|
5650
5650
|
const treeOpts = computeTreeOpts.value;
|
|
5651
5651
|
const {
|
|
5652
|
-
transform
|
|
5653
|
-
lazy
|
|
5652
|
+
transform
|
|
5654
5653
|
} = treeOpts;
|
|
5655
|
-
|
|
5656
|
-
|
|
5657
|
-
|
|
5658
|
-
rowRest.treeLoaded = false;
|
|
5659
|
-
if (treeExpandedMaps[rowid]) {
|
|
5660
|
-
delete treeExpandedMaps[rowid];
|
|
5654
|
+
if (rows) {
|
|
5655
|
+
if (!_xeUtils.default.isArray(rows)) {
|
|
5656
|
+
rows = [rows];
|
|
5661
5657
|
}
|
|
5658
|
+
rows.forEach(row => {
|
|
5659
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
5660
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
5661
|
+
if (rowRest) {
|
|
5662
|
+
rowRest.treeLoaded = false;
|
|
5663
|
+
if (treeExpandedMaps[rowid]) {
|
|
5664
|
+
delete treeExpandedMaps[rowid];
|
|
5665
|
+
}
|
|
5666
|
+
}
|
|
5667
|
+
});
|
|
5662
5668
|
}
|
|
5663
5669
|
if (transform) {
|
|
5664
5670
|
handleVirtualTreeToList();
|