configurable.api.ts 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. import { defHttp } from '/@/utils/http/axios';
  2. enum Api {
  3. list = '/safety/ventanalyDevice/homedata2',
  4. getHomeData = '/safety/ventanalyDevice/homedata',
  5. getDisHome = '/ventanaly-device/monitor/disaster/getDisHome',
  6. getBDDustData = '/ventanaly-device/monitor/disaster/getDisDustHome',
  7. getBDFireData = '/ventanaly-device/monitor/disaster/getDisFireHome',
  8. }
  9. // 搞这个缓存是由于:目前代码上的设计是多个模块发出多次请求,每个模块自己负责消费前者的响应。
  10. // 这会导致相同的请求被同时发送多次。
  11. const cache = new Map<string, Promise<any>>();
  12. /**
  13. * 列表接口
  14. * @param params
  15. */
  16. export const list = (params) => defHttp.post({ url: Api.list, params });
  17. export const getHomeData = (params) => {
  18. const key = `${Api.getHomeData}?${JSON.stringify(params)}`;
  19. if (!cache.has(key)) {
  20. cache.set(
  21. key,
  22. defHttp.post({ url: Api.getHomeData, params }).finally(() => {
  23. cache.delete(key);
  24. })
  25. );
  26. }
  27. return (cache.get(key) as Promise<any>).then((res) => {
  28. res.fanmain.forEach((e) => {
  29. if (e.readData.Fan2StartStatus === '1') {
  30. e.current = '二号';
  31. e.readData.FanFreqHz = e.readData.Fan2FreqHz;
  32. } else {
  33. e.current = '一号';
  34. e.readData.FanFreqHz = e.readData.Fan1FreqHz;
  35. }
  36. });
  37. res.fanlocal.forEach((e) => {
  38. if (e.readData.Fan2StartStatus === '1') {
  39. e.current = '二号';
  40. e.readData.FanfHz = e.readData.Fan2fHz;
  41. } else {
  42. e.current = '一号';
  43. e.readData.FanfHz = e.readData.Fan1fHz;
  44. }
  45. });
  46. res.sys_majorpath.forEach((e) => {
  47. e.piechart = [
  48. { val: e.majorpath.drag_1, label: '进风区' },
  49. { val: e.majorpath.drag_2, label: '用风区' },
  50. { val: e.majorpath.drag_3, label: '回风区' },
  51. ];
  52. });
  53. return res;
  54. });
  55. };
  56. export const getBDDustData = (params) => {
  57. const key = `${Api.getBDDustData}?${JSON.stringify(params)}`;
  58. if (!cache.has(key)) {
  59. cache.set(
  60. key,
  61. defHttp.post({ url: Api.getBDDustData, params }).finally(() => {
  62. cache.delete(key);
  63. })
  64. );
  65. }
  66. return cache.get(key) as Promise<any>;
  67. };
  68. export const getBDFireData = (params) => {
  69. const key = `${Api.getBDFireData}?${JSON.stringify(params)}`;
  70. if (!cache.has(key)) {
  71. cache.set(
  72. key,
  73. defHttp.post({ url: Api.getBDFireData, params }).finally(() => {
  74. cache.delete(key);
  75. })
  76. );
  77. }
  78. return (cache.get(key) as Promise<any>).then((res) => {
  79. res.pdArray.forEach((e) => {
  80. e.arrayFiber.forEach((j) => {
  81. j.fibreTemperatureArr = JSON.parse(j.fibreTemperature);
  82. });
  83. });
  84. res.sgGxObj.devGxcw.forEach((e) => {
  85. e.fibreTemperatureArr = JSON.parse(e.fibreTemperature);
  86. });
  87. res.sgGxObj.devSgjc.forEach((e) => {
  88. e.o2val = e.o2Val || 0;
  89. e.coval = e.coVal || 0;
  90. e.gasval = e.gasVal || 0;
  91. e.ch2val = e.ch2Val || 0;
  92. e.chval = e.chVal || 0;
  93. });
  94. return res;
  95. });
  96. };
  97. export const getDisHome = (params) => {
  98. const key = `${Api.getDisHome}?${JSON.stringify(params)}`;
  99. if (!cache.has(key)) {
  100. cache.set(
  101. key,
  102. defHttp.post({ url: Api.getDisHome, params }).finally(() => {
  103. cache.delete(key);
  104. })
  105. );
  106. }
  107. return (cache.get(key) as Promise<any>).then((res) => {
  108. if (res.pdArray) {
  109. res.pdArray.forEach((e) => {
  110. e.arrayFiber.forEach((j) => {
  111. j.fibreTemperatureArr = JSON.parse(j.fibreTemperature);
  112. });
  113. });
  114. }
  115. if (res.sgGxObj) {
  116. res.sgGxObj.devGxcw.forEach((e) => {
  117. e.fibreTemperatureArr = JSON.parse(e.fibreTemperature);
  118. });
  119. res.sgGxObj.devSgjc.forEach((e) => {
  120. e.o2val = e.o2Val || 0;
  121. e.coval = e.coVal || 0;
  122. e.gasval = e.gasVal || 0;
  123. e.ch2val = e.ch2Val || 0;
  124. e.chval = e.chVal || 0;
  125. });
  126. }
  127. if (res.obfObj) {
  128. res.obfObj.obfObjModded = [
  129. {
  130. objType: '甲烷',
  131. arrayDev: res.obfObj.arrayDev.map((e) => {
  132. return {
  133. strinstallpos: e.strinstallpos,
  134. val: e.ch4Val || 0,
  135. };
  136. }),
  137. },
  138. {
  139. objType: '一氧化碳',
  140. arrayDev: res.obfObj.arrayDev.map((e) => {
  141. return {
  142. strinstallpos: e.strinstallpos,
  143. val: e.coVal || 0,
  144. };
  145. }),
  146. },
  147. {
  148. objType: '乙炔',
  149. arrayDev: res.obfObj.arrayDev.map((e) => {
  150. return {
  151. strinstallpos: e.strinstallpos,
  152. val: e.c2h2Val || 0,
  153. };
  154. }),
  155. },
  156. {
  157. objType: '二氧化碳',
  158. arrayDev: res.obfObj.arrayDev.map((e) => {
  159. return {
  160. strinstallpos: e.strinstallpos,
  161. val: e.co2Val || 0,
  162. };
  163. }),
  164. },
  165. {
  166. objType: '氧气',
  167. arrayDev: res.obfObj.arrayDev.map((e) => {
  168. return {
  169. strinstallpos: e.strinstallpos,
  170. val: e.o2Val || 0,
  171. };
  172. }),
  173. },
  174. {
  175. objType: '乙烯',
  176. arrayDev: res.obfObj.arrayDev.map((e) => {
  177. return {
  178. strinstallpos: e.strinstallpos,
  179. val: e.c2h4Val || 0,
  180. };
  181. }),
  182. },
  183. ];
  184. }
  185. return res;
  186. });
  187. };