vxe-table 4.8.16 → 4.9.1
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.en.md +1 -1
- package/README.md +1 -1
- package/README.zh-TW.md +1 -1
- package/es/locale/lang/en-US.js +1 -0
- package/es/locale/lang/es-ES.js +1 -0
- package/es/locale/lang/hu-HU.js +1 -0
- package/es/locale/lang/ja-JP.js +1 -0
- package/es/locale/lang/ko-KR.js +1 -0
- package/es/locale/lang/pt-BR.js +1 -0
- package/es/locale/lang/ru-RU.js +1 -0
- package/es/locale/lang/uk-UA.js +1 -0
- package/es/locale/lang/vi-VN.js +1 -0
- package/es/locale/lang/zh-CHT.js +1 -0
- package/es/locale/lang/zh-CN.js +1 -0
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/hook.js +4 -0
- package/es/table/module/edit/hook.js +53 -34
- package/es/table/module/filter/hook.js +2 -3
- package/es/table/module/keyboard/hook.js +2 -2
- package/es/table/src/body.js +31 -24
- package/es/table/src/cell.js +99 -59
- package/es/table/src/emits.js +3 -0
- package/es/table/src/footer.js +177 -147
- package/es/table/src/header.js +144 -107
- package/es/table/src/props.js +5 -1
- package/es/table/src/table.js +346 -108
- package/es/table/src/util.js +9 -0
- package/es/table/style.css +33 -20
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +9 -4
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +33 -20
- package/es/vxe-table/style.min.css +1 -1
- package/helper/vetur/attributes.json +1 -1
- package/helper/vetur/tags.json +1 -1
- package/lib/index.umd.js +1035 -573
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/en-US.js +1 -0
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +1 -0
- package/lib/locale/lang/es-ES.js +1 -0
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +1 -0
- package/lib/locale/lang/hu-HU.js +1 -0
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +1 -0
- package/lib/locale/lang/ja-JP.js +1 -0
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +1 -0
- package/lib/locale/lang/ko-KR.js +1 -0
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +1 -0
- package/lib/locale/lang/pt-BR.js +1 -0
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +1 -0
- package/lib/locale/lang/ru-RU.js +1 -0
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +1 -0
- package/lib/locale/lang/uk-UA.js +1 -0
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +1 -0
- package/lib/locale/lang/vi-VN.js +1 -0
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +1 -0
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CN.js +1 -0
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +1 -0
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/custom/hook.js +4 -0
- package/lib/table/module/custom/hook.min.js +1 -1
- package/lib/table/module/edit/hook.js +63 -42
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/filter/hook.js +1 -2
- package/lib/table/module/filter/hook.min.js +1 -1
- package/lib/table/module/keyboard/hook.js +2 -2
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/src/body.js +34 -21
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +110 -51
- package/lib/table/src/cell.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/footer.js +222 -183
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +188 -150
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/props.js +5 -1
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +380 -110
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +10 -0
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +33 -20
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +9 -4
- 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 +33 -20
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +3 -3
- package/packages/locale/lang/en-US.ts +1 -0
- package/packages/locale/lang/es-ES.ts +1 -0
- package/packages/locale/lang/hu-HU.ts +1 -0
- package/packages/locale/lang/ja-JP.ts +1 -0
- package/packages/locale/lang/ko-KR.ts +1 -0
- package/packages/locale/lang/pt-BR.ts +1 -0
- package/packages/locale/lang/ru-RU.ts +1 -0
- package/packages/locale/lang/uk-UA.ts +1 -0
- package/packages/locale/lang/vi-VN.ts +1 -0
- package/packages/locale/lang/zh-CHT.ts +1 -0
- package/packages/locale/lang/zh-CN.ts +1 -0
- package/packages/table/module/custom/hook.ts +4 -0
- package/packages/table/module/edit/hook.ts +54 -34
- package/packages/table/module/filter/hook.ts +2 -3
- package/packages/table/module/keyboard/hook.ts +2 -2
- package/packages/table/src/body.ts +46 -31
- package/packages/table/src/cell.ts +140 -92
- package/packages/table/src/emits.ts +3 -0
- package/packages/table/src/footer.ts +189 -152
- package/packages/table/src/header.ts +157 -116
- package/packages/table/src/props.ts +5 -1
- package/packages/table/src/table.ts +358 -109
- package/packages/table/src/util.ts +10 -0
- package/packages/ui/index.ts +8 -3
- package/styles/components/table.scss +42 -35
- /package/es/{iconfont.1731633504443.ttf → iconfont.1731937248477.ttf} +0 -0
- /package/es/{iconfont.1731633504443.woff → iconfont.1731937248477.woff} +0 -0
- /package/es/{iconfont.1731633504443.woff2 → iconfont.1731937248477.woff2} +0 -0
- /package/lib/{iconfont.1731633504443.ttf → iconfont.1731937248477.ttf} +0 -0
- /package/lib/{iconfont.1731633504443.woff → iconfont.1731937248477.woff} +0 -0
- /package/lib/{iconfont.1731633504443.woff2 → iconfont.1731937248477.woff2} +0 -0
package/lib/table/src/header.js
CHANGED
|
@@ -153,59 +153,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
153
153
|
$xeTable.closeMenu();
|
|
154
154
|
}
|
|
155
155
|
};
|
|
156
|
-
(
|
|
157
|
-
(0, _vue.onMounted)(() => {
|
|
158
|
-
(0, _vue.nextTick)(() => {
|
|
159
|
-
const {
|
|
160
|
-
fixedType
|
|
161
|
-
} = props;
|
|
162
|
-
const {
|
|
163
|
-
internalData
|
|
164
|
-
} = $xeTable;
|
|
165
|
-
const {
|
|
166
|
-
elemStore
|
|
167
|
-
} = internalData;
|
|
168
|
-
const prefix = `${fixedType || 'main'}-header-`;
|
|
169
|
-
elemStore[`${prefix}wrapper`] = refElem;
|
|
170
|
-
elemStore[`${prefix}table`] = refHeaderTable;
|
|
171
|
-
elemStore[`${prefix}colgroup`] = refHeaderColgroup;
|
|
172
|
-
elemStore[`${prefix}list`] = refHeaderTHead;
|
|
173
|
-
elemStore[`${prefix}xSpace`] = refHeaderXSpace;
|
|
174
|
-
elemStore[`${prefix}repair`] = refHeaderBorderRepair;
|
|
175
|
-
uploadColumn();
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
(0, _vue.onUnmounted)(() => {
|
|
156
|
+
const renderRows = (cols, $rowIndex) => {
|
|
179
157
|
const {
|
|
180
158
|
fixedType
|
|
181
159
|
} = props;
|
|
182
|
-
const {
|
|
183
|
-
internalData
|
|
184
|
-
} = $xeTable;
|
|
185
|
-
const {
|
|
186
|
-
elemStore
|
|
187
|
-
} = internalData;
|
|
188
|
-
const prefix = `${fixedType || 'main'}-header-`;
|
|
189
|
-
elemStore[`${prefix}wrapper`] = null;
|
|
190
|
-
elemStore[`${prefix}table`] = null;
|
|
191
|
-
elemStore[`${prefix}colgroup`] = null;
|
|
192
|
-
elemStore[`${prefix}list`] = null;
|
|
193
|
-
elemStore[`${prefix}xSpace`] = null;
|
|
194
|
-
elemStore[`${prefix}repair`] = null;
|
|
195
|
-
});
|
|
196
|
-
const renderVN = () => {
|
|
197
|
-
const {
|
|
198
|
-
fixedType,
|
|
199
|
-
fixedColumn,
|
|
200
|
-
tableColumn
|
|
201
|
-
} = props;
|
|
202
160
|
const {
|
|
203
161
|
resizable: allResizable,
|
|
204
162
|
border,
|
|
205
163
|
columnKey,
|
|
206
|
-
headerRowClassName,
|
|
207
164
|
headerCellClassName,
|
|
208
|
-
headerRowStyle,
|
|
209
165
|
headerCellStyle,
|
|
210
166
|
showHeaderOverflow: allColumnHeaderOverflow,
|
|
211
167
|
headerAlign: allHeaderAlign,
|
|
@@ -213,16 +169,160 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
213
169
|
mouseConfig
|
|
214
170
|
} = tableProps;
|
|
215
171
|
const {
|
|
216
|
-
isGroup,
|
|
217
172
|
currentColumn,
|
|
218
173
|
scrollXLoad,
|
|
219
174
|
overflowX,
|
|
220
175
|
scrollbarWidth
|
|
221
176
|
} = tableReactData;
|
|
177
|
+
const columnOpts = computeColumnOpts.value;
|
|
178
|
+
return cols.map((column, $columnIndex) => {
|
|
179
|
+
const {
|
|
180
|
+
type,
|
|
181
|
+
showHeaderOverflow,
|
|
182
|
+
headerAlign,
|
|
183
|
+
align,
|
|
184
|
+
headerClassName,
|
|
185
|
+
editRender,
|
|
186
|
+
cellRender
|
|
187
|
+
} = column;
|
|
188
|
+
const colid = column.id;
|
|
189
|
+
const renderOpts = editRender || cellRender;
|
|
190
|
+
const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
|
|
191
|
+
const isColGroup = column.children && column.children.length;
|
|
192
|
+
const fixedHiddenColumn = fixedType ? column.fixed !== fixedType && !isColGroup : !!column.fixed && overflowX;
|
|
193
|
+
const headOverflow = _xeUtils.default.eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
|
|
194
|
+
const headAlign = headerAlign || (compConf ? compConf.tableHeaderCellAlign : '') || allHeaderAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
|
|
195
|
+
let showEllipsis = headOverflow === 'ellipsis';
|
|
196
|
+
const showTitle = headOverflow === 'title';
|
|
197
|
+
const showTooltip = headOverflow === true || headOverflow === 'tooltip';
|
|
198
|
+
let hasEllipsis = showTitle || showTooltip || showEllipsis;
|
|
199
|
+
const hasFilter = column.filters && column.filters.some(item => item.checked);
|
|
200
|
+
const columnIndex = $xeTable.getColumnIndex(column);
|
|
201
|
+
const _columnIndex = $xeTable.getVTColumnIndex(column);
|
|
202
|
+
const params = {
|
|
203
|
+
$table: $xeTable,
|
|
204
|
+
$grid: $xeTable.xegrid,
|
|
205
|
+
$rowIndex,
|
|
206
|
+
column,
|
|
207
|
+
columnIndex,
|
|
208
|
+
$columnIndex,
|
|
209
|
+
_columnIndex,
|
|
210
|
+
fixed: fixedType,
|
|
211
|
+
type: renderType,
|
|
212
|
+
isHidden: fixedHiddenColumn,
|
|
213
|
+
hasFilter
|
|
214
|
+
};
|
|
215
|
+
const thOns = {
|
|
216
|
+
onClick: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, params),
|
|
217
|
+
onDblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, params)
|
|
218
|
+
};
|
|
219
|
+
// 横向虚拟滚动不支持动态行高
|
|
220
|
+
if (scrollXLoad && !hasEllipsis) {
|
|
221
|
+
showEllipsis = hasEllipsis = true;
|
|
222
|
+
}
|
|
223
|
+
// 按下事件处理
|
|
224
|
+
if (mouseConfig) {
|
|
225
|
+
thOns.onMousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt, params);
|
|
226
|
+
}
|
|
227
|
+
// 拖拽行事件
|
|
228
|
+
if (columnOpts.drag && !column.parentId) {
|
|
229
|
+
thOns.onDragstart = $xeTable.handleHeaderCellDragDragstartEvent;
|
|
230
|
+
thOns.onDragend = $xeTable.handleHeaderCellDragDragendEvent;
|
|
231
|
+
thOns.onDragover = $xeTable.handleHeaderCellDragDragoverEvent;
|
|
232
|
+
}
|
|
233
|
+
return (0, _vue.h)('th', Object.assign(Object.assign({
|
|
234
|
+
class: ['vxe-header--column', colid, {
|
|
235
|
+
[`col--${headAlign}`]: headAlign,
|
|
236
|
+
[`col--${type}`]: type,
|
|
237
|
+
'col--last': $columnIndex === cols.length - 1,
|
|
238
|
+
'col--fixed': column.fixed,
|
|
239
|
+
'col--group': isColGroup,
|
|
240
|
+
'col--ellipsis': hasEllipsis,
|
|
241
|
+
'fixed--hidden': fixedHiddenColumn,
|
|
242
|
+
'is--sortable': column.sortable,
|
|
243
|
+
'col--filter': !!column.filters,
|
|
244
|
+
'is--filter-active': hasFilter,
|
|
245
|
+
'col--current': currentColumn === column
|
|
246
|
+
}, headerClassName ? _xeUtils.default.isFunction(headerClassName) ? headerClassName(params) : headerClassName : '', headerCellClassName ? _xeUtils.default.isFunction(headerCellClassName) ? headerCellClassName(params) : headerCellClassName : ''],
|
|
247
|
+
colid,
|
|
248
|
+
colspan: column.colSpan > 1 ? column.colSpan : null,
|
|
249
|
+
rowspan: column.rowSpan > 1 ? column.rowSpan : null,
|
|
250
|
+
style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle : null
|
|
251
|
+
}, thOns), {
|
|
252
|
+
key: columnKey || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
|
|
253
|
+
}), [(0, _vue.h)('div', {
|
|
254
|
+
class: ['vxe-cell', {
|
|
255
|
+
'c--title': showTitle,
|
|
256
|
+
'c--tooltip': showTooltip,
|
|
257
|
+
'c--ellipsis': showEllipsis
|
|
258
|
+
}]
|
|
259
|
+
}, column.renderHeader(params)),
|
|
260
|
+
/**
|
|
261
|
+
* 列宽拖动
|
|
262
|
+
*/
|
|
263
|
+
!fixedHiddenColumn && !isColGroup && (_xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable) ? (0, _vue.h)('div', {
|
|
264
|
+
class: ['vxe-resizable', {
|
|
265
|
+
'is--line': !border || border === 'none'
|
|
266
|
+
}],
|
|
267
|
+
onMousedown: evnt => resizeMousedown(evnt, params)
|
|
268
|
+
}) : null]);
|
|
269
|
+
}).concat(scrollbarWidth ? [(0, _vue.h)('th', {
|
|
270
|
+
key: `gr${$rowIndex}`,
|
|
271
|
+
class: 'vxe-header--gutter col--gutter'
|
|
272
|
+
})] : []);
|
|
273
|
+
};
|
|
274
|
+
const renderHeads = headerGroups => {
|
|
275
|
+
const {
|
|
276
|
+
fixedType
|
|
277
|
+
} = props;
|
|
278
|
+
const {
|
|
279
|
+
headerRowClassName,
|
|
280
|
+
headerRowStyle
|
|
281
|
+
} = tableProps;
|
|
282
|
+
const {
|
|
283
|
+
isDragColMove
|
|
284
|
+
} = tableReactData;
|
|
285
|
+
const columnOpts = computeColumnOpts.value;
|
|
286
|
+
return headerGroups.map((cols, $rowIndex) => {
|
|
287
|
+
const params = {
|
|
288
|
+
$table: $xeTable,
|
|
289
|
+
$rowIndex,
|
|
290
|
+
fixed: fixedType,
|
|
291
|
+
type: renderType
|
|
292
|
+
};
|
|
293
|
+
if (columnOpts.drag) {
|
|
294
|
+
return (0, _vue.h)(_vue.TransitionGroup, {
|
|
295
|
+
name: `vxe-header--col-list${isDragColMove ? '' : '-disabled'}`,
|
|
296
|
+
tag: 'tr',
|
|
297
|
+
class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
|
|
298
|
+
style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : null
|
|
299
|
+
}, {
|
|
300
|
+
default: () => renderRows(cols, $rowIndex)
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
return (0, _vue.h)('tr', {
|
|
304
|
+
class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
|
|
305
|
+
style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : null
|
|
306
|
+
}, renderRows(cols, $rowIndex));
|
|
307
|
+
});
|
|
308
|
+
};
|
|
309
|
+
const renderVN = () => {
|
|
310
|
+
const {
|
|
311
|
+
fixedType,
|
|
312
|
+
fixedColumn,
|
|
313
|
+
tableColumn
|
|
314
|
+
} = props;
|
|
315
|
+
const {
|
|
316
|
+
showHeaderOverflow: allColumnHeaderOverflow
|
|
317
|
+
} = tableProps;
|
|
318
|
+
const {
|
|
319
|
+
isGroup,
|
|
320
|
+
scrollXLoad,
|
|
321
|
+
scrollbarWidth
|
|
322
|
+
} = tableReactData;
|
|
222
323
|
const {
|
|
223
324
|
visibleColumn
|
|
224
325
|
} = tableInternalData;
|
|
225
|
-
const columnOpts = computeColumnOpts.value;
|
|
226
326
|
let headerGroups = headerColumn.value;
|
|
227
327
|
let renderColumnList = tableColumn;
|
|
228
328
|
if (isGroup) {
|
|
@@ -269,109 +369,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
269
369
|
*/
|
|
270
370
|
(0, _vue.h)('thead', {
|
|
271
371
|
ref: refHeaderTHead
|
|
272
|
-
}, headerGroups
|
|
273
|
-
return (0, _vue.h)('tr', {
|
|
274
|
-
class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName({
|
|
275
|
-
$table: $xeTable,
|
|
276
|
-
$rowIndex,
|
|
277
|
-
fixed: fixedType,
|
|
278
|
-
type: renderType
|
|
279
|
-
}) : headerRowClassName : ''],
|
|
280
|
-
style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle({
|
|
281
|
-
$table: $xeTable,
|
|
282
|
-
$rowIndex,
|
|
283
|
-
fixed: fixedType,
|
|
284
|
-
type: renderType
|
|
285
|
-
}) : headerRowStyle : null
|
|
286
|
-
}, cols.map((column, $columnIndex) => {
|
|
287
|
-
const {
|
|
288
|
-
type,
|
|
289
|
-
showHeaderOverflow,
|
|
290
|
-
headerAlign,
|
|
291
|
-
align,
|
|
292
|
-
headerClassName,
|
|
293
|
-
editRender,
|
|
294
|
-
cellRender
|
|
295
|
-
} = column;
|
|
296
|
-
const colid = column.id;
|
|
297
|
-
const renderOpts = editRender || cellRender;
|
|
298
|
-
const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
|
|
299
|
-
const isColGroup = column.children && column.children.length;
|
|
300
|
-
const fixedHiddenColumn = fixedType ? column.fixed !== fixedType && !isColGroup : !!column.fixed && overflowX;
|
|
301
|
-
const headOverflow = _xeUtils.default.eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
|
|
302
|
-
const headAlign = headerAlign || (compConf ? compConf.tableHeaderCellAlign : '') || allHeaderAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
|
|
303
|
-
let showEllipsis = headOverflow === 'ellipsis';
|
|
304
|
-
const showTitle = headOverflow === 'title';
|
|
305
|
-
const showTooltip = headOverflow === true || headOverflow === 'tooltip';
|
|
306
|
-
let hasEllipsis = showTitle || showTooltip || showEllipsis;
|
|
307
|
-
const hasFilter = column.filters && column.filters.some(item => item.checked);
|
|
308
|
-
const columnIndex = $xeTable.getColumnIndex(column);
|
|
309
|
-
const _columnIndex = $xeTable.getVTColumnIndex(column);
|
|
310
|
-
const params = {
|
|
311
|
-
$table: $xeTable,
|
|
312
|
-
$grid: $xeTable.xegrid,
|
|
313
|
-
$rowIndex,
|
|
314
|
-
column,
|
|
315
|
-
columnIndex,
|
|
316
|
-
$columnIndex,
|
|
317
|
-
_columnIndex,
|
|
318
|
-
fixed: fixedType,
|
|
319
|
-
type: renderType,
|
|
320
|
-
isHidden: fixedHiddenColumn,
|
|
321
|
-
hasFilter
|
|
322
|
-
};
|
|
323
|
-
const thOns = {
|
|
324
|
-
onClick: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, params),
|
|
325
|
-
onDblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, params)
|
|
326
|
-
};
|
|
327
|
-
// 横向虚拟滚动不支持动态行高
|
|
328
|
-
if (scrollXLoad && !hasEllipsis) {
|
|
329
|
-
showEllipsis = hasEllipsis = true;
|
|
330
|
-
}
|
|
331
|
-
// 按下事件处理
|
|
332
|
-
if (mouseConfig) {
|
|
333
|
-
thOns.onMousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt, params);
|
|
334
|
-
}
|
|
335
|
-
return (0, _vue.h)('th', Object.assign(Object.assign({
|
|
336
|
-
class: ['vxe-header--column', colid, {
|
|
337
|
-
[`col--${headAlign}`]: headAlign,
|
|
338
|
-
[`col--${type}`]: type,
|
|
339
|
-
'col--last': $columnIndex === cols.length - 1,
|
|
340
|
-
'col--fixed': column.fixed,
|
|
341
|
-
'col--group': isColGroup,
|
|
342
|
-
'col--ellipsis': hasEllipsis,
|
|
343
|
-
'fixed--hidden': fixedHiddenColumn,
|
|
344
|
-
'is--sortable': column.sortable,
|
|
345
|
-
'col--filter': !!column.filters,
|
|
346
|
-
'is--filter-active': hasFilter,
|
|
347
|
-
'col--current': currentColumn === column
|
|
348
|
-
}, headerClassName ? _xeUtils.default.isFunction(headerClassName) ? headerClassName(params) : headerClassName : '', headerCellClassName ? _xeUtils.default.isFunction(headerCellClassName) ? headerCellClassName(params) : headerCellClassName : ''],
|
|
349
|
-
colid,
|
|
350
|
-
colspan: column.colSpan > 1 ? column.colSpan : null,
|
|
351
|
-
rowspan: column.rowSpan > 1 ? column.rowSpan : null,
|
|
352
|
-
style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle : null
|
|
353
|
-
}, thOns), {
|
|
354
|
-
key: columnKey || columnOpts.useKey || isColGroup ? colid : $columnIndex
|
|
355
|
-
}), [(0, _vue.h)('div', {
|
|
356
|
-
class: ['vxe-cell', {
|
|
357
|
-
'c--title': showTitle,
|
|
358
|
-
'c--tooltip': showTooltip,
|
|
359
|
-
'c--ellipsis': showEllipsis
|
|
360
|
-
}]
|
|
361
|
-
}, column.renderHeader(params)),
|
|
362
|
-
/**
|
|
363
|
-
* 列宽拖动
|
|
364
|
-
*/
|
|
365
|
-
!fixedHiddenColumn && !isColGroup && (_xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable) ? (0, _vue.h)('div', {
|
|
366
|
-
class: ['vxe-resizable', {
|
|
367
|
-
'is--line': !border || border === 'none'
|
|
368
|
-
}],
|
|
369
|
-
onMousedown: evnt => resizeMousedown(evnt, params)
|
|
370
|
-
}) : null]);
|
|
371
|
-
}).concat(scrollbarWidth ? [(0, _vue.h)('th', {
|
|
372
|
-
class: 'vxe-header--gutter col--gutter'
|
|
373
|
-
})] : []));
|
|
374
|
-
}))]),
|
|
372
|
+
}, renderHeads(headerGroups))]),
|
|
375
373
|
/**
|
|
376
374
|
* 其他
|
|
377
375
|
*/
|
|
@@ -380,6 +378,46 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
380
378
|
class: 'vxe-table--header-border-line'
|
|
381
379
|
})]);
|
|
382
380
|
};
|
|
381
|
+
(0, _vue.watch)(() => props.tableColumn, uploadColumn);
|
|
382
|
+
(0, _vue.onMounted)(() => {
|
|
383
|
+
(0, _vue.nextTick)(() => {
|
|
384
|
+
const {
|
|
385
|
+
fixedType
|
|
386
|
+
} = props;
|
|
387
|
+
const {
|
|
388
|
+
internalData
|
|
389
|
+
} = $xeTable;
|
|
390
|
+
const {
|
|
391
|
+
elemStore
|
|
392
|
+
} = internalData;
|
|
393
|
+
const prefix = `${fixedType || 'main'}-header-`;
|
|
394
|
+
elemStore[`${prefix}wrapper`] = refElem;
|
|
395
|
+
elemStore[`${prefix}table`] = refHeaderTable;
|
|
396
|
+
elemStore[`${prefix}colgroup`] = refHeaderColgroup;
|
|
397
|
+
elemStore[`${prefix}list`] = refHeaderTHead;
|
|
398
|
+
elemStore[`${prefix}xSpace`] = refHeaderXSpace;
|
|
399
|
+
elemStore[`${prefix}repair`] = refHeaderBorderRepair;
|
|
400
|
+
uploadColumn();
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
(0, _vue.onUnmounted)(() => {
|
|
404
|
+
const {
|
|
405
|
+
fixedType
|
|
406
|
+
} = props;
|
|
407
|
+
const {
|
|
408
|
+
internalData
|
|
409
|
+
} = $xeTable;
|
|
410
|
+
const {
|
|
411
|
+
elemStore
|
|
412
|
+
} = internalData;
|
|
413
|
+
const prefix = `${fixedType || 'main'}-header-`;
|
|
414
|
+
elemStore[`${prefix}wrapper`] = null;
|
|
415
|
+
elemStore[`${prefix}table`] = null;
|
|
416
|
+
elemStore[`${prefix}colgroup`] = null;
|
|
417
|
+
elemStore[`${prefix}list`] = null;
|
|
418
|
+
elemStore[`${prefix}xSpace`] = null;
|
|
419
|
+
elemStore[`${prefix}repair`] = null;
|
|
420
|
+
});
|
|
383
421
|
return renderVN;
|
|
384
422
|
}
|
|
385
423
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const renderer=_ui.VxeUI["renderer"],renderType="header";var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const renderer=_ui.VxeUI["renderer"],renderType="header";var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(U){const $=(0,_vue.inject)("$xeTable",{}),{xID:d,props:c,reactData:k,internalData:T}=$,{refElem:M,refTableBody:z,refLeftContainer:H,refRightContainer:R,refCellResizeBar:S}=$.getRefMaps(),v=$.getComputeMaps()["computeColumnOpts"],f=(0,_vue.ref)([]),W=(0,_vue.ref)(),p=(0,_vue.ref)(),m=(0,_vue.ref)(),h=(0,_vue.ref)(),x=(0,_vue.ref)(),g=(0,_vue.ref)(),t=()=>{var e=k["isGroup"];f.value=e?(0,_util.convertHeaderColumnToRows)(U.tableGroupColumn):[]},E=(e,t)=>{const r=t["column"],a=U["fixedType"];var l=z.value;const n=H.value,o=R.value,i=S.value,s=e["clientX"];var u=W.value,d=e.target;const c=t.cell=d.parentNode;let v=0;const f=l.$el;l=(0,_dom.getOffsetPos)(d,u),u=d.clientWidth,d=Math.floor(u/2);const p=(0,_util.getColReMinWidth)(t)-d;let m=l.left-c.clientWidth+u+p,h=l.left+d;const x=document.onmousemove,g=document.onmouseup,_="left"===a,b="right"===a,C=M.value;let y=0;if(_||b){var w=_?"nextElementSibling":"previousElementSibling";let e=c[w];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(y+=e.offsetWidth),e=e[w];b&&o&&(h=o.offsetLeft+y)}function D(e){e.stopPropagation(),e.preventDefault(),e=e.clientX-s;let l=h+e;e=a?0:f.scrollLeft,_?l=Math.min(l,(o?o.offsetLeft:f.clientWidth)-y-p):b?(m=(n?n.clientWidth:0)+y+p,l=Math.min(l,h+c.clientWidth-p)):m=Math.max(f.scrollLeft,m),v=Math.max(l,m),i.style.left=v-e+"px"}k._isResize=!0,(0,_dom.addClass)(C,"drag--resize"),i.style.display="block",document.onmousemove=D,document.onmouseup=function(e){document.onmousemove=x,document.onmouseup=g;const l=r.renderWidth+(b?h-v:v-h);r.resizeWidth=l,i.style.display="none",k._isResize=!1,T._lastResizeTime=Date.now(),$.analyColumnWidth(),$.recalculate(!0).then(()=>{$.saveCustomStore("update:visible"),$.updateCellAreas(),$.dispatchEvent("resizable-change",Object.assign(Object.assign({},t),{resizeWidth:l}),e),setTimeout(()=>$.recalculate(!0),300)}),(0,_dom.removeClass)(C,"drag--resize")},D(e),$.closeMenu&&$.closeMenu()},_=(h,x)=>{const g=U["fixedType"],{resizable:_,border:b,columnKey:C,headerCellClassName:y,headerCellStyle:w,showHeaderOverflow:D,headerAlign:T,align:M,mouseConfig:z}=c,{currentColumn:H,scrollXLoad:R,overflowX:S,scrollbarWidth:e}=k,W=v.value;return h.map((e,l)=>{var{type:t,showHeaderOverflow:r,headerAlign:a,align:n,headerClassName:o,editRender:i,cellRender:s}=e,u=e.id,i=i||s,s=i?renderer.get(i.name):null,i=e.children&&e.children.length,d=g?e.fixed!==g&&!i:!!e.fixed&&S,r=_xeUtils.default.eqNull(r)?D:r,a=a||(s?s.tableHeaderCellAlign:"")||T||n||(s?s.tableCellAlign:"")||M;let c="ellipsis"===r;n="title"===r,s=!0===r||"tooltip"===r;let v=n||s||c;var r=e.filters&&e.filters.some(e=>e.checked),f=$.getColumnIndex(e),p=$.getVTColumnIndex(e);const m={$table:$,$grid:$.xegrid,$rowIndex:x,column:e,columnIndex:f,$columnIndex:l,_columnIndex:p,fixed:g,type:renderType,isHidden:d,hasFilter:r};f={onClick:e=>$.triggerHeaderCellClickEvent(e,m),onDblclick:e=>$.triggerHeaderCellDblclickEvent(e,m)};return R&&!v&&(c=v=!0),z&&(f.onMousedown=e=>$.triggerHeaderCellMousedownEvent(e,m)),W.drag&&!e.parentId&&(f.onDragstart=$.handleHeaderCellDragDragstartEvent,f.onDragend=$.handleHeaderCellDragDragendEvent,f.onDragover=$.handleHeaderCellDragDragoverEvent),(0,_vue.h)("th",Object.assign(Object.assign({class:["vxe-header--column",u,{["col--"+a]:a,["col--"+t]:t,"col--last":l===h.length-1,"col--fixed":e.fixed,"col--group":i,"col--ellipsis":v,"fixed--hidden":d,"is--sortable":e.sortable,"col--filter":!!e.filters,"is--filter-active":r,"col--current":H===e},o?_xeUtils.default.isFunction(o)?o(m):o:"",y?_xeUtils.default.isFunction(y)?y(m):y:""],colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null,style:w?_xeUtils.default.isFunction(w)?w(m):w:null},f),{key:C||W.useKey||W.drag||i?u:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":n,"c--tooltip":s,"c--ellipsis":c}]},e.renderHeader(m)),d||i||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:W.resizable||_)?null:(0,_vue.h)("div",{class:["vxe-resizable",{"is--line":!b||"none"===b}],onMousedown:e=>E(e,m)})])}).concat(e?[(0,_vue.h)("th",{key:"gr"+x,class:"vxe-header--gutter col--gutter"})]:[])};return(0,_vue.watch)(()=>U.tableColumn,t),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=U["fixedType"],l=$["internalData"],l=l["elemStore"],e=`${e||"main"}-header-`;l[e+"wrapper"]=W,l[e+"table"]=p,l[e+"colgroup"]=m,l[e+"list"]=h,l[e+"xSpace"]=x,l[e+"repair"]=g,t()})}),(0,_vue.onUnmounted)(()=>{var e=U["fixedType"],l=$["internalData"],l=l["elemStore"],e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null}),()=>{var{fixedType:e,fixedColumn:l,tableColumn:t}=U,r=c["showHeaderOverflow"],{isGroup:a,scrollXLoad:n,scrollbarWidth:o}=k,i=T["visibleColumn"];let s=f.value,u=t;return a?u=i:(e&&(n||r)&&(u=l),s=[u]),(0,_vue.h)("div",{ref:W,class:["vxe-table--header-wrapper",e?`fixed-${e}--wrapper`:"body--wrapper"],xid:d},[e?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:x,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:p,class:"vxe-table--header",xid:d,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:m},u.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l})).concat(o?[(0,_vue.h)("col",{name:"col_gutter"})]:[])),(0,_vue.h)("thead",{ref:h},(e=>{const r=U["fixedType"],{headerRowClassName:a,headerRowStyle:n}=c,o=k["isDragColMove"],i=v.value;return e.map((e,l)=>{var t={$table:$,$rowIndex:l,fixed:r,type:renderType};return i.drag?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-header--col-list"+(o?"":"-disabled"),tag:"tr",class:["vxe-header--row",a?_xeUtils.default.isFunction(a)?a(t):a:""],style:n?_xeUtils.default.isFunction(n)?n(t):n:null},{default:()=>_(e,l)}):(0,_vue.h)("tr",{class:["vxe-header--row",a?_xeUtils.default.isFunction(a)?a(t):a:""],style:n?_xeUtils.default.isFunction(n)?n(t):n:null},_(e,l))})})(s))]),(0,_vue.h)("div",{ref:g,class:"vxe-table--header-border-line"})])}}});
|
package/lib/table/src/props.js
CHANGED
|
@@ -188,8 +188,12 @@ var _default = exports.default = {
|
|
|
188
188
|
cellConfig: Object,
|
|
189
189
|
// 行配置信息
|
|
190
190
|
rowConfig: Object,
|
|
191
|
-
//
|
|
191
|
+
// 已废弃,被 rowDragConfig 替换
|
|
192
192
|
dragConfig: Object,
|
|
193
|
+
// 行拖拽排序配置项
|
|
194
|
+
rowDragConfig: Object,
|
|
195
|
+
// 列拖拽排序配置项
|
|
196
|
+
columnDragConfig: Object,
|
|
193
197
|
// 列调整配置项
|
|
194
198
|
resizableConfig: Object,
|
|
195
199
|
// 序号配置项
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../ui");const getConfig=_ui.VxeUI["getConfig"];var _default=exports.default={id:[String,Function],data:Array,height:[Number,String],minHeight:{type:[Number,String],default:()=>getConfig().table.minHeight},maxHeight:[Number,String],resizable:{type:Boolean,default:()=>getConfig().table.resizable},stripe:{type:Boolean,default:()=>getConfig().table.stripe},border:{type:[Boolean,String],default:()=>getConfig().table.border},padding:{type:Boolean,default:()=>getConfig().table.padding},round:{type:Boolean,default:()=>getConfig().table.round},size:{type:String,default:()=>getConfig().table.size||getConfig().size},fit:{type:Boolean,default:()=>getConfig().table.fit},loading:Boolean,align:{type:String,default:()=>getConfig().table.align},headerAlign:{type:String,default:()=>getConfig().table.headerAlign},footerAlign:{type:String,default:()=>getConfig().table.footerAlign},showHeader:{type:Boolean,default:()=>getConfig().table.showHeader},highlightCurrentRow:{type:Boolean,default:()=>getConfig().table.highlightCurrentRow},highlightHoverRow:{type:Boolean,default:()=>getConfig().table.highlightHoverRow},highlightCurrentColumn:{type:Boolean,default:()=>getConfig().table.highlightCurrentColumn},highlightHoverColumn:{type:Boolean,default:()=>getConfig().table.highlightHoverColumn},highlightCell:Boolean,showFooter:Boolean,footerData:Array,footerMethod:Function,rowClassName:[String,Function],cellClassName:[String,Function],headerRowClassName:[String,Function],headerCellClassName:[String,Function],footerRowClassName:[String,Function],footerCellClassName:[String,Function],cellStyle:[Object,Function],headerCellStyle:[Object,Function],footerCellStyle:[Object,Function],rowStyle:[Object,Function],headerRowStyle:[Object,Function],footerRowStyle:[Object,Function],mergeCells:Array,mergeFooterItems:Array,spanMethod:Function,footerSpanMethod:Function,showOverflow:{type:[Boolean,String],default:()=>getConfig().table.showOverflow},showHeaderOverflow:{type:[Boolean,String],default:()=>getConfig().table.showHeaderOverflow},showFooterOverflow:{type:[Boolean,String],default:()=>getConfig().table.showFooterOverflow},columnKey:Boolean,rowKey:Boolean,rowId:{type:String,default:()=>getConfig().table.rowId},zIndex:Number,emptyText:{type:String,default:()=>getConfig().table.emptyText},keepSource:{type:Boolean,default:()=>getConfig().table.keepSource},autoResize:{type:Boolean,default:()=>getConfig().table.autoResize},syncResize:[Boolean,String,Number],resizeConfig:Object,columnConfig:Object,cellConfig:Object,rowConfig:Object,dragConfig:Object,resizableConfig:Object,seqConfig:Object,sortConfig:Object,filterConfig:Object,radioConfig:Object,checkboxConfig:Object,tooltipConfig:Object,exportConfig:Object,importConfig:Object,printConfig:Object,expandConfig:Object,treeConfig:Object,menuConfig:Object,mouseConfig:Object,areaConfig:Object,keyboardConfig:Object,clipConfig:Object,fnrConfig:Object,editConfig:Object,validConfig:Object,editRules:Object,loadingConfig:Object,emptyRender:Object,customConfig:Object,scrollX:Object,scrollY:Object,animat:{type:Boolean,default:()=>getConfig().table.animat},delayHover:{type:Number,default:()=>getConfig().table.delayHover},params:Object};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../ui");const getConfig=_ui.VxeUI["getConfig"];var _default=exports.default={id:[String,Function],data:Array,height:[Number,String],minHeight:{type:[Number,String],default:()=>getConfig().table.minHeight},maxHeight:[Number,String],resizable:{type:Boolean,default:()=>getConfig().table.resizable},stripe:{type:Boolean,default:()=>getConfig().table.stripe},border:{type:[Boolean,String],default:()=>getConfig().table.border},padding:{type:Boolean,default:()=>getConfig().table.padding},round:{type:Boolean,default:()=>getConfig().table.round},size:{type:String,default:()=>getConfig().table.size||getConfig().size},fit:{type:Boolean,default:()=>getConfig().table.fit},loading:Boolean,align:{type:String,default:()=>getConfig().table.align},headerAlign:{type:String,default:()=>getConfig().table.headerAlign},footerAlign:{type:String,default:()=>getConfig().table.footerAlign},showHeader:{type:Boolean,default:()=>getConfig().table.showHeader},highlightCurrentRow:{type:Boolean,default:()=>getConfig().table.highlightCurrentRow},highlightHoverRow:{type:Boolean,default:()=>getConfig().table.highlightHoverRow},highlightCurrentColumn:{type:Boolean,default:()=>getConfig().table.highlightCurrentColumn},highlightHoverColumn:{type:Boolean,default:()=>getConfig().table.highlightHoverColumn},highlightCell:Boolean,showFooter:Boolean,footerData:Array,footerMethod:Function,rowClassName:[String,Function],cellClassName:[String,Function],headerRowClassName:[String,Function],headerCellClassName:[String,Function],footerRowClassName:[String,Function],footerCellClassName:[String,Function],cellStyle:[Object,Function],headerCellStyle:[Object,Function],footerCellStyle:[Object,Function],rowStyle:[Object,Function],headerRowStyle:[Object,Function],footerRowStyle:[Object,Function],mergeCells:Array,mergeFooterItems:Array,spanMethod:Function,footerSpanMethod:Function,showOverflow:{type:[Boolean,String],default:()=>getConfig().table.showOverflow},showHeaderOverflow:{type:[Boolean,String],default:()=>getConfig().table.showHeaderOverflow},showFooterOverflow:{type:[Boolean,String],default:()=>getConfig().table.showFooterOverflow},columnKey:Boolean,rowKey:Boolean,rowId:{type:String,default:()=>getConfig().table.rowId},zIndex:Number,emptyText:{type:String,default:()=>getConfig().table.emptyText},keepSource:{type:Boolean,default:()=>getConfig().table.keepSource},autoResize:{type:Boolean,default:()=>getConfig().table.autoResize},syncResize:[Boolean,String,Number],resizeConfig:Object,columnConfig:Object,cellConfig:Object,rowConfig:Object,dragConfig:Object,rowDragConfig:Object,columnDragConfig:Object,resizableConfig:Object,seqConfig:Object,sortConfig:Object,filterConfig:Object,radioConfig:Object,checkboxConfig:Object,tooltipConfig:Object,exportConfig:Object,importConfig:Object,printConfig:Object,expandConfig:Object,treeConfig:Object,menuConfig:Object,mouseConfig:Object,areaConfig:Object,keyboardConfig:Object,clipConfig:Object,fnrConfig:Object,editConfig:Object,validConfig:Object,editRules:Object,loadingConfig:Object,emptyRender:Object,customConfig:Object,scrollX:Object,scrollY:Object,animat:{type:Boolean,default:()=>getConfig().table.animat},delayHover:{type:Number,default:()=>getConfig().table.delayHover},params:Object};
|