vxe-table 3.15.54 → 3.15.56

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 (136) hide show
  1. package/es/grid/src/grid.js +31 -0
  2. package/es/locale/lang/ar-EG.js +2 -1
  3. package/es/locale/lang/de-DE.js +2 -1
  4. package/es/locale/lang/en-US.js +2 -1
  5. package/es/locale/lang/es-ES.js +2 -1
  6. package/es/locale/lang/fr-FR.js +2 -1
  7. package/es/locale/lang/hu-HU.js +2 -1
  8. package/es/locale/lang/hy-AM.js +2 -1
  9. package/es/locale/lang/id-ID.js +2 -1
  10. package/es/locale/lang/it-IT.js +2 -1
  11. package/es/locale/lang/ja-JP.js +2 -1
  12. package/es/locale/lang/ko-KR.js +2 -1
  13. package/es/locale/lang/ms-MY.js +2 -1
  14. package/es/locale/lang/nb-NO.js +2 -1
  15. package/es/locale/lang/pt-BR.js +2 -1
  16. package/es/locale/lang/ru-RU.js +2 -1
  17. package/es/locale/lang/th-TH.js +2 -1
  18. package/es/locale/lang/ug-CN.js +2 -1
  19. package/es/locale/lang/uk-UA.js +2 -1
  20. package/es/locale/lang/uz-UZ.js +2 -1
  21. package/es/locale/lang/vi-VN.js +2 -1
  22. package/es/locale/lang/zh-CHT.js +2 -1
  23. package/es/locale/lang/zh-CN.js +2 -1
  24. package/es/style.css +1 -1
  25. package/es/table/src/methods.js +58 -15
  26. package/es/ui/index.js +2 -1
  27. package/es/ui/src/log.js +1 -1
  28. package/lib/grid/src/grid.js +48 -0
  29. package/lib/grid/src/grid.min.js +1 -1
  30. package/lib/index.umd.js +119 -18
  31. package/lib/index.umd.min.js +1 -1
  32. package/lib/locale/lang/ar-EG.js +2 -1
  33. package/lib/locale/lang/ar-EG.min.js +1 -1
  34. package/lib/locale/lang/ar-EG.umd.js +2 -1
  35. package/lib/locale/lang/de-DE.js +2 -1
  36. package/lib/locale/lang/de-DE.min.js +1 -1
  37. package/lib/locale/lang/de-DE.umd.js +2 -1
  38. package/lib/locale/lang/en-US.js +2 -1
  39. package/lib/locale/lang/en-US.min.js +1 -1
  40. package/lib/locale/lang/en-US.umd.js +2 -1
  41. package/lib/locale/lang/es-ES.js +2 -1
  42. package/lib/locale/lang/es-ES.min.js +1 -1
  43. package/lib/locale/lang/es-ES.umd.js +2 -1
  44. package/lib/locale/lang/fr-FR.js +2 -1
  45. package/lib/locale/lang/fr-FR.min.js +1 -1
  46. package/lib/locale/lang/fr-FR.umd.js +2 -1
  47. package/lib/locale/lang/hu-HU.js +2 -1
  48. package/lib/locale/lang/hu-HU.min.js +1 -1
  49. package/lib/locale/lang/hu-HU.umd.js +2 -1
  50. package/lib/locale/lang/hy-AM.js +2 -1
  51. package/lib/locale/lang/hy-AM.min.js +1 -1
  52. package/lib/locale/lang/hy-AM.umd.js +2 -1
  53. package/lib/locale/lang/id-ID.js +2 -1
  54. package/lib/locale/lang/id-ID.min.js +1 -1
  55. package/lib/locale/lang/id-ID.umd.js +2 -1
  56. package/lib/locale/lang/it-IT.js +2 -1
  57. package/lib/locale/lang/it-IT.min.js +1 -1
  58. package/lib/locale/lang/it-IT.umd.js +2 -1
  59. package/lib/locale/lang/ja-JP.js +2 -1
  60. package/lib/locale/lang/ja-JP.min.js +1 -1
  61. package/lib/locale/lang/ja-JP.umd.js +2 -1
  62. package/lib/locale/lang/ko-KR.js +2 -1
  63. package/lib/locale/lang/ko-KR.min.js +1 -1
  64. package/lib/locale/lang/ko-KR.umd.js +2 -1
  65. package/lib/locale/lang/ms-MY.js +2 -1
  66. package/lib/locale/lang/ms-MY.min.js +1 -1
  67. package/lib/locale/lang/ms-MY.umd.js +2 -1
  68. package/lib/locale/lang/nb-NO.js +2 -1
  69. package/lib/locale/lang/nb-NO.min.js +1 -1
  70. package/lib/locale/lang/nb-NO.umd.js +2 -1
  71. package/lib/locale/lang/pt-BR.js +2 -1
  72. package/lib/locale/lang/pt-BR.min.js +1 -1
  73. package/lib/locale/lang/pt-BR.umd.js +2 -1
  74. package/lib/locale/lang/ru-RU.js +2 -1
  75. package/lib/locale/lang/ru-RU.min.js +1 -1
  76. package/lib/locale/lang/ru-RU.umd.js +2 -1
  77. package/lib/locale/lang/th-TH.js +2 -1
  78. package/lib/locale/lang/th-TH.min.js +1 -1
  79. package/lib/locale/lang/th-TH.umd.js +2 -1
  80. package/lib/locale/lang/ug-CN.js +2 -1
  81. package/lib/locale/lang/ug-CN.min.js +1 -1
  82. package/lib/locale/lang/ug-CN.umd.js +2 -1
  83. package/lib/locale/lang/uk-UA.js +2 -1
  84. package/lib/locale/lang/uk-UA.min.js +1 -1
  85. package/lib/locale/lang/uk-UA.umd.js +2 -1
  86. package/lib/locale/lang/uz-UZ.js +2 -1
  87. package/lib/locale/lang/uz-UZ.min.js +1 -1
  88. package/lib/locale/lang/uz-UZ.umd.js +2 -1
  89. package/lib/locale/lang/vi-VN.js +2 -1
  90. package/lib/locale/lang/vi-VN.min.js +1 -1
  91. package/lib/locale/lang/vi-VN.umd.js +2 -1
  92. package/lib/locale/lang/zh-CHT.js +2 -1
  93. package/lib/locale/lang/zh-CHT.min.js +1 -1
  94. package/lib/locale/lang/zh-CHT.umd.js +2 -1
  95. package/lib/locale/lang/zh-CN.js +2 -1
  96. package/lib/locale/lang/zh-CN.min.js +1 -1
  97. package/lib/locale/lang/zh-CN.umd.js +2 -1
  98. package/lib/style.css +1 -1
  99. package/lib/table/src/methods.js +64 -15
  100. package/lib/table/src/methods.min.js +1 -1
  101. package/lib/ui/index.js +2 -1
  102. package/lib/ui/index.min.js +1 -1
  103. package/lib/ui/src/log.js +1 -1
  104. package/lib/ui/src/log.min.js +1 -1
  105. package/package.json +1 -1
  106. package/packages/grid/src/grid.ts +31 -0
  107. package/packages/locale/lang/ar-EG.ts +2 -1
  108. package/packages/locale/lang/de-DE.ts +2 -1
  109. package/packages/locale/lang/en-US.ts +2 -1
  110. package/packages/locale/lang/es-ES.ts +2 -1
  111. package/packages/locale/lang/fr-FR.ts +2 -1
  112. package/packages/locale/lang/hu-HU.ts +2 -1
  113. package/packages/locale/lang/hy-AM.ts +2 -1
  114. package/packages/locale/lang/id-ID.ts +2 -1
  115. package/packages/locale/lang/it-IT.ts +2 -1
  116. package/packages/locale/lang/ja-JP.ts +2 -1
  117. package/packages/locale/lang/ko-KR.ts +2 -1
  118. package/packages/locale/lang/ms-MY.ts +2 -1
  119. package/packages/locale/lang/nb-NO.ts +2 -1
  120. package/packages/locale/lang/pt-BR.ts +2 -1
  121. package/packages/locale/lang/ru-RU.ts +2 -1
  122. package/packages/locale/lang/th-TH.ts +2 -1
  123. package/packages/locale/lang/ug-CN.ts +2 -1
  124. package/packages/locale/lang/uk-UA.ts +2 -1
  125. package/packages/locale/lang/uz-UZ.ts +2 -1
  126. package/packages/locale/lang/vi-VN.ts +2 -1
  127. package/packages/locale/lang/zh-CHT.ts +2 -1
  128. package/packages/locale/lang/zh-CN.ts +2 -1
  129. package/packages/table/src/methods.ts +68 -14
  130. package/packages/ui/index.ts +1 -0
  131. /package/es/{iconfont.1753260891694.ttf → iconfont.1753525475408.ttf} +0 -0
  132. /package/es/{iconfont.1753260891694.woff → iconfont.1753525475408.woff} +0 -0
  133. /package/es/{iconfont.1753260891694.woff2 → iconfont.1753525475408.woff2} +0 -0
  134. /package/lib/{iconfont.1753260891694.ttf → iconfont.1753525475408.ttf} +0 -0
  135. /package/lib/{iconfont.1753260891694.woff → iconfont.1753525475408.woff} +0 -0
  136. /package/lib/{iconfont.1753260891694.woff2 → iconfont.1753525475408.woff2} +0 -0
@@ -1965,16 +1965,24 @@ function removeFooterMerges($xeTable, merges) {
1965
1965
  return rest;
1966
1966
  }
