date_notes.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import axios from 'axios';
  2. import type {
  3. DateNote,
  4. DateNoteListResponse
  5. } from '../../share/types.ts';
  6. interface DateNoteResponse {
  7. data: DateNote;
  8. message?: string;
  9. }
  10. interface DateNoteCreateResponse {
  11. message: string;
  12. data: DateNote;
  13. }
  14. interface DateNoteUpdateResponse {
  15. message: string;
  16. data: DateNote;
  17. }
  18. interface DateNoteDeleteResponse {
  19. message: string;
  20. id: number;
  21. }
  22. // 日期备注API
  23. export const DateNotesAPI = {
  24. // 获取日期备注列表
  25. getDateNotes: async (params?: {
  26. page?: number;
  27. pageSize?: number;
  28. code?: string;
  29. start_date?: string;
  30. end_date?: string;
  31. }): Promise<DateNoteListResponse> => {
  32. try {
  33. const response = await axios.get('/date-notes', { params });
  34. return response.data;
  35. } catch (error) {
  36. throw error;
  37. }
  38. },
  39. // 获取单个日期备注
  40. getDateNote: async (id: number): Promise<DateNoteResponse> => {
  41. try {
  42. const response = await axios.get(`/date-notes/${id}`);
  43. return response.data;
  44. } catch (error) {
  45. throw error;
  46. }
  47. },
  48. // 创建日期备注
  49. createDateNote: async (data: Partial<DateNote>): Promise<DateNoteCreateResponse> => {
  50. try {
  51. const response = await axios.post('/date-notes', data);
  52. return response.data;
  53. } catch (error) {
  54. throw error;
  55. }
  56. },
  57. // 更新日期备注
  58. updateDateNote: async (id: number, data: Partial<DateNote>): Promise<DateNoteUpdateResponse> => {
  59. try {
  60. const response = await axios.put(`/date-notes/${id}`, data);
  61. return response.data;
  62. } catch (error) {
  63. throw error;
  64. }
  65. },
  66. // 删除日期备注
  67. deleteDateNote: async (id: number): Promise<DateNoteDeleteResponse> => {
  68. try {
  69. const response = await axios.delete(`/date-notes/${id}`);
  70. return response.data;
  71. } catch (error) {
  72. throw error;
  73. }
  74. }
  75. };