diff --git a/.env b/.env
index faf5ccf..5910943 100644
--- a/.env
+++ b/.env
@@ -1,5 +1,5 @@
#VITE_HOST = http://192.168.0.114:9053
-VITE_HOST = http://43.136.52.196:9053
-#VITE_HOST= https://ai.xuexiaole.com
+#VITE_HOST = http://43.136.52.196:9053
+VITE_HOST= https://ai.xuexiaole.com
VITE_OSS_HOST = https://xxl-1313840333.cos.ap-guangzhou.myqcloud.com
VITE_WS_URL = wss://test.qiaoying.vip/wss/websocket
\ No newline at end of file
diff --git a/src/api/teacher.ts b/src/api/teacher.ts
index 8c87e98..8e114a6 100644
--- a/src/api/teacher.ts
+++ b/src/api/teacher.ts
@@ -108,6 +108,67 @@ export interface ClassHomeworkReportData {
studentList: ClassHomeworkStudentItem[];
}
+// ---------- AI 批改效率总览 school/report/aiCorrectionEfficiency/overview ----------
+export interface TopErrorTitle {
+ titleId?: number | string;
+ titleContent?: string;
+ subjectId?: number;
+ subjectName?: string;
+ errorCount?: number;
+ errorRate?: number;
+ [key: string]: any;
+}
+
+export interface AiCorrectionOverview {
+ classId: number | string;
+ className: string;
+ aiPaperCount: number;
+ aiTitleCount: number;
+ teacherSaveTimeMinutes: number;
+ excellentCount: number;
+ excellentRate: number;
+ goodCount: number;
+ goodRate: number;
+ passCount: number;
+ passRate: number;
+ unsubmittedCount: number;
+ unsubmittedRate: number;
+ topErrorTitles: TopErrorTitle[];
+}
+
+/** AI 批改效率总览:GET 请求,form 风格 query */
+export const getAiCorrectionOverview = (params: {
+ classId: string | number;
+ subjectIds?: number[];
+ startTime?: string;
+ endTime?: string;
+ schoolId?: string;
+}) => {
+ const formEncode = (v: string) => encodeURIComponent(v).replace(/%20/g, '+');
+ const query: string[] = [];
+ query.push('classId=' + formEncode(String(params.classId)));
+ if (params.schoolId) {
+ query.push('schoolId=' + formEncode(String(params.schoolId)));
+ }
+ if (params.subjectIds && params.subjectIds.length > 0) {
+ params.subjectIds.forEach((id) => {
+ query.push('subjectIds=' + formEncode(String(id)));
+ });
+ }
+ if (params.startTime != null && params.startTime !== '' && String(params.startTime).trim() !== '') {
+ const st = String(params.startTime).trim();
+ query.push('startTime=' + formEncode(st.includes(' ') ? st : st + ' 00:00:00'));
+ }
+ if (params.endTime != null && params.endTime !== '' && String(params.endTime).trim() !== '') {
+ const et = String(params.endTime).trim();
+ query.push('endTime=' + formEncode(et.includes(' ') ? et : et + ' 23:59:59'));
+ }
+ return request({
+ url: '/school/report/aiCorrectionEfficiency/overview?' + query.join('&'),
+ method: 'GET',
+ });
+};
+
/** 班级作业报表:GET 请求,参数以 form 表单风格放在 query(subjectIds 为多个同名参数) */
export const getClassHomeworkReport = (params: {
classId: string | number;
diff --git a/src/pages/teacher/homework/filter.vue b/src/pages/teacher/homework/filter.vue
index 36125a1..de38138 100644
--- a/src/pages/teacher/homework/filter.vue
+++ b/src/pages/teacher/homework/filter.vue
@@ -103,7 +103,7 @@ import { getClassListByTeacher, getSubjectListByClassId } from '@/api/teacher';
import { teacher } from '@/store/teacher';
import { storeToRefs } from 'pinia';
const teacherStore = teacher();
-const { schoolId } = storeToRefs(teacherStore);
+const { schoolId, teacherInfo } = storeToRefs(teacherStore);
// 胶囊预留 + 安全区域
const topPaddingRightRpx = ref(0);
@@ -167,12 +167,20 @@ watch(() => selectedClassId.value, async (newClassId) => {
// 适配接口返回格式
if (Array.isArray(data)) {
subjectList.value = data.map((item: any) => ({
- value: item.subjectId ?? item.id ?? item.value,
+ value: Number(item.subjectId ?? item.id ?? item.value),
label: item.subjectName ?? item.name ?? item.label ?? '',
}));
} else {
subjectList.value = [];
}
+ // 根据 getLoginUser 返回的 subjectId 默认选中对应学科
+ const teacherSubjectId = teacherInfo.value?.subjectId;
+ if (teacherSubjectId != null && teacherSubjectId !== '') {
+ const tid = Number(teacherSubjectId);
+ if (!isNaN(tid) && subjectList.value.some((s) => s.value === tid)) {
+ selectedSubjectIds.value = [tid];
+ }
+ }
} catch (e) {
console.error('获取学科列表失败', e);
subjectList.value = [];
diff --git a/src/pages/teacher/index/index.vue b/src/pages/teacher/index/index.vue
index 5212a7c..5f5a91b 100644
--- a/src/pages/teacher/index/index.vue
+++ b/src/pages/teacher/index/index.vue
@@ -1,92 +1,235 @@
-
-
-
-
-