tj
2025-04-30 da19a22d2422e6cc0c60047136670703815d8976
src/components/HeaderMenu.vue
@@ -5,36 +5,37 @@
          <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"
        >
      <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">
        <!-- <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> -->
        <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>
@@ -47,26 +48,33 @@
  </template>
  
  <script setup>
  import { useRouter } from "vue-router";
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) => {
    // console.log('选中菜单:', index);
    if(path === '/logo'){
        router.push('/');
    }else if(path === '/about'){
        router.push({path:'/',hash:'#third-other'});
    }
    else{
  if (path.includes('#')) {
    const [basePath, hash] = path.split('#');
    router.push({ path: basePath, hash: `#${hash}` });
  } else {
        router.push(path);
    }
};
  </script>
@@ -115,4 +123,23 @@
    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>