Merge commit 'd8e4449f1009bc03b167c0e5667413585b2b3e53' as 'core'
This commit is contained in:
353
core/frontend/src/services/api.ts
Normal file
353
core/frontend/src/services/api.ts
Normal file
@@ -0,0 +1,353 @@
|
||||
import axios from 'axios';
|
||||
|
||||
const api = axios.create({
|
||||
baseURL: '/api/v1',
|
||||
timeout: 15000,
|
||||
});
|
||||
|
||||
api.interceptors.request.use((config) => {
|
||||
const token = localStorage.getItem('token');
|
||||
if (token) {
|
||||
config.headers.Authorization = `Bearer ${token}`;
|
||||
}
|
||||
return config;
|
||||
});
|
||||
|
||||
api.interceptors.response.use(
|
||||
(res) => res.data,
|
||||
(err) => {
|
||||
if (err.response?.status === 401) {
|
||||
localStorage.removeItem('token');
|
||||
window.location.href = '/login';
|
||||
}
|
||||
return Promise.reject(err.response?.data || err);
|
||||
}
|
||||
);
|
||||
|
||||
// Auth
|
||||
export const login = (username: string, password: string) =>
|
||||
api.post('/auth/login', new URLSearchParams({ username, password }), {
|
||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
||||
});
|
||||
export const getMe = () => api.get('/auth/me');
|
||||
|
||||
// Dashboard
|
||||
export const getDashboardOverview = () => api.get('/dashboard/overview');
|
||||
export const getRealtimeData = () => api.get('/dashboard/realtime');
|
||||
export const getLoadCurve = (hours = 24) => api.get(`/dashboard/load-curve?hours=${hours}`);
|
||||
|
||||
// Devices
|
||||
export const getDevices = (params?: Record<string, any>) => api.get('/devices', { params });
|
||||
export const getDeviceStats = () => api.get('/devices/stats');
|
||||
export const getDeviceTypes = () => api.get('/devices/types');
|
||||
export const getDeviceGroups = () => api.get('/devices/groups');
|
||||
export const getDevice = (id: number) => api.get(`/devices/${id}`);
|
||||
export const createDevice = (data: any) => api.post('/devices', data);
|
||||
export const updateDevice = (id: number, data: any) => api.put(`/devices/${id}`, data);
|
||||
|
||||
// Energy
|
||||
export const getEnergyHistory = (params: Record<string, any>) => api.get('/energy/history', { params });
|
||||
export const getEnergyDailySummary = (params?: Record<string, any>) => api.get('/energy/daily-summary', { params });
|
||||
export const getEnergyComparison = (params?: Record<string, any>) => api.get('/energy/comparison', { params });
|
||||
|
||||
// Monitoring
|
||||
export const getDeviceRealtime = (deviceId: number) => api.get(`/monitoring/devices/${deviceId}/realtime`);
|
||||
export const getEnergyFlow = () => api.get('/monitoring/energy-flow');
|
||||
|
||||
// Alarms
|
||||
export const getAlarmRules = () => api.get('/alarms/rules');
|
||||
export const createAlarmRule = (data: any) => api.post('/alarms/rules', data);
|
||||
export const getAlarmEvents = (params?: Record<string, any>) => api.get('/alarms/events', { params });
|
||||
export const acknowledgeAlarm = (id: number) => api.post(`/alarms/events/${id}/acknowledge`);
|
||||
export const resolveAlarm = (id: number, note = '') => api.post(`/alarms/events/${id}/resolve`, null, { params: { note } });
|
||||
export const getAlarmStats = () => api.get('/alarms/stats');
|
||||
|
||||
// Carbon
|
||||
export const getCarbonOverview = () => api.get('/carbon/overview');
|
||||
export const getCarbonTrend = (days = 30) => api.get(`/carbon/trend?days=${days}`);
|
||||
export const getEmissionFactors = () => api.get('/carbon/factors');
|
||||
export const getCarbonDashboard = () => api.get('/carbon/dashboard');
|
||||
// Carbon Targets
|
||||
export const getCarbonTargets = (year?: number) => api.get('/carbon/targets', { params: year ? { year } : {} });
|
||||
export const createCarbonTarget = (data: any) => api.post('/carbon/targets', data);
|
||||
export const updateCarbonTarget = (id: number, data: any) => api.put(`/carbon/targets/${id}`, data);
|
||||
export const getCarbonTargetProgress = (year?: number) => api.get('/carbon/targets/progress', { params: year ? { year } : {} });
|
||||
// Carbon Reductions
|
||||
export const getCarbonReductions = (params?: Record<string, any>) => api.get('/carbon/reductions', { params });
|
||||
export const getCarbonReductionSummary = (params?: Record<string, any>) => api.get('/carbon/reductions/summary', { params });
|
||||
export const calculateCarbonReductions = (params?: Record<string, any>) => api.post('/carbon/reductions/calculate', null, { params });
|
||||
// Green Certificates
|
||||
export const getGreenCertificates = (params?: Record<string, any>) => api.get('/carbon/certificates', { params });
|
||||
export const createGreenCertificate = (data: any) => api.post('/carbon/certificates', data);
|
||||
export const updateGreenCertificate = (id: number, data: any) => api.put(`/carbon/certificates/${id}`, data);
|
||||
export const getCertificatePortfolioValue = () => api.get('/carbon/certificates/value');
|
||||
// Carbon Reports
|
||||
export const getCarbonReports = () => api.get('/carbon/reports');
|
||||
export const generateCarbonReport = (data: any) => api.post('/carbon/reports/generate', data);
|
||||
export const getCarbonReportDetail = (id: number) => api.get(`/carbon/reports/${id}`);
|
||||
export const downloadCarbonReport = (id: number) => api.get(`/carbon/reports/${id}/download`);
|
||||
// Carbon Benchmarks
|
||||
export const getCarbonBenchmarks = (year?: number) => api.get('/carbon/benchmarks', { params: year ? { year } : {} });
|
||||
export const getCarbonBenchmarkComparison = (year?: number) => api.get('/carbon/benchmarks/comparison', { params: year ? { year } : {} });
|
||||
|
||||
// Reports
|
||||
export const getReportTemplates = () => api.get('/reports/templates');
|
||||
export const createReportTemplate = (data: any) => api.post('/reports/templates', data);
|
||||
export const getReportTasks = () => api.get('/reports/tasks');
|
||||
export const createReportTask = (data: any) => api.post('/reports/tasks', data);
|
||||
export const runReportTask = (id: number) => api.post(`/reports/tasks/${id}/run`);
|
||||
export const downloadReport = async (taskId: number) => {
|
||||
const response = await axios.get(`/api/v1/reports/tasks/${taskId}/download`, {
|
||||
responseType: 'blob',
|
||||
headers: { Authorization: `Bearer ${localStorage.getItem('token')}` },
|
||||
});
|
||||
const contentDisposition = response.headers['content-disposition'];
|
||||
let filename = `report_${taskId}`;
|
||||
if (contentDisposition) {
|
||||
const match = contentDisposition.match(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/);
|
||||
if (match?.[1]) filename = match[1].replace(/['"]/g, '');
|
||||
}
|
||||
const url = window.URL.createObjectURL(new Blob([response.data]));
|
||||
const link = document.createElement('a');
|
||||
link.href = url;
|
||||
link.download = filename;
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
link.remove();
|
||||
window.URL.revokeObjectURL(url);
|
||||
};
|
||||
|
||||
// Energy Export
|
||||
export const exportEnergyData = async (params: {
|
||||
start_time: string;
|
||||
end_time: string;
|
||||
device_id?: number;
|
||||
data_type?: string;
|
||||
format?: 'csv' | 'xlsx';
|
||||
}) => {
|
||||
const response = await axios.get('/api/v1/energy/export', {
|
||||
params,
|
||||
responseType: 'blob',
|
||||
headers: { Authorization: `Bearer ${localStorage.getItem('token')}` },
|
||||
});
|
||||
const format = params.format || 'csv';
|
||||
const ext = format;
|
||||
const contentDisposition = response.headers['content-disposition'];
|
||||
let filename = `energy_export.${ext}`;
|
||||
if (contentDisposition) {
|
||||
const match = contentDisposition.match(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/);
|
||||
if (match?.[1]) filename = match[1].replace(/['"]/g, '');
|
||||
}
|
||||
const url = window.URL.createObjectURL(new Blob([response.data]));
|
||||
const link = document.createElement('a');
|
||||
link.href = url;
|
||||
link.download = filename;
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
link.remove();
|
||||
window.URL.revokeObjectURL(url);
|
||||
};
|
||||
|
||||
// Cost
|
||||
export const getCostPricing = (params?: Record<string, any>) => api.get('/cost/pricing', { params });
|
||||
export const createCostPricing = (data: any) => api.post('/cost/pricing', data);
|
||||
export const updateCostPricing = (id: number, data: any) => api.put(`/cost/pricing/${id}`, data);
|
||||
export const deleteCostPricing = (id: number) => api.delete(`/cost/pricing/${id}`);
|
||||
export const getCostPricingPeriods = (id: number) => api.get(`/cost/pricing/${id}/periods`);
|
||||
export const addCostPricingPeriod = (id: number, data: any) => api.post(`/cost/pricing/${id}/periods`, data);
|
||||
export const getCostSummary = (params: Record<string, any>) => api.get('/cost/summary', { params });
|
||||
export const getCostComparison = (params?: Record<string, any>) => api.get('/cost/comparison', { params });
|
||||
export const getCostBreakdown = (params: Record<string, any>) => api.get('/cost/breakdown', { params });
|
||||
|
||||
// Quota
|
||||
export const getQuotas = (params?: Record<string, any>) => api.get('/quota', { params });
|
||||
export const createQuota = (data: any) => api.post('/quota', data);
|
||||
export const updateQuota = (id: number, data: any) => api.put(`/quota/${id}`, data);
|
||||
export const deleteQuota = (id: number) => api.delete(`/quota/${id}`);
|
||||
export const getQuotaUsage = (params?: Record<string, any>) => api.get('/quota/usage', { params });
|
||||
export const getQuotaCompliance = () => api.get('/quota/compliance');
|
||||
|
||||
// Energy Categories (分项能耗)
|
||||
export const getEnergyCategories = () => api.get('/energy/categories');
|
||||
export const createEnergyCategory = (data: any) => api.post('/energy/categories', data);
|
||||
export const updateEnergyCategory = (id: number, data: any) => api.put(`/energy/categories/${id}`, data);
|
||||
export const getEnergyByCategory = (params?: Record<string, any>) => api.get('/energy/by-category', { params });
|
||||
export const getCategoryRanking = (params?: Record<string, any>) => api.get('/energy/category-ranking', { params });
|
||||
export const getCategoryTrend = (params?: Record<string, any>) => api.get('/energy/category-trend', { params });
|
||||
|
||||
// Maintenance (运维管理)
|
||||
export const getMaintenanceDashboard = () => api.get('/maintenance/dashboard');
|
||||
export const getMaintenancePlans = (params?: Record<string, any>) => api.get('/maintenance/plans', { params });
|
||||
export const createMaintenancePlan = (data: any) => api.post('/maintenance/plans', data);
|
||||
export const updateMaintenancePlan = (id: number, data: any) => api.put(`/maintenance/plans/${id}`, data);
|
||||
export const deleteMaintenancePlan = (id: number) => api.delete(`/maintenance/plans/${id}`);
|
||||
export const triggerMaintenancePlan = (id: number) => api.post(`/maintenance/plans/${id}/trigger`);
|
||||
export const getMaintenanceRecords = (params?: Record<string, any>) => api.get('/maintenance/records', { params });
|
||||
export const createMaintenanceRecord = (data: any) => api.post('/maintenance/records', data);
|
||||
export const updateMaintenanceRecord = (id: number, data: any) => api.put(`/maintenance/records/${id}`, data);
|
||||
export const getMaintenanceOrders = (params?: Record<string, any>) => api.get('/maintenance/orders', { params });
|
||||
export const createMaintenanceOrder = (data: any) => api.post('/maintenance/orders', data);
|
||||
export const updateMaintenanceOrder = (id: number, data: any) => api.put(`/maintenance/orders/${id}`, data);
|
||||
export const assignMaintenanceOrder = (id: number, userId: number) => api.put(`/maintenance/orders/${id}/assign?assigned_to=${userId}`);
|
||||
export const completeMaintenanceOrder = (id: number, resolution = '', actualCost?: number) =>
|
||||
api.put(`/maintenance/orders/${id}/complete?resolution=${encodeURIComponent(resolution)}${actualCost !== undefined ? `&actual_cost=${actualCost}` : ''}`);
|
||||
export const getMaintenanceDuty = (params?: Record<string, any>) => api.get('/maintenance/duty', { params });
|
||||
export const createMaintenanceDuty = (data: any) => api.post('/maintenance/duty', data);
|
||||
export const updateMaintenanceDuty = (id: number, data: any) => api.put(`/maintenance/duty/${id}`, data);
|
||||
export const deleteMaintenanceDuty = (id: number) => api.delete(`/maintenance/duty/${id}`);
|
||||
|
||||
// Users
|
||||
export const getUsers = (params?: Record<string, any>) => api.get('/users', { params });
|
||||
export const createUser = (data: any) => api.post('/users', data);
|
||||
export const updateUser = (id: number, data: any) => api.put(`/users/${id}`, data);
|
||||
export const getRoles = () => api.get('/users/roles');
|
||||
|
||||
// Audit Logs
|
||||
export const getAuditLogs = (params?: Record<string, any>) => api.get('/audit/logs', { params });
|
||||
|
||||
// System Settings
|
||||
export const getSettings = () => api.get('/settings');
|
||||
export const updateSettings = (data: any) => api.put('/settings', data);
|
||||
|
||||
// Charging - Stations
|
||||
export const getChargingStations = (params?: Record<string, any>) => api.get('/charging/stations', { params });
|
||||
export const createChargingStation = (data: any) => api.post('/charging/stations', data);
|
||||
export const updateChargingStation = (id: number, data: any) => api.put(`/charging/stations/${id}`, data);
|
||||
export const deleteChargingStation = (id: number) => api.delete(`/charging/stations/${id}`);
|
||||
export const getStationPiles = (stationId: number) => api.get(`/charging/stations/${stationId}/piles`);
|
||||
|
||||
// Charging - Piles
|
||||
export const getChargingPiles = (params?: Record<string, any>) => api.get('/charging/piles', { params });
|
||||
export const createChargingPile = (data: any) => api.post('/charging/piles', data);
|
||||
export const updateChargingPile = (id: number, data: any) => api.put(`/charging/piles/${id}`, data);
|
||||
export const deleteChargingPile = (id: number) => api.delete(`/charging/piles/${id}`);
|
||||
|
||||
// Charging - Pricing
|
||||
export const getChargingPricing = (params?: Record<string, any>) => api.get('/charging/pricing', { params });
|
||||
export const createChargingPricing = (data: any) => api.post('/charging/pricing', data);
|
||||
export const updateChargingPricing = (id: number, data: any) => api.put(`/charging/pricing/${id}`, data);
|
||||
export const deleteChargingPricing = (id: number) => api.delete(`/charging/pricing/${id}`);
|
||||
|
||||
// Charging - Orders
|
||||
export const getChargingOrders = (params?: Record<string, any>) => api.get('/charging/orders', { params });
|
||||
export const getChargingRealtimeOrders = () => api.get('/charging/orders/realtime');
|
||||
export const getChargingAbnormalOrders = (params?: Record<string, any>) => api.get('/charging/orders/abnormal', { params });
|
||||
export const getChargingOrder = (id: number) => api.get(`/charging/orders/${id}`);
|
||||
export const settleChargingOrder = (id: number) => api.post(`/charging/orders/${id}/settle`);
|
||||
|
||||
// Charging - Dashboard
|
||||
export const getChargingDashboard = () => api.get('/charging/dashboard');
|
||||
|
||||
// Charging - Merchants
|
||||
export const getChargingMerchants = () => api.get('/charging/merchants');
|
||||
export const createChargingMerchant = (data: any) => api.post('/charging/merchants', data);
|
||||
export const updateChargingMerchant = (id: number, data: any) => api.put(`/charging/merchants/${id}`, data);
|
||||
export const deleteChargingMerchant = (id: number) => api.delete(`/charging/merchants/${id}`);
|
||||
|
||||
// Charging - Brands
|
||||
export const getChargingBrands = () => api.get('/charging/brands');
|
||||
export const createChargingBrand = (data: any) => api.post('/charging/brands', data);
|
||||
export const updateChargingBrand = (id: number, data: any) => api.put(`/charging/brands/${id}`, data);
|
||||
export const deleteChargingBrand = (id: number) => api.delete(`/charging/brands/${id}`);
|
||||
|
||||
// Energy Analysis (Loss / YoY / MoM)
|
||||
export const getEnergyLoss = (params: Record<string, any>) => api.get('/energy/loss', { params });
|
||||
export const getEnergyYoy = (params?: Record<string, any>) => api.get('/energy/yoy', { params });
|
||||
export const getEnergyMom = (params?: Record<string, any>) => api.get('/energy/mom', { params });
|
||||
|
||||
// Alarm Analytics
|
||||
export const getAlarmAnalytics = (params?: Record<string, any>) => api.get('/alarms/analytics', { params });
|
||||
export const getTopAlarmDevices = (params?: Record<string, any>) => api.get('/alarms/top-devices', { params });
|
||||
export const getAlarmMttr = (params?: Record<string, any>) => api.get('/alarms/mttr', { params });
|
||||
export const toggleAlarmRule = (ruleId: number) => api.put(`/alarms/rules/${ruleId}/toggle`);
|
||||
export const getAlarmRuleHistory = (ruleId: number, params?: Record<string, any>) =>
|
||||
api.get(`/alarms/rules/${ruleId}/history`, { params });
|
||||
|
||||
// Data Query (电参量查询)
|
||||
export const queryElectricalParams = (params: Record<string, any>) => api.get('/energy/params', { params });
|
||||
|
||||
// Device Topology (设备拓扑)
|
||||
export const getDeviceTopology = () => api.get('/devices/topology');
|
||||
|
||||
// Management - Regulations (规章制度)
|
||||
export const getRegulations = (params?: Record<string, any>) => api.get('/management/regulations', { params });
|
||||
export const createRegulation = (data: any) => api.post('/management/regulations', data);
|
||||
export const updateRegulation = (id: number, data: any) => api.put(`/management/regulations/${id}`, data);
|
||||
export const deleteRegulation = (id: number) => api.delete(`/management/regulations/${id}`);
|
||||
|
||||
// Management - Standards (标准规范)
|
||||
export const getStandards = (params?: Record<string, any>) => api.get('/management/standards', { params });
|
||||
export const createStandard = (data: any) => api.post('/management/standards', data);
|
||||
export const updateStandard = (id: number, data: any) => api.put(`/management/standards/${id}`, data);
|
||||
export const deleteStandard = (id: number) => api.delete(`/management/standards/${id}`);
|
||||
|
||||
// Management - Process Docs (管理流程)
|
||||
export const getProcessDocs = (params?: Record<string, any>) => api.get('/management/process-docs', { params });
|
||||
export const createProcessDoc = (data: any) => api.post('/management/process-docs', data);
|
||||
export const updateProcessDoc = (id: number, data: any) => api.put(`/management/process-docs/${id}`, data);
|
||||
export const deleteProcessDoc = (id: number) => api.delete(`/management/process-docs/${id}`);
|
||||
|
||||
// Management - Emergency Plans (应急预案)
|
||||
export const getEmergencyPlans = (params?: Record<string, any>) => api.get('/management/emergency-plans', { params });
|
||||
export const createEmergencyPlan = (data: any) => api.post('/management/emergency-plans', data);
|
||||
export const updateEmergencyPlan = (id: number, data: any) => api.put(`/management/emergency-plans/${id}`, data);
|
||||
export const deleteEmergencyPlan = (id: number) => api.delete(`/management/emergency-plans/${id}`);
|
||||
|
||||
// Management - Compliance
|
||||
export const getComplianceOverview = () => api.get('/management/compliance');
|
||||
|
||||
// AI Prediction (AI预测引擎)
|
||||
export const getPredictionForecast = (params: Record<string, any>) => api.get('/prediction/forecast', { params });
|
||||
export const runPrediction = (data: any) => api.post('/prediction/run', data);
|
||||
export const getPredictionAccuracy = (params?: Record<string, any>) => api.get('/prediction/accuracy', { params });
|
||||
export const getPredictionOptimization = (params?: Record<string, any>) => api.get('/prediction/optimization', { params });
|
||||
export const approvePredictionSchedule = (id: number) => api.post(`/prediction/optimization/${id}/approve`);
|
||||
export const getPredictionHistory = (params?: Record<string, any>) => api.get('/prediction/history', { params });
|
||||
export const getPredictionSchedules = (params?: Record<string, any>) => api.get('/prediction/schedules', { params });
|
||||
|
||||
// AI Operations (AI运维智能体)
|
||||
export const getAiOpsHealth = () => api.get('/ai-ops/health');
|
||||
export const getAiOpsDeviceHealth = (deviceId: number) => api.get(`/ai-ops/health/${deviceId}`);
|
||||
export const getAiOpsHealthHistory = (deviceId: number, params?: Record<string, any>) => api.get(`/ai-ops/health/${deviceId}/history`, { params });
|
||||
export const triggerHealthCalc = () => api.post('/ai-ops/health/calculate');
|
||||
export const getAiOpsAnomalies = (params?: Record<string, any>) => api.get('/ai-ops/anomalies', { params });
|
||||
export const getAiOpsDeviceAnomalies = (deviceId: number, params?: Record<string, any>) => api.get(`/ai-ops/anomalies/${deviceId}`, { params });
|
||||
export const updateAnomalyStatus = (id: number, data: any) => api.put(`/ai-ops/anomalies/${id}/status`, data);
|
||||
export const triggerAnomalyScan = (params?: Record<string, any>) => api.post('/ai-ops/anomalies/scan', null, { params });
|
||||
export const getAiOpsDiagnostics = (params?: Record<string, any>) => api.get('/ai-ops/diagnostics', { params });
|
||||
export const runDeviceDiagnostics = (deviceId: number) => api.post(`/ai-ops/diagnostics/${deviceId}/run`);
|
||||
export const getAiOpsDiagnosticDetail = (id: number) => api.get(`/ai-ops/diagnostics/${id}`);
|
||||
export const getAiOpsPredictions = (params?: Record<string, any>) => api.get('/ai-ops/maintenance/predictions', { params });
|
||||
export const getAiOpsMaintenanceSchedule = () => api.get('/ai-ops/maintenance/schedule');
|
||||
export const updatePredictionStatus = (id: number, data: any) => api.put(`/ai-ops/maintenance/predictions/${id}`, data);
|
||||
export const triggerPredictions = () => api.post('/ai-ops/maintenance/predict');
|
||||
export const getAiOpsInsights = (params?: Record<string, any>) => api.get('/ai-ops/insights', { params });
|
||||
export const getAiOpsLatestInsights = (params?: Record<string, any>) => api.get('/ai-ops/insights/latest', { params });
|
||||
export const triggerInsights = () => api.post('/ai-ops/insights/generate');
|
||||
export const getAiOpsDashboard = () => api.get('/ai-ops/dashboard');
|
||||
|
||||
// Energy Strategy (策略优化)
|
||||
export const getStrategyPricing = () => api.get('/strategy/pricing');
|
||||
export const createStrategyPricing = (data: any) => api.post('/strategy/pricing', data);
|
||||
export const updateStrategyPricing = (id: number, data: any) => api.put(`/strategy/pricing/${id}`, data);
|
||||
export const getStrategyPricingPeriods = (id: number) => api.get(`/strategy/pricing/${id}/periods`);
|
||||
export const setStrategyPricingPeriods = (id: number, data: any) => api.post(`/strategy/pricing/${id}/periods`, data);
|
||||
export const getDefaultPricing = () => api.get('/strategy/default-pricing');
|
||||
export const getStrategies = () => api.get('/strategy/strategies');
|
||||
export const createStrategy = (data: any) => api.post('/strategy/strategies', data);
|
||||
export const updateStrategy = (id: number, data: any) => api.put(`/strategy/strategies/${id}`, data);
|
||||
export const toggleStrategy = (id: number) => api.put(`/strategy/strategies/${id}/toggle`);
|
||||
export const getStrategyCostAnalysis = (params: Record<string, any>) => api.get('/strategy/cost-analysis', { params });
|
||||
export const getStrategySavingsReport = (params: Record<string, any>) => api.get('/strategy/savings-report', { params });
|
||||
export const getStrategyRecommendations = () => api.get('/strategy/recommendations');
|
||||
export const simulateStrategy = (data: any) => api.post('/strategy/simulate', data);
|
||||
|
||||
// Weather (气象数据)
|
||||
export const getWeatherCurrent = () => api.get('/weather/current');
|
||||
export const getWeatherForecast = (params?: Record<string, any>) => api.get('/weather/forecast', { params });
|
||||
export const getWeatherHistory = (params: Record<string, any>) => api.get('/weather/history', { params });
|
||||
export const getWeatherImpact = (params?: Record<string, any>) => api.get('/weather/impact', { params });
|
||||
export const getWeatherConfig = () => api.get('/weather/config');
|
||||
export const updateWeatherConfig = (data: any) => api.put('/weather/config', data);
|
||||
|
||||
export default api;
|
||||
Reference in New Issue
Block a user