From 16064d395121113d9a68fed1b83612b60385b282 Mon Sep 17 00:00:00 2001
From: Gary Gu <garygu@Garydebijibendiannao.local>
Date: Tue, 27 May 2025 15:20:44 +0800
Subject: [PATCH] feat: 增加标段下拉

---
 src/components/Header.vue |  161 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 100 insertions(+), 61 deletions(-)

diff --git a/src/components/Header.vue b/src/components/Header.vue
index f9625c4..3fc3799 100644
--- a/src/components/Header.vue
+++ b/src/components/Header.vue
@@ -8,40 +8,50 @@
 -->
 <template>
   <header class="headerWrapper">
-    <div class="relative z-[100] w-full h-[80px]" :style="{
-      backgroundImage: `url(${backgroundImage})`,
-      backgroundRepeat: 'no-repeat',
-      backgroundPosition: 'center center',
-      backgroundSize: '100% 100%'
-    }">
-      <div class="absolute top-0 left-1/2 -translate-x-1/2 h-full px-[16px] flex items-center justify-between tabWrapper" >
+    <div
+      class="relative z-[100] w-full h-[80px]"
+      :style="{
+        backgroundImage: `url(${backgroundImage})`,
+        backgroundRepeat: 'no-repeat',
+        backgroundPosition: 'center center',
+        backgroundSize: '100% 100%',
+      }"
+    >
+      <div class="absolute top-0 left-1/2 -translate-x-1/2 h-full px-[16px] flex items-center justify-between tabWrapper">
         <div class="flex flex-col items-center cursor-pointer relative" @click="onHomeClick('home')">
           <div class="flex items-center">
-            <img class="w-[20px] h-[20px]" :src="getImageUrl(activeTab === 'home' ? 'home_active.png' : 'home.png')" alt="">
-            <div class="text-[20px] text-[#C8C8C8] ml-[8px]" :class="{'text-[#FFBF00]': activeTab === 'home'}">项目首页</div>
+            <img class="w-[20px] h-[20px]" :src="getImageUrl(activeTab === 'home' ? 'home_active.png' : 'home.png')" alt="" />
+            <div class="text-[20px] text-[#C8C8C8] ml-[8px]" :class="{ 'text-[#FFBF00]': activeTab === 'home' }">项目首页</div>
           </div>
-          <img class="w-[116px] h-[8px] absolute bottom-[-4px]" :src="getImageUrl('home_line.png')" alt="" v-if="activeTab === 'home'">
+          <img class="w-[116px] h-[8px] absolute bottom-[-4px]" :src="getImageUrl('home_line.png')" alt="" v-if="activeTab === 'home'" />
         </div>
         <div class="flex flex-col items-center ml-[78px] cursor-pointer relative" @click="onHomeClick('xietong')">
           <div class="flex items-center">
-            <img class="w-[20px] h-[20px]" :src="getImageUrl(activeTab === 'xietong' ? 'xietong_active.png' : 'xietong.png')" alt="">
-            <div class="text-[20px] text-[#C8C8C8] ml-[8px]" :class="{'text-[#FFBF00]': activeTab === 'xietong'}">协同平台</div>
+            <img class="w-[20px] h-[20px]" :src="getImageUrl(activeTab === 'xietong' ? 'xietong_active.png' : 'xietong.png')" alt="" />
+            <div class="text-[20px] text-[#C8C8C8] ml-[8px]" :class="{ 'text-[#FFBF00]': activeTab === 'xietong' }">协同平台</div>
           </div>
-          <img class="w-[116px] h-[8px] absolute bottom-[-4px]" :src="getImageUrl('home_line.png')" alt="" v-if="activeTab === 'xietong'">
+          <img class="w-[116px] h-[8px] absolute bottom-[-4px]" :src="getImageUrl('home_line.png')" alt="" v-if="activeTab === 'xietong'" />
         </div>
 
         <div class="flex flex-col items-center ml-[78px] cursor-pointer relative" @click="onHomeClick('zhihui')">
           <div class="flex items-center">
-            <img class="w-[20px] h-[20px]" :src="getImageUrl(activeTab === 'zhihui' ? 'zhihui_active.png' : 'zhihui.png')" alt="">
-            <div class="text-[20px] text-[#C8C8C8] ml-[8px]" :class="{'text-[#FFBF00]': activeTab === 'zhihui'}">智慧工地</div>
+            <img class="w-[20px] h-[20px]" :src="getImageUrl(activeTab === 'zhihui' ? 'zhihui_active.png' : 'zhihui.png')" alt="" />
+            <div class="text-[20px] text-[#C8C8C8] ml-[8px]" :class="{ 'text-[#FFBF00]': activeTab === 'zhihui' }">智慧工地</div>
           </div>
-          <img class="w-[116px] h-[8px] absolute bottom-[-4px]" :src="getImageUrl('home_line.png')" alt="" v-if="activeTab === 'zhihui'">
+          <img class="w-[116px] h-[8px] absolute bottom-[-4px]" :src="getImageUrl('home_line.png')" alt="" v-if="activeTab === 'zhihui'" />
         </div>
       </div>
       <div class="absolute top-0 right-0">
         <div class="flex items-center h-[80px] mr-[20px]">
