vxe-table 4.18.0-beta.2 → 4.18.0-beta.20
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.
- package/README.md +10 -10
- package/es/colgroup/style.css +0 -0
- package/es/colgroup/style.min.css +0 -0
- package/es/column/style.css +0 -0
- package/es/column/style.min.css +0 -0
- package/es/grid/src/grid.js +23 -19
- package/es/grid/style.css +86 -0
- package/es/grid/style.min.css +1 -0
- package/es/iconfont.1770109263422.ttf +0 -0
- package/es/iconfont.1770109263422.woff +0 -0
- package/es/iconfont.1770109263422.woff2 +0 -0
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/ar-EG.d.ts +2 -0
- package/es/locale/lang/ar-EG.js +6 -0
- package/es/locale/lang/de-DE.d.ts +2 -0
- package/es/locale/lang/de-DE.js +6 -0
- package/es/locale/lang/en-US.d.ts +2 -0
- package/es/locale/lang/en-US.js +6 -0
- package/es/locale/lang/es-ES.d.ts +2 -0
- package/es/locale/lang/es-ES.js +6 -0
- package/es/locale/lang/fr-FR.d.ts +2 -0
- package/es/locale/lang/fr-FR.js +6 -0
- package/es/locale/lang/hu-HU.d.ts +2 -0
- package/es/locale/lang/hu-HU.js +6 -0
- package/es/locale/lang/hy-AM.d.ts +2 -0
- package/es/locale/lang/hy-AM.js +6 -0
- package/es/locale/lang/id-ID.d.ts +2 -0
- package/es/locale/lang/id-ID.js +6 -0
- package/es/locale/lang/it-IT.d.ts +2 -0
- package/es/locale/lang/it-IT.js +6 -0
- package/es/locale/lang/ja-JP.d.ts +2 -0
- package/es/locale/lang/ja-JP.js +6 -0
- package/es/locale/lang/ko-KR.d.ts +2 -0
- package/es/locale/lang/ko-KR.js +6 -0
- package/es/locale/lang/ms-MY.d.ts +2 -0
- package/es/locale/lang/ms-MY.js +6 -0
- package/es/locale/lang/nb-NO.d.ts +2 -0
- package/es/locale/lang/nb-NO.js +6 -0
- package/es/locale/lang/pt-BR.d.ts +2 -0
- package/es/locale/lang/pt-BR.js +6 -0
- package/es/locale/lang/ru-RU.d.ts +2 -0
- package/es/locale/lang/ru-RU.js +6 -0
- package/es/locale/lang/th-TH.d.ts +2 -0
- package/es/locale/lang/th-TH.js +6 -0
- package/es/locale/lang/ug-CN.d.ts +2 -0
- package/es/locale/lang/ug-CN.js +6 -0
- package/es/locale/lang/uk-UA.d.ts +2 -0
- package/es/locale/lang/uk-UA.js +6 -0
- package/es/locale/lang/uz-UZ.d.ts +2 -0
- package/es/locale/lang/uz-UZ.js +6 -0
- package/es/locale/lang/vi-VN.d.ts +2 -0
- package/es/locale/lang/vi-VN.js +6 -0
- package/es/locale/lang/zh-CHT.d.ts +2 -0
- package/es/locale/lang/zh-CHT.js +6 -0
- package/es/locale/lang/zh-CN.d.ts +2 -0
- package/es/locale/lang/zh-CN.js +6 -0
- package/es/locale/lang/zh-HK.d.ts +2 -0
- package/es/locale/lang/zh-MO.d.ts +2 -0
- package/es/locale/lang/zh-TW.d.ts +2 -0
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/hook.js +25 -9
- package/es/table/module/custom/panel.js +14 -13
- package/es/table/module/edit/hook.js +3 -3
- package/es/table/module/export/hook.js +15 -1
- package/es/table/module/filter/panel.js +11 -3
- package/es/table/module/validator/hook.js +7 -6
- package/es/table/render/index.js +14 -0
- package/es/table/src/body.js +12 -5
- package/es/table/src/emits.js +1 -0
- package/es/table/src/props.js +2 -0
- package/es/table/src/table.js +235 -54
- package/es/table/src/util.js +23 -9
- package/es/table/style.css +3887 -0
- package/es/table/style.min.css +1 -0
- package/es/toolbar/src/toolbar.js +11 -7
- package/es/toolbar/style.css +110 -0
- package/es/toolbar/style.min.css +1 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/ui/style.css +0 -0
- package/es/ui/style.min.css +0 -0
- package/es/v-x-e-table/style.css +0 -0
- package/es/v-x-e-table/style.min.css +0 -0
- package/es/vxe-colgroup/style.css +0 -0
- package/es/vxe-colgroup/style.min.css +0 -0
- package/es/vxe-column/style.css +0 -0
- package/es/vxe-column/style.min.css +0 -0
- package/es/vxe-grid/style.css +86 -0
- package/es/vxe-grid/style.min.css +1 -0
- package/es/vxe-table/style.css +3887 -0
- package/es/vxe-table/style.min.css +1 -0
- package/es/vxe-toolbar/style.css +110 -0
- package/es/vxe-toolbar/style.min.css +1 -0
- package/es/vxe-ui/style.css +0 -0
- package/es/vxe-ui/style.min.css +0 -0
- package/es/vxe-v-x-e-table/style.css +0 -0
- package/es/vxe-v-x-e-table/style.min.css +0 -0
- package/lib/colgroup/style/index.js +1 -0
- package/lib/colgroup/style/style.css +0 -0
- package/lib/colgroup/style/style.min.css +0 -0
- package/lib/column/style/index.js +1 -0
- package/lib/column/style/style.css +0 -0
- package/lib/column/style/style.min.css +0 -0
- package/lib/grid/src/grid.js +22 -18
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/grid/style/index.js +1 -0
- package/lib/grid/style/style.css +86 -0
- package/lib/grid/style/style.min.css +1 -0
- package/lib/iconfont.1770109263422.ttf +0 -0
- package/lib/iconfont.1770109263422.woff +0 -0
- package/lib/iconfont.1770109263422.woff2 +0 -0
- package/lib/index.common.js +22 -0
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +224 -106
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.d.ts +2 -0
- package/lib/locale/lang/ar-EG.js +6 -0
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/ar-EG.umd.js +848 -0
- package/lib/locale/lang/de-DE.d.ts +2 -0
- package/lib/locale/lang/de-DE.js +6 -0
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/de-DE.umd.js +848 -0
- package/lib/locale/lang/en-US.d.ts +2 -0
- package/lib/locale/lang/en-US.js +6 -0
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +848 -0
- package/lib/locale/lang/es-ES.d.ts +2 -0
- package/lib/locale/lang/es-ES.js +6 -0
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +848 -0
- package/lib/locale/lang/fr-FR.d.ts +2 -0
- package/lib/locale/lang/fr-FR.js +6 -0
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/fr-FR.umd.js +848 -0
- package/lib/locale/lang/hu-HU.d.ts +2 -0
- package/lib/locale/lang/hu-HU.js +6 -0
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +848 -0
- package/lib/locale/lang/hy-AM.d.ts +2 -0
- package/lib/locale/lang/hy-AM.js +6 -0
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/hy-AM.umd.js +848 -0
- package/lib/locale/lang/id-ID.d.ts +2 -0
- package/lib/locale/lang/id-ID.js +6 -0
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/id-ID.umd.js +848 -0
- package/lib/locale/lang/it-IT.d.ts +2 -0
- package/lib/locale/lang/it-IT.js +6 -0
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/it-IT.umd.js +848 -0
- package/lib/locale/lang/ja-JP.d.ts +2 -0
- package/lib/locale/lang/ja-JP.js +6 -0
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +848 -0
- package/lib/locale/lang/ko-KR.d.ts +2 -0
- package/lib/locale/lang/ko-KR.js +6 -0
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +848 -0
- package/lib/locale/lang/ms-MY.d.ts +2 -0
- package/lib/locale/lang/ms-MY.js +6 -0
- package/lib/locale/lang/ms-MY.min.js +1 -1
- package/lib/locale/lang/ms-MY.umd.js +848 -0
- package/lib/locale/lang/nb-NO.d.ts +2 -0
- package/lib/locale/lang/nb-NO.js +6 -0
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/nb-NO.umd.js +848 -0
- package/lib/locale/lang/pt-BR.d.ts +2 -0
- package/lib/locale/lang/pt-BR.js +6 -0
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +848 -0
- package/lib/locale/lang/ru-RU.d.ts +2 -0
- package/lib/locale/lang/ru-RU.js +6 -0
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +848 -0
- package/lib/locale/lang/th-TH.d.ts +2 -0
- package/lib/locale/lang/th-TH.js +6 -0
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/th-TH.umd.js +848 -0
- package/lib/locale/lang/ug-CN.d.ts +2 -0
- package/lib/locale/lang/ug-CN.js +6 -0
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/ug-CN.umd.js +848 -0
- package/lib/locale/lang/uk-UA.d.ts +2 -0
- package/lib/locale/lang/uk-UA.js +6 -0
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +848 -0
- package/lib/locale/lang/uz-UZ.d.ts +2 -0
- package/lib/locale/lang/uz-UZ.js +6 -0
- package/lib/locale/lang/uz-UZ.min.js +1 -1
- package/lib/locale/lang/uz-UZ.umd.js +848 -0
- package/lib/locale/lang/vi-VN.d.ts +2 -0
- package/lib/locale/lang/vi-VN.js +6 -0
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/vi-VN.umd.js +848 -0
- package/lib/locale/lang/zh-CHT.d.ts +2 -0
- package/lib/locale/lang/zh-CHT.js +6 -0
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +848 -0
- package/lib/locale/lang/zh-CN.d.ts +2 -0
- package/lib/locale/lang/zh-CN.js +6 -0
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +848 -0
- package/lib/locale/lang/zh-HK.d.ts +2 -0
- package/lib/locale/lang/zh-HK.min.js +1 -1
- package/lib/locale/lang/zh-HK.umd.js +23 -0
- package/lib/locale/lang/zh-MO.d.ts +2 -0
- package/lib/locale/lang/zh-MO.min.js +1 -1
- package/lib/locale/lang/zh-MO.umd.js +23 -0
- package/lib/locale/lang/zh-TW.d.ts +2 -0
- package/lib/locale/lang/zh-TW.min.js +1 -1
- package/lib/locale/lang/zh-TW.umd.js +23 -0
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/custom/hook.js +29 -9
- package/lib/table/module/custom/hook.min.js +1 -1
- package/lib/table/module/custom/panel.js +12 -8
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/edit/hook.js +3 -3
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/export/hook.js +18 -6
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/module/filter/panel.js +14 -3
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/module/validator/hook.js +8 -6
- package/lib/table/module/validator/hook.min.js +1 -1
- package/lib/table/render/index.js +18 -0
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +13 -4
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/emits.js +1 -1
- package/lib/table/src/emits.min.js +1 -1
- package/lib/table/src/props.js +2 -0
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +37 -32
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +31 -11
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/index.js +1 -0
- package/lib/table/style/style.css +3887 -0
- package/lib/table/style/style.min.css +1 -0
- package/lib/toolbar/src/toolbar.js +10 -6
- package/lib/toolbar/src/toolbar.min.js +1 -1
- package/lib/toolbar/style/index.js +1 -0
- package/lib/toolbar/style/style.css +110 -0
- package/lib/toolbar/style/style.min.css +1 -0
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/ui/style/index.js +1 -0
- package/lib/ui/style/style.css +0 -0
- package/lib/ui/style/style.min.css +0 -0
- package/lib/v-x-e-table/style/index.js +1 -0
- package/lib/v-x-e-table/style/style.css +0 -0
- package/lib/v-x-e-table/style/style.min.css +0 -0
- package/lib/vxe-colgroup/style/index.js +1 -0
- package/lib/vxe-colgroup/style/style.css +0 -0
- package/lib/vxe-colgroup/style/style.min.css +0 -0
- package/lib/vxe-column/style/index.js +1 -0
- package/lib/vxe-column/style/style.css +0 -0
- package/lib/vxe-column/style/style.min.css +0 -0
- package/lib/vxe-grid/style/index.js +1 -0
- package/lib/vxe-grid/style/style.css +86 -0
- package/lib/vxe-grid/style/style.min.css +1 -0
- package/lib/vxe-table/style/index.js +1 -0
- package/lib/vxe-table/style/style.css +3887 -0
- package/lib/vxe-table/style/style.min.css +1 -0
- package/lib/vxe-toolbar/style/index.js +1 -0
- package/lib/vxe-toolbar/style/style.css +110 -0
- package/lib/vxe-toolbar/style/style.min.css +1 -0
- package/lib/vxe-ui/style/index.js +1 -0
- package/lib/vxe-ui/style/style.css +0 -0
- package/lib/vxe-ui/style/style.min.css +0 -0
- package/lib/vxe-v-x-e-table/style/index.js +1 -0
- package/lib/vxe-v-x-e-table/style/style.css +0 -0
- package/lib/vxe-v-x-e-table/style/style.min.css +0 -0
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +23 -18
- package/packages/locale/lang/ar-EG.ts +6 -0
- package/packages/locale/lang/de-DE.ts +6 -0
- package/packages/locale/lang/en-US.ts +6 -0
- package/packages/locale/lang/es-ES.ts +6 -0
- package/packages/locale/lang/fr-FR.ts +6 -0
- package/packages/locale/lang/hu-HU.ts +6 -0
- package/packages/locale/lang/hy-AM.ts +6 -0
- package/packages/locale/lang/id-ID.ts +6 -0
- package/packages/locale/lang/it-IT.ts +6 -0
- package/packages/locale/lang/ja-JP.ts +6 -0
- package/packages/locale/lang/ko-KR.ts +6 -0
- package/packages/locale/lang/ms-MY.ts +6 -0
- package/packages/locale/lang/nb-NO.ts +6 -0
- package/packages/locale/lang/pt-BR.ts +6 -0
- package/packages/locale/lang/ru-RU.ts +6 -0
- package/packages/locale/lang/th-TH.ts +6 -0
- package/packages/locale/lang/ug-CN.ts +6 -0
- package/packages/locale/lang/uk-UA.ts +6 -0
- package/packages/locale/lang/uz-UZ.ts +6 -0
- package/packages/locale/lang/vi-VN.ts +6 -0
- package/packages/locale/lang/zh-CHT.ts +6 -0
- package/packages/locale/lang/zh-CN.ts +6 -0
- package/packages/table/module/custom/hook.ts +24 -9
- package/packages/table/module/custom/panel.ts +15 -14
- package/packages/table/module/edit/hook.ts +3 -3
- package/packages/table/module/export/hook.ts +13 -1
- package/packages/table/module/filter/panel.ts +10 -3
- package/packages/table/module/validator/hook.ts +7 -6
- package/packages/table/render/index.ts +16 -0
- package/packages/table/src/body.ts +12 -5
- package/packages/table/src/emits.ts +1 -0
- package/packages/table/src/props.ts +5 -3
- package/packages/table/src/table.ts +235 -53
- package/packages/table/src/util.ts +25 -9
- package/packages/toolbar/src/toolbar.ts +12 -7
- package/styles/components/table-module/custom.scss +3 -0
- package/styles/components/table-module/filter.scss +1 -1
- package/styles/components/table.scss +8 -2
- package/styles/components/toolbar.scss +5 -1
- package/styles/theme/base.scss +4 -0
|
@@ -122,7 +122,7 @@ export default defineVxeComponent({
|
|
|
122
122
|
|
|
123
123
|
const { columnKey, resizable: allResizable, showOverflow: allShowOverflow, border, height, treeConfig, cellClassName: allCellClassName, cellStyle, align: allAlign, spanMethod, mouseConfig, editConfig, editRules, tooltipConfig, padding: allPadding } = tableProps
|
|
124
124
|
const { tableData, tableColumn, dragRow, overflowX, overflowY, currentColumn, scrollXLoad, scrollYLoad, mergeBodyFlag, calcCellHeightFlag, resizeHeightFlag, resizeWidthFlag, editStore, isAllOverflow, validErrorMaps } = tableReactData
|
|
125
|
-
const { fullAllDataRowIdData, fullColumnIdData, mergeBodyCellMaps, visibleColumn, afterFullData, mergeBodyList, scrollXStore, scrollYStore } = tableInternalData
|
|
125
|
+
const { fullAllDataRowIdData, fullColumnIdData, mergeBodyCellMaps, visibleColumn, afterFullData, mergeBodyList, scrollXStore, scrollYStore, keepUpdateFieldMaps } = tableInternalData
|
|
126
126
|
const cellOpts = computeCellOpts.value
|
|
127
127
|
const validOpts = computeValidOpts.value
|
|
128
128
|
const checkboxOpts = computeCheckboxOpts.value
|
|
@@ -142,7 +142,7 @@ export default defineVxeComponent({
|
|
|
142
142
|
const areaOpts = computeAreaOpts.value
|
|
143
143
|
const cellOffsetWidth = computeCellOffsetWidth.value
|
|
144
144
|
const { selectCellToRow } = areaOpts
|
|
145
|
-
const { type, cellRender, editRender, align, showOverflow, className, treeNode, rowResize, padding, verticalAlign, slots } = column
|
|
145
|
+
const { field, type, cellRender, editRender, align, showOverflow, className, treeNode, rowResize, padding, verticalAlign, slots } = column
|
|
146
146
|
const { verticalAlign: allVerticalAlign } = cellOpts
|
|
147
147
|
const { actived } = editStore
|
|
148
148
|
const rowRest = fullAllDataRowIdData[rowid] || {}
|
|
@@ -297,8 +297,8 @@ export default defineVxeComponent({
|
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
// 如果编辑列开启显示状态
|
|
300
|
-
if (!fixedHiddenColumn && editConfig && (
|
|
301
|
-
isDirty = $xeTable.isUpdateByRow(row,
|
|
300
|
+
if (!fixedHiddenColumn && editConfig && (editOpts.showStatus || editOpts.showUpdateStatus) && keepUpdateFieldMaps[field]) {
|
|
301
|
+
isDirty = $xeTable.isUpdateByRow(row, field)
|
|
302
302
|
}
|
|
303
303
|
|
|
304
304
|
const isVNAutoHeight = !hasEllipsis && (scrollYLoad || scrollXLoad)
|
|
@@ -600,6 +600,13 @@ export default defineVxeComponent({
|
|
|
600
600
|
const expandOpts = computeExpandOpts.value
|
|
601
601
|
const { height: expandHeight, padding, mode: expandMode } = expandOpts
|
|
602
602
|
if (expandMode === 'fixed') {
|
|
603
|
+
const currExpHeight = rowRest.expandHeight
|
|
604
|
+
let expHeight = 0
|
|
605
|
+
if (rowExpandHeightFlag) {
|
|
606
|
+
if (currExpHeight || expandHeight) {
|
|
607
|
+
expHeight = (currExpHeight || expandHeight || 0) + 1
|
|
608
|
+
}
|
|
609
|
+
}
|
|
603
610
|
rows.push(
|
|
604
611
|
h('tr', {
|
|
605
612
|
class: 'vxe-body--row-expanded-place',
|
|
@@ -610,7 +617,7 @@ export default defineVxeComponent({
|
|
|
610
617
|
class: 'vxe-body--row-expanded-place-column',
|
|
611
618
|
colspan: tableColumn.length,
|
|
612
619
|
style: {
|
|
613
|
-
height: `${
|
|
620
|
+
height: `${expHeight}px`
|
|
614
621
|
}
|
|
615
622
|
})
|
|
616
623
|
])
|
|
@@ -270,13 +270,15 @@ export const tableProps = {
|
|
|
270
270
|
// 区域配置项
|
|
271
271
|
areaConfig: Object as PropType<VxeTablePropTypes.AreaConfig>,
|
|
272
272
|
// 按键配置项
|
|
273
|
-
keyboardConfig: Object as PropType<VxeTablePropTypes.KeyboardConfig
|
|
273
|
+
keyboardConfig: Object as PropType<VxeTablePropTypes.KeyboardConfig>,
|
|
274
274
|
// 复制粘/贴配置项
|
|
275
|
-
clipConfig: Object as PropType<VxeTablePropTypes.ClipConfig
|
|
275
|
+
clipConfig: Object as PropType<VxeTablePropTypes.ClipConfig>,
|
|
276
276
|
// 查找/替换配置项
|
|
277
277
|
fnrConfig: Object as PropType<VxeTablePropTypes.FNRConfig>,
|
|
278
278
|
// 编辑配置项
|
|
279
|
-
editConfig: Object as PropType<VxeTablePropTypes.EditConfig
|
|
279
|
+
editConfig: Object as PropType<VxeTablePropTypes.EditConfig>,
|
|
280
|
+
// 数据状态监听配置项
|
|
281
|
+
editDirtyConfig: Object as PropType<VxeTablePropTypes.EditDirtyConfig>,
|
|
280
282
|
// 校验配置项
|
|
281
283
|
validConfig: Object as PropType<VxeTablePropTypes.ValidConfig>,
|
|
282
284
|
// 校验规则配置项
|
|
@@ -4,7 +4,7 @@ import XEUtils from 'xe-utils'
|
|
|
4
4
|
import { initTpImg, getTpImg, isPx, isScale, hasClass, addClass, removeClass, scrollTopTo, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, toCssUnit, hasControlKey, checkTargetElement } from '../../ui/src/dom'
|
|
5
5
|
import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils'
|
|
6
6
|
import { VxeUI } from '../../ui'
|
|
7
|
-
import { createReactData, createInternalData, getRowUniqueId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight, getLastChildColumn } from './util'
|
|
7
|
+
import { createReactData, createInternalData, getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight, getLastChildColumn } from './util'
|
|
8
8
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
9
9
|
import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from '../../ui/src/anime'
|
|
10
10
|
import { warnLog, errLog } from '../../ui/src/log'
|
|
@@ -370,6 +370,10 @@ export default defineVxeComponent({
|
|
|
370
370
|
return Object.assign({}, getConfig().table.editConfig, props.editConfig) as VxeTablePropTypes.EditOpts
|
|
371
371
|
})
|
|
372
372
|
|
|
373
|
+
const computeEditDirtyOpts = computed(() => {
|
|
374
|
+
return Object.assign({}, getConfig().table.editDirtyConfig, props.editDirtyConfig)
|
|
375
|
+
})
|
|
376
|
+
|
|
373
377
|
const computeSortOpts = computed(() => {
|
|
374
378
|
return Object.assign({ orders: ['asc', 'desc', null] }, getConfig().table.sortConfig, props.sortConfig) as VxeTablePropTypes.SortOpts
|
|
375
379
|
})
|
|
@@ -586,6 +590,27 @@ export default defineVxeComponent({
|
|
|
586
590
|
return Object.assign({}, getConfig().table.customConfig, props.customConfig)
|
|
587
591
|
})
|
|
588
592
|
|
|
593
|
+
const computeCustomSimpleMode = computed(() => {
|
|
594
|
+
const { minHeight, height } = props
|
|
595
|
+
const customOpts = computeCustomOpts.value
|
|
596
|
+
const { mode, popupOptions, placement } = customOpts
|
|
597
|
+
if (!placement || placement === 'top-left' || placement === 'top-right') {
|
|
598
|
+
if (!(mode === 'modal' || mode === 'drawer')) {
|
|
599
|
+
const { mode } = popupOptions || {}
|
|
600
|
+
if (!mode || mode === 'auto') {
|
|
601
|
+
if (height || minHeight) {
|
|
602
|
+
return 'inside'
|
|
603
|
+
}
|
|
604
|
+
return 'outside'
|
|
605
|
+
}
|
|
606
|
+
if (mode) {
|
|
607
|
+
return mode
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
return ''
|
|
612
|
+
})
|
|
613
|
+
|
|
589
614
|
const computeTableRowExpandedList = computed(() => {
|
|
590
615
|
const { tableData, rowExpandedFlag, expandColumn, rowGroupExpandedFlag, treeExpandedFlag } = reactData
|
|
591
616
|
const { visibleDataRowIdData, rowExpandedMaps } = internalData
|
|
@@ -631,6 +656,33 @@ export default defineVxeComponent({
|
|
|
631
656
|
return false
|
|
632
657
|
})
|
|
633
658
|
|
|
659
|
+
const computeKeepFields = computed(() => {
|
|
660
|
+
const { tableFullColumn } = internalData
|
|
661
|
+
const { updateColFlag } = reactData
|
|
662
|
+
const editDirtyOpts = computeEditDirtyOpts.value
|
|
663
|
+
const { includeFields, excludeFields } = editDirtyOpts
|
|
664
|
+
const kpFields: string[] = []
|
|
665
|
+
if (updateColFlag) {
|
|
666
|
+
if (includeFields && includeFields.length) {
|
|
667
|
+
return includeFields
|
|
668
|
+
}
|
|
669
|
+
const exfMaps: Record<string, number> = {}
|
|
670
|
+
if (excludeFields && excludeFields.length) {
|
|
671
|
+
excludeFields.forEach(field => {
|
|
672
|
+
exfMaps[field] = 1
|
|
673
|
+
})
|
|
674
|
+
}
|
|
675
|
+
for (let i = 0; i < tableFullColumn.length; i++) {
|
|
676
|
+
const column = tableFullColumn[i]
|
|
677
|
+
const { field, type, editRender, cellRender } = column
|
|
678
|
+
if (field && !type && (editRender || cellRender) && !exfMaps[field]) {
|
|
679
|
+
kpFields.push(field)
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
return kpFields
|
|
684
|
+
})
|
|
685
|
+
|
|
634
686
|
const computeTableBorder = computed(() => {
|
|
635
687
|
const { border } = props
|
|
636
688
|
if (border === true) {
|
|
@@ -762,6 +814,7 @@ export default defineVxeComponent({
|
|
|
762
814
|
computeHeaderTooltipOpts,
|
|
763
815
|
computeFooterTooltipOpts,
|
|
764
816
|
computeEditOpts,
|
|
817
|
+
computeEditDirtyOpts,
|
|
765
818
|
computeSortOpts,
|
|
766
819
|
computeFilterOpts,
|
|
767
820
|
computeFloatingFilterOpts,
|
|
@@ -786,11 +839,13 @@ export default defineVxeComponent({
|
|
|
786
839
|
computeLoadingOpts,
|
|
787
840
|
computeCellOffsetWidth,
|
|
788
841
|
computeCustomOpts,
|
|
842
|
+
computeCustomSimpleMode,
|
|
789
843
|
computeLeftFixedWidth,
|
|
790
844
|
computeRightFixedWidth,
|
|
791
845
|
computeBodyMergeCoverFixed,
|
|
792
846
|
computeFixedColumnSize,
|
|
793
847
|
computeIsMaxFixedColumn,
|
|
848
|
+
computeKeepFields,
|
|
794
849
|
computeIsAllCheckboxDisabled,
|
|
795
850
|
computeIsHeaderRenderOptimize,
|
|
796
851
|
computeIsBodyRenderOptimize,
|
|
@@ -1445,14 +1500,17 @@ export default defineVxeComponent({
|
|
|
1445
1500
|
|
|
1446
1501
|
const calcTableHeight = (key: 'height' | 'minHeight' | 'maxHeight') => {
|
|
1447
1502
|
const { editConfig, editRules } = props
|
|
1448
|
-
const { parentHeight } = reactData
|
|
1503
|
+
const { parentHeight, tableColumn } = reactData
|
|
1449
1504
|
let val = props[key]
|
|
1450
1505
|
if (key === 'minHeight') {
|
|
1451
1506
|
const defMinHeight = getConfig().table.minHeight
|
|
1452
1507
|
if (XEUtils.eqNull(val)) {
|
|
1453
1508
|
if (eqEmptyValue(defMinHeight)) {
|
|
1454
|
-
|
|
1455
|
-
|
|
1509
|
+
if (!tableColumn.length) {
|
|
1510
|
+
// 如果全部列被隐藏
|
|
1511
|
+
val = 40
|
|
1512
|
+
} else if (editRules && isEnableConf(editConfig)) {
|
|
1513
|
+
// 编辑模式默认最小高度
|
|
1456
1514
|
val = 144
|
|
1457
1515
|
}
|
|
1458
1516
|
} else {
|
|
@@ -1564,6 +1622,7 @@ export default defineVxeComponent({
|
|
|
1564
1622
|
const newCollectCols = XEUtils.toArrayTree(XEUtils.orderBy(allCols, 'renderSortNumber'), { key: 'id', parentKey: 'parentId', children: 'children' })
|
|
1565
1623
|
internalData.collectColumn = newCollectCols
|
|
1566
1624
|
internalData.tableFullColumn = getColumnList(newCollectCols)
|
|
1625
|
+
reactData.updateColFlag++
|
|
1567
1626
|
}
|
|
1568
1627
|
reactData.isCustomStatus = true
|
|
1569
1628
|
} else {
|
|
@@ -1714,14 +1773,19 @@ export default defineVxeComponent({
|
|
|
1714
1773
|
tableFullColumn.forEach(handleFunc)
|
|
1715
1774
|
}
|
|
1716
1775
|
|
|
1717
|
-
if (expandColumn
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1776
|
+
if (expandColumn) {
|
|
1777
|
+
if (expandOpts.mode !== 'fixed' && virtualYOpts.enabled) {
|
|
1778
|
+
warnLog('vxe.error.notConflictProp', ['column.type="expand', 'virtual-y-config.enabled=false'])
|
|
1779
|
+
}
|
|
1780
|
+
if ((expandOpts.mode !== 'fixed') && mouseOpts.area) {
|
|
1781
|
+
errLog('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand'])
|
|
1782
|
+
}
|
|
1783
|
+
if (expandOpts.mode !== 'inside' && (treeConfig && !treeOpts.transform)) {
|
|
1784
|
+
errLog('vxe.error.notConflictProp', ['tree-config.transform=false', 'expand-config.mode=fixed'])
|
|
1785
|
+
}
|
|
1786
|
+
if (props.spanMethod) {
|
|
1787
|
+
warnLog('vxe.error.notSupportProp', ['column.type=expand', 'span-method', 'span-method=null'])
|
|
1788
|
+
}
|
|
1725
1789
|
}
|
|
1726
1790
|
|
|
1727
1791
|
if (htmlColumn) {
|
|
@@ -3483,6 +3547,7 @@ export default defineVxeComponent({
|
|
|
3483
3547
|
if (rowGroups) {
|
|
3484
3548
|
const aggregateOpts = computeAggregateOpts.value
|
|
3485
3549
|
const { rowField, parentField, childrenField, mapChildrenField } = aggregateOpts
|
|
3550
|
+
const rowOpts = computeRowOpts.value
|
|
3486
3551
|
const checkboxOpts = computeCheckboxOpts.value
|
|
3487
3552
|
const { checkField } = checkboxOpts
|
|
3488
3553
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
|
|
@@ -3518,10 +3583,10 @@ export default defineVxeComponent({
|
|
|
3518
3583
|
childCount: 0,
|
|
3519
3584
|
[rowField]: getRowUniqueId(),
|
|
3520
3585
|
[parentField]: null,
|
|
3521
|
-
[rowkey]: getRowUniqueId(),
|
|
3522
3586
|
[childrenField]: childTreeData,
|
|
3523
3587
|
[mapChildrenField]: childTreeData
|
|
3524
3588
|
}
|
|
3589
|
+
aggRow[rowkey] = createRowId(rowOpts, aggRow, rowkey)
|
|
3525
3590
|
if (checkField) {
|
|
3526
3591
|
aggRow[checkField] = false
|
|
3527
3592
|
}
|
|
@@ -3698,7 +3763,7 @@ export default defineVxeComponent({
|
|
|
3698
3763
|
// }
|
|
3699
3764
|
|
|
3700
3765
|
if (!(props.height || props.maxHeight)) {
|
|
3701
|
-
errLog('vxe.error.
|
|
3766
|
+
errLog('vxe.error.reqSupportProp', ['virtual-y-config.enabled = true', 'height | max-height'])
|
|
3702
3767
|
}
|
|
3703
3768
|
// if (!props.showOverflow) {
|
|
3704
3769
|
// warnLog('vxe.error.reqProp', ['table.show-overflow'])
|
|
@@ -3825,8 +3890,9 @@ export default defineVxeComponent({
|
|
|
3825
3890
|
const handleUpdateColumn = () => {
|
|
3826
3891
|
const columnList = XEUtils.orderBy(internalData.collectColumn, 'renderSortNumber')
|
|
3827
3892
|
internalData.collectColumn = columnList
|
|
3828
|
-
const
|
|
3829
|
-
internalData.tableFullColumn =
|
|
3893
|
+
const tFullColumn = getColumnList(columnList)
|
|
3894
|
+
internalData.tableFullColumn = tFullColumn
|
|
3895
|
+
reactData.updateColFlag++
|
|
3830
3896
|
cacheColumnMap()
|
|
3831
3897
|
}
|
|
3832
3898
|
|
|
@@ -4005,8 +4071,9 @@ export default defineVxeComponent({
|
|
|
4005
4071
|
const handleInitColumn = (collectColumn: VxeTableDefines.ColumnInfo[]) => {
|
|
4006
4072
|
const expandOpts = computeExpandOpts.value
|
|
4007
4073
|
internalData.collectColumn = collectColumn
|
|
4008
|
-
const
|
|
4009
|
-
internalData.tableFullColumn =
|
|
4074
|
+
const tFullColumn = getColumnList(collectColumn)
|
|
4075
|
+
internalData.tableFullColumn = tFullColumn
|
|
4076
|
+
reactData.updateColFlag++
|
|
4010
4077
|
reactData.isColLoading = true
|
|
4011
4078
|
initColumnHierarchy()
|
|
4012
4079
|
return Promise.resolve(
|
|
@@ -4557,7 +4624,7 @@ export default defineVxeComponent({
|
|
|
4557
4624
|
const rowid = expandEl.getAttribute('rowid') || ''
|
|
4558
4625
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
4559
4626
|
if (rowRest) {
|
|
4560
|
-
const expandHeight = expandEl.offsetHeight
|
|
4627
|
+
const expandHeight = expandEl.offsetHeight
|
|
4561
4628
|
const trEl = bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`) as HTMLTableCellElement
|
|
4562
4629
|
let offsetTop = 0
|
|
4563
4630
|
if (scrollYLoad) {
|
|
@@ -5315,7 +5382,8 @@ export default defineVxeComponent({
|
|
|
5315
5382
|
*/
|
|
5316
5383
|
isUpdateByRow (rowidOrRow, field) {
|
|
5317
5384
|
const { keepSource } = props
|
|
5318
|
-
const {
|
|
5385
|
+
const { fullDataRowIdData, sourceDataRowIdData } = internalData
|
|
5386
|
+
const keepFields = computeKeepFields.value
|
|
5319
5387
|
if (keepSource) {
|
|
5320
5388
|
const rowid = XEUtils.isString(rowidOrRow) || XEUtils.isNumber(rowidOrRow) ? rowidOrRow : getRowid($xeTable, rowidOrRow)
|
|
5321
5389
|
const rowRest = fullDataRowIdData[rowid]
|
|
@@ -5329,9 +5397,8 @@ export default defineVxeComponent({
|
|
|
5329
5397
|
if (arguments.length > 1) {
|
|
5330
5398
|
return !eqCellValue(oRow, row, field as string)
|
|
5331
5399
|
}
|
|
5332
|
-
for (let
|
|
5333
|
-
|
|
5334
|
-
if (property && !eqCellValue(oRow, row, property)) {
|
|
5400
|
+
for (let i = 0; i < keepFields.length; i++) {
|
|
5401
|
+
if (!eqCellValue(oRow, row, keepFields[i])) {
|
|
5335
5402
|
return true
|
|
5336
5403
|
}
|
|
5337
5404
|
}
|
|
@@ -7028,8 +7095,8 @@ export default defineVxeComponent({
|
|
|
7028
7095
|
XEUtils.each(fullAllDataRowIdData, (rowRest) => {
|
|
7029
7096
|
rowRest.treeLoaded = false
|
|
7030
7097
|
})
|
|
7098
|
+
internalData.treeExpandedMaps = {}
|
|
7031
7099
|
}
|
|
7032
|
-
internalData.treeExpandedMaps = {}
|
|
7033
7100
|
if (transform) {
|
|
7034
7101
|
handleVirtualTreeToList()
|
|
7035
7102
|
$xeTable.handleTableData()
|
|
@@ -7236,18 +7303,13 @@ export default defineVxeComponent({
|
|
|
7236
7303
|
setScrollTop(rightScrollElem, scrollTop)
|
|
7237
7304
|
loadScrollYData()
|
|
7238
7305
|
}
|
|
7239
|
-
|
|
7240
|
-
|
|
7241
|
-
|
|
7242
|
-
|
|
7243
|
-
|
|
7244
|
-
|
|
7245
|
-
|
|
7246
|
-
}, 30)
|
|
7247
|
-
})
|
|
7248
|
-
}
|
|
7249
|
-
return nextTick().then(() => {
|
|
7250
|
-
internalData.intoRunScroll = false
|
|
7306
|
+
return new Promise<void>(resolve => {
|
|
7307
|
+
setTimeout(() => {
|
|
7308
|
+
nextTick(() => {
|
|
7309
|
+
internalData.intoRunScroll = false
|
|
7310
|
+
resolve()
|
|
7311
|
+
})
|
|
7312
|
+
}, (reactData.scrollXLoad || reactData.scrollYLoad) ? 30 : 0)
|
|
7251
7313
|
})
|
|
7252
7314
|
},
|
|
7253
7315
|
/**
|
|
@@ -7897,7 +7959,7 @@ export default defineVxeComponent({
|
|
|
7897
7959
|
$xeTable.preventEvent(evnt, 'event.keydown', null, () => {
|
|
7898
7960
|
const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow, highlightCurrentColumn } = props
|
|
7899
7961
|
const { ctxMenuStore, editStore, currentRow } = reactData
|
|
7900
|
-
const { afterFullData } = internalData
|
|
7962
|
+
const { afterFullData, visibleColumn } = internalData
|
|
7901
7963
|
const isContentMenu = computeIsContentMenu.value
|
|
7902
7964
|
const bodyMenu = computeBodyMenu.value
|
|
7903
7965
|
const keyboardOpts = computeKeyboardOpts.value
|
|
@@ -7907,6 +7969,7 @@ export default defineVxeComponent({
|
|
|
7907
7969
|
const menuList = computeMenuList.value
|
|
7908
7970
|
const rowOpts = computeRowOpts.value
|
|
7909
7971
|
const columnOpts = computeColumnOpts.value
|
|
7972
|
+
const { isLastEnterAppendRow, beforeEnterMethod, enterMethod, isLastTabAppendRow, beforeTabMethod, tabMethod } = keyboardOpts
|
|
7910
7973
|
const { selected, actived } = editStore
|
|
7911
7974
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
7912
7975
|
const keyCode = evnt.keyCode
|
|
@@ -7980,7 +8043,6 @@ export default defineVxeComponent({
|
|
|
7980
8043
|
internalData._keyCtx = false
|
|
7981
8044
|
}, 1000)
|
|
7982
8045
|
} else if (isEnter && !isAltKey && keyboardConfig && keyboardOpts.isEnter && (selected.row || actived.row || (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow))) {
|
|
7983
|
-
const { isLastEnterAppendRow, beforeEnterMethod, enterMethod } = keyboardOpts
|
|
7984
8046
|
// 退出选中
|
|
7985
8047
|
if (isControlKey) {
|
|
7986
8048
|
// 如果是激活编辑状态,则取消编辑
|
|
@@ -7997,6 +8059,8 @@ export default defineVxeComponent({
|
|
|
7997
8059
|
} else {
|
|
7998
8060
|
// 如果是激活状态,退则出到上一行/下一行
|
|
7999
8061
|
if (selected.row || actived.row) {
|
|
8062
|
+
const activeRow = selected.row || actived.row
|
|
8063
|
+
const activeColumn = selected.column || actived.column
|
|
8000
8064
|
const activeParams = selected.row ? selected.args : actived.args
|
|
8001
8065
|
if (hasShiftKey) {
|
|
8002
8066
|
if (keyboardOpts.enterToTab) {
|
|
@@ -8005,12 +8069,44 @@ export default defineVxeComponent({
|
|
|
8005
8069
|
$xeTable.moveEnterSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt)
|
|
8006
8070
|
}
|
|
8007
8071
|
} else {
|
|
8072
|
+
const _rowIndex = $xeTable.getVTRowIndex(activeRow)
|
|
8073
|
+
const _columnIndex = $xeTable.getVTColumnIndex(activeColumn)
|
|
8008
8074
|
if (keyboardOpts.enterToTab) {
|
|
8009
|
-
|
|
8075
|
+
const ttrParams = {
|
|
8076
|
+
row: activeRow,
|
|
8077
|
+
rowIndex: $xeTable.getRowIndex(activeRow),
|
|
8078
|
+
$rowIndex: $xeTable.getVMRowIndex(activeRow),
|
|
8079
|
+
_rowIndex,
|
|
8080
|
+
column: activeColumn,
|
|
8081
|
+
columnIndex: $xeTable.getColumnIndex(activeColumn),
|
|
8082
|
+
$columnIndex: $xeTable.getVMColumnIndex(activeColumn),
|
|
8083
|
+
_columnIndex,
|
|
8084
|
+
$table: $xeTable
|
|
8085
|
+
}
|
|
8086
|
+
if (!beforeTabMethod || beforeTabMethod(ttrParams) !== false) {
|
|
8087
|
+
evnt.preventDefault()
|
|
8088
|
+
// 最后一行按下Tab键,自动追加一行
|
|
8089
|
+
if (isLastTabAppendRow) {
|
|
8090
|
+
const newColumn = visibleColumn[0]
|
|
8091
|
+
if (_rowIndex >= afterFullData.length - 1 && _columnIndex >= visibleColumn.length - 1) {
|
|
8092
|
+
if (actived.row) {
|
|
8093
|
+
$xeTable.handleClearEdit(evnt)
|
|
8094
|
+
}
|
|
8095
|
+
$xeTable.insertAt({}, -1).then(({ row: newRow }) => {
|
|
8096
|
+
$xeTable.scrollToRow(newRow, newColumn)
|
|
8097
|
+
$xeTable.handleSelected({ ...activeParams, row: newRow, column: newColumn }, evnt)
|
|
8098
|
+
})
|
|
8099
|
+
$xeTable.dispatchEvent('tab-append-row', ttrParams, evnt)
|
|
8100
|
+
return
|
|
8101
|
+
}
|
|
8102
|
+
}
|
|
8103
|
+
if (tabMethod) {
|
|
8104
|
+
tabMethod(ttrParams)
|
|
8105
|
+
} else {
|
|
8106
|
+
$xeTable.moveTabSelected(activeParams, hasShiftKey, evnt)
|
|
8107
|
+
}
|
|
8108
|
+
}
|
|
8010
8109
|
} else {
|
|
8011
|
-
const activeRow = selected.row || actived.row
|
|
8012
|
-
const activeColumn = selected.column || actived.column
|
|
8013
|
-
const _rowIndex = $xeTable.getVTRowIndex(activeRow)
|
|
8014
8110
|
const etrParams = {
|
|
8015
8111
|
row: activeRow,
|
|
8016
8112
|
rowIndex: $xeTable.getRowIndex(activeRow),
|
|
@@ -8019,10 +8115,11 @@ export default defineVxeComponent({
|
|
|
8019
8115
|
column: activeColumn,
|
|
8020
8116
|
columnIndex: $xeTable.getColumnIndex(activeColumn),
|
|
8021
8117
|
$columnIndex: $xeTable.getVMColumnIndex(activeColumn),
|
|
8022
|
-
_columnIndex
|
|
8118
|
+
_columnIndex,
|
|
8023
8119
|
$table: $xeTable
|
|
8024
8120
|
}
|
|
8025
8121
|
if (!beforeEnterMethod || beforeEnterMethod(etrParams) !== false) {
|
|
8122
|
+
evnt.preventDefault()
|
|
8026
8123
|
// 最后一行按下回车键,自动追加一行
|
|
8027
8124
|
if (isLastEnterAppendRow) {
|
|
8028
8125
|
if (_rowIndex >= afterFullData.length - 1) {
|
|
@@ -8034,9 +8131,13 @@ export default defineVxeComponent({
|
|
|
8034
8131
|
return
|
|
8035
8132
|
}
|
|
8036
8133
|
}
|
|
8037
|
-
$xeTable.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt)
|
|
8038
8134
|
if (enterMethod) {
|
|
8039
8135
|
enterMethod(etrParams)
|
|
8136
|
+
} else {
|
|
8137
|
+
if (actived.row) {
|
|
8138
|
+
$xeTable.handleClearEdit(evnt)
|
|
8139
|
+
}
|
|
8140
|
+
$xeTable.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt)
|
|
8040
8141
|
}
|
|
8041
8142
|
}
|
|
8042
8143
|
}
|
|
@@ -8077,10 +8178,49 @@ export default defineVxeComponent({
|
|
|
8077
8178
|
}
|
|
8078
8179
|
} else if (isTab && keyboardConfig && keyboardOpts.isTab) {
|
|
8079
8180
|
// 如果按下了 Tab 键切换
|
|
8080
|
-
if (selected.row ||
|
|
8081
|
-
|
|
8082
|
-
|
|
8083
|
-
|
|
8181
|
+
if (selected.row || actived.row) {
|
|
8182
|
+
const activeRow = selected.row || actived.row
|
|
8183
|
+
const activeColumn = selected.column || actived.column
|
|
8184
|
+
const activeParams = selected.row ? selected.args : actived.args
|
|
8185
|
+
const _rowIndex = $xeTable.getVTRowIndex(activeRow)
|
|
8186
|
+
const _columnIndex = $xeTable.getVTColumnIndex(activeColumn)
|
|
8187
|
+
const ttrParams = {
|
|
8188
|
+
row: activeRow,
|
|
8189
|
+
rowIndex: $xeTable.getRowIndex(activeRow),
|
|
8190
|
+
$rowIndex: $xeTable.getVMRowIndex(activeRow),
|
|
8191
|
+
_rowIndex,
|
|
8192
|
+
column: activeColumn,
|
|
8193
|
+
columnIndex: $xeTable.getColumnIndex(activeColumn),
|
|
8194
|
+
$columnIndex: $xeTable.getVMColumnIndex(activeColumn),
|
|
8195
|
+
_columnIndex,
|
|
8196
|
+
$table: $xeTable
|
|
8197
|
+
}
|
|
8198
|
+
if (!beforeTabMethod || beforeTabMethod(ttrParams) !== false) {
|
|
8199
|
+
evnt.preventDefault()
|
|
8200
|
+
// 最后一行按下Tab键,自动追加一行
|
|
8201
|
+
if (isLastTabAppendRow) {
|
|
8202
|
+
const newColumn = visibleColumn[0]
|
|
8203
|
+
if (_rowIndex >= afterFullData.length - 1 && _columnIndex >= visibleColumn.length - 1) {
|
|
8204
|
+
if (actived.row) {
|
|
8205
|
+
$xeTable.handleClearEdit(evnt)
|
|
8206
|
+
}
|
|
8207
|
+
$xeTable.insertAt({}, -1).then(({ row: newRow }) => {
|
|
8208
|
+
$xeTable.scrollToRow(newRow, newColumn)
|
|
8209
|
+
$xeTable.handleSelected({ ...activeParams, row: newRow, column: newColumn }, evnt)
|
|
8210
|
+
})
|
|
8211
|
+
$xeTable.dispatchEvent('tab-append-row', ttrParams, evnt)
|
|
8212
|
+
return
|
|
8213
|
+
}
|
|
8214
|
+
}
|
|
8215
|
+
if (tabMethod) {
|
|
8216
|
+
tabMethod(ttrParams)
|
|
8217
|
+
} else {
|
|
8218
|
+
if (actived.row) {
|
|
8219
|
+
$xeTable.handleClearEdit(evnt)
|
|
8220
|
+
}
|
|
8221
|
+
$xeTable.moveTabSelected(activeParams, hasShiftKey, evnt)
|
|
8222
|
+
}
|
|
8223
|
+
}
|
|
8084
8224
|
}
|
|
8085
8225
|
} else if (keyboardConfig && keyboardOpts.isDel && hasDeleteKey && isEnableConf(editConfig) && (selected.row || selected.column)) {
|
|
8086
8226
|
// 如果是删除键
|
|
@@ -8619,6 +8759,7 @@ export default defineVxeComponent({
|
|
|
8619
8759
|
const expandOpts = computeExpandOpts.value
|
|
8620
8760
|
const treeOpts = computeTreeOpts.value
|
|
8621
8761
|
const radioOpts = computeRadioOpts.value
|
|
8762
|
+
const rowOpts = computeRowOpts.value
|
|
8622
8763
|
const checkboxOpts = computeCheckboxOpts.value
|
|
8623
8764
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
8624
8765
|
const rowkey = getRowkey($xeTable)
|
|
@@ -8652,7 +8793,7 @@ export default defineVxeComponent({
|
|
|
8652
8793
|
}
|
|
8653
8794
|
// 必须有行数据的唯一主键,可以自行设置;也可以默认生成一个随机数
|
|
8654
8795
|
if (eqEmptyValue(XEUtils.get(record, rowkey))) {
|
|
8655
|
-
XEUtils.set(record, rowkey,
|
|
8796
|
+
XEUtils.set(record, rowkey, createRowId(rowOpts, record, rowkey))
|
|
8656
8797
|
}
|
|
8657
8798
|
return record
|
|
8658
8799
|
})
|
|
@@ -10456,6 +10597,7 @@ export default defineVxeComponent({
|
|
|
10456
10597
|
// 移出源位置
|
|
10457
10598
|
if (oldRest && newRest) {
|
|
10458
10599
|
const fullList = XEUtils.toTreeArray(internalData.afterTreeFullData, {
|
|
10600
|
+
updated: false,
|
|
10459
10601
|
key: rowField,
|
|
10460
10602
|
parentKey: parentField,
|
|
10461
10603
|
children: mapChildrenField
|
|
@@ -12534,7 +12676,11 @@ export default defineVxeComponent({
|
|
|
12534
12676
|
}],
|
|
12535
12677
|
rowid,
|
|
12536
12678
|
style: cellStyle
|
|
12537
|
-
},
|
|
12679
|
+
}, [
|
|
12680
|
+
h('div', {
|
|
12681
|
+
class: 'vxe-body--row-expanded-content'
|
|
12682
|
+
}, expandColumn.renderData(expandParams))
|
|
12683
|
+
])
|
|
12538
12684
|
)
|
|
12539
12685
|
})
|
|
12540
12686
|
}
|
|
@@ -12723,6 +12869,8 @@ export default defineVxeComponent({
|
|
|
12723
12869
|
const columnDragOpts = computeColumnDragOpts.value
|
|
12724
12870
|
const scrollbarXToTop = computeScrollbarXToTop.value
|
|
12725
12871
|
const scrollbarYToLeft = computeScrollbarYToLeft.value
|
|
12872
|
+
const customSimpleMode = computeCustomSimpleMode.value
|
|
12873
|
+
const showCustomSimpleOutside = customSimpleMode === 'outside'
|
|
12726
12874
|
const { isCrossTableDrag } = rowDragOpts
|
|
12727
12875
|
const tbOns: {
|
|
12728
12876
|
onContextmenu: (...args: any[]) => void
|
|
@@ -12875,7 +13023,7 @@ export default defineVxeComponent({
|
|
|
12875
13023
|
/**
|
|
12876
13024
|
* 自定义列
|
|
12877
13025
|
*/
|
|
12878
|
-
initStore.custom
|
|
13026
|
+
!showCustomSimpleOutside && initStore.custom
|
|
12879
13027
|
? h(TableCustomPanelComponent, {
|
|
12880
13028
|
key: 'cs',
|
|
12881
13029
|
ref: refTableCustom,
|
|
@@ -12921,6 +13069,16 @@ export default defineVxeComponent({
|
|
|
12921
13069
|
h('div', {
|
|
12922
13070
|
ref: refPopupWrapperElem
|
|
12923
13071
|
}, [
|
|
13072
|
+
/**
|
|
13073
|
+
* 自定义列
|
|
13074
|
+
*/
|
|
13075
|
+
showCustomSimpleOutside && initStore.custom
|
|
13076
|
+
? h(TableCustomPanelComponent, {
|
|
13077
|
+
key: 'cs',
|
|
13078
|
+
ref: refTableCustom,
|
|
13079
|
+
customStore
|
|
13080
|
+
})
|
|
13081
|
+
: renderEmptyElement($xeTable),
|
|
12924
13082
|
/**
|
|
12925
13083
|
* 筛选
|
|
12926
13084
|
*/
|
|
@@ -13232,6 +13390,22 @@ export default defineVxeComponent({
|
|
|
13232
13390
|
}
|
|
13233
13391
|
})
|
|
13234
13392
|
|
|
13393
|
+
const kfFlag = ref(0)
|
|
13394
|
+
watch(() => reactData.updateColFlag, () => {
|
|
13395
|
+
kfFlag.value++
|
|
13396
|
+
})
|
|
13397
|
+
watch(computeKeepFields, () => {
|
|
13398
|
+
kfFlag.value++
|
|
13399
|
+
})
|
|
13400
|
+
watch(kfFlag, () => {
|
|
13401
|
+
const keepFields = computeKeepFields.value
|
|
13402
|
+
const kpfMaps: Record<string, number> = {}
|
|
13403
|
+
keepFields.forEach(field => {
|
|
13404
|
+
kpfMaps[field] = 1
|
|
13405
|
+
})
|
|
13406
|
+
internalData.keepUpdateFieldMaps = kpfMaps
|
|
13407
|
+
})
|
|
13408
|
+
|
|
13235
13409
|
if ($xeTabs) {
|
|
13236
13410
|
watch(() => $xeTabs ? $xeTabs.reactData.resizeFlag : null, () => {
|
|
13237
13411
|
handleGlobalResizeEvent()
|
|
@@ -13270,9 +13444,10 @@ export default defineVxeComponent({
|
|
|
13270
13444
|
})
|
|
13271
13445
|
|
|
13272
13446
|
onMounted(() => {
|
|
13273
|
-
const { exportConfig, importConfig, treeConfig } = props
|
|
13447
|
+
const { exportConfig, importConfig, treeConfig, minHeight } = props
|
|
13274
13448
|
const { scrollXStore, scrollYStore } = internalData
|
|
13275
13449
|
const columnOpts = computeColumnOpts.value
|
|
13450
|
+
const columnDragOpts = computeColumnDragOpts.value
|
|
13276
13451
|
const aggregateOpts = computeAggregateOpts.value
|
|
13277
13452
|
const virtualYOpts = computeVirtualYOpts.value
|
|
13278
13453
|
const editOpts = computeEditOpts.value
|
|
@@ -13289,6 +13464,7 @@ export default defineVxeComponent({
|
|
|
13289
13464
|
// const currentColumnOpts = computeCurrentColumnOpts.value
|
|
13290
13465
|
// const keyboardOpts = computeKeyboardOpts.value
|
|
13291
13466
|
const rowDragOpts = computeRowDragOpts.value
|
|
13467
|
+
const areaOpts = computeAreaOpts.value
|
|
13292
13468
|
const { groupFields } = aggregateOpts
|
|
13293
13469
|
|
|
13294
13470
|
if ($xeGantt) {
|
|
@@ -13401,6 +13577,9 @@ export default defineVxeComponent({
|
|
|
13401
13577
|
errLog('vxe.error.notProp', ['mouse-config.area'])
|
|
13402
13578
|
return
|
|
13403
13579
|
}
|
|
13580
|
+
if (mouseOpts.area && areaOpts.selectCellByHeader && columnOpts.drag && columnDragOpts.trigger === 'cell') {
|
|
13581
|
+
errLog('vxe.error.notSupportProp', ['area-config.selectCellByHeader & column-config.drag', 'column-drag-config.trigger=cell', 'column-drag-config.trigger=default | area-config.selectCellByHeader=false'])
|
|
13582
|
+
}
|
|
13404
13583
|
}
|
|
13405
13584
|
if (!$xeTable.handlePivotTableAggregateData) {
|
|
13406
13585
|
if (customOpts.allowGroup) {
|
|
@@ -13454,6 +13633,9 @@ export default defineVxeComponent({
|
|
|
13454
13633
|
if (checkboxOpts.halfField) {
|
|
13455
13634
|
warnLog('vxe.error.delProp', ['checkbox-config.halfField', 'checkbox-config.indeterminateField'])
|
|
13456
13635
|
}
|
|
13636
|
+
if (props.editConfig && isEnableConf(editOpts) && props.editRules && (minHeight === 0 || minHeight === '0')) {
|
|
13637
|
+
warnLog('vxe.error.reqSupportProp', ['edit-config & edit-rules', 'min-height'])
|
|
13638
|
+
}
|
|
13457
13639
|
|
|
13458
13640
|
if (treeConfig) {
|
|
13459
13641
|
XEUtils.arrayEach(['rowField', 'parentField', 'childrenField', 'hasChildField', 'mapChildrenField'], key => {
|
|
@@ -13587,11 +13769,11 @@ export default defineVxeComponent({
|
|
|
13587
13769
|
|
|
13588
13770
|
$xeTable.preventEvent(null, 'beforeUnmount', { $table: $xeTable })
|
|
13589
13771
|
XEUtils.assign(reactData, createReactData())
|
|
13772
|
+
XEUtils.assign(internalData, createInternalData())
|
|
13590
13773
|
})
|
|
13591
13774
|
|
|
13592
13775
|
onUnmounted(() => {
|
|
13593
13776
|
$xeTable.preventEvent(null, 'unmounted', { $table: $xeTable })
|
|
13594
|
-
XEUtils.assign(internalData, createInternalData())
|
|
13595
13777
|
})
|
|
13596
13778
|
|
|
13597
13779
|
nextTick(() => {
|