feat(user): 支持修改当前用户资料接口并更新个人中心调用
- 新增 updateSelfUser 方法,用于修改当前登录用户的个人资料 - 个人中心调用接口由原 updateUser 切换为 updateSelfUser,避免学生账号权限不足导致的保存失败 - 更新了头像保存、个人信息保存等相关调用代码,添加异常捕获和提示 - 修正环境变量 .env.development 中 API URL 配置为生产地址 - 优化审核记录排序逻辑,新增获取最新审核记录和编辑入口显示判断函数 - 调整审核状态标签使用统一排序规则,防止显示和编辑状态不一致 - 新增社团活动、社团编辑、志愿时长录入、学分记录编辑、社会实践学分申报、青马学员编辑等多个新增组件及表单功能 - 各新增功能支持表单验证、操作反馈和数据加载优化
This commit is contained in:
@@ -0,0 +1,289 @@
|
||||
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));
|
||||
}
|
||||
Reference in New Issue
Block a user