Commit 688f6e97 by zhangxingmin

push

parent f2caa581
<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: 28rpx;
}
/* 手机端默认样式 (小于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: 30rpx;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment