import axios from "axios"; import {ElMessage, ElNotification} from 'element-plus' import {loadConfig} from './config.ts' let globalConfig: any = null let router; // 添加初始化方法(在应用启动时调用) export async function initRequest(_router:any) { globalConfig = await loadConfig() router=_router } function post(path: string, data: any = {}, options: any = {}) { let config={catch_error: false,base_url:globalConfig.base_url} config={...config,...options} let token = localStorage.getItem('token'); let headers: Record = {}; if (token) { headers['Authorization'] = token; // 推荐Bearer认证模式 } return new Promise((resolve, reject) => { axios.post(config.base_url + path, data,{ headers: headers // 添加headers配置 }) .then(response => { if (response.status != 200) { if (config.catch_error) { reject("请求失败,请稍后重试"); }else{ show_error("请求失败,请稍后重试"); } return; } let data = response.data; if (data.code == 0) { resolve(data.data); } else if (data.code == 301) { router.push('/manager/login') return; } else{ if (config.catch_error) { reject(data.message); }else{ show_error(data.message); } return; } }) .catch(error => { // 可以在这里添加通知,例如使用 ElNotification console.error(error) if(config.catch_error){ reject("请求异常,请稍后重试"); }else{ show_error("请求异常,请稍后重试") } }); }) } function show_error(mes: any): void { // ElNotification({ // title: '错误', // message: mes, // type: 'error', // }) ElMessage({ message: mes, type: 'error', }) } export { post };