vxe-table 4.13.35 → 4.13.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/grid/src/grid.js +34 -10
- package/es/style.css +1 -1
- package/es/table/module/edit/hook.js +2 -2
- package/es/table/module/validator/hook.js +11 -3
- package/es/table/src/table.js +5 -3
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +38 -14
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +58 -22
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/hook.js +2 -2
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/validator/hook.js +15 -3
- package/lib/table/module/validator/hook.min.js +1 -1
- package/lib/table/src/table.js +1 -1
- 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 +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/grid/src/grid.ts +38 -11
- package/packages/table/module/edit/hook.ts +2 -2
- package/packages/table/module/validator/hook.ts +10 -3
- package/packages/table/src/table.ts +5 -3
- /package/es/{iconfont.1749202972772.ttf → iconfont.1749440132931.ttf} +0 -0
- /package/es/{iconfont.1749202972772.woff → iconfont.1749440132931.woff} +0 -0
- /package/es/{iconfont.1749202972772.woff2 → iconfont.1749440132931.woff2} +0 -0
- /package/lib/{iconfont.1749202972772.ttf → iconfont.1749440132931.ttf} +0 -0
- /package/lib/{iconfont.1749202972772.woff → iconfont.1749440132931.woff} +0 -0
- /package/lib/{iconfont.1749202972772.woff2 → iconfont.1749440132931.woff2} +0 -0
|
@@ -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{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(p){let{props:m,reactData:R,internalData:C}=p,o=p.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:x,computeCheckboxOpts:_,computeTreeOpts:E,computeValidOpts:n}=p.getComputeMaps(),s=_xeUtils.default.browse(),I={},g={},b=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},a=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=o.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},d=()=>{var{editStore:e,tableColumn:t}=R,l=x.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))},F=(e,t)=>{let{tableFullTreeData:i,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:u}=C;var l=E.value;let{rowField:s,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)(p,l),o=t?_xeUtils.default.findTree(i,e=>t===e[s],{children:g}):null;if(o){var o=o.item,a=u[(0,_util.getRowid)(p,o)],a=a?a.level:0;let e=o[w],t=o[g];_xeUtils.default.isArray(e)||(e=o[w]=[]),_xeUtils.default.isArray(t)||(t=o[w]=[]),e[v](l),t[v](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,u[r]=o}else{t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[v](l),i[v](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=a,u[r]=a}})},u=(t,l,d)=>{let o=m.treeConfig,{tableFullTreeData:e,afterFullData:a,mergeBodyList:i,tableFullData:n,fullDataRowIdData:u,fullAllDataRowIdData:s,insertRowMaps:r}=C,c=E.value,{transform:g,rowField:w,mapChildrenField:v}=c,f=c.children||c.childrenField,h=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(p.defineField(t.map(e=>Object.assign(o&&g?{[v]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&g?F(h,!1):(h.forEach(e=>{var t=(0,_util.getRowid)(p,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,s[t]=l,a.unshift(e),n.unshift(e)}),i.forEach(e=>{var t=e.row;0<t&&(e.row=t+h.length)}));else if(-1===l)o&&g?F(h,!0):(h.forEach(e=>{var t=(0,_util.getRowid)(p,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,s[t]=l,a.push(e),n.push(e)}),i.forEach(e=>{var{row:t,rowspan:l}=e;t+l>a.length&&(e.rowspan=l+h.length)}));else if(o&&g){let n=_xeUtils.default.findTree(e,e=>l[w]===e[w],{children:v});if(n){let o=n.parent,a=o?o[v]:e;t=s[(0,_util.getRowid)(p,o)];let i=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(p,e);e[c.parentField]&&o&&e[c.parentField]!==o[w]&&(0,_log.errLog)("vxe.error.errProp",[c.parentField+"="+e[c.parentField],c.parentField+"="+o[w]]),o&&(e[c.parentField]=o[w]);let r=n.index+t;d&&(r+=1),a.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,s[l]=t}),o){t=_xeUtils.default.findTree(e,e=>l[w]===e[w],{children:f});if(t){var x=t.items;let e=t.index;d&&(e+=1),x.splice(e,0,...h)}}}else(0,_log.warnLog)("vxe.error.unableInsert"),F(h,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<a.length&&(r=l):r=p.findRowIndexOf(a,l),-1===(r=d?Math.min(a.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));a.splice(r,0,...h);t=p.findRowIndexOf(n,l);-1<t?n.splice(t+(d?1:0),0,...h):n.push(...h),i.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+h.length:t+l>r&&(e.rowspan=l+h.length)})}return h.forEach(e=>{var t=(0,_util.getRowid)(p,e);r[t]=e}),R.insertRowFlag++,p.cacheRowMap(!1),p.updateScrollYStatus(),p.handleTableData(o&&g),o&&g||p.updateAfterDataIndex(),p.updateFooter(),p.handleUpdateBodyMerge(),p.checkSelectionStatus(),R.scrollYLoad&&p.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(p.updateCellAreas(),p.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},r=(e,t,l,r)=>{var o=m.treeConfig;let{transform:a,rowField:i,parentField:n}=E.value;return o&&a?(_xeUtils.default.isArray(e)||(e=[e]),u(e.map(e=>Object.assign({},e,{[n]:t[i]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))},A=(e,t)=>{var l=R.editStore,{actived:l,focused:r}=l,{row:o,column:a}=l,i=n.value;if(o||a){if(t&&(0,_util.getRowid)(p,t)!==(0,_util.getRowid)(p,o))return(0,_vue.nextTick)();d(),l.args=null,l.row=null,l.column=null,p.updateFooter(),p.dispatchEvent("edit-closed",{row:o,rowIndex:p.getRowIndex(o),$rowIndex:p.getVMRowIndex(o),column:a,columnIndex:p.getColumnIndex(a),$columnIndex:p.getVMColumnIndex(a)},e||null)}return r.row=null,r.column=null,i.autoClear&&("full"!==i.msgMode||"obsolete"===getConfig().cellVaildMode)&&p.clearValidate?p.clearValidate():(0,_vue.nextTick)().then(()=>p.updateCellAreas())},i=(l,r,o,e)=>{let a=p.xeGrid;var{editConfig:t,mouseConfig:i}=m,{editStore:n,tableColumn:d}=R,u=x.value,s=u.mode,{actived:n,focused:c}=n;let{row:g,column:w}=l;var v=w.editRender,f=l.cell||p.getCellElement(g,w),h=u.beforeEditMethod||u.activeMethod;if((l.cell=f)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(v)&&!p.isPendingByRow(g)){if(n.row!==g||"cell"===s&&n.column!==w){let t="edit-disabled";if(!h||h(Object.assign(Object.assign({},l),{$table:p,$grid:a}))){i&&(p.clearSelected(),p.clearCellAreas)&&(p.clearCellAreas(),p.clearCopyCellArea()),p.closeTooltip(),n.column&&A(r),t="edit-activated",w.renderHeight=f.offsetHeight,n.args=l,n.row=g,n.column=w,"row"===s?d.forEach(e=>b(g,e)):b(g,w);let e=u.afterEditMethod;(0,_vue.nextTick)(()=>{o&&p.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:p,$grid:a}))})}p.dispatchEvent(t,{row:g,rowIndex:p.getRowIndex(g),$rowIndex:p.getVMRowIndex(g),column:w,columnIndex:p.getColumnIndex(w),$columnIndex:p.getVMColumnIndex(w)},r),"edit-activated"===t&&p.dispatchEvent("edit-actived",{row:g,rowIndex:p.getRowIndex(g),$rowIndex:p.getVMRowIndex(g),column:w,columnIndex:p.getColumnIndex(w),$columnIndex:p.getVMColumnIndex(w)},r)}else{t=n.column;i&&(p.clearSelected(),p.clearCellAreas)&&(p.clearCellAreas(),p.clearCopyCellArea()),t!==w&&(v=t.model,v.update&&(0,_util.setCellValue)(g,t,v.value),p.clearValidate)&&p.clearValidate(g,w),w.renderHeight=f.offsetHeight,n.args=l,n.column=w,e&&setTimeout(()=>{p.handleFocus(l,r)})}c.column=null,c.row=null,p.focus()}return(0,_vue.nextTick)()},w=(t,e,l)=>{var r=m.editConfig;let o=_xeUtils.default.isString(e)?p.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)?Promise.resolve(l?p.scrollToRow(t,o):null).then(()=>{var e=p.getCellElement(t,o);return e&&(i({row:t,rowIndex:p.getRowIndex(t),column:o,columnIndex:p.getColumnIndex(o),cell:e,$table:p},null,l,l),C._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return I={insert(e){return u(e,null)},insertAt(e,t){return u(e,t)},insertNextAt(e,t){return u(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=m.treeConfig,l=R.editStore;let{tableFullTreeData:r,selectCheckboxMaps:o,afterFullData:a,mergeBodyList:i,tableFullData:n,pendingRowMaps:d,insertRowMaps:u,removeRowMaps:s}=C;var c=_.value,g=E.value;let{transform:w,mapChildrenField:v}=g,f=g.children||g.childrenField;g=l.actived,l=c.checkField;let h=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;p.isInsertByRow(e)||(t=(0,_util.getRowid)(p,e),s[t]=e)}),l||(e.forEach(e=>{e=(0,_util.getRowid)(p,e);o[e]&&delete o[e]}),R.updateCheckboxFlag++),n===e?(e=h=n.slice(0),C.tableFullData=[],C.afterFullData=[],p.clearMergeCells()):t&&w?e.forEach(e=>{let t=(0,_util.getRowid)(p,e);var l=_xeUtils.default.findTree(r,e=>t===(0,_util.getRowid)(p,e),{children:v}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(r,e=>t===(0,_util.getRowid)(p,e),{children:f})),l=(l&&l.items.splice(l.index,1),p.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=p.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),h.push(t[0]));let r=p.findRowIndexOf(a,e);-1<r&&(i.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),a.splice(r,1))}),g.row&&-1<p.findRowIndexOf(e,g.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(p,e);u[e]&&delete u[e],d[e]&&delete d[e]}),R.removeRowFlag++,R.insertRowFlag++,R.pendingRowFlag++,p.cacheRowMap(!1),p.handleTableData(t&&w),p.updateFooter(),p.handleUpdateBodyMerge(),t&&w||p.updateAfterDataIndex(),p.checkSelectionStatus(),R.scrollYLoad&&p.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(p.updateCellAreas(),p.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},removeCheckboxRow(){return I.remove(p.getCheckboxRecords()).then(e=>(p.clearCheckboxRow(),e))},removeRadioRow(){var e=p.getRadioRecord();return I.remove(e||[]).then(e=>(p.clearRadioRow(),e))},removeCurrentRow(){var e=p.getCurrentRecord();return I.remove(e||[]).then(e=>(p.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=p.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>p.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=C,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=m,l=C.tableFullData,r=E.value;return e?(d(),t?_xeUtils.default.filterTree(l,e=>p.isUpdateByRow(e),r):l.filter(e=>p.isUpdateByRow(e))):[]},getActiveRecord(){return(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),p.getEditRecord()},getEditRecord(){var e=R.editStore,t=C.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<p.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=R.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),p.clearEdit(e)},clearEdit(e){return A(null,e)},clearSelected(){var e=R.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),p.isEditByRow(e)},isEditByRow(e){var t=R.editStore;return t.actived.row===e},setActiveRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=C.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender)),o=!1;return t&&(o=!0)!==t&&(r=_xeUtils.default.isString(t)?p.getColumnByField(t):t),w(e,r,o)},setActiveCell(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(e,t){return w(e,t,!0)},setSelectCell(e,t){var l=R.tableData,r=x.value,t=_xeUtils.default.isString(t)?p.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=p.findRowIndexOf(l,e))&&t&&(l=p.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:p.getColumnIndex(t),cell:l},p.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return i(e,t,!0,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:A,handleFocus(r){var{row:o,column:a,cell:i}=r,n=a.editRender,d=x.value;if((0,_utils.isEnableConf)(n)){var u=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&u&&(e=u.tableAutoFocus||u.tableAutofocus||u.autofocus),!t&&u&&(t=u.tableAutoSelect||u.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?i.querySelector("input,textarea"):i.querySelector(e))&&l.focus()),l?t?l.select():s.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!a.fixed&&p.scrollToRow(o,a)}},handleSelected(e,t){var l=m.mouseConfig,r=R.editStore,o=c.value;let a=x.value,{actived:i,selected:n}=r,{row:d,column:u}=e,s=l&&o.selected;return!s||n.row===d&&n.column===u||(i.row!==d||"cell"===a.mode&&i.column!==u)&&(A(t),p.clearSelected(),p.clearCellAreas&&(p.clearCellAreas(),p.clearCopyCellArea()),n.args=e,n.row=d,n.column=u,s&&g.addCellSelectedClass(),p.focus(),t)&&p.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=R.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=p.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),g)},setupGrid(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{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(p){let{props:R,reactData:m,internalData:C}=p,o=p.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:x,computeCheckboxOpts:_,computeTreeOpts:E,computeValidOpts:n}=p.getComputeMaps(),s=_xeUtils.default.browse(),I={},g={},b=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},a=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=o.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},d=()=>{var{editStore:e,tableColumn:t}=m,l=x.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))},F=(e,t)=>{let{tableFullTreeData:i,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:u}=C;var l=E.value;let{rowField:s,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)(p,l),o=t?_xeUtils.default.findTree(i,e=>t===e[s],{children:g}):null;if(o){var o=o.item,a=u[(0,_util.getRowid)(p,o)],a=a?a.level:0;let e=o[w],t=o[g];_xeUtils.default.isArray(e)||(e=o[w]=[]),_xeUtils.default.isArray(t)||(t=o[w]=[]),e[v](l),t[v](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,u[r]=o}else{t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[v](l),i[v](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=a,u[r]=a}})},u=(t,l,d)=>{let o=R.treeConfig,{tableFullTreeData:e,afterFullData:a,mergeBodyList:i,tableFullData:n,fullDataRowIdData:u,fullAllDataRowIdData:s,insertRowMaps:r}=C,c=E.value,{transform:g,rowField:w,mapChildrenField:v}=c,f=c.children||c.childrenField,h=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(p.defineField(t.map(e=>Object.assign(o&&g?{[v]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&g?F(h,!1):(h.forEach(e=>{var t=(0,_util.getRowid)(p,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,s[t]=l,a.unshift(e),n.unshift(e)}),i.forEach(e=>{var t=e.row;0<t&&(e.row=t+h.length)}));else if(-1===l)o&&g?F(h,!0):(h.forEach(e=>{var t=(0,_util.getRowid)(p,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,s[t]=l,a.push(e),n.push(e)}),i.forEach(e=>{var{row:t,rowspan:l}=e;t+l>a.length&&(e.rowspan=l+h.length)}));else if(o&&g){let n=_xeUtils.default.findTree(e,e=>l[w]===e[w],{children:v});if(n){let o=n.parent,a=o?o[v]:e;t=s[(0,_util.getRowid)(p,o)];let i=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(p,e);e[c.parentField]&&o&&e[c.parentField]!==o[w]&&(0,_log.errLog)("vxe.error.errProp",[c.parentField+"="+e[c.parentField],c.parentField+"="+o[w]]),o&&(e[c.parentField]=o[w]);let r=n.index+t;d&&(r+=1),a.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,s[l]=t}),o){t=_xeUtils.default.findTree(e,e=>l[w]===e[w],{children:f});if(t){var x=t.items;let e=t.index;d&&(e+=1),x.splice(e,0,...h)}}}else(0,_log.warnLog)("vxe.error.unableInsert"),F(h,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<a.length&&(r=l):r=p.findRowIndexOf(a,l),-1===(r=d?Math.min(a.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));a.splice(r,0,...h);t=p.findRowIndexOf(n,l);-1<t?n.splice(t+(d?1:0),0,...h):n.push(...h),i.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+h.length:t+l>r&&(e.rowspan=l+h.length)})}return h.forEach(e=>{var t=(0,_util.getRowid)(p,e);r[t]=e}),m.insertRowFlag++,p.cacheRowMap(!1),p.updateScrollYStatus(),p.handleTableData(o&&g),o&&g||p.updateAfterDataIndex(),p.updateFooter(),p.handleUpdateBodyMerge(),p.checkSelectionStatus(),m.scrollYLoad&&p.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(p.updateCellAreas(),p.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},r=(e,t,l,r)=>{var o=R.treeConfig;let{transform:a,rowField:i,parentField:n}=E.value;return o&&a?(_xeUtils.default.isArray(e)||(e=[e]),u(e.map(e=>Object.assign({},e,{[n]:t[i]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))},A=(e,t)=>{var l=m.editStore,{actived:l,focused:r}=l,{row:o,column:a}=l,i=n.value;if(o||a){if(t&&(0,_util.getRowid)(p,t)!==(0,_util.getRowid)(p,o))return(0,_vue.nextTick)();d(),l.args=null,l.row=null,l.column=null,p.updateFooter(),p.dispatchEvent("edit-closed",{row:o,rowIndex:p.getRowIndex(o),$rowIndex:p.getVMRowIndex(o),column:a,columnIndex:p.getColumnIndex(a),$columnIndex:p.getVMColumnIndex(a)},e||null)}return r.row=null,r.column=null,i.autoClear&&("full"!==i.msgMode||"obsolete"===getConfig().cellVaildMode)&&p.clearValidate?p.clearValidate():(0,_vue.nextTick)().then(()=>p.updateCellAreas())},i=(l,r,o,e)=>{let a=p.xeGrid;var{editConfig:t,mouseConfig:i}=R,{editStore:n,tableColumn:d}=m,u=x.value,s=u.mode,{actived:n,focused:c}=n;let{row:g,column:w}=l;var v=w.editRender,f=l.cell||p.getCellElement(g,w),h=u.beforeEditMethod||u.activeMethod;if((l.cell=f)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(v)&&!p.isPendingByRow(g)&&!p.isAggregateRecord(g)){if(n.row!==g||"cell"===s&&n.column!==w){let t="edit-disabled";if(!h||h(Object.assign(Object.assign({},l),{$table:p,$grid:a}))){i&&(p.clearSelected(),p.clearCellAreas)&&(p.clearCellAreas(),p.clearCopyCellArea()),p.closeTooltip(),n.column&&A(r),t="edit-activated",w.renderHeight=f.offsetHeight,n.args=l,n.row=g,n.column=w,"row"===s?d.forEach(e=>b(g,e)):b(g,w);let e=u.afterEditMethod;(0,_vue.nextTick)(()=>{o&&p.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:p,$grid:a}))})}p.dispatchEvent(t,{row:g,rowIndex:p.getRowIndex(g),$rowIndex:p.getVMRowIndex(g),column:w,columnIndex:p.getColumnIndex(w),$columnIndex:p.getVMColumnIndex(w)},r),"edit-activated"===t&&p.dispatchEvent("edit-actived",{row:g,rowIndex:p.getRowIndex(g),$rowIndex:p.getVMRowIndex(g),column:w,columnIndex:p.getColumnIndex(w),$columnIndex:p.getVMColumnIndex(w)},r)}else{t=n.column;i&&(p.clearSelected(),p.clearCellAreas)&&(p.clearCellAreas(),p.clearCopyCellArea()),t!==w&&(v=t.model,v.update&&(0,_util.setCellValue)(g,t,v.value),p.clearValidate)&&p.clearValidate(g,w),w.renderHeight=f.offsetHeight,n.args=l,n.column=w,e&&setTimeout(()=>{p.handleFocus(l,r)})}c.column=null,c.row=null,p.focus()}return(0,_vue.nextTick)()},w=(t,e,l)=>{var r=R.editConfig;let o=_xeUtils.default.isString(e)?p.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)&&!p.isAggregateRecord(t)?Promise.resolve(l?p.scrollToRow(t,o):null).then(()=>{var e=p.getCellElement(t,o);return e&&(i({row:t,rowIndex:p.getRowIndex(t),column:o,columnIndex:p.getColumnIndex(o),cell:e,$table:p},null,l,l),C._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return I={insert(e){return u(e,null)},insertAt(e,t){return u(e,t)},insertNextAt(e,t){return u(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=R.treeConfig,l=m.editStore;let{tableFullTreeData:r,selectCheckboxMaps:o,afterFullData:a,mergeBodyList:i,tableFullData:n,pendingRowMaps:d,insertRowMaps:u,removeRowMaps:s}=C;var c=_.value,g=E.value;let{transform:w,mapChildrenField:v}=g,f=g.children||g.childrenField;g=l.actived,l=c.checkField;let h=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;p.isInsertByRow(e)||(t=(0,_util.getRowid)(p,e),s[t]=e)}),l||(e.forEach(e=>{e=(0,_util.getRowid)(p,e);o[e]&&delete o[e]}),m.updateCheckboxFlag++),n===e?(e=h=n.slice(0),C.tableFullData=[],C.afterFullData=[],p.clearMergeCells()):t&&w?e.forEach(e=>{let t=(0,_util.getRowid)(p,e);var l=_xeUtils.default.findTree(r,e=>t===(0,_util.getRowid)(p,e),{children:v}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(r,e=>t===(0,_util.getRowid)(p,e),{children:f})),l=(l&&l.items.splice(l.index,1),p.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=p.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),h.push(t[0]));let r=p.findRowIndexOf(a,e);-1<r&&(i.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),a.splice(r,1))}),g.row&&-1<p.findRowIndexOf(e,g.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(p,e);u[e]&&delete u[e],d[e]&&delete d[e]}),m.removeRowFlag++,m.insertRowFlag++,m.pendingRowFlag++,p.cacheRowMap(!1),p.handleTableData(t&&w),p.updateFooter(),p.handleUpdateBodyMerge(),t&&w||p.updateAfterDataIndex(),p.checkSelectionStatus(),m.scrollYLoad&&p.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(p.updateCellAreas(),p.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},removeCheckboxRow(){return I.remove(p.getCheckboxRecords()).then(e=>(p.clearCheckboxRow(),e))},removeRadioRow(){var e=p.getRadioRecord();return I.remove(e||[]).then(e=>(p.clearRadioRow(),e))},removeCurrentRow(){var e=p.getCurrentRecord();return I.remove(e||[]).then(e=>(p.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=p.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>p.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=C,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=R,l=C.tableFullData,r=E.value;return e?(d(),t?_xeUtils.default.filterTree(l,e=>p.isUpdateByRow(e),r):l.filter(e=>p.isUpdateByRow(e))):[]},getActiveRecord(){return(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),p.getEditRecord()},getEditRecord(){var e=m.editStore,t=C.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<p.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=m.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),p.clearEdit(e)},clearEdit(e){return A(null,e)},clearSelected(){var e=m.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),p.isEditByRow(e)},isEditByRow(e){var t=m.editStore;return t.actived.row===e},setActiveRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=C.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender)),o=!1;return t&&(o=!0)!==t&&(r=_xeUtils.default.isString(t)?p.getColumnByField(t):t),w(e,r,o)},setActiveCell(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(e,t){return w(e,t,!0)},setSelectCell(e,t){var l=m.tableData,r=x.value,t=_xeUtils.default.isString(t)?p.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=p.findRowIndexOf(l,e))&&t&&(l=p.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:p.getColumnIndex(t),cell:l},p.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return i(e,t,!0,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:A,handleFocus(r){var{row:o,column:a,cell:i}=r,n=a.editRender,d=x.value;if((0,_utils.isEnableConf)(n)){var u=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&u&&(e=u.tableAutoFocus||u.tableAutofocus||u.autofocus),!t&&u&&(t=u.tableAutoSelect||u.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?i.querySelector("input,textarea"):i.querySelector(e))&&l.focus()),l?t?l.select():s.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!a.fixed&&p.scrollToRow(o,a)}},handleSelected(e,t){var l=R.mouseConfig,r=m.editStore,o=c.value;let a=x.value,{actived:i,selected:n}=r,{row:d,column:u}=e,s=l&&o.selected;return!s||n.row===d&&n.column===u||(i.row!==d||"cell"===a.mode&&i.column!==u)&&(A(t),p.clearSelected(),p.clearCellAreas&&(p.clearCellAreas(),p.clearCopyCellArea()),n.args=e,n.row=d,n.column=u,s&&g.addCellSelectedClass(),p.focus(),t)&&p.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=m.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=p.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
|
|
@@ -157,7 +157,8 @@ hooks.add('tableValidatorModule', {
|
|
|
157
157
|
const {
|
|
158
158
|
computeValidOpts,
|
|
159
159
|
computeTreeOpts,
|
|
160
|
-
computeEditOpts
|
|
160
|
+
computeEditOpts,
|
|
161
|
+
computeAggregateOpts
|
|
161
162
|
} = $xeTable.getComputeMaps();
|
|
162
163
|
let validatorMethods = {};
|
|
163
164
|
let validatorPrivateMethods = {};
|
|
@@ -209,13 +210,16 @@ hooks.add('tableValidatorModule', {
|
|
|
209
210
|
editRules,
|
|
210
211
|
treeConfig
|
|
211
212
|
} = props;
|
|
213
|
+
const {
|
|
214
|
+
isRowGroupStatus
|
|
215
|
+
} = reactData;
|
|
212
216
|
const {
|
|
213
217
|
afterFullData,
|
|
214
218
|
pendingRowMaps,
|
|
215
219
|
removeRowMaps
|
|
216
220
|
} = internalData;
|
|
217
221
|
const treeOpts = computeTreeOpts.value;
|
|
218
|
-
const
|
|
222
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
219
223
|
const validOpts = computeValidOpts.value;
|
|
220
224
|
let validList;
|
|
221
225
|
if (rows === true) {
|
|
@@ -251,6 +255,9 @@ hooks.add('tableValidatorModule', {
|
|
|
251
255
|
if (pendingRowMaps[rowid]) {
|
|
252
256
|
return;
|
|
253
257
|
}
|
|
258
|
+
if ($xeTable.isAggregateRecord(row)) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
254
261
|
if (isFull || !validRuleErr) {
|
|
255
262
|
const colVailds = [];
|
|
256
263
|
columns.forEach(column => {
|
|
@@ -290,7 +297,12 @@ hooks.add('tableValidatorModule', {
|
|
|
290
297
|
rowValidErrs.push(Promise.all(colVailds));
|
|
291
298
|
}
|
|
292
299
|
};
|
|
293
|
-
if (
|
|
300
|
+
if (isRowGroupStatus) {
|
|
301
|
+
_xeUtils.default.eachTree(validList, handleVaild, {
|
|
302
|
+
children: aggregateOpts.mapChildrenField
|
|
303
|
+
});
|
|
304
|
+
} else if (treeConfig) {
|
|
305
|
+
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
294
306
|
_xeUtils.default.eachTree(validList, handleVaild, {
|
|
295
307
|
children: childrenField
|
|
296
308
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util=require("../../src/util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,validators,hooks}=_ui.VxeUI;class Rule{constructor(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}function validREValue(e,l){return!(e&&!(_xeUtils.default.isRegExp(e)?e:new RegExp(e)).test(l))}function validMaxValue(e,l){return!(!_xeUtils.default.eqNull(e)&&l>_xeUtils.default.toNumber(e))}function validMinValue(e,l){return!(!_xeUtils.default.eqNull(e)&&l<_xeUtils.default.toNumber(e))}function validRuleValue(e,l,t){var{type:e,min:r,max:i,pattern:a}=e,u="array"===e,n="number"===e,e="string"===e,s=""+l;if(!validREValue(a,s))return!1;if(u){if(!_xeUtils.default.isArray(l))return!1;if(t&&!l.length)return!1;if(!validMinValue(r,l.length))return!1;if(!validMaxValue(i,l.length))return!1}else if(n){a=Number(l);if(isNaN(a))return!1;if(!validMinValue(r,a))return!1;if(!validMaxValue(i,a))return!1}else{if(e&&!_xeUtils.default.isString(l))return!1;if(t&&!s)return!1;if(!validMinValue(r,s.length))return!1;if(!validMaxValue(i,s.length))return!1}return!0}function checkRuleStatus(e,l){var t=e.required,r=_xeUtils.default.isArray(l)?!l.length:(0,_utils.eqEmptyValue)(l);if(t){if(r)return!1;if(!validRuleValue(e,l,t))return!1}else if(!r&&!validRuleValue(e,l,t))return!1;return!0}let tableValidatorMethodKeys=["fullValidate","validate","fullValidateField","validateField","clearValidate"];hooks.add("tableValidatorModule",{setupTable(
|
|
1
|
+
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util=require("../../src/util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,validators,hooks}=_ui.VxeUI;class Rule{constructor(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}function validREValue(e,l){return!(e&&!(_xeUtils.default.isRegExp(e)?e:new RegExp(e)).test(l))}function validMaxValue(e,l){return!(!_xeUtils.default.eqNull(e)&&l>_xeUtils.default.toNumber(e))}function validMinValue(e,l){return!(!_xeUtils.default.eqNull(e)&&l<_xeUtils.default.toNumber(e))}function validRuleValue(e,l,t){var{type:e,min:r,max:i,pattern:a}=e,u="array"===e,n="number"===e,e="string"===e,s=""+l;if(!validREValue(a,s))return!1;if(u){if(!_xeUtils.default.isArray(l))return!1;if(t&&!l.length)return!1;if(!validMinValue(r,l.length))return!1;if(!validMaxValue(i,l.length))return!1}else if(n){a=Number(l);if(isNaN(a))return!1;if(!validMinValue(r,a))return!1;if(!validMaxValue(i,a))return!1}else{if(e&&!_xeUtils.default.isString(l))return!1;if(t&&!s)return!1;if(!validMinValue(r,s.length))return!1;if(!validMaxValue(i,s.length))return!1}return!0}function checkRuleStatus(e,l){var t=e.required,r=_xeUtils.default.isArray(l)?!l.length:(0,_utils.eqEmptyValue)(l);if(t){if(r)return!1;if(!validRuleValue(e,l,t))return!1}else if(!r&&!validRuleValue(e,l,t))return!1;return!0}let tableValidatorMethodKeys=["fullValidate","validate","fullValidateField","validateField","clearValidate"];hooks.add("tableValidatorModule",{setupTable(p){let{props:x,reactData:_,internalData:R}=p,g=p.getRefMaps().refValidTooltip,{computeValidOpts:w,computeTreeOpts:V,computeEditOpts:r,computeAggregateOpts:M}=p.getComputeMaps(),U={},E={},b,t=(e,t,u,a)=>{let n={},{editRules:s,treeConfig:r}=x;var i=_.isRowGroupStatus;let{afterFullData:l,pendingRowMaps:o,removeRowMaps:d}=R;var c=V.value,g=M.value;let f=w.value,v,h=(!0===e?v=l:e&&(_xeUtils.default.isFunction(e)?u=e:v=_xeUtils.default.isArray(e)?e:[e]),v=v||(p.getInsertRecords?p.getInsertRecords().concat(p.getUpdateRecords()):[]),[]),m=(R._lastCallTime=Date.now(),b=!1,U.clearValidate(),{});if(s){let l=t&&t.length?t:p.getColumns();e=i=>{var e=(0,_util.getRowid)(p,i);if(!d[e]&&!o[e]&&!p.isAggregateRecord(i)&&(a||!b)){let e=[];l.forEach(t=>{let r=_xeUtils.default.isString(t)?t:t.field;!a&&b||!_xeUtils.default.has(s,r)||e.push(E.validCellRules("all",i,t).catch(({rule:e,rules:l})=>{l={rule:e,rules:l,rowIndex:p.getRowIndex(i),row:i,columnIndex:p.getColumnIndex(t),column:t,field:r,$table:p};if(n[r]||(n[r]=[]),m[(0,_util.getRowid)(p,i)+":"+t.id]={column:t,row:i,rule:e,content:e.content},n[r].push(l),!a)return b=!0,Promise.reject(l)}))}),h.push(Promise.all(e))}};return i?_xeUtils.default.eachTree(v,e,{children:g.mapChildrenField}):r?(t=c.children||c.childrenField,_xeUtils.default.eachTree(v,e,{children:t})):v.forEach(e),Promise.all(h).then(()=>{let e=Object.keys(n);var l,t,r;return _.validErrorMaps=(l=m,"single"===w.value.msgMode?(t={},(r=Object.keys(l)).length&&(t[r=r[0]]=l[r]),t):l),(0,_vue.nextTick)().then(()=>{if(e.length)return Promise.reject(n[e[0]][0]);u&&u()})}).catch(a=>new Promise((e,l)=>{let t=()=>{(0,_vue.nextTick)(()=>{u?(u(n),e()):("obsolete"===getConfig().validToReject?l:e)(n)})};var r,i=()=>{var l;a.cell=p.getCellElement(a.row,a.column),(0,_dom.scrollToView)(a.cell),l=a,new Promise(e=>{!1===w.value.autoPos?(p.dispatchEvent("valid-error",l,null),e()):p.handleEdit(l,{type:"valid-error",trigger:"call"}).then(()=>{e(E.showValidTooltip(l))})}).then(t)};!1===f.autoPos?t():(r=a.row,p.scrollToRow(r,a.column).then(i))}))}return _.validErrorMaps={},(0,_vue.nextTick)().then(()=>{u&&u()})};return U={fullValidate(e,l){return _xeUtils.default.isFunction(l)&&(0,_log.warnLog)("vxe.error.notValidators",["fullValidate(rows, callback)","fullValidate(rows)"]),t(e,null,l,!0)},validate(e,l){return t(e,null,l)},fullValidateField(e,l){l=(_xeUtils.default.isArray(l)?l:l?[l]:[]).map(e=>(0,_util.handleFieldOrColumn)(p,e));return l.length?t(e,l,null,!0):(0,_vue.nextTick)()},validateField(e,l){l=(_xeUtils.default.isArray(l)?l:l?[l]:[]).map(e=>(0,_util.handleFieldOrColumn)(p,e));return l.length?t(e,l,null):(0,_vue.nextTick)()},clearValidate(e,l){var r=_.validErrorMaps,t=g.value,i=w.value,e=_xeUtils.default.isArray(e)?e:e?[e]:[];let a=(_xeUtils.default.isArray(l)?l:l?[l]:[]).map(e=>(0,_util.handleFieldOrColumn)(p,e)),u={};if(t&&t.reactData.visible&&t.close(),"single"===i.msgMode)_.validErrorMaps={};else{if(e.length&&a.length)u=Object.assign({},r),e.forEach(l=>{a.forEach(e=>{e=(0,_util.getRowid)(p,l)+":"+e.id;u[e]&&delete u[e]})});else if(e.length){let t=e.map(e=>""+(0,_util.getRowid)(p,e));_xeUtils.default.each(r,(e,l)=>{-1<t.indexOf(l.split(":")[0])&&(u[l]=e)})}else if(a.length){let t=a.map(e=>""+e.id);_xeUtils.default.each(r,(e,l)=>{-1<t.indexOf(l.split(":")[1])&&(u[l]=e)})}_.validErrorMaps=u}return(0,_vue.nextTick)()}},E={validCellRules(e,s,o,l){let d=p.xeGrid;var t=x.editRules,r=o.field;let c=[],g=[];if(r&&t){let n=_xeUtils.default.get(t,r);if(n){let u=_xeUtils.default.isUndefined(l)?_xeUtils.default.get(s,r):l;n.forEach(l=>{let{trigger:t,validator:r}=l;if("all"===e||!t||e===t)if(r){var i,a={cellValue:u,rule:l,rules:n,row:s,rowIndex:p.getRowIndex(s),column:o,columnIndex:p.getColumnIndex(o),field:o.field,$table:p,$grid:d};let e;_xeUtils.default.isString(r)?(i=validators.get(r))&&(i=i.tableCellValidatorMethod||i.cellValidatorMethod)?e=i(a):(0,_log.errLog)("vxe.error.notValidators",[r]):e=r(a),e&&(_xeUtils.default.isError(e)?(b=!0,c.push(new Rule({type:"custom",trigger:t,content:e.message,rule:new Rule(l)}))):e.catch&&g.push(e.catch(e=>{b=!0,c.push(new Rule({type:"custom",trigger:t,content:e&&e.message?e.message:l.content||l.message,rule:new Rule(l)}))})))}else checkRuleStatus(l,u)||(b=!0,c.push(new Rule(l)))})}}return Promise.all(g).then(()=>{var e;if(c.length)return e={rules:c,rule:c[0]},Promise.reject(e)})},hasCellRules(l,e,t){var r=x.editRules,t=t.field;return!(!t||!r)&&(r=_xeUtils.default.get(r,t))&&!!_xeUtils.default.find(r,e=>"all"===l||!e.trigger||l===e.trigger)},triggerValidate(i){var{editConfig:e,editRules:l}=x,a=_.editStore,a=a.actived;let u=r.value;var t=w.value;if(l&&"single"===t.msgMode&&(_.validErrorMaps={}),e&&l&&a.row){let{row:l,column:t,cell:r}=a.args;if(E.hasCellRules(i,l,t))return E.validCellRules(i,l,t).then(()=>{"row"===u.mode&&U.clearValidate(l,t)}).catch(({rule:e})=>e.trigger&&i!==e.trigger?Promise.resolve():(e={rule:e,row:l,column:t,cell:r},E.showValidTooltip(e),Promise.reject(e)))}return Promise.resolve()},showValidTooltip(e){var l=x.height,{tableData:t,validStore:r,validErrorMaps:i}=_,{rule:a,row:u,column:n,cell:s}=e,o=w.value,d=g.value,c=a.content;return r.visible=!0,"single"===o.msgMode?_.validErrorMaps={[(0,_util.getRowid)(p,u)+":"+n.id]:{column:n,row:u,rule:a,content:c}}:_.validErrorMaps=Object.assign({},i,{[(0,_util.getRowid)(p,u)+":"+n.id]:{column:n,row:u,rule:a,content:c}}),p.dispatchEvent("valid-error",e,null),d&&("tooltip"===o.message||"default"===o.message&&!l&&t.length<2)?d.open(s,c):(0,_vue.nextTick)()}},Object.assign(Object.assign({},U),E)},setupGrid(e){return e.extendTableMethods(tableValidatorMethodKeys)}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -313,7 +313,7 @@ setTimeout(()=>$xeTable.recalculate(),50);});},/**
|
|
|
313
313
|
* @param {Row} row 行对象
|
|
314
314
|
* @param {Object} record 新数据
|
|
315
315
|
* @param {String} field 字段名
|
|
316
|
-
*/reloadRow(row,record,field){const{keepSource}=props;const{tableData}=reactData;const{
|
|
316
|
+
*/reloadRow(row,record,field){const{keepSource}=props;const{tableData}=reactData;const{sourceDataRowIdData}=internalData;if(keepSource){if($xeTable.isAggregateRecord(row)){return(0,_vue.nextTick)();}const oRow=sourceDataRowIdData[(0,_util.getRowid)($xeTable,row)];if(oRow&&row){if(field){const newValue=_xeUtils.default.clone(_xeUtils.default.get(record||row,field),true);_xeUtils.default.set(row,field,newValue);_xeUtils.default.set(oRow,field,newValue);}else{const rowkey=(0,_util.getRowkey)($xeTable);const rowid=(0,_util.getRowid)($xeTable,row);const newRecord=_xeUtils.default.clone(Object.assign({},record),true);_xeUtils.default.set(newRecord,rowkey,rowid);_xeUtils.default.destructuring(oRow,Object.assign(row,newRecord));}}reactData.tableData=tableData.slice(0);}else{(0,_log.errLog)('vxe.error.reqProp',['keep-source']);}return(0,_vue.nextTick)();},getParams(){return props.params;},/**
|
|
317
317
|
* 用于树结构,给行数据加载子节点
|
|
318
318
|
*/loadTreeChildren(row,childRecords){const{keepSource}=props;const{tableSourceData,fullDataRowIdData,fullAllDataRowIdData,sourceDataRowIdData}=internalData;const treeOpts=computeTreeOpts.value;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 tableMethods.createData(childRecords).then(rows=>{if(keepSource){const rowid=(0,_util.getRowid)($xeTable,row);const matchObj=_xeUtils.default.findTree(tableSourceData,item=>rowid===(0,_util.getRowid)($xeTable,item),{children:childrenField});if(matchObj){matchObj.item[childrenField]=_xeUtils.default.clone(rows,true);}rows.forEach(childRow=>{const rowid=(0,_util.getRowid)($xeTable,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,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();return rows;});},/**
|
|
319
319
|
* 加载列配置
|