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