DataMeter.ts 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. import { request } from 'umi';
  2. import {
  3. DEFAULT_LAYOUT,
  4. DEFAULT_MAP_LAYOUT,
  5. } from '@/Project/pages/DataMeter/config';
  6. // 获得项目详情
  7. export async function getProject(projectId: string | number) {
  8. return request(`/api/v1/project/${projectId}`);
  9. }
  10. // 异常报警通知列表
  11. export async function getFaultAnalysis(projectId: string | number) {
  12. const response: any = await request(
  13. `/api/v1/fault_analysis/result/${projectId}`,
  14. );
  15. var list: any = [];
  16. response.data.forEach((item: any) => {
  17. item.Details.forEach((err: any) => {
  18. list.push({
  19. ...item,
  20. ...err,
  21. });
  22. });
  23. });
  24. response.data = list;
  25. return response;
  26. }
  27. // 项目预警
  28. interface IProjectAlarmParams {
  29. pageSize: number;
  30. currentPage: number;
  31. msgType: string;
  32. projectId: number | string;
  33. }
  34. export async function getProjectAlarm(params: IProjectAlarmParams) {
  35. return request(`/api/v1/notification/list`, {
  36. params: params,
  37. });
  38. }
  39. /**
  40. * 问题追踪列表
  41. */
  42. interface IIssueListParams {
  43. currentPage: number;
  44. pageSize: number;
  45. projectId: number | string;
  46. }
  47. export async function getIssueList(params: IIssueListParams) {
  48. // return request(`/api/v1/issue/list/${params.projectId}`);
  49. return request(`/api/v1/issue/ticket/list/${params.projectId}`, {
  50. params: params,
  51. });
  52. }
  53. /**
  54. * 消息推送
  55. */
  56. interface INotificationListParams {
  57. currentPage?: number;
  58. pageSize?: number;
  59. projectId: number | string;
  60. msgType: number;
  61. }
  62. export async function getNotificationList(params: INotificationListParams) {
  63. return request(`/api/v1/notification/list?`, {
  64. params: params,
  65. });
  66. }
  67. /**
  68. * 上传多媒体资源
  69. */
  70. interface IuploadMediaParams {
  71. type: number; //0-图片,1- 视频
  72. projectId: number;
  73. files: any[];
  74. }
  75. export async function uploadMedia(params: IuploadMediaParams) {
  76. return request(
  77. `/api/v1/project-cabin-file/${params.projectId}/${params.type}`,
  78. {
  79. method: 'POST',
  80. body: {
  81. ...params,
  82. },
  83. },
  84. );
  85. }
  86. /**
  87. * 多媒体资源查询
  88. * @param {object} params
  89. * @param {number} params.projectId
  90. * @returns
  91. */
  92. export async function getMediaList(params: any) {
  93. return request(`/api/v1/project-file/${params.projectId}/26/-1`);
  94. }
  95. /**
  96. * 视频监控查询
  97. * @param {object} params
  98. * @param {string} params.currentPage
  99. * @param {string} params.pageSize
  100. * @param {number} params.projectId
  101. * @returns
  102. */
  103. export async function getMonitorList(projectId: string | number): Promise<any> {
  104. // return request(`/api/v1/monitor/list/${params.projectId}`);
  105. let data: Api.IMonitor = await request(
  106. `/api/v1/monitor_config/query/${projectId}`,
  107. );
  108. let obj: any;
  109. try {
  110. obj = JSON.parse(data.config_json) || {};
  111. } catch (error) {
  112. obj = {};
  113. }
  114. return Object.keys(obj).map((key) => obj[key]) || [];
  115. }
  116. /**
  117. * 项目动态
  118. * @param {object} params
  119. * @param {string} params.currentPage
  120. * @param {string} params.pageSize
  121. * @param {number} params.projectId
  122. * @param {number} params.type 动态类型:-1-所有类型, 0-项目动态 1-新闻动态 2-大事记 3-所获奖项
  123. * @returns
  124. */
  125. export async function getProjectActive(params: any) {
  126. return request(
  127. `/api/v1/project-active/list/${params.projectId}/${params.type}`,
  128. {
  129. params: params,
  130. },
  131. );
  132. }
  133. /**
  134. * 设计|采购|施工详细进度
  135. * @param {object} params
  136. * @param {number} params.projectId
  137. * @returns
  138. */
  139. export async function getProjectProgress(params: any) {
  140. return request(`/api/v1/project-progress/${params.projectId}`);
  141. }
  142. /**
  143. * 设计|采购|施工总进度
  144. * @param {object} params
  145. * @param {number} params.projectId
  146. * @returns
  147. */
  148. export async function getProjectTotalProgress(params: any) {
  149. return request(`/api/v1/project-plan-progress/${params.projectId}`);
  150. }
  151. /**
  152. * 安全操作规范列表查询
  153. * @param {object} params
  154. * @param {number} params.projectId
  155. * @param {string} params.currentPage
  156. * @param {string} params.pageSize
  157. * @returns
  158. */
  159. export async function getUserGuide(params: any) {
  160. return request(`/api/v1/user_guide/list/${params.projectId}`, {
  161. params: params,
  162. });
  163. }
  164. /**
  165. * 项目日志列表查询
  166. * @param {object} params
  167. * @param {number} params.projectId
  168. * @param {string} params.currentPage
  169. * @param {string} params.pageSize
  170. * @returns
  171. */
  172. export async function getDailyList(params: any) {
  173. return request(`/api/v1/daily/list/${params.projectId}`, {
  174. params: params,
  175. });
  176. }
  177. /**
  178. * 删除资源
  179. * @param {object} params
  180. * @param {number} params.id
  181. * @returns
  182. */
  183. export async function deleteFile(params: any) {
  184. return request(`/api/v1/delete/project-cabin-file/${params.id}`, {
  185. method: 'POST',
  186. });
  187. }
  188. /**
  189. * 保存布局配置
  190. * @param {object} params
  191. * @param {number} params.projectId 项目id,地图页为0
  192. * @param {number} params.id 配置id,大于0,则更新
  193. * @param {number} params.module 所属模块:1-驾驶舱 2-模型分层 3-管道流向
  194. * @param {number} params.sub_module 子模块: (驾驶舱)0-地图驾驶舱 1-建设驾驶舱 2-运营驾驶舱
  195. * @param {string} params.config_json 配置json数据
  196. * @param {number} params.is_default 是否默认配置,大于1时会校验调用者权限
  197. * @returns
  198. */
  199. export async function saveLayoutOptions(params: any) {
  200. return request(`/api/v1/project_config/save/${params.projectId || 0}`, {
  201. method: 'POST',
  202. body: {
  203. ...params,
  204. },
  205. });
  206. }
  207. /**
  208. * 读取配置
  209. * @param {object} params
  210. * @param {number} params.projectId 项目id,地图页为0
  211. * @param {number} params.module 所属模块:1-驾驶舱 2-模型分层 3-管道流向
  212. * @param {number} params.sub_module 子模块: (驾驶舱)0-地图驾驶舱 1-建设驾驶舱 2-运营驾驶舱
  213. * @param {number} params.is_default 是否默认配置,大于1时会校验调用者权限
  214. * @returns
  215. */
  216. export async function getLayoutOptions(params: any) {
  217. const response = await request(
  218. `/api/v1/project_config/query/${params.projectId || 0}`,
  219. {
  220. params: params,
  221. },
  222. );
  223. var data = response.data;
  224. try {
  225. data.config_json = JSON.parse(data.config_json);
  226. } catch (error) {
  227. // 解析失败则使用默认布局
  228. var defaultLayout =
  229. params.sub_module === 0 ? DEFAULT_MAP_LAYOUT : DEFAULT_LAYOUT;
  230. data.config_json = defaultLayout;
  231. }
  232. return response;
  233. }
  234. // 获取故障列表
  235. export async function getBreakdownRecord(params: any) {
  236. return request(`/api/v1/breakdown-record/unhandled/list/${params.projectId}`);
  237. }
  238. //获取项目列表
  239. export async function getProjectList(params: any) {
  240. const response = await request(`/api/v2/project`, {
  241. params: params,
  242. });
  243. let nowDate = new Date();
  244. (response.data.list || []).map((item: Api.IProject) => {
  245. let type;
  246. if (!item.EndDate) {
  247. type = 2;
  248. } else {
  249. type = nowDate >= new Date(item.EndDate) ? 2 : 1;
  250. }
  251. item.type = type;
  252. });
  253. return response;
  254. }
  255. //获取巡检结果
  256. export async function getAutoPatrol(params: any) {
  257. return request(`/api/v1/patrol/auto/data/${params.projectId}`);
  258. }
  259. export async function getBreakdownList(params: any) {
  260. return request(`/api/v1/breakdown-record/list/${params.projectId}`, {
  261. params: params,
  262. });
  263. }
  264. export async function getPatrolRecord(params: any) {
  265. return request(`/api/v1/patrol/data/${params.projectId}`, {
  266. params: params,
  267. });
  268. }
  269. export async function getMouldList(params: any) {
  270. return request(
  271. `/api/v1/project_config/template-list/${params.project_id || 0}`,
  272. {
  273. params: params,
  274. },
  275. );
  276. }
  277. export async function createMouldList(params: any) {
  278. return request(
  279. `/api/v1/project_config/save-template/${params.projectId || 0}`,
  280. {
  281. method: 'POST',
  282. headers: { ContentType: 'application/x-www-form-urlencoded' },
  283. body: params.formData,
  284. },
  285. );
  286. }
  287. export async function getAutoPatrolByRouteId(params: any) {
  288. return request(`/api/v1/patrol/data/${params.projectId}/${params.routeId}`);
  289. }
  290. export async function queryConfigList(params: any) {
  291. return request(`/chart/sync/info/${params.projectId}`, {
  292. params: params,
  293. });
  294. }
  295. export async function queryTemplateList() {
  296. return request(`/chart/list?pageSize=999`);
  297. }