vxe-table 4.11.19 → 4.11.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/es/grid/src/grid.js +41 -33
  2. package/es/style.css +1 -1
  3. package/es/table/module/filter/panel.js +12 -2
  4. package/es/table/module/keyboard/hook.js +30 -1
  5. package/es/table/src/table.js +6 -2
  6. package/es/ui/index.js +1 -1
  7. package/es/ui/src/log.js +1 -1
  8. package/lib/grid/src/grid.js +39 -38
  9. package/lib/grid/src/grid.min.js +1 -1
  10. package/lib/index.umd.js +92 -46
  11. package/lib/index.umd.min.js +1 -1
  12. package/lib/style.css +1 -1
  13. package/lib/table/module/filter/panel.js +8 -2
  14. package/lib/table/module/filter/panel.min.js +1 -1
  15. package/lib/table/module/keyboard/hook.js +31 -1
  16. package/lib/table/module/keyboard/hook.min.js +1 -1
  17. package/lib/table/src/table.js +9 -2
  18. package/lib/table/src/table.min.js +1 -1
  19. package/lib/ui/index.js +1 -1
  20. package/lib/ui/index.min.js +1 -1
  21. package/lib/ui/src/log.js +1 -1
  22. package/lib/ui/src/log.min.js +1 -1
  23. package/package.json +2 -2
  24. package/packages/grid/src/grid.ts +45 -39
  25. package/packages/table/module/filter/panel.ts +12 -2
  26. package/packages/table/module/keyboard/hook.ts +29 -2
  27. package/packages/table/src/table.ts +8 -3
  28. /package/es/{iconfont.1741333398347.ttf → iconfont.1741744105265.ttf} +0 -0
  29. /package/es/{iconfont.1741333398347.woff → iconfont.1741744105265.woff} +0 -0
  30. /package/es/{iconfont.1741333398347.woff2 → iconfont.1741744105265.woff2} +0 -0
  31. /package/lib/{iconfont.1741333398347.ttf → iconfont.1741744105265.ttf} +0 -0
  32. /package/lib/{iconfont.1741333398347.woff → iconfont.1741744105265.woff} +0 -0
  33. /package/lib/{iconfont.1741333398347.woff2 → iconfont.1741744105265.woff2} +0 -0
