Pārlūkot izejas kodu

试题试卷审核相关

zhangjie 2 gadi atpakaļ
vecāks
revīzija
01c0f05f60

+ 9 - 1
src/modules/paper/components/AuditPaperApply.vue

@@ -109,7 +109,15 @@ export default {
       this.toPage(1);
     },
     toDetail(row) {
-      console.log(row);
+      window.open(
+        this.getRouterPath({
+          name: "EditPaper",
+          params: {
+            id: row.id,
+            parentView: "audit-paper",
+          },
+        })
+      );
     },
     async toWithdraw(row) {
       const confirm = await this.$confirm(`确定要撤销该试卷的提交吗?`, "提示", {

+ 9 - 1
src/modules/paper/components/AuditPaperAudited.vue

@@ -104,7 +104,15 @@ export default {
       this.toPage(1);
     },
     toDetail(row) {
-      console.log(row);
+      window.open(
+        this.getRouterPath({
+          name: "EditPaper",
+          params: {
+            id: row.id,
+            parentView: "audit-paper",
+          },
+        })
+      );
     },
   },
 };

+ 11 - 3
src/modules/paper/components/AuditPaperUnsubmit.vue

@@ -35,7 +35,7 @@
                 size="mini"
                 type="primary"
                 plain
-                @click="toDetail(scope.row)"
+                @click="toEdit(scope.row)"
                 >编辑</el-button
               >
               <el-button
@@ -104,8 +104,16 @@ export default {
       this.pageSize = val;
       this.toPage(1);
     },
-    toDetail(row) {
-      console.log(row);
+    toEdit(row) {
+      window.open(
+        this.getRouterPath({
+          name: "EditPaper",
+          params: {
+            id: row.id,
+            parentView: "audit-paper",
+          },
+        })
+      );
     },
     async toSubmit(row) {
       const confirm = await this.$confirm(`确定要提交该试卷吗?`, "提示", {

+ 9 - 1
src/modules/paper/components/AuditPaperWait.vue

@@ -140,7 +140,15 @@ export default {
       this.toPage(1);
     },
     toDetail(row) {
-      console.log(row);
+      window.open(
+        this.getRouterPath({
+          name: "EditPaper",
+          params: {
+            id: row.id,
+            parentView: "audit-paper",
+          },
+        })
+      );
     },
     toAudit(auditResult, paperId) {
       this.curAuditInfo = { auditResult, paperIds: [paperId] };

+ 14 - 0
src/modules/question/api.js

@@ -212,6 +212,20 @@ export const auditQuestionApi = (datas) => {
     }
   );
 };
+export const withdrawQuestionApi = (questionIds) => {
+  return $httpWithMsg.post(
+    `${QUESTION_API}/question/withdraw`,
+    {},
+    { params: { questionIds } }
+  );
+};
+export const submitQuestionApi = (questionIds) => {
+  return $httpWithMsg.post(
+    `${QUESTION_API}/question/submit`,
+    {},
+    { params: { questionIds } }
+  );
+};
 
 // question/security_settings
 export const questionSecuritySettingsApi = (datas) => {

+ 28 - 2
src/modules/question/components/AuditQuestionApply.vue

@@ -54,6 +54,13 @@
                 @click="toDetail(scope.row)"
                 >详情</el-button
               >
+              <el-button
+                size="mini"
+                type="primary"
+                plain
+                @click="toWithdraw(scope.row)"
+                >撤回</el-button
+              >
             </div>
           </template>
         </el-table-column>
@@ -71,14 +78,22 @@
         </el-pagination>
       </div>
     </div>
+
+    <!-- QuestionPreviewDialog -->
+    <question-preview-dialog
+      ref="QuestionPreviewDialog"
+      :question="curQuestion"
+    ></question-preview-dialog>
   </div>
 </template>
 
 <script>
-import { auditQuestionApplyPageListApi } from "../api";
+import { auditQuestionApplyPageListApi, withdrawQuestionApi } from "../api";
+import QuestionPreviewDialog from "../components/QuestionPreviewDialog.vue";
 
 export default {
   name: "AuditQuestionApply",
+  components: { QuestionPreviewDialog },
   data() {
     return {
       filter: { auditStatus: "", name: "" },
@@ -87,6 +102,7 @@ export default {
       pageSize: 10,
       total: 0,
       loading: false,
+      curQuestion: {},
     };
   },
   mounted() {
@@ -114,7 +130,17 @@ export default {
       this.toPage(1);
     },
     toDetail(row) {
-      console.log(row);
+      this.curQuestion = row;
+      this.$refs.QuestionPreviewDialog.open();
+    },
+    async toWithdraw(row) {
+      const confirm = await this.$confirm(`确定要撤销该试题的提交吗?`, "提示", {
+        type: "warning",
+      }).catch(() => {});
+      if (confirm !== "confirm") return;
+
+      await withdrawQuestionApi([row.id]);
+      this.$message.success("操作成功!");
     },
   },
 };

+ 10 - 1
src/modules/question/components/AuditQuestionAudited.vue

@@ -72,14 +72,22 @@
         </el-pagination>
       </div>
     </div>
+
+    <!-- QuestionPreviewDialog -->
+    <question-preview-dialog
+      ref="QuestionPreviewDialog"
+      :question="curQuestion"
+    ></question-preview-dialog>
   </div>
 </template>
 
 <script>
 import { auditQuestionAuditedPageListApi } from "../api";
+import QuestionPreviewDialog from "../components/QuestionPreviewDialog.vue";
 
 export default {
   name: "AuditQuestionAudited",
+  components: { QuestionPreviewDialog },
   data() {
     return {
       filter: { creatorName: "", name: "" },
@@ -115,7 +123,8 @@ export default {
       this.toPage(1);
     },
     toDetail(row) {
-      console.log(row);
+      this.curQuestion = row;
+      this.$refs.QuestionPreviewDialog.open();
     },
   },
 };

+ 47 - 5
src/modules/question/components/AuditQuestionUnsubmit.vue

@@ -48,8 +48,15 @@
                 size="mini"
                 type="primary"
                 plain
-                @click="toDetail(scope.row)"
-                >详情</el-button
+                @click="toEdit(scope.row)"
+                >编辑</el-button
+              >
+              <el-button
+                size="mini"
+                type="primary"
+                plain
+                @click="toSubmit(scope.row)"
+                >提交</el-button
               >
             </div>
           </template>
@@ -68,14 +75,23 @@
         </el-pagination>
       </div>
     </div>
+
+    <!-- QuestionEditDialog -->
+    <question-edit-dialog
+      ref="QuestionEditDialog"
+      :question="curQuestion"
+      @modified="getList"
+    ></question-edit-dialog>
   </div>
 </template>
 
 <script>
-import { auditQuestionsUnsubmitPageListApi } from "../api";
+import { auditQuestionsUnsubmitPageListApi, submitQuestionApi } from "../api";
+import QuestionEditDialog from "../components/QuestionEditDialog.vue";
 
 export default {
   name: "AuditQuestionUnsubmit",
+  components: { QuestionEditDialog },
   data() {
     return {
       filter: { creatorName: "", name: "" },
@@ -84,6 +100,7 @@ export default {
       pageSize: 10,
       total: 0,
       loading: false,
+      curQuestion: {},
     };
   },
   mounted() {
@@ -110,8 +127,33 @@ export default {
       this.pageSize = val;
       this.toPage(1);
     },
-    toDetail(row) {
-      console.log(row);
+    toEdit(row) {
+      const courseInfo = {
+        courseId: row.course.id,
+        courseCode: row.course.code,
+        courseName: row.course.name,
+      };
+      let curQuestion = {
+        ...row,
+        ...courseInfo,
+      };
+      if (curQuestion.subQuestions && curQuestion.subQuestions.length) {
+        curQuestion.subQuestions = curQuestion.subQuestions.map((q) => {
+          return { ...q, ...courseInfo };
+        });
+      }
+      this.curQuestion = curQuestion;
+
+      this.$refs.QuestionEditDialog.open();
+    },
+    async toSubmit(row) {
+      const confirm = await this.$confirm(`确定要提交该试题吗?`, "提示", {
+        type: "warning",
+      }).catch(() => {});
+      if (confirm !== "confirm") return;
+
+      await submitQuestionApi([row.id]);
+      this.$message.success("操作成功!");
     },
   },
 };

+ 11 - 2
src/modules/question/components/AuditQuestionWait.vue

@@ -102,16 +102,23 @@
       :info="curAuditInfo"
       @modified="getList"
     ></audit-question-dialog>
+
+    <!-- QuestionPreviewDialog -->
+    <question-preview-dialog
+      ref="QuestionPreviewDialog"
+      :question="curQuestion"
+    ></question-preview-dialog>
   </div>
 </template>
 
 <script>
+import QuestionPreviewDialog from "../components/QuestionPreviewDialog.vue";
 import AuditQuestionDialog from "./AuditQuestionDialog.vue";
 import { auditQuestionWaitPageListApi } from "../api";
 
 export default {
   name: "AuditQuestionWait",
-  components: { AuditQuestionDialog },
+  components: { AuditQuestionDialog, QuestionPreviewDialog },
   data() {
     return {
       filter: { creatorName: "", name: "" },
@@ -124,6 +131,7 @@ export default {
         auditResult: "",
       },
       loading: false,
+      curQuestion: {},
     };
   },
   mounted() {
@@ -151,7 +159,8 @@ export default {
       this.toPage(1);
     },
     toDetail(row) {
-      console.log(row);
+      this.curQuestion = row;
+      this.$refs.QuestionPreviewDialog.open();
     },
     toAudit(auditResult, questionId) {
       this.curAuditInfo = { auditResult, questionIds: [questionId] };

+ 4 - 1
src/modules/questions/routes/routes.js

@@ -17,7 +17,8 @@ import Question from "../views/Question.vue";
 import EditSelectQuestion from "../views/EditSelectQuestion.vue";
 import EditOtherQuestion from "../views/EditOtherQuestion.vue";
 import InsertPaperTitle from "../views/InsertPaperTitle.vue";
-import EditPaper from "../views/EditPaper.vue";
+// import EditPaper from "../views/EditPaper.vue";
+import EditPaper from "../../paper/views/EditPaper.vue";
 import PreviewPaper from "../views/PreviewPaper.vue";
 import SelectQuestion from "../views/SelectQuestion.vue";
 import Tips from "../../portal/views/tips/Tips.vue";
@@ -200,6 +201,7 @@ export const menuRoutes = [
 export const otherRoutes = [
   {
     path: "/edit_paper/:id/:parentView", //试卷编辑
+    name: "EditPaper",
     component: EditPaper,
   },
   {
@@ -216,6 +218,7 @@ export const otherRoutes = [
   },
   {
     path: "/view_paper/:id", //试卷查看
+    name: "ViewPaper",
     component: ViewPaper,
   },
 ];