| | |
| | | import emitter from '../utils/mitt'; |
| | | import { gotoRoute } from '../utils/route'; |
| | | import { Local } from '../utils/storage'; |
| | | |
| | | /** |
| | | * Room 关联的一些配置 |
| | | */ |
| | |
| | | 知识库: '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, |
| | |
| | | * 获取全局所有数据 |
| | | */ |
| | | 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 |
| | |
| | | }, |
| | | }; |
| | | |
| | | 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); |
| | | } |
| | | }); |
| | | }; |