bkui-vue 2.0.1-beta.27 → 2.0.1-beta.28.table.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/dist/index.cjs.js +60 -60
- package/dist/index.esm.js +11485 -11401
- package/dist/index.umd.js +60 -60
- package/dist/style.css +1 -1
- package/dist/style.variable.css +1 -1
- package/lib/index.js +1 -1
- package/lib/scrollbar/index.js +33 -1
- package/lib/scrollbar/scrollbar-core/index.d.ts +15 -15
- package/lib/select/index.d.ts +6 -0
- package/lib/select/index.js +10 -1
- package/lib/select/select.d.ts +2 -0
- package/lib/table/const.d.ts +2 -2
- package/lib/table/hooks/use-column-template.d.ts +2 -2
- package/lib/table/hooks/use-columns.d.ts +20 -9
- package/lib/table/hooks/use-head.d.ts +1 -0
- package/lib/table/hooks/use-layout.d.ts +3 -2
- package/lib/table/hooks/use-rows.d.ts +7 -7
- package/lib/table/index.js +249 -95
- package/lib/table/props.d.ts +33 -21
- package/lib/table/table.css +37 -1
- package/lib/table/table.less +52 -2
- package/lib/table/table.variable.css +37 -1
- package/lib/table/utils.d.ts +10 -7
- package/lib/table-column/index.js +1 -1
- package/lib/tree/index.js +0 -3
- package/lib/virtual-render/index.d.ts +8 -8
- package/lib/virtual-render/index.js +17285 -19
- package/lib/virtual-render/use-fix-top.d.ts +1 -1
- package/lib/virtual-render/v-virtual-render.d.ts +1 -1
- package/lib/virtual-render/virtual-render.d.ts +4 -4
- package/package.json +1 -1
package/lib/table/index.js
CHANGED
@@ -17467,7 +17467,7 @@ var COLUMN_ATTRIBUTE = {
|
|
17467
17467
|
/**
|
17468
17468
|
* Y 轴滚动条宽度
|
17469
17469
|
*/
|
17470
|
-
var SCROLLY_WIDTH =
|
17470
|
+
var SCROLLY_WIDTH = 8;
|
17471
17471
|
/**
|
17472
17472
|
* 默认行高
|
17473
17473
|
*/
|
@@ -18125,7 +18125,8 @@ var CELL_EVENT_TYPES = defineProperty_defineProperty(defineProperty_defineProper
|
|
18125
18125
|
var afterResize = _ref.afterResize;
|
18126
18126
|
var getColumnAttribute = columns.getColumnAttribute,
|
18127
18127
|
getColumnOrderWidth = columns.getColumnOrderWidth,
|
18128
|
-
setColumnAttribute = columns.setColumnAttribute
|
18128
|
+
setColumnAttribute = columns.setColumnAttribute,
|
18129
|
+
setNextColumnWidth = columns.setNextColumnWidth;
|
18129
18130
|
var getColListener = function getColListener(col) {
|
18130
18131
|
return getColumnAttribute(col, COLUMN_ATTRIBUTE.LISTENERS);
|
18131
18132
|
};
|
@@ -18143,7 +18144,7 @@ var CELL_EVENT_TYPES = defineProperty_defineProperty(defineProperty_defineProper
|
|
18143
18144
|
var dragColumn = null;
|
18144
18145
|
var dragStartOffsetX = 0;
|
18145
18146
|
var dragOffsetX = (0,external_vue_namespaceObject.ref)(-1000);
|
18146
|
-
var ORDER_LIST = [COLUMN_ATTRIBUTE.
|
18147
|
+
var ORDER_LIST = [COLUMN_ATTRIBUTE.WIDTH];
|
18147
18148
|
var stopDefaultEvent = function stopDefaultEvent(e) {
|
18148
18149
|
e.stopImmediatePropagation();
|
18149
18150
|
e.stopPropagation();
|
@@ -18157,8 +18158,8 @@ var CELL_EVENT_TYPES = defineProperty_defineProperty(defineProperty_defineProper
|
|
18157
18158
|
var resolveWidth = getColumnOrderWidth(dragColumn, ORDER_LIST) + diff;
|
18158
18159
|
var minWidth = getColumnOrderWidth(dragColumn, [COLUMN_ATTRIBUTE.COL_MIN_WIDTH]);
|
18159
18160
|
var calcWidth = resolveWidth > minWidth ? resolveWidth : minWidth;
|
18160
|
-
|
18161
|
-
setColumnAttribute(dragColumn, COLUMN_ATTRIBUTE.
|
18161
|
+
setNextColumnWidth(dragColumn, calcWidth);
|
18162
|
+
setColumnAttribute(dragColumn, COLUMN_ATTRIBUTE.WIDTH, calcWidth);
|
18162
18163
|
document.removeEventListener('mouseup', handleMouseUp);
|
18163
18164
|
document.removeEventListener('mousemove', handleMouseMove);
|
18164
18165
|
startX = 0;
|
@@ -18192,7 +18193,7 @@ var CELL_EVENT_TYPES = defineProperty_defineProperty(defineProperty_defineProper
|
|
18192
18193
|
var removeCursor = function removeCursor(target) {
|
18193
18194
|
var _target$style2;
|
18194
18195
|
setNodeCursor.cancel();
|
18195
|
-
(_target$style2 = target.style) === null || _target$style2 === void 0 || _target$style2.removeProperty('cursor');
|
18196
|
+
target === null || target === void 0 || (_target$style2 = target.style) === null || _target$style2 === void 0 || _target$style2.removeProperty('cursor');
|
18196
18197
|
target === null || target === void 0 || target.classList.remove('col-resize-hover');
|
18197
18198
|
};
|
18198
18199
|
var handler = defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty({}, EVENTS.MOUSE_DOWN, function (e, column) {
|
@@ -18202,7 +18203,6 @@ var CELL_EVENT_TYPES = defineProperty_defineProperty(defineProperty_defineProper
|
|
18202
18203
|
isMouseDown = true;
|
18203
18204
|
var target = e.target.closest('th');
|
18204
18205
|
setColumnAttribute(column, COLUMN_ATTRIBUTE.COL_IS_DRAG, true);
|
18205
|
-
setColumnAttribute(column, COLUMN_ATTRIBUTE.CALC_WIDTH, target.scrollWidth);
|
18206
18206
|
setNodeCursor(target);
|
18207
18207
|
dragColumn = column;
|
18208
18208
|
startX = e.clientX;
|
@@ -18211,6 +18211,7 @@ var CELL_EVENT_TYPES = defineProperty_defineProperty(defineProperty_defineProper
|
|
18211
18211
|
updateOffsetX(e)();
|
18212
18212
|
document.addEventListener('mouseup', handleMouseUp);
|
18213
18213
|
document.addEventListener('mousemove', handleMouseMove);
|
18214
|
+
target === null || target === void 0 || target.classList.remove('col-resize-hover');
|
18214
18215
|
}), EVENTS.MOUSE_MOVE, function (e, _column) {
|
18215
18216
|
if (isMouseDown && !isDraging) {
|
18216
18217
|
isDraging = true;
|
@@ -18422,55 +18423,69 @@ function v4(options, buf, offset) {
|
|
18422
18423
|
}
|
18423
18424
|
return columnCache.get(ctx);
|
18424
18425
|
};
|
18425
|
-
var
|
18426
|
-
var _node$
|
18427
|
-
if (!node || ((_node$type = node.type) === null || _node$type === void 0 ? void 0 : _node$type.name) === 'Table') {
|
18428
|
-
return;
|
18429
|
-
}
|
18430
|
-
if (((_node$type2 = node.type) === null || _node$type2 === void 0 ? void 0 : _node$type2.name) === 'TableColumn') {
|
18431
|
-
var _node$props$render, _node$children;
|
18432
|
-
var resolveProp = Object.assign({
|
18433
|
-
index: columnIndex
|
18434
|
-
}, copyProps(node.props), {
|
18435
|
-
field: node.props.prop || node.props.field,
|
18436
|
-
render: (_node$props$render = node.props.render) !== null && _node$props$render !== void 0 ? _node$props$render : (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children["default"],
|
18437
|
-
uniqueId: getNodeCtxUid(node)
|
18438
|
-
});
|
18439
|
-
if (!columns.some(function (col) {
|
18440
|
-
return col.uniqueId === resolveProp.uniqueId;
|
18441
|
-
})) {
|
18442
|
-
columns.push((0,external_vue_namespaceObject.unref)(resolveProp));
|
18443
|
-
columnIndex = columnIndex + 1;
|
18444
|
-
}
|
18445
|
-
return;
|
18446
|
-
}
|
18426
|
+
var resolveNodeChilren = function resolveNodeChilren(node, rootNode, isColumnRoot) {
|
18427
|
+
var _node$component;
|
18447
18428
|
if (node !== null && node !== void 0 && (_node$component = node.component) !== null && _node$component !== void 0 && _node$component.subTree) {
|
18448
18429
|
var _node$component2;
|
18449
|
-
resolveChildNode(node === null || node === void 0 || (_node$component2 = node.component) === null || _node$component2 === void 0 ? void 0 : _node$component2.subTree);
|
18430
|
+
resolveChildNode(node === null || node === void 0 || (_node$component2 = node.component) === null || _node$component2 === void 0 ? void 0 : _node$component2.subTree, rootNode);
|
18450
18431
|
return;
|
18451
18432
|
}
|
18452
18433
|
if (typeof node === 'function') {
|
18453
18434
|
return node();
|
18454
18435
|
}
|
18455
18436
|
if (Array.isArray(node)) {
|
18456
|
-
node.forEach(
|
18437
|
+
node.forEach(function (c) {
|
18438
|
+
return resolveChildNode(c, rootNode);
|
18439
|
+
});
|
18457
18440
|
return;
|
18458
18441
|
}
|
18459
18442
|
if (Array.isArray(node === null || node === void 0 ? void 0 : node.children)) {
|
18460
|
-
node.children.forEach(
|
18443
|
+
node.children.forEach(function (c) {
|
18444
|
+
return resolveChildNode(c, rootNode);
|
18445
|
+
});
|
18461
18446
|
return;
|
18462
18447
|
}
|
18463
|
-
if ((0,external_vue_namespaceObject.isVNode)(node) && node !== null && node !== void 0 && node.children && typeof_typeof(node === null || node === void 0 ? void 0 : node.children) === 'object') {
|
18448
|
+
if (!isColumnRoot && (0,external_vue_namespaceObject.isVNode)(node) && node !== null && node !== void 0 && node.children && typeof_typeof(node === null || node === void 0 ? void 0 : node.children) === 'object') {
|
18464
18449
|
Object.keys(node.children).forEach(function (key) {
|
18465
|
-
return resolveChildNode(node.children[key]);
|
18450
|
+
return resolveChildNode(node.children[key], rootNode);
|
18451
|
+
});
|
18452
|
+
return;
|
18453
|
+
}
|
18454
|
+
};
|
18455
|
+
var resolveChildNode = function resolveChildNode(node, parent) {
|
18456
|
+
var _node$type, _node$type2;
|
18457
|
+
var rootNode = parent;
|
18458
|
+
if (!node || ((_node$type = node.type) === null || _node$type === void 0 ? void 0 : _node$type.name) === 'Table') {
|
18459
|
+
return;
|
18460
|
+
}
|
18461
|
+
if (((_node$type2 = node.type) === null || _node$type2 === void 0 ? void 0 : _node$type2.name) === 'TableColumn') {
|
18462
|
+
var _node$props$render, _node$children, _parent$children;
|
18463
|
+
var resolveProp = Object.assign({
|
18464
|
+
index: columnIndex
|
18465
|
+
}, copyProps(node.props), {
|
18466
|
+
field: node.props.prop || node.props.field,
|
18467
|
+
render: (_node$props$render = node.props.render) !== null && _node$props$render !== void 0 ? _node$props$render : (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children["default"],
|
18468
|
+
uniqueId: getNodeCtxUid(node),
|
18469
|
+
children: []
|
18466
18470
|
});
|
18471
|
+
var targetColumns = (_parent$children = parent === null || parent === void 0 ? void 0 : parent.children) !== null && _parent$children !== void 0 ? _parent$children : columns;
|
18472
|
+
if (!targetColumns.some(function (col) {
|
18473
|
+
return col.uniqueId === resolveProp.uniqueId;
|
18474
|
+
})) {
|
18475
|
+
targetColumns.push(resolveProp);
|
18476
|
+
columnIndex = columnIndex + 1;
|
18477
|
+
if (node.children) {
|
18478
|
+
resolveNodeChilren(node, resolveProp, true);
|
18479
|
+
}
|
18480
|
+
}
|
18467
18481
|
return;
|
18468
18482
|
}
|
18483
|
+
resolveNodeChilren(node, rootNode);
|
18469
18484
|
};
|
18470
18485
|
var resolveColumns = function resolveColumns(children) {
|
18471
18486
|
columns.length = 0;
|
18472
18487
|
columnIndex = 0;
|
18473
|
-
var ghostBody = children.find(function (node) {
|
18488
|
+
var ghostBody = children === null || children === void 0 ? void 0 : children.find(function (node) {
|
18474
18489
|
var _node$type3;
|
18475
18490
|
return ((_node$type3 = node.type) === null || _node$type3 === void 0 ? void 0 : _node$type3.name) === 'GhostBody';
|
18476
18491
|
});
|
@@ -18481,7 +18496,9 @@ function v4(options, buf, offset) {
|
|
18481
18496
|
resolveChildNode((_ghostBody$component2 = ghostBody.component) === null || _ghostBody$component2 === void 0 ? void 0 : _ghostBody$component2.subTree);
|
18482
18497
|
} else {
|
18483
18498
|
var _ghostBody$children$d, _ghostBody$children, _ghostBody$children$d2;
|
18484
|
-
((_ghostBody$children$d = (_ghostBody$children = ghostBody.children) === null || _ghostBody$children === void 0 || (_ghostBody$children$d2 = _ghostBody$children["default"]) === null || _ghostBody$children$d2 === void 0 ? void 0 : _ghostBody$children$d2.call(_ghostBody$children)) !== null && _ghostBody$children$d !== void 0 ? _ghostBody$children$d : []).forEach(
|
18499
|
+
((_ghostBody$children$d = (_ghostBody$children = ghostBody.children) === null || _ghostBody$children === void 0 || (_ghostBody$children$d2 = _ghostBody$children["default"]) === null || _ghostBody$children$d2 === void 0 ? void 0 : _ghostBody$children$d2.call(_ghostBody$children)) !== null && _ghostBody$children$d !== void 0 ? _ghostBody$children$d : []).forEach(function (c) {
|
18500
|
+
return resolveChildNode(c);
|
18501
|
+
});
|
18485
18502
|
}
|
18486
18503
|
}
|
18487
18504
|
columns.sort(function (col1, col2) {
|
@@ -20042,6 +20059,8 @@ var useColumns = function useColumns(props) {
|
|
20042
20059
|
var uuid = esm_browser_v4();
|
20043
20060
|
var sortColumns = (0,external_vue_namespaceObject.reactive)([]);
|
20044
20061
|
var filterColumns = (0,external_vue_namespaceObject.reactive)([]);
|
20062
|
+
var columnGroup = (0,external_vue_namespaceObject.reactive)([]);
|
20063
|
+
var columnGroupMap = new WeakMap();
|
20045
20064
|
/**
|
20046
20065
|
* 用来记录列的排序状态
|
20047
20066
|
* @param col
|
@@ -20072,7 +20091,7 @@ var useColumns = function useColumns(props) {
|
|
20072
20091
|
var colWidth = 0;
|
20073
20092
|
if (/^\d+\.?\d*(px)?$/.test("".concat(col[attrName]))) {
|
20074
20093
|
colWidth = Number("".concat(col[attrName]).replace(/px/, ''));
|
20075
|
-
setColumnAttribute(col, COLUMN_ATTRIBUTE.
|
20094
|
+
setColumnAttribute(col, COLUMN_ATTRIBUTE.WIDTH, colWidth);
|
20076
20095
|
setColumnRect(col, {
|
20077
20096
|
width: colWidth,
|
20078
20097
|
left: null,
|
@@ -20081,7 +20100,7 @@ var useColumns = function useColumns(props) {
|
|
20081
20100
|
}
|
20082
20101
|
if (/^\d+\.?\d*%$/.test("".concat(col[attrName]))) {
|
20083
20102
|
colWidth = Number("".concat(col[attrName]).replace(/%/, '')) / 100 * width;
|
20084
|
-
setColumnAttribute(col, COLUMN_ATTRIBUTE.
|
20103
|
+
setColumnAttribute(col, COLUMN_ATTRIBUTE.WIDTH, colWidth);
|
20085
20104
|
setColumnRect(col, {
|
20086
20105
|
width: colWidth,
|
20087
20106
|
left: null,
|
@@ -20117,7 +20136,7 @@ var useColumns = function useColumns(props) {
|
|
20117
20136
|
var autoWidthList = resolveColWidth(minWidthList, 'minWidth');
|
20118
20137
|
autoWidthList.forEach(function (col) {
|
20119
20138
|
var calcWidth = minColWidth > COL_MIN_WIDTH ? minColWidth : COL_MIN_WIDTH;
|
20120
|
-
setColumnAttribute(col, COLUMN_ATTRIBUTE.
|
20139
|
+
setColumnAttribute(col, COLUMN_ATTRIBUTE.WIDTH, calcWidth);
|
20121
20140
|
setColumnRect(col, {
|
20122
20141
|
width: calcWidth,
|
20123
20142
|
left: null,
|
@@ -20251,6 +20270,81 @@ var useColumns = function useColumns(props) {
|
|
20251
20270
|
};
|
20252
20271
|
return filterFn;
|
20253
20272
|
};
|
20273
|
+
/**
|
20274
|
+
* 格式化Column嵌套配置,支持多表头设置
|
20275
|
+
* @param cols
|
20276
|
+
*/
|
20277
|
+
var flatColumnTemplate = function flatColumnTemplate(cols) {
|
20278
|
+
columnGroup.length = 0;
|
20279
|
+
var maxDepth = 0;
|
20280
|
+
var targetColumns = [];
|
20281
|
+
var getMaxDepth = function getMaxDepth(root) {
|
20282
|
+
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
20283
|
+
if (root.length && maxDepth < depth) {
|
20284
|
+
maxDepth = depth;
|
20285
|
+
}
|
20286
|
+
root.forEach(function (col) {
|
20287
|
+
var _col$children;
|
20288
|
+
return getMaxDepth((_col$children = col.children) !== null && _col$children !== void 0 ? _col$children : [], depth + 1);
|
20289
|
+
});
|
20290
|
+
};
|
20291
|
+
getMaxDepth(cols);
|
20292
|
+
var updateParentThColspan = function updateParentThColspan(col, count) {
|
20293
|
+
if (col) {
|
20294
|
+
var colMap = columnGroupMap.get(col);
|
20295
|
+
colMap.thColspan = colMap.thColspan + count;
|
20296
|
+
colMap.offsetLeft = colMap.offsetLeft + count;
|
20297
|
+
updateParentThColspan(colMap.parent, count);
|
20298
|
+
}
|
20299
|
+
};
|
20300
|
+
var foreachAllColumns = function foreachAllColumns(column, depth, parent, left) {
|
20301
|
+
var _col$children$length, _col$children2, _col$children$length2, _col$children3, _col$children$length3, _col$children4, _col$children$length4, _col$children5, _col$children6;
|
20302
|
+
var col = (0,external_vue_namespaceObject.toRaw)(column);
|
20303
|
+
var leftColumnCount = left;
|
20304
|
+
if (columnGroup[depth] === undefined) {
|
20305
|
+
columnGroup[depth] = [];
|
20306
|
+
}
|
20307
|
+
var isGroup = !!((_col$children$length = (_col$children2 = col.children) === null || _col$children2 === void 0 ? void 0 : _col$children2.length) !== null && _col$children$length !== void 0 ? _col$children$length : false);
|
20308
|
+
if (!((_col$children$length2 = (_col$children3 = col.children) === null || _col$children3 === void 0 ? void 0 : _col$children3.length) !== null && _col$children$length2 !== void 0 ? _col$children$length2 : false)) {
|
20309
|
+
targetColumns.push(col);
|
20310
|
+
}
|
20311
|
+
if (!columnGroupMap.has(col)) {
|
20312
|
+
columnGroupMap.set(col, {
|
20313
|
+
thColspan: 1,
|
20314
|
+
thRowspan: 1,
|
20315
|
+
isGroup: isGroup,
|
20316
|
+
offsetLeft: left
|
20317
|
+
});
|
20318
|
+
}
|
20319
|
+
var colMap = columnGroupMap.get(col);
|
20320
|
+
var childLength = (_col$children$length3 = (_col$children4 = col.children) === null || _col$children4 === void 0 ? void 0 : _col$children4.length) !== null && _col$children$length3 !== void 0 ? _col$children$length3 : 0;
|
20321
|
+
var thColspan = (_col$children$length4 = (_col$children5 = col.children) === null || _col$children5 === void 0 ? void 0 : _col$children5.length) !== null && _col$children$length4 !== void 0 ? _col$children$length4 : 1;
|
20322
|
+
var thRowspan = childLength > 0 ? 1 : maxDepth - depth;
|
20323
|
+
var offsetLeft = leftColumnCount + (childLength > 0 ? childLength - 1 : 0);
|
20324
|
+
Object.assign(colMap, {
|
20325
|
+
thColspan: thColspan > 0 ? thColspan : 1,
|
20326
|
+
parent: parent,
|
20327
|
+
thRowspan: thRowspan,
|
20328
|
+
offsetLeft: offsetLeft
|
20329
|
+
});
|
20330
|
+
columnGroup[depth].push(col);
|
20331
|
+
if (thColspan > 1) {
|
20332
|
+
updateParentThColspan(parent, thColspan - 1);
|
20333
|
+
}
|
20334
|
+
(_col$children6 = col.children) === null || _col$children6 === void 0 || _col$children6.forEach(function (c, index) {
|
20335
|
+
leftColumnCount = leftColumnCount + foreachAllColumns(c, depth + 1, col, leftColumnCount + index);
|
20336
|
+
});
|
20337
|
+
return childLength > 0 ? childLength - 1 : 0;
|
20338
|
+
};
|
20339
|
+
var leftColumnCount = 0;
|
20340
|
+
cols.forEach(function (col, index) {
|
20341
|
+
leftColumnCount = leftColumnCount + foreachAllColumns(col, 0, null, leftColumnCount + index);
|
20342
|
+
});
|
20343
|
+
return targetColumns;
|
20344
|
+
};
|
20345
|
+
var getGroupAttribute = function getGroupAttribute(group) {
|
20346
|
+
return columnGroupMap.get(group);
|
20347
|
+
};
|
20254
20348
|
/**
|
20255
20349
|
* Format columns
|
20256
20350
|
* @param columns
|
@@ -20318,6 +20412,9 @@ var useColumns = function useColumns(props) {
|
|
20318
20412
|
var getColumnCalcWidth = function getColumnCalcWidth(column) {
|
20319
20413
|
return getColumnAttribute(column, COLUMN_ATTRIBUTE.CALC_WIDTH);
|
20320
20414
|
};
|
20415
|
+
var getColumnWidth = function getColumnWidth(column) {
|
20416
|
+
return getColumnAttribute(column, COLUMN_ATTRIBUTE.WIDTH);
|
20417
|
+
};
|
20321
20418
|
var setColumnRect = function setColumnRect(col, _ref2) {
|
20322
20419
|
var left = _ref2.left,
|
20323
20420
|
right = _ref2.right,
|
@@ -20332,11 +20429,12 @@ var useColumns = function useColumns(props) {
|
|
20332
20429
|
};
|
20333
20430
|
setColumnAttribute(col, COLUMN_ATTRIBUTE.COL_RECT, target);
|
20334
20431
|
};
|
20335
|
-
var debounceUpdateColumns = (0,lodash.debounce)(function (columns) {
|
20432
|
+
var debounceUpdateColumns = (0,lodash.debounce)(function (columns, onComplete) {
|
20336
20433
|
tableColumnList.length = 0;
|
20337
|
-
tableColumnList.push.apply(tableColumnList, _toConsumableArray(columns));
|
20434
|
+
tableColumnList.push.apply(tableColumnList, _toConsumableArray(flatColumnTemplate(columns)));
|
20338
20435
|
formatColumns();
|
20339
20436
|
setVisibleColumns();
|
20437
|
+
onComplete === null || onComplete === void 0 || onComplete();
|
20340
20438
|
});
|
20341
20439
|
var setColumnIsHidden = function setColumnIsHidden(column) {
|
20342
20440
|
var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
@@ -20362,7 +20460,7 @@ var useColumns = function useColumns(props) {
|
|
20362
20460
|
Object.assign(tableColumnSchema.get(column)[COLUMN_ATTRIBUTE.COL_FILTER_OBJ], option);
|
20363
20461
|
}
|
20364
20462
|
};
|
20365
|
-
var ORDER_LIST = [COLUMN_ATTRIBUTE.
|
20463
|
+
var ORDER_LIST = [COLUMN_ATTRIBUTE.WIDTH];
|
20366
20464
|
/**
|
20367
20465
|
* 获取当前列实际宽度
|
20368
20466
|
* width props中设置的默认宽度
|
@@ -20402,6 +20500,16 @@ var useColumns = function useColumns(props) {
|
|
20402
20500
|
setFilterColumns(column, defineProperty_defineProperty({}, attrName, attrValue));
|
20403
20501
|
}
|
20404
20502
|
};
|
20503
|
+
var setNextColumnWidth = function setNextColumnWidth(col, newWidth) {
|
20504
|
+
var index = visibleColumns.findIndex(function (item) {
|
20505
|
+
return item === col;
|
20506
|
+
});
|
20507
|
+
var diffWidth = getColumnOrderWidth(col) - newWidth;
|
20508
|
+
var nextColumn = visibleColumns[index + 1];
|
20509
|
+
if (nextColumn) {
|
20510
|
+
setColumnAttribute(nextColumn, COLUMN_ATTRIBUTE.WIDTH, getColumnOrderWidth(nextColumn) + diffWidth);
|
20511
|
+
}
|
20512
|
+
};
|
20405
20513
|
/**
|
20406
20514
|
* 设置表格列属性
|
20407
20515
|
* @param col 当前列
|
@@ -20480,13 +20588,6 @@ var useColumns = function useColumns(props) {
|
|
20480
20588
|
}
|
20481
20589
|
setColumnAttribute(column, COLUMN_ATTRIBUTE.COL_SORT_ACTIVE, active);
|
20482
20590
|
};
|
20483
|
-
(0,external_vue_namespaceObject.watch)(function () {
|
20484
|
-
return [props.columns];
|
20485
|
-
}, function () {
|
20486
|
-
debounceUpdateColumns(props.columns);
|
20487
|
-
}, {
|
20488
|
-
immediate: true
|
20489
|
-
});
|
20490
20591
|
/**
|
20491
20592
|
* 清理列排序
|
20492
20593
|
* @param reset 是否重置表格数据
|
@@ -20506,8 +20607,11 @@ var useColumns = function useColumns(props) {
|
|
20506
20607
|
debounceUpdateColumns: debounceUpdateColumns,
|
20507
20608
|
sortColumns: sortColumns,
|
20508
20609
|
filterColumns: filterColumns,
|
20610
|
+
columnGroup: columnGroup,
|
20611
|
+
columnGroupMap: columnGroupMap,
|
20509
20612
|
clearColumnSort: clearColumnSort,
|
20510
20613
|
formatColumns: formatColumns,
|
20614
|
+
flatColumnTemplate: flatColumnTemplate,
|
20511
20615
|
isHiddenColumn: isHiddenColumn,
|
20512
20616
|
getColumnId: getColumnId,
|
20513
20617
|
getColumnOrderWidth: getColumnOrderWidth,
|
@@ -20519,6 +20623,8 @@ var useColumns = function useColumns(props) {
|
|
20519
20623
|
getColumnCustomClass: getColumnCustomClass,
|
20520
20624
|
getColumnRefAttribute: getColumnRefAttribute,
|
20521
20625
|
getColumnCalcWidth: getColumnCalcWidth,
|
20626
|
+
getColumnWidth: getColumnWidth,
|
20627
|
+
getGroupAttribute: getGroupAttribute,
|
20522
20628
|
resolveEventListener: resolveEventListener,
|
20523
20629
|
setColumnIsHidden: setColumnIsHidden,
|
20524
20630
|
setColumnResizeWidth: setColumnResizeWidth,
|
@@ -20530,6 +20636,7 @@ var useColumns = function useColumns(props) {
|
|
20530
20636
|
setFixedStyle: setFixedStyle,
|
20531
20637
|
setColumnRect: setColumnRect,
|
20532
20638
|
setVisibleColumns: setVisibleColumns,
|
20639
|
+
setNextColumnWidth: setNextColumnWidth,
|
20533
20640
|
resolveColsCalcWidth: resolveColsCalcWidth
|
20534
20641
|
};
|
20535
20642
|
};
|
@@ -20738,7 +20845,7 @@ var useColumns = function useColumns(props) {
|
|
20738
20845
|
var length = fixedRightColumns.value.length;
|
20739
20846
|
for (var i = length - 1; i >= 0; i--) {
|
20740
20847
|
var col = fixedRightColumns.value[i];
|
20741
|
-
var width = columns.
|
20848
|
+
var width = columns.getColumnWidth(col);
|
20742
20849
|
columns.setColumnRect(col, {
|
20743
20850
|
right: right,
|
20744
20851
|
width: width
|
@@ -20750,7 +20857,7 @@ var useColumns = function useColumns(props) {
|
|
20750
20857
|
}
|
20751
20858
|
var left = 0;
|
20752
20859
|
fixedLeftColumns.value.forEach(function (col) {
|
20753
|
-
var width = columns.
|
20860
|
+
var width = columns.getColumnWidth(col);
|
20754
20861
|
columns.setColumnRect(col, {
|
20755
20862
|
left: left,
|
20756
20863
|
width: width
|
@@ -20981,6 +21088,7 @@ function use_layout_objectSpread(e) { for (var r = 1; r < arguments.length; r++)
|
|
20981
21088
|
var layout = (0,external_vue_namespaceObject.reactive)({});
|
20982
21089
|
var fixedColumns = (0,external_vue_namespaceObject.reactive)([]);
|
20983
21090
|
var lineHeight = (0,external_vue_namespaceObject.ref)((_props$rowHeight = props.rowHeight) !== null && _props$rowHeight !== void 0 ? _props$rowHeight : LINE_HEIGHT);
|
21091
|
+
var headerRowCount = (0,external_vue_namespaceObject.ref)(1);
|
20984
21092
|
var fixedBottomHeight = (0,external_vue_namespaceObject.computed)(function () {
|
20985
21093
|
var _props$fixedBottom, _props$fixedBottom$he, _props$fixedBottom2, _props$fixedBottom$he2, _props$fixedBottom3;
|
20986
21094
|
return ((_props$fixedBottom = props.fixedBottom) === null || _props$fixedBottom === void 0 ? void 0 : _props$fixedBottom.position) === 'relative' ? (_props$fixedBottom$he = (_props$fixedBottom2 = props.fixedBottom) === null || _props$fixedBottom2 === void 0 ? void 0 : _props$fixedBottom2.height) !== null && _props$fixedBottom$he !== void 0 ? _props$fixedBottom$he : LINE_HEIGHT : (_props$fixedBottom$he2 = (_props$fixedBottom3 = props.fixedBottom) === null || _props$fixedBottom3 === void 0 ? void 0 : _props$fixedBottom3.height) !== null && _props$fixedBottom$he2 !== void 0 ? _props$fixedBottom$he2 : 0;
|
@@ -21000,7 +21108,7 @@ function use_layout_objectSpread(e) { for (var r = 1; r < arguments.length; r++)
|
|
21000
21108
|
};
|
21001
21109
|
});
|
21002
21110
|
var headClass = (0,external_vue_namespaceObject.computed)(function () {
|
21003
|
-
return (0,shared_namespaceObject.classes)(defineProperty_defineProperty(defineProperty_defineProperty({}, resolveClassName('table-head'), true), 'has-settings', !!props.settings));
|
21111
|
+
return (0,shared_namespaceObject.classes)(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty({}, resolveClassName('table-head'), true), 'has-settings', !!props.settings), 'has-group', headerRowCount.value > 1));
|
21004
21112
|
});
|
21005
21113
|
var setFixedColumnShawdow = function setFixedColumnShawdow() {
|
21006
21114
|
var _refRoot$value, _refRoot$value2;
|
@@ -21022,6 +21130,9 @@ function use_layout_objectSpread(e) { for (var r = 1; r < arguments.length; r++)
|
|
21022
21130
|
translateX.value = val;
|
21023
21131
|
setRootStyleVars();
|
21024
21132
|
};
|
21133
|
+
var setHeaderRowCount = function setHeaderRowCount(val) {
|
21134
|
+
headerRowCount.value = val;
|
21135
|
+
};
|
21025
21136
|
var setTranslateY = function setTranslateY(val) {
|
21026
21137
|
translateY.value = val;
|
21027
21138
|
setRootStyleVars();
|
@@ -21040,16 +21151,17 @@ function use_layout_objectSpread(e) { for (var r = 1; r < arguments.length; r++)
|
|
21040
21151
|
};
|
21041
21152
|
var config = resolveHeadConfig(props);
|
21042
21153
|
var headHeight = (0,external_vue_namespaceObject.computed)(function () {
|
21043
|
-
return resolvePropVal(config, 'height', ['thead']);
|
21154
|
+
return resolvePropVal(config, 'height', ['thead']) * headerRowCount.value;
|
21044
21155
|
});
|
21045
21156
|
var headStyle = (0,external_vue_namespaceObject.computed)(function () {
|
21046
21157
|
var _props$thead$color, _props$thead;
|
21047
21158
|
return {
|
21048
21159
|
'--row-height': "".concat(headHeight.value, "px"),
|
21049
|
-
'--background-color': DEF_COLOR[(_props$thead$color = (_props$thead = props.thead) === null || _props$thead === void 0 ? void 0 : _props$thead.color) !== null && _props$thead$color !== void 0 ? _props$thead$color : IHeadColor.DEF1]
|
21160
|
+
'--background-color': DEF_COLOR[(_props$thead$color = (_props$thead = props.thead) === null || _props$thead === void 0 ? void 0 : _props$thead.color) !== null && _props$thead$color !== void 0 ? _props$thead$color : IHeadColor.DEF1],
|
21161
|
+
paddingRight: props.scrollbar ? null : "".concat(SCROLLY_WIDTH, "px")
|
21050
21162
|
};
|
21051
21163
|
});
|
21052
|
-
var bodyClass = defineProperty_defineProperty({}, resolveClassName('table-body'), true);
|
21164
|
+
var bodyClass = defineProperty_defineProperty(defineProperty_defineProperty({}, resolveClassName('table-body'), true), 'is-bk-scrollbar', props.scrollbar);
|
21053
21165
|
var footerClass = (0,external_vue_namespaceObject.computed)(function () {
|
21054
21166
|
return (0,shared_namespaceObject.classes)(defineProperty_defineProperty(defineProperty_defineProperty({}, resolveClassName('table-footer'), true), 'is-hidden', footHeight.value === 0));
|
21055
21167
|
});
|
@@ -21245,6 +21357,7 @@ function use_layout_objectSpread(e) { for (var r = 1; r < arguments.length; r++)
|
|
21245
21357
|
setFixedColumns: setFixedColumns,
|
21246
21358
|
setOffsetRight: setOffsetRight,
|
21247
21359
|
setLineHeight: setLineHeight,
|
21360
|
+
setHeaderRowCount: setHeaderRowCount,
|
21248
21361
|
initRootStyleVars: initRootStyleVars,
|
21249
21362
|
refRoot: refRoot,
|
21250
21363
|
refHead: refHead,
|
@@ -22539,6 +22652,7 @@ function use_head_isSlot(s) {
|
|
22539
22652
|
index = _ref.index;
|
22540
22653
|
var sortType = (0,external_vue_namespaceObject.ref)(columns.getColumnAttribute(column, COLUMN_ATTRIBUTE.COL_SORT_TYPE));
|
22541
22654
|
var sortActive = (0,external_vue_namespaceObject.ref)(columns.getColumnAttribute(column, COLUMN_ATTRIBUTE.COL_SORT_ACTIVE));
|
22655
|
+
var rawColumn = (0,external_vue_namespaceObject.toRaw)(column);
|
22542
22656
|
/**
|
22543
22657
|
* 点击排序事件
|
22544
22658
|
* @param sortFn 排序函数
|
@@ -22715,14 +22829,36 @@ function use_head_isSlot(s) {
|
|
22715
22829
|
var headStyle = Object.assign(columns.getFixedStlye(column), {
|
22716
22830
|
'--background-color': DEF_COLOR[(_props$thead$color = (_props$thead = props.thead) === null || _props$thead === void 0 ? void 0 : _props$thead.color) !== null && _props$thead$color !== void 0 ? _props$thead$color : IHeadColor.DEF1]
|
22717
22831
|
});
|
22718
|
-
var
|
22832
|
+
var group = columns.getGroupAttribute(rawColumn);
|
22833
|
+
var classList = (0,external_vue_namespaceObject.computed)(function () {
|
22834
|
+
return [columns.getHeadColumnClass(column, index), columns.getColumnCustomClass(column), column.align || props.headerAlign || props.align, {
|
22835
|
+
'is-last-child': (group === null || group === void 0 ? void 0 : group.offsetLeft) + 1 === columns.visibleColumns.length
|
22836
|
+
}];
|
22837
|
+
});
|
22838
|
+
var groupClass = (0,external_vue_namespaceObject.computed)(function () {
|
22839
|
+
return classList.value.concat([{
|
22840
|
+
'is-head-group': group === null || group === void 0 ? void 0 : group.isGroup,
|
22841
|
+
'is-head-group-child': !!(group !== null && group !== void 0 && group.parent)
|
22842
|
+
}]);
|
22843
|
+
});
|
22844
|
+
var getGroupRender = function getGroupRender() {
|
22845
|
+
return resolvePropVal(column, 'label', [index, column]);
|
22846
|
+
};
|
22719
22847
|
var getTH = function getTH() {
|
22848
|
+
if (group !== null && group !== void 0 && group.isGroup) {
|
22849
|
+
return (0,external_vue_namespaceObject.createVNode)("th", {
|
22850
|
+
"style": headStyle,
|
22851
|
+
"class": groupClass.value,
|
22852
|
+
"colspan": group === null || group === void 0 ? void 0 : group.thColspan,
|
22853
|
+
"rowspan": group === null || group === void 0 ? void 0 : group.thRowspan
|
22854
|
+
}, [getGroupRender()]);
|
22855
|
+
}
|
22720
22856
|
return (0,external_vue_namespaceObject.createVNode)("th", (0,external_vue_namespaceObject.mergeProps)({
|
22721
22857
|
"style": headStyle,
|
22722
|
-
"class": classList,
|
22723
|
-
"colspan":
|
22858
|
+
"class": classList.value,
|
22859
|
+
"colspan": group === null || group === void 0 ? void 0 : group.thColspan,
|
22724
22860
|
"data-id": columns.getColumnId(column),
|
22725
|
-
"rowspan":
|
22861
|
+
"rowspan": group === null || group === void 0 ? void 0 : group.thRowspan,
|
22726
22862
|
"onClick": function onClick() {
|
22727
22863
|
return handleColumnHeadClick();
|
22728
22864
|
}
|
@@ -22913,21 +23049,20 @@ function use_render_isSlot(s) {
|
|
22913
23049
|
};
|
22914
23050
|
return (0,external_vue_namespaceObject.createVNode)(external_vue_namespaceObject.Fragment, null, [(0,external_vue_namespaceObject.createVNode)("thead", {
|
22915
23051
|
"style": rowStyle
|
22916
|
-
}, [
|
22917
|
-
"
|
22918
|
-
|
22919
|
-
|
22920
|
-
|
22921
|
-
|
22922
|
-
|
22923
|
-
|
22924
|
-
|
22925
|
-
|
22926
|
-
|
22927
|
-
|
22928
|
-
|
22929
|
-
|
22930
|
-
}
|
23052
|
+
}, [columns.columnGroup.map(function (cols, rowIndex) {
|
23053
|
+
return (0,external_vue_namespaceObject.createVNode)("tr", null, [cols.map(function (column, index) {
|
23054
|
+
var _useHead = use_head({
|
23055
|
+
props: props,
|
23056
|
+
ctx: ctx,
|
23057
|
+
columns: columns,
|
23058
|
+
column: column,
|
23059
|
+
index: index,
|
23060
|
+
rows: rows,
|
23061
|
+
rowIndex: rowIndex
|
23062
|
+
}),
|
23063
|
+
getTH = _useHead.getTH;
|
23064
|
+
return getTH();
|
23065
|
+
})]);
|
22931
23066
|
})])]);
|
22932
23067
|
};
|
22933
23068
|
var renderColumns = function renderColumns() {
|
@@ -23935,6 +24070,7 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
|
|
23935
24070
|
setFootHeight = _useLayout.setFootHeight,
|
23936
24071
|
setDragOffsetX = _useLayout.setDragOffsetX,
|
23937
24072
|
setOffsetRight = _useLayout.setOffsetRight,
|
24073
|
+
setHeaderRowCount = _useLayout.setHeaderRowCount,
|
23938
24074
|
refBody = _useLayout.refBody,
|
23939
24075
|
refRoot = _useLayout.refRoot;
|
23940
24076
|
/**
|
@@ -23969,7 +24105,9 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
|
|
23969
24105
|
var initTableColumns = function initTableColumns() {
|
23970
24106
|
var _instance$subTree$chi, _instance$subTree;
|
23971
24107
|
var children = (_instance$subTree$chi = (_instance$subTree = instance.subTree) === null || _instance$subTree === void 0 ? void 0 : _instance$subTree.children) !== null && _instance$subTree$chi !== void 0 ? _instance$subTree$chi : [];
|
23972
|
-
columns.debounceUpdateColumns(resolveColumns(children))
|
24108
|
+
columns.debounceUpdateColumns(resolveColumns(children), function () {
|
24109
|
+
setHeaderRowCount(columns.columnGroup.length);
|
24110
|
+
});
|
23973
24111
|
};
|
23974
24112
|
(0,external_vue_namespaceObject.provide)(PROVIDE_KEY_INIT_COL, initTableColumns);
|
23975
24113
|
var _useFixedColumn = use_fixed_column(props, columns),
|
@@ -23980,8 +24118,8 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
|
|
23980
24118
|
* 计算每一列的实际宽度
|
23981
24119
|
*/
|
23982
24120
|
var computedColumnRect = function computedColumnRect() {
|
23983
|
-
var
|
23984
|
-
var width = (
|
24121
|
+
var _ref, _refRoot$value;
|
24122
|
+
var width = (_ref = ((_refRoot$value = refRoot.value) === null || _refRoot$value === void 0 ? void 0 : _refRoot$value.offsetWidth) - (props.scrollbar ? 1 : SCROLLY_WIDTH)) !== null && _ref !== void 0 ? _ref : 0;
|
23985
24123
|
columns.resolveColsCalcWidth(width);
|
23986
24124
|
resolveFixedColumnStyle();
|
23987
24125
|
};
|
@@ -24048,23 +24186,42 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
|
|
24048
24186
|
setOffsetRight();
|
24049
24187
|
});
|
24050
24188
|
};
|
24189
|
+
var observerResizing = (0,external_vue_namespaceObject.ref)(false);
|
24190
|
+
var observerResizingTimer = null;
|
24051
24191
|
use_observer_resize(refRoot, function () {
|
24052
|
-
|
24053
|
-
|
24054
|
-
|
24055
|
-
|
24056
|
-
|
24057
|
-
|
24058
|
-
|
24192
|
+
if (!observerResizing.value) {
|
24193
|
+
var _refBody$value2;
|
24194
|
+
observerResizing.value = true;
|
24195
|
+
if ((props.height === '100%' || props.virtualEnabled) && (0,lodash.isElement)(refRoot.value)) {
|
24196
|
+
if (isResizeBodyHeight.value) {
|
24197
|
+
setTimeout(function () {
|
24198
|
+
isResizeBodyHeight.value = false;
|
24199
|
+
});
|
24200
|
+
return;
|
24201
|
+
}
|
24202
|
+
var tableHeight = refRoot.value.offsetHeight;
|
24203
|
+
isResizeBodyHeight.value = true;
|
24204
|
+
setBodyHeight(tableHeight);
|
24205
|
+
setOffsetRight();
|
24059
24206
|
}
|
24060
|
-
|
24061
|
-
isResizeBodyHeight.value = true;
|
24062
|
-
setBodyHeight(tableHeight);
|
24207
|
+
computedColumnRect();
|
24063
24208
|
setOffsetRight();
|
24209
|
+
(_refBody$value2 = refBody.value) === null || _refBody$value2 === void 0 || _refBody$value2.scrollTo(0, 0);
|
24210
|
+
return;
|
24064
24211
|
}
|
24065
|
-
|
24066
|
-
|
24067
|
-
|
24212
|
+
observerResizingTimer && clearTimeout(observerResizingTimer);
|
24213
|
+
observerResizingTimer = setTimeout(function () {
|
24214
|
+
observerResizing.value = false;
|
24215
|
+
});
|
24216
|
+
});
|
24217
|
+
(0,external_vue_namespaceObject.watch)(function () {
|
24218
|
+
return [props.columns];
|
24219
|
+
}, function () {
|
24220
|
+
columns.debounceUpdateColumns(props.columns, function () {
|
24221
|
+
setHeaderRowCount(columns.columnGroup.length);
|
24222
|
+
});
|
24223
|
+
}, {
|
24224
|
+
immediate: true
|
24068
24225
|
});
|
24069
24226
|
(0,external_vue_namespaceObject.watch)(function () {
|
24070
24227
|
return [dragOffsetX.value];
|
@@ -24101,12 +24258,9 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
|
|
24101
24258
|
return [pagination.options.count, pagination.options.limit, pagination.options.current, props.data];
|
24102
24259
|
}, function () {
|
24103
24260
|
setTableData();
|
24104
|
-
(0,external_vue_namespaceObject.nextTick)(function () {
|
24105
|
-
var _refBody$value3;
|
24106
|
-
(_refBody$value3 = refBody.value) === null || _refBody$value3 === void 0 || _refBody$value3.scrollTo(0, 1);
|
24107
|
-
});
|
24108
24261
|
}, {
|
24109
|
-
immediate: true
|
24262
|
+
immediate: true,
|
24263
|
+
deep: true
|
24110
24264
|
});
|
24111
24265
|
ctx.expose({
|
24112
24266
|
setRowExpand: rows.setRowExpand,
|