index.ts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. import { http } from '@/utils/http/axios';
  2. /**
  3. * @description: 查询未读消息列表
  4. */
  5. export interface UnReadNoticeInfo {
  6. id: number; // 消息通知id
  7. notifierUserId: number; // 被通知人用户id
  8. infoType: number; // 消息类型:1-灾害预警 2-防御通知 3-预防检查任务 4-灾害处置上报任务 5-灾害处置整改任务
  9. infoOutline: string; // 消息概要
  10. infoStatus: number; // 消息状态:1-已处理、2-未处理、3-忽略
  11. pushChannel: number; // 推送渠道:1-首页
  12. detail: string; // 详情(JSON)
  13. sourceId: number; // 消息来源id
  14. createdAt: string; // 创建时间
  15. updatedAt: string; // 更新时间
  16. isDeleted: number; // 0-未删除,大于0-已删除
  17. }
  18. export const getUnReadNoticeInfoList = () => {
  19. return http.request<UnReadNoticeInfo[]>({
  20. url: '/noticeInfo/queryUnReadNoticeInfoList',
  21. method: 'get',
  22. });
  23. };
  24. /**
  25. * @description: 更新消息通知状态
  26. */
  27. export interface UpdateUnReadNoticeInfoStatusParams {
  28. id: number; // 消息通知id
  29. status: number; // 修改状态:1-已读 2-未读 3-忽略
  30. }
  31. export const updateUnReadNoticeInfoStatus = (params: UpdateUnReadNoticeInfoStatusParams) => {
  32. return http.request({
  33. url: '/noticeInfo/updateNoticeInfoStatus',
  34. method: 'post',
  35. params,
  36. });
  37. };
  38. /**
  39. * @description: 灾害预警记录(timespan: 1-本周,2-本月,3-季度,4-年度)
  40. */
  41. export interface WarnRecord {
  42. disasterType: string; // 灾害类型
  43. warnTime: string; // 预警时间
  44. source: string; // 信息来源
  45. }
  46. export interface DisasterWarningRecordsRes {
  47. warnCount: number; // 预警数量
  48. warnRecord: WarnRecord[]; // 预警记录
  49. }
  50. export const getDisasterWarningRecords = (duration: number) => {
  51. return http.request<DisasterWarningRecordsRes[]>({
  52. url: `/overview/queryOverviewDisasterWarn?timespan=${duration}`,
  53. method: 'get',
  54. });
  55. };
  56. /**
  57. * @description: 预防检查
  58. */
  59. export interface QueryCheckingListsParams {
  60. pageNumber?: number;
  61. pageSize?: number;
  62. queryParam?: {};
  63. }
  64. export interface TaskRecord {
  65. id: number; // 任务id
  66. inspectType: number; // 检查类型:1-台汛前期检查,2-台汛中期检查,3-台汛后期检查
  67. deptName: string; // 被检查单位名称
  68. updatedAt: string; // 更新时间
  69. taskState: number; // 任务状态:1-待发布,2-待检查,3-待审批,4-已完成
  70. hasHazard: boolean; // 检查结果:false-不存在隐患,true-存在隐患
  71. }
  72. export interface PreventInspectInfoRes {
  73. totalTask: number; // 总任务数
  74. submittedTask: number; // 待签字任务数
  75. signedTask: number; // 已签字任务数
  76. passTask: number; // 通过任务数
  77. dangerTask: number; // 隐患任务数
  78. taskRecord: TaskRecord[]; // 检查任务记录
  79. pageNumber: number;
  80. pageSize: number;
  81. totalPage: number;
  82. totalRow: number;
  83. }
  84. export const getPreventInspect = (params: QueryCheckingListsParams) => {
  85. return http.request<PreventInspectInfoRes>({
  86. url: '/overview/queryOverviewPreventInspect',
  87. method: 'post',
  88. params,
  89. });
  90. };
  91. /**
  92. * @description: 灾害处置
  93. */
  94. export interface DisasterHandleInfoRecord {
  95. affectedItems: string; // 受灾物品
  96. deptId: number; // 损失部门id
  97. deptName: string; // 损失部门
  98. affectedLocation: string; // 受灾地点
  99. fixStatus: number; // 整改进度:1-待整改 2-已响应 3-已更新 4-已完成 5-暂时关闭
  100. fixerId: number; // 整改人员id
  101. fixerName: string; // 整改人员名称
  102. fixerStaffNo: string; // 整改人员工号
  103. }
  104. export interface QueryDisasterHandleOverviewRes {
  105. dueReportDeptCount: number; // 应上报部门数量
  106. completeReportDeptCount: number; // 已上报部门数量
  107. existLossDeptCount: number; // 存在损失部门数量
  108. lossRecordCount: number; // 损失记录数量
  109. completeHandleCount: number; // 处置完成数量
  110. disasterHandleInfoList: DisasterHandleInfoRecord[];
  111. pageNumber: number;
  112. pageSize: number;
  113. totalPage: number;
  114. totalRow: number;
  115. }
  116. export const getDisasterHandleOverview = (params: QueryCheckingListsParams) => {
  117. return http.request<QueryDisasterHandleOverviewRes>({
  118. url: '/disasterHandle/queryDisasterHandleOverview',
  119. method: 'post',
  120. params,
  121. });
  122. };
  123. /**
  124. * @description: 通知与管理规定(防御通知)
  125. */
  126. export interface NoticeAndRulesRes {
  127. id: number; // 通知id
  128. title: string; // 通知标题
  129. createdBy: number; // 创建人id
  130. createdName: string; // 创建人姓名
  131. pushTime: string; // 发布时间
  132. }
  133. export const getNoticeAndRules = () => {
  134. return http.request<NoticeAndRulesRes[]>({
  135. url: '/overview/queryOverviewDefenseNotice',
  136. method: 'get',
  137. });
  138. };
  139. /**
  140. * @description: 重点监测区域:查看相机分组列表
  141. */
  142. export interface GetCameraGroupListRes {
  143. id: number; // 分组id
  144. groupName: string; // 分组名称
  145. isDefault: number;
  146. playIntervalSec: number; // 轮播间隔
  147. isPaused: number; // 是否暂停播放
  148. children: CameraInfo[]; // 分组相机列表
  149. }
  150. export interface CameraInfo {
  151. networkingState: number; // 联网状态: 0-启用, 1-禁用
  152. integrationState: number; // 接入状态: 0-启用, 1-禁用
  153. render: string; // 渲染选择,无渲染/某个算法
  154. version: number; // 版本
  155. extra: string; // 扩展数据
  156. pushStreamDTO: {
  157. videoUrls: {
  158. pushstreamIp: string; // 推流地址(前端播放的地址)
  159. pushstreamRenderUrl: string; // 渲染推流地址(前端播放的渲染地址)
  160. m3u8PushstreamIp: string; // ios推流地址(前端播放的地址)
  161. m3u8PushstreamRenderIp: string; // ios推流地址(前端播放的地址)
  162. pushstreamIpAbs: string; // 推流地址(前端播放的地址)
  163. pushstreamRenderUrlAbs: string; // 渲染推流地址(前端播放的渲染地址)
  164. m3u8PushstreamIpAbs: string; // ios推流地址(前端播放的地址)
  165. m3u8PushstreamRenderIpAbs: string; // ios推流地址(前端播放的地址)
  166. };
  167. imageUrl: string; // 摄像头实时记录的画面
  168. };
  169. id: number; // 自增主键
  170. workshopId: number; // 车间id
  171. workspaceId: number; // 工位id
  172. name: string; // 相机名称
  173. code: string; // 相机编号
  174. cameraIp: string; // 相机IP
  175. cameraPort: string; // 相机端口
  176. cameraType: string; // 相机类型: haikang/dahua/anxus/huawei
  177. remark: string; // 描述
  178. sourceType: string; // 添加方式: IP,NVR,RTSP
  179. rtspUrl: string; // rtsp地址
  180. nvrId: number; // NVR id
  181. nvrChannel: string; // NVR通道号
  182. videoStandard: string; // 视频编码标准,H264, H265
  183. videoServiceType: string; // 视频服务类型,TCP, UDP, AUTO
  184. isDisabled: number; // 状态: 0-启用, 1-禁用
  185. }
  186. export const getMonitorCameraLists = () => {
  187. return http.request({
  188. url: '/cameraGroup/queryCameraGroupList?isHomeDisplay=1',
  189. method: 'get',
  190. });
  191. };
  192. /**
  193. * @description: 重点监测区域:根据用户查询相机树
  194. */
  195. export interface QueryAllOwnedCameraTreeRes {
  196. nodeType: string; // 节点类型
  197. id: number; // 公司id
  198. parentId?: number; // 上级公司Id, 无上级为0
  199. name: string; // 公司名称
  200. code: string; // 公司编号
  201. remark: string; // 描述
  202. orderNum: number; // 排序序号
  203. longitude?: Record<string, unknown>; // 经度
  204. latitude?: Record<string, unknown>; // 纬度
  205. regionCode?: string; // 区域编码(标识)
  206. isDisabled: number; // 状态: 0-启用, 1-禁用
  207. createdBy: number; // 创建人
  208. updatedBy: number; // 更新人
  209. createdAt: Record<string, unknown>; // 创建时间
  210. updatedAt: Record<string, unknown>; // 更新时间
  211. tenantId: number; // 租户ID
  212. thumbnail?: string; // 公司缩略图
  213. // 车间-工位-相机信息
  214. children: {
  215. nodeType: string; // 节点类型
  216. id: number; // 车间id
  217. companyId: number; // 公司id
  218. name: string; // 车间名称
  219. code: string; // 车间编号
  220. orderNum: number; // 排序序号
  221. remark: string; // 描述
  222. isDisabled: number; // 状态: 0-启用, 1-禁用
  223. createdBy: number; // 创建人
  224. updatedBy: number; // 更新人
  225. createdAt: Record<string, unknown>; // 创建时间
  226. updatedAt: Record<string, unknown>; // 修改时间
  227. tenantId: number; // 租户ID
  228. // 工位-相机信息
  229. children: {
  230. nodeType: string; // 节点类型
  231. id: number; // 工位id
  232. workshopId: number; // 车间id
  233. name: string; // 工位名称
  234. code: string; // 工位编号
  235. remark: string; // 描述
  236. orderNum: number; // 排序序号
  237. principalName: string; // 工位负责人
  238. principalId: number; // 工位负责人id
  239. isDisabled: number; // 状态: 0-启用, 1-禁用
  240. createdBy: number; // 创建人
  241. updatedBy: number; // 更新人
  242. createdAt: Record<string, unknown>; // 创建时间
  243. updatedAt: Record<string, unknown>; // 更新时间
  244. tenantId: number; // 租户ID
  245. // 相机信息
  246. children: CameraInTree[];
  247. }[];
  248. }[];
  249. }
  250. export interface CameraInTree {
  251. networkingState: number; // 联网状态: 0-启用, 1-禁用
  252. integrationState: number; // 接入状态: 0-启用, 1-禁用
  253. render: string; // 渲染选择,无渲染/某个算法
  254. version: number; // 版本
  255. extra: string; // 扩展数据
  256. pushStreamDTO: {
  257. videoUrls: {
  258. pushstreamIp: string; // 推流地址(前端播放的地址)
  259. pushstreamRenderUrl: string; // 渲染推流地址(前端播放的渲染地址)
  260. m3u8PushstreamIp: string; // ios推流地址(前端播放的地址)
  261. m3u8PushstreamRenderIp: string; // ios推流地址(前端播放的地址)
  262. pushstreamIpAbs: string; // 推流地址(前端播放的地址)
  263. pushstreamRenderUrlAbs: string; // 渲染推流地址(前端播放的渲染地址)
  264. m3u8PushstreamIpAbs: string; // ios推流地址(前端播放的地址)
  265. m3u8PushstreamRenderIpAbs: string; // ios推流地址(前端播放的地址)
  266. };
  267. imageUrl: string; // 摄像头实时记录的画面
  268. };
  269. id: number; // 自增主键
  270. workshopId: number; // 车间id
  271. workspaceId: number; // 工位id
  272. name: string; // 相机名称
  273. code: string; // 相机编号
  274. cameraIp: string; // 相机IP
  275. cameraPort: string; // 相机端口
  276. cameraType: string; // 相机类型: haikang/dahua/anxus/huawei
  277. remark: string; // 描述
  278. sourceType: string; // 添加方式: IP,NVR,RTSP
  279. rtspUrl: string; // rtsp地址
  280. nvrId: number; // NVR id
  281. nvrChannel: string; // NVR通道号
  282. videoStandard: string; // 视频编码标准,H264, H265
  283. videoServiceType: string; // 视频服务类型,TCP, UDP, AUTO
  284. isDisabled: number; // 状态: 0-启用, 1-禁用
  285. nodeType: string; // 节点类型
  286. }
  287. export const getCameraTreeList = () => {
  288. return http.request({
  289. url: '/camera/queryAllOwnedCameraTree',
  290. method: 'get',
  291. });
  292. };
  293. /**
  294. * @description: 重点监测区域:批量编辑分组内相机
  295. */
  296. export const updateCameraToOverviewGroup = (params: { groupId: number | undefined; cameraIdList: number[] }) => {
  297. return http.request({
  298. url: '/cameraGroup/updateCameraInGroup',
  299. method: 'post',
  300. params,
  301. });
  302. };