vxe-table 3.18.2 → 3.18.4

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 (64) hide show
  1. package/es/grid/src/grid.js +5 -1
  2. package/es/index.css +1 -1
  3. package/es/index.min.css +1 -1
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/table/module/menu/mixin.js +67 -43
  7. package/es/table/module/menu/panel.js +10 -8
  8. package/es/table/render/index.js +4 -3
  9. package/es/table/src/body.js +12 -14
  10. package/es/table/src/methods.js +17 -5
  11. package/es/table/src/table.js +6 -7
  12. package/es/table/style.css +0 -4
  13. package/es/table/style.min.css +1 -1
  14. package/es/ui/index.js +1 -1
  15. package/es/ui/src/log.js +1 -1
  16. package/es/ui/src/vn.js +17 -7
  17. package/es/vxe-table/style.css +0 -4
  18. package/es/vxe-table/style.min.css +1 -1
  19. package/lib/grid/src/grid.js +6 -0
  20. package/lib/grid/src/grid.min.js +1 -1
  21. package/lib/index.css +1 -1
  22. package/lib/index.min.css +1 -1
  23. package/lib/index.umd.js +161 -104
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/style.css +1 -1
  26. package/lib/style.min.css +1 -1
  27. package/lib/table/module/menu/mixin.js +84 -58
  28. package/lib/table/module/menu/mixin.min.js +1 -1
  29. package/lib/table/module/menu/panel.js +11 -10
  30. package/lib/table/module/menu/panel.min.js +1 -1
  31. package/lib/table/render/index.js +6 -3
  32. package/lib/table/render/index.min.js +1 -1
  33. package/lib/table/src/body.js +11 -13
  34. package/lib/table/src/body.min.js +1 -1
  35. package/lib/table/src/methods.js +18 -5
  36. package/lib/table/src/methods.min.js +1 -1
  37. package/lib/table/src/table.js +6 -7
  38. package/lib/table/src/table.min.js +1 -1
  39. package/lib/table/style/style.css +0 -4
  40. package/lib/table/style/style.min.css +1 -1
  41. package/lib/ui/index.js +1 -1
  42. package/lib/ui/index.min.js +1 -1
  43. package/lib/ui/src/log.js +1 -1
  44. package/lib/ui/src/log.min.js +1 -1
  45. package/lib/ui/src/vn.js +17 -6
  46. package/lib/ui/src/vn.min.js +1 -1
  47. package/lib/vxe-table/style/style.css +0 -4
  48. package/lib/vxe-table/style/style.min.css +1 -1
  49. package/package.json +1 -1
  50. package/packages/grid/src/grid.ts +5 -1
  51. package/packages/table/module/menu/mixin.ts +79 -50
  52. package/packages/table/module/menu/panel.ts +11 -9
  53. package/packages/table/render/index.ts +27 -26
  54. package/packages/table/src/body.ts +11 -13
  55. package/packages/table/src/methods.ts +17 -5
  56. package/packages/table/src/table.ts +9 -7
  57. package/packages/ui/src/vn.ts +20 -9
  58. package/styles/components/table.scss +0 -1
  59. /package/es/{iconfont.1756452257212.ttf → iconfont.1756734865034.ttf} +0 -0
  60. /package/es/{iconfont.1756452257212.woff → iconfont.1756734865034.woff} +0 -0
  61. /package/es/{iconfont.1756452257212.woff2 → iconfont.1756734865034.woff2} +0 -0
  62. /package/lib/{iconfont.1756452257212.ttf → iconfont.1756734865034.ttf} +0 -0
  63. /package/lib/{iconfont.1756452257212.woff → iconfont.1756734865034.woff} +0 -0
  64. /package/lib/{iconfont.1756452257212.woff2 → iconfont.1756734865034.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -2002,7 +2002,7 @@ function getClass(property, params) {
2002
2002
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2003
2003
 
2004
2004
 
2005
- const version = "3.18.2";
2005
+ const version = "3.18.4";
2006
2006
  core_.VxeUI.version = version;
2007
2007
  core_.VxeUI.tableVersion = version;
2008
2008
  core_.VxeUI.setConfig({
@@ -2678,7 +2678,7 @@ function isNodeElement(elem) {
2678
2678
  const {
2679
2679
  log: log_log
2680
2680
  } = core_.VxeUI;
2681
- const log_version = `table v${"3.18.2"}`;
2681
+ const log_version = `table v${"3.18.4"}`;
2682
2682
  const warnLog = log_log.create('warn', log_version);
2683
2683
  const errLog = log_log.create('error', log_version);
2684
2684
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -3689,23 +3689,34 @@ function getOnName(type) {
3689
3689
  }
3690
3690
  function getModelEvent(renderOpts) {
3691
3691
  switch (renderOpts.name) {
3692
- case 'input':
3693
- case 'textarea':
3694
- return 'input';
3692
+ case 'VxeInput':
3693
+ case 'VxeTextarea':
3694
+ case 'VxeNumberInput':
3695
+ case 'VxePasswordInput':
3696
+ case 'VxeSelect':
3697
+ case 'VxeTreeSelect':
3698
+ case 'VxeTableSelect':
3699
+ case 'VxeDatePicker':
3700
+ case 'VxeDateRangePicker':
3701
+ case 'VxeIconPicker':
3702
+ case 'VxeColorPicker':
3703
+ case 'VxeSlider':
3704
+ case 'VxeUpload':
3705
+ return 'modelValue';
3695
3706
  case 'select':
3696
3707
  return 'change';
3697
3708
  }
3698
- return 'modelValue';
3709
+ return 'input';
3699
3710
  }
3700
3711
  function getChangeEvent(renderOpts) {
3701
3712
  switch (renderOpts.name) {
3702
3713
  case 'input':
3703
3714
  case 'textarea':
3704
3715
  case 'VxeInput':
3705
- case 'VxeNumberInput':
3706
3716
  case 'VxeTextarea':
3707
- case '$input':
3717
+ case '$input': // 已废弃
3708
3718
  case '$textarea':
3719
+ // 已废弃
3709
3720
  return 'input';
3710
3721
  }
3711
3722
  return 'change';
@@ -15952,12 +15963,22 @@ const Methods = {
15952
15963
  } = rowDragOpts;
15953
15964
  if (isCrossTableDrag && crossTableDragRowObj && !tableData.length) {
15954
15965
  const {
15955
- $oldTable
15966
+ $oldTable,
15967
+ $newTable
15956
15968
  } = crossTableDragRowObj;
15957
- if ($oldTable && $oldTable.xID !== $xeTable.xID) {
15958
- evnt.preventDefault();
15959
- crossTableDragRowObj.$newTable = $xeTable;
15960
- internalData.prevDragRow = null;
15969
+ if ($oldTable) {
15970
+ const oldTableReactData = $oldTable;
15971
+ if ($oldTable.xID !== $xeTable.xID) {
15972
+ if ($newTable && $newTable.xID !== $xeTable.xID) {
15973
+ $newTable.hideCrossTableRowDropClearStatus();
15974
+ }
15975
+ evnt.preventDefault();
15976
+ $oldTable.hideCrossTableRowDropClearStatus();
15977
+ crossTableDragRowObj.$newTable = $xeTable;
15978
+ internalData.prevDragRow = null;
15979
+ reactData.dragTipText = oldTableReactData.dragTipText;
15980
+ showDropTip($xeTable, evnt, evnt.currentTarget, null, true, '');
15981
+ }
15961
15982
  }
15962
15983
  }
15963
15984
  },
@@ -16240,6 +16261,9 @@ const Methods = {
16240
16261
  oldTableReactData.isCrossDragRow = false;
16241
16262
  crossTableDragRowObj.$newTable = null;
16242
16263
  } else if (!treeConfig || isCrossDrag) {
16264
+ if ($newTable && $newTable.xID !== $xeTable.xID) {
16265
+ $newTable.hideCrossTableRowDropClearStatus();
16266
+ }
16243
16267
  $oldTable.hideCrossTableRowDropClearStatus();
16244
16268
  oldTableReactData.isCrossDragRow = true;
16245
16269
  reactData.dragTipText = oldTableReactData.dragTipText;
@@ -19557,14 +19581,13 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
19557
19581
  // hover 进入事件
19558
19582
  if (showTitle || showTooltip || showAllTip || tooltipConfig) {
19559
19583
  tdOns.mouseenter = evnt => {
19560
- if (isVMScrollProcess($xeTable)) {
19561
- return;
19562
- }
19563
- if (showTitle) {
19564
- updateCellTitle(evnt.currentTarget, column);
19565
- } else if (showTooltip || showAllTip) {
19566
- // 如果配置了显示 tooltip
19567
- $xeTable.triggerBodyTooltipEvent(evnt, cellParams);
19584
+ if (!isVMScrollProcess($xeTable)) {
19585
+ if (showTitle) {
19586
+ updateCellTitle(evnt.currentTarget, column);
19587
+ } else if (showTooltip || showAllTip) {
19588
+ // 如果配置了显示 tooltip
19589
+ $xeTable.triggerBodyTooltipEvent(evnt, cellParams);
19590
+ }
19568
19591
  }
19569
19592
  $xeTable.dispatchEvent('cell-mouseenter', Object.assign({
19570
19593
  cell: evnt.currentTarget
@@ -19574,11 +19597,10 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
19574
19597
  // hover 退出事件
19575
19598
  if (showTooltip || showAllTip || tooltipConfig) {
19576
19599
  tdOns.mouseleave = evnt => {
19577
- if (isVMScrollProcess($xeTable)) {
19578
- return;
19579
- }
19580
- if (showTooltip || showAllTip) {
19581
- $xeTable.handleTargetLeaveEvent(evnt);
19600
+ if (!isVMScrollProcess($xeTable)) {
19601
+ if (showTooltip || showAllTip) {
19602
+ $xeTable.handleTargetLeaveEvent(evnt);
19603
+ }
19582
19604
  }
19583
19605
  $xeTable.dispatchEvent('cell-mouseleave', Object.assign({
19584
19606
  cell: evnt.currentTarget
@@ -23609,7 +23631,8 @@ const {
23609
23631
 
23610
23632
 
23611
23633
  const {
23612
- getIcon: menu_panel_getIcon
23634
+ getIcon: menu_panel_getIcon,
23635
+ renderEmptyElement: menu_panel_renderEmptyElement
23613
23636
  } = core_.VxeUI;
23614
23637
  /* harmony default export */ var menu_panel = ({
23615
23638
  name: 'VxeTableMenuPanel',
@@ -23630,18 +23653,18 @@ const {
23630
23653
  },
23631
23654
  render(h) {
23632
23655
  const $xeTable = this.$parent;
23656
+ const tableReactData = $xeTable;
23633
23657
  const {
23634
- _e,
23635
- ctxMenuOpts,
23636
23658
  ctxMenuStore
23637
- } = this;
23659
+ } = tableReactData;
23660
+ const menuOpts = $xeTable.computeMenuOpts;
23638
23661
  return h('div', {
23639
- class: ['vxe-table--context-menu-wrapper', ctxMenuOpts.className, {
23662
+ class: ['vxe-table--context-menu-wrapper', menuOpts.className, {
23640
23663
  'is--visible': ctxMenuStore.visible
23641
23664
  }],
23642
23665
  style: ctxMenuStore.style
23643
23666
  }, ctxMenuStore.list.map((options, gIndex) => {
23644
- return options.every(item => item.visible === false) ? _e() : h('ul', {
23667
+ return options.every(item => item.visible === false) ? menu_panel_renderEmptyElement($xeTable) : h('ul', {
23645
23668
  class: 'vxe-context-menu--option-wrapper',
23646
23669
  key: gIndex
23647
23670
  }, options.map((item, index) => {
@@ -23672,7 +23695,7 @@ const {
23672
23695
  class: ['vxe-context-menu--link-prefix', prefixOpts.className || '']
23673
23696
  }, [h('i', {
23674
23697
  class: prefixOpts.icon || item.prefixIcon
23675
- }), prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) : _e()]), h('span', {
23698
+ }), prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) : menu_panel_renderEmptyElement($xeTable)]), h('span', {
23676
23699
  class: 'vxe-context-menu--link-content',
23677
23700
  attrs: {
23678
23701
  title: menuContent
@@ -23681,7 +23704,7 @@ const {
23681
23704
  class: ['vxe-context-menu--link-suffix', suffixOpts.className || '']
23682
23705
  }, [h('i', {
23683
23706
  class: suffixOpts.icon || item.suffixIcon || (hasChildMenus ? menu_panel_getIcon().TABLE_MENU_OPTIONS : '')
23684
- }), suffixOpts.content ? h('span', `${suffixOpts.content}`) : _e()])]), hasChildMenus ? h('ul', {
23707
+ }), suffixOpts.content ? h('span', `${suffixOpts.content}`) : menu_panel_renderEmptyElement($xeTable)])]), hasChildMenus ? h('ul', {
23685
23708
  class: ['vxe-table--context-menu-clild-wrapper', {
23686
23709
  'is--show': item === ctxMenuStore.selected && ctxMenuStore.showChild
23687
23710
  }]
@@ -23712,7 +23735,7 @@ const {
23712
23735
  class: ['vxe-context-menu--link-prefix', childPrefixOpts.className || '']
23713
23736
  }, [h('i', {
23714
23737
  class: childPrefixOpts.icon || child.prefixIcon
23715
- }), childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) : _e()]), h('span', {
23738
+ }), childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) : menu_panel_renderEmptyElement($xeTable)]), h('span', {
23716
23739
  class: 'vxe-context-menu--link-content',
23717
23740
  attrs: {
23718
23741
  title: childMenuContent
@@ -23721,7 +23744,7 @@ const {
23721
23744
  class: ['vxe-context-menu--link-suffix', childSuffixOpts.className || '']
23722
23745
  }, [h('i', {
23723
23746
  class: childSuffixOpts.icon
23724
- }), childSuffixOpts.content ? h('span', `${childSuffixOpts.content}`) : _e()])])]);
23747
+ }), childSuffixOpts.content ? h('span', `${childSuffixOpts.content}`) : menu_panel_renderEmptyElement($xeTable)])])]);
23725
23748
  })) : null]);
23726
23749
  }));
23727
23750
  }));
