You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
3.9 KiB
182 lines
3.9 KiB
var api = require('../config/api.js');
|
|
|
|
function formatTime(date) {
|
|
var year = date.getFullYear()
|
|
var month = date.getMonth() + 1
|
|
var day = date.getDate()
|
|
|
|
var hour = date.getHours()
|
|
var minute = date.getMinutes()
|
|
var second = date.getSeconds()
|
|
|
|
|
|
return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
|
|
}
|
|
|
|
function formatNumber(n) {
|
|
n = n.toString()
|
|
return n[1] ? n : '0' + n
|
|
}
|
|
|
|
function toUrl(url, params){
|
|
let paramsArr = [];
|
|
if (params) {
|
|
Object.keys(params).forEach(item => {
|
|
paramsArr.push(item + '=' + params[item]);
|
|
})
|
|
if (url.search(/\?/) === -1) {
|
|
url += '?' + paramsArr.join('&');
|
|
} else {
|
|
url += '&' + paramsArr.join('&');
|
|
}
|
|
|
|
}
|
|
return url;
|
|
}
|
|
/**
|
|
* 封封微信的的request
|
|
*/
|
|
function request(url, data = {}, method = "GET") {
|
|
return new Promise(function (resolve, reject) {
|
|
var token = wx.getStorageSync('token');
|
|
url = toUrl(url, {'token':token})
|
|
wx.request({
|
|
url: url,
|
|
data: data,
|
|
method: method,
|
|
header: {
|
|
'Content-Type': 'application/json',
|
|
'Authorization': 'Bearer '+ wx.getStorageSync('token')
|
|
},
|
|
success: function (res) {
|
|
if (res.data.code == 200) {
|
|
resolve(res.data);
|
|
}else if(res.data.code == 401){
|
|
//需要登录后才可以操作
|
|
let code = null;
|
|
return login().then((res) => {
|
|
code = res.code;
|
|
return getUserInfo();
|
|
}).then((userInfo) => {
|
|
console.log(userInfo);
|
|
//登录远程服务器
|
|
request(api.AuthLoginByWeixin, { code: code, encryptedData: userInfo.encryptedData,iv: userInfo.iv,rawData: userInfo.rawData }, 'POST').then(res => {
|
|
if (res.code == 200) {
|
|
//存储用户信息
|
|
wx.setStorageSync('userInfo', res.data.userInfo);
|
|
wx.setStorageSync('token', res.data.token);
|
|
resolve(res);
|
|
wx.reLaunch({
|
|
url: '/pages/index/index',
|
|
});
|
|
} else {
|
|
reject(res);
|
|
}
|
|
}).catch((err) => {
|
|
reject(err);
|
|
});
|
|
|
|
}).catch((err) => {
|
|
reject(err);
|
|
})
|
|
} else {
|
|
reject(res.message);
|
|
}
|
|
|
|
},
|
|
fail: function (err) {
|
|
reject(err)
|
|
console.log("failed")
|
|
}
|
|
})
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 检查微信会话是否过期
|
|
*/
|
|
function checkSession() {
|
|
return new Promise(function (resolve, reject) {
|
|
wx.checkSession({
|
|
success: function () {
|
|
resolve(true);
|
|
},
|
|
fail: function () {
|
|
reject(false);
|
|
}
|
|
})
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 调用微信登录
|
|
*/
|
|
function login() {
|
|
return new Promise(function (resolve, reject) {
|
|
wx.login({
|
|
success: function (res) {
|
|
if (res.code) {
|
|
//登录远程服务器
|
|
resolve(res);
|
|
} else {
|
|
reject(res);
|
|
}
|
|
},
|
|
fail: function (err) {
|
|
reject(err);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
function getUserInfo() {
|
|
return new Promise(function (resolve, reject) {
|
|
wx.getUserInfo({
|
|
withCredentials: true,
|
|
success: function (res) {
|
|
console.log(res)
|
|
resolve(res);
|
|
},
|
|
fail: function (err) {
|
|
console.log(1111111);
|
|
console.log(err);
|
|
reject(err);
|
|
}
|
|
})
|
|
});
|
|
}
|
|
|
|
function redirect(url) {
|
|
|
|
//判断页面是否需要登录
|
|
if (false) {
|
|
wx.redirectTo({
|
|
url: '/pages/auth/login/login'
|
|
});
|
|
return false;
|
|
} else {
|
|
wx.redirectTo({
|
|
url: url
|
|
});
|
|
}
|
|
}
|
|
|
|
function showErrorToast(msg) {
|
|
wx.showToast({
|
|
title: msg,
|
|
image: '/static/images/icon_error.png'
|
|
})
|
|
}
|
|
|
|
module.exports = {
|
|
formatTime,
|
|
request,
|
|
redirect,
|
|
showErrorToast,
|
|
checkSession,
|
|
login,
|
|
getUserInfo,
|
|
}
|
|
|
|
|