vxe-table 4.1.20 → 4.2.0-beta.2

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 (324) hide show
  1. package/README.en.md +2 -4
  2. package/README.md +2 -3
  3. package/README.zh-TW.md +2 -4
  4. package/es/button/index.js +1 -1
  5. package/es/checkbox/index.js +1 -1
  6. package/es/checkbox-group/index.js +1 -1
  7. package/es/colgroup/index.js +3 -2
  8. package/es/column/index.js +3 -2
  9. package/es/edit/src/hook.js +2 -1
  10. package/es/export/index.js +2 -2
  11. package/es/export/src/hook.js +2 -1
  12. package/es/export/src/util.js +3 -5
  13. package/es/filter/index.js +1 -1
  14. package/es/filter/src/hook.js +17 -10
  15. package/es/footer/index.js +1 -1
  16. package/es/footer/src/footer.js +3 -2
  17. package/es/form/index.js +1 -1
  18. package/es/form/src/form-gather.js +3 -3
  19. package/es/form/src/form-item.js +4 -4
  20. package/es/form/src/form.js +36 -43
  21. package/es/form/src/render.js +15 -10
  22. package/es/form/src/util.js +6 -0
  23. package/es/form-gather/index.js +1 -1
  24. package/es/form-item/index.js +1 -1
  25. package/es/grid/index.js +1 -1
  26. package/es/grid/src/grid.js +2 -1
  27. package/es/header/index.js +1 -1
  28. package/es/header/src/header.js +1 -1
  29. package/es/input/index.js +1 -1
  30. package/es/input/src/date.js +41 -0
  31. package/es/input/src/input.js +4 -51
  32. package/es/input/src/number.js +10 -0
  33. package/es/list/index.js +1 -1
  34. package/es/menu/index.js +1 -1
  35. package/es/modal/index.js +1 -1
  36. package/es/modal/src/modal.js +2 -1
  37. package/es/optgroup/index.js +1 -1
  38. package/es/option/index.js +1 -1
  39. package/es/pager/index.js +1 -1
  40. package/es/pager/src/pager.js +13 -2
  41. package/es/pulldown/index.js +1 -1
  42. package/es/radio/index.js +1 -1
  43. package/es/radio-button/index.js +1 -1
  44. package/es/radio-group/index.js +1 -1
  45. package/es/select/index.js +1 -1
  46. package/es/select/style.css +1 -1
  47. package/es/style.css +1 -1
  48. package/es/style.min.css +1 -1
  49. package/es/switch/index.js +1 -1
  50. package/es/table/index.js +1 -1
  51. package/es/table/src/body.js +32 -11
  52. package/es/table/src/cell.js +3 -3
  53. package/es/table/src/column.js +3 -1
  54. package/es/table/src/columnInfo.js +5 -4
  55. package/es/table/src/emits.js +5 -1
  56. package/es/table/src/props.js +5 -2
  57. package/es/table/src/table.js +120 -86
  58. package/es/table/src/util.js +5 -3
  59. package/es/textarea/index.js +1 -1
  60. package/es/toolbar/index.js +1 -1
  61. package/es/toolbar/src/toolbar.js +2 -1
  62. package/es/tools/dom.js +9 -0
  63. package/es/tools/log.js +13 -0
  64. package/es/tools/utils.js +0 -12
  65. package/es/tooltip/index.js +1 -1
  66. package/es/tooltip/src/tooltip.js +85 -45
  67. package/es/tooltip/style.css +1 -1
  68. package/es/v-x-e-table/index.js +1 -0
  69. package/es/v-x-e-table/src/conf.js +12 -7
  70. package/es/v-x-e-table/src/interceptor.js +1 -1
  71. package/es/v-x-e-table/src/renderer.js +2 -1
  72. package/es/v-x-e-table/src/store.js +1 -1
  73. package/helper/vetur/attributes.json +31 -11
  74. package/helper/vetur/tags.json +8 -3
  75. package/lib/button/index.js +3 -2
  76. package/lib/button/index.min.js +1 -1
  77. package/lib/checkbox/index.js +3 -2
  78. package/lib/checkbox/index.min.js +1 -1
  79. package/lib/checkbox-group/index.js +3 -2
  80. package/lib/checkbox-group/index.min.js +1 -1
  81. package/lib/colgroup/index.js +6 -4
  82. package/lib/colgroup/index.min.js +1 -1
  83. package/lib/column/index.js +6 -4
  84. package/lib/column/index.min.js +1 -1
  85. package/lib/edit/src/hook.js +7 -5
  86. package/lib/edit/src/hook.min.js +1 -1
  87. package/lib/export/index.js +5 -4
  88. package/lib/export/index.min.js +1 -1
  89. package/lib/export/src/hook.js +14 -12
  90. package/lib/export/src/hook.min.js +1 -1
  91. package/lib/export/src/util.js +7 -9
  92. package/lib/export/src/util.min.js +1 -1
  93. package/lib/filter/index.js +3 -2
  94. package/lib/filter/index.min.js +1 -1
  95. package/lib/filter/src/hook.js +24 -13
  96. package/lib/filter/src/hook.min.js +1 -1
  97. package/lib/footer/index.js +3 -2
  98. package/lib/footer/index.min.js +1 -1
  99. package/lib/footer/src/footer.js +7 -3
  100. package/lib/footer/src/footer.min.js +1 -1
  101. package/lib/form/index.js +3 -2
  102. package/lib/form/index.min.js +1 -1
  103. package/lib/form/src/form-gather.js +3 -3
  104. package/lib/form/src/form-gather.min.js +1 -1
  105. package/lib/form/src/form-item.js +3 -3
  106. package/lib/form/src/form-item.min.js +1 -1
  107. package/lib/form/src/form.js +45 -58
  108. package/lib/form/src/form.min.js +1 -1
  109. package/lib/form/src/render.js +24 -10
  110. package/lib/form/src/render.min.js +1 -1
  111. package/lib/form/src/util.js +11 -0
  112. package/lib/form/src/util.min.js +1 -1
  113. package/lib/form-gather/index.js +3 -2
  114. package/lib/form-gather/index.min.js +1 -1
  115. package/lib/form-item/index.js +3 -2
  116. package/lib/form-item/index.min.js +1 -1
  117. package/lib/grid/index.js +3 -2
  118. package/lib/grid/index.min.js +1 -1
  119. package/lib/grid/src/grid.js +16 -14
  120. package/lib/grid/src/grid.min.js +1 -1
  121. package/lib/header/index.js +3 -2
  122. package/lib/header/index.min.js +1 -1
  123. package/lib/header/src/header.js +1 -1
  124. package/lib/header/src/header.min.js +1 -1
  125. package/lib/index.umd.js +584 -415
  126. package/lib/index.umd.min.js +1 -2
  127. package/lib/input/index.js +3 -2
  128. package/lib/input/index.min.js +1 -1
  129. package/lib/input/src/date.js +56 -0
  130. package/lib/input/src/date.min.js +1 -0
  131. package/lib/input/src/input.js +13 -67
  132. package/lib/input/src/input.min.js +1 -1
  133. package/lib/input/src/number.js +23 -0
  134. package/lib/input/src/number.min.js +1 -0
  135. package/lib/list/index.js +3 -2
  136. package/lib/list/index.min.js +1 -1
  137. package/lib/menu/index.js +3 -2
  138. package/lib/menu/index.min.js +1 -1
  139. package/lib/modal/index.js +3 -2
  140. package/lib/modal/index.min.js +1 -1
  141. package/lib/modal/src/modal.js +3 -1
  142. package/lib/modal/src/modal.min.js +1 -1
  143. package/lib/optgroup/index.js +3 -2
  144. package/lib/optgroup/index.min.js +1 -1
  145. package/lib/option/index.js +3 -2
  146. package/lib/option/index.min.js +1 -1
  147. package/lib/pager/index.js +3 -2
  148. package/lib/pager/index.min.js +1 -1
  149. package/lib/pager/src/pager.js +15 -1
  150. package/lib/pager/src/pager.min.js +1 -1
  151. package/lib/pulldown/index.js +3 -2
  152. package/lib/pulldown/index.min.js +1 -1
  153. package/lib/radio/index.js +3 -2
  154. package/lib/radio/index.min.js +1 -1
  155. package/lib/radio-button/index.js +3 -2
  156. package/lib/radio-button/index.min.js +1 -1
  157. package/lib/radio-group/index.js +3 -2
  158. package/lib/radio-group/index.min.js +1 -1
  159. package/lib/select/index.js +3 -2
  160. package/lib/select/index.min.js +1 -1
  161. package/lib/select/style/style.css +1 -1
  162. package/lib/select/style/style.min.css +1 -1
  163. package/lib/style.css +1 -1
  164. package/lib/style.min.css +1 -1
  165. package/lib/switch/index.js +3 -2
  166. package/lib/switch/index.min.js +1 -1
  167. package/lib/table/index.js +3 -2
  168. package/lib/table/index.min.js +1 -1
  169. package/lib/table/src/body.js +32 -11
  170. package/lib/table/src/body.min.js +1 -1
  171. package/lib/table/src/cell.js +3 -3
  172. package/lib/table/src/cell.min.js +1 -1
  173. package/lib/table/src/column.js +3 -1
  174. package/lib/table/src/column.min.js +1 -1
  175. package/lib/table/src/columnInfo.js +13 -9
  176. package/lib/table/src/columnInfo.min.js +1 -1
  177. package/lib/table/src/emits.js +1 -1
  178. package/lib/table/src/emits.min.js +1 -1
  179. package/lib/table/src/props.js +5 -2
  180. package/lib/table/src/table.js +187 -148
  181. package/lib/table/src/table.min.js +1 -1
  182. package/lib/table/src/util.js +5 -3
  183. package/lib/table/src/util.min.js +1 -1
  184. package/lib/textarea/index.js +3 -2
  185. package/lib/textarea/index.min.js +1 -1
  186. package/lib/toolbar/index.js +3 -2
  187. package/lib/toolbar/index.min.js +1 -1
  188. package/lib/toolbar/src/toolbar.js +4 -2
  189. package/lib/toolbar/src/toolbar.min.js +1 -1
  190. package/lib/tools/dom.js +12 -1
  191. package/lib/tools/dom.min.js +1 -1
  192. package/lib/tools/log.js +29 -0
  193. package/lib/tools/log.min.js +1 -0
  194. package/lib/tools/utils.js +0 -20
  195. package/lib/tools/utils.min.js +1 -1
  196. package/lib/tooltip/index.js +3 -3
  197. package/lib/tooltip/index.min.js +1 -1
  198. package/lib/tooltip/src/tooltip.js +114 -60
  199. package/lib/tooltip/src/tooltip.min.js +1 -1
  200. package/lib/tooltip/style/style.css +1 -1
  201. package/lib/tooltip/style/style.min.css +1 -1
  202. package/lib/v-x-e-table/index.js +1 -0
  203. package/lib/v-x-e-table/index.min.js +1 -1
  204. package/lib/v-x-e-table/src/conf.js +12 -7
  205. package/lib/v-x-e-table/src/conf.min.js +1 -1
  206. package/lib/v-x-e-table/src/interceptor.js +3 -3
  207. package/lib/v-x-e-table/src/interceptor.min.js +1 -1
  208. package/lib/v-x-e-table/src/renderer.js +3 -1
  209. package/lib/v-x-e-table/src/renderer.min.js +1 -1
  210. package/lib/v-x-e-table/src/store.js +2 -2
  211. package/lib/v-x-e-table/src/store.min.js +1 -1
  212. package/package.json +4 -4
  213. package/packages/button/index.ts +2 -1
  214. package/packages/checkbox/index.ts +2 -1
  215. package/packages/checkbox-group/index.ts +2 -1
  216. package/packages/colgroup/index.ts +4 -2
  217. package/packages/column/index.ts +4 -2
  218. package/packages/edit/src/hook.ts +2 -1
  219. package/packages/export/index.ts +3 -2
  220. package/packages/export/src/hook.ts +2 -1
  221. package/packages/export/src/util.ts +4 -6
  222. package/packages/filter/index.ts +2 -1
  223. package/packages/filter/src/hook.ts +17 -10
  224. package/packages/footer/index.ts +2 -1
  225. package/packages/footer/src/footer.ts +3 -2
  226. package/packages/form/index.ts +2 -1
  227. package/packages/form/src/form-gather.ts +3 -3
  228. package/packages/form/src/form-item.ts +4 -4
  229. package/packages/form/src/form.ts +38 -46
  230. package/packages/form/src/render.ts +8 -6
  231. package/packages/form/src/util.ts +8 -1
  232. package/packages/form-gather/index.ts +2 -1
  233. package/packages/form-item/index.ts +2 -1
  234. package/packages/grid/index.ts +2 -1
  235. package/packages/grid/src/grid.ts +2 -1
  236. package/packages/header/index.ts +2 -1
  237. package/packages/header/src/header.ts +1 -1
  238. package/packages/input/index.ts +2 -1
  239. package/packages/input/src/date.ts +42 -0
  240. package/packages/input/src/input.ts +3 -51
  241. package/packages/input/src/number.ts +12 -0
  242. package/packages/list/index.ts +2 -1
  243. package/packages/menu/index.ts +2 -1
  244. package/packages/modal/index.ts +2 -1
  245. package/packages/modal/src/modal.ts +2 -1
  246. package/packages/optgroup/index.ts +2 -1
  247. package/packages/option/index.ts +2 -1
  248. package/packages/pager/index.ts +2 -1
  249. package/packages/pager/src/pager.ts +17 -3
  250. package/packages/pulldown/index.ts +2 -1
  251. package/packages/radio/index.ts +2 -1
  252. package/packages/radio-button/index.ts +2 -1
  253. package/packages/radio-group/index.ts +2 -1
  254. package/packages/select/index.ts +2 -1
  255. package/packages/switch/index.ts +2 -1
  256. package/packages/table/index.ts +2 -1
  257. package/packages/table/src/body.ts +33 -12
  258. package/packages/table/src/cell.ts +3 -3
  259. package/packages/table/src/column.ts +3 -1
  260. package/packages/table/src/columnInfo.ts +5 -3
  261. package/packages/table/src/emits.ts +5 -1
  262. package/packages/table/src/props.ts +5 -2
  263. package/packages/table/src/table.ts +120 -84
  264. package/packages/table/src/util.ts +5 -3
  265. package/packages/textarea/index.ts +2 -1
  266. package/packages/toolbar/index.ts +2 -1
  267. package/packages/toolbar/src/toolbar.ts +2 -1
  268. package/packages/tools/dom.ts +11 -0
  269. package/packages/tools/log.ts +16 -0
  270. package/packages/tools/utils.ts +0 -15
  271. package/packages/tooltip/index.ts +2 -1
  272. package/packages/tooltip/src/tooltip.ts +87 -46
  273. package/packages/v-x-e-table/index.ts +1 -0
  274. package/packages/v-x-e-table/src/conf.ts +12 -7
  275. package/packages/v-x-e-table/src/interceptor.ts +1 -1
  276. package/packages/v-x-e-table/src/renderer.ts +2 -1
  277. package/packages/v-x-e-table/src/store.ts +1 -1
  278. package/styles/select.scss +1 -1
  279. package/styles/tooltip.scss +1 -1
  280. package/types/all.d.ts +2 -2
  281. package/types/button.d.ts +54 -54
  282. package/types/checkbox-group.d.ts +21 -21
  283. package/types/checkbox.d.ts +30 -30
  284. package/types/colgroup.d.ts +16 -16
  285. package/types/column.d.ts +172 -161
  286. package/types/component.d.ts +9 -9
  287. package/types/edit.d.ts +35 -35
  288. package/types/export.d.ts +101 -101
  289. package/types/filter.d.ts +19 -19
  290. package/types/footer.d.ts +1 -1
  291. package/types/form-gather.d.ts +3 -3
  292. package/types/form-item.d.ts +68 -66
  293. package/types/form.d.ts +136 -131
  294. package/types/grid.d.ts +257 -257
  295. package/types/header.d.ts +1 -1
  296. package/types/icon.d.ts +1 -1
  297. package/types/input.d.ts +162 -162
  298. package/types/keyboard.d.ts +6 -6
  299. package/types/list.d.ts +54 -54
  300. package/types/menu.d.ts +33 -33
  301. package/types/modal.d.ts +160 -160
  302. package/types/optgroup.d.ts +5 -5
  303. package/types/option.d.ts +19 -19
  304. package/types/pager.d.ts +65 -61
  305. package/types/plugins/pro.d.ts +245 -215
  306. package/types/pulldown.d.ts +36 -36
  307. package/types/radio-button.d.ts +25 -25
  308. package/types/radio-group.d.ts +20 -20
  309. package/types/radio.d.ts +27 -27
  310. package/types/select.d.ts +82 -82
  311. package/types/switch.d.ts +40 -40
  312. package/types/table.d.ts +1422 -1336
  313. package/types/textarea.d.ts +71 -71
  314. package/types/toolbar.d.ts +65 -65
  315. package/types/tooltip.d.ts +50 -44
  316. package/types/v-x-e-table/commands.d.ts +12 -12
  317. package/types/v-x-e-table/formats.d.ts +10 -10
  318. package/types/v-x-e-table/hooks.d.ts +9 -9
  319. package/types/v-x-e-table/index.d.ts +51 -43
  320. package/types/v-x-e-table/interceptor.d.ts +26 -26
  321. package/types/v-x-e-table/menus.d.ts +13 -13
  322. package/types/v-x-e-table/renderer.d.ts +128 -128
  323. package/types/v-x-e-table/setup.d.ts +55 -55
  324. package/types/validator.d.ts +28 -28
