From 89323ef5405d9e1721b85afcba55984feb9d1942 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期四, 04 七月 2024 17:59:51 +0800
Subject: [PATCH] 增加日期筛选;点踩接口对接;权限优化

---
 src/components/chat/chatComponents/summaryCom/SummaryCom.vue |   55 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/src/components/chat/chatComponents/summaryCom/SummaryCom.vue b/src/components/chat/chatComponents/summaryCom/SummaryCom.vue
index 56f6cdf..e514981 100644
--- a/src/components/chat/chatComponents/summaryCom/SummaryCom.vue
+++ b/src/components/chat/chatComponents/summaryCom/SummaryCom.vue
@@ -1,16 +1,19 @@
 <template>
 	<div class="min-w-[100ch]">
-		<div class="ml-10" v-for="(item, idx) in summaryList" :key="idx">
-			<h3>{{ item.title }}</h3>
-			<el-table class="mt-2" :data="item.values" :style="{ width: `${columnsWidth * (item.values?.length ?? 1)}px` }">
-				<el-table-column v-for="(col, index) in item.values" :label="col.title" :key="index">
-					<template #default="scope">
-						{{ col?.value }}
-					</template>
-				</el-table-column>
-			</el-table>
-		</div>
-		<div class="flex-column w-full">
+		<template v-if="summaryList && summaryList.length > 0">
+			<div class="ml-10" v-for="(item, idx) in summaryList" :key="idx">
+				<h3>{{ item.title }}</h3>
+				<el-table class="mt-2" :data="item.values" :style="{ width: `${columnsWidth * (item.values?.length ?? 1)}px` }">
+					<el-table-column v-for="(col, index) in item.values" :label="col.title" :key="index">
+						<template #default="scope">
+							{{ col?.value }}
+						</template>
+					</el-table-column>
+				</el-table>
+			</div>
+		</template>
+
+		<div class="flex-column w-full" v-if="recordSetList && recordSetList.length > 0">
 			<el-select class="flex-0 w-36 ml-auto mr-16" v-model="selectChartType" @change="selectChartTypeChange">
 				<el-option
 					v-for="item in Object.keys(chartTypeMapName)"
@@ -19,7 +22,7 @@
 					:label="chartTypeMapName[item]"
 				></el-option>
 			</el-select>
-			<div class="min-h-[48rem] flex-auto w-full" v-if="recordSetList && recordSetList.length > 0">
+			<div class="min-h-[48rem] flex-auto w-full">
 				<div ref="chartRefList" v-for="(item, index) in recordSetList" :key="index"></div>
 			</div>
 		</div>
@@ -57,12 +60,11 @@
 	return refList;
 });
 
-const recordSetList = props.data.filter((item) => item.type === 'recordset');
-const summaryList = props.data.filter((item) => item.type === 'summary');
-
+const recordSetList = computed(() => props.data.filter((item) => item.type === 'recordset'));
+const summaryList = computed(() => props.data.filter((item) => item.type === 'summary'));
 const drawAllChart = () => {
 	chartInstanceList.map((item, index) => {
-		drawChart(item, recordSetList[index]);
+		drawChart(item, recordSetList.value[index]);
 	});
 };
 
@@ -72,7 +74,6 @@
 
 const drawChart = (instance, data) => {
 	const xType = 'time';
-
 	let timeIndex = data.cols.findIndex((item) => item.type === 'time');
 	if (timeIndex === -1) {
 		timeIndex = 0;
@@ -127,15 +128,15 @@
 			show: true,
 		},
 		title: {
-			text: data.title,
+			text: data?.title,
 			left: 'center',
 		},
 		xAxis: {
-			name: timeCol.title,
+			name: timeCol?.title,
 			type: xType,
 		},
 		yAxis: {
-			name: valueCol.title,
+			name: valueCol?.title,
 			type: 'value',
 			axisLabel: {
 				formatter: axisLabelFormatter,
@@ -150,13 +151,17 @@
 let chartInstanceList: echarts.ECharts[] = null;
 onMounted(() => {
 	setTimeout(() => {
-		const parent = chartRefList.value[0].parentElement;
+		const parent = chartRefList.value[0]?.parentElement;
+		const data = props.data;
+
+		if (!parent) {
+			return;
+		} else {
+		}
 
 		const parentBound = parent.getBoundingClientRect();
 		let divideCount = 1;
-		// if(chartRefList.value.length>=2){
-		// 	divideCount = 2;
-		// }
+	
 		const width = parentBound.width / divideCount;
 		chartInstanceList = chartRefList.value.map((item) => {
 			return echarts.init(item, undefined, {
@@ -165,7 +170,7 @@
 			});
 		});
 		drawAllChart();
-	}, 300);
+	}, 1000);
 });
 </script>
 <style scoped lang="scss"></style>

--
Gitblit v1.9.3