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.
Files changed (33) hide show
  1. package/es/grid/src/grid.js +34 -10
  2. package/es/style.css +1 -1
  3. package/es/table/module/edit/hook.js +2 -2
  4. package/es/table/module/validator/hook.js +11 -3
  5. package/es/table/src/table.js +5 -3
  6. package/es/ui/index.js +1 -1
  7. package/es/ui/src/log.js +1 -1
  8. package/lib/grid/src/grid.js +38 -14
  9. package/lib/grid/src/grid.min.js +1 -1
  10. package/lib/index.umd.js +58 -22
  11. package/lib/index.umd.min.js +1 -1
  12. package/lib/style.css +1 -1
  13. package/lib/table/module/edit/hook.js +2 -2
  14. package/lib/table/module/edit/hook.min.js +1 -1
  15. package/lib/table/module/validator/hook.js +15 -3
  16. package/lib/table/module/validator/hook.min.js +1 -1
  17. package/lib/table/src/table.js +1 -1
  18. package/lib/table/src/table.min.js +1 -1
  19. package/lib/ui/index.js +1 -1
  20. package/lib/ui/index.min.js +1 -1
  21. package/lib/ui/src/log.js +1 -1
  22. package/lib/ui/src/log.min.js +1 -1
  23. package/package.json +1 -1
  24. package/packages/grid/src/grid.ts +38 -11
  25. package/packages/table/module/edit/hook.ts +2 -2
  26. package/packages/table/module/validator/hook.ts +10 -3
  27. package/packages/table/src/table.ts +5 -3
  28. /package/es/{iconfont.1749202972772.ttf → iconfont.1749440132931.ttf} +0 -0
  29. /package/es/{iconfont.1749202972772.woff → iconfont.1749440132931.woff} +0 -0
  30. /package/es/{iconfont.1749202972772.woff2 → iconfont.1749440132931.woff2} +0 -0
  31. /package/lib/{iconfont.1749202972772.ttf → iconfont.1749440132931.ttf} +0 -0
  32. /package/lib/{iconfont.1749202972772.woff → iconfont.1749440132931.woff} +0 -0
  33. /package/lib/{iconfont.1749202972772.woff2 → iconfont.1749440132931.woff2} +0 -0
