vxe-table 4.8.5 → 4.8.7

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 (49) hide show
  1. package/es/style.css +1 -1
  2. package/es/style.min.css +1 -1
  3. package/es/table/module/custom/panel.js +32 -8
  4. package/es/table/module/validator/hook.js +1 -1
  5. package/es/table/src/body.js +14 -8
  6. package/es/table/src/header.js +2 -2
  7. package/es/table/src/table.js +69 -45
  8. package/es/table/style.css +25 -15
  9. package/es/table/style.min.css +1 -1
  10. package/es/ui/index.js +3 -2
  11. package/es/ui/src/log.js +1 -1
  12. package/es/vxe-table/style.css +25 -15
  13. package/es/vxe-table/style.min.css +1 -1
  14. package/lib/index.umd.js +117 -54
  15. package/lib/index.umd.min.js +1 -1
  16. package/lib/style.css +1 -1
  17. package/lib/style.min.css +1 -1
  18. package/lib/table/module/custom/panel.js +35 -5
  19. package/lib/table/module/custom/panel.min.js +1 -1
  20. package/lib/table/module/validator/hook.js +1 -1
  21. package/lib/table/module/validator/hook.min.js +1 -1
  22. package/lib/table/src/body.js +5 -3
  23. package/lib/table/src/body.min.js +1 -1
  24. package/lib/table/src/header.js +2 -2
  25. package/lib/table/src/table.js +70 -40
  26. package/lib/table/src/table.min.js +1 -1
  27. package/lib/table/style/style.css +25 -15
  28. package/lib/table/style/style.min.css +1 -1
  29. package/lib/ui/index.js +3 -2
  30. package/lib/ui/index.min.js +1 -1
  31. package/lib/ui/src/log.js +1 -1
  32. package/lib/ui/src/log.min.js +1 -1
  33. package/lib/vxe-table/style/style.css +25 -15
  34. package/lib/vxe-table/style/style.min.css +1 -1
  35. package/package.json +2 -2
  36. package/packages/table/module/custom/panel.ts +35 -8
  37. package/packages/table/module/validator/hook.ts +1 -1
  38. package/packages/table/src/body.ts +14 -8
  39. package/packages/table/src/header.ts +2 -2
  40. package/packages/table/src/table.ts +69 -45
  41. package/packages/ui/index.ts +2 -1
  42. package/styles/components/table-module/custom.scss +2 -1
  43. package/styles/components/table.scss +36 -26
  44. /package/es/{iconfont.1730971754265.ttf → iconfont.1731032736115.ttf} +0 -0
  45. /package/es/{iconfont.1730971754265.woff → iconfont.1731032736115.woff} +0 -0
  46. /package/es/{iconfont.1730971754265.woff2 → iconfont.1731032736115.woff2} +0 -0
  47. /package/lib/{iconfont.1730971754265.ttf → iconfont.1731032736115.ttf} +0 -0
  48. /package/lib/{iconfont.1730971754265.woff → iconfont.1731032736115.woff} +0 -0
  49. /package/lib/{iconfont.1730971754265.woff2 → iconfont.1731032736115.woff2} +0 -0
@@ -306,19 +306,25 @@ export default defineComponent({
306
306
  const validParams = { ...params, ...errorValidItem }
307
307
  tdVNs.push(
308
308
  h('div', {
309
- class: ['vxe-cell--valid-error-hint', getPropClass(validOpts.className, validParams)],
309
+ class: ['vxe-cell--valid-error-tip', getPropClass(validOpts.className, validParams)],
310
310
  style: errRule && errRule.maxWidth
311
311
  ? {
312
312
  width: `${errRule.maxWidth}px`
313
313
  }
314
314
  : null
315
- }, validSlot
316
- ? $xeTable.callSlot(validSlot, validParams)
317
- : [
318
- h('span', {
319
- class: 'vxe-cell--valid-error-msg'
320
- }, errorValidItem.content)
321
- ])
315
+ }, [
316
+ h('div', {
317
+ class: `vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-${validOpts.theme || 'normal'}`
318
+ }, [
319
+ validSlot
320
+ ? $xeTable.callSlot(validSlot, validParams)
321
+ : [
322
+ h('span', {
323
+ class: 'vxe-cell--valid-error-msg'
324
+ }, errorValidItem.content)
325
+ ]
326
+ ])
327
+ ])
322
328
  )
