index.ts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. import request from '/@/api/http/request';
  2. import { getWorkspaceId } from '/@/utils/index';
  3. // Api参数类型
  4. export type FetchJobListApiParams = Partial<{
  5. snList: string,
  6. begin_time: number,
  7. end_time: number,
  8. search_info: string,
  9. page: number,
  10. page_size: number,
  11. }>;
  12. export type FetchWaylineListApiParams = Partial<{
  13. order_by: string,
  14. template_type: number,
  15. key: string,
  16. page: number,
  17. page_size: number,
  18. }>;
  19. export type FetchDeviceFeedbackRecordListApiParams = Partial<{
  20. begin_time: number,
  21. end_time: number,
  22. username: number,
  23. search_info: string,
  24. page: number,
  25. page_size: number,
  26. }>;
  27. export type CreateDeviceFeedbackApiParams = {
  28. logs_info: string,
  29. happen_time: number,
  30. contact_number?: string,
  31. contact_email?: string,
  32. oss_ids?: string,
  33. list?: {
  34. list: any[],
  35. module: string,
  36. }[],
  37. };
  38. export type FetchDeviceHmsListApiParams = Partial<{
  39. begin_time: number,
  40. end_time: number,
  41. level: number,
  42. language: string,
  43. message: string,
  44. page: number,
  45. page_size: number,
  46. }>;
  47. export type SignLoginApiParams = {
  48. username: string,
  49. client_id: string,
  50. timestamp: number,
  51. workspace_id: string,
  52. workspace_name: string,
  53. signature: string,
  54. };
  55. export type FetchFeedbackRecordListApiParams = Partial<{
  56. begin_time: number,
  57. end_time: number,
  58. status: number,
  59. username: number,
  60. search_info: string,
  61. page: number,
  62. page_size: number,
  63. }>;
  64. export type FetchChangeRecordListApiParams = Partial<{
  65. begin_time: number,
  66. end_time: number,
  67. device_name: string,
  68. search_info: string,
  69. page: number,
  70. page_size: number,
  71. }>;
  72. export type FetchMediaFileListApiParams = Partial<{
  73. begin_time: number,
  74. end_time: number,
  75. template_type: number,
  76. payload: string,
  77. search_info: string,
  78. page: number,
  79. page_size: number,
  80. }>;
  81. export type BatchDownloadMediaFileApiParams = {
  82. id: string
  83. };
  84. export type FetchFileListByFolderApiParams = Partial<{
  85. begin_time: number,
  86. end_time: number,
  87. media_type: number,
  88. search_info: string,
  89. page: number,
  90. page_size: number,
  91. }>;
  92. export type BatchDownloadFileApiParams = {
  93. id: string
  94. };
  95. export type BatchDeletePictureApiParams = {
  96. id: string
  97. };
  98. export type FetchTrajectoryListApiParams = Partial<{
  99. begin_time: number,
  100. end_time: number,
  101. template_type: number,
  102. payload: number,
  103. search_info: string,
  104. page: number,
  105. page_size: number,
  106. }>;
  107. export type AddPilotApiParams = {
  108. username: number,
  109. password: number,
  110. };
  111. export type FetchPilotPasswordApiParams = {
  112. userId: string,
  113. };
  114. export type DeleteDirApiParams = {
  115. id: string
  116. };
  117. // Api函数类型
  118. export type FetchBingCodeApi = () => Promise<any>;
  119. export type FetchJobListApi = (params: FetchJobListApiParams) => Promise<any>;
  120. export type DeleteJobApi = (params: { job_id: string }) => Promise<any>;
  121. export type FetchAllDockDeviceListApi = () => Promise<any>;
  122. export type FetchAllWaylineListApi = () => Promise<any>;
  123. export type FetchWaylineListApi = (params: FetchWaylineListApiParams) => Promise<any>;
  124. export type FetchDeviceLogListApi = (sn: string, params: { domain_list: string }) => Promise<any>;
  125. export type FetchDeviceFeedbackRecordListApi = (sn: string, params: FetchDeviceFeedbackRecordListApiParams) => Promise<any>;
  126. export type FetchDeviceLogDetailApi = (params: { logsId: string }) => Promise<any>;
  127. export type CreateDeviceFeedbackApi = (sn: string, data: CreateDeviceFeedbackApiParams) => Promise<any>;
  128. export type FetchDeviceHmsListApi = (data: FetchDeviceHmsListApiParams) => Promise<any>;
  129. export type SignLoginApi = (data: SignLoginApiParams) => Promise<any>;
  130. export type FetchDeviceModelApi = (params?: { flg: boolean }) => Promise<any>;
  131. export type FetchDeviceStatusApi = (params: { snList: string }) => Promise<any>;
  132. export type FetchPayloadListApi = () => Promise<any>;
  133. export type FetchFeedbackRecordListApi = (data: FetchFeedbackRecordListApiParams) => Promise<any>;
  134. export type FetchChangeRecordListApi = (params: FetchChangeRecordListApiParams) => Promise<any>;
  135. export type FetchProjectListApi = () => Promise<any>;
  136. export type FetchMediaFileListApi = (params: FetchMediaFileListApiParams) => Promise<any>;
  137. export type BatchDownloadMediaFileApi = (params: BatchDownloadMediaFileApiParams) => Promise<any>;
  138. export type FetchFileListByFolderApi = (dirId: string, params: FetchFileListByFolderApiParams) => Promise<any>;
  139. export type FetchFileDetailApi = (fileId: string) => Promise<any>;
  140. export type BatchDownloadFileApi = (params: BatchDownloadFileApiParams) => Promise<any>;
  141. export type CreateMapElementApi = (fileId: string) => Promise<any>;
  142. export type DeleteMapElementApi = (fileId: string) => Promise<any>;
  143. export type UpdateFileNameApi = (fileId: string, data: { [key: string]: any }) => Promise<any>;
  144. export type BatchDeletePictureApi = (params: BatchDeletePictureApiParams) => Promise<any>;
  145. export type FetchTrajectoryListApi = (params: FetchTrajectoryListApiParams) => Promise<any>;
  146. export type FetchTrajectoryMapApi = (taskId: string) => Promise<any>;
  147. export type AddPilotApi = (data: AddPilotApiParams) => Promise<any>;
  148. export type FetchPilotPasswordApi = (params: FetchPilotPasswordApiParams) => Promise<any>;
  149. export type DeleteDirApi = (params: DeleteDirApiParams) => Promise<any>;
  150. export const getUploadPath = () => {
  151. return `api/media/api/v1/files/${getWorkspaceId()}/file/upload`;
  152. }
  153. // 获取设备绑定码
  154. const fetchBingCodeApi: FetchBingCodeApi = async () => {
  155. const url = `/manage/api/v1/workspaces/${getWorkspaceId()}/bingCode`
  156. const res = await request.get(url);
  157. return res.data;
  158. };
  159. // 获取任务列表
  160. const fetchJobListApi: FetchJobListApi = async (params) => {
  161. const url = `/wayline/api/v1/workspaces/${getWorkspaceId()}/jobs`
  162. const res = await request.get(url, { params: params });
  163. return res.data;
  164. };
  165. // 删除任务
  166. const deleteJobApi: DeleteJobApi = async (params) => {
  167. const url = `/wayline/api/v1/workspaces/${getWorkspaceId()}/jobs`
  168. const res = await request.delete(url, { params: params });
  169. return res.data;
  170. };
  171. // 获取全部机场设备列表
  172. const fetchAllDockDeviceListApi: FetchAllDockDeviceListApi = async () => {
  173. const url = `/manage/api/v1/devices/${getWorkspaceId()}/getDockDevices`
  174. const res = await request.get(url);
  175. return res.data;
  176. };
  177. // 获取全部航线列表
  178. const fetchAllWaylineListApi: FetchAllWaylineListApi = async () => {
  179. const url = `/wayline/api/v1/workspaces/${getWorkspaceId()}/getWaylines`
  180. const res = await request.get(url);
  181. return res.data;
  182. };
  183. // 获取航线列表
  184. const fetchWaylineListApi: FetchWaylineListApi = async (params) => {
  185. const url = `/wayline/api/v1/workspaces/${getWorkspaceId()}/waylines`
  186. const res = await request.get(url, { params: params });
  187. return res.data;
  188. };
  189. // 获取设备日志列表
  190. const fetchDeviceLogListApi: FetchDeviceLogListApi = async (sn, params) => {
  191. const res = await request.get(`/manage/api/v1/workspaces/${getWorkspaceId()}/devices/${sn}/logs`, { params: params });
  192. return res.data;
  193. };
  194. // 获取设备异常反馈记录列表
  195. const fetchDeviceFeedbackRecordListApi: FetchDeviceFeedbackRecordListApi = async (sn, params) => {
  196. const res = await request.get(`/manage/api/v1/workspaces/${getWorkspaceId()}/devices/${sn}/deviceSnLogsList`, { params: params });
  197. return res.data;
  198. };
  199. // 获取设备日志详情
  200. const fetchDeviceLogDetailApi: FetchDeviceLogDetailApi = async (params) => {
  201. const res = await request.get(`/manage/api/v1/workspaces/${getWorkspaceId()}/devices/logsDetail/`, { params: params });
  202. return res.data;
  203. };
  204. // 创建设备异常反馈
  205. const createDeviceFeedbackApi: CreateDeviceFeedbackApi = async (sn, data) => {
  206. const res = await request.post(`/manage/api/v1/workspaces/${getWorkspaceId()}/devices/${sn}/createLogs`, data);
  207. return res.data;
  208. };
  209. // 获取设备告警信息
  210. const fetchDeviceHmsListApi: FetchDeviceHmsListApi = async (data) => {
  211. const res = await request.get(`/manage/api/v1/devices/${getWorkspaceId()}/devices/hms`, { params: data });
  212. return res.data;
  213. };
  214. // 密钥登录
  215. const signLoginApi: SignLoginApi = async (data) => {
  216. const res = await request.post('/manage/api/v1/signLogin', data);
  217. return res.data;
  218. }
  219. // 获取设备型号
  220. const fetchDeviceModelApi: FetchDeviceModelApi = async (params) => {
  221. const res = await request.get(`/manage/api/v1/devices/${getWorkspaceId()}/getDeviceType`, { params: params });
  222. return res.data;
  223. };
  224. // 获取设备状态
  225. const fetchDeviceStatusApi: FetchDeviceStatusApi = async (params) => {
  226. const res = await request.get(`/manage/api/v1/devices/${getWorkspaceId()}/devices/status`, { params: params });
  227. return res.data;
  228. };
  229. // 获取负载列表
  230. const fetchPayloadListApi: FetchPayloadListApi = async () => {
  231. const res = await request.get(`/manage/api/v1/devices/${getWorkspaceId()}/payloads`);
  232. return res.data;
  233. };
  234. // 获取反馈记录列表
  235. const fetchFeedbackRecordListApi: FetchFeedbackRecordListApi = async (data) => {
  236. const res = await request.get(`/manage/api/v1/workspaces/${getWorkspaceId()}/devices/logsList`, { params: data });
  237. return res.data;
  238. };
  239. // 获取变化记录列表
  240. const fetchChangeRecordListApi: FetchChangeRecordListApi = async (params) => {
  241. const res = await request.get(`/manage/api/v1/oprlogs/${getWorkspaceId()}/devices/logs`, { params: params });
  242. return res.data;
  243. };
  244. // 获取项目列表
  245. const fetchProjectListApi: FetchProjectListApi = async () => {
  246. const res = await request.get('/manage/api/v1/workspaces/list');
  247. return res.data;
  248. };
  249. // 获取文件夹列表
  250. const fetchMediaFileListApi: FetchMediaFileListApi = async (params) => {
  251. const res = await request.get(`/media/api/v1/files/${getWorkspaceId()}/dirs`, { params: params });
  252. return res.data;
  253. };
  254. // 批量下载文件夹
  255. const batchDownloadMediaFileApi: BatchDownloadMediaFileApi = async (params) => {
  256. const res = await request.get(`/media/api/v1/files/${getWorkspaceId()}/fileDownList`, {
  257. responseType: 'blob',
  258. params: params
  259. });
  260. return res.data;
  261. };
  262. // 获取文件夹下所有文件
  263. const fetchFileListByFolderApi: FetchFileListByFolderApi = async (dirId, params) => {
  264. const res = await request.get(`/media/api/v1/files/${getWorkspaceId()}/files/${dirId}`, { params: params });
  265. return res.data;
  266. };
  267. // 获取文件详情
  268. const fetchFileDetailApi: FetchFileDetailApi = async (fileId) => {
  269. const res = await request.get(`/media/api/v1/files/${getWorkspaceId()}/file/${fileId}`);
  270. return res.data;
  271. };
  272. // 批量下载文件
  273. const batchDownloadFileApi: BatchDownloadFileApi = async (params) => {
  274. const res = await request.get(`/media/api/v1/files/${getWorkspaceId()}/downloadFiles`, {
  275. responseType: 'blob',
  276. params: params
  277. });
  278. return res.data;
  279. };
  280. // 添加图片元素
  281. const createMapElementApi: CreateMapElementApi = async (fileId) => {
  282. const url = `/media/api/v1/files/workspaces/${getWorkspaceId()}/createMapElement/${fileId}`
  283. const result = await request.post(url)
  284. return result.data;
  285. }
  286. // 删除图片元素
  287. const deleteMapElementApi: DeleteMapElementApi = async (fileId) => {
  288. const url = `/media/api/v1/files/workspaces/${getWorkspaceId()}/deleteMapElement/${fileId}`
  289. const result = await request.delete(url)
  290. return result.data;
  291. }
  292. // 更新文件名称
  293. const updateFileNameApi: UpdateFileNameApi = async (fileId, data) => {
  294. const url = `/media/api/v1/files/${getWorkspaceId()}/updateFile/${fileId}`
  295. const result = await request.put(url, data)
  296. return result.data
  297. }
  298. // 批量删除图片
  299. const batchDeletePictureApi: BatchDeletePictureApi = async (data) => {
  300. const res = await request.delete(`/media/api/v1/files/${getWorkspaceId()}/deleteFiles`, { params: data });
  301. return res.data;
  302. };
  303. // 获取轨迹列表
  304. const fetchTrajectoryListApi: FetchTrajectoryListApi = async (params) => {
  305. const url = `/map/api/v1/workspaces/${getWorkspaceId()}/flight-tasks`
  306. const res = await request.get(url, { params: params });
  307. return res.data;
  308. };
  309. // 获取轨迹地图
  310. const fetchTrajectoryMapApi: FetchTrajectoryMapApi = async (taskId) => {
  311. const url = `/map/api/v1/workspaces/${getWorkspaceId()}/flight-task/${taskId}`
  312. const res = await request.get(url);
  313. return res.data;
  314. };
  315. // 添加飞行员
  316. const addPilotApi: AddPilotApi = async (data) => {
  317. const url = `/manage/api/v1/users/${getWorkspaceId()}/savePilotUser`
  318. const res = await request.post(url, data);
  319. return res.data;
  320. };
  321. // 获取飞行员密码
  322. const fetchPilotPasswordApi: FetchPilotPasswordApi = async (params) => {
  323. const url = `/manage/api/v1/users/getPwd`
  324. const res = await request.get(url, { params: params });
  325. return res.data;
  326. };
  327. // 删除文件夹
  328. const deleteDirApi: DeleteDirApi = async (params) => {
  329. const res = await request.delete(`/media/api/v1/files/${getWorkspaceId()}/deleteDir`, { params: params });
  330. return res.data;
  331. };
  332. export const apis = {
  333. fetchBingCode: fetchBingCodeApi,
  334. fetchJobList: fetchJobListApi,
  335. deleteJob: deleteJobApi,
  336. fetchAllDockDeviceList: fetchAllDockDeviceListApi,
  337. fetchAllWaylineList: fetchAllWaylineListApi,
  338. fetchWaylineList: fetchWaylineListApi,
  339. fetchDeviceLogList: fetchDeviceLogListApi,
  340. fetchDeviceFeedbackRecordList: fetchDeviceFeedbackRecordListApi,
  341. fetchDeviceLogDetail: fetchDeviceLogDetailApi,
  342. createDeviceFeedback: createDeviceFeedbackApi,
  343. fetchDeviceHmsList: fetchDeviceHmsListApi,
  344. signLogin: signLoginApi,
  345. fetchDeviceModel: fetchDeviceModelApi,
  346. fetchDeviceStatus: fetchDeviceStatusApi,
  347. fetchPayloadList: fetchPayloadListApi,
  348. fetchFeedbackRecordList: fetchFeedbackRecordListApi,
  349. fetchChangeRecordList: fetchChangeRecordListApi,
  350. fetchProjectList: fetchProjectListApi,
  351. fetchMediaFileList: fetchMediaFileListApi,
  352. batchDownloadMediaFile: batchDownloadMediaFileApi,
  353. fetchFileListByFolder: fetchFileListByFolderApi,
  354. fetchFileDetail: fetchFileDetailApi,
  355. batchDownloadFile: batchDownloadFileApi,
  356. createMapElement: createMapElementApi,
  357. deleteMapElement: deleteMapElementApi,
  358. updateFileName: updateFileNameApi,
  359. batchDeletePicture: batchDeletePictureApi,
  360. fetchTrajectoryList: fetchTrajectoryListApi,
  361. fetchTrajectoryMap: fetchTrajectoryMapApi,
  362. AddPilot: addPilotApi,
  363. fetchPilotPassword: fetchPilotPasswordApi,
  364. deleteDir: deleteDirApi,
  365. };