From bc751a2672c7c16b441b83b56e1a0b24703c3c0e Mon Sep 17 00:00:00 2001 From: yangyin <1850366751@qq.com> Date: 星期三, 20 十一月 2024 14:07:38 +0800 Subject: [PATCH] 提交注释 --- src/views/project/ch/home/Home.vue | 130 ++++++++++++++++++++++++------------------- 1 files changed, 73 insertions(+), 57 deletions(-) diff --git a/src/views/project/ch/home/Home.vue b/src/views/project/ch/home/Home.vue index eb9b609..9c66049 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" /> </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,83 @@ </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 } 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 { 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: '榛樿涓轰笟鍔″満鏅�' } }, + { element: '.pc-scenes', popover: { title: '2.璇烽�夋嫨娆″満鏅�', description: '榛樿涓哄畼缃戝伐鍗�', side: 'left' } }, + { 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 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) => { + console.log('馃殌 ~ tag:', tag); + nextTick(() => { + console.log('馃殌 ~ 榛樿閫変腑绗竴涓満鏅�:', 111); + 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) => { + resolve(true); + }); + emitter.on('isShowHomePage', showGuide); +}); + +onUnmounted(() => { + emitter.off('isShowHomePage', showGuide); +}); </script> <style scoped lang="scss"> .pc-chat_room { @@ -90,30 +130,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 +176,6 @@ .homeBox { font-size: 14px; line-height: 18px; - overflow-y: auto; } .declare { position: absolute; -- Gitblit v1.9.3