2
0

classroom_data.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import axios from 'axios';
  2. import type {
  3. ClassroomData,
  4. ClassroomDataListResponse,
  5. ClassroomStatus
  6. } from '../../share/types_stock.ts';
  7. interface ClassroomDataResponse {
  8. data: ClassroomData;
  9. message?: string;
  10. }
  11. interface ClassroomDataCreateResponse {
  12. message: string;
  13. data: ClassroomData;
  14. }
  15. interface ClassroomDataUpdateResponse {
  16. message: string;
  17. data: ClassroomData;
  18. }
  19. interface ClassroomDataDeleteResponse {
  20. message: string;
  21. id: number;
  22. }
  23. // 教室数据API
  24. export const ClassroomDataAPI = {
  25. // 获取教室数据列表
  26. getClassroomDatas: async (params?: {
  27. page?: number;
  28. pageSize?: number;
  29. classroom_no?: string;
  30. training_date?: string;
  31. status?: ClassroomStatus;
  32. }): Promise<ClassroomDataListResponse> => {
  33. try {
  34. const response = await axios.get('/classroom-datas', { params });
  35. return response.data;
  36. } catch (error) {
  37. throw error;
  38. }
  39. },
  40. // 获取单个教室数据
  41. getClassroomData: async (id: number): Promise<ClassroomDataResponse> => {
  42. try {
  43. const response = await axios.get(`/classroom-datas/${id}`);
  44. return response.data;
  45. } catch (error) {
  46. throw error;
  47. }
  48. },
  49. // 创建教室数据
  50. createClassroomData: async (data: Partial<ClassroomData>): Promise<ClassroomDataCreateResponse> => {
  51. try {
  52. const response = await axios.post('/classroom-datas', data);
  53. return response.data;
  54. } catch (error) {
  55. throw error;
  56. }
  57. },
  58. // 更新教室数据
  59. updateClassroomData: async (id: number, data: Partial<ClassroomData>): Promise<ClassroomDataUpdateResponse> => {
  60. try {
  61. const response = await axios.put(`/classroom-datas/${id}`, data);
  62. return response.data;
  63. } catch (error) {
  64. throw error;
  65. }
  66. },
  67. // 删除教室数据
  68. deleteClassroomData: async (id: number): Promise<ClassroomDataDeleteResponse> => {
  69. try {
  70. const response = await axios.delete(`/classroom-datas/${id}`);
  71. return response.data;
  72. } catch (error) {
  73. throw error;
  74. }
  75. }
  76. };