|
@@ -1,45 +1,47 @@
|
|
|
import Vue from "vue";
|
|
|
import axios from "axios";
|
|
|
-import qs from "qs";
|
|
|
import user from "@/store/modules/user";
|
|
|
+import { Message } from "@/utils/message";
|
|
|
+import md5 from "js-md5";
|
|
|
const instance = axios.create({
|
|
|
baseURL: process.env.VUE_APP_BASE_API,
|
|
|
- timeout: 5000,
|
|
|
- headers: {
|
|
|
- "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
|
|
|
- },
|
|
|
- transformRequest: [
|
|
|
- data => {
|
|
|
- if (typeof data !== "object") return data;
|
|
|
- let newData: IAny = {};
|
|
|
- Object.keys(data).forEach(key => {
|
|
|
- if ([null, undefined, ""].includes(data[key])) return;
|
|
|
- if (typeof data[key] === "object") {
|
|
|
- data[key] = JSON.stringify(data[key]);
|
|
|
- }
|
|
|
- newData[key] = data[key];
|
|
|
- });
|
|
|
- return qs.stringify(newData);
|
|
|
- }
|
|
|
- ]
|
|
|
+ timeout: 5000
|
|
|
});
|
|
|
+const appKey = "cd72c223-923f-44a3-aede-b9f07dcd56b8";
|
|
|
+const plat = "steelfurniture";
|
|
|
+const v = "1.0";
|
|
|
+instance.interceptors.request.use(
|
|
|
+ ({ headers: { timestamp = Date.now(), ...h }, ...x }) => ({
|
|
|
+ headers: {
|
|
|
+ timestamp,
|
|
|
+ appKey,
|
|
|
+ plat,
|
|
|
+ v,
|
|
|
+ sign: md5(`timestamp${timestamp}plat${plat}v${v}appKey${appKey}`),
|
|
|
+ ...h
|
|
|
+ },
|
|
|
+ ...x
|
|
|
+ })
|
|
|
+);
|
|
|
+
|
|
|
instance.interceptors.response.use(
|
|
|
x => x,
|
|
|
err => ({
|
|
|
data: {
|
|
|
- errno: -1,
|
|
|
- errmsg: "网络请求失败",
|
|
|
+ code: -1,
|
|
|
+ msg: "网络请求失败",
|
|
|
data: err
|
|
|
}
|
|
|
})
|
|
|
);
|
|
|
const getResult: <T>(x: IBaseResult) => IResult<T> = <T>({
|
|
|
data,
|
|
|
- errmsg,
|
|
|
- errno
|
|
|
+ msg,
|
|
|
+ code
|
|
|
}: IBaseResult<T>) => {
|
|
|
- if (errno === 0) return [null, data];
|
|
|
- return [{ errno, errmsg }, (data || {}) as T];
|
|
|
+ if (code === 0) return [null, data];
|
|
|
+ Message.error(msg || "发生未知错误");
|
|
|
+ return [{ msg, code }, (data || {}) as T];
|
|
|
};
|
|
|
export const post: IRequest = async <T>(url: string, params: any) => {
|
|
|
const { data } = await instance.post<IBaseResult<T>>(url, params);
|