From 6e61b49f9cddbda65bad95af5d6300265384c37f Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 28 十月 2025 09:28:35 +0800
Subject: [PATCH] 页面

---
 admin/src/components/common/CommonHeader.vue |  113 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 61 insertions(+), 52 deletions(-)

diff --git a/admin/src/components/common/CommonHeader.vue b/admin/src/components/common/CommonHeader.vue
index 2e95744..7b28a6b 100644
--- a/admin/src/components/common/CommonHeader.vue
+++ b/admin/src/components/common/CommonHeader.vue
@@ -4,19 +4,10 @@
       <div class="logo">
         <div class="title">{{ title }}</div>
         <div class="list">
-          <div class="item active">
-            <div>鏈嶅姟涓績</div>
-            <div class="linellae"></div>
-          </div>
-          <div  class="item" v-for="(item,index) in topMenuList.list" :key="item.id"  @click="getHeaderNav(item)" :index="index">{{item.label}}</div>
-<!--          <div class="item" @click="getHeaderNav('0')">瀹夐槻涓績</div>
-          <div class="item" @click="getHeaderNav('1')">娑堟帶涓績</div>
-          <div class="item" @click="getHeaderNav('2')">鑳界涓績</div>
-          <div class="item" @click="getHeaderNav('7')">鍚庡嫟涓績</div>
-          <div class="item" @click="getHeaderNav('3')">椹鹃┒鑸�</div>-->
-          <!-- <div class="item" @click="handleTest">娴嬭瘯</div> -->
+            <div  :class="index==currentIndex?'item active':'item'" v-for="(item,index) in topMenuList.list" :key="item.id"  @click="getHeaderNav(item,index)" :index="index">{{item.label}}
+              <div v-if="index==currentIndex" class="linellae"></div>
+            </div>
         </div>
-        <!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> -->
       </div>
       <div class="user">
         <el-dropdown v-if="isLogined" trigger="click">
@@ -44,7 +35,7 @@
             show-password></el-input>
         </el-form-item>
         <el-form-item label="鏂板瘑鐮�" prop="newPwd" required>
-          <el-input v-model="changePwdData.form.newPwd" type="password" placeholder="璇疯緭鍏ユ柊瀵嗙爜锛屽瘑鐮侀渶鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ"
+          <el-input v-model="changePwdData.form.newPwd" type="password" placeholder="璇疯緭鍏ユ柊瀵嗙爜锛岃嚦灏戝寘鎷暟瀛椼�佸ぇ鍐欏瓧姣嶃�佸皬鍐欏瓧姣嶃�佺壒娈婂瓧绗︿腑鐨勪笁绉嶅瓧绗︼紝涓旇嚦灏�8浣嶆暟"
             maxlength="20" show-password></el-input>
         </el-form-item>
         <!-- <div style="font-size: 12px;color:#999999">瀵嗙爜闇�鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ</div> -->
