bkui-vue 2.0.1-beta.43 → 2.0.1-beta.45

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.
@@ -17775,9 +17775,7 @@ var tableProps = {
17775
17775
  /**
17776
17776
  * 单元格数据为空展示
17777
17777
  */
17778
- emptyCellText: shared_namespaceObject.PropTypes.oneOfType([shared_namespaceObject.PropTypes.string, shared_namespaceObject.PropTypes.func.def(function () {
17779
- return '';
17780
- })]).def(''),
17778
+ emptyCellText: shared_namespaceObject.PropTypes.oneOfType([shared_namespaceObject.PropTypes.string, shared_namespaceObject.PropTypes.func]).def(''),
17781
17779
  /**
17782
17780
  * 判定单元格是否为空
17783
17781
  * 支持数组:判定条件为 arr.some(item => item === cellText)
@@ -21392,7 +21390,9 @@ function use_layout_objectSpread(e) { for (var r = 1; r < arguments.length; r++)
21392
21390
  var scrollContentClass = (0,external_vue_namespaceObject.computed)(function () {
21393
21391
  return defineProperty_defineProperty(defineProperty_defineProperty({}, resolveClassName('table-body-content'), true), resolveClassName('stripe'), props.stripe);
21394
21392
  });
21395
- var fixedWrapperClass = resolveClassName('table-fixed');
21393
+ var fixedWrapperClass = (0,external_vue_namespaceObject.computed)(function () {
21394
+ return defineProperty_defineProperty(defineProperty_defineProperty({}, resolveClassName('table-fixed'), true), 'has-virtual-scroll', props.virtualEnabled);
21395
+ });
21396
21396
  var fixedBottomRow = resolveClassName('table-fixed-bottom');
21397
21397
  var fixedBottomLoadingStyle = (0,external_vue_namespaceObject.computed)(function () {
21398
21398
  var _props$fixedBottom$po, _props$fixedBottom3, _props$fixedBottom$he2, _props$fixedBottom4;
@@ -21445,7 +21445,7 @@ function use_layout_objectSpread(e) { for (var r = 1; r < arguments.length; r++)
21445
21445
  return [(0,external_vue_namespaceObject.createVNode)("div", {
21446
21446
  "class": resizeColumnClass
21447
21447
  }, null), (0,external_vue_namespaceObject.createVNode)("div", {
21448
- "class": fixedWrapperClass
21448
+ "class": fixedWrapperClass.value
21449
21449
  }, [fixedRows === null || fixedRows === void 0 ? void 0 : fixedRows()])];
21450
21450
  }
21451
21451
  });
@@ -23259,7 +23259,7 @@ function use_render_isSlot(s) {
23259
23259
  var renderAppendLastRow = function renderAppendLastRow() {
23260
23260
  var rowId = 'append-last-row';
23261
23261
  var rowStyle = [].concat(_toConsumableArray(formatPropAsArray(props.rowStyle, [])), [{
23262
- '--row-height': "".concat(getRowHeight(null, null), "px")
23262
+ '--row-height': "".concat(getRowHeight(null, null, 'append-last-row'), "px")
23263
23263
  }]);
23264
23264
  if (props.appendLastRow.type === 'default') {
23265
23265
  if (ctx.slots.appendLastRow) {
@@ -23313,9 +23313,13 @@ function use_render_isSlot(s) {
23313
23313
  return result;
23314
23314
  }), renderAppendLastRow()]);
23315
23315
  };
23316
- var getRowHeight = function getRowHeight(row, rowIndex) {
23316
+ var getRowHeight = function getRowHeight(row, rowIndex, type) {
23317
23317
  if (typeof props.rowHeight === 'function' || /^\d+/.test("".concat(props.rowHeight))) {
23318
- return resolvePropVal(props, 'rowHeight', ['tbody', row, rowIndex]);
23318
+ return resolvePropVal(props, 'rowHeight', [{
23319
+ index: rowIndex,
23320
+ type: type !== null && type !== void 0 ? type : 'tbody',
23321
+ row: row
23322
+ }]);
23319
23323
  }
23320
23324
  var _settings$options = settings.options,
23321
23325
  size = _settings$options.size,
@@ -24153,6 +24157,79 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
24153
24157
  immediate: true,
24154
24158
  deep: true
24155
24159
  });
24160
+ var getRenderContent = function getRenderContent() {
24161
+ var _slot2;
24162
+ var _ctx$slots$settings, _ctx$slots$settings2, _ctx$slots, _ctx$slots$setting, _ctx$slots2;
24163
+ return (_ctx$slots$settings = (_ctx$slots$settings2 = (_ctx$slots = ctx.slots).settings) === null || _ctx$slots$settings2 === void 0 ? void 0 : _ctx$slots$settings2.call(_ctx$slots)) !== null && _ctx$slots$settings !== void 0 ? _ctx$slots$settings : (0,external_vue_namespaceObject.createVNode)(external_vue_namespaceObject.Fragment, null, [(0,external_vue_namespaceObject.createVNode)("div", {
24164
+ "class": "setting-head"
24165
+ }, [(0,external_vue_namespaceObject.createVNode)("span", {
24166
+ "class": "head-title"
24167
+ }, [t.value.setting.title]), (0,external_vue_namespaceObject.createVNode)(_namespaceObject.CloseLine, {
24168
+ "class": "icon-close-action",
24169
+ "onClick": handleCancelClick
24170
+ }, null)]), (0,external_vue_namespaceObject.createVNode)("div", {
24171
+ "class": "setting-body"
24172
+ }, [(0,external_vue_namespaceObject.createVNode)("div", {
24173
+ "class": "setting-body-title"
24174
+ }, [(0,external_vue_namespaceObject.createVNode)("div", null, [(0,external_vue_namespaceObject.createVNode)("span", {
24175
+ "class": "field-setting-label"
24176
+ }, [t.value.setting.fields.title]), isLimit.value ? (0,external_vue_namespaceObject.createVNode)("span", {
24177
+ "class": "limit"
24178
+ }, [t.value.setting.fields.subtitle(options.limit)]) : '']), isLimit.value ? '' : (0,external_vue_namespaceObject.createVNode)("span", {
24179
+ "class": "check-all",
24180
+ "onClick": handleCheckAllClick
24181
+ }, [(0,external_vue_namespaceObject.createVNode)(checkbox_namespaceObject["default"], {
24182
+ "indeterminate": Boolean(indeterminate.value),
24183
+ "label": t.value.setting.fields.selectAll,
24184
+ "modelValue": checkedFields.value.length > 0
24185
+ }, {
24186
+ "default": function _default() {
24187
+ return [t.value.setting.fields.selectAll];
24188
+ }
24189
+ })])]), (0,external_vue_namespaceObject.createVNode)(checkbox_namespaceObject.BkCheckboxGroup, {
24190
+ "class": "setting-body-fields",
24191
+ "modelValue": checkedFields.value,
24192
+ "onUpdate:modelValue": function onUpdateModelValue($event) {
24193
+ return checkedFields.value = $event;
24194
+ }
24195
+ }, use_settings_isSlot(_slot2 = renderFields.value.map(function (item, index) {
24196
+ var _slot;
24197
+ return (0,external_vue_namespaceObject.createVNode)("div", {
24198
+ "class": "field-item"
24199
+ }, [(0,external_vue_namespaceObject.createVNode)(checkbox_namespaceObject["default"], {
24200
+ "checked": checkedFields.value.includes(resolvedColVal(item, index)),
24201
+ "disabled": isItemReadonly(item, index),
24202
+ "label": resolvedColVal(item, index)
24203
+ }, use_settings_isSlot(_slot = resolvePropVal(item, ['name', 'label'], [item, index])) ? _slot : {
24204
+ "default": function _default() {
24205
+ return [_slot];
24206
+ }
24207
+ })]);
24208
+ })) ? _slot2 : {
24209
+ "default": function _default() {
24210
+ return [_slot2];
24211
+ }
24212
+ }), (_ctx$slots$setting = (_ctx$slots2 = ctx.slots).setting) === null || _ctx$slots$setting === void 0 ? void 0 : _ctx$slots$setting.call(_ctx$slots2), showLineHeight.value ? (0,external_vue_namespaceObject.createVNode)("div", {
24213
+ "class": "setting-body-line-height"
24214
+ }, [t.value.setting.lineHeight.title, (0,external_vue_namespaceObject.createTextVNode)("\uFF1A"), renderSize()]) : '']), (0,external_vue_namespaceObject.createVNode)("div", {
24215
+ "class": "setting-footer"
24216
+ }, [(0,external_vue_namespaceObject.createVNode)(button_namespaceObject["default"], {
24217
+ "style": buttonStyle,
24218
+ "theme": "primary",
24219
+ "onClick": handleSaveClick
24220
+ }, {
24221
+ "default": function _default() {
24222
+ return [t.value.setting.options.ok];
24223
+ }
24224
+ }), (0,external_vue_namespaceObject.createVNode)(button_namespaceObject["default"], {
24225
+ "style": buttonStyle,
24226
+ "onClick": handleCancelClick
24227
+ }, {
24228
+ "default": function _default() {
24229
+ return [t.value.setting.options.cancel];
24230
+ }
24231
+ })])]);
24232
+ };
24156
24233
  var renderSettings = function renderSettings() {
24157
24234
  var _options$trigger;
24158
24235
  if (!props.settings) {
@@ -24176,79 +24253,9 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
24176
24253
  }, null)]);
24177
24254
  },
24178
24255
  content: function content() {
24179
- var _ctx$slots$setting, _ctx$slots;
24180
- var _slot2;
24181
24256
  return (0,external_vue_namespaceObject.createVNode)("div", {
24182
24257
  "class": "setting-content"
24183
- }, [(0,external_vue_namespaceObject.createVNode)("div", {
24184
- "class": "setting-head"
24185
- }, [(0,external_vue_namespaceObject.createVNode)("span", {
24186
- "class": "head-title"
24187
- }, [t.value.setting.title]), (0,external_vue_namespaceObject.createVNode)(_namespaceObject.CloseLine, {
24188
- "class": "icon-close-action",
24189
- "onClick": handleCancelClick
24190
- }, null)]), (0,external_vue_namespaceObject.createVNode)("div", {
24191
- "class": "setting-body"
24192
- }, [(0,external_vue_namespaceObject.createVNode)("div", {
24193
- "class": "setting-body-title"
24194
- }, [(0,external_vue_namespaceObject.createVNode)("div", null, [(0,external_vue_namespaceObject.createVNode)("span", {
24195
- "class": "field-setting-label"
24196
- }, [t.value.setting.fields.title]), isLimit.value ? (0,external_vue_namespaceObject.createVNode)("span", {
24197
- "class": "limit"
24198
- }, [t.value.setting.fields.subtitle(options.limit)]) : '']), isLimit.value ? '' : (0,external_vue_namespaceObject.createVNode)("span", {
24199
- "class": "check-all",
24200
- "onClick": handleCheckAllClick
24201
- }, [(0,external_vue_namespaceObject.createVNode)(checkbox_namespaceObject["default"], {
24202
- "indeterminate": Boolean(indeterminate.value),
24203
- "label": t.value.setting.fields.selectAll,
24204
- "modelValue": checkedFields.value.length > 0
24205
- }, {
24206
- "default": function _default() {
24207
- return [t.value.setting.fields.selectAll];
24208
- }
24209
- })])]), (0,external_vue_namespaceObject.createVNode)(checkbox_namespaceObject.BkCheckboxGroup, {
24210
- "class": "setting-body-fields",
24211
- "modelValue": checkedFields.value,
24212
- "onUpdate:modelValue": function onUpdateModelValue($event) {
24213
- return checkedFields.value = $event;
24214
- }
24215
- }, use_settings_isSlot(_slot2 = renderFields.value.map(function (item, index) {
24216
- var _slot;
24217
- return (0,external_vue_namespaceObject.createVNode)("div", {
24218
- "class": "field-item"
24219
- }, [(0,external_vue_namespaceObject.createVNode)(checkbox_namespaceObject["default"], {
24220
- "checked": checkedFields.value.includes(resolvedColVal(item, index)),
24221
- "disabled": isItemReadonly(item, index),
24222
- "label": resolvedColVal(item, index)
24223
- }, use_settings_isSlot(_slot = resolvePropVal(item, ['name', 'label'], [item, index])) ? _slot : {
24224
- "default": function _default() {
24225
- return [_slot];
24226
- }
24227
- })]);
24228
- })) ? _slot2 : {
24229
- "default": function _default() {
24230
- return [_slot2];
24231
- }
24232
- }), (_ctx$slots$setting = (_ctx$slots = ctx.slots).setting) === null || _ctx$slots$setting === void 0 ? void 0 : _ctx$slots$setting.call(_ctx$slots), showLineHeight.value ? (0,external_vue_namespaceObject.createVNode)("div", {
24233
- "class": "setting-body-line-height"
24234
- }, [t.value.setting.lineHeight.title, (0,external_vue_namespaceObject.createTextVNode)("\uFF1A"), renderSize()]) : '']), (0,external_vue_namespaceObject.createVNode)("div", {
24235
- "class": "setting-footer"
24236
- }, [(0,external_vue_namespaceObject.createVNode)(button_namespaceObject["default"], {
24237
- "style": buttonStyle,
24238
- "theme": "primary",
24239
- "onClick": handleSaveClick
24240
- }, {
24241
- "default": function _default() {
24242
- return [t.value.setting.options.ok];
24243
- }
24244
- }), (0,external_vue_namespaceObject.createVNode)(button_namespaceObject["default"], {
24245
- "style": buttonStyle,
24246
- "onClick": handleCancelClick
24247
- }, {
24248
- "default": function _default() {
24249
- return [t.value.setting.options.cancel];
24250
- }
24251
- })])]);
24258
+ }, [getRenderContent()]);
24252
24259
  }
24253
24260
  });
24254
24261
  };
@@ -24321,6 +24328,13 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
24321
24328
  setHeaderRowCount = _useLayout.setHeaderRowCount,
24322
24329
  refBody = _useLayout.refBody,
24323
24330
  refRoot = _useLayout.refRoot;
24331
+ var scrollTo = function scrollTo() {
24332
+ var _refBody$value;
24333
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
24334
+ args[_key] = arguments[_key];
24335
+ }
24336
+ return (_refBody$value = refBody.value) === null || _refBody$value === void 0 ? void 0 : _refBody$value.scrollTo.apply(_refBody$value, args);
24337
+ };
24324
24338
  /**
24325
24339
  * 设置字段结束,展示字段改变,设置表格偏移量为0
24326
24340
  * 避免太长横向滚动导致数据不可见
@@ -24328,8 +24342,7 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
24328
24342
  */
24329
24343
  var afterSetting = function afterSetting(fields) {
24330
24344
  if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0) {
24331
- var _refBody$value;
24332
- (_refBody$value = refBody.value) === null || _refBody$value === void 0 || _refBody$value.scrollTo(0, 0);
24345
+ scrollTo(0, 0);
24333
24346
  }
24334
24347
  };
