app-base-web
Version:
web development common base package.
173 lines (170 loc) • 4.73 kB
JavaScript
import axios from 'axios'
// import qs from 'query-string'
import net from '../util-net'
import string from '../util-string'
const _Export = {
_DicList: {},
_DicJson: {},
// get:function(url, data) {
// return new Promise((resolve, reject) => {
// axios.get(url)
// .then((response) => {
// resolve(response.data)
// }, reject)
// })
// },
// onErr: function (isIframe) {
// net.cookie.remove("_isLogin");
// net.cookie.remove("token");
// if (isIframe) {
// top.location.href = "/"
// } else {
// location.href = "/"
// }
// },
setUser: function (user) {
if (user) {
net.cookie.set("token", user.token)
net.cookie.set("type", user.type)
net.cookie.set("name", user.name)
net.cookie.set("code", user.code)
net.cookie.set("dept", user.dept)
net.cookie.set("menus", string.encrypt(user.menus, user.token))
} else {
net.cookie.remove("token")
net.cookie.remove("type")
net.cookie.remove("name")
net.cookie.remove("code")
net.cookie.remove("dept")
net.cookie.remove("menus")
}
},
getUser: function () {
return {
token: net.cookie.get("token") || "",
type: net.cookie.get("type") || "",
name: net.cookie.get("name") || "",
code: net.cookie.get("code") || "",
dept: net.cookie.get("dept") || "",
systemId:net.cookie.get("systemId")||""
}
},
post: function (url, data, callback) {
let user = _Export.getUser()
return new Promise((resolve, reject) => {
axios.post(url, data, {
headers: {
langue: "zh_CN",
token: user.token,
systemId:user.systemId
}
}).then((response) => {
resolve(response.data)
callback && callback(response.data)
}, reject)
})
},
get: function (url, data, callback) {
let user = _Export.getUser()
let _data = {};
for (let key in data) {
if (data[key] instanceof Array) {
if (url.indexOf("?") >= 0) {
url += "&" + key + "=" + data[key]
} else {
url += "?" + key + "=" + data[key]
}
} else {
_data[key] = data[key];
}
}
return new Promise((resolve, reject) => {
axios.get(url, {
params: _data,
headers: {
langue: "zh_CN",
token: user.token
}
}).then((response) => {
resolve(response.data)
callback && callback(response.data)
}, reject)
})
},
getHtml: function (url, data) {
return new Promise((resolve, reject) => {
axios.get(url)
.then((response) => {
resolve(response.data)
}, reject)
})
},
submit: function (url, data, callback) {
let user = _Export.getUser()
return new Promise((resolve, reject) => {
axios({
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
langue: "zh_CN",
token: user.token
},
method: 'post',
url: url,
data: data
}).then((response) => {
resolve(response.data)
callback && callback(response.data)
}, reject)
})
},
delete: function (url, data, callback) {
let user = _Export.getUser()
let _data = {};
for (let key in data) {
if (data[key] instanceof Array) {
if (url.indexOf("?") >= 0) {
url += "&" + key + "=" + data[key]
} else {
url += "?" + key + "=" + data[key]
}
} else {
_data[key] = data[key];
}
}
return new Promise((resolve, reject) => {
axios.delete(url, {
params: data,
headers: {
langue: "zh_CN",
token: user.token
}
}).then((response) => {
resolve(response.data)
callback && callback(response.data)
}, reject)
})
},
//global defaults
interceptors: function (f_req, f_res, f_Err) {
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
axios.interceptors.request.use(config => {
config.timeout = 30000
// config.withCredentials = true; // 允许携带token ,这个是解决跨域产生的相关问题
// config.data = qs.stringify(config.data);
config = f_req(config)
return config
}, error => {
// _Export.onErr();
// return Promise.reject(error);
if (f_Err) f_Err()
})
axios.interceptors.response.use(response => {
return f_res(response)
}, error => {
// _Export.onErr();
if (f_Err) f_Err()
return Promise.reject(error)
})
}
}
module.exports = _Export