UNPKG

bmfe-mina-template

Version:

BM 小程序模板

112 lines (103 loc) 3.27 kB
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; } }