vxe-table 4.19.18 → 4.19.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.esm.js +79 -24
- package/dist/style.css +1 -1
- package/es/grid/src/grid.js +1 -1
- package/es/style.css +1 -1
- package/es/table/module/edit/hook.js +16 -4
- package/es/table/src/table.js +57 -15
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +4 -3
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +28 -12
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/hook.js +18 -4
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/src/table.js +4 -3
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +4 -3
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +1 -1
- package/packages/table/module/edit/hook.ts +15 -4
- package/packages/table/src/table.ts +55 -16
- package/packages/ui/src/log.ts +3 -2
- /package/es/{iconfont.1782186482222.ttf → iconfont.1782286881041.ttf} +0 -0
- /package/es/{iconfont.1782186482222.woff → iconfont.1782286881041.woff} +0 -0
- /package/es/{iconfont.1782186482222.woff2 → iconfont.1782286881041.woff2} +0 -0
- /package/lib/{iconfont.1782186482222.ttf → iconfont.1782286881041.ttf} +0 -0
- /package/lib/{iconfont.1782186482222.woff → iconfont.1782286881041.woff} +0 -0
- /package/lib/{iconfont.1782186482222.woff2 → iconfont.1782286881041.woff2} +0 -0
|
@@ -1018,17 +1018,31 @@ hooks.add('tableEditModule', {
|
|
|
1018
1018
|
treeConfig
|
|
1019
1019
|
} = props;
|
|
1020
1020
|
const {
|
|
1021
|
-
tableFullData
|
|
1021
|
+
tableFullData,
|
|
1022
|
+
tableFullTreeData
|
|
1022
1023
|
} = internalData;
|
|
1023
1024
|
const treeOpts = computeTreeOpts.value;
|
|
1025
|
+
const updateRecords = [];
|
|
1024
1026
|
if (keepSource) {
|
|
1025
1027
|
syncActivedCell();
|
|
1026
1028
|
if (treeConfig) {
|
|
1027
|
-
|
|
1029
|
+
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
1030
|
+
_xeUtils.default.eachTree(tableFullTreeData, row => {
|
|
1031
|
+
if ($xeTable.isUpdateByRow(row)) {
|
|
1032
|
+
updateRecords.push(row);
|
|
1033
|
+
}
|
|
1034
|
+
}, {
|
|
1035
|
+
children: childrenField
|
|
1036
|
+
});
|
|
1037
|
+
} else {
|
|
1038
|
+
tableFullData.forEach(row => {
|
|
1039
|
+
if ($xeTable.isUpdateByRow(row)) {
|
|
1040
|
+
updateRecords.push(row);
|
|
1041
|
+
}
|
|
1042
|
+
});
|
|
1028
1043
|
}
|
|
1029
|
-
return tableFullData.filter(row => $xeTable.isUpdateByRow(row));
|
|
1030
1044
|
}
|
|
1031
|
-
return
|
|
1045
|
+
return updateRecords;
|
|
1032
1046
|
},
|
|
1033
1047
|
getActiveRecord() {
|
|
1034
1048
|
warnLog('vxe.error.delFunc', ['getActiveRecord', 'getEditCell']);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("table"),{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getEditCell","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(_){let{props:I,reactData:E,internalData:b}=_,t=_.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:R,computeCheckboxOpts:m,computeTreeOpts:A,computeValidOpts:n}=_.getComputeMaps(),u=_xeUtils.default.browse(),p={},g={},C=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},i=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=t.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},d=()=>{var{editStore:e,tableColumn:t}=E,l=R.value,e=e.actived;let{row:r,column:o}=e;r&&o&&("row"===l.mode?t.forEach(e=>i(r,e)):i(r,o))},F=(e,t)=>{let{tableFullTreeData:a,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:s}=b;var l=A.value;let{rowField:u,parentField:c,mapChildrenField:g}=l,w=l.children||l.childrenField,v=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(_,l),o=t?_xeUtils.default.findTree(a,e=>t===e[u],{children:g}):null;if(o){var o=o.item,i=s[(0,_util.getRowid)(_,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[v](l),t[v](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};d[r]=o,s[r]=o}else{t&&warnLog("vxe.error.unableInsert"),n[v](l),a[v](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};d[r]=i,s[r]=i}})},s=(t,e,n)=>{let l=I.treeConfig;var r=E.isRowGroupStatus;let{tableFullTreeData:d,afterFullData:o,mergeBodyList:i,tableFullData:a,fullDataRowIdData:s,fullAllDataRowIdData:u,insertRowMaps:c,removeRowMaps:g}=b;var w=A.value;let{transform:v,parentField:x,rowField:f,mapChildrenField:h}=w,m=w.children||w.childrenField,R=(_xeUtils.default.isArray(t)||(t=[t]),e);if((_xeUtils.default.isString(e)||_xeUtils.default.isNumber(e))&&(w=u[e])&&(R=w.row),!t.length)return Promise.resolve({row:null,rows:[]});_.handlePushStack();let p=(0,_vue.reactive)(_.defineField(t.map(e=>Object.assign(l&&v?{[h]:[],[m]:[]}:{},e)))),C=[];if(l&&v&&(C=_xeUtils.default.toArrayTree(p,{key:f,parentKey:x,children:m})),_xeUtils.default.eqNull(R))if(l&&v)F(p,!1);else if(r){if(l)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else p.forEach(e=>{var t=(0,_util.getRowid)(_,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[t]=l,u[t]=l,o.unshift(e),a.unshift(e)}),i.forEach(e=>{var t=e.row;0<=t&&(e.row=t+p.length)});else if(-1===R)if(l&&v)F(p,!0);else if(r){if(l)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else p.forEach(e=>{var t=(0,_util.getRowid)(_,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,treeIndex:-1,_tIndex:-1,$index:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[t]=l,u[t]=l,o.push(e),a.push(e)});else if(l&&v){let a=_xeUtils.default.findTree(d,e=>R[f]===e[f],{children:h});if(a){let r=a.parent,o=r?r[h]:d;e=u[(0,_util.getRowid)(_,r)];let i=e?e.level:0;if(C.forEach((e,t)=>{r?e[x]!==r[f]&&(errLog("vxe.error.errProp",[x+"="+e[x],x+"="+r[f]]),e[x]=r[f]):null!==e[x]&&(_xeUtils.default.eqNull(e[x])||errLog("vxe.error.errProp",[x+"="+e[x],"null"]),e[x]=null);let l=a.index+t;n&&(l+=1),o.splice(l,0,e)}),_xeUtils.default.eachTree(C,e=>{var t=(0,_util.getRowid)(_,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[m]&&(e[h]=e[m]),s[t]=l,u[t]=l},{children:m}),r){w=_xeUtils.default.findTree(d,e=>R[f]===e[f],{children:m});if(w){t=w.items;let e=w.index;n&&(e+=1),t.splice(e,0,...C)}}}else warnLog("vxe.error.unableInsert"),F(p,!0)}else if(r){if(l)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else{if(l)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(R)?R<o.length&&(r=R):r=_.findRowIndexOf(o,R),-1===(r=n?Math.min(o.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));o.splice(r,0,...p);e=_.findRowIndexOf(a,R);-1<e?a.splice(e+(n?1:0),0,...p):a.push(...p),i.forEach(e=>{var{row:t,rowspan:l}=e;t>=r?e.row=t+p.length:(n?t+l>=r:t+l>r)&&(e.rowspan=l+p.length)})}w=e=>{var t=(0,_util.getRowid)(_,e);g[t]?(delete g[t],c[t]&&delete c[t]):c[t]=e};return l&&v?_xeUtils.default.eachTree(C,w,{children:h}):p.forEach(w),E.removeRowFlag++,E.insertRowFlag++,_.cacheRowMap(!1),_.updateScrollYStatus(),_.handleTableData(l&&v),l&&v||_.updateAfterDataIndex(),_.updateFooter(),_.handleUpdateBodyMerge(),_.checkSelectionStatus(),E.scrollYLoad&&_.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(_.updateCellAreas(),_.recalculate(!0))).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},r=(e,l,r,o)=>{var i=I.treeConfig,a=b.fullAllDataRowIdData;let{transform:t,rowField:n,parentField:d}=A.value;if(i&&t){_xeUtils.default.isArray(e)||(e=[e]);let t=l;return(_xeUtils.default.isString(l)||_xeUtils.default.isNumber(l))&&(i=a[l])&&(t=i.row),s(e.map(e=>Object.assign({},e,{[d]:t[n]})),r,o)}return errLog("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]})},S=(e,t)=>{var l=E.editStore,{actived:l,focused:r}=l,{row:o,column:i}=l,a=n.value;if(o||i){if(t&&(0,_util.getRowid)(_,t)!==(0,_util.getRowid)(_,o))return(0,_vue.nextTick)();d(),_.updateFooter(),l.args=null,l.row=null,l.column=null,_.dispatchEvent("edit-closed",{row:o,rowIndex:_.getRowIndex(o),$rowIndex:_.getVMRowIndex(o),column:i,columnIndex:_.getColumnIndex(i),$columnIndex:_.getVMColumnIndex(i)},e||null)}return r.row=null,r.column=null,a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&_.clearValidate?_.clearValidate():(0,_vue.nextTick)().then(()=>_.updateCellAreas())},a=(l,r,o)=>{let i=_.xeGrid,a=_.xeGantt;var{editConfig:e,mouseConfig:n}=I,{editStore:d,tableColumn:s}=E,u=R.value,c=u.mode,{actived:d,focused:t}=d;let{row:g,column:w}=l;var v=w.editRender;let{isFocus:x,isPos:f,isClear:h}=o;var o=l.cell||_.getCellElement(g,w),m=u.beforeEditMethod||u.activeMethod;if((l.cell=o)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(v)&&!_.isPendingByRow(g)&&!_.isAggregateRecord(g)){if(d.row!==g||"cell"===c&&d.column!==w){let t="edit-disabled";if(!m||m(Object.assign(Object.assign({},l),{$table:_,$grid:i,$gantt:a}))){n&&(_.clearSelected(),_.clearCellAreas)&&(_.clearCellAreas(),_.clearCopyCellArea()),_.closeTooltip(),d.column&&S(r),t="edit-activated",w.renderHeight=o.offsetHeight,d.args=l,d.row=g,d.column=w,_.handlePushStack(),h&&(0,_util.setCellValue)(g,w,null),"row"===c?s.forEach(e=>C(g,e)):C(g,w);let e=u.afterEditMethod;(0,_vue.nextTick)(()=>{x&&_.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:_,$grid:i,$gantt:a}))})}_.dispatchEvent(t,{row:g,rowIndex:_.getRowIndex(g),$rowIndex:_.getVMRowIndex(g),column:w,columnIndex:_.getColumnIndex(w),$columnIndex:_.getVMColumnIndex(w)},r),"edit-activated"===t&&_.dispatchEvent("edit-actived",{row:g,rowIndex:_.getRowIndex(g),$rowIndex:_.getVMRowIndex(g),column:w,columnIndex:_.getColumnIndex(w),$columnIndex:_.getVMColumnIndex(w)},r)}else{e=d.column;n&&(_.clearSelected(),_.clearCellAreas)&&(_.clearCellAreas(),_.clearCopyCellArea()),e&&e!==w&&(v=e.model,v.update&&(0,_util.setCellValue)(g,e,v.value),_.clearValidate)&&_.clearValidate(g,w),w.renderHeight=o.offsetHeight,d.args=l,d.column=w,f&&setTimeout(()=>{_.handleFocus(l,r)})}t.column=null,t.row=null,_.focus()}return(0,_vue.nextTick)()},w=(t,e,l)=>{var r=I.editConfig;let o=l.isPos,i=_xeUtils.default.isString(e)?_.getColumnByField(e):e;return t&&i&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(i.editRender)&&!_.isAggregateRecord(t)?Promise.resolve(o?_.scrollToRow(t,i):null).then(()=>{var e=_.getCellElement(t,i);return e&&(a({row:t,rowIndex:_.getRowIndex(t),column:i,columnIndex:_.getColumnIndex(i),cell:e,$table:_},null,{isFocus:o,isPos:o}),b._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return p={insert(e){return s(e,null)},insertAt(e,t){return s(e,t)},insertNextAt(e,t){return s(e,t,!0)},insertChild(e,t){return window.aa=b,r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=I.treeConfig,{editStore:l,isRowGroupStatus:r}=E;let{tableFullTreeData:o,selectCheckboxMaps:i,afterFullData:a,mergeBodyList:n,tableFullData:d,pendingRowMaps:s,insertRowMaps:u,removeRowMaps:c}=b;var g=m.value,w=A.value;let{transform:v,mapChildrenField:x}=w,f=w.children||w.childrenField;w=l.actived,l=g.checkField;let h=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=d,e.length?(_.handlePushStack(),e.forEach(e=>{var t;_.isInsertByRow(e)||(t=(0,_util.getRowid)(_,e),c[t]=e)}),l||(e.forEach(e=>{e=(0,_util.getRowid)(_,e);i[e]&&delete i[e]}),E.updateCheckboxFlag++),d===e?(e=h=d.slice(0),b.tableFullData=[],b.afterFullData=[],_.clearMergeCells()):t&&v?e.forEach(e=>{let t=(0,_util.getRowid)(_,e);var l=_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(_,e),{children:x}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(_,e),{children:f})),l=(l&&l.items.splice(l.index,1),_.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):r?warnLog(getI18n("vxe.error.noGroup",["remove"])):e.forEach(e=>{var t=_.findRowIndexOf(d,e);-1<t&&(t=d.splice(t,1),h.push(t[0]));let r=_.findRowIndexOf(a,e);-1<r&&(n.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),a.splice(r,1))}),w.row&&-1<_.findRowIndexOf(e,w.row)&&p.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(_,e);u[e]&&delete u[e],s[e]&&delete s[e]}),E.removeRowFlag++,E.insertRowFlag++,E.pendingRowFlag++,_.cacheRowMap(!1),_.handleTableData(t&&v),_.updateFooter(),_.handleUpdateBodyMerge(),t&&v||_.updateAfterDataIndex(),_.checkSelectionStatus(),E.scrollYLoad&&_.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(_.updateCellAreas(),_.recalculate(!0))).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))):Promise.resolve({row:null,rows:[]})},removeCheckboxRow(){return p.remove(_.getCheckboxRecords()).then(e=>(_.clearCheckboxRow(),e))},removeRadioRow(){var e=_.getRadioRecord();return p.remove(e||[]).then(e=>(_.clearRadioRow(),e))},removeCurrentRow(){var e=_.getCurrentRecord();return p.remove(e||[]).then(e=>(_.clearCurrentRow(),e))},getRecordset(){var e=p.getRemoveRecords(),t=_.getPendingRecords();let l=e.concat(t);var r=p.getUpdateRecords().filter(t=>!l.some(e=>_.eqRow(e,t)));return{insertRecords:p.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=b,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=b.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=I,l=b.tableFullData,r=A.value;return e?(d(),t?_xeUtils.default.filterTree(l,e=>_.isUpdateByRow(e),r):l.filter(e=>_.isUpdateByRow(e))):[]},getActiveRecord(){warnLog("vxe.error.delFunc",["getActiveRecord","getEditCell"]);var e=E.editStore,t=b.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(_,l)]?Object.assign({},e,{row:l}):null},getEditRecord(){warnLog("vxe.error.delFunc",["getEditRecord","getEditCell"]);var e=E.editStore,t=b.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(_,l)]?Object.assign({},e,{row:l}):null},getEditCell(){var e=E.editStore,{row:e,column:t}=e.actived;return t&&e?{row:e,rowIndex:_.getRowIndex(e),column:t,columnIndex:_.getColumnIndex(t)}:null},getSelectedCell(){var e=E.editStore,{row:e,column:t}=e.selected;return e&&t?{row:e,column:t}:null},clearActived(e){return warnLog("vxe.error.delFunc",["clearActived","clearEdit"]),_.clearEdit(e)},clearEdit(e){return S(null,e)},clearSelected(){var e=E.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return warnLog("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),_.isEditByRow(e)},isEditByRow(e){var t=E.editStore;return t.actived.row===e},setActiveRow(e){return warnLog("vxe.error.delFunc",["setActiveRow","setEditRow"]),p.setEditRow(e)},setEditRow(e,t,l){var r=b.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)?_.getColumnByField(t):t),w(e,o,Object.assign({isPos:i,isFocus:i},l))},setActiveCell(e,t){return warnLog("vxe.error.delFunc",["setActiveCell","setEditCell"]),p.setEditCell(e,t)},setEditCell(e,t,l){return w(e,t,Object.assign({isFocus:!0,isPos:!0},l))},setSelectCell(e,t){var l=E.tableData,r=R.value,t=_xeUtils.default.isString(t)?_.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=_.findRowIndexOf(l,e))&&t&&(l=_.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:_.getColumnIndex(t),cell:l},_.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t,l){return a(e,t,Object.assign({isFocus:!0,isPos:!0},l))},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:S,handleFocus(r){var{row:o,column:i,cell:a}=r,n=i.editRender,d=R.value;if((0,_utils.isEnableConf)(n)){var s=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?a.querySelector("input,textarea"):a.querySelector(e))&&l.focus()),l?t?l.select():u.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!i.fixed&&_.scrollToRow(o,i)}},handleSelected(e,t){var l=I.mouseConfig,r=E.editStore,o=c.value;let i=R.value,{actived:a,selected:n}=r,{row:d,column:s}=e,u=l&&o.selected;return!u||n.row===d&&n.column===s||(a.row!==d||"cell"===i.mode&&a.column!==s)&&(S(t),_.clearSelected(),_.clearCellAreas&&(_.clearCellAreas(),_.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&g.addCellSelectedClass(),_.focus(),t)&&_.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=E.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=_.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},p),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)},setupGantt(e){return e.extendTableMethods(tableEditMethodKeys)}});
|
|
1
|
+
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("table"),{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getEditCell","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(_){let{props:I,reactData:E,internalData:b}=_,t=_.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:R,computeCheckboxOpts:m,computeTreeOpts:F,computeValidOpts:n}=_.getComputeMaps(),u=_xeUtils.default.browse(),p={},g={},C=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},i=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=t.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},d=()=>{var{editStore:e,tableColumn:t}=E,l=R.value,e=e.actived;let{row:r,column:o}=e;r&&o&&("row"===l.mode?t.forEach(e=>i(r,e)):i(r,o))},A=(e,t)=>{let{tableFullTreeData:a,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:s}=b;var l=F.value;let{rowField:u,parentField:c,mapChildrenField:g}=l,w=l.children||l.childrenField,v=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(_,l),o=t?_xeUtils.default.findTree(a,e=>t===e[u],{children:g}):null;if(o){var o=o.item,i=s[(0,_util.getRowid)(_,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[v](l),t[v](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};d[r]=o,s[r]=o}else{t&&warnLog("vxe.error.unableInsert"),n[v](l),a[v](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};d[r]=i,s[r]=i}})},s=(t,e,n)=>{let l=I.treeConfig;var r=E.isRowGroupStatus;let{tableFullTreeData:d,afterFullData:o,mergeBodyList:i,tableFullData:a,fullDataRowIdData:s,fullAllDataRowIdData:u,insertRowMaps:c,removeRowMaps:g}=b;var w=F.value;let{transform:v,parentField:x,rowField:f,mapChildrenField:h}=w,m=w.children||w.childrenField,R=(_xeUtils.default.isArray(t)||(t=[t]),e);if((_xeUtils.default.isString(e)||_xeUtils.default.isNumber(e))&&(w=u[e])&&(R=w.row),!t.length)return Promise.resolve({row:null,rows:[]});_.handlePushStack();let p=(0,_vue.reactive)(_.defineField(t.map(e=>Object.assign(l&&v?{[h]:[],[m]:[]}:{},e)))),C=[];if(l&&v&&(C=_xeUtils.default.toArrayTree(p,{key:f,parentKey:x,children:m})),_xeUtils.default.eqNull(R))if(l&&v)A(p,!1);else if(r){if(l)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else p.forEach(e=>{var t=(0,_util.getRowid)(_,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[t]=l,u[t]=l,o.unshift(e),a.unshift(e)}),i.forEach(e=>{var t=e.row;0<=t&&(e.row=t+p.length)});else if(-1===R)if(l&&v)A(p,!0);else if(r){if(l)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else p.forEach(e=>{var t=(0,_util.getRowid)(_,e),l={row:e,rowid:t,_seq:-1,seq:-1,index:-1,_index:-1,treeIndex:-1,_tIndex:-1,$index:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[t]=l,u[t]=l,o.push(e),a.push(e)});else if(l&&v){let a=_xeUtils.default.findTree(d,e=>R[f]===e[f],{children:h});if(a){let r=a.parent,o=r?r[h]:d;e=u[(0,_util.getRowid)(_,r)];let i=e?e.level:0;if(C.forEach((e,t)=>{r?e[x]!==r[f]&&(errLog("vxe.error.errProp",[x+"="+e[x],x+"="+r[f]]),e[x]=r[f]):null!==e[x]&&(_xeUtils.default.eqNull(e[x])||errLog("vxe.error.errProp",[x+"="+e[x],"null"]),e[x]=null);let l=a.index+t;n&&(l+=1),o.splice(l,0,e)}),_xeUtils.default.eachTree(C,e=>{var t=(0,_util.getRowid)(_,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[m]&&(e[h]=e[m]),s[t]=l,u[t]=l},{children:m}),r){w=_xeUtils.default.findTree(d,e=>R[f]===e[f],{children:m});if(w){t=w.items;let e=w.index;n&&(e+=1),t.splice(e,0,...C)}}}else warnLog("vxe.error.unableInsert"),A(p,!0)}else if(r){if(l)throw new Error(getI18n("vxe.error.noTree",["insert"]));errLog(getI18n("vxe.error.noGroup",["insert"]))}else{if(l)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(R)?R<o.length&&(r=R):r=_.findRowIndexOf(o,R),-1===(r=n?Math.min(o.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));o.splice(r,0,...p);e=_.findRowIndexOf(a,R);-1<e?a.splice(e+(n?1:0),0,...p):a.push(...p),i.forEach(e=>{var{row:t,rowspan:l}=e;t>=r?e.row=t+p.length:(n?t+l>=r:t+l>r)&&(e.rowspan=l+p.length)})}w=e=>{var t=(0,_util.getRowid)(_,e);g[t]?(delete g[t],c[t]&&delete c[t]):c[t]=e};return l&&v?_xeUtils.default.eachTree(C,w,{children:h}):p.forEach(w),E.removeRowFlag++,E.insertRowFlag++,_.cacheRowMap(!1),_.updateScrollYStatus(),_.handleTableData(l&&v),l&&v||_.updateAfterDataIndex(),_.updateFooter(),_.handleUpdateBodyMerge(),_.checkSelectionStatus(),E.scrollYLoad&&_.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(_.updateCellAreas(),_.recalculate(!0))).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},r=(e,l,r,o)=>{var i=I.treeConfig,a=b.fullAllDataRowIdData;let{transform:t,rowField:n,parentField:d}=F.value;if(i&&t){_xeUtils.default.isArray(e)||(e=[e]);let t=l;return(_xeUtils.default.isString(l)||_xeUtils.default.isNumber(l))&&(i=a[l])&&(t=i.row),s(e.map(e=>Object.assign({},e,{[d]:t[n]})),r,o)}return errLog("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]})},S=(e,t)=>{var l=E.editStore,{actived:l,focused:r}=l,{row:o,column:i}=l,a=n.value;if(o||i){if(t&&(0,_util.getRowid)(_,t)!==(0,_util.getRowid)(_,o))return(0,_vue.nextTick)();d(),_.updateFooter(),l.args=null,l.row=null,l.column=null,_.dispatchEvent("edit-closed",{row:o,rowIndex:_.getRowIndex(o),$rowIndex:_.getVMRowIndex(o),column:i,columnIndex:_.getColumnIndex(i),$columnIndex:_.getVMColumnIndex(i)},e||null)}return r.row=null,r.column=null,a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&_.clearValidate?_.clearValidate():(0,_vue.nextTick)().then(()=>_.updateCellAreas())},a=(l,r,o)=>{let i=_.xeGrid,a=_.xeGantt;var{editConfig:e,mouseConfig:n}=I,{editStore:d,tableColumn:s}=E,u=R.value,c=u.mode,{actived:d,focused:t}=d;let{row:g,column:w}=l;var v=w.editRender;let{isFocus:x,isPos:f,isClear:h}=o;var o=l.cell||_.getCellElement(g,w),m=u.beforeEditMethod||u.activeMethod;if((l.cell=o)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(v)&&!_.isPendingByRow(g)&&!_.isAggregateRecord(g)){if(d.row!==g||"cell"===c&&d.column!==w){let t="edit-disabled";if(!m||m(Object.assign(Object.assign({},l),{$table:_,$grid:i,$gantt:a}))){n&&(_.clearSelected(),_.clearCellAreas)&&(_.clearCellAreas(),_.clearCopyCellArea()),_.closeTooltip(),d.column&&S(r),t="edit-activated",w.renderHeight=o.offsetHeight,d.args=l,d.row=g,d.column=w,_.handlePushStack(),h&&(0,_util.setCellValue)(g,w,null),"row"===c?s.forEach(e=>C(g,e)):C(g,w);let e=u.afterEditMethod;(0,_vue.nextTick)(()=>{x&&_.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:_,$grid:i,$gantt:a}))})}_.dispatchEvent(t,{row:g,rowIndex:_.getRowIndex(g),$rowIndex:_.getVMRowIndex(g),column:w,columnIndex:_.getColumnIndex(w),$columnIndex:_.getVMColumnIndex(w)},r),"edit-activated"===t&&_.dispatchEvent("edit-actived",{row:g,rowIndex:_.getRowIndex(g),$rowIndex:_.getVMRowIndex(g),column:w,columnIndex:_.getColumnIndex(w),$columnIndex:_.getVMColumnIndex(w)},r)}else{e=d.column;n&&(_.clearSelected(),_.clearCellAreas)&&(_.clearCellAreas(),_.clearCopyCellArea()),e&&e!==w&&(v=e.model,v.update&&(0,_util.setCellValue)(g,e,v.value),_.clearValidate)&&_.clearValidate(g,w),w.renderHeight=o.offsetHeight,d.args=l,d.column=w,f&&setTimeout(()=>{_.handleFocus(l,r)})}t.column=null,t.row=null,_.focus()}return(0,_vue.nextTick)()},w=(t,e,l)=>{var r=I.editConfig;let o=l.isPos,i=_xeUtils.default.isString(e)?_.getColumnByField(e):e;return t&&i&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(i.editRender)&&!_.isAggregateRecord(t)?Promise.resolve(o?_.scrollToRow(t,i):null).then(()=>{var e=_.getCellElement(t,i);return e&&(a({row:t,rowIndex:_.getRowIndex(t),column:i,columnIndex:_.getColumnIndex(i),cell:e,$table:_},null,{isFocus:o,isPos:o}),b._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return p={insert(e){return s(e,null)},insertAt(e,t){return s(e,t)},insertNextAt(e,t){return s(e,t,!0)},insertChild(e,t){return window.aa=b,r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=I.treeConfig,{editStore:l,isRowGroupStatus:r}=E;let{tableFullTreeData:o,selectCheckboxMaps:i,afterFullData:a,mergeBodyList:n,tableFullData:d,pendingRowMaps:s,insertRowMaps:u,removeRowMaps:c}=b;var g=m.value,w=F.value;let{transform:v,mapChildrenField:x}=w,f=w.children||w.childrenField;w=l.actived,l=g.checkField;let h=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=d,e.length?(_.handlePushStack(),e.forEach(e=>{var t;_.isInsertByRow(e)||(t=(0,_util.getRowid)(_,e),c[t]=e)}),l||(e.forEach(e=>{e=(0,_util.getRowid)(_,e);i[e]&&delete i[e]}),E.updateCheckboxFlag++),d===e?(e=h=d.slice(0),b.tableFullData=[],b.afterFullData=[],_.clearMergeCells()):t&&v?e.forEach(e=>{let t=(0,_util.getRowid)(_,e);var l=_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(_,e),{children:x}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(_,e),{children:f})),l=(l&&l.items.splice(l.index,1),_.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):r?warnLog(getI18n("vxe.error.noGroup",["remove"])):e.forEach(e=>{var t=_.findRowIndexOf(d,e);-1<t&&(t=d.splice(t,1),h.push(t[0]));let r=_.findRowIndexOf(a,e);-1<r&&(n.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),a.splice(r,1))}),w.row&&-1<_.findRowIndexOf(e,w.row)&&p.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(_,e);u[e]&&delete u[e],s[e]&&delete s[e]}),E.removeRowFlag++,E.insertRowFlag++,E.pendingRowFlag++,_.cacheRowMap(!1),_.handleTableData(t&&v),_.updateFooter(),_.handleUpdateBodyMerge(),t&&v||_.updateAfterDataIndex(),_.checkSelectionStatus(),E.scrollYLoad&&_.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(_.updateCellAreas(),_.recalculate(!0))).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))):Promise.resolve({row:null,rows:[]})},removeCheckboxRow(){return p.remove(_.getCheckboxRecords()).then(e=>(_.clearCheckboxRow(),e))},removeRadioRow(){var e=_.getRadioRecord();return p.remove(e||[]).then(e=>(_.clearRadioRow(),e))},removeCurrentRow(){var e=_.getCurrentRecord();return p.remove(e||[]).then(e=>(_.clearCurrentRow(),e))},getRecordset(){var e=p.getRemoveRecords(),t=_.getPendingRecords();let l=e.concat(t);var r=p.getUpdateRecords().filter(t=>!l.some(e=>_.eqRow(e,t)));return{insertRecords:p.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=b,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=b.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=I,{tableFullData:l,tableFullTreeData:r}=b,o=F.value;let i=[];return e&&(d(),t?(e=o.children||o.childrenField,_xeUtils.default.eachTree(r,e=>{_.isUpdateByRow(e)&&i.push(e)},{children:e})):l.forEach(e=>{_.isUpdateByRow(e)&&i.push(e)})),i},getActiveRecord(){warnLog("vxe.error.delFunc",["getActiveRecord","getEditCell"]);var e=E.editStore,t=b.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(_,l)]?Object.assign({},e,{row:l}):null},getEditRecord(){warnLog("vxe.error.delFunc",["getEditRecord","getEditCell"]);var e=E.editStore,t=b.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(_,l)]?Object.assign({},e,{row:l}):null},getEditCell(){var e=E.editStore,{row:e,column:t}=e.actived;return t&&e?{row:e,rowIndex:_.getRowIndex(e),column:t,columnIndex:_.getColumnIndex(t)}:null},getSelectedCell(){var e=E.editStore,{row:e,column:t}=e.selected;return e&&t?{row:e,column:t}:null},clearActived(e){return warnLog("vxe.error.delFunc",["clearActived","clearEdit"]),_.clearEdit(e)},clearEdit(e){return S(null,e)},clearSelected(){var e=E.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return warnLog("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),_.isEditByRow(e)},isEditByRow(e){var t=E.editStore;return t.actived.row===e},setActiveRow(e){return warnLog("vxe.error.delFunc",["setActiveRow","setEditRow"]),p.setEditRow(e)},setEditRow(e,t,l){var r=b.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)?_.getColumnByField(t):t),w(e,o,Object.assign({isPos:i,isFocus:i},l))},setActiveCell(e,t){return warnLog("vxe.error.delFunc",["setActiveCell","setEditCell"]),p.setEditCell(e,t)},setEditCell(e,t,l){return w(e,t,Object.assign({isFocus:!0,isPos:!0},l))},setSelectCell(e,t){var l=E.tableData,r=R.value,t=_xeUtils.default.isString(t)?_.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=_.findRowIndexOf(l,e))&&t&&(l=_.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:_.getColumnIndex(t),cell:l},_.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t,l){return a(e,t,Object.assign({isFocus:!0,isPos:!0},l))},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:S,handleFocus(r){var{row:o,column:i,cell:a}=r,n=i.editRender,d=R.value;if((0,_utils.isEnableConf)(n)){var s=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?a.querySelector("input,textarea"):a.querySelector(e))&&l.focus()),l?t?l.select():u.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!i.fixed&&_.scrollToRow(o,i)}},handleSelected(e,t){var l=I.mouseConfig,r=E.editStore,o=c.value;let i=R.value,{actived:a,selected:n}=r,{row:d,column:s}=e,u=l&&o.selected;return!u||n.row===d&&n.column===s||(a.row!==d||"cell"===i.mode&&a.column!==s)&&(S(t),_.clearSelected(),_.clearCellAreas&&(_.clearCellAreas(),_.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&g.addCellSelectedClass(),_.focus(),t)&&_.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=E.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=_.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},p),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)},setupGantt(e){return e.extendTableMethods(tableEditMethodKeys)}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -23,7 +23,7 @@ if(scrollXLoad&&allColumnFooterOverflow){if(spanMethod||footerSpanMethod){// 如
|
|
|
23
23
|
if(tableColumn.length&&collectColumn.length){collectColumn.forEach(column=>{if(column.renderFixed){fixedSize++;}});}return fixedSize;});const computeIsMaxFixedColumn=(0,_vue.computed)(()=>{const fixedColumnSize=computeFixedColumnSize.value;const columnOpts=computeColumnOpts.value;const{maxFixedSize}=columnOpts;if(maxFixedSize){return fixedColumnSize>=maxFixedSize;}return false;});const computeKeepFields=(0,_vue.computed)(()=>{const{tableFullColumn}=internalData;const{updateColFlag}=reactData;const editDirtyOpts=computeEditDirtyOpts.value;const{extraFields,includeFields,excludeFields}=editDirtyOpts;const kpFields=[];if(updateColFlag){if(includeFields&&includeFields.length){return includeFields;}const excludeFdMaps={};if(excludeFields&&excludeFields.length){excludeFields.forEach(field=>{excludeFdMaps[field]=1;});}const addFdMaps={};if(extraFields&&extraFields.length){extraFields.forEach(field=>{if(!addFdMaps[field]){addFdMaps[field]=1;kpFields.push(field);}});}for(let i=0;i<tableFullColumn.length;i++){const column=tableFullColumn[i];const{field,type,editRender,cellRender}=column;if(field&&!type&&(editRender||cellRender)&&!addFdMaps[field]&&!excludeFdMaps[field]){addFdMaps[field]=1;kpFields.push(field);}}}return kpFields;});const computeTableBorder=(0,_vue.computed)(()=>{const{border}=props;if(border===true){return'full';}if(border){return border;}return'default';});const computeIsAllCheckboxDisabled=(0,_vue.computed)(()=>{const{treeConfig}=props;const{tableData}=reactData;const{tableFullData}=internalData;const checkboxOpts=computeCheckboxOpts.value;const{strict,checkMethod}=checkboxOpts;if(strict){if(tableData.length||tableFullData.length){if(checkMethod){if(treeConfig){// 暂时不支持树形结构
|
|
24
24
|
}// 如果所有行都被禁用
|
|
25
25
|
return tableFullData.every(row=>!checkMethod({$table:$xeTable,row}));}return false;}return true;}return false;});const computeVirtualScrollBars=(0,_vue.computed)(()=>{const{overflowX,scrollXLoad,overflowY,scrollYLoad}=reactData;return{x:overflowX&&scrollXLoad,y:overflowY&&scrollYLoad};});const computeRowGroupFields=(0,_vue.computed)(()=>{const rowGroupOpts=computeRowGroupOpts.value;return rowGroupOpts.groupFields;});const computeRowGroupColumns=(0,_vue.computed)(()=>{const{rowGroupList}=reactData;const{fullColumnFieldData}=internalData;const rgColumns=[];rowGroupList.forEach(aggConf=>{const colRest=fullColumnFieldData[aggConf.field];if(colRest){rgColumns.push(colRest.column);}});return rgColumns;});const computeAggFuncColumns=(0,_vue.computed)(()=>{const{rowGroupList,tableColumn}=reactData;if(rowGroupList.length){return tableColumn.filter(column=>column.aggFunc);}return[];});const combineTabsResizeFlag=(0,_vue.computed)(()=>{return $xeTabs?$xeTabs.reactData.resizeFlag:null;});const combineModalResizeFlag=(0,_vue.computed)(()=>{return $xeModal?$xeModal.reactData.resizeFlag:null;});const combineSplitterResizeFlag=(0,_vue.computed)(()=>{return $xeSplitter?$xeSplitter.reactData.resizeFlag:null;});const refMaps={refElem,refTooltip,refValidTooltip,refTableFilter,refTableCustom,refTableMenu,refTableHeader,refTableBody,refTableFooter,refTableLeftHeader,refTableLeftBody,refTableLeftFooter,refTableRightHeader,refTableRightBody,refTableRightFooter,refLeftContainer,refRightContainer,refColResizeBar,refRowResizeBar,refCustomContainerElem,refScrollXVirtualElem,refScrollYVirtualElem,refScrollXHandleElem,refScrollYHandleElem,refScrollXSpaceElem,refScrollYSpaceElem};const computeMaps={computeSize,computeTableId,computeValidOpts,computeRowField,computeVirtualXOpts,computeVirtualYOpts,computeScrollbarOpts,computeScrollbarXOpts,computeScrollbarYOpts,computeScrollbarXToTop,computeScrollbarYToLeft,computeColumnOpts,computeCurrentColumnOpts,computeScrollXThreshold,computeScrollYThreshold,computeRowHeightMaps,computeDefaultRowHeight,computeCellOpts,computeHeaderCellOpts,computeFooterCellOpts,computeRowOpts,computeAggregateOpts,computeAggregateAccuracyOpts,computeRowGroupOpts,computeCurrentRowOpts,computeRowDragOpts,computeColumnDragOpts,computeResizeOpts,computeResizableOpts,computeSeqOpts,computeRadioOpts,computeCheckboxOpts,computeTooltipOpts,computeHeaderTooltipOpts,computeFooterTooltipOpts,computeEditOpts,computeEditDirtyOpts,computeSortOpts,computeFilterOpts,computeFloatingFilterOpts,computeMouseOpts,computeAreaOpts,computeKeyboardOpts,computeClipOpts,computeFnrOpts,computeHeaderMenu,computeBodyMenu,computeFooterMenu,computeIsMenu,computeIsContentMenu,computeMenuList,computeMenuOpts,computeExportOpts,computeImportOpts,computePrintOpts,computeExpandOpts,computeTreeOpts,computeEmptyOpts,computeLoadingOpts,computeCellOffsetWidth,computeCustomOpts,computeCustomSimpleMode,computeLeftFixedWidth,computeRightFixedWidth,computeBodyMergeCoverFixed,computeFixedColumnSize,computeIsMaxFixedColumn,computeKeepFields,computeIsAllCheckboxDisabled,computeIsHeaderRenderOptimize,computeIsBodyRenderOptimize,computeIsFooterRenderOptimize,computeVirtualScrollBars,computeRowGroupFields,computeRowGroupColumns,computeAggFuncColumns,computeUndoRedoHistoryOpts,computeFNROpts,computeSXOpts,computeSYOpts};const $xeTable={xID,props:props,context,reactData,internalData,getRefMaps:()=>refMaps,getComputeMaps:()=>computeMaps,xeGrid:$xeGrid,xeGantt:$xeGantt,// 已废弃
|
|
26
|
-
xegrid:$xeGrid};const eqCellValue=(
|
|
26
|
+
xegrid:$xeGrid};const eqCellValue=(newRow,oldRow,field)=>{const val1=_xeUtils.default.get(newRow,field);const val2=_xeUtils.default.get(oldRow,field);let result=false;if((0,_utils.eqEmptyValue)(val1)&&(0,_utils.eqEmptyValue)(val2)){result=true;}else if(_xeUtils.default.isString(val1)||_xeUtils.default.isNumber(val1)){result=''+val1===''+val2;}else{result=_xeUtils.default.isEqual(val1,val2);}return{newValue:val1,oldValue:val2,result};};const handleKeyField=()=>{const keyField=computeRowField.value;internalData.currKeyField=keyField;internalData.isCurrDeepKey=(0,_util.hasDeepKey)(keyField);};const hangleStorageDefaultValue=(value,isAll)=>{return _xeUtils.default.isBoolean(value)?value:isAll;};const getNextSortOrder=column=>{const sortOpts=computeSortOpts.value;const{orders=[]}=sortOpts;const currOrder=column.order||null;const oIndex=orders.indexOf(currOrder)+1;return orders[oIndex<orders.length?oIndex:0];};const getCustomStorageMap=id=>{const version=getConfig().version;const rest=_xeUtils.default.toStringJSON(localStorage.getItem(customStorageKey)||'');const maps=rest&&rest._v===version?rest:{_v:version};return(id?maps[id]:maps)||{};};const setCustomStorageMap=(id,data)=>{const version=getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,_xeUtils.default.toJSONString(maps));};const getRecoverRowMaps=keyMaps=>{const{fullAllDataRowIdData}=internalData;const restKeys={};_xeUtils.default.each(keyMaps,(row,rowid)=>{if(fullAllDataRowIdData[rowid]){restKeys[rowid]=row;}});return restKeys;};const handleReserveRow=reserveRowMap=>{const{fullDataRowIdData}=internalData;const reserveList=[];_xeUtils.default.each(reserveRowMap,(item,rowid)=>{if(fullDataRowIdData[rowid]&&$xeTable.findRowIndexOf(reserveList,fullDataRowIdData[rowid].row)===-1){reserveList.push(fullDataRowIdData[rowid].row);}});return reserveList;};const handleVirtualXVisible=()=>{const{isScrollXBig,scrollXWidth}=reactData;const{elemStore,visibleColumn,fullColumnIdData}=internalData;const leftFixedWidth=computeLeftFixedWidth.value;const rightFixedWidth=computeRightFixedWidth.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(bodyScrollElem){const clientWidth=bodyScrollElem.clientWidth;let scrollLeft=bodyScrollElem.scrollLeft;if(isScrollXBig){scrollLeft=Math.ceil((scrollXWidth-clientWidth)*Math.min(1,scrollLeft/(maxXWidth-clientWidth)));}const startLeft=scrollLeft+leftFixedWidth;const endLeft=scrollLeft+clientWidth-rightFixedWidth;let leftIndex=0;let rightIndex=visibleColumn.length;while(leftIndex<rightIndex){const cIndex=Math.floor((leftIndex+rightIndex)/2);const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};if(colRest.oLeft<=startLeft){leftIndex=cIndex+1;}else{rightIndex=cIndex;}}let visibleSize=0;const toVisibleIndex=leftIndex===visibleColumn.length?leftIndex:Math.max(0,leftIndex<visibleColumn.length?leftIndex-2:0);for(let cIndex=toVisibleIndex,cLen=visibleColumn.length;cIndex<cLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};visibleSize++;if(colRest.oLeft>endLeft||visibleSize>=60){break;}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(1,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};};const calcVarRowHeightConfig=(sizeKey,sizeEl)=>{const{rowHeightStore}=reactData;if(sizeEl&&sizeEl.clientHeight){rowHeightStore[sizeKey]=sizeEl.clientHeight;}};const computeRowHeight=()=>{const{isAllOverflow}=reactData;const tableHeader=refTableHeader.value;const tableBody=refTableBody.value;const tableBodyElem=tableBody?tableBody.$el:null;const defaultRowHeight=computeDefaultRowHeight.value;let rowHeight=0;if(isAllOverflow){if(tableBodyElem){const tableHeaderElem=tableHeader?tableHeader.$el:null;let firstTrElem;firstTrElem=tableBodyElem.querySelector('tr');if(!firstTrElem&&tableHeaderElem){firstTrElem=tableHeaderElem.querySelector('tr');}if(firstTrElem){rowHeight=firstTrElem.clientHeight;}}if(!rowHeight){rowHeight=defaultRowHeight;}}else{rowHeight=defaultRowHeight;}// 最低支持 18px 行高
|
|
27
27
|
return Math.max(18,rowHeight);};const handleVirtualYVisible=()=>{const{isAllOverflow,expandColumn,isScrollYBig,scrollYHeight}=reactData;const{elemStore,isResizeCellHeight,afterFullData,fullAllDataRowIdData}=internalData;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(bodyScrollElem){const clientHeight=bodyScrollElem.clientHeight;let scrollTop=bodyScrollElem.scrollTop;if(isScrollYBig){scrollTop=Math.ceil((scrollYHeight-clientHeight)*Math.min(1,scrollTop/(maxYHeight-clientHeight)));}const startTop=scrollTop;const endTop=scrollTop+clientHeight;let toVisibleIndex=-1;let visibleSize=0;const isCustomCellHeight=isResizeCellHeight||cellOpts.height||rowOpts.height;if(!isCustomCellHeight&&!expandColumn&&isAllOverflow){toVisibleIndex=Math.floor(startTop/defaultRowHeight)-1;visibleSize=Math.ceil(clientHeight/defaultRowHeight)+1;}else{const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);let leftIndex=0;let rightIndex=afterFullData.length;while(leftIndex<rightIndex){const rIndex=Math.floor((leftIndex+rightIndex)/2);const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};if(rowRest.oTop<=startTop){leftIndex=rIndex+1;}else{rightIndex=rIndex;}}toVisibleIndex=leftIndex===afterFullData.length?leftIndex:Math.max(0,leftIndex<afterFullData.length?leftIndex-2:0);for(let rIndex=toVisibleIndex,rLen=afterFullData.length;rIndex<rLen;rIndex++){const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};visibleSize++;if(rowRest.oTop>endTop||visibleSize>=100){break;}}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(6,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};};const calculateMergerOffsetIndex=(list,mergeMaps,offsetItem,type)=>{const mKey=`${offsetItem.startIndex}:${offsetItem.endIndex}`;const mObj=mergeMaps[mKey];// 缓存
|
|
28
28
|
if(mObj){offsetItem.startIndex=mObj.startIndex;offsetItem.endIndex=mObj.endIndex;}else{for(let mcIndex=0,len=list.length;mcIndex<len;mcIndex++){const mergeItem=list[mcIndex];const{startIndex,endIndex}=offsetItem;const mergeStartIndex=mergeItem[type];const mergeSpanNumber=mergeItem[type+'span'];const mergeEndIndex=mergeStartIndex+mergeSpanNumber;if(mergeStartIndex<startIndex&&startIndex<mergeEndIndex){offsetItem.startIndex=mergeStartIndex;}if(mergeStartIndex<endIndex&&endIndex<mergeEndIndex){offsetItem.endIndex=mergeEndIndex;}if(offsetItem.startIndex!==startIndex||offsetItem.endIndex!==endIndex){mcIndex=-1;}}mergeMaps[mKey]=offsetItem;}};function buildMergeData(mergeConfigs){const mergeMaps={};const mergeRowMaps={};const mergeColMaps={};if(mergeConfigs&&mergeConfigs.length){for(let mIndex=0;mIndex<mergeConfigs.length;mIndex++){const{row:_rowIndex,col:_columnIndex,rowspan:mergeRowspan,colspan:mergeColspan}=mergeConfigs[mIndex];for(let i=0;i<mergeRowspan;i++){const currRIndex=_rowIndex+i;for(let j=0;j<mergeColspan;j++){const currCIndex=_columnIndex+j;mergeMaps[`${currRIndex}:${currCIndex}`]=!i&&!j?{rowspan:mergeRowspan,colspan:mergeColspan}:{rowspan:0,colspan:0};}}}}return{mergeMaps,mergeRowMaps,mergeColMaps};}const handleUpdateMergeBodyCells=merges=>{internalData.mergeBodyList=[];internalData.mergeBodyMaps={};internalData.mergeBodyCellMaps={};internalData.mergeBodyRowMaps={};internalData.mergeBodyColMaps={};$xeTable.setMergeCells(merges);};const handleBodyMerge=merges=>{const{fullAllDataRowIdData,fullColumnIdData,visibleColumn,afterFullData,mergeBodyList,mergeBodyMaps}=internalData;if(merges){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;let mergeRowIndex=-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeRow)){mergeRowIndex=margeRow;}else{const rowid=margeRow?handleGetRowId(margeRow):null;const rowRest=rowid?fullAllDataRowIdData[rowid]:null;if(rowRest){mergeRowIndex=rowRest._index;}}if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=_xeUtils.default.toNumber(rowspan)||1;colspan=_xeUtils.default.toNumber(colspan)||1;if(rowspan>1||colspan>1){const row=afterFullData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeBodyList.push(mergeItem);}}}});}};const removeBodyMerges=merges=>{const{mergeBodyList,fullColumnIdData,fullAllDataRowIdData,mergeBodyMaps}=internalData;const rest=[];if(merges){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;let mergeRowIndex=-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeRow)){mergeRowIndex=margeRow;}else{const rowid=margeRow?handleGetRowId(margeRow):null;const rowRest=rowid?fullAllDataRowIdData[rowid]:null;if(rowRest){mergeRowIndex=rowRest._index;}}if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=_xeUtils.default.findIndexOf(mergeBodyList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeBodyList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(rItems[0]);if(mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;};const handleUpdateMergeHeaderCells=merges=>{internalData.mergeHeaderList=[];internalData.mergeHeaderMaps={};internalData.mergeHeaderCellMaps={};internalData.mergeHeaderRowMaps={};internalData.mergeBodyColMaps={};$xeTable.setMergeHeaderCells(merges);};const handleHeaderMerge=merges=>{const{showCustomHeader}=props;const{footerTableData}=reactData;const{mergeHeaderList,mergeHeaderMaps,fullColumnIdData}=internalData;if(merges){const{visibleColumn}=internalData;if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=_xeUtils.default.toNumber(rowspan)||1;colspan=_xeUtils.default.toNumber(colspan)||1;if(!showCustomHeader&&rowspan>1){errLog('vxe.error.notSupportProp',['[table] show-custom-header=false',`rowspan=${rowspan}`,'rowspan=1']);return;}if(rowspan>1||colspan>1){const row=footerTableData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeHeaderList.push(mergeItem);}}}});}};const removeHeaderMerges=merges=>{const{mergeHeaderList,fullColumnIdData,mergeHeaderMaps}=internalData;const rest=[];if(merges){if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=_xeUtils.default.findIndexOf(mergeHeaderList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeHeaderList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(item);if(mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;};const handleUpdateMergeFooterCells=merges=>{internalData.mergeFooterList=[];internalData.mergeFooterMaps={};internalData.mergeFooterCellMaps={};internalData.mergeFooterRowMaps={};internalData.mergeFooterColMaps={};$xeTable.setMergeFooterCells(merges);};const handleFooterMerge=merges=>{const{footerTableData}=reactData;const{mergeFooterList,mergeFooterMaps,fullColumnIdData}=internalData;if(merges){const{visibleColumn}=internalData;if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=_xeUtils.default.toNumber(rowspan)||1;colspan=_xeUtils.default.toNumber(colspan)||1;if(rowspan>1||colspan>1){const row=footerTableData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeFooterList.push(mergeItem);}}}});}};const removeFooterMerges=merges=>{const{mergeFooterList,fullColumnIdData,mergeFooterMaps}=internalData;const rest=[];if(merges){if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=_xeUtils.default.findIndexOf(mergeFooterList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeFooterList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(item);if(mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;};const handleSortEvent=(evnt,sortConfs,isUpdate)=>{const{tableFullColumn}=internalData;const sortOpts=computeSortOpts.value;const{multiple,remote,orders}=sortOpts;if(!_xeUtils.default.isArray(sortConfs)){sortConfs=[sortConfs];}if(sortConfs&&sortConfs.length){const orderActiveMaps={};if(!multiple){sortConfs=[sortConfs[0]];tableFullColumn.forEach(column=>{if(column.order){orderActiveMaps[column.id]=column;}});}const sortColMpps={};let firstColumn=null;sortConfs.forEach((confs,index)=>{let{field,order}=confs;let column=field;if(_xeUtils.default.isString(field)){column=$xeTable.getColumnByField(field);}if(!firstColumn){firstColumn=column;}if(column&&column.sortable){if(orders&&orders.indexOf(order)===-1){order=getNextSortOrder(column);}if(column.order!==order){column.order=order;}column.sortTime=Date.now()+index;sortColMpps[column.id]=column;}});if(!multiple){_xeUtils.default.each(orderActiveMaps,(oaCol,oaId)=>{if(!sortColMpps[oaId]){oaCol.order=null;}});}if(isUpdate){if(!remote){$xeTable.handleTableData(true);}}if(evnt){$xeTable.handleColumnSortEvent(evnt,firstColumn);}return(0,_vue.nextTick)().then(()=>{updateRowOffsetTop();$xeTable.updateCellAreas();return updateStyle();});}return(0,_vue.nextTick)();};const clearAllSort=()=>{const{tableFullColumn}=internalData;tableFullColumn.forEach(column=>{column.order=null;});};const calcTableHeight=key=>{const{editConfig,editRules}=props;const{parentHeight,tableColumn}=reactData;let val=props[key];if(key==='minHeight'){const defMinHeight=getConfig().table.minHeight;if(_xeUtils.default.eqNull(val)){if((0,_utils.eqEmptyValue)(defMinHeight)){if(!tableColumn.length){// 如果全部列被隐藏
|
|
29
29
|
val=40;}else if(editRules&&(0,_utils.isEnableConf)(editConfig)){// 编辑模式默认最小高度
|
|
@@ -351,7 +351,8 @@ if(_xeUtils.default.isArray(row)){itemValue=row[_columnIndex];}else{itemValue=_x
|
|
|
351
351
|
*/removeInsertRow(){const{insertRowMaps}=internalData;return $xeTable.remove(_xeUtils.default.values(insertRowMaps));},/**
|
|
352
352
|
* 检查行或列数据是否发生改变
|
|
353
353
|
*/isUpdateByRow(rowidOrRow,field){const{keepSource}=props;const{fullDataRowIdData,sourceDataRowIdData}=internalData;const keepFields=computeKeepFields.value;if(keepSource){const rowid=_xeUtils.default.isString(rowidOrRow)||_xeUtils.default.isNumber(rowidOrRow)?rowidOrRow:(0,_util.getRowid)($xeTable,rowidOrRow);const rowRest=fullDataRowIdData[rowid];// 新增的数据不需要检测
|
|
354
|
-
if(!rowRest){return false;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(oRow){if(arguments.length>1){return!eqCellValue(oRow,row,field);}for(let i=0;i<keepFields.length;i++){if(!eqCellValue(oRow,row,keepFields[i])){return true;}}}
|
|
354
|
+
if(!rowRest){return false;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(!oRow){return false;}if(arguments.length>1){return!eqCellValue(oRow,row,field).result;}for(let i=0;i<keepFields.length;i++){if(!eqCellValue(oRow,row,keepFields[i]).result){return true;}}}return false;},getUpdateCells(){const{keepSource,treeConfig}=props;const{tableFullData,tableFullTreeData,fullDataRowIdData,sourceDataRowIdData,fullColumnFieldData}=internalData;const treeOpts=computeTreeOpts.value;const keepFields=computeKeepFields.value;const cellList=[];if(keepSource){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);const handleCell=item=>{const rowid=handleGetRowId(item);const rowRest=fullDataRowIdData[rowid];// 新增的数据不需要检测
|
|
355
|
+
if(!rowRest){return;}const row=rowRest.row;const oRow=sourceDataRowIdData[rowid];if(!oRow){return;}for(let i=0;i<keepFields.length;i++){const field=keepFields[i];const{result,newValue,oldValue}=eqCellValue(oRow,row,field);if(!result){const column=fullColumnFieldData[field]?fullColumnFieldData[field].column:null;cellList.push({row,rowid,column,field,newValue,oldValue});}}};if(treeConfig){_xeUtils.default.eachTree(tableFullTreeData,handleCell,treeOpts);}else{tableFullData.forEach(handleCell);}}return cellList;},/**
|
|
355
356
|
* 获取表格的可视列,也可以指定索引获取列
|
|
356
357
|
* @param {Number} columnIndex 索引
|
|
357
358
|
*/getColumns(columnIndex){const{visibleColumn}=internalData;return _xeUtils.default.isUndefined(columnIndex)?visibleColumn.slice(0):visibleColumn[columnIndex];},/**
|
|
@@ -1000,4 +1001,4 @@ if(importConfig&&importOpts.types&&!importOpts.importMethod&&!_xeUtils.default.i
|
|
|
1000
1001
|
// if ((props.printConfig || props.importConfig || props.exportConfig) && !$xeTable.exportData) {
|
|
1001
1002
|
// errLog('vxe.error.reqModule', ['Export'])
|
|
1002
1003
|
// }
|
|
1003
|
-
Object.assign(scrollYStore,{startIndex:0,endIndex:0,visibleSize:0});Object.assign(scrollXStore,{startIndex:0,endIndex:0,visibleSize:0});handleUpdateRowGroup(groupFields);initData();(0,_vue.nextTick)(()=>{if(props.autoResize){const el=refElem.value;const parentEl=$xeTable.getParentElem();resizeObserver=globalResize.create(()=>{if(props.autoResize){handleResizeEvent();}});if(el){resizeObserver.observe(el);}if(parentEl){resizeObserver.observe(parentEl);}}});if(virtualYOpts.mode!=='scroll'){const tableViewportEl=refTableViewportElem.value;if(tableViewportEl){tableViewportEl.addEventListener('wheel',$xeTable.triggerBodyWheelEvent,{passive:false});}}globalEvents.on($xeTable,'paste',handleGlobalPasteEvent);globalEvents.on($xeTable,'copy',handleGlobalCopyEvent);globalEvents.on($xeTable,'cut',handleGlobalCutEvent);globalEvents.on($xeTable,'mousedown',handleGlobalMousedownEvent);globalEvents.on($xeTable,'blur',handleGlobalBlurEvent);globalEvents.on($xeTable,'mousewheel',handleGlobalMousewheelEvent);globalEvents.on($xeTable,'keydown',handleGlobalKeydownEvent);globalEvents.on($xeTable,'resize',handleGlobalResizeEvent);globalEvents.on($xeTable,'scroll',handleGlobalScrollEvent);globalEvents.on($xeTable,'contextmenu',$xeTable.handleGlobalContextmenuEvent);$xeTable.preventEvent(null,'mounted',{$table:$xeTable});});(0,_vue.onBeforeUnmount)(()=>{const{_sToTime}=internalData;if(_sToTime){clearTimeout(_sToTime);}const tableViewportEl=refTableViewportElem.value;if(tableViewportEl){tableViewportEl.removeEventListener('wheel',$xeTable.triggerBodyWheelEvent);}internalData.cvCacheMaps={};internalData.prevDragRow=null;internalData.prevDragCol=null;if(resizeObserver){resizeObserver.disconnect();}$xeTable.closeTooltip();$xeTable.closeFilter();if($xeTable.closeMenu){$xeTable.closeMenu();}globalEvents.off($xeTable,'paste');globalEvents.off($xeTable,'copy');globalEvents.off($xeTable,'cut');globalEvents.off($xeTable,'mousedown');globalEvents.off($xeTable,'blur');globalEvents.off($xeTable,'mousewheel');globalEvents.off($xeTable,'keydown');globalEvents.off($xeTable,'resize');globalEvents.off($xeTable,'scroll');globalEvents.off($xeTable,'contextmenu');$xeTable.preventEvent(null,'beforeUnmount',{$table:$xeTable});_xeUtils.default.assign(reactData,(0,_util.createReactData)());_xeUtils.default.assign(internalData,(0,_util.createInternalData)());});(0,_vue.onUnmounted)(()=>{$xeTable.preventEvent(null,'unmounted',{$table:$xeTable});});(0,_vue.nextTick)(()=>{if(props.loading){if(!VxeUILoadingComponent&&!slots.loading){errLog('vxe.error.errProp',['loading=true','loading=false | <template #loading>...</template>']);errLog('vxe.error.reqComp',['vxe-loading']);}}if(props.showOverflow===true||props.showOverflow==='tooltip'||props.showHeaderOverflow===true||props.showHeaderOverflow==='tooltip'||props.showFooterOverflow===true||props.showFooterOverflow==='tooltip'
|
|
1004
|
+
Object.assign(scrollYStore,{startIndex:0,endIndex:0,visibleSize:0});Object.assign(scrollXStore,{startIndex:0,endIndex:0,visibleSize:0});handleUpdateRowGroup(groupFields);initData();(0,_vue.nextTick)(()=>{if(props.autoResize){const el=refElem.value;const parentEl=$xeTable.getParentElem();resizeObserver=globalResize.create(()=>{if(props.autoResize){handleResizeEvent();}});if(el){resizeObserver.observe(el);}if(parentEl){resizeObserver.observe(parentEl);}}});if(virtualYOpts.mode!=='scroll'){const tableViewportEl=refTableViewportElem.value;if(tableViewportEl){tableViewportEl.addEventListener('wheel',$xeTable.triggerBodyWheelEvent,{passive:false});}}globalEvents.on($xeTable,'paste',handleGlobalPasteEvent);globalEvents.on($xeTable,'copy',handleGlobalCopyEvent);globalEvents.on($xeTable,'cut',handleGlobalCutEvent);globalEvents.on($xeTable,'mousedown',handleGlobalMousedownEvent);globalEvents.on($xeTable,'blur',handleGlobalBlurEvent);globalEvents.on($xeTable,'mousewheel',handleGlobalMousewheelEvent);globalEvents.on($xeTable,'keydown',handleGlobalKeydownEvent);globalEvents.on($xeTable,'resize',handleGlobalResizeEvent);globalEvents.on($xeTable,'scroll',handleGlobalScrollEvent);globalEvents.on($xeTable,'contextmenu',$xeTable.handleGlobalContextmenuEvent);$xeTable.preventEvent(null,'mounted',{$table:$xeTable});});(0,_vue.onBeforeUnmount)(()=>{const{_sToTime}=internalData;if(_sToTime){clearTimeout(_sToTime);}const tableViewportEl=refTableViewportElem.value;if(tableViewportEl){tableViewportEl.removeEventListener('wheel',$xeTable.triggerBodyWheelEvent);}internalData.cvCacheMaps={};internalData.prevDragRow=null;internalData.prevDragCol=null;if(resizeObserver){resizeObserver.disconnect();}$xeTable.closeTooltip();$xeTable.closeFilter();if($xeTable.closeMenu){$xeTable.closeMenu();}globalEvents.off($xeTable,'paste');globalEvents.off($xeTable,'copy');globalEvents.off($xeTable,'cut');globalEvents.off($xeTable,'mousedown');globalEvents.off($xeTable,'blur');globalEvents.off($xeTable,'mousewheel');globalEvents.off($xeTable,'keydown');globalEvents.off($xeTable,'resize');globalEvents.off($xeTable,'scroll');globalEvents.off($xeTable,'contextmenu');$xeTable.preventEvent(null,'beforeUnmount',{$table:$xeTable});_xeUtils.default.assign(reactData,(0,_util.createReactData)());_xeUtils.default.assign(internalData,(0,_util.createInternalData)());});(0,_vue.onUnmounted)(()=>{$xeTable.preventEvent(null,'unmounted',{$table:$xeTable});});(0,_vue.nextTick)(()=>{if(props.loading){if(!VxeUILoadingComponent&&!slots.loading){errLog('vxe.error.errProp',['loading=true','loading=false | <template #loading>...</template>']);errLog('vxe.error.reqComp',['vxe-loading']);}}if(props.showOverflow===true||props.showOverflow==='tooltip'||props.showHeaderOverflow===true||props.showHeaderOverflow==='tooltip'||props.showFooterOverflow===true||props.showFooterOverflow==='tooltip'){if(!VxeUITooltipComponent){if(props.showOverflow===true){errLog('vxe.error.errProp',['show-overflow=true','show-overflow=title']);}if(props.showOverflow==='tooltip'){errLog('vxe.error.errProp',['show-overflow=tooltip','show-overflow=title']);}if(props.showHeaderOverflow===true){errLog('vxe.error.errProp',['show-header-overflow=true','show-header-overflow=title']);}if(props.showHeaderOverflow==='tooltip'){errLog('vxe.error.errProp',['show-header-overflow=tooltip','show-header-overflow=title']);}if(props.showFooterOverflow===true){errLog('vxe.error.errProp',['show-footer-overflow=true','show-footer-overflow=title']);}if(props.showFooterOverflow==='tooltip'){errLog('vxe.error.errProp',['show-footer-overflow=tooltip','show-footer-overflow=title']);}errLog('vxe.error.reqComp',['vxe-tooltip']);}}});(0,_vue.provide)('$xeColgroup',null);(0,_vue.provide)('$xeTable',$xeTable);$xeTable.renderVN=renderVN;return $xeTable;},render(){return this.renderVN();}});
|