index.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. /**
  2. * 统一 API 入口
  3. *
  4. * 所有接口通过 http (request.js) 发出请求。
  5. * 开发期由 mockAdapter.js 拦截返回模拟数据。
  6. * 切真实后端时,只需删除 main.js 中的 `import '@/mock/mockAdapter'`。
  7. *
  8. * 响应拦截器已自动脱壳:接口返回值直接是 data(不是 { code, data })。
  9. * 业务错误走 catch。
  10. */
  11. import { http } from '@/utils/request'
  12. // ── 认证 ──
  13. export const apiGetCaptcha = () =>
  14. http.get('/auth/captcha')
  15. export const apiLogin = (data) =>
  16. http.post('/auth/login', data, { withToken: false, skipGlobalError: true })
  17. export const apiChangePassword = (data) =>
  18. http.post('/auth/change-password', data)
  19. // ── 路口基础数据 ──
  20. export const apiGetPoints = (params) =>
  21. http.get('/intersections', { params })
  22. export const apiGetIntersectionData = (id) =>
  23. http.get(`/intersections/${id}`)
  24. export const apiGetSignalTiming = (id) =>
  25. http.get(`/intersections/${id}/signal-timing`)
  26. export const apiGetIntersectionStages = (id) =>
  27. http.get(`/intersections/${id}/stages`)
  28. export const apiGetSchemes = (id) =>
  29. http.get(`/intersections/${id}/schemes`)
  30. // ── 区域菜单树 ──
  31. export const apiGetMenuTree = (tabId) =>
  32. http.get('/regions/tree', { params: { tabId } })
  33. export const apiGetTongzhouMenuTree = () =>
  34. http.get('/regions/tree/tongzhou')
  35. export const apiGetTrunkLineMenuTree = () =>
  36. http.get('/regions/tree/trunkline')
  37. // ── 设备状态 & 首页 ──
  38. export const apiGetDeviceStatus = (type) =>
  39. http.get('/devices/status/summary', { params: { type } })
  40. export const apiGetDeviceFaultStatus = () =>
  41. http.get('/devices/fault-status')
  42. export const apiGetHomeSnapshot = () =>
  43. http.get('/home/snapshot')
  44. export const apiGetControlModeStats = () =>
  45. http.get('/home/control-mode-stats')
  46. export const apiGetLatestAlarms = (params) =>
  47. http.get('/alarms/latest', { params })
  48. // ── 勤务 & 任务 ──
  49. export const apiGetTasks = (params) =>
  50. http.get('/tasks', { params })
  51. export const apiGetSecurityRoutes = () =>
  52. http.get('/security-routes')
  53. export const apiGetSecurityRouteDetail = (id) =>
  54. http.get(`/security-routes/${id}`)
  55. export const apiGetKeyIntersections = () =>
  56. http.get('/key-intersections')
  57. // ── 交通时空图 ──
  58. export const apiGetTrafficTimeSpace = (params) =>
  59. http.get('/traffic/time-space', { params })
  60. // ── 路口列表 & 字典 ──
  61. export const apiGetCrossingList = (params) =>
  62. http.get('/crossings', { params })
  63. export const apiGetDictOptions = (type) =>
  64. http.get(`/dict/${type}`)
  65. // ── 设备操作 ──
  66. export const apiRestartDevice = (id) =>
  67. http.post(`/devices/${id}/restart`)
  68. export const apiUpgradeDevice = (id, data) =>
  69. http.post(`/devices/${id}/upgrade`, data)
  70. // ── 弹窗专用 ──
  71. export const apiGetSpecialTaskMonitorData = (id) =>
  72. http.get(`/special-task/${id}/monitor`)
  73. export const apiGetCrossingPanelData = (id) =>
  74. http.get(`/crossing/panel/${id}`)
  75. export const apiGetCrossingDetailData = (id, { iconMode } = {}) =>
  76. http.get(`/crossing/detail/${id}`, { params: iconMode ? { iconMode } : undefined })
  77. export const apiGetCrossingTopCharts = () =>
  78. http.get('/crossing/top-charts')
  79. // cancelDuplicate:false —— 画布与表格都会轮询同一接口,让两路并发不互相取消
  80. export const apiGetDetectorMonitorData = (id) =>
  81. http.get(`/detector/monitor/${id || 'default'}`, { cancelDuplicate: false })
  82. export const apiGetOverviewTopCharts = () =>
  83. http.get('/overview/top-charts')
  84. export const apiGetMapLegendConfig = () =>
  85. http.get('/map/legend-config')