From 9852b16ec51c85fd808dc68b75eadfebd117a27e Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 15 十月 2025 18:27:06 +0800
Subject: [PATCH] 最新版本541200007

---
 admin/src/components/common/CommonHeader.vue |  208 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 137 insertions(+), 71 deletions(-)

diff --git a/admin/src/components/common/CommonHeader.vue b/admin/src/components/common/CommonHeader.vue
index bae0e5b..2857921 100644
--- a/admin/src/components/common/CommonHeader.vue
+++ b/admin/src/components/common/CommonHeader.vue
@@ -4,16 +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" @click="getHeaderNav('0')">瀹夐槻涓績</div>
-          <div class="item" @click="getHeaderNav('1')">娑堟帶涓績</div>
-          <div class="item" @click="getHeaderNav('2')">鑳界涓績</div>
-          <div class="item" @click="getHeaderNav('3')">椹鹃┒鑸�</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">
@@ -31,29 +25,26 @@
       </div>
     </div>
     <!-- 淇敼瀵嗙爜 -->
-    <template v-if="editPsd">
-      <GlobalAlertWindow title="淇敼瀵嗙爜" :visible.sync="visible.changePwd"
-        :showClose="!userInfo.needChangePwd || userInfo.needChangePwd == '0'"
-        :showCancel="!userInfo.needChangePwd || userInfo.needChangePwd == '0'" @confirm="confirmChangePwd"
-        @close="visible.changePwd = false">
-        <el-form :model="changePwdData.form" ref="changePwdDataForm" :rules="changePwdData.rules">
-          <el-form-item label="鍘熷瀵嗙爜" prop="oldPwd" required>
-            <el-input v-model="changePwdData.form.oldPwd" type="password" placeholder="璇疯緭鍏ュ師濮嬪瘑鐮�" maxlength="30"
-              show-password></el-input>
-          </el-form-item>
-          <el-form-item label="鏂板瘑鐮�" prop="newPwd" required>
-            <el-input v-model="changePwdData.form.newPwd" type="password" placeholder="璇疯緭鍏ユ柊瀵嗙爜锛屽瘑鐮侀渶鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ"
-              maxlength="20" show-password></el-input>
-          </el-form-item>
-          <!-- <div style="font-size: 12px;color:#999999">瀵嗙爜闇�鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ</div> -->
-          <el-form-item label="纭鏂板瘑鐮�" prop="confirmPwd" required>
-            <el-input v-model="changePwdData.form.confirmPwd" type="password" placeholder="璇峰啀娆¤緭鍏ユ柊瀵嗙爜" maxlength="20"
-              show-password></el-input>
-          </el-form-item>
-        </el-form>
-      </GlobalAlertWindow>
-    </template>
-
+    <GlobalAlertWindow title="淇敼瀵嗙爜" :visible.sync="visible.changePwd"
+      :showClose="userInfo && (!userInfo.needChangePwd || userInfo.needChangePwd == '0')"
+      :showCancel="userInfo && (!userInfo.needChangePwd || userInfo.needChangePwd == '0')" @confirm="confirmChangePwd"
+      @close="visible.changePwd = false">
+      <el-form :model="changePwdData.form" ref="changePwdDataForm" :rules="changePwdData.rules">
+        <el-form-item label="鍘熷瀵嗙爜" prop="oldPwd" required>
+          <el-input v-model="changePwdData.form.oldPwd" type="password" placeholder="璇疯緭鍏ュ師濮嬪瘑鐮�" maxlength="30"
+            show-password></el-input>
+        </el-form-item>
+        <el-form-item label="鏂板瘑鐮�" prop="newPwd" required>
+          <el-input v-model="changePwdData.form.newPwd" type="password" placeholder="璇疯緭鍏ユ柊瀵嗙爜锛屽瘑鐮侀渶鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ"
+            maxlength="20" show-password></el-input>
+        </el-form-item>
+        <!-- <div style="font-size: 12px;color:#999999">瀵嗙爜闇�鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ</div> -->
+        <el-form-item label="纭鏂板瘑鐮�" prop="confirmPwd" required>
+          <el-input v-model="changePwdData.form.confirmPwd" type="password" placeholder="璇峰啀娆¤緭鍏ユ柊瀵嗙爜" maxlength="20"
+            show-password></el-input>
+        </el-form-item>
+      </el-form>
+    </GlobalAlertWindow>
   </div>
 </template>
 
