Explorar o código

feat: 接口调试

zhangjie hai 3 meses
pai
achega
88b5bb910e

+ 1 - 1
src/modules/exam/components/WaitTaskMark.vue

@@ -25,7 +25,7 @@
           show-overflow-tooltip
         ></el-table-column>
         <el-table-column
-          prop="groupQuestions"
+          prop="questionNumber"
           label="评阅题目"
           width="115"
           show-overflow-tooltip

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

@@ -36,8 +36,9 @@ export const markSubjectiveList = (datas) => {
 export const markSubjectiveBindMarker = (datas) => {
   return $post("/api/admin/mark/marker/add", datas);
 };
-export const markSubjectiveUnbindMarker = (markUserQuestionId) => {
-  return $postParam("/api/admin/mark/marker/delete", { markUserQuestionId });
+// 和 markMarkerUnbind 地址 一样
+export const markSubjectiveUnbindMarker = (datas) => {
+  return $postParam("/api/admin/mark/marker/delete", datas);
 };
 export const markSubjectiveUpdateMarkType = (datas) => {
   return $post("/api/admin/mark/question/subjective/double/mark/update", datas);
@@ -99,10 +100,10 @@ export const markManageItemFinish = (datas) => {
 // mark detail
 // mark-detail-progress
 export const markProgressSummary = (datas) => {
-  return $postParam("/api/admin/mark/group/summary", datas);
+  return $postParam("/api/admin/mark/question/subjective/summary", datas);
 };
 export const markProgressClassListPage = (datas) => {
-  return $postParam("/api/admin/mark/group/class/summary", datas);
+  return $postParam("/api/admin/mark/question/subjective/class/summary", datas);
 };
 export const markProgressMarkerExport = (datas) => {
   return $postParam("/api/admin/mark/setting/export_marker", datas, {
@@ -111,14 +112,14 @@ export const markProgressMarkerExport = (datas) => {
 };
 // mark-detail-progress-detail
 export const markProgressClassQuestionListPage = (datas) => {
-  return $postParam("/api/admin/mark/group/class/question/list", datas);
+  return $postParam("/api/admin/mark/question/class/question/list", datas);
 };
 // mark-detail-marker
 export const markMarkerListPage = (datas) => {
   return $postParam("/api/admin/mark/marker/list", datas);
 };
 export const markMarkerBind = (datas) => {
-  return $postParam("/api/admin/mark/marker/add", datas);
+  return $post("/api/admin/mark/marker/add", datas);
 };
 export const markMarkerBindList = (datas) => {
   return $postParam("/api/admin/mark/marker/list_bind_marker", datas);
@@ -154,7 +155,7 @@ export const markQualityChart = (datas) => {
   return $postParam("/api/admin/mark/quality/chart", datas);
 };
 export const markGroupQuestions = (datas) => {
-  return $postParam("/api/admin/mark/group/list/groupQuestions", datas);
+  return $postParam("/api/admin/mark/question/subjective/number/list", datas);
 };
 // mark-detail-issue
 export const markIssueListPage = (datas) => {

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

@@ -13,7 +13,7 @@
   >
     <el-table :data="dataList">
       <el-table-column
-        prop="groupQuestions"
+        prop="questionNumber"
         label="评阅题目"
         width="120"
       ></el-table-column>

+ 4 - 4
src/modules/mark/components/markDetail/DangerTipsDialog.vue

@@ -62,7 +62,7 @@ export default {
       type: String,
       default: "reset",
     },
-    groupIds: {
+    questionIds: {
       type: Array,
       default() {
         return [];
@@ -135,19 +135,19 @@ export default {
       let err = null;
       if (this.type === "reset") {
         await markMarkerReset({
-          markUserGroupId: this.rowData.markUserGroupId,
+          markUserQuestionId: this.rowData.markUserQuestionId,
         }).catch(() => {
           err = true;
         });
       } else if (this.type === "unbind") {
         await markMarkerUnbind({
-          markUserGroupId: this.rowData.markUserGroupId,
+          markUserQuestionId: this.rowData.markUserQuestionId,
         }).catch(() => {
           err = true;
         });
       } else {
         await markMarkerRecycle({
-          markUserGroupIds: this.groupIds,
+          markUserQuestionIds: this.questionIds,
         }).catch(() => {
           err = true;
         });

+ 14 - 18
src/modules/mark/components/markDetail/MarkDetailArbitration.vue

@@ -4,15 +4,15 @@
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <el-form-item label="评阅题目">
           <el-select
-            v-model="filter.groupNumber"
+            v-model="filter.questionId"
             placeholder="评阅题目"
             clearable
           >
             <el-option
               v-for="group in questions"
-              :key="group.groupNumber"
-              :value="group.groupNumber"
-              :label="group.groupQuestions"
+              :key="group.questionId"
+              :value="group.questionId"
+              :label="group.questionNumber"
             ></el-option>
           </el-select>
         </el-form-item>
@@ -62,7 +62,7 @@
           width="180"
         ></el-table-column>
         <el-table-column
-          prop="groupQuestions"
+          prop="questionNumber"
           label="评阅题目"
           width="120"
         ></el-table-column>
@@ -138,7 +138,7 @@ export default {
   data() {
     return {
       filter: {
-        groupNumber: "",
+        questionId: "",
         type: "WAITING",
       },
       current: 1,
@@ -150,8 +150,8 @@ export default {
     };
   },
   computed: {
-    selectGroupNumber() {
-      return this.multipleSelection[0]?.groupNumber;
+    selectQuestionId() {
+      return this.multipleSelection[0]?.questionId;
     },
     batchDoneDisabled() {
       if (!this.multipleSelection.length) return true;
@@ -159,10 +159,8 @@ export default {
     },
   },
   mounted() {
-    this.filter.className = this.$ls.get("preset-className", undefined);
-    this.filter.groupNumber = this.$ls.get("preset-groupNumber", "");
-    this.$ls.remove("preset-className");
-    this.$ls.remove("preset-groupNumber");
+    this.filter.questionId = this.$ls.get("preset-questionId", "");
+    this.$ls.remove("preset-questionId");
     this.getQuestions();
     this.toPage(1);
   },
@@ -194,9 +192,7 @@ export default {
       this.toPage(1);
     },
     rowSelectable(row) {
-      return (
-        !this.selectGroupNumber || this.selectGroupNumber === row.groupNumber
-      );
+      return !this.selectQuestionId || this.selectQuestionId === row.questionId;
     },
     handleSelectionChange(val) {
       this.multipleSelection = val;
@@ -206,7 +202,7 @@ export default {
         arbitrateId: row.id,
         // examId: row.examId,
         // paperNumber: row.paperNumber,
-        // groupNumber: row.groupNumber,
+        // questionId: row.questionId,
       });
     },
     toBatchDone() {
@@ -214,7 +210,7 @@ export default {
 
       if (
         this.multipleSelection.some(
-          (item) => item.groupNumber !== this.selectGroupNumber
+          (item) => item.questionId !== this.selectQuestionId
         )
       ) {
         this.$message.error("只能批量处理同一分组的数据");
@@ -224,7 +220,7 @@ export default {
       this.toMarkArbitrate({
         examId: this.baseInfo.examId,
         paperNumber: this.baseInfo.paperNumber,
-        groupNumber: this.selectGroupNumber,
+        questionId: this.selectQuestionId,
       });
     },
   },

+ 6 - 6
src/modules/mark/components/markDetail/MarkDetailIssue.vue

@@ -13,15 +13,15 @@
         </el-form-item>
         <el-form-item label="评阅题目">
           <el-select
-            v-model="filter.groupNumber"
+            v-model="filter.questionId"
             placeholder="评阅题目"
             clearable
           >
             <el-option
               v-for="group in questions"
-              :key="group.groupNumber"
-              :value="group.groupNumber"
-              :label="group.groupQuestions"
+              :key="group.questionId"
+              :value="group.questionId"
+              :label="group.questionNumber"
             ></el-option>
           </el-select>
         </el-form-item>
@@ -80,7 +80,7 @@
           width="100"
         ></el-table-column>
         <el-table-column
-          prop="groupQuestions"
+          prop="questionNumber"
           label="评阅题目"
           min-width="200"
         ></el-table-column>
@@ -185,7 +185,7 @@ export default {
     return {
       filter: {
         problemType: "",
-        groupNumber: "",
+        questionId: "",
         status: "",
         secretNumber: "",
       },

+ 41 - 30
src/modules/mark/components/markDetail/MarkDetailMarker.vue

@@ -4,15 +4,15 @@
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <el-form-item label="评阅题目">
           <el-select
-            v-model="filter.groupNumber"
+            v-model="filter.questionId"
             placeholder="评阅题目"
             clearable
           >
             <el-option
               v-for="group in questions"
-              :key="group.groupNumber"
-              :value="group.groupNumber"
-              :label="group.groupQuestions"
+              :key="group.questionId"
+              :value="group.questionId"
+              :label="group.questionNumber"
             ></el-option>
           </el-select>
         </el-form-item>
@@ -25,7 +25,7 @@
           </el-input>
         </el-form-item>
         <el-form-item label-width="0px">
-          <el-checkbox v-model="filter.showMarking"
+          <el-checkbox v-model="filter.marked"
             >仅显示当前评卷员记录
           </el-checkbox>
         </el-form-item>
@@ -67,16 +67,17 @@
           fixed="left"
           width="55"
           align="center"
+          :selectable="rowSelectableHandler"
         ></el-table-column>
         <el-table-column prop="loginName" label="评卷员" min-width="100">
           <template slot-scope="scope">
-            <el-tag size="medium" :type="scope.row.status === 1 ? '' : 'info'">
+            <el-tag size="medium" :type="scope.row.enable ? '' : 'info'">
               {{ scope.row.name }}({{ scope.row.loginName }})
             </el-tag>
           </template>
         </el-table-column>
         <el-table-column
-          prop="groupQuestions"
+          prop="questionNumber"
           label="评阅题目"
           width="120"
         ></el-table-column>
@@ -111,26 +112,31 @@
               >{{ scope.row.resetting ? "重置中" : "重置" }}</el-button
             >
             <el-button
-              v-if="checkPrivilege('link', 'MarkTaskMarkerDelete')"
+              v-if="
+                checkPrivilege('link', 'MarkTaskMarkerDelete') &&
+                scope.row.enable
+              "
               class="btn-danger"
               type="text"
               @click="toDangerAction('unbind', scope.row)"
               >解绑</el-button
             >
             <el-button
+              v-if="scope.row.enable"
               class="btn-danger"
               type="text"
               @click="
                 toDangerAction('recycle', scope.row, [
-                  scope.row.markUserGroupId,
+                  scope.row.markUserQuestionId,
                 ])
               "
               >回收</el-button
             >
             <el-button
+              v-if="scope.row.enable"
               class="btn-primary"
               type="text"
-              @click="toSetTaskCount([scope.row.markUserGroupId], scope.row)"
+              @click="toSetTaskCount([scope.row.markUserQuestionId], scope.row)"
               >设置评卷数</el-button
             >
           </template>
@@ -176,8 +182,9 @@
     <danger-tips-dialog
       ref="DangerTipsDialog"
       :row-data="curRow"
-      :group-ids="curGroupIds"
+      :question-ids="curMarkUserQuestionIds"
       :type="curActionType"
+      @modified="getList"
     ></danger-tips-dialog>
   </div>
 </template>
@@ -209,9 +216,9 @@ export default {
   data() {
     return {
       filter: {
-        groupNumber: "",
+        questionId: "",
         loginName: "",
-        showMarking: false,
+        marked: false,
       },
       current: 1,
       size: this.GLOBAL.pageSize,
@@ -226,14 +233,12 @@ export default {
       userParams: {},
       // danger action
       curActionType: "",
-      curGroupIds: [],
+      curMarkUserQuestionIds: [],
     };
   },
   mounted() {
-    this.filter.className = this.$ls.get("preset-className", "");
-    this.filter.groupNumber = this.$ls.get("preset-groupNumber", "");
-    this.$ls.remove("preset-className");
-    this.$ls.remove("preset-groupNumber");
+    this.filter.questionId = this.$ls.get("preset-questionId", "");
+    this.$ls.remove("preset-questionId");
     this.getQuestions();
     this.toPage(1);
   },
@@ -265,10 +270,13 @@ export default {
       this.toPage(1);
     },
     handleSelectionChange(val) {
-      this.multipleSelection = val.map((item) => item.markUserGroupId);
+      this.multipleSelection = val.map((item) => item.markUserQuestionId);
+    },
+    rowSelectableHandler(row) {
+      return row.enable;
     },
     toBind() {
-      if (!this.filter.groupNumber) {
+      if (!this.filter.questionId) {
         this.$message.error("请选择评阅题目");
         return;
       }
@@ -276,22 +284,25 @@ export default {
       this.curData = {
         examId: this.baseInfo.examId,
         paperNumber: this.baseInfo.paperNumber,
-        groupNumber: this.filter.groupNumber,
+        questionId: this.filter.questionId,
       };
       this.$refs.ModifyMarkerBind.open();
     },
     async markerSelected(users) {
       if (!users.length) return;
-      const datas = { ...this.curData, userIds: users.map((item) => item.id) };
+      const datas = {
+        ...this.curData,
+        userIds: users.map((item) => item.id),
+      };
       const res = await markMarkerBind(datas).catch(() => {});
       if (!res) return;
       this.$message.success("绑定成功!");
       this.getList();
     },
     // to danger action
-    toDangerAction(type, curRow, groupIds = []) {
+    toDangerAction(type, curRow, markUserQuestionIds = []) {
       this.curRow = curRow;
-      this.curGroupIds = groupIds;
+      this.curMarkUserQuestionIds = markUserQuestionIds;
       this.curActionType = type;
       this.$refs.DangerTipsDialog.open();
     },
@@ -303,7 +314,7 @@ export default {
       if (confirm !== "confirm") return;
 
       await markMarkerReset({
-        markUserGroupId: row.markUserGroupId,
+        markUserQuestionId: row.markUserQuestionId,
       });
       this.$message.success("操作成功!");
       this.getList();
@@ -316,7 +327,7 @@ export default {
       if (confirm !== "confirm") return;
 
       await markMarkerUnbind({
-        markUserGroupId: row.markUserGroupId,
+        markUserQuestionId: row.markUserQuestionId,
       });
       this.$message.success("操作成功!");
       this.getList();
@@ -338,13 +349,13 @@ export default {
       }).catch(() => {});
       if (confirm !== "confirm") return;
 
-      this.toRecycle([row.markUserGroupId]);
+      this.toRecycle([row.markUserQuestionId]);
     },
-    async toRecycle(markUserGroupIds) {
-      if (!markUserGroupIds.length) return;
+    async toRecycle(markUserQuestionIds) {
+      if (!markUserQuestionIds.length) return;
 
       await markMarkerRecycle({
-        markUserGroupIds,
+        markUserQuestionIds,
       });
       this.$message.success("操作成功!");
       this.getList();

+ 3 - 3
src/modules/mark/components/markDetail/MarkDetailProgress.vue

@@ -137,7 +137,7 @@
       </div>
       <el-table ref="TableList" :data="questionList">
         <el-table-column
-          prop="groupQuestions"
+          prop="questionNumber"
           label="评阅题目"
           width="120"
         ></el-table-column>
@@ -284,12 +284,12 @@ export default {
     },
     toArbitrate(row) {
       if (row.className) this.$ls.set("preset-className", row.className);
-      this.$ls.set("preset-groupNumber", row.groupNumber);
+      this.$ls.set("preset-questionId", row.questionId);
       this.$emit("to-menu", "arbitration");
     },
     toMarker(row) {
       if (row.className) this.$ls.set("preset-className", row.className);
-      this.$ls.set("preset-groupNumber", row.groupNumber);
+      this.$ls.set("preset-questionId", row.questionId);
       this.$emit("to-menu", "marker");
     },
     async toExport() {

+ 11 - 11
src/modules/mark/components/markDetail/MarkDetailQuality.vue

@@ -4,15 +4,15 @@
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <el-form-item label="评阅题目">
           <el-select
-            v-model="filter.groupNumber"
+            v-model="filter.questionId"
             placeholder="评阅题目"
             clearable
           >
             <el-option
               v-for="group in questions"
-              :key="group.groupNumber"
-              :value="group.groupNumber"
-              :label="group.groupQuestions"
+              :key="group.questionId"
+              :value="group.questionId"
+              :label="group.questionNumber"
             ></el-option>
           </el-select>
         </el-form-item>
@@ -52,13 +52,13 @@
         ></el-table-column>
         <el-table-column prop="loginName" label="评卷员" min-width="100">
           <template slot-scope="scope">
-            <el-tag size="medium" type="info">
+            <el-tag size="medium">
               {{ scope.row.name }}({{ scope.row.loginName }})
             </el-tag>
           </template>
         </el-table-column>
         <el-table-column
-          prop="groupQuestions"
+          prop="questionNumber"
           label="评阅题目"
           width="120"
         ></el-table-column>
@@ -135,7 +135,7 @@ export default {
   data() {
     return {
       filter: {
-        groupNumber: "",
+        questionId: "",
         loginName: "",
       },
       current: 1,
@@ -179,7 +179,7 @@ export default {
       this.toPage(1);
     },
     handleSelectionChange(val) {
-      this.multipleSelection = val.map((item) => item.markUserGroupId);
+      this.multipleSelection = val.map((item) => item.markUserQuestionId);
     },
     async toReset(row) {
       const confirm = await this.$confirm("确定要重新计算吗?", "提示", {
@@ -190,20 +190,20 @@ export default {
       await markQualityUpdate({
         examId: this.baseInfo.examId,
         paperNumber: this.baseInfo.paperNumber,
-        groupNumber: this.filter.groupNumber || undefined,
+        questionId: this.filter.questionId || undefined,
       });
       this.$message.success("操作成功!");
       this.getList();
     },
     toViewLine() {
-      if (!this.filter.groupNumber) {
+      if (!this.filter.questionId) {
         this.$message.error("请先选择评阅题目");
         return;
       }
       this.chartData = {
         examId: this.baseInfo.examId,
         paperNumber: this.baseInfo.paperNumber,
-        groupNumber: this.filter.groupNumber,
+        questionId: this.filter.questionId,
       };
       this.$refs.QualityChartDialog.open();
     },

+ 6 - 6
src/modules/mark/components/markDetail/MarkDetailReject.vue

@@ -4,15 +4,15 @@
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <el-form-item label="评阅题目">
           <el-select
-            v-model="filter.groupNumber"
+            v-model="filter.questionId"
             placeholder="评阅题目"
             clearable
           >
             <el-option
               v-for="group in questions"
-              :key="group.groupNumber"
-              :value="group.groupNumber"
-              :label="group.groupQuestions"
+              :key="group.questionId"
+              :value="group.questionId"
+              :label="group.questionNumber"
             ></el-option>
           </el-select>
         </el-form-item>
@@ -55,7 +55,7 @@
           :index="indexMethod"
         ></el-table-column>
         <el-table-column
-          prop="groupQuestions"
+          prop="questionNumber"
           label="评阅题目"
           min-width="200"
         ></el-table-column>
@@ -154,7 +154,7 @@ export default {
   data() {
     return {
       filter: {
-        groupNumber: "",
+        questionId: "",
         loginName: "",
         studentCode: "",
         secretNumber: "",

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

@@ -4,15 +4,15 @@
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <el-form-item label="评阅题目">
           <el-select
-            v-model="filter.groupNumber"
+            v-model="filter.questionId"
             placeholder="评阅题目"
             clearable
           >
             <el-option
               v-for="group in questions"
-              :key="group.groupNumber"
-              :value="group.groupNumber"
-              :label="group.groupQuestions"
+              :key="group.questionId"
+              :value="group.questionId"
+              :label="group.questionNumber"
             ></el-option>
           </el-select>
         </el-form-item>
@@ -78,7 +78,7 @@
           :index="indexMethod"
         ></el-table-column>
         <el-table-column
-          prop="groupQuestions"
+          prop="questionNumber"
           label="评阅题目"
           width="120"
         ></el-table-column>
@@ -210,7 +210,7 @@ export default {
   data() {
     return {
       filter: {
-        groupNumber: "",
+        questionId: "",
         loginName: "",
         status: "",
         studentCode: "",
@@ -259,7 +259,7 @@ export default {
     toReject(row) {
       this.toMarkReject({
         taskId: row.id,
-        groupNumber: row.groupNumber,
+        questionId: row.questionId,
         paperNumber: row.paperNumber,
         studentCode: row.studentCode,
         studentName: row.studentName,

+ 11 - 7
src/modules/mark/components/markParam/MarkParamGroup.vue

@@ -282,15 +282,14 @@ export default {
     },
     toSetMarker(row) {
       this.curRow = row;
-      this.curRowQuestions = this.getCurrentQuestions(row);
       this.$refs.ModifyMarkMarker.open();
     },
     async markMarkerModified(row) {
       await markSubjectiveBindMarker({
         examId: this.basicInfo.examId,
         paperNumber: this.basicInfo.paperNumber,
-        questionIds: this.curRowQuestions.map((item) => item.id),
-        markers: row.markers,
+        questionId: row.id,
+        userIds: row.markers.map((item) => item.id),
       });
 
       this.curRowQuestions.forEach((item) => {
@@ -328,10 +327,15 @@ export default {
       const markers = row.markers.filter(
         (item) => item.markUserQuestionId !== marker.markUserQuestionId
       );
-      await markSubjectiveUnbindMarker(marker.markUserQuestionId);
-      this.updateSubjectiveTaskItem({
-        id: row.id,
-        markers,
+      await markSubjectiveUnbindMarker({
+        markUserQuestionId: marker.markUserQuestionId,
+      });
+      this.curRowQuestions = this.getCurrentQuestions(row);
+      this.curRowQuestions.forEach((item) => {
+        this.updateSubjectiveTaskItem({
+          id: item.id,
+          markers,
+        });
       });
     },
     toSetMarkType(row) {

+ 3 - 10
src/modules/mark/components/markParam/ModifyMarkParams.vue

@@ -189,12 +189,7 @@ export default {
     },
     initSteps() {
       this.steps = steps.map((step, index) => {
-        step.status =
-          index === this.curStepIndex
-            ? "process"
-            : index < this.curStepIndex
-            ? "success"
-            : "wait";
+        step.status = index <= this.curStepIndex ? "success" : "wait";
         step.disabled = step.status === "wait";
         return step;
       });
@@ -213,7 +208,7 @@ export default {
     },
     nextHandler(step = 1) {
       // 最后一步如何继续下一步就关闭窗口
-      if (this.isLastStep && this.curStep.status === "process") {
+      if (this.isLastStep) {
         this.close();
         return;
       }
@@ -221,9 +216,7 @@ export default {
       const nextStepIndex = this.curStepIndex + step;
       if (nextStepIndex > this.lastStep) return;
       this.steps[this.curStepIndex].status = "success";
-      if (this.steps[nextStepIndex].status === "wait") {
-        this.steps[this.curStepIndex].status = "process";
-      }
+      this.steps[nextStepIndex].status = "success";
       this.curStepIndex = nextStepIndex;
       this.steps.forEach((item) => {
         item.disabled = item.status === "wait";

+ 2 - 2
src/modules/mark/markMinxin.js

@@ -4,12 +4,12 @@ export default {
       this.$ls.set("mark", {
         examId: data.examId,
         paperNumber: data.paperNumber,
-        groupNumber: data.groupNumber,
+        questionId: data.questionId,
       });
       this.openPage("/mark/mark");
     },
     toMarkArbitrate(data) {
-      // paperNumber, groupNumber, examId, arbitrateId
+      // paperNumber, questionId, examId, arbitrateId
       this.$ls.set("arbitrate", data);
       this.openPage("/mark/arbitrate");
     },

+ 1 - 1
src/modules/mark/views/MarkEntrance.vue

@@ -45,7 +45,7 @@
           width="160"
         ></el-table-column>
         <el-table-column
-          prop="groupQuestions"
+          prop="questionNumber"
           label="评阅题目"
           min-width="200"
         ></el-table-column>