|
|
@@ -0,0 +1,570 @@
|
|
|
+<template>
|
|
|
+ <!-- 异常处理 -->
|
|
|
+ <div class="content_main">
|
|
|
+ <div class="abnormal_left">
|
|
|
+ <div class="left_nav">
|
|
|
+ <div class="nav_list">
|
|
|
+ <!-- abnormalType:2,//页面异常类型 2-定位异常 3-考号异常 4-客观题异常 5-选做题异常 6-空白卷异常 7 缺页异常 -->
|
|
|
+ <div class="nav_item" :class="abnormalType==2?'item_active':''" @click="AbnormalChanage(2)">
|
|
|
+ <div class="nav_number" v-if="abnormalObj.locationErrorNum>0">{{ abnormalObj.locationErrorNum }}</div>
|
|
|
+ 定位异常
|
|
|
+ </div>
|
|
|
+ <div class="nav_item" :class="abnormalType==3?'item_active':''" @click="AbnormalChanage(3)">
|
|
|
+ <div class="nav_number" v-if="abnormalObj.examNumberErrorNum>0">{{ abnormalObj.examNumberErrorNum }}</div>
|
|
|
+ 考号异常
|
|
|
+ </div>
|
|
|
+ <div class="nav_item" :class="abnormalType==7?'item_active':''" @click="AbnormalChanage(7)">
|
|
|
+ <div class="nav_number" v-if="abnormalObj.losePageErrorNum>0">{{ abnormalObj.losePageErrorNum }}</div>
|
|
|
+ 缺页异常
|
|
|
+ </div>
|
|
|
+ <div class="nav_item" :class="abnormalType==4?'item_active':''" @click="AbnormalChanage(4)">
|
|
|
+ <div class="nav_number" v-if="abnormalObj.objectErrorNum>0">{{ abnormalObj.objectErrorNum }}</div>
|
|
|
+ 客观题异常
|
|
|
+ </div>
|
|
|
+ <div class="nav_item" :class="abnormalType==5?'item_active':''" @click="AbnormalChanage(5)">
|
|
|
+ <div class="nav_number" v-if="abnormalObj.choiceErrorNum>0">{{ abnormalObj.choiceErrorNum }}</div>
|
|
|
+ 选做题异常
|
|
|
+ </div>
|
|
|
+ <div class="nav_item" :class="abnormalType==6?'item_active':''" @click="AbnormalChanage(6)" v-if="markType==1">
|
|
|
+ <div class="nav_number" v-if="abnormalObj.subjectiveErrorNum>0">{{ abnormalObj.subjectiveErrorNum }}</div>
|
|
|
+ 划分异常
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="nav_button el_button">
|
|
|
+ <div :class="isShowDraw?'is_draw_data':'is_draw_active'" @click="ShowDrawData()" v-if="abnormalType==4">显示画框</div>
|
|
|
+ <el-select v-if="abnormalType==6" style="width: 100px;" v-model="isShowDrawType" placeholder="显示类型" @change="SubjectDataChange()">
|
|
|
+ <el-option label="答题卡" value="1"></el-option>
|
|
|
+ <el-option label="划分区" value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-button class="refresh_btn" @click="RefreshAbnormalList()"><i class="iconfont icon_shuaxin"></i>刷新</el-button>
|
|
|
+ <el-button class="fit_screen_btn" @click="FitScreen()">适应屏幕</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="left_image" :class="abnormalType==6 && isShowDrawType==2?'left_image_height_2':'left_image_height_1'">
|
|
|
+ <!-- 定位异常试卷区 -->
|
|
|
+ <div class="page_jg_10"></div>
|
|
|
+ <div v-if="abnormalType==2" class="position_abnormal_content">
|
|
|
+ <div class="template_content">
|
|
|
+ <div class="content_header">
|
|
|
+ <div class="header_left">
|
|
|
+ 标准模板
|
|
|
+ </div>
|
|
|
+ <div class="header_right">
|
|
|
+ <div :class="item.pageNum==currentTemplatePageIndex?'page_num_active':'page_num_item'" v-for="(item,index) in currentTemplateList" :key="'template_'+index" @click="ChangeTemplatePage(item)">{{item.pageNum}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="content_canvas">
|
|
|
+ <PositionCanvas ref="PositionCanvas" :usedCardType="usedCardType" :positionList="sourcePoints" :paperImgUrl="currentTemplateUrl" @GetCutPosition="GetCutTemaplatePosition" :paperType="usedCardType==1?'template':'student'" v-if="currentTemplateUrl"> </PositionCanvas>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="paper_content">
|
|
|
+ <div class="content_header">
|
|
|
+ <div class="header_left">
|
|
|
+ 答题卡
|
|
|
+ <span v-if="currentImagePageNo==''" style="color:red;">(当前图片页码未保存)</span>
|
|
|
+ <span v-else style="color:green;">(当前图片页码已设置为:{{currentImagePageNo}})</span>
|
|
|
+ </div>
|
|
|
+ <div class="header_right el_button">
|
|
|
+ <i class="iconfont icon_nishizhen" @click="AnticlockwiseImage()"></i>
|
|
|
+ <i class="iconfont icon_shunshizhen" @click="ClockwiseImage()"></i>
|
|
|
+ <el-button type="primary" class="right_button_editor" @click="MarkBlankPage()">标记为空白页</el-button>
|
|
|
+ <el-button type="primary" class="right_button_editor" style="margin-left: 0px;" @click="SavePositionImage()">保存</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="content_canvas">
|
|
|
+ <PositionCanvas ref="PaperCanvas" :usedCardType="usedCardType" :positionList="targetPoints" :paperImgUrl="currentPaperUrl" @GetCutPosition="GetCutStudentPosition" paperType="student" v-if="currentPaperUrl"> </PositionCanvas>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <!-- 考号异常试卷区 -->
|
|
|
+ <!-- abnormalType:2,//页面异常类型 2-定位异常 3-考号异常 4-客观题异常 5-选做题异常 6-空白卷异常 7 缺页异常 -->
|
|
|
+ <!-- <div v-if="abnormalType==3 || abnormalType ==6 || abnormalType ==7" class="img_canvas_center">
|
|
|
+ <ImageCavasShow :paperImgUrl="currentPaperUrl"></ImageCavasShow>
|
|
|
+ </div> -->
|
|
|
+ <!-- <div v-if="abnormalType ==4 " class="img_canvas_center">
|
|
|
+ <ImageCanvas :currentPaperInfo="currentPaperInfo" > </ImageCanvas>
|
|
|
+ </div> -->
|
|
|
+ <div v-if="abnormalType==3 || abnormalType ==7 || abnormalType ==4 || abnormalType ==5" class="img_canvas_center">
|
|
|
+ <ActionImage ref="ActionCanvas" :isDrag="true" :paperInfo="currentPageInfo" :paperImgUrl="currentPaperUrl" :drawData="currentDrawData" :isAbnormal="true"></ActionImage>
|
|
|
+ </div>
|
|
|
+ <!-- 划分异常试卷区 -->
|
|
|
+ <div v-if="abnormalType==6" :class="isShowDrawType==1?'img_canvas_center':'mark_list_center'">
|
|
|
+ <template v-if="isShowDrawType==1">
|
|
|
+ <ActionImage ref="ActionCanvas" :isDrag="true" :paperInfo="currentPageInfo" :paperImgUrl="currentPaperUrl" :drawData="currentDrawData" :isAbnormal="true"></ActionImage>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+
|
|
|
+ <div class="mark_score_center mark_list" ref="abnormalList" v-if="isShowAbnormalQuestion">
|
|
|
+ <div class="center_item" :id="`student-${item.id}`" :class="subjectStudentIndex==item.subjectiveIndex?'center_item_cur':''" v-for="(item,index) in subjectStudentAbnormal" :key="index">
|
|
|
+ <div class="item_header">
|
|
|
+ <div class="header_student_name">
|
|
|
+ <span>{{item.questionName}} </span>
|
|
|
+ </div>
|
|
|
+ <div class="header_student_score">得分:{{item.score}}</div>
|
|
|
+ </div>
|
|
|
+ <div class="item_image">
|
|
|
+ <MarkScore :drawData="item.reviewQuestionScoreList" :fullScore="item.fullScore" :score="item.score" :paperImgUrl="item.url" @GetClickItem="(score) => GetMarkScoreClickItem(score,item, index)"></MarkScore>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="mark_score_center mark_list" ref="allList" v-else>
|
|
|
+ <div class="center_item" :id="`student-${item.id}`" :class="subjectStudentIndex==item.subjectiveIndex?'center_item_cur':''" v-for="(item,index) in subjectStudentQuestion" :key="index">
|
|
|
+ <div class="item_header">
|
|
|
+ <div class="header_student_name">
|
|
|
+ <span>{{item.questionName}} </span>
|
|
|
+ </div>
|
|
|
+ <div class="header_student_score">得分:{{item.score}}</div>
|
|
|
+ </div>
|
|
|
+ <div class="item_image">
|
|
|
+ <MarkScore :drawData="item.reviewQuestionScoreList" :fullScore="item.fullScore" :score="item.score" :paperImgUrl="item.url" @GetClickItem="(score) => GetMarkScoreClickItem(score,item, index)"></MarkScore>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="page_jg"></div>
|
|
|
+ <div class="left_bottom" v-if="!(abnormalType==6 && isShowDrawType==2)">
|
|
|
+ <div class="bottom_draggable draggable_width_100" >
|
|
|
+ <div v-for="(item,index) in studentPaperList" class="bottom_img_item" :class="currentPaperIndex == index?'img_item_cur':''" @click="ChanageCurrentPaperUrl(index, item)" :key="'paper_'+index">
|
|
|
+ <img style="width: 100%;height: 100%" :src="item.recognizeUrl" alt="" >
|
|
|
+ <div class="bottom_img_item_number" v-if="abnormalType==2">{{index+1}}</div>
|
|
|
+ <div class="bottom_img_item_number" v-else>
|
|
|
+ <span v-if="item.pageNo>0">{{item.pageNo}}</span>
|
|
|
+ <span v-else></span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="abnormal_right">
|
|
|
+ <!-- 定位异常区域 -->
|
|
|
+ <div class="right_center" v-show="abnormalType==2">
|
|
|
+ <div class="page_jg_20" ></div>
|
|
|
+ <div class="right_table">
|
|
|
+ <el-table @row-click="PendingListRowClick" :row-class-name="TableRowClassName" border :data="positionData.pendingList" style="width:100%;" :height="tableHeightRight" align="left" >
|
|
|
+ <el-table-column align="center" width="40" type="index" label="序号"></el-table-column>
|
|
|
+ <!-- <el-table-column align="center" prop="batchNo" width="45" label="批次"></el-table-column> -->
|
|
|
+ <el-table-column align="center" width="65" label="批次">
|
|
|
+ <template v-slot="scope">
|
|
|
+ {{GetPositionSelNumber(scope.row)}}
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentName" label="姓名">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <span v-if="scope.row.studentName">{{scope.row.studentName}} </span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="cardNumber" label="考号">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <span v-if="scope.row.cardNumber">{{scope.row.cardNumber}} </span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column align="center" prop="examDate" label="班级"></el-table-column> -->
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="right_bottom_button el_button">
|
|
|
+ <div class="page_jg_20"></div>
|
|
|
+ <div class="bottom_button_two">
|
|
|
+ <el-button @click="ReCutPaper()" class="re_cut_btn" :loading="reCutLoading">
|
|
|
+ {{reCutText}}
|
|
|
+ </el-button>
|
|
|
+ <el-button @click="DeleteCurrentPaper()" class="delete_paper_btn">删除当前试卷</el-button>
|
|
|
+ </div>
|
|
|
+ <!-- <div class="bottom_button_item">
|
|
|
+ <el-button @click="recyleMethod" class="recycle_bin_btn">回收站</el-button>
|
|
|
+ </div> -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 考号异常区域 -->
|
|
|
+ <div class="right_center" v-show="abnormalType==3">
|
|
|
+
|
|
|
+ <div class="right_table">
|
|
|
+ <div class="right_title">
|
|
|
+ 考号异常处理
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- abnormalType 0-正常 1-考号未识别出来 2-无此考生 3-考号重复(1,2,3都代表考号异常) 4-定位异常 5-缺页异常 -->
|
|
|
+ <el-table ref="numberPendingTable" @row-click="PendingListRowClick" :row-class-name="TableRowClassName" :data="numberData.pendingList" max-height="300" border stripe>
|
|
|
+ <el-table-column align="center" type="index" width="40" label="序号">
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column align="center" prop="batchNo" width="45" label="批次"></el-table-column> -->
|
|
|
+ <el-table-column align="center" width="65" label="批次">
|
|
|
+ <template v-slot="scope">
|
|
|
+ {{GetPositionSelNumber(scope.row)}}
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentName" width="80" label="姓名">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div v-if="scope.row.studentName" class="table_row_value">
|
|
|
+ <span class="card_number_repeat" v-if="scope.row.abnormalType==3">重</span> {{scope.row.studentName}}
|
|
|
+ </div>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="cardNumber" label="考号">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <span v-if="scope.row.cardNumber" :class="scope.row.abnormalType==2?'card_number_error':''">{{scope.row.cardNumber}} </span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column align="center" prop="schoolClassName" label="班级"></el-table-column> -->
|
|
|
+ </el-table>
|
|
|
+ <!-- <el-table :data="numberData.processedList" border max-height="150" v-if="rightTab=='processed'">
|
|
|
+ <el-table-column align="center" type="index" width="60" label="序号">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentName" label="姓名"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="exCode" label="考号"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="schoolClassName" label="班级"></el-table-column>
|
|
|
+ </el-table> -->
|
|
|
+ <div class="right_title">
|
|
|
+ 查询学生进行认领
|
|
|
+ </div>
|
|
|
+ <div class="right_search el_button">
|
|
|
+ <el-input type="text" style="width: 220px;" @keyup.enter.native="GetSearchStudent" v-model="searchContent" @input="GetSearchStudent" placeholder="学生姓名、考号" >
|
|
|
+ <el-button slot="append" icon="el-icon-search" style="width:68px;" @click="GetSearchStudent"></el-button>
|
|
|
+ </el-input>
|
|
|
+ <el-button class="editor_item" @click="OpenAddStudentDialog" >新增考生</el-button>
|
|
|
+ </div>
|
|
|
+ <el-table :data="searchStudetList" border :max-height="searchTableHeight" stripe style="width: 100%;">
|
|
|
+ <el-table-column align="center" prop="studentName" width="70" label="姓名">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div class="table_row_value" :title="scope.row.studentName">
|
|
|
+ {{scope.row.studentName}}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="cardNumber" label="考号" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column align="center" prop="pageNum" label="页数" width="70" >
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div class="table_row_value" >
|
|
|
+ {{ GetPaperPageNum(scope.row) }}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column align="center" prop="adminClassName" width="40" label="班级"></el-table-column> -->
|
|
|
+ <!-- <el-table-column align="center" width="60" label="状态">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div class="row_scan_status">
|
|
|
+ <div class="no_scan_btn" v-if="scope.row.scannedStatus == 0">
|
|
|
+ 未扫描
|
|
|
+ </div>
|
|
|
+ <div class="yes_scan_btn" v-if="scope.row.scannedStatus == 1">
|
|
|
+ 已扫描
|
|
|
+ </div>
|
|
|
+ <div class="repeat_scan_btn" v-if="scope.row.scannedStatus == 7">
|
|
|
+ 重号
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column> -->
|
|
|
+ <el-table-column align="center" width="90" label="操作">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div class="row_scan_status">
|
|
|
+ <div class="claim_scan_btn" v-if="scope.row.scanPictureVOS" @click="OpenViewPaper(scope.row)" >
|
|
|
+ 查看
|
|
|
+ </div>
|
|
|
+ <div class="disable_view_btn" v-else>
|
|
|
+ 查看
|
|
|
+ </div>
|
|
|
+ <div class="claim_scan_btn" @click="KaohaoClaimConfirm(scope)">
|
|
|
+ 认领
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="right_bottom_button el_button">
|
|
|
+ <div class="page_jg_20"></div>
|
|
|
+ <div class="bottom_button_two">
|
|
|
+ <!-- <el-button class="re_cut_btn" @click="OpenAddStudentDialog" >新增考生</el-button> -->
|
|
|
+ <el-button @click="MarkPositionAbnormal" class="abnormal_other_btn">标记定位异常</el-button>
|
|
|
+ <el-button @click="DeleteCurrentPaper()" class="delete_paper_btn">删除当前试卷</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 缺页异常区域 -->
|
|
|
+ <div class="right_center" v-show="abnormalType==7">
|
|
|
+ <div class="page_jg_20" ></div>
|
|
|
+ <div class="right_table">
|
|
|
+ <el-table @row-click="PendingListRowClick" :row-class-name="TableRowClassName" border :data="losePageData.pendingList" stripe :height="losePagetableHeight" align="left" >
|
|
|
+ <el-table-column align="center" width="60" type="index" label="序号"></el-table-column>
|
|
|
+ <el-table-column align="center" width="55" label="批次">
|
|
|
+ <template v-slot="scope">
|
|
|
+ {{GetPositionSelNumber(scope.row)}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentName" width="70" label="姓名">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <span v-if="scope.row.studentName">{{scope.row.studentName}} </span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="cardNumber" label="考号">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <span v-if="scope.row.cardNumber">{{scope.row.cardNumber}} </span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="examDate" width="40" label="页数">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <span v-if="scope.row.scanPictureVOS">{{scope.row.scanPictureVOS.length}} </span>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="right_bottom_button el_button">
|
|
|
+ <div class="page_jg_20"></div>
|
|
|
+ <div class="bottom_button_two">
|
|
|
+ <el-button @click="MarkPositionAbnormal" class="abnormal_other_btn">标记定位异常</el-button>
|
|
|
+ <el-button @click="MarkExamNumberAbnormal" class="abnormal_other_btn">标记考号异常</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="bottom_button_item">
|
|
|
+ <!-- <el-button @click="recyleMethod" class="recycle_bin_btn">回收站</el-button> -->
|
|
|
+ <!-- 缺页异常删除 需要用delete_batch_pic 接口 -->
|
|
|
+ <el-button @click="LosePageDelete()" class="delete_paper_btn_100">删除当前试卷</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 客观题异常区域 -->
|
|
|
+ <div class="right_center" v-show="abnormalType==4">
|
|
|
+ <!-- 已处理未开发完成 暂时先屏蔽切换 -->
|
|
|
+ <div class="right_user_tab">
|
|
|
+ <div class="tab_system_user" :class="rightTab == 'pending'?'select_cur':''" @click="ChangeTab('pending')">
|
|
|
+ 待处理({{objectData.pendingList.length}})
|
|
|
+ </div>
|
|
|
+ <div class="tab_temporay_user" :class="rightTab == 'processed'?'select_cur':''" @click="ChangeTab('processed')">
|
|
|
+ 已处理({{objectData.processedList.length}})
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="page_jg_20"></div>
|
|
|
+ <div class="right_table" ref="objectQuestionTable">
|
|
|
+ <el-table @row-click="PendingListRowClick" :row-class-name="TableRowClassName" :data="objectData.pendingList" max-height="238" border v-show="rightTab=='pending'">
|
|
|
+ <el-table-column align="center" type="index" label="序号" width="40"></el-table-column>
|
|
|
+ <el-table-column align="center" width="55" label="批次">
|
|
|
+ <template v-slot="scope">
|
|
|
+ {{GetPositionSelNumber(scope.row)}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentName" width="70" label="姓名" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column align="center" prop="exCode" label="考号" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column align="center" prop="adminClassName" width="65" label="班级"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-table @row-click="PendingListRowClick" :row-class-name="TableRowClassName" :data="objectData.processedList" border max-height="238" v-show="rightTab=='processed'">
|
|
|
+ <el-table-column align="center" type="index" width="40" label="序号">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" width="55" label="批次">
|
|
|
+ <template v-slot="scope">
|
|
|
+ {{GetPositionSelNumber(scope.row)}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentName" width="70" label="姓名" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column align="center" prop="exCode" label="考号" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column align="center" prop="adminClassName" width="65" label="班级" show-overflow-tooltip></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="right_title">
|
|
|
+ <div >客观题异常处理
|
|
|
+ <span @click="ClearValue()" class="clear_value">清空</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div ><el-checkbox v-model="isShowAbnormalQuestion" >只显示异常题</el-checkbox></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="answer_table">
|
|
|
+ <el-table :data="questionTableData" :height="objectTableHeight" border :row-class-name="ObjectTableClassName" :key="tableKey" >
|
|
|
+ <el-table-column align="center" prop="objectiveName" label="题号" width="90"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentName" label="选项">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div class="table_row_answer_choose" v-if="scope.row.questionType==3">
|
|
|
+ <div class="answer_item" @click="ChooseAnswer(scope.row,GetLetterToNumberTF(item))" :class="IsCunzai(scope.row.selectValue,GetLetterToNumberTF(item))?'choose':''" v-for="(item,index) in scope.row.optionNum" :key="index">
|
|
|
+ {{GetLetterToNumberTF(item)}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="table_row_answer_choose" v-else>
|
|
|
+ <div class="answer_item" @click="ChooseAnswer(scope.row,GetLetterToNumber(item))" :class="IsCunzai(scope.row.selectValue,GetLetterToNumber(item))?'choose':''" v-for="(item,index) in scope.row.optionNum" :key="index">
|
|
|
+ {{GetLetterToNumber(item)}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- <answerPaper :questionList="currentQuestionList" @selectClick="selectClick"></answerPaper> -->
|
|
|
+
|
|
|
+ <div class="right_bottom_button el_button">
|
|
|
+ <div class="bottom_button_two">
|
|
|
+ <el-button @click="MarkPositionAbnormal" class="abnormal_other_btn">标记定位异常</el-button>
|
|
|
+ <el-button @click="ObjectiveCheck" class="re_cut_btn" :loading="correctionLoading">校正完成</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 选做题异常区域 -->
|
|
|
+ <div class="right_center" v-show="abnormalType==5">
|
|
|
+
|
|
|
+ <!-- 已处理未开发完成 暂时先屏蔽切换 -->
|
|
|
+ <div class="right_user_tab">
|
|
|
+ <div class="tab_system_user" :class="rightTab == 'pending'?'select_cur':''" @click="ChangeTab('pending')">
|
|
|
+ 待处理({{choiceData.pendingList.length}})
|
|
|
+ </div>
|
|
|
+ <div class="tab_temporay_user" :class="rightTab == 'processed'?'select_cur':''" @click="ChangeTab('processed')">
|
|
|
+ 已处理({{choiceData.processedList.length}})
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="page_jg_20" ></div>
|
|
|
+ <div class="right_table">
|
|
|
+ <el-table @row-click="PendingListRowClick" :row-class-name="TableRowClassName" border :data="choiceData.pendingList" max-height="238" stripe v-show="rightTab=='pending'">
|
|
|
+ <el-table-column align="center" width="60" type="index" label="序号"></el-table-column>
|
|
|
+ <!-- <el-table-column align="left" prop="examName" label="批次"></el-table-column> -->
|
|
|
+ <el-table-column align="center" prop="studentName" label="姓名"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="exCode" label="考号"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="adminClassName" label="班级"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-table @row-click="PendingListRowClick" :data="choiceData.processedList" :row-class-name="TableRowClassName" border v-show="rightTab=='processed'" max-height="238" stripe >
|
|
|
+ <el-table-column align="center" type="index" width="60" label="序号">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentName" label="姓名"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="exCode" label="考号"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="adminClassName" label="班级"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="right_title">
|
|
|
+ <div>选做题异常处理</div>
|
|
|
+ <!-- <div ><el-checkbox v-model="isShowAbnormalQuestion" @change="ChanageObjectQuestionShow">只显示异常题</el-checkbox></div> -->
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="answer_table">
|
|
|
+ <el-table :data="choiceData.choiceQuestion" border :row-class-name="ObjectTableClassName" :key="tableKey" width="100%">
|
|
|
+ <el-table-column align="center" prop="topicName" label="题号" ></el-table-column>
|
|
|
+ <el-table-column align="center" :label="'选做'+choice" v-for="(choice,index) in choiceHeader" :key="index" >
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div class="table_row_answer_choose" style="justify-content:center !important;">
|
|
|
+ <!-- <div class="answer_item" :class="scope.row.selectValue==scope.row.answerVOS[index].option?'choose':''" @click="ChoiceAnswer(scope.row,scope.row.answerVOS[index].option)">
|
|
|
+ {{GetLetterToNumber(scope.row.answerVOS[index].option)}}
|
|
|
+ </div> -->
|
|
|
+ <!-- 添加判断,确保 answerVOS[index] 存在 -->
|
|
|
+ <div v-if="scope.row.answerVOS && scope.row.answerVOS[index]"
|
|
|
+ class="answer_item"
|
|
|
+ :class="scope.row.selectValue==scope.row.answerVOS[index].option?'choose':''"
|
|
|
+ @click="ChoiceAnswer(scope.row,scope.row.answerVOS[index].option)">
|
|
|
+ {{GetLetterToNumber(scope.row.answerVOS[index].option)}}
|
|
|
+ </div>
|
|
|
+ <div v-else>-</div> <!-- 当没有对应选项时显示占位符 -->
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <div class="right_bottom_button el_button">
|
|
|
+ <div class="bottom_button_two">
|
|
|
+ <el-button @click="MarkPositionAbnormal" class="abnormal_other_btn">标记定位异常</el-button>
|
|
|
+ <el-button @click="ChoiceCheck" class="re_cut_btn" :loading="correctionLoading">校正完成</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 划分异常区域 -->
|
|
|
+ <div class="right_center" v-show="abnormalType==6">
|
|
|
+ <!-- 已处理未开发完成 暂时先屏蔽切换 -->
|
|
|
+ <div class="right_user_tab">
|
|
|
+ <div class="tab_system_user" :class="rightTab == 'pending'?'select_cur':''" @click="ChangeTab('pending')">
|
|
|
+ 待处理({{subjectiveData.pendingList.length}})
|
|
|
+ </div>
|
|
|
+ <div class="tab_temporay_user" :class="rightTab == 'processed'?'select_cur':''" @click="ChangeTab('processed')">
|
|
|
+ 已处理({{subjectiveData.processedList.length}})
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="page_jg_20" ></div>
|
|
|
+ <div class="right_table" ref="subjectiveQuestionTable">
|
|
|
+ <el-table @row-click="PendingListRowClick" :row-class-name="TableRowClassName" border :data="subjectiveData.pendingList" style="width:100%;" max-height="238" v-show="rightTab=='pending'" stripe align="left">
|
|
|
+
|
|
|
+ <el-table-column align="center" type="index" label="序号" width="40"></el-table-column>
|
|
|
+ <el-table-column align="center" width="55" label="批次">
|
|
|
+ <template v-slot="scope">
|
|
|
+ {{GetPositionSelNumber(scope.row)}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentName" width="70" label="姓名" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column align="center" prop="exCode" label="考号" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column align="center" prop="adminClassName" width="65" label="班级"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-table @row-click="PendingListRowClick" :row-class-name="TableRowClassName" :data="subjectiveData.processedList" border max-height="238" v-show="rightTab=='processed'">
|
|
|
+ <el-table-column align="center" type="index" width="40" label="序号">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" width="55" label="批次">
|
|
|
+ <template v-slot="scope">
|
|
|
+ {{GetPositionSelNumber(scope.row)}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="studentName" width="70" label="姓名" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column align="center" prop="exCode" label="考号" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column align="center" prop="adminClassName" width="65" label="班级" show-overflow-tooltip></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="right_title">
|
|
|
+ <div>
|
|
|
+ 划分异常处理
|
|
|
+ <!-- <span @click="ClearValue()" class="clear_value">清空</span> -->
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-if="rightTab == 'pending'"><el-checkbox v-model="isShowAbnormalQuestion" @change="SubjectDataChange">只显示异常题</el-checkbox></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="answer_table">
|
|
|
+ <el-table :data="subjectiveTableData" :height="subjectiveTableHeight" border :row-class-name="ObjectTableClassName" :key="tableKey" >
|
|
|
+ <el-table-column align="center" prop="subjectiveName" label="题号" width="90"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="score" label="得分">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <el-input v-model="scope.row.score" :class="parseFloat(scope.row.score)>parseFloat(scope.row.subjectiveScore)?'input_error':''" placeholder="" maxlength="5" @change="ChangeSubjectScore()">
|
|
|
+ <!-- <div slot="append" class="score_count_append">
|
|
|
+ {{scope.row.questionScore || 10.5}}
|
|
|
+ </div> -->
|
|
|
+ </el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <div class="right_bottom_button el_button">
|
|
|
+ <div class="bottom_button_two">
|
|
|
+ <el-button @click="MarkPositionAbnormal" class="abnormal_other_btn">标记定位异常</el-button>
|
|
|
+ <el-button @click="SubjectiveCheck" class="re_cut_btn" :loading="correctionLoading">校正完成</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script lang="ts" setup>
|
|
|
+import { useExamStore } from '@/store/exam'
|
|
|
+import { useRouter } from 'vue-router'
|
|
|
+import { onMounted ,ref} from 'vue';
|
|
|
+
|
|
|
+// 实例化 Store
|
|
|
+const examStore = useExamStore()
|
|
|
+const router = useRouter()
|
|
|
+
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+
|
|
|
+ if (!examStore.currentExam) {
|
|
|
+ console.warn('当前没有选中的考试信息')
|
|
|
+ // 可选:如果没有数据,可以重定向回列表页或提示用户
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+})
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+
|
|
|
+</style>
|