Pārlūkot izejas kodu

阅卷设置基本完成

Your Name 1 gadu atpakaļ
vecāks
revīzija
986f62f1d6
3 mainītis faili ar 181 papildinājumiem un 61 dzēšanām
  1. 14 0
      src/api.js
  2. 4 37
      src/views/tasks/Index.vue
  3. 163 24
      src/views/tasks/components/MarkTaskSetDialog.vue

+ 14 - 0
src/api.js

@@ -342,4 +342,18 @@ export default {
 			params: params,
 		});
     },
+    // 保存客观题
+    saveObjectiveQue: params => {
+	    return axios.put(`${baseURL}/api/admin/papers/objective/update`, params)
+    },
+    // 保存主观题
+    saveSubjectiveQue: params => {
+	    return axios.put(`${baseURL}/api/admin/papers/subjective/update`, params)
+    },
+    // 获取阅卷老师账号
+	getSchoolUser:params => {
+		return axios.get(`${baseURL}/api/admin/school/user/list`, {
+			params: params,
+		});
+    },
 }

+ 4 - 37
src/views/tasks/Index.vue

@@ -31,46 +31,13 @@
       </el-row>
     </el-form>
     <el-table v-loading="loading" :data="list" style="width: 100%; margin-top: 10px" height="50vh">
-      <el-table-column prop="name" label="作业名称"> </el-table-column>
-      <el-table-column prop="full_score" label="满分">
+      <el-table-column prop="name" label="考试名称"> </el-table-column>
+      <el-table-column prop="phone" label="阅卷进度" width="280">
         <template slot-scope="scope">
-          <div class="bold">{{ scope.row.full_score }}</div>
+            123人已上传,23%阅卷进度,2份仲裁卷
         </template>
       </el-table-column>
-      <el-table-column prop="max_score" label="最高分">
-        <template slot-scope="scope">
-          <div class="bold">{{ scope.row.max_score }}</div>
-        </template>
-      </el-table-column>
-      <el-table-column prop="avg_score" label="平均分">
-        <template slot-scope="scope">
-          <div class="bold">{{ scope.row.avg_score }}</div>
-        </template>
-      </el-table-column>
-      <el-table-column prop="pass_rate" label="及格率">
-        <template slot-scope="scope">
-          <div class="bold" style="color: #0a9dff">
-            {{ scope.row.pass_rate }}
-          </div>
-        </template>
-      </el-table-column>
-      <el-table-column prop="phone" label="批阅进度" width="180">
-        <template slot-scope="scope">
-          <div class="d-f prosss_box">
-            <el-progress :percentage="scope.row.ww" :stroke-width="8" :color="
-      	            scope.row.total_students == scope.row.marked_students
-      	              ? '#0A9DFF'
-      	              : '#FA0A2F'
-      	          "></el-progress>
-            <div class="contrasts">
-              <span>{{ scope.row.marked_students }}/</span>
-              <span>{{ scope.row.total_students }}</span>
-            </div>
-          </div>
-        </template>
-      </el-table-column>
-      <el-table-column align="center" prop="ctime" label="创建时间" />
-      <el-table-column align="center" prop="date" label="操作" width="380">
+      <el-table-column align="center" prop="date" label="操作" width="580">
         <template slot-scope="scope">
 
           <el-button @click="jump(

+ 163 - 24
src/views/tasks/components/MarkTaskSetDialog.vue

@@ -15,7 +15,10 @@
                   <el-input size="mini" v-model="addQueForm.score"></el-input>
                 </el-form-item>
                 <el-form-item>
-                  <el-button size="mini" type="primary" @click="addQues">设置</el-button>
+                  <el-button size="mini" type="warning" @click="addQues">设置</el-button>
+                </el-form-item>
+                <el-form-item>
+                  <el-button size="mini" type="primary" @click="saveObjectiveQue">保存</el-button>
                 </el-form-item>
               </el-form>
               <el-table :data="objectiveQueList">
@@ -63,7 +66,10 @@
               <el-input size="mini" v-model="addQueForm.score"></el-input>
             </el-form-item>
             <el-form-item>
-              <el-button size="mini" type="primary" @click="addQues">设置</el-button>
+              <el-button size="mini" type="warning" @click="addQues">设置</el-button>
+            </el-form-item>
+            <el-form-item>
+              <el-button size="mini" type="primary" @click="saveSubjectiveQue">保存</el-button>
             </el-form-item>
           </el-form>
           <el-table :data="subjectiveQueList">
@@ -73,55 +79,123 @@
                 </template>
               </el-table-column>
               <el-table-column label="题号" prop="qno"></el-table-column>
-              <el-table-column label="分数" prop="std_score"></el-table-column>
+              <el-table-column label="分数" prop="std_score">
+                  <template slot-scope="scope">
+                    <el-input size="mini" v-model="scope.row.std_score" />
+                  </template>
+              </el-table-column>
               <el-table-column label="查看切图" prop="qtype">
                 <template slot-scope="scope">
                   <el-button type="text">查看</el-button>
                 </template>
               </el-table-column>
