zhangjie 7 月之前
父節點
當前提交
38095f3397

+ 13 - 10
src/assets/styles/pages.scss

@@ -364,15 +364,6 @@
   }
   }
 }
 }
 
 
-// page-preview
-.preview-frame {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  z-index: 99;
-}
 // label-edit
 // label-edit
 .label-edit {
 .label-edit {
   min-height: 60px;
   min-height: 60px;
@@ -899,7 +890,8 @@
     box-shadow: 0px 3px 3px 1px #eff0f5;
     box-shadow: 0px 3px 3px 1px #eff0f5;
   }
   }
   .el-dialog__body {
   .el-dialog__body {
-    padding-top: 55px !important;
+    padding: 51px 0 0 0 !important;
+    position: relative;
   }
   }
 
 
   .el-dialog__footer {
   .el-dialog__footer {
@@ -908,6 +900,17 @@
   .card-preview {
   .card-preview {
     padding: 0;
     padding: 0;
   }
   }
+
+  // page-preview
+  .preview-frame {
+    position: absolute;
+    top: 55px;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    z-index: 9;
+    overflow: hidden;
+  }
 }
 }
 // @media print {
 // @media print {
 //   .card-preview-dialog {
 //   .card-preview-dialog {

+ 29 - 6
src/modules/base/components/ModifyExamStudent.vue

@@ -34,6 +34,7 @@
           placeholder="考试"
           placeholder="考试"
           :disabled="isEdit"
           :disabled="isEdit"
           class="width-full"
           class="width-full"
+          @change="examChange"
         ></exam-select>
         ></exam-select>
       </el-form-item>
       </el-form-item>
       <el-form-item
       <el-form-item
@@ -195,6 +196,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
+import { deepCopy } from "@/plugins/utils";
 import { updateExamStudent, examRuleDetail, courseQuery } from "../api";
 import { updateExamStudent, examRuleDetail, courseQuery } from "../api";
 import OneDateTimeRange from "@/components/OneDateTimeRange.vue";
 import OneDateTimeRange from "@/components/OneDateTimeRange.vue";
 
 
@@ -295,13 +297,16 @@ export default {
             required: true,
             required: true,
             validator: (rule, value, callback) => {
             validator: (rule, value, callback) => {
               if (
               if (
-                !this.modalForm.examStartTime ||
-                !this.modalForm.examEndTime
+                rule.required &&
+                (!this.modalForm.examStartTime || !this.modalForm.examEndTime)
               ) {
               ) {
                 return callback(new Error("请选择考试时间"));
                 return callback(new Error("请选择考试时间"));
               }
               }
 
 
-              if (this.modalForm.examStartTime >= this.modalForm.examEndTime) {
+              if (
+                (this.modalForm.examStartTime || this.modalForm.examEndTime) &&
+                this.modalForm.examStartTime >= this.modalForm.examEndTime
+              ) {
                 return callback(new Error("开始时间要早于结束时间"));
                 return callback(new Error("开始时间要早于结束时间"));
               }
               }
 
 
@@ -388,6 +393,7 @@ export default {
       optionalFields: [],
       optionalFields: [],
       extendFields: [],
       extendFields: [],
       courseList: [],
       courseList: [],
+      curExam: null,
     };
     };
   },
   },
   methods: {
   methods: {
@@ -458,11 +464,17 @@ export default {
 
 
       this.courseList = res.basicCourseList || [];
       this.courseList = res.basicCourseList || [];
     },
     },
+    examChange(val) {
+      this.curExam = val || null;
+      this.updateRules();
+      this.$nextTick(() => {
+        this.$refs.modalFormComp.clearValidate();
+      });
+    },
     updateRules() {
     updateRules() {
-      // const paperNumberRequired = this.curExam.examModel === "MODEL4";
-      const rules = { ...this.requiredRules };
+      const nrules = { ...this.requiredRules };
       [...this.optionalFields, ...this.extendFields].forEach((item) => {
       [...this.optionalFields, ...this.extendFields].forEach((item) => {
-        rules[item.code] = [
+        nrules[item.code] = [
           // {
           // {
           //   required: false,
           //   required: false,
           //   message: `请输入${item.name}`,
           //   message: `请输入${item.name}`,
@@ -475,6 +487,17 @@ export default {
           },
           },
         ];
         ];
       });
       });
+
+      const rules = deepCopy(nrules);
+      if (this.curExam?.examModel === "MODEL4") {
+        const unRequireFields = ["examStartTime", "examRoom", "collegeName"];
+        Object.keys(rules)
+          .filter((k) => unRequireFields.includes(k))
+          .forEach((k) => {
+            rules[k][0].required = false;
+          });
+        rules.paperNumber[0].required = true;
+      }
       this.rules = rules;
       this.rules = rules;
     },
     },
     cancel() {
     cancel() {

+ 7 - 11
src/modules/base/views/CardManage.vue

@@ -157,17 +157,6 @@
               @click="toPreviewImage(scope.row)"
               @click="toPreviewImage(scope.row)"
               >预览图片</el-button
               >预览图片</el-button
             >
             >
-            <el-button
-              v-if="
-                checkPrivilege('link', 'delete') &&
-                scope.row.type !== 'CUSTOM' &&
-                !scope.row.used
-              "
-              class="btn-danger"
-              type="text"
-              @click="toDelete(scope.row)"
-              >删除</el-button
-            >
             <el-button
             <el-button
               v-if="
               v-if="
                 checkPrivilege('link', 'edit') &&
                 checkPrivilege('link', 'edit') &&
@@ -203,6 +192,13 @@
               @click="toEnable(scope.row)"
               @click="toEnable(scope.row)"
               >{{ scope.row.enable ? "禁用" : "启用" }}</el-button
               >{{ scope.row.enable ? "禁用" : "启用" }}</el-button
             >
             >
+            <el-button
+              v-if="checkPrivilege('link', 'delete')"
+              class="btn-danger"
+              type="text"
+              @click="toDelete(scope.row)"
+              >删除</el-button
+            >
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>

+ 1 - 1
src/modules/exam/components/createExamAndPrintTask/InfoExamTask.vue

@@ -85,7 +85,7 @@
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
         </el-row>
         </el-row>
-        <el-row>
+        <el-row v-if="checkPrivilege('button', 'OpenAb', 'TaskApplyManage')">
           <el-col :span="12">
           <el-col :span="12">
             <el-form-item label="启用AB卷:">
             <el-form-item label="启用AB卷:">
               <el-switch
               <el-switch

+ 1 - 1
src/modules/exam/components/taskApply/TaskPaper.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <div>
   <div>
-    <el-form>
+    <el-form v-if="checkPrivilege('button', 'OpenAb', 'TaskApplyManage')">
       <el-form-item label="启用AB卷:">
       <el-form-item label="启用AB卷:">
         <el-switch
         <el-switch
           v-model="openAb"
           v-model="openAb"

+ 15 - 11
src/modules/exam/views/TaskPaperManage.vue

@@ -84,11 +84,9 @@
           label="开课学院"
           label="开课学院"
           min-width="160"
           min-width="160"
         ></el-table-column>
         ></el-table-column>
-        <el-table-column
-          prop="paperType"
-          label="卷型"
-          width="80"
-        ></el-table-column>
+        <el-table-column prop="paperType" label="备用卷" width="80">
+          <span slot-scope="scope">卷{{ scope.row.paperType }}</span>
+        </el-table-column>
         <el-table-column prop="userName" label="命题老师" min-width="120">
         <el-table-column prop="userName" label="命题老师" min-width="120">
           <span slot-scope="scope"
           <span slot-scope="scope"
             >{{ scope.row.userName }}({{ scope.row.loginName }})</span
             >{{ scope.row.userName }}({{ scope.row.loginName }})</span
@@ -100,14 +98,20 @@
           }}</span>
           }}</span>
         </el-table-column>
         </el-table-column>
         <el-table-column prop="exposedPaperType" label="已曝光" width="80">
         <el-table-column prop="exposedPaperType" label="已曝光" width="80">
