From da19a22d2422e6cc0c60047136670703815d8976 Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期三, 30 四月 2025 11:45:12 +0800
Subject: [PATCH] D:/devInstall/Git/about
---
src/pages/Home.vue | 11 +-
src/components/HeaderMenu.vue | 221 +++++++++++++++++++++++++++++++------------------------
src/router/index.ts | 2
3 files changed, 131 insertions(+), 103 deletions(-)
diff --git a/src/components/HeaderMenu.vue b/src/components/HeaderMenu.vue
index 03c9743..3342123 100644
--- a/src/components/HeaderMenu.vue
+++ b/src/components/HeaderMenu.vue
@@ -1,118 +1,145 @@
<template>
- <nav class="navbar navbar-expand-lg bg-light fixed-top">
- <div class="container-fluid">
- <a class="navbar-brand" href="#">
- <img src="@/assets/logo/logo.png" alt="云游四方" class="logo" />
- <span class="text-xl font-bold">云游四方</span>
- </a>
- <button
- class="navbar-toggler"
- type="button"
- data-bs-toggle="collapse"
- data-bs-target="#navbarNav"
- aria-controls="navbarNav"
- aria-expanded="false"
- aria-label="Toggle navigation"
- >
- <span class="navbar-toggler-icon"></span>
- </button>
- <div class="collapse navbar-collapse" id="navbarNav">
- <ul class="navbar-nav">
+ <nav class="navbar navbar-expand-lg bg-light fixed-top">
+ <div class="container-fluid">
+ <a class="navbar-brand" href="#">
+ <img src="@/assets/logo/logo.png" alt="云游四方" class="logo" />
+ <span class="text-xl font-bold">云游四方</span>
+ </a>
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
+ aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
+ <span class="navbar-toggler-icon"></span>
+ </button>
+ <div class="collapse navbar-collapse" id="navbarNav">
+ <!-- <ul class="navbar-nav">
<li class="nav-item">
<a
class="nav-link active"
aria-current="page"
href="#"
- @click="navigateTo('/')"
+ @click.prevent="navigateTo('/')"
>首页</a
>
</li>
<li class="nav-item">
- <a class="nav-link" href="#" @click="navigateTo('/product')"
+ <a class="nav-link" href="#" @click.prevent="navigateTo('/product')"
>产品中心</a
>
</li>
<li class="nav-item">
- <a class="nav-link" href="#" @click="navigateTo('/about')"
+ <a class="nav-link" href="#" @click.prevent="navigateTo('/about#third-other')"
>关于我们</a>
</li>
- </ul>
- </div>
- <div class="contact-phone d-none d-md-block">
- <img src="/icons/hotline.png" alt="电话" class="hot-line-img" />
- <span class="text-lg font-bold">13862676702</span>
- </div>
+ </ul> -->
+ <ul class="navbar-nav">
+ <li v-for="item in navItems" :key="item.label" class="nav-item">
+ <a class="nav-link" href="#" :class="{ active: isActive(item.path) }"
+ @click.prevent="navigateTo(item.path)">
+ {{ item.label }}
+ </a>
+ </li>
+ </ul>
</div>
- </nav>
- </template>
-
- <script setup>
- import { useRouter } from "vue-router";
-
- const router = useRouter();
-
- // Handle navigation for the menu items
- // const navigateTo = (path) => {
- // router.push(path);
- // };
+ <div class="contact-phone d-none d-md-block">
+ <img src="/icons/hotline.png" alt="电话" class="hot-line-img" />
+ <span class="text-lg font-bold">13862676702</span>
+ </div>
+ </div>
+ </nav>
+</template>
- const navigateTo = (path) => {
- // console.log('选中菜单:', index);
- if(path === '/logo'){
- router.push('/');
- }else if(path === '/about'){
- router.push({path:'/',hash:'#third-other'});
- }
- else{
- router.push(path);
- }
-
+<script setup>
+import { useRouter, useRoute } from "vue-router";
+
+const router = useRouter();
+const route = useRoute()
+
+const navItems = [
+ { label: '首页', path: '/' },
+ { label: '产品中心', path: '/product' },
+ { label: '关于我们', path: '/about#third-other' }
+];
+
+// Handle navigation for the menu items
+// const navigateTo = (path) => {
+// router.push(path);
+// };
+
+const isActive = (targetPath) => {
+ // 可根据需要改为更精确的匹配逻辑
+ return route.fullPath === targetPath || route.path === targetPath.split('#')[0];
+};
+const navigateTo = (path) => {
+ if (path.includes('#')) {
+ const [basePath, hash] = path.split('#');
+ router.push({ path: basePath, hash: `#${hash}` });
+ } else {
+ router.push(path);
+ }
};
- </script>
-
- <style scoped>
- .navbar {
- padding: 10px 20px;
- }
-
- .navbar-brand {
- display: flex;
- align-items: center;
- }
-
- .logo {
- width: 40px;
- height: 40px;
- margin-right: 10px;
- }
-
- .nav-link {
- font-size: 16px;
- }
-
- .contact-phone {
- display: flex;
- align-items: center;
- font-size: 14px;
- }
-
- .contact-phone .el-icon {
- margin-right: 5px;
- }
-
- .navbar-nav .nav-link {
- margin-right: 15px;
- }
-
- .fixed-top {
- z-index: 1000;
- }
+</script>
- .hot-line-img{
- width: 20px;
- height: 20px;
- margin-right: 5px;
- }
- </style>
-
\ No newline at end of file
+<style scoped>
+.navbar {
+ padding: 10px 20px;
+}
+
+.navbar-brand {
+ display: flex;
+ align-items: center;
+}
+
+.logo {
+ width: 40px;
+ height: 40px;
+ margin-right: 10px;
+}
+
+.nav-link {
+ font-size: 16px;
+}
+
+.contact-phone {
+ display: flex;
+ align-items: center;
+ font-size: 14px;
+}
+
+.contact-phone .el-icon {
+ margin-right: 5px;
+}
+
+.navbar-nav .nav-link {
+ margin-right: 15px;
+}
+
+.fixed-top {
+ z-index: 1000;
+}
+
+.hot-line-img {
+ width: 20px;
+ height: 20px;
+ margin-right: 5px;
+}
+</style>
+<style scoped>
+.navbar-nav .nav-link {
+ color: #000;
+ font-weight: normal;
+ padding: 10px 15px;
+ text-transform: uppercase;
+ transition: color 0.3s, background-color 0.3s;
+}
+
+.navbar-nav .nav-link:hover {
+ color: #007bff;
+}
+
+.navbar-nav .nav-link.active {
+ color: #007bff;
+ /* background-color: #007bff; */
+ font-weight: bold;
+ border-radius: 5px;
+}
+</style>
\ No newline at end of file
diff --git a/src/pages/Home.vue b/src/pages/Home.vue
index ec7a579..cc6a1a5 100644
--- a/src/pages/Home.vue
+++ b/src/pages/Home.vue
@@ -40,7 +40,7 @@
<div class="our-products-title mt-1 mt-md-3 w-100 p-2">
<h1 class="fs-3 fs-md-2 fs-lg-1">我们的产品</h1>
</div>
- <div style="width: 60%; margin: 0 auto;" class="d-none d-md-flex">
+ <div style="width: 70%; margin: 0 auto;" class="d-none d-md-flex">
<div id="carouselExample" class="carousel slide w-100 " data-bs-ride="carousel"
data-bs-interval="3000">
<div class="carousel-inner">
@@ -120,7 +120,7 @@
</div>
<!-- 公司相关信息 -->
- <div id="third-other" class="w-100 third-other" >
+ <div class="w-100" >
<div class="row flex-md-nowrap">
<!-- 第一列:占1份 -->
<div class="col-12 col-md-3 text-center text-md-left">
@@ -148,7 +148,7 @@
</div>
<!-- 第三列:占1份 -->
- <div class="col-12 col-md-3 text-center text-md-left">
+ <div id="third-other" class="col-12 col-md-3 text-center text-md-left">
<!-- 公司信息 -->
<div class="text-center my-5 text-dark fs-4">公司信息</div>
<div class="container text-center">
@@ -216,9 +216,10 @@
<script lang="ts" setup>
import { ref, onMounted, onBeforeUnmount ,nextTick} from 'vue'
import { CarouselItem, CooperativeClient, ProductCenter, CompanyInfo, Products, ProductGroup } from '@/models/portalModels';
-import { useRoute } from 'vue-router'
+import { useRoute, useRouter } from 'vue-router';
const route = useRoute()
+const router = useRouter();
// 创建数据列表
const items = ref<CarouselItem[]>([
@@ -287,7 +288,7 @@
// 初始化时设置高度
onMounted(() => {
-
+
updateCarouselHeight();
window.addEventListener('resize', updateCarouselHeight);
diff --git a/src/router/index.ts b/src/router/index.ts
index 25d14ca..bdf5a8b 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -9,7 +9,7 @@
{ path: '/', component: Home },
{ path: '/product', component: Product },
{ path: '/contact', component: Contact },
- { path: '/about', component: About },
+ { path: '/about',component: Home},
{
path: '/pdf-preview',
name: 'PdfPreview',
--
Gitblit v1.9.3