From 9ff66017debadfc89bc0c1b796684a4d1dbe2bc3 Mon Sep 17 00:00:00 2001 From: fangyuan <527392886@qq.com> Date: 星期五, 16 十二月 2022 10:00:02 +0800 Subject: [PATCH] 已上报到市批量操作按钮隐藏 --- src/views/layout/components/Header/index.vue | 209 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 147 insertions(+), 62 deletions(-) diff --git a/src/views/layout/components/Header/index.vue b/src/views/layout/components/Header/index.vue index 8169db6..058dd9d 100644 --- a/src/views/layout/components/Header/index.vue +++ b/src/views/layout/components/Header/index.vue @@ -1,57 +1,52 @@ <template> <!-- 澶撮儴 --> - <el-header> + <el-header v-if="show"> <!-- 宸︿晶鑿滃崟 --> <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':''">{{item.label}}</span> + <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> </div> </div> <!-- 鍙充晶鑿滃崟 --> <div class="header-right"> - <!-- 鎼滅储妗� --> - <div class="menu-right__item search"> - <el-input suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�"></el-input> - </div> + <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="https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png"></el-avatar> - <span style="padding: 0 5px;">Admin</span> + <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">淇敼瀵嗙爜</div> - <div style="margin-top: 10px;" class="user-card__item">鍩烘湰淇℃伅</div> + <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 "> + <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"> - <el-badge :value="50" :max="99" class="item"> - <i class="el-icon-message-solid"></i> + <el-badge :value="messageCounts" class="item"> + <i @click="getMessage" class="el-icon-message-solid"></i> </el-badge> </el-tooltip> <!-- 娑堟伅鎿嶄綔 --> - <div class="message-card" v-if="flag.message" @mouseleave=" flag.message = false "> + <div class="message-card" v-if="flag.message" @mouseleave="flag.message = false"> <el-card class="box-card"> <div class="card-header"> <span>娑堟伅涓績</span> <el-button type="text">鎺ユ敹璁剧疆</el-button> </div> <div v-for="item in menuMessageList" :key="item.id" class="message-card__item"> - <span class="label">{{item.label}}</span> - <span>({{item.num}})</span> + <router-link to='/home/operate/message/messageIndex'> + <span class="label">{{ item.columnName }}</span> + </router-link> + <span>({{ item.messageNumber }})</span> </div> </el-card> </div> - </div> - <!-- 璁剧疆 --> - <div class="menu-right__item btn"> - <el-tooltip effect="dark" content="璐︽埛璁剧疆" placement="bottom-end" :hide-after="1000"> - <i class="el-icon-s-tools"></i> - </el-tooltip> </div> <!-- 閫�鍑虹櫥褰� --> <div class="menu-right__item btn" @click="loginout"> @@ -59,14 +54,50 @@ <i class="el-icon-switch-button"></i> </el-tooltip> </div> + <el-dialog :visible.sync="updatePasswordDialog" width="40%" title="淇敼瀵嗙爜" v-if="updatePasswordDialog" + :before-close="handleClose"> + <updatePassword /> + </el-dialog> + <el-dialog :visible.sync="baseInformationVisible" width="35%" title="鍩烘湰淇℃伅" v-if="baseInformationVisible" + :before-close="handleClose"> + <el-form :model="info" class="info" label-width="6vw"> + <el-form-item label="鐢ㄦ埛ID" min-width="6"> + <el-input v-model="info.id"></el-input> + </el-form-item> + <el-form-item prop="nickName" label="鐢ㄦ埛鍚嶇О" min-width="10"> + <el-input v-model="info.nickName"></el-input> + </el-form-item> + <el-form-item prop="nickName" label="鎵�灞炲鍚�" min-width="8"> + <el-input v-model="info.username"></el-input> + </el-form-item> + <el-form-item prop="mobile" label="鑱旂郴鏂瑰紡" min-width="7"> + <el-input v-model="info.mobile"></el-input> + </el-form-item> + <el-form-item prop="jobTitle" label="鎵�灞炶亴鍔�" min-width="8"> + <el-input v-model="info.jobTitle"></el-input> + </el-form-item> + <el-form-item prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> + <el-input v-model="info.createTime"></el-input> + </el-form-item> + </el-form> + + </el-dialog> </div> </el-header> </template> <script> +import updatePassword from "./updatePassword"; +import users from "@/api/users"; + export default { + components: { + updatePassword + }, data() { return { + baseInformationVisible: false, + updatePasswordDialog: false, menuLeftList: [ { label: '椹鹃┒鑸�', @@ -91,31 +122,42 @@ user: false, message: false }, - menuMessageList: [ - { - label: '鍏ㄩ儴娑堟伅', - num: 10, - id: '1m' - }, - { - label: '浜у搧娑堟伅', - num: 10, - id: '2m' - }, - { - label: '瀹夊叏娑堟伅', - num: 10, - id: '3m' - }, - { - label: '鏈嶅姟娑堟伅', - num: 10, - id: '4m' - }, - ] + user: '', + menuMessageList: [], + messageCounts: 0, + keyword: '', + info: null, + show: false }; }, + created() { + this.setLoginInfo(); + }, methods: { + baseInfo() { + this.baseInformationVisible = true; + const name = sessionStorage.getItem('name'); + this.$axios({ + method: 'get', + url: 'sccg/admin/info?name=' + name, + }) + .then(res => { + sessionStorage.setItem('user', JSON.stringify(res.data)); + this.info = res.data.user; + }) + }, + handleClose(done) { + this.$confirm("纭鍏抽棴锛�") + .then((_) => { + this.dialogUpload = false; + done(); + }) + .catch((_) => { }); + }, + //淇敼瀵嗙爜 + updatePassword() { + this.updatePasswordDialog = true; + }, // 閫�鍑哄姛鑳� loginout() { this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', { @@ -123,42 +165,80 @@ cancelButtonText: '鍙栨秷', type: 'warning' }).then(() => { - sessionStorage.removeItem('token'); - sessionStorage.removeItem('tokenHead'); + sessionStorage.clear(); this.$router.push({ path: "/login" }) - }).catch(err=>{ - console.log(err); + }).catch(err => { }) }, // 鏀瑰彉閫変腑鐘舵�� changeActive(idx) { this.menuLeftList.forEach((item, index) => { - if (index === idx) { - item.checked = true; - } else { - item.checked = false; - } + item.checked = index === idx; }) }, + // 璁剧疆鐢ㄦ埛鍩烘湰淇℃伅 + async setLoginInfo() { + const info = JSON.parse(sessionStorage.getItem('user')); + if (info) { + this.user = info; + } else { + this.user = await this.getLoginInfo(); + } + this.getMessage(); + this.show = true + }, + // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅 + async getLoginInfo() { + const name = sessionStorage.getItem('name'); + let res = await this.$axios({ + method: 'get', + url: 'sccg/admin/info?name=' + name, + }) + sessionStorage.setItem('user', JSON.stringify(res.data)); + return res.data; + }, + getMessage() { + const userInfo = JSON.parse(sessionStorage.getItem('user')); + users.getMessageAuditList({ userId: userInfo.user.id }) + .then(res => { + this.menuMessageList = res; + this.menuMessageList.forEach(item => { + this.messageCounts += item.messageNumber; + }) + }) + .catch(err => this.$message.error(`${err}`)) + }, + menuChange(data) { + if (data.id === '1f') { + window.open('http://cockpit.patstech.net:28081/cockpit/dist/board.html#/share-board/zfu0LsJ9', '_blank'); + } + } } }; </script> <style lang="scss" scoped> +::v-deep .el-form { + padding: 3vh 5vw; + + .el-form-item__label { + color: #4b9bb7; + } +} + .el-header { background-color: #071a38; - color: #333; text-align: center; line-height: 60px; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; - // width: 100%; color: #4b9bb7; .header-left { display: flex; + flex: 1; .menu-left__item { width: 120px; @@ -167,7 +247,8 @@ display: block; line-height: 40px; width: 100%; - &:hover{ + + &:hover { cursor: pointer; color: #fff; } @@ -183,9 +264,11 @@ .header-right { display: flex; + padding-left: 10vw; + flex: 1; .item { - width: 60px; + width: 100%; position: relative; :deep(.is-fixed) { @@ -200,12 +283,12 @@ } .search { - width: 200px; + flex: 3; } .user { margin-left: 20px; - width: 120px; + flex: 2; display: flex; align-items: center; justify-content: center; @@ -215,6 +298,7 @@ position: absolute; top: 60px; width: 120px; + z-index: 3000; .user-card__item { padding: 5px 0; @@ -239,7 +323,7 @@ } .btn { - width: 60px; + flex: 1; font-size: 20px; position: relative; @@ -248,6 +332,7 @@ top: 60px; width: 180px; left: -50px; + z-index: 3000; :deep(.el-card__body) { padding: 0; -- Gitblit v1.8.0