| | |
| | | import CustomDrawer from '/@/components/drawer/CustomDrawer.vue'; |
| | | import { Logger } from '/@/model/logger/Logger'; |
| | | import { triggerRef } from 'vue'; |
| | | import { ElMessage } from 'element-plus'; |
| | | import { ElLoadingService, ElMessage } from 'element-plus'; |
| | | import ChatContainer from './components/ChatContainer.vue'; |
| | | import ShareLinkDlg from './components/shareLink/index.vue'; |
| | | import router from '/@/router'; |
| | |
| | | import { toMyFixed } from '/@/utils/util'; |
| | | import { useLoadData } from './hooks/useLoadData'; |
| | | import { useSyncMsg } from './hooks/useSyncMsg'; |
| | | import { getCurrentPosition } from '/@/utils/brower'; |
| | | const containerRef = useCompRef(ChatContainer); |
| | | const chatListDom = computed(() => containerRef.value?.chatListDom); |
| | | const scrollToBottom = () => { |
| | |
| | | }); |
| | | |
| | | let questionRes = null; |
| | | let position = null; |
| | | const preQuestion = ref(null); |
| | | |
| | | let lastAxiosSource: CancelTokenSource = null; |
| | |
| | | isTalking.value = !isTalking.value; |
| | | }); |
| | | }; |
| | | let position: Position = null; |
| | | const questionAi = async (text) => { |
| | | let judgeParams = null; |
| | | if (!preQuestion.value) { |
| | |
| | | ...judgeParams, |
| | | } as any; |
| | | |
| | | if (position) { |
| | | const longitude = position.coords.longitude; |
| | | const latitude = position.coords.latitude; |
| | | params.cur_pos = [longitude, latitude].join(','); |
| | | } |
| | | // if (!position) { |
| | | // const loadingInstance = ElLoadingService({ |
| | | // text: '获取位置中...', |
| | | // target: '.layout-parent', |
| | | // fullscreen:false, |
| | | // }); |
| | | // position = await getCurrentPosition().finally(() => { |
| | | // loadingInstance.close(); |
| | | // }); |
| | | // } |
| | | |
| | | // if (position) { |
| | | // const { latitude, longitude } = position; |
| | | // params.cur_pos = [longitude, latitude].join(','); |
| | | // } |
| | | |
| | | if (activeGroupType.value) { |
| | | params.group_type = activeGroupType.value; |
| | |
| | | const lastMsg = computedMessageList.value.at(-1); |
| | | // lastMsg.content.values = lastMsg.content.values.concat([]); |
| | | // 已经解析过一次 reports |
| | | if (!lastMsg.content.values) { |
| | | lastMsg.content.values = []; |
| | | } |
| | | |
| | | lastMsg.content.values.push({ |
| | | content: parseContent(res, true, { |
| | | origin: res, |
| | |
| | | } |
| | | } |
| | | const getLastGroup = () => { |
| | | const lastGroup = computedMessageList.value.at(-1).stepGroup.at(-1); |
| | | const lastGroup = computedMessageList.value.at(-1).stepGroup[0]; |
| | | return lastGroup; |
| | | }; |
| | | const getLastStepList = () => { |
| | |
| | | |
| | | // 暂时不考虑多个 report 情况 |
| | | |
| | | // if (lastIsResult && chunkRes.mode !== 'finish') { |
| | | // const lastTow = computedMessageList.value.at(-1); |
| | | // lastTow.stepGroup.at(-1).value.at(-1).finishLoading = true; |
| | | // // lastTow.content.values = lastTow.content.values.concat([]); |
| | | if (lastIsResult && chunkRes.mode !== 'finish') { |
| | | // const lastTow = computedMessageList.value.at(-1); |
| | | // lastTow.stepGroup.at(-1).value.at(-1).finishLoading = true; |
| | | // lastTow.content.values = lastTow.content.values.concat([]); |
| | | |
| | | // // 开始增加新的 stepGroup |
| | | // computedMessageList.value.at(-1).stepGroup.push({ |
| | | // value: [], |
| | | // isShow: true, |
| | | // }); |
| | | // lastIsResult = false; |
| | | // } |
| | | const lastGroup = computedMessageList.value.at(-1).stepGroup.at(-1); |
| | | // 开始增加新的 stepGroup,后续的 stepGroup 并没有实际作用,只是为了做迭代用,迭代出组件,屎山代码实在太难改了!!! |
| | | computedMessageList.value.at(-1).stepGroup.push({ |
| | | value: [], |
| | | isShow: true, |
| | | }); |
| | | lastIsResult = false; |
| | | } |
| | | const lastGroup = computedMessageList.value.at(-1).stepGroup[0]; |
| | | const stepList = lastGroup?.value ?? []; |
| | | const currentTimeStamp = new Date().getTime(); |
| | | const ms = toMyFixed(currentTimeStamp - lastTimestamp, 2) + ' ms'; |