From 6ea4eb414970a267c2030daf36099e6191cba200 Mon Sep 17 00:00:00 2001 From: shijing Date: Mon, 30 Dec 2024 10:12:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/enm_slag/teamAnalysis.vue | 153 ++++++++++++++-------------- 1 file changed, 77 insertions(+), 76 deletions(-) diff --git a/src/views/enm_slag/teamAnalysis.vue b/src/views/enm_slag/teamAnalysis.vue index b5e787ea..431b0e55 100644 --- a/src/views/enm_slag/teamAnalysis.vue +++ b/src/views/enm_slag/teamAnalysis.vue @@ -49,11 +49,11 @@ 得分 - 当期值(kkW·h/t) - 目标值(kkW·h/t) - 当期与目标值差值(kW·h/t) - 环期值(kW·h/t) - 当期与环期值差值(kW·h/t) + 当期值(kKW·h/t) + 目标值(kKW·h/t) + 当期与目标值差值(KW·h/t) + 环期值(KW·h/t) + 当期与环期值差值(KW·h/t) 环比增长率(%) 同比增长率(%) @@ -95,24 +95,11 @@ export default { let year = myDate.getFullYear(); this.timeStamp = myDate.getTime(); that.query.year_s = year; - this.$API.mtm.mgroup.list - .req({ page: 0, search: "电石渣" }) - .then((res) => { - that.query.mgroup = res[0].id; - let params = {}; - params.page = 0; - params.year = year; - params.mgroup = that.query.mgroup; - this.$API.mtm.goal.list.req(params).then((res) => { - if (res.length > 0) { - res.forEach((item) => { - if (item.goal_cate_name == "单位产品分布电耗(kW·h/t)") { - that.getData(item); - } - }) - } - }); - }); + this.$API.mtm.mgroup.list.req({ page: 0, search: "电石渣" }).then((res) => { + console.log("工段数据:", res); + that.query.mgroup = res[0].id; + that.getGoalData(); + }); }, methods: { getGoalData() { @@ -123,16 +110,16 @@ export default { params.mgroup = self.query.mgroup; self.$API.mtm.goal.list.req(params).then((res) => { if (res.length > 0) { - res.forEach((item) => { - if (item.goal_cate_name == "单位产品分布电耗(kW·h/t)") { - this.getData(item); - } - }) - } - }) - .catch((error) => { - console.error('获取目标数据失败:', error); - }); + res.forEach((item) => { + if (item.goal_cate_name == "单位产品分布电耗(kW·h/t)") { + console.log("目标数据:", item); + self.getData(item); + } + }) + } + }).catch((error) => { + console.error('获取目标数据失败:', error); + }); }, getData(goalData) { let that = this; @@ -187,50 +174,64 @@ export default { arr.push(item.total_production); arr.push(item.production_hour); - arr[4] = item.elec_consume_unit; //当期值(kW·h/t) - let keyVale = "goal_val_" + n; - arr[5] = goalData[keyVale]; //目标值(kW·h/t)//需要接口获取 - arr[6] = (arr[4] - arr[5]).toFixed(2); //当期与目标差值(kW·h/t) - let ind_pre = 0, - huanqi = 0, - huanqicha = 0, - tongqi = 0, - tongqicha = 0; - if (n == 1) { - ind_pre = 12; - huanqi = wrapArr0[ind_pre] - ? wrapArr0[ind_pre].elec_consume_unit - : "/"; - } else { - // 如果 wrapArr数组长度大于0,那么循环遍历wrapArr数组,找到与item.month_s相差1的元素 而 item.name相同,并赋值给huanbi - compareArr0.forEach((item0) => { - if (item0[0] == item.month_s - 1 && item0[1] == item.team_name) { - huanqi = item0[2]; - } - }) + arr[4] = item.elec_consume_unit; //当期值(KW·h/t) + let keyVale = "goal_val_" + n; + arr[5] = goalData[keyVale]; //目标值(KW·h/t)//需要接口获取 + arr[6] = (arr[4] - arr[5]).toFixed(2); //当期与目标差值(KW·h/t) + let ind_pre = 0, + huanqi = 0, + tongqi = 0, + tongqicha = 0; + if (n == 1) { + ind_pre = 12; + huanqi = wrapArr0[ind_pre] + ? wrapArr0[ind_pre].elec_consume_unit + : "/"; + } else { + // 如果 wrapArr数组长度大于0,那么循环遍历wrapArr数组,找到与item.month_s相差1的元素 而 item.name相同,并赋值给huanbi + compareArr0.forEach((item0) => { + if (item0[0] == item.month_s - 1 && item0[1] == item.team_name) { + huanqi = item0[2]; } - arr[7] = huanqi; //环期值(kW·h/t)上个月的值 - if (arr[6] !== "/"){ - arr[8] = (arr[4] - arr[7]).toFixed(2); //当期与环期差值(kW·h/t) - }else{ - arr[8] = "/"; //当期与环期差值(kW·h/t) - } - // arr[8] = huanqicha; //当期与环期差值(kW·h/t) - let growthRate = 0; - if (arr[8]!== "/" && arr[7]!== 0 && arr[8]!== 0 ) { - growthRate = ((arr[8] / arr[7]) * 100).toFixed(2); - } else{ - growthRate = "/"; - } - arr[9] = growthRate; //环比增长率(%) - if (wrapArr0[n]) { - tongqicha = - item.celec_consume_unit - - wrapArr0[n].celec_consume_unit; - tongqi = tongqicha / tongqi; - } else { - tongqicha = item.celec_consume_unit; - tongqi = 0; + }) + } + arr[7] = Number(huanqi); //环期值(KW·h/t)上个月的值 + if (arr[6] !== "/"){ + arr[8] = (Number(arr[4]) - arr[7]).toFixed(2); //当期与环期差值(KW·h/t) + }else{ + arr[8] = "/"; //当期与环期差值(KW·h/t) + } + let growthRate = 0; + if (arr[8]!== "/" && arr[7]!== 0 && arr[8]!== 0 ) { + growthRate = ((Number(arr[8]) /arr[7]) * 100).toFixed(2); + } else{ + growthRate = "/"; + } + arr[9] = growthRate; //环比增长率(%) + if (wrapArr0[n]) { + tongqicha = + item.celec_consume_unit - + wrapArr0[n].celec_consume_unit; + tongqi = tongqicha / tongqi; + } else { + tongqicha = item.celec_consume_unit; + tongqi = 0; + } + arr[10] = tongqi; //同比增长率(%) + //如果n = month_list的key值,则遍历里面的对象按照value排序, 如果 index==0,则arr[11] = 100,如果 index==1,则arr[11] = 80,如果 index==2,则arr[11] = 70,如果 index==3,则arr[11] = 0 + if (month_obj[n]) { + const monthData = month_obj[n]; + const itemValue = item.elec_consume_unit; // 当前项的值 + const sortedData = monthData.sort((a, b) => parseFloat(b.value) - parseFloat(a.value)); + const index = sortedData.findIndex(obj => parseFloat(obj.value) === parseFloat(itemValue)); + if (index === 0){ + arr[11] = 50; + } else if (index === 1) { + arr[11] = 40; + } else if (index === 2) { + arr[11] = 30; + } else if (index === 3) { + arr[11] = 20; } const total_elec_consume = item.elec_consume; const sortedTotalData = monthData.sort((a, b) => parseFloat(b.elec_consume) - parseFloat(a.elec_consume));