vxe-table 3.15.29 → 3.15.31

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.
Files changed (45) hide show
  1. package/es/grid/src/grid.js +39 -42
  2. package/es/style.css +1 -1
  3. package/es/table/module/edit/mixin.js +11 -27
  4. package/es/table/module/export/mixin.js +75 -143
  5. package/es/table/module/menu/mixin.js +2 -6
  6. package/es/table/module/validator/mixin.js +99 -41
  7. package/es/table/src/methods.js +12 -36
  8. package/es/table/src/table.js +6 -8
  9. package/es/ui/index.js +1 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/lib/grid/src/grid.js +24 -26
  12. package/lib/grid/src/grid.min.js +1 -1
  13. package/lib/index.umd.js +271 -572
  14. package/lib/index.umd.min.js +1 -1
  15. package/lib/style.css +1 -1
  16. package/lib/table/module/edit/mixin.js +11 -27
  17. package/lib/table/module/edit/mixin.min.js +1 -1
  18. package/lib/table/module/export/mixin.js +101 -184
  19. package/lib/table/module/export/mixin.min.js +1 -1
  20. package/lib/table/module/menu/mixin.js +2 -6
  21. package/lib/table/module/menu/mixin.min.js +1 -1
  22. package/lib/table/module/validator/mixin.js +97 -40
  23. package/lib/table/module/validator/mixin.min.js +1 -1
  24. package/lib/table/src/methods.js +12 -36
  25. package/lib/table/src/methods.min.js +1 -1
  26. package/lib/table/src/table.js +8 -10
  27. package/lib/table/src/table.min.js +1 -1
  28. package/lib/ui/index.js +1 -1
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/package.json +1 -1
  33. package/packages/grid/src/grid.ts +39 -41
  34. package/packages/table/module/edit/mixin.ts +11 -27
  35. package/packages/table/module/export/mixin.ts +105 -162
  36. package/packages/table/module/menu/mixin.ts +2 -6
  37. package/packages/table/module/validator/mixin.ts +101 -40
  38. package/packages/table/src/methods.ts +12 -36
  39. package/packages/table/src/table.ts +6 -8
  40. /package/es/{iconfont.1747286367921.ttf → iconfont.1747621179042.ttf} +0 -0
  41. /package/es/{iconfont.1747286367921.woff → iconfont.1747621179042.woff} +0 -0
  42. /package/es/{iconfont.1747286367921.woff2 → iconfont.1747621179042.woff2} +0 -0
  43. /package/lib/{iconfont.1747286367921.ttf → iconfont.1747621179042.ttf} +0 -0
  44. /package/lib/{iconfont.1747286367921.woff → iconfont.1747621179042.woff} +0 -0
  45. /package/lib/{iconfont.1747286367921.woff2 → iconfont.1747621179042.woff2} +0 -0
