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 | 174 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 138 insertions(+), 36 deletions(-) diff --git a/src/views/layout/components/Header/index.vue b/src/views/layout/components/Header/index.vue index 99b9ebf..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,20 +83,20 @@ <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> </el-table> - <el-button type="button" @click="channelSetting">鍙栨秷</el-button> + <el-button type="button" @click="cancelChannel">鍙栨秷</el-button> </el-dialog> <el-dialog :visible.sync="updatePasswordDialog" width="40%" title="淇敼瀵嗙爜" v-if="updatePasswordDialog" @@ -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,50 @@ }, 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 + }, handleSelectionChange(val) { const userInfo = JSON.parse(sessionStorage.getItem('user')); this.messageColumnSet.userId = userInfo.user.id @@ -287,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" }) @@ -295,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; @@ -310,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; @@ -333,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; } } @@ -370,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; @@ -453,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