zhangjie 5 年之前
父节点
当前提交
335256770c

+ 7 - 1
src/modules/card/components/SavePage.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-button type="primary" @click="save" :disabled="!pages.length"
+  <el-button type="primary" @click="save" :disabled="disabled || !pages.length"
     >暂存</el-button
   >
 </template>
@@ -20,6 +20,12 @@ const initIndex = {
 
 export default {
   name: "save-page",
+  props: {
+    disabled: {
+      type: Boolean,
+      default: false
+    }
+  },
   data() {
     return {
       fillAreaIndex: {

+ 11 - 3
src/modules/card/views/CardDesign.vue

@@ -26,7 +26,11 @@
               :disabled="!pages.length"
               >预览</el-button
             >
-            <save-page @confirm="toSave" ref="SavePage"></save-page>
+            <save-page
+              @confirm="toSave"
+              :disabled="!canSave"
+              ref="SavePage"
+            ></save-page>
             <el-button type="primary" @click="toSubmit">提交</el-button>
           </div>
           <div class="control-left">
@@ -308,7 +312,8 @@ export default {
       TOPIC_LIST,
       steps: ["添加标题", "基本设置", "试题配置", "设置阅卷参数", "预览生成"],
       columnWidth: 0,
-      cardPreviewUrl: ""
+      cardPreviewUrl: "",
+      canSave: true
     };
   },
   computed: {
@@ -360,6 +365,7 @@ export default {
     async getCardTempDetail() {
       const detData = await cardDetailEdit(this.cardId);
       const tempData = await cardTempDetail(this.cardId);
+      this.canSave = !detData.operateStatus;
       this.prepareTcPCard = Object.assign(this.prepareTcPCard, detData);
 
       // 可能存在题卡内容没有记录的情况
@@ -541,8 +547,9 @@ export default {
       })
         .then(async () => {
           const result = await this.save();
-          if (result)
+          if (result) {
             this.cardPreviewUrl = `/#/card/preview/${this.cardId}/frame`;
+          }
         })
         .catch(() => {});
     },
@@ -553,6 +560,7 @@ export default {
         ).catch(() => {});
         this.cardPreviewUrl = "";
         if (result) {
+          this.canSave = false;
           this.$message.success("提交成功!");
         } else {
           this.$message.error("提交失败,请重新尝试!");

+ 3 - 0
src/modules/exam-center/api.js

@@ -83,6 +83,9 @@ export const copyCard = cardId => {
 export const deleteCard = cardId => {
   return $post("/api/print/card/card/delete", { cardId });
 };
+export const changeOperateStatus = cardId => {
+  return $post("/api/print/card/card/changeOperateStatus", { cardId });
+};
 export const courseByUser = () => {
   return $get("/api/print/card/card/listCourseByUserId", {});
 };

+ 11 - 2
src/modules/exam-center/views/CardManage.vue

@@ -132,7 +132,13 @@
 
 <script>
 import { AUDITING_STATUS } from "@/constants/enumerate";
-import { cardListPage, copyCard, deleteCard, changeCardStatus } from "../api";
+import {
+  cardListPage,
+  copyCard,
+  deleteCard,
+  changeCardStatus,
+  changeOperateStatus
+} from "../api";
 import CardOptionDialog from "../components/CardOptionDialog";
 
 export default {
@@ -185,7 +191,10 @@ export default {
         name: "CardDesign"
       });
     },
-    toEdit(row) {
+    async toEdit(row) {
+      const result = await changeOperateStatus(row.id).catch(() => {});
+      if (!result) return;
+
       this.$router.push({
         name: "CardDesign",
         params: {