Ver código fonte

9-16新需求修改

zhangjie 3 anos atrás
pai
commit
16aaf305c0

+ 2 - 2
src/assets/styles/paper-approve.css

@@ -54,12 +54,12 @@ body {
 }
 .paper-item > span:first-child {
   float: left;
-  width: 80px;
+  width: 96px;
   text-align: right;
 }
 .paper-item > span:last-child {
   display: block;
-  margin-left: 80px;
+  margin-left: 96px;
 }
 
 .paper-table {

+ 29 - 15
src/modules/exam/components/PaperApproveTable.vue

@@ -27,13 +27,23 @@
           <div class="paper-base" id="paper-base">
             <div class="paper-row">
               <div class="paper-item">
-                <span>教研室:</span>
+                <span>学院:</span>
+                <span>{{ basicInfo.collegeName }}</span>
+              </div>
+              <div class="paper-item">
+                <span>教研室(或系):</span>
                 <span>{{ basicInfo.teachingRoomName }}</span>
               </div>
+            </div>
+            <div class="paper-row">
               <div class="paper-item">
-                <span>试卷名称:</span>
+                <span>使用学期:</span>
                 <span>{{ basicInfo.paperName || "" }}</span>
               </div>
+              <div class="paper-item">
+                <span>课程名称:</span>
+                <span>{{ basicInfo.courseName }}</span>
+              </div>
             </div>
             <div class="paper-row">
               <div class="paper-item">
@@ -49,14 +59,18 @@
 
           <table class="paper-table">
             <tr>
+              <th style="width: 100px;">卷袋编号</th>
+              <th>使用校区</th>
               <th>使用班级</th>
-              <th>人数</th>
-              <th>总印份数</th>
+              <th style="width: 80px;">人数</th>
+              <th style="width: 100px;">总印份数</th>
             </tr>
             <tr v-for="item in examRoomInfoList" :key="item.id" :id="item.id">
+              <td style="width: 100px;">{{ item.packageCode }}</td>
+              <td>{{ item.campusNames }}</td>
               <td>{{ item.clazzNames }}</td>
-              <td style="width: 100px;">{{ item.studentCount }}</td>
-              <td style="width: 140px;">{{ item.printCount }}</td>
+              <td style="width: 80px;">{{ item.studentCount }}</td>
+              <td style="width: 100px;">{{ item.printCount }}</td>
             </tr>
           </table>
 
@@ -65,13 +79,13 @@
               <th>审批部门</th>
               <th>审批人</th>
               <th>审批时间</th>
-              <th>审批意见</th>
+              <th style="width: 260px;">审批意见</th>
             </tr>
             <tr v-for="(item, index) in approvalInfoList" :key="index">
               <td>{{ item.levelName }}</td>
               <td>{{ item.approveName }}</td>
               <td>{{ item.time | timestampFilter }}</td>
-              <td>{{ item.remark }}</td>
+              <td style="width: 260px;">{{ item.remark }}</td>
             </tr>
           </table>
         </div>
@@ -128,13 +142,13 @@
                 <th>审批部门</th>
                 <th>审批人</th>
                 <th>审批时间</th>
-                <th>审批意见</th>
+                <th style="width: 240px;">审批意见</th>
               </tr>
               <tr v-for="(item, index) in part.data" :key="index">
                 <td>{{ item.levelName }}</td>
                 <td>{{ item.approveName }}</td>
                 <td>{{ item.time | timestampFilter }}</td>
-                <td>{{ item.remark }}</td>
+                <td style="width: 240px;">{{ item.remark }}</td>
               </tr>
             </table>
           </template>
@@ -165,8 +179,8 @@ export default {
       modalIsShow: false,
       loading: false,
       basicInfo: {},
-      examRoomInfoList: {},
-      approvalInfoList: {},
+      examRoomInfoList: [],
+      approvalInfoList: [],
       pages: []
     };
   },
