From e1aa0ecffbabd618c71e4ad94370fb8dffe6ee1c Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期日, 21 一月 2024 20:54:49 +0800
Subject: [PATCH] 优化

---
 src/views/layout/components/Header/index.vue |  169 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 134 insertions(+), 35 deletions(-)

diff --git a/src/views/layout/components/Header/index.vue b/src/views/layout/components/Header/index.vue
index 8426f6d..748bc83 100644
--- a/src/views/layout/components/Header/index.vue
+++ b/src/views/layout/components/Header/index.vue
@@ -4,27 +4,23 @@
     <!-- 宸︿晶鑿滃崟 -->
     <div class="header-left">
       <div class="menu-left__item" v-for="(item, index) in menuLeftList" :key="item.id" @click="changeActive(index)">
-        <span :class="item.checked ? 'my-active' : ''" @click="menuChange(item)">{{ item.label }}</span>
+        <span :class="item.checked ? 'my-active' : 'my-activeno'" @click="menuChange(item)">{{ item.label }}</span>
       </div>
+      <div class="menu-left__item" v-for="(item, index) in menuLinkList" :key="item.id+index" >
+        <span class="link-active" @click="menuOpen(item)">{{ item.name }}</span>
+      </div>
+      <el-dropdown trigger="click" @command="handleCommand" v-if="linkLeng">
+      <span class="el-dropdown-link">
+        <i class="el-icon-arrow-down el-icon--right"></i>
+      </span>
+        <el-dropdown-menu slot="dropdown" >
+          <el-dropdown-item  v-for="(i,dx) in menuLinkLists" :key="i.id+dx" :command="i">{{i.name}}</el-dropdown-item>
+        </el-dropdown-menu>
+      </el-dropdown>
     </div>
     <!-- 鍙充晶鑿滃崟 -->
     <div class="header-right">
       <div class="menu-right__item search"></div>
-      <!-- 鐧诲綍鐢ㄦ埛 -->
-      <div class="menu-right__item user" @mousemove="flag.user = true" @mouseleave="flag.user = false">
-        <el-avatar :size="20" :src="user.user.icon" v-if="user.user.icon"></el-avatar>
-        <el-avatar :size="20" src="https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png" v-else>
-        </el-avatar>
-        <span style="padding: 0 5px;">{{ user.user.username }}</span>
-        <i class="el-icon-arrow-down"></i>
-        <!-- 鐢ㄦ埛鎿嶄綔 -->
-        <div class="user-card" v-if="flag.user" @mouseleave="flag.user = false">
-          <el-card class="box-card">
-            <div class="user-card__item" @click="updatePassword()">淇敼瀵嗙爜</div>
-            <div style="margin-top: 10px;" class="user-card__item" @click="baseInfo()">鍩烘湰淇℃伅</div>
-          </el-card>
-        </div>
-      </div>
       <!-- 娑堟伅 -->
       <div class="menu-right__item btn" @mousemove="flag.message = true" @mouseleave="flag.message = false">
         <el-tooltip effect="dark" content="娑堟伅涓績" placement="bottom-end" :hide-after="600">
@@ -48,6 +44,24 @@
           </el-card>
         </div>
       </div>
+      <!-- 鐧诲綍鐢ㄦ埛 -->
+      <div class="menu-right__item user" @mousemove="flag.user = true" @mouseleave="flag.user = false">
+        <span class="user-span">|</span>
+        <el-avatar :size="20" :src="user.user.icon" v-if="user.user.icon"></el-avatar>
+        <el-avatar :size="20" src="../../../../assets/imgs/login/3ea6beec64369c2642b92c6726f1epng.png" v-else>
+        </el-avatar>
+
+        <span style="padding: 0 5px;">{{ user.user.username }}</span>
+        <i class="el-icon-arrow-down"></i>
+        <!-- 鐢ㄦ埛鎿嶄綔 -->
+        <div class="user-card" v-if="flag.user" @mouseleave="flag.user = false">
+          <el-card class="box-card">
+            <div class="user-card__item" @click="updatePassword()">淇敼瀵嗙爜</div>
+            <div style="margin-top: 10px;" class="user-card__item" @click="baseInfo()">鍩烘湰淇℃伅</div>
+          </el-card>
+        </div>
+      </div>
+
       <!-- 閫�鍑虹櫥褰� -->
       <div class="menu-right__item btn" @click="loginout">
         <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
@@ -60,7 +74,7 @@
                                         'font-size': '14px',
                                         'font-weight': '650',
                                         'line-height': '45px',
-                                      }" :data="channelData" style="width: 100%" @selection-change="handleSelectionChange"> 
+                                      }" :data="channelData" style="width: 100%" @selection-change="handleSelectionChange">
           <el-table-column width="55">
           </el-table-column>
           <el-table-column prop="columnName" label="鍏ㄩ儴" min-width="5" align="center">
@@ -69,14 +83,14 @@
           <el-table-column label="鍚敤" min-width="5">
             <template slot-scope="scope">
               <!-- @change="handleChangeStatus(scope.row)" -->
-              <el-switch class="switchStyle" 
-              v-model="scope.row.isReceive" 
-              active-color="#3fef9a" 
+              <el-switch class="switchStyle"
+              v-model="scope.row.isReceive"
+              active-color="#3fef9a"
               inactive-color="#000212"
               :active-value="1"
               :inactive-value="0"
               @change="handleSelectionChange(scope.row)">
-              
+
               </el-switch>
             </template>
           </el-table-column>
