主要代码如下:将从服务器获取到的数据进行改造,改造之后再将表格每一列的合计添加到数据里,在表头显示合计,年度汇总和年度月均,当表格中输入的数据发生改变时候,合计没有变化,打印的数据发生变化了,数据也显示...,所以不知道哪里出问题了
data() {
return {
// mixinViewModuleOptions: {
// getDataListURL: '/sys/log/login/page',
// getDataListIsPage: true,
// exportURL: '/sys/log/login/export'
// },
options: [
{
value: "1",
label: "2020年",
},
{
value: "2",
label: "2019年",
},
{
value: "3",
label: "2018年",
},
{
value: "4",
label: "2017年",
},
{
value: "5",
label: "2016年",
},
{
value: "6",
label: "2015年",
},
{
value: "7",
label: "2014年",
},
],
// lineNameList:["1301422244790112257","1301421413072211970"],
lineNameList:[],
optionList: [],
companyid:'',
selected: "",
choosed: "",
activeName: "0",
lineType: "0",
lineId: "",
tableparams: {
year: '',
id:'',
electricityWaterFlag: '0',
},
status: false, //编辑状态,默认不可编辑
stationName: [],
finalData:[],
tableData3: [ ],
};
computed:{
getColumnTotal() {
return this.getColumnTotal2();
},
},
methods:{
getColumnTotal2() {
let yearSum = {
total: true,
editable: false,
month: "年度汇总",
detail: [],
};
// let data = Array.from(this.tableData3);
// console.log(this.tableData3)
let formatData = this.dataFormat(this.tableData3);
// console.log(formatData)
let data = Array.from(formatData);
for (let rowIndex = 0; rowIndex < data.length; rowIndex++) {
let detail = data[rowIndex]["detail"];
for (let colIndex = 0; colIndex < detail.length; colIndex++) {
let detailElement = detail[colIndex];
let yearSumElement = yearSum["detail"];
if (yearSumElement[colIndex] !== undefined) {
//说明存在
let exist = yearSumElement[colIndex];
exist["electricityWaterConsumption"] += this.numberFormat(
detailElement["electricityWaterConsumption"]
);
exist["electricityWaterFees"] += this.numberFormat(
detailElement["electricityWaterFees"]
);
} else {
yearSumElement[colIndex] = {
electricityWaterConsumption:
detailElement["electricityWaterConsumption"],
electricityWaterFees: detailElement["electricityWaterFees"],
projectId: detailElement["projectId"],
projectName: detailElement["projectName"],
electricityWaterFlag: detailElement["electricityWaterFlag"],
};
}
}
}
let monthSum = {
total: true,
editable: false,
month: "年度月均",
detail: [],
};
let length = yearSum["detail"].length;
for (let monthColIndex = 0; monthColIndex < length; monthColIndex++) {
let detailElement = yearSum["detail"][monthColIndex];
monthSum["detail"][monthColIndex] = {
electricityWaterConsumption: (
detailElement["electricityWaterConsumption"] / length
).toFixed(2),
electricityWaterFees: (
detailElement["electricityWaterFees"] / length
).toFixed(2),
projectId: detailElement["projectId"],
projectName: detailElement["projectName"],
electricityWaterFlag: detailElement["electricityWaterFlag"],
};
}
data.unshift(monthSum);
data.unshift(yearSum);
this.tableData3 = data;
// console.log(this.tableData3)
return this.tableData3;
},
// 格式化数据
dataFormat(data) {
var newData = [];
data.forEach(function (item) {
for (var i = 0; i < newData.length; i++) {
if (newData[i].month === item.month) {
newData[i].detail.push({
electricityWaterConsumption: item.electricityWaterConsumption,
electricityWaterFees: item.electricityWaterFees,
projectId: item.projectId,
projectName: item.projectName,
electricityWaterFlag: item.electricityWaterFlag,
});
return;
}
}
newData.push({
month: item.month,
year:item.year,
editable: false, //默认不可编辑
// status: false,
btntext: "编辑",
detail: [
{
electricityWaterConsumption: item.electricityWaterConsumption,
electricityWaterFees: item.electricityWaterFees,
projectId: item.projectId,
projectName: item.projectName,
electricityWaterFlag: item.electricityWaterFlag
},
],
});
});
data = newData;
// console.log(data)
return newData
},
getDataList() {
//线路数据
this.$http
.get(`/demo/sysproject/findProjectList`, {
params: {
// key: this.dataForm.processDefinitionKey
id: "",
},
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
if(res.data){
this.optionList = res.data;
this.companyid = this.optionList[0].id;
this.lineId = this.optionList[0].children[0].id;
//设置默认线路
this.lineNameList=[''+this.companyid+'',''+this.lineId+''];
}
//获取水电录入信息参数
this.tableparams = {
year: this.choosed.replace("年", ""),
id: this.lineId,
electricityWaterFlag: this.lineType,
};
this.getTableData()
})
.catch(() => {});
},
getTableData(){
this.$http
.get(`/demo/electricitywater/list`, {
params: this.tableparams,
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
let result = res.data;
// this.tableData3 = this.dataFormat(result);
this.tableData3 = result;
var nameArray = [];
for (let item of this.dataFormat(this.tableData3)[0].detail) {
// for (let item of this.tableData3[0].detail) {
if(item.projectName){
nameArray.push(item.projectName);
}
}
this.stationName = nameArray;
this.$nextTick(()=>{
this.$refs.tableRef.doLayout()
})
// return nameArray;
return this.tableData3;
})
.catch(() => {});
},
}