@@ -126,10 +126,8 @@ function insertTreeRow($xeTable, newRecords, isAppend) {
126
126
  fullDataRowIdData[rowid] = rest;
127
127
  fullAllDataRowIdData[rowid] = rest;
128
128
  } else {
129
- if (process.env.NODE_ENV === 'development') {
130
- if (parentRowId) {
131
- (0, _log.warnLog)('vxe.error.unableInsert');
132
- }
129
+ if (parentRowId) {
130
+ (0, _log.warnLog)('vxe.error.unableInsert');
133
131
  }
134
132
  afterFullData[funcName](item);
135
133
  tableFullTreeData[funcName](item);
@@ -277,11 +275,9 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
277
275
  const parentLevel = parentRest ? parentRest.level : 0;
278
276
  newRecords.forEach((item, i) => {
279
277
  const rowid = (0, _util.getRowid)($xeTable, item);
280
- if (process.env.NODE_ENV === 'development') {
281
- if (item[treeOpts.parentField]) {
282
- if (parentRow && item[treeOpts.parentField] !== parentRow[rowField]) {
283
- (0, _log.errLog)('vxe.error.errProp', [`${treeOpts.parentField}=${item[treeOpts.parentField]}`, `${treeOpts.parentField}=${parentRow[rowField]}`]);
284
- }
278
+ if (item[treeOpts.parentField]) {
279
+ if (parentRow && item[treeOpts.parentField] !== parentRow[rowField]) {
280
+ (0, _log.errLog)('vxe.error.errProp', [`${treeOpts.parentField}=${item[treeOpts.parentField]}`, `${treeOpts.parentField}=${parentRow[rowField]}`]);
285
281
  }
286
282
  }
287
283
  if (parentRow) {
@@ -326,9 +322,7 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
326
322
  }
327
323
  }
328
324
  } else {
329
- if (process.env.NODE_ENV === 'development') {
330
- (0, _log.warnLog)('vxe.error.unableInsert');
331
- }
325
+ (0, _log.warnLog)('vxe.error.unableInsert');
332
326
  insertTreeRow($xeTable, newRecords, true);
333
327
  }
334
328
  } else {
@@ -946,9 +940,7 @@ var _default = exports.default = {
946
940
  syncActivedCell($xeTable);
947
941
  },
948
942
  _clearActived(row) {
949
- if (process.env.NODE_ENV === 'development') {
950
- (0, _log.warnLog)('vxe.error.delFunc', ['clearActived', 'clearEdit']);
951
- }
943
+ (0, _log.warnLog)('vxe.error.delFunc', ['clearActived', 'clearEdit']);
952
944
  // 即将废弃
953
945
  return this.clearEdit(row);
954
946
  },
@@ -968,9 +960,7 @@ var _default = exports.default = {
968
960
  },
969
961
  _getActiveRecord() {
970
962
  const $xeTable = this;
971
- if (process.env.NODE_ENV === 'development') {
972
- (0, _log.warnLog)('vxe.error.delFunc', ['getActiveRecord', 'getEditRecord']);
973
- }
963
+ (0, _log.warnLog)('vxe.error.delFunc', ['getActiveRecord', 'getEditRecord']);
974
964
  // 即将废弃
975
965
  return $xeTable.getEditRecord();
976
966
  },
@@ -996,9 +986,7 @@ var _default = exports.default = {
996
986
  },
997
987
  _isActiveByRow(row) {
998
988
  const $xeTable = this;
999
- if (process.env.NODE_ENV === 'development') {
1000
- (0, _log.warnLog)('vxe.error.delFunc', ['isActiveByRow', 'isEditByRow']);
1001
- }
989
+ (0, _log.warnLog)('vxe.error.delFunc', ['isActiveByRow', 'isEditByRow']);
1002
990
  // 即将废弃
1003
991
  return $xeTable.isEditByRow(row);
1004
992
  },
@@ -1080,9 +1068,7 @@ var _default = exports.default = {
1080
1068
  },
1081
1069
  _setActiveRow(row) {
1082
1070
  const $xeTable = this;
1083
- if (process.env.NODE_ENV === 'development') {
1084
- (0, _log.warnLog)('vxe.error.delFunc', ['setActiveRow', 'setEditRow']);
1085
- }
1071
+ (0, _log.warnLog)('vxe.error.delFunc', ['setActiveRow', 'setEditRow']);
1086
1072
  // 即将废弃
1087
1073
  return $xeTable.setEditRow(row);
1088
1074
  },
@@ -1102,9 +1088,7 @@ var _default = exports.default = {
1102
1088
  return handleEditCell($xeTable, row, column, isPos);
1103
1089
  },
1104
1090
  _setActiveCell(row, fieldOrColumn) {
1105
- if (process.env.NODE_ENV === 'development') {
1106
- (0, _log.warnLog)('vxe.error.delFunc', ['setActiveCell', 'setEditCell']);
1107
- }
1091
+ (0, _log.warnLog)('vxe.error.delFunc', ['setActiveCell', 'setEditCell']);
1108
1092
  // 即将废弃
1109
1093
  return this.setEditCell(row, fieldOrColumn);
1110
1094
  },
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,getI18n}=_ui.VxeUI,browseObj=_xeUtils.default.browse();function getEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)}function setEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)}function removeCellSelectedClass(e){var e=e.$refs.refElem;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}function syncActivedCell(e){var{editStore:t,tableColumn:l}=e,e=e.computeEditOpts,t=t.actived;let{row:r,column:i}=t;(r||i)&&("row"===e.mode?l.forEach(e=>setEditColumnModel(r,e)):setEditColumnModel(r,i))}function insertTreeRow(n,e,t){let{tableFullTreeData:d,afterFullData:a,fullDataRowIdData:s,fullAllDataRowIdData:u}=n;var l=n.computeTreeOpts;let{rowField:c,parentField:h,mapChildrenField:g}=l,w=l.children||l.childrenField,f=t?"push":"unshift";e.forEach(l=>{let t=l[h];var r=(0,_util.getRowid)(n,l),i=t?_xeUtils.default.findTree(d,e=>t===e[c],{children:g}):null;if(i){var i=i.item,o=u[(0,_util.getRowid)(n,i)],o=o?o.level:0;let e=i[w],t=i[g];_xeUtils.default.isArray(e)||(e=i[w]=[]),_xeUtils.default.isArray(t)||(t=i[w]=[]),e[f](l),t[f](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:i,level:o+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=i,u[r]=i}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),a[f](l),d[f](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:d,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=o,u[r]=o}})}function handleInsertRowAt(a,t,l,s){var e=a;let i=a.treeConfig,{tableFullTreeData:r,afterFullData:o,mergeBodyList:n,tableFullData:d,fullDataRowIdData:u,fullAllDataRowIdData:c,insertRowMaps:h}=a,g=a.computeTreeOpts,{transform:w,rowField:f,mapChildrenField:m}=g,p=g.children||g.childrenField,v=(_xeUtils.default.isArray(t)||(t=[t]),a.defineField(t.map(e=>Object.assign(i&&w?{[m]:[],[p]:[]}:{},e))));if(_xeUtils.default.eqNull(l))i&&w?insertTreeRow(a,v,!1):(v.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,o.unshift(e),d.unshift(e)}),n.forEach(e=>{var t=e.row;0<t&&(e.row=t+v.length)}));else if(-1===l)i&&w?insertTreeRow(a,v,!0):(v.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,o.push(e),d.push(e)}),n.forEach(e=>{var{row:t,rowspan:l}=e;t+l>o.length&&(e.rowspan=l+v.length)}));else if(i&&w){let d=_xeUtils.default.findTree(r,e=>l[f]===e[f],{children:m});if(d){let i=d.parent,o=i?i[m]:r;t=c[(0,_util.getRowid)(a,i)];let n=t?t.level:0;if(v.forEach((e,t)=>{var l=(0,_util.getRowid)(a,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&i&&e[g.parentField]!==i[f]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+i[f]]),i&&(e[g.parentField]=i[f]);let r=d.index+t;s&&(r+=1),o.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:i,level:n+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,c[l]=t}),i){t=_xeUtils.default.findTree(r,e=>l[f]===e[f],{children:p});if(t){var x=t.items;let e=t.index;s&&(e+=1),x.splice(e,0,...v)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),insertTreeRow(a,v,!0)}else{if(i)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<o.length&&(r=l):r=a.findRowIndexOf(o,l),-1===(r=s?Math.min(o.length,r+1):r))throw new Error((0,_log.errLog)("vxe.error.unableInsert"));o.splice(r,0,...v);t=a.findRowIndexOf(d,l);-1<t?d.splice(t+(s?1:0),0,...v):d.push(...v),n.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+v.length:t+l>r&&(e.rowspan=l+v.length)})}return v.forEach(e=>{var t=(0,_util.getRowid)(a,e);h[t]=e}),e.insertRowFlag++,a.cacheRowMap(!1),a.updateScrollYStatus(),a.handleTableData(i&&w),i&&w||a.updateAfterDataIndex(),a.updateFooter(),a.handleUpdateBodyMerge(),a.checkSelectionStatus(),e.scrollYLoad&&a.updateScrollYSpace(),a.$nextTick().then(()=>(a.updateCellAreas(),a.recalculate())).then(()=>({row:v.length?v[v.length-1]:null,rows:v}))}function handleInsertChildRowAt(e,t,l,r,i){var o=e.treeConfig;let{transform:n,rowField:d,parentField:a}=e.computeTreeOpts;return o&&n?handleInsertRowAt(e,(t=_xeUtils.default.isArray(t)?t:[t]).map(e=>Object.assign({},e,{[a]:l[d]})),r,i):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))}function handleClearEdit(e,t,l){var r=e.editStore,{actived:r,focused:i}=r,{row:o,column:n}=r,d=e.computeValidOpts;if(o||n){if(l&&(0,_util.getRowid)(e,l)!==(0,_util.getRowid)(e,o))return e.$nextTick();syncActivedCell(e),r.args=null,r.row=null,r.column=null,e.updateFooter(),e.dispatchEvent("edit-closed",{row:o,rowIndex:e.getRowIndex(o),$rowIndex:e.getVMRowIndex(o),column:n,columnIndex:e.getColumnIndex(n),$columnIndex:e.getVMColumnIndex(n)},t||null)}return i.row=null,i.column=null,d.autoClear&&("full"!==d.msgMode||"obsolete"===getConfig().cellVaildMode)&&e.clearValidate?e.clearValidate():e.$nextTick().then(()=>e.updateCellAreas())}function handleEditActive(l,r,i,o,e){let n=l.$xeGrid;var{editConfig:t,mouseConfig:d}=l,{editStore:a,tableColumn:s}=l,u=l.computeEditOpts,c=u.mode,{actived:a,focused:h}=a;let{row:g,column:w}=r;var f=w.editRender,m=r.cell||l.getCellElement(g,w),p=u.beforeEditMethod||u.activeMethod;if((r.cell=m)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(f)&&!l.isPendingByRow(g)){if(a.row!==g||"cell"===c&&a.column!==w){let t="edit-disabled";if(!p||p(Object.assign(Object.assign({},r),{$table:l,$grid:n}))){d&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),l.closeTooltip(),a.column&&handleClearEdit(l,i),t="edit-activated",w.renderHeight=m.offsetHeight,a.args=r,a.row=g,a.column=w,"row"===c?s.forEach(e=>getEditColumnModel(g,e)):getEditColumnModel(g,w);let e=u.afterEditMethod;l.$nextTick(()=>{o&&l.handleFocus(r,i),e&&e(Object.assign(Object.assign({},r),{$table:l,$grid:n}))})}l.dispatchEvent(t,{row:g,rowIndex:l.getRowIndex(g),$rowIndex:l.getVMRowIndex(g),column:w,columnIndex:l.getColumnIndex(w),$columnIndex:l.getVMColumnIndex(w)},i),"edit-activated"===t&&l.dispatchEvent("edit-actived",{row:g,rowIndex:l.getRowIndex(g),$rowIndex:l.getVMRowIndex(g),column:w,columnIndex:l.getColumnIndex(w),$columnIndex:l.getVMColumnIndex(w)},i)}else{t=a.column;d&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),t!==w&&(f=t.model,f.update&&(0,_util.setCellValue)(g,t,f.value),l.clearValidate)&&l.clearValidate(g,w),w.renderHeight=m.offsetHeight,a.args=r,a.column=w,e&&setTimeout(()=>{l.handleFocus(r,i)})}h.column=null,h.row=null,l.focus()}return l.$nextTick()}function handleEditCell(t,l,e,r){let i=t;var o=t.editConfig;let n=_xeUtils.default.isString(e)?t.getColumnByField(e):e;return l&&n&&(0,_utils.isEnableConf)(o)&&(0,_utils.isEnableConf)(n.editRender)?Promise.resolve(r?t.scrollToRow(l,n):null).then(()=>{var e=t.getCellElement(l,n);return e&&(handleEditActive(t,{row:l,rowIndex:t.getRowIndex(l),column:n,columnIndex:t.getColumnIndex(n),cell:e,$table:t},null,r,r),i._lastCallTime=Date.now()),t.$nextTick()}):t.$nextTick()}var _default=exports.default={methods:{_insert(e){return handleInsertRowAt(this,e,null)},_insertAt(e,t){return handleInsertRowAt(this,e,t)},_insertNextAt(e,t){return handleInsertRowAt(this,e,t,!0)},_insertChild(e,t){return handleInsertChildRowAt(this,e,t,null)},_insertChildAt(e,t,l){return handleInsertChildRowAt(this,e,t,l)},_insertChildNextAt(e,t,l){return handleInsertChildRowAt(this,e,t,l,!0)},_remove(e){let l=this;var t=l,r=l,t=t.treeConfig,i=r.editStore;let{tableFullTreeData:o,selectCheckboxMaps:n,afterFullData:d,mergeBodyList:a,tableFullData:s,pendingRowMaps:u,insertRowMaps:c,removeRowMaps:h}=l;var g=l.computeCheckboxOpts,w=l.computeTreeOpts;let{transform:f,mapChildrenField:m}=w,p=w.children||w.childrenField;w=i.actived,i=g.checkField;let v=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=s,e.forEach(e=>{var t;l.isInsertByRow(e)||(t=(0,_util.getRowid)(l,e),h[t]=e)}),i||(e.forEach(e=>{e=(0,_util.getRowid)(this,e);n[e]&&delete n[e]}),r.updateCheckboxFlag++),s===e?(e=v=s.slice(0),this.tableFullData=[],this.afterFullData=[],this.clearMergeCells()):t&&f?e.forEach(e=>{let t=(0,_util.getRowid)(this,e);var l=_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(this,e),{children:m}),l=(l&&(l=l.items.splice(l.index,1),v.push(l[0])),_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(this,e),{children:p})),l=(l&&l.items.splice(l.index,1),this.findRowIndexOf(d,e));-1<l&&d.splice(l,1)}):e.forEach(e=>{var t=this.findRowIndexOf(s,e);-1<t&&(t=s.splice(t,1),v.push(t[0]));let r=this.findRowIndexOf(d,e);-1<r&&(a.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),d.splice(r,1))}),w.row&&-1<l.findRowIndexOf(e,w.row)&&l.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(l,e);c[e]&&delete c[e],u[e]&&delete u[e]}),r.removeRowFlag++,r.insertRowFlag++,r.pendingRowFlag++,l.cacheRowMap(!1),l.handleTableData(t&&f),l.updateFooter(),l.handleUpdateBodyMerge(),t&&f||l.updateAfterDataIndex(),l.checkSelectionStatus(),r.scrollYLoad&&l.updateScrollYSpace(),this.$nextTick().then(()=>(this.updateCellAreas(),this.recalculate())).then(()=>({row:v.length?v[v.length-1]:null,rows:v}))},_removeCheckboxRow(){return this.remove(this.getCheckboxRecords()).then(e=>(this.clearCheckboxRow(),e))},_removeRadioRow(){var e=this.getRadioRecord();return this.remove(e||[]).then(e=>(this.clearRadioRow(),e))},_removeCurrentRow(){var e=this.getCurrentRecord();return this.remove(e||[]).then(e=>(this.clearCurrentRow(),e))},_getRecordset(){var e=this.getRemoveRecords(),t=this.getPendingRecords();let l=e.concat(t);var r=this.getUpdateRecords().filter(t=>!l.some(e=>this.eqRow(e,t)));return{insertRecords:this.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},_getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=this,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},_getRemoveRecords(){var e=this.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},_getUpdateRecords(){let t=this;var{keepSource:e,treeConfig:l}=t,r=t.tableFullData,i=t.computeTreeOpts;return e?(syncActivedCell(t),l?_xeUtils.default.filterTree(r,e=>t.isUpdateByRow(e),i):r.filter(e=>t.isUpdateByRow(e))):[]},handleEdit(e,t){return handleEditActive(this,e,t,!0,!0)},handleActived(e,t){return this.handleEdit(e,t)},_getColumnModel(e,t){getEditColumnModel(e,t)},_setColumnModel(e,t){setEditColumnModel(e,t)},_syncActivedCell(){syncActivedCell(this)},_clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},_clearEdit(e){return handleClearEdit(this,null,e)},handleClearEdit(e,t){return handleClearEdit(this,e,t)},_getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},_getEditRecord(){var e=this.editStore,t=this.afterFullData,l=this.$refs.refElem,{args:e,row:r}=e.actived;return e&&-1<this.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},_isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},_isEditByRow(e){var t=this.editStore;return t.actived.row===e},handleFocus(r){var{row:i,column:o,cell:n}=r,d=o.editRender,a=this.computeEditOpts;if((0,_utils.isEnableConf)(d)){var s=renderer.get(d.name);let e=d.autofocus||d.autoFocus,t=d.autoSelect||d.autoselect,l;a.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autoFocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e.call(this,r):e&&(l=!0===e?n.querySelector("input,textarea"):n.querySelector(e))&&l.focus()),l?t?l.select():browseObj.msie&&((d=l.createTextRange()).collapse(!1),d.select()):a.autoPos&&!o.fixed&&this.scrollToRow(i,o)}},_setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),this.setEditRow(e)},_setEditRow(e,t){let l=_xeUtils.default.find(this.visibleColumn,e=>(0,_utils.isEnableConf)(e.editRender)),r=!1;return t&&(r=!0)!==t&&(l=_xeUtils.default.isString(t)?this.getColumnByField(t):t),handleEditCell(this,e,l,r)},_setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(e,t){return handleEditCell(this,e,t,!0)},_setSelectCell(e,t){var l=this,r=l.tableData,i=l.computeEditOpts,t=_xeUtils.default.isString(t)?l.getColumnByField(t):t;return e&&t&&"manual"!==i.trigger&&-1<(i=l.findRowIndexOf(r,e))&&(r=l.getCellElement(e,t),e={row:e,rowIndex:i,column:t,columnIndex:l.getColumnIndex(t),cell:r},l.handleSelected(e,{})),l.$nextTick()},handleSelected(e,t){let l=this;var r=l.mouseConfig,i=l.editStore,o=l.computeMouseOpts;let n=l.computeEditOpts,{actived:d,selected:a}=i,{row:s,column:u}=e,c=r&&o.selected;return!c||a.row===s&&a.column===u||(d.row!==s||"cell"===n.mode&&d.column!==u)&&(handleClearEdit(l,t),l.clearSelected(),l.clearCellAreas&&(l.clearCellAreas(),l.clearCopyCellArea()),a.args=e,a.row=s,a.column=u,c&&this.addCellSelectedClass(),l.focus(),t)&&l.dispatchEvent("cell-selected",e,t),l.$nextTick()},_getSelectedCell(){var e=this.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},_clearSelected(){var e=this.editStore,e=e.selected;return e.row=null,e.column=null,removeCellSelectedClass(this),this.$nextTick()},reColTitleSdCls(){var e=this.elemStore["main-header-list"];e&&_xeUtils.default.arrayEach(e.querySelectorAll(".col--title-selected"),e=>(0,_dom.removeClass)(e,"col--title-selected"))},addCellSelectedClass(){var e=this.editStore,e=e.selected,{row:e,column:t}=e;removeCellSelectedClass(this),e&&t&&(e=this.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,getI18n}=_ui.VxeUI,browseObj=_xeUtils.default.browse();function getEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)}function setEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)}function removeCellSelectedClass(e){var e=e.$refs.refElem;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}function syncActivedCell(e){var{editStore:t,tableColumn:l}=e,e=e.computeEditOpts,t=t.actived;let{row:r,column:i}=t;(r||i)&&("row"===e.mode?l.forEach(e=>setEditColumnModel(r,e)):setEditColumnModel(r,i))}function insertTreeRow(n,e,t){let{tableFullTreeData:d,afterFullData:a,fullDataRowIdData:s,fullAllDataRowIdData:u}=n;var l=n.computeTreeOpts;let{rowField:c,parentField:h,mapChildrenField:g}=l,w=l.children||l.childrenField,f=t?"push":"unshift";e.forEach(l=>{let t=l[h];var r=(0,_util.getRowid)(n,l),i=t?_xeUtils.default.findTree(d,e=>t===e[c],{children:g}):null;if(i){var i=i.item,o=u[(0,_util.getRowid)(n,i)],o=o?o.level:0;let e=i[w],t=i[g];_xeUtils.default.isArray(e)||(e=i[w]=[]),_xeUtils.default.isArray(t)||(t=i[w]=[]),e[f](l),t[f](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:i,level:o+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=i,u[r]=i}else{t&&(0,_log.warnLog)("vxe.error.unableInsert"),a[f](l),d[f](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:d,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=o,u[r]=o}})}function handleInsertRowAt(a,t,l,s){var e=a;let i=a.treeConfig,{tableFullTreeData:r,afterFullData:o,mergeBodyList:n,tableFullData:d,fullDataRowIdData:u,fullAllDataRowIdData:c,insertRowMaps:h}=a,g=a.computeTreeOpts,{transform:w,rowField:f,mapChildrenField:m}=g,p=g.children||g.childrenField,x=(_xeUtils.default.isArray(t)||(t=[t]),a.defineField(t.map(e=>Object.assign(i&&w?{[m]:[],[p]:[]}:{},e))));if(_xeUtils.default.eqNull(l))i&&w?insertTreeRow(a,x,!1):(x.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,o.unshift(e),d.unshift(e)}),n.forEach(e=>{var t=e.row;0<t&&(e.row=t+x.length)}));else if(-1===l)i&&w?insertTreeRow(a,x,!0):(x.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,o.push(e),d.push(e)}),n.forEach(e=>{var{row:t,rowspan:l}=e;t+l>o.length&&(e.rowspan=l+x.length)}));else if(i&&w){let d=_xeUtils.default.findTree(r,e=>l[f]===e[f],{children:m});if(d){let i=d.parent,o=i?i[m]:r;t=c[(0,_util.getRowid)(a,i)];let n=t?t.level:0;if(x.forEach((e,t)=>{var l=(0,_util.getRowid)(a,e);e[g.parentField]&&i&&e[g.parentField]!==i[f]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+i[f]]),i&&(e[g.parentField]=i[f]);let r=d.index+t;s&&(r+=1),o.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:i,level:n+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,c[l]=t}),i){t=_xeUtils.default.findTree(r,e=>l[f]===e[f],{children:p});if(t){var v=t.items;let e=t.index;s&&(e+=1),v.splice(e,0,...x)}}}else(0,_log.warnLog)("vxe.error.unableInsert"),insertTreeRow(a,x,!0)}else{if(i)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<o.length&&(r=l):r=a.findRowIndexOf(o,l),-1===(r=s?Math.min(o.length,r+1):r))throw new Error((0,_log.errLog)("vxe.error.unableInsert"));o.splice(r,0,...x);t=a.findRowIndexOf(d,l);-1<t?d.splice(t+(s?1:0),0,...x):d.push(...x),n.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+x.length:t+l>r&&(e.rowspan=l+x.length)})}return x.forEach(e=>{var t=(0,_util.getRowid)(a,e);h[t]=e}),e.insertRowFlag++,a.cacheRowMap(!1),a.updateScrollYStatus(),a.handleTableData(i&&w),i&&w||a.updateAfterDataIndex(),a.updateFooter(),a.handleUpdateBodyMerge(),a.checkSelectionStatus(),e.scrollYLoad&&a.updateScrollYSpace(),a.$nextTick().then(()=>(a.updateCellAreas(),a.recalculate())).then(()=>({row:x.length?x[x.length-1]:null,rows:x}))}function handleInsertChildRowAt(e,t,l,r,i){var o=e.treeConfig;let{transform:n,rowField:d,parentField:a}=e.computeTreeOpts;return o&&n?handleInsertRowAt(e,(t=_xeUtils.default.isArray(t)?t:[t]).map(e=>Object.assign({},e,{[a]:l[d]})),r,i):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))}function handleClearEdit(e,t,l){var r=e.editStore,{actived:r,focused:i}=r,{row:o,column:n}=r,d=e.computeValidOpts;if(o||n){if(l&&(0,_util.getRowid)(e,l)!==(0,_util.getRowid)(e,o))return e.$nextTick();syncActivedCell(e),r.args=null,r.row=null,r.column=null,e.updateFooter(),e.dispatchEvent("edit-closed",{row:o,rowIndex:e.getRowIndex(o),$rowIndex:e.getVMRowIndex(o),column:n,columnIndex:e.getColumnIndex(n),$columnIndex:e.getVMColumnIndex(n)},t||null)}return i.row=null,i.column=null,d.autoClear&&("full"!==d.msgMode||"obsolete"===getConfig().cellVaildMode)&&e.clearValidate?e.clearValidate():e.$nextTick().then(()=>e.updateCellAreas())}function handleEditActive(l,r,i,o,e){let n=l.$xeGrid;var{editConfig:t,mouseConfig:d}=l,{editStore:a,tableColumn:s}=l,u=l.computeEditOpts,c=u.mode,{actived:a,focused:h}=a;let{row:g,column:w}=r;var f=w.editRender,m=r.cell||l.getCellElement(g,w),p=u.beforeEditMethod||u.activeMethod;if((r.cell=m)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(f)&&!l.isPendingByRow(g)){if(a.row!==g||"cell"===c&&a.column!==w){let t="edit-disabled";if(!p||p(Object.assign(Object.assign({},r),{$table:l,$grid:n}))){d&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),l.closeTooltip(),a.column&&handleClearEdit(l,i),t="edit-activated",w.renderHeight=m.offsetHeight,a.args=r,a.row=g,a.column=w,"row"===c?s.forEach(e=>getEditColumnModel(g,e)):getEditColumnModel(g,w);let e=u.afterEditMethod;l.$nextTick(()=>{o&&l.handleFocus(r,i),e&&e(Object.assign(Object.assign({},r),{$table:l,$grid:n}))})}l.dispatchEvent(t,{row:g,rowIndex:l.getRowIndex(g),$rowIndex:l.getVMRowIndex(g),column:w,columnIndex:l.getColumnIndex(w),$columnIndex:l.getVMColumnIndex(w)},i),"edit-activated"===t&&l.dispatchEvent("edit-actived",{row:g,rowIndex:l.getRowIndex(g),$rowIndex:l.getVMRowIndex(g),column:w,columnIndex:l.getColumnIndex(w),$columnIndex:l.getVMColumnIndex(w)},i)}else{t=a.column;d&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),t!==w&&(f=t.model,f.update&&(0,_util.setCellValue)(g,t,f.value),l.clearValidate)&&l.clearValidate(g,w),w.renderHeight=m.offsetHeight,a.args=r,a.column=w,e&&setTimeout(()=>{l.handleFocus(r,i)})}h.column=null,h.row=null,l.focus()}return l.$nextTick()}function handleEditCell(t,l,e,r){let i=t;var o=t.editConfig;let n=_xeUtils.default.isString(e)?t.getColumnByField(e):e;return l&&n&&(0,_utils.isEnableConf)(o)&&(0,_utils.isEnableConf)(n.editRender)?Promise.resolve(r?t.scrollToRow(l,n):null).then(()=>{var e=t.getCellElement(l,n);return e&&(handleEditActive(t,{row:l,rowIndex:t.getRowIndex(l),column:n,columnIndex:t.getColumnIndex(n),cell:e,$table:t},null,r,r),i._lastCallTime=Date.now()),t.$nextTick()}):t.$nextTick()}var _default=exports.default={methods:{_insert(e){return handleInsertRowAt(this,e,null)},_insertAt(e,t){return handleInsertRowAt(this,e,t)},_insertNextAt(e,t){return handleInsertRowAt(this,e,t,!0)},_insertChild(e,t){return handleInsertChildRowAt(this,e,t,null)},_insertChildAt(e,t,l){return handleInsertChildRowAt(this,e,t,l)},_insertChildNextAt(e,t,l){return handleInsertChildRowAt(this,e,t,l,!0)},_remove(e){let l=this;var t=l,r=l,t=t.treeConfig,i=r.editStore;let{tableFullTreeData:o,selectCheckboxMaps:n,afterFullData:d,mergeBodyList:a,tableFullData:s,pendingRowMaps:u,insertRowMaps:c,removeRowMaps:h}=l;var g=l.computeCheckboxOpts,w=l.computeTreeOpts;let{transform:f,mapChildrenField:m}=w,p=w.children||w.childrenField;w=i.actived,i=g.checkField;let x=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=s,e.forEach(e=>{var t;l.isInsertByRow(e)||(t=(0,_util.getRowid)(l,e),h[t]=e)}),i||(e.forEach(e=>{e=(0,_util.getRowid)(this,e);n[e]&&delete n[e]}),r.updateCheckboxFlag++),s===e?(e=x=s.slice(0),this.tableFullData=[],this.afterFullData=[],this.clearMergeCells()):t&&f?e.forEach(e=>{let t=(0,_util.getRowid)(this,e);var l=_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(this,e),{children:m}),l=(l&&(l=l.items.splice(l.index,1),x.push(l[0])),_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(this,e),{children:p})),l=(l&&l.items.splice(l.index,1),this.findRowIndexOf(d,e));-1<l&&d.splice(l,1)}):e.forEach(e=>{var t=this.findRowIndexOf(s,e);-1<t&&(t=s.splice(t,1),x.push(t[0]));let r=this.findRowIndexOf(d,e);-1<r&&(a.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),d.splice(r,1))}),w.row&&-1<l.findRowIndexOf(e,w.row)&&l.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(l,e);c[e]&&delete c[e],u[e]&&delete u[e]}),r.removeRowFlag++,r.insertRowFlag++,r.pendingRowFlag++,l.cacheRowMap(!1),l.handleTableData(t&&f),l.updateFooter(),l.handleUpdateBodyMerge(),t&&f||l.updateAfterDataIndex(),l.checkSelectionStatus(),r.scrollYLoad&&l.updateScrollYSpace(),this.$nextTick().then(()=>(this.updateCellAreas(),this.recalculate())).then(()=>({row:x.length?x[x.length-1]:null,rows:x}))},_removeCheckboxRow(){return this.remove(this.getCheckboxRecords()).then(e=>(this.clearCheckboxRow(),e))},_removeRadioRow(){var e=this.getRadioRecord();return this.remove(e||[]).then(e=>(this.clearRadioRow(),e))},_removeCurrentRow(){var e=this.getCurrentRecord();return this.remove(e||[]).then(e=>(this.clearCurrentRow(),e))},_getRecordset(){var e=this.getRemoveRecords(),t=this.getPendingRecords();let l=e.concat(t);var r=this.getUpdateRecords().filter(t=>!l.some(e=>this.eqRow(e,t)));return{insertRecords:this.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},_getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=this,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},_getRemoveRecords(){var e=this.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},_getUpdateRecords(){let t=this;var{keepSource:e,treeConfig:l}=t,r=t.tableFullData,i=t.computeTreeOpts;return e?(syncActivedCell(t),l?_xeUtils.default.filterTree(r,e=>t.isUpdateByRow(e),i):r.filter(e=>t.isUpdateByRow(e))):[]},handleEdit(e,t){return handleEditActive(this,e,t,!0,!0)},handleActived(e,t){return this.handleEdit(e,t)},_getColumnModel(e,t){getEditColumnModel(e,t)},_setColumnModel(e,t){setEditColumnModel(e,t)},_syncActivedCell(){syncActivedCell(this)},_clearActived(e){return(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},_clearEdit(e){return handleClearEdit(this,null,e)},handleClearEdit(e,t){return handleClearEdit(this,e,t)},_getActiveRecord(){return(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},_getEditRecord(){var e=this.editStore,t=this.afterFullData,l=this.$refs.refElem,{args:e,row:r}=e.actived;return e&&-1<this.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},_isActiveByRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},_isEditByRow(e){var t=this.editStore;return t.actived.row===e},handleFocus(r){var{row:i,column:o,cell:n}=r,d=o.editRender,a=this.computeEditOpts;if((0,_utils.isEnableConf)(d)){var s=renderer.get(d.name);let e=d.autofocus||d.autoFocus,t=d.autoSelect||d.autoselect,l;a.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autoFocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e.call(this,r):e&&(l=!0===e?n.querySelector("input,textarea"):n.querySelector(e))&&l.focus()),l?t?l.select():browseObj.msie&&((d=l.createTextRange()).collapse(!1),d.select()):a.autoPos&&!o.fixed&&this.scrollToRow(i,o)}},_setActiveRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),this.setEditRow(e)},_setEditRow(e,t){let l=_xeUtils.default.find(this.visibleColumn,e=>(0,_utils.isEnableConf)(e.editRender)),r=!1;return t&&(r=!0)!==t&&(l=_xeUtils.default.isString(t)?this.getColumnByField(t):t),handleEditCell(this,e,l,r)},_setActiveCell(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(e,t){return handleEditCell(this,e,t,!0)},_setSelectCell(e,t){var l=this,r=l.tableData,i=l.computeEditOpts,t=_xeUtils.default.isString(t)?l.getColumnByField(t):t;return e&&t&&"manual"!==i.trigger&&-1<(i=l.findRowIndexOf(r,e))&&(r=l.getCellElement(e,t),e={row:e,rowIndex:i,column:t,columnIndex:l.getColumnIndex(t),cell:r},l.handleSelected(e,{})),l.$nextTick()},handleSelected(e,t){let l=this;var r=l.mouseConfig,i=l.editStore,o=l.computeMouseOpts;let n=l.computeEditOpts,{actived:d,selected:a}=i,{row:s,column:u}=e,c=r&&o.selected;return!c||a.row===s&&a.column===u||(d.row!==s||"cell"===n.mode&&d.column!==u)&&(handleClearEdit(l,t),l.clearSelected(),l.clearCellAreas&&(l.clearCellAreas(),l.clearCopyCellArea()),a.args=e,a.row=s,a.column=u,c&&this.addCellSelectedClass(),l.focus(),t)&&l.dispatchEvent("cell-selected",e,t),l.$nextTick()},_getSelectedCell(){var e=this.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},_clearSelected(){var e=this.editStore,e=e.selected;return e.row=null,e.column=null,removeCellSelectedClass(this),this.$nextTick()},reColTitleSdCls(){var e=this.elemStore["main-header-list"];e&&_xeUtils.default.arrayEach(e.querySelectorAll(".col--title-selected"),e=>(0,_dom.removeClass)(e,"col--title-selected"))},addCellSelectedClass(){var e=this.editStore,e=e.selected,{row:e,column:t}=e;removeCellSelectedClass(this),e&&t&&(e=this.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}}};
@@ -4,8 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- exports.readLocalFile = readLocalFile;
8
- exports.saveLocalFile = saveLocalFile;
9
7
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
10
8
  var _ui = require("../../../ui");
