567e4aabdb
- 新增 updateSelfUser 方法,用于修改当前登录用户的个人资料 - 个人中心调用接口由原 updateUser 切换为 updateSelfUser,避免学生账号权限不足导致的保存失败 - 更新了头像保存、个人信息保存等相关调用代码,添加异常捕获和提示 - 修正环境变量 .env.development 中 API URL 配置为生产地址 - 优化审核记录排序逻辑,新增获取最新审核记录和编辑入口显示判断函数 - 调整审核状态标签使用统一排序规则,防止显示和编辑状态不一致 - 新增社团活动、社团编辑、志愿时长录入、学分记录编辑、社会实践学分申报、青马学员编辑等多个新增组件及表单功能 - 各新增功能支持表单验证、操作反馈和数据加载优化
290 lines
7.4 KiB
TypeScript
290 lines
7.4 KiB
TypeScript
import type { PageParam, PageResult } from '@/api';
|
|
import request from '@/utils/request';
|
|
import type { ApiResult } from '@/api';
|
|
import { MODULES_API_URL } from '@/config/setting';
|
|
|
|
/** 青马学员 */
|
|
export interface QmgcStudent {
|
|
id?: number;
|
|
userId?: number;
|
|
formId?: number;
|
|
studentNo?: string;
|
|
studentName?: string;
|
|
gender?: string;
|
|
phone?: string;
|
|
collegeId?: number;
|
|
collegeName?: string;
|
|
classId?: number;
|
|
className?: string;
|
|
batch?: string;
|
|
year?: number;
|
|
candidateNo?: string;
|
|
stage?: string;
|
|
stageName?: string;
|
|
result?: string;
|
|
totalScore?: number;
|
|
remark?: string;
|
|
status?: number;
|
|
createTime?: string;
|
|
}
|
|
|
|
/** 青马培养材料 */
|
|
export interface QmgcMaterial {
|
|
id?: number;
|
|
studentId?: number;
|
|
stage?: string;
|
|
type?: string;
|
|
title?: string;
|
|
content?: string;
|
|
fileId?: number;
|
|
fileUrl?: string;
|
|
submitTime?: string;
|
|
score?: number;
|
|
scorerId?: number;
|
|
scoreComment?: string;
|
|
status?: number;
|
|
}
|
|
|
|
/** 青马培养任务 */
|
|
export interface QmgcTask {
|
|
id?: number;
|
|
batch?: string;
|
|
stage?: string;
|
|
title?: string;
|
|
type?: string;
|
|
linkPath?: string;
|
|
content?: string;
|
|
mustDo?: number;
|
|
score?: number;
|
|
deadline?: string;
|
|
sortNumber?: number;
|
|
status?: number;
|
|
}
|
|
|
|
/** 青马考核评分 */
|
|
export interface QmgcScore {
|
|
id?: number;
|
|
studentId?: number;
|
|
dimension?: string;
|
|
item?: string;
|
|
score?: number;
|
|
maxScore?: number;
|
|
scorerId?: number;
|
|
scorerName?: string;
|
|
comment?: string;
|
|
scoredTime?: string;
|
|
}
|
|
|
|
export interface QmgcStudentParam extends PageParam {
|
|
userId?: number;
|
|
formId?: number;
|
|
studentNo?: string;
|
|
studentName?: string;
|
|
collegeId?: number;
|
|
batch?: string;
|
|
year?: number;
|
|
stage?: string;
|
|
status?: number;
|
|
}
|
|
|
|
export interface QmgcTaskParam extends PageParam {
|
|
batch?: string;
|
|
stage?: string;
|
|
type?: string;
|
|
status?: number;
|
|
}
|
|
|
|
export async function pageQmgcStudents(params: QmgcStudentParam) {
|
|
const res = await request.get<ApiResult<PageResult<QmgcStudent>>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student/page',
|
|
{ params }
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.data;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function getQmgcStudentDetail(id: number) {
|
|
const res = await request.get<ApiResult<Record<string, any>>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student/' + id
|
|
);
|
|
if (res.data.code === 0 && res.data.data) {
|
|
return res.data.data;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function addQmgcStudent(data: QmgcStudent) {
|
|
const res = await request.post<ApiResult<unknown>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student',
|
|
data
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.message;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function updateQmgcStudent(data: QmgcStudent) {
|
|
const res = await request.put<ApiResult<unknown>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student',
|
|
data
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.message;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function removeQmgcStudent(id: number) {
|
|
const res = await request.delete<ApiResult<unknown>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student/' + id
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.message;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function getMyQmgc() {
|
|
const res = await request.get<ApiResult<Record<string, any> | null>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student/my'
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.data;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function listQmgcMaterials(studentId: number) {
|
|
const res = await request.get<ApiResult<QmgcMaterial[]>>(
|
|
MODULES_API_URL + `/gxmu/qmgc-student/${studentId}/material`
|
|
);
|
|
if (res.data.code === 0 && res.data.data) {
|
|
return res.data.data;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function submitQmgcMaterial(data: QmgcMaterial) {
|
|
const res = await request.post<ApiResult<QmgcMaterial>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student/material',
|
|
data
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.data;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function scoreQmgcMaterial(id: number, score: number, comment?: string) {
|
|
const res = await request.post<ApiResult<unknown>>(
|
|
MODULES_API_URL + `/gxmu/qmgc-student/material/${id}/score`,
|
|
null,
|
|
{ params: { score, comment } }
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.message;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function listQmgcStudentTasks(studentId: number) {
|
|
const res = await request.get<ApiResult<Record<string, any>[]>>(
|
|
MODULES_API_URL + `/gxmu/qmgc-student/${studentId}/task`
|
|
);
|
|
if (res.data.code === 0 && res.data.data) {
|
|
return res.data.data;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function completeQmgcTask(studentId: number, taskId: number, proofFiles?: string) {
|
|
const res = await request.post<ApiResult<unknown>>(
|
|
MODULES_API_URL + `/gxmu/qmgc-student/${studentId}/task/${taskId}/complete`,
|
|
null,
|
|
{ params: { proofFiles } }
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.message;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function assignQmgcTasks(studentId: number, batch?: string) {
|
|
const res = await request.post<ApiResult<unknown>>(
|
|
MODULES_API_URL + `/gxmu/qmgc-student/${studentId}/task/assign`,
|
|
null,
|
|
{ params: { batch } }
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.message;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function pageQmgcTasks(params: QmgcTaskParam) {
|
|
const res = await request.get<ApiResult<PageResult<QmgcTask>>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student/task/page',
|
|
{ params }
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.data;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function addQmgcTask(data: QmgcTask) {
|
|
const res = await request.post<ApiResult<unknown>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student/task',
|
|
data
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.message;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function updateQmgcTask(data: QmgcTask) {
|
|
const res = await request.put<ApiResult<unknown>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student/task',
|
|
data
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.message;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function removeQmgcTask(id: number) {
|
|
const res = await request.delete<ApiResult<unknown>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student/task/' + id
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.message;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function listQmgcScores(studentId: number) {
|
|
const res = await request.get<ApiResult<QmgcScore[]>>(
|
|
MODULES_API_URL + `/gxmu/qmgc-student/${studentId}/score`
|
|
);
|
|
if (res.data.code === 0 && res.data.data) {
|
|
return res.data.data;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|
|
|
|
export async function saveQmgcScore(data: QmgcScore) {
|
|
const res = await request.post<ApiResult<QmgcScore>>(
|
|
MODULES_API_URL + '/gxmu/qmgc-student/score',
|
|
data
|
|
);
|
|
if (res.data.code === 0) {
|
|
return res.data.data;
|
|
}
|
|
return Promise.reject(new Error(res.data.message));
|
|
}
|