Przeglądaj źródła

新增评卷复核功能

ting.yin 5 lat temu
rodzic
commit
ce6695b5d3

+ 5 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkLibraryServiceImpl.java

@@ -171,4 +171,9 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
         return libraryDao.findScore(examId, subjectCode, groupNumber, status);
         return libraryDao.findScore(examId, subjectCode, groupNumber, status);
     }
     }
 
 
+    @Override
+    public MarkLibrary save(MarkLibrary library) {
+        return libraryDao.save(library);
+    }
+
 }
 }

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/MarkLibraryService.java

@@ -36,4 +36,6 @@ public interface MarkLibraryService {
 
 
     List<Double> findScore(int examId, String subjectCode, Integer groupNumber, LibraryStatus... status);
     List<Double> findScore(int examId, String subjectCode, Integer groupNumber, LibraryStatus... status);
 
 
+    MarkLibrary save(MarkLibrary library);
+
 }
 }

+ 162 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/InspectedController.java

@@ -0,0 +1,162 @@
+package cn.com.qmth.stmms.admin.exam;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import cn.com.qmth.stmms.biz.campus.model.Campus;
+import cn.com.qmth.stmms.biz.campus.service.CampusService;
+import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
+import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
+import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
+import cn.com.qmth.stmms.biz.exam.model.Marker;
+import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
+import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
+import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
+import cn.com.qmth.stmms.biz.exam.service.MarkerService;
+import cn.com.qmth.stmms.biz.lock.LockService;
+import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
+import cn.com.qmth.stmms.biz.mark.model.MarkSpecialTag;
+import cn.com.qmth.stmms.biz.mark.model.MarkTrack;
+import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
+import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
+import cn.com.qmth.stmms.biz.mark.service.MarkSpecialTagService;
+import cn.com.qmth.stmms.biz.mark.service.MarkTrackService;
+import cn.com.qmth.stmms.biz.utils.ScoreItem;
+import cn.com.qmth.stmms.common.enums.LibraryStatus;
+import cn.com.qmth.stmms.common.utils.PictureUrlBuilder;
+
+@Controller("inspectedController")
+@RequestMapping("/admin/exam/inspected")
+public class InspectedController extends BaseExamController {
+
+    protected static Logger log = LoggerFactory.getLogger(InspectedController.class);
+
+    @Autowired
+    private MarkLibraryService libraryService;
+
+    @Autowired
+    private MarkerService markerService;
+
+    @Autowired
+    private ExamStudentService studentService;
+
+    @Autowired
+    private CampusService campusService;
+
+    @Autowired
+    private ExamQuestionService questionService;
+    
+    @Autowired
+    private MarkTrackService markTrackService;
+    
+    @Autowired
+    private MarkSpecialTagService markSpecialTagService;
+
+    @Autowired
+    private MarkGroupService groupService;
+
+    @Value("${slice.image.server}")
+    private String sliceServer;
+
+    @RequestMapping("/start")
+    @ResponseBody
+    public ModelAndView start(HttpServletRequest request, @RequestParam String subjectCode,
+            @RequestParam Integer groupNumber) {
+        int examId = getSessionExamId(request);
+        if (examId > 0) {
+            ModelAndView view = new ModelAndView("modules/exam/inspected");
+            List<Integer> ids = new ArrayList<Integer>();
+            MarkLibrarySearchQuery query = new MarkLibrarySearchQuery();
+            query.setExamId(examId);
+            query.setSubjectCode(subjectCode);
+            query.setGroupNumber(groupNumber);
+            query.setPageNumber(1);
+            query.setPageSize(1000);
+            query.addStatus(LibraryStatus.MARKED);
+            query = libraryService.findByQuery(query);
+            while (query.getCurrentCount() > 0) {
+                for (MarkLibrary library : query.getResult()) {
+                    ids.add(library.getId());
+                }
+                query.setPageNumber(query.getPageNumber() + 1);
+                query = libraryService.findByQuery(query);
+            }
+            view.addObject("sliceServer", sliceServer);
+            view.addObject("ids", StringUtils.join(ids, ","));
+            return view;
+        } else {
+            return new ModelAndView("redirect:/admin/exam/list");
+        }
+    }
+
+    @RequestMapping("/info")
+    @ResponseBody
+    public Object info(@RequestParam Integer libraryId) {
+        MarkLibrary library = libraryService.findById(libraryId);
+        ExamStudent student = studentService.findById(library.getStudentId());
+        JSONObject result = new JSONObject();
+        result.accumulate("id", libraryId);
+        result.accumulate("studentId", library.getStudentId());
+        result.accumulate("subjectCode", library.getSubjectCode());
+        result.accumulate("subjectName", student.getSubjectName());
+        Marker marker = markerService.findById(library.getMarkerId());
+        result.accumulate("markerName", marker.getLoginName());
+        result.accumulate("markerScore", library.getMarkerScore());
+
+        JSONArray array = new JSONArray();
+        List<ExamQuestion> questions = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(
+                library.getExamId(), library.getSubjectCode(), false, library.getGroupNumber());
+        List<ScoreItem> scores = library.getScoreList();
+        for (int i = 0; i < questions.size(); i++) {
+            ExamQuestion question = questions.get(i);
+            JSONObject obj = new JSONObject();
+            obj.accumulate("questionNumber", question.getMainTitle()+" "+question.getQuestionNumber());
+            obj.accumulate("score", scores.get(i).getScore());
+            array.add(obj);
+        }
+        result.accumulate("questions", array);
+        
+        MarkGroup group = groupService.findOne(student.getExamId(), student.getSubjectCode(),library.getGroupNumber());
+        Campus campus = campusService.findBySchoolAndName(student.getSchoolId(), student.getCampusName());
+        List<String> picUrls = PictureUrlBuilder.getSliceUrls(student.getExamId(), campus.getId(),
+                student.getSubjectCode(), student.getExamNumber(), student.getSliceCount());
+        List<MarkTrack> markTracks = markTrackService.findByLibraryId(library.getId());
+        List<MarkSpecialTag> markSpecialTagList = markSpecialTagService.findByLibraryId(library.getId());
+        result.accumulate("picUrls", picUrls);
+        result.accumulate("pictureConfig", group.getPictureConfigList());
+        result.accumulate("markTracks", markTracks);
+        result.accumulate("markSpecialTagList", markSpecialTagList);
+        return result;
+    }
+
+    @RequestMapping("/save")
+    @ResponseBody
+    public Object save(HttpServletRequest request, @RequestParam Integer libraryId) {
+        MarkLibrary library = libraryService.findById(libraryId);
+        if (library != null) {
+            library.setStatus(LibraryStatus.INSPECTED);
+            libraryService.save(library);
+            return true;
+        } else {
+            return false;
+        }
+    }
+}

