| | |
| | | <script setup lang="ts"> |
| | | import _ from 'lodash'; |
| | | import moment from 'moment'; |
| | | import { v4 as uuidv4 } from 'uuid'; |
| | | import { computed, onMounted, ref } from 'vue'; |
| | | import FeedbackPanel from './components/FeedbackPanel.vue'; |
| | | import Loding from './components/Loding.vue'; |
| | | import { useAssistantContentOpt } from './hooks/useAssistantContentOpt'; |
| | | import { useQueryProcess } from './hooks/useQueryProcess'; |
| | | import { convertProcessItem, useScrollLoad } from './hooks/useScrollLoad'; |
| | | import { useScrollToBottom } from './hooks/useScrollToBottom'; |
| | | import type { ChatContent, StepItem } from './model/types'; |
| | | import { AnswerState, AnswerType, RoleEnum, answerTypeMapCom, roleImageMap, type ChatMessage, stepEnumMap } from './model/types'; |
| | | import { QuestionAi, extCallQuery, questionStreamByPost } from '/@/api/ai/chat'; |
| | | import { AnswerState, AnswerType, RoleEnum, answerTypeMapCom, roleImageMap, stepEnumMap, type ChatMessage } from './model/types'; |
| | | import { extCallQuery, questionStreamByPost } from '/@/api/ai/chat'; |
| | | import PlayBar from '/@/components/chat/components/playBar/PlayBar.vue'; |
| | | import CustomDrawer from '/@/components/drawer/CustomDrawer.vue'; |
| | | import { Logger } from '/@/model/logger/Logger'; |
| | | import router from '/@/router'; |
| | | import { |
| | | activeChatRoom, |
| | |
| | | roomConfig, |
| | | } from '/@/stores/chatRoom'; |
| | | import { ErrorCode } from '/@/utils/request'; |
| | | import { Logger } from '/@/model/logger/Logger'; |
| | | const chatWidth = '75%'; |
| | | const voicePageIsShow = ref(false); |
| | | let isTalking = ref(false); |
| | |
| | | //显示上一条消息 |
| | | const showUpChatClick = () => { |
| | | if (computedMessageList.value.length === 0) return; |
| | | if (currentIndex.value === null) { |
| | | currentIndex.value = history_data.value.length - 1; |
| | | if (currentIndex.value == 0) { |
| | | messageContent.value.values = history_data.value[currentIndex.value].content.values; |
| | | return; |
| | | } else { |
| | | currentIndex.value = (currentIndex.value + history_data.value.length - 1) % history_data.value.length; |
| | | } |
| | |
| | | //显示下一条消息 |
| | | const showDownChatClick = () => { |
| | | if (computedMessageList.value.length === 0) return; |
| | | if (currentIndex.value == history_data.value.length - 1) { |
| | | messageContent.value.values = history_data.value[currentIndex.value].content.values; |
| | | return; |
| | | } |
| | | if (currentIndex.value === null) { |
| | | currentIndex.value = 0; |
| | | } else { |