对象数据类型转value、name形式的数组数据类型
对象类型
const total = {
wait_status:"未接单工单数",
process_status:"处理中工单数",
already_status:"已处理完成工单数",
comment_status:"已评价工单数",
hold_status:"挂起工单数",
invalid_status:"无效工单数",
};
数组类型
const Arr= [
{value:"3",name:"未接单"},
{value:"9",name:"处理中"},
{value:"1",name:"处理完成"},
{value:"23",name:"已评价"},
{value:"6",name:"挂起"},
{value:"39",name:"无效"}
];``
函数封装
步骤:
第一步:数据类型为数组内部嵌套对象,由内而外处理数据;先将内部的对象处理完成,最后转成数组
第二步:将处理好的数组return出去
第三步:调用函数,使用变量接受return出去的值,即可使用
// 函数传入需转换的对象作为形参
objtransArr(obj) {
const dataArrPie = [];
for (var k in obj) {
//将对象定义成key、value形式{key:value}-->{"未接单":"6"}
const data = {};
// k 接口英文名
// total[k] value值
data.value = obj[k]; // 将value值推进去
// 开始处理key名称
// 将固定的格式定义为常量数据
const changeDataList = [
{
name: "wait_status",
des: "未接单"
},
{
name: "process_status",
des: "处理中"
},
{
name: "already_status",
des: "已处理完成"
},
{
name: "comment_status",
des: "已评价"
},
{
name: "hold_status",
des: "挂起"
},
{
name: "invalid_status",
des: "无效"
}
];
// k为英文名称
// d.name也为英文名称
// 将符合条件(d.name == k)的des中文名取出作为name属性
data.name = changeDataList.find(d => d.name == k).des;
dataArrPie.push(data);
}
return dataArrPie;
},
使用函数
click() {
// 假设total为调取接口之后后端返回的数据
const total = {
wait_status: "1",
process_status: "2",
already_status: "5",
comment_status: "8",
hold_status: "9",
invalid_status: "3"
};
// 定义一个常量接受函数return出去的处理好的数据
const newData = this.objtransArr(total);
console.warn(newData);
}
打印出来的newData数据如下:
处理好之后echarts饼图的serice中data即可使用