index.ts 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. import { http } from '@/utils/http/axios';
  2. import type { QueryPageResponse } from '@/types/basic-query';
  3. // import exp from 'node:constants';
  4. import { DeptTree, addDeptProps, editDeptProps } from '@/types/dept/type';
  5. /**
  6. * 安全文化基础接口
  7. */
  8. export interface safetyCultureFile {
  9. materialName: string;
  10. description: string;
  11. categoryName: string;
  12. caseName: string;
  13. id?: number;
  14. bizType?: string;
  15. fileCode: string; // 文件编号
  16. fileName: string; // 文件名称
  17. classifyName: string; // 分类名称
  18. fileVersion: string; // 文件版本号
  19. fileFormat: number; // 文件格式:PDF/WORD
  20. releaseDate: string; // 发布日期(格式:yyyy-MM-dd)
  21. fileUrl?: string; // 文件存储路径
  22. content?: string; // 文档内容(富文本)
  23. status?: number; // 启用状态:1-启用,0-禁用
  24. createdAt?: string; // 创建时间
  25. updatedAt?: string; // 更新时间
  26. uploadTime?: string; // 上传时间
  27. publishDate?: string; // 发布日期(格式:yyyy-MM-dd)
  28. attachmentUrl?: string; // 文档上传(多个文件路径)
  29. imageUrls?: string; // 图片上传(多个图片路径)
  30. }
  31. /**
  32. * 查询参数
  33. */
  34. export interface safetyCultureFileQuery {
  35. keyword?: string; // 文件名称/编号(模糊查询)
  36. status?: number; // 状态:1-启用,0-禁用
  37. classifyName?: string; // 分类名称
  38. startDate?: string; // 上传日期范围-开始日期
  39. endDate?: string; // 上传日期范围-结束日期
  40. }
  41. /**
  42. * 分页查询参数(Pageable<T> 格式)
  43. */
  44. export interface safetyCultureFilePageQuery {
  45. pageNumber: number; // 页码,从1开始
  46. pageSize: number; // 每页数量
  47. queryParam?: safetyCultureFileQuery; // 查询条件对象
  48. }
  49. /**
  50. * 导出参数
  51. */
  52. export interface safetyCultureFileExportQuery extends safetyCultureFileQuery { }
  53. export interface ProductionSafetyFileExportQuery extends safetyCultureFileExportQuery { }
  54. /**
  55. * 新增事故案例参数
  56. */
  57. export interface newAccidentCases {
  58. id?: number; // 事故案例ID
  59. caseName: string; // 事故案例名称
  60. categoryName: string; // 分类名称
  61. description: string; // 案例描述
  62. attachmentUrl: string[] | string; // 文档上传(多个文件路径)
  63. status?: number; // 启用状态:1-启用,0-禁用
  64. }
  65. /**
  66. * 保存安全活动
  67. */
  68. export interface addSafetyCultureFilePageQuery {
  69. id?: number;
  70. planName: string;
  71. actionContent: string;
  72. categoryName: string;
  73. responsibleDeptId: number;
  74. responsiblePersonId: number;
  75. cooperateDeptIds: string;
  76. attachmentUrl: string[] | string; // 文档上传(多个文件路径)
  77. }
  78. /**
  79. * 导入响应
  80. */
  81. export interface ImportRes {
  82. successCount: number; // 成功数量
  83. failCount: number; // 失败数量
  84. failMessages: string[]; // 失败信息列表
  85. }
  86. export interface ActivityRegistrationTargetItem {
  87. id?: number; // 活动注册目标项ID
  88. planName: string; // 计划名称
  89. createdByName: string; // 创建人姓名
  90. responsibleDeptName: string; // 负责部门名称
  91. startTime: string; // 开始时间(格式:yyyy-MM-dd HH:mm:ss)
  92. departmentName: string; // 部门名称
  93. isAdvancedGroup: boolean; // 是否先进集体
  94. departmentSort: number; // 部门排序
  95. departmentLeader: string; // 部门负责人
  96. baseScore: number; // 基础分
  97. totalScore: number; // 总分数
  98. addScore: number; // 加分项分数
  99. subtractScore: number; // 减分项分数
  100. }
  101. export interface IssueHiddenDangerRequest {
  102. id: number;
  103. specificDeptId: string;
  104. specificPersonId: string;
  105. startTime: string;
  106. endTime: string;
  107. }
  108. // =============================== 事故案例管理 ============================
  109. /**
  110. * 分页查询事故案例管理
  111. */
  112. export function accidentCaseManagementFilePage(query: safetyCultureFilePageQuery, classifyName?: string) {
  113. return http.request<QueryPageResponse<safetyCultureFile>>({
  114. url: '/accidentCase/queryPage',
  115. method: 'post',
  116. data: query,
  117. params: classifyName ? { classifyName } : undefined,
  118. });
  119. }
  120. /**
  121. * 查询事故案例详情
  122. */
  123. export function queryAccidentCaseDetail(id: number) {
  124. return http.request<safetyCultureFile>({
  125. url: `/accidentCase/queryDetail?id=${id}`,
  126. method: 'get',
  127. });
  128. }
  129. /**
  130. * 新增事故案例
  131. */
  132. export function saveAccidentCase(data: newAccidentCases) {
  133. return http.request({
  134. url: '/accidentCase/save',
  135. method: 'post',
  136. data,
  137. });
  138. }
  139. /**
  140. * 更新事故案例
  141. */
  142. export function updateAccidentCase(data: newAccidentCases) {
  143. return http.request({
  144. url: '/accidentCase/update',
  145. method: 'put',
  146. data,
  147. });
  148. }
  149. /**
  150. * 删除事故案例
  151. */
  152. export function deleteAccidentCase(id: number) {
  153. return http.request({
  154. url: `/accidentCase/delete?id=${id}`,
  155. method: 'delete',
  156. });
  157. }
  158. /**
  159. * 查询安全文化材料分页
  160. */
  161. export function querySafetyCultureMaterialsPage(query: safetyCultureFilePageQuery, classifyName?: string) {
  162. return http.request({
  163. url: '/safety-culture/query-page',
  164. method: 'post',
  165. data: query,
  166. params: classifyName ? { classifyName } : undefined,
  167. });
  168. }
  169. /**
  170. * 删除安全文化材料
  171. */
  172. export function deleteSafetyCultureMaterials(id: number) {
  173. return http.request({
  174. url: `/safety-culture/delete?id=${id}`,
  175. method: 'delete',
  176. });
  177. }
  178. /**
  179. * 根据ID查询院级文件详情
  180. */
  181. export function queryAcademyFileById(id: number) {
  182. return http.request<safetyCultureFile>({
  183. url: `/safety-culture/detail?id=${id}`,
  184. method: 'get',
  185. });
  186. }
  187. /**
  188. *新增安全文化资料
  189. */
  190. export function saveAcademyFile(data: safetyCultureFile) {
  191. return http.request({
  192. url: '/safety-culture/save',
  193. method: 'post',
  194. data,
  195. });
  196. }
  197. /**
  198. *更新安全文化资料
  199. */
  200. export function updateAcademyFile(data: safetyCultureFile) {
  201. return http.request({
  202. url: '/safety-culture/update',
  203. method: 'put',
  204. data,
  205. });
  206. }
  207. /**
  208. * 安全文化活动列表
  209. */
  210. export function safetyCultureActivityManagementFilePage(data: safetyCultureFilePageQuery) {
  211. return http.request({
  212. url: '/safetyCulture/activity/queryPage',
  213. method: 'post',
  214. data,
  215. });
  216. }
  217. /**
  218. * 安全文化活动执行人列表
  219. */
  220. export function safetyCultureActivityManagementExecutorFilePage(data: safetyCultureFilePageQuery) {
  221. return http.request({
  222. url: '/safetyCulture/activity/queryPageIssue',
  223. method: 'post',
  224. data,
  225. });
  226. }
  227. /**
  228. * 删除安全文化活动
  229. */
  230. export function deleteSafetyCultureActivityManagement(id: number) {
  231. return http.request({
  232. url: `/safetyCulture/activity/delete?id=${id}`,
  233. method: 'delete',
  234. });
  235. }
  236. /**
  237. * 新增安全文化活动
  238. */
  239. export function addSafetyCultureActivityManagement(data: addSafetyCultureFilePageQuery) {
  240. return http.request({
  241. url: '/safetyCulture/activity/save',
  242. method: 'post',
  243. data,
  244. });
  245. }
  246. /**
  247. * 更新安全文化活动
  248. */
  249. export function updateSafetyCultureActivity(data: addSafetyCultureFilePageQuery) {
  250. return http.request({
  251. url: '/safetyCulture/activity/update',
  252. method: 'put',
  253. data,
  254. });
  255. }
  256. /**
  257. * 查询安全文化活动详情
  258. */
  259. export function querySafetyCultureActivityDetail(id: number) {
  260. return http.request({
  261. url: `/safetyCulture/activity/queryDetail?id=${id}`,
  262. method: 'get',
  263. });
  264. }
  265. /**
  266. * 查询安全文化活动报名分页
  267. */
  268. export function saveSafetyCultureActivityManagement(data) {
  269. return http.request({
  270. url: '/safetyCulture/registration/queryPage',
  271. method: 'post',
  272. data,
  273. });
  274. }
  275. /**
  276. * 查询执行人安全文化活动报名分页
  277. */
  278. export function saveSafetyCultureActivityExecutorManagement(data) {
  279. return http.request({
  280. url: '/safetyCulture/registration/queryPageDept',
  281. method: 'post',
  282. data,
  283. });
  284. }
  285. export function getAllDepartments(): Promise<DeptTree[]> {
  286. return http.request({
  287. url: '/admin/dept/queryAllDeptTree',
  288. method: 'post',
  289. });
  290. }
  291. /**
  292. * 添加安全文化活动报名
  293. */
  294. export function addSafetyCultureActivityRegistration(data) {
  295. return http.request({
  296. url: '/safetyCulture/registration/save',
  297. method: 'post',
  298. data,
  299. });
  300. }
  301. /**
  302. * 删除安全文化活动报名
  303. */
  304. export function deleteSafetyCultureActivityRegistration(id: number) {
  305. return http.request({
  306. url: `/safetyCulture/registration/delete?id=${id}`,
  307. method: 'post'
  308. });
  309. }
  310. /**
  311. * 更新安全文化活动
  312. */
  313. export function updateSafetyCultureActivityManagement(data) {
  314. return http.request({
  315. url: '/safetyCulture/registration/update',
  316. method: 'post',
  317. data,
  318. });
  319. }
  320. /**
  321. * 安全宣传栏管理分页查询
  322. */
  323. export function querySafetyPublicityBoardPage(data: safetyCultureFilePageQuery) {
  324. return http.request({
  325. url: '/safetypublicitybulletinboard/query-page',
  326. method: 'post',
  327. data,
  328. });
  329. }
  330. /**
  331. * 添加安全宣传栏管理分页查询
  332. */
  333. export function saveSafetyPublicityBoardPage(data) {
  334. return http.request({
  335. url: '/safetypublicitybulletinboard/save',
  336. method: 'post',
  337. data,
  338. });
  339. }
  340. /**
  341. * 安全宣传栏管理详情
  342. */
  343. export function querySafetyPublicityBoardDetail(id: number) {
  344. return http.request<safetyCultureFile>({
  345. url: `/safetypublicitybulletinboard/detail?id=${id}`,
  346. method: 'get',
  347. });
  348. }
  349. /**
  350. * 更新安全宣传栏管理
  351. */
  352. export function updateSafetyPublicityBoardPage(data) {
  353. return http.request({
  354. url: '/safetypublicitybulletinboard/update',
  355. method: 'put',
  356. data,
  357. });
  358. }
  359. /**
  360. * 删除安全宣传栏管理
  361. */
  362. export function deleteSafetyPublicityBoardPage(id: number) {
  363. return http.request({
  364. url: `/safetypublicitybulletinboard/delete?id=${id}`,
  365. method: 'delete',
  366. });
  367. }
  368. /**
  369. * 导出事故案例管理文件
  370. */
  371. export function exportAccidentCaseManagementFile(params?: ProductionSafetyFileExportQuery, classifyName?: string) {
  372. return http.request({
  373. url: '/accidentCase/export',
  374. method: 'post',
  375. data: params,
  376. params: classifyName ? { classifyName } : undefined,
  377. responseType: 'blob',
  378. }, {
  379. isTransformResponse: false,
  380. });
  381. }
  382. /**
  383. * 安全文化活动下发
  384. * PUT /api/safetyCulture/activity/assign
  385. */
  386. export function activityDistribution(data: IssueHiddenDangerRequest) {
  387. return http.request({
  388. url: '/safetyCulture/activity/assign',
  389. method: 'put',
  390. data,
  391. });
  392. }
  393. /**
  394. * 添加安全文化活动反馈
  395. */
  396. export function feedbackSafetyCultureActivityManagement(data: addSafetyCultureFilePageQuery) {
  397. return http.request({
  398. url: '/safetyCulture/activity/feedback',
  399. method: 'put',
  400. data,
  401. });
  402. }