瀏覽代碼

阅卷设置

Your Name 1 年之前
父節點
當前提交
9e9edbe9fa
共有 3 個文件被更改,包括 276 次插入79 次删除
  1. 6 1
      src/api.js
  2. 36 78
      src/views/tasks/Index.vue
  3. 234 0
      src/views/tasks/components/MarkTaskSetDialog.vue

+ 6 - 1
src/api.js

@@ -336,5 +336,10 @@ export default {
     startRecPaper: params => {
 	    return axios.post(`${baseURL}/api/admin/teacher/mark/task/starRec`, params)
     },
-	
+    // 获取
+	getStdQueList:params => {
+		return axios.get(`${baseURL}/api/admin/papers/quelist`, {
+			params: params,
+		});
+    },
 }

+ 36 - 78
src/views/tasks/Index.vue

@@ -79,7 +79,7 @@
 	              '&id=' +
 	              scope.row.task_id
             )" size="mini" type="success">开始阅卷</el-button>
-          <el-button @click="remarkSet(scope.row.task_id)" size="mini" type="warning">阅卷设置</el-button>
+          <el-button @click="remarkSet(scope.row)" size="mini" type="warning">阅卷设置</el-button>
           <el-button @click="edit(scope.row.id)" size="mini" type="warning">编辑</el-button>
           <el-button @click="openUploadPaper(scope.row.task_id)" size="mini" type="primary">上传试卷</el-button>
           <el-button @click="del(scope.row.task_id)" size="mini" type="danger">删除</el-button>
@@ -254,6 +254,7 @@
           v-for="(item,index) in fileList">
           <el-image width="100px" alt="" :src="item.url" :preview-src-list="[item.url]"></el-image>
         </div>
+        <Page ref="pageImgButton" :current="imgForm.page" :page_size="imgForm.page_size" :total="taskImgTotal" @pageChange="goTaskImg" />
       </el-dialog>
     </el-dialog>
     <!-- 重新识别 -->
@@ -276,88 +277,17 @@
         <el-button type="primary" @click="doReTryMark">确 定</el-button>
       </div>
     </el-dialog>
-    <!-- 阅卷设置 -->
-    <el-dialog title="阅卷设置" :visible.sync="remarkSetVisible" width="80%" @close="closeRemarkDialog">
-      <el-tabs v-model="activeSetName" @tab-click="handleClick">
-        <el-tab-pane label="客观题设置" name="first">
-            <el-form :inline="true" v-model="addQueForm">
-                <el-form-item label="题号">
-                  <el-input size="mini" v-model="addQueForm.fQno"></el-input>
-                </el-form-item>
-                <el-form-item label="至">
-                  <el-input size="mini" v-model="addQueForm.tQno"></el-input>
-                </el-form-item>
-                <el-form-item label="分数">
-                  <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-form-item>
-              </el-form>
-              <el-table :data="objectiveQueList">
-                  <el-table-column label="序号" prop="qno" width="60px"></el-table-column>
-                  <el-table-column label="题号" prop="qno"></el-table-column>
-                  <el-table-column label="答案" prop="score"></el-table-column>
-                  <el-table-column label="满分" prop="qtype"></el-table-column>
-                  <el-table-column label="部分分" prop="score"></el-table-column>
-              </el-table>
-        </el-tab-pane>
-        <el-tab-pane label="主观题设置" name="second">
-          <el-form :inline="true" v-model="addQueForm">
-            <el-form-item label="题号">
-              <el-input size="mini" v-model="addQueForm.fQno"></el-input>
-            </el-form-item>
-            <el-form-item label="至">
-              <el-input size="mini" v-model="addQueForm.tQno"></el-input>
-            </el-form-item>
-            <el-form-item label="分数">
-              <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-form-item>
-          </el-form>
-          <el-table :data="subjectiveQueList">
-              <el-table-column label="序号" prop="qno" width="60px"></el-table-column>
-              <el-table-column label="题号" prop="qno"></el-table-column>
-              <el-table-column label="分数" prop="score"></el-table-column>
-              <el-table-column label="查看切图" prop="qtype">
-                <template slot-scope="scope">
-                  <span v-if="scope.row.qtype==1">单选</span>
-                  <span v-if="scope.row.qtype==2">多选</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="单双评" prop="score"></el-table-column>
-              <el-table-column label="双评阈值" prop="score"></el-table-column>
-              <el-table-column label="小题设置" prop="score"></el-table-column>
-              <el-table-column label="给分点" prop="score"></el-table-column>
-          </el-table>
-        </el-tab-pane>
-        <el-tab-pane label="分配阅卷员" name="third">
-            <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="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-table-column>
-            </el-table>
-        </el-tab-pane>
-      </el-tabs>
-    </el-dialog>
+    <!--阅卷设置-->
+    <MarkTaskSetDialog :remarkSetVisible="remarkSetVisible" :paperId="curPaperId" :taskId="curTaskId" @close="closeMarkTaskSet" />
   </section>
 </template>
 <script>
   import Page from "../../components/Page";
