vxe-table 3.13.21 → 3.13.23

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 +51 -40
  2. package/es/style.css +1 -1
  3. package/es/table/module/filter/panel.js +12 -2
  4. package/es/table/module/keyboard/mixin.js +50 -6
  5. package/es/table/src/methods.js +2 -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 +58 -57
  9. package/lib/grid/src/grid.min.js +1 -1
  10. package/lib/index.umd.js +124 -74
  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/mixin.js +52 -9
  16. package/lib/table/module/keyboard/mixin.min.js +1 -1
  17. package/lib/table/src/methods.js +3 -2
  18. package/lib/table/src/methods.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 +61 -48
  25. package/packages/table/module/filter/panel.ts +12 -2
  26. package/packages/table/module/keyboard/mixin.ts +52 -8
  27. package/packages/table/src/methods.ts +3 -2
  28. /package/es/{iconfont.1741336846919.ttf → iconfont.1741744075377.ttf} +0 -0
  29. /package/es/{iconfont.1741336846919.woff → iconfont.1741744075377.woff} +0 -0
  30. /package/es/{iconfont.1741336846919.woff2 → iconfont.1741744075377.woff2} +0 -0
  31. /package/lib/{iconfont.1741336846919.ttf → iconfont.1741744075377.ttf} +0 -0
  32. /package/lib/{iconfont.1741336846919.woff → iconfont.1741744075377.woff} +0 -0
  33. /package/lib/{iconfont.1741336846919.woff2 → iconfont.1741744075377.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.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 = "3.13.21";
16
+ const version = exports.version = "3.13.23";
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.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="3.13.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,padding:!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:1,oSize:2},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,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.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="3.13.23",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,padding:!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:1,oSize:2},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,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${"3.13.21"}`;
11
+ const version = `table v${"3.13.23"}`;
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 v3.13.21",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 v3.13.23",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": "3.13.21",
3
+ "version": "3.13.23",
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": "^3.4.6"
31
+ "vxe-pc-ui": "^3.4.9"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@babel/plugin-transform-modules-commonjs": "^7.25.7",
@@ -10,7 +10,7 @@ import { getSlotVNs } from '../../ui/src/vn'
10
10
  import { warnLog, errLog } from '../../ui/src/log'
11
11
 
12
12
  import type { VxeFormComponent, VxePagerComponent, VxeComponentStyleType } from 'vxe-pc-ui'
13
- import type{ GridReactData, VxeGridConstructor, VxeGridPropTypes } from '../../../types'
13
+ import type{ GridReactData, VxeGridConstructor, VxeGridPropTypes, VxeGridPrivateMethods, VxePagerDefines } from '../../../types'
14
14
 
15
15
  const { getConfig, getI18n, commands, globalEvents, globalMixins, renderEmptyElement } = VxeUI
16
16
 
@@ -85,6 +85,26 @@ function getFuncSlot ($xeGrid: any, optSlots: any, slotKey: any) {
85
85
  return null
86
86
  }
87
87
 
88
+ const getConfigSlot = ($xeGrid: VxeGridConstructor, slotConfigs?: Record<string, any>) => {
89
+ const slots = $xeGrid.$scopedSlots
90
+
91
+ const slotConf: Record<string, any> = {}
92
+ XEUtils.objectMap(slotConfigs, (slotFunc, slotKey) => {
93
+ if (slotFunc) {
94
+ if (XEUtils.isString(slotFunc)) {
95
+ if (slots[slotFunc]) {
96
+ slotConf[slotKey] = slots[slotFunc]
97
+ } else {
98
+ errLog('vxe.error.notSlot', [slotFunc])
99
+ }
100
+ } else {
101
+ slotConf[slotKey] = slotFunc
102
+ }
103
+ }
104
+ })
105
+ return slotConf
106
+ }
107
+
88
108
  function getToolbarSlots (_vm: any) {
89
109
  const { $scopedSlots, toolbarOpts } = _vm
90
110
  const toolbarOptSlots = toolbarOpts.slots
@@ -112,25 +132,6 @@ function getToolbarSlots (_vm: any) {
112
132
  return slots
113
133
  }
114
134
 
115
- function getPagerSlots (_vm: any) {
116
- const { pagerOpts } = _vm
117
- const pagerOptSlots = pagerOpts.slots
118
- const slots: any = {}
119
- let leftSlot
120
- let rightSlot
121
- if (pagerOptSlots) {
122
- leftSlot = getFuncSlot(_vm, pagerOptSlots, 'left')
123
- rightSlot = getFuncSlot(_vm, pagerOptSlots, 'right')
124
- if (leftSlot) {
125
- slots.left = leftSlot
126
- }
127
- if (rightSlot) {
128
- slots.right = rightSlot
129
- }
130
- }
131
- return slots
132
- }
133
-
134
135
  function getTableOns (_vm: any) {
135
136
  const { $listeners, proxyConfig, proxyOpts } = _vm
136
137
  const ons: any = {}
@@ -150,6 +151,24 @@ function getTableOns (_vm: any) {
150
151
  return ons
151
152
  }
152
153
 
154
+ function pageChangeEvent ($xeGrid: VxeGridConstructor & VxeGridPrivateMethods, params: VxePagerDefines.PageChangeEventParams) {
155
+ const props = $xeGrid
156
+ const reactData = $xeGrid as unknown as GridReactData
157
+
158
+ const { proxyConfig } = props
159
+ const { tablePage } = reactData
160
+ const { $event, currentPage, pageSize } = params
161
+ const proxyOpts = $xeGrid.computeProxyOpts
162
+ tablePage.currentPage = currentPage
163
+ tablePage.pageSize = pageSize
164
+ $xeGrid.dispatchEvent('page-change', params, $event)
165
+ if (proxyConfig && isEnableConf(proxyOpts)) {
166
+ $xeGrid.commitProxy('query').then((rest) => {
167
+ $xeGrid.dispatchEvent('proxy-query', rest, $event)
168
+ })
169
+ }
170
+ }
171
+
153
172
  /**
154
173
  * 渲染表单
155
174
  */
@@ -271,39 +290,45 @@ function renderBottom (h: CreateElement, _vm: any) {
271
290
  /**
272
291
  * 渲染分页
273
292
  */
274
- function renderPager (h: CreateElement, $xeGrid: any) {
293
+ function renderPager (h: CreateElement, $xeGrid: VxeGridConstructor & VxeGridPrivateMethods) {
275
294
  const VxeUIPagerComponent = VxeUI.getComponent<VxePagerComponent>('VxePager')
276
295
  const props = $xeGrid
296
+ const slots = $xeGrid.$scopedSlots
297
+ const reactData = $xeGrid as unknown as GridReactData
277
298
 
278
- const { pagerConfig, proxyConfig } = props
279
- const { $scopedSlots, tablePage } = $xeGrid
280
- const pagerSlot = $scopedSlots.pager
281
- const hasPager = !!(pagerSlot || isEnableConf(pagerConfig))
282
-
283
- if (hasPager) {
299
+ const { proxyConfig, pagerConfig } = props
300
+ const proxyOpts = $xeGrid.computeProxyOpts
301
+ const pagerOpts = $xeGrid.computePagerOpts
302
+ const pagerSlot = slots.pager
303
+ if ((pagerConfig && isEnableConf(pagerOpts)) || slots.pager) {
284
304
  return h('div', {
285
- key: 'pager',
286
305
  ref: 'refPagerWrapper',
306
+ key: 'pager',
287
307
  class: 'vxe-grid--pager-wrapper'
288
308
  }, pagerSlot
289
- ? pagerSlot.call($xeGrid, { $grid: $xeGrid }, h)
309
+ ? pagerSlot.call($xeGrid, { $grid: $xeGrid })
290
310
  : [
291
311
  VxeUIPagerComponent
292
312
  ? h(VxeUIPagerComponent, {
293
- props: { ...$xeGrid.pagerOpts, ...(proxyConfig ? tablePage : {}) },
313
+ ref: 'refPager',
314
+ props: {
315
+ ...pagerOpts,
316
+ ...(proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {})
317
+ },
294
318
  on: {
295
- 'page-change': $xeGrid.pageChangeEvent
319
+ 'page-change' (params: any) {
320
+ pageChangeEvent($xeGrid, params)
321
+ }
296
322
  },
297
- scopedSlots: getPagerSlots($xeGrid)
323
+ scopedSlots: getConfigSlot($xeGrid, pagerOpts.slots)
298
324
  })
299
325
  : renderEmptyElement($xeGrid)
300
- ]
301
- )
326
+ ])
302
327
  }
303
328
  return renderEmptyElement($xeGrid)
304
329
  }
305
330
 
306
- function renderChildLayout (h: CreateElement, $xeGrid: VxeGridConstructor, layoutKeys: VxeGridPropTypes.LayoutKey[]) {
331
+ function renderChildLayout (h: CreateElement, $xeGrid: VxeGridConstructor & VxeGridPrivateMethods, layoutKeys: VxeGridPropTypes.LayoutKey[]) {
307
332
  const childVNs: VNode[] = []
308
333
  layoutKeys.forEach(key => {
309
334
  switch (key) {
@@ -342,7 +367,7 @@ function renderChildLayout (h: CreateElement, $xeGrid: VxeGridConstructor, layou
342
367
  return childVNs
343
368
  }
344
369
 
345
- function renderLayout (h: CreateElement, $xeGrid: VxeGridConstructor) {
370
+ function renderLayout (h: CreateElement, $xeGrid: VxeGridConstructor & VxeGridPrivateMethods) {
346
371
  const slots = $xeGrid.$scopedSlots
347
372
 
348
373
  const currLayoutConf = ($xeGrid as any).computeCurrLayoutConf as {
@@ -1140,18 +1165,6 @@ export default {
1140
1165
  }
1141
1166
  }
1142
1167
  },
1143
- pageChangeEvent (params: any) {
1144
- const { proxyConfig, tablePage } = this
1145
- const { currentPage, pageSize } = params
1146
- tablePage.currentPage = currentPage
1147
- tablePage.pageSize = pageSize
1148
- this.$emit('page-change', Object.assign({ $grid: this }, params))
1149
- if (proxyConfig) {
1150
- this.commitProxy('query').then((rest: any) => {
1151
- this.$emit('proxy-query', { ...rest, $grid: this, $event: params.$event })
1152
- })
1153
- }
1154
- },
1155
1168
  sortChangeEvent (params: any) {
1156
1169
  const { $table, column, sortList } = params
1157
1170
  const isRemote = XEUtils.isBoolean(column.remoteSort) ? column.remoteSort : $table.sortOpts.remote
@@ -61,13 +61,23 @@ export default {
61
61
  if (filterSlot) {
62
62
  return [
63
63
  h('div', {
64
- class: 'vxe-table--filter-template'
64
+ class: 'vxe-table--filter-template',
65
+ style: maxHeight
66
+ ? {
67
+ maxHeight: `${maxHeight}px`
68
+ }
69
+ : {}
65
70
  }, $xeTable.callSlot(filterSlot, params, h))
66
71
  ]
67
72
  } else if (rtFilter) {
68
73
  return [
69
74
  h('div', {
70
- class: 'vxe-table--filter-template'
75
+ class: 'vxe-table--filter-template',
76
+ style: maxHeight
77
+ ? {
78
+ maxHeight: `${maxHeight}px`
79
+ }
80
+ : {}
71
81
  }, getSlotVNs(rtFilter.call($xeTable, h, filterRender, params)))
72
82
  ]
73
83
  }
@@ -2,7 +2,7 @@ import XEUtils from 'xe-utils'
2
2
  import { getRefElem } from '../../src/util'
3
3
  import { browse, hasClass, getAbsolutePos, addClass, removeClass } from '../../../ui/src/dom'
4
4
 
5
- import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../../types'
5
+ import type { VxeTableConstructor, VxeTablePrivateMethods, VxeTableDefines, TableReactData, TableInternalData } from '../../../../types'
6
6
 
7
7
  function getTargetOffset (target: any, container: any) {
8
8
  let offsetTop = 0
@@ -159,11 +159,18 @@ export default {
159
159
  }
160
160
  },
161
161
  // 处理当前行方向键移动
162
- moveCurrentRow (isUpArrow: any, isDwArrow: any, evnt: any) {
163
- const { currentRow, treeConfig, treeOpts, afterFullData } = this
162
+ moveCurrentRow (isUpArrow: boolean, isDwArrow: boolean, evnt: any) {
163
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
164
+ const props = $xeTable
165
+ const reactData = $xeTable as unknown as TableReactData
166
+ const internalData = $xeTable as unknown as TableInternalData
167
+
168
+ const { treeConfig } = props
169
+ const { currentRow } = reactData
170
+ const { afterFullData } = internalData
171
+ const treeOpts = $xeTable.computeTreeOpts
164
172
  const childrenField = treeOpts.children || treeOpts.childrenField
165
173
  let targetRow
166
- evnt.preventDefault()
167
174
  if (currentRow) {
168
175
  if (treeConfig) {
169
176
  const { index, items } = XEUtils.findTree(afterFullData, item => item === currentRow, { children: childrenField })
@@ -173,7 +180,7 @@ export default {
173
180
  targetRow = items[index + 1]
174
181
  }
175
182
  } else {
176
- const _rowIndex = this.getVTRowIndex(currentRow)
183
+ const _rowIndex = $xeTable.getVTRowIndex(currentRow)
177
184
  if (isUpArrow && _rowIndex > 0) {
178
185
  targetRow = afterFullData[_rowIndex - 1]
179
186
  } else if (isDwArrow && _rowIndex < afterFullData.length - 1) {
@@ -184,9 +191,46 @@ export default {
184
191
  targetRow = afterFullData[0]
185
192
  }
186
193
  if (targetRow) {
187
- const params = { $table: this, row: targetRow }
188
- this.scrollToRow(targetRow)
189
- .then(() => this.triggerCurrentRowEvent(evnt, params))
194
+ evnt.preventDefault()
195
+ const params = {
196
+ $table: $xeTable,
197
+ row: targetRow,
198
+ rowIndex: $xeTable.getRowIndex(targetRow),
199
+ $rowIndex: $xeTable.getVMRowIndex(targetRow)
200
+ }
201
+ $xeTable.scrollToRow(targetRow)
202
+ .then(() => $xeTable.triggerCurrentRowEvent(evnt, params))
203
+ }
204
+ },
205
+ // 处理当前列方向键移动
206
+ moveCurrentColumn (isLeftArrow: boolean, isRightArrow: boolean, evnt: any) {
207
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
208
+ const reactData = $xeTable as unknown as TableReactData
209
+ const internalData = $xeTable as unknown as TableInternalData
210
+
211
+ const { currentColumn } = reactData
212
+ const { visibleColumn } = internalData
213
+ let targetCol: VxeTableDefines.ColumnInfo | null = null
214
+ if (currentColumn) {
215
+ const _columnIndex = $xeTable.getVTColumnIndex(currentColumn)
216
+ if (isLeftArrow && _columnIndex > 0) {
217
+ targetCol = visibleColumn[_columnIndex - 1]
218
+ } else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
219
+ targetCol = visibleColumn[_columnIndex + 1]
220
+ }
221
+ } else {
222
+ targetCol = visibleColumn[0]
223
+ }
224
+ if (targetCol) {
225
+ evnt.preventDefault()
226
+ const params = {
227
+ $table: $xeTable,
228
+ column: targetCol,
229
+ columnIndex: $xeTable.getColumnIndex(targetCol),
230
+ $columnIndex: $xeTable.getVMColumnIndex(targetCol)
231
+ }
232
+ $xeTable.scrollToColumn(targetCol)
233
+ .then(() => $xeTable.triggerCurrentColumnEvent(evnt, params))
190
234
  }
191
235
  },
192
236
  // 处理可编辑方向键移动
@@ -5168,8 +5168,9 @@ const Methods = {
5168
5168
  // 如果按下了方向键
5169
5169
  if (selected.row && selected.column) {
5170
5170
  this.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt)
5171
- } else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
5172
- // 当前行按键上下移动
5171
+ }
5172
+ // 当前行按键上下移动
5173
+ if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
5173
5174
  this.moveCurrentRow(isUpArrow, isDwArrow, evnt)
5174
5175
  }
5175
5176
  }