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.
80 lines
2.0 KiB
80 lines
2.0 KiB
import store from '@/store'
|
|
import cache from './cache'
|
|
import {
|
|
msg
|
|
} from './util'
|
|
|
|
|
|
//云函数映射
|
|
const moduleMap = {
|
|
user: 'mix-user',
|
|
payment: 'mix-order',
|
|
order: 'mix-order',
|
|
smsCode: 'mix-sms',
|
|
address: 'mix-address',
|
|
live: 'mix-live',
|
|
coupon: 'mix-coupon'
|
|
}
|
|
|
|
/**
|
|
* @param {String} module
|
|
* @param {String} operation
|
|
* @param {Object} data 请求参数
|
|
* @param {Object} ext 附加参数
|
|
* @param {Number} ext.cache 数据缓存时间,秒
|
|
*/
|
|
export const request = (module, operation, data={}, ext={})=>{
|
|
return new Promise((resolve, reject) => {
|
|
const cloudFnName = moduleMap[module] || 'mix-uniapp';
|
|
if(ext.cache > 0){
|
|
const cacheResult = cache.get(cloudFnName + '-' + module+ '-' +operation);
|
|
if(cacheResult !== false && cacheResult.status !== 0){
|
|
resolve(cacheResult);
|
|
return;
|
|
}
|
|
}
|
|
uniCloud.callFunction({
|
|
name: cloudFnName,
|
|
data: {
|
|
module,
|
|
operation,
|
|
data
|
|
}
|
|
}).then(res=>{
|
|
if(res.result && typeof res.result.openExamine !== 'undefined'){
|
|
store.commit('setStateAttr', {
|
|
key: 'openExamine',
|
|
val: res.result.openExamine
|
|
});
|
|
}
|
|
if(res.result){
|
|
const code = res.result.code;
|
|
//token无效
|
|
if(code === 30201 || code === 30202 || code === 30203 || code === 30204){
|
|
msg('登录信息已过期,请重新登录');
|
|
store.commit('logout');
|
|
reject('无效的登录信息');
|
|
return;
|
|
}else if(code === 10001){
|
|
msg('用户已被禁用,请联系客服处理');
|
|
if(operation !== 'login' && operation !== 'loginByWeixin'){
|
|
store.commit('logout');
|
|
}
|
|
setTimeout(()=>{
|
|
uni.switchTab({
|
|
url: '/pages/tabbar/home'
|
|
})
|
|
}, 1200)
|
|
reject('用户被禁用');
|
|
return;
|
|
}
|
|
}
|
|
if(ext.cache > 0){
|
|
cache.put(cloudFnName + '-' + module+ '-' +operation, res.result, ext.cache);
|
|
}
|
|
resolve(res.result);
|
|
}).catch((err) => {
|
|
reject(err);
|
|
})
|
|
})
|
|
}
|