bmfe-mina-template
Version:
BM 小程序模板
112 lines (103 loc) • 3.27 kB
JavaScript
import wepy from 'wepy';
import { path } from '../config/index';
import getTicket from './getTicket';
import monitor from '../utils/monitor';
import Beacon from '../utils/beacon';
import getUrl from '../utils/getUrl';
import isString from 'lodash/isString';
import globalContext from '../utils/globalContext'
var cookies = {};
export default {
config (params) {
// 参数构造
var params = params || {};
if(isString(params)){
params = {
url: params
}
}
if(params['url'].indexOf('https://') === -1){
params['url'] = path + params['url'];
};
params.dataType = 'json';
params.data = params.data || {};
params.timeout = 1;
const ticket = globalContext.get('login-ticket')
const openIdTicket = globalContext.get('mina-ticket')
// header 用户信息携带
if(ticket) {
params.header = {
'mina_ticket': openIdTicket,
'm-uni-ticket': ticket
}
} else {
params.header = {
'mina_ticket': openIdTicket
}
}
// 时间戳防止缓存
params.data._ = +new Date();
return params;
},
async success (response) {
var self = this,
resData = response.data;
if(resData.resCode === 0){
return resData;
} else if(resData.resCode === 1204) {
const {code} = await wepy.login()
const url = getUrl()
if(code) {
const { account } = await getTicket(code)
if(account) {
wepy.redirectTo({
url: `/pages/ticketLogin/index?account=${account}&page=` + encodeURIComponent(url)
})
} else {
wepy.redirectTo({
url: '/pages/login/index?page=' + encodeURIComponent(url)
})
}
} else {
wepy.redirectTo({
url: '/pages/login/index?page=' + encodeURIComponent(url)
})
}
} else if(resData.resCode == 1209) {
const url = getUrl()
wepy.redirectTo({
url: '/pages/login/index?page=' + encodeURIComponent(url)
})
}else{
wx.hideLoading()
// 目前没有办法不展示弹窗
wx.showModal({
title: '请求出错',
content: resData.msg || '请求出错',
showCancel: false
});
return Promise.reject(resData);
}
},
fail (error) {
wx.showModal({
title: '网络失败',
content: '请求有问题',
showCancel: false
});
if(error.statusCode == 404) {
monitor('time', {
name: 'API_FAIL',
alias: '接口失败',
time: 1000 //time
});
} else {
monitor('time', {
name: 'API_TIMEOUT',
alias: '接口超时',
time: 1000 //time
});
}
return error;
}
}