diff --git a/src/views/home/components/cost-Item.vue b/src/views/home/components/cost-Item.vue index b95ac278..efcc332a 100644 --- a/src/views/home/components/cost-Item.vue +++ b/src/views/home/components/cost-Item.vue @@ -100,14 +100,14 @@ export default { const costMapping = [ { key: 'totalCost', name: '总费用·万元', - path:"/expenseAnalysis/expenseAnalysisBase" + path:"/expenseAnalysis/expenseAnalysis" }, { key: 'manageCost', name: '管理费用·万元', - path: "/expenseAnalysis/expenseAnalysisBase" + path: "" }, - { key: 'saleCost', name: '销售费用·万元', path: "/expenseAnalysis/expenseAnalysisBase" }, - { key: 'financeCost', name: '财务费用·万元', path: "/expenseAnalysis/expenseAnalysisBase" } + { key: 'saleCost', name: '销售费用·万元', path: "" }, + { key: 'financeCost', name: '财务费用·万元', path: "" } ]; // 遍历映射关系,转换数据 diff --git a/src/views/home/grossMarginComponents/monthlyRelatedMetrics.vue b/src/views/home/grossMarginComponents/monthlyRelatedMetrics.vue index 3e47c755..8cd12455 100644 --- a/src/views/home/grossMarginComponents/monthlyRelatedMetrics.vue +++ b/src/views/home/grossMarginComponents/monthlyRelatedMetrics.vue @@ -114,16 +114,18 @@ export default { }, updateChart(data) { - // 修复核心:正确获取默认值(调用 factory 函数) - // 错误写法:this.$props.ytdAnalysis.default() - // 正确写法:this.ytdAnalysis 默认值已通过 factory 函数定义,直接兜底 + // 数据兜底:确保是数组且长度≥2,否则取 props 默认值 const validData = Array.isArray(data) && data.length >= 2 ? data : this.$props.monthAnalysis; // 直接取 props 默认值 - // 提取累计收入(第0项)、累计全成本(第1项)数据 - const incomeItem = validData[0] || { title: "营业收入", budget: 0, real: 0, rate: 0, diff: 0 }; - const costItem = validData[1] || { title: "全成本", budget: 0, real: 0, rate: 0, diff: 0 }; + // 按 title 匹配目标项(不依赖数组顺序,兼容后端数据结构顺序变化) + const list = Array.isArray(validData) ? validData : [] + // 营业收入:精确匹配 + const incomeItem = list.find(item => item && item.title === '营业收入') + || { title: "营业收入", budget: 0, real: 0, rate: 0, diff: 0 }; + const costItem = list.find(item => item && item.title === '全成本') + || { title: "全成本", budget: 0, real: 0, rate: 0, diff: 0 }; // 整合flag字段 this.ytdIncomeData = { @@ -135,9 +137,6 @@ export default { ...costItem, flag: costItem.rate > 100 ? 1 : 0 }; - - console.log('累计收入数据:', this.ytdIncomeData); - console.log('累计全成本数据:', this.ytdCostData); } } } diff --git a/src/views/home/grossMarginComponents/yearRelatedMetrics.vue b/src/views/home/grossMarginComponents/yearRelatedMetrics.vue index 34d0b33d..df0961bb 100644 --- a/src/views/home/grossMarginComponents/yearRelatedMetrics.vue +++ b/src/views/home/grossMarginComponents/yearRelatedMetrics.vue @@ -123,14 +123,18 @@ export default { }, updateChart(data) { - // 数据兜底:确保是数组且长度≥2 + // 数据兜底:确保是数组且长度≥2,否则取 props 默认值 const validData = Array.isArray(data) && data.length >= 2 ? data : this.$props.ytdAnalysis; - // 提取收入(第0项)、全成本(第1项)数据 - const incomeItem = validData[0] || { title: "营业收入", budget: 0, real: 0, rate: 0, diff: 0 }; - const totalCostItem = validData[1] || { title: "全成本", budget: 0, real: 0, rate: 0, diff: 0 }; + // 按 title 匹配目标项(不依赖数组顺序,兼容后端数据结构顺序变化) + const list = Array.isArray(validData) ? validData : [] + // 营业收入:精确匹配 + const incomeItem = list.find(item => item && item.title === '营业收入') + || { title: "营业收入", budget: 0, real: 0, rate: 0, diff: 0 }; + const totalCostItem = list.find(item => item && item.title === '全成本') + || { title: "全成本", budget: 0, real: 0, rate: 0, diff: 0 }; // 整合flag字段到收入/全成本数据中 this.incomeData = { @@ -142,10 +146,6 @@ export default { ...totalCostItem, flag: totalCostItem.rate >= 100 ? 1 : 0 }; - - // 调试:确认数据赋值正确 - console.log('整合flag后的收入数据:', this.incomeData); - console.log('整合flag后的全成本数据:', this.totalCostData); } } }