@@ -75,6 +66,7 @@
     return {
       title: process.env.VUE_APP_TITLE,
       headerNavData: {},
+      currentIndex: 0,
       visible: {
         // 淇敼瀵嗙爜
         changePwd: false
@@ -134,7 +126,7 @@
     }
   },
   methods: {
-    ...mapMutations(['setUserInfo', 'switchCollapseMenu', 'clearUserInfo']),
+    ...mapMutations(['setUserInfo', 'switchCollapseMenu', 'clearUserInfo', 'setTopMenuCurrent']),
     // 淇敼瀵嗙爜
     changePwd () {
       this.visible.changePwd = true
@@ -146,27 +138,42 @@
       if (!value) {
         callback(new Error('璇疯緭鍏ュ瘑鐮�'))
       } else {
-        const lengthValid = /^.{6,20}$/.test(value)
-        const hasLetter = /[a-zA-Z]/.test(value)
-        const hasNumber = /[0-9]/.test(value)
-        const hasSpecial = /[!@#$%^&*(),.?":{}|<>]/.test(value)
-
-        const typesCount = [hasLetter, hasNumber, hasSpecial].filter(Boolean).length
-
-        if (!lengthValid) {
-          callback(new Error('瀵嗙爜闀垮害闇�涓�6鍒�20涓瓧绗�'))
-        } else if (typesCount < 2) {
-          callback(new Error('瀵嗙爜闇�鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ'))
+        // const lengthValid = /^.{6,20}$/.test(value)
+        // const hasLetter = /[a-zA-Z]/.test(value)
+        // const hasNumber = /[0-9]/.test(value)
+        // const hasSpecial = /[!@#$%^&*(),.?":{}|<>]/.test(value)
+        //
+        // const typesCount = [hasLetter, hasNumber, hasSpecial].filter(Boolean).length
+        //
+        // if (!lengthValid) {
+        //   callback(new Error('瀵嗙爜闀垮害闇�涓�6鍒�20涓瓧绗�'))
+        // } else if (typesCount < 2) {
+        //   callback(new Error('瀵嗙爜闇�鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ'))
+        // } else {
+        //   callback() // 楠岃瘉閫氳繃
+        // }
+        let typeCount = 0;
+        if (/[a-z]/.test(value)) typeCount++; // 灏忓啓瀛楁瘝
+        if (/[A-Z]/.test(value)) typeCount++; // 澶у啓瀛楁瘝
+        if (/\d/.test(value)) typeCount++;    // 鏁板瓧
+        if (/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(value)) typeCount++; // 鐗规畩瀛楃
+        if (typeCount >= 3) {
+          callback()
         } else {
-          callback() // 楠岃瘉閫氳繃
+          callback(new Error('鑷冲皯鍖呮嫭鏁板瓧銆佸ぇ鍐欏瓧姣嶃�佸皬鍐欏瓧姣嶃�佺壒娈婂瓧绗︿腑鐨勪笁绉嶅瓧绗︼紝涓旇嚦灏�8浣嶆暟'))
         }
       }
     },
-    getHeaderNav (item) {
-      if (item.url && item.url === 'goHKAF' && item.params != null) {
-        this.getHKAFHeaderNav(item.params)
-      } else if (item.url && item.url.indexOf('http') === 0) {
-        window.open(item.url, '_blank')
+    getHeaderNav (item,index) {
+      this.currentIndex = index
+      if(item.linkType === 0){
+        this.setTopMenuCurrent(item)
+      }else{
+        if (item.url && item.url === 'goHKAF' && item.params != null) {
+          this.getHKAFHeaderNav(item.params)
+        } else if (item.url && item.url.indexOf('http') === 0) {
+          window.open(item.url, '_blank')
+        }
       }
     },
     getHKAFHeaderNav (type) {
@@ -295,31 +302,32 @@
 
 .list {
   flex: 1;
-  display: flex;
-  align-items: center;
   margin-left: 60px;
-
-  .item {
-    margin-right: 40px;
-    font-size: 16px;
-    font-weight: 400;
+  margin-top: 10px;
     display: flex;
-    flex-direction: column;
     align-items: center;
-    justify-content: flex-start;
-    height: 40px;
-    cursor: pointer;
+    .item {
+      margin-right: 40px;
+      font-size: 16px;
+      font-weight: 400;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: flex-start;
+      height: 40px;
+      cursor: pointer;
 
-    .linellae {
-      width: 64px;
-      height: 2px;
-      background: #FFFFFF;
+      .linellae {
+        width: 64px;
+        height: 2px;
+        background: #FFFFFF;
+      }
     }
-  }
 
-  .active {
-    font-weight: 500;
-  }
+    .active {
+      font-weight: 500;
+    }
+
 }
 
 .header {
@@ -344,7 +352,8 @@
     align-items: center;
 
     .title {
-      width: 240px;
+      font-size: 18px;
+      width: 320px;
     }
 
     // display: inline;
@@ -356,7 +365,7 @@
   }
 
   .user {
-    width: 212px;
+    width: 152px;
     box-sizing: border-box;
     height: 56px;
     padding-right: 25px;

--
Gitblit v1.9.3