From 8e6b518811a52e8c2d783ff6bb7d263783954eac Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期二, 31 十二月 2024 12:58:41 +0800
Subject: [PATCH] 拆分 messageList 组件

---
 src/views/project/ch/home/Home.vue |  105 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 72 insertions(+), 33 deletions(-)

diff --git a/src/views/project/ch/home/Home.vue b/src/views/project/ch/home/Home.vue
index cc2ad21..997260d 100644
--- a/src/views/project/ch/home/Home.vue
+++ b/src/views/project/ch/home/Home.vue
@@ -8,14 +8,8 @@
 							<div class="flex items-center h-full">
 								<div class="flex items-center flex-column" style="overflow: unset !important">
 									<waterTop ref="topRef" />
-									<waterCenter
-										@advanceExampleClick="advanceExampleClick"
-										:isShowAdvanceExample="state.isShowAdvanceExample"
-										ref="waterCenterRef"
-										@updateChatInput="updateChatInput"
-										:exampleList="exampleList"
-									/>
-									<waterBottom @tagListClick="tagListClick" />
+									<waterCenter @advanceExampleClick="advanceExampleClick" ref="waterCenterRef" @updateChatInput="updateChatInput" />
+									<waterBottom @tagListClick="selectTagClick" ref="bottomRef" />
 								</div>
 
 								<CustomDrawer v-model:isShow="state.isShowAdvanceExample" ref="customDrawerRef" @updateChatInput="updateChatInput" />
@@ -34,19 +28,51 @@
 </template>
 
 <script setup lang="ts">
-import { onMounted, reactive, ref } from 'vue';
+import { driver } from 'driver.js';
+import 'driver.js/dist/driver.css';
+import { nextTick, onMounted, onUnmounted, reactive, ref, watch } from 'vue';
 import waterBottom from './component/waterRight/bottom.vue';
 import waterCenter from './component/waterRight/center.vue';
 import waterTop from './component/waterRight/top.vue';
-import { getSelectSample, getUserTemplateList } from '/@/api/ai/chat';
 import CustomDrawer from '/@/components/drawer/CustomDrawer.vue';
+import { activeGroupType, userInfo } from '/@/stores/chatRoom';
+import emitter from '/@/utils/mitt';
+import { accessSessionKey } from '/@/utils/request';
+import { Local } from '/@/utils/storage';
 let state = reactive({
 	isShowAdvanceExample: false,
 });
+// 寮曞姝ラ
+
+const driverObj = driver({
+	showProgress: true,
+	allowClose: true,
+	disableActiveInteraction: true,
+	nextBtnText: '涓嬩竴姝�',
+	prevBtnText: '涓婁竴姝�',
+	doneBtnText: '瀹屾垚',
+	steps: [
+		{
+			element: '.set-next-group-type',
+			popover: {
+				title: '1.璇烽�夋嫨涓诲満鏅�',
+				description: '榛樿涓轰笟鍔″満鏅�',
+				popoverClass: 'driverjs-theme',
+			},
+		},
+		{ element: '.pc-scenes', popover: { title: '2.璇烽�夋嫨娆″満鏅�', description: '榛樿涓哄畼缃戝伐鍗�' } },
+		{ element: '.pc-prompts', popover: { title: '3.璇烽�夋嫨鎻愰棶绀轰緥', description: '閫夊叾涓竴涓渚�' } },
+		{ element: '.playInput', popover: { title: '4.杈撳叆鎻愰棶鍐呭', description: '鐐瑰嚮鍙戦�佸紑濮嬪璇�' } },
+		{ element: '.retract_icon', popover: { title: '5.鏇村鎻愰棶绀轰緥', description: '灞曞紑鍚庡彲鏌ョ湅鏇村妗堜緥' } },
+	],
+	onCloseClick: () => {
+		driverObj.destroy();
+	},
+});
 const topRef = ref(null);
 const waterCenterRef = ref(null);
+const bottomRef = ref(null);
 const customDrawerRef = ref(null);
-const exampleList = ref([]);
 const updateChatInput = (val) => {
 	topRef.value.updateChatInput(val);
 };
@@ -57,37 +83,43 @@
 	}
 };
 //鑾峰彇妯$増鍒楄〃
-const getSelectListSample = async () => {
-	const res1 = getSelectSample({});
-	const res2 = getUserTemplateList();
-	const [sampleListPromise, templateListPromise] = await Promise.allSettled([res1, res2]);
-	const samples = (sampleListPromise as any).value?.samples ?? [];
-	const templateSamples = ((templateListPromise as any).value?.templates ?? []).map((item) => ({
-		group_id: item.template_group,
-		sample_id: item.template_id,
-		sample_title: item.template_title,
-		sample_question: item.template_value,
 
-		//#region ====================== template 鐗规湁瀛楁 ======================
-		template_create_time: item.create_time,
-		template_type: item.template_type,
-		isTemplate: true,
-		//#endregion
-	}));
-	exampleList.value = samples.concat(templateSamples).map((item) => ({ ...item, Icon: '/static/images/wave/ChatImg.png' }));
-};
-const tagListClick = (tag) => {
-	isFinishPromise?.then(() => {
+const selectTagClick = (tag) => {
+	nextTick(() => {
 		waterCenterRef.value.tagListClick(tag);
 	});
 };
 let isFinishPromise = null;
+const showGuide = (isHome) => {
+	if (!!Local.get(accessSessionKey) && userInfo.isNew && isHome) {
+		userInfo.set({
+			...userInfo.get(),
+			web_login: true,
+		});
+		isFinishPromise?.then(() => {
+			driverObj.drive();
+		});
+	}
+};
 onMounted(() => {
 	isFinishPromise = new Promise(async (resolve) => {
-		await getSelectListSample();
 		resolve(true);
 	});
+	emitter.on('isShowHomePage', showGuide);
 });
+
+onUnmounted(() => {
+	emitter.off('isShowHomePage', showGuide);
+});
+watch(
+	() => activeGroupType.value,
+	(val) => {
+		setTimeout(() => {
+			bottomRef.value.getMainSectionList();
+		}, 300);
+	},
+	{ immediate: true }
+);
 </script>
 <style scoped lang="scss">
 .pc-chat_room {
@@ -159,7 +191,6 @@
 		.homeBox {
 			font-size: 14px;
 			line-height: 18px;
-			overflow-y: auto;
 		}
 		.declare {
 			position: absolute;
@@ -174,4 +205,12 @@
 		}
 	}
 }
+:not(body):has(> .driver-active-element) {
+	overflow: unset !important;
+}
+</style>
+<style>
+.driver-popover.driverjs-theme {
+	inset: 191.422px auto auto 357.828px !important;
+}
 </style>

--
Gitblit v1.9.3