11
9
  var _util = require("../../src/util");
@@ -19,9 +17,6 @@ const {
19
17
  renderer
20
18
  } = _ui.VxeUI;
21
19
  let htmlCellElem;
22
- // 导入
23
- let fileForm;
24
- let fileInput;
25
20
  const csvBOM = '\ufeff';
26
21
  const enterSymbol = '\r\n';
27
22
  function hasTreeChildren($xeTable, row) {
@@ -46,7 +41,7 @@ function getSeq($xeTable, cellValue, row, $rowIndex, column, $columnIndex) {
46
41
  return cellValue;
47
42
  }
48
43
  function defaultFilterExportColumn(column) {
49
- return column.field || ['seq', 'checkbox', 'radio'].indexOf(column.type) > -1;
44
+ return !!column.field || ['seq', 'checkbox', 'radio'].indexOf(column.type || '') === -1;
50
45
  }
51
46
  function toTableBorder(border) {
52
47
  if (border === true) {
@@ -601,41 +596,6 @@ function getContent($xeTable, opts, columns, datas) {
601
596
  }
602
597
  return '';
603
598
  }
604
- /**
605
- * 保存文件到本地
606
- * @param {*} options 参数
607
- */
608
- function saveLocalFile(options) {
609
- const {
610
- filename,
611
- type,
612
- content
613
- } = options;
614
- const name = `${filename}.${type}`;
615
- if (window.Blob) {
616
- const blob = content instanceof Blob ? content : (0, _util2.getExportBlobByContent)(_xeUtils.default.toValueString(content), options);
617
- if (navigator.msSaveBlob) {
618
- navigator.msSaveBlob(blob, name);
619
- } else {
620
- const url = URL.createObjectURL(blob);
621
- const linkElem = document.createElement('a');
622
- linkElem.target = '_blank';
623
- linkElem.download = name;
624
- linkElem.href = url;
625
- document.body.appendChild(linkElem);
626
- linkElem.click();
627
- document.body.removeChild(linkElem);
628
- requestAnimationFrame(() => {
629
- if (linkElem.parentNode) {
630
- linkElem.parentNode.removeChild(linkElem);
631
- }
632
- URL.revokeObjectURL(url);
633
- });
634
- }
635
- return Promise.resolve();
636
- }
637
- return Promise.reject(new Error(getI18n('vxe.error.notExp')));
638
- }
639
599
  function downloadFile($xeTable, opts, content) {
640
600
  const {
641
601
  filename,
@@ -650,22 +610,22 @@ function downloadFile($xeTable, opts, content) {
650
610
  blob
651
611
  });
652
612
  }
653
- saveLocalFile({
654
- filename,
655
- type,
656
- content
657
- }).then(() => {
658
- if (opts.message !== false) {
659
- // 检测弹窗模块
660
- if (!_ui.VxeUI.modal) {
661
- (0, _log.errLog)('vxe.error.reqModule', ['Modal']);
613
+ if (_ui.VxeUI.saveFile) {
614
+ _ui.VxeUI.saveFile({
615
+ filename,
616
+ type,
617
+ content
618
+ }).then(() => {
619
+ if (opts.message !== false) {
620
+ if (_ui.VxeUI.modal) {
621
+ _ui.VxeUI.modal.message({
622
+ content: getI18n('vxe.table.expSuccess'),
623
+ status: 'success'
624
+ });
625
+ }
662
626
  }
663
- _ui.VxeUI.modal.message({
664
- content: getI18n('vxe.table.expSuccess'),
665
- status: 'success'
666
- });
667
- }
668
- });
627
+ });
628
+ }
669
629
  }
670
630
  function clearColumnConvert(columns) {
671
631
  _xeUtils.default.eachTree(columns, column => {
@@ -1094,72 +1054,6 @@ function handleCloseExport() {
1094
1054
  }
1095
1055
  return Promise.resolve();
1096
1056
  }
1097
- /**
1098
- * 读取本地文件
1099
- * @param {*} options 参数
1100
- */
1101
- function readLocalFile(options = {}) {
1102
- if (!fileForm) {
1103
- fileForm = document.createElement('form');
1104
- fileInput = document.createElement('input');
1105
- fileForm.className = 'vxe-table--file-form';
1106
- fileInput.name = 'file';
1107
- fileInput.type = 'file';
1108
- fileForm.appendChild(fileInput);
1109
- document.body.appendChild(fileForm);
1110
- }
1111
- return new Promise((resolve, reject) => {
1112
- const types = options.types || [];
1113
- const isAllType = !types.length || types.some(type => type === '*');
1114
- fileInput.multiple = !!options.multiple;
1115
- fileInput.accept = isAllType ? '' : `.${types.join(', .')}`;
1116
- fileInput.onchange = evnt => {
1117
- const {
1118
- files
1119
- } = evnt.target;
1120
- const file = files[0];
1121
- let errType;
1122
- // 校验类型
1123
- if (!isAllType) {
1124
- for (let fIndex = 0; fIndex < files.length; fIndex++) {
1125
- const {
1126
- type
1127
- } = (0, _utils.parseFile)(files[fIndex]);
1128
- if (!_xeUtils.default.includes(types, type)) {
1129
- errType = type;
1130
- break;
1131
- }
1132
- }
1133
- }
1134
- if (!errType) {
1135
- resolve({
1136
- status: true,
1137
- files,
1138
- file
1139
- });
1140
- } else {
1141
- if (options.message !== false) {
1142
- // 检测弹窗模块
1143
- if (!_ui.VxeUI.modal) {
1144
- (0, _log.errLog)('vxe.error.reqModule', ['Modal']);
1145
- }
1146
- _ui.VxeUI.modal.message({
1147
- content: getI18n('vxe.error.notType', [errType]),
1148
- status: 'error'
1149
- });
1150
- }
1151
- const params = {
1152
- status: false,
1153
- files,
1154
- file
1155
- };
1156
- reject(params);
1157
- }
1158
- };
1159
- fileForm.reset();
1160
- fileInput.click();
1161
- });
1162
- }
1163
1057
  function handleFilterColumns(exportOpts, column, columns) {
1164
1058
  return columns.some(item => {
1165
1059
  if ((0, _util.isColumnInfo)(item)) {
@@ -1195,7 +1089,7 @@ function handleFilterFields(exportOpts, column, includeFields, excludeFields) {
1195
1089
  }
1196
1090
  return false;
1197
1091
  }
1198
- return exportOpts.original ? column.field : defaultFilterExportColumn(column);
1092
+ return exportOpts.original ? !!column.field : defaultFilterExportColumn(column);
1199
1093
  }
1200
1094
  function handleExportAndPrint($xeTable, options, isPrint) {
1201
1095
  const props = $xeTable;
@@ -1267,7 +1161,7 @@ function handleExportAndPrint($xeTable, options, isPrint) {
1267
1161
  });
1268
1162
  // 默认选中
1269
1163
  _xeUtils.default.eachTree(exportColumns, (column, index, items, path, parent) => {
1270
- const isColGroup = column.children && column.children.length;
1164
+ const isColGroup = column.children && column.children.length > 0;
1271
1165
  let isChecked = false;
1272
1166
  if (columns && columns.length) {
1273
1167
  isChecked = handleFilterColumns(defOpts, column, columns);
@@ -1407,14 +1301,14 @@ var _default = exports.default = {
1407
1301
  showFooter
1408
1302
  } = props;
1409
1303
  const {
1410
- mergeFooterList,
1411
1304
  isGroup
1412
1305
  } = reactData;
1413
1306
  const {
1414
1307
  tableFullColumn,
1415
1308
  afterFullData,
1309
+ collectColumn,
1416
1310
  mergeBodyList,
1417
- collectColumn
1311
+ mergeFooterList
1418
1312
  } = internalData;
1419
1313
  const exportOpts = $xeTable.computeExportOpts;
1420
1314
  const treeOpts = $xeTable.computeTreeOpts;
@@ -1462,29 +1356,36 @@ var _default = exports.default = {
1462
1356
  if (!mode) {
1463
1357
  mode = selectRecords.length ? 'selected' : 'current';
1464
1358
  }
1465
- const customCols = columns && columns.length ? columns : _xeUtils.default.searchTree(collectColumn, column => {
1466
- const isColGroup = column.children && column.children.length;
1467
- let isChecked = false;
1468
- if (columns && columns.length) {
1469
- isChecked = handleFilterColumns(opts, column, columns);
1470
- } else if (excludeFields || includeFields) {
1471
- isChecked = handleFilterFields(opts, column, includeFields, excludeFields);
1472
- } else {
1473
- isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
1474
- }
1475
- return isChecked;
1476
- }, {
1477
- children: 'children',
1478
- mapChildren: 'childNodes',
1479
- original: true
1480
- });
1359
+ let isCustomCol = false;
1360
+ let customCols = [];
1361
+ if (columns && columns.length) {
1362
+ isCustomCol = true;
1363
+ customCols = columns;
1364
+ } else {
1365
+ customCols = _xeUtils.default.searchTree(collectColumn, column => {
1366
+ const isColGroup = column.children && column.children.length > 0;
1367
+ let isChecked = false;
1368
+ if (columns && columns.length) {
1369
+ isChecked = handleFilterColumns(opts, column, columns);
1370
+ } else if (excludeFields || includeFields) {
1371
+ isChecked = handleFilterFields(opts, column, includeFields, excludeFields);
1372
+ } else {
1373
+ isChecked = column.visible && (isColGroup || defaultFilterExportColumn(column));
1374
+ }
1375
+ return isChecked;
1376
+ }, {
1377
+ children: 'children',
1378
+ mapChildren: 'childNodes',
1379
+ original: true
1380
+ });
1381
+ }
1481
1382
  const handleOptions = Object.assign({}, opts, {
1482
1383
  filename: '',
1483
1384
  sheetName: ''
1484
1385
  });
1485
1386
  // 如果设置源数据,则默认导出设置了字段的列
1486
- if (!customCols && !columnFilterMethod) {
1487
- handleOptions.columnFilterMethod = ({
1387
+ if (!isCustomCol && !columnFilterMethod) {
1388
+ columnFilterMethod = ({
1488
1389
  column
1489
1390
  }) => {
1490
1391
  if (excludeFields) {
@@ -1498,8 +1399,9 @@ var _default = exports.default = {
1498
1399
  }
1499
1400
  return false;
1500
1401
  }
1501
- return original ? column.field : defaultFilterExportColumn(column);
1402
+ return original ? !!column.field : defaultFilterExportColumn(column);
1502
1403
  };
1404
+ handleOptions.columnFilterMethod = columnFilterMethod;
1503
1405
  }
1504
1406
  if (customCols) {
1505
1407
  handleOptions._isCustomColumn = true;
@@ -1530,6 +1432,7 @@ var _default = exports.default = {
1530
1432
  children: 'childNodes',
1531
1433
  mapChildren: '_children'
1532
1434
  }), (column, index) => (0, _util.isColumnInfo)(column) && (!columnFilterMethod || columnFilterMethod({
1435
+ $table: $xeTable,
1533
1436
  column: column,
1534
1437
  $columnIndex: index
1535
1438
  })), {
@@ -1539,6 +1442,7 @@ var _default = exports.default = {
1539
1442
  });
1540
1443
  } else {
1541
1444
  groups = _xeUtils.default.searchTree(isGroup ? collectColumn : tableFullColumn, (column, index) => column.visible && (!columnFilterMethod || columnFilterMethod({
1445
+ $table: $xeTable,
1542
1446
  column,
1543
1447
  $columnIndex: index
1544
1448
  })), {
@@ -1591,10 +1495,8 @@ var _default = exports.default = {
1591
1495
  // 检查类型,如果为自定义导出,则不需要校验类型
1592
1496
  if (!handleOptions.exportMethod && !_xeUtils.default.includes(_xeUtils.default.keys(exportOpts._typeMaps), type)) {
1593
1497
  (0, _log.errLog)('vxe.error.notType', [type]);
1594
- if (process.env.NODE_ENV === 'development') {
1595
- if (['xlsx', 'pdf'].includes(type)) {
1596
- (0, _log.warnLog)('vxe.error.reqPlugin', [4, 'plugin-export-xlsx']);
1597
- }
1498
+ if (['xlsx', 'pdf'].includes(type)) {
1499
+ (0, _log.warnLog)('vxe.error.reqPlugin', [4, 'plugin-export-xlsx']);
1598
1500
  }
1599
1501
  const params = {
1600
1502
  status: false
@@ -1621,10 +1523,8 @@ var _default = exports.default = {
1621
1523
  handleOptions.data = selectRecords;
1622
1524
  }
1623
1525
  } else if (mode === 'all') {
1624
- if (process.env.NODE_ENV === 'development') {
1625
- if (!$xeGrid) {
1626
- (0, _log.warnLog)('vxe.error.errProp', ['all', 'mode=current,selected']);
1627
- }
1526
+ if (!$xeGrid) {
1527
+ (0, _log.errLog)('vxe.error.errProp', ['all', 'mode=current,selected']);
1628
1528
  }
1629
1529
  if ($xeGrid && !handleOptions.remote) {
1630
1530
  const gridReactData = $xeGrid;
@@ -1641,10 +1541,8 @@ var _default = exports.default = {
1641
1541
  const ajaxMethods = ajax.queryAll;
1642
1542
  const queryAllSuccessMethods = ajax.queryAllSuccess;
1643
1543
  const queryAllErrorMethods = ajax.queryAllError;
1644
- if (process.env.NODE_ENV === 'development') {
1645
- if (!ajaxMethods) {
1646
- (0, _log.warnLog)('vxe.error.notFunc', ['proxy-config.ajax.queryAll']);
1647
- }
1544
+ if (!ajaxMethods) {
1545
+ (0, _log.errLog)('vxe.error.notFunc', ['proxy-config.ajax.queryAll']);
1648
1546
  }
1649
1547
  if (ajaxMethods) {
1650
1548
  const params = {
@@ -1687,6 +1585,7 @@ var _default = exports.default = {
1687
1585
  return handleExport($xeTable, handleOptions);
1688
1586
  },
1689
1587
  _importByFile(file, options) {
1588
+ const $xeTable = this;
1690
1589
  const opts = Object.assign({}, options);
1691
1590
  const {
1692
1591
  beforeImportMethod
@@ -1694,12 +1593,13 @@ var _default = exports.default = {
1694
1593
  if (beforeImportMethod) {
1695
1594
  beforeImportMethod({
1696
1595
  options: opts,
1697
- $table: this
1596
+ $table: $xeTable
1698
1597
  });
1699
1598
  }
1700
- return handleFileImport(this, file, opts);
1599
+ return handleFileImport($xeTable, file, opts);
1701
1600
  },
1702
1601
  _importData(options) {
1602
+ const $xeTable = this;
1703
1603
  const {
1704
1604
  importOpts
1705
1605
  } = this;
@@ -1718,12 +1618,12 @@ var _default = exports.default = {
1718
1618
  $table: this
1719
1619
  });
1720
1620
  }
1721
- return readLocalFile(opts).catch(e => {
1621
+ return _ui.VxeUI.readFile(opts).catch(e => {
1722
1622
  if (afterImportMethod) {
1723
1623
  afterImportMethod({
1724
1624
  status: false,
1725
1625
  options: opts,
1726
- $table: this
1626
+ $table: $xeTable
1727
1627
  });
1728
1628
  }
1729
1629
  return Promise.reject(e);
@@ -1731,14 +1631,14 @@ var _default = exports.default = {
1731
1631
  const {
1732
1632
  file
1733
1633
  } = params;
1734
- return handleFileImport(this, file, opts);
1634
+ return handleFileImport($xeTable, file, opts);
1735
1635
  });
1736
1636
  },
1737
1637
  _saveFile(options) {
1738
- return saveLocalFile(options);
1638
+ return _ui.VxeUI.saveFile(options);
1739
1639
  },
1740
1640
  _readFile(options) {
1741
- return readLocalFile(options);
1641
+ return _ui.VxeUI.readFile(options);
1742
1642
  },
1743
1643
  _print(options) {
1744
1644
  const $xeTable = this;
@@ -1846,18 +1746,28 @@ var _default = exports.default = {
1846
1746
  return Promise.resolve();
1847
1747
  },
1848
1748
  _openImport(options) {
1749
+ const $xeTable = this;
1750
+ const props = $xeTable;
1751
+ const reactData = $xeTable;
1849
1752
  const {
1850
- importOpts
1851
- } = this;
1753
+ treeConfig,
1754
+ importConfig
1755
+ } = props;
1756
+ const {
1757
+ initStore,
1758
+ importStore,
1759
+ importParams
1760
+ } = reactData;
1761
+ const importOpts = $xeTable.computeImportOpts;
1852
1762
  const defOpts = Object.assign({
1853
1763
  mode: 'insertTop',
1854
1764
  message: true,
1855
1765
  types: _xeUtils.default.keys(importOpts._typeMaps),
1856
1766
  modes: ['insertTop', 'covering']
1857
- }, options, importOpts);
1767
+ }, importOpts, options);
1858
1768
  const types = defOpts.types || [];
1859
1769
  const modes = defOpts.modes || [];
1860
- const isTree = !!this.getTreeStatus();
1770
+ const isTree = !!treeConfig;
1861
1771
  if (isTree) {
1862
1772
  if (defOpts.message) {
1863
1773
  _ui.VxeUI.modal.message({
@@ -1867,7 +1777,7 @@ var _default = exports.default = {
1867
1777
  }
1868
1778
  return;
1869
1779
  }
1870
- if (!this.importConfig) {
1780
+ if (!importConfig) {
1871
1781
  (0, _log.errLog)('vxe.error.reqProp', ['import-config']);
1872
1782
  }
1873
1783
  // 处理类型
@@ -1889,7 +1799,7 @@ var _default = exports.default = {
1889
1799
  label: getI18n(`vxe.import.modes.${item}`)
1890
1800
  };
1891
1801
  });
1892
- Object.assign(this.importStore, {
1802
+ Object.assign(importStore, {
1893
1803
  file: null,
1894
1804
  type: '',
1895
1805
  filename: '',
@@ -1897,31 +1807,38 @@ var _default = exports.default = {
1897
1807
  typeList,
1898
1808
  visible: true
1899
1809
  });
1900
- Object.assign(this.importParams, defOpts);
1901
- if (!modeList.some(item => item.value === this.importParams.mode)) {
1902
- this.importParams.mode = modeList[0].value;
1810
+ Object.assign(importParams, defOpts);
1811
+ if (!modeList.some(item => item.value === importParams.mode)) {
1812
+ importParams.mode = modeList[0].value;
1903
1813
  }
1904
- this.initStore.import = true;
1814
+ initStore.import = true;
1905
1815
  },
1906
1816
  _closeExport: handleCloseExport,
1907
1817
  _openExport(options) {
1908
- const {
1909
- exportOpts
1910
- } = this;
1911
- if (!this.exportConfig) {
1818
+ const $xeTable = this;
1819
+ const props = $xeTable;
1820
+ const exportOpts = $xeTable.computeExportOpts;
1821
+ const defOpts = Object.assign({
1822
+ message: true,
1823
+ types: _xeUtils.default.keys(exportOpts._typeMaps)
1824
+ }, exportOpts, options);
1825
+ if (!props.exportConfig) {
1912
1826
  (0, _log.errLog)('vxe.error.reqProp', ['export-config']);
1913
1827
  }
1914
- return handleExportAndPrint(this, Object.assign({}, exportOpts, options));
1828
+ return handleExportAndPrint($xeTable, defOpts);
1915
1829
  },
1916
1830
  _closePrint: handleCloseExport,
1917
1831
  _openPrint(options) {
1918
- const {
1919
- printOpts
1920
- } = this;
1921
- if (!this.printConfig) {
1832
+ const $xeTable = this;
1833
+ const props = $xeTable;
1834
+ const printOpts = $xeTable.computePrintOpts;
1835
+ const defOpts = Object.assign({
1836
+ message: true
1837
+ }, printOpts, options);
1838
+ if (!props.printConfig) {
1922
1839
  (0, _log.errLog)('vxe.error.reqProp', ['print-config']);
1923
1840
  }
1924
- return handleExportAndPrint(this, Object.assign({}, printOpts, options), true);
1841
+ return handleExportAndPrint($xeTable, defOpts, true);
1925
1842
  }
1926
1843
  }
1927
1844
  };