@indfnd/common 1.1.54 → 1.1.56

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,21 @@
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.1.56](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.1.55...v1.1.56) (2026-02-28)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * 修复zerovalueformatter问题 ([4fce56d](http://git.inspur.com/imp-ec/ind-front/ind-common-front/commit/4fce56d863bc66c82cbf74ec02d029896470fefa))
11
+
12
+ ### [1.1.55](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.1.54...v1.1.55) (2026-02-27)
13
+
14
+
15
+ ### Features
16
+
17
+ * 增加zerovalueformatter ([b59b4d5](http://git.inspur.com/imp-ec/ind-front/ind-common-front/commit/b59b4d53d938edf24c67fe1294e23c71ff14e31b))
18
+ * 增加zerovalueformatter ([ec438f8](http://git.inspur.com/imp-ec/ind-front/ind-common-front/commit/ec438f830b1db7dd583169f65ec8da34eb6d1b15))
19
+
5
20
  ### [1.1.54](http://git.inspur.com/imp-ec/ind-front/ind-common-front/compare/v1.1.53...v1.1.54) (2026-02-27)
6
21
 
7
22
 
@@ -5460,7 +5460,7 @@ var lodash = { exports: {} };
5460
5460
  })(lodash, lodash.exports);
5461
5461
  var _ = lodash.exports;
5462
5462
  const name$1 = "@indfnd/common";
5463
- const version = "1.1.53";
5463
+ const version = "1.1.55";
5464
5464
  const author = "huxuetong";
5465
5465
  const publishConfig = {
5466
5466
  registry: "https://registry.npmjs.org/"
@@ -43396,15 +43396,21 @@ const titleHeight = 27;
43396
43396
  const paramHeight = 18;
43397
43397
  const columnTitleHeight = 18;
43398
43398
  const dataRowHeight = 18;
43399
- function getAgColumnTitleAndData({ columns, datas }) {
43399
+ function getAgColumnTitleAndData({
43400
+ columns,
43401
+ datas,
43402
+ remainAdditionZero = false
43403
+ }) {
43404
+ console.log(
43405
+ "--getAgColumnTitleAndData: remainAdditionZero",
43406
+ remainAdditionZero
43407
+ );
43400
43408
  var columnsClo = _.cloneDeep(columns);
43401
43409
  var datasClo = _.cloneDeep(datas);
43402
- console.log("columnsClo \u662F\u5565\u5440", columnsClo);
43403
43410
  _.remove(columnsClo, (d) => {
43404
- return d.cellClass.indexOf("button") != -1 || d.cellClass.indexOf("radio") != -1 || d.cellClass.indexOf("checkbox") != -1 || d.hide;
43411
+ return d.cellClass.indexOf("button") != -1 || d.cellClass.indexOf("radio") != -1 || d.cellClass.indexOf("checkbox") != -1 || d.cellClass.indexOf("chart") != -1 || d.hide;
43405
43412
  });
43406
43413
  _.forEach(columnsClo, (d) => {
43407
- var _a;
43408
43414
  if (d.cellClass.indexOf("index") != -1) {
43409
43415
  d.field = "__seq";
43410
43416
  datasClo.forEach((dd, idx) => {
@@ -43412,32 +43418,28 @@ function getAgColumnTitleAndData({ columns, datas }) {
43412
43418
  });
43413
43419
  } else if (d.cellClass.indexOf("enum") != -1) {
43414
43420
  datasClo.forEach((dd) => {
43415
- var _a2, _b, _c;
43416
- let enumList = ((_a2 = d == null ? void 0 : d.cellRendererParams) == null ? void 0 : _a2.enumList) || [];
43417
- let enumData = ((_b = d == null ? void 0 : d.cellRendererParams) == null ? void 0 : _b.enumData) || {};
43421
+ let enumList = d && d.cellRendererParams && d.cellRendererParams.enumList || [];
43422
+ let enumData = d && d.cellRendererParams && d.cellRendererParams.enumData || {};
43418
43423
  if (enumList.length) {
43419
- let v = ((_c = _.find(enumList, { K: dd[d.field] })) == null ? void 0 : _c.V) || dd[d.field];
43424
+ let v = (_.find(enumList, { K: dd[d.field] }) || {}).V || dd[d.field];
43420
43425
  dd[d.field] = v;
43421
43426
  } else {
43422
43427
  dd[d.field] = enumData[dd[d.field]] || dd[d.field];
43423
43428
  }
43424
43429
  });
43425
- } else if ((_a = d == null ? void 0 : d.cellRendererParams) == null ? void 0 : _a.dateFormat) {
43430
+ } else if (d && d.cellRendererParams && d.cellRendererParams.dateFormat) {
43426
43431
  datasClo.forEach((dd) => {
43427
43432
  dd[d.field] = formatDate$1(dd[d.field]) || "";
43428
43433
  });
43429
- } else if (d.valueFormatter) {
43430
- if (typeof d.valueFormatter == "function") {
43434
+ } else if (d && typeof d.valueGetter === "function") {
43435
+ datasClo.forEach((dd) => {
43431
43436
  try {
43432
- datasClo.forEach((dd) => {
43433
- dd[d.field] = d.valueFormatter({ value: dd[d.field] }) || "";
43434
- });
43435
- } catch (error) {
43436
- console.error(error);
43437
+ dd[d.field] = d.valueGetter({ data: dd });
43438
+ } catch (e) {
43439
+ console.warn(`\u6267\u884C valueGetter \u51FD\u6570\u65F6\u51FA\u9519\uFF0C\u5B57\u6BB5: ${d.field}`, e);
43440
+ dd[d.field] = "";
43437
43441
  }
43438
- } else {
43439
- throw new Error("\u65F6\u95F4\u7C7B\u578B\u4E0D\u6B63\u786E\uFF0C\u5E94\u8BE5\u4E3A\u51FD\u6570\u7C7B\u578B");
43440
- }
43442
+ });
43441
43443
  }
43442
43444
  });
43443
43445
  const getDeepthOfCol = (col) => {
@@ -43527,37 +43529,40 @@ function getAgColumnTitleAndData({ columns, datas }) {
43527
43529
  calcColumns(columnsClo, columnsCalc);
43528
43530
  var columnAlign = columnsCalc.map((d) => d.align || "left");
43529
43531
  var columnType = columnsCalc.map(
43530
- (d) => d.dataType == "percent" ? "p" : d.align == "right" || d.align == "rightNum" ? "n" : "s"
43532
+ (d) => d.align == "right" || d.align == "rightNum" ? "n" : "s"
43531
43533
  );
43532
43534
  var columnWidth = columnsCalc.map(
43533
43535
  (d) => d.excelWidth ? d.excelWidth : d.width ? Math.floor(d.width / 10) : 10
43534
43536
  );
43535
43537
  var numberFormat = columnsCalc.map((d) => {
43536
- var _a;
43537
- let scale = (_a = d == null ? void 0 : d.cellRendererParams) == null ? void 0 : _a.scale;
43538
- if (d.dataType == "percent") {
43539
- return "0.00%";
43540
- } else if (scale !== void 0) {
43541
- return scale === 0 ? "#,##0" : "#,##0." + _.range(scale).fill(0).join("");
43538
+ let scale = d && d.cellRendererParams && d.cellRendererParams.scale;
43539
+ if (scale !== void 0) {
43540
+ if (remainAdditionZero) {
43541
+ return scale === 0 ? "#,##0" : "#,##0." + _.range(scale).fill("0").join("");
43542
+ } else {
43543
+ return scale === 0 ? "#,##0" : "#,##0." + _.range(scale).fill("#").join("");
43544
+ }
43542
43545
  } else {
43543
43546
  return d.align == "rightNum" ? "#,##0.0000" : d.align == "right" ? "#,##0.00" : "";
43544
43547
  }
43545
43548
  });
43546
43549
  columnsCalc.map((d, idx) => {
43547
43550
  d.field = d.field ? d.field : d.key;
43551
+ let charSize = d.align == "right" || d.align == "rightNum" ? 0.5 : 2;
43548
43552
  var t2 = d.excelName || d.headerName || d.title;
43549
- t2 = t2 == null ? void 0 : t2.replace(/<br\/>/g, "");
43550
- if (t2 && columnWidth[idx] < t2.length * 2) {
43551
- columnWidth[idx] = t2.length * 2;
43553
+ t2 = t2 && t2.replace(/<br\/>/g, "");
43554
+ if (t2 && columnWidth[idx] < t2.length * charSize) {
43555
+ columnWidth[idx] = t2.length * charSize;
43552
43556
  }
43553
43557
  });
43554
43558
  var exportData = datasClo.map((d) => {
43555
43559
  return columnsCalc.map((dd, idx) => {
43560
+ let charSize = dd.align == "right" || dd.align == "rightNum" ? 0.5 : 2;
43556
43561
  if (dd.columnWidth !== void 0) {
43557
43562
  columnWidth[idx] = dd.columnWidth;
43558
43563
  } else {
43559
- if (d[dd.field] && columnWidth[idx] < ("" + d[dd.field]).length * 2) {
43560
- columnWidth[idx] = ("" + d[dd.field]).length * 2;
43564
+ if (d[dd.field] && columnWidth[idx] < ("" + d[dd.field]).length * charSize) {
43565
+ columnWidth[idx] = ("" + d[dd.field]).length * charSize;
43561
43566
  }
43562
43567
  }
43563
43568
  let formula = null;
@@ -43590,6 +43595,10 @@ function initRowSpanInfos(options) {
43590
43595
  if (!!options.rowSpanColumns) {
43591
43596
  let calcRowSpan = function(colId, followCol) {
43592
43597
  var colIdx = _.findIndex(options.columns, { field: colId });
43598
+ if (colIdx == -1) {
43599
+ console.log("\u8BA1\u7B97\u4E00\u4E2A\u4E0D\u5B58\u5728\u7684\u5217\u662F\u6CA1\u6709\u524D\u9014\u7684", colId);
43600
+ return;
43601
+ }
43593
43602
  if (!!rowSpanRlt[colId]) {
43594
43603
  return;
43595
43604
  }
@@ -43719,7 +43728,10 @@ function initRowSpanInfosNew(options) {
43719
43728
  var rowSpanRlt = {};
43720
43729
  var rowTmpMappingByColId = {};
43721
43730
  _.forEach(rowSpanDefs, function(col) {
43722
- calcRowSpan(col.field, col.field !== col.followCol ? col.followCol : null);
43731
+ calcRowSpan(
43732
+ col.field,
43733
+ col.field !== col.followCol ? col.followCol : null
43734
+ );
43723
43735
  });
43724
43736
  }
43725
43737
  }
@@ -43740,8 +43752,9 @@ function exportJsonToExcel(excelData, isPerMille) {
43740
43752
  var paramRight = excelData.paramRight;
43741
43753
  var jsonData = calcExportDatas.exportData;
43742
43754
  var numberFormat = excelData.numberFormat || calcExportDatas.numberFormat;
43755
+ var remainAdditionZero = (excelData == null ? void 0 : excelData.remainAdditionZero) || false;
43743
43756
  const workbook = new ExcelJS.Workbook();
43744
- const worksheet = workbook.addWorksheet("Sheet1");
43757
+ const worksheet = excelData.worksheet || workbook.addWorksheet("Sheet1");
43745
43758
  for (var i = 0; i < columnCount; i++) {
43746
43759
  worksheet.getColumn(i + 1).width = columnWidth[i] == 0 ? 10 : columnWidth[i];
43747
43760
  }
@@ -43812,7 +43825,14 @@ function exportJsonToExcel(excelData, isPerMille) {
43812
43825
  const cell = worksheet.getCell(srow, scol);
43813
43826
  cell.value = d.text && d.text.replace(/<br\/>/g, "");
43814
43827
  cell.style = columnTitleStyle2;
43815
- applyBorderToMergedCell(worksheet, srow, scol, erow, ecol, columnTitleStyle2.border);
43828
+ applyBorderToMergedCell(
43829
+ worksheet,
43830
+ srow,
43831
+ scol,
43832
+ erow,
43833
+ ecol,
43834
+ columnTitleStyle2.border
43835
+ );
43816
43836
  });
43817
43837
  for (let i2 = 0; i2 < titleDeepth; i2++) {
43818
43838
  worksheet.getRow(rowsNow + i2).height = columnTitleHeight2;
@@ -43832,32 +43852,41 @@ function exportJsonToExcel(excelData, isPerMille) {
43832
43852
  const mergeEndRow = rowsNow + i + rowSpan - 1;
43833
43853
  const mergeEndCol = j + 1 + colSpan - 1;
43834
43854
  if (mergeEndRow < rowsNow + jsonData.length && mergeEndCol <= columnCount) {
43835
- worksheet.mergeCells(rowsNow + i, j + 1, mergeEndRow, mergeEndCol);
43836
- if (columnType[j] === "p" && lineData[j]) {
43837
- const numericValue = typeof lineData[j].value === "string" ? parseFloat(lineData[j].value.replace(/,/g, "")) : lineData[j].value;
43838
- worksheet.getCell(rowsNow + i, j + 1).value = isNaN(numericValue) ? 0 : parseFloat(numericValue / 100);
43839
- worksheet.getCell(rowsNow + i, j + 1).numFmt = numberFormat[j];
43840
- } else if (columnType[j] === "s") {
43841
- if (lineData[j] === "0") {
43842
- worksheet.getCell(rowsNow + i, j + 1).value = 0;
43843
- } else if (lineData[j] !== void 0 && lineData[j] !== null) {
43855
+ worksheet.mergeCells(
43856
+ rowsNow + i,
43857
+ j + 1,
43858
+ mergeEndRow,
43859
+ mergeEndCol
43860
+ );
43861
+ if (columnType[j] === "s") {
43862
+ if (lineData[j].value === "0") {
43863
+ worksheet.getCell(rowsNow + i, j + 1).value = excelData.zeroValueFormat === void 0 ? 0 : excelData.zeroValueFormat;
43864
+ } else if (lineData[j].value !== void 0 && lineData[j].value !== null) {
43844
43865
  const safeValue = typeof lineData[j].value === "string" ? lineData[j].value.replace(/[\u2028\u2029]/g, " ") : lineData[j].value;
43845
43866
  worksheet.getCell(rowsNow + i, j + 1).value = safeValue;
43846
43867
  } else {
43847
43868
  worksheet.getCell(rowsNow + i, j + 1).value = "";
43848
43869
  }
43849
- worksheet.getCell(rowsNow + i, j + 1).numFmt = "";
43850
- } else if (columnType[j] === "n" && lineData[j]) {
43870
+ dataCellStyle2.numFmt = "";
43871
+ } else if (columnType[j] === "n" && lineData[j].value) {
43851
43872
  const numericValue = typeof lineData[j].value === "string" ? parseFloat(lineData[j].value.replace(/,/g, "")) : lineData[j].value;
43852
- worksheet.getCell(rowsNow + i, j + 1).value = isNaN(numericValue) ? 0 : numericValue;
43853
- worksheet.getCell(rowsNow + i, j + 1).numFmt = numberFormat[j];
43873
+ if (numericValue === 0) {
43874
+ worksheet.getCell(rowsNow + i, j + 1).value = excelData.zeroValueFormat === void 0 ? "0" : excelData.zeroValueFormat;
43875
+ } else {
43876
+ worksheet.getCell(rowsNow + i, j + 1).value = isNaN(
43877
+ numericValue
43878
+ ) ? excelData.zeroValueFormat === void 0 ? 0 : excelData.zeroValueFormat : numericValue;
43879
+ }
43880
+ dataCellStyle2.numFmt = numberFormat[j];
43854
43881
  } else {
43855
43882
  worksheet.getCell(rowsNow + i, j + 1).value = "";
43856
43883
  }
43857
43884
  if (lineData[j] && lineData[j].formula) {
43858
43885
  try {
43859
- if (/^[A-Za-z]+\(.*\)$/.test(lineData[j].formula)) {
43860
- worksheet.getCell(rowsNow + i, j + 1).value = { formula: lineData[j].formula };
43886
+ if (/^=?[A-Za-z]+\(.*\)$/.test(lineData[j].formula)) {
43887
+ worksheet.getCell(rowsNow + i, j + 1).value = {
43888
+ formula: lineData[j].formula
43889
+ };
43861
43890
  } else {
43862
43891
  console.warn(
43863
43892
  `\u65E0\u6548\u516C\u5F0F: ${lineData[j].formula}\uFF0C\u4F4D\u4E8E\u7B2C ${i + 1} \u884C\uFF0C\u7B2C ${j + 1} \u5217`
@@ -43865,12 +43894,18 @@ function exportJsonToExcel(excelData, isPerMille) {
43865
43894
  worksheet.getCell(rowsNow + i, j + 1).value = "#FORMULA_ERROR";
43866
43895
  }
43867
43896
  } catch (e) {
43868
- console.error(`\u8BBE\u7F6E\u516C\u5F0F\u65F6\u51FA\u9519: ${e.message}\uFF0C\u516C\u5F0F\u5185\u5BB9: ${lineData[j].formula}`);
43897
+ console.error(
43898
+ `\u8BBE\u7F6E\u516C\u5F0F\u65F6\u51FA\u9519: ${e.message}\uFF0C\u516C\u5F0F\u5185\u5BB9: ${lineData[j].formula}`
43899
+ );
43869
43900
  worksheet.getCell(rowsNow + i, j + 1).value = "#ERROR!";
43870
43901
  }
43871
43902
  }
43872
43903
  dataCellStyle2.alignment.horizontal = columnAlign[j];
43873
- worksheet.getCell(rowsNow + i, j + 1).style = dataCellStyle2;
43904
+ if (remainAdditionZero) {
43905
+ worksheet.getCell(rowsNow + i, j + 1).style = _.cloneDeep(dataCellStyle2);
43906
+ } else {
43907
+ worksheet.getCell(rowsNow + i, j + 1).style = dataCellStyle2;
43908
+ }
43874
43909
  for (let r = 0; r < rowSpan; r++) {
43875
43910
  for (let c = 0; c < colSpan; c++) {
43876
43911
  mergedCells.add(`${rowsNow + i + r}-${j + 1 + c}`);
@@ -43887,21 +43922,17 @@ function exportJsonToExcel(excelData, isPerMille) {
43887
43922
  }
43888
43923
  }
43889
43924
  if (!mergedCells.has(cellKey)) {
43890
- if (columnType[j] === "p" && lineData[j]) {
43891
- const numericValue = typeof lineData[j].value === "string" ? parseFloat(lineData[j].value.replace(/,/g, "")) : lineData[j].value;
43892
- worksheet.getCell(rowsNow + i, j + 1).value = isNaN(numericValue) ? 0 : parseFloat(numericValue / 100);
43893
- worksheet.getCell(rowsNow + i, j + 1).numFmt = numberFormat[j];
43894
- } else if (columnType[j] === "s") {
43895
- if (lineData[j] === "0") {
43896
- worksheet.getCell(rowsNow + i, j + 1).value = 0;
43897
- } else if (lineData[j] !== void 0 && lineData[j] !== null) {
43925
+ if (columnType[j] === "s") {
43926
+ if (lineData[j].value === "0") {
43927
+ worksheet.getCell(rowsNow + i, j + 1).value = excelData.zeroValueFormat === void 0 ? 0 : excelData.zeroValueFormat;
43928
+ } else if (lineData[j] !== void 0 && lineData[j].value !== null) {
43898
43929
  const safeValue = typeof lineData[j].value === "string" ? lineData[j].value.replace(/[\u2028\u2029]/g, " ") : lineData[j].value;
43899
43930
  worksheet.getCell(rowsNow + i, j + 1).value = safeValue;
43900
43931
  } else {
43901
43932
  worksheet.getCell(rowsNow + i, j + 1).value = "";
43902
43933
  }
43903
- worksheet.getCell(rowsNow + i, j + 1).numFmt = "";
43904
- } else if (columnType[j] === "n" && lineData[j]) {
43934
+ dataCellStyle2.numFmt = "";
43935
+ } else if (columnType[j] === "n" && lineData[j].value) {
43905
43936
  const numericValue = typeof lineData[j].value === "string" ? parseFloat(lineData[j].value.replace(/,/g, "")) : lineData[j].value;
43906
43937
  worksheet.getCell(rowsNow + i, j + 1).value = isNaN(numericValue) ? 0 : numericValue;
43907
43938
  if (isPerMille) {
@@ -43914,8 +43945,10 @@ function exportJsonToExcel(excelData, isPerMille) {
43914
43945
  }
43915
43946
  if (lineData[j] && lineData[j].formula) {
43916
43947
  try {
43917
- if (/^[A-Za-z]+\(.*\)$/.test(lineData[j].formula)) {
43918
- worksheet.getCell(rowsNow + i, j + 1).value = { formula: lineData[j].formula };
43948
+ if (/^=?[A-Za-z]+\(.*\)$/.test(lineData[j].formula)) {
43949
+ worksheet.getCell(rowsNow + i, j + 1).value = {
43950
+ formula: lineData[j].formula
43951
+ };
43919
43952
  } else {
43920
43953
  console.warn(
43921
43954
  `\u65E0\u6548\u516C\u5F0F: ${lineData[j].formula}\uFF0C\u4F4D\u4E8E\u7B2C ${i + 1} \u884C\uFF0C\u7B2C ${j + 1} \u5217`
@@ -43923,7 +43956,9 @@ function exportJsonToExcel(excelData, isPerMille) {
43923
43956
  worksheet.getCell(rowsNow + i, j + 1).value = "#FORMULA_ERROR";
43924
43957
  }
43925
43958
  } catch (e) {
43926
- console.error(`\u8BBE\u7F6E\u516C\u5F0F\u65F6\u51FA\u9519: ${e.message}\uFF0C\u516C\u5F0F\u5185\u5BB9: ${lineData[j].formula}`);
43959
+ console.error(
43960
+ `\u8BBE\u7F6E\u516C\u5F0F\u65F6\u51FA\u9519: ${e.message}\uFF0C\u516C\u5F0F\u5185\u5BB9: ${lineData[j].formula}`
43961
+ );
43927
43962
  worksheet.getCell(rowsNow + i, j + 1).value = "#ERROR!";
43928
43963
  }
43929
43964
  }
@@ -43932,7 +43967,10 @@ function exportJsonToExcel(excelData, isPerMille) {
43932
43967
  });
43933
43968
  }
43934
43969
  } catch (cellError) {
43935
- console.error(`\u5904\u7406\u5355\u5143\u683C\u6570\u636E\u65F6\u51FA\u9519 (\u884C: ${i + 1}, \u5217: ${j + 1}):`, cellError);
43970
+ console.error(
43971
+ `\u5904\u7406\u5355\u5143\u683C\u6570\u636E\u65F6\u51FA\u9519 (\u884C: ${i + 1}, \u5217: ${j + 1}):`,
43972
+ cellError
43973
+ );
43936
43974
  worksheet.getCell(rowsNow + i, j + 1).value = "#CELL_ERROR";
43937
43975
  }
43938
43976
  }
@@ -43949,30 +43987,54 @@ function exportJsonToExcel(excelData, isPerMille) {
43949
43987
  }
43950
43988
  if (!!excelData.rowSpanDefs) {
43951
43989
  try {
43952
- initRowSpanInfosNew({ ...excelData, columns: calcExportDatas.columnsCalc });
43990
+ initRowSpanInfosNew({
43991
+ ...excelData,
43992
+ columns: calcExportDatas.columnsCalc
43993
+ });
43953
43994
  _.forEach(rowSpanExcelInfos, function(rowSpanInfo) {
43954
43995
  const srow = rowSpanInfo.mergeRowS + rowsNow;
43955
43996
  const scol = rowSpanInfo.megerColS + 1;
43956
43997
  const erow = rowSpanInfo.mergeRowE + rowsNow;
43957
43998
  const ecol = rowSpanInfo.megerColE + 1;
43958
43999
  worksheet.mergeCells(srow, scol, erow, ecol);
43959
- applyBorderToMergedCell(worksheet, srow, scol, erow, ecol, dataCellStyle2.border);
44000
+ applyBorderToMergedCell(
44001
+ worksheet,
44002
+ srow,
44003
+ scol,
44004
+ erow,
44005
+ ecol,
44006
+ dataCellStyle2.border
44007
+ );
43960
44008
  });
44009
+ rowSpanExcelInfos = [];
43961
44010
  } catch (spanError) {
44011
+ rowSpanExcelInfos = [];
43962
44012
  console.error("\u5408\u5E76\u5355\u5143\u683C\u65F6\u51FA\u9519:", spanError);
43963
44013
  }
43964
44014
  } else if (!!excelData.rowSpanColumns) {
43965
44015
  try {
43966
- initRowSpanInfos({ ...excelData, columns: calcExportDatas.columnsCalc });
44016
+ initRowSpanInfos({
44017
+ ...excelData,
44018
+ columns: calcExportDatas.columnsCalc
44019
+ });
43967
44020
  _.forEach(rowSpanExcelInfos, function(rowSpanInfo) {
43968
44021
  const srow = rowSpanInfo.mergeRowS + rowsNow;
43969
44022
  const scol = rowSpanInfo.megerColS + 1;
43970
44023
  const erow = rowSpanInfo.mergeRowE + rowsNow;
43971
44024
  const ecol = rowSpanInfo.megerColE + 1;
43972
44025
  worksheet.mergeCells(srow, scol, erow, ecol);
43973
- applyBorderToMergedCell(worksheet, srow, scol, erow, ecol, dataCellStyle2.border);
44026
+ applyBorderToMergedCell(
44027
+ worksheet,
44028
+ srow,
44029
+ scol,
44030
+ erow,
44031
+ ecol,
44032
+ dataCellStyle2.border
44033
+ );
43974
44034
  });
44035
+ rowSpanExcelInfos = [];
43975
44036
  } catch (spanError) {
44037
+ rowSpanExcelInfos = [];
43976
44038
  console.error("\u5408\u5E76\u5355\u5143\u683C\u65F6\u51FA\u9519:", spanError);
43977
44039
  }
43978
44040
  }
@@ -43995,18 +44057,9 @@ function exportJsonToExcel(excelData, isPerMille) {
43995
44057
  extension: "png"
43996
44058
  });
43997
44059
  worksheet.addBackgroundImage(imageId);
43998
- return workbook.xlsx.writeBuffer().then((buffer) => {
43999
- FileSaver_min.exports.saveAs(
44000
- new Blob([buffer], {
44001
- type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
44002
- }),
44003
- sanitizeFilename(title) + ".xlsx"
44004
- );
44005
- return true;
44006
- }).catch((err) => {
44007
- console.error("\u5199\u5165Excel\u6587\u4EF6\u65F6\u51FA\u9519:", err);
44008
- throw new Error("\u5BFC\u51FAExcel\u5931\u8D25: " + err.message);
44009
- });
44060
+ if (!excelData.worksheet) {
44061
+ return doExportExcel(workbook, title);
44062
+ }
44010
44063
  });
44011
44064
  } catch (error) {
44012
44065
  console.error("\u5BFC\u51FAExcel\u8FC7\u7A0B\u4E2D\u53D1\u751F\u610F\u5916\u9519\u8BEF:", error);
@@ -44195,6 +44248,20 @@ function previewJsonToExcel(excelData) {
44195
44248
  });
44196
44249
  });
44197
44250
  }
44251
+ function doExportExcel(workbook, title = "\u4E0B\u8F7D\u62A5\u8868") {
44252
+ workbook.xlsx.writeBuffer().then((buffer) => {
44253
+ FileSaver_min.exports.saveAs(
44254
+ new Blob([buffer], {
44255
+ type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
44256
+ }),
44257
+ sanitizeFilename(title) + ".xlsx"
44258
+ );
44259
+ return true;
44260
+ }).catch((err) => {
44261
+ console.error("\u5199\u5165Excel\u6587\u4EF6\u65F6\u51FA\u9519:", err);
44262
+ throw new Error("\u5BFC\u51FAExcel\u5931\u8D25: " + err.message);
44263
+ });
44264
+ }
44198
44265
  const isDev = false;
44199
44266
  var config = useConfig(isDev);
44200
44267
  _.isObject;
@@ -52355,12 +52422,14 @@ var AgEnum = /* @__PURE__ */ function() {
52355
52422
  const __vue2_script$1c = {
52356
52423
  name: "IndAgFormat",
52357
52424
  render(h) {
52358
- const { value, colDef, scaleFn } = this.params;
52425
+ const { value, colDef, scaleFn, valueFormatted } = this.params;
52359
52426
  const { dateFormat } = (colDef == null ? void 0 : colDef.cellRendererParams) || {};
52360
52427
  let renderVal = value;
52361
52428
  const scale = scaleFn();
52362
52429
  if (dateFormat) {
52363
52430
  renderVal = formatDate$1(value);
52431
+ } else if (value === 0) {
52432
+ renderVal = valueFormatted;
52364
52433
  } else if (scale === 0) {
52365
52434
  renderVal = value ? Math.round(parseFloat(value)) : value;
52366
52435
  } else if (scale) {
@@ -53244,7 +53313,7 @@ var render$14 = function() {
53244
53313
  return _vm.$emit("revertColumnRow");
53245
53314
  } } }, [_vm._v(" \u8F6C\u7F6E ")]) : _vm._e(), !_vm.isIndexManageTable && _vm.$config.indexManage ? _c("IndexManage", { attrs: { "tableRef": _vm.tableRef, "funId": (_vm.funId || "") + "-" + _vm.$route.meta.permissionId }, on: { "resetColumns": _vm.resetColumns } }) : _vm._e(), _c("IndButton", { attrs: { "bizType": "reset" }, on: { "click": function($event) {
53246
53315
  return _vm.tableSettingToggle("3");
53247
- } } }, [_vm._v(" \u5BFC\u51FA ")])], 1), _c("DropdownMenu", { style: { width: _vm.btnSel != "1" ? "400px" : "200px", padding: "5px 10px" }, attrs: { "slot": "list" }, slot: "list" }, [_c("ExportData", { directives: [{ name: "show", rawName: "v-show", value: _vm.btnSel == "3", expression: "btnSel == '3'" }], ref: "exportData", attrs: { "rowSpanDefs": _vm.rowSpanDefs, "exportFileName": _vm.exportFileName, "paramLeft": _vm.paramLeft, "paramRight": _vm.paramRight || _vm.paramRightUnit, "rowSpanColumns": _vm.rowSpanColumns || _vm.mergeColumns, "rowSpanIndexCol": _vm.rowSpanIndexCol || _vm.mergeIndexCol, "pinnedTopRowData": _vm.topRows, "tableColumns": _vm.tableColumns, "data": _vm.tableData, "dataApi": _vm.dataApi, "renderDataFn": _vm.renderDataFn, "searchParams": _vm.searchParams, "sortParams": _vm.sortParams, "paginationParams": _vm.paginationParams, "show-summary": _vm.tableShowSummary, "summary-method": _vm.tableSummaryMethod, "parsedColumns": _vm.parsedColumns, "exportEnum": _vm.exportEnum, "data-children": _vm.dataChildren, "defaultUnitType": _vm.defaultUnitType, "unitType": _vm.unitType, "switchCols": _vm.switchCols, "watermark": _vm.watermark, "disablePage": _vm.disablePage, "isPerMille": _vm.isPerMille }, on: { "doExport": function($event) {
53316
+ } } }, [_vm._v(" \u5BFC\u51FA ")])], 1), _c("DropdownMenu", { style: { width: _vm.btnSel != "1" ? "400px" : "200px", padding: "5px 10px" }, attrs: { "slot": "list" }, slot: "list" }, [_c("ExportData", { directives: [{ name: "show", rawName: "v-show", value: _vm.btnSel == "3", expression: "btnSel == '3'" }], ref: "exportData", attrs: { "rowSpanDefs": _vm.rowSpanDefs, "exportFileName": _vm.exportFileName, "zeroValueFormat": _vm.zeroValueFormat, "paramLeft": _vm.paramLeft, "paramRight": _vm.paramRight || _vm.paramRightUnit, "rowSpanColumns": _vm.rowSpanColumns || _vm.mergeColumns, "rowSpanIndexCol": _vm.rowSpanIndexCol || _vm.mergeIndexCol, "pinnedTopRowData": _vm.topRows, "tableColumns": _vm.tableColumns, "data": _vm.tableData, "dataApi": _vm.dataApi, "renderDataFn": _vm.renderDataFn, "searchParams": _vm.searchParams, "sortParams": _vm.sortParams, "paginationParams": _vm.paginationParams, "show-summary": _vm.tableShowSummary, "summary-method": _vm.tableSummaryMethod, "parsedColumns": _vm.parsedColumns, "exportEnum": _vm.exportEnum, "data-children": _vm.dataChildren, "defaultUnitType": _vm.defaultUnitType, "unitType": _vm.unitType, "switchCols": _vm.switchCols, "watermark": _vm.watermark, "disablePage": _vm.disablePage, "isPerMille": _vm.isPerMille }, on: { "doExport": function($event) {
53248
53317
  _vm.optionDropdownVisible = false;
53249
53318
  }, "doPreview": function($event) {
53250
53319
  _vm.optionDropdownVisible = false;
@@ -53537,7 +53606,36 @@ const __vue2_script$15 = {
53537
53606
  default: "Y"
53538
53607
  },
53539
53608
  noRowsTemplate: String,
53540
- watermark: String
53609
+ watermark: String,
53610
+ nullValueFormat: {
53611
+ type: String,
53612
+ default() {
53613
+ var _a;
53614
+ return ((_a = this.$config) == null ? void 0 : _a.nullValueFormat) || "";
53615
+ }
53616
+ },
53617
+ zeroValueFormat: {
53618
+ type: String,
53619
+ default() {
53620
+ var _a;
53621
+ const configValue = (_a = this.$config) == null ? void 0 : _a.zeroValueFormat;
53622
+ return configValue !== void 0 && configValue !== null ? configValue : "0";
53623
+ }
53624
+ },
53625
+ limitNumber: {
53626
+ type: Number,
53627
+ default() {
53628
+ var _a;
53629
+ return ((_a = this.$config) == null ? void 0 : _a.pageSize) || 20;
53630
+ }
53631
+ },
53632
+ pageSizeOpts: {
53633
+ type: Array,
53634
+ default() {
53635
+ var _a;
53636
+ return ((_a = this.$config) == null ? void 0 : _a.pageSizeOpts) || [10, 20, 30, 40];
53637
+ }
53638
+ }
53541
53639
  },
53542
53640
  data() {
53543
53641
  var _a, _b;
@@ -54564,7 +54662,27 @@ const __vue2_script$15 = {
54564
54662
  };
54565
54663
  }
54566
54664
  if (column.valueFormatter) {
54567
- agColumn.valueFormatter = column.valueFormatter;
54665
+ let self2 = this;
54666
+ const originalValueFormatter = column.valueFormatter;
54667
+ agColumn.valueFormatter = (params) => {
54668
+ let formattedValue = originalValueFormatter(params);
54669
+ if (formattedValue === void 0 || formattedValue === "" || formattedValue === null) {
54670
+ formattedValue = self2.nullValueFormat;
54671
+ } else if (formattedValue === "0" || formattedValue === 0) {
54672
+ formattedValue = self2.zeroValueFormat;
54673
+ }
54674
+ return formattedValue;
54675
+ };
54676
+ } else {
54677
+ agColumn.valueFormatter = (params) => {
54678
+ let value = params.value;
54679
+ if (value === void 0 || value === null || value === "") {
54680
+ value = this.nullValueFormat;
54681
+ } else if (value === "0" || value === 0) {
54682
+ value = this.zeroValueFormat;
54683
+ }
54684
+ return value;
54685
+ };
54568
54686
  }
54569
54687
  if (column.align) {
54570
54688
  agColumn.cellClass = agColumn.cellClass + (column.align == "right" ? " ag-right-aligned-cell" : column.align == "center" ? " ag-center-aligned-cell" : "");