bug fix and performance improvements

This commit is contained in:
quantulr
2023-08-18 17:32:18 +08:00
parent 3c6ab550cf
commit e750b9be9c
923 changed files with 46650 additions and 9 deletions

View File

@ -0,0 +1,90 @@
import Message from 'tdesign-miniprogram/message/index';
const authWhitelist = [
"/mini-app/login"
]
interface RequestOption {
url: string,
method?: "POST" | "PUT" | "DELETE" | "OPTIONS" | "HEAD" | "TRACE" | "CONNECT",
data?: any,
params?: object
}
interface RequestConfig {
baseUrl: string,
timeout?: number,
}
const buildQueryString = (params: object) => {
const queryParams = [];
for (const key in params) {
if (params.hasOwnProperty(key)) {
const value = encodeURIComponent(params[key]);
queryParams.push(`${encodeURIComponent(key)}=${value}`);
}
}
return `?${queryParams.join('&')}`;
}
class HttpClient {
private baseUrl: string;
constructor(config: RequestConfig) {
this.baseUrl = config.baseUrl
}
request(req: RequestOption) {
let url: string;
let paramsString = "";
if (req.params) {
paramsString = buildQueryString(req.params)
}
if (req.url.startsWith("https://") || req.url.startsWith("http://")) {
url = req.url
} else {
url = `${this.baseUrl}${req.url}${paramsString}`
}
const app = getApp()
const header: any = {}
if (!authWhitelist.includes(req.url)) {
header.Authorization = `Bearer ${app.globalData.authToken}`
}
return new Promise(function (resolve, reject) {
wx.request({
url,
method: req.method,
data: req.data,
header,
success(response) {
let respData: any = response.data;
let statusCode = respData.code;
if (statusCode == 200) {
resolve(respData)
} else {
Message.error({
offset: [20, 32],
duration: 5000,
content: respData.msg,
});
reject(response.data)
}
},
fail(error) {
Message.error({
offset: [20, 32],
duration: 5000,
content: error.errMsg,
});
reject(error)
}
})
})
}
}
export const httpClient = new HttpClient({
baseUrl: "http://192.168.0.201:8080"
})
export default httpClient

View File

@ -0,0 +1,12 @@
export const setToken = (token: string) => {
getApp().globalData.authToken = token
wx.setStorage({
key: "auth-token",
data: token
})
}
export const getToken = () => {
const token = wx.getStorageSync("auth-token")
return token
}

View File

@ -17,3 +17,5 @@ const formatNumber = (n: number) => {
const s = n.toString()
return s[1] ? s : '0' + s
}