@@ -24152,13 +24175,15 @@ const {
24152
24175
  * 关闭快捷菜单
24153
24176
  */
24154
24177
  _closeMenu() {
24155
- Object.assign(this.ctxMenuStore, {
24178
+ const $xeTable = this;
24179
+ const reactData = $xeTable;
24180
+ Object.assign(reactData.ctxMenuStore, {
24156
24181
  visible: false,
24157
24182
  selected: null,
24158
24183
  selectChild: null,
24159
24184
  showChild: false
24160
24185
  });
24161
- return this.$nextTick();
24186
+ return $xeTable.$nextTick();
24162
24187
  },
24163
24188
  // 处理菜单的移动
24164
24189
  moveCtxMenu(evnt, ctxMenuStore, property, hasOper, operRest, menuList) {
@@ -24199,25 +24224,34 @@ const {
24199
24224
  const $xeTable = this;
24200
24225
  const $xeGrid = $xeTable.$xeGrid;
24201
24226
  const $xeGantt = $xeTable.$xeGantt;
24227
+ const props = $xeTable;
24228
+ const reactData = $xeTable;
24202
24229
  const internalData = $xeTable;
24203
24230
  const {
24204
- $refs,
24205
- tId,
24206
- editStore,
24207
- menuConfig,
24208
- contextMenu,
24209
- ctxMenuStore,
24210
- ctxMenuOpts,
24231
+ xID
24232
+ } = $xeTable;
24233
+ const {
24211
24234
  mouseConfig,
24212
- mouseOpts
24213
- } = this;
24235
+ menuConfig
24236
+ } = props;
24237
+ const {
24238
+ editStore,
24239
+ ctxMenuStore
24240
+ } = reactData;
24241
+ const {
24242
+ visibleColumn
24243
+ } = internalData;
24244
+ const tableFilter = $xeTable.$refs.refTableFilter;
24245
+ const tableMenu = $xeTable.$refs.refTableMenu;
24246
+ const mouseOpts = $xeTable.computeMouseOpts;
24247
+ const menuOpts = $xeTable.computeMenuOpts;
24248
+ const el = $xeTable.$refs.refElem;
24214
24249
  const {
24215
24250
  selected
24216
24251
  } = editStore;
24217
- const tableFilter = $xeTable.$refs.refTableFilter;
24218
24252
  const layoutList = ['header', 'body', 'footer'];
24219
- if (isEnableConf(menuConfig) || contextMenu) {
24220
- if (ctxMenuStore.visible && $refs.refTableMenu && getEventTargetNode(evnt, $refs.refTableMenu.$el).flag) {
24253
+ if (isEnableConf(menuConfig)) {
24254
+ if (ctxMenuStore.visible && tableMenu && getEventTargetNode(evnt, tableMenu.$el).flag) {
24221
24255
  evnt.preventDefault();
24222
24256
  return;
24223
24257
  }
@@ -24229,16 +24263,16 @@ const {
24229
24263
  $grid: $xeGrid,
24230
24264
  $gantt: $xeGantt,
24231
24265
  keyboard: true,
24232
- columns: this.visibleColumn.slice(0),
24266
+ columns: visibleColumn.slice(0),
24233
24267
  $event: evnt
24234
24268
  };
24235
24269
  // 如果开启单元格区域
24236
24270
  if (mouseConfig && mouseOpts.area) {
24237
- const activeArea = this.getActiveCellArea();
24271
+ const activeArea = $xeTable.getActiveCellArea();
24238
24272
  if (activeArea && activeArea.row && activeArea.column) {
24239
24273
  params.row = activeArea.row;
24240
24274
  params.column = activeArea.column;
24241
- this.handleOpenMenuEvent(evnt, type, params);
24275
+ $xeTable.handleOpenMenuEvent(evnt, type, params);
24242
24276
  return;
24243
24277
  }
24244
24278
  } else if (mouseConfig && mouseOpts.selected) {
@@ -24246,7 +24280,7 @@ const {
24246
24280
  if (selected.row && selected.column) {
24247
24281
  params.row = selected.row;
24248
24282
  params.column = selected.column;
24249
- this.handleOpenMenuEvent(evnt, type, params);
24283
+ $xeTable.handleOpenMenuEvent(evnt, type, params);
24250
24284
  return;
24251
24285
  }
24252
24286
  }
@@ -24254,16 +24288,16 @@ const {
24254
24288
  // 分别匹配表尾、内容、表尾的快捷菜单
24255
24289
  for (let index = 0; index < layoutList.length; index++) {
24256
24290
  const layout = layoutList[index];
24257
- const columnTargetNode = getEventTargetNode(evnt, this.$el, `vxe-${layout}--column`, target => {
24291
+ const columnTargetNode = getEventTargetNode(evnt, el, `vxe-${layout}--column`, target => {
24258
24292
  // target=td|th,直接向上找 table 去匹配即可
24259
- return target.parentNode.parentNode.parentNode.getAttribute('xid') === tId;
24293
+ return target.parentNode.parentNode.parentNode.getAttribute('xid') === xID;
24260
24294
  });
24261
24295
  const params = {
24262
24296
  type: layout,
24263
24297
  $table: $xeTable,
24264
24298
  $grid: $xeGrid,
24265
24299
  $gantt: $xeGantt,
24266
- columns: this.visibleColumn.slice(0),
24300
+ columns: visibleColumn.slice(0),
24267
24301
  $event: evnt
24268
24302
  };
24269
24303
  if (columnTargetNode.flag) {
@@ -24288,41 +24322,44 @@ const {
24288
24322
  }
24289
24323
  }
24290
24324
  const eventType = `${typePrefix}cell-menu`;
24291
- this.handleOpenMenuEvent(evnt, layout, params);
24325
+ $xeTable.handleOpenMenuEvent(evnt, layout, params);
24292
24326
  // 在 v4 中废弃事件 cell-context-menu、header-cell-context-menu、footer-cell-context-menu
24293
- if (this.$listeners[`${typePrefix}cell-context-menu`]) {
24327
+ if ($xeTable.$listeners[`${typePrefix}cell-context-menu`]) {
24294
24328
  warnLog('vxe.error.delEvent', [`${typePrefix}cell-context-menu`, `${typePrefix}cell-menu`]);
24295
24329
  $xeTable.dispatchEvent(`${typePrefix}cell-context-menu`, params, evnt);
24296
24330
  } else {
24297
24331
  $xeTable.dispatchEvent(eventType, params, evnt);
24298
24332
  }
24299
24333
  return;
24300
- } else if (getEventTargetNode(evnt, this.$el, `vxe-table--${layout}-wrapper`, target => target.getAttribute('xid') === tId).flag) {
24301
- if (ctxMenuOpts.trigger === 'cell') {
24334
+ } else if (getEventTargetNode(evnt, $xeTable.$el, `vxe-table--${layout}-wrapper`, target => target.getAttribute('xid') === xID).flag) {
24335
+ if (menuOpts.trigger === 'cell') {
24302
24336
  evnt.preventDefault();
24303
24337
  } else {
24304
- this.handleOpenMenuEvent(evnt, layout, params);
24338
+ $xeTable.handleOpenMenuEvent(evnt, layout, params);
24305
24339
  }
24306
24340
  return;
24307
24341
  }
24308
24342
  }
24309
24343
  }
24310
24344
  if (tableFilter && !getEventTargetNode(evnt, tableFilter.$el).flag) {
24311
- this.closeFilter();
24345
+ $xeTable.closeFilter();
24312
24346
  }
24313
- this.closeMenu();
24347
+ $xeTable.closeMenu();
24314
24348
  },
24315
24349
  /**
24316
24350
  * 显示快捷菜单
24317
24351
  */
24318
24352
  handleOpenMenuEvent(evnt, type, params) {
24353
+ const $xeTable = this;
24354
+ const reactData = $xeTable;
24355
+ const internalData = $xeTable;
24319
24356
  const {
24320
- isCtxMenu,
24321
- ctxMenuStore,
24322
- ctxMenuOpts
24323
- } = this;
24324
- const config = ctxMenuOpts[type];
24325
- const visibleMethod = ctxMenuOpts.visibleMethod;
24357
+ ctxMenuStore
24358
+ } = reactData;
24359
+ const isMenu = $xeTable.computeIsMenu;
24360
+ const menuOpts = $xeTable.computeMenuOpts;
24361
+ const config = menuOpts[type];
24362
+ const visibleMethod = menuOpts.visibleMethod;
24326
24363
  if (config) {
24327
24364
  const {
24328
24365
  options,
@@ -24330,12 +24367,12 @@ const {
24330
24367
  } = config;
24331
24368
  if (disabled) {
24332
24369
  evnt.preventDefault();
24333
- } else if (isCtxMenu && options && options.length) {
24370
+ } else if (isMenu && options && options.length) {
24334
24371
  params.options = options;
24335
- this.preventEvent(evnt, 'event.showMenu', params, () => {
24372
+ $xeTable.preventEvent(evnt, 'event.showMenu', params, () => {
24336
24373
  if (!visibleMethod || visibleMethod(params)) {
24337
24374
  evnt.preventDefault();
24338
- this.updateZindex();
24375
+ $xeTable.updateZindex();
24339
24376
  const {
24340
24377
  scrollTop,
24341
24378
  scrollLeft,
@@ -24345,21 +24382,22 @@ const {
24345
24382
  let top = evnt.clientY + scrollTop;
24346
24383
  let left = evnt.clientX + scrollLeft;
24347
24384
  const handleVisible = () => {
24385
+ internalData._currMenuParams = params;
24348
24386
  Object.assign(ctxMenuStore, {
24349
- args: params,
24350
24387
  visible: true,
24351
24388
  list: options,
24352
24389
  selected: null,
24353
24390
  selectChild: null,
24354
24391
  showChild: false,
24355
24392
  style: {
24356
- zIndex: this.tZindex,
24393
+ zIndex: internalData.tZindex,
24357
24394
  top: `${top}px`,
24358
24395
  left: `${left}px`
24359
24396
  }
24360
24397
  });
24361
- this.$nextTick(() => {
24362
- const ctxElem = this.$refs.refTableMenu.$el;
24398
+ $xeTable.$nextTick(() => {
24399
+ const tableMenu = $xeTable.$refs.refTableMenu;
24400
+ const ctxElem = tableMenu.$el;
24363
24401
  const clientHeight = ctxElem.clientHeight;
24364
24402
  const clientWidth = ctxElem.clientWidth;
24365
24403
  const {
@@ -24382,30 +24420,36 @@ const {
24382
24420
  column
24383
24421
  } = params;
24384
24422
  if (keyboard && row && column) {
24385
- this.scrollToRow(row, column).then(() => {
24386
- const cell = this.getCellElement(row, column);
24387
- const {
24388
- boundingTop,
24389
- boundingLeft
24390
- } = getAbsolutePos(cell);
24391
- top = boundingTop + scrollTop + Math.floor(cell.offsetHeight / 2);
24392
- left = boundingLeft + scrollLeft + Math.floor(cell.offsetWidth / 2);
24423
+ $xeTable.scrollToRow(row, column).then(() => {
24424
+ const cell = $xeTable.getCellElement(row, column);
24425
+ if (cell) {
24426
+ const {
24427
+ boundingTop,
24428
+ boundingLeft
24429
+ } = getAbsolutePos(cell);
24430
+ top = boundingTop + scrollTop + Math.floor(cell.offsetHeight / 2);
24431
+ left = boundingLeft + scrollLeft + Math.floor(cell.offsetWidth / 2);
24432
+ }
24393
24433
  handleVisible();
24394
24434
  });
24395
24435
  } else {
24396
24436
  handleVisible();
24397
24437
  }
24398
24438
  } else {
24399
- this.closeMenu();
24439
+ $xeTable.closeMenu();
24400
24440
  }
24401
24441
  });
24402
24442
  }
24403
24443
  }
24404
- this.closeFilter();
24444
+ $xeTable.closeFilter();
24405
24445
  },
24406
24446
  ctxMenuMouseoverEvent(evnt, item, child) {
24447
+ const $xeTable = this;
24448
+ const reactData = $xeTable;
24407
24449
  const menuElem = evnt.currentTarget;
24408
- const ctxMenuStore = this.ctxMenuStore;
24450
+ const {
24451
+ ctxMenuStore
24452
+ } = reactData;
24409
24453
  evnt.preventDefault();
24410
24454
  evnt.stopPropagation();
24411
24455
  ctxMenuStore.selected = item;
@@ -24413,7 +24457,7 @@ const {
24413
24457
  if (!child) {
24414
24458
  ctxMenuStore.showChild = hasChildrenList(item);
24415
24459
  if (ctxMenuStore.showChild) {
24416
- this.$nextTick(() => {
24460
+ $xeTable.$nextTick(() => {
24417
24461
  const childWrapperElem = menuElem.nextElementSibling;
24418
24462
  if (childWrapperElem) {
24419
24463
  const {
@@ -24448,7 +24492,11 @@ const {
24448
24492
  }
24449
24493
  },
24450
24494
  ctxMenuMouseoutEvent(evnt, item) {
24451
- const ctxMenuStore = this.ctxMenuStore;
24495
+ const $xeTable = this;
24496
+ const reactData = $xeTable;
24497
+ const {
24498
+ ctxMenuStore
24499
+ } = reactData;
24452
24500
  if (!item.children) {
24453
24501
  ctxMenuStore.selected = null;
24454
24502
  }
@@ -24461,27 +24509,28 @@ const {
24461
24509
  const $xeTable = this;
24462
24510
  const $xeGrid = $xeTable.$xeGrid;
24463
24511
  const $xeGantt = $xeTable.$xeGantt;
24512
+ const internalData = $xeTable;
24464
24513
  // 如果一级菜单有配置 code 则允许点击,否则不能点击
24465
24514
  if (!menu.disabled && (menu.code || !menu.children || !menu.children.length)) {
24466
24515
  const gMenuOpts = mixin_menus.get(menu.code);
24467
- const params = Object.assign({
24516
+ const params = Object.assign({}, internalData._currMenuParams, {
24468
24517
  menu,
24469
24518
  $table: $xeTable,
24470
24519
  $grid: $xeGrid,
24471
24520
  $gantt: $xeGantt,
24472
24521
  $event: evnt
24473
- }, this.ctxMenuStore.args);
24522
+ });
24474
24523
  if (gMenuOpts && gMenuOpts.menuMethod) {
24475
24524
  gMenuOpts.menuMethod(params, evnt);
24476
24525
  }
24477
24526
  // 在 v4 中废弃事件 context-menu-click
24478
- if (this.$listeners['context-menu-click']) {
24527
+ if ($xeTable.$listeners['context-menu-click']) {
24479
24528
  warnLog('vxe.error.delEvent', ['context-menu-click', 'menu-click']);
24480
24529
  $xeTable.dispatchEvent('context-menu-click', params, evnt);
24481
24530
  } else {
24482
24531
  $xeTable.dispatchEvent('menu-click', params, evnt);
24483
24532
  }
24484
- this.closeMenu();
24533
+ $xeTable.closeMenu();
24485
24534
  }
24486
24535
  }
24487
24536
  }
@@ -31457,9 +31506,11 @@ function renderBody(h, $xeTable) {
31457
31506
  const {
31458
31507
  isCrossTableDrag
31459
31508
  } = rowDragOpts;
31460
- const rwOns = {};
31509
+ const tbOns = {
31510
+ keydown: this.keydownEvent
31511
+ };
31461
31512
  if (isCrossTableDrag && !tableData.length) {
31462
- rwOns.onDragover = $xeTable.handleCrossTableRowDragoverEmptyEvent;
31513
+ tbOns.dragover = $xeTable.handleCrossTableRowDragoverEmptyEvent;
31463
31514
  }
31464
31515
  return h('div', {
31465
31516
  ref: 'refElem',
@@ -31497,9 +31548,7 @@ function renderBody(h, $xeTable) {
31497
31548
  attrs: {
31498
31549
  spellcheck: false
31499
31550
  },
31500
- on: {
31501
- keydown: this.keydownEvent
31502
- }
31551
+ on: tbOns
31503
31552
  }, [
31504
31553
  /**
31505
31554
  * 隐藏列
@@ -31520,8 +31569,7 @@ function renderBody(h, $xeTable) {
31520
31569
  class: 'vxe-table-var-mini'
31521
31570
  })]), h('div', {
31522
31571
  key: 'tw',
31523
- class: 'vxe-table--render-wrapper',
31524
- on: rwOns
31572
+ class: 'vxe-table--render-wrapper'
31525
31573
  }, scrollbarXToTop ? [renderScrollX(h, $xeTable), renderBody(h, $xeTable)] : [renderBody(h, $xeTable), renderScrollX(h, $xeTable)]),
31526
31574
  /**
31527
31575
  * 空数据
@@ -33093,6 +33141,8 @@ function grid_createInternalData() {
33093
33141
  let itemValue = null;
33094
33142
  if (itemRender) {
33095
33143
  const {
33144
+ startField,
33145
+ endField,
33096
33146
  defaultValue
33097
33147
  } = itemRender;
33098
33148
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(defaultValue)) {
@@ -33102,6 +33152,10 @@ function grid_createInternalData() {
33102
33152
  } else if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(defaultValue)) {
33103
33153
  itemValue = defaultValue;
33104
33154
  }
33155
+ if (startField && endField) {
33156
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(fData, startField, null);
33157
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(fData, endField, null);
33158
+ }
33105
33159
  }
33106
33160
  fData[field] = itemValue;
33107
33161
  }
@@ -34891,7 +34945,7 @@ function nativeEditRender(h, renderOpts, params) {
34891
34945
  name
34892
34946
  } = renderOpts;
34893
34947
  const cellValue = isImmediateCell(renderOpts, params) ? getCellValue(row, column) : column.model.value;
34894
- return [h(name, {
34948
+ return [h(`${name}`, {
34895
34949
  class: `vxe-default-${name}`,
34896
34950
  attrs: getNativeAttrs(renderOpts),
34897
34951
  domProps: {
@@ -34975,7 +35029,10 @@ function oldButtonEditRender(h, renderOpts, params) {
34975
35029
  * @deprecated
34976
35030
  */
34977
35031
  function oldButtonsEditRender(h, renderOpts, params) {
34978
- return renderOpts.children.map(childRenderOpts => oldButtonEditRender(h, childRenderOpts, params)[0]);
35032
+ const {
35033
+ children
35034
+ } = renderOpts;
35035
+ return children ? children.map(childRenderOpts => oldButtonEditRender(h, childRenderOpts, params)[0]) : [];
34979
35036
  }
34980
35037
  function renderNativeOptgroups(h, renderOpts, params, renderOptionsMethods) {
34981
35038
  const {
@@ -35037,7 +35094,7 @@ function nativeFilterRender(h, renderOpts, params) {
35037
35094
  } = renderOpts;
35038
35095
  const attrs = getNativeAttrs(renderOpts);
35039
35096
  return column.filters.map((option, oIndex) => {
35040
- return h(name, {
35097
+ return h(`${name}`, {
35041
35098
  key: oIndex,
35042
35099
  class: `vxe-default-${name}`,
35043
35100
  attrs,