+  import MarkTaskSetDialog from "./components/MarkTaskSetDialog"
   export default {
     components: {
       Page,
+      MarkTaskSetDialog
     },
     data() {
       return {
@@ -374,10 +304,15 @@
           class_list: ["高三一班", "高三二班"],
           checkList: []
         },
+        imgForm:{
+          page:1,
+          page_size:10
+        },
         form1: {},
         form2: {},
         list: [{}, {}],
         total: 0,
+        imgTotal:0,
         title: "新增用户",
         open: false,
         doctorList: [],
@@ -394,6 +329,7 @@
         curStudentRecImg: "",
         activeName: "1",
         curTaskId: null,
+        curPaperId:null,
         recPage: 1,
         recPageSize: 20,
         recTotal: 0,
@@ -453,6 +389,21 @@
         this.queryParams.page = this.$refs.pageButton.page;
         this.getData();
       },
+      goTaskImg(page){
+        if (page) {
+          this.imgForm.page_size = size;
+        }
+        this.imgForm.page = this.$refs.pageImgButton.page;
+        let that = this;
+        that.$api.getTaskImgList({
+            task_id: that.curTaskId,
+            page:that.imgForm.page,
+            page_size:that.imgForm.page_size
+          }).then(res => {
+            that.fileList = res.data.data.list
+            that.taskImgTotal = res.data.data.total;
+          })
+      },
       goRecPage(size) {
         if (size) {
           this.recPageSize = size;
@@ -656,7 +607,9 @@
         window.clearInterval(this.timer2);
         this.timer2 = setInterval(function () {
           that.$api.getTaskImgList({
-            task_id: that.curTaskId
+            task_id: that.curTaskId,
+            page:that.imgForm.page,
+            page_size:that.imgForm.page_size
           }).then(res => {
             that.fileList = res.data.data.list
             that.taskImgTotal = res.data.data.total;
@@ -798,8 +751,13 @@
           this.loading = false
         })
       },
-      remarkSet(task_id) {
+      remarkSet(row) {
         this.remarkSetVisible = true
+        this.curTaskId = row.task_id;
+        this.curPaperId = row.paper_id;
+      },
+      closeMarkTaskSet(){
+        this.remarkSetVisible = false
       }
     },
     created() {

+ 234 - 0
src/views/tasks/components/MarkTaskSetDialog.vue

@@ -0,0 +1,234 @@
+<template>
+    <div>
+    <!-- 阅卷设置 -->
+    <el-dialog title="阅卷设置" :visible.sync="remarkSetVisibleTmp" width="80%" @close="closeRemarkDialog">
+      <el-tabs v-model="activeSetName" @tab-click="handleClick">
+        <el-tab-pane label="客观题设置" name="1">
+            <el-form :inline="true" v-model="addQueForm">
+                <el-form-item label="题号">
+                  <el-input size="mini" v-model="addQueForm.fQno"></el-input>
+                </el-form-item>
+                <el-form-item label="至">
+                  <el-input size="mini" v-model="addQueForm.tQno"></el-input>
+                </el-form-item>
+                <el-form-item label="分数">
+                  <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-form-item>
+              </el-form>
+              <el-table :data="objectiveQueList">
+                  <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" width="60px"></el-table-column>
+                  <el-table-column label="点选答案" prop="score" width="360px">
+                    <template slot-scope="scope">
+                      <el-tag v-for="item in ansOptionList" :key="item.label" type="success"
+                        :effect="scope.row.stdAns.indexOf(item.value)==-1?'plain':'dark'" @click="setStdAns(scope.row,item)"
+                        size="small">
+                        {{ item.label }}
+                      </el-tag>
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="输入答案" prop="score">
+                    <template slot-scope="scope">
+                      <el-input v-model="scope.row.stdAns" size="mini" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="满分" prop="qtype">
+                    <template slot-scope="scope">
+                      <el-input type="number" v-model="scope.row.score" size="mini" />
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="部分分" prop="partScore">
+                    <template slot-scope="scope">
+                      <el-input type="number" v-model="scope.row.partScore" size="mini" />
+                    </template>
+                  </el-table-column>
+              </el-table>
+        </el-tab-pane>
+        <el-tab-pane label="主观题设置" name="2">
+          <el-form :inline="true" v-model="addQueForm">
+            <el-form-item label="题号">
+              <el-input size="mini" v-model="addQueForm.fQno"></el-input>
+            </el-form-item>
+            <el-form-item label="至">
+              <el-input size="mini" v-model="addQueForm.tQno"></el-input>
+            </el-form-item>
+            <el-form-item label="分数">
+              <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-form-item>
+          </el-form>
+          <el-table :data="subjectiveQueList">
+              <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"></el-table-column>
+              <el-table-column label="分数" prop="std_score"></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">
+                <template slot-scope="scope">
+                    <el-select size="mini">
+                      <el-option>单评</el-option>
+                      <el-option>双评</el-option>
+                      <el-option>多评</el-option>
+                    </el-select>
+                </template>
+              </el-table-column>
+              <el-table-column label="双评阈值" prop="score">
+                <template slot-scope="scope">
+                  <el-input 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>
+                </template>
+              </el-table-column>
+              <el-table-column label="给分点" prop="score">
+                <template slot-scope="scope">
+                  未设置<i class="el-icon-setting"></i>
+                </template>
+              </el-table-column>
+          </el-table>
+        </el-tab-pane>
+        <el-tab-pane label="分配阅卷员" name="3">
+            <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="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-table-column>
+            </el-table>
+        </el-tab-pane>
+      </el-tabs>
+    </el-dialog>
+    </div>
+</template>
+
+<script>
+export default {
+    compnets:{},
+    props:["remarkSetVisible","taskId","paperId"],
+    data(){
+        return {
+            activeSetName: "1",
+            addQueForm:{},
+            objectiveQueList:[],
+            subjectiveQueList:[],
+            subjectiveMarkTeacherList:[],
+            checkList:[],
+            remarkSetVisibleTmp:this.remarkSetVisible,
+            curTaskId:this.taskId,
+            curPaperId:this.paperId,
+            ansOptionList: [{
+              label: "A",
+              value: "A",
+              flag: 0
+            },
+            {
+              label: "B",
+              value: "B",
+              flag: 0
+            },
+            {
+              label: "C",
+              value: "C",
+              flag: 0
+            },
+            {
+              label: "D",
+              value: "D",
+              flag: 0
+            },
+            {
+              label: "E",
+              value: "E",
+              flag: 0
+            },
+            {
+              label: "F",
+              value: "F",
+              flag: 0
+            },
+            {
+              label: "G",
+              value: "G",
+              flag: 0
+            }
+          ],
+        }
+    },
+    watch:{
+        remarkSetVisible(){
+            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)
+        },
+    },
+    methods:{
+        closeRemarkDialog() {
+            this.remarkSetVisibleTmp = false;
+            this.$emit("close")
+            this.fileList = []
+        },
+        handleClick(){
+          this.getPaperPieces(this.activeSetName,this.curPaperId)
+        },
+        addQues(){
+
+        },
+        getPaperPieces(quetype,paper_id){
+          this.$api.getStdQueList({"quetype":quetype,"paper_id":paper_id}).then(res=>{
+            if(quetype==1){
+              this.objectiveQueList = res.data.data;
+            }else{
+              this.subjectiveQueList = res.data.data;
+            }
+          })
+        },
+        setStdAns(row, item) {
+          let orgAns = row.stdAns.split(",")
+          orgAns = orgAns.filter((item) => {
+            return item.length > 0
+          })
+          if (orgAns.indexOf(item.value) == -1) {
+            orgAns.push(item.value)
+          } else {
+            orgAns.splice(orgAns.indexOf(item.value), 1)
+          }
+          row.stdAns = orgAns.join(",")
+        },
+    },
+    created(){
+      console.log(this.curTaskId,333333333333)
+
+    }
+}
+</script>
+<style lang="scss">
+    
+</style>