| | |
| | | <!-- 左侧菜单 --> |
| | | <div class="header-left"> |
| | | <div class="menu-left__item" v-for="(item, index) in menuLeftList" :key="item.id" @click="changeActive(index)"> |
| | | <span :class="item.checked ? 'my-active' : ''" @click="menuChange(item)">{{ item.label }}</span> |
| | | <span :class="item.checked ? 'my-active' : 'my-activeno'" @click="menuChange(item)">{{ item.label }}</span> |
| | | </div> |
| | | </div> |
| | | <!-- 右侧菜单 --> |
| | | <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-card> |
| | | </div> |
| | | </div> |
| | | <!-- 登录用户 --> |
| | | <div class="menu-right__item user" @mousemove="flag.user = true" @mouseleave="flag.user = false"> |
| | | <span class="user-span">|</span> |
| | | <el-avatar :size="20" :src="user.user.icon" v-if="user.user.icon"></el-avatar> |
| | | <el-avatar :size="20" src="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" @click="loginout"> |
| | | <el-tooltip effect="dark" content="退出登录" placement="bottom-end" :hide-after="1000"> |
| | |
| | | </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%" |
| | | |
| | | > <el-table-column |
| | | type="selection" |
| | | width="55" |
| | | |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="columnName" label="全部" min-width="5" align="center"> |
| | | <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> |
| | | <el-button type="button" @click="channelSetting">更新</el-button> |
| | | <el-button type="button" @click="channelSetting">取消</el-button> |
| | | <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-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> |
| | |
| | | <script> |
| | | import updatePassword from "./updatePassword"; |
| | | import users from "@/api/users"; |
| | | import { Message } from "element-ui"; |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | return { |
| | | baseInformationVisible: false, |
| | | updatePasswordDialog: false, |
| | | channelSettingVisible:false, |
| | | checked3:true, |
| | | channelSettingVisible: false, |
| | | checked3: true, |
| | | menuLeftList: [ |
| | | { |
| | | label: '驾驶舱', |
| | | checked: true, |
| | | checked: false, |
| | | url: '', |
| | | id: '1f' |
| | | }, |
| | | { |
| | | label: '视频巡查', |
| | | checked: true, |
| | | checked: false, |
| | | url: '', |
| | | id: '2f' |
| | | }, |
| | | { |
| | | label: '执法管理', |
| | | checked: true, |
| | | checked: false, |
| | | url: '', |
| | | id: '3f', |
| | | }, |
| | | { |
| | | label: '油烟检测', |
| | | checked: false, |
| | | url: '', |
| | | id: '4f', |
| | | }, |
| | | ], |
| | | flag: { |
| | |
| | | messageCounts: 0, |
| | | keyword: '', |
| | | info: null, |
| | | show: false |
| | | show: false, |
| | | messageColumnSet: { |
| | | } |
| | | }; |
| | | }, |
| | | created() { |
| | | this.setLoginInfo(); |
| | | }, |
| | | watch:{ |
| | | $route() { |
| | | this.menuLeftList.map(item=>{ |
| | | item.checked = false |
| | | }) |
| | | }, |
| | | }, |
| | | 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.info = res.data.user; |
| | | }) |
| | | }, |
| | | channelSetting(){ |
| | | this.channelSettingVisible=true; |
| | | 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 |
| | | url: 'sccg/message_column/getShowColumn?' + 'id=' + userInfo.user.id |
| | | }) |
| | | .then(res => { |
| | | this.channelData=res.data |
| | | this.channelData = res.data |
| | | // this.channelData.forEach(item=>{this.$refs.multipleTable.toggleRowSelection(item,true);console.log(this.$refs.multipleTable.toggleRowSelection(item,true))}) |
| | | }) |
| | | }, |
| | | handleChannelClose(done) { |
| | |
| | | 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"}) |
| | | this.$router.push({ path: "/home/video" }) |
| | | } |
| | | if (data.id === '3f') { |
| | | this.$router.push({path: "/home/operate/casepool/pool"}) |
| | | this.$router.push({ path: "/home/operate/casepool/pool" }) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | .el-header { |
| | | background-color: #071a38; |
| | | background-color: #313350; |
| | | text-align: center; |
| | | line-height: 60px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 0 20px; |
| | | color: #4b9bb7; |
| | | color: #fff; |
| | | |
| | | .header-left { |
| | | display: flex; |
| | |
| | | |
| | | &:hover { |
| | | cursor: pointer; |
| | | color: #fff; |
| | | //color: #fff; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .my-active { |
| | | border-radius: 20px; |
| | | color: #2f54eb; |
| | | background-color: #313350; |
| | | } |
| | | .my-activeno{ |
| | | border-radius: 20px; |
| | | color: #fff; |
| | | background-color: #092c4a; |
| | | background-color: #313350; |
| | | } |
| | | .my-active:hover { |
| | | color: #2f54eb; |
| | | background-color: #313350; |
| | | } |
| | | .my-activeno:hover{ |
| | | color: #2f54eb; |
| | | background-color: #313350; |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .user { |
| | | margin-left: 20px; |
| | | flex: 2; |
| | | //margin-left: 20px; |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | position: relative; |
| | | |
| | | .user-span{ |
| | | padding: 0 10px; |
| | | } |
| | | .user-card { |
| | | position: absolute; |
| | | top: 60px; |
| | |
| | | |
| | | .user:hover, |
| | | .btn:hover { |
| | | background-color: #092c4a; |
| | | //background-color: #092c4a; |
| | | cursor: pointer; |
| | | color: #2f54eb; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | </style> |