24335
24348
  var settings = use_settings(props, ctx, columns, afterSetting);
@@ -24434,8 +24447,7 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
24434
24447
  (0,external_vue_namespaceObject.nextTick)(function () {
24435
24448
  setOffsetRight();
24436
24449
  if (resetScroll) {
24437
- var _refBody$value2;
24438
- (_refBody$value2 = refBody.value) === null || _refBody$value2 === void 0 || _refBody$value2.scrollTo(0, 0);
24450
+ scrollTo(0, 0);
24439
24451
  }
24440
24452
  });
24441
24453
  }, 64);
@@ -24443,7 +24455,6 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
24443
24455
  var observerResizingTimer = null;
24444
24456
  use_observer_resize(refRoot, function () {
24445
24457
  if (!observerResizing.value) {
24446
- var _refBody$value3;
24447
24458
  observerResizing.value = true;
24448
24459
  if ((props.height === '100%' || props.virtualEnabled) && (0,lodash.isElement)(refRoot.value)) {
24449
24460
  if (isResizeBodyHeight.value) {
@@ -24459,7 +24470,7 @@ var useSettings = function useSettings(props, ctx, columns, afterSetting) {
24459
24470
  }
24460
24471
  computedColumnRect();
24461
24472
  setOffsetRight();
24462
- (_refBody$value3 = refBody.value) === null || _refBody$value3 === void 0 || _refBody$value3.scrollTo(0, 0);
24473
+ scrollTo(0, 0);
24463
24474
  return;
24464
24475
  }
24465
24476
  observerResizingTimer && clearTimeout(observerResizingTimer);
@@ -1303,6 +1303,10 @@
1303
1303
  table-layout: fixed;
1304
1304
  align-self: flex-start;
1305
1305
  }
1306
+ .bk-table .bk-table-head table.bk-table-col-resizing th,
1307
+ .bk-table .bk-table-body table.bk-table-col-resizing th {
1308
+ cursor: col-resize !important;
1309
+ }
1306
1310
  .bk-table .bk-table-head table th,
1307
1311
  .bk-table .bk-table-body table th,
1308
1312
  .bk-table .bk-table-head table td,
@@ -1647,6 +1651,9 @@
1647
1651
  pointer-events: none;
1648
1652
  transform: translate(var(--translate-x), var(--translate-y));
1649
1653
  }
1654
+ .bk-table .bk-table-fixed.has-virtual-scroll {
1655
+ transform: translate(var(--translate-x), 0);
1656
+ }
1650
1657
  .bk-table .bk-table-fixed .column_fixed_right {
1651
1658
  box-shadow: var(--shadow-right);
1652
1659
  }
@@ -103,6 +103,12 @@
103
103
  table-layout: fixed;
104
104
  align-self: flex-start;
105
105
 
106
+ &.@{bk-prefix}-table-col-resizing {
107
+ th {
108
+ cursor: col-resize !important;
109
+ }
110
+ }
111
+
106
112
  th,
107
113
  td {
108
114
  height: var(--row-height);
@@ -506,6 +512,10 @@
506
512
  pointer-events: none;
507
513
  transform: translate(var(--translate-x), var(--translate-y));
508
514
 
515
+ &.has-virtual-scroll {
516
+ transform: translate(var(--translate-x), 0);
517
+ }
518
+
509
519
  .column_fixed_right {
510
520
  box-shadow: var(--shadow-right);
511
521
  }
@@ -1693,6 +1693,10 @@
1693
1693
  table-layout: fixed;
1694
1694
  align-self: flex-start;
1695
1695
  }
1696
+ .bk-table .bk-table-head table.bk-table-col-resizing th,
1697
+ .bk-table .bk-table-body table.bk-table-col-resizing th {
1698
+ cursor: col-resize !important;
1699
+ }
1696
1700
  .bk-table .bk-table-head table th,
1697
1701
  .bk-table .bk-table-body table th,
1698
1702
  .bk-table .bk-table-head table td,
@@ -2037,6 +2041,9 @@
2037
2041
  pointer-events: none;
2038
2042
  transform: translate(var(--translate-x), var(--translate-y));
2039
2043
  }
2044
+ .bk-table .bk-table-fixed.has-virtual-scroll {
2045
+ transform: translate(var(--translate-x), 0);
2046
+ }
2040
2047
  .bk-table .bk-table-fixed .column_fixed_right {
2041
2048
  box-shadow: var(--shadow-right);
2042
2049
  }
@@ -106,10 +106,10 @@ export declare const getColumnClass: (column: Column, colIndex?: number, uuid?:
106
106
  };
107
107
  export declare const getElementTextWidth: (element: HTMLElement, text?: string) => any;
108
108
  export declare const isColumnHidden: (settingFields: any, column: any, checked: any) => boolean;
109
- export declare const resolveColumnSpan: (column: Column, colIndex: number, row: Record<string, unknown>, rowIndex: number, key: string) => any;
109
+ export declare const resolveColumnSpan: (column: Column, colIndex: number, row: Record<string, unknown>, rowIndex: number, key: string) => number;
110
110
  export declare const resolveCellSpan: (column: Column, colIndex: number, row: Record<string, unknown>, rowIndex: number) => {
111
- colspan: any;
112
- rowspan: any;
111
+ colspan: number;
112
+ rowspan: number;
113
113
  };
114
114
  export declare const skipThisColumn: (columns: Column[], colIndex: number, row: Record<string, unknown>, rowIndex: number) => number | false;
115
115
  export declare const getSortFn: (column: any, sortType: any, format?: any[]) => ((_a: any, _b: any) => boolean) | ((a: Record<string, unknown>, b: Record<string, unknown>, index0: number, index1: number) => number);
@@ -17750,9 +17750,7 @@ var tableProps = {
17750
17750
  /**
17751
17751
  * 单元格数据为空展示
17752
17752
  */
17753
- emptyCellText: shared_namespaceObject.PropTypes.oneOfType([shared_namespaceObject.PropTypes.string, shared_namespaceObject.PropTypes.func.def(function () {
17754
- return '';
17755
- })]).def(''),
17753
+ emptyCellText: shared_namespaceObject.PropTypes.oneOfType([shared_namespaceObject.PropTypes.string, shared_namespaceObject.PropTypes.func]).def(''),
17756
17754
  /**
17757
17755
  * 判定单元格是否为空
17758
17756
  * 支持数组:判定条件为 arr.some(item => item === cellText)
package/lib/tree/index.js CHANGED
@@ -18319,10 +18319,11 @@ var getNodeItemStyle = function getNodeItemStyle(item, props, flatData) {
18319
18319
  var schema = flatData.schema;
18320
18320
  var depth = (_schema$get = schema.get(item)) === null || _schema$get === void 0 ? void 0 : _schema$get[NODE_ATTRIBUTES.DEPTH];
18321
18321
  if (showTree) {
18322
+ var args = ['node'];
18322
18323
  return _objectSpread({
18323
18324
  '--depth': depth
18324
18325
  }, typeof props.levelLine === 'function' ? {
18325
- '--level-line': getPropsOneOfBoolValueWithDefault(props, 'levelLine', item, DEFAULT_LEVLE_LINE, null, ['node'])
18326
+ '--level-line': getPropsOneOfBoolValueWithDefault(props, 'levelLine', item, DEFAULT_LEVLE_LINE, null, args)
18326
18327
  } : {});
18327
18328
  }
18328
18329
  return {};
@@ -17711,9 +17711,14 @@ function getMatchedIndex(maxCount, maxHeight, groupItemCount, callback) {
17711
17711
  var diffHeight = 0;
17712
17712
  var lastHeight = 0;
17713
17713
  for (; startIndex < maxCount; startIndex++) {
17714
- lastHeight = callback(startIndex, [startIndex * groupItemCount, (startIndex + 1) * groupItemCount, 'virtual']);
17714
+ lastHeight = callback({
17715
+ index: startIndex,
17716
+ items: [startIndex * groupItemCount, (startIndex + 1) * groupItemCount],
17717
+ type: 'virtual'
17718
+ });
17715
17719
  if (height + lastHeight > maxHeight) {
17716
17720
  diffHeight = maxHeight - height;
17721
+ startIndex = startIndex + Math.round(diffHeight / lastHeight);
17717
17722
  break;
17718
17723
  }
17719
17724
  height += lastHeight;
@@ -18083,6 +18088,7 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
18083
18088
  var listLength = (0,external_vue_namespaceObject.ref)(0);
18084
18089
  /** 实际高度,根据行高和总行数计算出来的实际高度 */
18085
18090
  var innerHeight = (0,external_vue_namespaceObject.ref)(0);
18091
+ var contentHeight = (0,external_vue_namespaceObject.ref)(0);
18086
18092
  var virtualRoot = (0,external_vue_namespaceObject.ref)(null);
18087
18093
  var _useScrollbar = use_scrollbar(props),
18088
18094
  init = _useScrollbar.init,
@@ -18101,6 +18107,30 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
18101
18107
  groupItemCount: props.groupItemCount
18102
18108
  });