@@ -120,6 +134,7 @@
 import updatePassword from "./updatePassword";
 import users from "@/api/users";
 import { Message } from "element-ui";
+import {searchexternalLinks} from "@/api/system/portal/externalLinks";
 
 export default {
   components: {
@@ -127,6 +142,9 @@
   },
   data() {
     return {
+      linkLeng:false,
+      menuLinkLists:[],
+      menuLinkList:[],
       baseInformationVisible: false,
       updatePasswordDialog: false,
       channelSettingVisible: false,
@@ -134,21 +152,27 @@
       menuLeftList: [
         {
           label: '椹鹃┒鑸�',
-          checked: true,
-          url: '',
+          checked: false,
+          url: 'http://111.1.140.92:28081/cockpit/dist/board.html#/share-board/ze5EdUnw',
           id: '1f'
         },
         {
           label: '瑙嗛宸℃煡',
-          checked: true,
+          checked: false,
           url: '',
           id: '2f'
         },
         {
           label: '鎵ф硶绠$悊',
-          checked: true,
+          checked: false,
           url: '',
           id: '3f',
+        },
+        {
+          label: '娌圭儫妫�娴�',
+          checked: false,
+          url: 'http://116.62.234.187:8120/#/SpecificLogin?subname=sccgj',
+          id: '4f',
         },
       ],
       flag: {
@@ -168,8 +192,47 @@
   },
   created() {
     this.setLoginInfo();
+    this.getExternalLinks()
+  },
+  mounted(){
+    window.eventBus.$on('setFeaturesData', ()=>{ // 涓嶅甫鍙傛暟
+      this.getExternalLinks()
+    })
+  },
+  watch:{
+    $route() {
+      this.menuLeftList.map(item=>{
+        item.checked = false
+      })
+    },
   },
   methods: {
+    handleCommand(e){
+      console.log(e)
+      this.menuOpen(e)
+    },
+    menuOpen(row){
+      window.open('http://'+row.url, '_blank');
+    },
+    async getExternalLinks() {
+      await searchexternalLinks().then((res) => {
+        let that = this
+        that.menuLinkList=[]
+        if (res.length > 5) {
+          that.linkLeng = true
+        }
+        that.menuLinkLists = res
+        for (let i = 0; i < res.length; i++) {
+          that.menuLinkList.push(res[i])
+          if (i == 4) {
+            break;
+          }
+        }
+        // console.log(that.menuLinkLists)
+        // this.menuLinkList = res
+
+      });
+    },
     cancelChannel(){
       this.channelSettingVisible=false
     },
@@ -290,7 +353,7 @@
     },
     menuChange(data) {
       if (data.id === '1f') {
-        window.open('http://cockpit.patstech.net:28081/cockpit/dist/board.html#/share-board/zfu0LsJ9', '_blank');
+        window.open('http://111.1.140.92:28081/cockpit/dist/board.html#/share-board/ze5EdUnw', '_blank');
       }
       if (data.id === '2f') {
         this.$router.push({ path: "/home/video" })
@@ -298,12 +361,20 @@
       if (data.id === '3f') {
         this.$router.push({ path: "/home/operate/casepool/pool" })
       }
+      if (data.id === '4f') {
+        window.open('http://116.62.234.187:8120/#/SpecificLogin?subname=sccgj', '_blank');
+      }
+
     }
   }
 };
 </script>
 
 <style lang="scss" scoped>
+.el-dropdown-link {
+  cursor: pointer;
+  color: #409EFF;
+}
 ::v-deep .el-form {
   padding: 3vh 5vw;
 
@@ -313,19 +384,19 @@
 }
 
 .el-header {
-  background-color: #071a38;
+  background-color: #313350;
   text-align: center;
   line-height: 60px;
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: 0 20px;
-  color: #4b9bb7;
+  color: #fff;
 
   .header-left {
     display: flex;
     flex: 1;
-
+align-items: center;
     .menu-left__item {
       width: 120px;
 
@@ -336,15 +407,40 @@
 
         &:hover {
           cursor: pointer;
-          color: #fff;
+          //color: #fff;
         }
       }
     }
+.link-active{
+  overflow:hidden;
 
+  white-space: nowrap;
+
+  text-overflow: ellipsis;
+
+  -o-text-overflow:ellipsis;
+}
+    .link-active:hover{
+      color: #2f54eb;
+      background-color: #313350;
+    }
     .my-active {
       border-radius: 20px;
+      color: #2f54eb;
+      background-color: #313350;
+    }
+    .my-activeno{
+      border-radius: 20px;
       color: #fff;
-      background-color: #092c4a;
+      background-color: #313350;
+    }
+    .my-active:hover {
+      color: #2f54eb;
+      background-color: #313350;
+    }
+    .my-activeno:hover{
+      color: #2f54eb;
+      background-color: #313350;
     }
   }
 
@@ -373,13 +469,15 @@
     }
 
     .user {
-      margin-left: 20px;
+      //margin-left: 20px;
       flex: 2;
       display: flex;
       align-items: center;
       justify-content: center;
       position: relative;
-
+.user-span{
+  padding: 0 10px;
+}
       .user-card {
         position: absolute;
         top: 60px;
@@ -456,9 +554,10 @@
 
     .user:hover,
     .btn:hover {
-      background-color: #092c4a;
+      //background-color: #092c4a;
       cursor: pointer;
+      color: #2f54eb;
     }
   }
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.8.0