campus.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * campus.ts —— 校区(campus)接口封装(org 域;README §3.2 一资源一文件)。
  3. *
  4. * 典型使用(views/org/campus/list.vue):
  5. * const { rows, total, page, pageSize, loading, fetchList } = useListPage<CampusDTO>({
  6. * fetcher: (p, ps) => listCampuses({ ...scope.toQuery(), keyword, page: p, pageSize: ps }),
  7. * });
  8. */
  9. import { http } from '@/api/http';
  10. import type { PageR } from '@/types/api';
  11. /** 校区 DTO(字段与后端 org 域 model.Campus 出参逐字段对齐 camelCase;status 字符串枚举) */
  12. export interface CampusDTO {
  13. /** 校区 id(int64 自增,主键) */
  14. campusId: number;
  15. /** 归属机构 id(作用域第一级) */
  16. institutionId: number;
  17. /** 校区名称 */
  18. campusName: string;
  19. /** 状态:"active" 启用 / "disabled" 停用(VARCHAR(16) 字符串枚举) */
  20. status: 'active' | 'disabled';
  21. /** 创建时间(RFC3339,后端 GORM CreatedAt) */
  22. createdAt: string;
  23. /** 更新时间(RFC3339,后端 GORM UpdatedAt) */
  24. updatedAt: string;
  25. }
  26. /** 校区列表查询参数(作用域由 useScope().toQuery() 注入) */
  27. export type CampusQuery = {
  28. /** 机构 id(作用域第一级) */
  29. institutionId: number;
  30. /** 校区 id(可空 = 机构级全部) */
  31. campusId?: number;
  32. /** 名称模糊搜索(可空) */
  33. keyword?: string;
  34. /** 页码(缺省 1) */
  35. page?: number;
  36. /** 每页条数(缺省 10,上限 200) */
  37. pageSize?: number;
  38. };
  39. /** 校区分页列表(GET /api/org/campuses)。入参:CampusQuery。出参:PageR<CampusDTO>。 */
  40. export function listCampuses(params: CampusQuery): Promise<PageR<CampusDTO>> {
  41. return http.get<PageR<CampusDTO>>('/api/org/campuses', { params }).then((r) => r.data);
  42. }