+ 5 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/LibraryController.java

@@ -96,6 +96,10 @@ public class LibraryController extends BaseExamController {
                         group.getSubjectCode(), false, group.getNumber()));
                         group.getSubjectCode(), false, group.getNumber()));
             }
             }
         }
         }
+        MarkLibrarySearchQuery query2 = query;
+        query2.clearStatus();
+        query2.addStatus(LibraryStatus.MARKED);
+        long inspectedCount = libraryService.countByQuery(query2);
         model.addAttribute("query", query);
         model.addAttribute("query", query);
         model.addAttribute("subjectList", getExamSubject(examId, wu));
         model.addAttribute("subjectList", getExamSubject(examId, wu));
         model.addAttribute("groupList", groupList);
         model.addAttribute("groupList", groupList);
@@ -103,6 +107,7 @@ public class LibraryController extends BaseExamController {
         model.addAttribute("status", status);
         model.addAttribute("status", status);
         model.addAttribute("markerList",
         model.addAttribute("markerList",
                 markerService.findByExamAndSubjectAndGroup(examId, query.getSubjectCode(), query.getGroupNumber()));
                 markerService.findByExamAndSubjectAndGroup(examId, query.getSubjectCode(), query.getGroupNumber()));
+        model.addAttribute("inspectedCount", inspectedCount);
         return "modules/exam/libraryList";
         return "modules/exam/libraryList";
     }
     }
 
 