18103
18109
  var calcList = (0,external_vue_namespaceObject.ref)([]);
18110
+ var getLastPageIndex = function getLastPageIndex() {
18111
+ // @ts-ignore
18112
+ var elHeight = virtualRoot.value.offsetHeight;
18113
+ var startIndex = listLength.value;
18114
+ var rowsHeight = 0;
18115
+ var lastHeight = 0;
18116
+ var diffHeight = 0;
18117
+ for (; startIndex > 0; startIndex--) {
18118
+ lastHeight = props.lineHeight({
18119
+ index: startIndex,
18120
+ items: [startIndex, startIndex * props.groupItemCount],
18121
+ type: 'virtual'
18122
+ });
18123
+ rowsHeight = rowsHeight + lastHeight;
18124
+ if (rowsHeight > elHeight) {
18125
+ diffHeight = rowsHeight - elHeight;
18126
+ break;
18127
+ }
18128
+ }
18129
+ return {
18130
+ diffHeight: diffHeight,
18131
+ startIndex: startIndex
18132
+ };
18133
+ };
18104
18134
  /** 指令触发Scroll事件,计算当前startIndex & endIndex & scrollTop & translateY */
18105
18135
  var handleScrollCallback = function handleScrollCallback(event, startIndex, endIndex, scrollTop, translateY, scrollLeft, pos) {
18106
18136
  var translateX = scrollLeft;
@@ -18118,13 +18148,17 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
18118
18148
  var total = localList.value.length;
18119
18149
  if (total < end) {
18120
18150
  end = total;
18121
- start = end - Math.floor(refRoot.value.offsetHeight / props.lineHeight);
18122
- start = start < 0 ? 0 : start;
18123
- }
18124
- if (end > total) {
18125
- end = total;
18126
- start = end - Math.floor(refRoot.value.offsetHeight / props.lineHeight);
18151
+ if (typeof props.lineHeight === 'function') {
18152
+ start = getLastPageIndex().startIndex;
18153
+ } else {
18154
+ start = end - Math.floor(refRoot.value.offsetHeight / props.lineHeight);
18155
+ start = start < 0 ? 0 : start;
18156
+ }
18127
18157
  }
18158
+ // if (end > total) {
18159
+ // end = total;
18160
+ // start = end - Math.floor(refRoot.value.offsetHeight / props.lineHeight);
18161
+ // }
18128
18162
  var value = localList.value.slice(start, end);
18129
18163
  calcList.value = value;
18130
18164
  if (event) {
@@ -18172,7 +18206,11 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
18172
18206
  innerHeight.value = 0;
18173
18207
  var fnValue = 0;
18174
18208
  for (var i = 0; i < listLength.value; i++) {
18175
- var fnVal = props.lineHeight.call(_this, i, list.slice(i * props.groupItemCount, props.groupItemCount));
18209
+ var fnVal = props.lineHeight.apply(_this, [{
18210
+ index: i,
18211
+ type: 'virtual',
18212
+ items: [i * props.groupItemCount, props.groupItemCount]
18213
+ }]);
18176
18214
  fnValue += typeof fnVal === 'number' ? fnVal : 0;
18177
18215
  }
18178
18216
  innerHeight.value = fnValue;
@@ -18182,6 +18220,7 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
18182
18220
  } else {
18183
18221
  innerHeight.value = props.abosuteHeight;
18184
18222
  }
18223
+ setContentHeight();
18185
18224
  };
