chore: 请求目录模块化

This commit is contained in:
wangxuefeng 2025-02-27 18:15:08 +08:00
parent dd3a590142
commit a835e266b5
3 changed files with 48 additions and 338 deletions

View File

@ -0,0 +1,6 @@
import instance from './instance';
export const getApplicationList = async () => {
const response = await instance.get('/application/list');
return response.data;
};

View File

@ -1,338 +1 @@
import axios from 'axios'; export * from './application';
import { useUserStore } from '@/store/modules/user';
import router from '@/router';
const baseApiUrl = import.meta.env.VITE_BASE_API_URL;
// 添加响应拦截器
axios.interceptors.response.use(
(response) => {
// 如果响应数据中 code 为 -1清空登录状态并跳转到登录页
if (response?.data?.code === -1) {
const userStore = useUserStore();
userStore.clearLoginStatus(); // 清空用户信息
router.push('/login'); // 直接使用路由实例
console.error('请求失败:', response.data.msg);
}
return response;
},
(error) => {
return Promise.reject(error);
},
);
export const userLogin = async (data: {
code?: string;
password?: string;
phone?: string;
type?: 0 | 1;
}) => {
try {
const response = await axios.post(baseApiUrl + 'boyanghu/iotree-service/platform/login', data, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
});
return response.data;
} catch (error) {
console.error('登录请求失败:', error);
throw error;
}
};
export const sendVerificationCode = async (data: { phone: string }) => {
try {
const response = await axios.post(baseApiUrl + 'boyanghu/iotree-service/platform/send', data, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
});
return response.data;
} catch (error) {
console.error('获取验证码请求失败:', error);
throw error;
}
};
export const addDevice = async (data: {
brand?: string;
deviceId?: number;
id?: number;
installPosition?: string;
installTime?: string;
maintainTime?: string;
remarks?: string;
type?: string;
voltage?: string;
}) => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/device/add',
data,
{
headers: {
'Content-Type': 'application/json',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('新增设备请求失败:', error);
throw error;
}
};
export const getDeviceList = async (data?: {
brand?: string;
deviceId?: number;
id?: number;
installPosition?: string;
installTime?: string;
maintainTime?: string;
remarks?: string;
type?: string;
voltage?: string;
}) => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/device/list',
data,
{
headers: {
'Content-Type': 'application/json',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('获取设备列表请求失败:', error);
throw error;
}
};
export const editDevice = async (data: {
brand?: string;
deviceId?: number;
id: number;
installPosition?: string;
installTime?: string;
maintainTime?: string;
remarks?: string;
type?: string;
voltage?: string;
}) => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/device/edit',
data,
{
headers: {
'Content-Type': 'application/json',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('编辑设备请求失败:', error);
throw error;
}
};
export const getDeviceById = async (id: number) => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/device/list',
{ id },
{
headers: {
'Content-Type': 'application/json',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('获取设备记录失败:', error);
throw error;
}
};
export const userLogout = async () => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/outLogin',
{},
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('退出登录请求失败:', error);
throw error;
}
};
export const deleteDevice = async (data: { id: number }) => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/device/delete',
data,
{
headers: {
'Content-Type': 'application/json',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('删除设备请求失败:', error);
throw error;
}
};
export const addDeviceWarning = async (data: {
branchId?: number;
deviceId?: number;
id?: number;
installPosition?: string;
threshold1?: number;
threshold2?: number;
threshold3?: number;
}) => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/device/warning/add',
data,
{
headers: {
'Content-Type': 'application/json',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('新增设备警告请求失败:', error);
throw error;
}
};
export const getDeviceWarningList = async (data: {
branchId?: number;
deviceId?: number;
installPosition?: string;
pageNum?: number;
pageSize?: number;
}) => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/device/warning/list',
data,
{
headers: {
'Content-Type': 'application/json',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('获取设备警告列表请求失败:', error);
throw error;
}
};
export const getDeviceWarningById = async (id: number) => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/device/warning/list',
{ id },
{
headers: {
'Content-Type': 'application/json',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('获取设备警告列表请求失败:', error);
throw error;
}
};
export const deleteDeviceWarning = async (data: { id: number }) => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/device/warning/delete',
data,
{
headers: {
'Content-Type': 'application/json',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('删除设备警告请求失败:', error);
throw error;
}
};
export const editDeviceWarning = async (data: {
branchId?: number;
deviceId?: number;
id?: number;
installPosition?: string;
threshold1?: number;
threshold2?: number;
threshold3?: number;
}) => {
try {
const userStore = useUserStore();
const token = userStore.token;
const response = await axios.post(
baseApiUrl + 'boyanghu/iotree-service/platform/device/warning/edit',
data,
{
headers: {
'Content-Type': 'application/json',
token: token,
},
},
);
return response.data;
} catch (error) {
console.error('编辑设备警告请求失败:', error);
throw error;
}
};

View File

@ -0,0 +1,41 @@
import axios from 'axios';
import { useUserStore } from '@/store/modules/user';
import router from '@/router';
const baseApiUrl = import.meta.env.VITE_BASE_API_URL;
// 创建独立实例
const instance = axios.create({
baseURL: baseApiUrl, // 基础URL直接放在实例配置中
});
// 请求拦截器改为使用实例
instance.interceptors.request.use(
(config) => {
// 可在此处添加统一请求头等配置
return config;
},
(error) => {
return Promise.reject(error);
},
);
// 响应拦截器改为使用实例
instance.interceptors.response.use(
(response) => {
// 如果响应数据中 code 为 -1清空登录状态并跳转到登录页
if (response?.data?.code === -1) {
const userStore = useUserStore();
userStore.clearLoginStatus(); // 清空用户信息
router.push('/login'); // 直接使用路由实例
console.error('请求失败:', response.data.msg);
}
return response;
},
(error) => {
return Promise.reject(error);
},
);
// 导出实例
export default instance;