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
688f6e97
Commit
688f6e97
authored
Jul 23, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
f2caa581
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
214 additions
and
248 deletions
+214
-248
App.vue
+214
-248
No files found.
App.vue
View file @
688f6e97
<
script
>
import
initApp
from
"@/util/router.js"
;
import
{
interceptor
}
from
"@/util/interceptor"
;
import
{
baseURL
,
apiURL
,
cffpURL
,
companyInfo
}
from
"@/environments/environment"
;
import
api
from
'./api/api'
;
export
default
{
data
()
{
return
{
invitationHandled
:
false
// 在data中明确定义
}
},
onLaunch
:
function
()
{
console
.
log
(
'App Launch'
);
if
(
!
uni
.
getStorageSync
(
'loginType'
)){
uni
.
clearStorageSync
();
uni
.
setStorageSync
(
'loginType'
,
'visitor'
);
}
// 处理外部链接参数
this
.
handleExternalUrlParams
();
// #ifdef APP-PLUS
// uni.downloadFile({
// url: '/cffpUpdate/__UNI__ED34740.wgt',
// success: (downloadResult) => {
// if (downloadResult.statusCode === 200) {
// plus.runtime.install(downloadResult.tempFilePath, {
// force: true
// }, function() {
// console.log('install success...');
// plus.runtime.restart();
// }, function(e) {
// console.error('install fail...');
// });
// }
// }
// });
// #endif
// #ifdef APP-PLUS
plus
.
runtime
.
getProperty
(
plus
.
runtime
.
appid
,
(
wgtinfo
)
=>
{
uni
.
getSystemInfo
({
success
:(
systemInfo
)
=>
{
uni
.
request
({
url
:
`
${
apiURL
}
/appVersion/checkIsUpdate`
,
method
:
'POST'
,
data
:
{
appType
:
1
,
version
:
wgtinfo
.
version
,
systemType
:
systemInfo
.
osName
.
toLowerCase
()
===
'ios'
?
2
:
1
},
success
:
(
result
)
=>
{
const
data
=
result
.
data
.
data
[
'appVersionInfo'
];
if
(
data
.
status
==
1
&&
data
.
isForceUpdate
&&
data
.
wgtUrl
)
{
uni
.
downloadFile
({
url
:
`
${
baseURL
}${
data
.
wgtUrl
}
`
,
success
:
(
downloadResult
)
=>
{
if
(
downloadResult
.
statusCode
===
200
)
{
plus
.
runtime
.
install
(
downloadResult
.
tempFilePath
,
{
force
:
true
},
function
()
{
plus
.
runtime
.
restart
();
},
function
(
e
)
{
console
.
error
(
'install fail...'
);
});
}
}
});
}
}
});
}
})
})
// #endif
interceptor
();
initApp
();
},
onShow
:
function
(
options
)
{
console
.
log
(
'App Show'
,
options
);
// 每次进应用显示时检查用户状态
this
.
checkUserStatus
();
// App平台从options获取参数
// #ifdef APP-PLUS
if
(
options
&&
options
.
query
)
{
this
.
saveUrlParams
(
options
.
query
);
}
// #endif
},
onHide
:
function
()
{
console
.
log
(
'App Hide'
)
},
methods
:
{
// 检查用户状态的方法
async
checkUserStatus
()
{
// 只有已登录用户才需要检查
if
(
uni
.
getStorageSync
(
'loginType'
)
==
'codelogin'
&&
uni
.
getStorageSync
(
'cffp_userId'
))
{
try
{
const
res
=
await
api
.
queryInfo
({
userId
:
uni
.
getStorageSync
(
'cffp_userId'
)});
if
(
!
res
[
'success'
])
{
// 用户已注销,清除缓存
this
.
clearLoginState
();
// 如果不是在白名单页面,跳转到登录页
const
pages
=
getCurrentPages
();
if
(
pages
.
length
>
0
)
{
const
currentRoute
=
pages
[
pages
.
length
-
1
].
route
;
console
.
log
(
'currentRoute'
,
currentRoute
);
const
whiteList
=
[
'/myPackageA/login/login'
,
'/pages/invitationRegister/invitationlogin'
,
'/myPackageA/applyFranchise/applyFranchise'
,
'/pages/applyFranchise/applyFranchise'
,
'/myPackageA/ruleAndContract/clause'
,
'/pages/courselist/courselist'
,
'/pages/courseDetail/courseDetail'
,
'/pages/orderDetail/orderDetail'
,
'/pages/orderStatus/orderStatus'
,
'/pages/index/index'
]
// 根据需要调整
if
(
!
whiteList
.
includes
(
currentRoute
))
{
uni
.
navigateTo
({
url
:
'/myPackageA/login/login'
});
}
}
}
if
(
res
[
'success'
])
{
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
))
}
}
catch
(
err
)
{
console
.
error
(
'检查用户状态失败:'
,
err
);
}
}
},
// 清除登录状态
clearLoginState
()
{
uni
.
clearStorageSync
();
uni
.
setStorageSync
(
'loginType'
,
'visitor'
);
// 可以在这里添加其他需要清除的状态
},
// 处理外部链接参数
handleExternalUrlParams
()
{
// #ifdef H5
this
.
handleH5UrlParams
();
// #endif
// #ifdef APP-PLUS
this
.
handleAppUrlParams
();
// #endif
},
// 处理H5平台的URL参数
handleH5UrlParams
()
{
const
url
=
window
.
location
.
href
;
if
(
url
.
indexOf
(
'?'
)
>
-
1
)
{
const
queryString
=
url
.
split
(
'?'
)[
1
];
const
params
=
this
.
parseQueryString
(
queryString
);
this
.
saveUrlParams
(
params
);
}
},
// 处理App平台的URL参数
handleAppUrlParams
()
{
// 处理冷启动参数
plus
.
runtime
.
getProperty
(
plus
.
runtime
.
appid
,
(
widgetInfo
)
=>
{
const
args
=
plus
.
runtime
.
arguments
;
if
(
args
)
{
const
params
=
this
.
parseAppLaunchArgs
(
args
);
this
.
saveUrlParams
(
params
);
}
});
// 监听热启动事件
plus
.
runtime
.
addEventListener
(
'newintent'
,
(
e
)
=>
{
const
args
=
e
.
arguments
;
if
(
args
)
{
const
params
=
this
.
parseAppLaunchArgs
(
args
);
this
.
saveUrlParams
(
params
);
}
});
},
// 解析H5的查询字符串
parseQueryString
(
queryString
)
{
const
params
=
{};
const
pairs
=
queryString
.
split
(
'&'
);
for
(
let
i
=
0
;
i
<
pairs
.
length
;
i
++
)
{
const
pair
=
pairs
[
i
].
split
(
'='
);
if
(
pair
.
length
===
2
)
{
params
[
decodeURIComponent
(
pair
[
0
])]
=
decodeURIComponent
(
pair
[
1
]
||
''
);
}
}
return
params
;
},
// 解析App启动参数
parseAppLaunchArgs
(
args
)
{
// 处理 scheme://path?key=value 格式
if
(
args
.
indexOf
(
'?'
)
>
-
1
)
{
const
queryString
=
args
.
split
(
'?'
)[
1
];
return
this
.
parseQueryString
(
queryString
);
}
return
{};
},
// 保存URL参数到本地存储
saveUrlParams
(
params
)
{
if
(
Object
.
keys
(
params
).
length
>
0
)
{
console
.
log
(
'获取到外部链接参数:'
,
params
);
// 使用uni.setStorageSync存储到本地
try
{
if
(
params
.
addSystemType
){
uni
.
setStorageSync
(
'addSystemType'
,
params
.
addSystemType
);
}
// // 可以在这里添加事件通知其他页面参数已准备好
// uni.$emit('externalParamsReady', params);
}
catch
(
e
)
{
console
.
error
(
'存储外部链接参数失败:'
,
e
);
}
}
}
}
}
import
initApp
from
"@/util/router.js"
;
import
{
interceptor
}
from
"@/util/interceptor"
;
import
{
baseURL
,
apiURL
,
cffpURL
,
companyInfo
}
from
"@/environments/environment"
;
import
api
from
'./api/api'
;
export
default
{
data
()
{
return
{
invitationHandled
:
false
}
},
onLaunch
:
function
()
{
console
.
log
(
'App Launch'
);
if
(
!
uni
.
getStorageSync
(
'loginType'
)){
uni
.
clearStorageSync
();
uni
.
setStorageSync
(
'loginType'
,
'visitor'
);
}
this
.
handleExternalUrlParams
();
// App更新逻辑
// #ifdef APP-PLUS
plus
.
runtime
.
getProperty
(
plus
.
runtime
.
appid
,
(
wgtinfo
)
=>
{
uni
.
getSystemInfo
({
success
:(
systemInfo
)
=>
{
uni
.
request
({
url
:
`
${
apiURL
}
/appVersion/checkIsUpdate`
,
method
:
'POST'
,
data
:
{
appType
:
1
,
version
:
wgtinfo
.
version
,
systemType
:
systemInfo
.
osName
.
toLowerCase
()
===
'ios'
?
2
:
1
},
success
:
(
result
)
=>
{
const
data
=
result
.
data
.
data
[
'appVersionInfo'
];
if
(
data
.
status
==
1
&&
data
.
isForceUpdate
&&
data
.
wgtUrl
)
{
uni
.
downloadFile
({
url
:
`
${
baseURL
}${
data
.
wgtUrl
}
`
,
success
:
(
downloadResult
)
=>
{
if
(
downloadResult
.
statusCode
===
200
)
{
plus
.
runtime
.
install
(
downloadResult
.
tempFilePath
,
{
force
:
true
},
function
()
{
plus
.
runtime
.
restart
();
},
function
(
e
)
{
console
.
error
(
'install fail...'
);
});
}
}
});
}
}
});
}
})
})
// #endif
interceptor
();
initApp
();
},
onShow
:
function
(
options
)
{
console
.
log
(
'App Show'
,
options
);
this
.
checkUserStatus
();
// #ifdef APP-PLUS
if
(
options
&&
options
.
query
)
{
this
.
saveUrlParams
(
options
.
query
);
}
// #endif
},
onHide
:
function
()
{
console
.
log
(
'App Hide'
)
},
methods
:
{
async
checkUserStatus
()
{
if
(
uni
.
getStorageSync
(
'loginType'
)
==
'codelogin'
&&
uni
.
getStorageSync
(
'cffp_userId'
))
{
try
{
const
res
=
await
api
.
queryInfo
({
userId
:
uni
.
getStorageSync
(
'cffp_userId'
)});
if
(
!
res
[
'success'
])
{
this
.
clearLoginState
();
const
pages
=
getCurrentPages
();
if
(
pages
.
length
>
0
)
{
const
currentRoute
=
pages
[
pages
.
length
-
1
].
route
;
const
whiteList
=
[
'/myPackageA/login/login'
,
'/pages/invitationRegister/invitationlogin'
,
'/myPackageA/applyFranchise/applyFranchise'
,
'/pages/applyFranchise/applyFranchise'
,
'/myPackageA/ruleAndContract/clause'
,
'/pages/courselist/courselist'
,
'/pages/courseDetail/courseDetail'
,
'/pages/orderDetail/orderDetail'
,
'/pages/orderStatus/orderStatus'
,
'/pages/index/index'
];
if
(
!
whiteList
.
includes
(
currentRoute
))
{
uni
.
navigateTo
({
url
:
'/myPackageA/login/login'
});
}
}
}
if
(
res
[
'success'
])
{
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
))
}
}
catch
(
err
)
{
console
.
error
(
'检查用户状态失败:'
,
err
);
}
}
},
clearLoginState
()
{
uni
.
clearStorageSync
();
uni
.
setStorageSync
(
'loginType'
,
'visitor'
);
},
handleExternalUrlParams
()
{
// #ifdef H5
this
.
handleH5UrlParams
();
// #endif
// #ifdef APP-PLUS
this
.
handleAppUrlParams
();
// #endif
},
handleH5UrlParams
()
{
const
url
=
window
.
location
.
href
;
if
(
url
.
indexOf
(
'?'
)
>
-
1
)
{
const
queryString
=
url
.
split
(
'?'
)[
1
];
const
params
=
this
.
parseQueryString
(
queryString
);
this
.
saveUrlParams
(
params
);
}
},
handleAppUrlParams
()
{
plus
.
runtime
.
getProperty
(
plus
.
runtime
.
appid
,
(
widgetInfo
)
=>
{
const
args
=
plus
.
runtime
.
arguments
;
if
(
args
)
{
const
params
=
this
.
parseAppLaunchArgs
(
args
);
this
.
saveUrlParams
(
params
);
}
});
plus
.
runtime
.
addEventListener
(
'newintent'
,
(
e
)
=>
{
const
args
=
e
.
arguments
;
if
(
args
)
{
const
params
=
this
.
parseAppLaunchArgs
(
args
);
this
.
saveUrlParams
(
params
);
}
});
},
parseQueryString
(
queryString
)
{
const
params
=
{};
const
pairs
=
queryString
.
split
(
'&'
);
for
(
let
i
=
0
;
i
<
pairs
.
length
;
i
++
)
{
const
pair
=
pairs
[
i
].
split
(
'='
);
if
(
pair
.
length
===
2
)
{
params
[
decodeURIComponent
(
pair
[
0
])]
=
decodeURIComponent
(
pair
[
1
]
||
''
);
}
}
return
params
;
},
parseAppLaunchArgs
(
args
)
{
if
(
args
.
indexOf
(
'?'
)
>
-
1
)
{
const
queryString
=
args
.
split
(
'?'
)[
1
];
return
this
.
parseQueryString
(
queryString
);
}
return
{};
},
saveUrlParams
(
params
)
{
if
(
Object
.
keys
(
params
).
length
>
0
)
{
console
.
log
(
'获取到外部链接参数:'
,
params
);
try
{
if
(
params
.
addSystemType
){
uni
.
setStorageSync
(
'addSystemType'
,
params
.
addSystemType
);
}
}
catch
(
e
)
{
console
.
error
(
'存储外部链接参数失败:'
,
e
);
}
}
}
}
}
</
script
>
<
style
>
@import
"@/static/font1/iconfont.css"
;
@import
"@/static/font1/iconfont.css"
;
@import
"@/static/font/iconfont.css"
;
/*每个页面公共css */
@font-face
{
font-family
:
'iconfont'
;
...
...
@@ -253,14 +219,14 @@
}
/* .container{
background-color: rgba(235, 239, 247, 1);
min-height: 100vh;
min-height: 100vh;
height: auto !important;
height: 100vh;
} */
/* 全局基础样式 - 移动端优先 */
.container
{
background-color
:
rgba
(
235
,
239
,
247
,
1
);
min-height
:
100vh
;
min-height
:
100vh
;
height
:
auto
!important
;
height
:
100vh
;
width
:
100%
;
...
...
@@ -270,26 +236,26 @@
box-sizing
:
border-box
;
font-size
:
28
rpx
;
}
/* 手机端默认样式 (小于768px) */
/* @media (max-width: 767px) {
.container {
}
} */
/* 平板设备 (768px-1023px) */
/* 平板设备 (768px-1023px) */
@media
(
min-width
:
768px
)
and
(
max-width
:
1023px
)
{
.container
{
/* max-width: 100%; */
}
/* iPad竖屏*/
/* iPad竖屏*/
/* @media (orientation: portrait) {
.container {
max-width: 650px;
}
} */
/* iPad横屏 */
@media
(
orientation
:
landscape
)
{
.container
{
...
...
@@ -300,32 +266,32 @@
}
}
}
/* 小桌面设备 (1024px-1279px) */
@media
(
min-width
:
1024px
)
and
(
max-width
:
1279px
)
{
.container
{
max-width
:
1000px
;
}
}
/* 大桌面设备 (1280px以上) */
@media
(
min-width
:
1280px
)
{
.container
{
max-width
:
1200px
;
}
}
/* 特殊iPad Pro尺寸适配 */
/* @media only screen
and (min-device-width: 1024px)
and (max-device-width: 1366px)
/* @media only screen
and (min-device-width: 1024px)
and (max-device-width: 1366px)
and (-webkit-min-device-pixel-ratio: 2) {
.container {
max-width: 1100px;
}
} */
.uni-popup
.uni-popup__wrapper
{
border-radius
:
30
rpx
;
}
...
...
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