From d14c8eb5cc9b3ca53a99b355e4a0539a68435928 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期二, 03 一月 2023 09:51:29 +0800
Subject: [PATCH] fix: 栏目设置取消
---
.history/src/views/layout/components/Header/index_20221230155058.vue | 464 +++
.history/src/views/layout/components/Header/index_20221230154651.vue | 464 +++
.history/src/views/layout/components/Header/index_20221230154054.vue | 467 +++
.history/src/views/layout/components/Header/index_20221230153705.vue | 466 +++
.history/src/views/layout/components/Header/index_20221230155107.vue | 463 +++
.history/src/views/layout/components/Header/index_20221230153945.vue | 466 +++
src/views/layout/components/Header/index.vue | 5
.history/src/views/layout/components/Header/index_20221230154609.vue | 465 +++
.history/src/views/layout/components/Header/index_20221230155006.vue | 464 +++
.history/src/views/layout/components/Header/index_20221230155220.vue | 462 +++
.history/src/views/layout/components/Header/index_20221230153432.vue | 462 +++
.history/src/views/layout/components/Header/index_20230103095040.vue | 464 +++
.history/src/views/layout/components/Header/index_20230103093412.vue | 462 +++
.history/src/views/layout/components/Header/index_20221230154019.vue | 468 +++
.history/src/views/layout/components/Header/index_20221230153859.vue | 466 +++
.history/src/views/layout/components/Header/index_20221230155111.vue | 463 +++
.history/src/views/layout/components/Header/index_20221230154348.vue | 463 +++
.history/src/views/layout/components/Header/index_20230103093530.vue | 465 +++
18 files changed, 7,898 insertions(+), 1 deletions(-)
diff --git a/.history/src/views/layout/components/Header/index_20221230153432.vue b/.history/src/views/layout/components/Header/index_20221230153432.vue
new file mode 100644
index 0000000..e627c0e
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230153432.vue
@@ -0,0 +1,462 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- @change="handleChangeStatus(scope.row)" -->
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+ <!-- {{ scope.row.isReceive}} -->
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ // this.channelData.forEach(item=>{this.$refs.multipleTable.toggleRowSelection(item,true);console.log(this.$refs.multipleTable.toggleRowSelection(item,true))})
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230153705.vue b/.history/src/views/layout/components/Header/index_20221230153705.vue
new file mode 100644
index 0000000..24ceff5
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230153705.vue
@@ -0,0 +1,466 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- @change="handleChangeStatus(scope.row)" -->
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+ <!-- {{ scope.row.isReceive}} -->
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }})
+ console.log(this.channelData)
+ // this.channelData.forEach(item=>{this.$refs.multipleTable.toggleRowSelection(item,true);console.log(this.$refs.multipleTable.toggleRowSelection(item,true))})
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230153859.vue b/.history/src/views/layout/components/Header/index_20221230153859.vue
new file mode 100644
index 0000000..8a91bc7
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230153859.vue
@@ -0,0 +1,466 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- @change="handleChangeStatus(scope.row)" -->
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+ <!-- {{ scope.row.isReceive}} -->
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }})
+ console.log(this.channelData)
+ // this.channelData.forEach(item=>{this.$refs.multipleTable.toggleRowSelection(item,true);console.log(this.$refs.multipleTable.toggleRowSelection(item,true))})
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230153945.vue b/.history/src/views/layout/components/Header/index_20221230153945.vue
new file mode 100644
index 0000000..8e24e56
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230153945.vue
@@ -0,0 +1,466 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- @change="handleChangeStatus(scope.row)" -->
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+ <!-- {{ scope.row.isReceive}} -->
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }})
+ console.log(this.channelData.isReceive)
+ // this.channelData.forEach(item=>{this.$refs.multipleTable.toggleRowSelection(item,true);console.log(this.$refs.multipleTable.toggleRowSelection(item,true))})
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230154019.vue b/.history/src/views/layout/components/Header/index_20221230154019.vue
new file mode 100644
index 0000000..3efcd15
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230154019.vue
@@ -0,0 +1,468 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- @change="handleChangeStatus(scope.row)" -->
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+ <!-- {{ scope.row.isReceive}} -->
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ console.log(item.isReceive)
+ })
+
+ // this.channelData.forEach(item=>{this.$refs.multipleTable.toggleRowSelection(item,true);console.log(this.$refs.multipleTable.toggleRowSelection(item,true))})
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230154054.vue b/.history/src/views/layout/components/Header/index_20221230154054.vue
new file mode 100644
index 0000000..7c59765
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230154054.vue
@@ -0,0 +1,467 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- @change="handleChangeStatus(scope.row)" -->
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+ <!-- {{ scope.row.isReceive}} -->
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+
+ // this.channelData.forEach(item=>{this.$refs.multipleTable.toggleRowSelection(item,true);console.log(this.$refs.multipleTable.toggleRowSelection(item,true))})
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230154348.vue b/.history/src/views/layout/components/Header/index_20221230154348.vue
new file mode 100644
index 0000000..ed49fe1
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230154348.vue
@@ -0,0 +1,463 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- @change="handleChangeStatus(scope.row)" -->
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212">
+ </el-switch>
+ {{ scope.row.isReceive}}
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230154609.vue b/.history/src/views/layout/components/Header/index_20221230154609.vue
new file mode 100644
index 0000000..35c41fa
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230154609.vue
@@ -0,0 +1,465 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- @change="handleChangeStatus(scope.row)" -->
+ <!-- <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch> -->
+ {{ scope.row.isReceive}}
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230154651.vue b/.history/src/views/layout/components/Header/index_20221230154651.vue
new file mode 100644
index 0000000..086191e
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230154651.vue
@@ -0,0 +1,464 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- @change="handleChangeStatus(scope.row)" -->
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230155006.vue b/.history/src/views/layout/components/Header/index_20221230155006.vue
new file mode 100644
index 0000000..729c797
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230155006.vue
@@ -0,0 +1,464 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- @change="handleChangeStatus(scope.row)" -->
+ <!-- <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch> -->
+ {{scope.row.isReceive}}
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230155058.vue b/.history/src/views/layout/components/Header/index_20221230155058.vue
new file mode 100644
index 0000000..dfcdddd
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230155058.vue
@@ -0,0 +1,464 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ @change="handleChangeStatus(scope.row)" -->
+ <!-- <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230155107.vue b/.history/src/views/layout/components/Header/index_20221230155107.vue
new file mode 100644
index 0000000..749a049
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230155107.vue
@@ -0,0 +1,463 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <!-- <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch> -->
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230155111.vue b/.history/src/views/layout/components/Header/index_20221230155111.vue
new file mode 100644
index 0000000..9de8513
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230155111.vue
@@ -0,0 +1,463 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20221230155220.vue b/.history/src/views/layout/components/Header/index_20221230155220.vue
new file mode 100644
index 0000000..c363fc0
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20221230155220.vue
@@ -0,0 +1,462 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="channelSetting">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20230103093412.vue b/.history/src/views/layout/components/Header/index_20230103093412.vue
new file mode 100644
index 0000000..1c8fb1e
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20230103093412.vue
@@ -0,0 +1,462 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="cancelChannel">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20230103093530.vue b/.history/src/views/layout/components/Header/index_20230103093530.vue
new file mode 100644
index 0000000..ff8edfd
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20230103093530.vue
@@ -0,0 +1,465 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <el-table-column prop="isReceive" label="鍚敤" min-width="5">
+ <template slot-scope="scope">
+ <el-switch class="switchStyle"
+ v-model="scope.row.isReceive"
+ active-color="#3fef9a"
+ inactive-color="#000212"
+ active-value="1"
+ inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-button type="button" @click="cancelChannel">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [{isReceive:null}],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ cancelChannel(){
+ this.channelSettingVisible=false
+ },
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ console.log(val[0])
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val[0].id
+ if (val[0].isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val[0].isReceive == 1) {
+ this.messageColumnSet.isReceive = 0
+ }
+ if (val[0].isReceive == 0) {
+ this.messageColumnSet.isReceive = 1
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ this.channelData.forEach(item=>{if(item.isReceive==null){
+ item.isReceive=0
+ }
+ })
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/.history/src/views/layout/components/Header/index_20230103095040.vue b/.history/src/views/layout/components/Header/index_20230103095040.vue
new file mode 100644
index 0000000..8426f6d
--- /dev/null
+++ b/.history/src/views/layout/components/Header/index_20230103095040.vue
@@ -0,0 +1,464 @@
+<template>
+ <!-- 澶撮儴 -->
+ <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' : ''" @click="menuChange(item)">{{ item.label }}</span>
+ </div>
+ </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">
+ <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">
+ <el-card class="box-card">
+ <div class="card-header">
+ <span>娑堟伅涓績</span>
+ <el-button type="text" @click="channelSetting">鎺ユ敹璁剧疆</el-button>
+ </div>
+ <div v-for="item in menuMessageList" :key="item.id" class="message-card__item">
+ <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" @click="loginout">
+ <el-tooltip effect="dark" content="閫�鍑虹櫥褰�" placement="bottom-end" :hide-after="1000">
+ <i class="el-icon-switch-button"></i>
+ </el-tooltip>
+ </div>
+ <el-dialog :visible.sync="channelSettingVisible" width="25%" title="娑堟伅鏍忕洰璁剧疆" v-if="channelSettingVisible"
+ :before-close="handleChannelClose">
+ <el-table ref="multipleTable" :header-cell-style="{
+ 'font-size': '14px',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }" :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">
+ <!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
+ </el-table-column>
+ <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"
+ 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="cancelChannel">鍙栨秷</el-button>
+ </el-dialog>
+
+ <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">
+ <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";
+import { Message } from "element-ui";
+
+export default {
+ components: {
+ updatePassword
+ },
+ data() {
+ return {
+ baseInformationVisible: false,
+ updatePasswordDialog: false,
+ channelSettingVisible: false,
+ checked3: true,
+ menuLeftList: [
+ {
+ label: '椹鹃┒鑸�',
+ checked: true,
+ url: '',
+ id: '1f'
+ },
+ {
+ label: '瑙嗛宸℃煡',
+ checked: true,
+ url: '',
+ id: '2f'
+ },
+ {
+ label: '鎵ф硶绠$悊',
+ checked: true,
+ url: '',
+ id: '3f',
+ },
+ ],
+ flag: {
+ user: false,
+ message: false
+ },
+ user: '',
+ menuMessageList: [],
+ channelData: [],
+ messageCounts: 0,
+ keyword: '',
+ info: null,
+ show: false,
+ messageColumnSet: {
+ }
+ };
+ },
+ created() {
+ this.setLoginInfo();
+ },
+ methods: {
+ cancelChannel(){
+ this.channelSettingVisible=false
+ },
+ handleSelectionChange(val) {
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.messageColumnSet.userId = userInfo.user.id
+ this.messageColumnSet.messageColumnId = val.id
+ if (val.isReceive == null) {
+ this.messageColumnSet.isReceive = 1
+ }
+ if (val.isReceive == 1) {
+ this.messageColumnSet.isReceive = 1
+ }
+ else if (val.isReceive == 0) {
+ this.messageColumnSet.isReceive = 0
+ }
+ this.$axios({
+ method: 'post',
+ url: 'sccg/message_column_set/update',
+ data: this.messageColumnSet
+ }).then(res => {
+ this.$message.success("璁㈤槄鎴愬姛")
+ })
+ },
+ 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;
+ })
+ },
+ channelSetting(row) {
+ this.channelSettingVisible = true;
+ const userInfo = JSON.parse(sessionStorage.getItem('user'));
+ this.$axios({
+ method: 'get',
+ url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id
+ })
+ .then(res => {
+ this.channelData = res.data
+ // this.channelData.forEach(item=>{this.$refs.multipleTable.toggleRowSelection(item,true);console.log(this.$refs.multipleTable.toggleRowSelection(item,true))})
+ })
+ },
+ handleChannelClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpload = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ handleClose(done) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.channelSettingVisible = false;
+ done();
+ })
+ .catch((_) => { });
+ },
+ //淇敼瀵嗙爜
+ updatePassword() {
+ this.updatePasswordDialog = true;
+ },
+ // 閫�鍑哄姛鑳�
+ loginout() {
+ this.$confirm('閫�鍑虹郴缁熺‘璁�', '纭鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ sessionStorage.clear();
+ this.$router.push({ path: "/login" })
+ }).catch(err => {
+ })
+ },
+ // 鏀瑰彉閫変腑鐘舵��
+ changeActive(idx) {
+ this.menuLeftList.forEach((item, index) => {
+ 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');
+ }
+ if (data.id === '2f') {
+ this.$router.push({ path: "/home/video" })
+ }
+ if (data.id === '3f') {
+ this.$router.push({ path: "/home/operate/casepool/pool" })
+ }
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form {
+ padding: 3vh 5vw;
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+}
+
+.el-header {
+ background-color: #071a38;
+ text-align: center;
+ line-height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20px;
+ color: #4b9bb7;
+
+ .header-left {
+ display: flex;
+ flex: 1;
+
+ .menu-left__item {
+ width: 120px;
+
+ span {
+ display: block;
+ line-height: 40px;
+ width: 100%;
+
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+
+ .my-active {
+ border-radius: 20px;
+ color: #fff;
+ background-color: #092c4a;
+ }
+ }
+
+ .header-right {
+ display: flex;
+ padding-left: 10vw;
+ flex: 1;
+
+ .item {
+ width: 100%;
+ position: relative;
+
+ :deep(.is-fixed) {
+ width: 20px;
+ height: 20px;
+ padding: 0;
+ top: 20px;
+ right: 30px;
+ border-radius: 50%;
+ position: absolute;
+ }
+ }
+
+ .search {
+ flex: 3;
+ }
+
+ .user {
+ margin-left: 20px;
+ flex: 2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .user-card {
+ position: absolute;
+ top: 60px;
+ width: 120px;
+ z-index: 3000;
+
+ .user-card__item {
+ padding: 5px 0;
+
+ &:hover {
+ color: #fff;
+ background-color: #071a38;
+ }
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ :deep(.el-card__body) {
+ line-height: 20px;
+ padding: 10px;
+ }
+ }
+ }
+
+ .btn {
+ flex: 1;
+ font-size: 20px;
+ position: relative;
+
+ .message-card {
+ position: absolute;
+ top: 60px;
+ width: 180px;
+ left: -50px;
+ z-index: 3000;
+
+ :deep(.el-card__body) {
+ padding: 0;
+ }
+
+ :deep(.el-card) {
+ background-color: #092c4a;
+ border: 1px solid #17324c;
+ color: #4b9bb7;
+ }
+
+ .card-header {
+ padding: 0 20px;
+ line-height: 40px;
+ font-size: 14px;
+ display: flex;
+ border-bottom: 1px solid #17324c;
+ justify-content: space-between;
+ }
+
+ .message-card__item {
+ line-height: 30px;
+ font-size: 14px;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 20px;
+
+ .label:hover {
+ cursor: pointer;
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .user:hover,
+ .btn:hover {
+ background-color: #092c4a;
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/layout/components/Header/index.vue b/src/views/layout/components/Header/index.vue
index 99b9ebf..8426f6d 100644
--- a/src/views/layout/components/Header/index.vue
+++ b/src/views/layout/components/Header/index.vue
@@ -82,7 +82,7 @@
</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"
@@ -170,6 +170,9 @@
this.setLoginInfo();
},
methods: {
+ cancelChannel(){
+ this.channelSettingVisible=false
+ },
handleSelectionChange(val) {
const userInfo = JSON.parse(sessionStorage.getItem('user'));
this.messageColumnSet.userId = userInfo.user.id
--
Gitblit v1.8.0