index.ts 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. import request from '/@/api/http/request';
  2. import { getWorkspaceId } from '/@/utils/index';
  3. // Api参数类型
  4. export type SignLoginApiParams = {
  5. username: string,
  6. client_id: string,
  7. timestamp: number,
  8. workspace_id: string,
  9. workspace_name: string,
  10. signature: string,
  11. };
  12. export type FetchFeedbackRecordListApiParams = {
  13. page: number,
  14. page_size: number,
  15. };
  16. export type FetchChangeRecordListApiParams = {
  17. page: number,
  18. page_size: number,
  19. begin_time?: number, // 开始时间
  20. end_time?: number, // 结束时间
  21. device_name?: string,//设备类型
  22. logsInformation?: string,//模糊查询内容
  23. };
  24. export type FetchMediaFileListApiParams = Partial<{
  25. begin_time: number,
  26. end_time: number,
  27. template_type: number,
  28. payload: string,
  29. search_info: string,
  30. page: number,
  31. page_size: number,
  32. }>;
  33. export type BatchDownloadMediaFileApiParams = {
  34. id: string
  35. };
  36. export type FetchFileListByFolderApiParams = Partial<{
  37. begin_time: number,
  38. end_time: number,
  39. media_type: number,
  40. search_info: string,
  41. page: number,
  42. page_size: number,
  43. }>;
  44. export type BatchDownloadFileApiParams = {
  45. id: string
  46. };
  47. export type BatchDeletePictureApiParams = {
  48. id: string
  49. };
  50. export type FetchTrajectoryListApiParams = Partial<{
  51. begin_time: number,
  52. end_time: number,
  53. template_type: number,
  54. payload: number,
  55. search_info: string,
  56. page: number,
  57. page_size: number,
  58. }>;
  59. export type AddPilotApiParams = {
  60. username: number,
  61. password: number,
  62. };
  63. export type FetchPilotPasswordApiParams = {
  64. userId: string,
  65. };
  66. // Api函数类型
  67. export type SignLoginApi = (data: SignLoginApiParams) => Promise<any>;
  68. export type FetchDeviceModelApi = (params?: { flg: boolean }) => Promise<any>;
  69. export type FetchDeviceStatusApi = (params: { snList: string }) => Promise<any>;
  70. export type FetchPayloadListApi = () => Promise<any>;
  71. export type FetchFeedbackRecordListApi = (data: FetchFeedbackRecordListApiParams) => Promise<any>;
  72. export type FetchChangeRecordListApi = (params: FetchFeedbackRecordListApiParams) => Promise<any>;
  73. export type FetchProjectListApi = () => Promise<any>;
  74. export type FetchMediaFileListApi = (params: FetchMediaFileListApiParams) => Promise<any>;
  75. export type BatchDownloadMediaFileApi = (params: BatchDownloadMediaFileApiParams) => Promise<any>;
  76. export type FetchFileListByFolderApi = (dirId: string, params: FetchFileListByFolderApiParams) => Promise<any>;
  77. export type FetchFileDetailApi = (fileId: string) => Promise<any>;
  78. export type BatchDownloadFileApi = (params: BatchDownloadFileApiParams) => Promise<any>;
  79. export type CreateMapElementApi = (fileId: string) => Promise<any>;
  80. export type DeleteMapElementApi = (fileId: string) => Promise<any>;
  81. export type UpdateFileNameApi = (fileId: string, data: { [key: string]: any }) => Promise<any>;
  82. export type BatchDeletePictureApi = (params: BatchDeletePictureApiParams) => Promise<any>;
  83. export type FetchTrajectoryListApi = (params: FetchTrajectoryListApiParams) => Promise<any>;
  84. export type FetchTrajectoryMapApi = (taskId: string) => Promise<any>;
  85. export type AddPilotApi = (data: AddPilotApiParams) => Promise<any>;
  86. export type FetchPilotPasswordApi = (params: FetchPilotPasswordApiParams) => Promise<any>;
  87. // 密钥登录
  88. const signLoginApi: SignLoginApi = async (data) => {
  89. const res = await request.post('/manage/api/v1/signLogin', data);
  90. return res.data;
  91. }
  92. // 获取设备型号
  93. const fetchDeviceModelApi: FetchDeviceModelApi = async (params) => {
  94. const res = await request.get(`/manage/api/v1/devices/${getWorkspaceId()}/getDeviceType`, { params: params });
  95. return res.data;
  96. };
  97. // 获取设备状态
  98. const fetchDeviceStatusApi: FetchDeviceStatusApi = async (params) => {
  99. const res = await request.get(`/manage/api/v1/devices/${getWorkspaceId()}/devices/status`, { params: params });
  100. return res.data;
  101. };
  102. // 获取负载列表
  103. const fetchPayloadListApi: FetchPayloadListApi = async () => {
  104. const res = await request.get(`/manage/api/v1/devices/${getWorkspaceId()}/payloads`);
  105. return res.data;
  106. };
  107. // 获取反馈记录列表
  108. const fetchFeedbackRecordListApi: FetchFeedbackRecordListApi = async (data) => {
  109. const res = await request.get('/manage/api/v1/devices', { params: data });
  110. return res.data;
  111. };
  112. // 获取变化记录列表
  113. const fetchChangeRecordListApi: FetchChangeRecordListApi = async (params) => {
  114. const res = await request.get(`/manage/api/v1/oprlogs/${getWorkspaceId()}/devices/logs`, { params: params });
  115. return res.data;
  116. };
  117. // 获取项目列表
  118. const fetchProjectListApi: FetchProjectListApi = async () => {
  119. const res = await request.get('/manage/api/v1/workspaces/list');
  120. return res.data;
  121. };
  122. // 获取文件夹列表
  123. const fetchMediaFileListApi: FetchMediaFileListApi = async (params) => {
  124. const res = await request.get(`/media/api/v1/files/${getWorkspaceId()}/dirs`, { params: params });
  125. return res.data;
  126. };
  127. // 批量下载文件夹
  128. const batchDownloadMediaFileApi: BatchDownloadMediaFileApi = async (params) => {
  129. const res = await request.get(`/media/api/v1/files/${getWorkspaceId()}/fileDownList`, {
  130. responseType: 'blob',
  131. params: params
  132. });
  133. return res.data;
  134. };
  135. // 获取文件夹下所有文件
  136. const fetchFileListByFolderApi: FetchFileListByFolderApi = async (dirId, params) => {
  137. const res = await request.get(`/media/api/v1/files/${getWorkspaceId()}/files/${dirId}`, { params: params });
  138. return res.data;
  139. };
  140. // 获取文件详情
  141. const fetchFileDetailApi: FetchFileDetailApi = async (fileId) => {
  142. const res = await request.get(`/media/api/v1/files/${getWorkspaceId()}/file/${fileId}`);
  143. return res.data;
  144. };
  145. // 批量下载文件
  146. const batchDownloadFileApi: BatchDownloadFileApi = async (params) => {
  147. const res = await request.get(`/media/api/v1/files/${getWorkspaceId()}/downloadFiles`, {
  148. responseType: 'blob',
  149. params: params
  150. });
  151. return res.data;
  152. };
  153. // 添加图片元素
  154. const createMapElementApi: CreateMapElementApi = async (fileId) => {
  155. const url = `/media/api/v1/files/workspaces/${getWorkspaceId()}/createMapElement/${fileId}`
  156. const result = await request.post(url)
  157. return result.data;
  158. }
  159. // 删除图片元素
  160. const deleteMapElementApi: DeleteMapElementApi = async (fileId) => {
  161. const url = `/media/api/v1/files/workspaces/${getWorkspaceId()}/deleteMapElement/${fileId}`
  162. const result = await request.delete(url)
  163. return result.data;
  164. }
  165. // 更新文件名称
  166. const updateFileNameApi: UpdateFileNameApi = async (fileId, data) => {
  167. const url = `/media/api/v1/files/${getWorkspaceId()}/updateFile/${fileId}`
  168. const result = await request.put(url, data)
  169. return result.data
  170. }
  171. // 批量删除图片
  172. const batchDeletePictureApi: BatchDeletePictureApi = async (data) => {
  173. const res = await request.delete(`/media/api/v1/files/${getWorkspaceId()}/deleteFiles`, { params: data });
  174. return res.data;
  175. };
  176. // 获取轨迹列表
  177. const fetchTrajectoryListApi: FetchTrajectoryListApi = async (params) => {
  178. const url = `/map/api/v1/workspaces/${getWorkspaceId()}/flight-tasks`
  179. const res = await request.get(url, { params: params });
  180. return res.data;
  181. };
  182. // 获取轨迹地图
  183. const fetchTrajectoryMapApi: FetchTrajectoryMapApi = async (taskId) => {
  184. const url = `/map/api/v1/workspaces/${getWorkspaceId()}/flight-task/${taskId}`
  185. const res = await request.get(url);
  186. return res.data;
  187. };
  188. // 添加飞行员
  189. const addPilotApi: AddPilotApi = async (data) => {
  190. const url = `/manage/api/v1/users/${getWorkspaceId()}/savePilotUser`
  191. const res = await request.post(url, data);
  192. return res.data;
  193. };
  194. // 获取飞行员密码
  195. const fetchPilotPasswordApi: FetchPilotPasswordApi = async (params) => {
  196. const url = `/manage/api/v1/users/getPwd`
  197. const res = await request.get(url, { params: params });
  198. return res.data;
  199. };
  200. export const apis = {
  201. signLogin: signLoginApi,
  202. fetchDeviceModel: fetchDeviceModelApi,
  203. fetchDeviceStatus: fetchDeviceStatusApi,
  204. fetchPayloadList: fetchPayloadListApi,
  205. fetchFeedbackRecordList: fetchFeedbackRecordListApi,
  206. fetchChangeRecordList: fetchChangeRecordListApi,
  207. fetchProjectList: fetchProjectListApi,
  208. fetchMediaFileList: fetchMediaFileListApi,
  209. batchDownloadMediaFile: batchDownloadMediaFileApi,
  210. fetchFileListByFolder: fetchFileListByFolderApi,
  211. fetchFileDetail: fetchFileDetailApi,
  212. batchDownloadFile: batchDownloadFileApi,
  213. createMapElement: createMapElementApi,
  214. deleteMapElement: deleteMapElementApi,
  215. updateFileName: updateFileNameApi,
  216. batchDeletePicture: batchDeletePictureApi,
  217. fetchTrajectoryList: fetchTrajectoryListApi,
  218. fetchTrajectoryMap: fetchTrajectoryMapApi,
  219. AddPilot: addPilotApi,
  220. fetchPilotPassword: fetchPilotPasswordApi,
  221. };