| | |
| | | } |
| | | |
| | | .logo { |
| | | width: 130px; |
| | | width: 118px; |
| | | height: 40px; |
| | | } |
| | | |
| | |
| | | .user span { |
| | | font-size: 14px; |
| | | } |
| | | .el-dropdown{ |
| | | display: flex; |
| | | align-items: center; |
| | | color: #000; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .left { |
| | | height: calc(100vh - 48px - 40px); |
| | |
| | | |
| | | .component_view { |
| | | height: calc(100vh - 84px); |
| | | width: calc(100% - 52px); |
| | | padding: 0 26px; |
| | | width: calc(100% - 40px); |
| | | padding: 0 20px; |
| | | background: rgb(245, 247, 251); |
| | | } |
| | | |
| | |
| | | cursor: auto !important; |
| | | margin: 8px 12px; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 50px; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 90px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 120px); |
| | | } |
| | | </style> |
| | | <style></style> |
| | | <template> |
| | |
| | | </div> |
| | | <div class="label">LIMS实验室管理系统</div> |
| | | <div class="user"> |
| | | <el-avatar :size="26">{{ userName.substring(0, 1) }}</el-avatar> |
| | | <span>{{ userName }}</span> |
| | | <el-badge :is-dot="newMsg" style="cursor: pointer;margin-right: 10px;"> |
| | | <i class="el-icon-bell" style="font-size: 20px;" @click="openNotice"></i> |
| | | </el-badge> |
| | | <el-dropdown trigger="click" @command="handleCommand"> |
| | | <el-avatar :size="26">{{ userName.substring(0, 1) }}</el-avatar> |
| | | <span>{{ userName }}</span> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item>修改密码</el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | <img src="../../static/img/退出.png" @click="out" title="退出账号" /> |
| | | </div> |
| | | </div> |
| | |
| | | <el-col :span="24"> |
| | | <el-card :body-style="{padding: '6px'}"> |
| | | <ul> |
| | | <li @click="removeTab(activeIndex)"><i class="el-icon-close"></i>关闭</li> |
| | | <li @click="removeTab(activeIndex)" v-show="menuId!=0"><i class="el-icon-close"></i>关闭</li> |
| | | <li @click="allDel"><i class="el-icon-delete"></i>关闭所有</li> |
| | | <li @click="rightDel(activeIndex)"><i class="el-icon-d-arrow-right"></i>关闭右侧页签</li> |
| | | <el-divider></el-divider> |
| | |
| | | </el-card> |
| | | </el-col> |
| | | </div> |
| | | <!-- 修改密码 --> |
| | | <el-dialog |
| | | title="修改密码" |
| | | :visible.sync="editVisible" |
| | | width="400px" |
| | | :before-close="handleClose"> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="24"> |
| | | <div class="search_label"><span class="required-span">* </span>旧密码:</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="query.oldPassword" size="small" clearable show-password></el-input> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="24"> |
| | | <div class="search_label"><span class="required-span">* </span>新密码:</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="query.newPassWord" size="small" clearable show-password></el-input> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="handleClose">取 消</el-button> |
| | | <el-button type="primary" @click="handleEdit">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <notice ref="notice" @goNoticeDetail="checkForUnreadData()" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }); |
| | | import menus from '../../static/js/menu.js' |
| | | import nullFace from '../view/404.vue' |
| | | import notice from './notice.vue' |
| | | comObj['nullFace'] = nullFace |
| | | export default { |
| | | components: comObj, |
| | | components: {...comObj,notice}, |
| | | data() { |
| | | return { |
| | | userName: "value", |
| | |
| | | tabs: [], |
| | | upIndex: 0, |
| | | activeIndex: 0, |
| | | power: [] |
| | | power: [], |
| | | editVisible:false, |
| | | query:{}, |
| | | newMsg:false, |
| | | timer:null, |
| | | menuId: 0 |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | k: 0, |
| | | v: "个人首页", |
| | | i: "font icon-a-Group1124", |
| | | u: "nullFace" |
| | | u: "index-index" |
| | | }] |
| | | } |
| | | this.tabActive = JSON.parse(localStorage.getItem('tabActive')) |
| | |
| | | this.activeBox = 0 |
| | | } |
| | | this.getPower() |
| | | this.timer&&clearInterval(this.timer); |
| | | this.checkForUnreadData() |
| | | this.timer = setInterval(()=>{ |
| | | this.checkForUnreadData() |
| | | },30000) |
| | | }, |
| | | methods: { |
| | | saveClick(){ |
| | |
| | | k: 0, |
| | | v: "个人首页", |
| | | i: "font icon-a-Group1124", |
| | | u: "nullFace" |
| | | u: "index-index" |
| | | }] |
| | | this.saveClick() |
| | | }, |
| | |
| | | }, |
| | | // 右键菜单 |
| | | rightKeyMenu(id, e) { |
| | | if (id == 0) return |
| | | // if (id == 0) return |
| | | this.menuId = id |
| | | this.activeIndex = id |
| | | var x = e.clientX + 'px' |
| | | var y = e.clientY + 'px' |
| | |
| | | if (count > 4) return 8 |
| | | if (count > 1) return 12 |
| | | if (count == 1) return 24 |
| | | } |
| | | } |
| | | }, |
| | | // 修改密码-打开弹窗 |
| | | handleCommand(e){ |
| | | this.editVisible = true; |
| | | }, |
| | | handleEdit(){ |
| | | if (!this.query.oldPassword) { |
| | | this.$message.error('请填写旧密码') |
| | | return |
| | | } |
| | | if (!this.query.newPassWord) { |
| | | this.$message.error('请填写旧密码') |
| | | return |
| | | } |
| | | this.$axios.post(this.$api.user.upUserPassword, {...this.query}).then(res => { |
| | | if (res.code == 201) { |
| | | this.$message.error('修改失败') |
| | | return |
| | | } |
| | | this.$message.success('修改成功') |
| | | this.editVisible = false |
| | | this.query = {} |
| | | this.out(); |
| | | }) |
| | | }, |
| | | handleClose(){ |
| | | this.editVisible = false |
| | | this.query = {} |
| | | }, |
| | | openNotice(){ |
| | | this.$refs.notice.open() |
| | | this.$refs.notice.handleType() |
| | | }, |
| | | checkForUnreadData(){ |
| | | this.$axios.get(this.$api.informationNotification.checkForUnreadData).then(res => { |
| | | if (res.code == 201) { |
| | | return |
| | | } |
| | | this.newMsg = res.data |
| | | }) |
| | | } |
| | | }, |
| | | destroyed() { |
| | | this.timer&&clearInterval(this.timer); |
| | | } |
| | | }; |
| | | </script> |