@@ -71,11 +62,11 @@
       default: true
     }
   },
-  data() {
+  data () {
     return {
       title: process.env.VUE_APP_TITLE,
       headerNavData: {},
-      editPsd: false,
+      currentIndex: 0,
       visible: {
         // 淇敼瀵嗙爜
         changePwd: false
@@ -98,7 +89,7 @@
           ],
           newPwd: [
             { required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' },
-            { validator: this.validatePassword, trigger: 'blur' },
+            { validator: this.validatePassword, trigger: 'blur' }
           ],
           confirmPwd: [
             { required: true, message: '璇峰啀娆¤緭鍏ユ柊瀵嗙爜' }
@@ -108,23 +99,23 @@
     }
   },
   computed: {
-    ...mapState(['menuData', 'userInfo']),
+    ...mapState(['menuData', 'userInfo', 'topMenuList'])
     // title () {
     //   return this.$route.meta.title
     // }
   },
-  created() {
+  created () {
 
   },
-  mounted() {
-    // console.log('userInfo',this.userInfo);
-    if (!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0') {
+  mounted () {
+    // needChangePwd 0 : 榛樿瀵嗙爜闇�瑕佷慨鏀癸紝1 涓嶉渶瑕�
+    if (this.userInfo && (!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0')) {
       this.visible.changePwd = true
     }
   },
   filters: {
     // 灞曠ず鍚嶇О
-    displayName(userInfo) {
+    displayName (userInfo) {
       if (userInfo == null) {
         return ''
       }
@@ -135,17 +126,15 @@
     }
   },
   methods: {
-    ...mapMutations(['setUserInfo', 'switchCollapseMenu', 'clearUserInfo']),
+    ...mapMutations(['setUserInfo', 'switchCollapseMenu', 'clearUserInfo', 'setTopMenuCurrent']),
     // 淇敼瀵嗙爜
-    changePwd() {
-      this.$set(this.userInfo, 'needChangePwd', this.$store.state.userInfo.needChangePwd)
-      this.editPsd = true
+    changePwd () {
       this.visible.changePwd = true
       this.$nextTick(() => {
         this.$refs.changePwdDataForm.resetFields()
       })
     },
-    validatePassword(rule, value, callback) {
+    validatePassword (rule, value, callback) {
       if (!value) {
         callback(new Error('璇疯緭鍏ュ瘑鐮�'))
       } else {
@@ -165,13 +154,87 @@
         }
       }
     },
-    getHeaderNav(type) {
+    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) {
       getAppHeaderNav(type).then(res => {
-        window.open(res, "_blank")
+        window.open(res, '_blank')
       })
     },
+    handleTest () {
+      const myWindow = window.open('https://10.50.250.253/portal/ui/index?componentId=dfe&componentMenuId=process_apply')
+      setTimeout(() => {
+        const params = {
+          componentId: 'dfe',
+          componentMenuId: 'process_apply',
+          callback: {
+            method: 'dealTlncMsg',
+            argument: {
+              msgId: '98c256b9-aaff-11ef-8347-fa163ee2c57c',
+              moduleId: 'dfeFlowTodoModuleId',
+              msgTitle: '璇峰強鏃跺鐞�13856591439鍙戣捣鐨勮鍋囩敵璇�',
+              msgStatus: '0',
+              msgCreateTime: '浠婂ぉ 15:33',
+              msgCreateTimeIso: '2024-11-25T15:33:42.000+08:00',
+              serverTime: 1732531014591,
+              menuCode: 'process_apply',
+              msgStatusStr: '寰呭鐞�',
+              comId: 'dfe',
+              userId: '13856591439',
+              extendNoShow: '{"processInstanceId":"98a57fe0-aaff-11ef-8347-fa163ee2c57c","processId":"process_dabcfdd39f1b6f46d36a9f4ff6ce1080","param":{"sourceType":"todo","modelCode":"tb_leave_dfe_for_dfe_runtime","processNodeId":"UserTask_dde7d83377343a2d5fa1f60c23b023ef","taskId":"98c256b9-aaff-11ef-8347-fa163ee2c57c"},"process.param.appId":"32ca8770-6f85-11ec-b5a3-991864da52a6","appId":"32ca8770-6f85-11ec-b5a3-991864da52a6","name":"璇峰亣鐢宠","taskId":"98c256b9-aaff-11ef-8347-fa163ee2c57c","taskNodeId":"UserTask_dde7d83377343a2d5fa1f60c23b023ef","url":"/dfe-form/process/tlnc/apply"}',
+              targetComId: 'dfe',
+              moduleName: '娴佺▼寰呭姙',
+              tid: '99cad778-aaff-11ef-9dbf-ff08ba71965c',
+              msgEndTime: null,
+              msgEndTimeIso: '',
+              picUrl: '',
+              extendJson: '{"key1":"璇峰強鏃跺鐞嗛檲楦块鍙戣捣鐨勮鍋囩敵璇�"}',
+              extendParam: null,
+              extendCascade: null,
+              createUser: '13856591439',
+              webCascadeUrl: null,
+              h5CascadeUrl: null,
+              cascadeTodoOpenType: null,
+              cascadeSourceConfigId: null,
+              h5Url: '/h5/pages/form-page/form-page?returnPath=-1&appId=32ca8770-6f85-11ec-b5a3-991864da52a6&taskId=98c256b9-aaff-11ef-8347-fa163ee2c57c&processNodeId=UserTask_dde7d83377343a2d5fa1f60c23b023ef&modelCode=tb_leave_dfe_for_dfe_runtime&type=flowHandle&component=form-apply&_sn=true',
+              segmentId: 'dfe-form',
+              lastUsers: '闄堥缚椋�',
+              currentUsers: '闄堥缚椋�',
+              todoTypeCode: 'dfe@@tlnc_placeholder_tlnc@@dfeFlowTodoModuleId',
+              currentUserIds: '13856591439',
+              lastUserIds: '13856591439',
+              msgDesc: null,
+              widgetUrl: null,
+              detailType: null,
+              widgetWidth: null,
+              widgetHeight: null,
+              userIdList: null,
+              statusName: null,
+              arriveTime: null,
+              stayTime: null,
+              todoType: null,
+              cascadePort: null,
+              openMode: null
+            }
+          },
+          msgType: 'tlnc'
+        }
+        const argus = JSON.stringify(params)
+        myWindow.postMessage('{"method":"goToApp","argument":' + argus + '}', '*')
+      }, 8000)
+    },
     // 纭畾淇敼瀵嗙爜
-    confirmChangePwd() {
+    confirmChangePwd () {
       if (this.isWorking.changePwd) {
         return
       }
@@ -192,6 +255,7 @@
         })
           .then(() => {
             this.$tip.apiSuccess('淇敼鎴愬姛')
+            this.$store.commit('setUserInfo', { needChangePwd: 1 })
             this.visible.changePwd = false
           })
           .catch(e => {
@@ -203,7 +267,7 @@
       })
     },
     // 閫�鍑虹櫥褰�
-    logout() {
+    logout () {
       logout()
         .then(() => {
           this.clearUserInfo()
@@ -228,31 +292,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 {
@@ -277,7 +342,8 @@
     align-items: center;
 
     .title {
-      width: 240px;
+      font-size: 18px;
+      width: 320px;
     }
 
     // display: inline;
@@ -289,7 +355,7 @@
   }
 
   .user {
-    width: 212px;
+    width: 152px;
     box-sizing: border-box;
     height: 56px;
     padding-right: 25px;

--
Gitblit v1.9.3