@@ -358,7 +358,6 @@ hooks.add('tableKeyboardModule', {
358
358
  const treeOpts = computeTreeOpts.value;
359
359
  const childrenField = treeOpts.children || treeOpts.childrenField;
360
360
  let targetRow;
361
- evnt.preventDefault();
362
361
  if (currentRow) {
363
362
  if (treeConfig) {
364
363
  const { index, items } = XEUtils.findTree(afterFullData, item => item === currentRow, { children: childrenField });
@@ -383,6 +382,7 @@ hooks.add('tableKeyboardModule', {
383
382
  targetRow = afterFullData[0];
384
383
  }
385
384
  if (targetRow) {
385
+ evnt.preventDefault();
386
386
  const params = {
387
387
  $table: $xeTable,
388
388
  row: targetRow,
@@ -393,6 +393,35 @@ hooks.add('tableKeyboardModule', {
393
393
  .then(() => $xeTable.triggerCurrentRowEvent(evnt, params));
394
394
  }
395
395
  },
396
+ // 处理当前列方向键移动
397
+ moveCurrentColumn(isLeftArrow, isRightArrow, evnt) {
398
+ const { currentColumn } = reactData;
399
+ const { visibleColumn } = internalData;
400
+ let targetCol = null;
401
+ if (currentColumn) {
402
+ const _columnIndex = $xeTable.getVTColumnIndex(currentColumn);
403
+ if (isLeftArrow && _columnIndex > 0) {
404
+ targetCol = visibleColumn[_columnIndex - 1];
405
+ }
406
+ else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
407
+ targetCol = visibleColumn[_columnIndex + 1];
408
+ }
409
+ }
410
+ else {
411
+ targetCol = visibleColumn[0];
412
+ }
413
+ if (targetCol) {
414
+ evnt.preventDefault();
415
+ const params = {
416
+ $table: $xeTable,
417
+ column: targetCol,
418
+ columnIndex: $xeTable.getColumnIndex(targetCol),
419
+ $columnIndex: $xeTable.getVMColumnIndex(targetCol)
420
+ };
421
+ $xeTable.scrollToColumn(targetCol)
422
+ .then(() => $xeTable.triggerCurrentColumnEvent(evnt, params));
423
+ }
424
+ },
396
425
  // 处理可编辑方向键移动
397
426
  moveSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
398
427
  const { afterFullData, visibleColumn } = internalData;
@@ -3696,7 +3696,9 @@ export default defineComponent({
3696
3696
  */
3697
3697
  revertData(rows, field) {
3698
3698
  const { keepSource, treeConfig } = props;
3699
+ const { editStore } = reactData;
3699
3700
  const { fullAllDataRowIdData, fullDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData } = internalData;
3701
+ const removeTempMaps = Object.assign({}, editStore.removeMaps);
3700
3702
  const treeOpts = computeTreeOpts.value;
3701
3703
  const { transform } = treeOpts;
3702
3704
  if (!keepSource) {
@@ -3731,6 +3733,7 @@ export default defineComponent({
3731
3733
  XEUtils.destructuring(row, XEUtils.clone(oRow, true));
3732
3734
  }
3733
3735
  if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
3736
+ delete removeTempMaps[rowid];
3734
3737
  tableFullData.unshift(row);
3735
3738
  afterFullData.unshift(row);
3736
3739
  reDelFlag = true;
@@ -3742,6 +3745,7 @@ export default defineComponent({
3742
3745
  }
3743
3746
  if (rows) {
3744
3747
  if (reDelFlag) {
3748
+ editStore.removeMaps = removeTempMaps;
3745
3749
  $xeTable.updateFooter();
3746
3750
  $xeTable.cacheRowMap(false);
3747
3751
  $xeTable.handleTableData(treeConfig && transform);
@@ -6239,8 +6243,8 @@ export default defineComponent({
6239
6243
  if (selected.row && selected.column) {
6240
6244
  $xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
6241
6245
  }
6242
- else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
6243
- // 当前行按键上下移动
6246
+ // 当前行按键上下移动
6247
+ if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
6244
6248
  $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
6245
6249
  }
6246
6250
  }
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "4.11.19";
3
+ export const version = "4.11.21";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"4.11.19"}`;
3
+ const version = `table v${"4.11.21"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -500,6 +500,23 @@ var _default = exports.default = (0, _vue.defineComponent)({
500
500
  }
501
501
  return null;
502
502
  };
503
+ const getConfigSlot = slotConfigs => {
504
+ const slotConf = {};
505
+ _xeUtils.default.objectMap(slotConfigs, (slotFunc, slotKey) => {
506
+ if (slotFunc) {
507
+ if (_xeUtils.default.isString(slotFunc)) {
508
+ if (slots[slotFunc]) {
509
+ slotConf[slotKey] = slots[slotFunc];
510
+ } else {
511
+ (0, _log.errLog)('vxe.error.notSlot', [slotFunc]);
512
+ }
513
+ } else {
514
+ slotConf[slotKey] = slotFunc;
515
+ }
516
+ }
517
+ });
518
+ return slotConf;
519
+ };
503
520
  /**
504
521
  * 渲染表单
505
522
  */
@@ -710,42 +727,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
710
727
  } = props;
711
728
  const proxyOpts = computeProxyOpts.value;
712
729
  const pagerOpts = computePagerOpts.value;
730
+ const pagerSlot = slots.pager;
713
731
  if (pagerConfig && (0, _utils.isEnableConf)(pagerOpts) || slots.pager) {
714
- let slotVNs = [];
715
- if (slots.pager) {
716
- slotVNs = slots.pager({
717
- $grid: $xeGrid
718
- });
719
- } else {
720
- const pagerOptSlots = pagerOpts.slots;
721
- const pagerSlots = {};
722
- let leftSlot;
723
- let rightSlot;
724
- if (pagerOptSlots) {
725
- leftSlot = getFuncSlot(pagerOptSlots, 'left');
726
- rightSlot = getFuncSlot(pagerOptSlots, 'right');
727
- if (leftSlot) {
728
- pagerSlots.left = leftSlot;
729
- }
730
- if (rightSlot) {
731
- pagerSlots.right = rightSlot;
732
- }
733
- }
734
- if (VxeUIPagerComponent) {
735
- slotVNs.push((0, _vue.h)(VxeUIPagerComponent, Object.assign(Object.assign(Object.assign({
736
- ref: refPager
737
- }, pagerOpts), proxyConfig && (0, _utils.isEnableConf)(proxyOpts) ? reactData.tablePage : {}), {
738
- onPageChange: pageChangeEvent
739
- }), pagerSlots));
740
- }
741
- }
742
732
  return (0, _vue.h)('div', {
743
733
  ref: refPagerWrapper,
744
734
  key: 'pager',
745
735
  class: 'vxe-grid--pager-wrapper'
746
- }, slotVNs);
736
+ }, pagerSlot ? pagerSlot({
737
+ $grid: $xeGrid
738
+ }) : [VxeUIPagerComponent ? (0, _vue.h)(VxeUIPagerComponent, Object.assign(Object.assign(Object.assign({
739
+ ref: refPager
740
+ }, pagerOpts), proxyConfig && (0, _utils.isEnableConf)(proxyOpts) ? reactData.tablePage : {}), {
741
+ onPageChange: pageChangeEvent
742
+ }), getConfigSlot(pagerOpts.slots)) : renderEmptyElement($xeGrid)]);
747
743
  }
748
- return (0, _vue.createCommentVNode)();
744
+ return renderEmptyElement($xeGrid);
749
745
  };
750
746
  const renderChildLayout = layoutKeys => {
751
747
  const childVNs = [];
@@ -1404,18 +1400,23 @@ var _default = exports.default = (0, _vue.defineComponent)({
1404
1400
  isZMax
1405
1401
  } = reactData;
1406
1402
  const el = refElem.value;
1407
- const formWrapper = refFormWrapper.value;
1408
- const toolbarWrapper = refToolbarWrapper.value;
1409
- const topWrapper = refTopWrapper.value;
1410
- const bottomWrapper = refBottomWrapper.value;
1411
- const pagerWrapper = refPagerWrapper.value;
1412
- const parentPaddingSize = isZMax ? 0 : (0, _dom.getPaddingTopBottomSize)(el.parentNode);
1413
- return parentPaddingSize + (0, _dom.getPaddingTopBottomSize)(el) + (0, _dom.getOffsetHeight)(formWrapper) + (0, _dom.getOffsetHeight)(toolbarWrapper) + (0, _dom.getOffsetHeight)(topWrapper) + (0, _dom.getOffsetHeight)(bottomWrapper) + (0, _dom.getOffsetHeight)(pagerWrapper);
1403
+ if (el) {
1404
+ const formWrapper = refFormWrapper.value;
1405
+ const toolbarWrapper = refToolbarWrapper.value;
1406
+ const topWrapper = refTopWrapper.value;
1407
+ const bottomWrapper = refBottomWrapper.value;
1408
+ const pagerWrapper = refPagerWrapper.value;
1409
+ const parentEl = el.parentElement;
1410
+ const parentPaddingSize = isZMax ? 0 : parentEl ? (0, _dom.getPaddingTopBottomSize)(parentEl) : 0;
1411
+ return parentPaddingSize + (0, _dom.getPaddingTopBottomSize)(el) + (0, _dom.getOffsetHeight)(formWrapper) + (0, _dom.getOffsetHeight)(toolbarWrapper) + (0, _dom.getOffsetHeight)(topWrapper) + (0, _dom.getOffsetHeight)(bottomWrapper) + (0, _dom.getOffsetHeight)(pagerWrapper);
1412
+ }
1413
+ return 0;
1414
1414
  },
1415
1415
  getParentHeight() {
1416
1416
  const el = refElem.value;
1417
1417
  if (el) {
1418
- return (reactData.isZMax ? (0, _dom.getDomNode)().visibleHeight : _xeUtils.default.toNumber(getComputedStyle(el.parentNode).height)) - gridPrivateMethods.getExcludeHeight();
1418
+ const parentEl = el.parentElement;
1419
+ return (reactData.isZMax ? (0, _dom.getDomNode)().visibleHeight : parentEl ? _xeUtils.default.toNumber(getComputedStyle(parentEl).height) : 0) - gridPrivateMethods.getExcludeHeight();
1419
1420
  }
1420
1421
  return 0;
1421
1422
  },
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table")),_toolbar=_interopRequireDefault(require("../../toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","isSort","getSortColumns","closeFilter","isFilter","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","openTooltip","moveColumnTo","moveRowTo","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(T,e){let t,{slots:s,emit:r}=e;var E=_xeUtils.default.uniqueId();let l=_ui.VxeUI.getComponent("VxeForm"),n=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],O=useFns.useSize(T).computeSize,j=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),u=(0,_vue.ref)(),S=(0,_vue.ref)(),d=(0,_vue.ref)(),i=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),f=(0,_vue.ref)(),p=(0,_vue.ref)();var o=e=>{let t={};return e.forEach(o=>{t[o]=(...e)=>{var t=S.value;if(t&&t[o])return t[o](...e)}}),t};let D=o(tableComponentMethodKeys),q=(tableComponentMethodKeys.forEach(o=>{D[o]=(...e)=>{var t=S.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),T.proxyConfig))),Z=(0,_vue.computed)(()=>{var e=q.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),M=(0,_vue.computed)(()=>q.value.showActiveMsg),V=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,T.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,T.formConfig)),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,T.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,T.zoomConfig)),I=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=T,{isZMax:o,tZindex:r}=j,a={};return o?a.zIndex=r:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),k=(0,_vue.computed)(()=>{let t={},o=T;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),P=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=T,{isZMax:i,tableLoading:l,tablePage:n,tableData:s}=j,u=k.value,d=q.value,g=V.value,c=Object.assign({},u);return i&&(u.maxHeight?c.maxHeight="100%":c.height="100%"),a&&(0,_utils.isEnableConf)(d)&&(c.loading=o||l,c.data=s,t)&&d.seq&&(0,_utils.isEnableConf)(g)&&(c.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),r&&(c.editConfig=Object.assign({},r)),c}),U=(0,_vue.computed)(()=>{var e=T.layouts;let t=[],o=[],r=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||w).length&&(_xeUtils.default.isArray(t[0])?(o=t[0],r=t[1]||[],a=t[2]||[]):r=t),{headKeys:o,bodyKeys:r,footKeys:a}});var N=(0,_vue.computed)(()=>{var e=V.value;return""+e.currentPage+e.pageSize});let K={refElem:u,refTable:S,refForm:d,refToolbar:i,refPager:g},A={computeProxyOpts:q,computePagerOpts:V,computeFormOpts:x,computeToolbarOpts:F,computeZoomOpts:a},L={xID:E,props:T,context:e,reactData:j,getRefMaps:()=>K,getComputeMaps:()=>A},b=()=>{var e=F.value;T.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=S.value,t=i.value;e&&t&&e.connect(t)})},z=()=>{var e=T.proxyConfig,t=j.formData,o=q.value,r=x.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},_=()=>{var e=j.tablePage,t=T.pagerConfig,o=V.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},$=(e,t)=>{var o=q.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o):r)||getI18n(t)},H=(e,t,o)=>{var r=M.value,a=D.getCheckboxRecords();if(r)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return o()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&o();return Promise.resolve()},G=e=>{var t=T.proxyConfig,o=j.tablePage;let{$event:r,currentPage:a,pageSize:i}=e;var l=q.value;o.currentPage=a,o.pageSize=i,B.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(l)&&B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,r)})},Q=t=>{var e=S.value,o=T.proxyConfig,e=e.getComputeMaps().computeSortOpts,r=q.value;e.value.remote&&(j.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(j.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("sort-change",t,t.$event)},W=t=>{var e=S.value,o=T.proxyConfig,e=e.getComputeMaps().computeFilterOpts,r=q.value;e.value.remote&&(j.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(j.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("filter-change",t,t.$event)},Y=t=>{var e=T.proxyConfig,o=q.value;e&&(0,_utils.isEnableConf)(o)&&B.commitProxy("reload").then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),B.dispatchEvent("form-submit",t,t.$event)},J=e=>{var t=T.proxyConfig;let o=e.$event;var r=q.value,a=S.value;t&&(0,_utils.isEnableConf)(r)&&(a.clearScroll(),B.commitProxy("reload").then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),B.dispatchEvent("form-reset",e,o)},X=e=>{B.dispatchEvent("form-submit-invalid",e,e.$event)},ee=e=>{var t=e.$event;(0,_vue.nextTick)(()=>D.recalculate(!0)),B.dispatchEvent("form-toggle-collapse",e,t),B.dispatchEvent("form-collapse",e,t)},te=e=>{var t=j.isZMax;return(e?!t:t)&&(j.isZMax=!t,j.tZindex<(0,_utils.getLastZIndex)())&&(j.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),j.isZMax))},h=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(s[e])return s[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},oe=()=>{var{formConfig:e,proxyConfig:o}=T,r=j.formData,a=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(i)||s.form){let e=[];if(s.form)e=s.form({$grid:L});else if(i.items){let t={};if(!i.inited){i.inited=!0;let t=a.beforeItem;a&&t&&i.items.forEach(e=>{t({$grid:L,item:e})})}i.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:d},Object.assign({},i,{data:o&&(0,_utils.isEnableConf)(a)&&a.form?r:i.data})),{onSubmit:Y,onReset:J,onSubmitInvalid:X,onCollapse:ee}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},re=()=>{var t,o,r=T.toolbarConfig,a=F.value;if(r&&(0,_utils.isEnableConf)(a)||s.toolbar){let e=[];return s.toolbar?e=s.toolbar({$grid:L}):(r={},(o=a.slots)&&(t=h(o,"buttons"),o=h(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:i},a),r))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},ae=()=>s.top?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},s.top({$grid:L})):(0,_vue.createCommentVNode)(),ie=()=>{var e=s.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},le=()=>{var e=s.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},ne=()=>{var e=T.proxyConfig,t=P.value,o=q.value,r=Object.assign({},de),a=s.empty,i=s.loading,l=s.rowDragIcon||s["row-drag-icon"],n=s.columnDragIcon||s["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=Q),o.filter)&&(r.onFilterChange=W),{});return a&&(e.empty=a),i&&(e.loading=i),l&&(e.rowDragIcon=l),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:S},t),r),e)])},se=()=>s.bottom?(0,_vue.h)("div",{ref:f,key:"bottom",class:"vxe-grid--bottom-wrapper"},s.bottom({$grid:L})):(0,_vue.createCommentVNode)(),ue=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=T,i=q.value,l=V.value;if(a&&(0,_utils.isEnableConf)(l)||s.pager){let e=[];return s.pager?e=s.pager({$grid:L}):(a={},(o=l.slots)&&(t=h(o,"left"),o=h(o,"right"),t&&(a.left=t),o)&&(a.right=o),n&&e.push((0,_vue.h)(n,Object.assign(Object.assign(Object.assign({ref:g},l),r&&(0,_utils.isEnableConf)(i)?j.tablePage:{}),{onPageChange:G}),a))),(0,_vue.h)("div",{ref:p,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},C=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(oe());break;case"Toolbar":t.push(re());break;case"Top":t.push(ae());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ie(),ne(),le()]));break;case"Bottom":t.push(se());break;case"Pager":t.push(ue());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},de={},ge=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);de[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=T,o=j.proxyInited,r=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(i)&&r.form&&i.items){let a={};i.items.forEach(t=>{var{field:o,itemRender:r}=t;if(o){let e=null;r&&(r=r.defaultValue,_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),a[o]=e}}),j.formData=a}o||!(j.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>B.commitProxy("_init")).then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),ce=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&j.isZMax&&!1!==t.escRestore&&y.triggerZoomEvent(e)};let B={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:L},t))},getEl(){return u.value},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:l,editRules:g,validConfig:c}=T,n=j.tablePage,v=M.value,m=Z.value;var o=q.value;let s=V.value;var r=F.value;let{beforeQuery:u,afterQuery:f,beforeDelete:p,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=o,C=o.response||o.props||{},y=S.value;var R=z();let E=null,w=null;w=_xeUtils.default.isString(t)?(o=r.buttons,r=e&&(0,_utils.isEnableConf)(r)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,E=r?r.item:null,t):(E=t).code;var a=E?E.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,P=M.value,O=S.value,(k=O.getCheckboxRecords()).length?(O.togglePendingRow(k),D.clearCheckboxRow()):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return H(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let a=h.querySuccess,i=h.queryError;if(O){var I,k="_init"===w,P="reload"===w;let t=[],o=[],e={};if(l&&((k||P)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),k){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,U=I.value,e=U.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(o=y.getCheckedFilters())}else y&&(P?y.clearAll():(t=y.getSortColumns(),o=y.getCheckedFilters()));let r={code:w,button:E,isInited:k,isReload:P,$grid:L,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:R,options:O};return j.sortData=t,j.filterData=o,j.tableLoading=!0,Promise.resolve((u||O)(r,...d)).then(e=>{var t,o;return j.tableLoading=!1,e?l&&(0,_utils.isEnableConf)(s)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),t=C.result,j.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:L}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>t&&(n.currentPage=t)):(o=C.list,j.tableData=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o):e)||[]):j.tableData=[],f&&f(r,...d),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0}}).catch(e=>(j.tableLoading=!1,i&&i(Object.assign(Object.assign({},r),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let r=h.delete,a=h.deleteSuccess,i=h.deleteError;if(r){let e=D.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var U={removeRecords:t};let o={$grid:L,code:w,button:E,body:U,form:R,options:r};if(e.length)return H(w,"vxe.grid.deleteSelectRecord",()=>t.length?(j.tableLoading=!0,Promise.resolve((p||r)(o,...d)).then(e=>(j.tableLoading=!1,y.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),x?x(o,...d):B.commitProxy("query"),a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),i&&i(Object.assign(Object.assign({},o),{response:e})),{status:!1}))):y.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=h.save,s=h.saveSuccess,u=h.saveError;if(n){let t=y.getRecordset(),{insertRecords:o,removeRecords:r,updateRecords:a,pendingRecords:i}=t,l={$grid:L,code:w,button:E,body:t,form:R,options:n},e=(o.length&&(t.pendingRecords=i.filter(e=>-1===y.findRowIndexOf(o,e))),i.length&&(t.insertRecords=o.filter(e=>-1===y.findRowIndexOf(i,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||r.length||a.length||t.pendingRecords.length?(j.tableLoading=!0,Promise.resolve((b||n)(l,...d)).then(e=>(j.tableLoading=!1,y.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(l,...d):B.commitProxy("query"),s&&s(Object.assign(Object.assign({},l),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},l),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(w);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:w,button:E,$grid:L,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return j.isZMax?B.revert():B.maximize()},isMaximized(){return j.isZMax},maximize(){return te(!0)},revert(){return te()},getFormData:z,getFormItems(e){var t=x.value,o=T.formConfig,r=t.items;let a=[];return _xeUtils.default.eachTree(o&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=S.value;return T.proxyConfig?(e=j.sortData,{data:j.tableData,filter:j.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:j.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},y=("development"===process.env.NODE_ENV&&(B.loadColumn=e=>{var t=S.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},B.reloadColumn=e=>(D.clearAll(),B.loadColumn(e))),{extendTableMethods:o,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=j.isZMax,t=u.value,o=c.value,r=v.value,a=m.value,i=f.value,l=p.value;return(e?0:(0,_dom.getPaddingTopBottomSize)(t.parentNode))+(0,_dom.getPaddingTopBottomSize)(t)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(i)+(0,_dom.getOffsetHeight)(l)},getParentHeight(){var e=u.value;return e?(j.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-y.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){let o=e.code;return B.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&B.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){y.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){y.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){B.zoom(),B.dispatchEvent("zoom",{type:j.isZMax?"max":"revert"},e)}}),R=(Object.assign(L,D,B,y),(0,_vue.ref)(0));(0,_vue.watch)(()=>T.columns?T.columns.length:-1,()=>{R.value++}),(0,_vue.watch)(()=>T.columns,()=>{R.value++}),(0,_vue.watch)(R,()=>{(0,_vue.nextTick)(()=>L.loadColumn(T.columns||[]))}),(0,_vue.watch)(()=>T.toolbarConfig,()=>{b()}),(0,_vue.watch)(N,()=>{_()}),(0,_vue.watch)(()=>T.proxyConfig,()=>{ge()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(L))&&_xeUtils.default.isObject(e)&&Object.assign(L,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.columns;T.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),T.pagerConfig&&!n&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&L.loadColumn(e),b(),ge()}),globalEvents.on(L,"keydown",ce)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(L,"keydown")});return L.renderVN=()=>{var e=O.value,t=I.value;return(0,_vue.h)("div",{ref:u,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!T.animat,"is--round":T.round,"is--maximize":j.isZMax,"is--loading":T.loading||j.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:o}=U.value,r=s.asideLeft||s["aside-left"],a=s.asideRight||s["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},C(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},r({})):renderEmptyElement(L),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},C(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(L)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},C(o))]})())},(0,_vue.provide)("$xeGrid",L),L},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table")),_toolbar=_interopRequireDefault(require("../../toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","isSort","getSortColumns","closeFilter","isFilter","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","openTooltip","moveColumnTo","moveRowTo","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(j,e){let t,{slots:s,emit:r}=e;var R=_xeUtils.default.uniqueId();let l=_ui.VxeUI.getComponent("VxeForm"),i=_ui.VxeUI.getComponent("VxePager"),E=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],w=useFns.useSize(j).computeSize,T=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),u=(0,_vue.ref)(),S=(0,_vue.ref)(),n=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),f=(0,_vue.ref)(),p=(0,_vue.ref)();var o=e=>{let t={};return e.forEach(o=>{t[o]=(...e)=>{var t=S.value;if(t&&t[o])return t[o](...e)}}),t};let D=o(tableComponentMethodKeys),M=(tableComponentMethodKeys.forEach(o=>{D[o]=(...e)=>{var t=S.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),j.proxyConfig))),K=(0,_vue.computed)(()=>{var e=M.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),q=(0,_vue.computed)(()=>M.value.showActiveMsg),V=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,j.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,j.formConfig)),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,j.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,j.zoomConfig)),O=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=j,{isZMax:o,tZindex:r}=T,a={};return o?a.zIndex=r:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),I=(0,_vue.computed)(()=>{let t={},o=j;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),k=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=j,{isZMax:i,tableLoading:l,tablePage:n,tableData:s}=T,u=I.value,d=M.value,g=V.value,c=Object.assign({},u);return i&&(u.maxHeight?c.maxHeight="100%":c.height="100%"),a&&(0,_utils.isEnableConf)(d)&&(c.loading=o||l,c.data=s,t)&&d.seq&&(0,_utils.isEnableConf)(g)&&(c.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),r&&(c.editConfig=Object.assign({},r)),c}),U=(0,_vue.computed)(()=>{var e=j.layouts;let t=[],o=[],r=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||E).length&&(_xeUtils.default.isArray(t[0])?(o=t[0],r=t[1]||[],a=t[2]||[]):r=t),{headKeys:o,bodyKeys:r,footKeys:a}});var P=(0,_vue.computed)(()=>{var e=V.value;return""+e.currentPage+e.pageSize});let A={refElem:u,refTable:S,refForm:n,refToolbar:d,refPager:g},N={computeProxyOpts:M,computePagerOpts:V,computeFormOpts:x,computeToolbarOpts:F,computeZoomOpts:a},L={xID:R,props:j,context:e,reactData:T,getRefMaps:()=>A,getComputeMaps:()=>N},b=()=>{var e=F.value;j.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=S.value,t=d.value;e&&t&&e.connect(t)})},z=()=>{var e=j.proxyConfig,t=T.formData,o=M.value,r=x.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},_=()=>{var e=T.tablePage,t=j.pagerConfig,o=V.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},$=(e,t)=>{var o=M.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o):r)||getI18n(t)},B=(e,t,o)=>{var r=q.value,a=D.getCheckboxRecords();if(r)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return o()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&o();return Promise.resolve()},H=e=>{var t=j.proxyConfig,o=T.tablePage;let{$event:r,currentPage:a,pageSize:i}=e;var l=M.value;o.currentPage=a,o.pageSize=i,Z.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(l)&&Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,r)})},G=t=>{var e=S.value,o=j.proxyConfig,e=e.getComputeMaps().computeSortOpts,r=M.value;e.value.remote&&(T.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,t.$event)})),Z.dispatchEvent("sort-change",t,t.$event)},Q=t=>{var e=S.value,o=j.proxyConfig,e=e.getComputeMaps().computeFilterOpts,r=M.value;e.value.remote&&(T.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,t.$event)})),Z.dispatchEvent("filter-change",t,t.$event)},W=t=>{var e=j.proxyConfig,o=M.value;e&&(0,_utils.isEnableConf)(o)&&Z.commitProxy("reload").then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),Z.dispatchEvent("form-submit",t,t.$event)},Y=e=>{var t=j.proxyConfig;let o=e.$event;var r=M.value,a=S.value;t&&(0,_utils.isEnableConf)(r)&&(a.clearScroll(),Z.commitProxy("reload").then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),Z.dispatchEvent("form-reset",e,o)},J=e=>{Z.dispatchEvent("form-submit-invalid",e,e.$event)},X=e=>{var t=e.$event;(0,_vue.nextTick)(()=>D.recalculate(!0)),Z.dispatchEvent("form-toggle-collapse",e,t),Z.dispatchEvent("form-collapse",e,t)},ee=e=>{var t=T.isZMax;return(e?!t:t)&&(T.isZMax=!t,T.tZindex<(0,_utils.getLastZIndex)())&&(T.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),T.isZMax))},te=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(s[e])return s[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},oe=e=>{let o={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?s[e]?o[t]=s[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):o[t]=e)}),o},re=()=>{var{formConfig:e,proxyConfig:o}=j,r=T.formData,a=M.value,i=x.value;if(e&&(0,_utils.isEnableConf)(i)||s.form){let e=[];if(s.form)e=s.form({$grid:L});else if(i.items){let t={};if(!i.inited){i.inited=!0;let t=a.beforeItem;a&&t&&i.items.forEach(e=>{t({$grid:L,item:e})})}i.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:n},Object.assign({},i,{data:o&&(0,_utils.isEnableConf)(a)&&a.form?r:i.data})),{onSubmit:W,onReset:Y,onSubmitInvalid:J,onCollapse:X}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},ae=()=>{var t,o,r=j.toolbarConfig,a=F.value;if(r&&(0,_utils.isEnableConf)(a)||s.toolbar){let e=[];return s.toolbar?e=s.toolbar({$grid:L}):(r={},(o=a.slots)&&(t=te(o,"buttons"),o=te(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:d},a),r))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},ie=()=>s.top?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},s.top({$grid:L})):(0,_vue.createCommentVNode)(),le=()=>{var e=s.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},ne=()=>{var e=s.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},se=()=>{var e=j.proxyConfig,t=k.value,o=M.value,r=Object.assign({},ge),a=s.empty,i=s.loading,l=s.rowDragIcon||s["row-drag-icon"],n=s.columnDragIcon||s["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=G),o.filter)&&(r.onFilterChange=Q),{});return a&&(e.empty=a),i&&(e.loading=i),l&&(e.rowDragIcon=l),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:S},t),r),e)])},ue=()=>s.bottom?(0,_vue.h)("div",{ref:f,key:"bottom",class:"vxe-grid--bottom-wrapper"},s.bottom({$grid:L})):(0,_vue.createCommentVNode)(),de=()=>{var{proxyConfig:e,pagerConfig:t}=j,o=M.value,r=V.value,a=s.pager;return t&&(0,_utils.isEnableConf)(r)||s.pager?(0,_vue.h)("div",{ref:p,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:L}):[i?(0,_vue.h)(i,Object.assign(Object.assign(Object.assign({ref:g},r),e&&(0,_utils.isEnableConf)(o)?T.tablePage:{}),{onPageChange:H}),oe(r.slots)):renderEmptyElement(L)]):renderEmptyElement(L)},h=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(re());break;case"Toolbar":t.push(ae());break;case"Top":t.push(ie());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[le(),se(),ne()]));break;case"Bottom":t.push(ue());break;case"Pager":t.push(de());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},ge={},ce=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);ge[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=j,o=T.proxyInited,r=M.value,i=x.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(i)&&r.form&&i.items){let a={};i.items.forEach(t=>{var{field:o,itemRender:r}=t;if(o){let e=null;r&&(r=r.defaultValue,_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),a[o]=e}}),T.formData=a}o||!(T.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>Z.commitProxy("_init")).then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),ve=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&T.isZMax&&!1!==t.escRestore&&C.triggerZoomEvent(e)};let Z={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:L},t))},getEl(){return u.value},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:l,editRules:g,validConfig:c}=j,n=T.tablePage,v=q.value,m=K.value;var o=M.value;let s=V.value;var r=F.value;let{beforeQuery:u,afterQuery:f,beforeDelete:p,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=o,C=o.response||o.props||{},y=S.value;var R=z();let E=null,w=null;w=_xeUtils.default.isString(t)?(o=r.buttons,r=e&&(0,_utils.isEnableConf)(r)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,E=r?r.item:null,t):(E=t).code;var a=E?E.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,U=q.value,O=S.value,(k=O.getCheckboxRecords()).length?(O.togglePendingRow(k),D.clearCheckboxRow()):U&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return B(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let a=h.querySuccess,i=h.queryError;if(O){var I,k="_init"===w,U="reload"===w;let t=[],o=[],e={};if(l&&((k||U)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),k){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,P=I.value,e=P.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(o=y.getCheckedFilters())}else y&&(U?y.clearAll():(t=y.getSortColumns(),o=y.getCheckedFilters()));let r={code:w,button:E,isInited:k,isReload:U,$grid:L,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:R,options:O};return T.sortData=t,T.filterData=o,T.tableLoading=!0,Promise.resolve((u||O)(r,...d)).then(e=>{var t,o;return T.tableLoading=!1,e?l&&(0,_utils.isEnableConf)(s)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),t=C.result,T.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:L}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>t&&(n.currentPage=t)):(o=C.list,T.tableData=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o):e)||[]):T.tableData=[],f&&f(r,...d),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0}}).catch(e=>(T.tableLoading=!1,i&&i(Object.assign(Object.assign({},r),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let r=h.delete,a=h.deleteSuccess,i=h.deleteError;if(r){let e=D.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var P={removeRecords:t};let o={$grid:L,code:w,button:E,body:P,form:R,options:r};if(e.length)return B(w,"vxe.grid.deleteSelectRecord",()=>t.length?(T.tableLoading=!0,Promise.resolve((p||r)(o,...d)).then(e=>(T.tableLoading=!1,y.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),x?x(o,...d):Z.commitProxy("query"),a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),i&&i(Object.assign(Object.assign({},o),{response:e})),{status:!1}))):y.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=h.save,s=h.saveSuccess,u=h.saveError;if(n){let t=y.getRecordset(),{insertRecords:o,removeRecords:r,updateRecords:a,pendingRecords:i}=t,l={$grid:L,code:w,button:E,body:t,form:R,options:n},e=(o.length&&(t.pendingRecords=i.filter(e=>-1===y.findRowIndexOf(o,e))),i.length&&(t.insertRecords=o.filter(e=>-1===y.findRowIndexOf(i,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||r.length||a.length||t.pendingRecords.length?(T.tableLoading=!0,Promise.resolve((b||n)(l,...d)).then(e=>(T.tableLoading=!1,y.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(l,...d):Z.commitProxy("query"),s&&s(Object.assign(Object.assign({},l),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},l),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var P=commands.get(w);P&&((P=P.tableCommandMethod||P.commandMethod)?P({code:w,button:E,$grid:L,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return T.isZMax?Z.revert():Z.maximize()},isMaximized(){return T.isZMax},maximize(){return ee(!0)},revert(){return ee()},getFormData:z,getFormItems(e){var t=x.value,o=j.formConfig,r=t.items;let a=[];return _xeUtils.default.eachTree(o&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=S.value;return j.proxyConfig?(e=T.sortData,{data:T.tableData,filter:T.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:T.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},C=("development"===process.env.NODE_ENV&&(Z.loadColumn=e=>{var t=S.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},Z.reloadColumn=e=>(D.clearAll(),Z.loadColumn(e))),{extendTableMethods:o,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,o,r,a,i,l=T.isZMax,n=u.value;return n?(e=c.value,t=v.value,o=m.value,r=f.value,a=p.value,i=n.parentElement,(!l&&i?(0,_dom.getPaddingTopBottomSize)(i):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=u.value;return e?(e=e.parentElement,(T.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-C.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let o=e.code;return Z.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&Z.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){C.triggerToolbarCommitEvent(e,t),Z.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){C.triggerToolbarCommitEvent(e,t),Z.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){Z.zoom(),Z.dispatchEvent("zoom",{type:T.isZMax?"max":"revert"},e)}}),y=(Object.assign(L,D,Z,C),(0,_vue.ref)(0));(0,_vue.watch)(()=>j.columns?j.columns.length:-1,()=>{y.value++}),(0,_vue.watch)(()=>j.columns,()=>{y.value++}),(0,_vue.watch)(y,()=>{(0,_vue.nextTick)(()=>L.loadColumn(j.columns||[]))}),(0,_vue.watch)(()=>j.toolbarConfig,()=>{b()}),(0,_vue.watch)(P,()=>{_()}),(0,_vue.watch)(()=>j.proxyConfig,()=>{ce()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(L))&&_xeUtils.default.isObject(e)&&Object.assign(L,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=j.columns;j.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),j.pagerConfig&&!i&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&L.loadColumn(e),b(),ce()}),globalEvents.on(L,"keydown",ve)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(L,"keydown")});return L.renderVN=()=>{var e=w.value,t=O.value;return(0,_vue.h)("div",{ref:u,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!j.animat,"is--round":j.round,"is--maximize":T.isZMax,"is--loading":j.loading||T.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:o}=U.value,r=s.asideLeft||s["aside-left"],a=s.asideRight||s["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},h(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},r({})):renderEmptyElement(L),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},h(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(L)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},h(o))]})())},(0,_vue.provide)("$xeGrid",L),L},render(){return this.renderVN()}});
package/lib/index.umd.js CHANGED
@@ -3051,7 +3051,7 @@ function eqEmptyValue(cellValue) {
3051
3051
  ;// ./packages/ui/index.ts
3052
3052
 
3053
3053
 
3054
- const version = "4.11.19";
3054
+ const version = "4.11.21";
3055
3055
  core_.VxeUI.version = version;
3056
3056
  core_.VxeUI.tableVersion = version;
3057
3057
  core_.VxeUI.setConfig({
@@ -3499,7 +3499,7 @@ var es_iterator_some = __webpack_require__(3579);
3499
3499
  const {
3500
3500
  log: log_log
3501
3501
  } = core_.VxeUI;
3502
- const log_version = `table v${"4.11.19"}`;
3502
+ const log_version = `table v${"4.11.21"}`;
3503
3503
  const warnLog = log_log.create('warn', log_version);
3504
3504
  const errLog = log_log.create('error', log_version);
3505
3505
  ;// ./packages/table/src/columnInfo.ts
@@ -9319,11 +9319,17 @@ const {
9319
9319
  const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
9320
9320
  if (filterSlot) {
9321
9321
  return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
9322
- class: 'vxe-table--filter-template'
9322
+ class: 'vxe-table--filter-template',
9323
+ style: maxHeight ? {
9324
+ maxHeight: `${maxHeight}px`
9325
+ } : {}
9323
9326
  }, $xeTable.callSlot(filterSlot, params))];
9324
9327
  } else if (rtFilter) {
9325
9328
  return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
9326
- class: 'vxe-table--filter-template'
9329
+ class: 'vxe-table--filter-template',
9330
+ style: maxHeight ? {
9331
+ maxHeight: `${maxHeight}px`
9332
+ } : {}
9327
9333
  }, getSlotVNs(rtFilter(filterRender, params)))];
