|
@@ -0,0 +1,487 @@
|
|
|
|
+<!DOCTYPE html>
|
|
|
|
+<html>
|
|
|
|
+
|
|
|
|
+<head>
|
|
|
|
+ <meta charset="utf-8">
|
|
|
|
+ <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"
|
|
|
|
+ />
|
|
|
|
+ <title>作业批改</title>
|
|
|
|
+ <link rel="stylesheet" type="text/css" href="../css/api.css" />
|
|
|
|
+ <link rel="stylesheet" type="text/css" href="../css/style.css" />
|
|
|
|
+ <link rel="stylesheet" type="text/css" href="../css/check.css" />
|
|
|
|
+</head>
|
|
|
|
+
|
|
|
|
+<body id="data-box">
|
|
|
|
+ <div class="container">
|
|
|
|
+ <div class="fn-left handle_menu_wrap">
|
|
|
|
+ <div class="menu_title">
|
|
|
|
+ 工具
|
|
|
|
+ </div>
|
|
|
|
+ <div id="tools" class="handle_btn_list">
|
|
|
|
+ <div class="handle_btn active" data-type="right">
|
|
|
|
+ <div class="handle_btn_img">
|
|
|
|
+ <img src="../image/check/all-true.png" class="center-self" alt="">
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn_name">
|
|
|
|
+ 全对
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn" data-type="rectangle">
|
|
|
|
+ <div class="handle_btn_img">
|
|
|
|
+ <img src="../image/check/label-icon.png" class="center-self" alt="">
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn_name">
|
|
|
|
+ 错题标注
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn" data-type="wrong">
|
|
|
|
+ <div class="handle_btn_img">
|
|
|
|
+ <img src="../image/check/all-wrong.png" class="center-self" alt="">
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn_name">
|
|
|
|
+ 全错
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn" data-type="smallright">
|
|
|
|
+ <div class="handle_btn_img">
|
|
|
|
+ <img src="../image/check/true-icon.png" class="center-self" alt="">
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn_name">
|
|
|
|
+ 正确处
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn" data-type="smallwrong">
|
|
|
|
+ <div class="handle_btn_img">
|
|
|
|
+ <img src="../image/check/wrong-icon.png" class="center-self" alt="">
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn_name">
|
|
|
|
+ 错误处
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn" data-type="remove">
|
|
|
|
+ <div class="handle_btn_img">
|
|
|
|
+ <img src="../image/check/erasure-icon.png" class="center-self" alt="">
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn_name">
|
|
|
|
+ 擦除
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn" data-type="help">
|
|
|
|
+ <div class="handle_btn_img">
|
|
|
|
+ <img src="../image/check/help-icon.png" class="center-self" alt="">
|
|
|
|
+ </div>
|
|
|
|
+ <div class="handle_btn_name">
|
|
|
|
+ 帮助
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="fn-right correct_main">
|
|
|
|
+ <div class="wrong_list_wrap">
|
|
|
|
+ <div class="wrong_list_title">
|
|
|
|
+ <i class="before_icon fn-left"></i>
|
|
|
|
+ <div>错题</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="wrong_list">
|
|
|
|
+ <div id="errMsg" class="wrong_list_inner">
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="main_score">
|
|
|
|
+ <div class="main_score_title">
|
|
|
|
+ <i class="before_icon fn-left"></i>
|
|
|
|
+ <div>字迹评分</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div id="fontScore" class="main_score_num_list fn-clear">
|
|
|
|
+ <div class="main_score_num_item fn-left active">1</div>
|
|
|
|
+ <div class="main_score_num_item fn-left">2</div>
|
|
|
|
+ <div class="main_score_num_item fn-left">3</div>
|
|
|
|
+ <div class="main_score_num_item fn-left">4</div>
|
|
|
|
+ <div class="main_score_num_item fn-left">5</div>
|
|
|
|
+ <div class="main_score_num_item fn-left">6</div>
|
|
|
|
+ <div class="main_score_num_item fn-left">7</div>
|
|
|
|
+ <div class="main_score_num_item fn-left">8</div>
|
|
|
|
+ <div class="main_score_num_item fn-left">9</div>
|
|
|
|
+ <div class="main_score_num_item fn-left">10</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div id="subBut" class="small_btn_blue confirm">
|
|
|
|
+ 确认完成
|
|
|
|
+ </div>
|
|
|
|
+ <div id="moreBtn" class="more_btn"></div>
|
|
|
|
+ <div id="moreDiv" class="other_btn_wrap fn-hide">
|
|
|
|
+ <div id="expBtn" class="mark_exce">
|
|
|
|
+ 异常标记
|
|
|
|
+ </div>
|
|
|
|
+ <div id="giveupBtn" class="give_up">
|
|
|
|
+ 放弃任务
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="fn-right preview">
|
|
|
|
+ <div id="simgDiv" class="swiper-container">
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ <div class="homework_total center-self-x">
|
|
|
|
+ <span id="currentNum">1</span>/
|
|
|
|
+ <span id="sumNum">1</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="view">
|
|
|
|
+ <div id="canvasDiv" class="swiper-container center-self-x">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div id="maskDiv" class="mask_modal" style="display: none;">
|
|
|
|
+ <div class="top">
|
|
|
|
+ <div style="width: 100%;padding-left: 30%;padding-top: 20%">数据提交中,请稍等...</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <div id="errModal" class="mark_error_modal fn-hide">
|
|
|
|
+ <div class="top"></div>
|
|
|
|
+ <div class="mark_error_box center-self">
|
|
|
|
+ <div class="mark_error_box_title">
|
|
|
|
+ <div class="fn-left">
|
|
|
|
+ 选择错误标签
|
|
|
|
+ </div>
|
|
|
|
+ <div id="hideModal" class="fn-right close_icon fn-clear fn-hide">
|
|
|
|
+ <img src="../image/check/close-icon.png" class="fn-left" alt="">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div id="errTags" class="wrong_label_list">
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ <div id="errVerify" class="small_btn_blue center-self-x confirm_mark">
|
|
|
|
+ 确认
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div id="testImg">
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+</body>
|
|
|
|
+<script type="text/javascript" src="../js/check/fontsize.js"></script>
|
|
|
|
+<script type="text/javascript" src="../js/jquery.min.js"></script>
|
|
|
|
+<script type="text/javascript" src="../js/check/qiniu.min.js"></script>
|
|
|
|
+<script type="text/javascript" src="js/fabric.min.js"></script>
|
|
|
|
+<script type="text/javascript" src="js/check/canvas.js"></script>
|
|
|
|
+<script type="text/javascript" src="js/check/config.js"></script>
|
|
|
|
+<script type="text/javascript" src="js/tools/md5.min.js"></script>
|
|
|
|
+<script type="text/javascript" src="js/tools/uuid.js"></script>
|
|
|
|
+<script type="text/javascript" src="js/tools/upload.js"></script>
|
|
|
|
+
|
|
|
|
+<script type="text/javascript">
|
|
|
|
+ jQuery(function () {
|
|
|
|
+ var canvasInit = []; //已经初始化的canvas
|
|
|
|
+ var uploadImageArray = []; //需要上传的图片集合{"name":"xxx","base64":"xxx"}
|
|
|
|
+ var errTagType = {
|
|
|
|
+ '语文': ['遗漏', '理解不清晰', '粗心大意', '审题不清', '基础不牢', '积累不够', '运用错误', '区分错误', '缺乏逻辑'],
|
|
|
|
+ '数学': ['计算错误', '审题错误', '遗漏', '基础不牢固', '粗心大意', '概念不清', '换算错误', '公式不熟练', '缺乏解题技巧', '书写不端正'],
|
|
|
|
+ '英语': ['粗心大意', '审题错误', '基础不牢固', '书写不规范', '单词拼写错误', '遗漏', '介词搭配错误', '单复数错误']
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ var img = decodeURIComponent(getUrlParam('img')); //图片集合
|
|
|
|
+ var subject = decodeURIComponent(getUrlParam('subject')); //科目
|
|
|
|
+ if (!img && JSON.parse(img)) {
|
|
|
|
+ alert("网络错误");
|
|
|
|
+ }
|
|
|
|
+ img = JSON.parse(img);
|
|
|
|
+ jQuery('#sumNum').text(img.length);
|
|
|
|
+ var simgEle = "";
|
|
|
|
+ for (var i = 0; i < img.length; i++) {
|
|
|
|
+ if (i == 0) {
|
|
|
|
+ jQuery("#canvasDiv").append('<canvas id="c0" height="1100" width="825"></canvas>');
|
|
|
|
+ canvasInit.push("c0");
|
|
|
|
+ switchCanvas(img[i].i, 0);
|
|
|
|
+ simgEle += '<div class="swiper-slide swiper-slide-visible swiper-slide-active active-nav">';
|
|
|
|
+ } else {
|
|
|
|
+ simgEle += '<div class="swiper-slide swiper-slide-visible">';
|
|
|
|
+ }
|
|
|
|
+ simgEle += ('<div class="slide_inner"><img src="' + img[i].s + '" class="center-self"></div></div>');
|
|
|
|
+ }
|
|
|
|
+ jQuery("#simgDiv").append(simgEle);
|
|
|
|
+
|
|
|
|
+ //点击缩略图
|
|
|
|
+ jQuery(".swiper-slide-visible").on("click", function () {
|
|
|
|
+ var _index = jQuery(this).index(),
|
|
|
|
+ _cid = "c" + _index;
|
|
|
|
+ if (canvasInit.indexOf(_cid) == -1) {
|
|
|
|
+ jQuery("#canvasDiv").append('<canvas id="' + _cid + '" height="1100" width="825"></canvas>');
|
|
|
|
+ canvasInit.push(_cid);
|
|
|
|
+ }
|
|
|
|
+ jQuery(this).addClass("active-nav").siblings().removeClass("active-nav");
|
|
|
|
+ switchCanvas(img[_index].i, _index);
|
|
|
|
+ jQuery("#currentNum").text(1 + _index);
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ //隐藏弹窗
|
|
|
|
+ jQuery("#hideModal").on("click", function () {
|
|
|
|
+ jQuery("#errModal").addClass("fn-hide");
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ //弹窗科目错误设置
|
|
|
|
+ if (subject && errTagType[subject] && errTagType[subject].length > 0) {
|
|
|
|
+ for (var i = 0; i < errTagType[subject].length; i++) {
|
|
|
|
+ jQuery('#errTags').append('<div name="etag" class="wrong_label fn-left">' + errTagType[subject][i] + '</div>');
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //错误标签点击
|
|
|
|
+ jQuery("div[name=etag]").on("click", function () {
|
|
|
|
+ jQuery(this).toggleClass("active");
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ //错误标签选定
|
|
|
|
+ jQuery("#errVerify").on("click", function () {
|
|
|
|
+ var errTags = jQuery('#errTags').find(".active");
|
|
|
|
+ if (errTags.length <= 0) {
|
|
|
|
+ alert('请先选中标签!');
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ var errSonEle = '<div class="wrong_item">';
|
|
|
|
+ errSonEle += ' <i class="serial_number fn-left" value="' + appErrCount + '">' + appErrCount + '</i>';
|
|
|
|
+ errSonEle += '<div class="wrong_content fn-clear">';
|
|
|
|
+ for (var i = 0; i < errTags.length; i++) {
|
|
|
|
+ errSonEle += '<div class="wrong_label fn-left">' + jQuery(errTags[i]).text() + '</div>';
|
|
|
|
+ }
|
|
|
|
+ errSonEle += '</div></div>';
|
|
|
|
+ jQuery("#errMsg").prepend(errSonEle);
|
|
|
|
+ jQuery("#errModal").addClass("fn-hide");
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ //绑定工具事件
|
|
|
|
+ jQuery("#tools").find(".handle_btn").on("click", function () {
|
|
|
|
+ //设置样式
|
|
|
|
+ jQuery(this).addClass("active").siblings().removeClass("active");
|
|
|
|
+ drawType = jQuery(this).attr("data-type");
|
|
|
|
+ // window.drawType = drawType;
|
|
|
|
+ canvas.isDrawingMode = false;
|
|
|
|
+ if (drawType == "pen") {
|
|
|
|
+ canvas.isDrawingMode = true;
|
|
|
|
+ } else if (drawType == "remove") {
|
|
|
|
+ canvas.selection = true;
|
|
|
|
+ canvas.skipTargetFind = false;
|
|
|
|
+ canvas.selectable = true;
|
|
|
|
+ } else if (drawType == "help") {
|
|
|
|
+ jQuery("#c").toggleClass("fn-hide");
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ canvas.skipTargetFind = true; //画板元素不能被选中
|
|
|
|
+ canvas.selection = false; //画板不显示选中
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ //get七牛token
|
|
|
|
+ var qiniuToken = undefined;
|
|
|
|
+ jQuery.ajax({
|
|
|
|
+ type: "GET",
|
|
|
|
+ cache: false,
|
|
|
|
+ dataType: "jsonp",
|
|
|
|
+ url: config.tokenURL,
|
|
|
|
+ data: {},
|
|
|
|
+ success: function (res) {
|
|
|
|
+ qiniuToken = res.token;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ //提交作业
|
|
|
|
+ jQuery("#subBut").on("click", function () {
|
|
|
|
+ jQuery("#maskDiv").show();
|
|
|
|
+ var fs = jQuery("#fontScore").find("div.active").index() + 1;
|
|
|
|
+ if (fs <= 0) {
|
|
|
|
+ alert("操作失败,请先选择字迹评分!");
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ if (true) { //TODO:confirm("确认作业批改完成?")
|
|
|
|
+ var checkJson = {
|
|
|
|
+ "pages": [],
|
|
|
|
+ "font": fs,
|
|
|
|
+ "callback": {
|
|
|
|
+ "task_id": (getUrlParam("task_id") || ""),
|
|
|
|
+ "task_list_id": (getUrlParam("task_list_id") || ""),
|
|
|
|
+ "userinfo": (getUrlParam("userinfo") || ""),
|
|
|
|
+ "type": (getUrlParam("type") || "")
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ window.checkJson = undefined;
|
|
|
|
+ for (var i = 0; i < canvasArr.length; i++) {
|
|
|
|
+ if (canvasArr[i]) {
|
|
|
|
+ var canvasJson = {
|
|
|
|
+ "question": [],
|
|
|
|
+ "page": {
|
|
|
|
+ "img": "",
|
|
|
|
+ "imgorg": "",
|
|
|
|
+ "w": 0,
|
|
|
|
+ "h": 0,
|
|
|
|
+ "index": i
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ var objs = canvasArr[i].getObjects();
|
|
|
|
+ var checkObj = [];
|
|
|
|
+ for (var j = 0; j < objs.length; j++) {
|
|
|
|
+ if (objs[j].type && objs[j].type != 'image') {
|
|
|
|
+ checkObj.push(objs[j]);
|
|
|
|
+ } else {
|
|
|
|
+ var _imgName = md5(uuid.uuid() + new Date().getTime()) + ".png";
|
|
|
|
+ canvasJson.page.imgorg = objs[j]._element.src;
|
|
|
|
+ canvasJson.page.img = config.imgDomain + _imgName;
|
|
|
|
+ canvasJson.page.w = objs[j].width;
|
|
|
|
+ canvasJson.page.h = objs[j].height;
|
|
|
|
+ addUploadImg(canvasArr[i], objs[j], _imgName, false);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ checkObj.sort(function (x, y) { return x.top - y.top; }); //根据控件top排序
|
|
|
|
+
|
|
|
|
+ var itemSmallRight = 0, itemSmallWrong = 0, prevSmallType = true, errImg = "", errIndexs = [];
|
|
|
|
+ for (var j = 0; j < checkObj.length; j++) {
|
|
|
|
+ switch (checkObj[j].type) {
|
|
|
|
+ case 'smallright':
|
|
|
|
+ ++itemSmallRight;
|
|
|
|
+ errIndexs.push(checkObj[j].eindex);
|
|
|
|
+ break;
|
|
|
|
+ case 'smallwrong':
|
|
|
|
+ ++itemSmallWrong;
|
|
|
|
+ errIndexs.push(checkObj[j].eindex);
|
|
|
|
+ break;
|
|
|
|
+ case 'right':
|
|
|
|
+ case 'wrong':
|
|
|
|
+ prevSmallType = false;
|
|
|
|
+ break;
|
|
|
|
+ case 'rectangle': //框
|
|
|
|
+ var _imgName = md5(uuid.uuid() + new Date().getTime()) + ".png";
|
|
|
|
+ errImg = config.imgDomain + _imgName;
|
|
|
|
+ addUploadImg(canvasArr[i], checkObj[j], _imgName, true);
|
|
|
|
+ prevSmallType = false;
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ if (prevSmallType == false || j == (checkObj.length - 1)) {
|
|
|
|
+ //下一题为整题对/错 || 最后一题 (结算上一题[小错/对])
|
|
|
|
+ if (itemSmallRight > 0 || itemSmallWrong > 0) {
|
|
|
|
+ var errJson = [];
|
|
|
|
+ if (errIndexs.length > 0) {
|
|
|
|
+ for (var m = 0; m < errIndexs.length; m++) {
|
|
|
|
+ var _eindex = errIndexs[m];
|
|
|
|
+ var txt = getErrTagsByIndex(_eindex);
|
|
|
|
+ errJson.push({
|
|
|
|
+ "id": _eindex + 1,
|
|
|
|
+ "desc": txt,
|
|
|
|
+ "x": checkObj[m].left,
|
|
|
|
+ "y": checkObj[m].top
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ canvasJson.question.push({ 'r': 0, 'w': 0, 'sr': itemSmallRight, 'sw': itemSmallWrong, 'eimg': errImg, 'err': errJson });
|
|
|
|
+ errImg = "";
|
|
|
|
+ errIndexs = [];
|
|
|
|
+ itemSmallRight = 0, itemSmallWrong = 0;
|
|
|
|
+ }
|
|
|
|
+ prevSmallType = true;
|
|
|
|
+ }
|
|
|
|
+ //录入本次大题
|
|
|
|
+ if (checkObj[j].type == 'right') {
|
|
|
|
+ canvasJson.question.push({ 'r': 1, 'w': 0, 'sr': 0, 'sw': 0, 'eimg': '', 'err': [] });
|
|
|
|
+ } else if (checkObj[j].type == 'wrong') {
|
|
|
|
+ var errJson = [];
|
|
|
|
+ var _eindex = checkObj[j].eindex;
|
|
|
|
+ var txt = getErrTagsByIndex(_eindex);
|
|
|
|
+ errJson[0] = {
|
|
|
|
+ "id": _eindex + 1,
|
|
|
|
+ "desc": txt,
|
|
|
|
+ "x": checkObj[j].left,
|
|
|
|
+ "y": checkObj[j].top
|
|
|
|
+ };
|
|
|
|
+ canvasJson.question.push({ 'r': 0, 'w': 1, 'sr': 0, 'sw': 0, 'eimg': errImg, 'err': errJson });
|
|
|
|
+ errImg = "";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ checkJson.pages.push(canvasJson);
|
|
|
|
+ } else {
|
|
|
|
+ //这里的图片没有点击初始化
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ window.checkJson = JSON.stringify(checkJson);
|
|
|
|
+
|
|
|
|
+ //上传图片+请求服务器
|
|
|
|
+ uploadImg(uploadImageArray, qiniuToken);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ //更多操作
|
|
|
|
+ jQuery("#moreBtn").on("click", function () {
|
|
|
|
+ jQuery("#moreDiv").toggleClass("fn-hide");
|
|
|
|
+ });
|
|
|
|
+ //异常订单
|
|
|
|
+ jQuery("#expBtn").on("click", function () {
|
|
|
|
+ jQuery("#moreDiv").toggleClass("fn-hide");
|
|
|
|
+ if (confirm("确认为异常订单?")) {
|
|
|
|
+ //TODO:业务
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ //放弃订单
|
|
|
|
+ jQuery("#giveupBtn").on("click", function () {
|
|
|
|
+ jQuery("#moreDiv").toggleClass("fn-hide");
|
|
|
|
+ if (confirm("确认为放弃订单?")) {
|
|
|
|
+ //TODO:业务
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ //字体打分
|
|
|
|
+ jQuery("#fontScore").find("div").on("click", function () {
|
|
|
|
+ jQuery(this).addClass("active").siblings().removeClass("active");
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+ //获取url中的参数
|
|
|
|
+ function getUrlParam(name) {
|
|
|
|
+ var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
|
|
|
+ var r = window.location.search.substr(1).match(reg);
|
|
|
|
+ if (r != null) return decodeURI(r[2]);
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ //添加上传图片 (isRemove:类型bool,是否需要移除截图在添加)
|
|
|
|
+ function addUploadImg(canvas, canvasControl, imgName, isRemove) {
|
|
|
|
+ if (isRemove) {
|
|
|
|
+ canvas.remove(canvasControl);
|
|
|
|
+ }
|
|
|
|
+ var base64 = canvas.toDataURL({
|
|
|
|
+ format: 'png',
|
|
|
|
+ left: canvasControl.left,
|
|
|
|
+ top: canvasControl.top,
|
|
|
|
+ width: canvasControl.width,
|
|
|
|
+ height: canvasControl.height
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ uploadImageArray.push({ "name": imgName, "base64": base64 });
|
|
|
|
+
|
|
|
|
+ // jQuery("#testImg").append('<img src="' + base64 + '"/><br />');
|
|
|
|
+
|
|
|
|
+ if (isRemove) {
|
|
|
|
+ canvas.add(canvasControl);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //获取错误标签描述集合(根据标号)
|
|
|
|
+ function getErrTagsByIndex(eindex) {
|
|
|
|
+ var txt = "";
|
|
|
|
+ var txtCt = jQuery('#errMsg').find('.wrong_item > i[value="' + (eindex + 1) + '"]').siblings().find('div');
|
|
|
|
+ for (var k = 0; k < txtCt.length; k++) {
|
|
|
|
+ txt += txtCt.eq(k).text();
|
|
|
|
+
|
|
|
|
+ if (k != (txtCt.length - 1)) {
|
|
|
|
+ txt += ",";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return txt;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+</html>
|