178 lines
4.6 KiB
JavaScript
178 lines
4.6 KiB
JavaScript
|
|
import api from "./index.js"
|
||
|
|
import { showToast } from '../components/common.js'
|
||
|
|
let authToken = ''
|
||
|
|
|
||
|
|
export function toLogin(url) {
|
||
|
|
return new Promise((resolve, reject) => {
|
||
|
|
let saveTime = uni.getStorageSync('saveTime')
|
||
|
|
let expires_in = uni.getStorageSync('expires_in')
|
||
|
|
let token = uni.getStorageSync('token')
|
||
|
|
|
||
|
|
if(url.indexOf('api/v1') !== -1 && ((saveTime && expires_in && Date.now() > saveTime + expires_in) || !expires_in || !saveTime || !token)) {
|
||
|
|
uni.redirectTo({
|
||
|
|
url: '/pages/user/login'
|
||
|
|
})
|
||
|
|
} else {
|
||
|
|
resolve()
|
||
|
|
}
|
||
|
|
|
||
|
|
// if((saveTime && expires_in && Date.now() > saveTime + expires_in) || !expires_in || !saveTime) {
|
||
|
|
// uni.navigateTo({
|
||
|
|
// url: '/pages/user/login'
|
||
|
|
// })
|
||
|
|
// resolve()
|
||
|
|
// } else {
|
||
|
|
// resolve()
|
||
|
|
// }
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|
||
|
|
export function get (url = '', data = {}, flag = true) {
|
||
|
|
return new Promise(async (resolve, reject) => {
|
||
|
|
if(!url.includes('/pay/')) {
|
||
|
|
await toLogin(url)
|
||
|
|
}
|
||
|
|
uni.request({
|
||
|
|
url: api.url + url,
|
||
|
|
data: data,
|
||
|
|
method: 'GET',
|
||
|
|
header: {
|
||
|
|
Authorization: uni.getStorageSync('token') || authToken,
|
||
|
|
accept: "application/json",
|
||
|
|
appid: api.appId
|
||
|
|
},
|
||
|
|
success: res => {
|
||
|
|
if (res.statusCode === 200 || res.statusCode === 201) {
|
||
|
|
resolve(res.data)
|
||
|
|
} else if (res.statusCode === 404){
|
||
|
|
showToast(res.data.message || res.data.error)
|
||
|
|
reject(res.data.message || res.data.error)
|
||
|
|
setTimeout(function() {
|
||
|
|
uni.navigateBack({delta: 1})
|
||
|
|
}, 1000)
|
||
|
|
} else if(res.statusCode === 401 && flag) {
|
||
|
|
get(url, data, false)
|
||
|
|
} else if(res.statusCode === 429) {
|
||
|
|
resolve(res.data)
|
||
|
|
showToast('系统繁忙,请稍后重试')
|
||
|
|
} else {
|
||
|
|
let msg = res.data.message || res.data.error
|
||
|
|
if(msg) {
|
||
|
|
if(msg == 'Unauthenticated') {
|
||
|
|
uni.removeStorageSync('token')
|
||
|
|
uni.removeStorageSync('saveTime')
|
||
|
|
uni.removeStorageSync('expires_in')
|
||
|
|
uni.redirectTo({
|
||
|
|
url: '/pages/user/login'
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
reject(msg)
|
||
|
|
}
|
||
|
|
},
|
||
|
|
fail:(err)=>{
|
||
|
|
console.log('fail', err)
|
||
|
|
},
|
||
|
|
complete: async(complete) => {
|
||
|
|
}
|
||
|
|
})
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|
||
|
|
export function getReq (url = '', data = {}, flag = true) {
|
||
|
|
return new Promise((resolve, reject) => {
|
||
|
|
uni.request({
|
||
|
|
url: api.url + url,
|
||
|
|
data: data,
|
||
|
|
method: 'GET',
|
||
|
|
header: {
|
||
|
|
Authorization: uni.getStorageSync('token') || authToken,
|
||
|
|
accept: "application/json",
|
||
|
|
appid: api.appId
|
||
|
|
},
|
||
|
|
success: res => {
|
||
|
|
if (res.statusCode === 200 || res.statusCode === 201) {
|
||
|
|
resolve(res.data)
|
||
|
|
} else if(res.statusCode === 401 && flag) {
|
||
|
|
reject(res.data)
|
||
|
|
getReq(url, data, false)
|
||
|
|
} else if (res.statusCode === 401 && !flag){
|
||
|
|
showToast(res.data.message || res.data.error)
|
||
|
|
resolve(res.data)
|
||
|
|
} else if (res.statusCode === 404){
|
||
|
|
reject(res.data.message)
|
||
|
|
} else if(res.statusCode === 429) {
|
||
|
|
showToast('系统繁忙,请稍后重试')
|
||
|
|
resolve(res.data)
|
||
|
|
} else {
|
||
|
|
let msg = res.data.message || res.data.error
|
||
|
|
if(msg) {
|
||
|
|
if(msg == 'Unauthenticated') {
|
||
|
|
uni.removeStorageSync('token')
|
||
|
|
uni.removeStorageSync('saveTime')
|
||
|
|
uni.removeStorageSync('expires_in')
|
||
|
|
uni.redirectTo({
|
||
|
|
url: '/pages/user/login'
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
reject(msg)
|
||
|
|
reject(res.data.message || res.data.error)
|
||
|
|
}
|
||
|
|
},
|
||
|
|
fail:(err)=>{
|
||
|
|
|
||
|
|
},
|
||
|
|
complete: async(complete) => {
|
||
|
|
}
|
||
|
|
})
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|
||
|
|
export function post (url = '', data = {}, requestType = 'POST', flag = true) {
|
||
|
|
return new Promise(async(resolve, reject) => {
|
||
|
|
if(!url.includes('order/create') && !url.includes('user/vip')) {
|
||
|
|
await toLogin(url)
|
||
|
|
}
|
||
|
|
uni.request({
|
||
|
|
method: requestType,
|
||
|
|
url: api.url + url,
|
||
|
|
data,
|
||
|
|
header: {
|
||
|
|
Authorization: uni.getStorageSync('token') || authToken,
|
||
|
|
accept: "application/json",
|
||
|
|
appid: api.appId
|
||
|
|
},
|
||
|
|
success: res => {
|
||
|
|
if (res.statusCode === 200 || res.statusCode === 201) {
|
||
|
|
resolve(res.data)
|
||
|
|
} else if (res.statusCode === 404){
|
||
|
|
showToast(res.data.message || res.data.error)
|
||
|
|
reject(res.data.message)
|
||
|
|
} else if(res.statusCode === 401 && flag) {
|
||
|
|
post(url, data, requestType, false)
|
||
|
|
} else if(res.statusCode === 429) {
|
||
|
|
showToast('系统繁忙,请稍后重试')
|
||
|
|
resolve(res.data)
|
||
|
|
} else {
|
||
|
|
let msg = res.data.message || res.data.error
|
||
|
|
if(url.indexOf('decrypt/data') === -1 && msg == 'Unauthenticated') {
|
||
|
|
uni.removeStorageSync('token')
|
||
|
|
uni.removeStorageSync('saveTime')
|
||
|
|
uni.removeStorageSync('expires_in')
|
||
|
|
uni.redirectTo({
|
||
|
|
url: '/pages/user/login'
|
||
|
|
})
|
||
|
|
}
|
||
|
|
reject(msg)
|
||
|
|
}
|
||
|
|
},
|
||
|
|
fail:(err)=>{
|
||
|
|
},
|
||
|
|
complete: async (complete) => {
|
||
|
|
}
|
||
|
|
})
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|