9328
9334
  }
9329
9335
  const isAllChecked = multiple ? filterStore.isAllSelected : !filterStore.options.some(item => item._checked);
@@ -14552,6 +14558,9 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
14552
14558
  keepSource,
14553
14559
  treeConfig
14554
14560
  } = props;
14561
+ const {
14562
+ editStore
14563
+ } = reactData;
14555
14564
  const {
14556
14565
  fullAllDataRowIdData,
14557
14566
  fullDataRowIdData,
@@ -14560,6 +14569,9 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
14560
14569
  tableFullData,
14561
14570
  afterFullData
14562
14571
  } = internalData;
14572
+ const removeTempMaps = {
14573
+ ...editStore.removeMaps
14574
+ };
14563
14575
  const treeOpts = computeTreeOpts.value;
14564
14576
  const {
14565
14577
  transform
@@ -14594,6 +14606,7 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
14594
14606
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().destructuring(row, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().clone(oRow, true));
14595
14607
  }
14596
14608
  if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
14609
+ delete removeTempMaps[rowid];
14597
14610
  tableFullData.unshift(row);
14598
14611
  afterFullData.unshift(row);
14599
14612
  reDelFlag = true;
@@ -14605,6 +14618,7 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
14605
14618
  }
14606
14619
  if (rows) {
14607
14620
  if (reDelFlag) {
14621
+ editStore.removeMaps = removeTempMaps;
14608
14622
  $xeTable.updateFooter();
14609
14623
  $xeTable.cacheRowMap(false);
14610
14624
  $xeTable.handleTableData(treeConfig && transform);
@@ -17437,8 +17451,9 @@ const customStorageKey = 'VXE_CUSTOM_STORE';
17437
17451
  // 如果按下了方向键
17438
17452
  if (selected.row && selected.column) {
17439
17453
  $xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
17440
- } else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
17441
- // 当前行按键上下移动
17454
+ }
17455
+ // 当前行按键上下移动
17456
+ if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
17442
17457
  $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
17443
17458
  }
