From cabc1ce19c57a7c7388502952eaaafd558363145 Mon Sep 17 00:00:00 2001 From: 杨磊 <505174330@qq.com> Date: 星期五, 22 八月 2025 18:18:51 +0800 Subject: [PATCH] 数字教材相关 --- src/layout/components/headerPage.vue | 116 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 74 insertions(+), 42 deletions(-) diff --git a/src/layout/components/headerPage.vue b/src/layout/components/headerPage.vue index c1664cb..1a793ca 100644 --- a/src/layout/components/headerPage.vue +++ b/src/layout/components/headerPage.vue @@ -15,7 +15,7 @@ </div> <div class="searchBox" v-show="!hideSerch"> <el-input - style="width: 500px" + style="width: 500px; height: 50px" placeholder="璇疯緭鍏ュ唴瀹�" @change="gotoSearch" v-model="searchKey" @@ -27,44 +27,37 @@ <a @click=" () => { - $router.push({ - path: '/register', - }) + console.log(loginRef.value) + loginRef.logIn() } " - >娉ㄥ唽</a - > - | - <a - @click=" - () => { - $router.push({ - path: '/login', - query: { - redirectPath: $route.fullPath, - }, - }) - } - " - >鐧诲綍</a + >娉ㄥ唽/鐧诲綍</a > </div> <div v-else class="userInfoBox"> <el-dropdown @command="handleCommand"> - <span style="cursor: pointer">娆㈣繋鎮紝{{ userInfo.name }}锛�</span> - <el-dropdown-menu slot="dropdown"> - <el-dropdown-item icon="el-icon-user" command="gotoPersonalCenter" - >涓汉涓績</el-dropdown-item - > - <el-dropdown-item icon="el-icon-switch-button" command="logout" - >閫�鍑虹櫥褰�</el-dropdown-item - > - </el-dropdown-menu> + <span class="el-dropdown-link"> + 娆㈣繋鎮紝{{ userStore?.userInfo.name }}锛� + <el-icon class="el-icon--right"> + <arrow-down /> + </el-icon> + </span> + <template #dropdown> + <el-dropdown-menu> + <el-dropdown-item icon="el-icon-user" command="gotoPersonalCenter" + >涓汉涓績</el-dropdown-item + > + <el-dropdown-item icon="el-icon-switch-button" command="logout" + >閫�鍑虹櫥褰�</el-dropdown-item + > + </el-dropdown-menu> + </template> </el-dropdown> </div> </div> </div> </div> + <login ref="loginRef"></login> <div class="contentBox navBox" v-show="!hideNav"> <div :class="{ @@ -82,8 +75,15 @@ </template> <script setup lang="ts"> -import { ref } from 'vue' +import login from './login.vue' +import { onMounted, ref } from 'vue' +import { Search } from '@element-plus/icons-vue' +import { useUserStore } from '@/store' +import { useRouter } from 'vue-router' +const userStore = useUserStore() +const router = useRouter() +const loginRef = ref() const props = defineProps({ hideSerch: { type: Boolean, @@ -97,9 +97,47 @@ let searchKey = ref('') let userInfo = ref('') +const navData = ref([ + { + name: '棣栭〉', + path: '/home', + }, + { + name: '鏁欒偛鍑虹増', + path: '/bookStore', + }, + { + name: '璇昏�呮湇鍔�', + path: '/teachingServices', + }, + { + name: '鍏充簬鎴戜滑', + path: '/aboutUs', + }, +]) + +onMounted(() => { + userInfo.value = userStore.userInfo + console.log(userInfo.value, 'userInfo') +}) const gotoSearch = () => {} -const handleCommand = () => {} +const handleCommand = (item) => { + if (item === 'gotoPersonalCenter') { + router.push({ + path: '/personalCenter', + }) + } + if (item === 'logout') { + localStorage.clear() + router.push({ + path: '/home', + }) + } +} +const gotoPage = (item) => { + router.push(item.path) +} </script> <style lang="less" scoped> @@ -115,17 +153,11 @@ p { float: left; } - .loginInfoBox { - float: right; - .loginBtnBox { - a { - cursor: pointer; - text-decoration: none; - color: inherit; - margin: 0 4px; - } - } - } + } + + .loginInfoBox { + width: 200px; + margin-left: 20px; } .logoBox { padding: 25px 0; @@ -143,9 +175,9 @@ width: 670px; float: right; padding-right: 10px; - line-height: 66px; display: flex; justify-content: space-between; + align-items: center; .searchItem { width: 120px; vertical-align: initial; -- Gitblit v1.9.1