1967
1967
  function handleSortEvent($xeTable, evnt, sortConfs, isUpdate) {
1968
+ const internalData = $xeTable;
1969
+ const { tableFullColumn } = internalData;
1968
1970
  const sortOpts = $xeTable.computeSortOpts;
1969
1971
  const { multiple, remote, orders } = sortOpts;
1970
1972
  if (!XEUtils.isArray(sortConfs)) {
1971
1973
  sortConfs = [sortConfs];
1972
1974
  }
1973
1975
  if (sortConfs && sortConfs.length) {
1976
+ const orderActiveMaps = {};
1974
1977
  if (!multiple) {
1975
1978
  sortConfs = [sortConfs[0]];
1976
- clearAllSort($xeTable);
1979
+ tableFullColumn.forEach((column) => {
1980
+ if (column.order) {
1981
+ orderActiveMaps[column.id] = column;
1982
+ }
1983
+ });
1977
1984
  }
1985
+ const sortColMpps = {};
1978
1986
  let firstColumn = null;
1979
1987
  sortConfs.forEach((confs, index) => {
1980
1988
  let { field, order } = confs;
@@ -1993,8 +2001,16 @@ function handleSortEvent($xeTable, evnt, sortConfs, isUpdate) {
1993
2001
  column.order = order;
1994
2002
  }
1995
2003
  column.sortTime = Date.now() + index;
2004
+ sortColMpps[column.id] = column;
1996
2005
  }
1997
2006
  });
2007
+ if (!multiple) {
2008
+ XEUtils.each(orderActiveMaps, (oaCol, oaId) => {
2009
+ if (!sortColMpps[oaId]) {
2010
+ oaCol.order = null;
2011
+ }
2012
+ });
2013
+ }
1998
2014
  if (isUpdate) {
1999
2015
  if (!remote) {
2000
2016
  $xeTable.handleTableData(true);
@@ -8478,9 +8494,9 @@ const Methods = {
8478
8494
  const $xeTable = this;
8479
8495
  return handleSortEvent($xeTable, null, sortConfs, isUpdate);
8480
8496
  },
8481
- setSortByEvent(evnt, sortConfs, isUpdate) {
8497
+ setSortByEvent(evnt, sortConfs) {
8482
8498
  const $xeTable = this;
8483
- return handleSortEvent($xeTable, evnt, sortConfs, isUpdate);
8499
+ return handleSortEvent($xeTable, evnt, sortConfs, true);
8484
8500
  },
8485
8501
  /**
8486
8502
  * 清空指定列的排序条件
@@ -8512,6 +8528,7 @@ const Methods = {
8512
8528
  const internalData = $xeTable;
8513
8529
  const { tableFullColumn } = internalData;
8514
8530
  const sortOpts = $xeTable.computeSortOpts;
8531
+ const { multiple } = sortOpts;
8515
8532
  const sortCols = [];
8516
8533
  let column = null;
8517
8534
  if (evnt) {
@@ -8532,13 +8549,16 @@ const Methods = {
8532
8549
  if (!sortOpts.remote) {
8533
8550
  $xeTable.handleTableData(true);
8534
8551
  }
8535
- if (sortCols.length) {
8536
- const params = { $table: $xeTable, $event: evnt, cols: sortCols, sortList: [] };
8537
- $xeTable.dispatchEvent('clear-all-sort', params, evnt);
8552
+ if (!multiple) {
8553
+ column = sortCols[0];
8538
8554
  }
8539
- else if (column) {
8555
+ if (column) {
8540
8556
  $xeTable.handleColumnSortEvent(evnt, column);
8541
8557
  }
8558
+ if (multiple && sortCols.length) {
8559
+ const params = { $table: $xeTable, $event: evnt, cols: sortCols, sortList: [] };
8560
+ $xeTable.dispatchEvent('clear-all-sort', params, evnt);
8561
+ }
8542
8562
  }
8543
8563
  return $xeTable.$nextTick().then(() => {
8544
8564
  updateRowOffsetTop($xeTable);
@@ -8571,14 +8591,12 @@ const Methods = {
8571
8591
  }
8572
8592
  return sortList;
8573
8593
  },
8574
- setFilterByEvent(evnt, fieldOrColumn, options, isUpdate) {
8594
+ setFilterByEvent(evnt, fieldOrColumn, options) {
8575
8595
  const $xeTable = this;
8576
8596
  const column = handleFieldOrColumn($xeTable, fieldOrColumn);
8577
8597
  if (column && column.filters) {
8578
8598
  column.filters = toFilters(options || []);
8579
- if (isUpdate) {
8580
- return $xeTable.handleColumnConfirmFilter(column, evnt);
8581
- }
8599
+ return $xeTable.handleColumnConfirmFilter(column, evnt);
8582
8600
  }
8583
8601
  return $xeTable.$nextTick();
8584
8602
  },
@@ -8628,6 +8646,7 @@ const Methods = {
8628
8646
  const { filterStore } = reactData;
8629
8647
  const { tableFullColumn } = internalData;
8630
8648
  const filterOpts = $xeTable.computeFilterOpts;
8649
+ const { multiple } = filterOpts;
8631
8650
  const filterCols = [];
8632
8651
  let column = null;
8633
8652
  if (fieldOrColumn) {
@@ -8658,13 +8677,37 @@ const Methods = {
8658
8677
  if (!filterOpts.remote) {
8659
8678
  $xeTable.updateData();
8660
8679
  }
8661
- if (filterCols.length) {
8680
+ if (!multiple) {
8681
+ column = filterCols[0];
8682
+ }
8683
+ if (column) {
8684
+ const filterList = () => $xeTable.getCheckedFilters();
8685
+ const values = [];
8686
+ const datas = [];
8687
+ column.filters.forEach((item) => {
8688
+ if (item.checked) {
8689
+ values.push(item.value);
8690
+ datas.push(item.data);
8691
+ }
8692
+ });
8693
+ const params = {
8694
+ $table: $xeTable,
8695
+ $event: evnt,
8696
+ column,
8697
+ field: column.field,
8698
+ property: column.field,
8699
+ values,
8700
+ datas,
8701
+ filters: filterList,
8702
+ filterList
8703
+ };
8704
+ $xeTable.dispatchEvent('filter-change', params, evnt);
8705
+ $xeTable.dispatchEvent('clear-filter', params, evnt);
8706
+ }
8707
+ if (multiple && filterCols.length) {
8662
8708
  const params = { $table: $xeTable, $event: evnt, cols: filterCols, filterList: [] };
8663
8709
  $xeTable.dispatchEvent('clear-all-filter', params, evnt);
8664
8710
  }
8665
- else if (column) {
8666
- $xeTable.dispatchEvent('clear-filter', { filterList: () => $xeTable.getCheckedFilters() }, evnt);
8667
- }
8668
8711
  return $xeTable.$nextTick();
8669
8712
  },
8670
8713
  /**
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 = "3.15.54";
3
+ export const version = "3.15.56";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
@@ -134,6 +134,7 @@ VxeUI.setConfig({
134
134
  // filterMethod: null,
135
135
  // destroyOnClose: false,
136
136
  // isEvery: false,
137
+ multiple: true,
137
138
  showIcon: true
138
139
  },
139
140
  aggregateConfig: {
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${"3.15.54"}`;
3
+ const version = `table v${"3.15.56"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -199,9 +199,11 @@ function getTableOns(_vm) {
199
199
  if (proxyConfig) {
200
200
  if (proxyOpts.sort) {
201
201
  ons['sort-change'] = _vm.sortChangeEvent;
202
+ ons['clear-all-sort'] = _vm.clearAllSortEvent;
202
203
  }
203
204
  if (proxyOpts.filter) {
204
205
  ons['filter-change'] = _vm.filterChangeEvent;
206
+ ons['clear-all-filter'] = _vm.clearAllFilterEvent;
205
207
  }
206
208
  }
207
209
  return ons;
@@ -1427,6 +1429,30 @@ var _default = exports.default = {
1427
1429
  $grid: this
1428
1430
  }, params));
1429
1431
  },
1432
+ clearAllSortEvent(params) {
1433
+ const {
1434
+ $table,
1435
+ column,
1436
+ sortList
1437
+ } = params;
1438
+ const isRemote = column && _xeUtils.default.isBoolean(column.remoteSort) ? column.remoteSort : $table.sortOpts.remote;
1439
+ // 如果是服务端排序
1440
+ if (isRemote) {
1441
+ this.sortData = sortList;
1442
+ if (this.proxyConfig) {
1443
+ this.tablePage.currentPage = 1;
1444
+ this.commitProxy('query').then(rest => {
1445
+ this.$emit('proxy-query', Object.assign(Object.assign({}, rest), {
1446
+ $grid: this,
1447
+ $event: params.$event
1448
+ }));
1449
+ });
1450
+ }
1451
+ }
1452
+ this.$emit('clear-all-sort', Object.assign({
1453
+ $grid: this
1454
+ }, params));
1455
+ },
1430
1456
  filterChangeEvent(params) {
1431
1457
  const {
1432
1458
  $table,
@@ -1449,6 +1475,28 @@ var _default = exports.default = {
1449
1475
  $grid: this
1450
1476
  }, params));
1451
1477
  },
1478
+ clearAllFilterEvent(params) {
1479
+ const {
1480
+ $table,
1481
+ filterList
1482
+ } = params;
1483
+ // 如果是服务端过滤
1484
+ if ($table.filterOpts.remote) {
1485
+ this.filterData = filterList;
1486
+ if (this.proxyConfig) {
1487
+ this.tablePage.currentPage = 1;
1488
+ this.commitProxy('query').then(rest => {
1489
+ this.$emit('proxy-query', Object.assign(Object.assign({}, rest), {
1490
+ $grid: this,
1491
+ $event: params.$event
1492
+ }));
1493
+ });
1494
+ }
1495
+ }
1496
+ this.$emit('clear-all-filter', Object.assign({
1497
+ $grid: this
1498
+ }, params));
1499
+ },
1452
1500
  submitEvent(params) {
1453
1501
  const $xeGrid = this;
1454
1502
  const reactData = $xeGrid;
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _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")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,globalEvents,globalMixins,renderEmptyElement}=_ui.VxeUI,methods={},propKeys=Object.keys(_props.default),defaultLayouts=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]];function initPages(e,t){var r=e.tablePage,o=e.pagerConfig,e=e.computePagerOpts;o&&(0,_utils.isEnableConf)(e)&&(t?e[t]&&(r[t]=_xeUtils.default.toNumber(e[t])):({currentPage:o,pageSize:t,total:e}=e,o&&(r.currentPage=o),t&&(r.pageSize=t),e&&(r.pageSize=e)))}function renderDefaultForm(e,r){var o=_ui.VxeUI.getComponent("VxeForm");let s=r.$scopedSlots;var{proxyConfig:i,formConfig:t}=r,a=r.formData,n=r.computeProxyOpts,l=r.computeFormOpts;if((0,_utils.isEnableConf)(t)&&l.items&&l.items.length){let t={};if(!l.inited){l.inited=!0;let t=n.beforeItem;n&&t&&l.items.forEach(e=>{t.call(r,{$grid:r,item:e})})}return l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),[o?e(o,{props:Object.assign({},l,{data:i&&n.form?a:l.data}),on:{submit:r.submitEvent,reset:r.resetEvent,collapse:r.collapseEvent,"submit-invalid":r.submitInvalidEvent},scopedSlots:t}):renderEmptyElement(r)]}return[]}function getFuncSlot(e,t,r){e=e.$scopedSlots,t=t[r];if(t){if(!_xeUtils.default.isString(t))return t;if(e[t])return e[t];(0,_log.errLog)("vxe.error.notSlot",[t])}return null}let getConfigSlot=(e,t)=>{let r=e.$scopedSlots,o={};return _xeUtils.default.objectMap(t,(e,t)=>{e&&(_xeUtils.default.isString(e)?r[e]?o[t]=r[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):o[t]=e)}),o};function getToolbarSlots(e){var t,r,o,s,i=e.$scopedSlots,a=e.computeToolbarOpts.slots,n={};return!i.buttons||a&&"buttons"===a.buttons||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.buttons"]),!i.tools||a&&"tools"===a.tools||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.tools"]),a&&(i=getFuncSlot(e,a,"buttons"),t=getFuncSlot(e,a,"buttonPrefix"),r=getFuncSlot(e,a,"buttonSuffix"),o=getFuncSlot(e,a,"tools"),s=getFuncSlot(e,a,"toolPrefix"),e=getFuncSlot(e,a,"toolSuffix"),i&&(n.buttons=i),t&&(n.buttonPrefix=t),r&&(n.buttonSuffix=r),o&&(n.tools=o),s&&(n.toolPrefix=s),e)&&(n.toolSuffix=e),n}function getTableOns(r){var{$listeners:e,proxyConfig:t,proxyOpts:o}=r;let s={};return _xeUtils.default.each(e,(e,t)=>{s[t]=(...e)=>{r.$emit(t,...e)}}),t&&(o.sort&&(s["sort-change"]=r.sortChangeEvent),o.filter)&&(s["filter-change"]=r.filterChangeEvent),s}function pageChangeEvent(t,e){var r=t.proxyConfig,o=t.tablePage;let{$event:s,currentPage:i,pageSize:a}=e;var n=t.computeProxyOpts;o.currentPage=i,o.pageSize=a,t.dispatchEvent("page-change",e,s),r&&(0,_utils.isEnableConf)(n)&&t.commitProxy("query").then(e=>{t.dispatchEvent("proxy-query",e,s)})}function renderForm(e,t){var r=t.formConfig,o=t.$scopedSlots.form;return!o&&!(0,_utils.isEnableConf)(r)?renderEmptyElement(t):e("div",{key:"form",ref:"refFormWrapper",class:"vxe-grid--form-wrapper"},o?o.call(t,{$grid:t}):renderDefaultForm(e,t))}function renderToolbar(e,t){var r=t.toolbarConfig,o=t.$scopedSlots.toolbar,r=!!(o||(0,_utils.isEnableConf)(r)||toolbar),s=t.computeToolbarOpts;return r?e("div",{key:"toolbar",ref:"refToolbarWrapper",class:"vxe-grid--toolbar-wrapper"},o?o.call(t,{$grid:t}):[e(_toolbar.default,{props:Object.assign({},s,{slots:void 0}),ref:"xToolbar",scopedSlots:getToolbarSlots(t)})]):renderEmptyElement(t)}function renderTop(e,t){var r=t.$scopedSlots.top;return r?e("div",{key:"top",ref:"refTopWrapper",class:"vxe-grid--top-wrapper"},r.call(t,{$grid:t})):renderEmptyElement(t)}function renderTableLeft(e,t){var r=t.$scopedSlots.left;return r?e("div",{class:"vxe-grid--left-wrapper"},r({$grid:t})):renderEmptyElement(t)}function renderTableRight(e,t){var r=t.$scopedSlots.right;return r?e("div",{class:"vxe-grid--right-wrapper"},r({$grid:t})):renderEmptyElement(t)}function renderTable(e,t){var r=t.$scopedSlots;return e("div",{class:"vxe-grid--table-wrapper"},[e("vxe-table",{key:"table",props:t.computeTableProps,on:getTableOns(t),scopedSlots:r,ref:"xTable"})])}function renderBottom(e,t){var r=t.$scopedSlots.bottom;return r?e("div",{key:"bottom",ref:"refBottomWrapper",class:"vxe-grid--bottom-wrapper"},r.call(t,{$grid:t})):renderEmptyElement(t)}function renderPager(e,t){var r=_ui.VxeUI.getComponent("VxePager"),o=t.$scopedSlots,s=t,{proxyConfig:i,pagerConfig:a}=t,n=t.computeProxyOpts,l=t.computePagerOpts,g=o.pager;return a&&(0,_utils.isEnableConf)(l)||o.pager?e("div",{ref:"refPagerWrapper",key:"pager",class:"vxe-grid--pager-wrapper"},g?g.call(t,{$grid:t}):[r?e(r,{ref:"refPager",props:Object.assign(Object.assign({},l),i&&(0,_utils.isEnableConf)(n)?s.tablePage:{}),on:{"page-change"(e){pageChangeEvent(t,e)}},scopedSlots:getConfigSlot(t,l.slots)}):renderEmptyElement(t)]):renderEmptyElement(t)}function renderChildLayout(t,r,e){let o=[];return e.forEach(e=>{switch(e){case"Form":o.push(renderForm(t,r));break;case"Toolbar":o.push(renderToolbar(t,r));break;case"Top":o.push(renderTop(t,r));break;case"Table":o.push(t("div",{key:"table",class:"vxe-grid--table-container"},[renderTableLeft(t,r),renderTable(t,r),renderTableRight(t,r)]));break;case"Bottom":o.push(renderBottom(t,r));break;case"Pager":o.push(renderPager(t,r));break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),o}function renderLayout(e,t){var r=t.$scopedSlots,{headKeys:o,bodyKeys:s,footKeys:i}=t.computeCurrLayoutConf,a=r.asideLeft||r["aside-left"],r=r.asideRight||r["aside-right"];return[e("div",{class:"vxe-grid--layout-header-wrapper"},renderChildLayout(e,t,o)),e("div",{class:"vxe-grid--layout-body-wrapper"},[a?e("div",{class:"vxe-grid--layout-aside-left-wrapper"},a({})):renderEmptyElement(t),e("div",{class:"vxe-grid--layout-body-content-wrapper"},renderChildLayout(e,t,s)),r?e("div",{class:"vxe-grid--layout-aside-right-wrapper"},r({})):renderEmptyElement(t)]),e("div",{class:"vxe-grid--layout-footer-wrapper"},renderChildLayout(e,t,i))]}Object.keys(_table.default.methods).forEach(t=>{methods[t]=function(...e){return this.$refs.xTable&&this.$refs.xTable[t](...e)}});var _default=exports.default={name:"VxeGrid",mixins:[globalMixins.sizeMixin],props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:[Boolean,Object],proxyConfig:Object,toolbar:[Boolean,Object],toolbarConfig:[Boolean,Object],formConfig:[Boolean,Object],zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),provide(){return{$xeGrid:this}},data(){var e;return{tableLoading:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(e=getConfig().pager)?void 0:e.pageSize)||10,currentPage:1}}},computed:{isRespMsg(){var e=this.proxyOpts;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg},isActiveMsg(){return this.proxyOpts.showActiveMsg},proxyOpts(){return this.computeProxyOpts},computeProxyOpts(){return _xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),this.proxyConfig)},pagerOpts(){return this.computePagerOpts},computePagerOpts(){return Object.assign({},getConfig().grid.pagerConfig,this.pagerConfig)},formOpts(){return this.computeFormOpts},computeFormOpts(){return Object.assign({},getConfig().grid.formConfig,this.formConfig)},toolbarOpts(){return this.computeToolbarOpts},computeToolbarOpts(){return Object.assign({},getConfig().grid.toolbarConfig,this.toolbarConfig||this.toolbar)},zoomOpts(){return this.computeZoomOpts},computeZoomOpts(){return Object.assign({},getConfig().grid.zoomConfig,this.zoomConfig)},computeStyles(){var{height:e,maxHeight:t}=this,{isZMax:r,tZindex:o}=this,s={};return r?s.zIndex=o:(e&&(s.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(s.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),s},tableExtendProps(){let t={};return propKeys.forEach(e=>{t[e]=this[e]}),t},computeTableProps(){var{isZMax:e,seqConfig:t,pagerConfig:r,loading:o,editConfig:s,proxyConfig:i,proxyOpts:a,tableExtendProps:n,tableLoading:l,tablePage:g}=this,d=Object.assign({},n);return e&&(n.maxHeight?d.maxHeight="100%":d.height="100%"),i&&(d.loading=o||l,a.seq)&&(0,_utils.isEnableConf)(r)&&(d.seqConfig=Object.assign({},t,{startIndex:(g.currentPage-1)*g.pageSize})),s&&(d.editConfig=Object.assign({},s)),d},tableProps(){return this.computeTableProps},computeCurrLayoutConf(){var e=this.layouts;let t=[],r=[],o=[],s=[];return(t=e&&e.length?e:getConfig().grid.layouts||defaultLayouts).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],s=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:s}},computeCustomCurrentPageFlag(){return this.computePagerOpts.currentPage},computeCustomPageSizeFlag(){return this.computePagerOpts.pageSize},computeCustomTotalFlag(){return this.computePagerOpts.total}},watch:{columns(e){this.$nextTick(()=>this.loadColumn(e))},toolbar(e){e&&this.initToolbar()},toolbarConfig(e){e&&this.initToolbar()},proxyConfig(){this.initProxy()},computeCustomCurrentPageFlag(){initPages(this,"currentPage")},computeCustomPageSizeFlag(){initPages(this,"pageSize")},computeCustomTotalFlag(){initPages(this,"total")}},created(){let e=this,t=(this.toolbar&&(0,_log.warnLog)("vxe.error.delProp",["grid.toolbar","grid.toolbar-config"]),this.toolbarConfig&&!_xeUtils.default.isObject(this.toolbarConfig)&&(0,_log.warnLog)("vxe.error.errProp",["grid.toolbar-config="+this.toolbarConfig,"grid.toolbar-config={}"]),_ui.VxeUI.getComponent("VxeForm")),r=_ui.VxeUI.getComponent("VxePager");this.$nextTick(()=>{e.formConfig&&!t&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),e.pagerConfig&&!r&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])}),initPages(this),globalEvents.on(this,"keydown",this.handleGlobalKeydownEvent)},mounted(){this.columns&&this.columns.length&&this.loadColumn(this.columns),this.initToolbar(),this.initProxy()},destroyed(){globalEvents.off(this,"keydown")},render(e){var t=this,r=t.computeSize;return e("div",{ref:"refElem",class:["vxe-grid",{["size--"+r]:r,"is--animat":!!this.animat,"is--round":this.round,"is--maximize":t.isZMax,"is--loading":t.loading||t.tableLoading}],style:t.computeStyles},renderLayout(e,t))},methods:Object.assign(Object.assign({},methods),{callSlot(e,t,r,o){var s=this.$scopedSlots;return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e.call(this,t,r,o)):[]},getEl(){return this.$refs.refElem},getExcludeHeight(){var e,t,r,o,s,i=this,a=i.isZMax,n=i.$refs.refElem;return n?(e=i.$refs.refFormWrapper,t=i.$refs.refToolbarWrapper,r=i.$refs.refTopWrapper,o=i.$refs.refBottomWrapper,i=i.$refs.refPagerWrapper,s=n.parentElement,(!a&&s?(0,_dom.getPaddingTopBottomSize)(s):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(i)):0},getParentHeight(){var e=this.$refs.refElem;return e?(e=e.parentElement,(this.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-this.getExcludeHeight()):0},initToolbar(){this.$nextTick(()=>{var{xTable:e,xToolbar:t}=this.$refs;e&&t&&e.connect(t)})},initProxy(){var{proxyInited:e,proxyConfig:t,proxyOpts:r,formConfig:o,formOpts:i}=this;if(t){if((0,_utils.isEnableConf)(o)&&r.form&&i.items){let s={};i.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)),s[r]=e}}),this.formData=s}e||!1===r.autoLoad||(this.proxyInited=!0,this.$nextTick().then(()=>this.commitProxy("_init")).then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isInited:!0,$grid:this,$event:new Event("init")}))}))}},handleGlobalKeydownEvent(e){27===e.keyCode&&this.isZMax&&!1!==this.zoomOpts.escRestore&&this.triggerZoomEvent(e)},commitProxy(t,...u){let{$refs:e,toolbar:r,toolbarConfig:o,toolbarOpts:s,proxyOpts:i,tablePage:n,pagerConfig:l,editRules:c,isRespMsg:p,isActiveMsg:m,validConfig:f,pagerOpts:g}=this,{beforeQuery:d,afterQuery:h,beforeDelete:b,afterDelete:x,beforeSave:v,afterSave:y,ajax:_={}}=i,C=i.response||i.props||{},O=e.xTable;var a,$=this.getFormData();let P,E;_xeUtils.default.isString(t)?(a=o||r?_xeUtils.default.findTree(s.buttons,e=>e.code===t,{children:"dropdowns"}):null,E=t,P=a?a.item:null):(P=t,E=P.code);var S=P?P.params:null;switch(E){case"insert":return O.insert({});case"insert_edit":return O.insert({}).then(({row:e})=>O.setEditRow(e,!0));case"insert_actived":return O.insert({}).then(({row:e})=>O.setEditRow(e,!0));case"mark_cancel":this.triggerPendingEvent(E);break;case"remove":return this.handleDeleteRow(E,"vxe.grid.removeSelectRecord",()=>this.removeCheckboxRow());case"import":O.importData(S);break;case"open_import":O.openImport(S);break;case"export":O.exportData(S);break;case"open_export":O.openExport(S);break;case"reset_custom":O.resetCustom(!0);break;case"_init":case"reload":case"query":{var T=_.query;let a=_.querySuccess,o=_.queryError;if(T){var j="_init"===E,U="reload"===E;if(!j&&this.tableLoading)return this.$nextTick();let t=[],r=[],e={};if(l&&((j||U)&&(n.currentPage=1),(0,_utils.isEnableConf)(l))&&(e=Object.assign({},n)),j){let e=null;O&&(R=O.sortOpts,e=R.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),O&&(r=O.getCheckedFilters())}else O&&(U?O.clearAll():(t=O.getSortColumns(),r=O.getCheckedFilters()));let s={code:E,button:P,isInited:j,isReload:U,$grid:this,page:e,sort:t.length?t[0]:{},sorts:t,filters:r,form:$,options:T},i=(this.sortData=t,this.filterData=r,this.tableLoading=!0,[s].concat(u));return Promise.resolve((d||T)(...i)).then(e=>{let t=[];var r,o;return this.tableLoading=!1,e&&(l&&(0,_utils.isEnableConf)(g)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:this}):_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:this}):_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:this}):_xeUtils.default.get(e,o):e)||[])),O?O.loadData(t):O.$nextTick(()=>{O&&O.loadData(t)}),h&&h(...i),a&&a(Object.assign(Object.assign({},s),{response:e})),{status:!0}}).catch(e=>(this.tableLoading=!1,o&&o(Object.assign(Object.assign({},s),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let s=_.delete,i=_.deleteSuccess,a=_.deleteError;if(s){let e=O.getCheckboxRecords(),t=e.filter(e=>!O.isInsertByRow(e));var R={removeRecords:t};let r={$grid:this,code:E,button:P,body:R,form:$,options:s},o=[r].concat(u);if(e.length)return this.handleDeleteRow(E,"vxe.grid.deleteSelectRecord",()=>t.length?(this.tableLoading=!0,Promise.resolve((b||s)(...o)).then(e=>(this.tableLoading=!1,O.setPendingRow(t,!1),p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:this.getRespMsg(e,"vxe.grid.delSuccess"),status:"success"})),x?x(...o):this.commitProxy("query"),i&&i(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(this.tableLoading=!1,p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:E,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):O.remove(e));m&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:E,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let l=_.save,g=_.saveSuccess,d=_.saveError;if(l){let t=this.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:s,pendingRecords:i}=t,a={$grid:this,code:E,button:P,body:t,form:$,options:l},n=[a].concat(u),e=(r.length&&(t.pendingRecords=i.filter(e=>-1===r.indexOf(e))),i.length&&(t.insertRecords=r.filter(e=>-1===i.indexOf(e))),Promise.resolve());return(e=c?this[f&&"full"===f.msgMode?"fullValidate":"validate"](t.insertRecords.concat(s)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||s.length||t.pendingRecords.length?(this.tableLoading=!0,Promise.resolve((v||l)(...n)).then(e=>(this.tableLoading=!1,O.clearPendingRow(),p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:this.getRespMsg(e,"vxe.grid.saveSuccess"),status:"success"})),y?y(...n):this.commitProxy("query"),g&&g(Object.assign(Object.assign({},a),{response:e})),{status:!0})).catch(e=>(this.tableLoading=!1,p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:E,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),d&&d(Object.assign(Object.assign({},a),{response:e})),{status:!1}))):void(m&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:E,content:getI18n("vxe.grid.dataUnchanged"),status:"info"})))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:j=commands.get(E);j&&(j.commandMethod?j.commandMethod({code:E,button:P,$grid:this,$table:O},...u):(0,_log.errLog)("vxe.error.notCommands",[E]))}return this.$nextTick()},getRespMsg(e,t){var r=this.proxyOpts,r=r.response||r.props||{};let o;return(o=e&&r.message?_xeUtils.default.get(e,r.message):o)||getI18n(t)},handleDeleteRow(e,t,r){var o=this.getCheckboxRecords();if(this.isActiveMsg){if(o.length)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()});_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else o.length&&r();return Promise.resolve()},getFormData(){var{proxyConfig:e,proxyOpts:t,formOpts:r,formData:o}=this;return e&&(0,_utils.isEnableConf)(t)&&t.form?o:r.data},getFormItems(e){var{formConfig:t,formOpts:r}=this;let o=[];return _xeUtils.default.eachTree((0,_utils.isEnableConf)(t)&&r.items?r.items:[],e=>{o.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?o:o[e]},triggerToolbarCommitEvent(e,t){let r=e.code;return this.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&this.$emit("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r,$grid:this,$event:t}))})},triggerToolbarBtnEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.$emit("toolbar-button-click",{code:e.code,button:e,$grid:this,$event:t})},triggerToolbarTolEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.$emit("toolbar-tool-click",{code:e.code,tool:e,$grid:this,$event:t})},triggerPendingEvent(e){var t=this.isActiveMsg,r=this.getCheckboxRecords();r.length?(this.togglePendingRow(r),this.clearCheckboxRow()):t&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))},sortChangeEvent(t){var{$table:e,column:r,sortList:o}=t;(_xeUtils.default.isBoolean(r.remoteSort)?r.remoteSort:e.sortOpts.remote)&&(this.sortData=o,this.proxyConfig)&&(this.tablePage.currentPage=1,this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})),this.$emit("sort-change",Object.assign({$grid:this},t))},filterChangeEvent(t){var{$table:e,filterList:r}=t;e.filterOpts.remote&&(this.filterData=r,this.proxyConfig)&&(this.tablePage.currentPage=1,this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})),this.$emit("filter-change",Object.assign({$grid:this},t))},submitEvent(t){var e=this.proxyConfig;this.tableLoading||(e&&this.commitProxy("reload").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isReload:!0,$grid:this,$event:t.$event}))}),this.$emit("form-submit",Object.assign({$grid:this},t)))},resetEvent(t){var e=this.proxyConfig,r=this.$refs.xTable;e&&(r.clearScroll(),this.commitProxy("reload").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isReload:!0,$grid:this,$event:t.$event}))})),this.$emit("form-reset",Object.assign({$grid:this},t))},submitInvalidEvent(e){this.$emit("form-submit-invalid",Object.assign({$grid:this},e))},collapseEvent(e){this.$nextTick(()=>this.recalculate(!0)),this.$emit("form-toggle-collapse",Object.assign({$grid:this},e)),this.$emit("form-collapse",Object.assign({$grid:this},e))},triggerZoomEvent(e){this.zoom(),this.$emit("zoom",{$grid:this,type:this.isZMax?"max":"revert",$event:e})},zoom(){return this[this.isZMax?"revert":"maximize"]()},isMaximized(){return this.isZMax},maximize(){return this.handleZoom(!0)},revert(){return this.handleZoom()},handleZoom(e){var t=this.isZMax;return(e?!t:t)&&(this.isZMax=!t,this.tZindex<(0,_utils.getLastZIndex)())&&(this.tZindex=(0,_utils.nextZIndex)()),this.$nextTick().then(()=>this.recalculate(!0)).then(()=>(setTimeout(()=>this.recalculate(!0),15),this.isZMax))},getProxyInfo(){var e=this.$refs.xTable,{sortData:t,proxyConfig:r}=this;return r?{data:e?e.getFullData():[],filter:this.filterData,form:this.getFormData(),sort:t.length?t[0]:{},sorts:t,pager:this.tablePage,pendingRecords:e?e.getPendingRecords():[]}:null},loadColumn(e){var t=this.$refs.xTable;let r=this.$scopedSlots;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||r[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t.loadColumn(e)},reloadColumn(e){return this.clearAll(),this.loadColumn(e)}})};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _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")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,globalEvents,globalMixins,renderEmptyElement}=_ui.VxeUI,methods={},propKeys=Object.keys(_props.default),defaultLayouts=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]];function initPages(e,t){var r=e.tablePage,o=e.pagerConfig,e=e.computePagerOpts;o&&(0,_utils.isEnableConf)(e)&&(t?e[t]&&(r[t]=_xeUtils.default.toNumber(e[t])):({currentPage:o,pageSize:t,total:e}=e,o&&(r.currentPage=o),t&&(r.pageSize=t),e&&(r.pageSize=e)))}function renderDefaultForm(e,r){var o=_ui.VxeUI.getComponent("VxeForm");let i=r.$scopedSlots;var{proxyConfig:s,formConfig:t}=r,a=r.formData,n=r.computeProxyOpts,l=r.computeFormOpts;if((0,_utils.isEnableConf)(t)&&l.items&&l.items.length){let t={};if(!l.inited){l.inited=!0;let t=n.beforeItem;n&&t&&l.items.forEach(e=>{t.call(r,{$grid:r,item:e})})}return l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]&&(t[e]=i[e])})}),[o?e(o,{props:Object.assign({},l,{data:s&&n.form?a:l.data}),on:{submit:r.submitEvent,reset:r.resetEvent,collapse:r.collapseEvent,"submit-invalid":r.submitInvalidEvent},scopedSlots:t}):renderEmptyElement(r)]}return[]}function getFuncSlot(e,t,r){e=e.$scopedSlots,t=t[r];if(t){if(!_xeUtils.default.isString(t))return t;if(e[t])return e[t];(0,_log.errLog)("vxe.error.notSlot",[t])}return null}let getConfigSlot=(e,t)=>{let r=e.$scopedSlots,o={};return _xeUtils.default.objectMap(t,(e,t)=>{e&&(_xeUtils.default.isString(e)?r[e]?o[t]=r[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):o[t]=e)}),o};function getToolbarSlots(e){var t,r,o,i,s=e.$scopedSlots,a=e.computeToolbarOpts.slots,n={};return!s.buttons||a&&"buttons"===a.buttons||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.buttons"]),!s.tools||a&&"tools"===a.tools||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.tools"]),a&&(s=getFuncSlot(e,a,"buttons"),t=getFuncSlot(e,a,"buttonPrefix"),r=getFuncSlot(e,a,"buttonSuffix"),o=getFuncSlot(e,a,"tools"),i=getFuncSlot(e,a,"toolPrefix"),e=getFuncSlot(e,a,"toolSuffix"),s&&(n.buttons=s),t&&(n.buttonPrefix=t),r&&(n.buttonSuffix=r),o&&(n.tools=o),i&&(n.toolPrefix=i),e)&&(n.toolSuffix=e),n}function getTableOns(r){var{$listeners:e,proxyConfig:t,proxyOpts:o}=r;let i={};return _xeUtils.default.each(e,(e,t)=>{i[t]=(...e)=>{r.$emit(t,...e)}}),t&&(o.sort&&(i["sort-change"]=r.sortChangeEvent,i["clear-all-sort"]=r.clearAllSortEvent),o.filter)&&(i["filter-change"]=r.filterChangeEvent,i["clear-all-filter"]=r.clearAllFilterEvent),i}function pageChangeEvent(t,e){var r=t.proxyConfig,o=t.tablePage;let{$event:i,currentPage:s,pageSize:a}=e;var n=t.computeProxyOpts;o.currentPage=s,o.pageSize=a,t.dispatchEvent("page-change",e,i),r&&(0,_utils.isEnableConf)(n)&&t.commitProxy("query").then(e=>{t.dispatchEvent("proxy-query",e,i)})}function renderForm(e,t){var r=t.formConfig,o=t.$scopedSlots.form;return!o&&!(0,_utils.isEnableConf)(r)?renderEmptyElement(t):e("div",{key:"form",ref:"refFormWrapper",class:"vxe-grid--form-wrapper"},o?o.call(t,{$grid:t}):renderDefaultForm(e,t))}function renderToolbar(e,t){var r=t.toolbarConfig,o=t.$scopedSlots.toolbar,r=!!(o||(0,_utils.isEnableConf)(r)||toolbar),i=t.computeToolbarOpts;return r?e("div",{key:"toolbar",ref:"refToolbarWrapper",class:"vxe-grid--toolbar-wrapper"},o?o.call(t,{$grid:t}):[e(_toolbar.default,{props:Object.assign({},i,{slots:void 0}),ref:"xToolbar",scopedSlots:getToolbarSlots(t)})]):renderEmptyElement(t)}function renderTop(e,t){var r=t.$scopedSlots.top;return r?e("div",{key:"top",ref:"refTopWrapper",class:"vxe-grid--top-wrapper"},r.call(t,{$grid:t})):renderEmptyElement(t)}function renderTableLeft(e,t){var r=t.$scopedSlots.left;return r?e("div",{class:"vxe-grid--left-wrapper"},r({$grid:t})):renderEmptyElement(t)}function renderTableRight(e,t){var r=t.$scopedSlots.right;return r?e("div",{class:"vxe-grid--right-wrapper"},r({$grid:t})):renderEmptyElement(t)}function renderTable(e,t){var r=t.$scopedSlots;return e("div",{class:"vxe-grid--table-wrapper"},[e("vxe-table",{key:"table",props:t.computeTableProps,on:getTableOns(t),scopedSlots:r,ref:"xTable"})])}function renderBottom(e,t){var r=t.$scopedSlots.bottom;return r?e("div",{key:"bottom",ref:"refBottomWrapper",class:"vxe-grid--bottom-wrapper"},r.call(t,{$grid:t})):renderEmptyElement(t)}function renderPager(e,t){var r=_ui.VxeUI.getComponent("VxePager"),o=t.$scopedSlots,i=t,{proxyConfig:s,pagerConfig:a}=t,n=t.computeProxyOpts,l=t.computePagerOpts,g=o.pager;return a&&(0,_utils.isEnableConf)(l)||o.pager?e("div",{ref:"refPagerWrapper",key:"pager",class:"vxe-grid--pager-wrapper"},g?g.call(t,{$grid:t}):[r?e(r,{ref:"refPager",props:Object.assign(Object.assign({},l),s&&(0,_utils.isEnableConf)(n)?i.tablePage:{}),on:{"page-change"(e){pageChangeEvent(t,e)}},scopedSlots:getConfigSlot(t,l.slots)}):renderEmptyElement(t)]):renderEmptyElement(t)}function renderChildLayout(t,r,e){let o=[];return e.forEach(e=>{switch(e){case"Form":o.push(renderForm(t,r));break;case"Toolbar":o.push(renderToolbar(t,r));break;case"Top":o.push(renderTop(t,r));break;case"Table":o.push(t("div",{key:"table",class:"vxe-grid--table-container"},[renderTableLeft(t,r),renderTable(t,r),renderTableRight(t,r)]));break;case"Bottom":o.push(renderBottom(t,r));break;case"Pager":o.push(renderPager(t,r));break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),o}function renderLayout(e,t){var r=t.$scopedSlots,{headKeys:o,bodyKeys:i,footKeys:s}=t.computeCurrLayoutConf,a=r.asideLeft||r["aside-left"],r=r.asideRight||r["aside-right"];return[e("div",{class:"vxe-grid--layout-header-wrapper"},renderChildLayout(e,t,o)),e("div",{class:"vxe-grid--layout-body-wrapper"},[a?e("div",{class:"vxe-grid--layout-aside-left-wrapper"},a({})):renderEmptyElement(t),e("div",{class:"vxe-grid--layout-body-content-wrapper"},renderChildLayout(e,t,i)),r?e("div",{class:"vxe-grid--layout-aside-right-wrapper"},r({})):renderEmptyElement(t)]),e("div",{class:"vxe-grid--layout-footer-wrapper"},renderChildLayout(e,t,s))]}Object.keys(_table.default.methods).forEach(t=>{methods[t]=function(...e){return this.$refs.xTable&&this.$refs.xTable[t](...e)}});var _default=exports.default={name:"VxeGrid",mixins:[globalMixins.sizeMixin],props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:[Boolean,Object],proxyConfig:Object,toolbar:[Boolean,Object],toolbarConfig:[Boolean,Object],formConfig:[Boolean,Object],zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),provide(){return{$xeGrid:this}},data(){var e;return{tableLoading:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(e=getConfig().pager)?void 0:e.pageSize)||10,currentPage:1}}},computed:{isRespMsg(){var e=this.proxyOpts;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg},isActiveMsg(){return this.proxyOpts.showActiveMsg},proxyOpts(){return this.computeProxyOpts},computeProxyOpts(){return _xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),this.proxyConfig)},pagerOpts(){return this.computePagerOpts},computePagerOpts(){return Object.assign({},getConfig().grid.pagerConfig,this.pagerConfig)},formOpts(){return this.computeFormOpts},computeFormOpts(){return Object.assign({},getConfig().grid.formConfig,this.formConfig)},toolbarOpts(){return this.computeToolbarOpts},computeToolbarOpts(){return Object.assign({},getConfig().grid.toolbarConfig,this.toolbarConfig||this.toolbar)},zoomOpts(){return this.computeZoomOpts},computeZoomOpts(){return Object.assign({},getConfig().grid.zoomConfig,this.zoomConfig)},computeStyles(){var{height:e,maxHeight:t}=this,{isZMax:r,tZindex:o}=this,i={};return r?i.zIndex=o:(e&&(i.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(i.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),i},tableExtendProps(){let t={};return propKeys.forEach(e=>{t[e]=this[e]}),t},computeTableProps(){var{isZMax:e,seqConfig:t,pagerConfig:r,loading:o,editConfig:i,proxyConfig:s,proxyOpts:a,tableExtendProps:n,tableLoading:l,tablePage:g}=this,d=Object.assign({},n);return e&&(n.maxHeight?d.maxHeight="100%":d.height="100%"),s&&(d.loading=o||l,a.seq)&&(0,_utils.isEnableConf)(r)&&(d.seqConfig=Object.assign({},t,{startIndex:(g.currentPage-1)*g.pageSize})),i&&(d.editConfig=Object.assign({},i)),d},tableProps(){return this.computeTableProps},computeCurrLayoutConf(){var e=this.layouts;let t=[],r=[],o=[],i=[];return(t=e&&e.length?e:getConfig().grid.layouts||defaultLayouts).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],i=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:i}},computeCustomCurrentPageFlag(){return this.computePagerOpts.currentPage},computeCustomPageSizeFlag(){return this.computePagerOpts.pageSize},computeCustomTotalFlag(){return this.computePagerOpts.total}},watch:{columns(e){this.$nextTick(()=>this.loadColumn(e))},toolbar(e){e&&this.initToolbar()},toolbarConfig(e){e&&this.initToolbar()},proxyConfig(){this.initProxy()},computeCustomCurrentPageFlag(){initPages(this,"currentPage")},computeCustomPageSizeFlag(){initPages(this,"pageSize")},computeCustomTotalFlag(){initPages(this,"total")}},created(){let e=this,t=(this.toolbar&&(0,_log.warnLog)("vxe.error.delProp",["grid.toolbar","grid.toolbar-config"]),this.toolbarConfig&&!_xeUtils.default.isObject(this.toolbarConfig)&&(0,_log.warnLog)("vxe.error.errProp",["grid.toolbar-config="+this.toolbarConfig,"grid.toolbar-config={}"]),_ui.VxeUI.getComponent("VxeForm")),r=_ui.VxeUI.getComponent("VxePager");this.$nextTick(()=>{e.formConfig&&!t&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),e.pagerConfig&&!r&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])}),initPages(this),globalEvents.on(this,"keydown",this.handleGlobalKeydownEvent)},mounted(){this.columns&&this.columns.length&&this.loadColumn(this.columns),this.initToolbar(),this.initProxy()},destroyed(){globalEvents.off(this,"keydown")},render(e){var t=this,r=t.computeSize;return e("div",{ref:"refElem",class:["vxe-grid",{["size--"+r]:r,"is--animat":!!this.animat,"is--round":this.round,"is--maximize":t.isZMax,"is--loading":t.loading||t.tableLoading}],style:t.computeStyles},renderLayout(e,t))},methods:Object.assign(Object.assign({},methods),{callSlot(e,t,r,o){var i=this.$scopedSlots;return e&&(_xeUtils.default.isString(e)&&(e=i[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e.call(this,t,r,o)):[]},getEl(){return this.$refs.refElem},getExcludeHeight(){var e,t,r,o,i,s=this,a=s.isZMax,n=s.$refs.refElem;return n?(e=s.$refs.refFormWrapper,t=s.$refs.refToolbarWrapper,r=s.$refs.refTopWrapper,o=s.$refs.refBottomWrapper,s=s.$refs.refPagerWrapper,i=n.parentElement,(!a&&i?(0,_dom.getPaddingTopBottomSize)(i):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(s)):0},getParentHeight(){var e=this.$refs.refElem;return e?(e=e.parentElement,(this.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-this.getExcludeHeight()):0},initToolbar(){this.$nextTick(()=>{var{xTable:e,xToolbar:t}=this.$refs;e&&t&&e.connect(t)})},initProxy(){var{proxyInited:e,proxyConfig:t,proxyOpts:r,formConfig:o,formOpts:s}=this;if(t){if((0,_utils.isEnableConf)(o)&&r.form&&s.items){let i={};s.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)),i[r]=e}}),this.formData=i}e||!1===r.autoLoad||(this.proxyInited=!0,this.$nextTick().then(()=>this.commitProxy("_init")).then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isInited:!0,$grid:this,$event:new Event("init")}))}))}},handleGlobalKeydownEvent(e){27===e.keyCode&&this.isZMax&&!1!==this.zoomOpts.escRestore&&this.triggerZoomEvent(e)},commitProxy(t,...u){let{$refs:e,toolbar:r,toolbarConfig:o,toolbarOpts:i,proxyOpts:s,tablePage:n,pagerConfig:l,editRules:c,isRespMsg:p,isActiveMsg:m,validConfig:h,pagerOpts:g}=this,{beforeQuery:d,afterQuery:f,beforeDelete:b,afterDelete:x,beforeSave:v,afterSave:y,ajax:_={}}=s,C=s.response||s.props||{},O=e.xTable;var a,$=this.getFormData();let P,E;_xeUtils.default.isString(t)?(a=o||r?_xeUtils.default.findTree(i.buttons,e=>e.code===t,{children:"dropdowns"}):null,E=t,P=a?a.item:null):(P=t,E=P.code);var S=P?P.params:null;switch(E){case"insert":return O.insert({});case"insert_edit":return O.insert({}).then(({row:e})=>O.setEditRow(e,!0));case"insert_actived":return O.insert({}).then(({row:e})=>O.setEditRow(e,!0));case"mark_cancel":this.triggerPendingEvent(E);break;case"remove":return this.handleDeleteRow(E,"vxe.grid.removeSelectRecord",()=>this.removeCheckboxRow());case"import":O.importData(S);break;case"open_import":O.openImport(S);break;case"export":O.exportData(S);break;case"open_export":O.openExport(S);break;case"reset_custom":O.resetCustom(!0);break;case"_init":case"reload":case"query":{var j=_.query;let a=_.querySuccess,o=_.queryError;if(j){var T="_init"===E,U="reload"===E;if(!T&&this.tableLoading)return this.$nextTick();let t=[],r=[],e={};if(l&&((T||U)&&(n.currentPage=1),(0,_utils.isEnableConf)(l))&&(e=Object.assign({},n)),T){let e=null;O&&(L=O.sortOpts,e=L.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),O&&(r=O.getCheckedFilters())}else O&&(U?O.clearAll():(t=O.getSortColumns(),r=O.getCheckedFilters()));let i={code:E,button:P,isInited:T,isReload:U,$grid:this,page:e,sort:t.length?t[0]:{},sorts:t,filters:r,form:$,options:j},s=(this.sortData=t,this.filterData=r,this.tableLoading=!0,[i].concat(u));return Promise.resolve((d||j)(...s)).then(e=>{let t=[];var r,o;return this.tableLoading=!1,e&&(l&&(0,_utils.isEnableConf)(g)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:this}):_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:this}):_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:this}):_xeUtils.default.get(e,o):e)||[])),O?O.loadData(t):O.$nextTick(()=>{O&&O.loadData(t)}),f&&f(...s),a&&a(Object.assign(Object.assign({},i),{response:e})),{status:!0}}).catch(e=>(this.tableLoading=!1,o&&o(Object.assign(Object.assign({},i),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let i=_.delete,s=_.deleteSuccess,a=_.deleteError;if(i){let e=O.getCheckboxRecords(),t=e.filter(e=>!O.isInsertByRow(e));var L={removeRecords:t};let r={$grid:this,code:E,button:P,body:L,form:$,options:i},o=[r].concat(u);if(e.length)return this.handleDeleteRow(E,"vxe.grid.deleteSelectRecord",()=>t.length?(this.tableLoading=!0,Promise.resolve((b||i)(...o)).then(e=>(this.tableLoading=!1,O.setPendingRow(t,!1),p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:this.getRespMsg(e,"vxe.grid.delSuccess"),status:"success"})),x?x(...o):this.commitProxy("query"),s&&s(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(this.tableLoading=!1,p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:E,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):O.remove(e));m&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:E,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let l=_.save,g=_.saveSuccess,d=_.saveError;if(l){let t=this.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:i,pendingRecords:s}=t,a={$grid:this,code:E,button:P,body:t,form:$,options:l},n=[a].concat(u),e=(r.length&&(t.pendingRecords=s.filter(e=>-1===r.indexOf(e))),s.length&&(t.insertRecords=r.filter(e=>-1===s.indexOf(e))),Promise.resolve());return(e=c?this[h&&"full"===h.msgMode?"fullValidate":"validate"](t.insertRecords.concat(i)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||i.length||t.pendingRecords.length?(this.tableLoading=!0,Promise.resolve((v||l)(...n)).then(e=>(this.tableLoading=!1,O.clearPendingRow(),p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:this.getRespMsg(e,"vxe.grid.saveSuccess"),status:"success"})),y?y(...n):this.commitProxy("query"),g&&g(Object.assign(Object.assign({},a),{response:e})),{status:!0})).catch(e=>(this.tableLoading=!1,p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:E,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),d&&d(Object.assign(Object.assign({},a),{response:e})),{status:!1}))):void(m&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:E,content:getI18n("vxe.grid.dataUnchanged"),status:"info"})))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:T=commands.get(E);T&&(T.commandMethod?T.commandMethod({code:E,button:P,$grid:this,$table:O},...u):(0,_log.errLog)("vxe.error.notCommands",[E]))}return this.$nextTick()},getRespMsg(e,t){var r=this.proxyOpts,r=r.response||r.props||{};let o;return(o=e&&r.message?_xeUtils.default.get(e,r.message):o)||getI18n(t)},handleDeleteRow(e,t,r){var o=this.getCheckboxRecords();if(this.isActiveMsg){if(o.length)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()});_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else o.length&&r();return Promise.resolve()},getFormData(){var{proxyConfig:e,proxyOpts:t,formOpts:r,formData:o}=this;return e&&(0,_utils.isEnableConf)(t)&&t.form?o:r.data},getFormItems(e){var{formConfig:t,formOpts:r}=this;let o=[];return _xeUtils.default.eachTree((0,_utils.isEnableConf)(t)&&r.items?r.items:[],e=>{o.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?o:o[e]},triggerToolbarCommitEvent(e,t){let r=e.code;return this.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&this.$emit("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r,$grid:this,$event:t}))})},triggerToolbarBtnEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.$emit("toolbar-button-click",{code:e.code,button:e,$grid:this,$event:t})},triggerToolbarTolEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.$emit("toolbar-tool-click",{code:e.code,tool:e,$grid:this,$event:t})},triggerPendingEvent(e){var t=this.isActiveMsg,r=this.getCheckboxRecords();r.length?(this.togglePendingRow(r),this.clearCheckboxRow()):t&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))},sortChangeEvent(t){var{$table:e,column:r,sortList:o}=t;(_xeUtils.default.isBoolean(r.remoteSort)?r.remoteSort:e.sortOpts.remote)&&(this.sortData=o,this.proxyConfig)&&(this.tablePage.currentPage=1,this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})),this.$emit("sort-change",Object.assign({$grid:this},t))},clearAllSortEvent(t){var{$table:e,column:r,sortList:o}=t;(r&&_xeUtils.default.isBoolean(r.remoteSort)?r.remoteSort:e.sortOpts.remote)&&(this.sortData=o,this.proxyConfig)&&(this.tablePage.currentPage=1,this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})),this.$emit("clear-all-sort",Object.assign({$grid:this},t))},filterChangeEvent(t){var{$table:e,filterList:r}=t;e.filterOpts.remote&&(this.filterData=r,this.proxyConfig)&&(this.tablePage.currentPage=1,this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})),this.$emit("filter-change",Object.assign({$grid:this},t))},clearAllFilterEvent(t){var{$table:e,filterList:r}=t;e.filterOpts.remote&&(this.filterData=r,this.proxyConfig)&&(this.tablePage.currentPage=1,this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})),this.$emit("clear-all-filter",Object.assign({$grid:this},t))},submitEvent(t){var e=this.proxyConfig;this.tableLoading||(e&&this.commitProxy("reload").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isReload:!0,$grid:this,$event:t.$event}))}),this.$emit("form-submit",Object.assign({$grid:this},t)))},resetEvent(t){var e=this.proxyConfig,r=this.$refs.xTable;e&&(r.clearScroll(),this.commitProxy("reload").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isReload:!0,$grid:this,$event:t.$event}))})),this.$emit("form-reset",Object.assign({$grid:this},t))},submitInvalidEvent(e){this.$emit("form-submit-invalid",Object.assign({$grid:this},e))},collapseEvent(e){this.$nextTick(()=>this.recalculate(!0)),this.$emit("form-toggle-collapse",Object.assign({$grid:this},e)),this.$emit("form-collapse",Object.assign({$grid:this},e))},triggerZoomEvent(e){this.zoom(),this.$emit("zoom",{$grid:this,type:this.isZMax?"max":"revert",$event:e})},zoom(){return this[this.isZMax?"revert":"maximize"]()},isMaximized(){return this.isZMax},maximize(){return this.handleZoom(!0)},revert(){return this.handleZoom()},handleZoom(e){var t=this.isZMax;return(e?!t:t)&&(this.isZMax=!t,this.tZindex<(0,_utils.getLastZIndex)())&&(this.tZindex=(0,_utils.nextZIndex)()),this.$nextTick().then(()=>this.recalculate(!0)).then(()=>(setTimeout(()=>this.recalculate(!0),15),this.isZMax))},getProxyInfo(){var e=this.$refs.xTable,{sortData:t,proxyConfig:r}=this;return r?{data:e?e.getFullData():[],filter:this.filterData,form:this.getFormData(),sort:t.length?t[0]:{},sorts:t,pager:this.tablePage,pendingRecords:e?e.getPendingRecords():[]}:null},loadColumn(e){var t=this.$refs.xTable;let r=this.$scopedSlots;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||r[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t.loadColumn(e)},reloadColumn(e){return this.clearAll(),this.loadColumn(e)}})};
package/lib/index.umd.js CHANGED
@@ -3234,7 +3234,7 @@ function getClass(property, params) {
3234
3234
  ;// ./packages/ui/index.ts
3235
3235
 
3236
3236
 
3237
- const version = "3.15.54";
3237
+ const version = "3.15.56";
3238
3238
  core_.VxeUI.version = version;
3239
3239
  core_.VxeUI.tableVersion = version;
3240
3240
  core_.VxeUI.setConfig({
@@ -3368,6 +3368,7 @@ core_.VxeUI.setConfig({
3368
3368
  // filterMethod: null,
3369
3369
  // destroyOnClose: false,
3370
3370
  // isEvery: false,
3371
+ multiple: true,
3371
3372
  showIcon: true
3372
3373
  },
3373
3374
  aggregateConfig: {
@@ -3906,7 +3907,7 @@ var es_iterator_map = __webpack_require__(1701);
3906
3907
  const {
3907
3908
  log: log_log
3908
3909
  } = core_.VxeUI;
3909
- const log_version = `table v${"3.15.54"}`;
3910
+ const log_version = `table v${"3.15.56"}`;
3910
3911
  const warnLog = log_log.create('warn', log_version);
3911
3912
  const errLog = log_log.create('error', log_version);
3912
3913
  ;// ./packages/table/src/columnInfo.ts
@@ -8850,6 +8851,10 @@ function removeFooterMerges($xeTable, merges) {
8850
8851
  return rest;
8851
8852
  }
8852
8853
  function handleSortEvent($xeTable, evnt, sortConfs, isUpdate) {
8854
+ const internalData = $xeTable;
8855
+ const {
8856
+ tableFullColumn
8857
+ } = internalData;
8853
8858
  const sortOpts = $xeTable.computeSortOpts;
8854
8859
  const {
8855
8860
  multiple,
@@ -8860,10 +8865,16 @@ function handleSortEvent($xeTable, evnt, sortConfs, isUpdate) {
8860
8865
  sortConfs = [sortConfs];
8861
8866
  }
8862
8867
  if (sortConfs && sortConfs.length) {
8868
+ const orderActiveMaps = {};
8863
8869
  if (!multiple) {
8864
8870
  sortConfs = [sortConfs[0]];
8865
- clearAllSort($xeTable);
8871
+ tableFullColumn.forEach(column => {
8872
+ if (column.order) {
8873
+ orderActiveMaps[column.id] = column;
8874
+ }
8875
+ });
8866
8876
  }
8877
+ const sortColMpps = {};
8867
8878
  let firstColumn = null;
8868
8879
  sortConfs.forEach((confs, index) => {
8869
8880
  let {
@@ -8885,8 +8896,16 @@ function handleSortEvent($xeTable, evnt, sortConfs, isUpdate) {
8885
8896
  column.order = order;
8886
8897
  }
8887
8898
  column.sortTime = Date.now() + index;
8899
+ sortColMpps[column.id] = column;
8888
8900
  }
8889
8901
  });
8902
+ if (!multiple) {
8903
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(orderActiveMaps, (oaCol, oaId) => {
8904
+ if (!sortColMpps[oaId]) {
8905
+ oaCol.order = null;
8906
+ }
8907
+ });
8908
+ }
8890
8909
  if (isUpdate) {
8891
8910
  if (!remote) {
8892
8911
  $xeTable.handleTableData(true);
@@ -16358,9 +16377,9 @@ const Methods = {
16358
16377
  const $xeTable = this;
16359
16378
  return handleSortEvent($xeTable, null, sortConfs, isUpdate);
16360
16379
  },
16361
- setSortByEvent(evnt, sortConfs, isUpdate) {
16380
+ setSortByEvent(evnt, sortConfs) {
16362
16381
  const $xeTable = this;
16363
- return handleSortEvent($xeTable, evnt, sortConfs, isUpdate);
16382
+ return handleSortEvent($xeTable, evnt, sortConfs, true);
16364
16383
  },
16365
16384
  /**
16366
16385
  * 清空指定列的排序条件
@@ -16393,6 +16412,9 @@ const Methods = {
16393
16412
  tableFullColumn
16394
16413
  } = internalData;
16395
16414
  const sortOpts = $xeTable.computeSortOpts;
16415
+ const {
16416
+ multiple
16417
+ } = sortOpts;
16396
16418
  const sortCols = [];
16397
16419
  let column = null;
16398
16420
  if (evnt) {
@@ -16412,7 +16434,13 @@ const Methods = {
16412
16434
  if (!sortOpts.remote) {
16413
16435
  $xeTable.handleTableData(true);
16414
16436
  }
16415
- if (sortCols.length) {
16437
+ if (!multiple) {
16438
+ column = sortCols[0];
16439
+ }
16440
+ if (column) {
16441
+ $xeTable.handleColumnSortEvent(evnt, column);
16442
+ }
16443
+ if (multiple && sortCols.length) {
16416
16444
  const params = {
16417
16445
  $table: $xeTable,
16418
16446
  $event: evnt,
@@ -16420,8 +16448,6 @@ const Methods = {
16420
16448
  sortList: []
16421
16449
  };
16422
16450
  $xeTable.dispatchEvent('clear-all-sort', params, evnt);
16423
- } else if (column) {
16424
- $xeTable.handleColumnSortEvent(evnt, column);
16425
16451
  }
16426
16452
  }
16427
16453
  return $xeTable.$nextTick().then(() => {
@@ -16467,14 +16493,12 @@ const Methods = {
16467
16493
  }
16468
16494
  return sortList;
16469
16495
  },
16470
- setFilterByEvent(evnt, fieldOrColumn, options, isUpdate) {
16496
+ setFilterByEvent(evnt, fieldOrColumn, options) {
16471
16497
  const $xeTable = this;
16472
16498
  const column = handleFieldOrColumn($xeTable, fieldOrColumn);
16473
16499
  if (column && column.filters) {
16474
16500
  column.filters = toFilters(options || []);
16475
- if (isUpdate) {
16476
- return $xeTable.handleColumnConfirmFilter(column, evnt);
16477
- }
16501
+ return $xeTable.handleColumnConfirmFilter(column, evnt);
16478
16502
  }
16479
16503
  return $xeTable.$nextTick();
16480
16504
  },
@@ -16533,6 +16557,9 @@ const Methods = {
16533
16557
  tableFullColumn
16534
16558
  } = internalData;
16535
16559
  const filterOpts = $xeTable.computeFilterOpts;
16560
+ const {
16561
+ multiple
16562
+ } = filterOpts;
16536
16563
  const filterCols = [];
16537
16564
  let column = null;
16538
16565
  if (fieldOrColumn) {
@@ -16562,7 +16589,34 @@ const Methods = {
16562
16589
  if (!filterOpts.remote) {
16563
16590
  $xeTable.updateData();
16564
16591
  }
16565
- if (filterCols.length) {
16592
+ if (!multiple) {
16593
+ column = filterCols[0];
16594
+ }
16595
+ if (column) {
16596
+ const filterList = () => $xeTable.getCheckedFilters();
16597
+ const values = [];
16598
+ const datas = [];
16599
+ column.filters.forEach(item => {
16600
+ if (item.checked) {
16601
+ values.push(item.value);
16602
+ datas.push(item.data);
16603
+ }
16604
+ });
16605
+ const params = {
16606
+ $table: $xeTable,
16607
+ $event: evnt,
16608
+ column,
16609
+ field: column.field,
16610
+ property: column.field,
16611
+ values,
16612
+ datas,
16613
+ filters: filterList,
16614
+ filterList
16615
+ };
16616
+ $xeTable.dispatchEvent('filter-change', params, evnt);
16617
+ $xeTable.dispatchEvent('clear-filter', params, evnt);
16618
+ }
16619
+ if (multiple && filterCols.length) {
16566
16620
  const params = {
16567
16621
  $table: $xeTable,
16568
16622
  $event: evnt,
@@ -16570,10 +16624,6 @@ const Methods = {
16570
16624
  filterList: []
16571
16625
  };
16572
16626
  $xeTable.dispatchEvent('clear-all-filter', params, evnt);
16573
- } else if (column) {
16574
- $xeTable.dispatchEvent('clear-filter', {
16575
- filterList: () => $xeTable.getCheckedFilters()
16576
- }, evnt);
16577
16627
  }
16578
16628
  return $xeTable.$nextTick();
16579
16629
  },
@@ -32256,9 +32306,11 @@ function getTableOns(_vm) {
32256
32306
  if (proxyConfig) {
32257
32307
  if (proxyOpts.sort) {
32258
32308
  ons['sort-change'] = _vm.sortChangeEvent;
32309
+ ons['clear-all-sort'] = _vm.clearAllSortEvent;
32259
32310
  }
32260
32311
  if (proxyOpts.filter) {
32261
32312
  ons['filter-change'] = _vm.filterChangeEvent;
32313
+ ons['clear-all-filter'] = _vm.clearAllFilterEvent;
32262
32314
  }
32263
32315
  }
32264
32316
  return ons;
@@ -33499,6 +33551,31 @@ Object.keys(table.methods).forEach(name => {
33499
33551
  $grid: this
33500
33552
  }, params));
33501
33553
  },
33554
+ clearAllSortEvent(params) {
33555
+ const {
33556
+ $table,
33557
+ column,
33558
+ sortList
33559
+ } = params;
33560
+ const isRemote = column && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(column.remoteSort) ? column.remoteSort : $table.sortOpts.remote;
33561
+ // 如果是服务端排序
33562
+ if (isRemote) {
33563
+ this.sortData = sortList;
33564
+ if (this.proxyConfig) {
33565
+ this.tablePage.currentPage = 1;
33566
+ this.commitProxy('query').then(rest => {
33567
+ this.$emit('proxy-query', {
33568
+ ...rest,
33569
+ $grid: this,
33570
+ $event: params.$event
33571
+ });
33572
+ });
33573
+ }
33574
+ }
33575
+ this.$emit('clear-all-sort', Object.assign({
33576
+ $grid: this
33577
+ }, params));
33578
+ },
33502
33579
  filterChangeEvent(params) {
33503
33580
  const {
33504
33581
  $table,
@@ -33522,6 +33599,29 @@ Object.keys(table.methods).forEach(name => {
33522
33599
  $grid: this
33523
33600
  }, params));
33524
33601
  },
33602
+ clearAllFilterEvent(params) {
33603
+ const {
33604
+ $table,
33605
+ filterList
33606
+ } = params;
33607
+ // 如果是服务端过滤
33608
+ if ($table.filterOpts.remote) {
33609
+ this.filterData = filterList;
33610
+ if (this.proxyConfig) {
33611
+ this.tablePage.currentPage = 1;
33612
+ this.commitProxy('query').then(rest => {
33613
+ this.$emit('proxy-query', {
33614
+ ...rest,
33615
+ $grid: this,
33616
+ $event: params.$event
33617
+ });
33618
+ });
33619
+ }
33620
+ }
33621
+ this.$emit('clear-all-filter', Object.assign({
33622
+ $grid: this
33623
+ }, params));
33624
+ },
33525
33625
  submitEvent(params) {
33526
33626
  const $xeGrid = this;
33527
33627
  const reactData = $xeGrid;
@@ -35161,7 +35261,8 @@ const Toolbar = VxeToolbar;
35161
35261
  treeCrossDrag: '只能拖拽第一层级',
35162
35262
  treeDragChild: '父级不能拖拽到自己的子级中',
35163
35263
  reqPlugin: '扩展插件未安装 "{1}" https://vxeui.com/other{0}/#/{1}/install',
35164
- errMaxRow: '超过支持的最大数据量 {0} 行,这可能会导致出现错误'
35264
+ errMaxRow: '超过支持的最大数据量 {0} 行,这可能会导致出现错误',
35265
+ useNew: '不建议使用 {0},请使用 {1}'
35165
35266
  },
35166
35267
  table: {
35167
35268
  emptyText: '暂无数据',