17444
17459
  }
@@ -26503,7 +26518,6 @@ keyboard_hook_hooks.add('tableKeyboardModule', {
26503
26518
  const treeOpts = computeTreeOpts.value;
26504
26519
  const childrenField = treeOpts.children || treeOpts.childrenField;
26505
26520
  let targetRow;
26506
- evnt.preventDefault();
26507
26521
  if (currentRow) {
26508
26522
  if (treeConfig) {
26509
26523
  const {
@@ -26529,6 +26543,7 @@ keyboard_hook_hooks.add('tableKeyboardModule', {
26529
26543
  targetRow = afterFullData[0];
26530
26544
  }
26531
26545
  if (targetRow) {
26546
+ evnt.preventDefault();
26532
26547
  const params = {
26533
26548
  $table: $xeTable,
26534
26549
  row: targetRow,
@@ -26538,6 +26553,36 @@ keyboard_hook_hooks.add('tableKeyboardModule', {
26538
26553
  $xeTable.scrollToRow(targetRow).then(() => $xeTable.triggerCurrentRowEvent(evnt, params));
26539
26554
  }
26540
26555
  },
26556
+ // 处理当前列方向键移动
26557
+ moveCurrentColumn(isLeftArrow, isRightArrow, evnt) {
26558
+ const {
26559
+ currentColumn
26560
+ } = reactData;
26561
+ const {
26562
+ visibleColumn
26563
+ } = internalData;
26564
+ let targetCol = null;
26565
+ if (currentColumn) {
26566
+ const _columnIndex = $xeTable.getVTColumnIndex(currentColumn);
26567
+ if (isLeftArrow && _columnIndex > 0) {
26568
+ targetCol = visibleColumn[_columnIndex - 1];
26569
+ } else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
26570
+ targetCol = visibleColumn[_columnIndex + 1];
26571
+ }
26572
+ } else {
26573
+ targetCol = visibleColumn[0];
26574
+ }
26575
+ if (targetCol) {
26576
+ evnt.preventDefault();
26577
+ const params = {
26578
+ $table: $xeTable,
26579
+ column: targetCol,
26580
+ columnIndex: $xeTable.getColumnIndex(targetCol),
26581
+ $columnIndex: $xeTable.getVMColumnIndex(targetCol)
26582
+ };
26583
+ $xeTable.scrollToColumn(targetCol).then(() => $xeTable.triggerCurrentColumnEvent(evnt, params));
26584
+ }
26585
+ },
26541
26586
  // 处理可编辑方向键移动
26542
26587
  moveSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
26543
26588
  const {
@@ -29989,6 +30034,23 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
29989
30034
  }
29990
30035
  return null;
29991
30036
  };
30037
+ const getConfigSlot = slotConfigs => {
30038
+ const slotConf = {};
30039
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectMap(slotConfigs, (slotFunc, slotKey) => {
30040
+ if (slotFunc) {
30041
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(slotFunc)) {
30042
+ if (slots[slotFunc]) {
30043
+ slotConf[slotKey] = slots[slotFunc];
30044
+ } else {
30045
+ errLog('vxe.error.notSlot', [slotFunc]);
30046
+ }
30047
+ } else {
30048
+ slotConf[slotKey] = slotFunc;
30049
+ }
30050
+ }
30051
+ });
30052
+ return slotConf;
30053
+ };
29992
30054
  /**
29993
30055
  * 渲染表单
29994
30056
  */
@@ -30202,43 +30264,22 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
30202
30264
  } = props;
30203
30265
  const proxyOpts = computeProxyOpts.value;
30204
30266
  const pagerOpts = computePagerOpts.value;
30267
+ const pagerSlot = slots.pager;
30205
30268
  if (pagerConfig && isEnableConf(pagerOpts) || slots.pager) {
30206
- let slotVNs = [];
30207
- if (slots.pager) {
30208
- slotVNs = slots.pager({
30209
- $grid: $xeGrid
30210
- });
30211
- } else {
30212
- const pagerOptSlots = pagerOpts.slots;
30213
- const pagerSlots = {};
30214
- let leftSlot;
30215
- let rightSlot;
30216
- if (pagerOptSlots) {
30217
- leftSlot = getFuncSlot(pagerOptSlots, 'left');
30218
- rightSlot = getFuncSlot(pagerOptSlots, 'right');
30219
- if (leftSlot) {
30220
- pagerSlots.left = leftSlot;
30221
- }
30222
- if (rightSlot) {
30223
- pagerSlots.right = rightSlot;
30224
- }
30225
- }
30226
- if (VxeUIPagerComponent) {
30227
- slotVNs.push((0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(VxeUIPagerComponent, {
30228
- ref: refPager,
30229
- ...pagerOpts,
30230
- ...(proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {}),
30231
- onPageChange: pageChangeEvent
30232
- }, pagerSlots));
30233
- }
30234
- }
30235
30269
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
30236
30270
  ref: refPagerWrapper,
30237
30271
  key: 'pager',
30238
30272
  class: 'vxe-grid--pager-wrapper'
30239
- }, slotVNs);
30273
+ }, pagerSlot ? pagerSlot({
30274
+ $grid: $xeGrid
30275
+ }) : [VxeUIPagerComponent ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(VxeUIPagerComponent, {
30276
+ ref: refPager,
30277
+ ...pagerOpts,
30278
+ ...(proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {}),
30279
+ onPageChange: pageChangeEvent
30280
+ }, getConfigSlot(pagerOpts.slots)) : grid_renderEmptyElement($xeGrid)]);
30240
30281
  }
30241
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)();
30282
+ return grid_renderEmptyElement($xeGrid);
30242
30283
  };