+ 276 - 0
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/inspected.jsp

@@ -0,0 +1,276 @@
+<%@ page language="java" pageEncoding="utf-8"%>
+<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<title>云阅卷</title>
+<meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"/>
+<link rel="stylesheet" href="${ctxStatic}/inspected/css/style.css"/>
+<script type="text/javascript" src="${ctxStatic}/mark-new/js/jquery.min.js"></script>
+<script type="text/javascript" src="${ctxStatic}/mark-new/js/jquery-ui.min.js "></script>
+<script type="text/javascript" src="${ctxStatic}/mark-new/js/jquery.mousewheel.min.js"></script>
+
+<script type="text/javascript" src="${ctxStatic}/answer-check/js/common.js"></script>
+
+<link rel="stylesheet" href="${ctxStatic}/iviewer/jquery.iviewer.css"/>
+<script type="text/javascript" src="${ctxStatic}/iviewer/jquery.iviewer.js"></script>
+
+<script type="text/javascript" src="${ctxStatic}/mark-new/js/jquery-ui.min.js"></script>
+<script type="text/javascript" src="${ctxStatic}/mark-new/js/jquery.mousewheel.min.js"></script>
+
+</head>
+<body id="index">
+<div class="wp">
+    <div id="top" class="top cl">
+        <div class="z"><div>
+            <span class="b">编号:</span><span class="i" id="studentId"></span><span class="pipe">|</span>
+            <span class="b">科目:</span><span class="i" id="subject"></span><span class="pipe">|</span>
+            <span class="b">评卷员:</span><span class="i" id="markerName"></span><span class="pipe">|</span>
+            <span class="b">未复核:</span><span class="i" id="progress"></span><span class="pipe">|</span>
+        </div></div>
+        <div class="y">
+      		<div><span class="user">${web_user.name}</span></div>
+    	</div>
+    </div></div>
+    <div class="middle">
+        <div class="middle-bg"></div>
+        <div class="box">
+			<div class="cont cl">
+	        <div class="left">
+<!-- 	          <div class="iviewer_zoom cl"> -->
+<!-- 	            <div class="iviewer_zoom_in" id="zoom-in-button"></div> -->
+<!--             	<div class="iviewer_zoom_out" id="zoom-out-button"></div> -->
+<!--             	<div class="iviewer_zoom_zero" id="zoom-origin-button"></div> -->
+<!--             	<div class="iviewer_zoom_fit" id="zoom-fit-button"></div> -->
+<!-- 	          </div> -->
+	          <div id="image-holder-track" class="image-content" style="position: relative; " ></div>
+	        </div>
+	        <div class="right">
+	          <div class="formbox">
+	            <div class="form-t">
+	              <h1><span>评分:</span><span class="i" id="markerScore"></span></h1>
+	            </div>
+	            <div class="form-m">
+	              <table class="c-table" cellpadding="0" cellspacing="0" width="100%">
+	                <thead>
+	                  <tr>
+	                    <th>小题</th>
+	                    <td>给分</td>
+	                  </tr>
+	                </thead>
+	                <tbody id="question-content">
+<!-- 	                  <tr> -->
+<!-- 	                    <th>网络教育学院2015年下半年本科学士学位主干课程考试01</th> -->
+<!-- 	                    <td>3.5</td> -->
+<!-- 	                  </tr> -->
+	                </tbody>
+	              </table>
+	            </div>
+	            <div class="form-b cl"> <a href="" id="save-button"/>确认</a><!--<a class="grey" href=""/>取消</a>--> </div>
+	          </div>
+	        </div>
+		    <div class="tipsbox">
+		      	<p><span class="icon error"></span><br>当前没有可复核的试卷</p>
+		    </div>
+        </div>
+    </div>
+</div>
+</body>
+<script type="text/javascript">
+var ids = [${ids}];
+var current;
+var student;
+var iviewer;
+var regex = /^[a-z]+$/ig;
+$(document).ready(function() {
+    $('#save-button').click(save);
+    $('#zoom-in-button').click(function(){
+        if(iviewer!=undefined) {
+            iviewer.iviewer('zoom_by', 1);
+        }
+    });
+    $('#zoom-out-button').click(function(){
+        if(iviewer!=undefined) {
+            iviewer.iviewer('zoom_by', -1);
+        }
+    });
+    $('#zoom-origin-button').click(function(){
+        if(iviewer!=undefined) {
+            iviewer.iviewer('set_zoom', 100);
+        }
+    });
+    $('#zoom-fit-button').click(function(){
+        if(iviewer!=undefined) {
+            iviewer.iviewer('fit');
+        }
+    });
+    if(ids.length==0){
+    	$(".cont cl").css("display","none");
+        return;
+    }
+    $(".tipsbox").css("display","none");
+    process(1);
+});
+
+function process(index){
+    if(index<1){
+        return;
+    }
+    if(index > ids.length){
+        alert('所有考生已处理完毕,请返回重新搜索');
+        return;
+    }
+    current = index;
+    $('#answer-content').empty();
+    $('#image-holder-track').hide();
+    $.post('${ctx}/admin/exam/inspected/info', {
+        libraryId: ids[index-1]
+    }, function(result){
+        student = result;
+        render();
+    }).error(function() {
+        alert('获取考生信息出错');
+        onProcessFinish(true)
+    });
+}
+
+function onProcessFinish(error) {
+    if(!error) {
+        $('#save-button').removeAttr("disabled");
+    }
+}
+
+function render(){
+    $('#progress').html(ids.length);
+    $('#studentId').html(student.studentId);
+    $('#subject').html(student.subjectCode+'_'+student.subjectName);
+    $('#markerName').html(student.markerName);
+    $('#markerScore').html(student.markerScore);
+    
+    for(var i=0;i<student.questions.length;i++){
+        var q = student.questions[i];
+        var dom = '<tr><th>'+q.questionNumber+'</th><td>'+q.score+'</td></tr>';
+		$("#question-content").append(dom)	;
+    }
+    
+/*     if(iviewer==undefined){
+    	  iviewer = $('#image-holder-track').iviewer({
+              src: '${sheetServer}' + student.sheetUrls[0],
+              zoom_delta: 1.2,
+              zoom: 'fit',
+              zoom_min: 10,
+              mousewheel: false,
+              zoom_animation: false,
+              update_on_resize: true,
+              ui_disabled: true,
+              onFinishLoad: function(ev, url) {
+                  $('#image-holder-track').show();
+                  onProcessFinish(false);
+              },
+              onErrorLoad: function(ev, url) {
+                  onProcessFinish(true);
+              }
+          });
+    }else{
+        iviewer.iviewer('loadImage', '${sheetServer}' + student.sheetUrls[0]);
+    } */
+    var pane = $('<canvas id="track-builder-canvas"></canvas>').appendTo($('#image-holder-track'));
+    var canvas = document.getElementById('track-builder-canvas');
+	var ctx = canvas.getContext('2d');
+    buildImages('${sliceServer}',student.picUrls,student.pictureConfig,canvas,ctx,student.markTracks,student.markSpecialTagList); 
+    $('#image-holder-track').show();
+    onProcessFinish(false);
+}
+
+function save(){
+    if(student==undefined){
+        return;
+    }
+    $.post('${ctx}/admin/exam/inspected/save', {
+    	libraryId: student.id
+    }, function(result){
+        if(result==true){
+            process(current+1);
+        }else{
+            alert('保存失败,请稍后重试');
+        }
+    });
+}
+
+function buildImages (imageServer,picUrls,config,canvas,ctx,markTracks,markSpecialTagList) {
+    var indexSet = {};
+    for(var i=0;i<config.length;i++){
+        indexSet[config[i].i-1] = true;
+    }
+    //调用图片预加载函数,实现回调函数
+    var imageObjects = [];
+    loadImages(imageObjects, imageServer, indexSet, picUrls, 0,function(images) {
+        var maxWidth = 0;
+        var totalHeight = 0;
+        for (var i = 0; i < config.length; i++) {
+            //计算最大宽度与合计高度
+            if(config[i].w<=0){
+                config[i].w=images[config[i].i-1].width;
+            }
+            if(config[i].h<=0){
+                config[i].h=images[config[i].i-1].height;
+            }
+            maxWidth = Math.max(maxWidth, config[i].w);
+            totalHeight += config[i].h;
+        }
+        if (maxWidth > 0 && totalHeight > 0) {
+            //设置画布大小及背景颜色
+            canvas.width = maxWidth;
+            canvas.height = totalHeight;
+            ctx.fillStyle = "#FFFFFF";
+            ctx.fillRect(0, 0, maxWidth, totalHeight);
+            //绘画到画布
+            var height = 0;
+            for (var i = 0; i < config.length; i++) {
+                var image = images[config[i].i-1];
+                ctx.drawImage(image, config[i].x, config[i].y, config[i].w, config[i].h, 0, height, config[i].w, config[i].h);
+                height += config[i].h;
+            }
+        }
+        //阅卷轨迹
+        if(markTracks!=undefined && markTracks.length>0){
+    		ctx.font ="60px Arial";
+    		ctx.fillStyle ='red';
+    		for (var j = 0; j < markTracks.length; j++) {
+    			ctx.fillText(
+    					markTracks[j].score,
+    					markTracks[j].positionX*canvas.width,
+    					markTracks[j].positionY*canvas.height);
+    		}
+        }
+		for (var i = 0; i < markSpecialTagList.length; i++) {
+		    ctx.font ="60px Arial";
+            ctx.fillStyle ='red';
+    		if(markSpecialTagList[i].positionX > 0 && markSpecialTagList[i].positionY > 0){
+    			ctx.fillText(markSpecialTagList[i].tagName,markSpecialTagList[i].positionX*canvas.width ,markSpecialTagList[i].positionY*canvas.height);
+        	}
+		}
+    });
+}
+
+function loadImages(images, imageServer, indexSet, urls, number, callback) {
+    if (urls != undefined && number < urls.length) {
+        if(indexSet[number]==true) {
+            var img = new Image();
+            img.onload = function() {
+                images.push(img);
+                loadImages(images, imageServer, indexSet, urls, number + 1, callback);
+            }
+            img.src = imageServer + urls[number] + '?' + new Date().getTime();
+        }else {
+            images.push({});
+            loadImages(images, imageServer, indexSet, urls, number + 1, callback);
+        }
+    } else {
+        callback.call(this, images);
+    }
+}
+
+</script>
+</html>

