023f830b by 华明祺

登录

1 parent 79cf495e
<script>
import * as loginServer from '@/common/login.js';
import * as api from '@/common/api.js';
import config from '@/config.js';
import {
h5Login
} from '@/common/login.js';
import * as api from '@/common/api.js';
import config from '@/config.js';
let firstload = false
export default {
onLaunch: function() {
console.log('App Launch');
let loginUrl=['pages/index/login', 'pages/index/register']
let firstload = false
export default {
onLaunch: function(options) {
console.log('App Launch', options);
firstload = true
this.globalData.baseUrl = config.baseUrl;
this.globalData.baseUrl_api = config.baseUrl_api;
this.globalData.fileUrl = config.fileUrl;
new Promise((resolve, reject) => {
uni.checkSession({
success: res => {
loginServer
.getCurrUser(true)
.catch(() => {
return loginServer.pcLogin();
})
.then(user => {
resolve(user);
});
},
fail: res => {
loginServer
.wxLogin()
.then(loginRes => {
return loginServer.pcLogin(loginRes.code);
})
.then(user => {
resolve(user);
});
}
});
})
.then(()=>{
return loginServer.getNowOpenId()
})
.then(() => {
return loginServer.initData()
// console.log(22222222)
// const currUser = uni.getStorageSync('currUser');
// // console.log(currUser)
// return Promise.all([api.getVenue(), api.getOwnMemberInfo()]).then(res => {
// let ven = res[0].data;
// let men = res[1]?.data;
// if (ven.venuePic) {
// ven.venuePicArr = ven.venuePic.split(',');
// }
// if (ven.businessPeriod) {
// ven.startBus = ven.businessPeriod.split(',')[0];
// ven.endBus = ven.businessPeriod.split(',')[1];
// }
// ven.latitude = ven.lal.split(',')[0];
// ven.longitude = ven.lal.split(',')[1];
// this.globalData.venue = ven;
// this.globalData.isVip = men?.isVip;
// // this.globalData.relateProjectId = men.info.relateProjectId;
// this.globalData.relateProjectIdList = men?.info?.relateProjectIdList;
// this.globalData.relateVenueProjectIdList = men?.info?.relateVenueProjectIdList;
this.globalData.baseUrl_api = config.baseUrl_api;
// this.globalData.venueConfig = {
// normalOverDay: ven.resSiteConfig?.normalOrderNum,
// normalPeriodStart: ven.resSiteConfig?.normalOrderPeriod.split(',')[0],
// normalPeriodEnd: ven.resSiteConfig?.normalOrderPeriod.split(',')[1]
// };
// if (men?.isVip) {
// this.globalData.venueConfig.memberOverDay = ven.resSiteConfig?.memberOrderNum;
// this.globalData.venueConfig.memberPeriodStart = ven.resSiteConfig?.memberOrderPeriod.split(',')[0];
// this.globalData.venueConfig.memberPeriodEnd = ven.resSiteConfig?.memberOrderPeriod.split(',')[1];
// }
// });
})
if(loginUrl.indexOf( options.path)==-1){
let userName = uni.getStorageSync('userName')
if (userName) {
h5Login(userName)
.then(() => {
this.globalData.isLogin = true;
let firstLoadCallback = getApp().firstLoadCallback;
if (firstLoadCallback) {
firstLoadCallback();
}
});
},
onShow: function() {
console.log('App Show');
// loginServer.getNowOpenId()
if (!firstload) {
loginServer.getCurrUser(true)
})
.catch(() => {
return loginServer.pcLogin().then(() => {
uni.redirectTo({
url: getCurrentPages()[getCurrentPages().length - 1].$page.fullPath
url: '/pages/index/login'
})
});
})
} else {
this.globalData.isLogin = false;
uni.redirectTo({
url: '/pages/index/login'
})
}
}
},
onShow: function() {
console.log('App Show');
},
onHide: function() {
console.log('App Hide');
}
};
};
</script>
<style lang="scss">
......
import request from './request'
import * as api from '@/common/api.js';
import * as api from '@/common/api.js'
let appId = ''
// #ifdef MP
const accountInfo = uni.getAccountInfoSync()
const appId = accountInfo.miniProgram.appId;
appId = accountInfo.miniProgram.appId
// #endif
function wxLogin() {
......@@ -22,81 +22,59 @@ function wxLogin() {
})
}
function pcLogin(code) {
if (code) {
return pcLoginByCode(code)
} else {
const currUser = uni.getStorageSync('currUser') || {}
if (currUser.openId) {
return pcLoginByOpenId(currUser.openId);
} else {
return wxLogin().then((loginRes) => {
return pcLoginByCode(loginRes.code)
function pcLogin(data) {
return request({
url: '/login',
method: 'post',
params: data
}).then((res) => {
uni.setStorageSync('userName', data.username)
uni.setStorageSync('token', 'Bearer ' + res.data.token)
})
}
}
}
function pcLoginByOpenId(openId) {
function h5Login(userName) {
return request({
url: "/system/wx/loginByOpenId",
method: "POST",
url: `/h5Login`,
method: 'post',
params: {
appId: appId,
openId: openId
username: userName
}
}).then((res) => {
let user = res.data;
// console.log("openId " + openId, user)
uni.setStorageSync('token', 'Bearer ' + user.token);
uni.setStorageSync('currUser', user);
return user;
}).catch(() => {
uni.removeStorageSync('currUser')
uni.setStorageSync('token', 'Bearer ' + res.data.token)
})
}
function pcLoginByCode(code) {
return request({
// url: "/weixin/api/login",
url: "/system/wx/loginByJsCode",
method: "POST",
params: {
appId: appId,
jsCode: code
}
}).then((res) => {
let user = res.data
// console.log("code: " + code, user)
// getNowOpenId()
uni.setStorageSync('token', 'Bearer ' + user.token);
uni.setStorageSync('currUser', user);
return user;
}).catch((err) => {
uni.removeStorageSync('currUser')
function h5LoginAuto() {
const userName = uni.getStorageSync('userName')
if (userName) {
return h5Login(userName)
} else {
uni.redirectTo({
url: '/pages/index/login'
})
}
}
function getCurrUser(isAuto) {
return request({
url: "/system/wx/getUserInfo",
method: "GET",
url: '/system/wx/getUserInfo',
method: 'GET',
opts: {
isAuto: isAuto
}
}).then((res) => {
let user = res.data;
uni.setStorageSync('currUser', user);
const user = res.data
uni.setStorageSync('currUser', user)
return user
})
}
function getWxUser() {
return new Promise((resolve, reject) => {
const currUser = uni.getStorageSync('currUser');
const currUser = uni.getStorageSync('currUser')
// getNowOpenId()
const nowOpenId = uni.getStorageSync('nowOpenId');
const nowOpenId = uni.getStorageSync('nowOpenId')
uni.getUserProfile({
desc: '用于完善用户信息',
success: function(infoRes) {
......@@ -104,7 +82,7 @@ function getWxUser() {
request({
url: `/system/wx/updateWxUser?openId=${nowOpenId}`,
method: "POST",
method: 'POST',
params: {
appId: appId,
openId: nowOpenId,
......@@ -116,9 +94,9 @@ function getWxUser() {
signature: infoRes.signature
}
}).then((res) => {
let user = res.data;
uni.setStorageSync('currUser', user);
resolve(user);
const user = res.data
uni.setStorageSync('currUser', user)
resolve(user)
}).catch(() => {
reject()
})
......@@ -126,19 +104,19 @@ function getWxUser() {
fail: (res) => {
reject(res)
}
});
});
})
})
}
function getWxUserPhone(phoneRes) {
// console.log(phoneRes)
const currUser = uni.getStorageSync('currUser');
const currUser = uni.getStorageSync('currUser')
// getNowOpenId()
const nowOpenId = uni.getStorageSync('nowOpenId');
const nowOpenId = uni.getStorageSync('nowOpenId')
return request({
url: `/system/wx/updateMobile?openId=${nowOpenId}`,
method: "POST",
method: 'POST',
params: {
appId: appId,
userId: currUser.id,
......@@ -149,10 +127,10 @@ function getWxUserPhone(phoneRes) {
signature: phoneRes.signature
}
}).then((res) => {
let user = res.data;
const user = res.data
// uni.setStorageSync('token', 'Bearer '+ user.token);
uni.setStorageSync('token', user.token);
uni.setStorageSync('currUser', user);
uni.setStorageSync('token', user.token)
uni.setStorageSync('currUser', user)
return user
})
}
......@@ -166,7 +144,7 @@ function checkUserAuth(path) {
uni.navigateTo({
url: '/pages/index/start?path=' + encodeURIComponent(path)
})
return false;
return false
}
}
......@@ -183,41 +161,48 @@ function getNowOpenId() {
function initData() {
console.log('initData')
const currUser = uni.getStorageSync('currUser');
// const currUser = uni.getStorageSync('currUser')
// console.log(currUser)
return Promise.all([api.getVenue(), api.getOwnMemberInfo()]).then(res => {
let ven = res[0].data;
let men = res[1]?.data;
const ven = res[0].data
const men = res[1]?.data
const app = getApp();
const app = getApp()
if (ven.venuePic) {
ven.venuePicArr = ven.venuePic.split(',');
ven.venuePicArr = ven.venuePic.split(',')
}
if (ven.businessPeriod) {
ven.startBus = ven.businessPeriod.split(',')[0];
ven.endBus = ven.businessPeriod.split(',')[1];
ven.startBus = ven.businessPeriod.split(',')[0]
ven.endBus = ven.businessPeriod.split(',')[1]
}
ven.latitude = ven.lal.split(',')[0];
ven.longitude = ven.lal.split(',')[1];
ven.latitude = ven.lal.split(',')[0]
ven.longitude = ven.lal.split(',')[1]
app.globalData.venue = ven;
app.globalData.isVip = men?.isVip;
app.globalData.venue = ven
app.globalData.isVip = men?.isVip
// app.globalData.relateProjectId = men.info.relateProjectId;
app.globalData.relateProjectIdList = men?.info?.relateProjectIdList;
app.globalData.relateVenueProjectIdList = men?.info?.relateVenueProjectIdList;
app.globalData.relateProjectIdList = men?.info?.relateProjectIdList
app.globalData.relateVenueProjectIdList = men?.info?.relateVenueProjectIdList
app.globalData.venueConfig = {
normalOverDay: ven.resSiteConfig?.normalOrderNum,
normalPeriodStart: ven.resSiteConfig?.normalOrderPeriod.split(',')[0],
normalPeriodEnd: ven.resSiteConfig?.normalOrderPeriod.split(',')[1]
};
}
if (men?.isVip) {
app.globalData.venueConfig.memberOverDay = ven.resSiteConfig?.memberOrderNum;
app.globalData.venueConfig.memberPeriodStart = ven.resSiteConfig?.memberOrderPeriod.split(',')[0];
app.globalData.venueConfig.memberPeriodEnd = ven.resSiteConfig?.memberOrderPeriod.split(',')[1];
app.globalData.venueConfig.memberOverDay = ven.resSiteConfig?.memberOrderNum
app.globalData.venueConfig.memberPeriodStart = ven.resSiteConfig?.memberOrderPeriod.split(',')[0]
app.globalData.venueConfig.memberPeriodEnd = ven.resSiteConfig?.memberOrderPeriod.split(',')[1]
}
});
})
}
function getCodeImg() {
return request({
url: '/captchaImage',
method: 'get'
})
}
export {
......@@ -228,5 +213,8 @@ export {
getWxUser,
getWxUserPhone,
checkUserAuth,
initData
initData,
getCodeImg,
h5Login,
h5LoginAuto
}
......
import config from '@/config.js'
import {
pcLogin,
getNowOpenId,
initData
h5LoginAuto
} from './login'
const excludeUrls = ['/system/wx/getUserInfo']
const excludeUrls = ['pages/index/login', 'pages/index/register']
// 获取Token
function getToken() {
try {
const token = uni.getStorageSync('token');
const token = uni.getStorageSync('token')
if (token) {
return token
} else {
......@@ -23,22 +21,22 @@ function getToken() {
// 获取请求头
function getHeaders() {
let token = getToken()
let header = {
"Authorization": token,
"Content-Type": "application/json", //根据自己的数据类型
const token = getToken()
const header = {
'Authorization': token,
'Content-Type': 'application/json' // 根据自己的数据类型
// "Content-Type":"application/x-www-form-urlencoded",
}
return header
}
let request = function(req) {
const request = function(req) {
req.method = req.method.toUpperCase()
if (!['GET', 'POST','PUT', 'DELETE'].includes(req.method)) {
if (!['GET', 'POST', 'PUT', 'DELETE'].includes(req.method)) {
uni.showToast({
title: `暂不支持的请求方式: ${req.method}`,
icon: 'none'
});
})
return
}
......@@ -53,36 +51,14 @@ let request = function(req) {
url: config.baseUrl_api + req.url,
method: req.method,
data: req.params,
header: getHeaders(),
header: getHeaders()
}).then(res => {
switch (res.statusCode) {
case 200:
const data = res.data || {};
if (data.code == 200) {
const data = res.data || {}
if (data.code === 200) {
resolve(data)
} else {
//登录超时
if (data.code == 60002 || data.code == 60001) {
if (req.url != '/system/wx/getUserInfo') {
reLogin();
}
}
else if (data.code == 401 && req.url != '/system/wx/getUserInfo') {
pcLogin()
.then(()=>{
return getNowOpenId()
})
.then(()=>{
return initData()
})
.then(()=>{
uni.hideLoading();
uni.redirectTo({
url:getCurrentPages()[getCurrentPages().length-1].$page.fullPath
})
})
}
else {
if (!excludeUrls.includes(req.url)) {
uni.showToast({
title: data.msg,
......@@ -90,7 +66,29 @@ let request = function(req) {
duration: 3000
})
}
// 登录超时
if (data.code === 60002 || data.code === 60001) {
uni.redirectTo({
url: '/pages/index/login'
})
} else if (data.code === 401) {
h5LoginAuto()
.then(() => {
uni.hideLoading()
uni.redirectTo({
url: getCurrentPages()[getCurrentPages()
.length - 1].$page.fullPath
})
})
.catch(() => {
uni.showToast({
title: '服务异常,请稍后重试',
icon: 'none'
})
})
}
reject(res)
}
break
......@@ -107,39 +105,4 @@ let request = function(req) {
})
}
function reLogin() {
const currUser = uni.getStorageSync('currUser') || {}
if (currUser.openId) {
const accountInfo = uni.getAccountInfoSync()
pcLoginByOpenId(accountInfo.miniProgram.appId, currUser.openId)
.then((res) => {
let user = res.data;
uni.setStorageSync('token', 'Bearer ' + user.token);
uni.setStorageSync('currUser', user);
uni.showToast({
title: '一走神把您的操作遗漏了,请重试',
icon: 'none'
})
}).catch(() => {
uni.showToast({
title: '服务异常,请稍后重试',
icon: 'none'
})
})
}
}
function pcLoginByOpenId(appId, openId) {
return request({
url: "/system/wx/loginByOpenId",
method: "POST",
params: {
appId: appId,
openId: openId
}
})
}
export default request;
export default request
......
// prod
// const baseUrl = 'https://research.wtwuxicenter.com/';
// const baseUrl_api=`${baseUrl}/prod-api`;
// const baseUrl_api = 'https://research.wtwuxicenter.com/';
// uat
// const baseUrl = 'https://jxt.itechtop.cn';
const baseUrl = 'https://jxt.wtwuxicenter.com';
const baseUrl_api = `${baseUrl}/prod-api`;
// staging
// const baseUrl = 'https://5q5re1d432g2.ngrok2.xiaomiqiu123.top';
// const baseUrl = "http://192.168.1.118:8081";
// const baseUrl_api = `${baseUrl}`;
const fileUrl = "http://r.itechtop.cn";
const baseUrl_api = "http://192.168.1.96:8787";
export default {
baseUrl: baseUrl,
fileUrl: fileUrl,
baseUrl_api: baseUrl_api,
baseUrl_api
};
\ No newline at end of file
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!