index.ts 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. // API List
  2. // /sitesMonitor/manage/nameList - GET
  3. // /sitesMonitor/manage/config/{name} - GET & POST & DELETE
  4. // /sitesMonitor/manage/pageConfig/{name} - POST
  5. // /sitesMonitor/manage/config - GET & POST
  6. // /sitesMonitor/site/infoList - POST 批量获取站点信息表
  7. // /sitesMonitor/site/{site}/info - GET 获取单个站点信息
  8. // /sitesMonitor/site/{site}/modeInfo - GET 获取站点工作模式信息
  9. // /sitesMonitor/site/{site}/powerFlow/{day} - GET 获取单个站点功率流
  10. // /sitesMonitor/site/{site}/alarmList - GET 获取单个站点告警列表
  11. import http from '@/service/serverReq'
  12. import type {
  13. ApiMonitorInfo,
  14. MonitorPageConfig,
  15. SiteInfoResponse,
  16. SiteModeInfoResponse,
  17. SitePowerFlowResponse,
  18. SiteAlarmListResponse,
  19. } from './interface'
  20. import { TaskQueue } from '@/service/taskQueue'
  21. const API_List = {
  22. manageList: '/sitesMonitor/manage/nameList',
  23. manageConfigAndName: '/sitesMonitor/manage/config/{name}',
  24. managePageConfig: '/sitesMonitor/manage/pageConfig/{name}',
  25. manageConfig: '/sitesMonitor/manage/config',
  26. siteInfoList: '/sitesMonitor/site/infoList',
  27. siteInfo: '/sitesMonitor/site/{site}/info',
  28. siteModeInfo: '/sitesMonitor/site/{site}/modeInfo',
  29. sitePowerFlow: '/sitesMonitor/site/{site}/powerFlow/{day}',
  30. siteAlarmList: '/sitesMonitor/site/{site}/alarmList',
  31. }
  32. // GET 监控管理表
  33. export const getManageList = async (): Promise<string[]> => {
  34. const res = await http.get<string[]>(API_List.manageList)
  35. return res
  36. }
  37. // GET 监控管理表配置
  38. export const getManageConfig = async (name: string): Promise<ApiMonitorInfo> => {
  39. const url = API_List.manageConfigAndName.replace('{name}', encodeURIComponent(name))
  40. const res = await http.get<ApiMonitorInfo>(url)
  41. return res
  42. }
  43. // POST 监控管理表配置
  44. export const updateManageConfig = async (name: string, data: ApiMonitorInfo) => {
  45. const url = API_List.manageConfigAndName.replace('{name}', encodeURIComponent(name))
  46. const res = await http.post(url, data)
  47. }
  48. // POST 监控管理表配置
  49. export const updateManagePageConfig = async (name: string, data: MonitorPageConfig) => {
  50. const url = API_List.managePageConfig.replace('{name}', encodeURIComponent(name))
  51. const res = await http.post(url, data)
  52. }
  53. // POST 监控管理表配置
  54. export const createManageConfig = async (data: ApiMonitorInfo) => {
  55. const url = API_List.manageConfig
  56. const res = await http.post(url, data)
  57. }
  58. // DELETE 监控管理表配置
  59. export const deleteManageConfig = async (name: string) => {
  60. const url = API_List.manageConfigAndName.replace('{name}', encodeURIComponent(name))
  61. const res = await http.delete(url)
  62. }
  63. // POST 批量获取站点信息表
  64. export const getSiteInfoList = async (siteList: string[], pageSize: number, pageNum: number) => {
  65. const url = API_List.siteInfoList
  66. const res = await http.post<SiteInfoResponse>(url, {
  67. siteList,
  68. pageSize,
  69. pageNum,
  70. })
  71. if (res.code === 0 || res.code === 200) {
  72. return res.result
  73. }
  74. }
  75. const siteInfoQueue = new TaskQueue(1) // 队列最大执行数为1
  76. // GET 获取单个站点信息
  77. export const getSiteInfo = async (sn: string) => {
  78. const url = API_List.siteInfo.replace('{site}', encodeURIComponent(sn))
  79. const res = await http.get<SiteInfoResponse>(url, { queue: siteInfoQueue, key: `${sn}` })
  80. if (res.code === 0 || res.code === 200) {
  81. return res.result
  82. }
  83. }
  84. const siteModeInfoQueue = new TaskQueue(1) // 队列最大执行数为1
  85. // GET 获取站点工作模式信息
  86. export const getSiteModeInfo = async (sn: string) => {
  87. const url = API_List.siteModeInfo.replace('{site}', encodeURIComponent(sn))
  88. const res = await http.get<SiteModeInfoResponse>(url, { queue: siteModeInfoQueue, key: `${sn}` })
  89. if (res.code === 0 || res.code === 200) {
  90. return res.result
  91. }
  92. }
  93. const sitePowerQueue = new TaskQueue(1) // 队列最大执行数为1
  94. // GET 获取单个站点功率流
  95. export const getSitePowerFlow = async (sn: string, day: string) => {
  96. const url = API_List.sitePowerFlow
  97. .replace('{site}', encodeURIComponent(sn))
  98. .replace('{day}', encodeURIComponent(day))
  99. const res = await http.get<SitePowerFlowResponse>(url, {
  100. queue: sitePowerQueue,
  101. key: `${sn}-${day}`,
  102. })
  103. console.log(res)
  104. if (res.code === 0 || res.code === 200) {
  105. return res.result
  106. }
  107. }
  108. const siteAlarmQueue = new TaskQueue(1) // 队列最大执行数为1
  109. // GET 获取单个站点功率流
  110. export const getSiteAlarmList = async (sn: string) => {
  111. const url = API_List.siteAlarmList.replace('{site}', encodeURIComponent(sn))
  112. const res = await http.get<SiteAlarmListResponse>(url, {
  113. queue: siteAlarmQueue,
  114. key: `${sn}`,
  115. })
  116. console.log(res)
  117. if (res.code === 0 || res.code === 200) {
  118. return res.result
  119. }
  120. }
  121. export const clearSitesMonitorQueue = () => {
  122. siteInfoQueue.clear()
  123. siteModeInfoQueue.clear()
  124. sitePowerQueue.clear()
  125. siteAlarmQueue.clear()
  126. }
  127. export const clearSitesMonitorQueueCache = () => {
  128. siteInfoQueue.clearCache()
  129. siteModeInfoQueue.clearCache()
  130. sitePowerQueue.clearCache()
  131. siteAlarmQueue.clearCache()
  132. }