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