From 6e2557b3ae3e1b43bc01a5122f5fd4aa9b83d755 Mon Sep 17 00:00:00 2001
From: gerson <1405270578@qq.com>
Date: 星期日, 09 二月 2025 18:51:33 +0800
Subject: [PATCH] 整理绘制

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

diff --git a/src/components/chat/chatComponents/summaryCom/SummaryCom.vue b/src/components/chat/chatComponents/summaryCom/SummaryCom.vue
index 6cb6a2f..a113139 100644
--- a/src/components/chat/chatComponents/summaryCom/SummaryCom.vue
+++ b/src/components/chat/chatComponents/summaryCom/SummaryCom.vue
@@ -1,22 +1,48 @@
 <template>
 	<div class="w-full space-y-3">
-		<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>
+		<div class="w-full space-y-3" v-if="parsedData && parsedData.length > 0">
+			<div v-for="(item, index) in parsedData" :key="index">
+				<!-- <el-button type="primary" 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"
+					:reportIndex="reportIndex"
 					:summaryIndex="index"
 					chartHeight="20rem"
 					:tableLimitHeight="tableLimitHeight"
+					:historyId="historyId"
 					@updateQuery="(res) => updateRecordSet(index, res)"
+					:disabled="isTalking || isSharePage"
 				></component>
-			</template>
-		</template>
-		<ReportDlg v-model="infoDlgIsShow" :report="report" :agentKey="agentKey"></ReportDlg>
+
+				<div class="flex flex-col" v-if="showReportIndex.includes(index) && conclusion?.length > 0">
+					<div class="flex items-center mb-3">
+						<span class="mr-2">鍒嗘瀽璇勪及锛�</span>
+						<div
+							@click="toggleReport(item)"
+							class="cursor-pointer border border-gray-300 border-solid w-fit px-2 flex items-center space-x-2 rounded-lg hover:bg-gray-100 active:bg-gray-200"
+						>
+							<span>
+								{{ toggleReportLabel(item) }}
+							</span>
+							<span class="ywifont" :class="{ 'ywicon-unfold': !item.reportIsShow, 'ywicon-fold': item.reportIsShow }"></span>
+						</div>
+					</div>
+
+					<!-- 杩囩▼杈撳嚭 -->
+					<div v-show="item.reportIsShow" class="max-h-[2/3vh] markdown-it" v-html="md.render(getReport(index))"></div>
+				</div>
+			</div>
+		</div>
+		<el-empty v-else :image-size="200" class="!py-3">
+			<!-- <template #description>
+				<span > 鏆傛棤鏁版嵁 </span>
+			</template> -->
+		</el-empty>
+		<!-- <ReportDlg v-model="infoDlgIsShow" :report="report" :agentKey="agentKey"></ReportDlg> -->
 	</div>
 </template>
 
@@ -27,9 +53,11 @@
 // import AmisPageTest from './components/amisPage/AmisPageTest.vue';
 
 import ReportDlg from './ReportDlg.vue';
+import { md } from '../../libs/markdown';
+import { isSharePage } from '/@/stores/chatRoom';
+import service from '/@/utils/request';
 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') {
@@ -42,16 +70,19 @@
 
 // 闇�瑕佸睍绀� report 鐨� 绱㈠紩
 const showReportIndex = computed(() => {
-	const agentKeySet = new Set();
-	const indexList = [];
+	const agentKeyMap = new Map<string, number>();
 	parsedData.value.forEach((value, index) => {
 		if (value?.agent_key) {
-			if (!agentKeySet.has(value.agent_key)) {
-				agentKeySet.add(value.agent_key);
-				indexList.push(index);
-			}
+			// 鍙栨渶鍚庝竴娆′綔涓虹粨璁�
+			agentKeyMap.set(value.agent_key, index);
+			// if (!agentKeySet.has(value.agent_key)) {
+			// 	agentKeySet.add(value.agent_key);
+			// 	indexList.push(index);
+			// }
 		}
 	});
+	const indexList = Array.from(agentKeyMap.values());
+
 	return indexList;
 });
 
@@ -62,19 +93,35 @@
 		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?.report;
-	
-	infoDlgIsShow.value = true;
+const getReport = (agentEndIndex) => {
+	const agent = parsedData.value[agentEndIndex];
+	const agentKey = agent.agent_key;
+	// debugger;
+	const foundReport = props.conclusion.find((item) => item.agent_key === agentKey);
+	const report = foundReport?.report ?? '';
+	return report;
 };
+
+const toggleReportLabel = (item) => (item.reportIsShow ? '鏀惰捣' : '灞曞紑');
+const toggleReport = (item) => {
+	item.reportIsShow = !item.reportIsShow;
+};
+// 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?.report;
+
+// 	infoDlgIsShow.value = true;
+// };
+
+
 </script>
 <style scoped lang="scss"></style>

--
Gitblit v1.9.3