@indfnd/common 1.0.45 → 1.0.51

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/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [1.0.51](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.0.50...v1.0.51) (2024-09-06)
6
+
7
+
8
+ ### Features
9
+
10
+ * 表格导出增加预览 ([a4ebae7](http://git.inspur.com/imp-ec/ind-front/ind-common-front/commit/a4ebae7f11249af5c9b6a2072a6ef6d2fb10cfe7))
11
+
12
+ ### [1.0.50](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.0.49...v1.0.50) (2024-09-05)
13
+
14
+ ### [1.0.49](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.0.48...v1.0.49) (2024-09-05)
15
+
16
+ ### [1.0.48](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.0.47...v1.0.48) (2024-09-05)
17
+
18
+ ### [1.0.47](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.0.46...v1.0.47) (2024-09-05)
19
+
20
+ ### [1.0.46](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.0.45...v1.0.46) (2024-09-05)
21
+
22
+
23
+ ### Features
24
+
25
+ * 附件预览 ([d8cd3a4](http://git.inspur.com/imp-ec/ind-front/ind-common-front/commit/d8cd3a469b8f261e1970ab974405446dafb8d8be))
26
+
5
27
  ### [1.0.45](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.0.44...v1.0.45) (2024-09-02)
6
28
 
7
29
  ### [1.0.44](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.0.43...v1.0.44) (2024-08-28)
@@ -1,8 +1,8 @@
1
1
  import { Button as Button$1, ButtonGroup as ButtonGroup$1, Input, Drawer as Drawer$1, Dropdown as Dropdown$1, Modal as Modal$1, Form, FormItem, Select as Select$1, Option, Row, Col, Menu, MenuItem, Badge, DropdownMenu, DropdownItem, Submenu, Tag, Header, Layout, Content, Spin, Poptip as Poptip$1, CheckboxGroup, Checkbox, RadioGroup, Radio, Card, Message, LoadingBar } from "view-design";
2
- import { isNil, formatDate as formatDate$1, useConfig, getQuarterNum, formatQuarter, str2Date, isDate, isArray, checkIdCard, checkVehicleNo, checkPhone, getDictMapApi, axios, isFunction, isString, uuid, exportJsonToExcel as exportJsonToExcel$1, importJsonFromExcel, on, off, deleteMenuHistoryApi, deleteMenuCollectApi, getMenuHistoryApi, getMenuCollectApi, getPermissionCache, getLocalStorage, getSessionStorage, listItemTreeApi, getPriceInfo, MIME_TYPE, base64ToBlob, putOssFileApi, isEqual, getCaptchaURL, guid, setLocalStorage, removeLocalStorage, clearSessionStorage, cryptor, getPreviewUrlApi, getToken, putOssFileUrl, getOssFileUrl, responseInterceptors, listComTreeApi, listUserTreeApi, UC_ENUM, config as config$1, setToken, loginApi, clearUserInfoCache, clearPermissionCache, logoutApi, getUserInfoCache, getUserInfoApi, setUserInfoCache, setSessionStorage, getAppListApi, getPermissionApi, setPermissionCache, menuHistoryApi, addMenuCollectApi, removeMenuCollectApi, getIndexDescCache, listIndexDescApi, setIndexDescCache } from "@indfnd/utils";
2
+ import { isNil, putOssFileApi, formatDate as formatDate$1, useConfig, getQuarterNum, formatQuarter, str2Date, isDate, isArray, checkIdCard, checkVehicleNo, checkPhone, getDictMapApi, axios, isFunction, isString, uuid, exportJsonToExcel as exportJsonToExcel$1, importJsonFromExcel, on, off, deleteMenuHistoryApi, deleteMenuCollectApi, getMenuHistoryApi, getMenuCollectApi, getPermissionCache, getLocalStorage, getSessionStorage, listItemTreeApi, getPriceInfo, MIME_TYPE, base64ToBlob, isEqual, getCaptchaURL, guid, setLocalStorage, removeLocalStorage, clearSessionStorage, cryptor, getPreviewUrlApi, getToken, putOssFileUrl, getOssFileUrl, responseInterceptors, listComTreeApi, listUserTreeApi, UC_ENUM, config as config$1, setToken, loginApi, clearUserInfoCache, clearPermissionCache, logoutApi, getUserInfoCache, getUserInfoApi, setUserInfoCache, setSessionStorage, getAppListApi, getPermissionApi, setPermissionCache, menuHistoryApi, addMenuCollectApi, removeMenuCollectApi, getIndexDescCache, listIndexDescApi, setIndexDescCache } from "@indfnd/utils";
3
3
  import Vue$1 from "vue";
4
4
  const name$1 = "@indfnd/common";
5
- const version = "1.0.44";
5
+ const version = "1.0.50";
6
6
  const author = "huxuetong";
7
7
  const publishConfig = {
8
8
  registry: "https://registry.npmjs.org/"
@@ -43160,7 +43160,9 @@ function getAgColumnTitleAndData({ columns, datas }) {
43160
43160
  }
43161
43161
  calcColumns(columnsClo, columnsCalc);
43162
43162
  var columnAlign = columnsCalc.map((d) => d.align || "left");
43163
- var columnType = columnsCalc.map((d) => d.dataType == "percent" ? "p" : d.align == "right" || d.align == "rightNum" ? "n" : "s");
43163
+ var columnType = columnsCalc.map(
43164
+ (d) => d.dataType == "percent" ? "p" : d.align == "right" || d.align == "rightNum" ? "n" : "s"
43165
+ );
43164
43166
  var columnWidth = columnsCalc.map(
43165
43167
  (d) => d.excelWidth ? d.excelWidth : d.width ? Math.floor(d.width / 10) : 10
43166
43168
  );
@@ -43463,6 +43465,124 @@ function exportJsonToExcel(excelData) {
43463
43465
  });
43464
43466
  }).catch((err) => console.log(err));
43465
43467
  }
43468
+ function previewJsonToExcel(excelData) {
43469
+ var calcExportDatas = getAgColumnTitleAndData(excelData);
43470
+ var previewUrl = "";
43471
+ console.log("calcExportDatas", calcExportDatas);
43472
+ var title = excelData.title;
43473
+ var titleDeepth = calcExportDatas.deepth;
43474
+ var columnAlign = excelData.columnAlign || calcExportDatas.columnAlign;
43475
+ var columnType = excelData.columnType || calcExportDatas.columnType;
43476
+ var columnTitle = calcExportDatas.columnTitle;
43477
+ var columnWidth = excelData.columnWidth || calcExportDatas.columnWidth;
43478
+ var columnCount = columnAlign.length;
43479
+ var paramLeft = excelData.paramLeft;
43480
+ var paramRight = excelData.paramRight;
43481
+ var jsonData = calcExportDatas.exportData;
43482
+ var numberFormat = excelData.numberFormat || calcExportDatas.numberFormat;
43483
+ XlsxPopulate.fromBlankAsync().then((workbook) => {
43484
+ var sheet = workbook.sheet("Sheet1");
43485
+ for (var i = 0; i < columnCount; i++) {
43486
+ sheet.column(i + 1).width(columnWidth[i] == 0 ? 10 : columnWidth[i]);
43487
+ }
43488
+ var titleRange = sheet.range(1, 1, 1, columnCount);
43489
+ titleRange.merged(true);
43490
+ titleRange.style(titleStyle);
43491
+ titleRange.cell(0, 0).value(title);
43492
+ sheet.row(1).height(titleHeight);
43493
+ var rowsNow = 2;
43494
+ if (!!excelData.paramLeft || !!excelData.paramRight) {
43495
+ var paramLeftRange = sheet.range(2, 1, 2, Math.round(columnCount / 2));
43496
+ paramLeftRange.cell(0, 0).value(paramLeft || "");
43497
+ paramLeftRange.merged(true);
43498
+ paramLeftRange.style(paramLeftStyle);
43499
+ var paramRightRange = sheet.range(2, Math.round(columnCount / 2) + 1, 2, columnCount);
43500
+ paramRightRange.cell(0, 0).value(paramRight || "");
43501
+ paramRightRange.merged(true);
43502
+ paramRightRange.style(paramRightStyle);
43503
+ sheet.row(2).height(paramHeight);
43504
+ rowsNow += 1;
43505
+ }
43506
+ columnTitle.forEach((d) => {
43507
+ var _a;
43508
+ var columnTitleRange = sheet.range(
43509
+ d.srow + rowsNow - 1,
43510
+ d.scol,
43511
+ d.erow + rowsNow - 1,
43512
+ d.ecol
43513
+ );
43514
+ columnTitleRange.merged(true);
43515
+ columnTitleRange.style(columnTitleStyle);
43516
+ columnTitleRange.cell(0, 0).value((_a = d.text) == null ? void 0 : _a.replace(/<br\/>/g, ""));
43517
+ });
43518
+ for (let i2 = 0; i2 < titleDeepth; i2++) {
43519
+ sheet.row(rowsNow + i2).height(columnTitleHeight);
43520
+ }
43521
+ rowsNow += titleDeepth;
43522
+ for (var i = 0; i < jsonData.length; i++) {
43523
+ var lineData = jsonData[i];
43524
+ for (var j = 0; j < lineData.length; j++) {
43525
+ if (columnType[j] === "p" && lineData[j]) {
43526
+ sheet.cell(rowsNow + i, j + 1).value(parseFloat(lineData[j] / 100));
43527
+ dataCellStyle.numberFormat = numberFormat[j];
43528
+ } else if (columnType[j] === "n" && lineData[j]) {
43529
+ sheet.cell(rowsNow + i, j + 1).value(parseFloat(lineData[j]));
43530
+ dataCellStyle.numberFormat = numberFormat[j];
43531
+ } else if (columnType[j] === "s" && lineData[j]) {
43532
+ sheet.cell(rowsNow + i, j + 1).value(lineData[j]);
43533
+ dataCellStyle.numberFormat = "";
43534
+ } else {
43535
+ if (columnType[j] === "p" || columnType[j] === "n") {
43536
+ dataCellStyle.numberFormat = numberFormat[j];
43537
+ } else {
43538
+ sheet.cell(rowsNow + i, j + 1).value("");
43539
+ }
43540
+ }
43541
+ dataCellStyle.horizontalAlignment = columnAlign[j];
43542
+ sheet.cell(rowsNow + i, j + 1).style(dataCellStyle);
43543
+ }
43544
+ if (excelData.rowColor && i % 2 != 0) {
43545
+ var row = sheet.range(rowsNow + i, 1, rowsNow + i, columnCount);
43546
+ row.style({ fill: "f8f8f9" });
43547
+ }
43548
+ sheet.row(rowsNow + i).height(dataRowHeight);
43549
+ }
43550
+ if (!!excelData.rowSpanDefs) {
43551
+ initRowSpanInfosNew({ ...excelData, columns: calcExportDatas.columnsCalc });
43552
+ _.forEach(rowSpanExcelInfos, function(rowSpanInfo) {
43553
+ var columnTitleRange = sheet.range(
43554
+ rowSpanInfo.mergeRowS + rowsNow,
43555
+ rowSpanInfo.megerColS + 1,
43556
+ rowSpanInfo.mergeRowE + rowsNow,
43557
+ rowSpanInfo.megerColE + 1
43558
+ );
43559
+ columnTitleRange.merged(true);
43560
+ });
43561
+ } else if (!!excelData.rowSpanColumns) {
43562
+ initRowSpanInfos({ ...excelData, columns: calcExportDatas.columnsCalc });
43563
+ _.forEach(rowSpanExcelInfos, function(rowSpanInfo) {
43564
+ var columnTitleRange = sheet.range(
43565
+ rowSpanInfo.mergeRowS + rowsNow,
43566
+ rowSpanInfo.megerColS + 1,
43567
+ rowSpanInfo.mergeRowE + rowsNow,
43568
+ rowSpanInfo.megerColE + 1
43569
+ );
43570
+ columnTitleRange.merged(true);
43571
+ });
43572
+ }
43573
+ if (excelData.leftColumns || excelData.topRows) {
43574
+ sheet.freezePanes(excelData.leftColumns || 0, (excelData.topRows || 0) + rowsNow - 1);
43575
+ }
43576
+ workbook.outputAsync().then(async function(blob) {
43577
+ const timestamp = new Date().getTime();
43578
+ const filename = `${timestamp}.xlsx`;
43579
+ const { data } = await putOssFileApi(filename, blob);
43580
+ console.log("data is --111111", data);
43581
+ (data == null ? void 0 : data[0].fileId) || "";
43582
+ });
43583
+ }).catch((err) => console.log(err));
43584
+ return previewUrl;
43585
+ }
43466
43586
  var dayjs_min = { exports: {} };
43467
43587
  (function(module2, exports2) {
43468
43588
  !function(t2, e) {
@@ -50251,7 +50371,9 @@ var render$14 = function() {
50251
50371
  var _c = _vm._self._c || _h;
50252
50372
  return _c("div", { staticClass: "export-data" }, [_c("Row", [_c("Form", { attrs: { "label-width": 80, "label-colon": "" } }, [_c("FormItem", { attrs: { "label": "\u5BFC\u51FA\u683C\u5F0F" } }, [_vm._v("xlsx")]), _c("FormItem", { attrs: { "label": "\u6587\u4EF6\u540D" } }, [_c("Input", { staticStyle: { "width": "270px" }, attrs: { "maxlength": "30", "icon": "document", "placeholder": "\u8868\u683C\u6570\u636E" }, model: { value: _vm.fileName, callback: function($$v) {
50253
50373
  _vm.fileName = typeof $$v === "string" ? $$v.trim() : $$v;
50254
- }, expression: "fileName" } })], 1), _c("FormItem", [_c("Button", { attrs: { "type": "default", "loading": _vm.exportCurrentLoading }, on: { "click": _vm.exportCurrentPage } }, [_vm._v("\u5BFC\u51FA\u5F53\u524D\u9875")]), _vm._v(" \xA0 "), _c("Button", { attrs: { "type": "default", "loading": _vm.exportAllLoading }, on: { "click": _vm.exportAllData } }, [_vm._v("\u5BFC\u51FA\u5168\u90E8")])], 1)], 1)], 1)], 1);
50374
+ }, expression: "fileName" } })], 1), _c("FormItem", [_c("Button", { attrs: { "type": "default", "loading": _vm.exportCurrentLoading }, on: { "click": _vm.exportCurrentPage } }, [_vm._v("\u5BFC\u51FA\u5F53\u524D\u9875")]), _vm._v(" \xA0 "), _c("Button", { attrs: { "type": "default", "loading": _vm.exportAllLoading }, on: { "click": _vm.exportAllData } }, [_vm._v("\u5BFC\u51FA\u5168\u90E8")])], 1)], 1)], 1), _c("Modal", { staticClass: "preview-modal", attrs: { "width": "80" }, on: { "on-cancel": _vm.onCancel }, model: { value: _vm.boxShow, callback: function($$v) {
50375
+ _vm.boxShow = $$v;
50376
+ }, expression: "boxShow" } }, [_c("div", { staticStyle: { "width": "100%", "height": "100%", "display": "flex", "justify-content": "center" } }, [_vm.boxShow ? _c("div", { staticClass: "preview-content", attrs: { "id": _vm.id } }) : _vm._e()]), _c("div", { attrs: { "slot": "footer" }, slot: "footer" })])], 1);
50255
50377
  };
