vxe-table 4.8.4 → 4.8.6

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 (55) hide show
  1. package/README.md +12 -12
  2. package/es/grid/src/grid.js +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/custom/hook.js +135 -3
  6. package/es/table/module/custom/panel.js +179 -181
  7. package/es/table/module/validator/hook.js +1 -1
  8. package/es/table/src/body.js +14 -8
  9. package/es/table/src/table.js +77 -73
  10. package/es/table/style.css +67 -52
  11. package/es/table/style.min.css +1 -1
  12. package/es/ui/index.js +3 -2
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-table/style.css +67 -52
  15. package/es/vxe-table/style.min.css +1 -1
  16. package/lib/grid/src/grid.js +1 -1
  17. package/lib/grid/src/grid.min.js +1 -1
  18. package/lib/index.umd.js +374 -247
  19. package/lib/index.umd.min.js +1 -1
  20. package/lib/style.css +1 -1
  21. package/lib/style.min.css +1 -1
  22. package/lib/table/module/custom/hook.js +177 -3
  23. package/lib/table/module/custom/hook.min.js +1 -1
  24. package/lib/table/module/custom/panel.js +108 -162
  25. package/lib/table/module/custom/panel.min.js +1 -1
  26. package/lib/table/module/validator/hook.js +1 -1
  27. package/lib/table/module/validator/hook.min.js +1 -1
  28. package/lib/table/src/body.js +5 -3
  29. package/lib/table/src/body.min.js +1 -1
  30. package/lib/table/src/table.js +78 -74
  31. package/lib/table/src/table.min.js +1 -1
  32. package/lib/table/style/style.css +67 -52
  33. package/lib/table/style/style.min.css +1 -1
  34. package/lib/ui/index.js +3 -2
  35. package/lib/ui/index.min.js +1 -1
  36. package/lib/ui/src/log.js +1 -1
  37. package/lib/ui/src/log.min.js +1 -1
  38. package/lib/vxe-table/style/style.css +67 -52
  39. package/lib/vxe-table/style/style.min.css +1 -1
  40. package/package.json +2 -2
  41. package/packages/grid/src/grid.ts +1 -1
  42. package/packages/table/module/custom/hook.ts +136 -3
  43. package/packages/table/module/custom/panel.ts +186 -185
  44. package/packages/table/module/validator/hook.ts +1 -1
  45. package/packages/table/src/body.ts +14 -8
  46. package/packages/table/src/table.ts +77 -73
  47. package/packages/ui/index.ts +2 -1
  48. package/styles/components/table-module/custom.scss +23 -6
  49. package/styles/components/table.scss +36 -26
  50. /package/es/{iconfont.1730946045701.ttf → iconfont.1731028500961.ttf} +0 -0
  51. /package/es/{iconfont.1730946045701.woff → iconfont.1731028500961.woff} +0 -0
  52. /package/es/{iconfont.1730946045701.woff2 → iconfont.1731028500961.woff2} +0 -0
  53. /package/lib/{iconfont.1730946045701.ttf → iconfont.1731028500961.ttf} +0 -0
  54. /package/lib/{iconfont.1730946045701.woff → iconfont.1731028500961.woff} +0 -0
  55. /package/lib/{iconfont.1730946045701.woff2 → iconfont.1731028500961.woff2} +0 -0
@@ -1,4 +1,4 @@
1
- import { defineComponent, h, createCommentVNode, ComponentPublicInstance, reactive, ref, Ref, provide, inject, nextTick, onActivated, onDeactivated, onBeforeUnmount, onUnmounted, watch, computed, ComputedRef, onMounted } from 'vue'
1
+ import { defineComponent, h, ComponentPublicInstance, reactive, ref, Ref, provide, inject, nextTick, onActivated, onDeactivated, onBeforeUnmount, onUnmounted, watch, computed, ComputedRef, onMounted } from 'vue'
2
2
  import XEUtils from 'xe-utils'
3
3
  import { browse, isPx, isScale, hasClass, addClass, removeClass, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, isNodeElement } from '../../ui/src/dom'