@@ -137,7 +137,7 @@ hooks.add('tableValidatorModule', {
137
137
  setupTable($xeTable) {
138
138
  const { props, reactData, internalData } = $xeTable;
139
139
  const { refValidTooltip } = $xeTable.getRefMaps();
140
- const { computeValidOpts, computeTreeOpts, computeEditOpts } = $xeTable.getComputeMaps();
140
+ const { computeValidOpts, computeTreeOpts, computeEditOpts, computeAggregateOpts } = $xeTable.getComputeMaps();
141
141
  let validatorMethods = {};
142
142
  let validatorPrivateMethods = {};
143
143
  let validRuleErr;
@@ -183,9 +183,10 @@ hooks.add('tableValidatorModule', {
183
183
  const beginValidate = (rows, cols, cb, isFull) => {
184
184
  const validRest = {};
185
185
  const { editRules, treeConfig } = props;
186
+ const { isRowGroupStatus } = reactData;
186
187
  const { afterFullData, pendingRowMaps, removeRowMaps } = internalData;
187
188
  const treeOpts = computeTreeOpts.value;
188
- const childrenField = treeOpts.children || treeOpts.childrenField;
189
+ const aggregateOpts = computeAggregateOpts.value;
189
190
  const validOpts = computeValidOpts.value;
190
191
  let validList;
191
192
  if (rows === true) {
@@ -224,6 +225,9 @@ hooks.add('tableValidatorModule', {
224
225
  if (pendingRowMaps[rowid]) {
225
226
  return;
226
227
  }
228
+ if ($xeTable.isAggregateRecord(row)) {
229
+ return;
230
+ }
227
231
  if (isFull || !validRuleErr) {
228
232
  const colVailds = [];
229
233
  columns.forEach((column) => {
@@ -261,7 +265,11 @@ hooks.add('tableValidatorModule', {
261
265
  rowValidErrs.push(Promise.all(colVailds));
262
266
  }
263
267
  };
264
- if (treeConfig) {
268
+ if (isRowGroupStatus) {
269
+ XEUtils.eachTree(validList, handleVaild, { children: aggregateOpts.mapChildrenField });
270
+ }
271
+ else if (treeConfig) {
272
+ const childrenField = treeOpts.children || treeOpts.childrenField;
265
273
  XEUtils.eachTree(validList, handleVaild, { children: childrenField });
266
274
  }
267
275
  else {
@@ -4130,10 +4130,12 @@ export default defineComponent({
4130
4130
  reloadRow(row, record, field) {
4131
4131
  const { keepSource } = props;
4132
4132
  const { tableData } = reactData;
4133
- const { tableSourceData } = internalData;
4133
+ const { sourceDataRowIdData } = internalData;
4134
4134
  if (keepSource) {
4135
- const rowIndex = tableMethods.getRowIndex(row);
4136
- const oRow = tableSourceData[rowIndex];
4135
+ if ($xeTable.isAggregateRecord(row)) {
4136
+ return nextTick();
4137
+ }
4138
+ const oRow = sourceDataRowIdData[getRowid($xeTable, row)];
4137
4139
  if (oRow && row) {
4138
4140
  if (field) {
4139
4141
  const newValue = XEUtils.clone(XEUtils.get(record || row, field), true);
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "4.13.35";
3
+ export const version = "4.13.36";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"4.13.35"}`;
3
+ const version = `table v${"4.13.36"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -224,9 +224,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
224
224
  footKeys
225
225
  };
226
226
  });
227
- const computePageConfFlag = (0, _vue.computed)(() => {
227
+ const computeCustomCurrentPageFlag = (0, _vue.computed)(() => {
228
228
  const pagerOpts = computePagerOpts.value;
229
- return `${pagerOpts.currentPage}${pagerOpts.pageSize}`;
229
+ return pagerOpts.currentPage;
230
+ });
231
+ const computeCustomPageSizeFlag = (0, _vue.computed)(() => {
232
+ const pagerOpts = computePagerOpts.value;
233
+ return pagerOpts.pageSize;
234
+ });
235
+ const computeCustomTotalFlag = (0, _vue.computed)(() => {
236
+ const pagerOpts = computePagerOpts.value;
237
+ return pagerOpts.total;
230
238
  });
231
239
  const refMaps = {
232
240
  refElem,
@@ -273,7 +281,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
273
281
  const formOpts = computeFormOpts.value;
274
282
  return proxyConfig && (0, _utils.isEnableConf)(proxyOpts) && proxyOpts.form ? formData : formOpts.data;
275
283
  };
276
- const initPages = () => {
284
+ const initPages = propKey => {
277
285
  const {
278
286
  tablePage
279
287
  } = reactData;
@@ -281,16 +289,26 @@ var _default = exports.default = (0, _vue.defineComponent)({
281
289
  pagerConfig
282
290
  } = props;
283
291
  const pagerOpts = computePagerOpts.value;
284
- const {
285
- currentPage,
286
- pageSize
287
- } = pagerOpts;
288
292
  if (pagerConfig && (0, _utils.isEnableConf)(pagerOpts)) {
289
- if (currentPage) {
290
- tablePage.currentPage = currentPage;
291
- }
292
- if (pageSize) {
293
- tablePage.pageSize = pageSize;
293
+ if (propKey) {
294
+ if (pagerOpts[propKey]) {
295
+ tablePage[propKey] = _xeUtils.default.toNumber(pagerOpts[propKey]);
296
+ }
297
+ } else {
298
+ const {
299
+ currentPage,
300
+ pageSize,
301
+ total
302
+ } = pagerOpts;
303
+ if (currentPage) {
304
+ tablePage.currentPage = currentPage;
305
+ }
306
+ if (pageSize) {
307
+ tablePage.pageSize = pageSize;
308
+ }
309
+ if (total) {
310
+ tablePage.pageSize = total;
311
+ }
294
312
  }
295
313
  }
296
314
  };
@@ -1479,8 +1497,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
1479
1497
  (0, _vue.watch)(() => props.toolbarConfig, () => {
1480
1498
  initToolbar();
1481
1499
  });
1482
- (0, _vue.watch)(computePageConfFlag, () => {
1483
- initPages();
1500
+ (0, _vue.watch)(computeCustomCurrentPageFlag, () => {
1501
+ initPages('currentPage');
1502
+ });
1503
+ (0, _vue.watch)(computeCustomPageSizeFlag, () => {
1504
+ initPages('pageSize');
1505
+ });
1506
+ (0, _vue.watch)(computeCustomTotalFlag, () => {
1507
+ initPages('total');
1484
1508
  });
1485
1509
  (0, _vue.watch)(() => props.proxyConfig, () => {
1486
1510
  initProxy();
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeRowChildren","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","clearSortByEvent","isSort","getSortColumns","closeFilter","isFilter","clearFilterByEvent","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","setRowGroupExpand","setAllRowGroupExpand","clearRowGroupExpand","isRowGroupExpandByRow","isRowGroupRecord","isAggregateRecord","isAggregateExpandByRow","setRowGroups","clearRowGroups","openTooltip","moveColumnTo","moveRowTo","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(T,e){let t,{slots:s,emit:o}=e;var R=_xeUtils.default.uniqueId();let i=_ui.VxeUI.getComponent("VxeForm"),l=_ui.VxeUI.getComponent("VxePager"),E=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],w=useFns.useSize(T).computeSize,j=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),u=(0,_vue.ref)(),S=(0,_vue.ref)(),n=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var r=e=>{let t={};return e.forEach(r=>{t[r]=(...e)=>{var t=S.value;if(t&&t[r])return t[r](...e)}}),t};let D=r(tableComponentMethodKeys),M=(tableComponentMethodKeys.forEach(r=>{D[r]=(...e)=>{var t=S.value;if(t&&t[r])return t&&t[r](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),T.proxyConfig))),A=(0,_vue.computed)(()=>{var e=M.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),q=(0,_vue.computed)(()=>M.value.showActiveMsg),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,T.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,T.formConfig)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,T.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,T.zoomConfig)),O=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=T,{isZMax:r,tZindex:o}=j,a={};return r?a.zIndex=o:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),I=(0,_vue.computed)(()=>{let t={},r=T;return tableComponentPropKeys.forEach(e=>{t[e]=r[e]}),t}),k=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:r,editConfig:o,proxyConfig:a}=T,{isZMax:l,tableLoading:i,tablePage:n}=j,s=I.value,u=M.value,d=F.value,g=Object.assign({},s);return l&&(s.maxHeight?g.maxHeight="100%":g.height="100%"),a&&(0,_utils.isEnableConf)(u)&&(g.loading=r||i,t)&&u.seq&&(0,_utils.isEnableConf)(d)&&(g.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),o&&(g.editConfig=Object.assign({},o)),g}),P=(0,_vue.computed)(()=>{var e=T.layouts;let t=[],r=[],o=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||E).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],a=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:a}});var U=(0,_vue.computed)(()=>{var e=F.value;return""+e.currentPage+e.pageSize});let K={refElem:u,refTable:S,refForm:n,refToolbar:d,refPager:g},H={computeProxyOpts:M,computePagerOpts:F,computeFormOpts:x,computeToolbarOpts:L,computeZoomOpts:a},V={xID:R,props:T,context:e,reactData:j,getRefMaps:()=>K,getComputeMaps:()=>H},b=()=>{var e=L.value;T.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=S.value,t=d.value;e&&t&&e.connect(t)})},B=()=>{var e=T.proxyConfig,t=j.formData,r=M.value,o=x.value;return e&&(0,_utils.isEnableConf)(r)&&r.form?t:o.data},_=()=>{var e=j.tablePage,t=T.pagerConfig,r=F.value,{currentPage:o,pageSize:a}=r;t&&(0,_utils.isEnableConf)(r)&&(o&&(e.currentPage=o),a)&&(e.pageSize=a)},z=(e,t)=>{var r=M.value,r=(r.response||r.props||{}).message;let o;return(o=e&&r?_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r):o)||getI18n(t)},$=(e,t,r)=>{var o=q.value,a=D.getCheckboxRecords();if(o)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&r();return Promise.resolve()},G=e=>{var t=T.proxyConfig,r=j.tablePage;let{$event:o,currentPage:a,pageSize:l}=e;var i=M.value;r.currentPage=a,r.pageSize=l,V.dispatchEvent("page-change",e,o),t&&(0,_utils.isEnableConf)(i)&&V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,o)})},N=t=>{var e=S.value,r=T.proxyConfig,e=e.getComputeMaps().computeSortOpts,o=M.value;e.value.remote&&(j.sortData=t.sortList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,t.$event)})),Z.dispatchEvent("sort-change",t,t.$event)},Q=t=>{var e=S.value,r=T.proxyConfig,e=e.getComputeMaps().computeFilterOpts,o=M.value;e.value.remote&&(j.filterData=t.filterList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,t.$event)})),Z.dispatchEvent("filter-change",t,t.$event)},W=t=>{var e=T.proxyConfig,r=M.value;j.tableLoading||(e&&(0,_utils.isEnableConf)(r)&&Z.commitProxy("reload").then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),Z.dispatchEvent("form-submit",t,t.$event))},Y=e=>{var t=T.proxyConfig;let r=e.$event;var o=M.value,a=S.value;t&&(0,_utils.isEnableConf)(o)&&(a.clearScroll(),Z.commitProxy("reload").then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),r)})),Z.dispatchEvent("form-reset",e,r)},J=e=>{Z.dispatchEvent("form-submit-invalid",e,e.$event)},X=e=>{var t=e.$event;Z.dispatchEvent("form-toggle-collapse",e,t),Z.dispatchEvent("form-collapse",e,t)},ee=e=>{var t=j.isZMax;return(e?!t:t)&&(j.isZMax=!t,j.tZindex<(0,_utils.getLastZIndex)())&&(j.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),j.isZMax))},te=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(s[e])return s[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},re=e=>{let r={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?s[e]?r[t]=s[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):r[t]=e)}),r},oe=()=>{var{formConfig:e,proxyConfig:r}=T,o=j.formData,a=M.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||s.form){let e=[];if(s.form)e=s.form({$grid:V});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t({$grid:V,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),i&&e.push((0,_vue.h)(i,Object.assign(Object.assign({ref:n},Object.assign({},l,{data:r&&(0,_utils.isEnableConf)(a)&&a.form?o:l.data})),{onSubmit:W,onReset:Y,onSubmitInvalid:J,onCollapse:X}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(V)},ae=()=>{var t,r,o=T.toolbarConfig,a=L.value;if(o&&(0,_utils.isEnableConf)(a)||s.toolbar){let e=[];return s.toolbar?e=s.toolbar({$grid:V}):(o={},(r=a.slots)&&(t=te(r,"buttons"),r=te(r,"tools"),t&&(o.buttons=t),r)&&(o.tools=r),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},a),{slots:void 0}),o))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(V)},le=()=>s.top?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},s.top({$grid:V})):renderEmptyElement(V),ie=()=>{var e=s.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:V})):renderEmptyElement(V)},ne=()=>{var e=s.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:V})):renderEmptyElement(V)},se=()=>{var e=T.proxyConfig,t=k.value,r=M.value,o=Object.assign({},ge),a=s.empty,l=s.loading,i=s.rowDragIcon||s["row-drag-icon"],n=s.columnDragIcon||s["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(r)&&(r.sort&&(o.onSortChange=N),r.filter)&&(o.onFilterChange=Q),{});return a&&(e.empty=a),l&&(e.loading=l),i&&(e.rowDragIcon=i),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:S},t),o),e)])},ue=()=>s.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},s.bottom({$grid:V})):renderEmptyElement(V),de=()=>{var{proxyConfig:e,pagerConfig:t}=T,r=M.value,o=F.value,a=s.pager;return t&&(0,_utils.isEnableConf)(o)||s.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:V}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:g},o),e&&(0,_utils.isEnableConf)(r)?j.tablePage:{}),{onPageChange:G}),re(o.slots)):renderEmptyElement(V)]):renderEmptyElement(V)},h=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(oe());break;case"Toolbar":t.push(ae());break;case"Top":t.push(le());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ie(),se(),ne()]));break;case"Bottom":t.push(ue());break;case"Pager":t.push(de());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},ge={},ce=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);ge[e]=(...e)=>o(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=T,r=j.proxyInited,o=M.value,l=x.value;if(e&&(0,_utils.isEnableConf)(o)){if(t&&(0,_utils.isEnableConf)(l)&&o.form&&l.items){let a={};l.items.forEach(t=>{var{field:r,itemRender:o}=t;if(r){let e=null;o&&(o=o.defaultValue,_xeUtils.default.isFunction(o)?e=o({item:t}):_xeUtils.default.isUndefined(o)||(e=o)),a[r]=e}}),j.formData=a}r||!(j.proxyInited=!0)!==o.autoLoad&&(0,_vue.nextTick)().then(()=>Z.commitProxy("_init")).then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),ve=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&j.isZMax&&!1!==t.escRestore&&C.triggerZoomEvent(e)};let Z={dispatchEvent:(e,t,r)=>{o(e,createEvent(r,{$grid:V},t))},getEl(){return u.value},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:i,editRules:g,validConfig:c}=T,n=j.tablePage,v=q.value,m=A.value;var r=M.value;let s=F.value;var o=L.value;let{beforeQuery:u,afterQuery:p,beforeDelete:f,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=r,C=r.response||r.props||{},y=S.value;var R=B();let E=null,w=null;w=_xeUtils.default.isString(t)?(r=o.buttons,o=e&&(0,_utils.isEnableConf)(o)&&r?_xeUtils.default.findTree(r,e=>e.code===t,{children:"dropdowns"}):null,E=o?o.item:null,t):(E=t).code;var a=E?E.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,P=q.value,O=S.value,(k=O.getCheckboxRecords()).length?(O.togglePendingRow(k),D.clearCheckboxRow()):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return $(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let l=h.querySuccess,o=h.queryError;if(O){var I,k="_init"===w,P="reload"===w;if(!k&&j.tableLoading)return(0,_vue.nextTick)();let t=[],r=[],e={};if(i&&((k||P)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),k){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,U=I.value,e=U.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(r=y.getCheckedFilters())}else y&&(P?y.clearAll():(t=y.getSortColumns(),r=y.getCheckedFilters()));let a={code:w,button:E,isInited:k,isReload:P,$grid:V,page:e,sort:t.length?t[0]:{},sorts:t,filters:r,form:R,options:O};return j.sortData=t,j.filterData=r,j.tableLoading=!0,Promise.resolve((u||O)(a,...d)).then(e=>{let t=[];var r,o;return j.tableLoading=!1,e&&(i&&(0,_utils.isEnableConf)(s)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),r=C.result,t=(_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r||"result"))||[],r=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>r&&(n.currentPage=r)):(o=C.list,t=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o):e)||[])),y?y.loadData(t):(0,_vue.nextTick)(()=>{y&&y.loadData(t)}),p&&p(a,...d),l&&l(Object.assign(Object.assign({},a),{response:e})),{status:!0}}).catch(e=>(j.tableLoading=!1,o&&o(Object.assign(Object.assign({},a),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let o=h.delete,a=h.deleteSuccess,l=h.deleteError;if(o){let e=D.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var U={removeRecords:t};let r={$grid:V,code:w,button:E,body:U,form:R,options:o};if(e.length)return $(w,"vxe.grid.deleteSelectRecord",()=>t.length?(j.tableLoading=!0,Promise.resolve((f||o)(r,...d)).then(e=>(j.tableLoading=!1,y.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:z(e,"vxe.grid.delSuccess"),status:"success"}),x?x(r,...d):Z.commitProxy("query"),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:z(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):y.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=h.save,s=h.saveSuccess,u=h.saveError;if(n){let t=y.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:a,pendingRecords:l}=t,i={$grid:V,code:w,button:E,body:t,form:R,options:n},e=(r.length&&(t.pendingRecords=l.filter(e=>-1===y.findRowIndexOf(r,e))),l.length&&(t.insertRecords=r.filter(e=>-1===y.findRowIndexOf(l,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||a.length||t.pendingRecords.length?(j.tableLoading=!0,Promise.resolve((b||n)(i,...d)).then(e=>(j.tableLoading=!1,y.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:z(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(i,...d):Z.commitProxy("query"),s&&s(Object.assign(Object.assign({},i),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:z(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},i),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(w);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:w,button:E,$grid:V,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return j.isZMax?Z.revert():Z.maximize()},isMaximized(){return j.isZMax},maximize(){return ee(!0)},revert(){return ee()},getFormData:B,getFormItems(e){var t=x.value,r=T.formConfig,o=t.items;let a=[];return _xeUtils.default.eachTree(r&&(0,_utils.isEnableConf)(t)&&o?o:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=S.value;return T.proxyConfig?(e=j.sortData,{data:t?t.getFullData():[],filter:j.filterData,form:B(),sort:e.length?e[0]:{},sorts:e,pager:j.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},C={extendTableMethods:r,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,r,o,a,l,i=j.isZMax,n=u.value;return n?(e=c.value,t=v.value,r=m.value,o=p.value,a=f.value,l=n.parentElement,(!i&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=u.value;return e?(e=e.parentElement,(j.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-C.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let r=e.code;return Z.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&Z.dispatchEvent("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r}),t)})},triggerToolbarBtnEvent(e,t){C.triggerToolbarCommitEvent(e,t),Z.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){C.triggerToolbarCommitEvent(e,t),Z.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){Z.zoom(),Z.dispatchEvent("zoom",{type:j.isZMax?"max":"revert"},e)}},y=(Object.assign(V,D,Z,C,{loadColumn(e){var t=S.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},reloadColumn(e){return V.clearAll(),V.loadColumn(e)}}),(0,_vue.ref)(0));(0,_vue.watch)(()=>T.columns?T.columns.length:-1,()=>{y.value++}),(0,_vue.watch)(()=>T.columns,()=>{y.value++}),(0,_vue.watch)(y,()=>{(0,_vue.nextTick)(()=>V.loadColumn(T.columns||[]))}),(0,_vue.watch)(()=>T.toolbarConfig,()=>{b()}),(0,_vue.watch)(U,()=>{_()}),(0,_vue.watch)(()=>T.proxyConfig,()=>{ce()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(V))&&_xeUtils.default.isObject(e)&&Object.assign(V,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.columns;T.formConfig&&!i&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),T.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&V.loadColumn(e),b(),ce()}),globalEvents.on(V,"keydown",ve)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(V,"keydown")});return V.renderVN=()=>{var e=w.value,t=O.value;return(0,_vue.h)("div",{ref:u,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!T.animat,"is--round":T.round,"is--maximize":j.isZMax,"is--loading":T.loading||j.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:r}=P.value,o=s.asideLeft||s["aside-left"],a=s.asideRight||s["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},h(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},o({})):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},h(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(V)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},h(r))]})())},(0,_vue.provide)("$xeGrid",V),V},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeRowChildren","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","clearSortByEvent","isSort","getSortColumns","closeFilter","isFilter","clearFilterByEvent","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","setRowGroupExpand","setAllRowGroupExpand","clearRowGroupExpand","isRowGroupExpandByRow","isRowGroupRecord","isAggregateRecord","isAggregateExpandByRow","setRowGroups","clearRowGroups","openTooltip","moveColumnTo","moveRowTo","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(S,e){let t,{slots:s,emit:o}=e;var R=_xeUtils.default.uniqueId();let i=_ui.VxeUI.getComponent("VxeForm"),l=_ui.VxeUI.getComponent("VxePager"),E=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],w=useFns.useSize(S).computeSize,T=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),u=(0,_vue.ref)(),j=(0,_vue.ref)(),n=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var r=e=>{let t={};return e.forEach(r=>{t[r]=(...e)=>{var t=j.value;if(t&&t[r])return t[r](...e)}}),t};let D=r(tableComponentMethodKeys),M=(tableComponentMethodKeys.forEach(r=>{D[r]=(...e)=>{var t=j.value;if(t&&t[r])return t&&t[r](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),S.proxyConfig))),A=(0,_vue.computed)(()=>{var e=M.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),q=(0,_vue.computed)(()=>M.value.showActiveMsg),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,S.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,S.formConfig)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,S.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,S.zoomConfig)),O=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=S,{isZMax:r,tZindex:o}=T,a={};return r?a.zIndex=o:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),I=(0,_vue.computed)(()=>{let t={},r=S;return tableComponentPropKeys.forEach(e=>{t[e]=r[e]}),t}),k=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:r,editConfig:o,proxyConfig:a}=S,{isZMax:l,tableLoading:i,tablePage:n}=T,s=I.value,u=M.value,d=F.value,g=Object.assign({},s);return l&&(s.maxHeight?g.maxHeight="100%":g.height="100%"),a&&(0,_utils.isEnableConf)(u)&&(g.loading=r||i,t)&&u.seq&&(0,_utils.isEnableConf)(d)&&(g.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),o&&(g.editConfig=Object.assign({},o)),g}),P=(0,_vue.computed)(()=>{var e=S.layouts;let t=[],r=[],o=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||E).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],a=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:a}});var U=(0,_vue.computed)(()=>F.value.currentPage),K=(0,_vue.computed)(()=>F.value.pageSize),H=(0,_vue.computed)(()=>F.value.total);let G={refElem:u,refTable:j,refForm:n,refToolbar:d,refPager:g},N={computeProxyOpts:M,computePagerOpts:F,computeFormOpts:x,computeToolbarOpts:L,computeZoomOpts:a},V={xID:R,props:S,context:e,reactData:T,getRefMaps:()=>G,getComputeMaps:()=>N},b=()=>{var e=L.value;S.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=j.value,t=d.value;e&&t&&e.connect(t)})},z=()=>{var e=S.proxyConfig,t=T.formData,r=M.value,o=x.value;return e&&(0,_utils.isEnableConf)(r)&&r.form?t:o.data},_=e=>{var t=T.tablePage,r=S.pagerConfig,o=F.value;r&&(0,_utils.isEnableConf)(o)&&(e?o[e]&&(t[e]=_xeUtils.default.toNumber(o[e])):({currentPage:r,pageSize:e,total:o}=o,r&&(t.currentPage=r),e&&(t.pageSize=e),o&&(t.pageSize=o)))},B=(e,t)=>{var r=M.value,r=(r.response||r.props||{}).message;let o;return(o=e&&r?_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r):o)||getI18n(t)},$=(e,t,r)=>{var o=q.value,a=D.getCheckboxRecords();if(o)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&r();return Promise.resolve()},Q=e=>{var t=S.proxyConfig,r=T.tablePage;let{$event:o,currentPage:a,pageSize:l}=e;var i=M.value;r.currentPage=a,r.pageSize=l,V.dispatchEvent("page-change",e,o),t&&(0,_utils.isEnableConf)(i)&&V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,o)})},W=t=>{var e=j.value,r=S.proxyConfig,e=e.getComputeMaps().computeSortOpts,o=M.value;e.value.remote&&(T.sortData=t.sortList,r)&&(0,_utils.isEnableConf)(o)&&(T.tablePage.currentPage=1,Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,t.$event)})),Z.dispatchEvent("sort-change",t,t.$event)},Y=t=>{var e=j.value,r=S.proxyConfig,e=e.getComputeMaps().computeFilterOpts,o=M.value;e.value.remote&&(T.filterData=t.filterList,r)&&(0,_utils.isEnableConf)(o)&&(T.tablePage.currentPage=1,Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,t.$event)})),Z.dispatchEvent("filter-change",t,t.$event)},J=t=>{var e=S.proxyConfig,r=M.value;T.tableLoading||(e&&(0,_utils.isEnableConf)(r)&&Z.commitProxy("reload").then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),Z.dispatchEvent("form-submit",t,t.$event))},X=e=>{var t=S.proxyConfig;let r=e.$event;var o=M.value,a=j.value;t&&(0,_utils.isEnableConf)(o)&&(a.clearScroll(),Z.commitProxy("reload").then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),r)})),Z.dispatchEvent("form-reset",e,r)},ee=e=>{Z.dispatchEvent("form-submit-invalid",e,e.$event)},te=e=>{var t=e.$event;Z.dispatchEvent("form-toggle-collapse",e,t),Z.dispatchEvent("form-collapse",e,t)},re=e=>{var t=T.isZMax;return(e?!t:t)&&(T.isZMax=!t,T.tZindex<(0,_utils.getLastZIndex)())&&(T.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),T.isZMax))},oe=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(s[e])return s[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},ae=e=>{let r={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?s[e]?r[t]=s[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):r[t]=e)}),r},le=()=>{var{formConfig:e,proxyConfig:r}=S,o=T.formData,a=M.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||s.form){let e=[];if(s.form)e=s.form({$grid:V});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t({$grid:V,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),i&&e.push((0,_vue.h)(i,Object.assign(Object.assign({ref:n},Object.assign({},l,{data:r&&(0,_utils.isEnableConf)(a)&&a.form?o:l.data})),{onSubmit:J,onReset:X,onSubmitInvalid:ee,onCollapse:te}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(V)},ie=()=>{var t,r,o=S.toolbarConfig,a=L.value;if(o&&(0,_utils.isEnableConf)(a)||s.toolbar){let e=[];return s.toolbar?e=s.toolbar({$grid:V}):(o={},(r=a.slots)&&(t=oe(r,"buttons"),r=oe(r,"tools"),t&&(o.buttons=t),r)&&(o.tools=r),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},a),{slots:void 0}),o))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(V)},ne=()=>s.top?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},s.top({$grid:V})):renderEmptyElement(V),se=()=>{var e=s.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:V})):renderEmptyElement(V)},ue=()=>{var e=s.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:V})):renderEmptyElement(V)},de=()=>{var e=S.proxyConfig,t=k.value,r=M.value,o=Object.assign({},ve),a=s.empty,l=s.loading,i=s.rowDragIcon||s["row-drag-icon"],n=s.columnDragIcon||s["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(r)&&(r.sort&&(o.onSortChange=W),r.filter)&&(o.onFilterChange=Y),{});return a&&(e.empty=a),l&&(e.loading=l),i&&(e.rowDragIcon=i),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:j},t),o),e)])},ge=()=>s.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},s.bottom({$grid:V})):renderEmptyElement(V),ce=()=>{var{proxyConfig:e,pagerConfig:t}=S,r=M.value,o=F.value,a=s.pager;return t&&(0,_utils.isEnableConf)(o)||s.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:V}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:g},o),e&&(0,_utils.isEnableConf)(r)?T.tablePage:{}),{onPageChange:Q}),ae(o.slots)):renderEmptyElement(V)]):renderEmptyElement(V)},h=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(le());break;case"Toolbar":t.push(ie());break;case"Top":t.push(ne());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[se(),de(),ue()]));break;case"Bottom":t.push(ge());break;case"Pager":t.push(ce());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},ve={},me=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);ve[e]=(...e)=>o(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=S,r=T.proxyInited,o=M.value,l=x.value;if(e&&(0,_utils.isEnableConf)(o)){if(t&&(0,_utils.isEnableConf)(l)&&o.form&&l.items){let a={};l.items.forEach(t=>{var{field:r,itemRender:o}=t;if(r){let e=null;o&&(o=o.defaultValue,_xeUtils.default.isFunction(o)?e=o({item:t}):_xeUtils.default.isUndefined(o)||(e=o)),a[r]=e}}),T.formData=a}r||!(T.proxyInited=!0)!==o.autoLoad&&(0,_vue.nextTick)().then(()=>Z.commitProxy("_init")).then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),pe=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&T.isZMax&&!1!==t.escRestore&&C.triggerZoomEvent(e)};let Z={dispatchEvent:(e,t,r)=>{o(e,createEvent(r,{$grid:V},t))},getEl(){return u.value},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:i,editRules:g,validConfig:c}=S,n=T.tablePage,v=q.value,m=A.value;var r=M.value;let s=F.value;var o=L.value;let{beforeQuery:u,afterQuery:p,beforeDelete:f,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=r,C=r.response||r.props||{},y=j.value;var R=z();let E=null,w=null;w=_xeUtils.default.isString(t)?(r=o.buttons,o=e&&(0,_utils.isEnableConf)(o)&&r?_xeUtils.default.findTree(r,e=>e.code===t,{children:"dropdowns"}):null,E=o?o.item:null,t):(E=t).code;var a=E?E.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,P=q.value,O=j.value,(k=O.getCheckboxRecords()).length?(O.togglePendingRow(k),D.clearCheckboxRow()):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return $(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let l=h.querySuccess,o=h.queryError;if(O){var I,k="_init"===w,P="reload"===w;if(!k&&T.tableLoading)return(0,_vue.nextTick)();let t=[],r=[],e={};if(i&&((k||P)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),k){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,U=I.value,e=U.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(r=y.getCheckedFilters())}else y&&(P?y.clearAll():(t=y.getSortColumns(),r=y.getCheckedFilters()));let a={code:w,button:E,isInited:k,isReload:P,$grid:V,page:e,sort:t.length?t[0]:{},sorts:t,filters:r,form:R,options:O};return T.sortData=t,T.filterData=r,T.tableLoading=!0,Promise.resolve((u||O)(a,...d)).then(e=>{let t=[];var r,o;return T.tableLoading=!1,e&&(i&&(0,_utils.isEnableConf)(s)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),r=C.result,t=(_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r||"result"))||[],r=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>r&&(n.currentPage=r)):(o=C.list,t=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o):e)||[])),y?y.loadData(t):(0,_vue.nextTick)(()=>{y&&y.loadData(t)}),p&&p(a,...d),l&&l(Object.assign(Object.assign({},a),{response:e})),{status:!0}}).catch(e=>(T.tableLoading=!1,o&&o(Object.assign(Object.assign({},a),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let o=h.delete,a=h.deleteSuccess,l=h.deleteError;if(o){let e=D.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var U={removeRecords:t};let r={$grid:V,code:w,button:E,body:U,form:R,options:o};if(e.length)return $(w,"vxe.grid.deleteSelectRecord",()=>t.length?(T.tableLoading=!0,Promise.resolve((f||o)(r,...d)).then(e=>(T.tableLoading=!1,y.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:B(e,"vxe.grid.delSuccess"),status:"success"}),x?x(r,...d):Z.commitProxy("query"),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:B(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):y.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=h.save,s=h.saveSuccess,u=h.saveError;if(n){let t=y.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:a,pendingRecords:l}=t,i={$grid:V,code:w,button:E,body:t,form:R,options:n},e=(r.length&&(t.pendingRecords=l.filter(e=>-1===y.findRowIndexOf(r,e))),l.length&&(t.insertRecords=r.filter(e=>-1===y.findRowIndexOf(l,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||a.length||t.pendingRecords.length?(T.tableLoading=!0,Promise.resolve((b||n)(i,...d)).then(e=>(T.tableLoading=!1,y.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:B(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(i,...d):Z.commitProxy("query"),s&&s(Object.assign(Object.assign({},i),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:B(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},i),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(w);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:w,button:E,$grid:V,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return T.isZMax?Z.revert():Z.maximize()},isMaximized(){return T.isZMax},maximize(){return re(!0)},revert(){return re()},getFormData:z,getFormItems(e){var t=x.value,r=S.formConfig,o=t.items;let a=[];return _xeUtils.default.eachTree(r&&(0,_utils.isEnableConf)(t)&&o?o:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=j.value;return S.proxyConfig?(e=T.sortData,{data:t?t.getFullData():[],filter:T.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:T.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},C={extendTableMethods:r,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,r,o,a,l,i=T.isZMax,n=u.value;return n?(e=c.value,t=v.value,r=m.value,o=p.value,a=f.value,l=n.parentElement,(!i&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=u.value;return e?(e=e.parentElement,(T.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-C.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let r=e.code;return Z.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&Z.dispatchEvent("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r}),t)})},triggerToolbarBtnEvent(e,t){C.triggerToolbarCommitEvent(e,t),Z.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){C.triggerToolbarCommitEvent(e,t),Z.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){Z.zoom(),Z.dispatchEvent("zoom",{type:T.isZMax?"max":"revert"},e)}},y=(Object.assign(V,D,Z,C,{loadColumn(e){var t=j.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},reloadColumn(e){return V.clearAll(),V.loadColumn(e)}}),(0,_vue.ref)(0));(0,_vue.watch)(()=>S.columns?S.columns.length:-1,()=>{y.value++}),(0,_vue.watch)(()=>S.columns,()=>{y.value++}),(0,_vue.watch)(y,()=>{(0,_vue.nextTick)(()=>V.loadColumn(S.columns||[]))}),(0,_vue.watch)(()=>S.toolbarConfig,()=>{b()}),(0,_vue.watch)(U,()=>{_("currentPage")}),(0,_vue.watch)(K,()=>{_("pageSize")}),(0,_vue.watch)(H,()=>{_("total")}),(0,_vue.watch)(()=>S.proxyConfig,()=>{me()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(V))&&_xeUtils.default.isObject(e)&&Object.assign(V,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=S.columns;S.formConfig&&!i&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),S.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&V.loadColumn(e),b(),me()}),globalEvents.on(V,"keydown",pe)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(V,"keydown")});return V.renderVN=()=>{var e=w.value,t=O.value;return(0,_vue.h)("div",{ref:u,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!S.animat,"is--round":S.round,"is--maximize":T.isZMax,"is--loading":S.loading||T.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:r}=P.value,o=s.asideLeft||s["aside-left"],a=s.asideRight||s["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},h(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},o({})):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},h(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(V)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},h(r))]})())},(0,_vue.provide)("$xeGrid",V),V},render(){return this.renderVN()}});
package/lib/index.umd.js CHANGED
@@ -3138,7 +3138,7 @@ function eqEmptyValue(cellValue) {
3138
3138
  ;// ./packages/ui/index.ts
3139
3139
 
3140
3140
 
3141
- const version = "4.13.35";
3141
+ const version = "4.13.36";
3142
3142
  core_.VxeUI.version = version;
3143
3143
  core_.VxeUI.tableVersion = version;
3144
3144
  core_.VxeUI.setConfig({
@@ -3599,7 +3599,7 @@ var esnext_iterator_some = __webpack_require__(7550);
3599
3599
  const {
3600
3600
  log: log_log
3601
3601
  } = core_.VxeUI;
3602
- const log_version = `table v${"4.13.35"}`;
3602
+ const log_version = `table v${"4.13.36"}`;
3603
3603
  const warnLog = log_log.create('warn', log_version);
3604
3604
  const errLog = log_log.create('error', log_version);
3605
3605
  ;// ./packages/table/src/columnInfo.ts
@@ -11007,7 +11007,7 @@ setTimeout(()=>$xeTable.recalculate(),50);});},/**
11007
11007
  * @param {Row} row 行对象
11008
11008
  * @param {Object} record 新数据
11009
11009
  * @param {String} field 字段名
11010
- */reloadRow(row,record,field){const{keepSource}=props;const{tableData}=reactData;const{tableSourceData}=internalData;if(keepSource){const rowIndex=tableMethods.getRowIndex(row);const oRow=tableSourceData[rowIndex];if(oRow&&row){if(field){const newValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record||row,field),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,newValue);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(oRow,field,newValue);}else{const rowkey=getRowkey($xeTable);const rowid=getRowid($xeTable,row);const newRecord=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(Object.assign({},record),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(newRecord,rowkey,rowid);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().destructuring(oRow,Object.assign(row,newRecord));}}reactData.tableData=tableData.slice(0);}else{errLog('vxe.error.reqProp',['keep-source']);}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},getParams(){return props.params;},/**
11010
+ */reloadRow(row,record,field){const{keepSource}=props;const{tableData}=reactData;const{sourceDataRowIdData}=internalData;if(keepSource){if($xeTable.isAggregateRecord(row)){return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();}const oRow=sourceDataRowIdData[getRowid($xeTable,row)];if(oRow&&row){if(field){const newValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(record||row,field),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,newValue);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(oRow,field,newValue);}else{const rowkey=getRowkey($xeTable);const rowid=getRowid($xeTable,row);const newRecord=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(Object.assign({},record),true);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(newRecord,rowkey,rowid);external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().destructuring(oRow,Object.assign(row,newRecord));}}reactData.tableData=tableData.slice(0);}else{errLog('vxe.error.reqProp',['keep-source']);}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},getParams(){return props.params;},/**
11011
11011
  * 用于树结构,给行数据加载子节点
11012
11012
  */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[getRowid($xeTable,row)];const parentLevel=parentRest?parentRest.level:0;return tableMethods.createData(childRecords).then(rows=>{if(keepSource){const rowid=getRowid($xeTable,row);const matchObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(tableSourceData,item=>rowid===getRowid($xeTable,item),{children:childrenField});if(matchObj){matchObj.item[childrenField]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows,true);}rows.forEach(childRow=>{const rowid=getRowid($xeTable,childRow);sourceDataRowIdData[rowid]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(childRow,true);});}external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(rows,(childRow,index,items,path,parentItem,nodes)=>{const rowid=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]=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(rows,false);}updateAfterDataIndex();return rows;});},/**
11013
11013
  * 加载列配置
@@ -12481,9 +12481,17 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
12481
12481
  footKeys
12482
12482
  };
12483
12483
  });
12484
- const computePageConfFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
12484
+ const computeCustomCurrentPageFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
12485
12485
  const pagerOpts = computePagerOpts.value;
12486
- return `${pagerOpts.currentPage}${pagerOpts.pageSize}`;
12486
+ return pagerOpts.currentPage;
12487
+ });
12488
+ const computeCustomPageSizeFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
12489
+ const pagerOpts = computePagerOpts.value;
12490
+ return pagerOpts.pageSize;
12491
+ });
12492
+ const computeCustomTotalFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
12493
+ const pagerOpts = computePagerOpts.value;
12494
+ return pagerOpts.total;
12487
12495
  });
12488
12496
  const refMaps = {
12489
12497
  refElem,
@@ -12530,7 +12538,7 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
12530
12538
  const formOpts = computeFormOpts.value;
12531
12539
  return proxyConfig && isEnableConf(proxyOpts) && proxyOpts.form ? formData : formOpts.data;
12532
12540
  };
12533
- const initPages = () => {
12541
+ const initPages = propKey => {
12534
12542
  const {
12535
12543
  tablePage
12536
12544
  } = reactData;
@@ -12538,16 +12546,26 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
12538
12546
  pagerConfig
12539
12547
  } = props;
12540
12548
  const pagerOpts = computePagerOpts.value;
12541
- const {
12542
- currentPage,
12543
- pageSize
12544
- } = pagerOpts;
12545
12549
  if (pagerConfig && isEnableConf(pagerOpts)) {
12546
- if (currentPage) {
12547
- tablePage.currentPage = currentPage;
12548
- }
12549
- if (pageSize) {
12550
- tablePage.pageSize = pageSize;
12550
+ if (propKey) {
12551
+ if (pagerOpts[propKey]) {
12552
+ tablePage[propKey] = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(pagerOpts[propKey]);
12553
+ }
12554
+ } else {
12555
+ const {
12556
+ currentPage,
12557
+ pageSize,
12558
+ total
12559
+ } = pagerOpts;
12560
+ if (currentPage) {
12561
+ tablePage.currentPage = currentPage;
12562
+ }
12563
+ if (pageSize) {
12564
+ tablePage.pageSize = pageSize;
12565
+ }
12566
+ if (total) {
12567
+ tablePage.pageSize = total;
12568
+ }
12551
12569
  }
12552
12570
  }
12553
12571
  };
@@ -13751,8 +13769,14 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
13751
13769
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.toolbarConfig, () => {
13752
13770
  initToolbar();
13753
13771
  });
13754
- (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computePageConfFlag, () => {
13755
- initPages();
13772
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeCustomCurrentPageFlag, () => {
13773
+ initPages('currentPage');
13774
+ });
13775
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeCustomPageSizeFlag, () => {
13776
+ initPages('pageSize');
13777
+ });
13778
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeCustomTotalFlag, () => {
13779
+ initPages('total');
13756
13780
  });
13757
13781
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.proxyConfig, () => {
13758
13782
  initProxy();
@@ -15247,7 +15271,7 @@ edit_hook_hooks.add('tableEditModule', {
15247
15271
  params.cell = cell;
15248
15272
  if (cell && isEnableConf(editConfig) && isEnableConf(editRender)) {
15249
15273
  // 激活编辑
15250
- if (!$xeTable.isPendingByRow(row)) {
15274
+ if (!$xeTable.isPendingByRow(row) && !$xeTable.isAggregateRecord(row)) {
15251
15275
  if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
15252
15276
  // 判断是否禁用编辑
15253
15277
  let type = 'edit-disabled';
@@ -15353,7 +15377,7 @@ edit_hook_hooks.add('tableEditModule', {
15353
15377
  editConfig
15354
15378
  } = props;
15355
15379
  const column = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
15356
- if (row && column && isEnableConf(editConfig) && isEnableConf(column.editRender)) {
15380
+ if (row && column && isEnableConf(editConfig) && isEnableConf(column.editRender) && !$xeTable.isAggregateRecord(row)) {
15357
15381
  return Promise.resolve(isPos ? $xeTable.scrollToRow(row, column) : null).then(() => {
15358
15382
  const cell = $xeTable.getCellElement(row, column);
15359
15383
  if (cell) {
@@ -18545,7 +18569,8 @@ validator_hook_hooks.add('tableValidatorModule', {
18545
18569
  const {
18546
18570
  computeValidOpts,
18547
18571
  computeTreeOpts,
18548
- computeEditOpts
18572
+ computeEditOpts,
18573
+ computeAggregateOpts
18549
18574
  } = $xeTable.getComputeMaps();
18550
18575
  let validatorMethods = {};
18551
18576
  let validatorPrivateMethods = {};
@@ -18597,13 +18622,16 @@ validator_hook_hooks.add('tableValidatorModule', {
18597
18622
  editRules,
18598
18623
  treeConfig
18599
18624
  } = props;
18625
+ const {
18626
+ isRowGroupStatus
18627
+ } = reactData;
18600
18628
  const {
18601
18629
  afterFullData,
18602
18630
  pendingRowMaps,
18603
18631
  removeRowMaps
18604
18632
  } = internalData;
18605
18633
  const treeOpts = computeTreeOpts.value;
18606
- const childrenField = treeOpts.children || treeOpts.childrenField;
18634
+ const aggregateOpts = computeAggregateOpts.value;
18607
18635
  const validOpts = computeValidOpts.value;
18608
18636
  let validList;
18609
18637
  if (rows === true) {
@@ -18639,6 +18667,9 @@ validator_hook_hooks.add('tableValidatorModule', {
18639
18667
  if (pendingRowMaps[rowid]) {
18640
18668
  return;
18641
18669
  }
18670
+ if ($xeTable.isAggregateRecord(row)) {
18671
+ return;
18672
+ }
18642
18673
  if (isFull || !validRuleErr) {
18643
18674
  const colVailds = [];
18644
18675
  columns.forEach(column => {
@@ -18678,7 +18709,12 @@ validator_hook_hooks.add('tableValidatorModule', {
18678
18709
  rowValidErrs.push(Promise.all(colVailds));
18679
18710
  }
18680
18711
  };
18681
- if (treeConfig) {
18712
+ if (isRowGroupStatus) {
18713
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(validList, handleVaild, {
18714
+ children: aggregateOpts.mapChildrenField
18715
+ });
18716
+ } else if (treeConfig) {
18717
+ const childrenField = treeOpts.children || treeOpts.childrenField;
18682
18718
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(validList, handleVaild, {
18683
18719
  children: childrenField
18684
18720
  });