获取返回数据类型:
{
"code": 200,
"message": "查询成功",
"data": [
{
"opDate": "2023-08-01",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 17901.49
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 3233.3
},
{
"supplierName": "供应商测试2",
"totalPrice": 4201.845
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-02",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 16715.63
},
{
"supplierName": "供应商测试2",
"totalPrice": 3255.289
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 0
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-03",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 17483.12
},
{
"supplierName": "供应商测试2",
"totalPrice": 4101.407
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 0
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-04",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 14570.18
},
{
"supplierName": "供应商测试2",
"totalPrice": 2897.257
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 0
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-05",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 4942.47
},
{
"supplierName": "供应商测试2",
"totalPrice": 1470.994
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 0
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-06",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 8188.58
},
{
"supplierName": "供应商测试2",
"totalPrice": 2998.148
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 0
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-07",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 12675.62
},
{
"supplierName": "供应商测试2",
"totalPrice": 3014.079
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 0
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-08",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 17289.77
},
{
"supplierName": "供应商测试2",
"totalPrice": 3957.453
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 0
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-09",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 182
},
{
"supplierName": "供应商测试2",
"totalPrice": 3942.195
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 0
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-10",
"supplierDayList": [
{
"supplierName": "供应商测试2",
"totalPrice": 2214.488
},
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 0
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 0
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-11",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 15279.13
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 25409.28
},
{
"supplierName": "供应商测试2",
"totalPrice": 2585.916
},
{
"supplierName": "供应商测试3",
"totalPrice": 19752.5
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-12",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 6472.06
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 1916.48
},
{
"supplierName": "供应商测试2",
"totalPrice": 1903.768
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-13",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 8031.59
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 1138.5
},
{
"supplierName": "供应商测试2",
"totalPrice": 2389.872
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-14",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 13376.35
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 5629.42
},
{
"supplierName": "供应商测试2",
"totalPrice": 3341.525
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-15",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 14364.68
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 3528.46
},
{
"supplierName": "供应商测试2",
"totalPrice": 3444.371
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
},
{
"opDate": "2023-08-16",
"supplierDayList": [
{
"supplierName": "河南汇群福商贸有限公司",
"totalPrice": 14603.885
},
{
"supplierName": "河南鹏旭食品有限公司",
"totalPrice": 4783.3
},
{
"supplierName": "供应商测试2",
"totalPrice": 4119
},
{
"supplierName": "供应商测试3",
"totalPrice": 0
}
],
"mcateDayList": null
}
]
}
在vuex中的actions调用接口,获取后端传过来的数据:
actions:{
// 获取表格显示信息
getInTotalActions({state,commit}){
axios.get('/common/report/getSupplierData',{params:state.pageInfo}).then(response =>{
if(response.code === 200){
commit('getSupplierList',response.data)
Message({
message:response.message,
type:'success'
})
}else{
Message({
message:response.message,
type:'error'
})
}
})
},
}
在vuex的mutations处理我们所获取到的数据:
// 获取表格信息
getSupplierList(state,list){
state.transformedData = null
state.tableHead = [] //这里需要附空,否则数据会出现累加
state.transformedData = list
let selectState = list[0].supplierDayList
selectState.forEach((item,index) => {
//这里是循环数据得到的动态表头
state.tableHead.push({index:index,property:'supplierDayList',label:item.supplierName})
});
const anotherTableHead = [
{
label:'日期'+"\\"+'供应商',
property:'opDate'
}
]
state.tableHead = [...anotherTableHead,...state.tableHead]
},
vuex中的state用来存储数据:
state:{
transformedData:null,
pageInfo:{
beginTime:null,
endTime:null,
},
tableHead:[],
},
在我们的vue页面中的script调用vuex:
import {mapState , mapActions} from 'vuex';
...
computed:{
...mapState('vendor',['pageInfo','transformedData','tableHead'])
},
methods:{
...mapActions('vendor',['getInTotalActions']),
}
在vue页面的template进行渲染表格:
<!-- 表格 -->
<el-table :data="transformedData" border id="out-table">
<el-table-column v-for="(item,index) in tableHead" :key="index" :label="item.label" :property="item.property" :index="item.index" align="center">
<template slot-scope="scope">
<div>
<p v-if="scope.column.property !='supplierDayList'">{{ scope.row[scope.column.property] }}</p>
<p v-else>{{ scope.row[scope.column.property][scope.column.index].totalPrice }}</p>
</div>
</template>
</el-table-column>
</el-table>
最终显示结果如下: