新增后台「教师名册」页

纯只读页面,形态与学生名册一致(#19)。

- src/api/gxmu/teacher:分页查询与导出接口
- src/views/gxmu/teacherRoster:学院/教工号/姓名/状态筛选 + 列表 + CSV 导出
- 导出按钮按 gxmu:teacher:export 权限渲染,与查询权限分开
- 手机号按 spec §5.2 不进任何列表接口,页面与导出均无该列
This commit is contained in:
2026-09-15 17:21:38 +08:00
parent a592e66f78
commit b2b7d4208e
3 changed files with 314 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { TeacherRoster, TeacherRosterParam } from './model';
/** 教师名册分页查询 */
export async function pageTeacherRoster(params: TeacherRosterParam) {
const res = await request.get<ApiResult<PageResult<TeacherRoster>>>(
'/gxmu/teacher/page',
{ params }
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/** 导出教师名册(返回列表,由前端生成文件;响应中不含手机号) */
export async function exportTeacherRoster(params: TeacherRosterParam) {
const res = await request.post<ApiResult<TeacherRoster[]>>(
'/gxmu/teacher/export',
null,
{ params }
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
+43
View File
@@ -0,0 +1,43 @@
/**
* 教师名册(开放平台同步)
*/
/** 教师名册记录 */
export interface TeacherRoster {
id: number;
/** 教工号(开放平台外部键) */
jgh: string;
/** 姓名 */
xm?: string;
/** 性别码 */
xbm?: string;
/** 性别 */
sex?: string;
/** 单位号(平台原始值) */
dwh?: string;
/** 解析出的学院ID */
collegeId?: number;
/** 学院名称 */
collegeName?: string;
/** 科室教研室编号 */
ksjybh?: string;
/** 状态:1启用 0停用 */
status?: number;
/** 最近同步时间 */
syncTime?: string;
}
/**
* 教师名册查询参数
*
* 说明:教师手机号由后端落盘但不出任何列表接口(spec §5.2),故此处没有该字段,
* 页面也不展示。
*/
export interface TeacherRosterParam {
page?: number;
limit?: number;
collegeId?: number;
jgh?: string;
xm?: string;
status?: number;
}