vxe-table 3.21.13 → 3.21.14

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.
@@ -110,6 +110,7 @@ function insertTreeRow($xeTable, newRecords, isAppend) {
110
110
  const rest = {
111
111
  row: item,
112
112
  rowid,
113
+ _seq: -1,
113
114
  seq: -1,
114
115
  index: -1,
115
116
  _index: -1,
@@ -135,6 +136,7 @@ function insertTreeRow($xeTable, newRecords, isAppend) {
135
136
  const rest = {
136
137
  row: item,
137
138
  rowid,
139
+ _seq: -1,
138
140
  seq: -1,
139
141
  index: -1,
140
142
  _index: -1,
@@ -230,6 +232,7 @@ function handleInsertRowAt($xeTable, records, targetRowOrRowid, isInsertNextRow)
230
232
  const rest = {
231
233
  row: item,
232
234
  rowid,
235
+ _seq: -1,
233
236
  seq: -1,
234
237
  index: -1,
235
238
  _index: -1,
@@ -277,6 +280,7 @@ function handleInsertRowAt($xeTable, records, targetRowOrRowid, isInsertNextRow)
277
280
  const rest = {
278
281
  row: item,
279
282
  rowid,
283
+ _seq: -1,
280
284
  seq: -1,
281
285
  index: -1,
282
286
  _index: -1,
@@ -335,6 +339,7 @@ function handleInsertRowAt($xeTable, records, targetRowOrRowid, isInsertNextRow)
335
339
  const rest = {
336
340
  row: item,
337
341
  rowid,
342
+ _seq: -1,
338
343
  seq: -1,
339
344
  index: -1,
340
345
  _index: -1,
@@ -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:o}=t;r&&o&&("row"===e.mode?l.forEach(e=>setEditColumnModel(r,e)):setEditColumnModel(r,o))}function insertTreeRow(n,e,t){let{tableFullTreeData:a,afterFullData:d,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),o=t?_xeUtils.default.findTree(a,e=>t===e[c],{children:g}):null;if(o){var o=o.item,i=u[(0,_util.getRowid)(n,o)],i=i?i.level:0;let e=o[w],t=o[g];_xeUtils.default.isArray(e)||(e=o[w]=[]),_xeUtils.default.isArray(t)||(t=o[g]=[]),e[f](l),t[f](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:e,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=o,u[r]=o}else{t&&(0,_log.warnLog)("vxe.error.unableInsert"),d[f](l),a[f](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=i,u[r]=i}})}function handleInsertRowAt(a,t,e,d){var l=a;let o=a.treeConfig;var r=l.isRowGroupStatus;let{tableFullTreeData:s,afterFullData:i,mergeBodyList:n,tableFullData:u,fullDataRowIdData:c,fullAllDataRowIdData:h,insertRowMaps:g,removeRowMaps:w}=a;var f=a.computeTreeOpts;let{transform:x,parentField:m,rowField:v,mapChildrenField:p}=f,_=f.children||f.childrenField,R=(_xeUtils.default.isArray(t)||(t=[t]),e);if((_xeUtils.default.isString(e)||_xeUtils.default.isNumber(e))&&(f=h[e])&&(R=f.row),!t.length)return Promise.resolve({row:null,rows:[]});a.handlePushStack();let C=a.defineField(t.map(e=>Object.assign(o&&x?{[p]:[],[_]:[]}:{},e))),I=[];if(o&&x&&(I=_xeUtils.default.toArrayTree(C,{key:v,parentKey:m,children:_})),_xeUtils.default.eqNull(R))if(o&&x)insertTreeRow(a,C,!1);else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.errLog)(getI18n("vxe.error.noGroup",["insert"]))}else C.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[t]=l,h[t]=l,i.unshift(e),u.unshift(e)}),n.forEach(e=>{var t=e.row;0<=t&&(e.row=t+C.length)});else if(-1===R)if(o&&x)insertTreeRow(a,C,!0);else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.errLog)(getI18n("vxe.error.noGroup",["insert"]))}else C.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[t]=l,h[t]=l,i.push(e),u.push(e)});else if(o&&x){let n=_xeUtils.default.findTree(s,e=>R[v]===e[v],{children:p});if(n){let r=n.parent,o=r?r[p]:s;e=h[(0,_util.getRowid)(a,r)];let i=e?e.level:0;if(I.forEach((e,t)=>{r?e[m]!==r[v]&&((0,_log.errLog)("vxe.error.errProp",[m+"="+e[m],m+"="+r[v]]),e[m]=r[v]):null!==e[m]&&(_xeUtils.default.eqNull(e[m])||(0,_log.errLog)("vxe.error.errProp",[m+"="+e[m],"null"]),e[m]=null);let l=n.index+t;d&&(l+=1),o.splice(l,0,e)}),_xeUtils.default.eachTree(I,e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:o,parent:r,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};e[_]&&(e[p]=e[_]),c[t]=l,h[t]=l},{children:_}),r){f=_xeUtils.default.findTree(s,e=>R[v]===e[v],{children:_});if(f){t=f.items;let e=f.index;d&&(e+=1),t.splice(e,0,...I)}}}else(0,_log.warnLog)("vxe.error.unableInsert"),insertTreeRow(a,C,!0)}else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.errLog)(getI18n("vxe.error.noGroup",["insert"]))}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(R)?R<i.length&&(r=R):r=a.findRowIndexOf(i,R),-1===(r=d?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...C);e=a.findRowIndexOf(u,R);-1<e?u.splice(e+(d?1:0),0,...C):u.push(...C),n.forEach(e=>{var{row:t,rowspan:l}=e;t>=r?e.row=t+C.length:(d?t+l>=r:t+l>r)&&(e.rowspan=l+C.length)})}f=e=>{var t=(0,_util.getRowid)(a,e);w[t]?(delete w[t],g[t]&&delete g[t]):g[t]=e};return o&&x?_xeUtils.default.eachTree(I,f,{children:p}):C.forEach(f),l.removeRowFlag++,l.insertRowFlag++,a.cacheRowMap(!1),a.updateScrollYStatus(),a.handleTableData(o&&x),o&&x||a.updateAfterDataIndex(),a.updateFooter(),a.handleUpdateBodyMerge(),a.checkSelectionStatus(),l.scrollYLoad&&a.updateScrollYSpace(),a.$nextTick().then(()=>(a.updateCellAreas(),a.recalculate(!0))).then(()=>({row:C.length?C[C.length-1]:null,rows:C}))}function handleInsertChildRowAt(e,l,r,o,i){var n=e.treeConfig,a=e.fullAllDataRowIdData;let{transform:t,rowField:d,parentField:s}=e.computeTreeOpts;if(n&&t){_xeUtils.default.isArray(l)||(l=[l]);let t=r;return(_xeUtils.default.isString(r)||_xeUtils.default.isNumber(r))&&(n=a[r])&&(t=n.row),handleInsertRowAt(e,l.map(e=>Object.assign({},e,{[s]:t[d]})),o,i)}return(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:o}=r,{row:i,column:n}=r,a=e.computeValidOpts;if(i||n){if(l&&(0,_util.getRowid)(e,l)!==(0,_util.getRowid)(e,i))return e.$nextTick();syncActivedCell(e),e.updateFooter(),r.args=null,r.row=null,r.column=null,e.dispatchEvent("edit-closed",{row:i,rowIndex:e.getRowIndex(i),$rowIndex:e.getVMRowIndex(i),column:n,columnIndex:e.getColumnIndex(n),$columnIndex:e.getVMColumnIndex(n)},t||null)}return o.row=null,o.column=null,a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&e.clearValidate?e.clearValidate():e.$nextTick().then(()=>e.updateCellAreas())}function handleEditActive(l,r,o,i){let n=l.$xeGrid;var{editConfig:e,mouseConfig:a}=l,{editStore:d,tableColumn:s}=l,u=l.computeEditOpts,c=u.mode,{actived:d,focused:t}=d;let{row:h,column:g}=r;var w=g.editRender;let{isFocus:f,isPos:x,isClear:m}=i;var i=r.cell||l.getCellElement(h,g),v=u.beforeEditMethod||u.activeMethod;if((r.cell=i)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(w)&&!l.isPendingByRow(h)&&!l.isAggregateRecord(h)){if(d.row!==h||"cell"===c&&d.column!==g){let t="edit-disabled";if(!v||v(Object.assign(Object.assign({},r),{$table:l,$grid:n}))){a&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),l.closeTooltip(),d.column&&handleClearEdit(l,o),t="edit-activated",g.renderHeight=i.offsetHeight,d.args=r,d.row=h,d.column=g,l.handlePushStack(),m&&(0,_util.setCellValue)(h,g,null),"row"===c?s.forEach(e=>getEditColumnModel(h,e)):getEditColumnModel(h,g);let e=u.afterEditMethod;l.$nextTick(()=>{f&&l.handleFocus(r,o),e&&e(Object.assign(Object.assign({},r),{$table:l,$grid:n}))})}l.dispatchEvent(t,{row:h,rowIndex:l.getRowIndex(h),$rowIndex:l.getVMRowIndex(h),column:g,columnIndex:l.getColumnIndex(g),$columnIndex:l.getVMColumnIndex(g)},o),"edit-activated"===t&&l.dispatchEvent("edit-actived",{row:h,rowIndex:l.getRowIndex(h),$rowIndex:l.getVMRowIndex(h),column:g,columnIndex:l.getColumnIndex(g),$columnIndex:l.getVMColumnIndex(g)},o)}else{e=d.column;a&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),e&&e!==g&&(w=e.model,w.update&&(0,_util.setCellValue)(h,e,w.value),l.clearValidate)&&l.clearValidate(h,g),g.renderHeight=i.offsetHeight,d.args=r,d.column=g,x&&setTimeout(()=>{l.handleFocus(r,o)})}t.column=null,t.row=null,l.focus()}return l.$nextTick()}function handleEditCell(t,l,e,r){let o=t;var i=t.editConfig,n=r.isPos;let a=_xeUtils.default.isString(e)?t.getColumnByField(e):e;return l&&a&&(0,_utils.isEnableConf)(i)&&(0,_utils.isEnableConf)(a.editRender)&&!t.isAggregateRecord(l)?Promise.resolve(n?t.scrollToRow(l,a):null).then(()=>{var e=t.getCellElement(l,a);return e&&(handleEditActive(t,{row:l,rowIndex:t.getRowIndex(l),column:a,columnIndex:t.getColumnIndex(a),cell:e,$table:t},null,r),o._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 o=this;var t=o,l=o,r=o,t=t.treeConfig,{editStore:i,isRowGroupStatus:n}=l;let{tableFullTreeData:a,selectCheckboxMaps:d,afterFullData:s,mergeBodyList:u,tableFullData:c,pendingRowMaps:h,insertRowMaps:g,removeRowMaps:w}=r;var f=o.computeCheckboxOpts,x=o.computeTreeOpts;let{transform:m,mapChildrenField:v}=x,p=x.children||x.childrenField;x=i.actived,i=f.checkField;let _=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=c,e.length?(o.handlePushStack(),e.forEach(e=>{var t;o.isInsertByRow(e)||(t=(0,_util.getRowid)(o,e),w[t]=e)}),i||(e.forEach(e=>{e=(0,_util.getRowid)(this,e);d[e]&&delete d[e]}),l.updateCheckboxFlag++),c===e?(e=_=c.slice(0),r.tableFullData=[],r.afterFullData=[],o.clearMergeCells()):t&&m?e.forEach(e=>{let t=(0,_util.getRowid)(o,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(o,e),{children:v}),l=(l&&(l=l.items.splice(l.index,1),_.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(o,e),{children:p})),l=(l&&l.items.splice(l.index,1),o.findRowIndexOf(s,e));-1<l&&s.splice(l,1)}):n?(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"])):e.forEach(e=>{var t=o.findRowIndexOf(c,e);-1<t&&(t=c.splice(t,1),_.push(t[0]));let r=o.findRowIndexOf(s,e);-1<r&&(u.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),s.splice(r,1))}),x.row&&-1<o.findRowIndexOf(e,x.row)&&o.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(o,e);g[e]&&delete g[e],h[e]&&delete h[e]}),l.removeRowFlag++,l.insertRowFlag++,l.pendingRowFlag++,o.cacheRowMap(!1),o.handleTableData(t&&m),o.updateFooter(),o.handleUpdateBodyMerge(),t&&m||o.updateAfterDataIndex(),o.checkSelectionStatus(),l.scrollYLoad&&o.updateScrollYSpace(),o.$nextTick().then(()=>(o.updateCellAreas(),o.recalculate(!0))).then(()=>({row:_.length?_[_.length-1]:null,rows:_}))):Promise.resolve({row:null,rows:[]})},_removeCheckboxRow(){let t=this;return t.remove(t.getCheckboxRecords()).then(e=>(t.clearCheckboxRow(),e))},_removeRadioRow(){let t=this;var e=t.getRadioRecord();return t.remove(e||[]).then(e=>(t.clearRadioRow(),e))},_removeCurrentRow(){let t=this;var e=t.getCurrentRecord();return t.remove(e||[]).then(e=>(t.clearCurrentRow(),e))},_getRecordset(){let l=this;var e=l.getRemoveRecords(),t=l.getPendingRecords();let r=e.concat(t);var o=l.getUpdateRecords().filter(t=>!r.some(e=>l.eqRow(e,t)));return{insertRecords:l.getInsertRecords(),removeRecords:e,updateRecords:o,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,o=t.computeTreeOpts;return e?(syncActivedCell(t),l?_xeUtils.default.filterTree(r,e=>t.isUpdateByRow(e),o):r.filter(e=>t.isUpdateByRow(e))):[]},handleEdit(e,t,l){return handleEditActive(this,e,t,Object.assign({isFocus:!0,isPos:!0},l))},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(){var e=((0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditCell"]),this).editStore,t=this.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(this,l)]?Object.assign({},e,{row:l}):null},_getEditRecord(){var e=((0,_log.warnLog)("vxe.error.delFunc",["getEditRecord","getEditCell"]),this).editStore,t=this.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(this,l)]?Object.assign({},e,{row:l}):null},_getEditCell(){var e=this.editStore,{row:e,column:t}=e.actived;return t&&e?{row:e,rowIndex:this.getRowIndex(e),column:t,columnIndex:this.getColumnIndex(t)}: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:o,column:i,cell:n}=r,a=i.editRender,d=this.computeEditOpts;if((0,_utils.isEnableConf)(a)){var s=renderer.get(a.name);let e=a.autofocus||a.autoFocus,t=a.autoSelect||a.autoselect,l;d.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&&((a=l.createTextRange()).collapse(!1),a.select()):d.autoPos&&!i.fixed&&this.scrollToRow(o,i)}},_setActiveRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),this.setEditRow(e)},_setEditRow(e,t,l){var r=this.visibleColumn;let o=_xeUtils.default.find(r,e=>(0,_utils.isEnableConf)(e.editRender)),i=!1;return t&&(i=!0)!==t&&(o=_xeUtils.default.isString(t)?this.getColumnByField(t):t),handleEditCell(this,e,o,Object.assign({isPos:i,isFocus:i},l))},_setActiveCell(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(e,t,l){return handleEditCell(this,e,t,Object.assign({isFocus:!0,isPos:!0},l))},_setSelectCell(e,t){var l=this,r=l.tableData,o=l.computeEditOpts,t=_xeUtils.default.isString(t)?l.getColumnByField(t):t;return e&&t&&"manual"!==o.trigger&&-1<(o=l.findRowIndexOf(r,e))&&(r=l.getCellElement(e,t),e={row:e,rowIndex:o,column:t,columnIndex:l.getColumnIndex(t),cell:r},l.handleSelected(e,{})),l.$nextTick()},handleSelected(e,t){let l=this;var r=l.mouseConfig,o=l.editStore,i=l.computeMouseOpts;let n=l.computeEditOpts,{actived:a,selected:d}=o,{row:s,column:u}=e,c=r&&i.selected;return!c||d.row===s&&d.column===u||(a.row!==s||"cell"===n.mode&&a.column!==u)&&(handleClearEdit(l,t),l.clearSelected(),l.clearCellAreas&&(l.clearCellAreas(),l.clearCopyCellArea()),d.args=e,d.row=s,d.column=u,c&&l.addCellSelectedClass(),l.focus(),t)&&l.dispatchEvent("cell-selected",e,t),l.$nextTick()},_getSelectedCell(){var e=this.editStore,{row:e,column:t}=e.selected;return e&&t?{row:e,column:t}: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,e=e["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:o}=t;r&&o&&("row"===e.mode?l.forEach(e=>setEditColumnModel(r,e)):setEditColumnModel(r,o))}function insertTreeRow(n,e,t){let{tableFullTreeData:a,afterFullData:d,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),o=t?_xeUtils.default.findTree(a,e=>t===e[c],{children:g}):null;if(o){var o=o.item,i=u[(0,_util.getRowid)(n,o)],i=i?i.level:0;let e=o[w],t=o[g];_xeUtils.default.isArray(e)||(e=o[w]=[]),_xeUtils.default.isArray(t)||(t=o[g]=[]),e[f](l),t[f](l);o={row:l,rowid:r,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:e,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=o,u[r]=o}else{t&&(0,_log.warnLog)("vxe.error.unableInsert"),d[f](l),a[f](l);i={row:l,rowid:r,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=i,u[r]=i}})}function handleInsertRowAt(a,t,e,d){var l=a;let o=a.treeConfig;var r=l.isRowGroupStatus;let{tableFullTreeData:s,afterFullData:i,mergeBodyList:n,tableFullData:u,fullDataRowIdData:c,fullAllDataRowIdData:h,insertRowMaps:g,removeRowMaps:w}=a;var f=a.computeTreeOpts;let{transform:x,parentField:m,rowField:v,mapChildrenField:p}=f,_=f.children||f.childrenField,R=(_xeUtils.default.isArray(t)||(t=[t]),e);if((_xeUtils.default.isString(e)||_xeUtils.default.isNumber(e))&&(f=h[e])&&(R=f.row),!t.length)return Promise.resolve({row:null,rows:[]});a.handlePushStack();let C=a.defineField(t.map(e=>Object.assign(o&&x?{[p]:[],[_]:[]}:{},e))),I=[];if(o&&x&&(I=_xeUtils.default.toArrayTree(C,{key:v,parentKey:m,children:_})),_xeUtils.default.eqNull(R))if(o&&x)insertTreeRow(a,C,!1);else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.errLog)(getI18n("vxe.error.noGroup",["insert"]))}else C.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[t]=l,h[t]=l,i.unshift(e),u.unshift(e)}),n.forEach(e=>{var t=e.row;0<=t&&(e.row=t+C.length)});else if(-1===R)if(o&&x)insertTreeRow(a,C,!0);else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.errLog)(getI18n("vxe.error.noGroup",["insert"]))}else C.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[t]=l,h[t]=l,i.push(e),u.push(e)});else if(o&&x){let n=_xeUtils.default.findTree(s,e=>R[v]===e[v],{children:p});if(n){let r=n.parent,o=r?r[p]:s;e=h[(0,_util.getRowid)(a,r)];let i=e?e.level:0;if(I.forEach((e,t)=>{r?e[m]!==r[v]&&((0,_log.errLog)("vxe.error.errProp",[m+"="+e[m],m+"="+r[v]]),e[m]=r[v]):null!==e[m]&&(_xeUtils.default.eqNull(e[m])||(0,_log.errLog)("vxe.error.errProp",[m+"="+e[m],"null"]),e[m]=null);let l=n.index+t;d&&(l+=1),o.splice(l,0,e)}),_xeUtils.default.eachTree(I,e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:o,parent:r,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};e[_]&&(e[p]=e[_]),c[t]=l,h[t]=l},{children:_}),r){f=_xeUtils.default.findTree(s,e=>R[v]===e[v],{children:_});if(f){t=f.items;let e=f.index;d&&(e+=1),t.splice(e,0,...I)}}}else(0,_log.warnLog)("vxe.error.unableInsert"),insertTreeRow(a,C,!0)}else if(r){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.errLog)(getI18n("vxe.error.noGroup",["insert"]))}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(R)?R<i.length&&(r=R):r=a.findRowIndexOf(i,R),-1===(r=d?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...C);e=a.findRowIndexOf(u,R);-1<e?u.splice(e+(d?1:0),0,...C):u.push(...C),n.forEach(e=>{var{row:t,rowspan:l}=e;t>=r?e.row=t+C.length:(d?t+l>=r:t+l>r)&&(e.rowspan=l+C.length)})}f=e=>{var t=(0,_util.getRowid)(a,e);w[t]?(delete w[t],g[t]&&delete g[t]):g[t]=e};return o&&x?_xeUtils.default.eachTree(I,f,{children:p}):C.forEach(f),l.removeRowFlag++,l.insertRowFlag++,a.cacheRowMap(!1),a.updateScrollYStatus(),a.handleTableData(o&&x),o&&x||a.updateAfterDataIndex(),a.updateFooter(),a.handleUpdateBodyMerge(),a.checkSelectionStatus(),l.scrollYLoad&&a.updateScrollYSpace(),a.$nextTick().then(()=>(a.updateCellAreas(),a.recalculate(!0))).then(()=>({row:C.length?C[C.length-1]:null,rows:C}))}function handleInsertChildRowAt(e,l,r,o,i){var n=e.treeConfig,a=e.fullAllDataRowIdData;let{transform:t,rowField:d,parentField:s}=e.computeTreeOpts;if(n&&t){_xeUtils.default.isArray(l)||(l=[l]);let t=r;return(_xeUtils.default.isString(r)||_xeUtils.default.isNumber(r))&&(n=a[r])&&(t=n.row),handleInsertRowAt(e,l.map(e=>Object.assign({},e,{[s]:t[d]})),o,i)}return(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:o}=r,{row:i,column:n}=r,a=e.computeValidOpts;if(i||n){if(l&&(0,_util.getRowid)(e,l)!==(0,_util.getRowid)(e,i))return e.$nextTick();syncActivedCell(e),e.updateFooter(),r.args=null,r.row=null,r.column=null,e.dispatchEvent("edit-closed",{row:i,rowIndex:e.getRowIndex(i),$rowIndex:e.getVMRowIndex(i),column:n,columnIndex:e.getColumnIndex(n),$columnIndex:e.getVMColumnIndex(n)},t||null)}return o.row=null,o.column=null,a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&e.clearValidate?e.clearValidate():e.$nextTick().then(()=>e.updateCellAreas())}function handleEditActive(l,r,o,i){let n=l.$xeGrid;var{editConfig:e,mouseConfig:a}=l,{editStore:d,tableColumn:s}=l,u=l.computeEditOpts,c=u.mode,{actived:d,focused:t}=d;let{row:h,column:g}=r;var w=g.editRender;let{isFocus:f,isPos:x,isClear:m}=i;var i=r.cell||l.getCellElement(h,g),v=u.beforeEditMethod||u.activeMethod;if((r.cell=i)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(w)&&!l.isPendingByRow(h)&&!l.isAggregateRecord(h)){if(d.row!==h||"cell"===c&&d.column!==g){let t="edit-disabled";if(!v||v(Object.assign(Object.assign({},r),{$table:l,$grid:n}))){a&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),l.closeTooltip(),d.column&&handleClearEdit(l,o),t="edit-activated",g.renderHeight=i.offsetHeight,d.args=r,d.row=h,d.column=g,l.handlePushStack(),m&&(0,_util.setCellValue)(h,g,null),"row"===c?s.forEach(e=>getEditColumnModel(h,e)):getEditColumnModel(h,g);let e=u.afterEditMethod;l.$nextTick(()=>{f&&l.handleFocus(r,o),e&&e(Object.assign(Object.assign({},r),{$table:l,$grid:n}))})}l.dispatchEvent(t,{row:h,rowIndex:l.getRowIndex(h),$rowIndex:l.getVMRowIndex(h),column:g,columnIndex:l.getColumnIndex(g),$columnIndex:l.getVMColumnIndex(g)},o),"edit-activated"===t&&l.dispatchEvent("edit-actived",{row:h,rowIndex:l.getRowIndex(h),$rowIndex:l.getVMRowIndex(h),column:g,columnIndex:l.getColumnIndex(g),$columnIndex:l.getVMColumnIndex(g)},o)}else{e=d.column;a&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),e&&e!==g&&(w=e.model,w.update&&(0,_util.setCellValue)(h,e,w.value),l.clearValidate)&&l.clearValidate(h,g),g.renderHeight=i.offsetHeight,d.args=r,d.column=g,x&&setTimeout(()=>{l.handleFocus(r,o)})}t.column=null,t.row=null,l.focus()}return l.$nextTick()}function handleEditCell(t,l,e,r){let o=t;var i=t.editConfig,n=r.isPos;let a=_xeUtils.default.isString(e)?t.getColumnByField(e):e;return l&&a&&(0,_utils.isEnableConf)(i)&&(0,_utils.isEnableConf)(a.editRender)&&!t.isAggregateRecord(l)?Promise.resolve(n?t.scrollToRow(l,a):null).then(()=>{var e=t.getCellElement(l,a);return e&&(handleEditActive(t,{row:l,rowIndex:t.getRowIndex(l),column:a,columnIndex:t.getColumnIndex(a),cell:e,$table:t},null,r),o._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 o=this;var t=o,l=o,r=o,t=t.treeConfig,{editStore:i,isRowGroupStatus:n}=l;let{tableFullTreeData:a,selectCheckboxMaps:d,afterFullData:s,mergeBodyList:u,tableFullData:c,pendingRowMaps:h,insertRowMaps:g,removeRowMaps:w}=r;var f=o.computeCheckboxOpts,x=o.computeTreeOpts;let{transform:m,mapChildrenField:v}=x,p=x.children||x.childrenField;x=i.actived,i=f.checkField;let _=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=c,e.length?(o.handlePushStack(),e.forEach(e=>{var t;o.isInsertByRow(e)||(t=(0,_util.getRowid)(o,e),w[t]=e)}),i||(e.forEach(e=>{e=(0,_util.getRowid)(this,e);d[e]&&delete d[e]}),l.updateCheckboxFlag++),c===e?(e=_=c.slice(0),r.tableFullData=[],r.afterFullData=[],o.clearMergeCells()):t&&m?e.forEach(e=>{let t=(0,_util.getRowid)(o,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(o,e),{children:v}),l=(l&&(l=l.items.splice(l.index,1),_.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(o,e),{children:p})),l=(l&&l.items.splice(l.index,1),o.findRowIndexOf(s,e));-1<l&&s.splice(l,1)}):n?(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"])):e.forEach(e=>{var t=o.findRowIndexOf(c,e);-1<t&&(t=c.splice(t,1),_.push(t[0]));let r=o.findRowIndexOf(s,e);-1<r&&(u.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),s.splice(r,1))}),x.row&&-1<o.findRowIndexOf(e,x.row)&&o.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(o,e);g[e]&&delete g[e],h[e]&&delete h[e]}),l.removeRowFlag++,l.insertRowFlag++,l.pendingRowFlag++,o.cacheRowMap(!1),o.handleTableData(t&&m),o.updateFooter(),o.handleUpdateBodyMerge(),t&&m||o.updateAfterDataIndex(),o.checkSelectionStatus(),l.scrollYLoad&&o.updateScrollYSpace(),o.$nextTick().then(()=>(o.updateCellAreas(),o.recalculate(!0))).then(()=>({row:_.length?_[_.length-1]:null,rows:_}))):Promise.resolve({row:null,rows:[]})},_removeCheckboxRow(){let t=this;return t.remove(t.getCheckboxRecords()).then(e=>(t.clearCheckboxRow(),e))},_removeRadioRow(){let t=this;var e=t.getRadioRecord();return t.remove(e||[]).then(e=>(t.clearRadioRow(),e))},_removeCurrentRow(){let t=this;var e=t.getCurrentRecord();return t.remove(e||[]).then(e=>(t.clearCurrentRow(),e))},_getRecordset(){let l=this;var e=l.getRemoveRecords(),t=l.getPendingRecords();let r=e.concat(t);var o=l.getUpdateRecords().filter(t=>!r.some(e=>l.eqRow(e,t)));return{insertRecords:l.getInsertRecords(),removeRecords:e,updateRecords:o,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,o=t.computeTreeOpts;return e?(syncActivedCell(t),l?_xeUtils.default.filterTree(r,e=>t.isUpdateByRow(e),o):r.filter(e=>t.isUpdateByRow(e))):[]},handleEdit(e,t,l){return handleEditActive(this,e,t,Object.assign({isFocus:!0,isPos:!0},l))},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(){var e=((0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditCell"]),this).editStore,t=this.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(this,l)]?Object.assign({},e,{row:l}):null},_getEditRecord(){var e=((0,_log.warnLog)("vxe.error.delFunc",["getEditRecord","getEditCell"]),this).editStore,t=this.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(this,l)]?Object.assign({},e,{row:l}):null},_getEditCell(){var e=this.editStore,{row:e,column:t}=e.actived;return t&&e?{row:e,rowIndex:this.getRowIndex(e),column:t,columnIndex:this.getColumnIndex(t)}: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:o,column:i,cell:n}=r,a=i.editRender,d=this.computeEditOpts;if((0,_utils.isEnableConf)(a)){var s=renderer.get(a.name);let e=a.autofocus||a.autoFocus,t=a.autoSelect||a.autoselect,l;d.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&&((a=l.createTextRange()).collapse(!1),a.select()):d.autoPos&&!i.fixed&&this.scrollToRow(o,i)}},_setActiveRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),this.setEditRow(e)},_setEditRow(e,t,l){var r=this.visibleColumn;let o=_xeUtils.default.find(r,e=>(0,_utils.isEnableConf)(e.editRender)),i=!1;return t&&(i=!0)!==t&&(o=_xeUtils.default.isString(t)?this.getColumnByField(t):t),handleEditCell(this,e,o,Object.assign({isPos:i,isFocus:i},l))},_setActiveCell(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(e,t,l){return handleEditCell(this,e,t,Object.assign({isFocus:!0,isPos:!0},l))},_setSelectCell(e,t){var l=this,r=l.tableData,o=l.computeEditOpts,t=_xeUtils.default.isString(t)?l.getColumnByField(t):t;return e&&t&&"manual"!==o.trigger&&-1<(o=l.findRowIndexOf(r,e))&&(r=l.getCellElement(e,t),e={row:e,rowIndex:o,column:t,columnIndex:l.getColumnIndex(t),cell:r},l.handleSelected(e,{})),l.$nextTick()},handleSelected(e,t){let l=this;var r=l.mouseConfig,o=l.editStore,i=l.computeMouseOpts;let n=l.computeEditOpts,{actived:a,selected:d}=o,{row:s,column:u}=e,c=r&&i.selected;return!c||d.row===s&&d.column===u||(a.row!==s||"cell"===n.mode&&a.column!==u)&&(handleClearEdit(l,t),l.clearSelected(),l.clearCellAreas&&(l.clearCellAreas(),l.clearCopyCellArea()),d.args=e,d.row=s,d.column=u,c&&l.addCellSelectedClass(),l.focus(),t)&&l.dispatchEvent("cell-selected",e,t),l.$nextTick()},_getSelectedCell(){var e=this.editStore,{row:e,column:t}=e.selected;return e&&t?{row:e,column:t}: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,e=e["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")}}};
@@ -37,10 +37,10 @@ const matchObj=_xeUtils.default.findTree(tableFullGroupData,item=>(0,_util.getRo
37
37
  * @returns
38
38
  */function handleRowGroupVirtualExpand($xeTable,rows,expanded){const reactData=$xeTable;return handleRowGroupBaseExpand($xeTable,rows,expanded).then(()=>{handleVirtualTreeToList($xeTable);$xeTable.handleTableData();reactData.rowGroupExpandedFlag++;updateAfterDataIndex($xeTable);return $xeTable.$nextTick();}).then(()=>{return handleLazyRecalculate($xeTable,true,true,true);}).then(()=>{setTimeout(()=>{$xeTable.updateCellAreas();},30);});}/**
39
39
  * 处理默认展开分组行
40
- */function handleDefaultRowGroupExpand($xeTable){const reactData=$xeTable;const{isRowGroupStatus}=reactData;if(isRowGroupStatus){const aggregateOpts=$xeTable.computeAggregateOpts;const{expandAll,expandGroupFields}=aggregateOpts;if(expandAll){$xeTable.setAllRowGroupExpand(true);}else if(expandGroupFields&&expandGroupFields.length){$xeTable.setRowGroupExpandByField(expandGroupFields,true);}}}function updateAfterListIndex($xeTable){const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{afterFullData,fullDataRowIdData,fullAllDataRowIdData}=internalData;const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);const fullMaps={};afterFullData.forEach((row,index)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=index+1;if(rowRest){if(!treeConfig){rowRest.seq=seq;}rowRest._index=index;}else{const rest={row,rowid,seq,index:-1,$index:-1,_index:index,treeIndex:-1,_tIndex:-1,items:[],parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullAllDataRowIdData[rowid]=rest;fullDataRowIdData[rowid]=rest;}fullMaps[rowid]=row;});internalData.afterFullRowMaps=fullMaps;}/**
40
+ */function handleDefaultRowGroupExpand($xeTable){const reactData=$xeTable;const{isRowGroupStatus}=reactData;if(isRowGroupStatus){const aggregateOpts=$xeTable.computeAggregateOpts;const{expandAll,expandGroupFields}=aggregateOpts;if(expandAll){$xeTable.setAllRowGroupExpand(true);}else if(expandGroupFields&&expandGroupFields.length){$xeTable.setRowGroupExpandByField(expandGroupFields,true);}}}function updateAfterTreeIndex($xeTable){const internalData=$xeTable;const{fullDataRowIdData,fullAllDataRowIdData,afterFullData,afterTreeFullData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const fullMaps={};let rowNum=0;const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);_xeUtils.default.eachTree(afterTreeFullData,(row,index,items,path)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=path.map((num,i)=>i%2===0?Number(num)+1:'.').join('');if(rowRest){rowRest.seq=seq;rowRest._seq=rowNum;rowRest.treeIndex=index;rowRest._tIndex=rowNum;}else{const rest={row,rowid,_seq:rowNum,seq,index:-1,$index:-1,_index:-1,treeIndex:-1,_tIndex:rowNum,items:[],parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullAllDataRowIdData[rowid]=rest;fullDataRowIdData[rowid]=rest;}rowNum++;fullMaps[rowid]=row;},{children:transform?mapChildrenField:childrenField});if(transform){afterFullData.forEach((row,index)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=index;}});}internalData.afterFullRowMaps=fullMaps;}function updateAfterListIndex($xeTable){const internalData=$xeTable;const{afterFullData,fullDataRowIdData,fullAllDataRowIdData}=internalData;const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);const fullMaps={};let rowNum=0;afterFullData.forEach((row,index)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=index+1;if(rowRest){rowRest.seq=seq;rowRest._seq=rowNum;rowRest._index=index;}else{const rest={row,rowid,_seq:rowNum,seq,index:-1,$index:-1,_index:index,treeIndex:-1,_tIndex:-1,items:[],parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullAllDataRowIdData[rowid]=rest;fullDataRowIdData[rowid]=rest;}rowNum++;fullMaps[rowid]=row;});internalData.afterFullRowMaps=fullMaps;}/**
41
41
  * 预编译
42
42
  * 对渲染中的数据提前解析序号及索引。牺牲提前编译耗时换取渲染中额外损耗,使运行时更加流畅
43
- */function updateAfterDataIndex($xeTable){const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{fullDataRowIdData,fullAllDataRowIdData,afterFullData,afterTreeFullData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const fullMaps={};if(treeConfig){let _treeIndex=0;const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);_xeUtils.default.eachTree(afterTreeFullData,(row,index,items,path)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=path.map((num,i)=>i%2===0?Number(num)+1:'.').join('');if(rowRest){rowRest.seq=seq;rowRest.treeIndex=index;rowRest._tIndex=_treeIndex;}else{const rest={row,rowid,seq,index:-1,$index:-1,_index:-1,treeIndex:-1,_tIndex:_treeIndex,items:[],parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullAllDataRowIdData[rowid]=rest;fullDataRowIdData[rowid]=rest;}_treeIndex++;fullMaps[rowid]=row;},{children:transform?treeOpts.mapChildrenField:childrenField});if(transform){afterFullData.forEach((row,index)=>{const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const seq=index+1;if(rowRest){if(!treeConfig){rowRest.seq=seq;}rowRest._index=index;}});}internalData.afterFullRowMaps=fullMaps;}else{updateAfterListIndex($xeTable);}}/**
43
+ */function updateAfterDataIndex($xeTable){const props=$xeTable;const{treeConfig}=props;if(treeConfig){updateAfterTreeIndex($xeTable);}else{updateAfterListIndex($xeTable);}}/**
44
44
  * 如果为虚拟树、行分组、则将树结构拍平
45
45
  * @returns
46
46
  */function handleVirtualTreeToList($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{fullAllDataRowIdData,treeExpandedMaps,rowGroupExpandedMaps}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);const fullData=[];const expandMaps={};if(treeConfig&&treeOpts.transform){const childrenField=treeOpts.children||treeOpts.childrenField;_xeUtils.default.eachTree(internalData.afterTreeFullData,(row,index,items,path,parentRow)=>{const rowid=handleGetRowId(row);const parentRowid=handleGetRowId(parentRow);if(!parentRow||expandMaps[parentRowid]&&treeExpandedMaps[parentRowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=fullData.length;}expandMaps[rowid]=1;fullData.push(row);}},{children:childrenField});internalData.afterFullData=fullData;updateScrollYStatus($xeTable,fullData);return fullData;}else if(isRowGroupStatus){const{childrenField}=aggregateOpts;_xeUtils.default.eachTree(internalData.afterGroupFullData,(row,index,items,path,parentRow)=>{const rowid=handleGetRowId(row);const parentRowid=handleGetRowId(parentRow);if(!parentRow||expandMaps[parentRowid]&&rowGroupExpandedMaps[parentRowid]){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){rowRest._index=fullData.length;}expandMaps[rowid]=1;fullData.push(row);}},{children:childrenField});internalData.afterFullData=fullData;updateScrollYStatus($xeTable,fullData);return fullData;}return internalData.afterFullData;}/**
@@ -158,8 +158,9 @@ function computeScrollLoad($xeTable){const reactData=$xeTable;const internalData
158
158
  if(scrollXLoad){const{toVisibleIndex:toXVisibleIndex,visibleSize:visibleXSize}=handleVirtualXVisible($xeTable);const offsetXSize=Math.max(0,virtualXOpts.oSize?_xeUtils.default.toNumber(virtualXOpts.oSize):0);scrollXStore.preloadSize=_xeUtils.default.toNumber(virtualXOpts.preSize);scrollXStore.offsetSize=offsetXSize;scrollXStore.visibleSize=visibleXSize;scrollXStore.endIndex=Math.max(scrollXStore.startIndex+scrollXStore.visibleSize+offsetXSize,scrollXStore.endIndex);scrollXStore.visibleStartIndex=Math.max(scrollXStore.startIndex,toXVisibleIndex);scrollXStore.visibleEndIndex=Math.min(scrollXStore.endIndex,toXVisibleIndex+visibleXSize);$xeTable.updateScrollXData().then(()=>{loadScrollXData($xeTable);});}else{$xeTable.updateScrollXSpace();}// 计算 Y 逻辑
159
159
  const rowHeight=computeRowHeight($xeTable);scrollYStore.rowHeight=rowHeight;// 已废弃
160
160
  reactData.rowHeight=rowHeight;const{toVisibleIndex:toYVisibleIndex,visibleSize:visibleYSize}=handleVirtualYVisible($xeTable);if(scrollYLoad){const offsetYSize=Math.max(0,virtualYOpts.oSize?_xeUtils.default.toNumber(virtualYOpts.oSize):0);scrollYStore.preloadSize=_xeUtils.default.toNumber(virtualYOpts.preSize);scrollYStore.offsetSize=offsetYSize;scrollYStore.visibleSize=visibleYSize;scrollYStore.endIndex=Math.max(scrollYStore.startIndex+visibleYSize+offsetYSize,scrollYStore.endIndex);scrollYStore.visibleStartIndex=Math.max(scrollYStore.startIndex,toYVisibleIndex);scrollYStore.visibleEndIndex=Math.min(scrollYStore.endIndex,toYVisibleIndex+visibleYSize);$xeTable.updateScrollYData().then(()=>{loadScrollYData($xeTable);});}else{$xeTable.updateScrollYSpace();}});}function calcScrollbar($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{scrollXWidth,scrollYHeight}=reactData;const{elemStore}=internalData;const scrollbarOpts=$xeTable.computeScrollbarOpts;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);const headerTableElem=(0,_util.getRefElem)(elemStore['main-header-table']);const footerTableElem=(0,_util.getRefElem)(elemStore['main-footer-table']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;let overflowY=false;let overflowX=false;if(bodyWrapperElem){overflowY=scrollYHeight>bodyWrapperElem.clientHeight;if(yHandleEl){reactData.scrollbarWidth=scrollbarOpts.width||yHandleEl.offsetWidth-yHandleEl.clientWidth||14;}reactData.overflowY=overflowY;overflowX=scrollXWidth>bodyWrapperElem.clientWidth;if(xHandleEl){reactData.scrollbarHeight=scrollbarOpts.height||xHandleEl.offsetHeight-xHandleEl.clientHeight||14;}reactData.overflowX=overflowX;const hHeight=headerTableElem?headerTableElem.clientHeight:0;const fHeight=footerTableElem?footerTableElem.clientHeight:0;internalData.tableHeight=bodyWrapperElem.offsetHeight;internalData.tHeaderHeight=hHeight;internalData.tFooterHeight=fHeight;reactData.overflowX=overflowX;reactData.parentHeight=Math.max(hHeight+fHeight+20,$xeTable.getParentHeight());}if(overflowX){$xeTable.checkScrolling();}}function handleRecalculateStyle($xeTable,reFull,reWidth,reHeight){const internalData=$xeTable;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return $xeTable.$nextTick();}const varEl=$xeTable.$refs.refVarElem;if(varEl){const[defEl,mediumEl,smallEl,miniEl]=varEl.children;calcVarRowHeightConfig($xeTable,'default',defEl);calcVarRowHeightConfig($xeTable,'medium',mediumEl);calcVarRowHeightConfig($xeTable,'small',smallEl);calcVarRowHeightConfig($xeTable,'mini',miniEl);}if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}calcScrollbar($xeTable);updateStyle($xeTable);updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}internalData.rceRunTime=Date.now();return computeScrollLoad($xeTable).then(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
161
- if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}if(reHeight){calcCellHeight($xeTable);}updateStyle($xeTable);calcScrollbar($xeTable);if(reFull){updateRowOffsetTop($xeTable);}updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}internalData.rceRunTime=Date.now();if(reFull){return computeScrollLoad($xeTable);}});}const minRunDelay=50;function handleLazyRecalculate($xeTable,reFull,reWidth,reHeight){const reactData=$xeTable;const internalData=$xeTable;return new Promise(resolve=>{const{customStore}=reactData;const{rceTimeout,rceRunTime}=internalData;const $xeGanttView=internalData.xeGanttView;const resizeOpts=$xeTable.computeResizeOpts;let rceDelay=internalData.rceDelay;// 如果在500毫秒内频繁执行,则执行次数减缓
162
- if(rceRunTime&&rceRunTime>Date.now()-500){rceDelay+=50;}else{rceDelay=0;}internalData.rceDelay=rceDelay;const refreshDelay=resizeOpts.refreshDelay||30;const reDelay=rceDelay+refreshDelay;const el=$xeTable.$refs.refElem;if(el&&el.clientWidth){autoCellWidth($xeTable);updateRowExpandStyle($xeTable);}if(customStore.visible&&$xeTable.handleCustomStyle){$xeTable.handleCustomStyle();}if(rceTimeout){clearTimeout(rceTimeout);if(rceRunTime&&rceRunTime+minRunDelay<Date.now()){resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}else{$xeTable.$nextTick(()=>{resolve();});}}else{resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}if($xeGanttView&&$xeGanttView.handleLazyRecalculate){$xeGanttView.handleLazyRecalculate();}internalData.rceTimeout=setTimeout(()=>{internalData.rceTimeout=undefined;handleRecalculateStyle($xeTable,reFull,reWidth,reHeight);},reDelay);});}function handleResizeEvent($xeTable){handleLazyRecalculate($xeTable,true,true,true);}function handleUpdateAggValues($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{visibleColumn}=internalData;const aggCols=[];visibleColumn.forEach(column=>{if(column.aggFunc){aggCols.push(column);}});reactData.aggHandleAggColumns=aggCols;}function handleUpdateRowGroup($xeTable,groupFields){const reactData=$xeTable;const aggGroupFields=[];const aggGroupConfs=[];if(groupFields){(_xeUtils.default.isArray(groupFields)?groupFields:[groupFields]).forEach(field=>{aggGroupFields.push(field);aggGroupConfs.push({field});});}reactData.rowGroupList=aggGroupConfs;reactData.aggHandleFields=aggGroupFields;handleUpdateAggValues($xeTable);}function handleeGroupSummary($xeTable,aggList){const internalData=$xeTable;const{fullColumnFieldData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const aggFuncColumns=$xeTable.computeAggFuncColumns;const{mapChildrenField}=aggregateOpts;const aggCalcMethod=aggregateOpts.calcValuesMethod||aggregateOpts.countMethod||aggregateOpts.aggregateMethod;if(mapChildrenField){_xeUtils.default.lastEach(aggList,aggRow=>{let count=0;_xeUtils.default.each(aggRow[mapChildrenField],row=>{if(row.isAggregate){count+=row.childCount||0;}else{count++;}});aggRow.childCount=count;});if($xeTable.handlePivotTableAggData){$xeTable.handlePivotTableAggData(aggList);}else{_xeUtils.default.lastEach(aggList,aggRow=>{const aggDtObj={};const aggData=aggRow.aggData;const groupField=aggRow.groupField;const groupContent=aggRow.groupContent;const childList=mapChildrenField?aggRow[mapChildrenField]||[]:[];const childCount=aggRow.childCount;const colRest=fullColumnFieldData[groupField]||{};aggFuncColumns.forEach(column=>{const{field}=column;const currAggData=aggData?aggData[field]:null;const ctParams={$table:$xeTable,groupField,groupColumn:colRest?colRest.column:null,column,groupValue:groupContent,childList,childCount,aggValue:currAggData?currAggData.value:0,/**
161
+ if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}if(reHeight){calcCellHeight($xeTable);}updateStyle($xeTable);calcScrollbar($xeTable);if(reFull){updateRowOffsetTop($xeTable);}updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}internalData.rceRunTime=Date.now();if(reFull){return computeScrollLoad($xeTable);}});}const defaultMinRunDelay=50;function handleLazyRecalculate($xeTable,reFull,reWidth,reHeight,options){const reactData=$xeTable;const internalData=$xeTable;const minRunDelay=(options?options.minRunDelay:defaultMinRunDelay)||defaultMinRunDelay;return new Promise(resolve=>{const{customStore}=reactData;const{rceTimeout,rceRunTime}=internalData;const $xeGanttView=internalData.xeGanttView;const resizeOpts=$xeTable.computeResizeOpts;let rceDelay=internalData.rceDelay;// 如果在500毫秒内频繁执行,则执行次数减缓
162
+ if(rceRunTime&&rceRunTime>Date.now()-500){rceDelay+=50;}else{rceDelay=0;}internalData.rceDelay=rceDelay;const refreshDelay=resizeOpts.refreshDelay||30;const reDelay=rceDelay+refreshDelay;const el=$xeTable.$refs.refElem;if(el&&el.clientWidth){autoCellWidth($xeTable);updateRowExpandStyle($xeTable);}if(customStore.visible&&$xeTable.handleCustomStyle){$xeTable.handleCustomStyle();}if(rceTimeout){clearTimeout(rceTimeout);// 多少毫秒内至少执行一次
163
+ if(rceRunTime&&rceRunTime+minRunDelay<Date.now()){resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}else{$xeTable.$nextTick(()=>{resolve();});}}else{resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}if($xeGanttView&&$xeGanttView.handleLazyRecalculate){$xeGanttView.handleLazyRecalculate();}internalData.rceTimeout=setTimeout(()=>{internalData.rceTimeout=undefined;handleRecalculateStyle($xeTable,reFull,reWidth,reHeight);},reDelay);});}function handleResizeEvent($xeTable){const internalData=$xeTable;if(internalData.rsePending){return;}internalData.rsePending=true;handleLazyRecalculate($xeTable,true,true,true,{minRunDelay:200}).then(()=>{internalData.rsePending=false;}).catch(()=>{internalData.rsePending=false;});}function handleUpdateAggValues($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{visibleColumn}=internalData;const aggCols=[];visibleColumn.forEach(column=>{if(column.aggFunc){aggCols.push(column);}});reactData.aggHandleAggColumns=aggCols;}function handleUpdateRowGroup($xeTable,groupFields){const reactData=$xeTable;const aggGroupFields=[];const aggGroupConfs=[];if(groupFields){(_xeUtils.default.isArray(groupFields)?groupFields:[groupFields]).forEach(field=>{aggGroupFields.push(field);aggGroupConfs.push({field});});}reactData.rowGroupList=aggGroupConfs;reactData.aggHandleFields=aggGroupFields;handleUpdateAggValues($xeTable);}function handleeGroupSummary($xeTable,aggList){const internalData=$xeTable;const{fullColumnFieldData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const aggFuncColumns=$xeTable.computeAggFuncColumns;const{mapChildrenField}=aggregateOpts;const aggCalcMethod=aggregateOpts.calcValuesMethod||aggregateOpts.countMethod||aggregateOpts.aggregateMethod;if(mapChildrenField){_xeUtils.default.lastEach(aggList,aggRow=>{let count=0;_xeUtils.default.each(aggRow[mapChildrenField],row=>{if(row.isAggregate){count+=row.childCount||0;}else{count++;}});aggRow.childCount=count;});if($xeTable.handlePivotTableAggData){$xeTable.handlePivotTableAggData(aggList);}else{_xeUtils.default.lastEach(aggList,aggRow=>{const aggDtObj={};const aggData=aggRow.aggData;const groupField=aggRow.groupField;const groupContent=aggRow.groupContent;const childList=mapChildrenField?aggRow[mapChildrenField]||[]:[];const childCount=aggRow.childCount;const colRest=fullColumnFieldData[groupField]||{};aggFuncColumns.forEach(column=>{const{field}=column;const currAggData=aggData?aggData[field]:null;const ctParams={$table:$xeTable,groupField,groupColumn:colRest?colRest.column:null,column,groupValue:groupContent,childList,childCount,aggValue:currAggData?currAggData.value:0,/**
163
164
  * 已废弃
164
165
  * @deprecated
165
166
  */children:childList,/**
@@ -297,9 +298,9 @@ if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scroll
297
298
  */reloadColumn(columns){return this.clearAll().then(()=>{return this.loadColumn(columns);});},handleInitColumn(collectColumn){const $xeTable=this;return handleInitColumn($xeTable,collectColumn);},/**
298
299
  * 更新数据行的 Map
299
300
  */cacheRowMap(isReset){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{isRowGroupStatus}=reactData;const{currKeyField,fullAllDataRowIdData,tableFullData,tableFullTreeData,tableFullGroupData,treeExpandedMaps,rowExpandedMaps,selectCheckboxMaps}=internalData;const fullAllDataRowIdMaps=isReset?{}:Object.assign({},fullAllDataRowIdData);// 存在已删除数据
300
- const fullDataRowIdMaps={};const idMaps={};const{handleUpdateRowId}=(0,_util.createHandleUpdateRowId)($xeTable);const handleRowCache=(row,index,items,currIndex,parentRow,rowid,level,seq)=>{let rowRest=fullAllDataRowIdMaps[rowid];if(idMaps[rowid]){(0,_log.errLog)('vxe.error.repeatKey',[currKeyField,rowid]);}if(!rowRest){rowRest={row,rowid,seq,index:-1,_index:-1,$index:-1,treeIndex:index,_tIndex:-1,items,parent:parentRow,level,height:0,resizeHeight:0,oTop:0,expandHeight:0};}rowRest.treeLoaded=false;rowRest.expandLoaded=false;rowRest.row=row;rowRest.items=items;rowRest.parent=parentRow;rowRest.level=level;rowRest.index=currIndex;rowRest.treeIndex=index;// 更新缓存
301
+ const fullDataRowIdMaps={};const idMaps={};const{handleUpdateRowId}=(0,_util.createHandleUpdateRowId)($xeTable);let rowNum=0;const handleRowCache=(row,index,items,currIndex,parentRow,rowid,level,seq)=>{let rowRest=fullAllDataRowIdMaps[rowid];if(idMaps[rowid]){(0,_log.errLog)('vxe.error.repeatKey',[currKeyField,rowid]);}if(!rowRest){rowRest={row,rowid,_seq:-1,seq,index:-1,_index:-1,$index:-1,treeIndex:index,_tIndex:-1,items,parent:parentRow,level,height:0,resizeHeight:0,oTop:0,expandHeight:0};}rowRest.treeLoaded=false;rowRest.expandLoaded=false;rowRest._seq=rowNum++;rowRest.row=row;rowRest.items=items;rowRest.parent=parentRow;rowRest.level=level;rowRest.index=currIndex;rowRest.treeIndex=index;// 更新缓存
301
302
  if(selectCheckboxMaps[rowid]){selectCheckboxMaps[rowid]=row;}if(rowExpandedMaps[rowid]){rowExpandedMaps[rowid]=row;}idMaps[rowid]=true;fullDataRowIdMaps[rowid]=rowRest;fullAllDataRowIdMaps[rowid]=rowRest;};if(treeConfig){const treeOpts=$xeTable.computeTreeOpts;const{lazy}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;_xeUtils.default.eachTree(tableFullTreeData,(row,index,items,path,parentRow,nodes)=>{const rowid=handleUpdateRowId(row);if(lazy){if(row[hasChildField]&&row[childrenField]===undefined){row[childrenField]=null;}if(treeExpandedMaps[rowid]){if(!row[childrenField]||!row[childrenField].length){delete treeExpandedMaps[rowid];}}}handleRowCache(row,index,items,parentRow?-1:index,parentRow,rowid,nodes.length-1,(0,_util.toTreePathSeq)(path));},{children:childrenField});}else if(isRowGroupStatus){const aggregateOpts=$xeTable.computeAggregateOpts;const{mapChildrenField}=aggregateOpts;_xeUtils.default.eachTree(tableFullGroupData,(row,index,items,path,parentRow,nodes)=>{const rowid=handleUpdateRowId(row);handleRowCache(row,index,items,parentRow?-1:index,parentRow,rowid,nodes.length-1,(0,_util.toTreePathSeq)(path));},{children:mapChildrenField});}else{tableFullData.forEach((row,index,items)=>{handleRowCache(row,index,items,index,null,handleUpdateRowId(row),0,index+1);});}internalData.fullDataRowIdData=fullDataRowIdMaps;internalData.fullAllDataRowIdData=fullAllDataRowIdMaps;reactData.treeExpandedFlag++;},cacheSourceMap(fullData){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const treeOpts=$xeTable.computeTreeOpts;const sourceData=_xeUtils.default.clone(fullData,true);const{handleUpdateRowId}=(0,_util.createHandleUpdateRowId)($xeTable);const sourceRowIdData={};const handleSourceRow=row=>{const rowid=handleUpdateRowId(row);sourceRowIdData[rowid]=row;};// 源数据缓存
302
- if(treeConfig){const childrenField=treeOpts.children||treeOpts.childrenField;_xeUtils.default.eachTree(sourceData,handleSourceRow,{children:treeOpts.transform?treeOpts.mapChildrenField:childrenField});}else{sourceData.forEach(handleSourceRow);}internalData.sourceDataRowIdData=sourceRowIdData;internalData.tableSourceData=sourceData;},getParams(){const $xeTable=this;const props=$xeTable;return props.params;},loadTreeChildren(row,childRecords){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{keepSource}=props;const{tableSourceData,fullDataRowIdData,fullAllDataRowIdData,sourceDataRowIdData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const parentRest=fullAllDataRowIdData[(0,_util.getRowid)($xeTable,row)];const parentLevel=parentRest?parentRest.level:0;return this.createData(childRecords).then(rows=>{if(keepSource){const rowid=(0,_util.getRowid)(this,row);const matchObj=_xeUtils.default.findTree(tableSourceData,item=>rowid===(0,_util.getRowid)(this,item),{children:childrenField});if(matchObj){matchObj.item[childrenField]=_xeUtils.default.clone(rows,true);}rows.forEach(childRow=>{const rowid=(0,_util.getRowid)(this,childRow);sourceDataRowIdData[rowid]=_xeUtils.default.clone(childRow,true);});}_xeUtils.default.eachTree(rows,(childRow,index,items,path,parentItem,nodes)=>{const rowid=(0,_util.getRowid)($xeTable,childRow);const parentRow=parentItem||parentRest.row;const rest={row:childRow,rowid,seq:-1,index,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items,parent:parentRow,level:parentLevel+nodes.length,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullDataRowIdData[rowid]=rest;fullAllDataRowIdData[rowid]=rest;},{children:childrenField});row[childrenField]=rows;if(transform){row[mapChildrenField]=_xeUtils.default.clone(rows,false);}updateAfterDataIndex($xeTable);return rows;});},/**
303
+ if(treeConfig){const childrenField=treeOpts.children||treeOpts.childrenField;_xeUtils.default.eachTree(sourceData,handleSourceRow,{children:treeOpts.transform?treeOpts.mapChildrenField:childrenField});}else{sourceData.forEach(handleSourceRow);}internalData.sourceDataRowIdData=sourceRowIdData;internalData.tableSourceData=sourceData;},getParams(){const $xeTable=this;const props=$xeTable;return props.params;},loadTreeChildren(row,childRecords){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{keepSource}=props;const{tableSourceData,fullDataRowIdData,fullAllDataRowIdData,sourceDataRowIdData}=internalData;const treeOpts=$xeTable.computeTreeOpts;const{transform,mapChildrenField}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const parentRest=fullAllDataRowIdData[(0,_util.getRowid)($xeTable,row)];const parentLevel=parentRest?parentRest.level:0;return this.createData(childRecords).then(rows=>{if(keepSource){const rowid=(0,_util.getRowid)(this,row);const matchObj=_xeUtils.default.findTree(tableSourceData,item=>rowid===(0,_util.getRowid)(this,item),{children:childrenField});if(matchObj){matchObj.item[childrenField]=_xeUtils.default.clone(rows,true);}rows.forEach(childRow=>{const rowid=(0,_util.getRowid)(this,childRow);sourceDataRowIdData[rowid]=_xeUtils.default.clone(childRow,true);});}_xeUtils.default.eachTree(rows,(childRow,index,items,path,parentItem,nodes)=>{const rowid=(0,_util.getRowid)($xeTable,childRow);const parentRow=parentItem||parentRest.row;const rest={row:childRow,rowid,_seq:-1,seq:-1,index,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items,parent:parentRow,level:parentLevel+nodes.length,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullDataRowIdData[rowid]=rest;fullAllDataRowIdData[rowid]=rest;},{children:childrenField});row[childrenField]=rows;if(transform){row[mapChildrenField]=_xeUtils.default.clone(rows,false);}updateAfterDataIndex($xeTable);return rows;});},/**
303
304
  * 根据 tr 元素获取对应的 row 信息
304
305
  * @param {Element} tr 元素
305
306
  */getRowNode(tr){const $xeTable=this;const internalData=$xeTable;if(tr){const{fullAllDataRowIdData}=internalData;const rowid=tr.getAttribute('rowid');if(rowid){const rowRest=fullAllDataRowIdData[rowid];if(rowRest){return{rowid:rowRest.rowid,item:rowRest.row,index:rowRest.index,items:rowRest.items,parent:rowRest.parent};}}}return null;},/**
@@ -586,7 +587,13 @@ _xeUtils.default.eachTree(rows,row=>{const rowid=handleGetRowId(row);if(isForce|
586
587
  rows.forEach(row=>{const rowid=handleGetRowId(row);if(isForce||!checkMethod||checkMethod({$table:$xeTable,row})){if(checked){if(!selectCheckboxMaps[rowid]){selectCheckboxMaps[rowid]=row;}}else{if(selectCheckboxMaps[rowid]){delete selectCheckboxMaps[rowid];}}handleCheckboxReserveRow($xeTable,row,checked);reactData.updateCheckboxFlag++;}});},/**
587
588
  * 即将移除
588
589
  * @deprecated
589
- */handleSelectRow({row},checked,isForce){const $xeTable=this;$xeTable.handleBatchSelectRows([row],checked,isForce);},handleToggleCheckRowEvent(evnt,params){const $xeTable=this;const internalData=$xeTable;const{selectCheckboxMaps}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField,trigger}=checkboxOpts;const{row}=params;if(trigger==='manual'){return;}let checked=false;if(checkField){checked=!_xeUtils.default.get(row,checkField);}else{checked=!selectCheckboxMaps[(0,_util.getRowid)($xeTable,row)];}if(evnt){$xeTable.triggerCheckRowEvent(evnt,params,checked);}else{$xeTable.handleBatchSelectRows([row],checked);$xeTable.checkSelectionStatus();}},triggerCheckRowEvent(evnt,params,checked){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{row}=params;const{isRowGroupStatus}=reactData;const{afterFullData}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkMethod,trigger}=checkboxOpts;if(trigger==='manual'){return;}evnt.stopPropagation();if(checkboxOpts.isShiftKey&&evnt.shiftKey&&!(treeConfig||isRowGroupStatus)){const checkboxRecords=$xeTable.getCheckboxRecords();if(checkboxRecords.length){const firstRow=checkboxRecords[0];const _rowIndex=$xeTable.getVTRowIndex(row);const _firstRowIndex=$xeTable.getVTRowIndex(firstRow);if(_rowIndex!==_firstRowIndex){$xeTable.setAllCheckboxRow(false);const rangeRows=_rowIndex<_firstRowIndex?afterFullData.slice(_rowIndex,_firstRowIndex+1):afterFullData.slice(_firstRowIndex,_rowIndex+1);$xeTable.$nextTick(()=>{handleCheckedCheckboxRow($xeTable,rangeRows,true,false);});$xeTable.dispatchEvent('checkbox-range-select',Object.assign({rangeRecords:rangeRows},params),evnt);return;}}}if(isRowGroupStatus||!checkMethod||checkMethod({$table:$xeTable,row})){$xeTable.handleBatchSelectRows([row],checked);$xeTable.checkSelectionStatus();$xeTable.dispatchEvent('checkbox-change',Object.assign({records:()=>$xeTable.getCheckboxRecords(),reserves:()=>$xeTable.getCheckboxReserveRecords(),indeterminates:()=>$xeTable.getCheckboxIndeterminateRecords(),checked},params),evnt);}},/**
590
+ */handleSelectRow({row},checked,isForce){const $xeTable=this;$xeTable.handleBatchSelectRows([row],checked,isForce);},handleToggleCheckRowEvent(evnt,params){const $xeTable=this;const internalData=$xeTable;const{selectCheckboxMaps}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField,trigger}=checkboxOpts;const{row}=params;if(trigger==='manual'){return;}let checked=false;if(checkField){checked=!_xeUtils.default.get(row,checkField);}else{checked=!selectCheckboxMaps[(0,_util.getRowid)($xeTable,row)];}if(evnt){$xeTable.triggerCheckRowEvent(evnt,params,checked);}else{$xeTable.handleBatchSelectRows([row],checked);$xeTable.checkSelectionStatus();}},triggerCheckRowEvent(evnt,params,checked){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{treeConfig}=props;const{row}=params;const{isRowGroupStatus}=reactData;const{fullAllDataRowIdData,afterFullData,afterTreeFullData,afterGroupFullData}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const aggregateOpts=$xeTable.computeAggregateOpts;const treeOpts=$xeTable.computeTreeOpts;const{checkMethod,trigger,checkStrictly}=checkboxOpts;if(trigger==='manual'){return;}evnt.stopPropagation();if(checkboxOpts.isShiftKey&&evnt.shiftKey){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);const checkboxRecords=$xeTable.getCheckboxRecords();let currSeq=-1;let currRow=null;const currRowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[currRowid];if(rowRest){currRow=rowRest.row;currSeq=rowRest._seq;}if(currRow&&checkboxRecords.length){let rangeRows=[];let firstSeq=-1;let firstRow=null;let firstRowid='';let lastSeq=-1;let lastRow=null;let lastRowid='';// 根据序号取出范围最小/最大的行
591
+ const selectMaps={};checkboxRecords.forEach(item=>{const rowid=handleGetRowId(item);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){if(!firstRow||firstSeq>rowRest._seq){firstRowid=rowRest.rowid;firstRow=rowRest.row;firstSeq=rowRest._seq;}if(!lastRow||lastSeq<rowRest._seq){lastRowid=rowRest.rowid;lastRow=rowRest.row;lastSeq=rowRest._seq;}}selectMaps[rowid]=item;});// 如果已选只有一条并选择当前则跳过
592
+ if(firstRow&&lastRow&&(checkboxRecords.length>1||currRowid!==firstRowid)&&(Math.abs(firstSeq-lastSeq)>1||Math.abs(currSeq-firstSeq)>1||Math.abs(currSeq-lastSeq)>1)){// 树与分组
593
+ if(treeConfig||isRowGroupStatus){const{transform}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const iteratorChildField=treeConfig?transform?treeOpts.mapChildrenField:childrenField:aggregateOpts.mapChildrenField;let isMatchFirst=false;let matchStartRowid='';let matchEndRowid='';const handleGetChildRowid=(rowid,isLast)=>{const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const item=rowRest.row;const childList=item[iteratorChildField];if(childList&&childList.length){const targetRow=isLast?_xeUtils.default.last(childList):_xeUtils.default.first(childList);return handleGetChildRowid(handleGetRowId(targetRow),isLast);}}return rowid;};const handleGetSelectParentRowid=rowid=>{const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const parentItem=rowRest.parent;if(parentItem){const parentRowid=handleGetRowId(parentItem);if(selectMaps[parentRowid]){return handleGetSelectParentRowid(parentRowid);}}}return rowid;};const handleGetRootRow=row=>{const rowid=handleGetRowId(row);if(rowid){const rest=fullAllDataRowIdData[rowid];if(rest){return rest.parent?handleGetRootRow(rest.parent):rest;}}return null;};if(currSeq<firstSeq){matchStartRowid=handleGetChildRowid(currRowid,0);matchEndRowid=handleGetChildRowid(firstRowid,1);}else{if(currSeq>lastSeq){matchStartRowid=handleGetSelectParentRowid(lastRowid);}else{matchStartRowid=handleGetChildRowid(firstRowid,0);}matchEndRowid=handleGetChildRowid(currRowid,1);}const handleRangeRow=item=>{const rowid=handleGetRowId(item);const childList=item[iteratorChildField];if(!isMatchFirst&&rowid===matchStartRowid){isMatchFirst=true;}// 如果是父子关联,则排除父节点
594
+ if(isMatchFirst&&(checkStrictly||!childList||!childList.length)){rangeRows.push(item);}// break
595
+ return rowid===matchEndRowid;};if(treeConfig){const matchStartRowRest=fullAllDataRowIdData[matchStartRowid];const firstRootRowRest=matchStartRowRest?handleGetRootRow(matchStartRowRest.row):null;if(firstRootRowRest){// 优化查找复杂度
596
+ _xeUtils.default.findTree(afterTreeFullData.slice(firstRootRowRest.treeIndex),handleRangeRow,{children:iteratorChildField});}else{_xeUtils.default.findTree(afterTreeFullData,handleRangeRow,{children:iteratorChildField});}}else{_xeUtils.default.findTree(afterGroupFullData,handleRangeRow,{children:iteratorChildField});}}else{const _currRowIndex=$xeTable.getVTRowIndex(currRow);const _firstRowIndex=$xeTable.getVTRowIndex(firstRow);const _lastRowIndex=$xeTable.getVTRowIndex(lastRow);if(_currRowIndex<_firstRowIndex){rangeRows=afterFullData.slice(_currRowIndex,_firstRowIndex+1);}else if(_currRowIndex>_lastRowIndex){rangeRows=afterFullData.slice(_lastRowIndex,_currRowIndex+1);}else{rangeRows=afterFullData.slice(_firstRowIndex,_currRowIndex+1);}}$xeTable.setAllCheckboxRow(false);$xeTable.$nextTick(()=>{handleCheckedCheckboxRow($xeTable,rangeRows,true,false);});$xeTable.dispatchEvent('checkbox-range-select',Object.assign({rangeRecords:rangeRows},params),evnt);}}}if(!checkMethod||checkMethod({$table:$xeTable,row})){$xeTable.handleBatchSelectRows([row],checked);$xeTable.checkSelectionStatus();$xeTable.dispatchEvent('checkbox-change',Object.assign({records:()=>$xeTable.getCheckboxRecords(),reserves:()=>$xeTable.getCheckboxReserveRecords(),indeterminates:()=>$xeTable.getCheckboxIndeterminateRecords(),checked},params),evnt);}},/**
590
597
  * 多选,切换某一行的选中状态
591
598
  */toggleCheckboxRow(row){const $xeTable=this;const internalData=$xeTable;const{selectCheckboxMaps}=internalData;const checkboxOpts=$xeTable.computeCheckboxOpts;const{checkField}=checkboxOpts;const checked=checkField?!_xeUtils.default.get(row,checkField):!selectCheckboxMaps[(0,_util.getRowid)($xeTable,row)];$xeTable.handleBatchSelectRows([row],checked,true);$xeTable.checkSelectionStatus();return $xeTable.$nextTick();},/**
592
599
  * 用于多选行,设置所有行的选中状态