vxe-table 4.17.11 → 4.17.13
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/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/ar-EG.js +2 -1
- package/es/locale/lang/de-DE.js +2 -1
- package/es/locale/lang/en-US.js +2 -1
- package/es/locale/lang/es-ES.js +2 -1
- 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/ms-MY.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/uz-UZ.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/export/hook.js +3 -6
- package/es/table/module/menu/hook.js +1 -1
- package/es/table/module/menu/panel.js +30 -14
- package/es/table/src/cell.js +8 -39
- package/es/table/src/columnInfo.js +4 -1
- package/es/table/src/table.js +75 -1
- package/es/table/src/util.js +1 -0
- package/es/table/style.css +6 -3
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +2 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +6 -3
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +45 -54
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +2 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/ar-EG.umd.js +2 -1
- package/lib/locale/lang/de-DE.js +2 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/de-DE.umd.js +2 -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 +2 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +2 -1
- package/lib/locale/lang/fr-FR.js +2 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/fr-FR.umd.js +2 -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/hy-AM.umd.js +2 -1
- package/lib/locale/lang/id-ID.js +2 -1
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/id-ID.umd.js +2 -1
- package/lib/locale/lang/it-IT.js +2 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/it-IT.umd.js +2 -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/ms-MY.js +2 -1
- package/lib/locale/lang/ms-MY.min.js +1 -1
- package/lib/locale/lang/ms-MY.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/nb-NO.umd.js +2 -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/th-TH.umd.js +2 -1
- package/lib/locale/lang/ug-CN.js +2 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/ug-CN.umd.js +2 -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/uz-UZ.js +2 -1
- package/lib/locale/lang/uz-UZ.min.js +1 -1
- package/lib/locale/lang/uz-UZ.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/vi-VN.umd.js +2 -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-CHT.umd.js +2 -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/export/hook.js +3 -6
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/module/menu/hook.js +1 -1
- package/lib/table/module/menu/hook.min.js +1 -1
- package/lib/table/module/menu/panel.js +21 -7
- package/lib/table/module/menu/panel.min.js +1 -1
- package/lib/table/src/cell.js +6 -34
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/columnInfo.js +5 -1
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/table.js +3 -2
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +1 -0
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +6 -3
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +2 -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/vxe-table/style/style.css +6 -3
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/locale/lang/ar-EG.ts +2 -1
- package/packages/locale/lang/de-DE.ts +2 -1
- package/packages/locale/lang/en-US.ts +2 -1
- package/packages/locale/lang/es-ES.ts +2 -1
- 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/ms-MY.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/uz-UZ.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/export/hook.ts +3 -6
- package/packages/table/module/menu/hook.ts +3 -3
- package/packages/table/module/menu/panel.ts +30 -14
- package/packages/table/src/cell.ts +8 -38
- package/packages/table/src/columnInfo.ts +5 -1
- package/packages/table/src/table.ts +72 -1
- package/packages/table/src/util.ts +3 -0
- package/packages/ui/index.ts +1 -0
- package/styles/components/table-module/menu.scss +1 -0
- /package/es/{iconfont.1762498964248.ttf → iconfont.1762758719777.ttf} +0 -0
- /package/es/{iconfont.1762498964248.woff → iconfont.1762758719777.woff} +0 -0
- /package/es/{iconfont.1762498964248.woff2 → iconfont.1762758719777.woff2} +0 -0
- /package/lib/{iconfont.1762498964248.ttf → iconfont.1762758719777.ttf} +0 -0
- /package/lib/{iconfont.1762498964248.woff → iconfont.1762758719777.woff} +0 -0
- /package/lib/{iconfont.1762498964248.woff2 → iconfont.1762758719777.woff2} +0 -0
|
@@ -468,15 +468,12 @@ hooks.add('tableExportModule', {
|
|
|
468
468
|
if (!footLabelMethod) {
|
|
469
469
|
footLabelMethod = columnOpts.footerExportMethod;
|
|
470
470
|
}
|
|
471
|
-
const _columnIndex = $xeTable.getVTColumnIndex(column);
|
|
472
471
|
if (footLabelMethod) {
|
|
472
|
+
const _columnIndex = $xeTable.getVTColumnIndex(column);
|
|
473
473
|
return footLabelMethod({ $table: $xeTable, items: row, itemIndex: _columnIndex, row, _columnIndex, column, options: opts });
|
|
474
474
|
}
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
return XEUtils.toValueString(row[_columnIndex]);
|
|
478
|
-
}
|
|
479
|
-
return XEUtils.get(row, column.field);
|
|
475
|
+
const cellValue = $xeTable.getFooterCellLabel(row, column);
|
|
476
|
+
return cellValue;
|
|
480
477
|
};
|
|
481
478
|
const toCsv = ($xeTable, opts, columns, datas) => {
|
|
482
479
|
let content = csvBOM;
|
|
@@ -297,7 +297,7 @@ hooks.add('tableMenuModule', {
|
|
|
297
297
|
const $xeGrid = $xeTable.xeGrid;
|
|
298
298
|
const $xeGantt = $xeTable.xeGantt;
|
|
299
299
|
// 如果一级菜单有配置 code 则允许点击,否则不能点击
|
|
300
|
-
if (!menu.disabled && (menu.code || !menu.children || !menu.children.length)) {
|
|
300
|
+
if (!menu.loading && !menu.disabled && (menu.code || !menu.children || !menu.children.length)) {
|
|
301
301
|
const gMenuOpts = menus.get(menu.code);
|
|
302
302
|
const params = Object.assign({}, internalData._currMenuParams, { menu, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, $event: evnt });
|
|
303
303
|
const tmMethod = gMenuOpts ? (gMenuOpts.tableMenuMethod || gMenuOpts.menuMethod) : null;
|
|
@@ -4,7 +4,7 @@ import XEUtils from 'xe-utils';
|
|
|
4
4
|
import { VxeUI } from '../../../ui';
|
|
5
5
|
import { getFuncText } from '../../../ui/src/utils';
|
|
6
6
|
import { getSlotVNs } from '../../../ui/src/vn';
|
|
7
|
-
const { getIcon, renderEmptyElement } = VxeUI;
|
|
7
|
+
const { getIcon, getI18n, renderEmptyElement } = VxeUI;
|
|
8
8
|
export default defineVxeComponent({
|
|
9
9
|
name: 'VxeTableMenuPanel',
|
|
10
10
|
setup(props, context) {
|
|
@@ -45,7 +45,8 @@ export default defineVxeComponent({
|
|
|
45
45
|
class: 'vxe-context-menu--option-wrapper',
|
|
46
46
|
key: gIndex
|
|
47
47
|
}, options.map((item, index) => {
|
|
48
|
-
const
|
|
48
|
+
const { children, loading } = item;
|
|
49
|
+
const hasChildMenus = children && children.some((child) => child.visible !== false);
|
|
49
50
|
const prefixOpts = Object.assign({}, item.prefixConfig);
|
|
50
51
|
const prefixIcon = prefixOpts.icon || item.prefixIcon;
|
|
51
52
|
const suffixOpts = Object.assign({}, item.suffixConfig);
|
|
@@ -55,6 +56,7 @@ export default defineVxeComponent({
|
|
|
55
56
|
? renderEmptyElement($xeTable)
|
|
56
57
|
: h('li', {
|
|
57
58
|
class: [item.className, {
|
|
59
|
+
'link--loading': loading,
|
|
58
60
|
'link--disabled': item.disabled,
|
|
59
61
|
'link--active': item === ctxMenuStore.selected
|
|
60
62
|
}],
|
|
@@ -75,17 +77,23 @@ export default defineVxeComponent({
|
|
|
75
77
|
h('div', {
|
|
76
78
|
class: ['vxe-context-menu--link-prefix', prefixOpts.className || '']
|
|
77
79
|
}, [
|
|
78
|
-
|
|
79
|
-
? h('span', {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
loading
|
|
81
|
+
? h('span', {
|
|
82
|
+
class: getIcon('TABLE_MENU_OPTION_LOADING')
|
|
83
|
+
})
|
|
84
|
+
: (prefixIcon && XEUtils.isFunction(prefixIcon)
|
|
85
|
+
? h('span', {}, getSlotVNs(prefixIcon({})))
|
|
86
|
+
: h('span', {}, [
|
|
87
|
+
h('i', {
|
|
88
|
+
class: prefixIcon
|
|
89
|
+
})
|
|
90
|
+
])),
|
|
83
91
|
prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) : renderEmptyElement($xeTable)
|
|
84
92
|
]),
|
|
85
93
|
h('div', {
|
|
86
94
|
class: 'vxe-context-menu--link-content',
|
|
87
95
|
title: menuContent
|
|
88
|
-
}, menuContent),
|
|
96
|
+
}, loading ? getI18n('vxe.table.menuLoading') : menuContent),
|
|
89
97
|
h('div', {
|
|
90
98
|
class: ['vxe-context-menu--link-suffix', suffixOpts.className || '']
|
|
91
99
|
}, [
|
|
@@ -103,6 +111,7 @@ export default defineVxeComponent({
|
|
|
103
111
|
'is--show': item === ctxMenuStore.selected && ctxMenuStore.showChild
|
|
104
112
|
}]
|
|
105
113
|
}, item.children.map((child, cIndex) => {
|
|
114
|
+
const { loading: childLoading } = child;
|
|
106
115
|
const childPrefixOpts = Object.assign({}, child.prefixConfig);
|
|
107
116
|
const childPrefixIcon = childPrefixOpts.icon || child.prefixIcon;
|
|
108
117
|
const childSuffixOpts = Object.assign({}, child.suffixConfig);
|
|
@@ -112,6 +121,7 @@ export default defineVxeComponent({
|
|
|
112
121
|
? null
|
|
113
122
|
: h('li', {
|
|
114
123
|
class: [child.className, {
|
|
124
|
+
'link--loading': childLoading,
|
|
115
125
|
'link--disabled': child.disabled,
|
|
116
126
|
'link--active': child === ctxMenuStore.selectChild
|
|
117
127
|
}],
|
|
@@ -132,17 +142,23 @@ export default defineVxeComponent({
|
|
|
132
142
|
h('div', {
|
|
133
143
|
class: ['vxe-context-menu--link-prefix', childPrefixOpts.className || '']
|
|
134
144
|
}, [
|
|
135
|
-
|
|
136
|
-
? h('span', {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
145
|
+
child.loading
|
|
146
|
+
? h('span', {
|
|
147
|
+
class: getIcon('TABLE_MENU_OPTION_LOADING')
|
|
148
|
+
})
|
|
149
|
+
: (childPrefixIcon && XEUtils.isFunction(childPrefixIcon)
|
|
150
|
+
? h('span', {}, getSlotVNs(childPrefixIcon({})))
|
|
151
|
+
: h('span', {}, [
|
|
152
|
+
h('i', {
|
|
153
|
+
class: childPrefixIcon
|
|
154
|
+
})
|
|
155
|
+
])),
|
|
140
156
|
childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) : renderEmptyElement($xeTable)
|
|
141
157
|
]),
|
|
142
158
|
h('div', {
|
|
143
159
|
class: 'vxe-context-menu--link-content',
|
|
144
160
|
title: childMenuContent
|
|
145
|
-
}, childMenuContent),
|
|
161
|
+
}, childLoading ? getI18n('vxe.table.menuLoading') : childMenuContent),
|
|
146
162
|
h('div', {
|
|
147
163
|
class: ['vxe-context-menu--link-suffix', childSuffixOpts.className || '']
|
|
148
164
|
}, [
|
package/es/table/src/cell.js
CHANGED
|
@@ -5,7 +5,7 @@ import { getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/sr
|
|
|
5
5
|
import { updateCellTitle } from '../../ui/src/dom';
|
|
6
6
|
import { createColumn, getRowid } from './util';
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn';
|
|
8
|
-
const { getI18n, getIcon, renderer,
|
|
8
|
+
const { getI18n, getIcon, renderer, renderEmptyElement } = VxeUI;
|
|
9
9
|
function renderTitlePrefixIcon(params) {
|
|
10
10
|
const { $table, column } = params;
|
|
11
11
|
const titlePrefix = column.titlePrefix || column.titleHelp;
|
|
@@ -207,54 +207,23 @@ function renderTitleContent(params, content) {
|
|
|
207
207
|
];
|
|
208
208
|
}
|
|
209
209
|
function getFooterContent(params) {
|
|
210
|
-
const { $table, column,
|
|
211
|
-
const { slots, editRender, cellRender
|
|
210
|
+
const { $table, column, row } = params;
|
|
211
|
+
const { slots, editRender, cellRender } = column;
|
|
212
212
|
const renderOpts = editRender || cellRender;
|
|
213
213
|
const footerSlot = slots ? slots.footer : null;
|
|
214
214
|
if (footerSlot) {
|
|
215
215
|
return $table.callSlot(footerSlot, params);
|
|
216
216
|
}
|
|
217
|
-
|
|
218
|
-
// 兼容老模式
|
|
219
|
-
if (XEUtils.isArray(items)) {
|
|
220
|
-
itemValue = items[_columnIndex];
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
itemValue = XEUtils.get(row, column.field);
|
|
224
|
-
}
|
|
225
|
-
const footParams = Object.assign(params, {
|
|
226
|
-
cellValue: itemValue,
|
|
227
|
-
itemValue
|
|
228
|
-
});
|
|
229
|
-
if (footerFormatter) {
|
|
230
|
-
if (XEUtils.isFunction(footerFormatter)) {
|
|
231
|
-
return [
|
|
232
|
-
h('span', {
|
|
233
|
-
class: 'vxe-cell--label'
|
|
234
|
-
}, `${footerFormatter(footParams)}`)
|
|
235
|
-
];
|
|
236
|
-
}
|
|
237
|
-
const isArr = XEUtils.isArray(footerFormatter);
|
|
238
|
-
const gFormatOpts = isArr ? formats.get(footerFormatter[0]) : formats.get(footerFormatter);
|
|
239
|
-
const footerFormatMethod = gFormatOpts ? gFormatOpts.tableFooterCellFormatMethod : null;
|
|
240
|
-
if (footerFormatMethod) {
|
|
241
|
-
return [
|
|
242
|
-
h('span', {
|
|
243
|
-
class: 'vxe-cell--label'
|
|
244
|
-
}, `${isArr ? footerFormatMethod(footParams, ...footerFormatter.slice(1)) : footerFormatMethod(footParams)}`)
|
|
245
|
-
];
|
|
246
|
-
}
|
|
247
|
-
return [
|
|
248
|
-
h('span', {
|
|
249
|
-
class: 'vxe-cell--label'
|
|
250
|
-
}, '')
|
|
251
|
-
];
|
|
252
|
-
}
|
|
217
|
+
const itemValue = $table.getFooterCellLabel(row, column);
|
|
253
218
|
if (renderOpts) {
|
|
254
219
|
const compConf = renderer.get(renderOpts.name);
|
|
255
220
|
if (compConf) {
|
|
256
221
|
const rtFooter = compConf.renderTableFooter || compConf.renderFooter;
|
|
257
222
|
if (rtFooter) {
|
|
223
|
+
const footParams = Object.assign(params, {
|
|
224
|
+
cellValue: itemValue,
|
|
225
|
+
itemValue
|
|
226
|
+
});
|
|
258
227
|
return getSlotVNs(rtFooter(renderOpts, footParams));
|
|
259
228
|
}
|
|
260
229
|
}
|
|
@@ -11,13 +11,16 @@ export class ColumnInfo {
|
|
|
11
11
|
const $xeGrid = $xeTable.xeGrid;
|
|
12
12
|
const $xeGantt = $xeTable.xeGantt;
|
|
13
13
|
const $xeGGWrapper = $xeGrid || $xeGantt;
|
|
14
|
-
const { field, editRender, filterRender } = _vm;
|
|
14
|
+
const { field, editRender, filterRender, headerFormatter } = _vm;
|
|
15
15
|
const colId = _vm.colId || XEUtils.uniqueId('col_');
|
|
16
16
|
const formatter = _vm.formatter;
|
|
17
17
|
const visible = XEUtils.isBoolean(_vm.visible) ? _vm.visible : true;
|
|
18
18
|
const flCompConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
|
|
19
19
|
const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null;
|
|
20
20
|
const filters = toFilters(_vm.filters, colId);
|
|
21
|
+
if (headerFormatter) {
|
|
22
|
+
errLog('vxe.error.notProp', ['header-formatter']);
|
|
23
|
+
}
|
|
21
24
|
const types = ['seq', 'checkbox', 'radio', 'expand', 'html'];
|
|
22
25
|
if (_vm.type && types.indexOf(_vm.type) === -1) {
|
|
23
26
|
warnLog('vxe.error.errProp', [`type=${_vm.type}`, types.join(', ')]);
|
package/es/table/src/table.js
CHANGED
|
@@ -5093,7 +5093,13 @@ export default defineVxeComponent({
|
|
|
5093
5093
|
}
|
|
5094
5094
|
}
|
|
5095
5095
|
}
|
|
5096
|
-
const formatParams = {
|
|
5096
|
+
const formatParams = {
|
|
5097
|
+
cellValue,
|
|
5098
|
+
row,
|
|
5099
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
5100
|
+
column,
|
|
5101
|
+
columnIndex: $xeTable.getColumnIndex(column)
|
|
5102
|
+
};
|
|
5097
5103
|
if (XEUtils.isString(formatter)) {
|
|
5098
5104
|
const gFormatOpts = formats.get(formatter);
|
|
5099
5105
|
const tcFormatMethod = gFormatOpts ? (gFormatOpts.tableCellFormatMethod || gFormatOpts.cellFormatMethod) : null;
|
|
@@ -5113,6 +5119,73 @@ export default defineVxeComponent({
|
|
|
5113
5119
|
}
|
|
5114
5120
|
return cellLabel;
|
|
5115
5121
|
},
|
|
5122
|
+
getFooterCellLabel(row, fieldOrColumn) {
|
|
5123
|
+
const column = handleFieldOrColumn($xeTable, fieldOrColumn);
|
|
5124
|
+
if (!column) {
|
|
5125
|
+
return null;
|
|
5126
|
+
}
|
|
5127
|
+
const { footerFormatter } = column;
|
|
5128
|
+
const _columnIndex = $xeTable.getVTColumnIndex(column);
|
|
5129
|
+
let itemValue = '';
|
|
5130
|
+
// 兼容老模式
|
|
5131
|
+
if (XEUtils.isArray(row)) {
|
|
5132
|
+
itemValue = row[_columnIndex];
|
|
5133
|
+
}
|
|
5134
|
+
else {
|
|
5135
|
+
itemValue = XEUtils.get(row, column.field);
|
|
5136
|
+
}
|
|
5137
|
+
let cellLabel = itemValue;
|
|
5138
|
+
if (footerFormatter) {
|
|
5139
|
+
let formatData;
|
|
5140
|
+
const { footerTableData } = reactData;
|
|
5141
|
+
const { footerFullDataRowData } = internalData;
|
|
5142
|
+
const colid = column.id;
|
|
5143
|
+
const $rowIndex = footerTableData.indexOf(row);
|
|
5144
|
+
let rowRest = null;
|
|
5145
|
+
if ($rowIndex > -1) {
|
|
5146
|
+
rowRest = footerFullDataRowData[$rowIndex];
|
|
5147
|
+
if (!rowRest) {
|
|
5148
|
+
rowRest = footerFullDataRowData[$rowIndex] = {};
|
|
5149
|
+
}
|
|
5150
|
+
formatData = rowRest.formatData;
|
|
5151
|
+
if (!formatData) {
|
|
5152
|
+
formatData = footerFullDataRowData[$rowIndex].formatData = {};
|
|
5153
|
+
}
|
|
5154
|
+
if (rowRest && formatData[colid]) {
|
|
5155
|
+
if (formatData[colid].value === itemValue) {
|
|
5156
|
+
return formatData[colid].label;
|
|
5157
|
+
}
|
|
5158
|
+
}
|
|
5159
|
+
}
|
|
5160
|
+
const footerFormatParams = {
|
|
5161
|
+
cellValue: itemValue,
|
|
5162
|
+
itemValue,
|
|
5163
|
+
row,
|
|
5164
|
+
items: row,
|
|
5165
|
+
$rowIndex,
|
|
5166
|
+
column,
|
|
5167
|
+
_columnIndex,
|
|
5168
|
+
columnIndex: $xeTable.getColumnIndex(column)
|
|
5169
|
+
};
|
|
5170
|
+
if (XEUtils.isString(footerFormatter)) {
|
|
5171
|
+
const gFormatOpts = formats.get(footerFormatter);
|
|
5172
|
+
const fcFormatMethod = gFormatOpts ? gFormatOpts.tableFooterCellFormatMethod : null;
|
|
5173
|
+
cellLabel = fcFormatMethod ? fcFormatMethod(footerFormatParams) : '';
|
|
5174
|
+
}
|
|
5175
|
+
else if (XEUtils.isArray(footerFormatter)) {
|
|
5176
|
+
const gFormatOpts = formats.get(footerFormatter[0]);
|
|
5177
|
+
const fcFormatMethod = gFormatOpts ? gFormatOpts.tableFooterCellFormatMethod : null;
|
|
5178
|
+
cellLabel = fcFormatMethod ? fcFormatMethod(footerFormatParams, ...footerFormatter.slice(1)) : '';
|
|
5179
|
+
}
|
|
5180
|
+
else {
|
|
5181
|
+
cellLabel = footerFormatter(footerFormatParams);
|
|
5182
|
+
}
|
|
5183
|
+
if (formatData) {
|
|
5184
|
+
formatData[colid] = { value: itemValue, label: cellLabel };
|
|
5185
|
+
}
|
|
5186
|
+
}
|
|
5187
|
+
return cellLabel;
|
|
5188
|
+
},
|
|
5116
5189
|
/**
|
|
5117
5190
|
* 检查是否为临时行数据
|
|
5118
5191
|
*/
|
|
@@ -12890,6 +12963,7 @@ export default defineVxeComponent({
|
|
|
12890
12963
|
footFlag.value++;
|
|
12891
12964
|
});
|
|
12892
12965
|
watch(footFlag, () => {
|
|
12966
|
+
internalData.footerFullDataRowData = {};
|
|
12893
12967
|
$xeTable.updateFooter();
|
|
12894
12968
|
});
|
|
12895
12969
|
watch(() => props.syncResize, (value) => {
|
package/es/table/src/util.js
CHANGED
package/es/table/style.css
CHANGED
|
@@ -1716,17 +1716,20 @@
|
|
|
1716
1716
|
.vxe-table--context-menu-clild-wrapper li.link--active > .vxe-context-menu--link {
|
|
1717
1717
|
color: #2B2B2B;
|
|
1718
1718
|
}
|
|
1719
|
-
.vxe-context-menu--option-wrapper li.link--disabled > .vxe-context-menu--link,
|
|
1719
|
+
.vxe-context-menu--option-wrapper li.link--loading > .vxe-context-menu--link, .vxe-context-menu--option-wrapper li.link--disabled > .vxe-context-menu--link,
|
|
1720
|
+
.vxe-table--context-menu-clild-wrapper li.link--loading > .vxe-context-menu--link,
|
|
1720
1721
|
.vxe-table--context-menu-clild-wrapper li.link--disabled > .vxe-context-menu--link {
|
|
1721
1722
|
color: var(--vxe-ui-font-disabled-color);
|
|
1722
1723
|
cursor: no-drop;
|
|
1723
1724
|
}
|
|
1724
|
-
.vxe-context-menu--option-wrapper li.link--disabled.link--active,
|
|
1725
|
+
.vxe-context-menu--option-wrapper li.link--loading.link--active, .vxe-context-menu--option-wrapper li.link--disabled.link--active,
|
|
1726
|
+
.vxe-table--context-menu-clild-wrapper li.link--loading.link--active,
|
|
1725
1727
|
.vxe-table--context-menu-clild-wrapper li.link--disabled.link--active {
|
|
1726
1728
|
border-color: #C0C1C2;
|
|
1727
1729
|
background-color: #EEEEEE;
|
|
1728
1730
|
}
|
|
1729
|
-
.vxe-context-menu--option-wrapper li.link--disabled.link--active:hover,
|
|
1731
|
+
.vxe-context-menu--option-wrapper li.link--loading.link--active:hover, .vxe-context-menu--option-wrapper li.link--disabled.link--active:hover,
|
|
1732
|
+
.vxe-table--context-menu-clild-wrapper li.link--loading.link--active:hover,
|
|
1730
1733
|
.vxe-table--context-menu-clild-wrapper li.link--disabled.link--active:hover {
|
|
1731
1734
|
background-color: inherit;
|
|
1732
1735
|
}
|