From 81a132f7b5d022e8d55dc1fefe2a7357f5bcbafa Mon Sep 17 00:00:00 2001 From: 杨磊 <505174330@qq.com> Date: 星期一, 25 八月 2025 15:22:27 +0800 Subject: [PATCH] 首页 --- src/layout/components/headerPage.vue | 64 ++++++++++++++++++++++++++----- 1 files changed, 53 insertions(+), 11 deletions(-) diff --git a/src/layout/components/headerPage.vue b/src/layout/components/headerPage.vue index b83decb..9a252cf 100644 --- a/src/layout/components/headerPage.vue +++ b/src/layout/components/headerPage.vue @@ -15,24 +15,27 @@ </div> <div class="searchBox" v-show="!hideSerch"> <el-input - style="width: 500px; height: 50px" + style="width: 500px; height: 36px" placeholder="璇疯緭鍏ュ唴瀹�" - @change="gotoSearch" v-model="searchKey" :suffix-icon="Search" + @keyup.enter="gotoSearch" > </el-input> <div class="loginInfoBox"> - <div v-if="!userInfo" class="loginBtnBox"> - <a + <div v-if="!userInfo" class="loginBtnBox" style="width: 200px"> + <div + class="loginBtn" @click=" () => { console.log(loginRef.value) loginRef.logIn() } " - >娉ㄥ唽/鐧诲綍</a > + <el-icon><UserFilled /></el-icon> + 娉ㄥ唽/鐧诲綍 + </div> </div> <div v-else class="userInfoBox"> <el-dropdown @command="handleCommand"> @@ -62,7 +65,8 @@ <div :class="{ navItem: true, - active: $route.fullPath.indexOf(item.path) > -1, + // active: $route.fullPath.indexOf(item.path) > -1, + active: item.pathList.findIndex((citem) => citem == $route.path) > -1, }" v-for="(item, index) in navData" :key="index" @@ -79,9 +83,12 @@ import { onMounted, provide, ref } from 'vue' import { Search, Avatar, SwitchButton } from '@element-plus/icons-vue' import { useUserStore } from '@/store' -import { useRouter } from 'vue-router' +import { useRouter, useRoute } from 'vue-router' +import { ElMessage } from 'element-plus' + const userStore = useUserStore() const router = useRouter() +const route = useRoute() const loginRef = ref() const props = defineProps({ @@ -101,27 +108,39 @@ { name: '棣栭〉', path: '/home', + pathList: ['/home', '/search'], }, { name: '鏁欒偛鍑虹増', path: '/bookStore', + pathList: ['/bookStore', '/bookdetail'], }, { name: '璇昏�呮湇鍔�', path: '/teachingServices', + pathList: ['/teachingServices'], }, { name: '鍏充簬鎴戜滑', path: '/aboutUs', + pathList: ['/aboutUs'], }, ]) onMounted(() => { userInfo.value = userStore.userInfo console.log(userInfo.value, 'userInfo') + console.log(route, 'route') }) -const gotoSearch = () => {} +const gotoSearch = () => { + router.push({ + path: '/search', + query: { + key: searchKey.value, + }, + }) +} const handleCommand = (item) => { if (item === 'gotoPersonalCenter') { router.push({ @@ -130,13 +149,22 @@ } if (item === 'logout') { localStorage.clear() + userStore.delteUserInfo() + userInfo.value = null router.push({ path: '/home', }) } } const gotoPage = (item) => { - router.push(item.path) + if (item.path === '/teachingServices') { + ElMessage({ + message: '寤鸿涓�...', + type: 'warning', + }) + } else { + router.push(item.path) + } } </script> @@ -144,7 +172,6 @@ .pageHeader { width: 100%; background-color: #fff; - border-bottom: 1px solid #e6e6e6; .topBar { background: #e6e6e6; color: #808080; @@ -158,6 +185,16 @@ .loginInfoBox { width: 200px; margin-left: 20px; + .loginBtn { + width: 100px; + background-color: #144941; + height: 36px; + line-height: 36px; + text-align: center; + border-radius: 20px; + color: #ffffff; + cursor: pointer; + } } .logoBox { padding: 25px 0; @@ -208,9 +245,14 @@ } } </style> -<style> +<style scoped> .pageHeader .searchBox .el-input-group__prepend { background: #fff; color: #444; } +::v-deep(.el-input__wrapper) { + border-radius: 50px !important; + height: 36px; + line-height: 36px; +} </style> -- Gitblit v1.9.1