-          <span slot-scope="scope">{{
-            scope.row.exposedPaperType | defaultFieldFilter
-          }}</span>
+          <template slot-scope="scope">
+            <span v-if="scope.row.exposedPaperType"
+              >卷{{ scope.row.exposedPaperType }}</span
+            >
+            <span v-else>--</span>
+          </template>
         </el-table-column>
         </el-table-column>
         <el-table-column prop="unexposedPaperType" label="未曝光" width="80">
         <el-table-column prop="unexposedPaperType" label="未曝光" width="80">
-          <span slot-scope="scope">{{
-            scope.row.unexposedPaperType | defaultFieldFilter
-          }}</span>
+          <template slot-scope="scope">
+            <span v-if="scope.row.unexposedPaperType"
+              >卷{{ scope.row.unexposedPaperType }}</span
+            >
+            <span v-else>--</span>
+          </template>
         </el-table-column>
         </el-table-column>
         <el-table-column
         <el-table-column
           prop="examTaskDetailEnable"
           prop="examTaskDetailEnable"

+ 6 - 1
src/modules/exam/views/TaskReviewManage.vue

@@ -174,7 +174,12 @@
             {{ scope.row.createTime | timestampFilter }}
             {{ scope.row.createTime | timestampFilter }}
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column class-name="action-column" label="操作" width="80px">
+        <el-table-column
+          class-name="action-column"
+          label="操作"
+          width="80px"
+          fixed="right"
+        >
           <template slot-scope="scope">
           <template slot-scope="scope">
             <el-button
             <el-button
               v-if="AUDITED && checkPrivilege('link', 'reviewPreview')"
               v-if="AUDITED && checkPrivilege('link', 'reviewPreview')"

+ 5 - 1
src/modules/mark/components/markParam/MarkParamObjectiveAnswer.vue

@@ -199,7 +199,7 @@
       :download-handle="downloadHandle"
       :download-handle="downloadHandle"
       :download-filename="dfilename"
       :download-filename="dfilename"
       :auto-upload="false"
       :auto-upload="false"
-      @upload-success="initData"
+      @upload-success="importAnswerSuccess"
     ></import-file>
     ></import-file>
   </div>
   </div>
 </template>
 </template>
@@ -459,6 +459,10 @@ export default {
     toImport() {
     toImport() {
       this.$refs.ImportFile.open();
       this.$refs.ImportFile.open();
     },
     },
+    importAnswerSuccess() {
+      this.$message.success("导入成功!");
+      this.initData();
+    },
   },
   },
 };
 };
 </script>
 </script>