import $var from '../js/const'
|
// import route from '../../router/index'
|
// import nav from '../js/nav'
|
import store from '../../store/index'
|
|
// token 检测
|
let is_token = (r, fn) => {
|
let cc = [2].indexOf(r.code) >= 0
|
if (cc) {
|
// demo.toast('登录失效,请重新登录')
|
zzLogin(() => {
|
fn();
|
})
|
}
|
if (r.code === 0 && r.err) {
|
if (demo._is_obj(r.err).code === 6) {
|
demo.toast(r.err.status + ':' + r.err.error)
|
} else if (r.err.indexOf('getAttribute') >= 0) {
|
demo.log(r.err)
|
}
|
return
|
}
|
if ((r.msg || '').indexOf('token') >= 0 || cc) {
|
// route.push(nav.url('/login'))
|
zzLogin(() => {
|
fn();
|
})
|
} else {
|
fn()
|
}
|
}
|
let is_header = () => {
|
let zztoken = demo.$session.get('zztoken') || '';
|
if (zztoken) {
|
return {
|
'Authorization': 'Bearer ' + demo.$session.get('zztoken') || '',
|
}
|
}
|
return '';
|
|
}
|
|
|
|
let is_debug = (res, url, data) => {
|
let c = (text, color) => {
|
return { text, sty: 'color:' + color }
|
}
|
let debug = (demo.$local.get('debug') === true ? 1 : 0) || $var.debug
|
if (debug) {
|
let e = res.code === $var.successCode ? 'success' : 'error'
|
demo.log('debug ' + e + ' start', 1)
|
.log(c('url:', 'orange'), 6).log(url)
|
.log(c('data:', 'tomato'), 6).log(data).log(JSON.stringify(data))
|
.log(c('callback:', 'green'), 6).log(res)
|
.log(c('debug end', '#fff;background:#333;padding:5px 10px'), 6).log('', 3)
|
}
|
}
|
let is_load = (f) => {
|
load(f)
|
}
|
|
function zzLogin (fn) {
|
|
const data = {
|
username: "huacheng",
|
password: "hc1236987"
|
}
|
this.post("aaToken", data, e => {
|
|
demo.$session.set("zztoken", e.token);
|
console.log(e);
|
fn();
|
});
|
|
}
|
|
// post
|
function post (url, data, fn, fn2, token) {
|
let header = {}
|
if (!token) { header = is_header() };
|
is_load()
|
demo.ajax($var.api.zzhttp + url).post(data, res => {
|
is_debug(res, url, data)
|
is_load(true)
|
if (res.code === $var.successCode) {
|
fn(res.data)
|
} else {
|
is_token(res, () => {
|
if (fn2) {
|
fn2(res)
|
} else {
|
demo.toast(res.msg || '服务器开小差了...')
|
}
|
})
|
}
|
}, 'json', header)
|
}
|
|
// get
|
function get (url, data, fn, fn2, token) {
|
let header = {}
|
if (!token) { header = is_header() };
|
is_load()
|
demo.ajax($var.api.zzhttp + url).get(data, res => {
|
is_debug(res, url, data)
|
is_load(true)
|
if (res.code === $var.successCode) {
|
fn(res.data)
|
} else {
|
is_token(res, () => {
|
if (fn2) {
|
fn2(res)
|
} else {
|
demo.toast(res.msg || '服务器开小差了...')
|
}
|
})
|
}
|
}, 'json', header)
|
}
|
|
|
demo.access('loadingTimer', null)
|
|
// loading
|
let load = (f) => {
|
let load = demo.$local.get('loading')
|
let fn = () => {
|
store.dispatch("setLoading", demo.rand(-999, -1));
|
clearTimeout(demo.loadingTimer)
|
demo.loadingTimer = null
|
}
|
if (load) {
|
if (!f) {
|
let num = demo.$local.get("loading-time") || 500;
|
num = num < 20 ? 20 : num
|
if (demo.loadingTimer) {
|
fn()
|
}
|
store.dispatch("setLoading", Date.now());
|
demo.loadingTimer = setTimeout(() => {
|
fn()
|
}, num)
|
} else {
|
fn()
|
}
|
}
|
}
|
|
|
|
|
const http = {
|
// method
|
post,
|
get,
|
load,
|
}
|
|
export default http
|