From b2b7d4208ea4375cbf7f096bb86a7db438e3edcd Mon Sep 17 00:00:00 2001 From: "weicw1996@qq.com" Date: Tue, 15 Sep 2026 17:21:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=90=8E=E5=8F=B0=E3=80=8C?= =?UTF-8?q?=E6=95=99=E5=B8=88=E5=90=8D=E5=86=8C=E3=80=8D=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 纯只读页面,形态与学生名册一致(#19)。 - src/api/gxmu/teacher:分页查询与导出接口 - src/views/gxmu/teacherRoster:学院/教工号/姓名/状态筛选 + 列表 + CSV 导出 - 导出按钮按 gxmu:teacher:export 权限渲染,与查询权限分开 - 手机号按 spec §5.2 不进任何列表接口,页面与导出均无该列 --- src/api/gxmu/teacher/index.ts | 28 +++ src/api/gxmu/teacher/model/index.ts | 43 +++++ src/views/gxmu/teacherRoster/index.vue | 243 +++++++++++++++++++++++++ 3 files changed, 314 insertions(+) create mode 100644 src/api/gxmu/teacher/index.ts create mode 100644 src/api/gxmu/teacher/model/index.ts create mode 100644 src/views/gxmu/teacherRoster/index.vue diff --git a/src/api/gxmu/teacher/index.ts b/src/api/gxmu/teacher/index.ts new file mode 100644 index 0000000..54bb1f5 --- /dev/null +++ b/src/api/gxmu/teacher/index.ts @@ -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>>( + '/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>( + '/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)); +} diff --git a/src/api/gxmu/teacher/model/index.ts b/src/api/gxmu/teacher/model/index.ts new file mode 100644 index 0000000..5f820b9 --- /dev/null +++ b/src/api/gxmu/teacher/model/index.ts @@ -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; +} diff --git a/src/views/gxmu/teacherRoster/index.vue b/src/views/gxmu/teacherRoster/index.vue new file mode 100644 index 0000000..1b752f7 --- /dev/null +++ b/src/views/gxmu/teacherRoster/index.vue @@ -0,0 +1,243 @@ + + + + +