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
package/lib/ui/index.js CHANGED
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "VxeUI", {
13
13
  exports.version = exports.validators = exports.use = exports.t = exports.setup = exports.setTheme = exports.setLanguage = exports.setIcon = exports.setI18n = exports.setConfig = exports.saveFile = exports.renderer = exports.readFile = exports.print = exports.modal = exports.menus = exports.log = exports.interceptor = exports.hooks = exports.globalResize = exports.globalEvents = exports.getTheme = exports.getIcon = exports.getI18n = exports.getConfig = exports.formats = exports.default = exports.config = exports.commands = exports.clipboard = exports._t = void 0;
14
14
  var _core = require("@vxe-ui/core");
15
15
  var _utils = require("./src/utils");
16
- const version = exports.version = "4.11.19";
16
+ const version = exports.version = "4.11.21";
17
17
  _core.VxeUI.version = version;
18
18
  _core.VxeUI.tableVersion = version;
19
19
  _core.VxeUI.setConfig({
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.11.19",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,minHeight:144,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{enabled:!0,gt:60,preSize:0,oSize:1},virtualYConfig:{enabled:!0,gt:100,preSize:0,oSize:1},scrollbarConfig:{}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"custom-column",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,hooks=exports.hooks=_core.VxeUI.hooks,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.11.21",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,minHeight:144,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{enabled:!0,gt:60,preSize:0,oSize:1},virtualYConfig:{enabled:!0,gt:100,preSize:0,oSize:1},scrollbarConfig:{}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"custom-column",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,hooks=exports.hooks=_core.VxeUI.hooks,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
package/lib/ui/src/log.js CHANGED
@@ -8,6 +8,6 @@ var _core = require("@vxe-ui/core");
8
8
  const {
9
9
  log
10
10
  } = _core.VxeUI;
11
- const version = `table v${"4.11.19"}`;
11
+ const version = `table v${"4.11.21"}`;
12
12
  const warnLog = exports.warnLog = log.create('warn', version);
13
13
  const errLog = exports.errLog = log.create('error', version);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v4.11.19",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v4.11.21",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.11.19",
3
+ "version": "4.11.21",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、拖拽排序,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -28,7 +28,7 @@
28
28
  "style": "lib/style.css",
29
29
  "typings": "types/index.d.ts",
30
30
  "dependencies": {
31
- "vxe-pc-ui": "^4.4.6"
31
+ "vxe-pc-ui": "^4.4.9"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/resize-observer-browser": "^0.1.11",
@@ -466,6 +466,24 @@ export default defineComponent({
466
466
  return null
467
467
  }
468
468
 
469
+ const getConfigSlot = (slotConfigs?: Record<string, any>) => {
470
+ const slotConf: Record<string, any> = {}
471
+ XEUtils.objectMap(slotConfigs, (slotFunc, slotKey) => {
472
+ if (slotFunc) {
473
+ if (XEUtils.isString(slotFunc)) {
474
+ if (slots[slotFunc]) {
475
+ slotConf[slotKey] = slots[slotFunc]
476
+ } else {
477
+ errLog('vxe.error.notSlot', [slotFunc])
478
+ }
479
+ } else {
480
+ slotConf[slotKey] = slotFunc
481
+ }
482
+ }
483
+ })
484
+ return slotConf
485
+ }
486
+
469
487
  /**
470
488
  * 渲染表单
471
489
  */
@@ -670,43 +688,26 @@ export default defineComponent({
670
688
  const { proxyConfig, pagerConfig } = props
671
689
  const proxyOpts = computeProxyOpts.value
672
690
  const pagerOpts = computePagerOpts.value
691
+ const pagerSlot = slots.pager
673
692
  if ((pagerConfig && isEnableConf(pagerOpts)) || slots.pager) {
674
- let slotVNs: VNode[] = []
675
- if (slots.pager) {
676
- slotVNs = slots.pager({ $grid: $xeGrid })
677
- } else {
678
- const pagerOptSlots = pagerOpts.slots
679
- const pagerSlots: { [key: string]: () => VNode[] } = {}
680
- let leftSlot: any
681
- let rightSlot: any
682
- if (pagerOptSlots) {
683
- leftSlot = getFuncSlot(pagerOptSlots, 'left')
684
- rightSlot = getFuncSlot(pagerOptSlots, 'right')
685
- if (leftSlot) {
686
- pagerSlots.left = leftSlot
687
- }
688
- if (rightSlot) {
689
- pagerSlots.right = rightSlot
690
- }
691
- }
692
- if (VxeUIPagerComponent) {
693
- slotVNs.push(
694
- h(VxeUIPagerComponent, {
695
- ref: refPager,
696
- ...pagerOpts,
697
- ...(proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {}),
698
- onPageChange: pageChangeEvent
699
- }, pagerSlots)
700
- )
701
- }
702
- }
703
693
  return h('div', {
704
694
  ref: refPagerWrapper,
705
695
  key: 'pager',
706
696
  class: 'vxe-grid--pager-wrapper'
707
- }, slotVNs)
697
+ }, pagerSlot
698
+ ? pagerSlot({ $grid: $xeGrid })
699
+ : [
700
+ VxeUIPagerComponent
701
+ ? h(VxeUIPagerComponent, {
702
+ ref: refPager,
703
+ ...pagerOpts,
704
+ ...(proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {}),
705
+ onPageChange: pageChangeEvent
706
+ }, getConfigSlot(pagerOpts.slots))
707
+ : renderEmptyElement($xeGrid)
708
+ ])
708
709
  }
709
- return createCommentVNode()
710
+ return renderEmptyElement($xeGrid)
710
711
  }
711
712
 
712
713
  const renderChildLayout = (layoutKeys: VxeGridPropTypes.LayoutKey[]) => {
@@ -1259,18 +1260,23 @@ export default defineComponent({
1259
1260
  getExcludeHeight () {
1260
1261
  const { isZMax } = reactData
1261
1262
  const el = refElem.value
1262
- const formWrapper = refFormWrapper.value
1263
- const toolbarWrapper = refToolbarWrapper.value
1264
- const topWrapper = refTopWrapper.value
1265
- const bottomWrapper = refBottomWrapper.value
1266
- const pagerWrapper = refPagerWrapper.value
1267
- const parentPaddingSize = isZMax ? 0 : getPaddingTopBottomSize(el.parentNode as HTMLElement)
1268
- return parentPaddingSize + getPaddingTopBottomSize(el) + getOffsetHeight(formWrapper) + getOffsetHeight(toolbarWrapper) + getOffsetHeight(topWrapper) + getOffsetHeight(bottomWrapper) + getOffsetHeight(pagerWrapper)
1263
+ if (el) {
1264
+ const formWrapper = refFormWrapper.value
1265
+ const toolbarWrapper = refToolbarWrapper.value
1266
+ const topWrapper = refTopWrapper.value
1267
+ const bottomWrapper = refBottomWrapper.value
1268
+ const pagerWrapper = refPagerWrapper.value
1269
+ const parentEl = el.parentElement as HTMLElement
1270
+ const parentPaddingSize = isZMax ? 0 : (parentEl ? getPaddingTopBottomSize(parentEl) : 0)
1271
+ return parentPaddingSize + getPaddingTopBottomSize(el) + getOffsetHeight(formWrapper) + getOffsetHeight(toolbarWrapper) + getOffsetHeight(topWrapper) + getOffsetHeight(bottomWrapper) + getOffsetHeight(pagerWrapper)
1272
+ }
1273
+ return 0
1269
1274
  },
1270
1275
  getParentHeight () {
1271
1276
  const el = refElem.value
1272
1277
  if (el) {
1273
- return (reactData.isZMax ? getDomNode().visibleHeight : XEUtils.toNumber(getComputedStyle(el.parentNode as HTMLElement).height)) - gridPrivateMethods.getExcludeHeight()
1278
+ const parentEl = el.parentElement as HTMLElement
1279
+ return (reactData.isZMax ? getDomNode().visibleHeight : (parentEl ? XEUtils.toNumber(getComputedStyle(parentEl).height) : 0)) - gridPrivateMethods.getExcludeHeight()
1274
1280
  }
1275
1281
  return 0
1276
1282
  },
@@ -97,13 +97,23 @@ export default defineComponent({
97
97
  if (filterSlot) {
98
98
  return [
99
99
  h('div', {
100
- class: 'vxe-table--filter-template'
100
+ class: 'vxe-table--filter-template',
101
+ style: maxHeight
102
+ ? {
103
+ maxHeight: `${maxHeight}px`
104
+ }
105
+ : {}
101
106
  }, $xeTable.callSlot(filterSlot, params))
102
107
  ]
103
108
  } else if (rtFilter) {
104
109
  return [
105
110
  h('div', {
106
- class: 'vxe-table--filter-template'
111
+ class: 'vxe-table--filter-template',
112
+ style: maxHeight
113
+ ? {
114
+ maxHeight: `${maxHeight}px`
115
+ }
116
+ : {}
107
117
  }, getSlotVNs(rtFilter(filterRender, params)))
108
118
  ]
109
119
  }
@@ -3,7 +3,7 @@ import { VxeUI } from '../../../ui'
3
3
  import { getRefElem } from '../../src/util'
4
4
  import { browse, hasClass, getAbsolutePos, addClass, removeClass } from '../../../ui/src/dom'
5
5
 
6
- import type { TableKeyboardPrivateMethods } from '../../../../types'
6
+ import type { TableKeyboardPrivateMethods, VxeTableDefines } from '../../../../types'
7
7
 
8
8
  const { hooks } = VxeUI
9
9
 
@@ -347,7 +347,6 @@ hooks.add('tableKeyboardModule', {
347
347
  const treeOpts = computeTreeOpts.value
348
348
  const childrenField = treeOpts.children || treeOpts.childrenField
349
349
  let targetRow
350
- evnt.preventDefault()
351
350
  if (currentRow) {
352
351
  if (treeConfig) {
353
352
  const { index, items } = XEUtils.findTree(afterFullData, item => item === currentRow, { children: childrenField })
@@ -368,6 +367,7 @@ hooks.add('tableKeyboardModule', {
368
367
  targetRow = afterFullData[0]
369
368
  }
370
369
  if (targetRow) {
370
+ evnt.preventDefault()
371
371
  const params = {
372
372
  $table: $xeTable,
373
373
  row: targetRow,
@@ -378,6 +378,33 @@ hooks.add('tableKeyboardModule', {
378
378
  .then(() => $xeTable.triggerCurrentRowEvent(evnt, params))
379
379
  }
380
380
  },
381
+ // 处理当前列方向键移动
382
+ moveCurrentColumn (isLeftArrow, isRightArrow, evnt) {
383
+ const { currentColumn } = reactData
384
+ const { visibleColumn } = internalData
385
+ let targetCol: VxeTableDefines.ColumnInfo | null = null
386
+ if (currentColumn) {
387
+ const _columnIndex = $xeTable.getVTColumnIndex(currentColumn)
388
+ if (isLeftArrow && _columnIndex > 0) {
389
+ targetCol = visibleColumn[_columnIndex - 1]
390
+ } else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
391
+ targetCol = visibleColumn[_columnIndex + 1]
392
+ }
393
+ } else {
394
+ targetCol = visibleColumn[0]
395
+ }
396
+ if (targetCol) {
397
+ evnt.preventDefault()
398
+ const params = {
399
+ $table: $xeTable,
400
+ column: targetCol,
401
+ columnIndex: $xeTable.getColumnIndex(targetCol),
402
+ $columnIndex: $xeTable.getVMColumnIndex(targetCol)
403
+ }
404
+ $xeTable.scrollToColumn(targetCol)
405
+ .then(() => $xeTable.triggerCurrentColumnEvent(evnt, params))
406
+ }
407
+ },
381
408
  // 处理可编辑方向键移动
382
409
  moveSelected (args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
383
410
  const { afterFullData, visibleColumn } = internalData
@@ -867,7 +867,7 @@ export default defineComponent({
867
867
 
868
868
  computeSXOpts,
869
869
  computeSYOpts
870
- }
870
+ } as any
871
871
 
872
872
  const $xeTable = {
873
873
  xID,
@@ -3844,7 +3844,9 @@ export default defineComponent({
3844
3844
  */
3845
3845
  revertData (rows: any, field) {
3846
3846
  const { keepSource, treeConfig } = props
3847
+ const { editStore } = reactData
3847
3848
  const { fullAllDataRowIdData, fullDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData } = internalData
3849
+ const removeTempMaps = { ...editStore.removeMaps }
3848
3850
  const treeOpts = computeTreeOpts.value
3849
3851
  const { transform } = treeOpts
3850
3852
  if (!keepSource) {
@@ -3877,6 +3879,7 @@ export default defineComponent({
3877
3879
  XEUtils.destructuring(row, XEUtils.clone(oRow, true))
3878
3880
  }
3879
3881
  if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
3882
+ delete removeTempMaps[rowid]
3880
3883
  tableFullData.unshift(row)
3881
3884
  afterFullData.unshift(row)
3882
3885
  reDelFlag = true
@@ -3888,6 +3891,7 @@ export default defineComponent({
3888
3891
  }
3889
3892
  if (rows) {
3890
3893
  if (reDelFlag) {
3894
+ editStore.removeMaps = removeTempMaps
3891
3895
  $xeTable.updateFooter()
3892
3896
  $xeTable.cacheRowMap(false)
3893
3897
  $xeTable.handleTableData(treeConfig && transform)
@@ -6352,8 +6356,9 @@ export default defineComponent({
6352
6356
  // 如果按下了方向键
6353
6357
  if (selected.row && selected.column) {
6354
6358
  $xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt)
6355
- } else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
6356
- // 当前行按键上下移动
6359
+ }
6360
+ // 当前行按键上下移动
6361
+ if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
6357
6362
  $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt)
6358
6363
  }
6359
6364
  }