Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
CFFP-HB
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chao Sun
CFFP-HB
Commits
89bdd2d4
Commit
89bdd2d4
authored
Jul 15, 2025
by
Sweet Zhang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into feature-20250614-首页菜单优化
parents
dafcad2d
4a76ed1b
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
437 additions
and
27 deletions
+437
-27
App.vue
+7
-0
components/resigter/resigter.vue
+400
-0
myPackageA/applyFranchise/applyFranchise.vue
+9
-6
pages.json
+3
-9
util/interceptor.ts
+12
-3
util/router.js
+6
-9
No files found.
App.vue
View file @
89bdd2d4
...
@@ -4,6 +4,11 @@
...
@@ -4,6 +4,11 @@
import
{
baseURL
,
apiURL
,
cffpURL
,
companyInfo
}
from
"@/environments/environment"
;
import
{
baseURL
,
apiURL
,
cffpURL
,
companyInfo
}
from
"@/environments/environment"
;
import
api
from
'./api/api'
;
import
api
from
'./api/api'
;
export
default
{
export
default
{
data
()
{
return
{
invitationHandled
:
false
// 在data中明确定义
}
},
onLaunch
:
function
()
{
onLaunch
:
function
()
{
console
.
log
(
'App Launch'
);
console
.
log
(
'App Launch'
);
if
(
!
uni
.
getStorageSync
(
'loginType'
)){
if
(
!
uni
.
getStorageSync
(
'loginType'
)){
...
@@ -99,10 +104,12 @@
...
@@ -99,10 +104,12 @@
const
pages
=
getCurrentPages
();
const
pages
=
getCurrentPages
();
if
(
pages
.
length
>
0
)
{
if
(
pages
.
length
>
0
)
{
const
currentRoute
=
pages
[
pages
.
length
-
1
].
route
;
const
currentRoute
=
pages
[
pages
.
length
-
1
].
route
;
console
.
log
(
'currentRoute'
,
currentRoute
);
const
whiteList
=
[
const
whiteList
=
[
'/myPackageA/login/login'
,
'/myPackageA/login/login'
,
'/pages/invitationRegister/invitationlogin'
,
'/pages/invitationRegister/invitationlogin'
,
'/myPackageA/applyFranchise/applyFranchise'
,
'/myPackageA/applyFranchise/applyFranchise'
,
'/pages/applyFranchise/applyFranchise'
,
'/myPackageA/ruleAndContract/clause'
,
'/myPackageA/ruleAndContract/clause'
,
'/pages/courselist/courselist'
,
'/pages/courselist/courselist'
,
'/pages/courseDetail/courseDetail'
,
'/pages/courseDetail/courseDetail'
,
...
...
components/resigter/resigter.vue
0 → 100644
View file @
89bdd2d4
<
template
>
<view
class=
"applyBox"
>
<view
style=
"height: 550rpx;"
>
<view
class=
"inputBox"
>
<view
class=
"txt"
>
<text
class=
"require"
>
*
</text>
昵称
<text
class=
"desTxt"
>
(用于邀请好友及统计业绩显示)
</text>
</view>
<view
class=
""
>
<input
class=
"user-input"
maxlength=
"10"
type=
"text"
placeholder=
"请输入2~10个字符"
v-model=
"form.nickName"
:disabled=
"editNickName"
/>
</view>
</view>
<view
class=
"inputBox"
>
<view
class=
"txt"
>
<text
class=
"require"
>
*
</text>
手机号码
<text
class=
"desTxt"
>
(账号唯一标识)
</text>
</view>
<view
class=
"codeBox"
>
<input
type=
"number"
class=
"user-input"
name=
"mobileNo"
placeholder=
"请输入手机号"
v-model=
"form.mobile"
maxlength=
"11"
:disabled=
"editMobile"
/>
<text
:class=
"
{'grey':disabledSendBtn}"
@click.stop="sendMessage()"
v-if="loginType=== 'visitor'"
>
{{
sendCodeHtml
}}
</text>
</view>
</view>
<view
class=
"inputBox"
v-if=
"loginType=== 'visitor'"
>
<view
class=
"txt"
>
<text
class=
"require"
>
*
</text>
验证码
</view>
<view
class=
""
>
<input
type=
"number"
class=
"user-input"
name=
"mobileNo"
placeholder=
"请输入短信验证码"
v-model=
"form.code"
maxlength=
"6"
/>
</view>
</view>
<view
class=
"protol"
>
<view
class=
"empty"
v-if=
"!agreeFlag"
@
click=
"agreeFlag=true"
></view>
<text
v-else
class=
"iconfont icon-icon_duihao-mian"
@
click=
"agreeFlag=false"
></text>
<text
style=
"color: #666;"
>
我已阅读并同意
</text>
<text
style=
"color: #20269B;"
@
click=
"getFile(1)"
>
服务协议
</text>
<text
style=
"color: #666666;"
>
和
</text>
<text
style=
"color: #20269B;"
@
click=
"getFile(2)"
>
隐私条款
</text>
</view>
</view>
<view
class=
"btnBox"
@
click=
"$emit('apply')"
>
{{
loginType
==
'codelogin'
?
'确认加盟'
:
'注册并加盟'
}}
</view>
</view>
</
template
>
<
script
>
import
api
from
'@/api/api'
;
import
*
as
environment
from
"@/environments/environment"
;
import
common
from
'@/common/common'
;
import
dataHandling
from
"@/util/dataHandling"
;
export
default
{
props
:
{
// 弹窗内容
form
:
{
type
:
Object
,
},
editNickName
:
{
type
:
Boolean
,
default
:
false
,
},
editMobile
:
{
type
:
Boolean
,
default
:
false
,
},
},
data
()
{
return
{
companyInfo
:
environment
.
companyInfo
,
imgType
:
environment
.
companyInfo
.
imgType
,
baseURL
:
environment
.
baseURL
,
agreeFlag
:
false
,
sendCodeHtml
:
'发送验证码'
,
disabledSendBtn
:
false
,
timer
:
null
,
remainTimes
:
60
,
loginType
:
uni
.
getStorageSync
(
'loginType'
),
}
},
onLoad
(
options
){
this
.
loginType
=
uni
.
getStorageSync
(
'loginType'
)
},
onShow
(){
if
(
uni
.
getStorageSync
(
'loginType'
)){
this
.
loginType
=
uni
.
getStorageSync
(
'loginType'
)
}
},
methods
:
{
getqueryById
(
shareId
){
api
.
queryById
({
id
:
shareId
}).
then
(
res
=>
{
this
.
form
.
nickName
=
res
.
data
.
data
.
name
this
.
form
.
mobile
=
res
.
data
.
data
.
mobileNumber
this
.
editNickName
=
this
.
editMobile
=
true
})
},
jumpPage
(){
uni
.
switchTab
({
url
:
'/pages/index/index'
})
this
.
$refs
.
successJoinPopup
.
close
()
this
.
$refs
.
everyJoinPopup
.
close
()
},
getFile
(
type
){
let
typeName
=
type
==
1
?
'服务协议'
:
type
==
2
?
'隐私条款'
:
''
// dataHandling.pocessTracking(
// '查看协议',
// `查看${typeName}`,
// '点击',
// 2,
// '申请加盟',
// 'pages/saleCourseLists/saleCourseLists'
// )
uni
.
navigateTo
({
url
:
`/myPackageA/ruleAndContract/clause?type=
${
type
}
`
})
},
c_agreeFlag
(){
this
.
agreeFlag
=!
this
.
agreeFlag
;
},
delayTime
()
{
this
.
disabledSendBtn
=
true
;
this
.
timer
=
setInterval
(()
=>
{
this
.
remainTimes
--
;
this
.
sendCodeHtml
=
`
${
this
.
remainTimes
}
(S)`
;
if
(
this
.
remainTimes
<=
0
)
{
this
.
sendCodeHtml
=
'获取验证码'
;
this
.
remainTimes
=
60
;
this
.
disabledSendBtn
=
false
;
clearInterval
(
this
.
timer
);
}
},
1000
);
},
sendMessage
(){
const
params
=
{
mobileNo
:
this
.
form
.
mobile
,
type
:
"1"
,
source
:
"cffp"
}
if
(
common
.
mobileNoValid
(
this
.
form
.
mobile
)){
if
(
!
this
.
disabledSendBtn
){
api
.
verificationCode
(
params
).
then
((
res
)
=>
{
if
(
res
[
'success'
]){
this
.
delayTime
()
}
else
{
common
.
errorDialog
(
2
,
res
[
'message'
])
}
})
}
}
else
{
common
.
errorDialog
(
2
,
'请填写手机号'
)
}
},
gotoApply
(){
if
(
!
this
.
form
.
nickName
){
common
.
errorDialog
(
1
,
'请输入昵称'
);
return
false
;
}
if
(
this
.
form
.
nickName
&&
this
.
form
.
nickName
.
length
<
2
){
common
.
errorDialog
(
1
,
'昵称长度为2~10个字符'
);
return
}
if
(
!
this
.
form
.
mobile
){
common
.
errorDialog
(
1
,
'请输入手机号'
);
return
false
;
}
if
(
!
common
.
mobileNoValid
(
this
.
form
.
mobile
)){
common
.
errorDialog
(
2
,
'手机号格式填写错误'
);
return
false
;
}
if
(
!
this
.
loginType
||
this
.
loginType
===
'visitor'
){
if
(
!
this
.
form
.
code
){
common
.
errorDialog
(
1
,
'请输入验证码'
);
return
false
;
}
}
if
(
!
this
.
agreeFlag
){
uni
.
showToast
({
title
:
'请阅读并勾选'
+
`
${
this
.
companyInfo
.
companyFullName
}
`
+
'服务协议和隐私条款'
,
duration
:
3000
,
icon
:
'none'
})
return
false
;
}
const
params
=
{
loginType
:
'3'
,
...
this
.
form
}
if
(
this
.
loginType
==
'codelogin'
){
this
.
getApply
()
return
}
if
(
!
this
.
loginType
||
this
.
loginType
==
'visitor'
){
api
.
loginVerification
(
params
).
then
((
res
)
=>
{
if
(
res
[
'success'
]){
this
.
userId
=
String
(
res
[
'data'
][
'userId'
]);
uni
.
setStorageSync
(
'isLogin'
,
'1'
);
uni
.
setStorageSync
(
'loginType'
,
'codelogin'
);
uni
.
setStorageSync
(
'cffp_userId'
,
this
.
userId
);
uni
.
setStorageSync
(
'uni-token'
,
res
.
data
[
'token'
]);
uni
.
setStorageSync
(
'isPartner'
,
res
.
data
[
'isPartner'
]);
//是否是合伙人
this
.
queryInfo
()
// 是合伙人就不让在加盟
if
(
res
.
data
.
isPartner
){
this
.
$refs
.
everyJoinPopup
.
open
()
return
}
// 不是合伙人就加盟
if
(
!
res
.
data
.
isPartner
){
this
.
getApply
()
}
}
else
{
uni
.
showToast
({
title
:
res
[
'message'
],
duration
:
2000
,
icon
:
'none'
})
}
})
}
},
queryInfo
()
{
api
.
queryInfo
({
userId
:
uni
.
getStorageSync
(
'cffp_userId'
)}).
then
(
res
=>
{
// 保存用户得个人信息
if
(
res
[
'success'
])
{
this
.
form
.
nickName
=
res
[
'data'
][
'nickName'
]
if
(
this
.
form
.
nickName
){
this
.
editNickName
=
true
}
else
{
this
.
editNickName
=
false
}
const
cffp_userInfo
=
{
name
:
res
[
'data'
][
'realName'
],
mobile
:
res
[
'data'
][
'mobile'
],
partnerType
:
res
[
'data'
][
'partnerType'
],
nickName
:
res
[
'data'
][
'nickName'
],
}
uni
.
setStorageSync
(
'cffp_userInfo'
,
JSON
.
stringify
(
cffp_userInfo
))
}
else
{
uni
.
setStorageSync
(
'loginType'
,
'visitor'
)
}
})
},
// 申请加盟
getApply
(){
let
params
=
{}
if
(
this
.
inviteUserId
){
params
=
{
applyType
:
'1'
,
applyUserId
:
this
.
userId
,
applyMobile
:
this
.
form
.
mobile
,
inviteUserId
:
this
.
inviteUserId
,
nickName
:
this
.
form
.
nickName
,
inviterInvitationCode
:
this
.
invitationCode
,
shareId
:
this
.
shareId
}
// return
}
else
{
params
=
{
applyType
:
'2'
,
applyUserId
:
this
.
userId
,
applyMobile
:
this
.
form
.
mobile
,
nickName
:
this
.
form
.
nickName
}
}
api
.
newSaveApplyInfo
(
params
).
then
((
res
)
=>
{
if
(
res
[
'success'
]){
// 是合伙人就不让在加盟
if
(
res
.
data
.
isPartner
){
this
.
$refs
.
everyJoinPopup
.
open
()
return
}
dataHandling
.
pocessTracking
(
'加盟'
,
`已成功加盟为合伙人`
,
'点击'
,
2
,
'申请加盟'
,
'pages/saleCourseLists/saleCourseLists'
)
this
.
$refs
.
successJoinPopup
.
open
()
}
else
{
uni
.
showToast
({
title
:
res
[
'message'
],
duration
:
2000
,
icon
:
'none'
})
}
})
}
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
.applyBox
{
background-color
:
#fff
;
padding
:
30
rpx
;
border-radius
:
20
rpx
;
margin-top
:
100
rpx
;
box-sizing
:
border-box
;
.inputBox{
margin-bottom
:
20
rpx
;
padding-bottom
:
10
rpx
;
border-bottom
:
1
rpx
solid
#E8E8E8
;
.require{
font-size
:
24
rpx
;
color
:
red
;
}
.desTxt
{
font-size
:
24
rpx
;
color
:
#333333
;
}
.user-input
{
color
:
black
;
font-size
:
26
rpx
;
margin-top
:
15
rpx
;
}
.codeBox
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
color
:
#20279B
;
font-size
:
26
rpx
;
.grey{
color
:
rgba
(
32
,
39
,
155
,
0.5
);
/* 50% 透明 */
}
}
}
.agreeBox
{
padding-top
:
20
rpx
;
font-size
:
26
rpx
;
color
:
#20279B
;
}
.protol
{
display
:
flex
;
align-items
:
center
;
font-size
:
26
rpx
;
.empty{
width
:
30
rpx
;
height
:
30
rpx
;
border
:
1
rpx
solid
#20269B
;
border-radius
:
50%
;
margin-right
:
5
rpx
;
}
.icon-icon_duihao-mian
{
font-size
:
30
rpx
;
color
:
#20269B
;
margin-right
:
5
rpx
;
}
}
.btnBox
{
box-sizing
:
border-box
;
width
:
80%
;
text-align
:
center
;
padding
:
20
rpx
;
border-radius
:
50
rpx
;
background-color
:
#20279B
;
color
:
#fff
;
font-size
:
28
rpx
;
margin
:
0
rpx
50
rpx
30
rpx
50
rpx
;
}
}
</
style
>
\ No newline at end of file
myPackageA/applyFranchise/applyFranchise.vue
View file @
89bdd2d4
...
@@ -15,6 +15,7 @@
...
@@ -15,6 +15,7 @@
优质资源,专业服务
优质资源,专业服务
</view>
</view>
</view>
</view>
<view
class=
"applyBox"
>
<view
class=
"applyBox"
>
<view
style=
"height: 550rpx;"
>
<view
style=
"height: 550rpx;"
>
<view
class=
"inputBox"
>
<view
class=
"inputBox"
>
...
@@ -119,7 +120,7 @@
...
@@ -119,7 +120,7 @@
import
dataHandling
from
"@/util/dataHandling"
;
import
dataHandling
from
"@/util/dataHandling"
;
export
default
{
export
default
{
components
:{
components
:{
everyJoinPopup
everyJoinPopup
,
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -162,7 +163,9 @@
...
@@ -162,7 +163,9 @@
uni
.
clearStorageSync
()
uni
.
clearStorageSync
()
uni
.
setStorageSync
(
'loginType'
,
'visitor'
)
uni
.
setStorageSync
(
'loginType'
,
'visitor'
)
}
}
},
},
onShow
(){
onShow
(){
if
(
uni
.
getStorageSync
(
'loginType'
)){
if
(
uni
.
getStorageSync
(
'loginType'
)){
...
@@ -186,10 +189,7 @@
...
@@ -186,10 +189,7 @@
if
(
!
this
.
inviteUserId
&&
this
.
loginType
==
'codelogin'
&&!
this
.
form
.
nickName
){
if
(
!
this
.
inviteUserId
&&
this
.
loginType
==
'codelogin'
&&!
this
.
form
.
nickName
){
this
.
queryInfo
()
this
.
queryInfo
()
}
}
// 邀请状态
// if(this.inviteUserId){
// this.getqueryById(this.shareId)
// }
},
},
methods
:
{
methods
:
{
getqueryById
(
shareId
){
getqueryById
(
shareId
){
...
@@ -197,7 +197,9 @@
...
@@ -197,7 +197,9 @@
this
.
form
.
nickName
=
res
.
data
.
data
.
name
this
.
form
.
nickName
=
res
.
data
.
data
.
name
this
.
form
.
mobile
=
res
.
data
.
data
.
mobileNumber
this
.
form
.
mobile
=
res
.
data
.
data
.
mobileNumber
this
.
editNickName
=
this
.
editMobile
=
true
this
.
editNickName
=
this
.
editMobile
=
true
if
(
res
.
data
.
data
.
isPartner
){
this
.
$refs
.
successJoinPopup
.
open
()
}
})
})
},
},
jumpPage
(
e
){
jumpPage
(
e
){
...
@@ -225,6 +227,7 @@
...
@@ -225,6 +227,7 @@
c_agreeFlag
(){
c_agreeFlag
(){
this
.
agreeFlag
=!
this
.
agreeFlag
;
this
.
agreeFlag
=!
this
.
agreeFlag
;
},
},
delayTime
()
{
delayTime
()
{
this
.
disabledSendBtn
=
true
;
this
.
disabledSendBtn
=
true
;
this
.
timer
=
setInterval
(()
=>
{
this
.
timer
=
setInterval
(()
=>
{
...
...
pages.json
View file @
89bdd2d4
...
@@ -502,10 +502,7 @@
...
@@ -502,10 +502,7 @@
},{
},{
"path"
:
"applyFranchise/applyFranchise"
,
"path"
:
"applyFranchise/applyFranchise"
,
"style"
:
{
"style"
:
{
"navigationBarTitleText"
:
"申请加盟"
,
"navigationBarTitleText"
:
"申请加盟"
"h5"
:
{
"reload"
:
false
//
禁用自动重新加载
}
}
}
},{
},{
"path"
:
"integralExchange/exchange"
,
"path"
:
"integralExchange/exchange"
,
...
@@ -540,12 +537,9 @@
...
@@ -540,12 +537,9 @@
},{
},{
"path"
:
"ruleAndContract/clause"
,
"path"
:
"ruleAndContract/clause"
,
"style"
:
{
"style"
:
{
"navigationBarTitleText"
:
"协议"
,
"navigationBarTitleText"
:
"协议"
"h5"
:
{
"reload"
:
false
//
禁用自动重新加载
}
}
}
}
},
]
]
},{
},{
"root"
:
"officialWebsite"
,
"root"
:
"officialWebsite"
,
...
...
util/interceptor.ts
View file @
89bdd2d4
import
{
apiURL
,
cffpURL
}
from
"../environments/environment"
;
import
{
apiURL
,
cffpURL
,
sfpUrl
}
from
"../environments/environment"
;
import
api
from
"@/api/api"
;
import
api
from
"@/api/api"
;
// 白名单,不需要携带token就允许被访问的接口
// 白名单,不需要携带token就允许被访问的接口
const
whiteApiList
=
[
`
${
apiURL
}
/authorize/obtainToken`
,
`
${
apiURL
}
/authorize/checkToken`
,
`
${
cffpURL
}
/user/loginVerification`
,
`
${
apiURL
}
/appVersion/checkIsUpdate`
,
const
whiteApiList
=
[
`
${
apiURL
}
/authorize/obtainToken`
,
`
${
cffpURL
}
/accessLog/accessLogSave`
,
`
${
cffpURL
}
/user/powerQuery`
,
`
${
cffpURL
}
/user/wxLogin`
,
`
${
cffpURL
}
/certificate/officialWebsiteDetail`
];
`
${
apiURL
}
/authorize/checkToken`
,
`
${
cffpURL
}
/user/loginVerification`
,
`
${
apiURL
}
/appVersion/checkIsUpdate`
,
`
${
cffpURL
}
/accessLog/accessLogSave`
,
`
${
cffpURL
}
/user/powerQuery`
,
`
${
cffpURL
}
/user/wxLogin`
,
`
${
cffpURL
}
/certificate/officialWebsiteDetail`
,
`
${
apiURL
}
/verificationCode`
,
`
${
sfpUrl
}
/sfp/sfpMain/pocessTracking`
,
`
${
cffpURL
}
/partner/queryById`
,
];
export
const
interceptor
=
()
=>
{
export
const
interceptor
=
()
=>
{
uni
.
addInterceptor
(
'request'
,
{
uni
.
addInterceptor
(
'request'
,
{
// 请求拦截器
// 请求拦截器
...
...
util/router.js
View file @
89bdd2d4
...
@@ -6,6 +6,7 @@ const whiteList = [
...
@@ -6,6 +6,7 @@ const whiteList = [
'/myPackageA/login/login'
,
'/myPackageA/login/login'
,
'/pages/invitationRegister/invitationlogin'
,
'/pages/invitationRegister/invitationlogin'
,
'/myPackageA/applyFranchise/applyFranchise'
,
'/myPackageA/applyFranchise/applyFranchise'
,
'/pages/applyFranchise/applyFranchise'
,
'/myPackageA/ruleAndContract/clause'
,
'/myPackageA/ruleAndContract/clause'
,
'/pages/orderDetail/orderDetail'
,
'/pages/orderDetail/orderDetail'
,
'/pages/courseDetail/courseDetail'
,
'/pages/courseDetail/courseDetail'
,
...
@@ -16,15 +17,11 @@ const whiteList = [
...
@@ -16,15 +17,11 @@ const whiteList = [
export
default
function
initApp
(){
export
default
function
initApp
(){
let
date
=
Date
.
now
()
let
date
=
Date
.
now
()
uni
.
addInterceptor
(
'navigateTo'
,
{
uni
.
addInterceptor
(
'navigateTo'
,
{
// 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
// 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
invoke
(
e
)
{
invoke
(
e
)
{
// 移除URL中的t_reload参数
console
.
log
(
e
);
let
url
=
e
.
url
;
if
(
url
.
includes
(
't_reload='
))
{
url
=
url
.
split
(
'?'
)[
0
]
+
(
url
.
includes
(
'?'
)
?
'?'
:
''
)
+
url
.
split
(
'?'
)[
1
].
split
(
'&'
).
filter
(
param
=>
!
param
.
startsWith
(
't_reload='
)).
join
(
'&'
);
}
let
pages
=
getCurrentPages
()
let
pages
=
getCurrentPages
()
let
pagesLength
=
pages
.
length
let
pagesLength
=
pages
.
length
...
@@ -44,7 +41,7 @@ export default function initApp(){
...
@@ -44,7 +41,7 @@ export default function initApp(){
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
'/myPackageA/login/login'
url
:
'/myPackageA/login/login'
})
})
return
return
true
}
}
// 保存用户得个人信息
// 保存用户得个人信息
if
(
res
[
'success'
])
{
if
(
res
[
'success'
])
{
...
@@ -68,8 +65,8 @@ export default function initApp(){
...
@@ -68,8 +65,8 @@ export default function initApp(){
return
params
.
get
(
key
);
return
params
.
get
(
key
);
};
};
const
fromParam
=
getQueryParam
(
url
,
'from'
);
const
fromParam
=
getQueryParam
(
e
.
url
,
'from'
);
if
(
!
hasPermission
(
url
)){
if
(
!
hasPermission
(
e
.
url
)){
// 如果 from 参数在 whiteArr 中,说明是tabbar页带着tabbar的标志参数跳转到登录页,以便未登录状态下回到对应的tabbar页
// 如果 from 参数在 whiteArr 中,说明是tabbar页带着tabbar的标志参数跳转到登录页,以便未登录状态下回到对应的tabbar页
if
(
fromParam
&&
whiteArr
.
includes
(
fromParam
))
{
if
(
fromParam
&&
whiteArr
.
includes
(
fromParam
))
{
uni
.
redirectTo
({
uni
.
redirectTo
({
...
...
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