From d8b570430066fae42d6884671cef541fc820de1c Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Fri, 15 Nov 2024 14:42:44 +0800
Subject: [PATCH] 动态路由
---
src/layout/components/Navbar.vue | 129 +++++-------------------------------------
1 files changed, 16 insertions(+), 113 deletions(-)
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 2f8c19a..4c30253 100644
--- a/src/layout/components/Navbar.vue
+++ b/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%;
--
Gitblit v1.9.2