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