vxe-table 3.12.4 → 3.12.5

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.
@@ -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.12.4",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},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},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,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},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},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},scrollX:{gt:60},scrollY:{gt:100}},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.12.5",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},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},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,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},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},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},scrollX:{gt:60},scrollY:{gt:100}},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.12.4"}`;
11
+ const version = `table v${"3.12.5"}`;
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.12.4",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.12.5",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.12.4",
3
+ "version": "3.12.5",
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.3.70"
31
+ "vxe-pc-ui": "^3.3.71"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@babel/plugin-transform-modules-commonjs": "^7.25.7",
@@ -32,10 +32,10 @@ export default {
32
32
 
33
33
  const { customOpts, customColumnList } = this
34
34
  const { allowVisible, allowSort, allowFixed, allowResizable } = customOpts
35
- XEUtils.eachTree(customColumnList, (column, index, items, path, parent) => {
36
- if (parent) {
35
+ XEUtils.eachTree(customColumnList, (column, index, items, path, parentColumn) => {
36
+ if (parentColumn) {
37
37
  // 更新子列信息
38
- column.fixed = parent.fixed
38
+ column.fixed = parentColumn.fixed
39
39
  } else {
40
40
  if (allowSort) {
41
41
  const sortIndex = index + 1
@@ -461,7 +461,7 @@ export const Cell = {
461
461
  paddingLeft: `${level * indent}px`
462
462
  }
463
463
  }, [
464
- showIcon && (lazy ? (isLazyLoaded ? hasChild : hasLazyChilds) : hasChild)
464
+ showIcon && (lazy ? (isLazyLoaded ? hasChild : (hasChild || hasLazyChilds)) : hasChild)
465
465
  ? [
466
466
  h('div', {
467
467
  class: 'vxe-tree--btn-wrapper',
@@ -123,6 +123,8 @@ function cacheColumnMap ($xeTable: VxeTableConstructor) {
123
123
  const columnOpts = $xeTable.computeColumnOpts
124
124
  const columnDragOpts = $xeTable.computeColumnDragOpts
125
125
  const { isCrossDrag, isSelfToChildDrag } = columnDragOpts
126
+ const customOpts = $xeTable.computeCustomOpts
127
+ const { storage } = customOpts
126
128
  const rowOpts = $xeTable.computeRowOpts
127
129
  const isGroup = collectColumn.some(hasChildrenList)
128
130
  let isAllOverflow = !!props.showOverflow
@@ -141,8 +143,8 @@ function cacheColumnMap ($xeTable: VxeTableConstructor) {
141
143
  }
142
144
  fullColumnFieldData[field] = rest
143
145
  } else {
144
- if (isCrossDrag || isSelfToChildDrag) {
145
- errLog('vxe.error.emptyProp', ['column.field'])
146
+ if (storage || isCrossDrag || isSelfToChildDrag) {
147
+ errLog('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field`])
146
148
  }
147
149
  }
148
150
  if (!hasFixed && fixed) {
@@ -5458,27 +5460,26 @@ const Methods = {
5458
5460
  evnt.dataTransfer.setDragImage(getTpImg(), 0, 0)
5459
5461
  }
5460
5462
  },
5461
- handleRowDragDragendEvent (evnt: DragEvent) {
5462
- const $xeTable = this
5463
+ handleRowDragSwapEvent (evnt: DragEvent, isSyncRow: boolean | undefined, dragRow: any, prevDragRow: any, prevDragPos: '' | 'top' | 'bottom' | 'left' | 'right' | undefined, prevDragToChild: boolean | undefined) {
5464
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
5463
5465
  const props = $xeTable
5464
- const reactData = $xeTable
5465
- const internalData = $xeTable
5466
+ const reactData = $xeTable as unknown as TableReactData
5467
+ const internalData = $xeTable as unknown as TableInternalData
5466
5468
 
5467
5469
  const { treeConfig, dragConfig } = props
5468
5470
  const rowDragOpts = $xeTable.computeRowDragOpts
5469
- const { fullAllDataRowIdData, prevDragToChild } = internalData
5471
+ const { fullAllDataRowIdData } = internalData
5470
5472
  const { isPeerDrag, isCrossDrag, isSelfToChildDrag, dragEndMethod } = rowDragOpts
5471
5473
  const treeOpts = $xeTable.computeTreeOpts
5472
5474
  const { transform, rowField, mapChildrenField, parentField } = treeOpts
5473
5475
  const childrenField = treeOpts.children || treeOpts.childrenField
5474
- const { dragRow } = reactData
5475
- const { afterFullData, tableFullData, prevDragRow, prevDragPos } = internalData
5476
+ const { afterFullData, tableFullData } = internalData
5476
5477
  const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null)
5477
5478
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
5478
5479
  if (prevDragRow && dragRow) {
5479
5480
  // 判断是否有拖动
5480
5481
  if (prevDragRow !== dragRow) {
5481
- Promise.resolve(
5482
+ return Promise.resolve(
5482
5483
  dEndMethod
5483
5484
  ? dEndMethod({
5484
5485
  oldRow: dragRow,
@@ -5503,6 +5504,7 @@ const Methods = {
5503
5504
  const oldRest = fullAllDataRowIdData[oldRowid]
5504
5505
  const newRowid = getRowid($xeTable, prevDragRow)
5505
5506
  const newRest = fullAllDataRowIdData[newRowid]
5507
+
5506
5508
  if (oldRest && newRest) {
5507
5509
  const { level: oldLevel } = oldRest
5508
5510
  const { level: newLevel } = newRest
@@ -5628,7 +5630,7 @@ const Methods = {
5628
5630
  $xeTable.dispatchEvent('row-dragend', {
5629
5631
  oldRow: dragRow,
5630
5632
  newRow: prevDragRow,
5631
- dragPos: prevDragPos,
5633
+ dragPos: prevDragPos as any,
5632
5634
  dragToChild: !!prevDragToChild,
5633
5635
  offsetIndex: dragOffsetIndex,
5634
5636
  _index: {
@@ -5640,6 +5642,38 @@ const Methods = {
5640
5642
  })
5641
5643
  }
5642
5644
  }
5645
+ return Promise.resolve()
5646
+ },
5647
+ handleRowDragDragendEvent (evnt: DragEvent) {
5648
+ const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
5649
+ const props = $xeTable
5650
+ const reactData = $xeTable as unknown as TableReactData
5651
+ const internalData = $xeTable as unknown as TableInternalData
5652
+
5653
+ const { treeConfig } = props
5654
+ const { fullAllDataRowIdData, prevDragToChild } = internalData
5655
+ const { dragRow } = reactData
5656
+ const treeOpts = $xeTable.computeTreeOpts
5657
+ const { lazy } = treeOpts
5658
+ const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
5659
+ const { prevDragRow, prevDragPos } = internalData
5660
+
5661
+ if (treeConfig && prevDragToChild) {
5662
+ // 懒加载
5663
+ if (lazy) {
5664
+ const newRowid = getRowid($xeTable, prevDragRow)
5665
+ const rowRest = fullAllDataRowIdData[newRowid]
5666
+ if (prevDragRow[hasChildField]) {
5667
+ if (rowRest && rowRest.treeLoaded) {
5668
+ $xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild)
5669
+ }
5670
+ } else {
5671
+ $xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild)
5672
+ }
5673
+ }
5674
+ } else {
5675
+ $xeTable.handleRowDragSwapEvent(evnt, true, dragRow, prevDragRow, prevDragPos, prevDragToChild)
5676
+ }
5643
5677
  hideDropTip($xeTable)
5644
5678
  clearRowDropOrigin($xeTable)
5645
5679
  internalData.prevDragToChild = false
@@ -5659,7 +5693,8 @@ const Methods = {
5659
5693
  const { fullAllDataRowIdData } = internalData
5660
5694
  const { dragRow } = reactData
5661
5695
  const treeOpts = $xeTable.computeTreeOpts
5662
- const { transform, parentField } = treeOpts
5696
+ const { lazy, transform, parentField } = treeOpts
5697
+ const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
5663
5698
  const rowDragOpts = $xeTable.computeRowDragOpts
5664
5699
  const { isPeerDrag, isCrossDrag, isToChildDrag } = rowDragOpts
5665
5700
  if (!dragRow) {
@@ -5672,19 +5707,22 @@ const Methods = {
5672
5707
  const rest = fullAllDataRowIdData[rowid]
5673
5708
  if (rest) {
5674
5709
  const row = rest.row
5710
+ const rowid = getRowid($xeTable, row)
5711
+ const rowRest = fullAllDataRowIdData[rowid]
5675
5712
  evnt.preventDefault()
5676
5713
  const { dragRow } = reactData
5677
5714
  const offsetY = evnt.clientY - trEl.getBoundingClientRect().y
5678
5715
  const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom'
5716
+ internalData.prevDragToChild = !!(treeConfig && transform && isToChildDrag && hasCtrlKey)
5717
+ internalData.prevDragRow = row
5718
+ internalData.prevDragPos = dragPos
5679
5719
  if ($xeTable.eqRow(dragRow, row) ||
5720
+ (hasCtrlKey && treeConfig && lazy && row[hasChildField] && rowRest && !rowRest.treeLoaded) ||
5680
5721
  (!isCrossDrag && treeConfig && transform && (isPeerDrag ? dragRow[parentField] !== row[parentField] : rest.level))
5681
5722
  ) {
5682
5723
  showDropTip($xeTable, evnt, trEl, null, false, dragPos)
5683
5724
  return
5684
5725
  }
5685
- internalData.prevDragToChild = !!(treeConfig && transform && isToChildDrag && hasCtrlKey)
5686
- internalData.prevDragRow = row
5687
- internalData.prevDragPos = dragPos
5688
5726
  showDropTip($xeTable, evnt, trEl, null, true, dragPos)
5689
5727
  $xeTable.dispatchEvent('row-dragover', {
5690
5728
  oldRow: dragRow,
@@ -5959,6 +5997,9 @@ const Methods = {
5959
5997
  const { clientX } = evnt
5960
5998
  const offsetX = clientX - thEl.getBoundingClientRect().x
5961
5999
  const dragPos = offsetX < thEl.clientWidth / 2 ? 'left' : 'right'
6000
+ internalData.prevDragToChild = !!((isCrossDrag && isToChildDrag) && hasCtrlKey)
6001
+ internalData.prevDragCol = column
6002
+ internalData.prevDragPos = dragPos
5962
6003
  if (column.fixed ||
5963
6004
  (dragCol && dragCol.id === column.id) ||
5964
6005
  (!isCrossDrag && (isPeerDrag ? dragCol.parentId !== column.parentId : column.parentId))
@@ -5966,9 +6007,6 @@ const Methods = {
5966
6007
  showDropTip($xeTable, evnt, null, thEl, false, dragPos)
5967
6008
  return
5968
6009
  }
5969
- internalData.prevDragToChild = !!((isCrossDrag && isToChildDrag) && hasCtrlKey)
5970
- internalData.prevDragCol = column
5971
- internalData.prevDragPos = dragPos
5972
6010
  showDropTip($xeTable, evnt, null, thEl, true, dragPos)
5973
6011
  $xeTable.dispatchEvent('column-dragover', {
5974
6012
  oldColumn: dragCol,