zmdms-webui 2.4.6 → 2.4.8

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.
@@ -112,7 +112,6 @@ function CanvasTable(props) {
112
112
  }), finalDataSource = _z.finalDataSource, hasSummaryRow = _z.hasSummaryRow;
113
113
  // 自动高度计算(需要在容器尺寸计算之前)
114
114
  var autoHeight = useCanvasTableAutoHeight(isAutoScrollY, autoScrollYMarginBottom, canvasTableId);
115
- console.log("autoHeight", autoHeight);
116
115
  // 监听容器尺寸变化(提前计算,用于列宽自适应)
117
116
  var containerSize = useContainerSize({
118
117
  containerRef: containerRef,
@@ -789,6 +789,8 @@ var useTableRender = function (params) {
789
789
  if (onlyFixed === void 0) { onlyFixed = false; }
790
790
  ctx.strokeStyle = COLORS.border;
791
791
  ctx.lineWidth = 1;
792
+ // 计算实际数据行数(只绘制到有数据的地方)
793
+ var dataRowCount = processedDataSource.length;
792
794
  // 绘制表头底部边框(只在非fixed时绘制一次,使用2px更明显)
793
795
  if (!onlyFixed) {
794
796
  ctx.lineWidth = 1;
@@ -798,6 +800,8 @@ var useTableRender = function (params) {
798
800
  ctx.stroke();
799
801
  ctx.lineWidth = 1; // 恢复为1px
800
802
  }
803
+ // 计算实际数据区域的底部位置
804
+ var dataBottomY = Math.min(headerHeight + dataRowCount * rowHeight - scrollState.scrollTop, displayHeight);
801
805
  // 绘制垂直边框(只绘制body部分,从headerHeight开始,表头边框在drawHeaderCell中绘制)
802
806
  columnRenderInfos.forEach(function (info, colIndex) {
803
807
  var x = info.x, width = info.width, fixed = info.fixed, fixedLeft = info.fixedLeft;
@@ -814,7 +818,8 @@ var useTableRender = function (params) {
814
818
  if (drawX >= 0 && drawX <= displayWidth) {
815
819
  ctx.beginPath();
816
820
  ctx.moveTo(drawX, headerHeight);
817
- ctx.lineTo(drawX, displayHeight);
821
+ // 只绘制到数据区域的底部,而不是整个容器高度
822
+ ctx.lineTo(drawX, dataBottomY);
818
823
  ctx.stroke();
819
824
  }
820
825
  });
@@ -851,8 +856,8 @@ var useTableRender = function (params) {
851
856
  });
852
857
  }
853
858
  };
854
- // 绘制水平边框
855
- for (var i = startRow; i <= endRow; i++) {
859
+ // 绘制水平边框(只绘制实际数据行的边框)
860
+ for (var i = startRow; i <= endRow && i <= dataRowCount; i++) {
856
861
  _loop_1(i);
857
862
  }
858
863
  // 为合并单元格绘制底部边框
@@ -1361,6 +1366,8 @@ var useTableRender = function (params) {
1361
1366
  hoverRow: state.hoverRowIndex,
1362
1367
  selection: state.cellSelection,
1363
1368
  resizing: resizeState === null || resizeState === void 0 ? void 0 : resizeState.isResizing,
1369
+ sortOrder: state.sortOrder,
1370
+ sortField: state.sortField,
1364
1371
  });
1365
1372
  // 如果关键参数没有变化,跳过重绘
1366
1373
  if (lastRenderParamsRef.current === renderParamsHash) {
@@ -365,7 +365,7 @@ interface IElectronSignaturesProps extends IElectronSignaturesItem, IElectronSig
365
365
  /**
366
366
  * 是否需要获取公司id
367
367
  */
368
- needOrganizationId?: string;
368
+ needOrganizationId?: boolean;
369
369
  }
370
370
  /**
371
371
  * 群杰选中数据相关类型
@@ -218,7 +218,7 @@ function useScuRfresh() {
218
218
  * 如果排序改变了数据源,那么数据没法恢复到初始状态
219
219
  */
220
220
  function useCustomSort(dataSource, onTableChange, options) {
221
- var refreshScuCell = options.refreshScuCell, rowKey = options.rowKey, serviceOrder = options.serviceOrder, isOrderUpdateData = options.isOrderUpdateData;
221
+ var refreshScuCell = options.refreshScuCell, rowKey = options.rowKey, serviceOrder = options.serviceOrder, isOrderUpdateData = options.isOrderUpdateData, isAutoMerge = options.isAutoMerge;
222
222
  // 排序的数据
223
223
  var _a = useState(undefined), order = _a[0], setOrder = _a[1];
224
224
  var isSelfChange = useRef(false);
@@ -226,6 +226,8 @@ function useCustomSort(dataSource, onTableChange, options) {
226
226
  var innerOrderDataSource = useRef();
227
227
  var _b = useState(null), sortDataSource = _b[0], setSortDataSource = _b[1];
228
228
  var customSortHandle = useCallback(function (info, options) {
229
+ if (isAutoMerge)
230
+ return;
229
231
  if (Array.isArray(dataSource) && dataSource.length > 1) {
230
232
  var field_1 = info.field, order_1 = info.order;
231
233
  var sorterHandle = (options || {}).sorterHandle;
@@ -301,6 +303,7 @@ function useCustomSort(dataSource, onTableChange, options) {
301
303
  rowKey,
302
304
  serviceOrder,
303
305
  isOrderUpdateData,
306
+ isAutoMerge,
304
307
  ]);
305
308
  /**
306
309
  * 表格数据更新的时候 重置下当前排序的数据 以及 排序的方式
@@ -70,6 +70,7 @@ var Table = function (props) {
70
70
  rowKey: props === null || props === void 0 ? void 0 : props.rowKey,
71
71
  serviceOrder: serviceOrder,
72
72
  isOrderUpdateData: isOrderUpdateData,
73
+ isAutoMerge: isAutoMerge,
73
74
  }), order = _t.order, setOrder = _t.setOrder, customSortHandle = _t.customSortHandle, sortDataSource = _t.sortDataSource;
74
75
  // 当前表格展示的数据
75
76
  // 如果开启了前端排序的话,排序后的数据,可能会影响到很多地方。
@@ -587,7 +587,7 @@ function sortRecords(_a) {
587
587
  }
588
588
  // 否则保持原样
589
589
  else {
590
- result = __spreadArray([], records, true);
590
+ result = records;
591
591
  }
592
592
  return result;
593
593
  }
@@ -725,17 +725,6 @@ function sortByDimensions(records, dimensionKeys, order, columns) {
725
725
  // 如果有明确的排序配置,使用它
726
726
  sortConfig = { field: order.field, order: order.order };
727
727
  }
728
- else {
729
- // 如果没有明确排序,检查维度字段是否有自定义sorter,优先使用第一个有sorter的字段
730
- for (var _i = 0, dimensionKeys_1 = dimensionKeys; _i < dimensionKeys_1.length; _i++) {
731
- var dimensionKey = dimensionKeys_1[_i];
732
- var column = findColumnByKey(dimensionKey);
733
- if (column && typeof column.sorter === "function") {
734
- sortConfig = { field: dimensionKey, order: "ascend" };
735
- break; // 找到第一个有sorter的字段就使用,按维度顺序优先
736
- }
737
- }
738
- }
739
728
  return groupByDimensionsHierarchical(records, dimensionKeys, 0, sortConfig);
740
729
  }
741
730
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zmdms-webui",
3
- "version": "2.4.6",
3
+ "version": "2.4.8",
4
4
  "private": false,
5
5
  "main": "dist/index.es.js",
6
6
  "module": "dist/index.es.js",