vxe-table 3.13.20 → 3.13.22
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.
- package/es/grid/src/grid.js +64 -48
- package/es/style.css +1 -1
- package/es/table/module/keyboard/mixin.js +50 -6
- package/es/table/src/methods.js +17 -11
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +71 -65
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +150 -91
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/keyboard/mixin.js +52 -9
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/src/methods.js +22 -13
- package/lib/table/src/methods.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +74 -56
- package/packages/table/module/keyboard/mixin.ts +52 -8
- package/packages/table/src/methods.ts +19 -11
- /package/es/{iconfont.1741333380103.ttf → iconfont.1741665630674.ttf} +0 -0
- /package/es/{iconfont.1741333380103.woff → iconfont.1741665630674.woff} +0 -0
- /package/es/{iconfont.1741333380103.woff2 → iconfont.1741665630674.woff2} +0 -0
- /package/lib/{iconfont.1741333380103.ttf → iconfont.1741665630674.ttf} +0 -0
- /package/lib/{iconfont.1741333380103.woff → iconfont.1741665630674.woff} +0 -0
- /package/lib/{iconfont.1741333380103.woff2 → iconfont.1741665630674.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.
|
|
16
|
+
const version = exports.version = "3.13.22";
|
|
17
17
|
_core.VxeUI.version = version;
|
|
18
18
|
_core.VxeUI.tableVersion = version;
|
|
19
19
|
_core.VxeUI.setConfig({
|
package/lib/ui/index.min.js
CHANGED
|
@@ -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.
|
|
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.22",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.
|
|
11
|
+
const version = `table v${"3.13.22"}`;
|
|
12
12
|
const warnLog = exports.warnLog = log.create('warn', version);
|
|
13
13
|
const errLog = exports.errLog = log.create('error', version);
|
package/lib/ui/src/log.min.js
CHANGED
|
@@ -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.
|
|
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.22",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.
|
|
3
|
+
"version": "3.13.22",
|
|
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.
|
|
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:
|
|
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 {
|
|
279
|
-
const
|
|
280
|
-
const
|
|
281
|
-
const
|
|
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 }
|
|
309
|
+
? pagerSlot.call($xeGrid, { $grid: $xeGrid })
|
|
290
310
|
: [
|
|
291
311
|
VxeUIPagerComponent
|
|
292
312
|
? h(VxeUIPagerComponent, {
|
|
293
|
-
|
|
313
|
+
ref: 'refPager',
|
|
314
|
+
props: {
|
|
315
|
+
...pagerOpts,
|
|
316
|
+
...(proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {})
|
|
317
|
+
},
|
|
294
318
|
on: {
|
|
295
|
-
'page-change':
|
|
319
|
+
'page-change' (params: any) {
|
|
320
|
+
pageChangeEvent($xeGrid, params)
|
|
321
|
+
}
|
|
296
322
|
},
|
|
297
|
-
scopedSlots:
|
|
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 {
|
|
@@ -665,13 +690,17 @@ export default {
|
|
|
665
690
|
|
|
666
691
|
const { isZMax } = reactData
|
|
667
692
|
const el = $xeGrid.$refs.refElem as HTMLDivElement
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
693
|
+
if (el) {
|
|
694
|
+
const formWrapper = $xeGrid.$refs.refFormWrapper as HTMLDivElement
|
|
695
|
+
const toolbarWrapper = $xeGrid.$refs.refToolbarWrapper as HTMLDivElement
|
|
696
|
+
const topWrapper = $xeGrid.$refs.refTopWrapper as HTMLDivElement
|
|
697
|
+
const bottomWrapper = $xeGrid.$refs.refBottomWrapper as HTMLDivElement
|
|
698
|
+
const pagerWrapper = $xeGrid.$refs.refPagerWrapper as HTMLDivElement
|
|
699
|
+
const parentEl = el.parentElement as HTMLElement
|
|
700
|
+
const parentPaddingSize = isZMax ? 0 : (parentEl ? getPaddingTopBottomSize(parentEl) : 0)
|
|
701
|
+
return parentPaddingSize + getPaddingTopBottomSize(el) + getOffsetHeight(formWrapper) + getOffsetHeight(toolbarWrapper) + getOffsetHeight(topWrapper) + getOffsetHeight(bottomWrapper) + getOffsetHeight(pagerWrapper)
|
|
702
|
+
}
|
|
703
|
+
return 0
|
|
675
704
|
},
|
|
676
705
|
getParentHeight () {
|
|
677
706
|
const $xeGrid = this
|
|
@@ -679,7 +708,8 @@ export default {
|
|
|
679
708
|
|
|
680
709
|
const el = $xeGrid.$refs.refElem as HTMLDivElement
|
|
681
710
|
if (el) {
|
|
682
|
-
|
|
711
|
+
const parentEl = el.parentElement as HTMLElement
|
|
712
|
+
return (reactData.isZMax ? getDomNode().visibleHeight : (parentEl ? XEUtils.toNumber(getComputedStyle(parentEl).height) : 0)) - $xeGrid.getExcludeHeight()
|
|
683
713
|
}
|
|
684
714
|
return 0
|
|
685
715
|
},
|
|
@@ -1135,18 +1165,6 @@ export default {
|
|
|
1135
1165
|
}
|
|
1136
1166
|
}
|
|
1137
1167
|
},
|
|
1138
|
-
pageChangeEvent (params: any) {
|
|
1139
|
-
const { proxyConfig, tablePage } = this
|
|
1140
|
-
const { currentPage, pageSize } = params
|
|
1141
|
-
tablePage.currentPage = currentPage
|
|
1142
|
-
tablePage.pageSize = pageSize
|
|
1143
|
-
this.$emit('page-change', Object.assign({ $grid: this }, params))
|
|
1144
|
-
if (proxyConfig) {
|
|
1145
|
-
this.commitProxy('query').then((rest: any) => {
|
|
1146
|
-
this.$emit('proxy-query', { ...rest, $grid: this, $event: params.$event })
|
|
1147
|
-
})
|
|
1148
|
-
}
|
|
1149
|
-
},
|
|
1150
1168
|
sortChangeEvent (params: any) {
|
|
1151
1169
|
const { $table, column, sortList } = params
|
|
1152
1170
|
const isRemote = XEUtils.isBoolean(column.remoteSort) ? column.remoteSort : $table.sortOpts.remote
|
|
@@ -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:
|
|
163
|
-
const
|
|
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 =
|
|
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
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
// 处理可编辑方向键移动
|
|
@@ -2708,20 +2708,23 @@ const Methods = {
|
|
|
2708
2708
|
reactData.treeExpandedMaps = treeTempExpandedMaps
|
|
2709
2709
|
},
|
|
2710
2710
|
cacheSourceMap (fullData: any[]) {
|
|
2711
|
-
|
|
2711
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
2712
|
+
const props = $xeTable
|
|
2713
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
2714
|
+
|
|
2715
|
+
const { treeConfig } = props
|
|
2716
|
+
const treeOpts = $xeTable.computeTreeOpts
|
|
2717
|
+
let { sourceDataRowIdData } = internalData
|
|
2712
2718
|
const sourceData = XEUtils.clone(fullData, true)
|
|
2713
|
-
const rowkey = getRowkey(
|
|
2714
|
-
sourceDataRowIdData =
|
|
2719
|
+
const rowkey = getRowkey($xeTable)
|
|
2720
|
+
sourceDataRowIdData = internalData.sourceDataRowIdData = {}
|
|
2715
2721
|
const handleSourceRow = (row: any) => {
|
|
2716
|
-
let rowid = getRowid(
|
|
2722
|
+
let rowid = getRowid($xeTable, row)
|
|
2717
2723
|
if (eqEmptyValue(rowid)) {
|
|
2718
2724
|
rowid = getRowUniqueId()
|
|
2719
2725
|
XEUtils.set(row, rowkey, rowid)
|
|
2720
2726
|
}
|
|
2721
|
-
sourceDataRowIdData[rowid] =
|
|
2722
|
-
row,
|
|
2723
|
-
rowid
|
|
2724
|
-
}
|
|
2727
|
+
sourceDataRowIdData[rowid] = row
|
|
2725
2728
|
}
|
|
2726
2729
|
// 源数据缓存
|
|
2727
2730
|
if (treeConfig) {
|
|
@@ -2730,7 +2733,7 @@ const Methods = {
|
|
|
2730
2733
|
} else {
|
|
2731
2734
|
sourceData.forEach(handleSourceRow)
|
|
2732
2735
|
}
|
|
2733
|
-
|
|
2736
|
+
internalData.tableSourceData = sourceData
|
|
2734
2737
|
},
|
|
2735
2738
|
getParams () {
|
|
2736
2739
|
return this.params
|
|
@@ -3047,7 +3050,9 @@ const Methods = {
|
|
|
3047
3050
|
const internalData = $xeTable as unknown as TableInternalData
|
|
3048
3051
|
|
|
3049
3052
|
const { keepSource, treeConfig } = props
|
|
3053
|
+
const { editStore } = reactData
|
|
3050
3054
|
const { fullAllDataRowIdData, fullDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData } = internalData
|
|
3055
|
+
const removeTempMaps = { ...editStore.removeMaps }
|
|
3051
3056
|
const treeOpts = $xeTable.computeTreeOpts
|
|
3052
3057
|
const { transform } = treeOpts
|
|
3053
3058
|
if (!keepSource) {
|
|
@@ -3080,6 +3085,7 @@ const Methods = {
|
|
|
3080
3085
|
XEUtils.destructuring(row, XEUtils.clone(oRow, true))
|
|
3081
3086
|
}
|
|
3082
3087
|
if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
|
|
3088
|
+
delete removeTempMaps[rowid]
|
|
3083
3089
|
tableFullData.unshift(row)
|
|
3084
3090
|
afterFullData.unshift(row)
|
|
3085
3091
|
reDelFlag = true
|
|
@@ -3091,6 +3097,7 @@ const Methods = {
|
|
|
3091
3097
|
}
|
|
3092
3098
|
if (rows) {
|
|
3093
3099
|
if (reDelFlag) {
|
|
3100
|
+
editStore.removeMaps = removeTempMaps
|
|
3094
3101
|
$xeTable.updateFooter()
|
|
3095
3102
|
$xeTable.cacheRowMap(false)
|
|
3096
3103
|
$xeTable.handleTableData(treeConfig && transform)
|
|
@@ -5161,8 +5168,9 @@ const Methods = {
|
|
|
5161
5168
|
// 如果按下了方向键
|
|
5162
5169
|
if (selected.row && selected.column) {
|
|
5163
5170
|
this.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt)
|
|
5164
|
-
}
|
|
5165
|
-
|
|
5171
|
+
}
|
|
5172
|
+
// 当前行按键上下移动
|
|
5173
|
+
if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
5166
5174
|
this.moveCurrentRow(isUpArrow, isDwArrow, evnt)
|
|
5167
5175
|
}
|
|
5168
5176
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|