添加错误处理

This commit is contained in:
name
2025-09-26 16:37:08 +08:00
parent 74b79b5889
commit f7ec061c25
2 changed files with 134 additions and 122 deletions

View File

@@ -1,63 +1,68 @@
import axios from 'axios' import axios from "axios";
import type { AxiosInstance, AxiosRequestConfig } from 'axios' import type { AxiosInstance, AxiosRequestConfig } from "axios";
class HttpRequest { class HttpRequest {
private readonly baseUrl: string private readonly baseUrl: string;
constructor() { constructor() {
this.baseUrl = '/api' this.baseUrl = "/api";
} }
getInsideConfig() { getInsideConfig() {
const config = { const config = {
baseURL: this.baseUrl, // 所有的请求地址前缀部分(没有后端请求不用写) baseURL: this.baseUrl, // 所有的请求地址前缀部分(没有后端请求不用写)
timeout: 80000 // 请求超时时间(毫秒) timeout: 80000, // 请求超时时间(毫秒)
};
return config;
}
// 请求拦截
interceptors(instance: AxiosInstance, url: string | number | undefined) {
instance.interceptors.request.use(
(config) => {
// 添加全局的loading..
// config.headers['Authorization'] =
// 'bearer ' + JSON.parse(window.localStorage.getItem('adminInfo') || '{}').access_token; // 请求头带上token token要在登录的时候保存在localStorage中
// console.log(
// "🚀 ~ requestHandler ~ config.headers['Authorization']:",
// JSON.parse(window.localStorage.getItem('adminInfo') || '{}'),
// config.headers
// );
config.headers["Authorization"] =
"bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySW5kZXgiOiJmYTM3YjkzY2M5MGQ0YzE3ODRjYThmNmRlYmRkZWUxYSIsInVzZXJfbmFtZSI6InJvb3QiLCJzY29wZSI6WyJhbGwiXSwibmlja25hbWUiOiLotoXnuqfnrqHnkIblkZgiLCJ1c2VyVHlwZSI6MCwiZGVwdEluZGV4IjoiNTY5OWU1OTE2YTE4YTYzODFlMWFjOTJkYTViZDI2MjgiLCJleHAiOjE4MjE4MTc2MTksImF1dGhvcml0aWVzIjpbInJvb3QiXSwianRpIjoiMmJiM2Q5ZTYtNmY3Yy00Yjg1LThiM2EtZDI2ODdmMTUzMDg5IiwiY2xpZW50X2lkIjoibmpjbnRlc3QiLCJoZWFkU2N1bHB0dXJlIjoicmVzb3VyY2VEYXRhLzMxNzRDRUFFOUQ0MjRGMjJCQjkxQTU4OURENjdCMDUxLmpwZyJ9.WjeYl1lvvJdDE1FUGIhS99rE5qKaBXOypWxmxK0svWweGqEbu1XCLjKm_YkiTwjZJ_oIcn5JOO9rvHFkkea76BUsYo5wlzuBBiy7sKqM1fFzOFQq6hdFevNTJAbYH9FiBxYxI-e9DZ5mvLGE6umOjUfn_FAsku2w6Uj5DtvpOKBWYzLEPTEifOqNI9he4zJAmVZniUUMf26SDoEdfu0TyrIS1j_qKaEb-cqR1XDhivdthEBK5m9vxJyXFZ5kofNxwQQkit_oiqJRkCZIt9TWAjCh-frzMHCvA30hkAr-VCD2JfCmmEr3hW_lmwfINaPtFVbHCdCKqdrl6VmF1HObaQ";
// 请求头携带token
return config;
},
(error: any) => {
return Promise.reject(error);
}
);
//响应拦截
instance.interceptors.response.use(
(res) => {
//返回数据
const { data } = res;
// console.log("返回数据处理", res);
if (res.data && res.data.code == "A0000") {
return data;
} else {
ElMessage.warning(res.data.message);
} }
return config // return data
} },
(error: any) => {
console.log("error==>", error);
return Promise.reject(error);
}
);
}
// 请求拦截 request(options: AxiosRequestConfig) {
interceptors(instance: AxiosInstance, url: string | number | undefined) { const instance = axios.create();
instance.interceptors.request.use( options = Object.assign(this.getInsideConfig(), options);
config => { this.interceptors(instance, options.url);
// 添加全局的loading.. return instance(options);
// config.headers['Authorization'] = }
// 'bearer ' + JSON.parse(window.localStorage.getItem('adminInfo') || '{}').access_token; // 请求头带上token token要在登录的时候保存在localStorage中
// console.log(
// "🚀 ~ requestHandler ~ config.headers['Authorization']:",
// JSON.parse(window.localStorage.getItem('adminInfo') || '{}'),
// config.headers
// );
config.headers['Authorization'] =
'bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySW5kZXgiOiJmYTM3YjkzY2M5MGQ0YzE3ODRjYThmNmRlYmRkZWUxYSIsInVzZXJfbmFtZSI6InJvb3QiLCJzY29wZSI6WyJhbGwiXSwibmlja25hbWUiOiLotoXnuqfnrqHnkIblkZgiLCJ1c2VyVHlwZSI6MCwiZGVwdEluZGV4IjoiNTY5OWU1OTE2YTE4YTYzODFlMWFjOTJkYTViZDI2MjgiLCJleHAiOjE4MjE4MTc2MTksImF1dGhvcml0aWVzIjpbInJvb3QiXSwianRpIjoiMmJiM2Q5ZTYtNmY3Yy00Yjg1LThiM2EtZDI2ODdmMTUzMDg5IiwiY2xpZW50X2lkIjoibmpjbnRlc3QiLCJoZWFkU2N1bHB0dXJlIjoicmVzb3VyY2VEYXRhLzMxNzRDRUFFOUQ0MjRGMjJCQjkxQTU4OURENjdCMDUxLmpwZyJ9.WjeYl1lvvJdDE1FUGIhS99rE5qKaBXOypWxmxK0svWweGqEbu1XCLjKm_YkiTwjZJ_oIcn5JOO9rvHFkkea76BUsYo5wlzuBBiy7sKqM1fFzOFQq6hdFevNTJAbYH9FiBxYxI-e9DZ5mvLGE6umOjUfn_FAsku2w6Uj5DtvpOKBWYzLEPTEifOqNI9he4zJAmVZniUUMf26SDoEdfu0TyrIS1j_qKaEb-cqR1XDhivdthEBK5m9vxJyXFZ5kofNxwQQkit_oiqJRkCZIt9TWAjCh-frzMHCvA30hkAr-VCD2JfCmmEr3hW_lmwfINaPtFVbHCdCKqdrl6VmF1HObaQ'
// 请求头携带token
return config
},
(error: any) => {
return Promise.reject(error)
}
)
//响应拦截
instance.interceptors.response.use(
res => {
//返回数据
const { data } = res
// console.log('返回数据处理', res)
return data
},
(error: any) => {
console.log('error==>', error)
return Promise.reject(error)
}
)
}
request(options: AxiosRequestConfig) {
const instance = axios.create()
options = Object.assign(this.getInsideConfig(), options)
this.interceptors(instance, options.url)
return instance(options)
}
} }
const http = new HttpRequest() const http = new HttpRequest();
export default http export default http;