4
4
  import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils'
@@ -18,10 +18,10 @@ import TableImportPanelComponent from '../module/export/import-panel'
18
18
  import TableExportPanelComponent from '../module/export/export-panel'
19
19
  import TableMenuPanelComponent from '../module/menu/panel'
20
20
 
21
- import type { VxeLoadingComponent, VxeTooltipInstance, VxeTooltipComponent, VxeTabsConstructor, VxeTabsPrivateMethods, ValueOf } from 'vxe-pc-ui'
21
+ import type { VxeLoadingComponent, VxeTooltipInstance, VxeTooltipComponent, VxeTabsConstructor, VxeTabsPrivateMethods, ValueOf, VxeComponentSlotType } from 'vxe-pc-ui'
22
22
  import type { VxeGridConstructor, VxeGridPrivateMethods, VxeTableConstructor, TableReactData, TableInternalData, VxeTablePropTypes, VxeToolbarConstructor, TablePrivateMethods, VxeTablePrivateRef, VxeTablePrivateComputed, VxeTablePrivateMethods, TableMethods, VxeTableMethods, VxeTableDefines, VxeTableEmits, VxeTableProps, VxeColumnPropTypes } from '../../../types'
23
23
 
24
- const { getConfig, getI18n, renderer, formats, createEvent, globalResize, interceptor, hooks, globalEvents, GLOBAL_EVENT_KEYS, useFns } = VxeUI
24
+ const { getConfig, getI18n, renderer, formats, createEvent, globalResize, interceptor, hooks, globalEvents, GLOBAL_EVENT_KEYS, useFns, renderEmptyElement } = VxeUI
25
25
 
26
26
  const isWebkit = browse['-webkit'] && !browse.edge
27
27
 
