diff --git a/src/page/index/components/ConsumptionConversion/ConsumptionConversion.vue b/src/page/index/components/ConsumptionConversion/ConsumptionConversion.vue
index 4b71d02..6132d50 100644
--- a/src/page/index/components/ConsumptionConversion/ConsumptionConversion.vue
+++ b/src/page/index/components/ConsumptionConversion/ConsumptionConversion.vue
@@ -34,6 +34,92 @@ onMounted(async () => {
myChart = echarts.init(chartDom);
+ const option = handleSetConfig(res)
+
+ myChart.setOption(option);
+ myChart.resize();
+ window.addEventListener('resize', resizeChart);
+})
+
+// 拿到数据
+const handleGetData = async () => {
+
+ let category: any = []
+ let carResList: any = []
+ let carRealResList: any = []
+ let orderResList: any = []
+ let orderRealResList: any = []
+
+ const req: any = {
+ Province_Code: '530000',
+ // Province_Code: '340000',
+ Statistics_Date: moment().subtract(1, 'd').subtract(1, 'M').format('YYYY-MM-DD'),
+ Serverpart_ID: ''
+ }
+
+ let ConsumptionConversion = sessionStorage.getItem('ConsumptionConversion')
+ let data: any = []
+ if (ConsumptionConversion) {
+ data = JSON.parse(ConsumptionConversion)
+ } else {
+ data = await handleGetTransactionConvert(req)
+ sessionStorage.setItem("ConsumptionConversion", JSON.stringify(data))
+ }
+
+
+
+ // const data = await handleGetTransactionConvert(req)
+
+
+ let carList = data.BayonetList.data
+
+ let orderList = data.TransactionList.data
+
+ let aiObjCar: any = {}
+ let aiOrder: any = {}
+
+ if (carList && carList.length > 0) {
+ carList.forEach((item: any) => {
+ carResList.push((item[1]))
+ carRealResList.push(item[1])
+ aiObjCar[`${item[0]}时`] = item[1] + '辆'
+ })
+ }
+
+ if (orderList && orderList.length > 0) {
+ orderList.forEach((item: any) => {
+ category.push(item[0])
+ orderResList.push((item[1]))
+ orderRealResList.push(item[1])
+ aiOrder[`${item[0]}时`] = item[1] + '笔'
+ })
+ }
+
+
+
+ let res: any = {
+ category: category,// x轴的内容
+ carResList: carResList,
+ carRealResList: carRealResList,
+ orderResList: orderResList,
+ orderRealResList: orderRealResList
+ }
+
+
+ let ConsumptionConversionAI = sessionStorage.getItem('ConsumptionConversionAI')
+ if (ConsumptionConversionAI) { } else {
+ let aiObj: any = {
+ "时段车流": aiObjCar,
+ "时段客单": aiOrder
+ }
+ sessionStorage.setItem("ConsumptionConversionAI", JSON.stringify(aiObj))
+ }
+
+
+ return res
+}
+
+const handleSetConfig = (res: any) => {
const option = {
legend: {
top: 0, // 距离容器底部距离
@@ -185,91 +271,9 @@ onMounted(async () => {
}
}
};
-
- myChart.setOption(option);
- myChart.resize();
- window.addEventListener('resize', resizeChart);
-})
-
-// 拿到数据
-const handleGetData = async () => {
-
- let category: any = []
- let carResList: any = []
- let carRealResList: any = []
- let orderResList: any = []
- let orderRealResList: any = []
-
- const req: any = {
- Province_Code: '530000',
- // Province_Code: '340000',
- Statistics_Date: moment().subtract(1, 'd').subtract(1, 'M').format('YYYY-MM-DD'),
- Serverpart_ID: ''
- }
-
- let ConsumptionConversion = sessionStorage.getItem('ConsumptionConversion')
- let data: any = []
- if (ConsumptionConversion) {
- data = JSON.parse(ConsumptionConversion)
- } else {
- data = await handleGetTransactionConvert(req)
- sessionStorage.setItem("ConsumptionConversion", JSON.stringify(data))
- }
-
-
-
- // const data = await handleGetTransactionConvert(req)
-
-
- let carList = data.BayonetList.data
-
- let orderList = data.TransactionList.data
-
- let aiObjCar: any = {}
- let aiOrder: any = {}
-
- if (carList && carList.length > 0) {
- carList.forEach((item: any) => {
- carResList.push((item[1]))
- carRealResList.push(item[1])
- aiObjCar[`${item[0]}时`] = item[1] + '辆'
- })
- }
-
- if (orderList && orderList.length > 0) {
- orderList.forEach((item: any) => {
- category.push(item[0])
- orderResList.push((item[1]))
- orderRealResList.push(item[1])
- aiOrder[`${item[0]}时`] = item[1] + '笔'
- })
- }
-
-
-
- let res: any = {
- category: category,// x轴的内容
- carResList: carResList,
- carRealResList: carRealResList,
- orderResList: orderResList,
- orderRealResList: orderRealResList
- }
-
-
- let ConsumptionConversionAI = sessionStorage.getItem('ConsumptionConversionAI')
- if (ConsumptionConversionAI) { } else {
- let aiObj: any = {
- "时段车流": aiObjCar,
- "时段客单": aiOrder
- }
- sessionStorage.setItem("ConsumptionConversionAI", JSON.stringify(aiObj))
- }
-
-
- return res
+ return option
}
-
const resizeChart = () => {
myChart?.resize();
};
@@ -279,7 +283,18 @@ onBeforeUnmount(() => {
myChart?.dispose();
});
+const handleUpdatePie = async () => {
+ myChart.setOption({
+ series: [], // 清空 series
+ }, { replaceMerge: 'series' }); // 替换 series 部分
+ const res: any = await handleGetData()
+ const option = handleSetConfig(res)
+ myChart.setOption(option)
+}
+defineExpose({
+ handleUpdatePie
+});
diff --git a/src/page/index/components/ConsumptionLevel/ConsumptionLevel.vue b/src/page/index/components/ConsumptionLevel/ConsumptionLevel.vue
index e48d6d6..2442b7f 100644
--- a/src/page/index/components/ConsumptionLevel/ConsumptionLevel.vue
+++ b/src/page/index/components/ConsumptionLevel/ConsumptionLevel.vue
@@ -35,66 +35,7 @@ onMounted(async () => {
myChart = echarts.init(chartDom);
- const option = {
- legend: {
- right: 0,
- textStyle: {
- color: '#fff',
- fontSize: 12,
- padding: [0, 0, 0, 5]
- },
- },
- grid: {
- left: '0',
- right: '0',
- bottom: '0',
- top: '30',
- containLabel: true
- },
- yAxis: {
- type: 'value',
- name: "%",
- show: true, // 显式启用 Y 轴(即使默认也建议写上)
- nameTextStyle: {
- color: '#fff', // 确保名称颜色可见
- padding: [0, 0, 0, 0] // 调整名称位置
- },
- splitLine: { show: false },
- axisLabel: {
- color: '#fff',
- interval: 0,
- show: true // 显式启用刻度标签
- },
- axisLine: {
- show: true, // 显式启用轴线
- lineStyle: {
- color: '#fff'
- }
- }
- },
- xAxis: {
- type: 'category',
- data: res.category,
- axisLabel: {
- color: '#fff',
- interval: 0 // 强制显示所有标签
- },
- axisLine: {
- lineStyle: {
- color: '#fff' // 设置 y 轴线颜色为白色(可选)
- }
- },
- },
- series: res.seriesData,
- tooltip: {
- trigger: 'item',
- formatter: function (params: any) {
- return `
-
${params.seriesName} ${params.value}%
- `;
- }
- },
- };
+ const option = handleSetConfig(res)
myChart.setOption(option);
myChart.resize();
@@ -179,7 +120,82 @@ onBeforeUnmount(() => {
myChart?.dispose();
});
+const handleSetConfig = (res: any) => {
+ const option = {
+ legend: {
+ right: 0,
+ textStyle: {
+ color: '#fff',
+ fontSize: 12,
+ padding: [0, 0, 0, 5]
+ },
+ },
+ grid: {
+ left: '0',
+ right: '0',
+ bottom: '0',
+ top: '30',
+ containLabel: true
+ },
+ yAxis: {
+ type: 'value',
+ name: "%",
+ show: true, // 显式启用 Y 轴(即使默认也建议写上)
+ nameTextStyle: {
+ color: '#fff', // 确保名称颜色可见
+ padding: [0, 0, 0, 0] // 调整名称位置
+ },
+ splitLine: { show: false },
+ axisLabel: {
+ color: '#fff',
+ interval: 0,
+ show: true // 显式启用刻度标签
+ },
+ axisLine: {
+ show: true, // 显式启用轴线
+ lineStyle: {
+ color: '#fff'
+ }
+ }
+ },
+ xAxis: {
+ type: 'category',
+ data: res.category,
+ axisLabel: {
+ color: '#fff',
+ interval: 0 // 强制显示所有标签
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff' // 设置 y 轴线颜色为白色(可选)
+ }
+ },
+ },
+ series: res.seriesData,
+ tooltip: {
+ trigger: 'item',
+ formatter: function (params: any) {
+ return `
+
${params.seriesName} ${params.value}%
+ `;
+ }
+ },
+ };
+ return option
+}
+const handleUpdatePie = async () => {
+ myChart.setOption({
+ series: [], // 清空 series
+ }, { replaceMerge: 'series' }); // 替换 series 部分
+
+ const res: any = await handleGetData()
+ const option = handleSetConfig(res)
+ myChart.setOption(option)
+}
+defineExpose({
+ handleUpdatePie
+});
diff --git a/src/page/index/components/ConsumptionPeriod/ConsumptionPeriod.vue b/src/page/index/components/ConsumptionPeriod/ConsumptionPeriod.vue
index 1da8c91..a4f5745 100644
--- a/src/page/index/components/ConsumptionPeriod/ConsumptionPeriod.vue
+++ b/src/page/index/components/ConsumptionPeriod/ConsumptionPeriod.vue
@@ -34,6 +34,73 @@ onMounted(async () => {
myChart = echarts.init(chartDom);
+ const option = handleSetConfig(res)
+
+ myChart.setOption(option);
+ myChart.resize();
+ window.addEventListener('resize', resizeChart);
+})
+
+// 拿到数据
+const handleGetData = async () => {
+
+ let category: any = []
+ let seriesData: any = []
+
+ const req: any = {
+ Province_Code: '530000',
+ Statistics_Date: moment().subtract(1, 'd').subtract(1, 'M').format('YYYY-MM-DD'),
+ Serverpart_ID: '',
+ TimeSpan: 1
+ }
+
+
+ let ConsumptionPeriod = sessionStorage.getItem('ConsumptionPeriod')
+ let data: any = []
+ if (ConsumptionPeriod) {
+ data = JSON.parse(ConsumptionPeriod)
+ } else {
+ data = await handleGetTransactionTimeAnalysis(req)
+ sessionStorage.setItem("ConsumptionPeriod", JSON.stringify(data))
+ }
+
+ // const data = await handleGetTransactionTimeAnalysis(req)
+
+ let aiObj: any = {}
+ if (data && data.length > 0) {
+ // 拿到笔数的合计
+ let orderSum: number = 0
+ data.forEach((item: any) => {
+ orderSum += Number(item.data)
+ })
+
+ // data 是笔数 key 是金额
+ data.forEach((item: any, index: number) => {
+ if (index < 10) {
+ category.push(`0${index}:00`)
+ } else {
+ category.push(`${index}:00`)
+ }
+
+ seriesData.push(Number(((item.data / orderSum) * 100).toFixed(2)))
+ aiObj[`${item.name}时`] = item.data + '单'
+ })
+ }
+
+ let res: any = {
+ category: category,// x轴的内容
+ seriesData: seriesData,
+ }
+
+ let ConsumptionPeriodAI = sessionStorage.getItem('ConsumptionPeriodAI')
+ if (ConsumptionPeriodAI) { } else {
+ sessionStorage.setItem("ConsumptionPeriodAI", JSON.stringify(aiObj))
+ }
+
+ return res
+}
+
+const handleSetConfig = (res: any) => {
const option = {
xAxis: {
type: 'category',
@@ -119,72 +186,9 @@ onMounted(async () => {
}
}
};
-
- myChart.setOption(option);
- myChart.resize();
- window.addEventListener('resize', resizeChart);
-})
-
-// 拿到数据
-const handleGetData = async () => {
-
- let category: any = []
- let seriesData: any = []
-
- const req: any = {
- Province_Code: '530000',
- Statistics_Date: moment().subtract(1, 'd').subtract(1, 'M').format('YYYY-MM-DD'),
- Serverpart_ID: '',
- TimeSpan: 1
- }
-
-
- let ConsumptionPeriod = sessionStorage.getItem('ConsumptionPeriod')
- let data: any = []
- if (ConsumptionPeriod) {
- data = JSON.parse(ConsumptionPeriod)
- } else {
- data = await handleGetTransactionTimeAnalysis(req)
- sessionStorage.setItem("ConsumptionPeriod", JSON.stringify(data))
- }
-
- // const data = await handleGetTransactionTimeAnalysis(req)
-
- let aiObj: any = {}
- if (data && data.length > 0) {
- // 拿到笔数的合计
- let orderSum: number = 0
- data.forEach((item: any) => {
- orderSum += Number(item.data)
- })
-
- // data 是笔数 key 是金额
- data.forEach((item: any, index: number) => {
- if (index < 10) {
- category.push(`0${index}:00`)
- } else {
- category.push(`${index}:00`)
- }
-
- seriesData.push(Number(((item.data / orderSum) * 100).toFixed(2)))
- aiObj[`${item.name}时`] = item.data + '单'
- })
- }
-
- let res: any = {
- category: category,// x轴的内容
- seriesData: seriesData,
- }
-
- let ConsumptionPeriodAI = sessionStorage.getItem('ConsumptionPeriodAI')
- if (ConsumptionPeriodAI) { } else {
- sessionStorage.setItem("ConsumptionPeriodAI", JSON.stringify(aiObj))
- }
-
- return res
+ return option
}
-
const resizeChart = () => {
myChart?.resize();
};
@@ -194,6 +198,19 @@ onBeforeUnmount(() => {
myChart?.dispose();
});
+const handleUpdatePie = async () => {
+ myChart.setOption({
+ series: [], // 清空 series
+ }, { replaceMerge: 'series' }); // 替换 series 部分
+
+ const res: any = await handleGetData()
+ const option = handleSetConfig(res)
+ myChart.setOption(option)
+}
+defineExpose({
+ handleUpdatePie
+});
+
diff --git a/src/page/index/components/CoreBusinessData/CoreBusinessData.vue b/src/page/index/components/CoreBusinessData/CoreBusinessData.vue
index 18ccc24..c20e9cd 100644
--- a/src/page/index/components/CoreBusinessData/CoreBusinessData.vue
+++ b/src/page/index/components/CoreBusinessData/CoreBusinessData.vue
@@ -59,7 +59,6 @@ const handleGetMapRealData = async () => {
serverPartId: props.currentService?.SERVERPART_ID || ""
}
-
let CoreBusinessData = sessionStorage.getItem('CoreBusinessData')
let data: any = []
if (CoreBusinessData) {
@@ -228,6 +227,10 @@ const handleGetPonitFixed = (str: string) => {
const num = parseFloat(str); // 先转为number类型
return isNaN(num) ? "0.00" : num.toFixed(2);
}
+
+defineExpose({
+ handleGetMapRealData
+});
diff --git a/src/page/index/components/CoreCategory/CoreCategory.vue b/src/page/index/components/CoreCategory/CoreCategory.vue
index 6bbe595..e9e60c6 100644
--- a/src/page/index/components/CoreCategory/CoreCategory.vue
+++ b/src/page/index/components/CoreCategory/CoreCategory.vue
@@ -42,6 +42,14 @@ onMounted(async () => {
myChart = echarts.init(chartDom);
+ const rect = chartDom.getBoundingClientRect();
+ const width = rect.width;
+ const height = rect.height;
+
+ // 计算center位置(20%,50%)对应的实际像素
+ const centerX = width * 0.2;
+ const centerY = height * 0.5;
+
const option = {
tooltip: { // 新增 tooltip 配置
trigger: 'item', // 触发类型:坐标轴触发
@@ -63,8 +71,8 @@ onMounted(async () => {
width: 83,
height: 83
},
- left: 'center',
- top: 'center',
+ left: centerX - 41.5,
+ top: centerY - 41.5,
z: 10
}
]
@@ -73,8 +81,8 @@ onMounted(async () => {
{
name: 'Access From',
type: 'pie',
- radius: ['85%', '100%'],
- center: ['50%', '50%'], // 关键修改:强制居中 [水平位置, 垂直位置]
+ radius: ['55%', '70%'],
+ center: ['20%', '50%'], // 图形向左偏移
avoidLabelOverlap: false,
itemStyle: {
@@ -91,7 +99,36 @@ onMounted(async () => {
},
data: res.seriesData
}
- ]
+ ],
+ legend: {
+ orient: 'vertical',
+ left: 200,
+ top: 'center',
+ align: 'left',
+ itemGap: 10,
+ itemWidth: 12,
+ itemHeight: 12,
+ textStyle: {
+ color: '#fff',
+ rich: {
+ name: {
+ width: 90, // 固定名称宽度
+ align: 'left',
+ padding: [0, 10, 0, 0]
+ },
+ percent: {
+ width: 50, // 固定百分比宽度
+ align: 'right',
+ padding: [0, 10, 0, 0]
+ }
+ }
+ },
+ formatter: function (name: any) {
+ let percentData: any = res.lengedData.filter((item: any) => item.name === name)
+
+ return `{name|${name}}{percent|${percentData[0].value}%}`; // 使用rich样式
+ }
+ }
};
myChart.setOption(option);
@@ -165,19 +202,17 @@ onBeforeUnmount(() => {
-
-
+ -->
diff --git a/src/page/index/components/CustomerAgeGroup/CustomerAgeGroup.vue b/src/page/index/components/CustomerAgeGroup/CustomerAgeGroup.vue
index 66766d9..2e70570 100644
--- a/src/page/index/components/CustomerAgeGroup/CustomerAgeGroup.vue
+++ b/src/page/index/components/CustomerAgeGroup/CustomerAgeGroup.vue
@@ -40,6 +40,112 @@ onMounted(async () => {
myChart = echarts.init(chartDom);
+ const option = handleSetConfig(res)
+
+ myChart.setOption(option);
+ myChart.resize();
+ window.addEventListener('resize', resizeChart);
+})
+
+// 拿到年龄数据
+const handleGetData = async () => {
+ let category: any = []
+ let seriesData: any = []
+ let percentData: any = []
+
+ const req: any = {
+ provinceCode: '530000',
+ statisticsMonth: moment(moment().subtract(1, 'M')).format('YYYYMM'),
+ }
+
+
+
+ let CustomerAgeGroup = sessionStorage.getItem('CustomerAgeGroup')
+ let data: any = []
+ if (CustomerAgeGroup) {
+ data = JSON.parse(CustomerAgeGroup)
+ } else {
+ data = await handleGetCustomerAgeRatio(req)
+ sessionStorage.setItem("CustomerAgeGroup", JSON.stringify(data))
+ }
+
+
+ // const data = await handleGetCustomerAgeRatio(req)
+
+ console.log('fdisfsauifhdsaj', data);
+
+ // for (let i = 0; i < 4; i++) {
+ // let sum: number = (data[0].data[i] + data[1].data[i])
+ // seriesData.push(sum.toFixed(2))
+ // percentData.push((sum / 200 * 100).toFixed(2))
+ // }
+
+ // 男生
+ let seriesDataMan: number[] = []
+ // 女生
+ let seriesDataWoman: number[] = []
+ if (data && data.length > 0) {
+ data.forEach((item: any) => {
+ if (item.name === '男性') {
+ seriesDataMan = item.data
+ } else if (item.name === '女性') {
+ seriesDataWoman = item.data
+ }
+ })
+ }
+
+
+ let res: any = {
+ // category: ["25以下", "25-35", "35-45", "45以上"],// x轴的内容
+ category: ["20岁", "30岁", "40岁", "50以上"],// x轴的内容
+ seriesDataMan: seriesDataMan,// 男生
+ seriesDataWoman: seriesDataWoman// 女生
+ }
+
+
+ let CustomerAgeGroupAI = sessionStorage.getItem('CustomerAgeGroupAI')
+ if (CustomerAgeGroupAI) { } else {
+ let aiRes: any = {}
+
+ for (let i = 0; i < res.category.length; i++) {
+ aiRes[res.category[i]] = {
+ "男性": seriesDataMan[i] + '%',
+ "女性": seriesDataWoman[i] + '%',
+ }
+ }
+ sessionStorage.setItem("CustomerAgeGroupAI", JSON.stringify(aiRes))
+ }
+
+ return res
+}
+
+// 重绘所有图表的方法
+const resizeAllCharts = () => {
+ // 获取当前显示的tab下的所有echarts实例
+ const charts = document.querySelectorAll(`#CustomerAgeGroup`)
+ charts.forEach(chart => {
+ const instance = echarts.getInstanceByDom(chart as HTMLElement)
+ if (instance) {
+ instance.resize()
+ }
+ })
+}
+
+const resizeChart = () => {
+ myChart?.resize();
+};
+
+onBeforeUnmount(() => {
+ window.removeEventListener('resize', resizeChart);
+ myChart?.dispose();
+});
+
+
+onUnmounted(() => {
+ window.removeEventListener('resize', resizeAllCharts)
+})
+
+const handleSetConfig = (res: any) => {
const option = {
tooltip: { // 新增 tooltip 配置
trigger: 'axis', // 触发类型:坐标轴触发
@@ -170,111 +276,23 @@ onMounted(async () => {
}
},
};
-
-
- myChart.setOption(option);
- myChart.resize();
- window.addEventListener('resize', resizeChart);
-})
-
-// 拿到年龄数据
-const handleGetData = async () => {
- let category: any = []
- let seriesData: any = []
- let percentData: any = []
-
- const req: any = {
- provinceCode: '530000',
- statisticsMonth: moment(moment().subtract(1, 'M')).format('YYYYMM'),
- }
-
-
-
- let CustomerAgeGroup = sessionStorage.getItem('CustomerAgeGroup')
- let data: any = []
- if (CustomerAgeGroup) {
- data = JSON.parse(CustomerAgeGroup)
- } else {
- data = await handleGetCustomerAgeRatio(req)
- sessionStorage.setItem("CustomerAgeGroup", JSON.stringify(data))
- }
-
-
- // const data = await handleGetCustomerAgeRatio(req)
-
- console.log('fdisfsauifhdsaj', data);
-
- // for (let i = 0; i < 4; i++) {
- // let sum: number = (data[0].data[i] + data[1].data[i])
- // seriesData.push(sum.toFixed(2))
- // percentData.push((sum / 200 * 100).toFixed(2))
- // }
-
- // 男生
- let seriesDataMan: number[] = []
- // 女生
- let seriesDataWoman: number[] = []
- if (data && data.length > 0) {
- data.forEach((item: any) => {
- if (item.name === '男性') {
- seriesDataMan = item.data
- } else if (item.name === '女性') {
- seriesDataWoman = item.data
- }
- })
- }
-
-
- let res: any = {
- // category: ["25以下", "25-35", "35-45", "45以上"],// x轴的内容
- category: ["20岁", "30岁", "40岁", "50以上"],// x轴的内容
- seriesDataMan: seriesDataMan,// 男生
- seriesDataWoman: seriesDataWoman// 女生
- }
-
-
- let CustomerAgeGroupAI = sessionStorage.getItem('CustomerAgeGroupAI')
- if (CustomerAgeGroupAI) { } else {
- let aiRes: any = {}
-
- for (let i = 0; i < res.category.length; i++) {
- aiRes[res.category[i]] = {
- "男性": seriesDataMan[i] + '%',
- "女性": seriesDataWoman[i] + '%',
- }
- }
- sessionStorage.setItem("CustomerAgeGroupAI", JSON.stringify(aiRes))
- }
-
- return res
+ return option
}
-// 重绘所有图表的方法
-const resizeAllCharts = () => {
- // 获取当前显示的tab下的所有echarts实例
- const charts = document.querySelectorAll(`#CustomerAgeGroup`)
- charts.forEach(chart => {
- const instance = echarts.getInstanceByDom(chart as HTMLElement)
- if (instance) {
- instance.resize()
- }
- })
+const handleUpdatePie = async () => {
+ myChart.setOption({
+ series: [], // 清空 series
+ }, { replaceMerge: 'series' }); // 替换 series 部分
+
+ const res: any = await handleGetData()
+ const option = handleSetConfig(res)
+ myChart.setOption(option)
}
-const resizeChart = () => {
- myChart?.resize();
-};
-
-onBeforeUnmount(() => {
- window.removeEventListener('resize', resizeChart);
- myChart?.dispose();
+defineExpose({
+ handleUpdatePie
});
-
-onUnmounted(() => {
- window.removeEventListener('resize', resizeAllCharts)
-})
-