monitor.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // 监测相关的api
  2. import { defHttp } from '@/utils/http/axios';
  3. import { ErrorMessageMode } from '#/axios';
  4. import {
  5. MonitorSite,
  6. MonitorSiteOperation,
  7. MonitorSiteOperationParams,
  8. MonitorSiteParams,
  9. MonitorSiteTreeNode,
  10. MonitorSiteTreeParams,
  11. Response,
  12. SaveMonitorSiteParams,
  13. DeleteMonitorSiteParams,
  14. } from './model/monitorModel';
  15. enum Api {
  16. getMonitorSiteTree = '/gis/data/gisBaseTree ',
  17. getMonitorSite = '/gis/data/getDataByIdAndSystemCode',
  18. saveMonitorSite = '/gis/data/save',
  19. }
  20. /**
  21. * 获取测点树数据
  22. */
  23. export function getMonitorSiteTree(
  24. params: MonitorSiteTreeParams,
  25. mode: ErrorMessageMode = 'message',
  26. ) {
  27. return defHttp.get<Response<MonitorSiteTreeNode>>(
  28. {
  29. url: Api.getMonitorSiteTree,
  30. params,
  31. },
  32. {
  33. errorMessageMode: mode,
  34. },
  35. );
  36. }
  37. /**
  38. * 保存测点数据
  39. */
  40. export function saveMonitorSite(params: SaveMonitorSiteParams, mode: ErrorMessageMode = 'message') {
  41. return defHttp.post<Response<MonitorSite>>(
  42. {
  43. url: Api.saveMonitorSite,
  44. params,
  45. },
  46. {
  47. errorMessageMode: mode,
  48. },
  49. );
  50. }
  51. /**
  52. * 删除测点数据
  53. */
  54. export function deleteMonitorSite(
  55. params: DeleteMonitorSiteParams,
  56. mode: ErrorMessageMode = 'message',
  57. ) {
  58. return defHttp.delete<Response<MonitorSite>>(
  59. {
  60. url: Api.saveMonitorSite,
  61. params,
  62. },
  63. {
  64. errorMessageMode: mode,
  65. },
  66. );
  67. }
  68. /**
  69. * 获取测点详情数据
  70. */
  71. export function getMonitorSite(params: MonitorSiteParams, mode: ErrorMessageMode = 'message') {
  72. return defHttp.post<Response<MonitorSite>>(
  73. {
  74. url: Api.getMonitorSite,
  75. params,
  76. },
  77. {
  78. errorMessageMode: mode,
  79. },
  80. );
  81. }
  82. /** 测点操作内嵌的iframe地址 */
  83. export const monitorSiteOperationUrl = 'http://172.16.253.23:91/valkyrja/';
  84. /** 发送测点操作指令 */
  85. export function postMonitorOperation(el: Window, params: MonitorSiteOperationParams) {
  86. if (!el) return;
  87. el.postMessage(JSON.stringify(params), '*');
  88. }
  89. /** 处理测点操作反馈信息及其他相关的反馈信息 */
  90. export function handleMonitorOperation(
  91. raw: MessageEvent<string>,
  92. callback: (data: MonitorSiteOperation) => void,
  93. ) {
  94. if (raw.isTrusted && raw.origin === monitorSiteOperationUrl && raw.data) {
  95. callback(JSON.parse(raw.data));
  96. }
  97. }