From 9d91188b987d81f11f9548a6215215bccf9f210c Mon Sep 17 00:00:00 2001 From: juzi <819872918@qq.com> Date: Fri, 3 Apr 2026 09:10:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=90=A5=E4=B8=9A=E6=94=B6=E5=85=A5-=E5=85=A8?= =?UTF-8?q?=E6=88=90=E6=9C=AC=E5=88=86=E6=9E=90=E9=A1=B5=E9=9D=A2=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 4 +- .../relatedIndicatorsAnalysis.vue | 2 +- .../monthlyRelatedMetrics.vue | 2 +- .../yearRelatedMetrics.vue | 2 +- .../dataTrendBar.vue | 16 +- .../operatingBar.vue | 1 + .../operatingLineBarSale.vue | 4 +- .../relatedIndicatorsAnalysis.vue | 20 +- .../grossMarginComponents/dataTrendBar.vue | 17 +- .../grossMarginComponents/operatingBar.vue | 1 + .../operatingLineBarSale.vue | 4 +- .../dataTrendBar.vue | 19 +- .../monthlyRelatedMetrics.vue | 6 +- .../operatingBar.vue | 1 + .../operatingLineBarSale.vue | 4 +- .../yearRelatedMetrics.vue | 6 +- .../netPriceAnalysis/netPriceAnalysisBase.vue | 17 +- .../dataTrendBar.vue | 2 +- .../monthlyRelatedMetrics.vue | 85 ++- .../operatingLineBarSale.vue | 2 +- .../operatingLineBarSaleGroup.vue | 2 +- .../yearRelatedMetrics.vue | 85 ++- .../home/operatingComponents/dataTrendBar.vue | 20 +- .../home/operatingComponents/operatingBar.vue | 1 + .../operatingLineBarSale.vue | 5 +- .../operatingProfit/operatingProfitBase.vue | 1 - .../dataTrendBar.vue | 28 +- .../operatingBar.vue | 1 + .../operatingLineBarSale.vue | 4 +- .../relatedIndicatorsAnalysis.vue | 13 +- .../totalOverview.vue | 2 +- .../relatedIndicatorsAnalysis.vue | 12 +- .../originalSheetLabor.vue | 2 +- .../singleProcMfgOverheadCost.vue | 2 +- .../containerPackMatCost.vue | 499 +++++++++--------- .../dataTrendProcessingLabor.vue | 6 +- .../dataTrendProcessingLabor2.vue | 247 +++++++++ .../monthlyRelatedMetrics.vue | 2 +- .../monthlyRelatedMetricsProcessingFuel.vue | 4 +- .../monthlyThreeRelatedMetrics.vue | 2 +- .../monthlyThreeRelatedMetricsCCA.vue | 2 +- .../monthlyThreeRelatedMetricsPro.vue | 2 +- .../relateCombustibleCostAnalysis.vue | 2 +- .../relateFactoryBurdenCostAnalysis.vue | 2 +- .../relateProcessCostAnalysis.vue | 2 +- .../relateSingleCombustible.vue | 2 +- .../relateSingleFuelCostAnalysis.vue | 2 +- .../relateSingleFuelCostAnalysisDian.vue | 8 +- .../relateSingleFuelCostAnalysisFu.vue | 2 +- .../relatedIndicatorsAnalysis.vue | 2 +- .../yearRelatedMetrics.vue | 2 +- .../yearRelatedMetricsFuel.vue | 4 +- .../yearThreeRelatedMetrics.vue | 2 +- .../yearThreeRelatedMetricsCCA.vue | 2 +- .../yearThreeRelatedMetricsPro.vue | 2 +- .../home/rawSheetYield/rawSheetYieldBase.vue | 24 +- .../rawSheetYieldComponents/dataTrendBar.vue | 25 +- .../monthlyRelatedMetrics.vue | 2 +- .../rawSheetYieldComponents/operatingBar.vue | 1 + .../operatingLineBarSale.vue | 4 +- .../operatingSingleBar.vue | 2 +- .../relatedIndicatorsAnalysis.vue | 231 ++++++++ .../yearRelatedMetrics.vue | 2 +- .../dataTrendBar.vue | 20 +- .../dataTrendBarDouble.vue | 16 +- .../dataTrendBarProduct.vue | 15 +- .../monthlyRelatedMetrics.vue | 4 +- .../monthlyThreeRelatedMetrics.vue | 4 +- .../operatingBar.vue | 1 + .../operatingLineBarSale.vue | 4 +- .../relatedIndicatorsAnalysis.vue | 8 +- .../yearRelatedMetrics.vue | 5 +- .../yearThreeRelatedMetrics.vue | 4 +- .../home/totalProfit/totalProfitBase.vue | 2 +- .../totalProfitComponents/dataTrendBar.vue | 27 +- .../totalProfitComponents/operatingBar.vue | 1 + .../operatingLineBarSale.vue | 4 +- .../relatedIndicatorsAnalysis.vue | 13 +- .../monthlyRelatedMetrics.vue | 107 ++-- .../operatingLineBarSale.vue | 2 +- .../operatingLineBarSaleGroup.vue | 2 +- .../operatingLineBarSaleSingle.vue | 18 +- .../operatingSingleBar.vue | 1 - .../operatingTopBar.vue | 1 - .../yearRelatedMetrics.vue | 106 ++-- 85 files changed, 1228 insertions(+), 619 deletions(-) create mode 100644 src/views/home/productionCostAnalysisComponents/dataTrendProcessingLabor2.vue create mode 100644 src/views/home/rawSheetYieldComponents/relatedIndicatorsAnalysis.vue diff --git a/.env.dev b/.env.dev index e0b89faf..1f370043 100644 --- a/.env.dev +++ b/.env.dev @@ -10,11 +10,11 @@ VUE_APP_TITLE = 洛玻集团驾驶舱 # VUE_APP_BASE_API = 'http://172.16.33.83:7070' # 杨姗姗 -# VUE_APP_BASE_API = 'http://172.16.20.218:7070' +VUE_APP_BASE_API = 'http://172.16.20.218:7070' # 小田 # VUE_APP_BASE_API = 'http://172.16.19.232:7070' # 测试 -VUE_APP_BASE_API = 'http://192.168.0.35:8080' +# VUE_APP_BASE_API = 'http://192.168.0.35:8080' # 闫阳 # VUE_APP_BASE_API = 'http://172.16.19.131:7070' diff --git a/src/views/home/electricityCostAnalysisComponents/relatedIndicatorsAnalysis.vue b/src/views/home/electricityCostAnalysisComponents/relatedIndicatorsAnalysis.vue index 921cf5f1..6d701d95 100644 --- a/src/views/home/electricityCostAnalysisComponents/relatedIndicatorsAnalysis.vue +++ b/src/views/home/electricityCostAnalysisComponents/relatedIndicatorsAnalysis.vue @@ -13,7 +13,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/expenseAnalysisComponents/monthlyRelatedMetrics.vue b/src/views/home/expenseAnalysisComponents/monthlyRelatedMetrics.vue index c1b3e1f9..b2230e4a 100644 --- a/src/views/home/expenseAnalysisComponents/monthlyRelatedMetrics.vue +++ b/src/views/home/expenseAnalysisComponents/monthlyRelatedMetrics.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.rate}}% 差值:{{item.detailData.diff}}
diff --git a/src/views/home/expenseAnalysisComponents/yearRelatedMetrics.vue b/src/views/home/expenseAnalysisComponents/yearRelatedMetrics.vue index 655e38eb..daa861e3 100644 --- a/src/views/home/expenseAnalysisComponents/yearRelatedMetrics.vue +++ b/src/views/home/expenseAnalysisComponents/yearRelatedMetrics.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.rate}}% 差值:{{item.detailData.diff}}
diff --git a/src/views/home/fullCostAnalysisComponents/dataTrendBar.vue b/src/views/home/fullCostAnalysisComponents/dataTrendBar.vue index 8952e3ba..2e299190 100644 --- a/src/views/home/fullCostAnalysisComponents/dataTrendBar.vue +++ b/src/views/home/fullCostAnalysisComponents/dataTrendBar.vue @@ -35,7 +35,7 @@
@@ -64,7 +64,15 @@ export default { activeButton: 0, isDropdownShow: false, selectedProfit: '全成本', // 关键修改:默认赋值为「净价」,初始化即展示该类目数据 - profitOptions: ['全成本', '制造成本', '管理费用', '财务费用', '运费', '销售费用'] + profitOptions:[ + {name:'全成本',unit:'元/㎡'}, + {name:'制造成本',unit:'元/㎡'}, + {name:'管理费用',unit:'万元'}, + {name:'财务费用',unit:'万元'}, + {name:'运费',unit:'元/㎡'}, + {name:'销售费用',unit:'万元'}, + ], + unit:'元/㎡' }; }, computed: { @@ -128,6 +136,7 @@ export default { // 销量场景数据(保留原有结构,替换数据来源) const salesData = { allPlaceNames: months, // 优先用基地名称,无则用月份 + unit: this.unit, series: [ // 1. 完成率(折线图) { @@ -296,7 +305,8 @@ export default { }, methods: { selectProfit(item) { - this.selectedProfit = item; + this.selectedProfit = item.name; + this.unit = item.unit; this.isDropdownShow = false; }, // 复用达标状态判断方法 diff --git a/src/views/home/fullCostAnalysisComponents/operatingBar.vue b/src/views/home/fullCostAnalysisComponents/operatingBar.vue index c0a3abdb..f07170e7 100644 --- a/src/views/home/fullCostAnalysisComponents/operatingBar.vue +++ b/src/views/home/fullCostAnalysisComponents/operatingBar.vue @@ -123,6 +123,7 @@ export default { const data = this.currentDataSource; const salesData = { allPlaceNames: this.locations, + unit:'元/㎡', series: [ // 完成率(折线图) { diff --git a/src/views/home/fullCostAnalysisComponents/operatingLineBarSale.vue b/src/views/home/fullCostAnalysisComponents/operatingLineBarSale.vue index e6299c85..09d9495a 100644 --- a/src/views/home/fullCostAnalysisComponents/operatingLineBarSale.vue +++ b/src/views/home/fullCostAnalysisComponents/operatingLineBarSale.vue @@ -122,7 +122,7 @@ export default { return; // 实例未初始化则返回 } - const { allPlaceNames, series } = this.chartData || {}; + const { allPlaceNames,unit, series } = this.chartData || {}; const xData = allPlaceNames || []; const chartSeries = series || []; @@ -169,7 +169,7 @@ export default { yAxis: [ { type: 'value', - name: '元/m2', + name: unit, nameTextStyle: { color: 'rgba(0, 0, 0, 0.45)', fontSize: 12, diff --git a/src/views/home/fullCostAnalysisComponents/relatedIndicatorsAnalysis.vue b/src/views/home/fullCostAnalysisComponents/relatedIndicatorsAnalysis.vue index 07203453..8c38b837 100644 --- a/src/views/home/fullCostAnalysisComponents/relatedIndicatorsAnalysis.vue +++ b/src/views/home/fullCostAnalysisComponents/relatedIndicatorsAnalysis.vue @@ -13,7 +13,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.completeRate}}% 差值:{{item.detailData.diff}}
@@ -70,16 +70,17 @@ export default { real: 0, target: 0, thb: 0 - } + }, + currentTab: 'month', } }, computed: { indicatorDefs() { return [ { key: 'productionCost', name: '制造成本', unit: '元/㎡', route:'/productionCostAnalysis/productionCostAnalysisBase'}, - { key: 'financialCost', name: '财务费用', unit: '元/㎡',route:'/expenseAnalysis/expenseAnalysisBase' }, - { key: 'saleCost', name: '销售费用', unit: '元/㎡',route:'/expenseAnalysis/expenseAnalysisBase'}, - { key: 'manageCost', name: '管理费用', unit: '元/㎡',route:'/expenseAnalysis/expenseAnalysisBase' }, + { key: 'financialCost', name: '财务费用', unit: '万元',route:'/expenseAnalysis/expenseAnalysisBase' }, + { key: 'saleCost', name: '销售费用', unit: '万元',route:'/expenseAnalysis/expenseAnalysisBase'}, + { key: 'manageCost', name: '管理费用', unit: '万元',route:'/expenseAnalysis/expenseAnalysisBase' }, { key: 'freight', name: '运费', unit: '元/㎡',route:null }, ] }, @@ -109,7 +110,7 @@ export default { }) }, sortedIndicators() { - const unitOrder = ['元/㎡'] + const unitOrder = ['元/㎡','万元'] const unitRank = (u) => { const idx = unitOrder.indexOf(u) return idx === -1 ? 999 : idx @@ -128,7 +129,11 @@ export default { // 监听 relatedData 变化(异步加载场景),同步更新月度数据 relatedData: { handler(newVal) { - this.relatedDetailData = newVal.relatedMon || {}; + if(this.currentTab === 'month') { + this.relatedDetailData = newVal.relatedMon || {}; + }else{ + this.relatedDetailData = newVal.relatedTotal || {}; + } }, immediate: true, deep: true @@ -167,6 +172,7 @@ export default { }, handleChange(value) { console.log('value', value, this.relatedData); + this.currentTab = value; if (value === 'month') { this.relatedDetailData = this.relatedData.relatedMon || {}; } else { diff --git a/src/views/home/grossMarginComponents/dataTrendBar.vue b/src/views/home/grossMarginComponents/dataTrendBar.vue index 2ac71d6c..087fd943 100644 --- a/src/views/home/grossMarginComponents/dataTrendBar.vue +++ b/src/views/home/grossMarginComponents/dataTrendBar.vue @@ -35,7 +35,7 @@
@@ -63,10 +63,11 @@ export default { isDropdownShow: false, selectedProfit: '毛利率', // 选中的名称,初始为null profitOptions: [ - '毛利率', - '营业收入', - '全成本', - ] + {name:'毛利率',unit:'%'}, + {name:'营业收入',unit:'万元'}, + {name:'全成本',unit:'元/㎡'} + ], + unit:'%' }; }, computed: { @@ -91,6 +92,7 @@ export default { const salesData = { allPlaceNames: this.locations, + unit: this.unit, series: [ // 1. 完成率(折线图) { @@ -251,9 +253,10 @@ export default { }, methods: { selectProfit(item) { - this.selectedProfit = item; + this.selectedProfit = item.name; + this.unit = item.unit; this.isDropdownShow = false; - this.$emit("changeItem", item); + this.$emit("changeItem", item.name); } }, }; diff --git a/src/views/home/grossMarginComponents/operatingBar.vue b/src/views/home/grossMarginComponents/operatingBar.vue index 61daf973..5b2adf89 100644 --- a/src/views/home/grossMarginComponents/operatingBar.vue +++ b/src/views/home/grossMarginComponents/operatingBar.vue @@ -123,6 +123,7 @@ export default { const data = this.currentDataSource; const salesData = { allPlaceNames: this.locations, + unit:'%', series: [ // 完成率(折线图) { diff --git a/src/views/home/grossMarginComponents/operatingLineBarSale.vue b/src/views/home/grossMarginComponents/operatingLineBarSale.vue index ac4ad709..697c0690 100644 --- a/src/views/home/grossMarginComponents/operatingLineBarSale.vue +++ b/src/views/home/grossMarginComponents/operatingLineBarSale.vue @@ -133,7 +133,7 @@ export default { return; // 实例未初始化则返回 } - const { allPlaceNames, series } = this.chartData || {}; + const { allPlaceNames, unit, series } = this.chartData || {}; const xData = allPlaceNames || []; const chartSeries = series || []; @@ -180,7 +180,7 @@ export default { yAxis: [ { type: 'value', - name: '%', + name: unit, nameTextStyle: { color: 'rgba(0, 0, 0, 0.45)', fontSize: 12, diff --git a/src/views/home/inputOutputRatioComponents/dataTrendBar.vue b/src/views/home/inputOutputRatioComponents/dataTrendBar.vue index 6273391a..8691f2a6 100644 --- a/src/views/home/inputOutputRatioComponents/dataTrendBar.vue +++ b/src/views/home/inputOutputRatioComponents/dataTrendBar.vue @@ -35,7 +35,7 @@
@@ -61,12 +61,13 @@ export default { return { activeButton: 0, isDropdownShow: false, - selectedProfit: '加工成品率', // 选中的名称,初始为null + selectedProfit: '投入产出率', // 选中的名称,初始为null profitOptions: [ - '加工成品率', - '领用量', - '加工产量', - ] + {name:'投入产出率',unit:'%'}, + {name:'加工产量',unit:'㎡'}, + {name:'领用量',unit:'㎡'} + ], + unit:'%' }; }, computed: { @@ -90,6 +91,7 @@ export default { const salesData = { allPlaceNames: this.locations, + unit: this.unit, series: [ // 1. 完成率(折线图) { @@ -251,9 +253,10 @@ export default { }, methods: { selectProfit(item) { - this.selectedProfit = item; + this.selectedProfit = item.name; + this.unit = item.unit; this.isDropdownShow = false; - this.$emit("changeItem", item); + this.$emit("changeItem", item.name); } }, }; diff --git a/src/views/home/inputOutputRatioComponents/monthlyRelatedMetrics.vue b/src/views/home/inputOutputRatioComponents/monthlyRelatedMetrics.vue index 8d07f4dc..e8bb2cca 100644 --- a/src/views/home/inputOutputRatioComponents/monthlyRelatedMetrics.vue +++ b/src/views/home/inputOutputRatioComponents/monthlyRelatedMetrics.vue @@ -11,7 +11,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.rate}}% 差值:{{item.detailData.diff}}
@@ -57,8 +57,8 @@ export default { computed: { indicatorDefs() { return [ - { key: 'useData', name: '领用量', unit: '万㎡'}, - { key: 'processData', name: '加工产量', unit: '万㎡'}, + { key: 'useData', name: '领用量', unit: '㎡'}, + { key: 'processData', name: '加工产量', unit: '㎡'}, ] }, indicators() { diff --git a/src/views/home/inputOutputRatioComponents/operatingBar.vue b/src/views/home/inputOutputRatioComponents/operatingBar.vue index 61daf973..5b2adf89 100644 --- a/src/views/home/inputOutputRatioComponents/operatingBar.vue +++ b/src/views/home/inputOutputRatioComponents/operatingBar.vue @@ -123,6 +123,7 @@ export default { const data = this.currentDataSource; const salesData = { allPlaceNames: this.locations, + unit:'%', series: [ // 完成率(折线图) { diff --git a/src/views/home/inputOutputRatioComponents/operatingLineBarSale.vue b/src/views/home/inputOutputRatioComponents/operatingLineBarSale.vue index 45ed3e81..1655d27d 100644 --- a/src/views/home/inputOutputRatioComponents/operatingLineBarSale.vue +++ b/src/views/home/inputOutputRatioComponents/operatingLineBarSale.vue @@ -122,7 +122,7 @@ export default { return; // 实例未初始化则返回 } - const { allPlaceNames, series } = this.chartData || {}; + const { allPlaceNames, unit, series } = this.chartData || {}; const xData = allPlaceNames || []; const chartSeries = series || []; @@ -169,7 +169,7 @@ export default { yAxis: [ { type: 'value', - name: '%', + name: unit, nameTextStyle: { color: 'rgba(0, 0, 0, 0.45)', fontSize: 12, diff --git a/src/views/home/inputOutputRatioComponents/yearRelatedMetrics.vue b/src/views/home/inputOutputRatioComponents/yearRelatedMetrics.vue index badbed24..b3c1c8d5 100644 --- a/src/views/home/inputOutputRatioComponents/yearRelatedMetrics.vue +++ b/src/views/home/inputOutputRatioComponents/yearRelatedMetrics.vue @@ -11,7 +11,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.rate}}% 差值:{{item.detailData.diff}}
@@ -57,8 +57,8 @@ export default { computed: { indicatorDefs() { return [ - { key: 'useData', name: '领用量', unit: '万㎡'}, - { key: 'processData', name: '加工产量', unit: '万㎡'}, + { key: 'useData', name: '领用量', unit: '㎡'}, + { key: 'processData', name: '加工产量', unit: '㎡'}, ] }, indicators() { diff --git a/src/views/home/netPriceAnalysis/netPriceAnalysisBase.vue b/src/views/home/netPriceAnalysis/netPriceAnalysisBase.vue index fd68a19c..538bfd4a 100644 --- a/src/views/home/netPriceAnalysis/netPriceAnalysisBase.vue +++ b/src/views/home/netPriceAnalysis/netPriceAnalysisBase.vue @@ -48,7 +48,7 @@ gap: 12px; grid-template-columns: 1624px; "> - +
@@ -110,8 +110,7 @@ export default { relatedMon: {}, relatedTotal: {}, totalData: {}, - trendData: [], - trend: [], + trendData: {}, paramList: ['单价', '运费'], }; }, @@ -209,17 +208,7 @@ export default { this.totalData = res.data.totalData this.relatedMon = res.data.relatedMon this.relatedTotal = res.data.relatedTotal - this.trend = res.data.trend - // this.cusProData = { - // customerPriceMon: res.data.customerPriceMon, - // customerPriceTotal: res.data.customerPriceTotal, - // customerSaleMon: res.data.customerSaleMon, - // customerSaleTotal: res.data.customerSaleTotal, - // productMonSale: res.data.productMonSale, - // productPriceMon: res.data.productPriceMon, - // productPriceTotal: res.data.productPriceTotal, - // productTotalSale: res.data.productTotalSale, - // } + this.trendData = res.data.trend }); }, diff --git a/src/views/home/netPriceAnalysisComponents/dataTrendBar.vue b/src/views/home/netPriceAnalysisComponents/dataTrendBar.vue index 137d84bf..b49823a5 100644 --- a/src/views/home/netPriceAnalysisComponents/dataTrendBar.vue +++ b/src/views/home/netPriceAnalysisComponents/dataTrendBar.vue @@ -62,7 +62,7 @@ export default { activeButton: 0, isDropdownShow: false, selectedProfit: '净价', // 关键修改:默认赋值为「净价」,初始化即展示该类目数据 - profitOptions: ['净价', '单价', '运费'] + profitOptions: ['净价','单价', '运费'] }; }, computed: { diff --git a/src/views/home/netPriceAnalysisComponents/monthlyRelatedMetrics.vue b/src/views/home/netPriceAnalysisComponents/monthlyRelatedMetrics.vue index 66a49b45..81544f94 100644 --- a/src/views/home/netPriceAnalysisComponents/monthlyRelatedMetrics.vue +++ b/src/views/home/netPriceAnalysisComponents/monthlyRelatedMetrics.vue @@ -5,35 +5,20 @@
-
+
- 单价·万㎡ + {{ item.name }}·{{ item.unit }}
-
- 完成率:{{relatedMon.单价.completeRate}}% - 差值:{{relatedMon.单价.diff}} -
-
- -
-
-
-
- 运费·万元 -
-
- 完成率:{{relatedMon.运费.completeRate}}% - 差值:{{relatedMon.运费.diff}} -
-
- +
+ 完成率:{{item.detailData.completeRate}}% + 差值:{{item.detailData.diff}}
+
@@ -84,6 +69,54 @@ export default { } } }, + computed: { + indicatorDefs() { + return [ + { key: 'djData', name: '单价', unit: '元/㎡', route:'/unitPriceAnalysis/unitPriceAnalysisBase'}, + { key: 'yfData', name: '运费', unit: '元/㎡',route:null} + ] + }, + indicators() { + let _this = this + const fallback = { target: 0, real: 0, completeRate: 0, diff: 0, flag: 0 } + const list = Object.entries(_this.relatedMon).map(([title, data]) => { + return { + title: title, + target: data.target, + real: data.real, + completeRate: data.completeRate, + diff: data.diff + }; + }); + return _this.indicatorDefs.map(def => { + const data = list.find(item => item && item.title === def.name) || fallback + const detailData = { + ...data, + flag: _this.getRateFlag((data || _this.defaultData).completeRate, (data || _this.defaultData).real, (data || _this.defaultData).target), + } + return { + ...def, + detailData, + sortValue: Number((data && data.real) ?? 0) + } + }) + }, + sortedIndicators() { + const unitOrder = ['万㎡','元/㎡'] + const unitRank = (u) => { + const idx = unitOrder.indexOf(u) + return idx === -1 ? 999 : idx + } + + return this.indicators.slice().sort((a, b) => { + const ur = unitRank(a.unit) - unitRank(b.unit) + if (ur !== 0) return ur + const vr = (b.sortValue ?? -Infinity) - (a.sortValue ?? -Infinity) + if (vr !== 0) return vr + return String(a.key).localeCompare(String(b.key)) + }) + } + }, watch: { relatedMon: { handler(newValue) { diff --git a/src/views/home/netPriceAnalysisComponents/operatingLineBarSale.vue b/src/views/home/netPriceAnalysisComponents/operatingLineBarSale.vue index db9a6032..3663aec7 100644 --- a/src/views/home/netPriceAnalysisComponents/operatingLineBarSale.vue +++ b/src/views/home/netPriceAnalysisComponents/operatingLineBarSale.vue @@ -168,7 +168,7 @@ export default { yAxis: [ { type: 'value', - name: '元', + name: '元/㎡', nameTextStyle: { color: 'rgba(0, 0, 0, 0.45)', fontSize: 12, diff --git a/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleGroup.vue index f9ada08b..37787030 100644 --- a/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleGroup.vue +++ b/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleGroup.vue @@ -112,7 +112,7 @@ export default { // 左侧Y轴:营业收入、成本(单位万元) { type: 'value', - name: '元', + name: '元/㎡', nameTextStyle: { color: 'rgba(0, 0, 0, 0.45)', fontSize: 12, diff --git a/src/views/home/netPriceAnalysisComponents/yearRelatedMetrics.vue b/src/views/home/netPriceAnalysisComponents/yearRelatedMetrics.vue index 3c69a926..0dcf5739 100644 --- a/src/views/home/netPriceAnalysisComponents/yearRelatedMetrics.vue +++ b/src/views/home/netPriceAnalysisComponents/yearRelatedMetrics.vue @@ -5,35 +5,20 @@
-
+
- 单价·万㎡ + {{ item.name }}·{{ item.unit }}
-
- 完成率:{{relatedTotal.单价.completeRate}}% - 差值:{{relatedTotal.单价.diff}} -
-
- -
-
-
-
- 运费·万元 -
-
- 完成率:{{relatedTotal.运费.completeRate}}% - 差值:{{relatedTotal.运费.diff}} -
-
- +
+ 完成率:{{item.detailData.completeRate}}% + 差值:{{item.detailData.diff}}
+
@@ -84,6 +69,54 @@ export default { } } }, + computed: { + indicatorDefs() { + return [ + { key: 'djData', name: '单价', unit: '元/㎡', route:'/unitPriceAnalysis/unitPriceAnalysisBase'}, + { key: 'yfData', name: '运费', unit: '元/㎡',route:null} + ] + }, + indicators() { + let _this = this + const fallback = { target: 0, real: 0, completeRate: 0, diff: 0, flag: 0 } + const list = Object.entries(_this.relatedTotal).map(([title, data]) => { + return { + title: title, + target: data.target, + real: data.real, + completeRate: data.completeRate, + diff: data.diff + }; + }); + return _this.indicatorDefs.map(def => { + const data = list.find(item => item && item.title === def.name) || fallback + const detailData = { + ...data, + flag: _this.getRateFlag((data || _this.defaultData).completeRate, (data || _this.defaultData).real, (data || _this.defaultData).target), + } + return { + ...def, + detailData, + sortValue: Number((data && data.real) ?? 0) + } + }) + }, + sortedIndicators() { + const unitOrder = ['万㎡','元/㎡'] + const unitRank = (u) => { + const idx = unitOrder.indexOf(u) + return idx === -1 ? 999 : idx + } + + return this.indicators.slice().sort((a, b) => { + const ur = unitRank(a.unit) - unitRank(b.unit) + if (ur !== 0) return ur + const vr = (b.sortValue ?? -Infinity) - (a.sortValue ?? -Infinity) + if (vr !== 0) return vr + return String(a.key).localeCompare(String(b.key)) + }) + } + }, watch: { relatedTotal: { handler(newValue) { diff --git a/src/views/home/operatingComponents/dataTrendBar.vue b/src/views/home/operatingComponents/dataTrendBar.vue index cb869cb0..0c3fa94a 100644 --- a/src/views/home/operatingComponents/dataTrendBar.vue +++ b/src/views/home/operatingComponents/dataTrendBar.vue @@ -35,7 +35,7 @@
@@ -63,16 +63,14 @@ export default { isDropdownShow: false, selectedProfit: '营业收入', // 选中的名称,初始为null profitOptions: [ - '营业收入', - '单价', - '销量', - ] + {name:'营业收入',unit:'万元'}, + {name:'单价',unit:'元/㎡'}, + {name:'销量',unit:'万㎡'}, + ], + unit:'万元' }; }, computed: { - // profitOptions() { - // return this.categoryData.map(item => item.name) || []; - // }, currentDataSource() { console.log('yyyy', this.chartData); @@ -90,6 +88,7 @@ export default { const salesData = { allPlaceNames: this.locations, + unit: this.unit, series: [ // 1. 完成率(折线图) { @@ -251,9 +250,10 @@ export default { }, methods: { selectProfit(item) { - this.selectedProfit = item; + this.selectedProfit = item.name; + this.unit = item.unit; this.isDropdownShow = false; - this.$emit("changeItem", item); + this.$emit("changeItem", item.name); } }, }; diff --git a/src/views/home/operatingComponents/operatingBar.vue b/src/views/home/operatingComponents/operatingBar.vue index 8429afc9..4d8412f5 100644 --- a/src/views/home/operatingComponents/operatingBar.vue +++ b/src/views/home/operatingComponents/operatingBar.vue @@ -123,6 +123,7 @@ export default { const data = this.currentDataSource; const salesData = { allPlaceNames: this.locations, + unit:'万元', series: [ // 完成率(折线图) { diff --git a/src/views/home/operatingComponents/operatingLineBarSale.vue b/src/views/home/operatingComponents/operatingLineBarSale.vue index 18050f1d..4f2ddf4d 100644 --- a/src/views/home/operatingComponents/operatingLineBarSale.vue +++ b/src/views/home/operatingComponents/operatingLineBarSale.vue @@ -122,7 +122,7 @@ export default { return; // 实例未初始化则返回 } - const { allPlaceNames, series } = this.chartData || {}; + const { allPlaceNames, unit, series } = this.chartData || {}; const xData = allPlaceNames || []; const chartSeries = series || []; @@ -169,13 +169,12 @@ export default { yAxis: [ { type: 'value', - name: '万元', + name: unit, nameTextStyle: { color: 'rgba(0, 0, 0, 0.45)', fontSize: 12, align: 'right' }, - min:1000, splitNumber: 4, axisTick: { show: false }, axisLabel: { diff --git a/src/views/home/operatingProfit/operatingProfitBase.vue b/src/views/home/operatingProfit/operatingProfitBase.vue index f9d8f11c..070d4466 100644 --- a/src/views/home/operatingProfit/operatingProfitBase.vue +++ b/src/views/home/operatingProfit/operatingProfitBase.vue @@ -68,7 +68,6 @@ import screenfull from "screenfull"; import changeBase from "../components/changeBase.vue"; import monthlyOverview from "../operatingProfitComponents/monthlyOverview.vue"; import totalOverview from "../operatingProfitComponents/totalOverview.vue"; -// import totalOverview from "../operatingComponents/totalOverview.vue"; import relatedIndicatorsAnalysis from "../operatingProfitComponents/relatedIndicatorsAnalysis.vue"; import dataTrend from "../operatingProfitComponents/dataTrend.vue"; import { mapState } from "vuex"; diff --git a/src/views/home/operatingProfitComponents/dataTrendBar.vue b/src/views/home/operatingProfitComponents/dataTrendBar.vue index 14eeebfc..d0e75d0e 100644 --- a/src/views/home/operatingProfitComponents/dataTrendBar.vue +++ b/src/views/home/operatingProfitComponents/dataTrendBar.vue @@ -35,7 +35,7 @@
@@ -62,20 +62,18 @@ export default { isDropdownShow: false, selectedProfit: '经营性利润', // 选中的名称,初始为null profitOptions: [ - '经营性利润', - '销量', - '单价', - '制造成本', - '管理费用', - '销售费用', - '财务费用', - ] + {name:'经营性利润',unit:'万元'}, + {name:'销量',unit:'万㎡'}, + {name:'单价',unit:'元/㎡'}, + {name:'制造成本',unit:'元/㎡'}, + {name:'管理费用',unit:'万元'}, + {name:'销售费用',unit:'万元'}, + {name:'财务费用',unit:'万元'}, + ], + unit:'万元' }; }, computed: { - // profitOptions() { - // return this.categoryData.map(item => item.name) || []; - // }, currentDataSource() { return this.chartData }, @@ -91,6 +89,7 @@ export default { const salesData = { allPlaceNames: this.locations, + unit: this.unit, series: [ // 1. 完成率(折线图) { @@ -249,9 +248,10 @@ export default { }, methods: { selectProfit(item) { - this.selectedProfit = item; + this.selectedProfit = item.name; + this.unit = item.unit; this.isDropdownShow = false; - this.$emit('handleGetItemData',item) + this.$emit('handleGetItemData',item.name) } }, }; diff --git a/src/views/home/operatingProfitComponents/operatingBar.vue b/src/views/home/operatingProfitComponents/operatingBar.vue index ac22526d..8f781897 100644 --- a/src/views/home/operatingProfitComponents/operatingBar.vue +++ b/src/views/home/operatingProfitComponents/operatingBar.vue @@ -123,6 +123,7 @@ export default { const data = this.currentDataSource; const salesData = { allPlaceNames: this.locations, + unit:'万元', series: [ // 完成率(折线图) { diff --git a/src/views/home/operatingProfitComponents/operatingLineBarSale.vue b/src/views/home/operatingProfitComponents/operatingLineBarSale.vue index 0bd467fd..f2f7b778 100644 --- a/src/views/home/operatingProfitComponents/operatingLineBarSale.vue +++ b/src/views/home/operatingProfitComponents/operatingLineBarSale.vue @@ -123,7 +123,7 @@ export default { return; // 实例未初始化则返回 } - const { allPlaceNames, series } = this.chartData || {}; + const { allPlaceNames, unit, series } = this.chartData || {}; const xData = allPlaceNames || []; const chartSeries = series || []; @@ -170,7 +170,7 @@ export default { yAxis: [ { type: 'value', - name: '万元', + name: unit, nameTextStyle: { color: 'rgba(0, 0, 0, 0.45)', fontSize: 12, diff --git a/src/views/home/operatingProfitComponents/relatedIndicatorsAnalysis.vue b/src/views/home/operatingProfitComponents/relatedIndicatorsAnalysis.vue index dcf098fc..702dd492 100644 --- a/src/views/home/operatingProfitComponents/relatedIndicatorsAnalysis.vue +++ b/src/views/home/operatingProfitComponents/relatedIndicatorsAnalysis.vue @@ -9,7 +9,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
@@ -55,7 +55,8 @@ export default { return { chart: null, // 核心:当前激活的数据集(月度/累计),默认初始化月度数据 - activeData: this.relatedData.relatedMon || [] + activeData: this.relatedData.relatedMon || [], + currentTab: 'month' } }, computed: { @@ -102,7 +103,12 @@ export default { // 可选:监听 relatedData 初始变化(若父组件异步传递数据,确保 activeData 同步更新) relatedData: { handler(newVal) { - this.activeData = newVal.relatedMon || []; + if (this.currentTab === 'month') { + this.activeData = newVal.relatedMon || []; + }else{ + this.activeData = newVal.relatedTotal || []; + } + }, immediate: true, deep: true @@ -127,6 +133,7 @@ export default { */ handleChange(value) { console.log('Tab 切换值:', value); + this.currentTab = value; // 根据 Tab 值更新当前激活的数据集 if (value === 'month') { // 切换为月度数据 diff --git a/src/views/home/operatingProfitComponents/totalOverview.vue b/src/views/home/operatingProfitComponents/totalOverview.vue index 6a16caeb..998752cd 100644 --- a/src/views/home/operatingProfitComponents/totalOverview.vue +++ b/src/views/home/operatingProfitComponents/totalOverview.vue @@ -68,7 +68,7 @@ export default { */ factoryData() { // 整合原始数据 + 计算flag return { - completeRate: Number(this.totalData.proportion), + completeRate: this.totalData.proportion ? Number(this.totalData.proportion) : 0, diff: this.totalData.diffValue, real: this.totalData.value, target: this.totalData.targetValue, diff --git a/src/views/home/procurementGainAnalysisComponents/relatedIndicatorsAnalysis.vue b/src/views/home/procurementGainAnalysisComponents/relatedIndicatorsAnalysis.vue index 8074c3c9..675148ef 100644 --- a/src/views/home/procurementGainAnalysisComponents/relatedIndicatorsAnalysis.vue +++ b/src/views/home/procurementGainAnalysisComponents/relatedIndicatorsAnalysis.vue @@ -13,7 +13,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.completeRate}}% 差值:{{item.detailData.diff}}
@@ -63,7 +63,8 @@ export default { real: 0, target: 0, thb: 0 - } + }, + currentTab:'month', } }, computed: { @@ -121,7 +122,11 @@ export default { // 监听 relatedData 变化(异步加载场景),同步更新月度数据 relatedData: { handler(newVal) { - this.relatedDetailData = newVal.relatedMon || {}; + if (this.currentTab === 'month') { + this.relatedDetailData = newVal.relatedMon || {}; + }else{ + this.relatedDetailData = newVal.relatedTotal || {}; + } }, immediate: true, deep: true @@ -156,6 +161,7 @@ export default { }, handleChange(value) { console.log('value', value, this.relatedData); + this.currentTab = value; if (value === 'month') { this.relatedDetailData = this.relatedData.relatedMon || {}; } else { diff --git a/src/views/home/productionCostAnalysis/originalSheetLabor.vue b/src/views/home/productionCostAnalysis/originalSheetLabor.vue index 1b27a385..208da361 100644 --- a/src/views/home/productionCostAnalysis/originalSheetLabor.vue +++ b/src/views/home/productionCostAnalysis/originalSheetLabor.vue @@ -60,7 +60,7 @@ import monthlyOverview from "../productionCostAnalysisComponents/monthlyOverview import totalOverview from "../productionCostAnalysisComponents/totalOverview.vue"; // import totalOverview from "../operatingComponents/totalOverview.vue"; // import monthlyRelatedMetrics from "../procurementGainAnalysisComponents/monthlyRelatedMetrics.vue"; -import dataTrend from "../productionCostAnalysisComponents/dataTrendProcessingLabor.vue"; +import dataTrend from "../productionCostAnalysisComponents/dataTrendProcessingLabor2.vue"; import { mapState } from "vuex"; import { getSingleMaterialCostAnalysis } from '@/api/cockpit' // import PSDO from "./components/PSDO.vue"; diff --git a/src/views/home/productionCostAnalysis/singleProcMfgOverheadCost.vue b/src/views/home/productionCostAnalysis/singleProcMfgOverheadCost.vue index b3ff9ee8..5f81bc22 100644 --- a/src/views/home/productionCostAnalysis/singleProcMfgOverheadCost.vue +++ b/src/views/home/productionCostAnalysis/singleProcMfgOverheadCost.vue @@ -60,7 +60,7 @@ import screenfull from "screenfull"; import changeBase from "../components/changeBase.vue"; import monthlyOverview from "../productionCostAnalysisComponents/monthlyOverview.vue"; import totalOverview from "../productionCostAnalysisComponents/totalOverview.vue"; -import dataTrend from "../productionCostAnalysisComponents/dataTrendProcessingLabor.vue"; +import dataTrend from "../productionCostAnalysisComponents/dataTrendProcessingLabor2.vue"; import { mapState } from "vuex"; import { getSingleMaterialCostAnalysis } from '@/api/cockpit' // import PSDO from "./components/PSDO.vue"; diff --git a/src/views/home/productionCostAnalysisComponents/containerPackMatCost.vue b/src/views/home/productionCostAnalysisComponents/containerPackMatCost.vue index 60e74f52..15c189b5 100644 --- a/src/views/home/productionCostAnalysisComponents/containerPackMatCost.vue +++ b/src/views/home/productionCostAnalysisComponents/containerPackMatCost.vue @@ -1,29 +1,42 @@ @@ -32,16 +45,59 @@ export default { name: 'Container', components: {}, - // eslint-disable-next-line vue/require-prop-types - props: ['size', 'icon', 'topSize', 'isShowTab'], + props: { + name: { type: String, required: true }, + nameTwo: { type: String, required: false }, + size: { type: String, default: 'default' }, + icon: { type: String, default: '' }, + iconTwo: { type: String, default: '' }, + // 可选:父组件传入默认激活的Tab类型 + defaultTab: { + type: String, + default: 'month', // 默认激活月度 + validator: (val) => ['month', 'total'].includes(val) + } + }, data() { return { - activeTab: 'month', // 初始化激活的Tab(支持父组件传默认值) - name:'指标分析', + isLeftTransparent: true, + isRightTransparent: false, + activeTab: 'month', // 初始化激活的Tab(支持父组件传默认值 }; }, - computed: {}, + mounted() { + // 初始化定位 + // this.positionChangeText(); + // // 监听窗口大小变化,重新定位 + // window.addEventListener('resize', this.positionChangeText); + }, + // updated() { + // // 数据更新后重新定位(如标题文字变化) + // this.positionChangeText(); + // }, + beforeDestroy() { + // 移除监听 + // window.removeEventListener('resize', this.positionChangeText); + }, methods: { + handleLeftClick() { + this.isLeftTransparent = true; + this.isRightTransparent = false; + this.$emit('switchTab', '指标分析'); + // 切换后重新定位 + // this.$nextTick(() => this.positionChangeText()); + }, + handleRightClick() { + this.isLeftTransparent = false; + this.isRightTransparent = true; + this.$emit('switchTab', '数据趋势'); + // 切换后重新定位 + // this.$nextTick(() => this.positionChangeText()); + }, + /** + * Tab点击事件:切换状态 + 向父组件传值 + * @param {String} tabType - month(月度)/ total(累计) + */ handleTabClick(tabType) { this.activeTab = tabType; // 向父组件派发Tab切换事件,传递当前选中的Tab类型 @@ -49,114 +105,156 @@ export default { // 可选:同时传递更详细的信息(如标签名) // this.$emit('tabChange', { type: tabType, name: tabType === 'month' ? '月度' : '累计' }); }, - switchData() { - console.log('aaa') - if (this.name === '数据趋势') { - this.name = '指标分析'; - } else { - this.name = '数据趋势'; + /** + * 动态定位切换文字:紧跟标题文本后方 + */ + positionChangeText() { + // 1. 处理左侧切换文字 + const leftTitleText = this.$refs.leftTitleText; + const leftChangeText = this.$refs.leftChangeText; + if (leftTitleText && leftChangeText) { + const { top, left, height } = leftTitleText.getBoundingClientRect(); + const containerTop = this.$refs.containerTop.getBoundingClientRect().top; + // 计算相对于容器的位置 + leftChangeText.style.top = `${top - containerTop + (height - 17) / 2}px`; // 垂直居中 + leftChangeText.style.left = `${left - this.$refs.containerTop.getBoundingClientRect().left + leftTitleText.offsetWidth + 8}px`; // 标题右侧8px间距 + } + + // 2. 处理右侧切换文字 + const rightTitleText = this.$refs.rightTitleText; + const rightChangeText = this.$refs.rightChangeText; + if (rightTitleText && rightChangeText) { + const { top, left, height } = rightTitleText.getBoundingClientRect(); + const containerTop = this.$refs.containerTop.getBoundingClientRect().top; + // 计算相对于容器的位置 + rightChangeText.style.top = `${top - containerTop + (height - 17) / 2}px`; // 垂直居中 + rightChangeText.style.left = `${left - this.$refs.containerTop.getBoundingClientRect().left + rightTitleText.offsetWidth + 8}px`; // 标题右侧8px间距 } - this.$emit('dataChange', this.name); } - }, + } }; + + diff --git a/src/views/home/productionCostAnalysisComponents/monthlyRelatedMetrics.vue b/src/views/home/productionCostAnalysisComponents/monthlyRelatedMetrics.vue index 71e82eea..dec62557 100644 --- a/src/views/home/productionCostAnalysisComponents/monthlyRelatedMetrics.vue +++ b/src/views/home/productionCostAnalysisComponents/monthlyRelatedMetrics.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/monthlyRelatedMetricsProcessingFuel.vue b/src/views/home/productionCostAnalysisComponents/monthlyRelatedMetricsProcessingFuel.vue index 7ccc39f1..4ba6396b 100644 --- a/src/views/home/productionCostAnalysisComponents/monthlyRelatedMetricsProcessingFuel.vue +++ b/src/views/home/productionCostAnalysisComponents/monthlyRelatedMetricsProcessingFuel.vue @@ -9,7 +9,7 @@
电·万元
-
+
完成率:{{dianData.proportion}}% 差值:{{dianData.diffValue}}
@@ -21,7 +21,7 @@
水·元/㎡
-
+
完成率:{{shuiData.proportion}}% 差值:{{shuiData.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetrics.vue b/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetrics.vue index cb5342e0..1a60e8ee 100644 --- a/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetrics.vue +++ b/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetrics.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetricsCCA.vue b/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetricsCCA.vue index 36738503..74a46732 100644 --- a/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetricsCCA.vue +++ b/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetricsCCA.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetricsPro.vue b/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetricsPro.vue index bffb3aed..3297af2f 100644 --- a/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetricsPro.vue +++ b/src/views/home/productionCostAnalysisComponents/monthlyThreeRelatedMetricsPro.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/relateCombustibleCostAnalysis.vue b/src/views/home/productionCostAnalysisComponents/relateCombustibleCostAnalysis.vue index 78854023..47073a7d 100644 --- a/src/views/home/productionCostAnalysisComponents/relateCombustibleCostAnalysis.vue +++ b/src/views/home/productionCostAnalysisComponents/relateCombustibleCostAnalysis.vue @@ -13,7 +13,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/relateFactoryBurdenCostAnalysis.vue b/src/views/home/productionCostAnalysisComponents/relateFactoryBurdenCostAnalysis.vue index ba993a4c..5c931a20 100644 --- a/src/views/home/productionCostAnalysisComponents/relateFactoryBurdenCostAnalysis.vue +++ b/src/views/home/productionCostAnalysisComponents/relateFactoryBurdenCostAnalysis.vue @@ -13,7 +13,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/relateProcessCostAnalysis.vue b/src/views/home/productionCostAnalysisComponents/relateProcessCostAnalysis.vue index ddfb1b9d..8f3993b8 100644 --- a/src/views/home/productionCostAnalysisComponents/relateProcessCostAnalysis.vue +++ b/src/views/home/productionCostAnalysisComponents/relateProcessCostAnalysis.vue @@ -13,7 +13,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/relateSingleCombustible.vue b/src/views/home/productionCostAnalysisComponents/relateSingleCombustible.vue index f755026b..5c49d484 100644 --- a/src/views/home/productionCostAnalysisComponents/relateSingleCombustible.vue +++ b/src/views/home/productionCostAnalysisComponents/relateSingleCombustible.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysis.vue b/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysis.vue index 1102a7ba..c4ea9cab 100644 --- a/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysis.vue +++ b/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysis.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysisDian.vue b/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysisDian.vue index b43015e2..71ee35b5 100644 --- a/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysisDian.vue +++ b/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysisDian.vue @@ -10,7 +10,7 @@
采购单价·元/度
-
+
完成率:{{unitPriceData.proportion}}% 差值:{{unitPriceData.diffValue}}
@@ -22,7 +22,7 @@
产量·吨
-
+
完成率:{{productData.proportion}}% 差值:{{productData.diffValue}}
@@ -34,7 +34,7 @@
单耗·度/吨
-
+
完成率:{{unitHaoData.proportion}}% 差值:{{unitHaoData.diffValue}}
@@ -46,7 +46,7 @@
消耗量·度
-
+
完成率:{{haoNumData.proportion}}% 差值:{{haoNumData.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysisFu.vue b/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysisFu.vue index 1cc82ec9..d9b4a7ce 100644 --- a/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysisFu.vue +++ b/src/views/home/productionCostAnalysisComponents/relateSingleFuelCostAnalysisFu.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/relatedIndicatorsAnalysis.vue b/src/views/home/productionCostAnalysisComponents/relatedIndicatorsAnalysis.vue index 31917a88..26ad8e5b 100644 --- a/src/views/home/productionCostAnalysisComponents/relatedIndicatorsAnalysis.vue +++ b/src/views/home/productionCostAnalysisComponents/relatedIndicatorsAnalysis.vue @@ -13,7 +13,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/yearRelatedMetrics.vue b/src/views/home/productionCostAnalysisComponents/yearRelatedMetrics.vue index 71e82eea..dec62557 100644 --- a/src/views/home/productionCostAnalysisComponents/yearRelatedMetrics.vue +++ b/src/views/home/productionCostAnalysisComponents/yearRelatedMetrics.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/yearRelatedMetricsFuel.vue b/src/views/home/productionCostAnalysisComponents/yearRelatedMetricsFuel.vue index 7ccc39f1..4ba6396b 100644 --- a/src/views/home/productionCostAnalysisComponents/yearRelatedMetricsFuel.vue +++ b/src/views/home/productionCostAnalysisComponents/yearRelatedMetricsFuel.vue @@ -9,7 +9,7 @@
电·万元
-
+
完成率:{{dianData.proportion}}% 差值:{{dianData.diffValue}}
@@ -21,7 +21,7 @@
水·元/㎡
-
+
完成率:{{shuiData.proportion}}% 差值:{{shuiData.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetrics.vue b/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetrics.vue index cb5342e0..1a60e8ee 100644 --- a/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetrics.vue +++ b/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetrics.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetricsCCA.vue b/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetricsCCA.vue index 36738503..74a46732 100644 --- a/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetricsCCA.vue +++ b/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetricsCCA.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetricsPro.vue b/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetricsPro.vue index bffb3aed..3297af2f 100644 --- a/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetricsPro.vue +++ b/src/views/home/productionCostAnalysisComponents/yearThreeRelatedMetricsPro.vue @@ -12,7 +12,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.data.proportion}}% 差值:{{item.data.diffValue}}
diff --git a/src/views/home/rawSheetYield/rawSheetYieldBase.vue b/src/views/home/rawSheetYield/rawSheetYieldBase.vue index e7822dca..e74d76b0 100644 --- a/src/views/home/rawSheetYield/rawSheetYieldBase.vue +++ b/src/views/home/rawSheetYield/rawSheetYieldBase.vue @@ -35,10 +35,10 @@
- - +
@@ -69,9 +69,7 @@ import screenfull from "screenfull"; import changeBase from "../components/changeBase.vue"; import monthlyOverview from "../rawSheetYieldComponents/monthlyOverview.vue"; import totalOverview from "../rawSheetYieldComponents/totalOverview.vue"; -// import totalOverview from "../operatingComponents/totalOverview.vue"; -import monthlyRelatedMetrics from "../rawSheetYieldComponents/monthlyRelatedMetrics.vue"; -import yearRelatedMetrics from "../rawSheetYieldComponents/yearRelatedMetrics.vue"; +import relatedIndicatorsAnalysis from "../rawSheetYieldComponents/relatedIndicatorsAnalysis.vue"; import dataTrend from "../rawSheetYieldComponents/dataTrend.vue"; import profitLineChart from "../costComponents/profitLineChart.vue"; @@ -95,8 +93,7 @@ export default { monthlyOverview, Sidebar, totalOverview, - monthlyRelatedMetrics, - yearRelatedMetrics, + relatedIndicatorsAnalysis, dataTrend // psiLineChart }, @@ -112,8 +109,7 @@ export default { index: '原片成品率', monthData: undefined, ytdData: undefined, - monthAnalysis: [], - ytdAnalysis: [], + relatedData: {}, trend: [], // trendData: [], // parentItemList: [ @@ -213,11 +209,11 @@ export default { getSheetYieldFactoryData(requestParams).then((res) => { this.monthData = res.data.month this.ytdData = res.data.ytd - this.monthAnalysis = res.data.monthAnalysis - this.ytdAnalysis = res.data.ytdAnalysis this.trend = res.data.trend - - // this.monthData = res.data.month + this.relatedData = { + relatedMon:res.data.monthAnalysis, + relatedTotal:res.data.ytdAnalysis + } }); }, diff --git a/src/views/home/rawSheetYieldComponents/dataTrendBar.vue b/src/views/home/rawSheetYieldComponents/dataTrendBar.vue index 00ce063f..9482c3d8 100644 --- a/src/views/home/rawSheetYieldComponents/dataTrendBar.vue +++ b/src/views/home/rawSheetYieldComponents/dataTrendBar.vue @@ -35,7 +35,7 @@
@@ -63,16 +63,19 @@ export default { isDropdownShow: false, selectedProfit: '原片成品率', // 选中的名称,初始为null profitOptions: [ - '原片成品率', - '原片产量', - '拉引量', - ] + {name:'原片成品率',unit:'%'}, + {name:'拉引量',unit:'吨'}, + {name:'边损',unit:'㎡'}, + {name:'设备损失',unit:'㎡'}, + {name:'换机损失',unit:'㎡'}, + {name:'切割损失',unit:'㎡'}, + {name:'退火损失',unit:'㎡'}, + {name:'原片产量',unit:'㎡'} + ], + unit:'%' }; }, computed: { - // profitOptions() { - // return this.categoryData.map(item => item.name) || []; - // }, currentDataSource() { console.log('yyyy', this.chartData); @@ -90,6 +93,7 @@ export default { const salesData = { allPlaceNames: this.locations, + unit:this.unit, series: [ // 1. 完成率(折线图) { @@ -251,9 +255,10 @@ export default { }, methods: { selectProfit(item) { - this.selectedProfit = item; + this.selectedProfit = item.name; + this.unit = item.unit; this.isDropdownShow = false; - this.$emit("changeItem", item); + this.$emit("changeItem", item.name); } }, }; diff --git a/src/views/home/rawSheetYieldComponents/monthlyRelatedMetrics.vue b/src/views/home/rawSheetYieldComponents/monthlyRelatedMetrics.vue index a3f2af11..0c0fce37 100644 --- a/src/views/home/rawSheetYieldComponents/monthlyRelatedMetrics.vue +++ b/src/views/home/rawSheetYieldComponents/monthlyRelatedMetrics.vue @@ -11,7 +11,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.rate}}% 差值:{{item.detailData.diff}}
diff --git a/src/views/home/rawSheetYieldComponents/operatingBar.vue b/src/views/home/rawSheetYieldComponents/operatingBar.vue index 61daf973..5b2adf89 100644 --- a/src/views/home/rawSheetYieldComponents/operatingBar.vue +++ b/src/views/home/rawSheetYieldComponents/operatingBar.vue @@ -123,6 +123,7 @@ export default { const data = this.currentDataSource; const salesData = { allPlaceNames: this.locations, + unit:'%', series: [ // 完成率(折线图) { diff --git a/src/views/home/rawSheetYieldComponents/operatingLineBarSale.vue b/src/views/home/rawSheetYieldComponents/operatingLineBarSale.vue index cb99f56e..c78fb6c6 100644 --- a/src/views/home/rawSheetYieldComponents/operatingLineBarSale.vue +++ b/src/views/home/rawSheetYieldComponents/operatingLineBarSale.vue @@ -119,7 +119,7 @@ export default { return; // 实例未初始化则返回 } - const { allPlaceNames, series } = this.chartData || {}; + const { allPlaceNames, unit, series } = this.chartData || {}; const xData = allPlaceNames || []; const chartSeries = series || []; @@ -166,7 +166,7 @@ export default { yAxis: [ { type: 'value', - name: '%', + name: unit, nameTextStyle: { color: 'rgba(0, 0, 0, 0.45)', fontSize: 12, diff --git a/src/views/home/rawSheetYieldComponents/operatingSingleBar.vue b/src/views/home/rawSheetYieldComponents/operatingSingleBar.vue index e38ae37e..4bbf7a44 100644 --- a/src/views/home/rawSheetYieldComponents/operatingSingleBar.vue +++ b/src/views/home/rawSheetYieldComponents/operatingSingleBar.vue @@ -6,7 +6,6 @@ + + diff --git a/src/views/home/rawSheetYieldComponents/yearRelatedMetrics.vue b/src/views/home/rawSheetYieldComponents/yearRelatedMetrics.vue index b9e3ab19..4613af48 100644 --- a/src/views/home/rawSheetYieldComponents/yearRelatedMetrics.vue +++ b/src/views/home/rawSheetYieldComponents/yearRelatedMetrics.vue @@ -11,7 +11,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.rate}}% 差值:{{item.detailData.diff}}
diff --git a/src/views/home/salesVolumeAnalysisComponents/dataTrendBar.vue b/src/views/home/salesVolumeAnalysisComponents/dataTrendBar.vue index cdf17ab3..cff95b7b 100644 --- a/src/views/home/salesVolumeAnalysisComponents/dataTrendBar.vue +++ b/src/views/home/salesVolumeAnalysisComponents/dataTrendBar.vue @@ -35,7 +35,7 @@
@@ -63,8 +63,18 @@ export default { return { activeButton: 0, isDropdownShow: false, - selectedProfit: '净价', // 关键修改:默认赋值为「净价」,初始化即展示该类目数据 - profitOptions: ['净价', '单价', '产销率','双镀销量','双镀占比','溢价产品销量','溢价产品毛利'] + selectedProfit: '销量', + profitOptions:[ + {name:'销量',unit:'万㎡'}, + {name:'净价',unit:'元/㎡'}, + {name:'单价',unit:'元/㎡'}, + {name:'产销率',unit:'%'}, + {name:'双镀销量',unit:'万㎡'}, + {name:'双镀占比',unit:'%'}, + {name:'溢价产品销量',unit:'万㎡'}, + {name:'溢价产品毛利',unit:'元'}, + ], + unit:'万㎡' }; }, computed: { @@ -126,6 +136,7 @@ export default { // 销量场景数据(保留原有结构,替换数据来源) const salesData = { allPlaceNames: months, // 优先用基地名称,无则用月份 + unit: this.unit, series: [ // 1. 完成率(折线图) { @@ -286,8 +297,9 @@ export default { }, methods: { selectProfit(item) { - this.selectedProfit = item; + this.selectedProfit = item.name; this.isDropdownShow = false; + this.unit = item.unit; }, // 复用达标状态判断方法 getRateFlag(rate, real, target) { diff --git a/src/views/home/salesVolumeAnalysisComponents/dataTrendBarDouble.vue b/src/views/home/salesVolumeAnalysisComponents/dataTrendBarDouble.vue index 5c78135f..77a5266c 100644 --- a/src/views/home/salesVolumeAnalysisComponents/dataTrendBarDouble.vue +++ b/src/views/home/salesVolumeAnalysisComponents/dataTrendBarDouble.vue @@ -35,7 +35,7 @@
@@ -63,8 +63,14 @@ export default { return { activeButton: 0, isDropdownShow: false, - selectedProfit: '双镀成本', // 关键修改:默认赋值为「净价」,初始化即展示该类目数据 - profitOptions: ['双镀成本', '双镀均价', '双镀毛利'] + selectedProfit: '双镀销量', + profitOptions:[ + {name:'双镀销量',unit:'万㎡'}, + {name:'双镀成本',unit:'元/㎡'}, + {name:'双镀均价',unit:'元/㎡'}, + {name:'双镀毛利',unit:'元'}, + ], + unit:'万㎡' }; }, computed: { @@ -128,6 +134,7 @@ export default { // 销量场景数据(保留原有结构,替换数据来源) const salesData = { allPlaceNames: months, // 优先用基地名称,无则用月份 + unit: this.unit, series: [ // 1. 完成率(折线图) { @@ -286,8 +293,9 @@ export default { }, methods: { selectProfit(item) { - this.selectedProfit = item; + this.selectedProfit = item.name; this.isDropdownShow = false; + this.unit = item.unit; }, // 复用达标状态判断方法 getRateFlag(rate) { diff --git a/src/views/home/salesVolumeAnalysisComponents/dataTrendBarProduct.vue b/src/views/home/salesVolumeAnalysisComponents/dataTrendBarProduct.vue index 5fa96cfb..97eea35c 100644 --- a/src/views/home/salesVolumeAnalysisComponents/dataTrendBarProduct.vue +++ b/src/views/home/salesVolumeAnalysisComponents/dataTrendBarProduct.vue @@ -35,7 +35,7 @@
@@ -63,8 +63,13 @@ export default { return { activeButton: 0, isDropdownShow: false, - selectedProfit: '产量(深加工)', // 关键修改:默认赋值为「净价」,初始化即展示该类目数据 - profitOptions: ['产量(深加工)', '销量'] + selectedProfit: '产销率', + profitOptions:[ + {name:'产销率',unit:'%'}, + {name:'销量',unit:'万㎡'}, + {name:'产量(深加工)',unit:'㎡'}, + ], + unit:'%', }; }, computed: { @@ -128,6 +133,7 @@ export default { // 销量场景数据(保留原有结构,替换数据来源) const salesData = { allPlaceNames: months, // 优先用基地名称,无则用月份 + unit: this.unit, series: [ // 1. 完成率(折线图) { @@ -286,8 +292,9 @@ export default { }, methods: { selectProfit(item) { - this.selectedProfit = item; + this.selectedProfit = item.name; this.isDropdownShow = false; + this.unit = item.unit; }, // 复用达标状态判断方法 getRateFlag(rate) { diff --git a/src/views/home/salesVolumeAnalysisComponents/monthlyRelatedMetrics.vue b/src/views/home/salesVolumeAnalysisComponents/monthlyRelatedMetrics.vue index b9bec254..7b07ec54 100644 --- a/src/views/home/salesVolumeAnalysisComponents/monthlyRelatedMetrics.vue +++ b/src/views/home/salesVolumeAnalysisComponents/monthlyRelatedMetrics.vue @@ -11,7 +11,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.completeRate}}% 差值:{{item.detailData.diff}}
@@ -61,7 +61,7 @@ export default { computed: { indicatorDefs() { return [ - { key: 'production', name: '产量', unit: '万㎡'}, + { key: 'production', name: '产量', unit: '㎡'}, { key: 'financialCost', name: '销量', unit: '万㎡'}, ] }, diff --git a/src/views/home/salesVolumeAnalysisComponents/monthlyThreeRelatedMetrics.vue b/src/views/home/salesVolumeAnalysisComponents/monthlyThreeRelatedMetrics.vue index f24d800e..bf289a12 100644 --- a/src/views/home/salesVolumeAnalysisComponents/monthlyThreeRelatedMetrics.vue +++ b/src/views/home/salesVolumeAnalysisComponents/monthlyThreeRelatedMetrics.vue @@ -11,7 +11,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.completeRate}}% 差值:{{item.detailData.diff}}
@@ -63,7 +63,7 @@ export default { return [ { key: 'financialCost', name: '双镀成本', unit: '元/㎡'}, { key: 'financialPrice', name: '双镀均价', unit: '元/㎡'}, - { key: 'financialProfit', name: '双镀毛利', unit: '万元'}, + { key: 'financialProfit', name: '双镀毛利', unit: '元'}, ] }, indicators() { diff --git a/src/views/home/salesVolumeAnalysisComponents/operatingBar.vue b/src/views/home/salesVolumeAnalysisComponents/operatingBar.vue index fcf36efa..1d7a7736 100644 --- a/src/views/home/salesVolumeAnalysisComponents/operatingBar.vue +++ b/src/views/home/salesVolumeAnalysisComponents/operatingBar.vue @@ -123,6 +123,7 @@ export default { const data = this.currentDataSource; const salesData = { allPlaceNames: this.locations, + unit:'万㎡', series: [ // 完成率(折线图) { diff --git a/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSale.vue b/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSale.vue index 3a2f4135..a415443e 100644 --- a/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSale.vue +++ b/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSale.vue @@ -122,7 +122,7 @@ export default { return; // 实例未初始化则返回 } - const { allPlaceNames, series } = this.chartData || {}; + const { allPlaceNames, unit, series } = this.chartData || {}; const xData = allPlaceNames || []; const chartSeries = series || []; @@ -169,7 +169,7 @@ export default { yAxis: [ { type: 'value', - name: '万m2', + name: unit, nameTextStyle: { color: 'rgba(0, 0, 0, 0.45)', fontSize: 12, diff --git a/src/views/home/salesVolumeAnalysisComponents/relatedIndicatorsAnalysis.vue b/src/views/home/salesVolumeAnalysisComponents/relatedIndicatorsAnalysis.vue index 288e87ea..aef7f71d 100644 --- a/src/views/home/salesVolumeAnalysisComponents/relatedIndicatorsAnalysis.vue +++ b/src/views/home/salesVolumeAnalysisComponents/relatedIndicatorsAnalysis.vue @@ -13,7 +13,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.completeRate}}% 差值:{{item.detailData.diff}}
@@ -69,13 +69,13 @@ export default { computed: { indicatorDefs() { return [ - { key: 'netPrice', name: '净价', unit: '万㎡', route:'/netPriceAnalysis/netPriceAnalysisBase'}, + { key: 'netPrice', name: '净价', unit: '元/㎡', route:'/netPriceAnalysis/netPriceAnalysisBase'}, { key: 'unitPrice', name: '单价', unit: '元/㎡',route:'/unitPriceAnalysis/unitPriceAnalysisBase' }, { key: 'productionSales', name: '产销率', unit: '%',route:'/salesVolumeAnalysis/productionSalesBase'}, { key: 'manageCost', name: '双镀销量', unit: '万㎡',route:'/salesVolumeAnalysis/doublePlatedBase' }, { key: 'freight', name: '双镀占比', unit: '%',route:'/salesVolumeAnalysis/doublePlatedBase' }, { key: 'manageCost', name: '溢价产品销量', unit: '万㎡',route:null }, - { key: 'premiumProducts', name: '溢价产品毛利', unit: '万元',route:null }, + { key: 'premiumProducts', name: '溢价产品毛利', unit: '元',route:null }, ] }, indicators() { @@ -104,7 +104,7 @@ export default { }) }, sortedIndicators() { - const unitOrder = ['万㎡', '元/㎡', '%','万元'] + const unitOrder = ['万㎡', '元/㎡', '%','万元','元'] const unitRank = (u) => { const idx = unitOrder.indexOf(u) return idx === -1 ? 999 : idx diff --git a/src/views/home/salesVolumeAnalysisComponents/yearRelatedMetrics.vue b/src/views/home/salesVolumeAnalysisComponents/yearRelatedMetrics.vue index 0a7114fc..f9226457 100644 --- a/src/views/home/salesVolumeAnalysisComponents/yearRelatedMetrics.vue +++ b/src/views/home/salesVolumeAnalysisComponents/yearRelatedMetrics.vue @@ -11,7 +11,7 @@
{{ item.name }}·{{ item.unit }}
-
+
完成率:{{item.detailData.completeRate}}% 差值:{{item.detailData.diff}}
@@ -25,7 +25,6 @@