323
329
  }
324
330
  }
@@ -168,7 +168,7 @@ export default defineComponent({
168
168
 
169
169
  const renderVN = () => {
170
170
  const { fixedType, fixedColumn, tableColumn } = props
171
- const { resizable, border, columnKey, headerRowClassName, headerCellClassName, headerRowStyle, headerCellStyle, showHeaderOverflow: allColumnHeaderOverflow, headerAlign: allHeaderAlign, align: allAlign, mouseConfig } = tableProps
171
+ const { resizable: allResizable, border, columnKey, headerRowClassName, headerCellClassName, headerRowStyle, headerCellStyle, showHeaderOverflow: allColumnHeaderOverflow, headerAlign: allHeaderAlign, align: allAlign, mouseConfig } = tableProps
172
172
  const { isGroup, currentColumn, scrollXLoad, overflowX, scrollbarWidth } = tableReactData
173
173
  const { visibleColumn } = tableInternalData
174
174
  const columnOpts = computeColumnOpts.value
@@ -293,7 +293,7 @@ export default defineComponent({
293
293
  /**
294
294
  * 列宽拖动
295
295
  */
296
- !fixedHiddenColumn && !isColGroup && (XEUtils.isBoolean(column.resizable) ? column.resizable : (columnOpts.resizable || resizable))
296
+ !fixedHiddenColumn && !isColGroup && (XEUtils.isBoolean(column.resizable) ? column.resizable : (columnOpts.resizable || allResizable))
297
297
  ? h('div', {
298
298
  class: ['vxe-resizable', {
299
299
  'is--line': !border || border === 'none'
@@ -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
 
@@ -2339,10 +2339,14 @@ export default defineComponent({
2339
2339
  rowExpandLazyLoadedMaps[rowid] = row
2340
2340
  loadMethod({ $table: $xeTable, row, rowIndex: tableMethods.getRowIndex(row), $rowIndex: tableMethods.getVMRowIndex(row) }).then(() => {
2341
2341
  const { rowExpandedMaps } = reactData
2342
- rowRest.expandLoaded = true
2342
+ if (rowRest) {
2343
+ rowRest.expandLoaded = true
2344
+ }
2343
2345
  rowExpandedMaps[rowid] = row
2344
2346
  }).catch(() => {
2345
- rowRest.expandLoaded = false
2347
+ if (rowRest) {
2348
+ rowRest.expandLoaded = false
2349
+ }
2346
2350
  }).finally(() => {
2347
2351
  const { rowExpandLazyLoadedMaps } = reactData
2348
2352
  if (rowExpandLazyLoadedMaps[rowid]) {
@@ -2816,13 +2820,15 @@ export default defineComponent({
2816
2820
  const rowid = getRowid($xeTable, row)
2817
2821
  if (!treeTempExpandedMaps[rowid]) {
2818
2822
  const rowRest = fullAllDataRowIdData[rowid]
2819
- const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid]
2820
- // 是否使用懒加载
2821
- if (isLoad) {
2822
- result.push(handleAsyncTreeExpandChilds(row))
2823
- } else {
2824
- if (row[childrenField] && row[childrenField].length) {
2825
- 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
+ }
2826
2832
  }
2827
2833
  }
2828
2834
  }
@@ -5560,7 +5566,18 @@ export default defineComponent({
5560
5566
  }
5561
5567
 
5562
5568
  const updateRowDropTipContent = (tdEl: HTMLElement) => {
5563
- 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
5564
5581
  }
5565
5582
 
5566
5583
  /**
@@ -5595,6 +5612,18 @@ export default defineComponent({
5595
5612
  return nextTick()
5596
5613
  }
5597
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
+
5598
5627
  /**
5599
5628
  * 内部方法
5600
5629
  */
@@ -5603,17 +5632,7 @@ export default defineComponent({
5603
5632
  return getConfig()
5604
5633
  },
5605
5634
  updateAfterDataIndex,
5606
- callSlot (slotFunc, params) {
5607
- if (slotFunc) {
5608
- if ($xeGrid) {
5609
- return $xeGrid.callSlot(slotFunc, params)
5610
- }
5611
- if (XEUtils.isFunction(slotFunc)) {
5612
- return getSlotVNs(slotFunc(params))
5613
- }
5614
- }
5615
- return []
5616
- },
5635
+ callSlot,
5617
5636
  /**
5618
5637
  * 获取父容器元素
5619
5638
  */
@@ -7059,7 +7078,7 @@ export default defineComponent({
7059
7078
  tableGroupColumn,
7060
7079
  fixedColumn
7061
7080
  })
7062
- : createCommentVNode(),
7081
+ : renderEmptyElement($xeTable),
7063
7082
  h(TableBodyComponent, {
7064
7083
  ref: isFixedLeft ? refTableLeftBody : refTableRightBody,
7065
7084
  fixedType,
@@ -7075,7 +7094,7 @@ export default defineComponent({
7075
7094
  fixedColumn,
7076
7095
  fixedType
7077
7096
  })
7078
- : createCommentVNode()
7097
+ : renderEmptyElement($xeTable)
7079
7098
  ])
7080
7099
  }
7081
7100
 
@@ -7103,7 +7122,7 @@ export default defineComponent({
7103
7122
 
7104
7123
  const renderVN = () => {
7105
7124
  const { loading, stripe, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules } = props
7106
- 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
7107
7126
  const { leftList, rightList } = columnStore
7108
7127
  const loadingSlot = slots.loading
7109
7128
  const tipConfig = computeTipConfig.value
@@ -7111,6 +7130,7 @@ export default defineComponent({
7111
7130
  const checkboxOpts = computeCheckboxOpts.value
7112
7131
  const treeOpts = computeTreeOpts.value
7113
7132
  const rowOpts = computeRowOpts.value
7133
+ const dragOpts = computeDragOpts.value
7114
7134
  const columnOpts = computeColumnOpts.value
7115
7135
  const vSize = computeSize.value
7116
7136
  const tableBorder = computeTableBorder.value
@@ -7120,6 +7140,8 @@ export default defineComponent({
7120
7140
  const isMenu = computeIsMenu.value
7121
7141
  const currLoading = reactData._isLoading || loading
7122
7142
  const virtualScrollBars = computeVirtualScrollBars.value
7143
+ const dragSlots = dragOpts.slots || {}
7144
+ const rowTipSlot = dragSlots.rowTip
7123
7145
  return h('div', {
7124
7146
  ref: refElem,
7125
7147
  class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
@@ -7177,7 +7199,7 @@ export default defineComponent({
7177
7199
  tableColumn,
7178
7200
  tableGroupColumn
7179
7201
  })
7180
- : createCommentVNode(),
7202
+ : renderEmptyElement($xeTable),
7181
7203
  /**
7182
7204
  * 表体
7183
7205
  */
@@ -7195,13 +7217,13 @@ export default defineComponent({
7195
7217
  footerTableData,
7196
7218
  tableColumn
7197
7219
  })
7198
- : createCommentVNode()
7220
+ : renderEmptyElement($xeTable)
7199
7221
  ]),
7200
7222
  h('div', {
7201
7223
  class: 'vxe-table--fixed-wrapper'
7202
7224
  }, [
7203
- leftList && leftList.length && overflowX ? renderFixed('left') : createCommentVNode(),
7204
- 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)
7205
7227
  ])
7206
7228
  ]),
7207
7229
  virtualScrollBars.x
@@ -7221,7 +7243,7 @@ export default defineComponent({
7221
7243
  })
7222
7244
  ])
7223
7245
  ])
7224
- : createCommentVNode(),
7246
+ : renderEmptyElement($xeTable),
7225
7247
  virtualScrollBars.y
7226
7248
  ? h('div', {
7227
7249
  key: 'vy',
@@ -7239,7 +7261,7 @@ export default defineComponent({
7239
7261
  })
7240
7262
  ])
7241
7263
  ])
7242
- : createCommentVNode(),
7264
+ : renderEmptyElement($xeTable),
7243
7265
  /**
7244
7266
  * 空数据
7245
7267
  */
@@ -7287,7 +7309,7 @@ export default defineComponent({
7287
7309
  default: () => loadingSlot({ $table: $xeTable, $grid: $xeGrid })
7288
7310
  }
7289
7311
  : {})
7290
- : createCommentVNode(),
7312
+ : renderEmptyElement($xeTable),
7291
7313
  /**
7292
7314
  * 自定义列
7293
7315
  */
@@ -7297,7 +7319,7 @@ export default defineComponent({
7297
7319
  ref: refTableCustom,
7298
7320
  customStore
7299
7321
  })
7300
- : createCommentVNode(),
7322
+ : renderEmptyElement($xeTable),
7301
7323
  /**
7302
7324
  * 筛选
7303
7325
  */
@@ -7307,7 +7329,7 @@ export default defineComponent({
7307
7329
  ref: refTableFilter,
7308
7330
  filterStore
7309
7331
  })
7310
- : createCommentVNode(),
7332
+ : renderEmptyElement($xeTable),
7311
7333
  /**
7312
7334
  * 导入
7313
7335
  */
@@ -7317,7 +7339,7 @@ export default defineComponent({
7317
7339
  defaultOptions: reactData.importParams,
7318
7340
  storeData: reactData.importStore
7319
7341
  })
7320
- : createCommentVNode(),
7342
+ : renderEmptyElement($xeTable),
7321
7343
  /**
7322
7344
  * 导出
7323
7345
  */
@@ -7327,7 +7349,7 @@ export default defineComponent({
7327
7349
  defaultOptions: reactData.exportParams,
7328
7350
  storeData: reactData.exportStore
7329
7351
  })
7330
- : createCommentVNode(),
7352
+ : renderEmptyElement($xeTable),
7331
7353
  /**
7332
7354
  * 快捷菜单
7333
7355
  */
@@ -7336,16 +7358,18 @@ export default defineComponent({
7336
7358
  key: 'tm',
7337
7359
  ref: refTableMenu
7338
7360
  })
7339
- : createCommentVNode(),
7361
+ : renderEmptyElement($xeTable),
7340
7362
  /**
7341
7363
  * 拖拽提示
7342
7364
  */
7343
- rowOpts.drag
7365
+ rowOpts.drag && (dragRow || dragTipText)
7344
7366
  ? h('div', {
7345
7367
  ref: refRowDragTipElem,
7346
- class: 'vxe-table--row-drag-hint'
7347
- }, getI18n('vxe.table.dragTip', [reactData.dragTipText]))
7348
- : 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),
7349
7373
  /**
7350
7374
  * 提示相关
7351
7375
  */
@@ -7379,9 +7403,9 @@ export default defineComponent({
7379
7403
  }, 'vxe-table--valid-error'],
7380
7404
  ...(validOpts.message === 'tooltip' || tableData.length === 1 ? validTipOpts : {}) as any
7381
7405
  })
7382
- : createCommentVNode()
7406
+ : renderEmptyElement($xeTable)
7383
7407
  ])
7384
- : createCommentVNode()
7408
+ : renderEmptyElement($xeTable)
7385
7409
  ])
7386
7410
  }
7387
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
@@ -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
  }
@@ -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;