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; }