+ 3 - 2
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/libraryList.jsp

@@ -59,6 +59,7 @@
 			<input type="number"  id="endScroe" name="endScroe"  value="${query.endScroe}"  class="input-medium"/>
 			<input type="number"  id="endScroe" name="endScroe"  value="${query.endScroe}"  class="input-medium"/>
 			
 			
 			<input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
 			<input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
+			<a target="_blank" href="${ctx}/admin/exam/inspected/start?subjectCode=${query.subjectCode}&groupNumber=${query.groupNumber}" class="btn">待复核:${inspectedCount }</a>
 		</div>
 		</div>
 	</form>
 	</form>
 	<tags:message content="${message}"/>
 	<tags:message content="${message}"/>
@@ -118,10 +119,10 @@
                     </c:if>
                     </c:if>
 				</td>
 				</td>
 				<td>
 				<td>
-				    <c:if test="${result.status.value==1 || result.status.value==3}">
+				    <c:if test="${result.status.value==1 || result.status.value==3 ||result.status.value==5}">
 				    <a class="track-link" href="##" data-image-url="${ctx}/admin/exam/track/byLibrary?libraryId=${result.id}" data-title="${result.examNumber}">阅卷轨迹</a>
 				    <a class="track-link" href="##" data-image-url="${ctx}/admin/exam/track/byLibrary?libraryId=${result.id}" data-title="${result.examNumber}">阅卷轨迹</a>
 				    </c:if>
 				    </c:if>
