value
2024-05-16 083c818af77d33d619dba3dc20f94e996225a1c7
src/view/index.vue
@@ -16,7 +16,7 @@
   }
   .logo {
      width: 130px;
      width: 118px;
      height: 40px;
   }
@@ -53,6 +53,12 @@
   .user span {
      font-size: 14px;
   }
  .el-dropdown{
    display: flex;
    align-items: center;
    color: #000;
    cursor: pointer;
  }
   .left {
      height: calc(100vh - 48px - 40px);
@@ -219,8 +225,8 @@
   .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);
   }
@@ -263,6 +269,22 @@
      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>
@@ -273,8 +295,16 @@
         </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>
@@ -327,7 +357,7 @@
         <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>
@@ -336,6 +366,34 @@
            </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>
@@ -352,9 +410,10 @@
   });
   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",
@@ -366,7 +425,12 @@
            tabs: [],
            upIndex: 0,
            activeIndex: 0,
            power: []
            power: [],
        editVisible:false,
        query:{},
        newMsg:false,
        timer:null,
        menuId: 0
         };
      },
      created() {
@@ -381,7 +445,7 @@
               k: 0,
               v: "个人首页",
               i: "font icon-a-Group1124",
               u: "nullFace"
               u: "index-index"
            }]
         }
         this.tabActive = JSON.parse(localStorage.getItem('tabActive'))
@@ -397,6 +461,11 @@
            this.activeBox = 0
         }
         this.getPower()
      this.timer&&clearInterval(this.timer);
      this.checkForUnreadData()
      this.timer = setInterval(()=>{
        this.checkForUnreadData()
      },30000)
      },
      methods: {
         saveClick(){
@@ -444,7 +513,7 @@
               k: 0,
               v: "个人首页",
               i: "font icon-a-Group1124",
               u: "nullFace"
               u: "index-index"
            }]
            this.saveClick()
         },
@@ -478,7 +547,8 @@
         },
         // 右键菜单
         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'
@@ -524,7 +594,50 @@
            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>