Files
nxxmdata/government-mini-program/utils/api.js
2025-10-17 17:29:11 +08:00

262 lines
5.8 KiB
JavaScript

const request = require('./request.js');
const apiConfig = require('../config/api.js');
/**
* API服务类
*/
class ApiService {
// ==================== 认证相关 ====================
/**
* 用户登录
* @param {string} username 用户名
* @param {string} password 密码
*/
login(username, password) {
return request.post(apiConfig.endpoints.auth.login, {
username,
password
});
}
/**
* 获取用户信息
*/
getUserInfo() {
return request.get(apiConfig.endpoints.auth.userInfo);
}
/**
* 用户退出登录
*/
logout() {
return request.post(apiConfig.endpoints.auth.logout);
}
// ==================== 养殖户管理 ====================
/**
* 获取养殖户列表
* @param {Object} params 查询参数
*/
getFarmers(params = {}) {
return request.get(apiConfig.endpoints.farmer.list, params);
}
/**
* 获取养殖户详情
* @param {string} id 养殖户ID
*/
getFarmerDetail(id) {
return request.get(`${apiConfig.endpoints.farmer.detail}/${id}`);
}
/**
* 创建养殖户
* @param {Object} data 养殖户数据
*/
createFarmer(data) {
return request.post(apiConfig.endpoints.farmer.create, data);
}
/**
* 更新养殖户信息
* @param {string} id 养殖户ID
* @param {Object} data 更新数据
*/
updateFarmer(id, data) {
return request.put(`${apiConfig.endpoints.farmer.update}/${id}`, data);
}
/**
* 删除养殖户
* @param {string} id 养殖户ID
*/
deleteFarmer(id) {
return request.delete(`${apiConfig.endpoints.farmer.delete}/${id}`);
}
/**
* 重置养殖户密码
* @param {string} id 养殖户ID
*/
resetFarmerPassword(id) {
return request.post(apiConfig.endpoints.farmer.resetPassword.replace('{id}', id));
}
/**
* 获取养殖场类型列表
*/
getFarmTypes() {
return request.get(apiConfig.endpoints.farmer.farmTypes);
}
/**
* 获取动物类型列表
*/
getAnimalTypes() {
return request.get(apiConfig.endpoints.farmer.animalTypes);
}
// ==================== 数据统计 ====================
/**
* 获取数据中心统计信息
*/
getDataCenterStats() {
return request.get(apiConfig.endpoints.statistics.dataCenter);
}
/**
* 获取市场价格信息
*/
getMarketPrice() {
return request.get(apiConfig.endpoints.statistics.marketPrice);
}
// ==================== 设备管理 ====================
/**
* 获取设备告警列表
* @param {Object} params 查询参数
*/
getDeviceWarnings(params = {}) {
return request.get(apiConfig.endpoints.device.warnings, params);
}
/**
* 获取智能项圈列表
* @param {Object} params 查询参数
*/
getSmartCollars(params = {}) {
return request.get(apiConfig.endpoints.device.smartCollars, params);
}
/**
* 创建智能项圈
* @param {Object} data 项圈数据
*/
createSmartCollar(data) {
return request.post(apiConfig.endpoints.device.smartCollars, data);
}
/**
* 更新智能项圈
* @param {string} id 项圈ID
* @param {Object} data 更新数据
*/
updateSmartCollar(id, data) {
return request.put(`${apiConfig.endpoints.device.smartCollars}/${id}`, data);
}
/**
* 删除智能项圈
* @param {string} id 项圈ID
*/
deleteSmartCollar(id) {
return request.delete(`${apiConfig.endpoints.device.smartCollars}/${id}`);
}
// ==================== 疫情管理 ====================
/**
* 获取疫情记录列表
* @param {Object} params 查询参数
*/
getEpidemicRecords(params = {}) {
return request.get(apiConfig.endpoints.epidemic.records, params);
}
/**
* 获取疫情活动列表
* @param {Object} params 查询参数
*/
getEpidemicActivities(params = {}) {
return request.get(apiConfig.endpoints.epidemic.activities, params);
}
/**
* 获取疫苗列表
* @param {Object} params 查询参数
*/
getVaccines(params = {}) {
return request.get(apiConfig.endpoints.epidemic.vaccines, params);
}
// ==================== 监管任务 ====================
/**
* 获取监管任务列表
* @param {Object} params 查询参数
*/
getSupervisionTasks(params = {}) {
return request.get(apiConfig.endpoints.supervision.tasks, params);
}
// ==================== 审批流程 ====================
/**
* 获取审批流程列表
* @param {Object} params 查询参数
*/
getApprovalProcesses(params = {}) {
return request.get(apiConfig.endpoints.approval.processes, params);
}
// ==================== 系统相关 ====================
/**
* 健康检查
*/
healthCheck() {
return request.get('/health');
}
// ==================== 通用方法 ====================
/**
* 上传文件
* @param {string} filePath 文件路径
* @param {string} name 文件字段名
* @param {Object} formData 额外表单数据
*/
uploadFile(filePath, name = 'file', formData = {}) {
return new Promise((resolve, reject) => {
const token = wx.getStorageSync('token');
const header = {};
if (token) {
header['Authorization'] = `Bearer ${token}`;
}
wx.uploadFile({
url: `${apiConfig.baseURL}/files/upload`,
filePath,
name,
formData,
header,
success: (res) => {
try {
const data = JSON.parse(res.data);
if (data.code === 200 || data.code === 0) {
resolve(data);
} else {
reject(data);
}
} catch (e) {
reject({ message: '文件上传失败' });
}
},
fail: (err) => {
reject(err);
}
});
});
}
}
// 创建实例
const apiService = new ApiService();
module.exports = apiService;