diff --git a/src/views/home/PSIAnal.vue b/src/views/home/PSIAnal.vue
deleted file mode 100644
index 6cf8d8af..00000000
--- a/src/views/home/PSIAnal.vue
+++ /dev/null
@@ -1,298 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/accountsReceivableComponents/operatingLineBarSale.vue b/src/views/home/accountsReceivableComponents/operatingLineBarSale.vue
index 8bcaeacd..a13781d4 100644
--- a/src/views/home/accountsReceivableComponents/operatingLineBarSale.vue
+++ b/src/views/home/accountsReceivableComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false,
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
},
},
beforeDestroy() {
@@ -59,7 +61,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/accountsReceivableComponents/operatingLineBarSaleGroup.vue b/src/views/home/accountsReceivableComponents/operatingLineBarSaleGroup.vue
index f70feaf1..f524919e 100644
--- a/src/views/home/accountsReceivableComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/accountsReceivableComponents/operatingLineBarSaleGroup.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/budgetSubmissionDetails.vue b/src/views/home/budgetSubmissionDetails.vue
deleted file mode 100644
index be554bda..00000000
--- a/src/views/home/budgetSubmissionDetails.vue
+++ /dev/null
@@ -1,260 +0,0 @@
-
-
-
-
-
-
diff --git a/src/views/home/cost.vue b/src/views/home/cost.vue
deleted file mode 100644
index 91ba4748..00000000
--- a/src/views/home/cost.vue
+++ /dev/null
@@ -1,259 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/depreciationAnalysisComponents/operatingLineBarSale.vue b/src/views/home/depreciationAnalysisComponents/operatingLineBarSale.vue
index a1485463..7acd7c90 100644
--- a/src/views/home/depreciationAnalysisComponents/operatingLineBarSale.vue
+++ b/src/views/home/depreciationAnalysisComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false,
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
},
},
beforeDestroy() {
@@ -59,7 +61,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/depreciationAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/depreciationAnalysisComponents/operatingLineBarSaleGroup.vue
index 20aa154a..d82ce209 100644
--- a/src/views/home/depreciationAnalysisComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/depreciationAnalysisComponents/operatingLineBarSaleGroup.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false
};
},
props: {
@@ -20,6 +21,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -30,18 +32,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/electricityCostAnalysisComponents/operatingLineBar.vue b/src/views/home/electricityCostAnalysisComponents/operatingLineBar.vue
index a12c433d..0b367c60 100644
--- a/src/views/home/electricityCostAnalysisComponents/operatingLineBar.vue
+++ b/src/views/home/electricityCostAnalysisComponents/operatingLineBar.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false
};
},
props: {
@@ -26,6 +27,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -36,19 +38,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/electricityCostAnalysisComponents/operatingLineBarSale.vue b/src/views/home/electricityCostAnalysisComponents/operatingLineBarSale.vue
index a2aa43e5..4f7c355a 100644
--- a/src/views/home/electricityCostAnalysisComponents/operatingLineBarSale.vue
+++ b/src/views/home/electricityCostAnalysisComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false,
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
},
},
beforeDestroy() {
@@ -59,7 +61,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
this.myChart = echarts.init(chartDom);
diff --git a/src/views/home/electricityCostAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/electricityCostAnalysisComponents/operatingLineBarSaleGroup.vue
index dcad2622..bf549a79 100644
--- a/src/views/home/electricityCostAnalysisComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/electricityCostAnalysisComponents/operatingLineBarSaleGroup.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/electricityCostAnalysisComponents/operatingLineBarSaleSingle.vue b/src/views/home/electricityCostAnalysisComponents/operatingLineBarSaleSingle.vue
index dd38f28a..a1cc1ab3 100644
--- a/src/views/home/electricityCostAnalysisComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/electricityCostAnalysisComponents/operatingLineBarSaleSingle.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/electricityCostAnalysisComponents/verticalBarChart.vue b/src/views/home/electricityCostAnalysisComponents/verticalBarChart.vue
index 8911daed..5ec389e9 100644
--- a/src/views/home/electricityCostAnalysisComponents/verticalBarChart.vue
+++ b/src/views/home/electricityCostAnalysisComponents/verticalBarChart.vue
@@ -18,7 +18,8 @@ export default {
data() {
return {
myChart: null,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false
};
},
props: {
@@ -39,6 +40,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => this.updateChart());
// 注册窗口resize事件,使用稳定的引用以便后续移除
this.resizeHandler = () => {
@@ -63,17 +65,17 @@ export default {
watch: {
detailData: {
handler() {
+ if (!this.isMounted) return;
this.updateChart();
},
- deep: true,
- immediate: true
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
console.log('this.detailData', this.detailData);
diff --git a/src/views/home/expenseAnalysisComponents/operatingLineBar.vue b/src/views/home/expenseAnalysisComponents/operatingLineBar.vue
index b5fc53d4..b194e80a 100644
--- a/src/views/home/expenseAnalysisComponents/operatingLineBar.vue
+++ b/src/views/home/expenseAnalysisComponents/operatingLineBar.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -27,6 +28,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -44,19 +46,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/expenseAnalysisComponents/operatingLineBarSale.vue b/src/views/home/expenseAnalysisComponents/operatingLineBarSale.vue
index bdda1094..6f7f68f9 100644
--- a/src/views/home/expenseAnalysisComponents/operatingLineBarSale.vue
+++ b/src/views/home/expenseAnalysisComponents/operatingLineBarSale.vue
@@ -11,17 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
- // 核心:基地名称与序号的映射表(固定顺序)
- baseNameToIndexMap: {
- '宜兴': 7,
- '漳州': 8,
- '自贡': 3,
- '桐城': 2,
- '洛阳': 9,
- '合肥': 5,
- '宿迁': 6,
- '秦皇岛': 10
- }
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -35,6 +25,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +34,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
}
},
beforeDestroy() {
@@ -59,7 +50,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/expenseAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/expenseAnalysisComponents/operatingLineBarSaleGroup.vue
index 246ba1e3..74e605f4 100644
--- a/src/views/home/expenseAnalysisComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/expenseAnalysisComponents/operatingLineBarSaleGroup.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -42,18 +44,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/expenseAnalysisComponents/operatingLineBarSaleSingle.vue b/src/views/home/expenseAnalysisComponents/operatingLineBarSaleSingle.vue
index 8eefb66e..0c25045f 100644
--- a/src/views/home/expenseAnalysisComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/expenseAnalysisComponents/operatingLineBarSaleSingle.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -42,18 +44,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/expenseAnalysisComponents/verticalBarChart.vue b/src/views/home/expenseAnalysisComponents/verticalBarChart.vue
index 649e89f9..999d5362 100644
--- a/src/views/home/expenseAnalysisComponents/verticalBarChart.vue
+++ b/src/views/home/expenseAnalysisComponents/verticalBarChart.vue
@@ -18,8 +18,9 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- flag:0,
- resizeHandler: null // 窗口resize事件处理器
+ flag: 0,
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -35,6 +36,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -52,19 +54,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
detailData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/fuelCostAnalysis.vue b/src/views/home/fuelCostAnalysis.vue
deleted file mode 100644
index 702b62e8..00000000
--- a/src/views/home/fuelCostAnalysis.vue
+++ /dev/null
@@ -1,304 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/fuelPowerCostAnalysis.vue b/src/views/home/fuelPowerCostAnalysis.vue
deleted file mode 100644
index 81563c26..00000000
--- a/src/views/home/fuelPowerCostAnalysis.vue
+++ /dev/null
@@ -1,307 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/fullCostAnalysisComponents/operatingLineBar.vue b/src/views/home/fullCostAnalysisComponents/operatingLineBar.vue
index b5fc53d4..7c306553 100644
--- a/src/views/home/fullCostAnalysisComponents/operatingLineBar.vue
+++ b/src/views/home/fullCostAnalysisComponents/operatingLineBar.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -27,6 +28,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -44,19 +46,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
-
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/fullCostAnalysisComponents/operatingLineBarSale.vue b/src/views/home/fullCostAnalysisComponents/operatingLineBarSale.vue
index 09d9495a..e38d9341 100644
--- a/src/views/home/fullCostAnalysisComponents/operatingLineBarSale.vue
+++ b/src/views/home/fullCostAnalysisComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
}
},
beforeDestroy() {
@@ -59,7 +61,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/fullCostAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/fullCostAnalysisComponents/operatingLineBarSaleGroup.vue
index 0baca1fd..d477207a 100644
--- a/src/views/home/fullCostAnalysisComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/fullCostAnalysisComponents/operatingLineBarSaleGroup.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -42,18 +44,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/fullCostAnalysisComponents/operatingLineBarSaleSingle.vue b/src/views/home/fullCostAnalysisComponents/operatingLineBarSaleSingle.vue
index 8eefb66e..0c25045f 100644
--- a/src/views/home/fullCostAnalysisComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/fullCostAnalysisComponents/operatingLineBarSaleSingle.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -42,18 +44,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/fullCostAnalysisComponents/verticalBarChart.vue b/src/views/home/fullCostAnalysisComponents/verticalBarChart.vue
index 9fe714ef..d50cee74 100644
--- a/src/views/home/fullCostAnalysisComponents/verticalBarChart.vue
+++ b/src/views/home/fullCostAnalysisComponents/verticalBarChart.vue
@@ -18,7 +18,8 @@ export default {
data() {
return {
myChart: null,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -39,6 +40,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => this.updateChart());
// 注册窗口resize事件,使用稳定的引用以便后续移除
this.resizeHandler = () => {
@@ -51,17 +53,17 @@ export default {
watch: {
detailData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
this.updateChart();
},
- deep: true,
- immediate: true
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/grossMarginComponents/operatingLineBar.vue b/src/views/home/grossMarginComponents/operatingLineBar.vue
index b5fc53d4..78fba769 100644
--- a/src/views/home/grossMarginComponents/operatingLineBar.vue
+++ b/src/views/home/grossMarginComponents/operatingLineBar.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -27,6 +28,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -44,19 +46,20 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/grossMarginComponents/operatingLineBarSale.vue b/src/views/home/grossMarginComponents/operatingLineBarSale.vue
index 697c0690..adac3b54 100644
--- a/src/views/home/grossMarginComponents/operatingLineBarSale.vue
+++ b/src/views/home/grossMarginComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,12 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
beforeDestroy() {
@@ -59,7 +62,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/grossMarginComponents/operatingLineBarSaleGroup.vue b/src/views/home/grossMarginComponents/operatingLineBarSaleGroup.vue
index b8df6779..3fbf7dd9 100644
--- a/src/views/home/grossMarginComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/grossMarginComponents/operatingLineBarSaleGroup.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -21,6 +22,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -38,18 +40,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/grossMarginComponents/operatingLineBarSaleSingle.vue b/src/views/home/grossMarginComponents/operatingLineBarSaleSingle.vue
index 3610816e..73367768 100644
--- a/src/views/home/grossMarginComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/grossMarginComponents/operatingLineBarSaleSingle.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -42,18 +44,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/grossMarginComponents/verticalBarChart.vue b/src/views/home/grossMarginComponents/verticalBarChart.vue
index 4bf182df..9b7d9094 100644
--- a/src/views/home/grossMarginComponents/verticalBarChart.vue
+++ b/src/views/home/grossMarginComponents/verticalBarChart.vue
@@ -19,7 +19,8 @@ export default {
return {
myChart: null, // 存储图表实例,避免重复创建
flag:0,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -35,6 +36,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -52,19 +54,20 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
detailData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/indicatorSubmissionDetails.vue b/src/views/home/indicatorSubmissionDetails.vue
deleted file mode 100644
index 5ce1edce..00000000
--- a/src/views/home/indicatorSubmissionDetails.vue
+++ /dev/null
@@ -1,203 +0,0 @@
-
-
-
-
-
-
diff --git a/src/views/home/inputOutputRatioComponents/operatingLineBar.vue b/src/views/home/inputOutputRatioComponents/operatingLineBar.vue
index a12c433d..df31e9ff 100644
--- a/src/views/home/inputOutputRatioComponents/operatingLineBar.vue
+++ b/src/views/home/inputOutputRatioComponents/operatingLineBar.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -26,6 +27,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -36,19 +38,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/inputOutputRatioComponents/operatingLineBarSale.vue b/src/views/home/inputOutputRatioComponents/operatingLineBarSale.vue
index 1655d27d..539f3ce2 100644
--- a/src/views/home/inputOutputRatioComponents/operatingLineBarSale.vue
+++ b/src/views/home/inputOutputRatioComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
}
},
beforeDestroy() {
@@ -59,7 +61,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/inputOutputRatioComponents/operatingLineBarSaleGroup.vue b/src/views/home/inputOutputRatioComponents/operatingLineBarSaleGroup.vue
index 251bcff1..6b6658c3 100644
--- a/src/views/home/inputOutputRatioComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/inputOutputRatioComponents/operatingLineBarSaleGroup.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/inputOutputRatioComponents/operatingLineBarSaleSingle.vue b/src/views/home/inputOutputRatioComponents/operatingLineBarSaleSingle.vue
index 7a5f4098..a86df349 100644
--- a/src/views/home/inputOutputRatioComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/inputOutputRatioComponents/operatingLineBarSaleSingle.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/inputOutputRatioComponents/verticalBarChart.vue b/src/views/home/inputOutputRatioComponents/verticalBarChart.vue
index 3c6f3b16..d505796d 100644
--- a/src/views/home/inputOutputRatioComponents/verticalBarChart.vue
+++ b/src/views/home/inputOutputRatioComponents/verticalBarChart.vue
@@ -19,7 +19,8 @@ export default {
return {
myChart: null, // 存储图表实例,避免重复创建
flag: 0,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -35,6 +36,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -52,12 +54,12 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
detailData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
@@ -76,7 +78,7 @@ getRateFlag(rate, real, target) {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/inventoryAnalysisComponents/operatingLineBarSale.vue b/src/views/home/inventoryAnalysisComponents/operatingLineBarSale.vue
index 8bcaeacd..a13781d4 100644
--- a/src/views/home/inventoryAnalysisComponents/operatingLineBarSale.vue
+++ b/src/views/home/inventoryAnalysisComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false,
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
},
},
beforeDestroy() {
@@ -59,7 +61,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/inventoryAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/inventoryAnalysisComponents/operatingLineBarSaleGroup.vue
index 0ea39c1e..f7ee6d73 100644
--- a/src/views/home/inventoryAnalysisComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/inventoryAnalysisComponents/operatingLineBarSaleGroup.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/netPriceAnalysisComponents/operatingLineBar.vue b/src/views/home/netPriceAnalysisComponents/operatingLineBar.vue
index a12c433d..33b59d12 100644
--- a/src/views/home/netPriceAnalysisComponents/operatingLineBar.vue
+++ b/src/views/home/netPriceAnalysisComponents/operatingLineBar.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -26,6 +27,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -36,19 +38,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
-
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/netPriceAnalysisComponents/operatingLineBarSale.vue b/src/views/home/netPriceAnalysisComponents/operatingLineBarSale.vue
index 3663aec7..4bfc7110 100644
--- a/src/views/home/netPriceAnalysisComponents/operatingLineBarSale.vue
+++ b/src/views/home/netPriceAnalysisComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
},
},
beforeDestroy() {
@@ -59,7 +61,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleGroup.vue
index 83007153..2ef7c61b 100644
--- a/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleGroup.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleSingle.vue b/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleSingle.vue
index 09fe1d6a..15d06879 100644
--- a/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/netPriceAnalysisComponents/operatingLineBarSaleSingle.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/netPriceAnalysisComponents/verticalBarChart.vue b/src/views/home/netPriceAnalysisComponents/verticalBarChart.vue
index 887dcc86..d67a7e89 100644
--- a/src/views/home/netPriceAnalysisComponents/verticalBarChart.vue
+++ b/src/views/home/netPriceAnalysisComponents/verticalBarChart.vue
@@ -18,7 +18,8 @@ export default {
data() {
return {
myChart: null,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -39,6 +40,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => this.updateChart());
// 注册窗口resize事件,使用稳定的引用以便后续移除
this.resizeHandler = () => {
@@ -63,17 +65,17 @@ export default {
watch: {
detailData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
this.updateChart();
},
- deep: true,
- immediate: true
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/oldOperatingRevenue.vue b/src/views/home/oldOperatingRevenue.vue
deleted file mode 100644
index 31227805..00000000
--- a/src/views/home/oldOperatingRevenue.vue
+++ /dev/null
@@ -1,247 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/operatingComponents/operatingLineBarSale.vue b/src/views/home/operatingComponents/operatingLineBarSale.vue
index 4f2ddf4d..942400d9 100644
--- a/src/views/home/operatingComponents/operatingLineBarSale.vue
+++ b/src/views/home/operatingComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,12 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
},
},
beforeDestroy() {
@@ -59,7 +62,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/operatingComponents/operatingLineBarSaleGroup.vue b/src/views/home/operatingComponents/operatingLineBarSaleGroup.vue
index d861d755..2113b49b 100644
--- a/src/views/home/operatingComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/operatingComponents/operatingLineBarSaleGroup.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true; // 设置挂载标志
this.$nextTick(() => {
this.updateChart();
});
@@ -54,18 +56,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/operatingComponents/operatingLineBarSaleSingle.vue b/src/views/home/operatingComponents/operatingLineBarSaleSingle.vue
index d5fd99fd..d11594fb 100644
--- a/src/views/home/operatingComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/operatingComponents/operatingLineBarSaleSingle.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -54,18 +56,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/operatingComponents/verticalBarChart.vue b/src/views/home/operatingComponents/verticalBarChart.vue
index afa181d6..27a78a19 100644
--- a/src/views/home/operatingComponents/verticalBarChart.vue
+++ b/src/views/home/operatingComponents/verticalBarChart.vue
@@ -18,7 +18,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -34,6 +35,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -63,19 +65,20 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
detailData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/operatingProfitComponents/operatingLineBarSale.vue b/src/views/home/operatingProfitComponents/operatingLineBarSale.vue
index f2f7b778..fdd18a02 100644
--- a/src/views/home/operatingProfitComponents/operatingLineBarSale.vue
+++ b/src/views/home/operatingProfitComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,12 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
},
},
beforeDestroy() {
@@ -59,7 +62,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/operatingProfitComponents/operatingLineBarSaleGroup.vue b/src/views/home/operatingProfitComponents/operatingLineBarSaleGroup.vue
index 2bce4df0..08c7f4f0 100644
--- a/src/views/home/operatingProfitComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/operatingProfitComponents/operatingLineBarSaleGroup.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -42,18 +44,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/operatingProfitComponents/operatingLineBarSaleSingle.vue b/src/views/home/operatingProfitComponents/operatingLineBarSaleSingle.vue
index 140e5c75..15bd8cca 100644
--- a/src/views/home/operatingProfitComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/operatingProfitComponents/operatingLineBarSaleSingle.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -42,18 +44,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/operatingProfitComponents/verticalBarChart.vue b/src/views/home/operatingProfitComponents/verticalBarChart.vue
index c7e6f3bf..343bbbf1 100644
--- a/src/views/home/operatingProfitComponents/verticalBarChart.vue
+++ b/src/views/home/operatingProfitComponents/verticalBarChart.vue
@@ -18,7 +18,8 @@ export default {
data() {
return {
myChart: null,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -39,6 +40,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => this.updateChart());
// 注册窗口resize事件,使用稳定的引用以便后续移除
this.resizeHandler = () => {
@@ -51,17 +53,18 @@ export default {
watch: {
detailData: {
handler() {
+ if (!this.isMounted) return;
this.updateChart();
},
- deep: true,
- immediate: true
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
console.log('this.detailData', this.detailData);
diff --git a/src/views/home/packagingCostAnalysis.vue b/src/views/home/packagingCostAnalysis.vue
deleted file mode 100644
index 96b5da0d..00000000
--- a/src/views/home/packagingCostAnalysis.vue
+++ /dev/null
@@ -1,306 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/procurementGainAnalysisComponents/operatingLineBar.vue b/src/views/home/procurementGainAnalysisComponents/operatingLineBar.vue
index dc0a5e9d..29f2c13b 100644
--- a/src/views/home/procurementGainAnalysisComponents/operatingLineBar.vue
+++ b/src/views/home/procurementGainAnalysisComponents/operatingLineBar.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -27,6 +28,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -56,19 +58,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
-
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/procurementGainAnalysisComponents/operatingLineBarSale.vue b/src/views/home/procurementGainAnalysisComponents/operatingLineBarSale.vue
index 56a5db5f..a4d30df0 100644
--- a/src/views/home/procurementGainAnalysisComponents/operatingLineBarSale.vue
+++ b/src/views/home/procurementGainAnalysisComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
},
},
@@ -60,7 +62,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/procurementGainAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/procurementGainAnalysisComponents/operatingLineBarSaleGroup.vue
index d99a21c0..e78dfd47 100644
--- a/src/views/home/procurementGainAnalysisComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/procurementGainAnalysisComponents/operatingLineBarSaleGroup.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -54,18 +56,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/procurementGainAnalysisComponents/operatingLineBarSaleSingle.vue b/src/views/home/procurementGainAnalysisComponents/operatingLineBarSaleSingle.vue
index e1a4a3fb..22a1e442 100644
--- a/src/views/home/procurementGainAnalysisComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/procurementGainAnalysisComponents/operatingLineBarSaleSingle.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -54,18 +56,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/procurementGainAnalysisComponents/verticalBarChart.vue b/src/views/home/procurementGainAnalysisComponents/verticalBarChart.vue
index b59c103f..dff4000d 100644
--- a/src/views/home/procurementGainAnalysisComponents/verticalBarChart.vue
+++ b/src/views/home/procurementGainAnalysisComponents/verticalBarChart.vue
@@ -18,7 +18,8 @@ export default {
data() {
return {
myChart: null,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -39,6 +40,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => this.updateChart());
// 注册窗口resize事件,使用稳定的引用以便后续移除
this.resizeHandler = () => {
@@ -63,17 +65,17 @@ export default {
watch: {
detailData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
this.updateChart();
},
- deep: true,
- immediate: true
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/productionCostAnalysisComponents/operatingLineBar.vue b/src/views/home/productionCostAnalysisComponents/operatingLineBar.vue
index dc0a5e9d..70da2d38 100644
--- a/src/views/home/productionCostAnalysisComponents/operatingLineBar.vue
+++ b/src/views/home/productionCostAnalysisComponents/operatingLineBar.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false
};
},
props: {
@@ -27,6 +28,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -56,19 +58,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/productionCostAnalysisComponents/operatingLineBarSale.vue b/src/views/home/productionCostAnalysisComponents/operatingLineBarSale.vue
index 1f0c00ad..d724f7f2 100644
--- a/src/views/home/productionCostAnalysisComponents/operatingLineBarSale.vue
+++ b/src/views/home/productionCostAnalysisComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false,
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -39,6 +40,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -47,11 +49,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
},
showRelated: {
handler(val) {
@@ -72,7 +74,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/productionCostAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/productionCostAnalysisComponents/operatingLineBarSaleGroup.vue
index 73c5ac41..f86fedad 100644
--- a/src/views/home/productionCostAnalysisComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/productionCostAnalysisComponents/operatingLineBarSaleGroup.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false
};
},
props: {
@@ -29,6 +30,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -58,18 +60,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/productionCostAnalysisComponents/operatingLineBarSaleSingle.vue b/src/views/home/productionCostAnalysisComponents/operatingLineBarSaleSingle.vue
index db2cc6e7..66dae265 100644
--- a/src/views/home/productionCostAnalysisComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/productionCostAnalysisComponents/operatingLineBarSaleSingle.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false
};
},
props: {
@@ -29,6 +30,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -58,11 +60,11 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
},
showRelated: {
handler(val) {
@@ -78,7 +80,7 @@ export default {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/productionCostAnalysisComponents/verticalBarChart.vue b/src/views/home/productionCostAnalysisComponents/verticalBarChart.vue
index 22b92e46..a1cba4c7 100644
--- a/src/views/home/productionCostAnalysisComponents/verticalBarChart.vue
+++ b/src/views/home/productionCostAnalysisComponents/verticalBarChart.vue
@@ -18,7 +18,8 @@ export default {
data() {
return {
myChart: null,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false
};
},
props: {
@@ -43,6 +44,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => this.updateChart());
// 注册窗口resize事件,使用稳定的引用以便后续移除
this.resizeHandler = () => {
@@ -67,17 +69,17 @@ export default {
watch: {
detailData: {
handler() {
+ if (!this.isMounted) return;
this.updateChart();
},
- deep: true,
- immediate: true
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
console.log('this.detailData', this.detailData);
diff --git a/src/views/home/productionCostsAnalysis.vue b/src/views/home/productionCostsAnalysis.vue
deleted file mode 100644
index 11eb3431..00000000
--- a/src/views/home/productionCostsAnalysis.vue
+++ /dev/null
@@ -1,306 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/profitAnalysis.vue b/src/views/home/profitAnalysis.vue
deleted file mode 100644
index 09028499..00000000
--- a/src/views/home/profitAnalysis.vue
+++ /dev/null
@@ -1,272 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/profitImpactAnalysis.vue b/src/views/home/profitImpactAnalysis.vue
deleted file mode 100644
index 0be47186..00000000
--- a/src/views/home/profitImpactAnalysis.vue
+++ /dev/null
@@ -1,285 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/rawMaterialCostAnalysis.vue b/src/views/home/rawMaterialCostAnalysis.vue
deleted file mode 100644
index 0bac4d4e..00000000
--- a/src/views/home/rawMaterialCostAnalysis.vue
+++ /dev/null
@@ -1,278 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/rawSheetYieldComponents/operatingLineBar.vue b/src/views/home/rawSheetYieldComponents/operatingLineBar.vue
index b5fc53d4..b194e80a 100644
--- a/src/views/home/rawSheetYieldComponents/operatingLineBar.vue
+++ b/src/views/home/rawSheetYieldComponents/operatingLineBar.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -27,6 +28,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -44,19 +46,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/rawSheetYieldComponents/operatingLineBarSale.vue b/src/views/home/rawSheetYieldComponents/operatingLineBarSale.vue
index c78fb6c6..e0d755ac 100644
--- a/src/views/home/rawSheetYieldComponents/operatingLineBarSale.vue
+++ b/src/views/home/rawSheetYieldComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
},
},
beforeDestroy() {
@@ -59,7 +61,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
this.myChart = echarts.init(chartDom);
diff --git a/src/views/home/rawSheetYieldComponents/operatingLineBarSaleGroup.vue b/src/views/home/rawSheetYieldComponents/operatingLineBarSaleGroup.vue
index cfde9be5..e1cc1c2e 100644
--- a/src/views/home/rawSheetYieldComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/rawSheetYieldComponents/operatingLineBarSaleGroup.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -28,6 +29,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -38,18 +40,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.chartRef];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/rawSheetYieldComponents/operatingLineBarSaleSingle.vue b/src/views/home/rawSheetYieldComponents/operatingLineBarSaleSingle.vue
index aa9967df..011b987b 100644
--- a/src/views/home/rawSheetYieldComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/rawSheetYieldComponents/operatingLineBarSaleSingle.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/rawSheetYieldComponents/verticalBarChart.vue b/src/views/home/rawSheetYieldComponents/verticalBarChart.vue
index de6532cf..6d5b8b8d 100644
--- a/src/views/home/rawSheetYieldComponents/verticalBarChart.vue
+++ b/src/views/home/rawSheetYieldComponents/verticalBarChart.vue
@@ -18,8 +18,9 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- flag:0,
- resizeHandler: null // 窗口resize事件处理器
+ flag: 0,
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -35,6 +36,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -52,19 +54,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
detailData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/salesVolumeAnalysisComponents/operatingLineBar.vue b/src/views/home/salesVolumeAnalysisComponents/operatingLineBar.vue
index b5fc53d4..7c306553 100644
--- a/src/views/home/salesVolumeAnalysisComponents/operatingLineBar.vue
+++ b/src/views/home/salesVolumeAnalysisComponents/operatingLineBar.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -27,6 +28,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -44,19 +46,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
-
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSale.vue b/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSale.vue
index a415443e..3496803d 100644
--- a/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSale.vue
+++ b/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
},
},
beforeDestroy() {
@@ -59,7 +61,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSaleGroup.vue
index bd53f194..dae35c43 100644
--- a/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSaleGroup.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSaleSingle.vue b/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSaleSingle.vue
index 317a8787..ccaf8704 100644
--- a/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/salesVolumeAnalysisComponents/operatingLineBarSaleSingle.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/salesVolumeAnalysisComponents/verticalBarChart.vue b/src/views/home/salesVolumeAnalysisComponents/verticalBarChart.vue
index 5e449309..23d9194f 100644
--- a/src/views/home/salesVolumeAnalysisComponents/verticalBarChart.vue
+++ b/src/views/home/salesVolumeAnalysisComponents/verticalBarChart.vue
@@ -18,7 +18,8 @@ export default {
data() {
return {
myChart: null,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -43,6 +44,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => this.updateChart());
// 注册窗口resize事件,使用稳定的引用以便后续移除
this.resizeHandler = () => {
@@ -55,17 +57,17 @@ export default {
watch: {
detailData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
this.updateChart();
},
- deep: true,
- immediate: true
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/singleFuelAnalysis.vue b/src/views/home/singleFuelAnalysis.vue
deleted file mode 100644
index 382afd75..00000000
--- a/src/views/home/singleFuelAnalysis.vue
+++ /dev/null
@@ -1,311 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/singlePackingAnalysis.vue b/src/views/home/singlePackingAnalysis.vue
deleted file mode 100644
index 429bf8d2..00000000
--- a/src/views/home/singlePackingAnalysis.vue
+++ /dev/null
@@ -1,312 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/singleProductionCostsAnalysis.vue b/src/views/home/singleProductionCostsAnalysis.vue
deleted file mode 100644
index e39981af..00000000
--- a/src/views/home/singleProductionCostsAnalysis.vue
+++ /dev/null
@@ -1,294 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/singleRawMaterialAnalysis.vue b/src/views/home/singleRawMaterialAnalysis.vue
deleted file mode 100644
index 7ac7833a..00000000
--- a/src/views/home/singleRawMaterialAnalysis.vue
+++ /dev/null
@@ -1,306 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/singlecombustionPowerAnalysis.vue b/src/views/home/singlecombustionPowerAnalysis.vue
deleted file mode 100644
index c5751343..00000000
--- a/src/views/home/singlecombustionPowerAnalysis.vue
+++ /dev/null
@@ -1,312 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/totalProfit.vue b/src/views/home/totalProfit.vue
deleted file mode 100644
index db9d63f2..00000000
--- a/src/views/home/totalProfit.vue
+++ /dev/null
@@ -1,248 +0,0 @@
-
-
-
-
-
diff --git a/src/views/home/totalProfitComponents/operatingLineBarSale.vue b/src/views/home/totalProfitComponents/operatingLineBarSale.vue
index c43d3550..23eaa98f 100644
--- a/src/views/home/totalProfitComponents/operatingLineBarSale.vue
+++ b/src/views/home/totalProfitComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,12 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
},
},
beforeDestroy() {
@@ -59,7 +62,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
this.myChart = echarts.init(chartDom);
diff --git a/src/views/home/totalProfitComponents/operatingLineBarSaleGroup.vue b/src/views/home/totalProfitComponents/operatingLineBarSaleGroup.vue
index 45e3c527..a4cb846e 100644
--- a/src/views/home/totalProfitComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/totalProfitComponents/operatingLineBarSaleGroup.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData, 'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/totalProfitComponents/operatingLineBarSaleSingle.vue b/src/views/home/totalProfitComponents/operatingLineBarSaleSingle.vue
index d72e62c7..5d5e190d 100644
--- a/src/views/home/totalProfitComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/totalProfitComponents/operatingLineBarSaleSingle.vue
@@ -9,7 +9,8 @@ export default {
data() {
return {
myChart: null, // 存储图表实例,避免重复创建
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -25,6 +26,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -42,18 +44,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return;
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/totalProfitComponents/verticalBarChart.vue b/src/views/home/totalProfitComponents/verticalBarChart.vue
index 98acdfd1..5a86361a 100644
--- a/src/views/home/totalProfitComponents/verticalBarChart.vue
+++ b/src/views/home/totalProfitComponents/verticalBarChart.vue
@@ -18,7 +18,8 @@ export default {
data() {
return {
myChart: null,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -39,6 +40,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => this.updateChart());
// 注册窗口resize事件,使用稳定的引用以便后续移除
this.resizeHandler = () => {
@@ -51,17 +53,18 @@ export default {
watch: {
detailData: {
handler() {
+ if (!this.isMounted) return;
this.updateChart();
},
- deep: true,
- immediate: true
+ deep: true
+ // 移除 immediate: true,由 mounted 中的 updateChart() 处理初始化
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
console.log('this.detailData', this.detailData);
diff --git a/src/views/home/unitPriceAnalysisComponents/operatingLineBar.vue b/src/views/home/unitPriceAnalysisComponents/operatingLineBar.vue
index a12c433d..df31e9ff 100644
--- a/src/views/home/unitPriceAnalysisComponents/operatingLineBar.vue
+++ b/src/views/home/unitPriceAnalysisComponents/operatingLineBar.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -26,6 +27,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -36,19 +38,19 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/unitPriceAnalysisComponents/operatingLineBarSale.vue b/src/views/home/unitPriceAnalysisComponents/operatingLineBarSale.vue
index d20ba12d..946b067a 100644
--- a/src/views/home/unitPriceAnalysisComponents/operatingLineBarSale.vue
+++ b/src/views/home/unitPriceAnalysisComponents/operatingLineBarSale.vue
@@ -11,6 +11,7 @@ export default {
return {
myChart: null, // 存储图表实例
resizeHandler: null, // 存储resize事件处理函数
+ isMounted: false, // 图表挂载标志,避免过早执行
// 核心:基地名称与序号的映射表(固定顺序)
baseNameToIndexMap: {
'宜兴': 7,
@@ -35,6 +36,7 @@ export default {
},
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initChart(); // 初始化图表(只执行一次)
this.updateChart(); // 更新图表数据
@@ -43,11 +45,11 @@ export default {
watch: {
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData, 'chartData');
this.updateChart(); // 仅更新数据,不重新创建实例
},
- deep: true,
- immediate: true
+ deep: true
},
},
beforeDestroy() {
@@ -59,7 +61,7 @@ export default {
initChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/unitPriceAnalysisComponents/operatingLineBarSaleGroup.vue b/src/views/home/unitPriceAnalysisComponents/operatingLineBarSaleGroup.vue
index e37e07ef..e1b13a11 100644
--- a/src/views/home/unitPriceAnalysisComponents/operatingLineBarSaleGroup.vue
+++ b/src/views/home/unitPriceAnalysisComponents/operatingLineBarSaleGroup.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/unitPriceAnalysisComponents/operatingLineBarSaleSingle.vue b/src/views/home/unitPriceAnalysisComponents/operatingLineBarSaleSingle.vue
index db29cf3e..c9ebd90c 100644
--- a/src/views/home/unitPriceAnalysisComponents/operatingLineBarSaleSingle.vue
+++ b/src/views/home/unitPriceAnalysisComponents/operatingLineBarSaleSingle.vue
@@ -8,7 +8,8 @@ export default {
components: {},
data() {
return {
- myChart: null // 存储图表实例,避免重复创建
+ myChart: null, // 存储图表实例,避免重复创建
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -24,6 +25,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.updateChart();
});
@@ -34,18 +36,18 @@ export default {
// 深度监听数据变化,仅更新图表配置(不销毁实例)
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
console.log(this.chartData,'chartData');
this.updateChart();
},
- deep: true,
- immediate: true // 初始化时立即执行
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs.cockpitEffChip;
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}
diff --git a/src/views/home/unitPriceAnalysisComponents/pieChart.vue b/src/views/home/unitPriceAnalysisComponents/pieChart.vue
index 70987d41..a6d41065 100644
--- a/src/views/home/unitPriceAnalysisComponents/pieChart.vue
+++ b/src/views/home/unitPriceAnalysisComponents/pieChart.vue
@@ -39,7 +39,8 @@ export default {
'rgba(153, 102, 255, 1)'
],
myChart: null, // 保存图表实例,便于销毁和缩放
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
computed: {},
@@ -47,13 +48,14 @@ export default {
// 监听 chartData 变化,只要数据变了,就更新图表
chartData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
this.initData(); // 直接调用更新
},
- deep: true, // 深度监听数组/对象变化
- immediate: true // 初始化时立即执行
+ deep: true // 深度监听数组/对象变化
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => {
this.initData(); // 初始化图表
});
@@ -83,7 +85,7 @@ export default {
const chartDom = this.$refs[this.chartRef];
if (!chartDom) {
- console.error(`图表容器未找到!请确认父组件传递的 chartRef 为 "${this.chartRef}"`);
+ if (process.env.NODE_ENV === 'development') console.warn(`图表容器未找到!请确认父组件传递的 chartRef 为 "${this.chartRef}"`);
return;
}
diff --git a/src/views/home/unitPriceAnalysisComponents/verticalBarChart.vue b/src/views/home/unitPriceAnalysisComponents/verticalBarChart.vue
index 887dcc86..d67a7e89 100644
--- a/src/views/home/unitPriceAnalysisComponents/verticalBarChart.vue
+++ b/src/views/home/unitPriceAnalysisComponents/verticalBarChart.vue
@@ -18,7 +18,8 @@ export default {
data() {
return {
myChart: null,
- resizeHandler: null // 窗口resize事件处理器
+ resizeHandler: null, // 窗口resize事件处理器
+ isMounted: false // 图表挂载标志,避免过早执行
};
},
props: {
@@ -39,6 +40,7 @@ export default {
}
},
mounted() {
+ this.isMounted = true;
this.$nextTick(() => this.updateChart());
// 注册窗口resize事件,使用稳定的引用以便后续移除
this.resizeHandler = () => {
@@ -63,17 +65,17 @@ export default {
watch: {
detailData: {
handler() {
+ if (!this.isMounted) return; // 挂载前保护
this.updateChart();
},
- deep: true,
- immediate: true
+ deep: true
}
},
methods: {
updateChart() {
const chartDom = this.$refs[this.refName];
if (!chartDom) {
- console.error('图表容器未找到!');
+ if (process.env.NODE_ENV === 'development') console.warn('图表容器未找到!');
return;
}