From 457cc6cf166d3b6c22be4f78c1db8802a7fbb4c7 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期一, 07 四月 2025 17:53:19 +0800
Subject: [PATCH] DigitalHuman

---
 src/views/project/ch/home/Home.vue |  150 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 93 insertions(+), 57 deletions(-)

diff --git a/src/views/project/ch/home/Home.vue b/src/views/project/ch/home/Home.vue
index eb9b609..b2a742e 100644
--- a/src/views/project/ch/home/Home.vue
+++ b/src/views/project/ch/home/Home.vue
@@ -5,29 +5,14 @@
 				<div class="w100 h100 overflow-hidden">
 					<div class="pc-chatRoom w100 h100">
 						<div class="homeBox w100 h-full">
-							<div class="flex items-center h-full relative overflow-hidden">
-								<div class="flex items-center flex-column">
-									<waterTop />
-									<waterCenter
-										@advanceExampleClick="advanceExampleClick"
-										:isShowAdvanceExample="state.isShowAdvanceExample"
-										ref="waterCenterRef"
-									/>
-									<waterBottom />
+							<div class="flex items-center h-full">
+								<div class="flex items-center flex-column" style="overflow: unset !important">
+									<waterTop ref="topRef" />
+									<waterCenter @advanceExampleClick="advanceExampleClick" ref="waterCenterRef" @updateChatInput="updateChatInput" />
+									<waterBottom @tagListClick="selectTagClick" ref="bottomRef" />
 								</div>
-								<div
-									class="retract_icon"
-									:style="`right: ${state.rightBox}px;`"
-									@click="advanceExampleClick(!state.isShowAdvanceExample)"
-								>
-									<i
-										class="text-[#fff] transition-all"
-										:class="state.isShowAdvanceExample ? 'ywicon icon-zuoyoujiantou1' : 'ywicon icon-zuoyoujiantou'"
-									></i>
-								</div>
-								<div class="h100" :style="`width: ${state.rightBoxWidth}px;transition:width 0.8s;`">
-									<CustomDrawer :isShowAdvanceExample="state.isShowAdvanceExample" @closeExampleClick="closeExampleClick" />
-								</div>
+
+								<CustomDrawer v-model:isShow="state.isShowAdvanceExample" ref="customDrawerRef" @updateChatInput="updateChatInput" />
 							</div>
 						</div>
 						<!-- <p class="declare">
@@ -43,28 +28,95 @@
 </template>
 
 <script setup lang="ts">
-import { 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 { 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,
-	rightBoxWidth: 0,
-	rightBox: 0,
 });
+// 寮曞姝ラ
+
+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 updateChatInput = (val) => {
+	topRef.value.updateChatInput(val);
+};
 const advanceExampleClick = (status: boolean) => {
 	state.isShowAdvanceExample = status;
-	state.rightBoxWidth = status ? 354 : 0;
-	state.rightBox = status ? 354 : 0;
+	if (status) {
+		customDrawerRef.value.getTableData();
+	}
 };
-//鍏抽棴楂樼骇绀轰緥
-const closeExampleClick = (status: boolean) => {
-	state.isShowAdvanceExample = status;
-	state.rightBoxWidth = status ? 354 : 0;
-	state.rightBox = status ? 354 : 0;
+//鑾峰彇妯$増鍒楄〃
+
+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) => {
+		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 {
@@ -90,30 +142,7 @@
 	width: 100%;
 	padding: 18px;
 }
-.retract_icon {
-	width: 20px;
-	height: 48px;
-	background: rgba(0, 0, 0, 0.2);
-	position: absolute;
-	top: 50%;
-	right: 0;
-	// -webkit-transform: translate(100%, -50%);
-	// -ms-transform: translate(100%, -50%);
-	// transform: translate(100%, -50%);
-	z-index: 9;
-	cursor: pointer;
-	display: -webkit-box;
-	display: -ms-flexbox;
-	display: flex;
-	-webkit-box-align: center;
-	-ms-flex-align: center;
-	align-items: center;
-	-webkit-box-pack: center;
-	-ms-flex-pack: center;
-	justify-content: center;
-	padding: 0 3px;
-	border-radius: 5px 5px 0px;
-}
+
 .layout-logo-medium-img {
 	width: 28px;
 	margin-right: 7px;
@@ -159,7 +188,6 @@
 		.homeBox {
 			font-size: 14px;
 			line-height: 18px;
-			overflow-y: auto;
 		}
 		.declare {
 			position: absolute;
@@ -174,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