@@ -2271,7 +2271,9 @@ export default defineComponent({
2271
2271
  Promise.resolve(
2272
2272
  loadMethod({ $table: $xeTable, row })
2273
2273
  ).then((childRecords: any) => {
2274
- rowRest.treeLoaded = true
2274
+ if (rowRest) {
2275
+ rowRest.treeLoaded = true
2276
+ }
2275
2277
  if (treeExpandLazyLoadedMaps[rowid]) {
2276
2278
  delete treeExpandLazyLoadedMaps[rowid]
2277
2279
  }
@@ -2297,7 +2299,9 @@ export default defineComponent({
2297
2299
  }
2298
2300
  }).catch(() => {
2299
2301
  const { treeExpandLazyLoadedMaps } = reactData
2300
- rowRest.treeLoaded = false
2302
+ if (rowRest) {
2303
+ rowRest.treeLoaded = false
2304
+ }
2301
2305
  if (treeExpandLazyLoadedMaps[rowid]) {
2302
2306
  delete treeExpandLazyLoadedMaps[rowid]
2303
2307
  }
@@ -2335,10 +2339,14 @@ export default defineComponent({
2335
2339
  rowExpandLazyLoadedMaps[rowid] = row
2336
2340
  loadMethod({ $table: $xeTable, row, rowIndex: tableMethods.getRowIndex(row), $rowIndex: tableMethods.getVMRowIndex(row) }).then(() => {
2337
2341
  const { rowExpandedMaps } = reactData
2338
- rowRest.expandLoaded = true
2342
+ if (rowRest) {
2343
+ rowRest.expandLoaded = true
2344
+ }
2339
2345
  rowExpandedMaps[rowid] = row
2340
2346
  }).catch(() => {
2341
- rowRest.expandLoaded = false
2347
+ if (rowRest) {
2348
+ rowRest.expandLoaded = false
2349
+ }
2342
2350
  }).finally(() => {
2343
2351
  const { rowExpandLazyLoadedMaps } = reactData
2344
2352
  if (rowExpandLazyLoadedMaps[rowid]) {
@@ -2812,13 +2820,15 @@ export default defineComponent({
2812
2820
  const rowid = getRowid($xeTable, row)
2813
2821
  if (!treeTempExpandedMaps[rowid]) {
2814
2822
  const rowRest = fullAllDataRowIdData[rowid]
2815
- const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid]
2816
- // 是否使用懒加载
2817
- if (isLoad) {
2818
- result.push(handleAsyncTreeExpandChilds(row))
2819
- } else {
2820
- if (row[childrenField] && row[childrenField].length) {
2821
- treeTempExpandedMaps[rowid] = row
2823
+ if (rowRest) {
2824
+ const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid]
2825
+ // 是否使用懒加载
2826
+ if (isLoad) {
2827
+ result.push(handleAsyncTreeExpandChilds(row))
2828
+ } else {
2829
+ if (row[childrenField] && row[childrenField].length) {
2830
+ treeTempExpandedMaps[rowid] = row
2831
+ }
2822
2832
  }
2823
2833
  }
2824
2834
  }
@@ -3721,32 +3731,8 @@ export default defineComponent({
3721
3731
  * 如果已关联工具栏,则会同步更新
3722
3732
  */
3723
3733
  resetColumn (options) {
3724
- const { collectColumn } = internalData
3725
- const customOpts = computeCustomOpts.value
3726
- const { checkMethod } = customOpts
3727
- const opts: VxeTableDefines.VxeTableCustomStorageObj = Object.assign({
3728
- visible: true,
3729
- resizable: options === true,
3730
- fixed: options === true,
3731
- sort: options === true
3732
- }, options)
3733
- XEUtils.eachTree(collectColumn, (column) => {
3734
- if (opts.resizable) {
3735
- column.resizeWidth = 0
3736
- }
3737
- if (opts.fixed) {
3738
- column.fixed = column.defaultFixed
3739
- }
3740
- if (opts.sort) {
3741
- column.renderSortNumber = column.sortNumber
3742
- }
3743
- if (!checkMethod || checkMethod({ column })) {
3744
- column.visible = column.defaultVisible
3745
- }
3746
- column.renderResizeWidth = column.renderWidth
3747
- })
3748
- $xeTable.saveCustomStore('reset')
3749
- return tablePrivateMethods.handleCustom()
3734
+ warnLog('vxe.error.delFunc', ['resetColumn', 'resetCustom'])
3735
+ return $xeTable.resetCustom(options)
3750
3736
  },
3751
3737
  /**
3752
3738
  * 刷新列信息
@@ -5580,7 +5566,18 @@ export default defineComponent({
5580
5566
  }
5581
5567
 
5582
5568
  const updateRowDropTipContent = (tdEl: HTMLElement) => {
5583
- reactData.dragTipText = tdEl.textContent || ''
5569
+ const { dragRow } = reactData
5570
+ const dragOpts = computeDragOpts.value
5571
+ const { rowTooltipMethod } = dragOpts
5572
+ let tipContent = ''
5573
+ if (rowTooltipMethod) {
5574
+ tipContent = `${rowTooltipMethod({
5575
+ row: dragRow
5576
+ }) || ''}`
5577
+ } else {
5578
+ tipContent = getI18n('vxe.table.dragTip', [tdEl.textContent || ''])
5579
+ }
5580
+ reactData.dragTipText = tipContent
5584
5581
  }
5585
5582
 
5586
5583
  /**
@@ -5615,6 +5612,18 @@ export default defineComponent({
5615
5612
  return nextTick()
5616
5613
  }
5617
5614
 
5615
+ const callSlot = <T>(slotFunc: ((params: T) => VxeComponentSlotType | VxeComponentSlotType[]) | string | null, params: T): VxeComponentSlotType[] => {
5616
+ if (slotFunc) {
5617
+ if ($xeGrid) {
5618
+ return $xeGrid.callSlot(slotFunc, params)
5619
+ }
5620
+ if (XEUtils.isFunction(slotFunc)) {
5621
+ return getSlotVNs(slotFunc(params))
5622
+ }
5623
+ }
5624
+ return []
5625
+ }
5626
+
5618
5627
  /**
5619
5628
  * 内部方法
5620
5629
  */
@@ -5623,17 +5632,7 @@ export default defineComponent({
5623
5632
  return getConfig()
5624
5633
  },
5625
5634
  updateAfterDataIndex,
5626
- callSlot (slotFunc, params) {
5627
- if (slotFunc) {
5628
- if ($xeGrid) {
5629
- return $xeGrid.callSlot(slotFunc, params)
5630
- }
5631
- if (XEUtils.isFunction(slotFunc)) {
5632
- return getSlotVNs(slotFunc(params))
5633
- }
5634
- }
5635
- return []
5636
- },
5635
+ callSlot,
5637
5636
  /**
5638
5637
  * 获取父容器元素
5639
5638
  */
@@ -7079,7 +7078,7 @@ export default defineComponent({
7079
7078
  tableGroupColumn,
7080
7079
  fixedColumn
7081
7080
  })
7082
- : createCommentVNode(),
7081
+ : renderEmptyElement($xeTable),
7083
7082
  h(TableBodyComponent, {
7084
7083
  ref: isFixedLeft ? refTableLeftBody : refTableRightBody,
7085
7084
  fixedType,
@@ -7095,7 +7094,7 @@ export default defineComponent({
7095
7094
  fixedColumn,
7096
7095
  fixedType
7097
7096
  })
7098
- : createCommentVNode()
7097
+ : renderEmptyElement($xeTable)
7099
7098
  ])
7100
7099
  }
7101
7100
 
@@ -7123,7 +7122,7 @@ export default defineComponent({
7123
7122
 
7124
7123
  const renderVN = () => {
7125
7124
  const { loading, stripe, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules } = props
7126
- const { isCalcColumn, isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, scrollbarHeight, tableData, tableColumn, tableGroupColumn, footerTableData, initStore, columnStore, filterStore, customStore, tooltipStore } = reactData
7125
+ const { isCalcColumn, isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, scrollbarHeight, tableData, tableColumn, tableGroupColumn, footerTableData, initStore, columnStore, filterStore, customStore, tooltipStore, dragRow, dragTipText } = reactData
7127
7126
  const { leftList, rightList } = columnStore
7128
7127
  const loadingSlot = slots.loading
7129
7128
  const tipConfig = computeTipConfig.value
@@ -7131,6 +7130,7 @@ export default defineComponent({
7131
7130
  const checkboxOpts = computeCheckboxOpts.value
7132
7131
  const treeOpts = computeTreeOpts.value
7133
7132
  const rowOpts = computeRowOpts.value
7133
+ const dragOpts = computeDragOpts.value
7134
7134
  const columnOpts = computeColumnOpts.value
7135
7135
  const vSize = computeSize.value
7136
7136
  const tableBorder = computeTableBorder.value
@@ -7140,6 +7140,8 @@ export default defineComponent({
7140
7140
  const isMenu = computeIsMenu.value
7141
7141
  const currLoading = reactData._isLoading || loading
7142
7142
  const virtualScrollBars = computeVirtualScrollBars.value
7143
+ const dragSlots = dragOpts.slots || {}
7144
+ const rowTipSlot = dragSlots.rowTip
7143
7145
  return h('div', {
7144
7146
  ref: refElem,
7145
7147
  class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
@@ -7197,7 +7199,7 @@ export default defineComponent({
7197
7199
  tableColumn,
7198
7200
  tableGroupColumn
7199
7201
  })
7200
- : createCommentVNode(),
7202
+ : renderEmptyElement($xeTable),
7201
7203
  /**
7202
7204
  * 表体
7203
7205
  */
@@ -7215,13 +7217,13 @@ export default defineComponent({
7215
7217
  footerTableData,
7216
7218
  tableColumn
7217
7219
  })
7218
- : createCommentVNode()
7220
+ : renderEmptyElement($xeTable)
7219
7221
  ]),
7220
7222
  h('div', {
7221
7223
  class: 'vxe-table--fixed-wrapper'
7222
7224
  }, [
7223
- leftList && leftList.length && overflowX ? renderFixed('left') : createCommentVNode(),
7224
- rightList && rightList.length && overflowX ? renderFixed('right') : createCommentVNode()
7225
+ leftList && leftList.length && overflowX ? renderFixed('left') : renderEmptyElement($xeTable),
7226
+ rightList && rightList.length && overflowX ? renderFixed('right') : renderEmptyElement($xeTable)
7225
7227
  ])
7226
7228
  ]),
7227
7229
  virtualScrollBars.x
@@ -7241,7 +7243,7 @@ export default defineComponent({
7241
7243
  })
7242
7244
  ])
7243
7245
  ])
7244
- : createCommentVNode(),
7246
+ : renderEmptyElement($xeTable),
7245
7247
  virtualScrollBars.y
7246
7248
  ? h('div', {
7247
7249
  key: 'vy',
@@ -7259,7 +7261,7 @@ export default defineComponent({
7259
7261
  })
7260
7262
  ])
7261
7263
  ])
7262
- : createCommentVNode(),
7264
+ : renderEmptyElement($xeTable),
7263
7265
  /**
7264
7266
  * 空数据
7265
7267
  */
@@ -7307,7 +7309,7 @@ export default defineComponent({
7307
7309
  default: () => loadingSlot({ $table: $xeTable, $grid: $xeGrid })
7308
7310
  }
7309
7311
  : {})
7310
- : createCommentVNode(),
7312
+ : renderEmptyElement($xeTable),
7311
7313
  /**
7312
7314
  * 自定义列
7313
7315
  */
@@ -7317,7 +7319,7 @@ export default defineComponent({
7317
7319
  ref: refTableCustom,
7318
7320
  customStore
7319
7321
  })
7320
- : createCommentVNode(),
7322
+ : renderEmptyElement($xeTable),
7321
7323
  /**
7322
7324
  * 筛选
7323
7325
  */
@@ -7327,7 +7329,7 @@ export default defineComponent({
7327
7329
  ref: refTableFilter,
7328
7330
  filterStore
7329
7331
  })
7330
- : createCommentVNode(),
7332
+ : renderEmptyElement($xeTable),
7331
7333
  /**
7332
7334
  * 导入
7333
7335
  */
@@ -7337,7 +7339,7 @@ export default defineComponent({
7337
7339
  defaultOptions: reactData.importParams,
7338
7340
  storeData: reactData.importStore
7339
7341
  })
7340
- : createCommentVNode(),
7342
+ : renderEmptyElement($xeTable),
7341
7343
  /**
7342
7344
  * 导出
7343
7345
  */
@@ -7347,7 +7349,7 @@ export default defineComponent({
7347
7349
  defaultOptions: reactData.exportParams,
7348
7350
  storeData: reactData.exportStore
7349
7351
  })
7350
- : createCommentVNode(),
7352
+ : renderEmptyElement($xeTable),
7351
7353
  /**
7352
7354
  * 快捷菜单
7353
7355
  */
@@ -7356,16 +7358,18 @@ export default defineComponent({
7356
7358
  key: 'tm',
7357
7359
  ref: refTableMenu
7358
7360
  })
7359
- : createCommentVNode(),
7361
+ : renderEmptyElement($xeTable),
7360
7362
  /**
7361
7363
  * 拖拽提示
7362
7364
  */
7363
- rowOpts.drag
7365
+ rowOpts.drag && (dragRow || dragTipText)
7364
7366
  ? h('div', {
7365
7367
  ref: refRowDragTipElem,
7366
- class: 'vxe-table--row-drag-hint'
7367
- }, getI18n('vxe.table.dragTip', [reactData.dragTipText]))
7368
- : createCommentVNode(),
7368
+ class: 'vxe-table--row-drag-tip'
7369
+ }, rowTipSlot
7370
+ ? (dragRow ? callSlot(rowTipSlot, { row: dragRow }) : [renderEmptyElement($xeTable)])
7371
+ : (dragTipText ? [h('span', dragTipText)] : [renderEmptyElement($xeTable)]))
7372
+ : renderEmptyElement($xeTable),
7369
7373
  /**
7370
7374
  * 提示相关
7371
7375
  */
@@ -7399,9 +7403,9 @@ export default defineComponent({
7399
7403
  }, 'vxe-table--valid-error'],
7400
7404
  ...(validOpts.message === 'tooltip' || tableData.length === 1 ? validTipOpts : {}) as any
7401
7405
  })
7402
- : createCommentVNode()
7406
+ : renderEmptyElement($xeTable)
7403
7407
  ])
7404
- : createCommentVNode()
7408
+ : renderEmptyElement($xeTable)
7405
7409
  ])
7406
7410
  }
7407
7411
 
@@ -58,7 +58,8 @@ VxeUI.setConfig({
58
58
  autoClear: true,
59
59
  autoPos: true,
60
60
  message: 'inline',
61
- msgMode: 'single'
61
+ msgMode: 'single',
62
+ theme: 'normal'
62
63
  },
63
64
  columnConfig: {
64
65
  maxFixedSize: 4
@@ -94,15 +94,14 @@
94
94
  }
95
95
  }
96
96
 
97
- .vxe-table-custom--list-wrapper {
97
+ .vxe-table-custom--body {
98
98
  display: block;
99
99
  flex-grow: 1;
100
100
  overflow-x: hidden;
101
101
  overflow-y: auto;
102
102
  }
103
103
 
104
- .vxe-table-custom--header,
105
- .vxe-table-custom--body {
104
+ .vxe-table-custom--panel-list {
106
105
  list-style-type: none;
107
106
  margin: 0;
108
107
  padding: 0;
@@ -130,7 +129,7 @@
130
129
  user-select: none;
131
130
  }
132
131
 
133
- .vxe-table-custom--body {
132
+ .vxe-table-custom--panel-list {
134
133
  padding: 0.2em 0;
135
134
  .vxe-table-custom--checkbox-option {
136
135
  &:hover {
@@ -139,7 +138,8 @@
139
138
  }
140
139
  }
141
140
 
142
- .vxe-table-custom--footer {
141
+ .vxe-table-custom--footer-buttons {
142
+ width: 100%;
143
143
  display: flex;
144
144
  flex-direction: row;
145
145
  flex-shrink: 0;
@@ -292,7 +292,8 @@
292
292
  text-align: center;
293
293
  }
294
294
  &.col--resizable {
295
- & > .vxe-input {
295
+ & > .vxe-input,
296
+ & > .vxe-number-input {
296
297
  width: 100%;
297
298
  }
298
299
  }
@@ -390,3 +391,19 @@
390
391
  margin-left: 5px;
391
392
  cursor: help;
392
393
  }
394
+
395
+ .vxe-table-custom-popup--table-col-seq {
396
+ width: 80px;
397
+ }
398
+ .vxe-table-custom-popup--table-col-sort {
399
+ width: 80px;
400
+ }
401
+ .vxe-table-custom-popup--table-col-title {
402
+ min-width: 120px;
403
+ }
404
+ .vxe-table-custom-popup--table-col-width {
405
+ width: 140px;
406
+ }
407
+ .vxe-table-custom-popup--table-col-fixed {
408
+ width: 200px;
409
+ }
@@ -1299,7 +1299,7 @@
1299
1299
  .vxe-body--row-list-move {
1300
1300
  transition: transform 0.35s;
1301
1301
  }
1302
- .vxe-table--row-drag-hint {
1302
+ .vxe-table--row-drag-tip {
1303
1303
  display: none;
1304
1304
  position: absolute;
1305
1305
  top: 0;
@@ -1427,30 +1427,40 @@
1427
1427
 
1428
1428
  /*校验不通过*/
1429
1429
  .vxe-body--column {
1430
+ .vxe-cell--valid-error-tip {
1431
+ width: 100%;
1432
+ position: absolute;
1433
+ left: 50%;
1434
+ font-size: 12px;
1435
+ line-height: 1.2em;
1436
+ transform: translateX(-50%);
1437
+ text-align: left;
1438
+ z-index: 4;
1439
+ padding-left: var(--vxe-ui-table-cell-padding-left);
1440
+ padding-right: var(--vxe-ui-table-cell-padding-right);
1441
+ }
1442
+ .vxe-cell--valid-error-wrapper {
1443
+ display: inline-block;
1444
+ border-radius: var(--vxe-ui-border-radius);
1445
+ pointer-events: auto;
1446
+ }
1447
+ .vxe-cell--valid-error-theme-beautify {
1448
+ padding: 0.4em 0.8em;
1449
+ color: #fff;
1450
+ background-color: #f56c6c;
1451
+ .vxe-cell--valid-error-msg {
1452
+ background: transparent;
1453
+ }
1454
+ }
1455
+ .vxe-cell--valid-error-theme-normal {
1456
+ color: var(--vxe-ui-table-validate-error-color);
1457
+ background-color: var(--vxe-ui-table-validate-error-background-color);
1458
+ }
1430
1459
  &.col--active,
1431
1460
  &.col--selected {
1432
1461
  position: relative;
1433
1462
  }
1434
1463
  &.col--valid-error {
1435
- .vxe-cell--valid-error-hint {
1436
- width: 100%;
1437
- position: absolute;
1438
- left: 50%;
1439
- font-size: 12px;
1440
- line-height: 1.2em;
1441
- transform: translateX(-50%);
1442
- text-align: left;
1443
- z-index: 4;
1444
- padding-left: var(--vxe-ui-table-cell-padding-left);
1445
- padding-right: var(--vxe-ui-table-cell-padding-right);
1446
- .vxe-cell--valid-error-msg {
1447
- display: inline-block;
1448
- border-radius: var(--vxe-ui-border-radius);
1449
- color: var(--vxe-ui-table-validate-error-color);
1450
- background-color: var(--vxe-ui-table-validate-error-background-color);
1451
- pointer-events: auto;
1452
- }
1453
- }
1454
1464
  .vxe-default-input,
1455
1465
  .vxe-default-textarea,
1456
1466
  .vxe-default-select {
@@ -1465,11 +1475,11 @@
1465
1475
  &.valid-msg--single {
1466
1476
  .vxe-body--row {
1467
1477
  &:last-child {
1468
- .vxe-cell--valid-error-hint {
1478
+ .vxe-cell--valid-error-tip {
1469
1479
  bottom: calc(100%);
1470
1480
  }
1471
1481
  &:first-child {
1472
- .vxe-cell--valid-error-hint {
1482
+ .vxe-cell--valid-error-tip {
1473
1483
  bottom: auto;
1474
1484
  }
1475
1485
  }
@@ -1479,7 +1489,7 @@
1479
1489
  &.valid-msg--full {
1480
1490
  .vxe-body--row {
1481
1491
  &:last-child {
1482
- .vxe-cell--valid-error-hint {
1492
+ .vxe-cell--valid-error-tip {
1483
1493
  top: calc(100% - 1.3em);
1484
1494
  }
1485
1495
  }
@@ -1489,7 +1499,7 @@
1489
1499
  &.old-cell-valid {
1490
1500
  .vxe-body--column {
1491
1501
  &.col--valid-error {
1492
- .vxe-cell--valid-error-hint {
1502
+ .vxe-cell--valid-error-tip {
1493
1503
  width: 320px;
1494
1504
  position: absolute;
1495
1505
  bottom: calc(100% + 4px);
@@ -1511,7 +1521,7 @@
1511
1521
  }
1512
1522
  .vxe-body--row {
1513
1523
  &:first-child {
1514
- .vxe-cell--valid-error-hint {
1524
+ .vxe-cell--valid-error-tip {
1515
1525
  bottom: auto;
1516
1526
  top: calc(100% + 4px);
1517
1527
  }
@@ -1519,7 +1529,7 @@
1519
1529
  }
1520
1530
  .vxe-body--column {
1521
1531
  &:first-child {
1522
- .vxe-cell--valid-error-hint {
1532
+ .vxe-cell--valid-error-tip {
1523
1533
  left: 10px;
1524
1534
  transform: translateX(0);
1525
1535
  text-align: left;