View File

@@ -677,79 +677,86 @@ const generateMetrics = async () => {
type: form.type, type: form.type,
}) })
.then((res: any) => { .then((res: any) => {
tabList.value[activeName.value].dynamicData = res.data.responsibilities; if (res.code == "A0000") {
let [min, max] = yMethod( tabList.value[activeName.value].dynamicData = res.data.responsibilities;
res.data.datas.map((item: any) => item.valueDatas).flat() let [min, max] = yMethod(
); res.data.datas.map((item: any) => item.valueDatas).flat()
let series: any[] = []; );
let time: any[] = res.data.timeDatas.map((item: any) => timeFormat(item)); let series: any[] = [];
res.data.datas.forEach((item: any) => { let time: any[] = res.data.timeDatas.map((item: any) =>
series.push({ timeFormat(item)
name: item.customerName, );
data: item.valueDatas.map((k: any, i: number) => [ res.data.datas.forEach((item: any) => {
time[i], series.push({
Math.floor(k * 10000) / 10000, name: item.customerName,
]), data: item.valueDatas.map((k: any, i: number) => [
type: "line", time[i],
smooth: true, Math.floor(k * 10000) / 10000,
symbol: "none", ]),
type: "line",
smooth: true,
symbol: "none",
});
}); });
});
tabList.value[activeName.value].dynamicOptions = { tabList.value[activeName.value].dynamicOptions = {
title: { title: {
text: "", text: "",
}, },
xAxis: { xAxis: {
type: "time", type: "time",
name: "时间", name: "时间",
axisLabel: { axisLabel: {
formatter: { formatter: {
day: "{MM}-{dd}", day: "{MM}-{dd}",
month: "{MM}", month: "{MM}",
year: "{yyyy}", year: "{yyyy}",
},
}, },
}, },
}, tooltip: {
tooltip: { formatter(params: any) {
formatter(params: any) { let str = params[0].value[0] + "<br/>";
let str = params[0].value[0] + "<br/>"; for (let i = 0; i < params.length; i++) {
for (let i = 0; i < params.length; i++) { str =
str = str +
str + params[i].marker +
params[i].marker + params[i].seriesName +
params[i].seriesName + "" +
"" + params[i].value[1] +
params[i].value[1] + "<br/>";
"<br/>"; }
}
return str; return str;
},
},
grid: {
top: 30,
},
legend: {
show: false,
},
yAxis: {
name: form.type == 1 ? "%" : "A",
min: min,
max: max,
},
toolbox: {
show: false,
}, },
},
grid: {
top: 30,
},
legend: {
show: false,
},
yAxis: {
name: form.type == 1 ? "%" : "A",
min: min,
max: max,
},
toolbox: {
show: false,
},
options: { options: {
series: series, series: series,
}, },
}; };
tabList.value[activeName.value].showDynamic = true; tabList.value[activeName.value].showDynamic = true;
} else {
ElMessage.warning(res.message);
loading1.value = false;
}
}) })
.catch(() => { .catch((error) => {
loading1.value = false; loading1.value = false;
}); });
loading1.value = false; loading1.value = false;
@@ -971,7 +978,7 @@ defineExpose({
} }
} }
::v-deep(.el-tag__content){ ::v-deep(.el-tag__content) {
max-width: 90px; max-width: 90px;
} }