Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
9
91isoft_web_vue3
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张伯涛
91isoft_web_vue3
Commits
2236c587
Commit
2236c587
authored
Jan 26, 2024
by
张伯涛
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/1.0.0_RBAC' into 1.0.0_RBAC
parents
d1514799
d136452f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
6 deletions
+17
-6
index.vue
src/layout/components/Sidebar/index.vue
+3
-2
user.ts
src/store/modules/user.ts
+14
-4
No files found.
src/layout/components/Sidebar/index.vue
View file @
2236c587
...
@@ -6,9 +6,10 @@ import { useSettingsStore } from "@/store/modules/settings";
...
@@ -6,9 +6,10 @@ import { useSettingsStore } from "@/store/modules/settings";
import
{
usePermissionStore
}
from
"@/store/modules/permission"
;
import
{
usePermissionStore
}
from
"@/store/modules/permission"
;
import
{
useAppStore
}
from
"@/store/modules/app"
;
import
{
useAppStore
}
from
"@/store/modules/app"
;
import
{
storeToRefs
}
from
"pinia"
;
import
{
storeToRefs
}
from
"pinia"
;
import
{
useUserStore
}
from
"@/store/modules/user"
;
const
settingsStore
=
useSettingsStore
();
const
settingsStore
=
useSettingsStore
();
const
permissionStore
=
usePermission
Store
();
const
userStore
=
useUser
Store
();
const
appStore
=
useAppStore
();
const
appStore
=
useAppStore
();
const
{
sidebarLogo
}
=
storeToRefs
(
settingsStore
);
const
{
sidebarLogo
}
=
storeToRefs
(
settingsStore
);
const
layout
=
computed
(()
=>
settingsStore
.
layout
);
const
layout
=
computed
(()
=>
settingsStore
.
layout
);
...
@@ -32,7 +33,7 @@ watch(
...
@@ -32,7 +33,7 @@ watch(
>
>
<logo
v-if=
"sidebarLogo"
:collapse=
"!appStore.sidebar.opened"
/>
<logo
v-if=
"sidebarLogo"
:collapse=
"!appStore.sidebar.opened"
/>
<el-scrollbar
v-if=
"showContent"
>
<el-scrollbar
v-if=
"showContent"
>
<LeftMenu
:menu-list=
"
permissionStore.route
s"
base-path=
""
/>
<LeftMenu
:menu-list=
"
userStore.menu
s"
base-path=
""
/>
</el-scrollbar>
</el-scrollbar>
<NavRight
v-if=
"layout === 'top'"
/>
<NavRight
v-if=
"layout === 'top'"
/>
</div>
</div>
...
...
src/store/modules/user.ts
View file @
2236c587
...
@@ -11,9 +11,14 @@ import { UserInfo } from "@/api/user/types";
...
@@ -11,9 +11,14 @@ import { UserInfo } from "@/api/user/types";
import
{
getToken
,
setToken
}
from
"@/utils/auth"
;
import
{
getToken
,
setToken
}
from
"@/utils/auth"
;
import
{
ref
}
from
"vue"
;
import
{
ref
}
from
"vue"
;
import
{
isBoolean
}
from
"lodash"
;
const
Layout
=
()
=>
import
(
"@/layout/index.vue"
);
const
Layout
=
()
=>
import
(
"@/layout/index.vue"
);
const
modules
=
import
.
meta
.
glob
(
"../../views/**/**.vue"
);
const
modules
=
import
.
meta
.
glob
(
"../../views/**/**.vue"
);
type
CustomRoute
=
RouteRecordRaw
&
{
hidden
?:
boolean
;
};
export
const
useUserStore
=
defineStore
(
"user"
,
()
=>
{
export
const
useUserStore
=
defineStore
(
"user"
,
()
=>
{
const
user
=
reactive
<
UserInfo
>
({
const
user
=
reactive
<
UserInfo
>
({
token
:
getToken
(),
token
:
getToken
(),
...
@@ -108,7 +113,7 @@ export const useUserStore = defineStore("user", () => {
...
@@ -108,7 +113,7 @@ export const useUserStore = defineStore("user", () => {
// 接口获取所有路由
// 接口获取所有路由
if
(
menusList
.
length
>
0
)
{
if
(
menusList
.
length
>
0
)
{
// 根据角色获取有访问权限的路由
// 根据角色获取有访问权限的路由
const
accessedRoutes
=
filterAsyncRoutes
(
menusList
);
const
accessedRoutes
=
filterAsyncRoutes
(
menusList
,
0
);
setRoutes
(
accessedRoutes
);
setRoutes
(
accessedRoutes
);
resolve
(
accessedRoutes
);
resolve
(
accessedRoutes
);
}
else
{
}
else
{
...
@@ -125,13 +130,17 @@ export const useUserStore = defineStore("user", () => {
...
@@ -125,13 +130,17 @@ export const useUserStore = defineStore("user", () => {
* 递归过滤有权限的异步(动态)路由
* 递归过滤有权限的异步(动态)路由
*
*
* @param routes 接口返回的异步(动态)路由
* @param routes 接口返回的异步(动态)路由
* @param upIndex 上一个Index
* @returns 返回用户有权限的异步(动态)路由
* @returns 返回用户有权限的异步(动态)路由
*/
*/
function
filterAsyncRoutes
(
routes
:
RouteRecordRaw
[]
)
{
function
filterAsyncRoutes
(
routes
:
CustomRoute
[],
upIndex
:
number
)
{
return
routes
.
filter
((
route
)
=>
{
return
routes
.
filter
((
route
,
nextIndex
)
=>
{
if
(
route
.
path
[
0
]
!==
"/"
)
{
if
(
route
.
path
[
0
]
!==
"/"
)
{
route
.
path
=
"/"
+
route
.
path
;
route
.
path
=
"/"
+
route
.
path
;
}
}
if
(
route
.
meta
&&
isBoolean
(
route
.
hidden
))
{
route
.
meta
.
hidden
=
route
.
hidden
;
}
if
(
route
.
component
)
{
if
(
route
.
component
)
{
// Layout组件特殊处理
// Layout组件特殊处理
if
(
route
.
component
?.
toString
()
===
"Layout"
)
{
if
(
route
.
component
?.
toString
()
===
"Layout"
)
{
...
@@ -141,7 +150,7 @@ export const useUserStore = defineStore("user", () => {
...
@@ -141,7 +150,7 @@ export const useUserStore = defineStore("user", () => {
}
}
}
}
if
(
route
.
children
!=
null
&&
route
.
children
&&
route
.
children
.
length
)
{
if
(
route
.
children
!=
null
&&
route
.
children
&&
route
.
children
.
length
)
{
route
.
children
=
filterAsyncRoutes
(
route
.
children
);
route
.
children
=
filterAsyncRoutes
(
route
.
children
,
nextIndex
);
}
}
return
true
;
return
true
;
});
});
...
@@ -149,6 +158,7 @@ export const useUserStore = defineStore("user", () => {
...
@@ -149,6 +158,7 @@ export const useUserStore = defineStore("user", () => {
return
{
return
{
user
,
user
,
menus
,
login
,
login
,
getUserInfo
,
getUserInfo
,
logout
,
logout
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment