2024-08-26 03:40:38 +00:00
|
|
|
|
import Request from "./request/index.js";
|
|
|
|
|
import useToast from "@/hooks/toast/useToast.js";
|
2024-10-17 09:46:46 +00:00
|
|
|
|
import { OAorMc } from "../index.js";
|
2024-08-26 03:40:38 +00:00
|
|
|
|
const { showMessage } = useToast();
|
2024-10-22 06:50:17 +00:00
|
|
|
|
|
2024-10-22 05:37:33 +00:00
|
|
|
|
console.log("webview", window?.plus?.webview.getWebviewById("wv").tokenScan);
|
2024-08-26 03:40:38 +00:00
|
|
|
|
const request = new Request({
|
2024-10-17 09:46:46 +00:00
|
|
|
|
baseURL:
|
|
|
|
|
OAorMc() === "MC"
|
|
|
|
|
? import.meta.env.VITE_API_URL
|
|
|
|
|
: import.meta.env.VITE_API_OA_URL,
|
2024-08-26 03:40:38 +00:00
|
|
|
|
timeout: 1000 * 60 * 5,
|
|
|
|
|
interceptors: {
|
|
|
|
|
//实例的请求拦截器
|
|
|
|
|
requestInterceptors: (config) => {
|
|
|
|
|
config.headers["Content-Type"] =
|
|
|
|
|
config.method === "get"
|
|
|
|
|
? "application/x-www-form-urlencoded"
|
|
|
|
|
: "application/json";
|
|
|
|
|
|
2024-10-17 09:46:46 +00:00
|
|
|
|
const token =
|
2024-10-22 05:23:55 +00:00
|
|
|
|
uni.getStorageSync("token") ||
|
2024-10-22 05:50:20 +00:00
|
|
|
|
window?.plus?.storage.getItemAsync("token") ||
|
2024-10-22 05:37:33 +00:00
|
|
|
|
window?.plus?.webview.getWebviewById("wv").tokenScan ||
|
2024-10-22 05:23:55 +00:00
|
|
|
|
uni.getStorageSync("store-token") ||
|
|
|
|
|
"";
|
2024-10-22 06:57:05 +00:00
|
|
|
|
console.log(
|
|
|
|
|
"tokenServer",
|
|
|
|
|
|
|
|
|
|
uni.getStorageSync("token"),
|
|
|
|
|
"realtoken",
|
|
|
|
|
token
|
|
|
|
|
);
|
2024-08-26 03:40:38 +00:00
|
|
|
|
if (config.isFormData) {
|
|
|
|
|
config.headers["Content-Type"] = "multipart/form-data";
|
|
|
|
|
config.headers["Authorization"] = token;
|
|
|
|
|
} else {
|
|
|
|
|
config.headers["Authorization"] = token;
|
|
|
|
|
}
|
|
|
|
|
return config;
|
|
|
|
|
},
|
|
|
|
|
//实例的响应拦截器
|
|
|
|
|
responseInterceptors: async (response) => {
|
|
|
|
|
if (response.data.status === 1) {
|
|
|
|
|
showMessage({ type: "error", message: response.data.msg });
|
|
|
|
|
}
|
2024-09-14 03:44:44 +00:00
|
|
|
|
// if(response.data.status === 0){
|
|
|
|
|
// uni.setStorageSync("token", response.data.data.Token);
|
|
|
|
|
// uni.setStorageSync("userInfo", response.data.data.AccountInfo);
|
|
|
|
|
// response.config.headers["Authorization"] = response.data.data.Token;
|
|
|
|
|
// }
|
2024-08-26 03:40:38 +00:00
|
|
|
|
if (response.data.code === 401) {
|
2024-10-17 02:59:23 +00:00
|
|
|
|
uni.clearStorageSync(); //清缓存
|
|
|
|
|
const params = new URLSearchParams(window.location.search); //属性包含当前 URL 的查询字符串部分
|
|
|
|
|
const id = params.get("id");
|
|
|
|
|
const pid = params.get("pid");
|
2024-08-26 03:40:38 +00:00
|
|
|
|
uni.navigateTo({
|
2024-10-17 02:59:23 +00:00
|
|
|
|
url: "/pages/login/index?id=" + id + "&pid=" + pid,
|
2024-08-26 03:40:38 +00:00
|
|
|
|
});
|
2024-10-17 02:59:23 +00:00
|
|
|
|
return false;
|
2024-08-26 03:40:38 +00:00
|
|
|
|
}
|
|
|
|
|
if ([200, 201, 204].includes(response.status)) {
|
|
|
|
|
return response.config.responseType === "blob" ? response : response;
|
|
|
|
|
} else {
|
2024-09-12 06:53:48 +00:00
|
|
|
|
// showMessage({ type: "error", message: response.data.msg });
|
2024-08-26 03:40:38 +00:00
|
|
|
|
return Promise.reject(
|
|
|
|
|
new Error(response.data.msg || "An error occurred.")
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const fontRequest = (config) => {
|
|
|
|
|
console.log(import.meta);
|
|
|
|
|
|
|
|
|
|
if (["get", "GET"].includes(config.method)) {
|
|
|
|
|
config.params = config.data;
|
|
|
|
|
}
|
|
|
|
|
return request.request(config);
|
|
|
|
|
};
|
|
|
|
|
|
2024-10-22 07:12:11 +00:00
|
|
|
|
/**
|
|
|
|
|
* 通用uni-app网络请求
|
|
|
|
|
* 基于 Promise 对象实现更简单的 request 使用方式,支持请求和响应拦截
|
|
|
|
|
*/
|
|
|
|
|
// import useToast from "@/hooks/toast/useToast.js";
|
|
|
|
|
// import { OAorMc } from "../index.js";
|
|
|
|
|
// const { showMessage } = useToast();
|
|
|
|
|
// export default {
|
|
|
|
|
// config: {
|
|
|
|
|
// baseUrl:
|
|
|
|
|
// OAorMc() === "MC"
|
|
|
|
|
// ? import.meta.env.VITE_API_URL
|
|
|
|
|
// : import.meta.env.VITE_API_OA_URL,
|
|
|
|
|
// header: {
|
|
|
|
|
// "Content-Type": "application/json;charset=UTF-8",
|
|
|
|
|
// // 'Content-Type':'application/x-www-form-urlencoded'
|
|
|
|
|
// },
|
|
|
|
|
// data: {},
|
|
|
|
|
// method: "GET",
|
|
|
|
|
// dataType: "json" /* 如设为json,会对返回的数据做一次 JSON.parse */,
|
|
|
|
|
// responseType: "text",
|
|
|
|
|
// success() {},
|
|
|
|
|
// fail() {},
|
|
|
|
|
// complete() {},
|
|
|
|
|
// },
|
|
|
|
|
// interceptor: {
|
|
|
|
|
// request: null,
|
|
|
|
|
// response: null,
|
|
|
|
|
// },
|
|
|
|
|
// request(options) {
|
|
|
|
|
// if (!options) {
|
|
|
|
|
// options = {};
|
|
|
|
|
// }
|
|
|
|
|
// console.log(123, options.baseUrl);
|
|
|
|
|
// options.baseUrl = options.baseUrl || this.config.baseUrl;
|
|
|
|
|
// options.dataType = options.dataType || this.config.dataType;
|
|
|
|
|
// options.url = options.baseUrl + options.url;
|
|
|
|
|
// options.data = options.data || {};
|
|
|
|
|
// options.method = options.method || this.config.method;
|
|
|
|
|
// //TODO 加密数据
|
|
|
|
|
// options.header = options.header || this.config.header;
|
|
|
|
|
// //TODO 数据签名
|
|
|
|
|
// let _token = {
|
|
|
|
|
// Authorization: uni.getStorageSync("oa-token") || "undefined",
|
|
|
|
|
// };
|
|
|
|
|
// options.header = Object.assign({}, options.header, _token);
|
|
|
|
|
|
|
|
|
|
// return new Promise((resolve, reject) => {
|
|
|
|
|
// let _config = null;
|
|
|
|
|
|
|
|
|
|
// options.complete = async (response) => {
|
|
|
|
|
// let statusCode = response.statusCode;
|
|
|
|
|
// response.config = _config;
|
|
|
|
|
// if (this.interceptor.response) {
|
|
|
|
|
// let newResponse = this.interceptor.response(response);
|
|
|
|
|
// if (newResponse) {
|
|
|
|
|
// response = newResponse;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// if (response.data.status === 401) {
|
|
|
|
|
// uni.clearStorageSync(); //清缓存
|
|
|
|
|
// const params = new URLSearchParams(window.location.search); //属性包含当前 URL 的查询字符串部分
|
|
|
|
|
// const id = params.get("id");
|
|
|
|
|
// const pid = params.get("pid");
|
|
|
|
|
// uni.navigateTo({
|
|
|
|
|
// url: "/pages/login/index?id=" + id + "&pid=" + pid,
|
|
|
|
|
// });
|
|
|
|
|
// return false;
|
|
|
|
|
// } else {
|
|
|
|
|
// // 统一的响应日志记录
|
|
|
|
|
// _reslog(response);
|
|
|
|
|
// if (statusCode === 200) {
|
|
|
|
|
// //成功
|
|
|
|
|
// resolve(response.data);
|
|
|
|
|
// } else {
|
|
|
|
|
// reject(response);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
|
|
// _config = Object.assign({}, this.config, options);
|
|
|
|
|
// _config.requestId = new Date().getTime();
|
|
|
|
|
|
|
|
|
|
// if (this.interceptor.request) {
|
|
|
|
|
// this.interceptor.request(_config);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// uni.request(_config);
|
|
|
|
|
// });
|
|
|
|
|
// },
|
|
|
|
|
// isRefreshing: false,
|
|
|
|
|
// refreshSubscribers: [],
|
|
|
|
|
// get(url, data, options) {
|
|
|
|
|
// if (!options) {
|
|
|
|
|
// options = {};
|
|
|
|
|
// }
|
|
|
|
|
// options.url = url;
|
|
|
|
|
// options.data = data;
|
|
|
|
|
// options.method = "GET";
|
|
|
|
|
// return this.request(options);
|
|
|
|
|
// },
|
|
|
|
|
// post(url, data, options, header) {
|
|
|
|
|
// if (!options) {
|
|
|
|
|
// options = {};
|
|
|
|
|
// }
|
|
|
|
|
// options.url = url;
|
|
|
|
|
// options.data = data;
|
|
|
|
|
// options.header = header;
|
|
|
|
|
// options.method = "POST";
|
|
|
|
|
// return this.request(options);
|
|
|
|
|
// },
|
|
|
|
|
// put(url, data, options) {
|
|
|
|
|
// if (!options) {
|
|
|
|
|
// options = {};
|
|
|
|
|
// }
|
|
|
|
|
// options.url = url;
|
|
|
|
|
// options.data = data;
|
|
|
|
|
// options.method = "PUT";
|
|
|
|
|
// return this.request(options);
|
|
|
|
|
// },
|
|
|
|
|
// delete(url, data, options) {
|
|
|
|
|
// if (!options) {
|
|
|
|
|
// options = {};
|
|
|
|
|
// }
|
|
|
|
|
// options.url = url;
|
|
|
|
|
// options.data = data;
|
|
|
|
|
// options.method = "DELETE";
|
|
|
|
|
// return this.request(options);
|
|
|
|
|
// },
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * 响应接口日志记录
|
|
|
|
|
// */
|
|
|
|
|
// function _reslog(res) {
|
|
|
|
|
// let _statusCode = res.data.status;
|
|
|
|
|
// //TODO 除了接口服务错误外,其他日志调接口异步写入日志数据库
|
|
|
|
|
// switch (_statusCode) {
|
|
|
|
|
// case 200:
|
|
|
|
|
// break;
|
|
|
|
|
// case 401:
|
|
|
|
|
// break;
|
|
|
|
|
// case 404:
|
|
|
|
|
// break;
|
|
|
|
|
// default:
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// }
|