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 | 157 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 125 insertions(+), 32 deletions(-) diff --git a/src/views/project/ch/home/Home.vue b/src/views/project/ch/home/Home.vue index dfc939e..28ba091 100644 --- a/src/views/project/ch/home/Home.vue +++ b/src/views/project/ch/home/Home.vue @@ -1,27 +1,25 @@ <template> - <div class="pc-chat_room"> + <div class="pc-chat_room h-full"> <div class="flex h100 w100"> - <div class="pc-chat_aside"> - <div class="aside_top"> - <div class="logo"> - <div class="flex items-center"> - <img src="/static/images/logo/logo-mini.svg" alt="logo" class="layout-logo-medium-img" /> - <span class="font-extrabold text-xl text-white tracking-wide">姘村姟 AI骞冲彴</span> - </div> - </div> - </div> - <div class="aside_center"></div> - <div class="aside_bottom"> - <asideTitle /> - </div> - </div> <div class="pc-chat_right"> - <waterHeader /> - <div class="w100 h100 overflow-auto"> + <div class="w100 h100 overflow-hidden"> <div class="pc-chatRoom w100 h100"> - <div class="homeBox w100 h100"> - <waterTop /> + <div class="homeBox w100 h-full"> + <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> + + <CustomDrawer v-model:isShow="state.isShowAdvanceExample" ref="customDrawerRef" @updateChatInput="updateChatInput" /> + </div> </div> + <!-- <p class="declare"> + <span + >澹版槑锛氭湰骞冲彴浠呮彁渚涙按鍔℃櫤鑳藉寲鏈嶅姟锛屼笉鎻愪緵浠讳綍褰㈠紡鐨勬硶寰嬫垨娉曡寤鸿锛岃鐢ㄦ埛鑷鍒ゆ柇浣跨敤椋庨櫓锛屽苟鑷鎵挎媴鍥犱娇鐢ㄦ湰骞冲彴鑰屼骇鐢熺殑娉曞緥璐d换銆�</span + > + </p> --> </div> </div> </div> @@ -30,21 +28,100 @@ </template> <script setup lang="ts"> -import asideTitle from './component/waterLeftAside/asideTitle.vue'; -import waterHeader from './component/waterRight/header.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, +}); +// 寮曞姝ラ + +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; + if (status) { + customDrawerRef.value.getTableData(); + } +}; +//鑾峰彇妯$増鍒楄〃 + +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 { - width: 100vw; - height: 100vh; margin: 0; padding: 0; - overflow: hidden; - -webkit-box-sizing: border-box; - box-sizing: border-box; - background-color: #1c1e1d; - font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; } .pc-chat_aside { width: 252px !important; @@ -65,6 +142,7 @@ width: 100%; padding: 18px; } + .layout-logo-medium-img { width: 28px; margin-right: 7px; @@ -93,8 +171,6 @@ padding: 0; background: linear-gradient(180deg, #f5f4f6 0, #f2f2f6 25%, #e9edf7); position: relative; - margin: 6px; - border-radius: 10px; display: block; flex: 1; -ms-flex-preferred-size: auto; @@ -110,11 +186,28 @@ background-color: #f2f4f8; transition: padding-right 0.25s; .homeBox { - padding: 42px 40px 0; font-size: 14px; line-height: 18px; - box-sizing: border-box; + } + .declare { + position: absolute; + bottom: 0; + z-index: 9; + width: 100%; + height: 34px; + font-size: 14px; + font-weight: 400; + color: #999; + text-align: center; } } } +: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