| | |
| | | import moment from 'moment'; |
| | | import { Ref, ShallowRef, computed, nextTick, onBeforeUnmount, ref, unref } from 'vue'; |
| | | import { LOAD_CHAT_LIMIT } from '../constants'; |
| | | import { AnswerType, ChatContent, ChatMessage, RoleEnum } from '../model/types'; |
| | | import { AnswerType, ChatContent, ChatMessage, RoleEnum, StepEnum, StepItem } from '../model/types'; |
| | | import { GetHistoryAnswer, QueryHistoryDetail } from '/@/api/ai/chat'; |
| | | type UseScrollLoadOption = { |
| | | container: ShallowRef<HTMLDivElement>; |
| | |
| | | parseAnswerContent: (res: any) => ChatContent; |
| | | }; |
| | | |
| | | export const convertProcessItem = (processItem: any) => { |
| | | switch (processItem.mode) { |
| | | case 'begin': |
| | | break; |
| | | case 'end': |
| | | break; |
| | | } |
| | | return { |
| | | status: StepEnum.Success, |
| | | title: processItem.value, |
| | | }; |
| | | }; |
| | | export const convertProcessToStep = (process: any[]) => { |
| | | const stepList = (process??[]).map<StepItem>((item) => { |
| | | return convertProcessItem(item); |
| | | }); |
| | | return stepList; |
| | | }; |
| | | /** |
| | | * 滚动加载数据 |
| | | * @returns |
| | |
| | | const insertIndex = index + 1 + i; |
| | | const currentUserMsg = tmpMessageList[insertIndex - 1]; |
| | | currentUserMsg.content.values = item?.answer?.question ?? currentUserMsg.content.values; |
| | | |
| | | |
| | | const mapUser = userItemIdMap.get(item.answer.history_id); |
| | | const mapUser = userItemIdMap.get(item.answer?.history_id); |
| | | |
| | | const answerTime = formatShowTimeYear.value(mapUser?.create_time); |
| | | tmpMessageList.splice( |
| | | insertIndex, |
| | |
| | | state: item.answer_state, |
| | | sectionAId: mapUser?.section_a_id, |
| | | createTime: answerTime, |
| | | stepList: convertProcessToStep(item?.answer?.exec_process), |
| | | stepIsShow:false |
| | | } |
| | | ); |
| | | i++; |