diff --git a/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/api/business/assessmentRecord.ts b/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/api/business/assessmentRecord.ts new file mode 100644 index 0000000..da2559d --- /dev/null +++ b/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/api/business/assessmentRecord.ts @@ -0,0 +1,137 @@ +/** + * AssessmentRecord API - 测评记录管理 API + * @module api/business/assessmentRecord + * @description 提供测评记录相关接口,包括记录列表、详情、报告和导出功能 + */ +import { request, type ApiResponse } from '@/utils/request' +import type { PagedRequest, PagedResult } from '@/types/common' + +// ==================== 类型定义 ==================== + +/** 测评记录列表项 */ +export interface AssessmentRecordItem { + id: number + userId: number + userNickname: string | null + orderId: number + orderNo: string | null + assessmentTypeId: number + assessmentTypeName: string | null + name: string + phone: string + gender: number + genderName: string + age: number + educationStage: number + educationStageName: string + province: string + city: string + district: string + status: number + statusName: string + startTime: string | null + submitTime: string | null + completeTime: string | null + createTime: string +} + +/** 答案详情 */ +export interface AnswerDetail { + id: number + questionId: number + questionNo: number + questionContent: string + answerValue: number + createTime: string +} + +/** 结果详情 */ +export interface ResultDetail { + id: number + categoryId: number + categoryName: string + categoryTypeName: string + score: number + maxScore: number + percentage: number + rank: number + starLevel: number + createTime: string +} + +/** 测评记录详情(含答案和结果) */ +export interface AssessmentRecordDetail extends AssessmentRecordItem { + answers: AnswerDetail[] + results: ResultDetail[] +} + +/** 报告分类项 */ +export interface ReportCategoryItem { + categoryId: number + categoryName: string + score: number + maxScore: number + percentage: number + starLevel: number + conclusionContent: string | null +} + +/** 报告分类组 */ +export interface ReportCategoryGroup { + categoryTypeId: number + categoryTypeName: string + items: ReportCategoryItem[] +} + +/** 测评报告 */ +export interface AssessmentReport extends AssessmentRecordItem { + resultGroups: ReportCategoryGroup[] +} + +/** 测评记录查询参数 */ +export interface AssessmentRecordQuery extends PagedRequest { + userId?: number + assessmentTypeId?: number + status?: number + startDate?: string + endDate?: string +} + +// ==================== API ==================== + +/** 获取测评记录列表 */ +export function getRecordList(params: AssessmentRecordQuery): Promise>> { + return request>({ + url: '/admin/assessmentRecord/getList', + method: 'get', + params + }) +} + +/** 获取测评记录详情 */ +export function getRecordDetail(id: number): Promise> { + return request({ + url: '/admin/assessmentRecord/getDetail', + method: 'get', + params: { id } + }) +} + +/** 获取测评报告 */ +export function getRecordReport(id: number): Promise> { + return request({ + url: '/admin/assessmentRecord/getReport', + method: 'get', + params: { id } + }) +} + +/** 导出测评记录 */ +export function exportRecords(params: AssessmentRecordQuery): Promise> { + return request({ + url: '/admin/assessmentRecord/export', + method: 'get', + params, + responseType: 'blob' + }) +} diff --git a/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/router/business.ts b/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/router/business.ts index 40bba38..de14921 100644 --- a/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/router/business.ts +++ b/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/router/business.ts @@ -118,6 +118,12 @@ export const businessRoutes: RouteRecordRaw[] = [ name: 'ScoreOption', component: () => import('@/views/business/assessment/scoreOption/index.vue'), meta: { title: '评分标准', permission: 'assessment:view', keepAlive: true } + }, + { + path: 'record', + name: 'AssessmentRecord', + component: () => import('@/views/business/assessment/record/index.vue'), + meta: { title: '测评记录', permission: 'assessmentRecord:view', keepAlive: true } } ] }, diff --git a/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/views/business/assessment/record/index.vue b/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/views/business/assessment/record/index.vue new file mode 100644 index 0000000..75f9800 --- /dev/null +++ b/server/MiAssessment/src/MiAssessment.Admin/admin-web/src/views/business/assessment/record/index.vue @@ -0,0 +1,638 @@ + + + + +