18186
18225
  /** 列表数据重置之后的处理事项 */
18187
18226
  var afterListDataReset = function afterListDataReset() {
@@ -18220,9 +18259,9 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
18220
18259
  minHeight: props.minHeight ? "".concat(props.minHeight, "px") : false
18221
18260
  }, props.scrollPosition === 'container' ? innerContentStyle.value : {}), props.wrapperStyle);
18222
18261
  });
18223
- var contentHeight = (0,external_vue_namespaceObject.computed)(function () {
18224
- return innerHeight.value < props.minHeight ? props.minHeight : innerHeight.value;
18225
- });
18262
+ var setContentHeight = function setContentHeight() {
18263
+ contentHeight.value = innerHeight.value < props.minHeight ? props.minHeight : innerHeight.value;
18264
+ };
18226
18265
  var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
18227
18266
  resolveClassName = _usePrefix.resolveClassName;
18228
18267
  /** 外层样式列表 */
@@ -18247,7 +18286,7 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
18247
18286
  var _useFixTop = use_fix_top(props, scrollTo),
18248
18287
  fixToTop = _useFixTop.fixToTop;
18249
18288
  (0,external_vue_namespaceObject.watch)(function () {
18250
- return [contentHeight.value, props.list];
18289
+ return [props.list];
18251
18290
  }, function () {
18252
18291
  var _instance3;
18253
18292
  (_instance3 = instance) === null || _instance3 === void 0 || _instance3.setBinding(binding);
@@ -1,4 +1,8 @@
1
- export declare function getMatchedIndex(maxCount: number, maxHeight: number, groupItemCount: number, callback: (index: number, items: (number | string)[]) => 0): {
1
+ export declare function getMatchedIndex(maxCount: number, maxHeight: number, groupItemCount: number, callback: (agrs: {
2
+ index: number;
3
+ items: number[];
4
+ type: string;
5
+ }) => 0): {
2
6
  startIndex: number;
3
7
  height: number;
4
8
  diffHeight: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bkui-vue",
3
- "version": "2.0.1-beta.43",
3
+ "version": "2.0.1-beta.45",
4
4
  "workspaces": [
5
5
  "packages/**",
6
6
  "scripts/cli",