|
@@ -104,6 +104,7 @@
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { computed, ref } from 'vue';
|
|
|
+import BigNumber from 'bignumber.js';
|
|
|
|
|
|
// 固定的行政区域列表
|
|
|
const fixedRegions = ['茂名市', '茂南区', '电白区', '化州市', '高州市', '信宜市'];
|
|
@@ -141,15 +142,35 @@ const mergeDataWithFixedRegions = () => {
|
|
|
|
|
|
// 计算合计值
|
|
|
const total = computed(() => {
|
|
|
+ // 初始化 BigNumber 对象
|
|
|
+ const init = {
|
|
|
+ numone: new BigNumber(0),
|
|
|
+ numtwo: new BigNumber(0),
|
|
|
+ numthree: new BigNumber(0),
|
|
|
+ numfour: new BigNumber(0),
|
|
|
+ numfive: new BigNumber(0)
|
|
|
+ };
|
|
|
+
|
|
|
+ // 使用 reduce 累加
|
|
|
+ const sums = fixedTableData.value.reduce((acc, item) => {
|
|
|
+ return {
|
|
|
+ numone: acc.numone.plus(new BigNumber(item.numone || 0)),
|
|
|
+ numtwo: acc.numtwo.plus(new BigNumber(item.numtwo || 0)),
|
|
|
+ numthree: acc.numthree.plus(new BigNumber(item.numthree || 0)),
|
|
|
+ numfour: acc.numfour.plus(new BigNumber(item.numfour || 0)),
|
|
|
+ numfive: acc.numfive.plus(new BigNumber(item.numfive || 0))
|
|
|
+ };
|
|
|
+ }, init);
|
|
|
+
|
|
|
+ // 返回格式化后的结果
|
|
|
return {
|
|
|
- numone: fixedTableData.value.reduce((sum, item) => sum + (Number(item.numone) || 0), 0),
|
|
|
- numtwo: fixedTableData.value.reduce((sum, item) => sum + (Number(item.numtwo) || 0), 0),
|
|
|
- numthree: fixedTableData.value.reduce((sum, item) => sum + (Number(item.numthree) || 0), 0),
|
|
|
- numfour: fixedTableData.value.reduce((sum, item) => sum + (Number(item.numfour) || 0), 0),
|
|
|
- numfive: fixedTableData.value.reduce((sum, item) => sum + (Number(item.numfive) || 0), 0)
|
|
|
+ numone: sums.numone.toFormat(0),
|
|
|
+ numtwo: sums.numtwo.toFormat(0),
|
|
|
+ numthree: sums.numthree.toFormat(0),
|
|
|
+ numfour: sums.numfour.toFormat(0),
|
|
|
+ numfive: sums.numfive.toFormat(2)
|
|
|
};
|
|
|
});
|
|
|
-
|
|
|
// 切换编辑状态
|
|
|
const toggleEdit = () => {
|
|
|
// 进入编辑时保存当前数据快照
|