zhangjie hace 2 años
padre
commit
0328896fa1

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

@@ -877,7 +877,6 @@
   .total-info {
     text-align: right;
     padding-top: 10px;
-    padding-right: 210px;
     > span {
       color: $--color-danger;
       font-weight: 600;
@@ -893,6 +892,19 @@
     justify-content: space-between;
     margin-bottom: 10px;
   }
+  .answer-column {
+    padding: 1px;
+    .el-form-item {
+      margin: 12px 0;
+    }
+
+    .el-form-item__error {
+      padding-top: 0px;
+    }
+    .el-form-item__content {
+      line-height: 32px;
+    }
+  }
 }
 // modify-marker-question
 .modify-marker-question {

+ 17 - 76
src/modules/base/components/PrintPlanBatchPushDialog.vue

@@ -3,55 +3,26 @@
     class="print-plan-batch-push-dialog page-dialog"
     :visible.sync="modalIsShow"
     title="推送课程"
-    width="800px"
+    width="600px"
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     append-to-body
     @open="visibleChange"
   >
-    <div class="part-box part-box-filter part-box-flex">
-      <el-form ref="modalFormComp" :model="modalForm" :rules="rules" inline>
-        <el-form-item label="选择考试:">
-          <el-select
-            v-model="examType"
-            placeholder="请选择"
-            filterable
-            style="width: 100%"
-            @change="examTypeChange"
-          >
-            <el-option
-              v-for="item in examTypes"
-              :key="item.code"
-              :value="item.code"
-              :label="item.name"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item prop="thirdRelateId" v-if="examType === 'list'">
-          <el-select
-            v-model="modalForm.thirdRelateId"
-            placeholder="请选择"
-            filterable
-          >
-            <el-option
-              v-for="(item, index) in thirdRelateExams"
-              :key="index"
-              :value="item.examId"
-              :label="`${item.examId}-${item.examName}`"
-            >
-            </el-option>
-          </el-select>
-          <el-button type="primary" @click="refresh">刷新</el-button>
-        </el-form-item>
-        <el-form-item prop="thirdRelateName" v-if="examType === 'create'">
+    <div class="part-box part-box-pad">
+      <el-form
+        ref="modalFormComp"
+        :model="modalForm"
+        :rules="rules"
+        label-width="90px"
+      >
+        <el-form-item prop="thirdRelateName" label="考试名称:">
           <el-input
             v-model="modalForm.thirdRelateName"
             placeholder="请输入云阅卷考试名称"
-            clearable
           ></el-input>
         </el-form-item>
-        <el-form-item prop="examTime" v-if="examType === 'create'">
+        <el-form-item prop="examTime" label="考试时间:">
           <el-date-picker
             v-model="modalForm.examTime"
             type="datetime"
@@ -72,14 +43,9 @@
 </template>
 
 <script>
-import {
-  printPlanSyncStmms,
-  printPlanSyncRelateExamList,
-  printPlanRelateExamList,
-} from "../api";
+import { printPlanSyncStmms } from "../api";
 
 const initModalForm = {
-  thirdRelateId: "",
   thirdRelateName: "",
   list: [],
   examTime: null,
@@ -94,30 +60,13 @@ export default {
         return [];
       },
     },
-    orgCode: {
-      type: [String, Number],
-      default: "",
-    },
   },
   data() {
     return {
       modalIsShow: false,
       isSubmit: false,
       modalForm: { ...initModalForm },
-      examTypes: [
-        { code: "create", name: "云阅卷创建新的考试" },
-        { code: "list", name: "选择云阅卷存在考试" },
-      ],
-      examType: "list",
-      thirdRelateExams: [],
       rules: {
-        thirdRelateId: [
-          {
-            required: true,
-            message: "请选择云阅卷考试",
-            trigger: "change",
-          },
-        ],
         thirdRelateName: [
           {
             required: true,
@@ -143,23 +92,18 @@ export default {
   },
   methods: {
     initData() {
-      this.modalForm = { ...initModalForm };
-      this.modalForm.list = this.courses;
+      this.modalForm = {
+        thirdRelateName: `${this.courses[0].semesterName}-${this.courses[0].examName}`,
+        list: this.courses,
+        examTime: Date.now(),
+      };
+
       this.$nextTick(() => {
         this.$refs.modalFormComp.clearValidate();
       });
     },
     visibleChange() {
       this.initData();
-      this.getExams();
-    },
-    async getExams() {
-      const data = await printPlanRelateExamList({ orgCode: this.orgCode });
-      this.thirdRelateExams = data || [];
-    },
-    async refresh() {
-      const data = await printPlanSyncRelateExamList({ orgCode: this.orgCode });
-      this.thirdRelateExams = data || [];
     },
     cancel() {
       this.modalIsShow = false;
@@ -167,9 +111,6 @@ export default {
     open() {
       this.modalIsShow = true;
     },
-    examTypeChange() {
-      this.initData();
-    },
     async confirm() {
       const valid = await this.$refs.modalFormComp.validate().catch(() => {});
       if (!valid) return;

+ 19 - 4
src/modules/base/views/PrintPlanPushManage.vue

@@ -7,13 +7,15 @@
             <semester-select
               v-model="filter.semesterId"
               default-select
-              @default-selected="getList"
+              @default-selected="semesterChange"
+              @change="semesterChange"
             ></semester-select>
           </el-form-item>
           <el-form-item label="考试:">
             <exam-select
               v-model="filter.examId"
               :semester-id="filter.semesterId"
+              @change="examChange"
             ></exam-select>
           </el-form-item>
           <el-form-item label="课程(代码):" label-width="110px">
@@ -77,6 +79,7 @@
           <el-button
             v-if="checkPrivilege('button', 'select')"
             type="primary"
+            :disabled="!filter.semesterId || !filter.examId"
             @click="search"
             >查询</el-button
           >
@@ -216,7 +219,6 @@
       "
       ref="PrintPlanBatchPushDialog"
       :courses="curSelectedCourses"
-      :org-code="orgCode"
       @modified="mergePushed"
     ></print-plan-batch-push-dialog>
     <!-- DataSyncDialog -->
@@ -251,6 +253,7 @@ export default {
         startTime: "",
         endTime: "",
       },
+      filterInfo: { semesterName: "", examName: "" },
       PUSH_TYPE,
       current: 1,
       size: this.GLOBAL.pageSize,
@@ -265,11 +268,12 @@ export default {
       orgCode: "",
     };
   },
-  mounted() {},
   methods: {
     async getList() {
       if (!this.checkPrivilege("list", "list")) return;
 
+      if (!this.filter.semesterId || !this.filter.examId) return;
+
       let datas = {
         ...this.filter,
         pageNumber: this.current,
@@ -280,7 +284,12 @@ export default {
         datas.endTime = this.createTime[1];
       }
       const data = await printPlanPushListQuery(datas);
-      this.dataList = data.records;
+      this.dataList = data.records.map((item) => {
+        return {
+          ...item,
+          ...this.filterInfo,
+        };
+      });
       this.total = data.total;
     },
     toPage(page) {
@@ -291,6 +300,12 @@ export default {
     search() {
       this.toPage(1);
     },
+    semesterChange(val) {
+      this.filterInfo.semesterName = val ? val.name : "";
+    },
+    examChange(val) {
+      this.filterInfo.examName = val ? val.name : "";
+    },
     sizeChange(size) {
       this.size = size;
       this.toPage(1);

+ 2 - 2
src/modules/stmms/components/markParam/MarkPaperStructure.vue

@@ -32,12 +32,12 @@
           {{ scope.row.mainTitle }}
         </span>
       </el-table-column>
-      <el-table-column prop="typeName" label="题型" width="160">
+      <el-table-column prop="typeName" label="题型" width="120">
         <template slot-scope="scope" v-if="scope.row.mainFirstSub">
           {{ scope.row.typeName }}
         </template>
       </el-table-column>
-      <el-table-column label="每题分值" width="160">
+      <el-table-column label="每题分值" width="105">
         <template slot-scope="scope" v-if="scope.row.mainFirstSub">
           <el-input-number
             v-model="scoresPerTopic[scope.row.mainId]"

+ 4 - 3
src/modules/stmms/components/markParam/ModifyMarkParams.vue

@@ -156,6 +156,7 @@ export default {
         basicPaperInfo: { ...this.instance },
         paperStat: this.statPaperStructure([]),
       };
+      this.dataReady = true;
     },
     parsePaperStructureFromCard(pages) {
       let structData = [];
@@ -202,12 +203,12 @@ export default {
       let structure = [];
       let mainIds = {};
       structData.forEach((struct) => {
-        const { startNumber, questionCount, qType, mainNumber, mainTitle } =
+        const { startNumber, questionsCount, qType, mainNumber, mainTitle } =
           struct;
         if (!mainIds[mainNumber]) {
           mainIds[mainNumber] = this.$randomCode();
         }
-        for (let i = 0; i < questionCount; i++) {
+        for (let i = 0; i < questionsCount; i++) {
           structure.push({
             id: this.$randomCode(),
             qType,
@@ -228,7 +229,7 @@ export default {
         (a, b) => a.mainNumber - b.mainNumber || a.subNumber - b.subNumber
       );
       let curMainId = null;
-      structData.forEach((item) => {
+      structure.forEach((item) => {
         if (curMainId !== item.mainId) {
           curMainId = item.mainId;
           item.mainFirstSub = true;

+ 18 - 11
src/modules/stmms/components/markParam/ModifyObjectiveAnswer.vue

@@ -53,6 +53,11 @@
           {{ scope.row.mainTitle }}
         </span>
       </el-table-column>
+      <el-table-column prop="typeName" label="题型" width="120">
+        <template slot-scope="scope" v-if="scope.row.mainFirstSub">
+          {{ scope.row.typeName }}
+        </template>
+      </el-table-column>
       <el-table-column prop="mainNumber" label="大题号" width="80">
         <template slot-scope="scope" v-if="scope.row.mainFirstSub">
           <span>{{ scope.row.mainNumber }}</span>
@@ -65,20 +70,22 @@
       ></el-table-column>
       <el-table-column prop="totalScore" label="小题满分" width="105">
       </el-table-column>
-      <el-table-column label="答案" width="200px">
+      <el-table-column label="答案" width="200px" class-name="answer-column">
         <div
           slot-scope="scope"
           :class="['el-form-item', { 'is-error': scope.row.error }]"
         >
-          <el-input
-            v-model.trim="scope.row.answer"
-            placeholder="请输入答案"
-            :maxlength="scope.row.optionCount"
-            clearable
-            @change="validateAnswer(scope.row)"
-          ></el-input>
-          <div v-if="scope.row.error" class="color-danger">
-            {{ scope.row.errMsg }}
+          <div class="el-form-item__content">
+            <el-input
+              v-model.trim="scope.row.answer"
+              placeholder="请输入答案"
+              :maxlength="scope.row.optionCount"
+              clearable
+              @change="validateAnswer(scope.row)"
+            ></el-input>
+            <div v-if="scope.row.error" class="el-form-item__error">
+              {{ scope.row.errMsg }}
+            </div>
           </div>
         </div>
       </el-table-column>
@@ -178,7 +185,7 @@ export default {
         return;
       }
 
-      const validAnswers = this.abc.substring(1, row.optionCount);
+      const validAnswers = this.abc.substring(0, row.optionCount);
       // 单选题 判断题
       if (row.type === 1 || row.type === 3) {
         if (