vxe-table 4.13.5 → 4.13.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.
- package/es/grid/src/grid.js +1 -1
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/ar-EG.js +3 -2
- package/es/locale/lang/de-DE.js +3 -2
- package/es/locale/lang/en-US.js +2 -1
- package/es/locale/lang/es-ES.js +3 -2
- package/es/locale/lang/fr-FR.js +2 -1
- package/es/locale/lang/hu-HU.js +2 -1
- package/es/locale/lang/hy-AM.js +2 -1
- package/es/locale/lang/id-ID.js +2 -1
- package/es/locale/lang/it-IT.js +2 -1
- package/es/locale/lang/ja-JP.js +2 -1
- package/es/locale/lang/ko-KR.js +2 -1
- package/es/locale/lang/nb-NO.js +2 -1
- package/es/locale/lang/pt-BR.js +2 -1
- package/es/locale/lang/ru-RU.js +2 -1
- package/es/locale/lang/th-TH.js +2 -1
- package/es/locale/lang/ug-CN.js +2 -1
- package/es/locale/lang/uk-UA.js +2 -1
- package/es/locale/lang/vi-VN.js +2 -1
- package/es/locale/lang/zh-CHT.js +2 -1
- package/es/locale/lang/zh-CN.js +2 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/hook.js +11 -8
- package/es/table/module/custom/panel.js +7 -7
- package/es/table/module/export/hook.js +21 -20
- package/es/table/module/keyboard/hook.js +3 -2
- package/es/table/src/body.js +45 -10
- package/es/table/src/cell.js +159 -69
- package/es/table/src/column.js +2 -0
- package/es/table/src/columnInfo.js +1 -0
- package/es/table/src/emits.js +1 -0
- package/es/table/src/props.js +9 -7
- package/es/table/src/table.js +659 -171
- package/es/table/style.css +70 -40
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +13 -1
- package/es/ui/src/dom.js +3 -0
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +70 -40
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +419 -179
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +3 -2
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +3 -2
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +2 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +2 -1
- package/lib/locale/lang/es-ES.js +3 -2
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +3 -2
- package/lib/locale/lang/fr-FR.js +2 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +2 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +2 -1
- package/lib/locale/lang/hy-AM.js +2 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/id-ID.js +2 -1
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/it-IT.js +2 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +2 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +2 -1
- package/lib/locale/lang/ko-KR.js +2 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +2 -1
- package/lib/locale/lang/nb-NO.js +2 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +2 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +2 -1
- package/lib/locale/lang/ru-RU.js +2 -1
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +2 -1
- package/lib/locale/lang/th-TH.js +2 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +2 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +2 -1
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +2 -1
- package/lib/locale/lang/vi-VN.js +2 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +2 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CN.js +2 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +2 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/custom/hook.js +11 -1
- package/lib/table/module/custom/hook.min.js +1 -1
- package/lib/table/module/custom/panel.js +6 -2
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/export/hook.js +21 -11
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/module/keyboard/hook.js +2 -1
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/src/body.js +35 -9
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +177 -52
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +2 -0
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +1 -0
- package/lib/table/src/columnInfo.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 +9 -7
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +134 -91
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +70 -40
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +13 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +4 -0
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +70 -40
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +1 -1
- package/packages/locale/lang/ar-EG.ts +3 -2
- package/packages/locale/lang/de-DE.ts +3 -2
- package/packages/locale/lang/en-US.ts +2 -1
- package/packages/locale/lang/es-ES.ts +3 -2
- package/packages/locale/lang/fr-FR.ts +2 -1
- package/packages/locale/lang/hu-HU.ts +2 -1
- package/packages/locale/lang/hy-AM.ts +2 -1
- package/packages/locale/lang/id-ID.ts +2 -1
- package/packages/locale/lang/it-IT.ts +2 -1
- package/packages/locale/lang/ja-JP.ts +2 -1
- package/packages/locale/lang/ko-KR.ts +2 -1
- package/packages/locale/lang/nb-NO.ts +2 -1
- package/packages/locale/lang/pt-BR.ts +2 -1
- package/packages/locale/lang/ru-RU.ts +2 -1
- package/packages/locale/lang/th-TH.ts +2 -1
- package/packages/locale/lang/ug-CN.ts +2 -1
- package/packages/locale/lang/uk-UA.ts +2 -1
- package/packages/locale/lang/vi-VN.ts +2 -1
- package/packages/locale/lang/zh-CHT.ts +2 -1
- package/packages/locale/lang/zh-CN.ts +2 -1
- package/packages/table/module/custom/hook.ts +14 -8
- package/packages/table/module/custom/panel.ts +7 -7
- package/packages/table/module/export/hook.ts +28 -27
- package/packages/table/module/keyboard/hook.ts +3 -2
- package/packages/table/src/body.ts +46 -10
- package/packages/table/src/cell.ts +162 -73
- package/packages/table/src/column.ts +2 -0
- package/packages/table/src/columnInfo.ts +1 -0
- package/packages/table/src/emits.ts +1 -0
- package/packages/table/src/props.ts +9 -7
- package/packages/table/src/table.ts +664 -176
- package/packages/ui/index.ts +12 -0
- package/packages/ui/src/dom.ts +4 -0
- package/styles/components/table.scss +131 -92
- /package/es/{iconfont.1744880866629.ttf → iconfont.1745290253213.ttf} +0 -0
- /package/es/{iconfont.1744880866629.woff → iconfont.1745290253213.woff} +0 -0
- /package/es/{iconfont.1744880866629.woff2 → iconfont.1745290253213.woff2} +0 -0
- /package/lib/{iconfont.1744880866629.ttf → iconfont.1745290253213.ttf} +0 -0
- /package/lib/{iconfont.1744880866629.woff → iconfont.1745290253213.woff} +0 -0
- /package/lib/{iconfont.1744880866629.woff2 → iconfont.1745290253213.woff2} +0 -0
|
@@ -80,8 +80,9 @@ export default {
|
|
|
80
80
|
customRestore: 'Restore',
|
|
81
81
|
maxFixedCol: 'The maximum number of Freeze columns cannot exceed {0}',
|
|
82
82
|
dragTip: 'Moving: {0}',
|
|
83
|
-
resizeColTip: '
|
|
84
|
-
resizeRowTip: '
|
|
83
|
+
resizeColTip: 'Width:{0} Pixels',
|
|
84
|
+
resizeRowTip: 'Height:{0} Pixels',
|
|
85
|
+
rowGroupContentTotal: '{0} ({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: '¡Seleccione al menos un registro!',
|
|
@@ -81,7 +81,8 @@ export default {
|
|
|
81
81
|
maxFixedCol: 'Le nombre maximum de colonnes gelées ne peut pas dépasser {0}',
|
|
82
82
|
dragTip: 'Déplacer : {0}',
|
|
83
83
|
resizeColTip: '宽:{0} 像素',
|
|
84
|
-
resizeRowTip: '高:{0} 像素'
|
|
84
|
+
resizeRowTip: '高:{0} 像素',
|
|
85
|
+
rowGroupContentTotal: '{0}({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: '请至少选择一条记录!',
|
|
@@ -81,7 +81,8 @@ export default {
|
|
|
81
81
|
maxFixedCol: 'A rögzített oszlopok maximális száma nem haladhatja meg a következőt: {0}',
|
|
82
82
|
dragTip: '移动:{0}',
|
|
83
83
|
resizeColTip: '宽:{0} 像素',
|
|
84
|
-
resizeRowTip: '高:{0} 像素'
|
|
84
|
+
resizeRowTip: '高:{0} 像素',
|
|
85
|
+
rowGroupContentTotal: '{0}({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: 'Kérjük, válasszon legalább egy rekordot!',
|
|
@@ -81,7 +81,8 @@ export default {
|
|
|
81
81
|
maxFixedCol: 'Il numero massimo di colonne bloccate non può superare {0}',
|
|
82
82
|
dragTip: 'Sposta: {0}',
|
|
83
83
|
resizeColTip: '宽:{0} 像素',
|
|
84
|
-
resizeRowTip: '高:{0} 像素'
|
|
84
|
+
resizeRowTip: '高:{0} 像素',
|
|
85
|
+
rowGroupContentTotal: '{0}({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: 'Seleziona almeno un record!',
|
|
@@ -81,7 +81,8 @@ export default {
|
|
|
81
81
|
maxFixedCol: '최대 고정 열 수는 {0}을(를) 초과할 수 없습니다.',
|
|
82
82
|
dragTip: '이동: {0}',
|
|
83
83
|
resizeColTip: '宽:{0} 像素',
|
|
84
|
-
resizeRowTip: '高:{0} 像素'
|
|
84
|
+
resizeRowTip: '高:{0} 像素',
|
|
85
|
+
rowGroupContentTotal: '{0}({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: '최소한 하나의 레코드를 선택해주세요!',
|
|
@@ -81,7 +81,8 @@ export default {
|
|
|
81
81
|
maxFixedCol: 'Maksimalt antall frosne kolonner kan ikke overstige {0}',
|
|
82
82
|
dragTip: 'Flytt: {0}',
|
|
83
83
|
resizeColTip: '宽:{0} 像素',
|
|
84
|
-
resizeRowTip: '高:{0} 像素'
|
|
84
|
+
resizeRowTip: '高:{0} 像素',
|
|
85
|
+
rowGroupContentTotal: '{0}({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: '请至少选择一条记录!',
|
|
@@ -81,7 +81,8 @@ export default {
|
|
|
81
81
|
maxFixedCol: 'The maximum number of Freeze columns cannot exceed {0}',
|
|
82
82
|
dragTip: '移动:{0}',
|
|
83
83
|
resizeColTip: '宽:{0} 像素',
|
|
84
|
-
resizeRowTip: '高:{0} 像素'
|
|
84
|
+
resizeRowTip: '高:{0} 像素',
|
|
85
|
+
rowGroupContentTotal: '{0}({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: 'Por favor, selecione pelo menos um registro!',
|
|
@@ -81,7 +81,8 @@ export default {
|
|
|
81
81
|
maxFixedCol: 'Максимальное количество замороженных столбцов не может превышать {0}.',
|
|
82
82
|
dragTip: 'Переместить: {0}',
|
|
83
83
|
resizeColTip: '宽:{0} 像素',
|
|
84
|
-
resizeRowTip: '高:{0} 像素'
|
|
84
|
+
resizeRowTip: '高:{0} 像素',
|
|
85
|
+
rowGroupContentTotal: '{0}({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: 'Пожалуйста, выберите хотя бы одну запись!',
|
|
@@ -81,7 +81,8 @@ export default {
|
|
|
81
81
|
maxFixedCol: 'จำนวนคอลัมน์ที่ตรึงไว้สูงสุดต้องไม่เกิน {0}',
|
|
82
82
|
dragTip: 'ย้าย: {0}',
|
|
83
83
|
resizeColTip: '宽:{0} 像素',
|
|
84
|
-
resizeRowTip: '高:{0} 像素'
|
|
84
|
+
resizeRowTip: '高:{0} 像素',
|
|
85
|
+
rowGroupContentTotal: '{0}({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: 'โปรดเลือกอย่างน้อยหนึ่งรายการ!',
|
|
@@ -81,7 +81,8 @@ export default {
|
|
|
81
81
|
maxFixedCol: 'توڭلىتىشقا بولىدىغان ئەڭ چوڭ قۇر سانى {0} دانە',
|
|
82
82
|
dragTip: 'يۆتكەش:{0}',
|
|
83
83
|
resizeColTip: '宽:{0} 像素',
|
|
84
|
-
resizeRowTip: '高:{0} 像素'
|
|
84
|
+
resizeRowTip: '高:{0} 像素',
|
|
85
|
+
rowGroupContentTotal: '{0}({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: 'كەم بولغاندا بىر تال ئۇچۇر تاللاڭ',
|
|
@@ -81,7 +81,8 @@ export default {
|
|
|
81
81
|
maxFixedCol: 'Максимальна кількість зафіксованих стовпців не повинна перевищувати {0}',
|
|
82
82
|
dragTip: 'Переміщення: {0}',
|
|
83
83
|
resizeColTip: '宽:{0} 像素',
|
|
84
|
-
resizeRowTip: '高:{0} 像素'
|
|
84
|
+
resizeRowTip: '高:{0} 像素',
|
|
85
|
+
rowGroupContentTotal: '{0}({1})'
|
|
85
86
|
},
|
|
86
87
|
grid: {
|
|
87
88
|
selectOneRecord: 'Будь ласка, виберіть хоча б один запис!',
|
|
@@ -142,10 +142,10 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
142
142
|
const isAll = !!checked
|
|
143
143
|
if (customOpts.immediate) {
|
|
144
144
|
XEUtils.eachTree(customColumnList, (column) => {
|
|
145
|
-
if (visibleMethod && !visibleMethod({ column })) {
|
|
145
|
+
if (visibleMethod && !visibleMethod({ $table: $xeTable, column })) {
|
|
146
146
|
return
|
|
147
147
|
}
|
|
148
|
-
if (checkMethod && !checkMethod({ column })) {
|
|
148
|
+
if (checkMethod && !checkMethod({ $table: $xeTable, column })) {
|
|
149
149
|
return
|
|
150
150
|
}
|
|
151
151
|
column.visible = isAll
|
|
@@ -158,10 +158,10 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
158
158
|
$xeTable.saveCustomStore('update:visible')
|
|
159
159
|
} else {
|
|
160
160
|
XEUtils.eachTree(customColumnList, (column) => {
|
|
161
|
-
if (visibleMethod && !visibleMethod({ column })) {
|
|
161
|
+
if (visibleMethod && !visibleMethod({ $table: $xeTable, column })) {
|
|
162
162
|
return
|
|
163
163
|
}
|
|
164
|
-
if (checkMethod && !checkMethod({ column })) {
|
|
164
|
+
if (checkMethod && !checkMethod({ $table: $xeTable, column })) {
|
|
165
165
|
return
|
|
166
166
|
}
|
|
167
167
|
column.renderVisible = isAll
|
|
@@ -198,7 +198,7 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
198
198
|
if (opts.sort) {
|
|
199
199
|
column.renderSortNumber = column.sortNumber
|
|
200
200
|
}
|
|
201
|
-
if (!checkMethod || checkMethod({ column })) {
|
|
201
|
+
if (!checkMethod || checkMethod({ $table: $xeTable, column })) {
|
|
202
202
|
column.visible = column.defaultVisible
|
|
203
203
|
}
|
|
204
204
|
column.renderResizeWidth = column.renderWidth
|
|
@@ -220,8 +220,8 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
220
220
|
const { collectColumn } = internalData
|
|
221
221
|
const customOpts = computeCustomOpts.value
|
|
222
222
|
const { checkMethod } = customOpts
|
|
223
|
-
customStore.isAll = collectColumn.every((column) => (checkMethod ? !checkMethod({ column }) : false) || column.renderVisible)
|
|
224
|
-
customStore.isIndeterminate = !customStore.isAll && collectColumn.some((column) => (!checkMethod || checkMethod({ column })) && (column.renderVisible || column.halfVisible))
|
|
223
|
+
customStore.isAll = collectColumn.every((column) => (checkMethod ? !checkMethod({ $table: $xeTable, column }) : false) || column.renderVisible)
|
|
224
|
+
customStore.isIndeterminate = !customStore.isAll && collectColumn.some((column) => (!checkMethod || checkMethod({ $table: $xeTable, column })) && (column.renderVisible || column.halfVisible))
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
const emitCustomEvent = (type: VxeTableDefines.CustomType, evnt: Event) => {
|
|
@@ -233,7 +233,9 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
233
233
|
checkCustomStatus,
|
|
234
234
|
emitCustomEvent,
|
|
235
235
|
triggerCustomEvent (evnt) {
|
|
236
|
-
const
|
|
236
|
+
const reactData = $xeTable.reactData
|
|
237
|
+
|
|
238
|
+
const { customStore } = reactData
|
|
237
239
|
if (customStore.visible) {
|
|
238
240
|
closeCustom()
|
|
239
241
|
emitCustomEvent('close', evnt)
|
|
@@ -244,6 +246,8 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
244
246
|
}
|
|
245
247
|
},
|
|
246
248
|
customOpenEvent (evnt) {
|
|
249
|
+
const reactData = $xeTable.reactData
|
|
250
|
+
|
|
247
251
|
const { customStore } = reactData
|
|
248
252
|
if (!customStore.visible) {
|
|
249
253
|
customStore.activeBtn = true
|
|
@@ -253,6 +257,8 @@ VxeUI.hooks.add('tableCustomModule', {
|
|
|
253
257
|
}
|
|
254
258
|
},
|
|
255
259
|
customCloseEvent (evnt) {
|
|
260
|
+
const reactData = $xeTable.reactData
|
|
261
|
+
|
|
256
262
|
const { customStore } = reactData
|
|
257
263
|
if (customStore.visible) {
|
|
258
264
|
customStore.activeBtn = false
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, h, inject, ref, Ref, VNode, PropType, nextTick, TransitionGroup, createCommentVNode } from 'vue'
|
|
2
2
|
import { VxeUI } from '../../../ui'
|
|
3
3
|
import { formatText } from '../../../ui/src/utils'
|
|
4
|
-
import { getTpImg, addClass, removeClass } from '../../../ui/src/dom'
|
|
4
|
+
import { getTpImg, addClass, removeClass, hasControlKey } from '../../../ui/src/dom'
|
|
5
5
|
import { errLog } from '../../../ui/src/log'
|
|
6
6
|
import XEUtils from 'xe-utils'
|
|
7
7
|
|
|
@@ -444,7 +444,7 @@ export default defineComponent({
|
|
|
444
444
|
const columnDragOpts = computeColumnDragOpts.value
|
|
445
445
|
const { isCrossDrag, isToChildDrag } = columnDragOpts
|
|
446
446
|
const optEl = evnt.currentTarget as HTMLElement
|
|
447
|
-
const
|
|
447
|
+
const isControlKey = hasControlKey(evnt)
|
|
448
448
|
const colid = optEl.getAttribute('colid')
|
|
449
449
|
const column = $xeTable.getColumnById(colid)
|
|
450
450
|
const dragCol = dragColumnRef.value
|
|
@@ -462,7 +462,7 @@ export default defineComponent({
|
|
|
462
462
|
showDropTip(evnt, optEl, false, dragPos)
|
|
463
463
|
return
|
|
464
464
|
}
|
|
465
|
-
prevDragToChild = !!((isCrossDrag && isToChildDrag) &&
|
|
465
|
+
prevDragToChild = !!((isCrossDrag && isToChildDrag) && isControlKey && immediate)
|
|
466
466
|
prevDragCol = column
|
|
467
467
|
prevDragPos = dragPos
|
|
468
468
|
showDropTip(evnt, optEl, true, dragPos)
|
|
@@ -543,13 +543,13 @@ export default defineComponent({
|
|
|
543
543
|
isCustomStatus
|
|
544
544
|
}
|
|
545
545
|
XEUtils.eachTree(customColumnList, (column, index, items, path, parent) => {
|
|
546
|
-
const isVisible = visibleMethod ? visibleMethod({ column }) : true
|
|
546
|
+
const isVisible = visibleMethod ? visibleMethod({ $table: $xeTable, column }) : true
|
|
547
547
|
if (isVisible) {
|
|
548
548
|
const isChecked = column.renderVisible
|
|
549
549
|
const isIndeterminate = column.halfVisible
|
|
550
550
|
const isColGroup = column.children && column.children.length
|
|
551
551
|
const colTitle = formatText(column.getTitle(), 1)
|
|
552
|
-
const isDisabled = checkMethod ? !checkMethod({ column }) : false
|
|
552
|
+
const isDisabled = checkMethod ? !checkMethod({ $table: $xeTable, column }) : false
|
|
553
553
|
const isHidden = !isChecked
|
|
554
554
|
colVNs.push(
|
|
555
555
|
h('li', {
|
|
@@ -811,7 +811,7 @@ export default defineComponent({
|
|
|
811
811
|
isCustomStatus
|
|
812
812
|
}
|
|
813
813
|
XEUtils.eachTree(customColumnList, (column, index, items, path, parent) => {
|
|
814
|
-
const isVisible = visibleMethod ? visibleMethod({ column }) : true
|
|
814
|
+
const isVisible = visibleMethod ? visibleMethod({ $table: $xeTable, column }) : true
|
|
815
815
|
if (isVisible) {
|
|
816
816
|
// 默认继承调整宽度
|
|
817
817
|
let customMinWidth = 0
|
|
@@ -836,7 +836,7 @@ export default defineComponent({
|
|
|
836
836
|
const isIndeterminate = column.halfVisible
|
|
837
837
|
const colTitle = formatText(column.getTitle(), 1)
|
|
838
838
|
const isColGroup = column.children && column.children.length
|
|
839
|
-
const isDisabled = checkMethod ? !checkMethod({ column }) : false
|
|
839
|
+
const isDisabled = checkMethod ? !checkMethod({ $table: $xeTable, column }) : false
|
|
840
840
|
const isHidden = !isChecked
|
|
841
841
|
trVNs.push(
|
|
842
842
|
h('tr', {
|
|
@@ -7,7 +7,7 @@ import { hasClass } from '../../../ui/src/dom'
|
|
|
7
7
|
import { createHtmlPage, getExportBlobByContent } from './util'
|
|
8
8
|
import { warnLog, errLog } from '../../../ui/src/log'
|
|
9
9
|
|
|
10
|
-
import type { VxeGridConstructor, VxeGridPrivateMethods, VxeTablePropTypes, VxeColumnPropTypes, TableExportMethods, VxeGridPropTypes, VxeTableDefines } from '../../../../types'
|
|
10
|
+
import type { VxeGridConstructor, VxeGridPrivateMethods, VxeTablePropTypes, VxeColumnPropTypes, TableExportMethods, VxeGridPropTypes, VxeTableDefines, VxeTableConstructor, VxeTablePrivateMethods } from '../../../../types'
|
|
11
11
|
|
|
12
12
|
const { getI18n, hooks, renderer } = VxeUI
|
|
13
13
|
|
|
@@ -92,9 +92,9 @@ function getBooleanValue (cellValue: any) {
|
|
|
92
92
|
return cellValue === 'TRUE' || cellValue === 'true' || cellValue === true
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
function getFooterData (opts: VxeTablePropTypes.ExportHandleOptions, footerTableData: any[]) {
|
|
95
|
+
function getFooterData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, opts: VxeTablePropTypes.ExportHandleOptions, footerTableData: any[]) {
|
|
96
96
|
const { footerFilterMethod } = opts
|
|
97
|
-
return footerFilterMethod ? footerTableData.filter((items, index) => footerFilterMethod({ items, $rowIndex: index })) : footerTableData
|
|
97
|
+
return footerFilterMethod ? footerTableData.filter((items, index) => footerFilterMethod({ $table: $xeTable, items, $rowIndex: index })) : footerTableData
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
function getCsvCellTypeLabel (column: any, cellValue: any) {
|
|
@@ -309,11 +309,12 @@ hooks.add('tableExportModule', {
|
|
|
309
309
|
return row[childrenField] && row[childrenField].length
|
|
310
310
|
}
|
|
311
311
|
|
|
312
|
-
const getSeq = (cellValue: any, row: any, $rowIndex:
|
|
312
|
+
const getSeq = (cellValue: any, row: any, $rowIndex: number, column: VxeTableDefines.ColumnInfo, $columnIndex: number) => {
|
|
313
313
|
const seqOpts = computeSeqOpts.value
|
|
314
|
-
const seqMethod = seqOpts.seqMethod || column.seqMethod
|
|
314
|
+
const seqMethod = seqOpts.seqMethod || (column as any).seqMethod
|
|
315
315
|
if (seqMethod) {
|
|
316
316
|
return seqMethod({
|
|
317
|
+
$table: $xeTable,
|
|
317
318
|
row,
|
|
318
319
|
rowIndex: $xeTable.getRowIndex(row),
|
|
319
320
|
$rowIndex,
|
|
@@ -325,7 +326,7 @@ hooks.add('tableExportModule', {
|
|
|
325
326
|
return cellValue
|
|
326
327
|
}
|
|
327
328
|
|
|
328
|
-
function getHeaderTitle (opts:
|
|
329
|
+
function getHeaderTitle (opts: VxeTablePropTypes.ExportHandleOptions, column: VxeTableDefines.ColumnInfo) {
|
|
329
330
|
const columnOpts = computeColumnOpts.value
|
|
330
331
|
const headExportMethod = column.headerExportMethod || columnOpts.headerExportMethod
|
|
331
332
|
return headExportMethod ? headExportMethod({ column, options: opts, $table: $xeTable }) : ((opts.isTitle ? column.getTitle() : column.field) || '')
|
|
@@ -390,12 +391,12 @@ hooks.add('tableExportModule', {
|
|
|
390
391
|
case 'checkbox':
|
|
391
392
|
cellValue = toBooleanValue($xeTable.isCheckedByCheckboxRow(row))
|
|
392
393
|
item._checkboxLabel = checkboxOpts.labelField ? XEUtils.get(row, checkboxOpts.labelField) : ''
|
|
393
|
-
item._checkboxDisabled = checkboxOpts.checkMethod && !checkboxOpts.checkMethod({ row })
|
|
394
|
+
item._checkboxDisabled = checkboxOpts.checkMethod && !checkboxOpts.checkMethod({ $table: $xeTable, row })
|
|
394
395
|
break
|
|
395
396
|
case 'radio':
|
|
396
397
|
cellValue = toBooleanValue($xeTable.isCheckedByRadioRow(row))
|
|
397
398
|
item._radioLabel = radioOpts.labelField ? XEUtils.get(row, radioOpts.labelField) : ''
|
|
398
|
-
item._radioDisabled = radioOpts.checkMethod && !radioOpts.checkMethod({ row })
|
|
399
|
+
item._radioDisabled = radioOpts.checkMethod && !radioOpts.checkMethod({ $table: $xeTable, row })
|
|
399
400
|
break
|
|
400
401
|
default:
|
|
401
402
|
if (opts.original) {
|
|
@@ -448,12 +449,12 @@ hooks.add('tableExportModule', {
|
|
|
448
449
|
case 'checkbox':
|
|
449
450
|
cellValue = toBooleanValue($xeTable.isCheckedByCheckboxRow(row))
|
|
450
451
|
item._checkboxLabel = checkboxOpts.labelField ? XEUtils.get(row, checkboxOpts.labelField) : ''
|
|
451
|
-
item._checkboxDisabled = checkboxOpts.checkMethod && !checkboxOpts.checkMethod({ row })
|
|
452
|
+
item._checkboxDisabled = checkboxOpts.checkMethod && !checkboxOpts.checkMethod({ $table: $xeTable, row })
|
|
452
453
|
break
|
|
453
454
|
case 'radio':
|
|
454
455
|
cellValue = toBooleanValue($xeTable.isCheckedByRadioRow(row))
|
|
455
456
|
item._radioLabel = radioOpts.labelField ? XEUtils.get(row, radioOpts.labelField) : ''
|
|
456
|
-
item._radioDisabled = radioOpts.checkMethod && !radioOpts.checkMethod({ row })
|
|
457
|
+
item._radioDisabled = radioOpts.checkMethod && !radioOpts.checkMethod({ $table: $xeTable, row })
|
|
457
458
|
break
|
|
458
459
|
default:
|
|
459
460
|
if (opts.original) {
|
|
@@ -478,19 +479,19 @@ hooks.add('tableExportModule', {
|
|
|
478
479
|
})
|
|
479
480
|
}
|
|
480
481
|
|
|
481
|
-
const getExportData = (opts:
|
|
482
|
+
const getExportData = (opts: VxeTablePropTypes.ExportHandleOptions) => {
|
|
482
483
|
const { columns, dataFilterMethod } = opts
|
|
483
484
|
let datas = opts.data
|
|
484
485
|
if (dataFilterMethod) {
|
|
485
|
-
datas = datas.filter((row
|
|
486
|
+
datas = datas.filter((row, index) => dataFilterMethod({ $table: $xeTable, row, $rowIndex: index }))
|
|
486
487
|
}
|
|
487
488
|
return getBodyLabelData(opts, columns, datas)
|
|
488
489
|
}
|
|
489
490
|
|
|
490
|
-
const getFooterCellValue = (opts:
|
|
491
|
+
const getFooterCellValue = (opts: VxeTablePropTypes.ExportHandleOptions, row: any, column: VxeTableDefines.ColumnInfo) => {
|
|
491
492
|
const columnOpts = computeColumnOpts.value
|
|
492
493
|
const renderOpts = column.editRender || column.cellRender
|
|
493
|
-
let footLabelMethod = column.footerExportMethod
|
|
494
|
+
let footLabelMethod: VxeColumnPropTypes.FooterExportMethod | undefined = column.footerExportMethod
|
|
494
495
|
if (!footLabelMethod && renderOpts && renderOpts.name) {
|
|
495
496
|
const compConf = renderer.get(renderOpts.name)
|
|
496
497
|
if (compConf) {
|
|
@@ -511,7 +512,7 @@ hooks.add('tableExportModule', {
|
|
|
511
512
|
return XEUtils.get(row, column.field)
|
|
512
513
|
}
|
|
513
514
|
|
|
514
|
-
const toCsv = (opts: VxeTablePropTypes.ExportHandleOptions, columns: VxeTableDefines.ColumnInfo[], datas: any[]) => {
|
|
515
|
+
const toCsv = ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, opts: VxeTablePropTypes.ExportHandleOptions, columns: VxeTableDefines.ColumnInfo[], datas: any[]) => {
|
|
515
516
|
let content = csvBOM
|
|
516
517
|
if (opts.isHeader) {
|
|
517
518
|
content += columns.map((column) => toTxtCellLabel(getHeaderTitle(opts, column))).join(',') + enterSymbol
|
|
@@ -521,7 +522,7 @@ hooks.add('tableExportModule', {
|
|
|
521
522
|
})
|
|
522
523
|
if (opts.isFooter) {
|
|
523
524
|
const { footerTableData } = reactData
|
|
524
|
-
const footers = getFooterData(opts, footerTableData)
|
|
525
|
+
const footers = getFooterData($xeTable, opts, footerTableData)
|
|
525
526
|
footers.forEach((row) => {
|
|
526
527
|
content += columns.map((column: any) => toTxtCellLabel(getFooterCellValue(opts, row, column))).join(',') + enterSymbol
|
|
527
528
|
})
|
|
@@ -529,7 +530,7 @@ hooks.add('tableExportModule', {
|
|
|
529
530
|
return content
|
|
530
531
|
}
|
|
531
532
|
|
|
532
|
-
const toTxt = (opts: VxeTablePropTypes.ExportHandleOptions, columns: VxeTableDefines.ColumnInfo[], datas: any[]) => {
|
|
533
|
+
const toTxt = ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, opts: VxeTablePropTypes.ExportHandleOptions, columns: VxeTableDefines.ColumnInfo[], datas: any[]) => {
|
|
533
534
|
let content = ''
|
|
534
535
|
if (opts.isHeader) {
|
|
535
536
|
content += columns.map((column) => toTxtCellLabel(getHeaderTitle(opts, column))).join('\t') + enterSymbol
|
|
@@ -539,7 +540,7 @@ hooks.add('tableExportModule', {
|
|
|
539
540
|
})
|
|
540
541
|
if (opts.isFooter) {
|
|
541
542
|
const { footerTableData } = reactData
|
|
542
|
-
const footers = getFooterData(opts, footerTableData)
|
|
543
|
+
const footers = getFooterData($xeTable, opts, footerTableData)
|
|
543
544
|
footers.forEach((row) => {
|
|
544
545
|
content += columns.map((column: any) => toTxtCellLabel(getFooterCellValue(opts, row, column))).join('\t') + enterSymbol
|
|
545
546
|
})
|
|
@@ -703,7 +704,7 @@ hooks.add('tableExportModule', {
|
|
|
703
704
|
}
|
|
704
705
|
if (isFooter) {
|
|
705
706
|
const { footerTableData } = reactData
|
|
706
|
-
const footers = getFooterData(opts, footerTableData)
|
|
707
|
+
const footers = getFooterData($xeTable, opts, footerTableData)
|
|
707
708
|
if (footers.length) {
|
|
708
709
|
tables.push('<tfoot>')
|
|
709
710
|
footers.forEach((row: any) => {
|
|
@@ -756,7 +757,7 @@ hooks.add('tableExportModule', {
|
|
|
756
757
|
})
|
|
757
758
|
if (opts.isFooter) {
|
|
758
759
|
const { footerTableData } = reactData
|
|
759
|
-
const footers = getFooterData(opts, footerTableData)
|
|
760
|
+
const footers = getFooterData($xeTable, opts, footerTableData)
|
|
760
761
|
footers.forEach((row: any) => {
|
|
761
762
|
xml += `<Row>${columns.map((column: any) => `<Cell><Data ss:Type="String">${getFooterCellValue(opts, row, column)}</Data></Cell>`).join('')}</Row>`
|
|
762
763
|
})
|
|
@@ -764,13 +765,13 @@ hooks.add('tableExportModule', {
|
|
|
764
765
|
return `${xml}</Table></Worksheet></Workbook>`
|
|
765
766
|
}
|
|
766
767
|
|
|
767
|
-
const getContent = (opts: VxeTablePropTypes.ExportHandleOptions, columns: VxeTableDefines.ColumnInfo[], datas: any[]) => {
|
|
768
|
+
const getContent = ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, opts: VxeTablePropTypes.ExportHandleOptions, columns: VxeTableDefines.ColumnInfo[], datas: any[]) => {
|
|
768
769
|
if (columns.length) {
|
|
769
770
|
switch (opts.type) {
|
|
770
771
|
case 'csv':
|
|
771
|
-
return toCsv(opts, columns, datas)
|
|
772
|
+
return toCsv($xeTable, opts, columns, datas)
|
|
772
773
|
case 'txt':
|
|
773
|
-
return toTxt(opts, columns, datas)
|
|
774
|
+
return toTxt($xeTable, opts, columns, datas)
|
|
774
775
|
case 'html':
|
|
775
776
|
return toHtml(opts, columns, datas)
|
|
776
777
|
case 'xml':
|
|
@@ -807,7 +808,7 @@ hooks.add('tableExportModule', {
|
|
|
807
808
|
const datas = getExportData(opts)
|
|
808
809
|
resolve(
|
|
809
810
|
$xeTable.preventEvent(null, 'event.export', { options: opts, columns, colgroups, datas }, () => {
|
|
810
|
-
return downloadFile(opts, getContent(opts, columns, datas))
|
|
811
|
+
return downloadFile(opts, getContent($xeTable, opts, columns, datas))
|
|
811
812
|
})
|
|
812
813
|
)
|
|
813
814
|
}
|
|
@@ -1073,7 +1074,7 @@ hooks.add('tableExportModule', {
|
|
|
1073
1074
|
}
|
|
1074
1075
|
column.checked = isChecked
|
|
1075
1076
|
column.halfChecked = false
|
|
1076
|
-
column.disabled = (parent && parent.disabled) || (checkMethod ? !checkMethod({ column }) : false)
|
|
1077
|
+
column.disabled = (parent && parent.disabled) || (checkMethod ? !checkMethod({ $table: $xeTable, column }) : false)
|
|
1077
1078
|
})
|
|
1078
1079
|
// 更新条件
|
|
1079
1080
|
Object.assign(exportStore, {
|
|
@@ -1239,7 +1240,7 @@ hooks.add('tableExportModule', {
|
|
|
1239
1240
|
children: 'childNodes',
|
|
1240
1241
|
mapChildren: '_children'
|
|
1241
1242
|
}),
|
|
1242
|
-
(column, index) => isColumnInfo(column) && (!columnFilterMethod || columnFilterMethod({ column: column as any, $columnIndex: index })),
|
|
1243
|
+
(column, index) => isColumnInfo(column) && (!columnFilterMethod || columnFilterMethod({ $table: $xeTable, column: column as any, $columnIndex: index })),
|
|
1243
1244
|
{
|
|
1244
1245
|
children: '_children',
|
|
1245
1246
|
mapChildren: 'childNodes',
|
|
@@ -1247,7 +1248,7 @@ hooks.add('tableExportModule', {
|
|
|
1247
1248
|
}
|
|
1248
1249
|
)
|
|
1249
1250
|
} else {
|
|
1250
|
-
groups = XEUtils.searchTree(isGroup ? collectColumn : tableFullColumn, (column, index) => column.visible && (!columnFilterMethod || columnFilterMethod({ column, $columnIndex: index })), { children: 'children', mapChildren: 'childNodes', original: true })
|
|
1251
|
+
groups = XEUtils.searchTree(isGroup ? collectColumn : tableFullColumn, (column, index) => column.visible && (!columnFilterMethod || columnFilterMethod({ $table: $xeTable, column, $columnIndex: index })), { children: 'children', mapChildren: 'childNodes', original: true })
|
|
1251
1252
|
}
|
|
1252
1253
|
// 获取所有列
|
|
1253
1254
|
const cols: VxeTableDefines.ColumnInfo[] = []
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import XEUtils from 'xe-utils'
|
|
2
2
|
import { VxeUI } from '../../../ui'
|
|
3
3
|
import { getRefElem } from '../../src/util'
|
|
4
|
-
import { hasClass, getAbsolutePos, addClass, removeClass } from '../../../ui/src/dom'
|
|
4
|
+
import { hasClass, getAbsolutePos, addClass, removeClass, hasControlKey } from '../../../ui/src/dom'
|
|
5
5
|
|
|
6
6
|
import type { TableKeyboardPrivateMethods, VxeTableDefines } from '../../../../types'
|
|
7
7
|
|
|
@@ -179,8 +179,9 @@ hooks.add('tableKeyboardModule', {
|
|
|
179
179
|
const rangeRows = getCheckboxRangeRows(evnt, params, trElem, trRect, offsetClientTop, offsetTop < marginSize ? -rangeHeight : rangeHeight)
|
|
180
180
|
// 至少滑动 10px 才能有效匹配
|
|
181
181
|
if (rangeHeight > 10 && rangeRows.length !== lastRangeRows.length) {
|
|
182
|
+
const isControlKey = hasControlKey(evnt)
|
|
182
183
|
lastRangeRows = rangeRows
|
|
183
|
-
if (
|
|
184
|
+
if (isControlKey) {
|
|
184
185
|
rangeRows.forEach((row: any) => {
|
|
185
186
|
$xeTable.handleBatchSelectRows([row], selectRecords.indexOf(row) === -1)
|
|
186
187
|
})
|