index.ts 12 KB

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