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
@@ -14,12 +14,13 @@ export default defineComponent({
14
14
  size: { type: String as PropType<VxeTooltipPropTypes.Size>, default: () => GlobalConfig.tooltip.size || GlobalConfig.size },
15
15
  trigger: { type: String as PropType<VxeTooltipPropTypes.Trigger>, default: () => GlobalConfig.tooltip.trigger },
16
16
  theme: { type: String as PropType<VxeTooltipPropTypes.Theme>, default: () => GlobalConfig.tooltip.theme },
17
- content: [String, Number] as PropType<VxeTooltipPropTypes.Content>,
17
+ content: { type: [String, Number] as PropType<VxeTooltipPropTypes.Content>, default: null },
18
+ useHTML: Boolean as PropType<VxeTooltipPropTypes.UseHTML>,
18
19
  zIndex: [String, Number] as PropType<VxeTooltipPropTypes.ZIndex>,
19
20
  isArrow: { type: Boolean as PropType<VxeTooltipPropTypes.IsArrow>, default: true },
20
21
  enterable: Boolean as PropType<VxeTooltipPropTypes.Enterable>,
21
- leaveDelay: { type: Number as PropType<VxeTooltipPropTypes.LeaveDelay>, default: () => GlobalConfig.tooltip.leaveDelay },
22
- leaveMethod: Function as PropType<VxeTooltipPropTypes.LeaveMethod>
22
+ enterDelay: { type: Number as PropType<VxeTooltipPropTypes.EnterDelay>, default: () => GlobalConfig.tooltip.enterDelay },
23
+ leaveDelay: { type: Number as PropType<VxeTooltipPropTypes.LeaveDelay>, default: () => GlobalConfig.tooltip.leaveDelay }
23
24
  },
24
25
  emits: [
25
26
  'update:modelValue'
@@ -34,9 +35,9 @@ export default defineComponent({
34
35
  const reactData = reactive<TooltipReactData>({
35
36
  target: null,
36
37
  isUpdate: false,
37
- isHover: false,
38
38
  visible: false,
39
- message: '',
39
+ tipContent: '',
40
+ tipActive: false,
40
41
  tipTarget: null,
41
42
  tipZindex: 0,
42
43
  tipStore: {
@@ -62,8 +63,6 @@ export default defineComponent({
62
63
 
63
64
  let tooltipMethods = {} as TooltipMethods
64
65
 
65
- let targetActive: boolean
66
-
67
66
  const updateTipStyle = () => {
68
67
  const { tipTarget, tipStore } = reactData
69
68
  if (tipTarget) {
@@ -117,10 +116,10 @@ export default defineComponent({
117
116
 
118
117
  const targetMouseleaveEvent = () => {
119
118
  const { trigger, enterable, leaveDelay } = props
120
- targetActive = false
119
+ reactData.tipActive = false
121
120
  if (enterable && trigger === 'hover') {
122
121
  setTimeout(() => {
123
- if (!reactData.isHover) {
122
+ if (!reactData.tipActive) {
124
123
  tooltipMethods.close()
125
124
  }
126
125
  }, leaveDelay)
@@ -130,32 +129,54 @@ export default defineComponent({
130
129
  }
131
130
 
132
131
  const wrapperMouseenterEvent = () => {
133
- reactData.isHover = true
132
+ reactData.tipActive = true
134
133
  }
135
134
 
136
- const wrapperMouseleaveEvent = (evnt: MouseEvent) => {
137
- const { leaveMethod, trigger, enterable, leaveDelay } = props
138
- reactData.isHover = false
139
- if (!leaveMethod || leaveMethod({ $event: evnt }) !== false) {
140
- if (enterable && trigger === 'hover') {
141
- setTimeout(() => {
142
- if (!targetActive) {
143
- tooltipMethods.close()
144
- }
145
- }, leaveDelay)
135
+ const wrapperMouseleaveEvent = () => {
136
+ const { trigger, enterable, leaveDelay } = props
137
+ reactData.tipActive = false
138
+ if (enterable && trigger === 'hover') {
139
+ setTimeout(() => {
140
+ if (!reactData.tipActive) {
141
+ tooltipMethods.close()
142
+ }
143
+ }, leaveDelay)
144
+ }
145
+ }
146
+
147
+ const showTip = () => {
148
+ const { tipStore } = reactData
149
+ const el = refElem.value
150
+ if (el) {
151
+ const parentNode = el.parentNode
152
+ if (!parentNode) {
153
+ document.body.appendChild(el)
146
154
  }
147
155
  }
156
+ updateValue(true)
157
+ updateZindex()
158
+ tipStore.placement = 'top'
159
+ tipStore.style = { width: 'auto', left: 0, top: 0, zIndex: props.zIndex || reactData.tipZindex }
160
+ tipStore.arrowStyle = { left: '50%' }
161
+ return tooltipMethods.updatePlacement()
148
162
  }
149
163
 
164
+ const showDelayTip = XEUtils.debounce(() => {
165
+ if (reactData.tipActive) {
166
+ showTip()
167
+ }
168
+ }, props.enterDelay, { leading: false, trailing: true })
169
+
150
170
  tooltipMethods = {
151
171
  dispatchEvent (type, params, evnt) {
152
172
  emit(type, Object.assign({ $tooltip: $xetooltip, $event: evnt }, params))
153
173
  },
154
- open (target?: HTMLElement, message?: VxeTooltipPropTypes.Content) {
155
- return tooltipMethods.toVisible(target || reactData.target as HTMLElement, message)
174
+ open (target?: HTMLElement, content?: VxeTooltipPropTypes.Content) {
175
+ return tooltipMethods.toVisible(target || reactData.target as HTMLElement, content)
156
176
  },
157
177
  close () {
158
178
  reactData.tipTarget = null
179
+ reactData.tipActive = false
159
180
  Object.assign(reactData.tipStore, {
160
181
  style: {},
161
182
  placement: '',
@@ -164,25 +185,19 @@ export default defineComponent({
164
185
  updateValue(false)
165
186
  return nextTick()
166
187
  },
167
- toVisible (target: HTMLElement, message?: VxeTooltipPropTypes.Content) {
168
- targetActive = true
188
+ toVisible (target: HTMLElement, content?: VxeTooltipPropTypes.Content) {
169
189
  if (target) {
170
- const { tipStore } = reactData
171
- const el = refElem.value
172
- const parentNode = el.parentNode
173
- if (!parentNode) {
174
- document.body.appendChild(el)
190
+ const { trigger, enterDelay } = props
191
+ reactData.tipActive = true
192
+ reactData.tipTarget = target
193
+ if (content) {
194
+ reactData.tipContent = content
175
195
  }
176
- if (message) {
177
- reactData.message = message
196
+ if (enterDelay && trigger === 'hover') {
197
+ showDelayTip()
198
+ } else {
199
+ return showTip()
178
200
  }
179
- reactData.tipTarget = target
180
- updateValue(true)
181
- updateZindex()
182
- tipStore.placement = 'top'
183
- tipStore.style = { width: 'auto', left: 0, top: 0, zIndex: props.zIndex || reactData.tipZindex }
184
- tipStore.arrowStyle = { left: '50%' }
185
- return tooltipMethods.updatePlacement()
186
201
  }
187
202
  return nextTick()
188
203
  },
@@ -195,13 +210,19 @@ export default defineComponent({
195
210
  return nextTick().then(updateTipStyle)
196
211
  }
197
212
  })
213
+ },
214
+ isActived () {
215
+ return reactData.tipActive
216
+ },
217
+ setActived (actived) {
218
+ reactData.tipActive = !!actived
198
219
  }
199
220
  }
200
221
 
201
222
  Object.assign($xetooltip, tooltipMethods)
202
223
 
203
224
  watch(() => props.content, () => {
204
- reactData.message = props.content
225
+ reactData.tipContent = props.content
205
226
  })
206
227
 
207
228
  watch(() => props.modelValue, () => {
@@ -221,7 +242,7 @@ export default defineComponent({
221
242
  const wrapperElem = refElem.value
222
243
  const parentNode = wrapperElem.parentNode
223
244
  if (parentNode) {
224
- reactData.message = content
245
+ reactData.tipContent = content
225
246
  reactData.tipZindex = nextZIndex()
226
247
  XEUtils.arrayEach(wrapperElem.children, (elem, index) => {
227
248
  if (index > 1) {
@@ -235,8 +256,8 @@ export default defineComponent({
235
256
  const { target } = reactData
236
257
  if (target) {
237
258
  if (trigger === 'hover') {
238
- target.onmouseleave = targetMouseleaveEvent
239
259
  target.onmouseenter = targetMouseenterEvent
260
+ target.onmouseleave = targetMouseleaveEvent
240
261
  } else if (trigger === 'click') {
241
262
  target.onclick = clickEvent
242
263
  }
@@ -268,9 +289,31 @@ export default defineComponent({
268
289
  }
269
290
  })
270
291
 
292
+ const renderContent = () => {
293
+ const { useHTML } = props
294
+ const { tipContent } = reactData
295
+ if (slots.content) {
296
+ return h('div', {
297
+ key: 1,
298
+ class: 'vxe-table--tooltip-content'
299
+ }, slots.content({}))
300
+ }
301
+ if (useHTML) {
302
+ return h('div', {
303
+ key: 2,
304
+ class: 'vxe-table--tooltip-content',
305
+ innerHTML: tipContent
306
+ })
307
+ }
308
+ return h('div', {
309
+ key: 3,
310
+ class: 'vxe-table--tooltip-content'
311
+ }, formatText(tipContent))
312
+ }
313
+
271
314
  const renderVN = () => {
272
315
  const { theme, isArrow, enterable } = props
273
- const { isHover, visible, tipStore, message } = reactData
316
+ const { tipActive, visible, tipStore } = reactData
274
317
  const vSize = computeSize.value
275
318
  let ons
276
319
  if (enterable) {
@@ -287,14 +330,12 @@ export default defineComponent({
287
330
  'is--enterable': enterable,
288
331
  'is--visible': visible,
289
332
  'is--arrow': isArrow,
290
- 'is--hover': isHover
333
+ 'is--actived': tipActive
291
334
  }],
292
335
  style: tipStore.style,
293
336
  ...ons
294
337
  }, [
295
- h('div', {
296
- class: 'vxe-table--tooltip-content'
297
- }, slots.content ? slots.content({}) : formatText(message)),
338
+ renderContent(),
298
339
  h('div', {
299
340
  class: 'vxe-table--tooltip-arrow',
300
341
  style: tipStore.arrowStyle
@@ -77,6 +77,7 @@ export const v = 'v4'
77
77
 
78
78
  export const VXETable = {
79
79
  v,
80
+ version: process.env.VUE_APP_VXE_TABLE_VERSION,
80
81
  setup,
81
82
  interceptor,
82
83
  renderer,
@@ -28,6 +28,9 @@ const GlobalConfig: VXETableGlobalConfig = {
28
28
  // emptyRender: {
29
29
  // name: ''
30
30
  // },
31
+ // rowConfig: {
32
+ // keyField: '_X_ID' // 行数据的唯一主键字段名
33
+ // },
31
34
  radioConfig: {
32
35
  // trigger: 'default'
33
36
  strict: true
@@ -36,10 +39,9 @@ const GlobalConfig: VXETableGlobalConfig = {
36
39
  // trigger: 'default',
37
40
  strict: true
38
41
  },
39
- // tooltipConfig: {
40
- // theme: 'dark',
41
- // enterable: false
42
- // },
42
+ tooltipConfig: {
43
+ enterable: true
44
+ },
43
45
  validConfig: {
44
46
  showMessage: true,
45
47
  message: 'default'
@@ -51,7 +53,6 @@ const GlobalConfig: VXETableGlobalConfig = {
51
53
  // storage: false,
52
54
  // checkMethod () {}
53
55
  // },
54
- // rowId: '_X_ID', // 行数据的唯一主键字段名
55
56
  sortConfig: {
56
57
  // remote: false,
57
58
  // trigger: 'default',
@@ -230,6 +231,7 @@ const GlobalConfig: VXETableGlobalConfig = {
230
231
  // size: null,
231
232
  trigger: 'hover',
232
233
  theme: 'dark',
234
+ enterDelay: 500,
233
235
  leaveDelay: 300
234
236
  },
235
237
  pager: {
@@ -243,12 +245,15 @@ const GlobalConfig: VXETableGlobalConfig = {
243
245
  },
244
246
  form: {
245
247
  // preventSubmit: false,
248
+ // size: null,
249
+ // colon: false,
246
250
  validConfig: {
247
251
  showMessage: true,
248
252
  autoPos: true
249
253
  },
250
- // size: null,
251
- // colon: false,
254
+ tooltipConfig: {
255
+ enterable: true
256
+ },
252
257
  titleAsterisk: true
253
258
  },
254
259
  input: {
@@ -1,5 +1,5 @@
1
1
  import XEUtils from 'xe-utils'
2
- import { warnLog } from '../../tools/utils'
2
+ import { warnLog } from '../../tools/log'
3
3
 
4
4
  import { VxeGlobalInterceptor, VxeGlobalInterceptorHandles } from '../../../types/v-x-e-table'
5
5
 
@@ -2,7 +2,8 @@ import { h, resolveComponent, ComponentOptions } from 'vue'
2
2
  import XEUtils from 'xe-utils'
3
3
  import GlobalConfig from './conf'
4
4
  import { getCellValue, setCellValue } from '../../table/src/util'
5
- import { warnLog, getFuncText, formatText, isEmptyValue } from '../../tools/utils'
5
+ import { getFuncText, formatText, isEmptyValue } from '../../tools/utils'
6
+ import { warnLog } from '../../tools/log'
6
7
  import { getOnName } from '../../tools/vn'
7
8
 
8
9
  import { VxeGlobalRendererHandles, VxeGlobalRenderer, VxeColumnPropTypes } from '../../../types/all'
@@ -1,4 +1,4 @@
1
- import { warnLog } from '../../tools/utils'
1
+ import { warnLog } from '../../tools/log'
2
2
  import XEUtils from 'xe-utils'
3
3
 
4
4
  /**
@@ -104,7 +104,7 @@
104
104
 
105
105
  .vxe-select-option {
106
106
  padding: 0 10px;
107
- max-width: 400px;
107
+ max-width: 600px;
108
108
  white-space: nowrap;
109
109
  overflow: hidden;
110
110
  text-overflow: ellipsis;
@@ -7,7 +7,7 @@
7
7
  top: -100%;
8
8
  left: -100%;
9
9
  font-size: 12px;
10
- max-width: 500px;
10
+ max-width: 600px;
11
11
  border-radius: $vxe-border-radius;
12
12
  padding: 8px 12px;
13
13
  white-space: normal;
package/types/all.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { App } from 'vue'
2
2
  import { VXETableSetupOptions, VXETableCore } from './v-x-e-table'
3
3
 
4
- export function install(app: App, options?: VXETableSetupOptions): void;
4
+ export function install(app: App, options?: VXETableSetupOptions): void
5
5
 
6
6
  declare global {
7
7
  interface Window {
8
- VXETable: VXETableCore;
8
+ VXETable: VXETableCore
9
9
  }
10
10
  }
11
11
 
package/types/button.d.ts CHANGED
@@ -5,117 +5,117 @@ import { VXEComponent, VxeComponentBase, VxeEvent, SizeType, ValueOf, VNodeStyle
5
5
  * 组件 - 按钮
6
6
  * @example import { Button as VxeButton } from 'vxe-table'
7
7
  */
8
- export const Button: VXEComponent<VxeButtonProps, VxeButtonEventProps>;
8
+ export const Button: VXEComponent<VxeButtonProps, VxeButtonEventProps>
9
9
 
10
- export type VxeButtonInstance = ComponentPublicInstance<VxeButtonProps, VxeButtonConstructor>;
10
+ export type VxeButtonInstance = ComponentPublicInstance<VxeButtonProps, VxeButtonConstructor>
11
11
 
12
12
  export interface VxeButtonConstructor extends VxeComponentBase, VxeButtonMethods {
13
- props: VxeButtonProps;
14
- context: SetupContext<VxeButtonEmits>;
15
- reactData: ButtonReactData;
16
- internalData: ButtonInternalData;
17
- getRefMaps(): ButtonPrivateRef;
18
- renderVN: RenderFunction;
13
+ props: VxeButtonProps
14
+ context: SetupContext<VxeButtonEmits>
15
+ reactData: ButtonReactData
16
+ internalData: ButtonInternalData
17
+ getRefMaps(): ButtonPrivateRef
18
+ renderVN: RenderFunction
19
19
  }
20
20
 
21
21
  export interface ButtonPrivateRef {
22
- refElem: Ref<HTMLDivElement>;
22
+ refElem: Ref<HTMLDivElement>
23
23
  }
24
24
  export interface VxeButtonPrivateRef extends ButtonPrivateRef { }
25
25
 
26
26
  export interface ButtonReactData {
27
- inited: boolean;
28
- showPanel: boolean;
29
- animatVisible: boolean;
30
- panelIndex: number;
31
- panelStyle: VNodeStyle;
32
- panelPlacement: any;
27
+ inited: boolean
28
+ showPanel: boolean
29
+ animatVisible: boolean
30
+ panelIndex: number
31
+ panelStyle: VNodeStyle
32
+ panelPlacement: any
33
33
  }
34
34
 
35
35
  export interface ButtonInternalData {
36
- showTime: any;
36
+ showTime: any
37
37
  }
38
38
 
39
39
  export namespace VxeButtonPropTypes {
40
- export type Size = SizeType;
41
- export type Type = string;
42
- export type ClassName = string;
43
- export type Name = string | number;
44
- export type Content = string;
45
- export type Placement = string;
46
- export type Status = string;
47
- export type Icon = string;
48
- export type Round = boolean;
49
- export type Circle = boolean;
50
- export type Disabled = boolean;
51
- export type Loading = boolean;
52
- export type DestroyOnClose = boolean;
53
- export type Transfer = boolean;
40
+ export type Size = SizeType
41
+ export type Type = string
42
+ export type ClassName = string
43
+ export type Name = string | number
44
+ export type Content = string
45
+ export type Placement = string
46
+ export type Status = string
47
+ export type Icon = string
48
+ export type Round = boolean
49
+ export type Circle = boolean
50
+ export type Disabled = boolean
51
+ export type Loading = boolean
52
+ export type DestroyOnClose = boolean
53
+ export type Transfer = boolean
54
54
  }
55
55
 
56
56
  export type VxeButtonProps = {
57
- size?: VxeButtonPropTypes.Size;
57
+ size?: VxeButtonPropTypes.Size
58
58
  /**
59
59
  * 按钮类型
60
60
  */
61
- type?: VxeButtonPropTypes.Type;
62
- className?: VxeButtonPropTypes.ClassName;
61
+ type?: VxeButtonPropTypes.Type
62
+ className?: VxeButtonPropTypes.ClassName
63
63
  /**
64
64
  * 用来标识这一项
65
65
  */
66
- name?: VxeButtonPropTypes.Name;
66
+ name?: VxeButtonPropTypes.Name
67
67
  /**
68
68
  * 按钮内容
69
69
  */
70
- content?: VxeButtonPropTypes.Content;
70
+ content?: VxeButtonPropTypes.Content
71
71
  /**
72
72
  * 固定显示下拉面板的方向
73
73
  */
74
- placement?: VxeButtonPropTypes.Placement;
74
+ placement?: VxeButtonPropTypes.Placement
75
75
  /**
76
76
  * 按钮状态
77
77
  */
78
- status?: VxeButtonPropTypes.Status;
78
+ status?: VxeButtonPropTypes.Status
79
79
  /**
80
80
  * 按钮的图标
81
81
  */
82
- icon?: VxeButtonPropTypes.Icon;
82
+ icon?: VxeButtonPropTypes.Icon
83
83
  /**
84
84
  * 圆角边框
85
85
  */
86
- round?: VxeButtonPropTypes.Round;
86
+ round?: VxeButtonPropTypes.Round
87
87
  /**
88
88
  * 圆角按钮
89
89
  */
90
- circle?: VxeButtonPropTypes.Circle;
90
+ circle?: VxeButtonPropTypes.Circle
91
91
  /**
92
92
  * 是否禁用
93
93
  */
94
- disabled?: VxeButtonPropTypes.Disabled;
94
+ disabled?: VxeButtonPropTypes.Disabled
95
95
  /**
96
96
  * 是否加载中
97
97
  */
98
- loading?: VxeButtonPropTypes.Loading;
98
+ loading?: VxeButtonPropTypes.Loading
99
99
  /**
100
100
  * 在下拉面板关闭时销毁内容
101
101
  */
102
- destroyOnClose?: VxeButtonPropTypes.DestroyOnClose;
102
+ destroyOnClose?: VxeButtonPropTypes.DestroyOnClose
103
103
  /**
104
104
  * 是否将弹框容器插入于 body 内
105
105
  */
106
- transfer?: VxeButtonPropTypes.Transfer;
106
+ transfer?: VxeButtonPropTypes.Transfer
107
107
  }
108
108
 
109
109
  export interface ButtonMethods {
110
- dispatchEvent(type: ValueOf<VxeButtonEmits>, params: any, evnt: Event): void;
110
+ dispatchEvent(type: ValueOf<VxeButtonEmits>, params: any, evnt: Event): void
111
111
  /**
112
112
  * 获取焦点
113
113
  */
114
- focus(): Promise<any>;
114
+ focus(): Promise<any>
115
115
  /**
116
116
  * 失去焦点
117
117
  */
118
- blur(): Promise<any>;
118
+ blur(): Promise<any>
119
119
  }
120
120
  export interface VxeButtonMethods extends ButtonMethods { }
121
121
 
@@ -129,7 +129,7 @@ export type VxeButtonEmits = [
129
129
 
130
130
  export namespace VxeButtonDefines {
131
131
  interface ButtonEventParams extends VxeEvent {
132
- $button: VxeButtonConstructor;
132
+ $button: VxeButtonConstructor
133
133
  }
134
134
 
135
135
  export interface ClickParams { }
@@ -140,16 +140,16 @@ export namespace VxeButtonDefines {
140
140
  }
141
141
 
142
142
  export type VxeButtonEventProps = {
143
- onClick?: VxeButtonEvents.Click;
144
- onDropdownClick?: VxeButtonEvents.DropdownClick;
143
+ onClick?: VxeButtonEvents.Click
144
+ onDropdownClick?: VxeButtonEvents.DropdownClick
145
145
  }
146
146
 
147
147
  export interface VxeButtonListeners {
148
- click?: VxeButtonEvents.Click;
149
- dropdownClick?: VxeButtonEvents.DropdownClick;
148
+ click?: VxeButtonEvents.Click
149
+ dropdownClick?: VxeButtonEvents.DropdownClick
150
150
  }
151
151
 
152
152
  export namespace VxeButtonEvents {
153
- export type Click = (params: VxeButtonDefines.ClickEventParams) => void;
154
- export type DropdownClick = (params: VxeButtonDefines.DropdownClickParams) => void;
153
+ export type Click = (params: VxeButtonDefines.ClickEventParams) => void
154
+ export type DropdownClick = (params: VxeButtonDefines.DropdownClickParams) => void
155
155
  }
@@ -6,45 +6,45 @@ import { VxeCheckboxEvents, VxeCheckboxPropTypes } from './checkbox'
6
6
  * 组件 - 复选框组
7
7
  * @example import { CheckboxGroup as VxeCheckboxGroup } from 'vxe-table'
8
8
  */
9
- export const CheckboxGroup: VXEComponent<VxeCheckboxGroupProps, VxeCheckboxGroupEventProps>;
9
+ export const CheckboxGroup: VXEComponent<VxeCheckboxGroupProps, VxeCheckboxGroupEventProps>
10
10
 
11
- export type VxeCheckboxGroupInstance = ComponentPublicInstance<VxeCheckboxGroupProps, VxeCheckboxGroupConstructor>;
11
+ export type VxeCheckboxGroupInstance = ComponentPublicInstance<VxeCheckboxGroupProps, VxeCheckboxGroupConstructor>
12
12
 
13
13
  export interface VxeCheckboxGroupConstructor extends VxeComponentBase, VxeCheckboxGroupMethods {
14
- props: VxeCheckboxGroupProps;
15
- context: SetupContext<VxeCheckboxGroupEmits>;
16
- renderVN: RenderFunction;
14
+ props: VxeCheckboxGroupProps
15
+ context: SetupContext<VxeCheckboxGroupEmits>
16
+ renderVN: RenderFunction
17
17
  }
18
18
 
19
19
  export type VxeCheckboxGroupProps = {
20
- size?: VxeCheckboxGroupPropTypes.Size;
20
+ size?: VxeCheckboxGroupPropTypes.Size
21
21
  /**
22
22
  * 绑定值
23
23
  */
24
- modelValue?: VxeCheckboxGroupPropTypes.ModelValue;
24
+ modelValue?: VxeCheckboxGroupPropTypes.ModelValue
25
25
  /**
26
26
  * 是否禁用
27
27
  */
28
- disabled?: VxeCheckboxGroupPropTypes.Disabled;
28
+ disabled?: VxeCheckboxGroupPropTypes.Disabled
29
29
  }
30
30
 
31
31
  export namespace VxeCheckboxGroupPropTypes {
32
- export type Size = SizeType;
33
- export type ModelValue = any[];
34
- export type Disabled = boolean;
32
+ export type Size = SizeType
33
+ export type ModelValue = any[]
34
+ export type Disabled = boolean
35
35
  }
36
36
 
37
37
  export interface CheckboxGroupMethods {
38
- dispatchEvent(type: ValueOf<VxeCheckboxGroupEmits>, params: any, evnt: Event): void;
38
+ dispatchEvent(type: ValueOf<VxeCheckboxGroupEmits>, params: any, evnt: Event): void
39
39
  }
40
40
  export interface VxeCheckboxGroupMethods extends CheckboxGroupMethods { }
41
41
 
42
42
  export interface CheckboxGroupPrivateMethods {
43
43
  handleChecked(params: {
44
- checked: boolean;
45
- value: VxeCheckboxPropTypes.ModelValue;
46
- label: VxeCheckboxPropTypes.Label;
47
- }, evnt: Event): void;
44
+ checked: boolean
45
+ value: VxeCheckboxPropTypes.ModelValue
46
+ label: VxeCheckboxPropTypes.Label
47
+ }, evnt: Event): void
48
48
  }
49
49
  export interface VxeCheckboxGroupPrivateMethods extends CheckboxGroupPrivateMethods { }
50
50
 
@@ -55,23 +55,23 @@ export type VxeCheckboxGroupEmits = [
55
55
 
56
56
  export namespace VxeCheckboxGroupDefines {
57
57
  interface CheckboxGroupEventParams extends VxeEvent {
58
- $checkboxGroup: VxeCheckboxGroupConstructor;
58
+ $checkboxGroup: VxeCheckboxGroupConstructor
59
59
  }
60
60
 
61
61
  export type ChangeParams = {
62
- checklist: any[];
62
+ checklist: any[]
63
63
  }
64
64
  export interface ChangeEventParams extends CheckboxGroupEventParams, ChangeParams { }
65
65
  }
66
66
 
67
67
  export type VxeCheckboxGroupEventProps = {
68
- onChange?: VxeCheckboxGroupEvents.Change;
68
+ onChange?: VxeCheckboxGroupEvents.Change
69
69
  }
70
70
 
71
71
  export interface VxeCheckboxGroupListeners {
72
- change?: VxeCheckboxGroupEvents.Change;
72
+ change?: VxeCheckboxGroupEvents.Change
73
73
  }
74
74
 
75
75
  export namespace VxeCheckboxGroupEvents {
76
- export type Change = (params: VxeCheckboxGroupDefines.ChangeEventParams) => void;
76
+ export type Change = (params: VxeCheckboxGroupDefines.ChangeEventParams) => void
77
77
  }