-          <i class="el-icon-full-screen cursor-pointer text-[#00FFFF] text-[24px]" @click="handleFullscreen" :title="$fullscreen.isFullscreen ? '退出全屏' : '全屏'"></i>
-          <img class="w-[20px] h-[20px] ml-[8px]" :src="getImageUrl('time.png')" alt="">
+          <el-select v-model="projectSelected" placeholder="请选择" class="mr-[24px]">
+            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
+          <i
+            class="el-icon-full-screen cursor-pointer text-[#00FFFF] text-[24px]"
+            @click="handleFullscreen"
+            :title="$fullscreen.isFullscreen ? '退出全屏' : '全屏'"
+          ></i>
+          <img class="w-[20px] h-[20px] ml-[8px]" :src="getImageUrl('time.png')" alt="" />
           <div class="text-[24px] text-[#FFBF00] ml-[8px]">{{ currentTime }}</div>
           <div class="text-[16px] text-[#C8C8C8] ml-[20px]">{{ currentDate }}</div>
         </div>
@@ -51,20 +61,9 @@
 </template>
 
 <script>
-
   export default {
     name: "AppHeader",
-    components: {
-    },
-    data() {
-      return {
-        activeTab: 'home',
-        currentTime: '',
-        currentDate: '',
-        timer: null,
-        backgroundImage: new URL('@/assets/images/backgrounds/logo.png', import.meta.url).href
-      }
-    },
+    components: {},
     props: {
       selectedId: {
         type: String,
@@ -75,35 +74,20 @@
         default: () => [],
       },
     },
-    methods: {
-      handleFullscreen() {
-        if (this.$fullscreen.isFullscreen) {
-          this.$fullscreen.exit()
-        } else {
-          this.$fullscreen.request()
-        }
-      },
-      getImageUrl(name) {
-        return new URL(`../assets/images/backgrounds/${name}`, import.meta.url).href
-      },
-      onHomeClick(tab) {
-        this.activeTab = tab;
-        this.$emit("onHomeClick", tab);
-      },
-      updateTime() {
-        const now = new Date();
-        const hours = String(now.getHours()).padStart(2, '0');
-        const minutes = String(now.getMinutes()).padStart(2, '0');
-        const seconds = String(now.getSeconds()).padStart(2, '0');
-        this.currentTime = `${hours}:${minutes}:${seconds}`;
-
-        const year = now.getFullYear();
-        const month = String(now.getMonth() + 1).padStart(2, '0');
-        const day = String(now.getDate()).padStart(2, '0');
-        const weekDays = ['日', '一', '二', '三', '四', '五', '六'];
-        const weekDay = weekDays[now.getDay()];
-        this.currentDate = `${year}.${month}.${day} 星期${weekDay}`;
-      }
+    data() {
+      return {
+        projectSelected: "",
+        options: [
+          { value: "project1", label: "项目1" },
+          { value: "project2", label: "项目2" },
+          { value: "project3", label: "项目3" },
+        ],
+        activeTab: "home",
+        currentTime: "",
+        currentDate: "",
+        timer: null,
+        backgroundImage: new URL("@/assets/images/backgrounds/logo.png", import.meta.url).href,
+      };
     },
     mounted() {
       this.updateTime();
@@ -113,11 +97,66 @@
       if (this.timer) {
         clearInterval(this.timer);
       }
-    }
+    },
+    methods: {
+      handleFullscreen() {
+        if (this.$fullscreen.isFullscreen) {
+          this.$fullscreen.exit();
+        } else {
+          this.$fullscreen.request();
+        }
+      },
+      getImageUrl(name) {
+        return new URL(`../assets/images/backgrounds/${name}`, import.meta.url).href;
+      },
+      onHomeClick(tab) {
+        this.activeTab = tab;
+        this.$emit("onHomeClick", tab);
+      },
+      updateTime() {
+        const now = new Date();
+        const hours = String(now.getHours()).padStart(2, "0");
+        const minutes = String(now.getMinutes()).padStart(2, "0");
+        const seconds = String(now.getSeconds()).padStart(2, "0");
+        this.currentTime = `${hours}:${minutes}:${seconds}`;
+
+        const year = now.getFullYear();
+        const month = String(now.getMonth() + 1).padStart(2, "0");
+        const day = String(now.getDate()).padStart(2, "0");
+        const weekDays = ["日", "一", "二", "三", "四", "五", "六"];
+        const weekDay = weekDays[now.getDay()];
+        this.currentDate = `${year}.${month}.${day} 星期${weekDay}`;
+      },
+    },
   };
 </script>
 <style lang="scss" scoped>
   .tabWrapper {
     margin-left: 150px;
   }
-  </style>
+  ::v-deep(.el-select) {
+    width: 160px;
+    height: 28px;
+    background: rgba(33,72,115,0.9);
+    border-radius: 2px;
+    .el-input {
+      align-items: center;
+      display: flex;
+      height: 28px;
+      .el-input__inner {
+        height: 28px;
+        font-family: PingFangSC, PingFang SC;
+        font-weight: 400;
+        font-size: 14px;
+        color: #ffffff;
+        line-height: 20px;
+        text-align: left;
+        font-style: normal;
+      }
+      .el-input__suffix {
+        align-items: center;
+        display: flex;
+      }
+    }
+  }
+</style>

--
Gitblit v1.9.3