30243
30284
  const renderChildLayout = layoutKeys => {
30244
30285
  const childVNs = [];
@@ -30906,18 +30947,23 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
30906
30947
  isZMax
30907
30948
  } = reactData;
30908
30949
  const el = refElem.value;
30909
- const formWrapper = refFormWrapper.value;
30910
- const toolbarWrapper = refToolbarWrapper.value;
30911
- const topWrapper = refTopWrapper.value;
30912
- const bottomWrapper = refBottomWrapper.value;
30913
- const pagerWrapper = refPagerWrapper.value;
30914
- const parentPaddingSize = isZMax ? 0 : getPaddingTopBottomSize(el.parentNode);
30915
- return parentPaddingSize + getPaddingTopBottomSize(el) + getOffsetHeight(formWrapper) + getOffsetHeight(toolbarWrapper) + getOffsetHeight(topWrapper) + getOffsetHeight(bottomWrapper) + getOffsetHeight(pagerWrapper);
30950
+ if (el) {
30951
+ const formWrapper = refFormWrapper.value;
30952
+ const toolbarWrapper = refToolbarWrapper.value;
30953
+ const topWrapper = refTopWrapper.value;
30954
+ const bottomWrapper = refBottomWrapper.value;
30955
+ const pagerWrapper = refPagerWrapper.value;
30956
+ const parentEl = el.parentElement;
30957
+ const parentPaddingSize = isZMax ? 0 : parentEl ? getPaddingTopBottomSize(parentEl) : 0;
30958
+ return parentPaddingSize + getPaddingTopBottomSize(el) + getOffsetHeight(formWrapper) + getOffsetHeight(toolbarWrapper) + getOffsetHeight(topWrapper) + getOffsetHeight(bottomWrapper) + getOffsetHeight(pagerWrapper);
30959
+ }
30960
+ return 0;
30916
30961
  },
30917
30962
  getParentHeight() {
30918
30963
  const el = refElem.value;
30919
30964
  if (el) {
30920
- return (reactData.isZMax ? getDomNode().visibleHeight : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(getComputedStyle(el.parentNode).height)) - gridPrivateMethods.getExcludeHeight();
30965
+ const parentEl = el.parentElement;
30966
+ return (reactData.isZMax ? getDomNode().visibleHeight : parentEl ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(getComputedStyle(parentEl).height) : 0) - gridPrivateMethods.getExcludeHeight();
30921
30967
  }
30922
30968
  return 0;
30923
30969
  },