@@ -174,8 +188,8 @@ export default {
     async initData() {
       this.pages = [];
       this.basicInfo = {};
-      this.examRoomInfoList = {};
-      this.approvalInfoList = {};
+      this.examRoomInfoList = [];
+      this.approvalInfoList = [];
       const paper = await examTaskApproveForm(this.instance.id);
 
       this.basicInfo = paper.basicInfo;
@@ -269,7 +283,7 @@ export default {
     },
     getHtmlContent() {
       const htmlContent = this.$refs.PaperContainer.innerHTML;
-      const cssContent = `body,div,h1,p,tr,th,td,span{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:rgba(255,255,255,0)}body{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;color:#1f2230}.paper-main{width:210mm;margin:0 auto;color:#1f2230}.paper-a4{width:210mm;height:297mm;padding:40px;overflow:hidden;page-break-after:always}.paper-h1{font-size:24px;text-align:center;line-height:1;padding-top:20px;padding-bottom:30px}.paper-base{margin-bottom:30px}.paper-row{margin:0 -5px 10px}.paper-item{display:inline-block;vertical-align:top;width:50%;padding:0 5px}.paper-item>span:first-child{float:left;width:80px;text-align:right}.paper-item>span:last-child{display:block;margin-left:80px}.paper-table{width:100%;border-spacing:0;border-collapse:collapse;margin-bottom:40px;text-align:center}.paper-table th{padding:8px;line-height:20px;letter-spacing:1px;border:1px solid #1f2230}.paper-table td{padding:8px;line-height:20px;border:1px solid #1f2230}`;
+      const cssContent = `body,div,h1,p,tr,th,td,span{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:rgba(255,255,255,0)}body{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;color:#1f2230}.paper-main{width:210mm;margin:0 auto;color:#1f2230}.paper-a4{width:210mm;height:297mm;padding:40px;overflow:hidden;page-break-after:always}.paper-h1{font-size:24px;text-align:center;line-height:1;padding-top:20px;padding-bottom:30px}.paper-base{margin-bottom:30px}.paper-row{margin:0 -5px 10px}.paper-item{display:inline-block;vertical-align:top;width:50%;padding:0 5px}.paper-item>span:first-child{float:left;width:96px;text-align:right}.paper-item>span:last-child{display:block;margin-left:96px}.paper-table{width:100%;border-spacing:0;border-collapse:collapse;margin-bottom:40px;text-align:center}.paper-table th{padding:8px;line-height:20px;letter-spacing:1px;border:1px solid #1f2230}.paper-table td{padding:8px;line-height:20px;border:1px solid #1f2230}`;
 
       return `
         <!DOCTYPE html>

+ 6 - 3
src/modules/exam/components/createExamAndPrintTask/InfoExamTask.vue

@@ -64,10 +64,10 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item prop="paperName" label="试卷名称:">
+            <el-form-item prop="paperName" label="使用学期:">
               <el-input
                 v-model.trim="examTask.paperName"
-                placeholder="请输入试卷名称"
+                placeholder="样例:2021-2022学年第一学期"
                 :maxlength="100"
                 clearable
               ></el-input>
@@ -271,7 +271,7 @@ export default {
         paperName: [
           {
             required: true,
-            message: "请输入试卷名称",
+            message: "请输入使用学期",
             trigger: "change"
           }
         ]
@@ -342,6 +342,9 @@ export default {
         cardRuleId: this.examTask.cardRuleId
       });
       this.cards = data || [];
+      if (this.cards.length) {
+        this.examTaskDetail.cardId = data[0].id;
+      }
     },
     async getCourses() {
       if (!this.examTask.teachingRoomId) return;

+ 15 - 8
src/modules/exam/components/createExamAndPrintTask/InfoPrintPlan.vue

@@ -11,6 +11,7 @@
         <h4 class="part-box-tips">
           试卷&题卡印品:
           <el-checkbox
+            v-show="infoShow"
             v-model="allSelected"
             label="全选"
             @change="selectAll"
@@ -51,7 +52,7 @@
             class="mr-1"
             v-model="modalForm.backupCount"
             size="small"
-            :min="1"
+            :min="0"
             :max="200"
             :step="1"
             step-strictly
@@ -61,6 +62,7 @@
           <span>份</span>
         </el-form-item>
         <el-form-item
+          v-show="infoShow"
           v-if="contentIncludesPaper"
           prop="drawRule"
           label="抽卷规则:"
@@ -82,7 +84,7 @@
         </el-form-item>
       </div>
 
-      <div class="part-box">
+      <div class="part-box" v-show="infoShow">
         <h4 class="part-box-tips">变量印品:</h4>
         <el-form-item
           v-for="(item, index) in modalForm.variableContent"
@@ -137,7 +139,7 @@
         </el-form-item>
       </div>
 
-      <div class="part-box">
+      <div class="part-box" v-show="infoShow">
         <h4 class="part-box-tips">普通印品:</h4>
         <el-form-item
           v-for="(item, index) in modalForm.ordinaryContent"
@@ -200,7 +202,7 @@
 
 <script>
 import {
-  PRINT_CONTENT_TYPE,
+  // PRINT_CONTENT_TYPE,
   DRAW_RULE_TYPE,
   PRINT_BACKUP_TYPE,
   PAPER_BACKUP_TYPE,
@@ -226,7 +228,7 @@ export default {
       if (!value) {
         return callback(new Error("请选择备份方式"));
       }
-      if (!this.modalForm.backupCount) {
+      if (!this.modalForm.backupCount && this.modalForm.backupCount !== 0) {
         return callback(new Error("请输入备份数量"));
       }
 
@@ -250,7 +252,9 @@ export default {
       isSubmit: false,
       modalForm: {},
       createTime: [],
-      PRINT_CONTENT_TYPE,
+      PRINT_CONTENT_TYPE: {
+        PAPER: "试卷"
+      },
       DRAW_RULE_TYPE,
       PRINT_BACKUP_TYPE,
       PAPER_BACKUP_TYPE,
@@ -260,6 +264,7 @@ export default {
       templateSources: {},
       oldPrintContent: [],
       allSelected: false,
+      infoShow: false,
       rules: {
         printContent: [
           {
@@ -365,7 +370,7 @@ export default {
     },
     selectAll(selected) {
       if (selected) {
-        this.modalForm.printContent = ["PAPER", "CARD"];
+        this.modalForm.printContent = Object.keys(this.PRINT_CONTENT_TYPE);
         this.modalForm.variableContent.forEach(item => {
           if (item.templateId && item.templateId.length) return;
 
@@ -399,7 +404,9 @@ export default {
       const oNotSelected = this.modalForm.ordinaryContent.some(
         item => !item.templateId.length
       );
-      const pNotSelected = this.modalForm.printContent.length < 2;
+      const pNotSelected =
+        this.modalForm.printContent.length <
+        Object.keys(this.PRINT_CONTENT_TYPE).length;
 
       const selecteds = [vNotSelected, oNotSelected, pNotSelected];