tanghaolin
2025-02-14 c3e1f5cbc66bd2d3661edd8ffec890cf7f533638
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<template>
    <header class="bg-white shadow-sm flex items-center">
        <div class="flex w-full">
            <div class="flex items-center h-20 mx-auto">
                <!-- Logo -->
                <div class="flex items-center cursor-pointer">
                    <router-link to="/">
                        <img :src="headerLogo" alt="Logo" class="h-20 w-auto" />
                    </router-link>
                    <!-- <span class="text-extra-large font-bold">工业大数据平台</span> -->
                </div>
 
                <!-- Navigation Menu -->
                <nav class="flex ml-8">
                    <el-menu mode="horizontal" :ellipsis="false" class="border-none" router :default-active="activeRoute">
                        <el-menu-item index="/home" class="!px-4">首页</el-menu-item>
                        <el-menu-item index="/certified-products" class="!px-4">认证产品</el-menu-item>
                        <el-menu-item index="/eec-label-search" class="!px-4">证书查询</el-menu-item>
                        <el-menu-item index="/news-detail/99" class="!px-4">补贴政策</el-menu-item>
                        <el-menu-item class="!px-4" @click="linkClick(' http://www.xpump.net/web/#/CN/Index')">查泵网</el-menu-item>
                    </el-menu>
                </nav>
 
                <!-- Search and User Actions -->
                <div class="flex items-center space-x-8 ml-[65px]">
                    <el-input v-model="searchQuery" placeholder="查证书" class="w-48">
                        <template #suffix>
                            <el-icon class="cursor-pointer" @click="handleSearch"><Search /></el-icon>
                        </template>
                    </el-input>
 
                    <div class="flex items-center text-gray-600 text-sm text-nowrap">
                        <template v-if="!userInfo">
                            <a href="#" class="hover:text-blue-500">注册</a>
                            <span class="mx-2">·</span>
                            <router-link to="/login" class="hover:text-blue-500">登录</router-link>
                        </template>
                        <template v-else>
                            <span class="text-blue-500 mr-2">{{ userInfo.username }}</span>
                            <a href="#" class="hover:text-blue-500" @click.prevent="handleLogout">退出</a>
                        </template>
                    </div>
                </div>
            </div>
        </div>
    </header>
</template>
 
<script setup lang="ts">
import headerLogo from '@/assets/logo/header_logo.png';
import { Search } from '@element-plus/icons-vue';
import { ElMessage } from 'element-plus';
import { computed, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
 
const route = useRoute();
const router = useRouter();
const searchQuery = ref('');
const handleSearch = () => {
    if (!searchQuery.value) {
        searchQuery.value = '查证书';
    }
    router.push(`/eec-label-search`);
};
const activeRoute = computed(() => route.path);
 
// 获取用户信息
const userInfo = computed(() => {
    const info = localStorage.getItem('userInfo');
    return info ? JSON.parse(info) : null;
});
 
// 处理登出
const handleLogout = () => {
    localStorage.removeItem('userInfo');
    ElMessage.success('已退出登录');
    router.push('/login');
};
 
const linkClick = (url) => {
    window.open(url, '_blank');
};
</script>
 
<style scoped>
:deep(.el-menu--horizontal .el-menu-item) {
    height: 64px;
    line-height: 64px;
    font-size: 14px;
}
 
:deep(.el-menu--horizontal) {
    border-bottom: none;
}
</style>