| | |
| | | <template> |
| | | <div class="w-full space-y-3"> |
| | | <template v-if="parsedData && parsedData.length > 0"> |
| | | <component |
| | | v-for="(item, index) in parsedData" |
| | | :key="item.id" |
| | | :id="item.id" |
| | | :is="summaryAnswerTypeMapCom[item.type]" |
| | | :data="item" |
| | | :originData="originData" |
| | | :summaryIndex="index" |
| | | ></component> |
| | | <template v-for="(item, index) in parsedData" :key="item.id"> |
| | | <!-- <el-button v-if="showReportIndex.includes(index)" @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> |
| | | <!-- <AmisPageTest /> --> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { computed } from 'vue'; |
| | | import { computed, ref } from 'vue'; |
| | | import { chatComProps } from '../common'; |
| | | import { SummaryAnswerType, summaryAnswerTypeMapCom } from './components/types'; |
| | | // import AmisPageTest from './components/amisPage/AmisPageTest.vue'; |
| | | const props = defineProps(chatComProps); |
| | | const tableLimitHeight = document.body.clientHeight * 0.7; |
| | | |
| | | const parsedData = computed(() => { |
| | | const parsedData = computed<any[]>(() => { |
| | | const newData = (props.data ?? []).map((item) => { |
| | | if (item.type === SummaryAnswerType.RecordSet && item.chart === 'table') { |
| | | item.type = SummaryAnswerType.RecordSetTable; |
| | |
| | | }); |
| | | 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 showAgentReport = (agentStartIndex) => { |
| | | const agent = parsedData.value[agentStartIndex]; |
| | | const agentKey = agent.agent_key; |
| | | |
| | | console.log("🚀 ~ showAgentReport:", props.originData) |
| | | |
| | | }; |
| | | </script> |
| | | <style scoped lang="scss"></style> |