马宇豪
2024-11-15 d8b570430066fae42d6884671cef541fc820de1c
src/layout/components/Navbar.vue
@@ -16,7 +16,7 @@
<!--          <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />-->
<!--        </el-tooltip>-->
        <screenfull id="screenfull" class="right-menu-item hover-effect" />
<!--        <screenfull id="screenfull" class="right-menu-item hover-effect" />-->
<!--        <el-tooltip content="布局大小" effect="dark" placement="bottom">-->
<!--          <size-select id="size-select" class="right-menu-item hover-effect" />-->
@@ -25,8 +25,7 @@
      <div class="avatar-container">
        <el-dropdown @command="handleCommand" class="right-menu-item hover-effect" trigger="click">
          <div class="avatar-wrapper">
<!--            <img :src="userStore.avatar" class="user-avatar" />-->
            <img src="../../assets/images/avator.png" class="user-avatar" />
            <img :src="avator" class="user-avatar" />
            <el-icon><caret-bottom /></el-icon>
          </div>
          <template #dropdown>
@@ -34,13 +33,10 @@
<!--              <router-link to="/user/profile">-->
<!--                <el-dropdown-item>个人中心</el-dropdown-item>-->
<!--              </router-link>-->
              <el-dropdown-item command="info">
                <span>基本信息</span>
              </el-dropdown-item>
              <el-dropdown-item command="password">
                <span>修改密码</span>
              </el-dropdown-item>
              <el-dropdown-item divided command="logout">
<!--              <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings">-->
<!--                <span>布局设置</span>-->
<!--              </el-dropdown-item>-->
              <el-dropdown-item command="logout">
                <span>退出登录</span>
              </el-dropdown-item>
            </el-dropdown-menu>
@@ -48,14 +44,11 @@
        </el-dropdown>
      </div>
    </div>
    <review-dialog ref="reviewRef" ></review-dialog>
    <register ref="regRef" @getList="getList" />
    <supervise-dialog ref="superRef"></supervise-dialog>
  </div>
</template>
<script setup>
import {ElMessage, ElMessageBox} from 'element-plus'
import { ElMessageBox } from 'element-plus'
import Breadcrumb from '@/components/Breadcrumb'
import TopNav from '@/components/TopNav'
import Hamburger from '@/components/Hamburger'
@@ -67,118 +60,28 @@
import useAppStore from '@/store/modules/app'
import useUserStore from '@/store/modules/user'
import useSettingsStore from '@/store/modules/settings'
import {getToken, removeToken} from "@/utils/auth";
import {onMounted, ref} from "vue";
import Cookies from "js-cookie";
import reviewDialog from "@/views/safetyReview/institution/components/viewInstitution.vue"
import superviseDialog from "@/views/safetyReview/userManage/superviseUsers/components/superviseDialog.vue"
import {Register} from "@/layout/components";
import {getUserById} from "@/api/sysUsers";
import menu from "@/layout/components/Sidebar/menu";
import avator from '@/assets/images/avator.png'
const appStore = useAppStore()
const userStore = useUserStore()
const settingsStore = useSettingsStore()
const reviewRef = ref();
const regRef = ref(null)
const superRef = ref();
const userInfo = ref();
onMounted(()=>{
  if(getToken()){
    userInfo.value = JSON.parse(Cookies.get('userInfo'))
    console.log("userInfo",userInfo.value )
  }
  getState();
})
const getState = async () => {
  console.log('navbar')
  const param = {
    userId: userInfo.value.id
  }
  const res = await getUserById(param)
  if(res.code == 200){
    userInfo.value.state = res.data.state;
    // if(userInfo.value.state===2){
    //   sidebarRouters.value =  menu.agencyMenu
    //   Cookies.set('routers',JSON.stringify(sidebarRouters.value))
    //   location.href = '/project';
    // }
    // else {
    //   location.href = '/noMenu';
    // }
  }else{
    ElMessage({
      type: 'warning',
      message: res.message
    })
  }
}
function toggleSideBar() {
  appStore.toggleSideBar()
}
function handleCommand(command) {
  switch (command) {
    case "info":
      getInfo();
    case "setLayout":
      setLayout();
      break;
    case "logout":
      logout();
      break;
    case "password":
      editPsd();
      break;
    default:
      break;
  }
}
function getInfo() {
  console.log("getInfo",userInfo.value)
  //机构用户
  if(userInfo.value.identity === 1){
    //审核驳回(可修改)
    if(userInfo.value.state === 3){
      const obj = {
        id: userInfo.value.id,
        username: userInfo.value.username,
        agencyId: userInfo.value.agentId
      }
      regRef.value.openDialog('reject', obj);
    }else{
      //审核通过、未审核状态(不可修改)
      const obj = {
        agencyId: userInfo.value.agentId
      }
      reviewRef.value.openDialog(obj,'view')
    }
  }
  //监管用户
  else if (userInfo.value.identity === 0) {
    const obj = {
      id: userInfo.value.id
    }
    superRef.value.openDialog('view', obj);
  }
}
function editPsd() {
  superRef.value.openDialog('pwd', userInfo.value);
}
const sidebarRouters = ref([])
const getList = () => {
  // getState()
  location.href = '/noMenu';
  // if(userInfo.value.state===2){
  //   sidebarRouters.value =  menu.agencyMenu
  //   Cookies.set('routers',JSON.stringify(sidebarRouters.value))
  //   location.href = '/project';
  // }else {
  //   location.href = '/noMenu';
  // }
}
function logout() {
@@ -187,9 +90,9 @@
    cancelButtonText: '取消',
    type: 'warning'
  }).then(() => {
    removeToken()
    location.href = '/homePage';
    userStore.logOut().then(() => {
      location.href = '/index';
    })
  }).catch(() => { });
}
@@ -205,8 +108,8 @@
  overflow: hidden;
  position: relative;
  background: #fff;
  border-radius: 0.4rem 0.4rem 0 0;
  border-bottom: 1px solid #d5dce5;
  box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
  .hamburger-container {
    line-height: 46px;
    height: 100%;