-				    <c:if test="${result.status.value==1}">
+				    <c:if test="${result.status.value==1 || result.status.value==5}">
 				    &nbsp;
 				    &nbsp;
                     <a href="##" data-id="${result.id}" class="back-link">打回</a>
                     <a href="##" data-id="${result.id}" class="back-link">打回</a>
 					</c:if>
 					</c:if>

+ 326 - 0
stmms-web/src/main/webapp/static/inspected/css/style.css

@@ -0,0 +1,326 @@
+
+/*======common======*/
+* {
+	font-family: "微软雅黑","苹方";
+	margin: 0;
+	padding: 0;
+	list-style: none;
+	outline: none;
+	-webkit-tap-highlight-color: transparent;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+}
+html, body {
+	height: 100%;
+	background: #eee;
+	color: #3C454F;
+}
+a {
+	text-decoration: none;
+}
+.ellipsis {
+	text-overflow: ellipsis;
+	overflow: hidden;
+	white-space: nowrap;
+}
+.cl:after {
+	content: ".";
+	display: block;
+	height: 0;
+	clear: both;
+	visibility: hidden;
+}
+.cl {
+	zoom: 1;
+}
+.wp {
+	overflow: hidden;
+}
+/*======top======*/
+.top {
+	display: block;
+	width: 100%;
+	height: 60px;
+	overflow: hidden;
+	padding: 10px 20px;
+	background: #5D6D7D;
+	font-size: 14px;
+	color: #FFF;
+	font-weight: bold;
+}
+.top .z {
+	float: left;
+}
+.top .y {
+	float: right;
+	text-align: right;
+}
+.top>div {
+	height: 40px;
+	overflow: hidden;
+	display: inline-table;
+}
+.top>div div{
+	display: table-cell;
+	vertical-align: middle;
+}
+.top span {
+	font-size: 18px;
+	font-weight: 700;
+}
+.top span.i {
+	color: #FFFF99;
+}
+.top span.pipe {
+	font-weight: lighter;
+	font-size: 12px;
+	padding: 0 14px;
+	color: #7D8A97;
+}
+.top span.i em {
+	font-size: 14px;
+	font-weight: 100;
+	font-style: normal;
+	color: #FFF;
+	padding-left: 5px;
+}
+.top span.user {
+	background: url(../img/user.png) no-repeat 0 50%;
+	padding-left: 20px;
+}
+/*======middle======*/
+.middle {
+	width: 100%;
+	height: -moz-calc(100vh - 60px);
+	height: -webkit-calc(100vh - 60px);
+	height: calc(100vh - 60px);
+}
+.middle .middle-bg {
+	width: 100%;
+	height: 54px;
+	overflow: hidden;
+	background: #5D6D7D;
+}
+.middle .box {
+	height: 100%;
+	margin-top: -54px;
+	padding: 0 20px;
+	overflow: hidden;
+}
+.middle .cont {
+	width: 100%;
+	height: 100%;
+	padding-right: 400px;
+}
+.middle .cont .right {
+	float: right;
+	width: 380px;
+	height: 100%;
+	background: #FFF;
+	margin-right: -400px;
+}
+.middle .cont .left {
+	position:relative;
+	float: left;
+	width: 100%;
+	height: 100%;
+	overflow: hidden;
+	background: #FFF;
+}
+.image-content {
+	width: 100%;
+	height: 100%;
+	overflow-x: auto;
+	overflow-y: auto;
+}
+.tipsbox {
+	width: 100%;
+	height: 100%;
+	background: #FFF;
+	text-align: center;
+}
+.tipsbox>p {
+	padding-top: 20%;
+	font-size: 24px;
+	font-weight: 700;
+	color: #5D6D7D;
+}
+.tipsbox>p .icon {
+	display: inline-block;
+	width: 56px;
+	height: 56px;
+	overflow: hidden;
+	margin-bottom: 20px;
+}
+.tipsbox>p .loading {
+	background: url(../img/loading.gif) no-repeat 50% 50%;
+}
+.tipsbox>p .error {
+	background: url(../img/error.png) no-repeat 50% 50%;
+}
+/*======iviewer_zoom======*/
+.iviewer_zoom {
+	position: absolute;
+	right: 40px;
+	bottom: 40px;
+	z-index: 9999;
+}
+.iviewer_zoom>div {
+	display: block;
+	width: 32px;
+	height: 32px;
+	overflow: hidden;
+	background-color: rgba(93,109,125,.85);
+	background-image: url(../img/zoom_in.png);
+	background-repeat: no-repeat;
+	background-position: 50% 50%;
+	-moz-border-radius: 10px;
+	-webkit-border-radius: 10px;
+	border-radius: 10px;
+	margin-top: 6px;
+	cursor: pointer;
+}
+.iviewer_zoom .iviewer_zoom_out {
+	background-image: url(../img/zoom_out.png);
+}
+.iviewer_zoom .iviewer_zoom_zero {
+	background-image: url(../img/zoom_zero.png);
+}
+.iviewer_zoom .iviewer_zoom_fit {
+	background-image: url(../img/zoom_fit.png);
+}
+.iviewer_zoom>div:hover {
+	background-color: rgba(93,109,125,.95);
+}
+/*======formbox======*/
+.formbox {
+	position: relative;
+	height: 100%;
+	padding: 54px 0 60px 0;
+}
+.form-t {
+	z-index: 99999;
+	position: absolute;
+	left: 0;
+	top: 0;
+	width: 100%;
+	height: 54px;
+	overflow: hidden;
+	text-align: center;
+	border-bottom: 1px solid #E0E2E4;
+	box-shadow: 0 0 20px rgba(0,0,0,.1);
+}
+.form-t h1 {
+	display: inline-table;
+	margin: 0 auto;
+	font-size: 32px;
+}
+.form-t span {
+	float: left;
+	line-height: 54px;
+	font-size: 24px;
+	font-weight: 700;
+}
+.form-t span.i {
+	font-size: 30px;
+	color: #f60;
+}
+.form-m {
+	height: 100%;
+	overflow-y: auto;
+}
+.c-table {
+	font-size: 14px;
+}
+.c-table th , .c-table td {
+	border-bottom: 1px solid #EEE;
+	padding-top: 6px;
+	padding-bottom: 6px;
+	padding-left: 10px;
+	padding-right: 10px;
+}
+.c-table th {
+	
+	font-weight: 400;
+	text-align: left;
+	padding-left: 15px;
+	padding-right: 15px;
+}
+.c-table td {
+	min-width: 60px;
+	width: 60px;
+	text-align: center;
+	border-left: 1px solid #EEE;
+}
+.c-table thead th, .c-table thead td {
+	background: #fafafa;
+	border-color: #E0E2E4;
+	padding-top: 10px;
+	padding-bottom: 10px;
+	font-size: 14px;
+	font-weight: 700;
+}
+.c-table tr:hover td,.c-table tr:hover th {
+	background-color: #FaFaFa;
+}
+.form-b {
+	z-index: 99999;
+	position: absolute;
+	left: 0;
+	bottom: 0;
+	width: 100%;
+	height: 60px;
+	overflow: hidden;
+	padding: 10px;
+	border-top: 1px solid #E0E2E4;
+	box-shadow: 0 0 20px rgba(0,0,0,.05);
+	text-align: center;
+}
+.form-b a {
+	display: inline-block;
+	width: 45%;
+	height: 40px;
+	line-height: 40px;
+	overflow: hidden;
+	border: 0;
+	-moz-border-radius: 6px;
+	-webkit-border-radius: 6px;
+	border-radius: 6px;
+	background: #5D6D7D;
+	margin: 0 5px;
+	font-size: 15px;
+	font-weight: 400;
+	color: #FFF;
+	cursor: pointer;
+}
+.form-b a:hover {
+	background: #778899;
+}
+.form-b a.grey {
+	background: #E0E2E4;
+	color: #8796A5;
+}
+.form-b a.grey:hover{
+	color: #5D6D7D;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

BIN
stmms-web/src/main/webapp/static/inspected/img/00002_F.jpg


BIN
stmms-web/src/main/webapp/static/inspected/img/error.png


BIN
stmms-web/src/main/webapp/static/inspected/img/loading.gif


BIN
stmms-web/src/main/webapp/static/inspected/img/user.png


BIN
stmms-web/src/main/webapp/static/inspected/img/zoom_fit.png


BIN
stmms-web/src/main/webapp/static/inspected/img/zoom_in.png


BIN
stmms-web/src/main/webapp/static/inspected/img/zoom_out.png


BIN
stmms-web/src/main/webapp/static/inspected/img/zoom_zero.png


+ 99 - 0
stmms-web/src/main/webapp/static/inspected/index.html

@@ -0,0 +1,99 @@
+<!doctype html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>云阅卷</title>
+<meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"/>
+<link rel="stylesheet" href="css/css.css">
+<style></style>
+</head>
+<body id="index">
+<div class="wp" >
+  <div id="top" class="top cl">
+    <div class="z">
+      <div> 
+        <span class="b">编号:</span><span class="i">000000</span><span class="pipe">|</span> 
+        <span class="b">科目:</span><span class="i">英语</span><span class="pipe">|</span> 
+        <span class="b">评卷员:</span><span class="i">宋某某</span><span class="pipe">|</span> 
+        <span class="b">未复核:</span><span class="i">32</span>
+      </div>
+    </div>
+    <div class="y">
+      <div><span class="user">admin</span></div>
+    </div>
+  </div>
+  <div class="middle">
+    <div class="middle-bg"></div>
+    <div class="box">
+      <div class="cont cl" style="display:none;">
+        <div class="left">
+          <div class="iviewer_zoom cl">
+            <div class="iviewer_zoom_in"></div>
+            <div class="iviewer_zoom_out"></div>
+            <div class="iviewer_zoom_zero"></div>
+            <div class="iviewer_zoom_fit"></div>
+          </div>
+          <div id="image-holder" class="image-content" style="position: relative; " ><img src="img/00002_F.jpg"/></div>
+        </div>
+        <div class="right">
+          <div class="formbox">
+            <div class="form-t">
+              <h1><span>总分:</span><span class="i">89</span></h1>
+            </div>
+            <div class="form-m">
+              <table class="c-table" cellpadding="0" cellspacing="0" width="100%">
+                <thead>
+                  <tr>
+                    <th>小题</th>
+                    <td>给分</td>
+                  </tr>
+                </thead>
+                <tbody>
+                  <tr>
+                    <th>网络教育学院2015年下半年本科学士学位主干课程考试01</th>
+                    <td>3.5</td>
+                  </tr>
+                  <tr>
+                    <th>网络教育学院2015年下半年本科学士学位主干课程考试01</th>
+                    <td>0.5</td>
+                  </tr>
+                  <tr>
+                    <th>网络教育学院2015年下半年本科学士学位主干课程考试01</th>
+                    <td>0.5</td>
+                  </tr>
+                  <tr>
+                    <th>网络教育学院2015年下半年本科学士学位主干课程考试01</th>
+                    <td>0.5</td>
+                  </tr>
+                  <tr>
+                    <th>网络教育学院2015年下半年本科学士学位主干课程考试01</th>
+                    <td>0.5</td>
+                  </tr>
+                  <tr>
+                    <th>网络教育学院2015年下半年本科学士学位主干课程考试01</th>
+                    <td>0.5</td>
+                  </tr>
+                  <tr>
+                    <th>网络教育学院2015年下半年本科学士学位主干课程考试01</th>
+                    <td>0.5</td>
+                  </tr>
+                  <tr>
+                    <th>网络教育学院2015年下半年本科学士学位主干课程考试01</th>
+                    <td>0.5</td>
+                  </tr>
+                </tbody>
+              </table>
+            </div>
+            <div class="form-b cl"> <a href=""/>确认</a><!--<a class="grey" href=""/>取消</a>--> </div>
+          </div>
+        </div>
+      </div>
+      <div class="tipsbox">
+      	<!--<p><span class="icon loading"></span><br>程序正在加载,请稍候~</p>-->
+      	<p><span class="icon error"></span><br>当前没有可复核的试卷</p>
+      </div>
+    </div>
+  </div>
+</div>
+</body>
+</html>