wujingjing
2024-11-22 7385b6c2b3ba3b4a1a2e6482db9ff63be0c235c8
src/layout/component/sidebar/components/ChatRecord.vue
@@ -7,7 +7,7 @@
            color="#1c86ff"
            class="flex items-center box-border mb-3 justify-center add_room cursor-pointer w-[124px] h-[32.88px] rounded-s-md text-white opacity-100"
         >
            新建聊天室
            新建对话
         </el-button>
      </div>
      <div
@@ -65,61 +65,23 @@
<script setup lang="ts">
import { Search } from '@element-plus/icons-vue';
import { computed, onMounted, reactive, ref, watch } from 'vue';
import type { ChatRoomItem } from './types';
import { CreateHistoryGroup, DeleteHistoryGroups, GetHistoryGroups } from '/@/api/ai/chat';
import router from '/@/router';
import { activeRoomId, chatRoomList } from '/@/stores/chatRoom';
import { DateFilter, dateFilterMap } from '/@/model/types/date';
import { debounce, getRecentDateRange } from '/@/utils/util';
import moment from 'moment';
import { computed, onMounted, ref, watch } from 'vue';
import type { ChatRoomItem } from './types';
import { DeleteHistoryGroups } from '/@/api/ai/chat';
import { useSearch } from '/@/hooks/useSearch';
import { gotoRoute } from '/@/utils/route';
import { DateFilter, dateFilterMap } from '/@/model/types/date';
import { activeRoomId, chatRoomList, gotoAnswerPage, newChatRoomClick } from '/@/stores/chatRoom';
import { debounce, getRecentDateRange } from '/@/utils/util';
const chatRoomRef = ref<HTMLDivElement>(null);
const queryParams = ref({
   title: '',
});
const gotoAnswerPage = (room: ChatRoomItem) => {
   if (room.isInitial) {
      gotoRoute({
         name: 'Home',
         query: {
            id: room.id,
         },
      });
   } else {
      gotoRoute({
         name: 'AskAnswer',
         query: {
            id: room.id,
         },
      });
   }
   activeRoomId.value = room.id;
};
const newChatRoomClick = async () => {
   const res = await CreateHistoryGroup({
      group_title: 'chat room',
   });
   const newRoom = {
      id: res.history_group_id,
      isInitial: true,
      title: 'chat room',
   };
   if (!chatRoomList.value) {
      chatRoomList.value = [newRoom];
   } else {
      chatRoomList.value.unshift(newRoom);
   }
   gotoAnswerPage(newRoom);
};
const roomClick = (room: ChatRoomItem) => {
   activeRoomId.value = room.id;
   gotoAnswerPage(room);
};
@@ -184,27 +146,27 @@
//#endregion
onMounted(async () => {
   const res = await GetHistoryGroups();
   const resData = (res?.groups || []) as any[];
   // 按最晚时间到最早时间
   chatRoomList.value = resData
      ?.toSorted((a, b) => {
         return b.create_time.localeCompare(a.create_time);
      })
      .map((item) => {
         return {
            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 {
      roomClick(chatRoomList.value[0]);
   }
   // const res = await GetHistoryGroups();
   // const resData = (res?.groups || []) as any[];
   // // 按最晚时间到最早时间
   // chatRoomList.value = resData
   //    ?.toSorted((a, b) => {
   //       return b.create_time.localeCompare(a.create_time);
   //    })
   //    .map((item) => {
   //       return {
   //          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];
   //    roomClick(toClickRoom);
   // }
});
</script>
<style scoped lang="scss">