|
|
@@ -1,8 +1,8 @@
|
|
|
<template>
|
|
|
- <div>
|
|
|
+ <div v-loading="loading">
|
|
|
<div class="container">
|
|
|
<div class="operate-btn" style="text-align: right; margin: 10px 16px;">
|
|
|
- <el-button>刷新</el-button>
|
|
|
+ <el-button @click="handleRefresh">刷新</el-button>
|
|
|
<el-button type="primary">下载</el-button>
|
|
|
<el-button type="primary">打印</el-button>
|
|
|
</div>
|
|
|
@@ -34,6 +34,7 @@
|
|
|
style="width: 100%"
|
|
|
show-summary
|
|
|
class="budget-table"
|
|
|
+ :summary-method="getSummaries"
|
|
|
>
|
|
|
<el-table-column
|
|
|
prop="kmmc"
|
|
|
@@ -98,6 +99,8 @@ export default {
|
|
|
}],
|
|
|
|
|
|
selProject: {},
|
|
|
+
|
|
|
+ loading: false,
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -121,11 +124,16 @@ export default {
|
|
|
this.currProjectId = this.projectId || '';
|
|
|
},
|
|
|
methods: {
|
|
|
+ handleRefresh() {
|
|
|
+ this.getAllBudgetData(this.selProject.id);
|
|
|
+ },
|
|
|
handleProjectChange(data) {
|
|
|
this.selProject = data;
|
|
|
},
|
|
|
getAllBudgetData(id) {
|
|
|
+ this.loading = true;
|
|
|
getAllBudget({ xmId: id }).then(({ data }) => {
|
|
|
+ this.loading = false;
|
|
|
if (data.success) {
|
|
|
const { xmysze } = data.data;
|
|
|
let ysze = xmysze === -1 ? 1 : xmysze;
|
|
|
@@ -149,19 +157,45 @@ export default {
|
|
|
readKey = 'qtfy';
|
|
|
}
|
|
|
|
|
|
- item.sales = data.data[readKey] === -1 ? 0 : data.data[readKey];
|
|
|
+ item.sales = (data.data[readKey] === -1 ? 0 : data.data[readKey]).toFixed(2);
|
|
|
let ratio = 0;
|
|
|
if (item.sales) {
|
|
|
- ratio = new Decimal(item.sales).div(new Decimal(ysze)).toNumber();
|
|
|
+ ratio = (new Decimal(item.sales).div(new Decimal(ysze))*100).toFixed(2);
|
|
|
}
|
|
|
item.ratio = ratio;
|
|
|
|
|
|
return item;
|
|
|
});
|
|
|
-
|
|
|
- console.log(this.tableData)
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getSummaries(param) {
|
|
|
+ const { columns, data } = param;
|
|
|
+ const sums = [];
|
|
|
+ columns.forEach((column, index) => {
|
|
|
+ if (index === 0) {
|
|
|
+ sums[index] = '合计';
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const values = data.map(item => Number(item[column.property]));
|
|
|
+ if (!values.every(value => isNaN(value))) {
|
|
|
+ sums[index] = values.reduce((prev, curr) => {
|
|
|
+ const value = Number(curr);
|
|
|
+ if (!isNaN(value)) {
|
|
|
+ return prev + curr;
|
|
|
+ } else {
|
|
|
+ return prev;
|
|
|
+ }
|
|
|
+ }, 0);
|
|
|
+ // 保留两位小数
|
|
|
+ sums[index] = sums[index].toFixed(2);
|
|
|
+ } else {
|
|
|
+ sums[index] = 'N/A';
|
|
|
}
|
|
|
});
|
|
|
+ return sums;
|
|
|
}
|
|
|
}
|
|
|
};
|