From 022a757742c70b3106d817461464e821b537e794 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期二, 05 十一月 2024 13:20:40 +0800
Subject: [PATCH] process loading bug;报告

---
 src/components/chat/chatComponents/summaryCom/SummaryCom.vue |   72 +++++++++++++++++++++++++++++++++--
 1 files changed, 67 insertions(+), 5 deletions(-)

diff --git a/src/components/chat/chatComponents/summaryCom/SummaryCom.vue b/src/components/chat/chatComponents/summaryCom/SummaryCom.vue
index af6f031..bb0be6c 100644
--- a/src/components/chat/chatComponents/summaryCom/SummaryCom.vue
+++ b/src/components/chat/chatComponents/summaryCom/SummaryCom.vue
@@ -1,18 +1,80 @@
 <template>
 	<div class="w-full space-y-3">
-		<template v-if="data && data.length > 0">
-			<!-- 涓嶈兘浣跨敤 index -->
-			<component v-for="(item, index) in data" :key="item.id" :id="item.id" :is="summaryAnswerTypeMapCom[item.type]" :data="item"></component>
+		<template v-if="parsedData && parsedData.length > 0">
+			<template v-for="(item, index) in parsedData" :key="item.id">
+				<el-button v-if="showReportIndex.includes(index) && conclusion.length > 0" @click="showAgentReport(index)">鎶ュ憡</el-button>
+				<component
+					ref="componentRef"
+					:id="item.id"
+					:is="summaryAnswerTypeMapCom[item.type]"
+					:data="item"
+					:originData="originData"
+					:summaryIndex="index"
+					chartHeight="20rem"
+					:tableLimitHeight="tableLimitHeight"
+					@updateQuery="(res) => updateRecordSet(index, res)"
+				></component>
+			</template>
 		</template>
+		<ReportDlg v-model="infoDlgIsShow" :report="report" :agentKey="agentKey"></ReportDlg>
 	</div>
 </template>
 
 <script setup lang="ts">
-import { computed } from 'vue';
+import { computed, ref } from 'vue';
 import { chatComProps } from '../common';
-import { summaryAnswerTypeMapCom } from './components/types';
+import { SummaryAnswerType, summaryAnswerTypeMapCom } from './components/types';
+// import AmisPageTest from './components/amisPage/AmisPageTest.vue';
+
+import ReportDlg from './ReportDlg.vue';
 const props = defineProps(chatComProps);
+const tableLimitHeight = document.body.clientHeight * 0.7;
 
+const parsedData = computed<any[]>(() => {
+	const newData = (props.data ?? []).map((item) => {
+		if (item.type === SummaryAnswerType.RecordSet && item.chart === 'table') {
+			item.type = SummaryAnswerType.RecordSetTable;
+		}
+		return item;
+	});
+	return newData;
+});
 
+// 闇�瑕佸睍绀� report 鐨� 绱㈠紩
+const showReportIndex = computed(() => {
+	const agentKeySet = new Set();
+	const indexList = [];
+	parsedData.value.forEach((value, index) => {
+		if (value?.agent_key) {
+			if (!agentKeySet.has(value.agent_key)) {
+				agentKeySet.add(value.agent_key);
+				indexList.push(index);
+			}
+		}
+	});
+	return indexList;
+});
+
+const componentRef = ref<any[]>(null);
+
+const updateRecordSet = (triggerIndex, res) => {
+	for (const item of componentRef.value) {
+		item?.updateAll(triggerIndex, res);
+	}
+};
+const infoDlgIsShow = ref(false);
+const report = ref(null);
+
+const agentKey = ref('');
+
+const conclusion = computed(() => props.originData?.content?.origin?.conclusion ?? []);
+const showAgentReport = (agentStartIndex) => {
+	const agent = parsedData.value[agentStartIndex];
+	agentKey.value = agent.agent_key;
+	const foundReport = conclusion.value.find((item) => item.agent_key === agentKey.value);
+	report.value = foundReport;
+	
+	infoDlgIsShow.value = true;
+};
 </script>
 <style scoped lang="scss"></style>

--
Gitblit v1.9.3