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