-              <el-table-column label="单双评" prop="score">
+              <el-table-column label="单双评" prop="mark_mode">
                 <template slot-scope="scope">
-                    <el-select size="mini">
-                      <el-option>单评</el-option>
-                      <el-option>双评</el-option>
-                      <el-option>多评</el-option>
+                    <el-select v-model="scope.row.mark_mode" size="mini">
+                      <el-option label="单评" value="单评">单评</el-option>
+                      <el-option label="双评" value="双评">双评</el-option>
+                      <el-option label="多评" value="多评">多评</el-option>
                     </el-select>
                 </template>
               </el-table-column>
-              <el-table-column label="双评阈值" prop="score">
+              <el-table-column label="双评阈值" prop="mark_diffmax">
                 <template slot-scope="scope">
-                  <el-input type="text" size="mini"></el-input>
+                  <el-input v-model="scope.row.mark_diffmax" type="text" size="mini"></el-input>
                 </template>
               </el-table-column>
               <el-table-column label="小题设置" prop="score">
                 <template slot-scope="scope">
-                  未设置<i class="el-icon-setting"></i>
+                  <span style="color:#67c23a;" v-if="scope.row.sub_que_list.length>1">已设置</span>
+                  <span v-else>未设置</span>  
+                  <i class="el-icon-setting" @click="setSubQue(scope.row,scope.$index)"></i>
                 </template>
               </el-table-column>
               <el-table-column label="给分点" prop="score">
                 <template slot-scope="scope">
-                  未设置<i class="el-icon-setting"></i>
+                  <span style="color:#67c23a;" v-if="scope.row.mark_points.mark_points">已设置</span>
+                  <span v-else>未设置</span>  
+                  <i class="el-icon-setting" @click="setMarkPoints(scope.row,scope.$index)"></i>
                 </template>
               </el-table-column>
           </el-table>
         </el-tab-pane>
         <el-tab-pane label="分配阅卷员" name="3">
+            <el-form :inline="true" v-model="addQueForm">
+              <el-form-item>
+                <el-button size="mini" type="primary" @click="saveSubjectiveQue">全选</el-button>
+              </el-form-item>
+              <el-form-item>
+                <el-button size="mini" @click="saveSubjectiveQue">全不选</el-button>
+              </el-form-item>
+              <el-form-item>
+                <el-button size="mini" type="primary" @click="saveSubjectiveQue">保存设置</el-button>
+              </el-form-item>
+            </el-form>
             <el-table :data="subjectiveMarkTeacherList">
-                <el-table-column label="教工号" prop="qno" width="80px"></el-table-column>
-                <el-table-column label="姓名" prop="qno" width="80px"></el-table-column>
-                <el-table-column label="角色" prop="score" width="80px"></el-table-column>
+                <el-table-column label="教工号" prop="phone" width="80px"></el-table-column>
+                <el-table-column label="姓名" prop="realname" width="80px"></el-table-column>
+                <el-table-column label="阅卷权限" prop="role_name" width="300px">
+                    <el-checkbox-group v-model="checkList">
+                      <el-checkbox label="科目组长"></el-checkbox>
+                      <el-checkbox label="评卷仲裁"></el-checkbox>
+                      <el-checkbox label="评卷教师"></el-checkbox>
+                    </el-checkbox-group>
+                </el-table-column>
                 <el-table-column label="试题分配" prop="qtype">
                     <el-checkbox-group v-model="checkList">
-                        <el-checkbox label="复选框 A"></el-checkbox>
-                        <el-checkbox label="复选框 B"></el-checkbox>
-                        <el-checkbox label="复选框 C"></el-checkbox>
-                        <el-checkbox label="禁用" disabled></el-checkbox>
-                        <el-checkbox label="选中且禁用" disabled></el-checkbox>
-                      </el-checkbox-group>
+                      <el-checkbox v-for="(item,index) in subjectiveQueList" :label="item.qno"></el-checkbox>
+                    </el-checkbox-group>
                 </el-table-column>
             </el-table>
         </el-tab-pane>
       </el-tabs>