@@ -16,8 +16,9 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
16
16
  };
17
17
  import { defineComponent, getCurrentInstance, h, createCommentVNode, resolveComponent, reactive, ref, provide, inject, nextTick, onActivated, onDeactivated, onBeforeUnmount, onUnmounted, watch, computed, onMounted } from 'vue';
18
18
  import XEUtils from 'xe-utils';
19
- import { browse, isPx, isScale, hasClass, addClass, removeClass, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft } from '../../tools/dom';
20
- import { warnLog, errLog, getLog, getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../tools/utils';
19
+ import { browse, isPx, isScale, hasClass, addClass, removeClass, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, isNodeElement } from '../../tools/dom';
20
+ import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../tools/utils';
21
+ import { warnLog, errLog, getLog } from '../../tools/log';
21
22
  import { createResizeEvent } from '../../tools/resize';
22
23
  import { GlobalEvent, hasEventKey, EVENT_KEYS } from '../../tools/event';
23
24
  import { useSize } from '../../hooks/size';
@@ -167,6 +168,14 @@ export default defineComponent({
167
168
  insertList: [],
168
169
  removeList: []
169
170
  },
171
+ // 存放 tooltip 相关信息
172
+ tooltipStore: {
173
+ row: null,
174
+ column: null,
175
+ content: null,
176
+ visible: false,
177
+ currOpts: null
178
+ },
170
179
  // 存放数据校验相关信息
171
180
  validStore: {
172
181
  visible: false,
@@ -238,8 +247,6 @@ export default defineComponent({
238
247
  startIndex: 0,
239
248
  endIndex: 0
240
249
  },
241
- // 存放 tooltip 相关信息
242
- tooltipStore: {},
243
250
  // 表格宽度
244
251
  tableWidth: 0,
245
252
  // 表格高度
@@ -285,7 +292,6 @@ export default defineComponent({
285
292
  fullColumnIdData: {},
286
293
  fullColumnFieldData: {},
287
294
  inited: false,
288
- tooltipActive: false,
289
295
  tooltipTimeout: null,
290
296
  initStatus: false,
291
297
  isActivated: false
@@ -349,21 +355,13 @@ export default defineComponent({
349
355
  return Object.assign({}, GlobalConfig.table.checkboxConfig, props.checkboxConfig);
350
356
  });
351
357
  var computeTooltipOpts = ref();
352
- var handleTooltipLeaveMethod = function () {
353
- var tooltipOpts = computeTooltipOpts.value;
354
- setTimeout(function () {
355
- if (!internalData.tooltipActive) {
356
- tableMethods.closeTooltip();
357
- }
358
- }, tooltipOpts.leaveDelay);
359
- return false;
360
- };
361
358
  computeTooltipOpts = computed(function () {
362
- var opts = Object.assign({ leaveDelay: 300 }, GlobalConfig.table.tooltipConfig, props.tooltipConfig);
363
- if (opts.enterable) {
364
- opts.leaveMethod = handleTooltipLeaveMethod;
365
- }
366
- return opts;
359
+ return Object.assign({}, GlobalConfig.tooltip, GlobalConfig.table.tooltipConfig, props.tooltipConfig);
360
+ });
361
+ var computeTipConfig = computed(function () {
362
+ var tooltipStore = reactData.tooltipStore;
363
+ var tooltipOpts = computeTooltipOpts.value;
364
+ return __assign(__assign({}, tooltipOpts), tooltipStore.currOpts);
367
365
  });
368
366
  var computeValidTipOpts = computed(function () {
369
367
  var tooltipOpts = computeTooltipOpts.value;
@@ -1374,7 +1372,7 @@ export default defineComponent({
1374
1372
  }
1375
1373
  else if (layout === 'body') {
1376
1374
  var emptyBlockElem = elemStore[name + "-" + layout + "-emptyBlock"];
1377
- if (wrapperElem) {
1375
+ if (isNodeElement(wrapperElem)) {
1378
1376
  if (customMaxHeight) {
1379
1377
  wrapperElem.style.maxHeight = (fixedType ? customMaxHeight - headerHeight - (showFooter ? 0 : scrollbarHeight) : customMaxHeight - headerHeight) + "px";
1380
1378
  }
@@ -1389,7 +1387,7 @@ export default defineComponent({
1389
1387
  }
1390
1388
  // 如果是固定列
1391
1389
  if (fixedWrapperElem) {
1392
- if (wrapperElem) {
1390
+ if (isNodeElement(wrapperElem)) {
1393
1391
  wrapperElem.style.top = headerHeight + "px";
1394
1392
  }
1395
1393
  fixedWrapperElem.style.height = (customHeight > 0 ? customHeight - headerHeight - footerHeight : tableHeight) + headerHeight + footerHeight - scrollbarHeight * (showFooter ? 2 : 1) + "px";
@@ -1404,14 +1402,6 @@ export default defineComponent({
1404
1402
  }
1405
1403
  else {
1406
1404
  tableColumn = visibleColumn;
1407
- // 检查固定列是否被合并,合并范围是否超出固定列
1408
- // if (mergeList.length && !isMergeLeftFixedExceeded && fixedType === 'left') {
1409
- // tableColumn = fixedColumn
1410
- // } else if (mergeList.length && !isMergeRightFixedExceeded && fixedType === 'right') {
1411
- // tableColumn = fixedColumn
1412
- // } else {
1413
- // tableColumn = visibleColumn
1414
- // }
1415
1405
  }
1416
1406
  }
1417
1407
  else {
@@ -1438,14 +1428,6 @@ export default defineComponent({
1438
1428
  }
1439
1429
  else {
1440
1430
  tableColumn = visibleColumn;
1441
- // 检查固定列是否被合并,合并范围是否超出固定列
1442
- // if (mergeFooterList.length && !isMergeFooterLeftFixedExceeded && fixedType === 'left') {
1443
- // tableColumn = fixedColumn
1444
- // } else if (mergeFooterList.length && !isMergeFooterRightFixedExceeded && fixedType === 'right') {
1445
- // tableColumn = fixedColumn
1446
- // } else {
1447
- // tableColumn = visibleColumn
1448
- // }
1449
1431
  }
1450
1432
  }
1451
1433
  else {
@@ -1453,7 +1435,7 @@ export default defineComponent({
1453
1435
  }
1454
1436
  }
1455
1437
  tWidth = tableColumn.reduce(function (previous, column) { return previous + column.renderWidth; }, 0);
1456
- if (wrapperElem) {
1438
+ if (isNodeElement(wrapperElem)) {
1457
1439
  // 如果是固定列
1458
1440
  if (fixedWrapperElem) {
1459
1441
  wrapperElem.style.top = (customHeight > 0 ? customHeight - footerHeight : tableHeight + headerHeight) + "px";
@@ -2335,11 +2317,29 @@ export default defineComponent({
2335
2317
  });
2336
2318
  },
2337
2319
  /**
2338
- * 手动处理数据
2320
+ * 手动处理数据,用于手动排序与筛选
2339
2321
  * 对于手动更改了排序、筛选...等条件后需要重新处理数据时可能会用到
2340
2322
  */
2341
2323
  updateData: function () {
2342
- return tablePrivateMethods.handleTableData(true).then(tableMethods.updateFooter).then(function () { return tableMethods.recalculate(); });
2324
+ var scrollXLoad = reactData.scrollXLoad, scrollYLoad = reactData.scrollYLoad;
2325
+ return tablePrivateMethods.handleTableData(true).then(function () {
2326
+ tableMethods.updateFooter();
2327
+ if (scrollXLoad || scrollYLoad) {
2328
+ if (scrollXLoad) {
2329
+ tablePrivateMethods.updateScrollXSpace();
2330
+ }
2331
+ if (scrollYLoad) {
2332
+ tablePrivateMethods.updateScrollYSpace();
2333
+ }
2334
+ return tableMethods.refreshScroll();
2335
+ }
2336
+ }).then(function () {
2337
+ tablePrivateMethods.updateCellAreas();
2338
+ return tableMethods.recalculate(true);
2339
+ }).then(function () {
2340
+ // 存在滚动行为未结束情况
2341
+ setTimeout(function () { return $xetable.recalculate(); }, 50);
2342
+ });
2343
2343
  },
2344
2344
  /**
2345
2345
  * 重新加载数据,不会清空表格状态
@@ -2884,16 +2884,22 @@ export default defineComponent({
2884
2884
  var leftBodyElem = leftBody ? leftBody.$el : null;
2885
2885
  var rightBodyElem = rightBody ? rightBody.$el : null;
2886
2886
  var tableFooterElem = tableFooter ? tableFooter.$el : null;
2887
- // 还原滚动条位置
2888
- if (lastScrollLeft || lastScrollTop) {
2889
- return restoreScrollLocation($xetable, lastScrollLeft, lastScrollTop);
2890
- }
2891
- // 重置
2892
- setScrollTop(tableBodyElem, lastScrollTop);
2893
- setScrollTop(leftBodyElem, lastScrollTop);
2894
- setScrollTop(rightBodyElem, lastScrollTop);
2895
- setScrollLeft(tableFooterElem, lastScrollLeft);
2896
- return nextTick();
2887
+ return new Promise(function (resolve) {
2888
+ // 还原滚动条位置
2889
+ if (lastScrollLeft || lastScrollTop) {
2890
+ return restoreScrollLocation($xetable, lastScrollLeft, lastScrollTop).then(resolve).then(function () {
2891
+ // 存在滚动行为未结束情况
2892
+ setTimeout(resolve, 30);
2893
+ });
2894
+ }
2895
+ // 重置
2896
+ setScrollTop(tableBodyElem, lastScrollTop);
2897
+ setScrollTop(leftBodyElem, lastScrollTop);
2898
+ setScrollTop(rightBodyElem, lastScrollTop);
2899
+ setScrollLeft(tableFooterElem, lastScrollLeft);
2900
+ // 存在滚动行为未结束情况
2901
+ setTimeout(resolve, 30);
2902
+ });
2897
2903
  },
2898
2904
  /**
2899
2905
  * 计算单元格列宽,动态分配可用剩余空间
@@ -2929,7 +2935,7 @@ export default defineComponent({
2929
2935
  * 关闭 tooltip
2930
2936
  */
2931
2937
  closeTooltip: function () {
2932
- var tooltipStore = internalData.tooltipStore;
2938
+ var tooltipStore = reactData.tooltipStore;
2933
2939
  var $tooltip = refTooltip.value;
2934
2940
  var $commTip = refCommTooltip.value;
2935
2941
  if (tooltipStore.visible) {
@@ -4100,6 +4106,7 @@ export default defineComponent({
4100
4106
  var isEsc = hasEventKey(evnt, EVENT_KEYS.ESCAPE);
4101
4107
  if (isEsc) {
4102
4108
  tablePrivateMethods.preventEvent(evnt, 'event.keydown', null, function () {
4109
+ tableMethods.dispatchEvent('keydown-start', {}, evnt);
4103
4110
  if (keyboardConfig && mouseConfig && mouseOpts.area && $xetable.handleKeyboardEvent) {
4104
4111
  $xetable.handleKeyboardEvent(evnt);
4105
4112
  }
@@ -4123,6 +4130,7 @@ export default defineComponent({
4123
4130
  }
4124
4131
  }
4125
4132
  tableMethods.dispatchEvent('keydown', {}, evnt);
4133
+ tableMethods.dispatchEvent('keydown-end', {}, evnt);
4126
4134
  });
4127
4135
  }
4128
4136
  };
@@ -4436,10 +4444,17 @@ export default defineComponent({
4436
4444
  tablePrivateMethods.updateCellAreas();
4437
4445
  tableMethods.recalculate(true);
4438
4446
  };
4439
- var handleTargetEnterEvent = function () {
4447
+ var handleTargetEnterEvent = function (isClear) {
4448
+ var $tooltip = refTooltip.value;
4440
4449
  clearTimeout(internalData.tooltipTimeout);
4441
- internalData.tooltipActive = true;
4442
- tableMethods.closeTooltip();
4450
+ if (isClear) {
4451
+ tableMethods.closeTooltip();
4452
+ }
4453
+ else {
4454
+ if ($tooltip) {
4455
+ $tooltip.setActived(true);
4456
+ }
4457
+ }
4443
4458
  };
4444
4459
  /**
4445
4460
  * 处理显示 tooltip
@@ -4449,11 +4464,10 @@ export default defineComponent({
4449
4464
  */
4450
4465
  var handleTooltip = function (evnt, cell, overflowElem, tipElem, params) {
4451
4466
  params.cell = cell;
4452
- var tooltipStore = internalData.tooltipStore;
4467
+ var tooltipStore = reactData.tooltipStore;
4453
4468
  var tooltipOpts = computeTooltipOpts.value;
4454
4469
  var column = params.column, row = params.row;
4455
4470
  var showAll = tooltipOpts.showAll, contentMethod = tooltipOpts.contentMethod;
4456
- var $tooltip = refTooltip.value;
4457
4471
  var customContent = contentMethod ? contentMethod(params) : null;
4458
4472
  var useCustom = contentMethod && !XEUtils.eqNull(customContent);
4459
4473
  var content = useCustom ? customContent : (column.type === 'html' ? overflowElem.innerText : overflowElem.textContent).trim();
@@ -4462,11 +4476,15 @@ export default defineComponent({
4462
4476
  Object.assign(tooltipStore, {
4463
4477
  row: row,
4464
4478
  column: column,
4465
- visible: true
4479
+ visible: true,
4480
+ currOpts: null
4481
+ });
4482
+ nextTick(function () {
4483
+ var $tooltip = refTooltip.value;
4484
+ if ($tooltip) {
4485
+ $tooltip.open(isCellOverflow ? overflowElem : (tipElem || overflowElem), formatText(content));
4486
+ }
4466
4487
  });
4467
- if ($tooltip) {
4468
- $tooltip.open(isCellOverflow ? overflowElem : (tipElem || overflowElem), formatText(content));
4469
- }
4470
4488
  }
4471
4489
  return nextTick();
4472
4490
  };
@@ -4926,26 +4944,29 @@ export default defineComponent({
4926
4944
  },
4927
4945
  triggerHeaderHelpEvent: function (evnt, params) {
4928
4946
  var column = params.column;
4929
- var titleHelp = column.titleHelp;
4930
- if (titleHelp.content || titleHelp.message) {
4931
- var tooltipStore = internalData.tooltipStore;
4932
- var $tooltip = refTooltip.value;
4933
- var content = getFuncText(titleHelp.content || titleHelp.message);
4934
- handleTargetEnterEvent();
4947
+ var titlePrefix = column.titlePrefix || column.titleHelp;
4948
+ if (titlePrefix.content || titlePrefix.message) {
4949
+ var tooltipStore = reactData.tooltipStore;
4950
+ var content_1 = getFuncText(titlePrefix.content || titlePrefix.message);
4951
+ handleTargetEnterEvent(true);
4935
4952
  tooltipStore.visible = true;
4936
- if ($tooltip) {
4937
- $tooltip.open(evnt.currentTarget, content);
4938
- }
4953
+ tooltipStore.currOpts = __assign(__assign({}, titlePrefix), { content: null });
4954
+ nextTick(function () {
4955
+ var $tooltip = refTooltip.value;
4956
+ if ($tooltip) {
4957
+ $tooltip.open(evnt.currentTarget, content_1);
4958
+ }
4959
+ });
4939
4960
  }
4940
4961
  },
4941
4962
  /**
4942
4963
  * 触发表头 tooltip 事件
4943
4964
  */
4944
4965
  triggerHeaderTooltipEvent: function (evnt, params) {
4945
- var tooltipStore = internalData.tooltipStore;
4966
+ var tooltipStore = reactData.tooltipStore;
4946
4967
  var column = params.column;
4947
4968
  var titleElem = evnt.currentTarget;
4948
- handleTargetEnterEvent();
4969
+ handleTargetEnterEvent(true);
4949
4970
  if (tooltipStore.column !== column || !tooltipStore.visible) {
4950
4971
  handleTooltip(evnt, titleElem, titleElem, null, params);
4951
4972
  }
@@ -4956,12 +4977,12 @@ export default defineComponent({
4956
4977
  triggerBodyTooltipEvent: function (evnt, params) {
4957
4978
  var editConfig = props.editConfig;
4958
4979
  var editStore = reactData.editStore;
4959
- var tooltipStore = internalData.tooltipStore;
4980
+ var tooltipStore = reactData.tooltipStore;
4960
4981
  var editOpts = computeEditOpts.value;
4961
4982
  var actived = editStore.actived;
4962
4983
  var row = params.row, column = params.column;
4963
4984
  var cell = evnt.currentTarget;
4964
- handleTargetEnterEvent();
4985
+ handleTargetEnterEvent(tooltipStore.column !== column || tooltipStore.row !== row);
4965
4986
  if (isEnableConf(editConfig)) {
4966
4987
  if ((editOpts.mode === 'row' && actived.row === row) || (actived.row === row && actived.column === column)) {
4967
4988
  return;
@@ -4987,20 +5008,23 @@ export default defineComponent({
4987
5008
  */
4988
5009
  triggerFooterTooltipEvent: function (evnt, params) {
4989
5010
  var column = params.column;
4990
- var tooltipStore = internalData.tooltipStore;
5011
+ var tooltipStore = reactData.tooltipStore;
4991
5012
  var cell = evnt.currentTarget;
4992
- handleTargetEnterEvent();
5013
+ handleTargetEnterEvent(tooltipStore.column !== column || tooltipStore.row);
4993
5014
  if (tooltipStore.column !== column || !tooltipStore.visible) {
4994
5015
  handleTooltip(evnt, cell, cell.querySelector('.vxe-cell--item') || cell.children[0], null, params);
4995
5016
  }
4996
5017
  },
4997
5018
  handleTargetLeaveEvent: function () {
4998
5019
  var tooltipOpts = computeTooltipOpts.value;
4999
- internalData.tooltipActive = false;
5020
+ var $tooltip = refTooltip.value;
5021
+ if ($tooltip) {
5022
+ $tooltip.setActived(false);
5023
+ }
5000
5024
  if (tooltipOpts.enterable) {
5001
5025
  internalData.tooltipTimeout = setTimeout(function () {
5002
- var $tooltip = refTooltip.value;
5003
- if ($tooltip && !$tooltip.reactData.isHover) {
5026
+ $tooltip = refTooltip.value;
5027
+ if ($tooltip && !$tooltip.isActived()) {
5004
5028
  tableMethods.closeTooltip();
5005
5029
  }
5006
5030
  }, tooltipOpts.leaveDelay);
@@ -5696,15 +5720,25 @@ export default defineComponent({
5696
5720
  var radioOpts = computeRadioOpts.value;
5697
5721
  var checkboxOpts = computeCheckboxOpts.value;
5698
5722
  var expandOpts = computeExpandOpts.value;
5723
+ var rowOpts = computeRowOpts.value;
5699
5724
  if (process.env.NODE_ENV === 'development') {
5700
- if (!props.rowId && (checkboxOpts.reserve || checkboxOpts.checkRowKeys || radioOpts.reserve || radioOpts.checkRowKey || expandOpts.expandRowKeys || treeOpts.expandRowKeys)) {
5701
- warnLog('vxe.error.reqProp', ['row-id']);
5725
+ // if (props.rowId) {
5726
+ // warnLog('vxe.error.delProp', ['rowId', 'row-config.keyField'])
5727
+ // }
5728
+ // if (props.rowKey) {
5729
+ // warnLog('vxe.error.delProp', ['rowId', 'row-config.useKey'])
5730
+ // }
5731
+ // if (props.columnKey) {
5732
+ // warnLog('vxe.error.delProp', ['rowId', 'column-config.useKey'])
5733
+ // }
5734
+ if (!(props.rowId || rowOpts.keyField) && (checkboxOpts.reserve || checkboxOpts.checkRowKeys || radioOpts.reserve || radioOpts.checkRowKey || expandOpts.expandRowKeys || treeOpts.expandRowKeys)) {
5735
+ warnLog('vxe.error.reqProp', ['row-config.keyField']);
5702
5736
  }
5703
5737
  if (props.editConfig && (editOpts.showStatus || editOpts.showUpdateStatus || editOpts.showInsertStatus) && !props.keepSource) {
5704
5738
  warnLog('vxe.error.reqProp', ['keep-source']);
5705
5739
  }
5706
- if (treeConfig && treeOpts.line && (!props.rowKey || !showOverflow)) {
5707
- warnLog('vxe.error.reqProp', ['row-key | show-overflow']);
5740
+ if (treeConfig && treeOpts.line && (!(props.rowKey || rowOpts.useKey) || !showOverflow)) {
5741
+ warnLog('vxe.error.reqProp', ['row-config.useKey | show-overflow']);
5708
5742
  }
5709
5743
  if (treeConfig && props.stripe) {
5710
5744
  warnLog('vxe.error.noTree', ['stripe']);
@@ -5726,14 +5760,14 @@ export default defineComponent({
5726
5760
  if (process.env.NODE_ENV === 'development') {
5727
5761
  var customOpts = computeCustomOpts.value;
5728
5762
  var mouseOpts = computeMouseOpts.value;
5729
- var rowOpts = computeRowOpts.value;
5763
+ var rowOpts_1 = computeRowOpts.value;
5730
5764
  if (!props.id && props.customConfig && (customOpts.storage === true || (customOpts.storage && customOpts.storage.resizable) || (customOpts.storage && customOpts.storage.visible))) {
5731
5765
  errLog('vxe.error.reqProp', ['id']);
5732
5766
  }
5733
5767
  if (props.treeConfig && checkboxOpts.range) {
5734
5768
  errLog('vxe.error.noTree', ['checkbox-config.range']);
5735
5769
  }
5736
- if (rowOpts.height && !props.showOverflow) {
5770
+ if (rowOpts_1.height && !props.showOverflow) {
5737
5771
  warnLog('vxe.error.notProp', ['table.show-overflow']);
5738
5772
  }
5739
5773
  if (!$xetable.handleUpdateCellAreas) {
@@ -5849,7 +5883,7 @@ export default defineComponent({
5849
5883
  var loading = props.loading, stripe = props.stripe, showHeader = props.showHeader, height = props.height, treeConfig = props.treeConfig, mouseConfig = props.mouseConfig, showFooter = props.showFooter, highlightCell = props.highlightCell, highlightHoverRow = props.highlightHoverRow, highlightHoverColumn = props.highlightHoverColumn, editConfig = props.editConfig;
5850
5884
  var isGroup = reactData.isGroup, overflowX = reactData.overflowX, overflowY = reactData.overflowY, scrollXLoad = reactData.scrollXLoad, scrollYLoad = reactData.scrollYLoad, scrollbarHeight = reactData.scrollbarHeight, tableData = reactData.tableData, tableColumn = reactData.tableColumn, tableGroupColumn = reactData.tableGroupColumn, footerTableData = reactData.footerTableData, initStore = reactData.initStore, columnStore = reactData.columnStore, filterStore = reactData.filterStore;
5851
5885
  var leftList = columnStore.leftList, rightList = columnStore.rightList;
5852
- var tooltipOpts = computeTooltipOpts.value;
5886
+ var tipConfig = computeTipConfig.value;
5853
5887
  var treeOpts = computeTreeOpts.value;
5854
5888
  var rowOpts = computeRowOpts.value;
5855
5889
  var columnOpts = computeColumnOpts.value;
@@ -6019,7 +6053,7 @@ export default defineComponent({
6019
6053
  /**
6020
6054
  * 工具提示
6021
6055
  */
6022
- hasUseTooltip ? h(resolveComponent('vxe-tooltip'), __assign({ ref: refTooltip }, tooltipOpts)) : createCommentVNode()
6056
+ hasUseTooltip ? h(resolveComponent('vxe-tooltip'), __assign({ ref: refTooltip }, tipConfig)) : createCommentVNode()
6023
6057
  ]);
6024
6058
  };
6025
6059
  $xetable.renderVN = renderVN;
@@ -33,13 +33,15 @@ export function getRowUniqueId() {
33
33
  // 行主键 key
34
34
  export function getRowkey($xetable) {
35
35
  var props = $xetable.props;
36
+ var computeRowOpts = $xetable.getComputeMaps().computeRowOpts;
36
37
  var rowId = props.rowId;
37
- return rowId || '_X_ID';
38
+ var rowOpts = computeRowOpts.value;
39
+ return rowId || rowOpts.keyField || '_X_ID';
38
40
  }
39
41
  // 行主键 value
40
42
  export function getRowid($xetable, row) {
41
- var rowId = XEUtils.get(row, getRowkey($xetable));
42
- return XEUtils.eqNull(rowId) ? '' : encodeURIComponent(rowId);
43
+ var rowid = XEUtils.get(row, getRowkey($xetable));
44
+ return XEUtils.eqNull(rowid) ? '' : encodeURIComponent(rowid);
43
45
  }
44
46
  export var handleFieldOrColumn = function ($xetable, fieldOrColumn) {
45
47
  if (fieldOrColumn) {
@@ -2,8 +2,8 @@ import VxeTextareaComponent from './src/textarea';
2
2
  import { dynamicApp } from '../dynamics';
3
3
  export var Textarea = Object.assign(VxeTextareaComponent, {
4
4
  install: function (app) {
5
- dynamicApp.component(VxeTextareaComponent.name, VxeTextareaComponent);
6
5
  app.component(VxeTextareaComponent.name, VxeTextareaComponent);
7
6
  }
8
7
  });
8
+ dynamicApp.component(VxeTextareaComponent.name, VxeTextareaComponent);
9
9
  export default Textarea;
@@ -2,8 +2,8 @@ import VxeToolbarComponent from './src/toolbar';
2
2
  import { dynamicApp } from '../dynamics';
3
3
  export var Toolbar = Object.assign(VxeToolbarComponent, {
4
4
  install: function (app) {
5
- dynamicApp.component(VxeToolbarComponent.name, VxeToolbarComponent);
6
5
  app.component(VxeToolbarComponent.name, VxeToolbarComponent);
7
6
  }
8
7
  });
8
+ dynamicApp.component(VxeToolbarComponent.name, VxeToolbarComponent);
9
9
  export default Toolbar;
@@ -15,7 +15,8 @@ import GlobalConfig from '../../v-x-e-table/src/conf';
15
15
  import { VXETable } from '../../v-x-e-table';
16
16
  import { useSize } from '../../hooks/size';
17
17
  import { getEventTargetNode } from '../../tools/dom';
18
- import { warnLog, errLog, formatText } from '../../tools/utils';
18
+ import { formatText } from '../../tools/utils';
19
+ import { warnLog, errLog } from '../../tools/log';
19
20
  import { GlobalEvent } from '../../tools/event';
20
21
  export default defineComponent({
21
22
  name: 'VxeToolbar',
package/es/tools/dom.js CHANGED
@@ -74,6 +74,12 @@ export function setScrollLeft(elem, scrollLeft) {
74
74
  elem.scrollLeft = scrollLeft;
75
75
  }
76
76
  }
77
+ // export function setScrollLeftAndTop (elem: HTMLElement | null, scrollLeft: number, scrollTop: number) {
78
+ // if (elem) {
79
+ // elem.scrollLeft = scrollLeft
80
+ // elem.scrollTop = scrollTop
81
+ // }
82
+ // }
77
83
  export function updateCellTitle(overflowElem, column) {
78
84
  var content = column.type === 'html' ? overflowElem.innerText : overflowElem.textContent;
79
85
  if (overflowElem.getAttribute('title') !== content) {
@@ -127,3 +133,6 @@ export function triggerEvent(targetElem, type) {
127
133
  targetElem.dispatchEvent(new Event(type));
128
134
  }
129
135
  }
136
+ export function isNodeElement(elem) {
137
+ return elem && elem.nodeType === 1;
138
+ }
@@ -0,0 +1,13 @@
1
+ import GlobalConfig from '../v-x-e-table/src/conf';
2
+ export function getLog(message, params) {
3
+ return "[vxe-table v" + process.env.VUE_APP_VXE_TABLE_VERSION + "] " + GlobalConfig.i18n(message, params);
4
+ }
5
+ function outLog(type) {
6
+ return function (message, params) {
7
+ var msg = getLog(message, params);
8
+ console[type](msg);
9
+ return msg;
10
+ };
11
+ }
12
+ export var warnLog = outLog('warn');
13
+ export var errLog = outLog('error');
package/es/tools/utils.js CHANGED
@@ -2,16 +2,6 @@ import XEUtils from 'xe-utils';
2
2
  import GlobalConfig from '../v-x-e-table/src/conf';
3
3
  var zindexIndex = 0;
4
4
  var lastZindex = 1;
5
- export function getLog(message, params) {
6
- return "[vxe-table] " + GlobalConfig.i18n(message, params);
7
- }
8
- function outLog(type) {
9
- return function (message, params) {
10
- var msg = getLog(message, params);
11
- console[type](msg);
12
- return msg;
13
- };
14
- }
15
5
  export function isEnableConf(conf) {
16
6
  return conf && conf.enabled !== false;
17
7
  }
@@ -32,8 +22,6 @@ export function nextZIndex() {
32
22
  export function getLastZIndex() {
33
23
  return lastZindex;
34
24
  }
35
- export var warnLog = outLog('warn');
36
- export var errLog = outLog('error');
37
25
  export function hasChildrenList(item) {
38
26
  return item && item.children && item.children.length > 0;
39
27
  }
@@ -4,8 +4,8 @@ import { dynamicApp } from '../dynamics';
4
4
  export var Tooltip = Object.assign(VxeTooltipComponent, {
5
5
  install: function (app) {
6
6
  VXETable.tooltip = true;
7
- dynamicApp.component(VxeTooltipComponent.name, VxeTooltipComponent);
8
7
  app.component(VxeTooltipComponent.name, VxeTooltipComponent);
9
8
  }
10
9
  });
10
+ dynamicApp.component(VxeTooltipComponent.name, VxeTooltipComponent);
11
11
  export default Tooltip;