Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mocp-uniapp
Overview
Overview
Details
Activity
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
pangchong
mocp-uniapp
Commits
52fbb4b0
Commit
52fbb4b0
authored
May 24, 2024
by
pangchong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 菜单数据调整
parent
c944567e
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
62 additions
and
15 deletions
+62
-15
src/components/global-page/global-page.vue
+3
-1
src/pages/chat/index.vue
+3
-1
src/pages/login/index.vue
+1
-0
src/pages/mine/index.vue
+16
-2
src/pages/panel/app-center/index.vue
+3
-3
src/pages/panel/panel-menu.vue
+1
-1
src/store/user.js
+20
-4
src/utils/http.js
+15
-3
No files found.
src/components/global-page/global-page.vue
View file @
52fbb4b0
...
@@ -21,7 +21,7 @@
...
@@ -21,7 +21,7 @@
<view
:style=
"
{ height: safeAreaInsets?.top + 'px' }" v-if="custom">
</view>
<view
:style=
"
{ height: safeAreaInsets?.top + 'px' }" v-if="custom">
</view>
<!-- 自定义导航栏 -->
<!-- 自定义导航栏 -->
<global-navbar
:title=
"title"
v-if=
"showNavbar"
>
<global-navbar
:title=
"title"
v-if=
"showNavbar"
>
<template
#
left
>
<template
#
left
v-if=
"pages.length > 1"
>
<view
v-if=
"isEdit"
class=
"cancel"
@
tap=
"handleCancel"
>
取消
</view>
<view
v-if=
"isEdit"
class=
"cancel"
@
tap=
"handleCancel"
>
取消
</view>
<uni-icons
type=
"left"
size=
"16"
@
tap=
"goBack"
v-else
></uni-icons>
<uni-icons
type=
"left"
size=
"16"
@
tap=
"goBack"
v-else
></uni-icons>
</
template
>
</
template
>
...
@@ -137,6 +137,8 @@ const handleSave = () => {
...
@@ -137,6 +137,8 @@ const handleSave = () => {
const
handleChangeEdit
=
(
value
)
=>
{
const
handleChangeEdit
=
(
value
)
=>
{
isEdit
.
value
=
value
isEdit
.
value
=
value
}
}
// 获取页面栈
const
pages
=
getCurrentPages
()
defineExpose
({
defineExpose
({
handleChangeEdit
handleChangeEdit
})
})
...
...
src/pages/chat/index.vue
View file @
52fbb4b0
<
template
>
沟通
</
template
>
<
template
>
<global-page
title=
"沟通"
></global-page>
</
template
>
<
script
setup
></
script
>
<
script
setup
></
script
>
...
...
src/pages/login/index.vue
View file @
52fbb4b0
...
@@ -68,6 +68,7 @@ const handleLogin = async () => {
...
@@ -68,6 +68,7 @@ const handleLogin = async () => {
}
}
}
}
onLoad
(()
=>
{
onLoad
(()
=>
{
loginForm
.
verifyCode
=
''
getGifCaptcha
()
getGifCaptcha
()
})
})
</
script
>
</
script
>
...
...
src/pages/mine/index.vue
View file @
52fbb4b0
<
template
>
个人中心
</
template
>
<
template
>
<global-page
title=
"个人中心"
>
<template
#
bottom
>
<global-button
size=
"large"
type=
"primary"
@
tap=
"handleLogOut"
>
退出登录
</global-button>
</
template
>
</global-page>
</template>
<
script
setup
></
script
>
<
script
setup
>
import
useUserStore
from
'@/store/user'
//退出登录
const
userStore
=
useUserStore
()
const
handleLogOut
=
()
=>
{
userStore
.
handleLogOut
()
}
</
script
>
<
style
lang=
"scss"
></
style
>
<
style
lang=
"scss"
></
style
>
src/pages/panel/app-center/index.vue
View file @
52fbb4b0
...
@@ -52,13 +52,13 @@ const pageRef = ref()
...
@@ -52,13 +52,13 @@ const pageRef = ref()
const
handleCancel
=
()
=>
{
const
handleCancel
=
()
=>
{
isEdit
.
value
=
false
isEdit
.
value
=
false
pageRef
.
value
?.
handleChangeEdit
(
false
)
pageRef
.
value
?.
handleChangeEdit
(
false
)
homeMenuList
.
value
=
cloneDeep
(
userStore
.
h
omeMenuList
)
homeMenuList
.
value
=
cloneDeep
(
userStore
.
getH
omeMenuList
)
}
}
//保存
//保存
const
handleSave
=
()
=>
{
const
handleSave
=
()
=>
{
isEdit
.
value
=
false
isEdit
.
value
=
false
pageRef
.
value
?.
handleChangeEdit
(
false
)
pageRef
.
value
?.
handleChangeEdit
(
false
)
userStore
.
homeMenuList
=
cloneDeep
(
homeMenuList
.
value
)
userStore
.
changeHomeMenuList
(
cloneDeep
(
homeMenuList
.
value
)
)
uni
.
$message
.
showToast
(
'保存菜单成功'
)
uni
.
$message
.
showToast
(
'保存菜单成功'
)
}
}
//编辑
//编辑
...
@@ -69,7 +69,7 @@ const handleEdit = () => {
...
@@ -69,7 +69,7 @@ const handleEdit = () => {
//操作菜单
//操作菜单
const
homeMenuList
=
ref
([])
const
homeMenuList
=
ref
([])
onLoad
(()
=>
{
onLoad
(()
=>
{
homeMenuList
.
value
=
cloneDeep
(
userStore
.
h
omeMenuList
)
homeMenuList
.
value
=
cloneDeep
(
userStore
.
getH
omeMenuList
)
})
})
const
handleHomeMenu
=
(
menu
,
type
)
=>
{
const
handleHomeMenu
=
(
menu
,
type
)
=>
{
if
(
isEdit
.
value
)
{
if
(
isEdit
.
value
)
{
...
...
src/pages/panel/panel-menu.vue
View file @
52fbb4b0
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
<scroll-view
class=
"tab-content"
scroll-y=
"true"
>
<scroll-view
class=
"tab-content"
scroll-y=
"true"
>
<view
class=
"tab-content-item"
v-if=
"activeIndex == 0"
>
<view
class=
"tab-content-item"
v-if=
"activeIndex == 0"
>
<view
class=
"menu-list"
>
<view
class=
"menu-list"
>
<menu-item
class=
"menu-item"
v-for=
"item in userStore.
h
omeMenuList"
:data=
"item"
:key=
"item.id"
@
tap=
"goTo(item.url)"
></menu-item>
<menu-item
class=
"menu-item"
v-for=
"item in userStore.
getH
omeMenuList"
:data=
"item"
:key=
"item.id"
@
tap=
"goTo(item.url)"
></menu-item>
<menu-item
class=
"menu-item"
:data=
"userStore.allMenuItem"
@
tap=
"goAppCenter"
></menu-item>
<menu-item
class=
"menu-item"
:data=
"userStore.allMenuItem"
@
tap=
"goAppCenter"
></menu-item>
</view>
</view>
</view>
</view>
...
...
src/store/user.js
View file @
52fbb4b0
...
@@ -21,10 +21,10 @@ const useUserStore = defineStore('user', {
...
@@ -21,10 +21,10 @@ const useUserStore = defineStore('user', {
state
:
()
=>
{
state
:
()
=>
{
return
{
return
{
token
:
''
,
token
:
''
,
userInfo
:
undefined
,
userInfo
:
undefined
,
//用户信息
menuList
:
cloneDeep
(
menuList
),
menuList
:
cloneDeep
(
menuList
),
//全部菜单
homeMenuList
:
cloneDeep
(
menuList
)
,
allMenuItem
:
{
id
:
999
,
name
:
'全部菜单'
,
icon
:
'all'
,
group
:
''
,
count
:
0
}
,
all
MenuItem
:
{
id
:
999
,
name
:
'全部菜单'
,
icon
:
'all'
,
group
:
''
,
count
:
0
}
all
HomeMenuList
:
[]
//所有登录用户的首页菜单信息
}
}
},
},
getters
:
{
getters
:
{
...
@@ -39,6 +39,10 @@ const useUserStore = defineStore('user', {
...
@@ -39,6 +39,10 @@ const useUserStore = defineStore('user', {
groups
[
item
.
group
].
push
(
item
)
groups
[
item
.
group
].
push
(
item
)
return
groups
return
groups
},
{})
},
{})
},
//获取当前登录用户的首页菜单
getHomeMenuList
(
state
)
{
return
state
.
allHomeMenuList
.
find
((
item
)
=>
item
.
userId
==
state
.
userInfo
?.
id
)?.
homeMenuList
||
state
.
menuList
}
}
},
},
actions
:
{
actions
:
{
...
@@ -46,6 +50,13 @@ const useUserStore = defineStore('user', {
...
@@ -46,6 +50,13 @@ const useUserStore = defineStore('user', {
setUserInfo
(
data
)
{
setUserInfo
(
data
)
{
this
.
token
=
data
.
token
this
.
token
=
data
.
token
this
.
userInfo
=
data
this
.
userInfo
=
data
//加入用户首页菜单信息
if
(
!
this
.
allHomeMenuList
.
find
((
item
)
=>
item
.
userId
==
this
.
userInfo
.
id
))
{
this
.
allHomeMenuList
.
push
({
userId
:
this
.
userInfo
.
id
,
homeMenuList
:
this
.
menuList
})
}
//跳转工作台
//跳转工作台
uni
.
switchTab
({
url
:
'/pages/panel/index'
})
uni
.
switchTab
({
url
:
'/pages/panel/index'
})
},
},
...
@@ -55,6 +66,11 @@ const useUserStore = defineStore('user', {
...
@@ -55,6 +66,11 @@ const useUserStore = defineStore('user', {
this
.
userInfo
=
undefined
this
.
userInfo
=
undefined
//返回登录页面
//返回登录页面
uni
.
redirectTo
({
url
:
'/pages/login/index'
})
uni
.
redirectTo
({
url
:
'/pages/login/index'
})
},
//修改用户首页菜单
changeHomeMenuList
(
menuList
)
{
const
index
=
this
.
allHomeMenuList
.
findIndex
((
item
)
=>
item
.
userId
==
this
.
userInfo
.
id
)
this
.
allHomeMenuList
[
index
].
homeMenuList
=
menuList
}
}
},
},
// 配置持久化
// 配置持久化
...
...
src/utils/http.js
View file @
52fbb4b0
...
@@ -123,11 +123,23 @@ export const http = (options) => {
...
@@ -123,11 +123,23 @@ export const http = (options) => {
const
statusCode
=
parseInt
(
res
.
statusCode
)
const
statusCode
=
parseInt
(
res
.
statusCode
)
if
(
statusCode
>=
200
&&
statusCode
<
300
)
{
if
(
statusCode
>=
200
&&
statusCode
<
300
)
{
// 2.1 提取核心数据 res.data
// 2.1 提取核心数据 res.data
resolve
(
res
.
data
)
if
(
res
.
data
.
code
==
403
)
{
}
else
if
(
statusCode
===
401
)
{
const
userStore
=
useUserStore
()
uni
.
$message
.
showToast
(
res
.
data
.
message
)
setTimeout
(()
=>
{
userStore
.
handleLogOut
()
},
500
)
reject
(
res
)
}
else
{
resolve
(
res
.
data
)
}
}
else
if
(
statusCode
==
401
)
{
// 401错误 -> 清理用户信息,跳转到登录页
// 401错误 -> 清理用户信息,跳转到登录页
const
userStore
=
useUserStore
()
const
userStore
=
useUserStore
()
userStore
.
handleLogOut
()
uni
.
$message
.
showToast
(
res
.
data
.
message
)
setTimeout
(()
=>
{
userStore
.
handleLogOut
()
},
500
)
reject
(
res
)
reject
(
res
)
}
else
{
}
else
{
// 其他错误 -> 根据后端错误信息轻提示
// 其他错误 -> 根据后端错误信息轻提示
...
...
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