+      <!--小题设置-->
+      <el-dialog title="小题设置" :visible.sync="subQueSetVisible" width="50%" @close="closeSubQueDialog" append-to-body>
+          <el-table :data="curSubQueList">
+              <el-table-column label="序号" prop="qno" width="60px">
+                <template slot-scope="scope">
+                  {{scope.$index+1}}
+                </template>
+              </el-table-column>
+              <el-table-column label="题号" prop="qno">
+                  <template slot-scope="scope">
+                    <el-input size="mini" v-model="scope.row.qno" />
+                  </template>
+              </el-table-column>
+              <el-table-column label="分数" prop="std_score">
+                  <template slot-scope="scope">
+                    <el-input size="mini" v-model="scope.row.std_score" />
+                  </template>
+              </el-table-column>
+              <el-table-column label="阈值" prop="mark_diffmax">
+                  <template slot-scope="scope">
+                    <el-input size="mini" v-model="scope.row.mark_diffmax" />
+                  </template>
+              </el-table-column>
+          </el-table>
+          <div slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="saveSubQue" size="mini">确定</el-button>
+            <el-button type="" @click="closeSubQueDialog" size="mini">取消</el-button>
+          </div>
+      </el-dialog>
+      <!--给分点设置-->
+      <el-dialog title="给分点设置" :visible.sync="markPointsSetVisible" width="50%" @close="closeSubQueDialog" append-to-body>
+          <el-row :gutter="20">
+            <el-col :span="6">
+              <el-select v-model="curMarkPoints.mark_type">
+                <el-option label="步长值" value="step"></el-option>
+                <el-option label="给分点" value="points"></el-option>
+              </el-select>
+            </el-col>
+            <el-col :span="18">
+              <el-input v-model="curMarkPoints.mark_points" />
+            </el-col>
+          </el-row>
+          <div slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="saveMarkPoints" size="mini">确定</el-button>
+            <el-button type="" @click="closeMarkPointsDialog" size="mini">取消</el-button>
+          </div>
+      </el-dialog>
     </el-dialog>
     </div>
 </template>
@@ -177,6 +251,11 @@ export default {
               flag: 0
             }
           ],
+          subQueSetVisible:false,
+          curSubQueList:[],
+          curRowIndex:0,
+          curMarkPoints:{mark_type:"step"},
+          markPointsSetVisible:false,
         }
     },
     watch:{
@@ -184,8 +263,6 @@ export default {
             this.remarkSetVisibleTmp = this.remarkSetVisible
             this.curTaskId = this.taskId
             this.curPaperId = this.paperId
-            console.log(this.curTaskId,2222222222222)
-            console.log(this.curPaperId,33333333333333)
             this.getPaperPieces(this.activeSetName,this.curPaperId)
         },
     },
@@ -195,8 +272,15 @@ export default {
             this.$emit("close")
             this.fileList = []
         },
+        closeSubQueDialog(){
+            this.subQueSetVisible = false;
+        },
+        closeMarkPointsDialog(){
+            this.markPointsSetVisible = false;
+        },
         handleClick(){
-          this.getPaperPieces(this.activeSetName,this.curPaperId)
+          this.getPaperPieces(this.activeSetName,this.curPaperId);
+          this.getMarkPaperTeachers();
         },
         addQues(){
 
@@ -210,6 +294,12 @@ export default {
             }
           })
         },
+        // 获取阅卷老师列表
+        getMarkPaperTeachers(){
+          this.$api.getSchoolUser().then(res=>{
+            this.subjectiveMarkTeacherList = res.data.data;
+          })
+        },
         setStdAns(row, item) {
           let orgAns = row.stdAns.split(",")
           orgAns = orgAns.filter((item) => {
@@ -222,6 +312,55 @@ export default {
           }
           row.stdAns = orgAns.join(",")
         },
+        setSubQue(row,index){
+          this.subQueSetVisible = true;
+          if(row.sub_que_list && row.sub_que_list.length>0){
+            this.curSubQueList = row.sub_que_list;
+          }else{
+            let subQueList = []
+            row.qno.split("-").forEach((item,index)=>{
+              subQueList.push({
+                qno:item,
+                std_score:0,
+                mark_diffmax:0
+              })
+            })
+            this.curSubQueList = subQueList;
+          }
+          this.curRowIndex = index
+        },
+        setMarkPoints(row,index){
+          this.markPointsSetVisible = true;
+          if(row.mark_points.mark_points){
+            this.curMarkPoints = row.mark_points;
+          }else{
+            this.curMarkPoints = {"mark_type":"step"}
+          }
+        },
+        saveSubQue(){
+          this.subjectiveQueList[this.curRowIndex].sub_que_list = this.curSubQueList;
+          this.subQueSetVisible = false
+        },
+        saveMarkPoints(){
+          this.subjectiveQueList[this.curRowIndex].mark_points = this.curMarkPoints;
+          this.markPointsSetVisible = false
+        },
+        saveObjectiveQue(){
+          this.$api.saveObjectiveQue({paper_id:this.curPaperId,objectiveQueList:this.objectiveQueList}).then(res=>{
+              if(!res.data.code){
+                this.msgSuccess("成功!");
+                this.getPaperPieces(this.activeSetName,this.curPaperId)
+              }
+          })
+        },
+        saveSubjectiveQue(){
+          this.$api.saveSubjectiveQue({paper_id:this.curPaperId,subjectiveQueList:this.subjectiveQueList}).then(res=>{
+              if(!res.data.code){
+                this.msgSuccess("成功!");
+                this.getPaperPieces(this.activeSetName,this.curPaperId)
+              }
+          })
+        },
     },
     created(){
       console.log(this.curTaskId,333333333333)