From aa05d8fde287821e50e3116242da1dfa19b5f898 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 06 三月 2026 10:03:39 +0800
Subject: [PATCH] 最新版本541200007最新版本541200007

---
 admin/src/components/common/CommonHeader.vue |   67 +++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 24 deletions(-)

diff --git a/admin/src/components/common/CommonHeader.vue b/admin/src/components/common/CommonHeader.vue
index 0553908..8773c62 100644
--- a/admin/src/components/common/CommonHeader.vue
+++ b/admin/src/components/common/CommonHeader.vue
@@ -2,7 +2,7 @@
   <div class="common-header">
     <div class="header">
       <div class="logo">
-        <div class="title"> <img src="@/assets/system.png" alt="" />{{ title }}</div>
+        <div class="title"> <img src="@/assets/system.png" alt="" />{{sysConfig.subtitle || title }}</div>
         <div class="list">
             <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>
@@ -65,7 +65,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> -->
@@ -81,7 +81,7 @@
 <script>
 import { mapState, mapMutations } from 'vuex'
 import GlobalAlertWindow from './GlobalAlertWindow'
-import { logout, updatePwd } from '@/api/system/common'
+import { getSystemConfig, logout, updatePwd } from '@/api/system/common'
 import { getAppHeaderNav } from '@/api'
 export default {
   name: 'CommonHeader',
@@ -96,7 +96,6 @@
     return {
       title: process.env.VUE_APP_TITLE,
       headerNavData: {},
-      currentIndex: 0,
       visible: {
         // 淇敼瀵嗙爜
         changePwd: false
@@ -129,13 +128,13 @@
     }
   },
   computed: {
-    ...mapState(['menuData', 'userInfo', 'topMenuList'])
+    ...mapState(['menuData', 'userInfo', 'topMenuList', 'currentIndex', 'sysConfig'])
     // title () {
     //   return this.$route.meta.title
     // }
   },
   created () {
-
+    this.getSystemConfig()
   },
   mounted () {
     // needChangePwd 0 : 榛樿瀵嗙爜闇�瑕佷慨鏀癸紝1 涓嶉渶瑕�
@@ -156,7 +155,7 @@
     }
   },
   methods: {
-    ...mapMutations(['setUserInfo', 'switchCollapseMenu', 'clearUserInfo', 'setTopMenuCurrent']),
+    ...mapMutations(['setUserInfo', 'switchCollapseMenu', 'clearUserInfo', 'setTopMenuCurrent', 'setCurrentIndex', 'setSysconfig']),
     // 淇敼瀵嗙爜
     changePwd () {
       this.visible.changePwd = true
@@ -164,31 +163,51 @@
         this.$refs.changePwdDataForm.resetFields()
       })
     },
+    getSystemConfig () {
+      if (!this.sysConfig.subTitle) {
+        getSystemConfig()
+          .then((res) => {
+            if (res && res.subtitle) {
+              this.setSysconfig(res)
+            }
+          })
+      }
+    },
     validatePassword (rule, value, callback) {
       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,index) {
-      this.currentIndex = index
-      if(item.linkType === 0){
+    getHeaderNav (item, index) {
+      this.setCurrentIndex(index)
+      if (item.linkType === 0) {
         this.setTopMenuCurrent(item)
-      }else{
+      } else {
         if (item.url && item.url === 'goHKAF' && item.params != null) {
           this.getHKAFHeaderNav(item.params, item.label)
         } else if (item.url && item.url.indexOf('http') === 0) {
@@ -199,7 +218,7 @@
     getHKAFHeaderNav (type, label) {
       getAppHeaderNav(type).then(res => {
         if (label === '瀹夐槻涓績') {
-          let openWindow = window.open(res, '_blank')
+          const openWindow = window.open(res, '_blank')
           // setTimeout(() => {
           //   openWindow.close()
           // }, 7 * 1000)

--
Gitblit v1.9.3