yangyin
2024-11-05 98f2147789fadc058adcef82f042fad98dcbee57
src/components/chat/hooks/useScrollLoad.ts
@@ -1,7 +1,7 @@
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>;
@@ -10,6 +10,24 @@
   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
@@ -60,8 +78,10 @@
         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,
@@ -75,6 +95,8 @@
                     state: item.answer_state,
                     sectionAId: mapUser?.section_a_id,
                     createTime: answerTime,
                     stepList: convertProcessToStep(item?.answer?.exec_process),
                     stepIsShow:false
                 }
         );
         i++;