50256
50378
  var staticRenderFns$14 = [];
50257
50379
  const __vue2_script$1h = {
@@ -50329,6 +50451,8 @@ const __vue2_script$1h = {
50329
50451
  },
50330
50452
  data() {
50331
50453
  return {
50454
+ id: "previewModal",
50455
+ boxShow: false,
50332
50456
  exportCurrentLoading: false,
50333
50457
  exportAllLoading: false,
50334
50458
  fileName: "\u8868\u683C\u6570\u636E",
@@ -50345,6 +50469,33 @@ const __vue2_script$1h = {
50345
50469
  }
50346
50470
  },
50347
50471
  methods: {
50472
+ onCancel() {
50473
+ this.boxShow = false;
50474
+ },
50475
+ async openPreview() {
50476
+ const result = await upmsApi.wpsEdit(this.fileId);
50477
+ console.log("wps preview url is", result.data);
50478
+ var tempUrl = "";
50479
+ if (result.code == "1") {
50480
+ tempUrl = result.data;
50481
+ }
50482
+ const token2 = localStorage["v8-token"];
50483
+ console.log("preview token", token2);
50484
+ window["WPS_GetToken"] = () => {
50485
+ return { token: token2 };
50486
+ };
50487
+ console.log("tempUrl is", tempUrl);
50488
+ var instance = this.wps.config({
50489
+ url: tempUrl,
50490
+ mount: document.getElementById(this.id)
50491
+ });
50492
+ console.log("instance-----", instance);
50493
+ instance.setToken({
50494
+ token: token2,
50495
+ timeout: 10 * 60 * 1e3
50496
+ });
50497
+ console.log("wps instance", instance);
50498
+ },
50348
50499
  exportCurrentPage() {
50349
50500
  this.$emit("doExport");
50350
50501
  this.exportCurrentLoading = true;
@@ -50371,6 +50522,32 @@ const __vue2_script$1h = {
50371
50522
  this.getDataFromData();
50372
50523
  }
50373
50524
  },
50525
+ previewCurrentPage() {
50526
+ this.$emit("doPreview");
50527
+ this.exportCurrentLoading = true;
50528
+ let exportParams = Object.assign(
50529
+ {},
50530
+ this.paginationParams,
50531
+ this.sortParams,
50532
+ this.searchParams
50533
+ );
50534
+ if (this.dataApi) {
50535
+ this.getDataFromServerPreview(exportParams);
50536
+ } else {
50537
+ this.getDataFromDataPreview();
50538
+ }
50539
+ },
50540
+ previewAllData() {
50541
+ this.$emit("doPreview");
50542
+ this.exportAllLoading = true;
50543
+ let paginationParams = { offset: 0, limit: 1e5 };
50544
+ let exportParams = Object.assign({}, paginationParams, this.sortParams, this.searchParams);
50545
+ if (this.dataApi) {
50546
+ this.getDataFromServerPreview(exportParams);
50547
+ } else {
50548
+ this.getDataFromDataPreview();
50549
+ }
50550
+ },
50374
50551
  toggleUnit(data) {
50375
50552
  if (this.unitType != this.defaultUnitType) {
50376
50553
  if (this.unitType == "WZ") {
@@ -50408,6 +50585,24 @@ const __vue2_script$1h = {
50408
50585
  }
50409
50586
  this.exportExcel(this.setExportEnum(resultData));
50410
50587
  },
50588
+ getDataFromServerPreview(params) {
50589
+ this.dataApi(params).then((result) => {
50590
+ let resultData = _.cloneDeep(result.data.rows || result.data.records || result.data || []);
50591
+ if (this.showSummary) {
50592
+ let sum = this.summaryData(resultData);
50593
+ resultData.push(sum);
50594
+ }
50595
+ this.toggleUnit(resultData);
50596
+ this.preveiwExcel(this.setExportEnum(resultData));
50597
+ });
50598
+ },
50599
+ getDataFromDataPreview() {
50600
+ const resultData = _.cloneDeep(this.data);
50601
+ if (this.showSummary) {
50602
+ resultData.push(this.summaryData(resultData));
50603
+ }
50604
+ this.preveiwExcel(this.setExportEnum(resultData));
50605
+ },
50411
50606
  setExportEnum(resultData) {
50412
50607
  let data = _.cloneDeep(resultData);
50413
50608
  data.forEach((e) => {
@@ -50500,6 +50695,34 @@ const __vue2_script$1h = {
50500
50695
  }
50501
50696
  this.exportCurrentLoading = false;
50502
50697
  this.exportAllLoading = false;
50698
+ },
50699
+ preveiwExcel(tableDatas) {
50700
+ if (tableDatas.length) {
50701
+ if (this.dataChildren) {
50702
+ tableDatas = data_children_transform(tableDatas);
50703
+ }
50704
+ let data = _.cloneDeep(tableDatas);
50705
+ if (this.pinnedTopRowData) {
50706
+ data = _.concat(this.pinnedTopRowData, data);
50707
+ }
50708
+ const params = {
50709
+ title: (this.fileName || "\u8868\u683C\u6570\u636E") + dayjs().format("YYYYMMDDHHmmss"),
50710
+ columns: this.tableColumns,
50711
+ datas: data,
50712
+ paramLeft: this.paramLeft || "",
50713
+ paramRight: this.paramRight || "",
50714
+ rowSpanColumns: this.rowSpanColumns,
50715
+ rowSpanIndexCol: this.rowSpanIndexCol,
50716
+ topRows: 0,
50717
+ leftColumns: 0,
50718
+ rowSpanDefs: this.rowSpanDefs
50719
+ };
50720
+ previewJsonToExcel(params);
50721
+ } else {
50722
+ this.$Message.info("\u8868\u683C\u6570\u636E\u4E0D\u80FD\u4E3A\u7A7A\uFF01");
50723
+ }
50724
+ this.exportCurrentLoading = false;
50725
+ this.exportAllLoading = false;
50503
50726
  }
50504
50727
  },
50505
50728
  watch: {
@@ -52989,6 +53212,12 @@ const __vue2_script$11 = {
52989
53212
  getContextMenuItems: function() {
52990
53213
  if (this.rowSelection == "multiple") {
52991
53214
  return [
53215
+ {
53216
+ name: "\u9884\u89C8\u5BFC\u51FAExcel",
53217
+ action: () => {
53218
+ this.$refs.exportData.previewCurrentPage();
53219
+ }
53220
+ },
52992
53221
  {
52993
53222
  name: "\u5BFC\u51FA\u6570\u636E\u5230Excel",
52994
53223
  action: () => {
@@ -53021,6 +53250,12 @@ const __vue2_script$11 = {
53021
53250
  ];
53022
53251
  } else {
53023
53252
  return [
53253
+ {
53254
+ name: "\u9884\u89C8\u5BFC\u51FAExcel",
53255
+ action: () => {
53256
+ this.$refs.exportData.previewCurrentPage();
53257
+ }
53258
+ },
53024
53259
  {
53025
53260
  name: "\u5BFC\u51FA\u6570\u636E\u5230Excel",
53026
53261
  action: () => {
@@ -53755,79 +53990,34 @@ const __vue2_script$11 = {
53755
53990
  this.hackReset = true;
53756
53991
  });
53757
53992
  },
53758
- renderSumRow: _.debounce(async function() {
53759
- var _a;
53760
- let hasSumRow = _.some(this.flatColumns, (item2) => item2.isSum);
53761
- if (hasSumRow) {
53762
- console.time("calcSum");
53763
- let sumCols = _.filter(this.flatColumns, (item2) => item2.isSum);
53764
- let sumCalcCols = _.remove(sumCols, (item2) => isString(item2.isSum));
53765
- let sumFuncCols = _.remove(sumCols, (item2) => item2.isSum instanceof Function);
53766
- const sumCalcRuleMap = {};
53767
- _.forEach(sumCalcCols, (col) => {
53768
- addCalcRuleMap(sumCalcRuleMap, col.isSum, col.field || col.key);
53769
- });
53770
- let sumData = {};
53771
- for (let i = 0; i < this.flatColumns.length; i++) {
53772
- if (!["checkbox", "radios", "index"].includes((_a = this.flatColumns[i]) == null ? void 0 : _a.type)) {
53773
- let colTmp = this.flatColumns[i];
53774
- sumData[colTmp.field || colTmp.key] = "\u5408\u8BA1";
53775
- break;
53776
- }
53993
+ renderSumRow: _.debounce(function() {
53994
+ let sumData = this.flatColumns.reduce((acc, col) => {
53995
+ if (!["checkbox", "radios", "index"].includes(col.type)) {
53996
+ acc[col.field || col.key] = "\u5408\u8BA1";
53997
+ } else if (col.isSum) {
53998
+ acc[col.field || col.key] = 0;
53777
53999
  }
53778
- sumCols.forEach((d) => sumData[d.field || d.key] = 0);
53779
- sumData = _.reduce(
53780
- this.rowDataFiltered,
53781
- (s, d, idx) => {
53782
- sumCols.forEach((dd) => {
53783
- if (isString(dd.isSum))
53784
- return;
53785
- let field = dd.field || dd.key;
53786
- let rowMergeInfo = this.tableRowSpanMergeIndexMap[field];
53787
- let mergedRows = [];
53788
- _.forEach(rowMergeInfo, (v, k) => {
53789
- let rows2 = _.range(k, parseInt(k) + v);
53790
- mergedRows.push(...rows2.slice(1));
53791
- });
53792
- if (!mergedRows.includes(idx)) {
53793
- sumData[field] = _.round(
53794
- sumData[field] + (!d[field] || isNaN(d[field]) ? 0 : parseFloat(d[field])),
53795
- 6
53796
- );
53797
- }
53798
- });
53799
- return s;
53800
- },
53801
- sumData
53802
- );
53803
- _.forEach(sumFuncCols, (d) => {
53804
- sumData[d.field || d.key] = d.isSum(this.rowDataFiltered, d);
53805
- });
53806
- let sumRows = [sumData];
53807
- let calcRules = {};
53808
- _.forEach(sumCalcRuleMap, (v, k) => {
53809
- _.merge(calcRules, v);
53810
- });
53811
- let rules = [];
53812
- _.forEach(calcRules, (v, k) => {
53813
- var _a2;
53814
- let column = _.find(sumCalcCols, (d) => {
53815
- return d.field == k || d.key == k;
53816
- });
53817
- rules.push({
53818
- rltKey: k,
53819
- ast: v,
53820
- precision: ((_a2 = column == null ? void 0 : column.cellRendererParams) == null ? void 0 : _a2.scale) || 2,
53821
- errRtn: 0
53822
- });
54000
+ return acc;
54001
+ }, {});
54002
+ let rowsToAccumulate = this.rowDataFiltered.map((row, idx) => {
54003
+ return sumCols.reduce((acc, col) => {
54004
+ let field = col.field || col.key;
54005
+ let isMerged = !!this.tableRowSpanMergeIndexMap[field] && this.tableRowSpanMergeIndexMap[field][idx] > 1;
54006
+ acc[field] = isMerged ? null : row[field];
54007
+ return acc;
54008
+ }, {});
54009
+ }).filter((row) => Object.values(row).some((val) => val !== null));
54010
+ sumData = rowsToAccumulate.reduce((acc, row) => {
54011
+ Object.keys(row).forEach((key) => {
54012
+ if (row[key] !== null) {
54013
+ acc[key] = (acc[key] || 0) + parseFloat(row[key] || 0);
54014
+ }
53823
54015
  });
53824
- let options = { calcRules: rules };
53825
- calcDatas(sumRows, options);
53826
- this.topRows = this.pinnedTopRowDataWithUnit ? _.concat(this.pinnedTopRowDataWithUnit, sumRows) : sumRows;
53827
- console.timeEnd("calcSum");
53828
- } else {
53829
- this.topRows = this.pinnedTopRowDataWithUnit;
53830
- }
54016
+ return acc;
54017
+ }, sumData);
54018
+ sumFuncCols.forEach((col) => {
54019
+ sumData[col.field || col.key] = col.isSum(this.rowDataFiltered, col);
54020
+ });
53831
54021
  }, 5),
53832
54022
  async renderTreeData(val) {
53833
54023
  this.treeData = _.some(val, (d) => {
@@ -55453,24 +55643,24 @@ const __vue2_script$10 = {
55453
55643
  break;
55454
55644
  }
55455
55645
  }
55456
- let sumCols = this.flatColumns.filter((item2) => item2.isSum);
55457
- let sumCalcCols = [], sumFuncCols = [];
55458
- sumCols.forEach((col) => {
55646
+ let sumCols2 = this.flatColumns.filter((item2) => item2.isSum);
55647
+ let sumCalcCols = [], sumFuncCols2 = [];
55648
+ sumCols2.forEach((col) => {
55459
55649
  if (typeof col.isSum === "string")
55460
55650
  sumCalcCols.push(col);
55461
55651
  else if (col.isSum instanceof Function)
55462
- sumFuncCols.push(col);
55652
+ sumFuncCols2.push(col);
55463
55653
  });
55464
55654
  const sumCalcRuleMap = {};
55465
55655
  sumCalcCols.forEach((col) => {
55466
55656
  addCalcRuleMap(sumCalcRuleMap, col.isSum, col.field || col.key);
55467
55657
  });
55468
- sumCols.forEach((col) => {
55658
+ sumCols2.forEach((col) => {
55469
55659
  if (!((col.field || col.key) in sumData))
55470
55660
  sumData[col.field || col.key] = 0;
55471
55661
  });
55472
55662
  this.rowDataFiltered.forEach((d) => {
55473
- sumCols.forEach((dd) => {
55663
+ sumCols2.forEach((dd) => {
55474
55664
  if (typeof dd.isSum === "string")
55475
55665
  return;
55476
55666
  let field = dd.field || dd.key;
@@ -55480,7 +55670,7 @@ const __vue2_script$10 = {
55480
55670
  }
55481
55671
  });
55482
55672
  });
55483
- sumFuncCols.forEach((col) => {
55673
+ sumFuncCols2.forEach((col) => {
55484
55674
  sumData[col.field || col.key] = col.isSum(this.rowDataFiltered, col);
55485
55675
  });
55486
55676
  let sumRows = [sumData];
@@ -65753,7 +65943,7 @@ var __component__$4 = /* @__PURE__ */ normalizeComponent(
65753
65943
  staticRenderFns$4,
65754
65944
  false,
65755
65945
  __vue2_injectStyles$4,
65756
- "53b6c10d",
65946
+ "763a051d",
65757
65947
  null,
65758
65948
  null
65759
65949
  );