Pārlūkot izejas kodu

feat: 评卷参数设置

zhangjie 2 mēneši atpakaļ
vecāks
revīzija
7ea6ed35ff

+ 7 - 0
src/modules/mark/api.js

@@ -97,6 +97,13 @@ export const markManageListExport = (datas) => {
     responseType: "blob",
   });
 };
+
+// 评卷管理导出AI统计数据
+export const markManageAiStatsExport = (datas) => {
+  return $postParam("/api/admin/mark/manage/ai_stats/export", datas, {
+    responseType: "blob",
+  });
+};
 export const markManageItemFinish = (datas) => {
   return $postParam("/api/admin/mark/paper/finish", datas);
 };

+ 19 - 0
src/modules/mark/components/markDetail/MarkDetailProgress.vue

@@ -300,6 +300,16 @@ export default {
       this.openClassMark = res.classMark;
     },
     async handleAiStatusUpdate(row) {
+      const actionName = row.aiStatus === "ENABLE" ? "终止" : "开启";
+      const confirm = await this.$confirm(
+        `确定要${actionName}AI智能评卷任务?`,
+        "提示",
+        {
+          type: "warning",
+        }
+      ).catch(() => {});
+      if (confirm !== "confirm") return;
+
       try {
         await markProgressQuestionAiStatusUpdate({
           examId: this.baseInfo.examId,
@@ -314,6 +324,15 @@ export default {
       }
     },
     async handleAiReset(row) {
+      const confirm = await this.$confirm(
+        "确定要重置AI智能评卷任务?",
+        "提示",
+        {
+          type: "warning",
+        }
+      ).catch(() => {});
+      if (confirm !== "confirm") return;
+
       try {
         await markProgressQuestionAiReset({
           examId: this.baseInfo.examId,

+ 1 - 1
src/modules/mark/components/markDetail/MarkDetailTask.vue

@@ -166,7 +166,7 @@
             <el-button
               v-if="checkPrivilege('link', 'MarkTaskReject')"
               class="btn-primary"
-              :disabled="scope.row.status !== 'MARKED'"
+              :disabled="scope.row.status !== 'MARKED' || scope.row.aiMark"
               type="text"
               @click="toReject(scope.row)"
               >打回</el-button

+ 25 - 0
src/modules/mark/views/MarkManage.vue

@@ -57,6 +57,14 @@
           >
             结束评卷
           </el-button>
+          <el-button
+            v-if="checkPrivilege('button', 'ExportAI')"
+            type="primary"
+            icon="el-icon-download"
+            @click="toExportAIStats"
+          >
+            AI智能评卷统计
+          </el-button>
         </div>
       </div>
     </div>
@@ -193,6 +201,7 @@ import {
   markManageListPage,
   markManageItemFinish,
   markManageListExport,
+  markManageAiStatsExport,
 } from "../api";
 import { downloadByApi } from "@/plugins/download";
 import MarkDetail from "../components/markDetail/MarkDetail.vue";
@@ -270,6 +279,22 @@ export default {
       if (!res) return;
       this.$message.success("下载成功!");
     },
+    async toExportAIStats() {
+      if (this.downloading) return;
+      this.downloading = true;
+
+      const res = await downloadByApi(() => {
+        return markManageAiStatsExport({
+          ...this.filter,
+        });
+      }).catch((e) => {
+        this.$message.error(e || "下载失败,请重新尝试!");
+      });
+      this.downloading = false;
+
+      if (!res) return;
+      this.$message.success("下载成功!");
+    },
     toDetail(row) {
       this.curRow = row;
       this.$refs.MarkDetail.open();