wujingjing
2025-01-03 d43a9b7b743bc27b2a8740e97f55a1f352ac00c0
src/stores/chatRoom.ts
@@ -6,6 +6,7 @@
import emitter from '../utils/mitt';
import { gotoRoute } from '../utils/route';
import { Local } from '../utils/storage';
/**
 * Room 关联的一些配置
 */
@@ -88,25 +89,10 @@
   知识库: 'ywicon-changyonggongjuzhishisuoyin',
   业务场景: 'ywicon-yewu',
};
//获取场景选择列表
const getSceneGroupList = () => {
   return new Promise((resolve, reject) => {
      getSectionList()
         .then((res) => {
            sceneGroupList.value = res?.groups ?? [];
            resolve(true);
         })
         .catch((error) => {
            reject(error);
         });
   });
};
const getSelectListSample = async () => {
const getSelectListSample = async (res1, res2) => {
   try {
      const [res1, res2] = await Promise.all([getSelectSample({}), getUserTemplateList()]);
      const samples = res1?.samples ?? [];
      const templateSamples = (res2?.templates ?? []).map((item) => ({
      const samples = res1?.value?.samples ?? [];
      const templateSamples = (res2?.value?.templates ?? []).map((item) => ({
         group_id: item.template_group,
         sample_id: item.template_id,
         sample_title: item.template_title,
@@ -132,16 +118,14 @@
 * 获取全局所有数据
 */
export const getAllData = async () => {
   return new Promise(async (resolve, reject) => {
      try {
         await getSceneGroupList();
         await getSelectListSample();
         await getHistoryChatRooms();
         resolve(true);
      } catch (error) {
         reject(error);
      }
   });
   Promise.allSettled([getSectionList(), getSelectSample({}), getUserTemplateList()])
      .then((res) => {
         let [sectionList, selectSample, userTemplateList] = res;
         sceneGroupList.value = sectionList?.value?.groups ?? [];
         getSelectListSample(selectSample, userTemplateList);
      })
      .catch((err) => {});
   getHistoryChatRooms();
};
//#endregion
@@ -213,36 +197,44 @@
   },
};
let getHistoryChatRoomsPromise: Promise<any>;
//历史对话
const getHistoryChatRooms = () => {
   return new Promise((resolve, reject) => {
      GetHistoryGroups()
         .then((res) => {
            const resData = (res?.groups || []) as any[];
            chatRoomList.value = resData
               .toSorted((a, b) => b.create_time.localeCompare(a.create_time))
               .map((item) => ({
                  id: item.group_id,
                  title: item.group_title,
                  createTime: item.create_time,
                  isInitial: Number(item.chat_count) === 0,
               }));
            if (!chatRoomList.value || chatRoomList.value.length === 0) {
               newChatRoomClick();
            } else {
               const toClickRoom = activeChatRoom.value ?? chatRoomList.value[0];
               activeRoomId.value = toClickRoom.id;
               gotoAnswerPage(toClickRoom);
            }
const getHistoryChatRooms = async () => {
   getHistoryChatRoomsPromise = new Promise(async (resolve, reject) => {
      if (isSharePage.value) return resolve(null);
      const res = await GetHistoryGroups();
      const resData = (res?.groups || []) as any[];
      // 按最晚时间到最早时间
      chatRoomList.value = resData
         ?.toSorted((a, b) => {
            return b.create_time.localeCompare(a.create_time);
         })
         .then(() => {
            resolve(true);
         })
         .catch((error) => {
            reject(error);
         .map((item) => {
            return {
               id: item.group_id,
               title: item.group_title,
               createTime: item.create_time,
               isInitial: Number(item.chat_count) === 0,
            };
         });
   }).catch((error) => {
      reject(error);
      resolve(chatRoomList.value);
   });
};
const roomClick = (room: ChatRoomItem) => {
   activeRoomId.value = room.id;
   gotoAnswerPage(room);
};
export const selectFirstRoom = () => {
   getHistoryChatRoomsPromise.then(() => {
      if (!chatRoomList.value || chatRoomList.value.length === 0) {
         newChatRoomClick();
      } else {
         const toClickRoom = activeChatRoom.value ?? chatRoomList.value[0];
         roomClick(toClickRoom);
      }
   });
};