From cb8d6096461752e321dda968d39999f3c2f81183 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期五, 10 一月 2025 15:37:03 +0800
Subject: [PATCH] isNewUser

---
 src/views/project/ch/home/Home.vue |   88 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 70 insertions(+), 18 deletions(-)

diff --git a/src/views/project/ch/home/Home.vue b/src/views/project/ch/home/Home.vue
index 6caf20d..28ba091 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 CustomDrawer from '/@/components/drawer/CustomDrawer.vue';
-import { exampleSceneList } from '/@/stores/chatRoom';
+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,21 +83,40 @@
 	}
 };
 //鑾峰彇妯$増鍒楄〃
-const getSelectListSample = async () => {
-	exampleList.value = exampleSceneList.value;
-};
-const tagListClick = (tag) => {
-	isFinishPromise?.then(() => {
+
+const selectTagClick = (tag) => {
+	nextTick(() => {
 		waterCenterRef.value.tagListClick(tag);
 	});
 };
 let isFinishPromise = null;
+const showGuide = (isHome) => {
+	if (!!Local.get(accessSessionKey) && Local.get('isNewUser') && isHome) {
+		Local.set('isNewUser', false);
+		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 {
@@ -143,7 +188,6 @@
 		.homeBox {
 			font-size: 14px;
 			line-height: 18px;
-			// overflow-y: auto;
 		}
 		.declare {
 			position: absolute;
@@ -158,4 +202,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