vxe-table 3.13.9 → 3.13.11

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.
@@ -191,7 +191,7 @@ function cacheColumnMap($xeTable) {
191
191
  let hasFixed;
192
192
  const handleFunc = (column, index, items, path, parentColumn) => {
193
193
  const { id: colid, field, fixed, type, treeNode } = column;
194
- const rest = { $index: -1, _index: -1, column, colid, index, items, parent: parentColumn || null, width: 0, oLeft: 0 };
194
+ const rest = { $index: -1, _index: -1, column, colid, index, items, parent: parentColumn || null, width: 0 };
195
195
  if (field) {
196
196
  if (fullColumnFieldData[field]) {
197
197
  errLog('vxe.error.colRepet', ['field', field]);
@@ -500,16 +500,10 @@ function updateStyle($xeTable) {
500
500
  if (layout === 'header') {
501
501
  // 表头体样式处理
502
502
  // 横向滚动渲染
503
- let tWidth = tableWidth;
504
503
  let renderColumnList = tableColumn;
505
504
  let isOptimizeMode = false;
506
505
  if (isGroup) {
507
506
  renderColumnList = visibleColumn;
508
- if (fixedType) {
509
- if (wrapperElem) {
510
- wrapperElem.style.width = tWidth ? `${tWidth}px` : '';
511
- }
512
- }
513
507
  }
514
508
  else {
515
509
  // 如果是使用优化模式
@@ -527,14 +521,28 @@ function updateStyle($xeTable) {
527
521
  if (isOptimizeMode) {
528
522
  renderColumnList = fixedColumn || [];
529
523
  }
530
- if (!isOptimizeMode) {
524
+ }
525
+ }
526
+ const tWidth = renderColumnList.reduce((previous, column) => previous + column.renderWidth, 0);
527
+ if (fixedType) {
528
+ if (isGroup) {
529
+ if (wrapperElem) {
530
+ wrapperElem.style.width = tableWidth ? `${tableWidth}px` : '';
531
+ }
532
+ }
533
+ else {
534
+ if (isOptimizeMode) {
531
535
  if (wrapperElem) {
532
536
  wrapperElem.style.width = tWidth ? `${tWidth}px` : '';
533
537
  }
534
538
  }
539
+ else {
540
+ if (wrapperElem) {
541
+ wrapperElem.style.width = tableWidth ? `${tableWidth}px` : '';
542
+ }
543
+ }
535
544
  }
536
545
  }
537
- tWidth = renderColumnList.reduce((previous, column) => previous + column.renderWidth, 0);
538
546
  if (currScrollElem) {
539
547
  currScrollElem.style.height = `${headerHeight}px`;
540
548
  }
@@ -586,7 +594,6 @@ function updateStyle($xeTable) {
586
594
  fixedWrapperElem.style.height = `${customHeight > 0 ? customHeight : (tableHeight + headerHeight + footerHeight + osbHeight)}px`;
587
595
  fixedWrapperElem.style.width = `${fixedColumn.reduce((previous, column) => previous + column.renderWidth, 0)}px`;
588
596
  }
589
- let tWidth = tableWidth;
590
597
  let renderColumnList = tableColumn;
591
598
  let isOptimizeMode = false;
592
599
  // 如果是使用优化模式
@@ -603,13 +610,20 @@ function updateStyle($xeTable) {
603
610
  if (isOptimizeMode) {
604
611
  renderColumnList = fixedColumn || [];
605
612
  }
606
- if (!isOptimizeMode) {
613
+ }
614
+ const tWidth = renderColumnList.reduce((previous, column) => previous + column.renderWidth, 0);
615
+ if (fixedType) {
616
+ if (isOptimizeMode) {
607
617
  if (wrapperElem) {
608
618
  wrapperElem.style.width = tWidth ? `${tWidth}px` : '';
609
619
  }
610
620
  }
621
+ else {
622
+ if (wrapperElem) {
623
+ wrapperElem.style.width = tableWidth ? `${tableWidth}px` : '';
624
+ }
625
+ }
611
626
  }
612
- tWidth = renderColumnList.reduce((previous, column) => previous + column.renderWidth, 0);
613
627
  if (tableElem) {
614
628
  tableElem.style.width = tWidth ? `${tWidth}px` : '';
615
629
  // 兼容性处理
@@ -621,7 +635,6 @@ function updateStyle($xeTable) {
621
635
  }
622
636
  }
623
637
  else if (layout === 'footer') {
624
- let tWidth = tableWidth;
625
638
  let renderColumnList = tableColumn;
626
639
  let isOptimizeMode = false;
627
640
  // 如果是使用优化模式
@@ -638,13 +651,20 @@ function updateStyle($xeTable) {
638
651
  if (isOptimizeMode) {
639
652
  renderColumnList = fixedColumn || [];
640
653
  }
641
- if (!isOptimizeMode) {
654
+ }
655
+ const tWidth = renderColumnList.reduce((previous, column) => previous + column.renderWidth, 0);
656
+ if (fixedType) {
657
+ if (isOptimizeMode) {
642
658
  if (wrapperElem) {
643
659
  wrapperElem.style.width = tWidth ? `${tWidth}px` : '';
644
660
  }
645
661
  }
662
+ else {
663
+ if (wrapperElem) {
664
+ wrapperElem.style.width = tableWidth ? `${tableWidth}px` : '';
665
+ }
666
+ }
646
667
  }
647
- tWidth = renderColumnList.reduce((previous, column) => previous + column.renderWidth, 0);
648
668
  if (currScrollElem) {
649
669
  currScrollElem.style.height = `${footerHeight}px`;
650
670
  // 如果是固定列
@@ -1567,20 +1587,6 @@ function handleScrollToRowColumn($xeTable, fieldOrColumn, row) {
1567
1587
  }
1568
1588
  return $xeTable.$nextTick();
1569
1589
  }
1570
- const handleRowExpandReserve = ($xeTable, row, expanded) => {
1571
- const internalData = $xeTable;
1572
- const { rowExpandedReserveRowMap } = internalData;
1573
- const expandOpts = $xeTable.computeExpandOpts;
1574
- if (expandOpts.reserve) {
1575
- const rowid = getRowid($xeTable, row);
1576
- if (expanded) {
1577
- rowExpandedReserveRowMap[rowid] = row;
1578
- }
1579
- else if (rowExpandedReserveRowMap[rowid]) {
1580
- delete rowExpandedReserveRowMap[rowid];
1581
- }
1582
- }
1583
- };
1584
1590
  // 计算可视渲染相关数据
1585
1591
  function computeScrollLoad($xeTable) {
1586
1592
  const reactData = $xeTable;
@@ -7396,7 +7402,7 @@ const Methods = {
7396
7402
  });
7397
7403
  }
7398
7404
  if (reserve) {
7399
- validRows.forEach((row) => handleRowExpandReserve($xeTable, row, expanded));
7405
+ validRows.forEach((row) => this.handleRowExpandReserve(row, expanded));
7400
7406
  }
7401
7407
  }
7402
7408
  this.rowExpandedMaps = rExpandedMaps;
@@ -7431,28 +7437,35 @@ const Methods = {
7431
7437
  */
7432
7438
  clearRowExpand() {
7433
7439
  const $xeTable = this;
7434
- const reactData = $xeTable;
7435
- const internalData = $xeTable;
7436
- const { tableFullData } = internalData;
7437
- const expandOpts = $xeTable.computeExpandOpts;
7440
+ const { expandOpts, tableFullData } = this;
7438
7441
  const { reserve } = expandOpts;
7439
- const expList = $xeTable.getRowExpandRecords();
7440
- reactData.rowExpandedMaps = {};
7442
+ const expList = this.getRowExpandRecords();
7443
+ this.rowExpandedMaps = {};
7441
7444
  if (reserve) {
7442
- tableFullData.forEach((row) => handleRowExpandReserve($xeTable, row, false));
7445
+ tableFullData.forEach((row) => this.handleRowExpandReserve(row, false));
7443
7446
  }
7444
- return $xeTable.$nextTick().then(() => {
7447
+ return this.$nextTick().then(() => {
7445
7448
  if (expList.length) {
7446
- return $xeTable.recalculate();
7449
+ this.recalculate();
7447
7450
  }
7448
- }).then(() => {
7449
- return $xeTable.updateCellAreas();
7450
- });
7451
+ }).then(() => $xeTable.updateCellAreas());
7451
7452
  },
7452
7453
  clearRowExpandReserve() {
7453
7454
  this.rowExpandedReserveRowMap = {};
7454
7455
  return this.$nextTick();
7455
7456
  },
7457
+ handleRowExpandReserve(row, expanded) {
7458
+ const { rowExpandedReserveRowMap, expandOpts } = this;
7459
+ if (expandOpts.reserve) {
7460
+ const rowid = getRowid(this, row);
7461
+ if (expanded) {
7462
+ rowExpandedReserveRowMap[rowid] = row;
7463
+ }
7464
+ else if (rowExpandedReserveRowMap[rowid]) {
7465
+ delete rowExpandedReserveRowMap[rowid];
7466
+ }
7467
+ }
7468
+ },
7456
7469
  getRowExpandRecords() {
7457
7470
  const rest = [];
7458
7471
  XEUtils.each(this.rowExpandedMaps, item => {
@@ -630,8 +630,6 @@ export default {
630
630
  mini: 36
631
631
  },
632
632
  scrollVMLoading: false,
633
- scrollYHeight: 0,
634
- scrollXWidth: 0,
635
633
  rowExpandHeightFlag: 1,
636
634
  calcCellHeightFlag: 1,
637
635
  resizeHeightFlag: 1,
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.13.9";
3
+ export const version = "3.13.11";
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${"3.13.9"}`;
3
+ const version = `table v${"3.13.11"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -815,7 +815,7 @@ var _default = exports.default = {
815
815
  ajax = {}
816
816
  } = proxyOpts;
817
817
  const resConfigs = proxyOpts.response || proxyOpts.props || {};
818
- const $xeTable = $refs.xTable;
818
+ const $xetable = $refs.xTable;
819
819
  const formData = this.getFormData();
820
820
  let button;
821
821
  let code;
@@ -886,10 +886,10 @@ var _default = exports.default = {
886
886
  }
887
887
  if (isInited) {
888
888
  let defaultSort = null;
889
- if ($xeTable) {
889
+ if ($xetable) {
890
890
  const {
891
891
  sortOpts
892
- } = $xeTable;
892
+ } = $xetable;
893
893
  defaultSort = sortOpts.defaultSort;
894
894
  }
895
895
  // 如果使用默认排序
@@ -905,16 +905,16 @@ var _default = exports.default = {
905
905
  };
906
906
  });
907
907
  }
908
- if ($xeTable) {
909
- filterList = $xeTable.getCheckedFilters();
908
+ if ($xetable) {
909
+ filterList = $xetable.getCheckedFilters();
910
910
  }
911
911
  } else {
912
- if ($xeTable) {
912
+ if ($xetable) {
913
913
  if (isReload) {
914
- $xeTable.clearAll();
914
+ $xetable.clearAll();
915
915
  } else {
916
- sortList = $xeTable.getSortColumns();
917
- filterList = $xeTable.getCheckedFilters();
916
+ sortList = $xetable.getSortColumns();
917
+ filterList = $xetable.getCheckedFilters();
918
918
  }
919
919
  }
920
920
  }
@@ -936,7 +936,6 @@ var _default = exports.default = {
936
936
  this.tableLoading = true;
937
937
  const applyArgs = [commitParams].concat(args);
938
938
  return Promise.resolve((beforeQuery || ajaxMethods)(...applyArgs)).then(rest => {
939
- let tableData = [];
940
939
  this.tableLoading = false;
941
940
  if (rest) {
942
941
  if (pagerConfig && (0, _utils.isEnableConf)(pagerOpts)) {
@@ -947,7 +946,7 @@ var _default = exports.default = {
947
946
  }) : _xeUtils.default.get(rest, totalProp || 'page.total')) || 0;
948
947
  tablePage.total = _xeUtils.default.toNumber(total);
949
948
  const resultProp = resConfigs.result;
950
- tableData = (_xeUtils.default.isFunction(resultProp) ? resultProp({
949
+ this.tableData = (_xeUtils.default.isFunction(resultProp) ? resultProp({
951
950
  data: rest,
952
951
  $grid: this
953
952
  }) : _xeUtils.default.get(rest, resultProp || 'result')) || [];
@@ -958,20 +957,13 @@ var _default = exports.default = {
958
957
  }
959
958
  } else {
960
959
  const listProp = resConfigs.list;
961
- tableData = (listProp ? _xeUtils.default.isFunction(listProp) ? listProp({
960
+ this.tableData = (listProp ? _xeUtils.default.isFunction(listProp) ? listProp({
962
961
  data: rest,
963
962
  $grid: this
964
963
  }) : _xeUtils.default.get(rest, listProp) : rest) || [];
965
964
  }
966
- }
967
- if ($xeTable) {
968
- $xeTable.loadData(tableData);
969
965
  } else {
970
- $xeTable.$nextTick(() => {
971
- if ($xeTable) {
972
- $xeTable.loadData(tableData);
973
- }
974
- });
966
+ this.tableData = [];
975
967
  }
976
968
  if (afterQuery) {
977
969
  afterQuery(...applyArgs);
@@ -1008,8 +1000,8 @@ var _default = exports.default = {
1008
1000
  const deleteSuccessMethods = ajax.deleteSuccess;
1009
1001
  const deleteErrorMethods = ajax.deleteError;
1010
1002
  if (ajaxMethods) {
1011
- const selectRecords = $xeTable.getCheckboxRecords();
1012
- const removeRecords = selectRecords.filter(row => !$xeTable.isInsertByRow(row));
1003
+ const selectRecords = $xetable.getCheckboxRecords();
1004
+ const removeRecords = selectRecords.filter(row => !$xetable.isInsertByRow(row));
1013
1005
  const body = {
1014
1006
  removeRecords
1015
1007
  };
@@ -1025,12 +1017,12 @@ var _default = exports.default = {
1025
1017
  if (selectRecords.length) {
1026
1018
  return this.handleDeleteRow(code, 'vxe.grid.deleteSelectRecord', () => {
1027
1019
  if (!removeRecords.length) {
1028
- return $xeTable.remove(selectRecords);
1020
+ return $xetable.remove(selectRecords);
1029
1021
  }
1030
1022
  this.tableLoading = true;
1031
1023
  return Promise.resolve((beforeDelete || ajaxMethods)(...applyArgs)).then(rest => {
1032
1024
  this.tableLoading = false;
1033
- $xeTable.setPendingRow(removeRecords, false);
1025
+ $xetable.setPendingRow(removeRecords, false);
1034
1026
  if (isRespMsg) {
1035
1027
  // 检测弹窗模块
1036
1028
  if (process.env.NODE_ENV === 'development') {
@@ -1147,7 +1139,7 @@ var _default = exports.default = {
1147
1139
  this.tableLoading = true;
1148
1140
  return Promise.resolve((beforeSave || ajaxMethods)(...applyArgs)).then(rest => {
1149
1141
  this.tableLoading = false;
1150
- $xeTable.clearPendingRow();
1142
+ $xetable.clearPendingRow();
1151
1143
  if (isRespMsg) {
1152
1144
  // 检测弹窗模块
1153
1145
  if (process.env.NODE_ENV === 'development') {
@@ -1229,7 +1221,7 @@ var _default = exports.default = {
1229
1221
  code,
1230
1222
  button,
1231
1223
  $grid: this,
1232
- $table: $xeTable
1224
+ $table: $xetable
1233
1225
  }, ...args);
1234
1226
  } else {
1235
1227
  if (process.env.NODE_ENV === 'development') {
@@ -1523,16 +1515,16 @@ var _default = exports.default = {
1523
1515
  sortData,
1524
1516
  proxyConfig
1525
1517
  } = this;
1526
- const $xeTable = $refs.xTable;
1518
+ const $xetable = $refs.xTable;
1527
1519
  if (proxyConfig) {
1528
1520
  return {
1529
- data: $xeTable ? $xeTable.getFullData() : [],
1521
+ data: this.tableData,
1530
1522
  filter: this.filterData,
1531
1523
  form: this.getFormData(),
1532
1524
  sort: sortData.length ? sortData[0] : {},
1533
1525
  sorts: sortData,
1534
1526
  pager: this.tablePage,
1535
- pendingRecords: $xeTable ? $xeTable.getPendingRecords() : []
1527
+ pendingRecords: $xetable ? $xetable.getPendingRecords() : []
1536
1528
  };
1537
1529
  }
1538
1530
  return null;
@@ -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 renderDefaultForm(e,r){var o=_ui.VxeUI.getComponent("VxeForm");let s=r.$scopedSlots;var{proxyConfig:i,formConfig:t}=r,{proxyOpts:a,formData:n,formOpts:l}=r;if((0,_utils.isEnableConf)(t)&&l.items&&l.items.length){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&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&&a.form?n: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];"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notSlot",[t])}return null}function getToolbarSlots(e){var{$scopedSlots:t,toolbarOpts:r}=e,r=r.slots,o={};return"development"===process.env.NODE_ENV&&(!t.buttons||r&&"buttons"===r.buttons||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.buttons"]),!t.tools||r&&"tools"===r.tools||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.tools"])),r&&(t=getFuncSlot(e,r,"buttons"),e=getFuncSlot(e,r,"tools"),t&&(o.buttons=t),e)&&(o.tools=e),o}function getPagerSlots(e){var t,r=e.pagerOpts,r=r.slots,o={};return r&&(t=getFuncSlot(e,r,"left"),e=getFuncSlot(e,r,"right"),t&&(o.left=t),e)&&(o.right=e),o}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 renderForm(e,t){var{_e:r,$scopedSlots:o,formConfig:s}=t,o=o.form;return!o&&!(0,_utils.isEnableConf)(s)?r():e("div",{key:"form",ref:"formWrapper",class:"vxe-grid--form-wrapper"},o?o.call(t,{$grid:t},e):renderDefaultForm(e,t))}function renderToolbar(e,t){var{_e:r,$scopedSlots:o,toolbarConfig:s,toolbar:i}=t,o=o.toolbar;return!(o||(0,_utils.isEnableConf)(s)||i)?r():e("div",{key:"toolbar",ref:"toolbarWrapper",class:"vxe-grid--toolbar-wrapper"},o?o.call(t,{$grid:t},e):[e(_toolbar.default,{props:t.toolbarOpts,ref:"xToolbar",scopedSlots:getToolbarSlots(t)})])}function renderTop(e,t){var{_e:r,$scopedSlots:o}=t,o=o.top;return o?e("div",{key:"top",ref:"topWrapper",class:"vxe-grid--top-wrapper"},o.call(t,{$grid:t},e)):r()}function renderTableLeft(e,t){var{_e:r,$scopedSlots:o}=t,o=o.left;return o?e("div",{class:"vxe-grid--left-wrapper"},o({$grid:t})):r()}function renderTableRight(e,t){var{_e:r,$scopedSlots:o}=t,o=o.right;return o?e("div",{class:"vxe-grid--right-wrapper"},o({$grid:t})):r()}function renderTable(e,t){var{$scopedSlots:r,tableProps:o}=t;return e("div",{class:"vxe-grid--table-wrapper"},[e("vxe-table",{key:"table",props:o,on:getTableOns(t),scopedSlots:r,ref:"xTable"})])}function renderBottom(e,t){var{_e:r,$scopedSlots:o}=t,o=o.bottom;return o?e("div",{key:"bottom",ref:"bottomWrapper",class:"vxe-grid--bottom-wrapper"},o.call(t,{$grid:t},e)):r()}function renderPager(e,t){var r=_ui.VxeUI.getComponent("VxePager"),{pagerConfig:o,proxyConfig:s}=t,{$scopedSlots:i,tablePage:a}=t,i=i.pager;return!i&&!(0,_utils.isEnableConf)(o)?renderEmptyElement(t):e("div",{key:"pager",ref:"pagerWrapper",class:"vxe-grid--pager-wrapper"},i?i.call(t,{$grid:t},e):[r?e(r,{props:Object.assign(Object.assign({},t.pagerOpts),s?a:{}),on:{"page-change":t.pageChangeEvent},scopedSlots:getPagerSlots(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,$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},tableProps(){var{isZMax:e,seqConfig:t,pagerConfig:r,loading:o,editConfig:s,proxyConfig:i,proxyOpts:a,tableExtendProps:n,tableLoading:l,tablePage:g,tableData:d}=this,c=Object.assign({},n);return e&&(n.maxHeight?c.maxHeight="100%":c.height="100%"),i&&(c.loading=o||l,c.data=d,a.seq)&&(0,_utils.isEnableConf)(r)&&(c.seqConfig=Object.assign({},t,{startIndex:(g.currentPage-1)*g.pageSize})),s&&(c.editConfig=Object.assign({},s)),c},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}},computePageConfFlag(){var e=this.computePagerOpts;return""+e.currentPage+e.pageSize}},watch:{columns(e){this.$nextTick(()=>this.loadColumn(e))},toolbar(e){e&&this.initToolbar()},toolbarConfig(e){e&&this.initToolbar()},proxyConfig(){this.initProxy()},computePageConfFlag(){this.initPages()}},created(){let r=this;if("development"===process.env.NODE_ENV&&(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={}"]),"development"===process.env.NODE_ENV){let e=_ui.VxeUI.getComponent("VxeForm"),t=_ui.VxeUI.getComponent("VxePager");this.$nextTick(()=>{r.formConfig&&!e&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),r.pagerConfig&&!t&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])})}this.initPages(),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",{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(Object.assign({},methods),{callSlot(e,t,r,o){if(e){var s=this.$scopedSlots;if(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))return(0,_vn.getSlotVNs)(e.call(this,t,r,o))}return[]},getParentHeight(){var{$el:e,isZMax:t}=this;return(t?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-this.getExcludeHeight()},getExcludeHeight(){var{$refs:e,$el:t,isZMax:r,height:o}=this,{formWrapper:e,toolbarWrapper:s,topWrapper:i,bottomWrapper:a,pagerWrapper:n}=e;return(r||"auto"!==o&&"100%"!==o?0:(0,_dom.getPaddingTopBottomSize)(t.parentNode))+(0,_dom.getPaddingTopBottomSize)(t)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(s)+(0,_dom.getOffsetHeight)(i)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(n)},initToolbar(){this.$nextTick(()=>{var{xTable:e,xToolbar:t}=this.$refs;e&&t&&e.connect(t)})},initPages(){var{tablePage:e,pagerConfig:t,pagerOpts:r}=this,{currentPage:r,pageSize:o}=r;t&&(r&&(e.currentPage=r),o)&&(e.pageSize=o)},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,...c){let{$refs:e,toolbar:r,toolbarConfig:o,toolbarOpts:s,proxyOpts:i,tablePage:n,pagerConfig:l,editRules:u,isRespMsg:p,isActiveMsg:h,validConfig:m,pagerOpts:g}=this,{beforeQuery:d,afterQuery:f,beforeDelete:b,afterDelete:x,beforeSave:v,afterSave:_,ajax:y={}}=i,O=i.response||i.props||{},C=e.xTable;var a,$=this.getFormData();let E,P;_xeUtils.default.isString(t)?(a=o||r?_xeUtils.default.findTree(s.buttons,e=>e.code===t,{children:"dropdowns"}):null,P=t,E=a?a.item:null):(E=t,P=E.code);var j=E?E.params:null;switch(P){case"insert":return this.insert();case"insert_edit":return this.insert().then(({row:e})=>this.setEditRow(e));case"insert_actived":return this.insert().then(({row:e})=>this.setEditRow(e));case"mark_cancel":this.triggerPendingEvent(P);break;case"remove":return this.handleDeleteRow(P,"vxe.grid.removeSelectRecord",()=>this.removeCheckboxRow());case"import":this.importData(j);break;case"open_import":this.openImport(j);break;case"export":this.exportData(j);break;case"open_export":this.openExport(j);break;case"reset_custom":this.resetCustom(!0);break;case"_init":case"reload":case"query":{var S=y.query;let a=y.querySuccess,o=y.queryError;if(S){var U="_init"===P,T="reload"===P;let t=[],r=[],e={};if(l&&((U||T)&&(n.currentPage=1),(0,_utils.isEnableConf)(l))&&(e=Object.assign({},n)),U){let e=null;C&&(R=C.sortOpts,e=R.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),C&&(r=C.getCheckedFilters())}else C&&(T?C.clearAll():(t=C.getSortColumns(),r=C.getCheckedFilters()));let s={code:P,button:E,isInited:U,isReload:T,$grid:this,page:e,sort:t.length?t[0]:{},sorts:t,filters:r,form:$,options:S},i=(this.sortData=t,this.filterData=r,this.tableLoading=!0,[s].concat(c));return Promise.resolve((d||S)(...i)).then(e=>{let t=[];var r,o;return this.tableLoading=!1,e&&(l&&(0,_utils.isEnableConf)(g)?(o=O.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=O.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=O.list,t=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:this}):_xeUtils.default.get(e,o):e)||[])),C?C.loadData(t):C.$nextTick(()=>{C&&C.loadData(t)}),f&&f(...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}))}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let s=y.delete,i=y.deleteSuccess,a=y.deleteError;if(s){let e=C.getCheckboxRecords(),t=e.filter(e=>!C.isInsertByRow(e));var R={removeRecords:t};let r={$grid:this,code:P,button:E,body:R,form:$,options:s},o=[r].concat(c);if(e.length)return this.handleDeleteRow(P,"vxe.grid.deleteSelectRecord",()=>t.length?(this.tableLoading=!0,Promise.resolve((b||s)(...o)).then(e=>(this.tableLoading=!1,C.setPendingRow(t,!1),p&&("development"!==process.env.NODE_ENV||_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&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):C.remove(e));h&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))}else"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let l=y.save,g=y.saveSuccess,d=y.saveError;if(l){let t=this.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:s,pendingRecords:i}=t,a={$grid:this,code:P,button:E,body:t,form:$,options:l},n=[a].concat(c),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=u?this[m&&"full"===m.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,C.clearPendingRow(),p&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:this.getRespMsg(e,"vxe.grid.saveSuccess"),status:"success"})),_?_(...n):this.commitProxy("query"),g&&g(Object.assign(Object.assign({},a),{response:e})),{status:!0})).catch(e=>(this.tableLoading=!1,p&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),d&&d(Object.assign(Object.assign({},a),{response:e})),{status:!1}))):void(h&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.dataUnchanged"),status:"info"})))})}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:U=commands.get(P);U&&(U.commandMethod?U.commandMethod({code:P,button:E,$grid:this,$table:C},...c):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[P]))}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()});"development"!==process.env.NODE_ENV||_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&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))},pageChangeEvent(t){var{proxyConfig:e,tablePage:r}=this,{currentPage:o,pageSize:s}=t;r.currentPage=o,r.pageSize=s,this.$emit("page-change",Object.assign({$grid:this},t)),e&&this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})},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;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{$refs:e,sortData:t,proxyConfig:r}=this,e=e.xTable;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}}),"development"===process.env.NODE_ENV?{loadColumn(e){let t=this.$scopedSlots;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||t[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),this.$refs.xTable.loadColumn(e)},reloadColumn(e){return this.clearAll(),this.loadColumn(e)}}:null)};
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 renderDefaultForm(e,r){var o=_ui.VxeUI.getComponent("VxeForm");let s=r.$scopedSlots;var{proxyConfig:i,formConfig:t}=r,{proxyOpts:a,formData:n,formOpts:l}=r;if((0,_utils.isEnableConf)(t)&&l.items&&l.items.length){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&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&&a.form?n: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];"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notSlot",[t])}return null}function getToolbarSlots(e){var{$scopedSlots:t,toolbarOpts:r}=e,r=r.slots,o={};return"development"===process.env.NODE_ENV&&(!t.buttons||r&&"buttons"===r.buttons||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.buttons"]),!t.tools||r&&"tools"===r.tools||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.tools"])),r&&(t=getFuncSlot(e,r,"buttons"),e=getFuncSlot(e,r,"tools"),t&&(o.buttons=t),e)&&(o.tools=e),o}function getPagerSlots(e){var t,r=e.pagerOpts,r=r.slots,o={};return r&&(t=getFuncSlot(e,r,"left"),e=getFuncSlot(e,r,"right"),t&&(o.left=t),e)&&(o.right=e),o}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 renderForm(e,t){var{_e:r,$scopedSlots:o,formConfig:s}=t,o=o.form;return!o&&!(0,_utils.isEnableConf)(s)?r():e("div",{key:"form",ref:"formWrapper",class:"vxe-grid--form-wrapper"},o?o.call(t,{$grid:t},e):renderDefaultForm(e,t))}function renderToolbar(e,t){var{_e:r,$scopedSlots:o,toolbarConfig:s,toolbar:i}=t,o=o.toolbar;return!(o||(0,_utils.isEnableConf)(s)||i)?r():e("div",{key:"toolbar",ref:"toolbarWrapper",class:"vxe-grid--toolbar-wrapper"},o?o.call(t,{$grid:t},e):[e(_toolbar.default,{props:t.toolbarOpts,ref:"xToolbar",scopedSlots:getToolbarSlots(t)})])}function renderTop(e,t){var{_e:r,$scopedSlots:o}=t,o=o.top;return o?e("div",{key:"top",ref:"topWrapper",class:"vxe-grid--top-wrapper"},o.call(t,{$grid:t},e)):r()}function renderTableLeft(e,t){var{_e:r,$scopedSlots:o}=t,o=o.left;return o?e("div",{class:"vxe-grid--left-wrapper"},o({$grid:t})):r()}function renderTableRight(e,t){var{_e:r,$scopedSlots:o}=t,o=o.right;return o?e("div",{class:"vxe-grid--right-wrapper"},o({$grid:t})):r()}function renderTable(e,t){var{$scopedSlots:r,tableProps:o}=t;return e("div",{class:"vxe-grid--table-wrapper"},[e("vxe-table",{key:"table",props:o,on:getTableOns(t),scopedSlots:r,ref:"xTable"})])}function renderBottom(e,t){var{_e:r,$scopedSlots:o}=t,o=o.bottom;return o?e("div",{key:"bottom",ref:"bottomWrapper",class:"vxe-grid--bottom-wrapper"},o.call(t,{$grid:t},e)):r()}function renderPager(e,t){var r=_ui.VxeUI.getComponent("VxePager"),{pagerConfig:o,proxyConfig:s}=t,{$scopedSlots:i,tablePage:a}=t,i=i.pager;return!i&&!(0,_utils.isEnableConf)(o)?renderEmptyElement(t):e("div",{key:"pager",ref:"pagerWrapper",class:"vxe-grid--pager-wrapper"},i?i.call(t,{$grid:t},e):[r?e(r,{props:Object.assign(Object.assign({},t.pagerOpts),s?a:{}),on:{"page-change":t.pageChangeEvent},scopedSlots:getPagerSlots(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,$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},tableProps(){var{isZMax:e,seqConfig:t,pagerConfig:r,loading:o,editConfig:s,proxyConfig:i,proxyOpts:a,tableExtendProps:n,tableLoading:l,tablePage:g,tableData:d}=this,c=Object.assign({},n);return e&&(n.maxHeight?c.maxHeight="100%":c.height="100%"),i&&(c.loading=o||l,c.data=d,a.seq)&&(0,_utils.isEnableConf)(r)&&(c.seqConfig=Object.assign({},t,{startIndex:(g.currentPage-1)*g.pageSize})),s&&(c.editConfig=Object.assign({},s)),c},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}},computePageConfFlag(){var e=this.computePagerOpts;return""+e.currentPage+e.pageSize}},watch:{columns(e){this.$nextTick(()=>this.loadColumn(e))},toolbar(e){e&&this.initToolbar()},toolbarConfig(e){e&&this.initToolbar()},proxyConfig(){this.initProxy()},computePageConfFlag(){this.initPages()}},created(){let r=this;if("development"===process.env.NODE_ENV&&(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={}"]),"development"===process.env.NODE_ENV){let e=_ui.VxeUI.getComponent("VxeForm"),t=_ui.VxeUI.getComponent("VxePager");this.$nextTick(()=>{r.formConfig&&!e&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),r.pagerConfig&&!t&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])})}this.initPages(),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",{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(Object.assign({},methods),{callSlot(e,t,r,o){if(e){var s=this.$scopedSlots;if(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))return(0,_vn.getSlotVNs)(e.call(this,t,r,o))}return[]},getParentHeight(){var{$el:e,isZMax:t}=this;return(t?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-this.getExcludeHeight()},getExcludeHeight(){var{$refs:e,$el:t,isZMax:r,height:o}=this,{formWrapper:e,toolbarWrapper:s,topWrapper:i,bottomWrapper:a,pagerWrapper:n}=e;return(r||"auto"!==o&&"100%"!==o?0:(0,_dom.getPaddingTopBottomSize)(t.parentNode))+(0,_dom.getPaddingTopBottomSize)(t)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(s)+(0,_dom.getOffsetHeight)(i)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(n)},initToolbar(){this.$nextTick(()=>{var{xTable:e,xToolbar:t}=this.$refs;e&&t&&e.connect(t)})},initPages(){var{tablePage:e,pagerConfig:t,pagerOpts:r}=this,{currentPage:r,pageSize:o}=r;t&&(r&&(e.currentPage=r),o)&&(e.pageSize=o)},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,...c){let{$refs:e,toolbar:r,toolbarConfig:o,toolbarOpts:s,proxyOpts:i,tablePage:n,pagerConfig:l,editRules:u,isRespMsg:p,isActiveMsg:h,validConfig:m,pagerOpts:g}=this,{beforeQuery:d,afterQuery:f,beforeDelete:b,afterDelete:x,beforeSave:v,afterSave:_,ajax:y={}}=i,O=i.response||i.props||{},C=e.xTable;var a,$=this.getFormData();let E,P;_xeUtils.default.isString(t)?(a=o||r?_xeUtils.default.findTree(s.buttons,e=>e.code===t,{children:"dropdowns"}):null,P=t,E=a?a.item:null):(E=t,P=E.code);var j=E?E.params:null;switch(P){case"insert":return this.insert();case"insert_edit":return this.insert().then(({row:e})=>this.setEditRow(e));case"insert_actived":return this.insert().then(({row:e})=>this.setEditRow(e));case"mark_cancel":this.triggerPendingEvent(P);break;case"remove":return this.handleDeleteRow(P,"vxe.grid.removeSelectRecord",()=>this.removeCheckboxRow());case"import":this.importData(j);break;case"open_import":this.openImport(j);break;case"export":this.exportData(j);break;case"open_export":this.openExport(j);break;case"reset_custom":this.resetCustom(!0);break;case"_init":case"reload":case"query":{var S=y.query;let i=y.querySuccess,a=y.queryError;if(S){var U="_init"===P,R="reload"===P;let t=[],r=[],e={};if(l&&((U||R)&&(n.currentPage=1),(0,_utils.isEnableConf)(l))&&(e=Object.assign({},n)),U){let e=null;C&&(T=C.sortOpts,e=T.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),C&&(r=C.getCheckedFilters())}else C&&(R?C.clearAll():(t=C.getSortColumns(),r=C.getCheckedFilters()));let o={code:P,button:E,isInited:U,isReload:R,$grid:this,page:e,sort:t.length?t[0]:{},sorts:t,filters:r,form:$,options:S},s=(this.sortData=t,this.filterData=r,this.tableLoading=!0,[o].concat(c));return Promise.resolve((d||S)(...s)).then(e=>{var t,r;return this.tableLoading=!1,e?l&&(0,_utils.isEnableConf)(g)?(r=O.total,r=(_xeUtils.default.isFunction(r)?r({data:e,$grid:this}):_xeUtils.default.get(e,r||"page.total"))||0,n.total=_xeUtils.default.toNumber(r),t=O.result,this.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:this}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(r/n.pageSize),1),n.currentPage>t&&(n.currentPage=t)):(r=O.list,this.tableData=(r?_xeUtils.default.isFunction(r)?r({data:e,$grid:this}):_xeUtils.default.get(e,r):e)||[]):this.tableData=[],f&&f(...s),i&&i(Object.assign(Object.assign({},o),{response:e})),{status:!0}}).catch(e=>(this.tableLoading=!1,a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!1}))}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let s=y.delete,i=y.deleteSuccess,a=y.deleteError;if(s){let e=C.getCheckboxRecords(),t=e.filter(e=>!C.isInsertByRow(e));var T={removeRecords:t};let r={$grid:this,code:P,button:E,body:T,form:$,options:s},o=[r].concat(c);if(e.length)return this.handleDeleteRow(P,"vxe.grid.deleteSelectRecord",()=>t.length?(this.tableLoading=!0,Promise.resolve((b||s)(...o)).then(e=>(this.tableLoading=!1,C.setPendingRow(t,!1),p&&("development"!==process.env.NODE_ENV||_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&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):C.remove(e));h&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))}else"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let l=y.save,g=y.saveSuccess,d=y.saveError;if(l){let t=this.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:s,pendingRecords:i}=t,a={$grid:this,code:P,button:E,body:t,form:$,options:l},n=[a].concat(c),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=u?this[m&&"full"===m.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,C.clearPendingRow(),p&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:this.getRespMsg(e,"vxe.grid.saveSuccess"),status:"success"})),_?_(...n):this.commitProxy("query"),g&&g(Object.assign(Object.assign({},a),{response:e})),{status:!0})).catch(e=>(this.tableLoading=!1,p&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),d&&d(Object.assign(Object.assign({},a),{response:e})),{status:!1}))):void(h&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.dataUnchanged"),status:"info"})))})}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:U=commands.get(P);U&&(U.commandMethod?U.commandMethod({code:P,button:E,$grid:this,$table:C},...c):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[P]))}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()});"development"!==process.env.NODE_ENV||_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&&("development"!==process.env.NODE_ENV||_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))},pageChangeEvent(t){var{proxyConfig:e,tablePage:r}=this,{currentPage:o,pageSize:s}=t;r.currentPage=o,r.pageSize=s,this.$emit("page-change",Object.assign({$grid:this},t)),e&&this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})},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;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{$refs:e,sortData:t,proxyConfig:r}=this,e=e.xTable;return r?{data:this.tableData,filter:this.filterData,form:this.getFormData(),sort:t.length?t[0]:{},sorts:t,pager:this.tablePage,pendingRecords:e?e.getPendingRecords():[]}:null}}),"development"===process.env.NODE_ENV?{loadColumn(e){let t=this.$scopedSlots;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||t[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),this.$refs.xTable.loadColumn(e)},reloadColumn(e){return this.clearAll(),this.loadColumn(e)}}:null)};