From 75e6912a8d93725e1038d1ecd9c1438ec223f2ca Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期四, 14 十一月 2024 14:38:10 +0800 Subject: [PATCH] refactor(layout): 重构布局组件并优化登录功能 --- src/layout/component/sidebar/components/ChatRecord.vue | 59 ++++++++++++++--------------------------------------------- 1 files changed, 14 insertions(+), 45 deletions(-) diff --git a/src/layout/component/sidebar/components/ChatRecord.vue b/src/layout/component/sidebar/components/ChatRecord.vue index 7fcef0c..6204a7f 100644 --- a/src/layout/component/sidebar/components/ChatRecord.vue +++ b/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 @@ -46,14 +46,14 @@ :key="index" @click="roomClick(item)" > - <div class="ywicon icon-xiaoxi1 flex-0 mr-2.5"></div> + <div class="ywifont ywicon-xiaoxi1 flex-0 mr-2.5"></div> <div class="flex-auto text-ellipsis text-nowrap text-sm group-hover:text-[#0084ff]">{{ item.title }}</div> <div class="text-gray-100 flex items-center space-x-2 ml-1"> - <!-- <div class="ywicon invisible icon-bianji group-hover:visible !text-sm"></div> --> + <!-- <div class="ywifont invisible ywicon-bianji group-hover:visible !text-sm"></div> --> <el-popconfirm title="纭畾鍒犻櫎鑱婂ぉ璁板綍?" @confirm.stop="confirmDeleteChatRoom(item)" width="180"> <template #reference> - <div class="ywicon invisible icon-shanchu3 group-hover:visible"></div> + <div class="ywifont invisible ywicon-shanchu3 group-hover:visible"></div> </template> </el-popconfirm> </div> @@ -65,61 +65,27 @@ <script setup lang="ts"> import { Search } from '@element-plus/icons-vue'; -import { computed, onMounted, reactive, ref, watch } from 'vue'; +import { computed, onMounted, onUnmounted, 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 { activeChatRoom, activeRoomId, chatRoomList, gotoAnswerPage, newChatRoomClick } from '/@/stores/chatRoom'; import { DateFilter, dateFilterMap } from '/@/model/types/date'; import { debounce, getRecentDateRange } from '/@/utils/util'; import moment from 'moment'; import { useSearch } from '/@/hooks/useSearch'; import { gotoRoute } from '/@/utils/route'; +import emitter from '/@/utils/mitt'; 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); }; @@ -200,12 +166,15 @@ isInitial: Number(item.chat_count) === 0, }; }); - if (!chatRoomList.value || chatRoomList.value.length === 0 || !chatRoomList.value?.[0].isInitial) { + if (!chatRoomList.value || chatRoomList.value.length === 0) { newChatRoomClick(); } else { - roomClick(chatRoomList.value[0]); + const toClickRoom = activeChatRoom.value ?? chatRoomList.value[0]; + roomClick(toClickRoom); } }); + + </script> <style scoped lang="scss"> .set-input { -- Gitblit v1.9.3