1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135 |
- app.controller('LoginCtrl', [ '$rootScope', '$scope', '$http', '$location', '$q', '$timeout', '$sce', function($rootScope, $scope, $http, $location, $q, $timeout, $sce) {
- $scope.currStep = 'LoginName';
- $scope.clientMac = '';
- $scope.currentNum = 0;
- // $scope.launchFullscreen = function(element) {
- // if (document.documentElement.requestFullscreen) {
- // document.documentElement.requestFullscreen();
- // } else if (document.documentElement.mozRequestFullScreen) {
- // document.documentElement.mozRequestFullScreen();
- // } else if (document.documentElement.webkitRequestFullscreen) {
- // document.documentElement.webkitRequestFullscreen();
- // } else if (document.documentElement.msRequestFullscreen) {
- // document.documentElement.msRequestFullscreen();
- // }
- // }
- $scope.isWillCheckPhoneCode = false;
- $scope.checkCodeForm = {
- phone_code : ""
- }
- $scope.sendPhoneCodeSuccess = "";
- $scope.aliPlayer = null;
- $scope.changeLogin = function($event) {
- if ($event.target.value == '' || $event.target.value.length < 3)
- return;
- if ($event.keyCode == 13) {
- $('#login_pass').focus();
- }
- }
-
- $scope.changeLoginName = function($event) {
- if ($event.target.value == '' || $event.target.value.length < 3)
- return;
- if ($event.keyCode == 13) {
- $scope.queryJudge($.trim($event.target.value));
- }
- }
- $scope.showLoginName = function() {
- $scope.group = undefined;
- $scope.room = undefined;
- $scope.judge = undefined;
- $scope.currStep = 'LoginName';
- $timeout(function() {
- $('#login_name').focus();
- }, 100);
- }
- $scope.queryJudge = function(login_name) {
- //
- var login_pass = document.getElementById('login_pass');
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/info/loginname.htm',
- data : {
- login_name : document.getElementById('login_name').value,
- login_pass : (login_pass== undefined || login_pass == '') ? '': login_pass.value
- }
- }, function(response) {
- $scope.group = response.map.Room.group;
- $scope.room = response.map.Room;
- $scope.judge = response.map.Judge;
- $scope.disArr = response.map.discipline;
- // 单独评分 手机短信验证
- $scope.isWillCheckPhoneCode = (($scope.ParamMap['ExamJudgeGradeType'] !== undefined && $scope.ParamMap['ExamJudgeGradeType'].param_value == 'Judge') ? true : false);
- if (!$scope.isWillCheckPhoneCode)
- $scope.currStep = 'ConfrimJudge';
- })
- }
- $scope.sendPhoneCode = function() {
- $rootScope.ajaxRequest({
- url : '../exam/judge/sendPhoneCode.htm',
- data : {
- judge_id : $scope.judge.judge_id
- }
- }, function(response) {
- if (response.success) {
- $rootScope.sendPhoneCodeSuccess = true;
- $scope.codeCountDown = 30;
- $scope.countDownFn();
- $scope.checkPhoneCodeSucMsg = "短信验证码发送成功,30秒后未收到可重新发送!";
- } else {
- $scope.checkPhoneCodeErrMsg = response.errorMsg;
- }
- })
- }
- $scope.checkPhoneCode = function() {
- if ($scope.checkCodeForm.phone_code.length == 0) {
- alert('请输入手机验证码!');
- return;
- }
- $rootScope.ajaxRequest({
- url : '../exam/judge/checkPhoneCode.htm',// TODO
- data : {
- phone_code : $scope.checkCodeForm.phone_code
- }
- }, function(response) {
- if (response.success) {
- $scope.isWillCheckPhoneCode = false;
- $scope.currStep = 'ConfrimJudge';
- }
- })
- }
- $scope.countDownFn = function() {
- $timeout(function() {
- console.log($rootScope.codeCountDown);
- $scope.codeCountDown--;
- if ($scope.codeCountDown > 0) {
- $scope.countDownFn();
- }
- }, 1000);
- }
- $scope.showVideo = function(video_file, skips){
- var v = $('#video-player');
- v.html('');
- v.css("background-color","");
-
- //width: 575px;
- // height: 270px;
-
-
- $scope.aliPlayer = new Aliplayer({
- "id": "video-player",
- "source": video_file,
- "width": "575px",
- "height": "270px",
- "autoplay": true,
- "isLive": false,
- "rePlay": false,
- "playsinline": true,
- "preload": true,
- "controlBarVisibility": "hover",
- "useH5Prism": true
- }, function (player) {
- player.play();
- player.seek(skips);
- /*
- player.on('autoplay',function(data){
- // 浏览器支持自动播放
- if(!data.paramData){
- // 自动播放
- player.play();
- }else{
- // 提示用户点击播放
- }
-
- })
- */
-
- }
- );
- }
-
- $scope.closeVideo = function(){
- $scope.aliPlayer.dispose();
- }
- $scope.changeVideoSource = function(video_file, skips) {
- $scope.aliPlayer.loadByUrl(video_file);
- //自动播放
- $scope.aliPlayer.play();
- $scope.aliPlayer.seek(skips);
- }
- $scope.showGroup = function() {
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/group/list.htm',
- data : {
- exam_date : '2020-02-12'
- }
- }, function(response) {
- $scope.groupArray = response.array;
- $scope.currStep = 'ChooseGroup';
- })
- }
- $scope.chooseGroup = function(group) {
- $scope.group = group;
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/room/list.htm',
- data : {
- exam_date : '2020-02-12',
- ly_group_id : group.ly_group_id
- }
- }, function(response) {
- $scope.roomArray = response.array;
- $scope.currStep = 'ChooseRoom';
- })
- }
- $scope.chooseRoom = function(room) {
- $scope.room = room;
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/judge/list.htm',
- data : {
- ly_room_id : room.ly_room_id
- }
- }, function(response) {
- $scope.judgeArray = response.array;
- $scope.currStep = 'ChooseJudge';
- })
- }
- $scope.chooseJudge = function(judge) {
- $scope.judge = judge;
- $scope.currStep = 'ConfrimJudge';
- }
- $scope.judgeLogin = function() {
- // 生成mac
- var padMac = localStorage.getItem('padMac');
- if(!padMac) {
- padMac = $scope.judge.room_id + '_' + $scope.judge.judge_seq + "_" + $scope.judge.room_id + "_" + $scope.clientMac;
- }
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/login.htm',
- data : {
- ly_room_id : $scope.room.ly_room_id,
- judge_id : $scope.judge.judge_id,
- login_name : $scope.judge.login_name,
- // client_mac : ($scope.judge.room_id + '_' + $scope.judge.judge_seq + "_" + $scope.judge.room_id + "_" + $scope.clientMac)
- client_mac : padMac
- }
- }, function(response) {
- $scope.ExamParamMap = response.map;
- $scope.refreshTime = $rootScope.longMinuteString(new Date());
- var key = "";
- angular.forEach(response.map.Judge.des_type, function(k) {
- if (k == '1')
- key += response.map.Judge.judge_id;
- else if (k == '2')
- key += response.map.Judge.judge_seq;
- else if (k == '3')
- key += response.map.Judge.login_name;
- else if (k == '4')
- key += $scope.room.ly_room_id;
- else if (k == '5')
- key += $scope.room.room_key;
- else if (k == '6')
- key += $scope.room.ly_group_id;
- else if (k == '7')
- key += $scope.room.ly_agent_id;
- });
- // 444111
- if (key.length < 16) {
- var len = 16 - key.length;
- for (var i = 0; i < len; i++)
- key = "0" + key;
- }
- key = key.substring(0, 16);
- response.map.Judge.des_key = key;
- response.map.Judge.real_exam_seq = 0;
- $scope.judge = response.map.Judge;
- $scope.StdArray = [];
- $scope.nextExamSeq();
- $scope.currStep = 'Examing';
- $scope.scoreStdTotal = 0;
- })
- }
- /***************************************************************************
- * 评分相关函数
- */
- $scope.getParamValue = function(param_name, default_value) {
- if ($scope.ParamMap == undefined)
- return undefined;
- if ($scope.ParamMap[param_name] == undefined)
- return default_value;
- return $scope.ParamMap[param_name].param_value;
- }
- /***************************************************************************
- * 查找下一个考生
- */
- $scope.nextExamSeq = function() {
- if ($scope.judge == undefined)
- return;
- if ($scope.group.judge_cache_num <= $scope.StdArray.length) {
- // 超出等待限制
- $timeout($scope.nextExamSeq, parseInt($scope.getParamValue('NextExamSeqTicketSeconds', '10000'), 10));
- return;
- }
- $scope.last_next_time = new Date();
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/std/next.htm',
- data : $scope.judge,
- error : function() {
- // 网络错误等情况,要考虑延迟的问题
- $timeout($scope.nextExamSeq, parseInt($scope.getParamValue('NextExamSeqTicketSeconds', '5000'), 10));
- }
- }, function(data) {
- $scope.lastRequestTime = data.map.QueryNextTime;
- $scope.jsonValue = angular.toJson(data);
- var std = data.map.ExamStd;
- //debugger;
- if (data.map.ExVideoList && data.map.ExVideoList.length > 0){
- //std['material_file'] = data.map.ExVideo['video_file'];
- std.ExVideoList = data.map.ExVideoList;
- }
- if (data.map.RealExamSeq) {
- $scope.judge.real_exam_seq = data.map.RealExamSeq;
- }
- if (std && std.std_id) {
- // 是否是新考生
- var flag = true;
- for (var k = 0; k < $scope.StdArray.length; k++) {
- $scope.time_type = $scope.StdArray[k].time_type;
- if ($scope.StdArray[k].std_id - std.std_id == 0) {
- flag = false;
- return;
- }
- }
- if (flag) {
- std.SubjectArray = data.map.SubjectArray;
- var avoid = false;
- angular.forEach(std.SubjectArray, function(sb) {
- $scope.time_type = sb.time_type;
- if (sb.judge_avoid == 'Active') {
- avoid = true;
- } else {
- if (sb.judge_record_score != undefined && sb.judge_record_score != sb.judge_score) {
- sb.judge_score = sb.judge_record_score;
- }
- }
- });
- // 该考生被回避
- if (avoid) {
- angular.forEach(std.SubjectArray, function(sb) {
- sb.judge_avoid = 'Active';
- sb.judge_score = undefined;
- sb.judge_record_score = undefined;
- });
- std.avoid_flag = 'Active';
- } else {
- std.avoid_flag = undefined;
- }
- std.tracksArray = data.map.TracksArry;
- $scope.StdArray.push(std);
- // 如果当前考生不为空,判断是否焦点要自动下移
- if ($scope.currentStd != undefined) {
- // 判断是否给过分
- var score_flag = true;
- angular.forEach($scope.currentStd.SubjectArray, function(sb) {
- if (sb.judge_score == undefined && sb.judge_avoid != 'Active') {
- score_flag = false;
- }
- });
- if (score_flag) {
- // 所有科目已经给过分,光标下移
- //$scope.chooseStd(std);
- }
- } else {
- $scope.chooseStd(std);
- }
- $scope.checkGradeTotol();
- }
- $scope.judge.real_exam_seq = std.real_exam_seq;
- // 有新考生,1秒轮询
- $timeout($scope.nextExamSeq, 500);
- //计算总分
- $scope.getTotalScore(std);
- } else {
- // 没有新考生,按照规定的时间去轮询
- $timeout($scope.nextExamSeq, parseInt($scope.getParamValue('NextExamSeqTicketSeconds', '5000'), 10));
- }
- });
- }
- //多科目 多个视频--切换视频
- $scope.changeSubjVideo = function(ex_video, index) {
- $scope.currentNum = index;
- //debugger;
- var v = document.getElementById('video-player');
- if (v) {
- let skips = parseInt(ex_video["skip_prepare_secs"]);
- $scope.changeVideoSource(ex_video.video_file,skips);
- }
- }
-
- //计算总分
- $scope.getTotalScore = function(std) {
- if(std && std.SubjectArray.length > 1) {
- std.totalScore = 0;
- for(const subject of std.SubjectArray) {
- std.totalScore += parseInt(subject.judge_score == undefined ? 0 : subject.judge_score);
- }
- }
- }
-
-
- /***************************************************************************
- * 选择某个考生
- */
- $scope.chooseStd = function(std) {
- var avoid = false;
- // $scope.disciplineFlag = 'InActive';
- angular.forEach(std.SubjectArray, function(sb) {
- if (sb.judge_avoid == 'Active') {
- avoid = true;
- } else {
- // if (sb.judge_record_score != undefined &&
- // sb.judge_record_score !=
- // sb.judge_score) {
- // sb.judge_score = sb.judge_record_score;
- // }
- }
- });
- // 该考生被回避
- if (avoid) {
- angular.forEach(std.SubjectArray, function(sb) {
- sb.judge_avoid = 'Active';
- sb.judge_score = undefined;
- sb.judge_record_score = undefined;
- });
- std.avoid_flag = 'Active';
- } else {
- std.avoid_flag = undefined;
- }
- $scope.currentStd = std;
- // 首次自动加载初始化视频
- if ($scope.currentStd && $scope.getParamValue('JudgeVideoScore', 'InActive') == 'Active'
- && $scope.currentStd.separate_score == 'Active') {
- setTimeout(function() {
- var v = document.getElementById('video-player');
- //debugger;
- if (v && std.ExVideoList.length >=1 ) {
- let skips = parseInt(std.ExVideoList[0]["skip_prepare_secs"]);
- $scope.showVideo(std.ExVideoList[0].video_file, skips);
- $scope.first_load = false;
- }
- }, 2000);
- }
- if (std.SubjectArray.length == 1) {
- $scope.chooseSubject(std.SubjectArray[0]);
- } else {
- $scope.scoreStep = 'subjectPanel';
- }
- }
- /***************************************************************************
- * 点击列表选择某个考生
- */
- $scope.clickChooseStd = function(std) {
- var avoid = false;
- $scope.showScore = false;
- $scope.currentScore = undefined;
-
- angular.forEach(std.SubjectArray, function(sb) {
- if (sb.judge_avoid == 'Active') {
- avoid = true;
- } else {
- // if (sb.judge_record_score != undefined &&
- // sb.judge_record_score !=
- // sb.judge_score) {
- // sb.judge_score = sb.judge_record_score;
- // }
- }
- });
- // 该考生被回避
- if (avoid) {
- angular.forEach(std.SubjectArray, function(sb) {
- sb.judge_avoid = 'Active';
- sb.judge_score = undefined;
- sb.judge_record_score = undefined;
- });
- std.avoid_flag = 'Active';
- } else {
- std.avoid_flag = undefined;
- }
- $scope.currentStd = std;
- //开启评委视频评分
- if($scope.getParamValue('JudgeVideoScore', 'InActive') == 'Active' && $scope.currentStd.separate_score == 'Active') {
- if (std.ExVideoList && std.ExVideoList.length > 0) {
- let skips = parseInt(std.ExVideoList[0]["skip_prepare_secs"]);
- $scope.changeVideoSource(std.ExVideoList[0].video_file, skips);
- }
- }
- if (std.SubjectArray.length == 1) {
- $scope.chooseSubject(std.SubjectArray[0]);
- } else {
- $scope.scoreStep = 'subjectPanel';
- }
- if($scope.getParamValue('NineScore', 'InActive') == 'Active') {
- $scope.nineExit();
- }
- }
- /***************************************************************************
- * 选择评分科目(多科目情况下)
- */
- $scope.chooseSubject = function(sb) {
- if ($scope.currentStd.avoid_flag == 'Active')
- return;
- $scope.currentSubject = sb;
- for (var i = 0; i < $scope.ExamParamMap['SubjectScore_' + sb.subject_id].length; i++) {
- var score = $scope.ExamParamMap['SubjectScore_' + sb.subject_id][i];
- if (score.master_flag == 'Active') {
- $scope.chooseScore(score)
- break;
- }
- }
- //开启分评
- if($scope.getParamValue('JudgeVideoScore', 'InActive') == 'Active' && $scope.currentStd.separate_score == 'Active'
- && $scope.currentStd.SubjectArray.length > 1 ) {
- $scope.aliPlayer.loadByUrl(sb.video_url);
- }
-
- //currentSubject.disciplineFlag 判断是否开打违规
- if(sb.discipline_id){
- $scope.currentSubject.disciplineFlag = 'Active'
- }
-
- $scope.scoreStep = 'scorePanel';
- if($scope.getParamValue('NineScore', 'InActive') == 'Active') {
- $timeout(function() {
- $(".numkeyboard").numkeyboard();
- $(".numkeyboard").focus();
- }, 500);
- }
- }
- /***************************************************************************
- * 选择评分区间
- */
- $scope.chooseScore = function(score) {
- $scope.showScore = true;
- var array = new Array();
- for (var value = score.score_max; value >= score.score_min; value = value - (score.score_tick)) {
- var score_value = value;
- if (value < score.score_min)
- score_value = score.score_min;
- array.push({
- score_value : score_value
- });
- }
- $scope.currentScore = score;
- $scope.scoreArray = array;
- }
- /***************************************************************************
- * 对某个科目进行评分(未提交)
- */
- $scope.gradeScore = function(score_value, discipline_id) {
- //取消违规
- var obj = angular.extend({}, $scope.judge, {
- judge_score : score_value,
- std_subject_id : $scope.currentSubject.std_subject_id,
- discipline_notice: $scope.currentSubject.discipline_notice,
- discipline_id: discipline_id
- });
- //多科目计算总分
- if($scope.currentStd.SubjectArray.length > 1) {
- $scope.currentStd.totalScore = 0;
- for(const subject of $scope.currentStd.SubjectArray) {
- if( $scope.currentSubject.subject_id == subject.subject_id) {
- $scope.currentStd.totalScore += parseInt(score_value);
- } else {
- $scope.currentStd.totalScore += parseInt(subject.judge_score === undefined ? 0 : subject.judge_score);
- }
-
- }
- }
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/std/record.htm',
- data : obj
- }, function(response) {
- $scope.currentSubject.judge_score = score_value;
- $scope.checkGradeTotol();
-
- if(score_value == 20 && $scope.currentSubject.discipline_id){
- return ; //如果是单独选择的违规,那么不跳走,方便后续打分
- }
-
- if ($scope.currentStd.SubjectArray.length > 1) {
- $scope.scoreStep = 'subjectPanel';
- }
- })
- }
-
- //取消违规
- $scope.clearDiscipline = function(){
-
- $scope.currentSubject.discipline_id=undefined;
- var obj = angular.extend({}, $scope.judge, {
- judge_score : '',
- std_subject_id : $scope.currentSubject.std_subject_id,
- discipline_id: ''
- });
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/std/record.htm',
- data : obj
- }, function(response) {
- $scope.checkGradeTotol();
- $scope.stdDiscipline();
- })
- }
- /***************************************************************************
- * 回避或者取消回避
- */
- $scope.avoidStd = function() {
- var obj = angular.extend({}, $scope.judge, {
- judge_avoid : $scope.currentStd.avoid_flag == 'Active' ? 'InActive' : 'Active',
- std_subject_id : $scope.currentStd.SubjectArray[0].std_subject_id
- });
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/std/avoid.htm',
- data : obj
- }, function(response) {
- $scope.currentStd.avoid_flag = ($scope.currentStd.avoid_flag == 'Active' ? undefined : 'Active');
- angular.forEach($scope.currentStd.SubjectArray, function(sb) {
- sb.judge_score = undefined;
- sb.judge_record_score = undefined;
- sb.judge_avoid = $scope.currentStd.avoid_flag;
- });
- $scope.checkGradeTotol();
- })
- }
- /***************************************************************************
- * 判断已经评分的数量
- */
- $scope.checkGradeTotol = function() {
- var total = 0;
- angular.forEach($scope.StdArray, function(std) {
- var flag = true;
- angular.forEach(std.SubjectArray, function(sb) {
- if (sb.judge_avoid != 'Active' && sb.judge_score == undefined)
- flag = false;
- });
- if (flag) {
- std.score_flag = true;
- total++;
- } else {
- std.score_flag = false;
- }
- });
- $scope.scoreStdTotal = total;
- }
- /***************************************************************************
- * 提交前确认
- */
- $scope.confirmScore = function() {
- var flag = new Array();
- for (var i = 0; i < $scope.StdArray.length; i++) {
- flag.push($scope.StdArray[i].score_flag);
- }
- var truePosition = flag.lastIndexOf(true);
- var falsePosition = flag.indexOf(false);
- if (truePosition > falsePosition && falsePosition != -1) {
- alert('前面的考生未打分,请打分后在提交分数!');
- $scope.clickChooseStd($scope.StdArray[falsePosition]);
- return;
- }
- var array = new Array();
- for (var i = 0; i < $scope.StdArray.length; i++) {
- if ($scope.StdArray[i].score_flag == true) {
- var confirm_score_value = "";
- for (var k = 0; k < $scope.StdArray[i].SubjectArray.length; k++) {
- var subject = $scope.StdArray[i].SubjectArray[k];
- confirm_score_value = confirm_score_value + (k > 0 ? "、" : "") + subject.subject_name + "【" + (subject.judge_avoid == 'Active' ? "回避" : (subject.discipline_id?'违规'+subject.judge_score:subject.judge_score)) + "】";
- }
- $scope.StdArray[i].confirm_score_value = confirm_score_value;
- array.push($scope.StdArray[i]);
- } else {
- break;
- }
- }
- if (array.length == 0)
- return;
- $scope.confirmStdArray = array;
- if ($scope.getParamValue('ShowJudgeSign', 'InActive') == 'Active') {
- $scope.setStdNumber(array);
- }
- $scope.currStep = 'ConfirmScore';
- }
- /***************************************************************************
- * 查看分数
- */
- $scope.lookScore = function() {
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/judge/lookScore.htm',
- data : {
- room_id : $scope.room.ly_room_id,
- judge_id : $scope.judge.judge_id
- }
- }, function(response) {
- $scope.stdScoreArray = response.array;
- });
- $scope.currStep = 'LookScore';
- }
- // 选中上一个考生
- $scope.chooseLastStd = function() {
- $scope.showScore = false;
- $scope.currentScore = undefined;
- $scope.disciplineFlag = 'InActive';
- // 当前选中考生
- var curStd = $scope.currentStd;
- if (!curStd)
- return;
- for (var k = 0; k < $scope.StdArray.length; k++) {
- var std = $scope.StdArray[k];
- if (std.std_id === curStd.std_id) {
- if (k > 0) {
- $scope.currentStd = $scope.StdArray[k - 1];
- if($scope.getParamValue('JudgeVideoScore', 'InActive') == 'Active' && $scope.currentStd.separate_score == 'Active') {
- if ($scope.currentStd.ExVideoList && $scope.currentStd.ExVideoList.length > 0) {
- let skips = parseInt($scope.currentStd.ExVideoList[0]["skip_prepare_secs"]);
- $scope.changeVideoSource($scope.currentStd.ExVideoList[0].video_file, skips);
- }
- }
- $scope.clickChooseStd($scope.currentStd);
-
- //这里滚动
- $("#stuList")[0].scrollTop = $(".stu-info:eq("+(k-1)+")")[0].offsetTop -81
-
- break;
- } else {
- alert('已经是第一个考生!')
- }
- }
- }
- if($scope.getParamValue('NineScore', 'InActive') == 'Active') {
- $scope.nineExit();
- }
- }
- // 选中下一个考生
- $scope.chooseNextStd = function() {
- $scope.showScore = false;
- $scope.currentScore = undefined;
- $scope.disciplineFlag = 'InActive';
- // 当前选中考生
- var curStd = $scope.currentStd;
- if (!curStd)
- return;
- for (var k = 0; k < $scope.StdArray.length; k++) {
- var std = $scope.StdArray[k];
- if (std.std_id === curStd.std_id) {
- if ((k + 1) < $scope.StdArray.length) {
- $scope.currentStd = $scope.StdArray[k + 1];
- if($scope.getParamValue('JudgeVideoScore', 'InActive') == 'Active' && $scope.currentStd.separate_score == 'Active') {
- if ($scope.currentStd.ExVideoList && $scope.currentStd.ExVideoList.length > 0) {
- let skips = parseInt($scope.currentStd.ExVideoList[0]["skip_prepare_secs"]);
- $scope.changeVideoSource($scope.currentStd.ExVideoList[0].video_file, skips);
- }
- }
- $scope.clickChooseStd($scope.currentStd);
-
- $("#stuList")[0].scrollTop = $(".stu-info:eq("+(k+1)+")")[0].offsetTop -81
-
- break;
- } else {
- // 无下一个考生 提示 TODO
- alert('已经是最后一个考生!')
- }
- }
- }
- if($scope.getParamValue('NineScore', 'InActive') == 'Active') {
- $scope.nineExit();
- }
-
- }
- // aes加密
- $scope.aesValue = function(value) {
- var key = CryptoJS.enc.Utf8.parse($scope.judge.des_key);
- var str = CryptoJS.enc.Utf8.parse(value);
- var base64 = CryptoJS.enc.Base64.stringify(str);
- var encrypted = CryptoJS.AES.encrypt(str, key, {
- mode : CryptoJS.mode.ECB,
- padding : CryptoJS.pad.Pkcs7
- });
- return encrypted.toString();
- }
- /***************************************************************************
- * 提交分数
- */
- $scope.submitScore = function() {
- // && !$("#signature")[0].contentWindow.flag
- if ($scope.getParamValue('ShowJudgeSign', 'InActive') == 'Active' && $("#signature")[0].contentWindow.document.getElementById('saveBtn').disabled) {
- alert('提交分数前,请先保存签名!');
- return;
- }
- if ($scope.getParamValue('ShowJudgeSign', 'InActive') == 'Active') {
- $("#signature")[0].contentWindow.saveSignature();
- }
- var std = undefined;
- $scope.commitScoreFlag = true;
- for (var i = 0; i < $scope.confirmStdArray.length; i++) {
- if ($scope.confirmStdArray[i].commit_flag != true) {
- std = $scope.confirmStdArray[i];
- break;
- }
- }
- if (std == undefined) {
- $scope.commitScoreFlag = undefined;
- $scope.currentSubject = undefined;
- $scope.currentScore = undefined;
- $scope.currentStd = undefined;
- // 已经完成评分
- $scope.confirmStdArray = [];
- $scope.currStep = 'Examing';
- if ($scope.StdArray.length > 0) {
- $scope.chooseStd($scope.StdArray[0]);
- }
- return;
- }
- debugger;
- if ($scope.requestingStdId == undefined) {
- $scope.requestingStdId = std.std_id;
- $scope.submitStdScore(std);
- }
- // 1秒钟等待
- $timeout($scope.submitScore, 1000);
- }
- /***************************************************************************
- * 提交分数,单个考生
- */
- $scope.submitStdScore = function(std) {
- debugger;
- angular.forEach(std.SubjectArray, function(sb) {
- sb.room_id = $scope.room.ly_room_id;
- sb.agent_id = $scope.judge.agent_id;
- sb.judge_id = $scope.judge.judge_id;
- sb.judge_seq = $scope.judge.judge_seq;
- sb.real_exam_seq = std.real_exam_seq;
- if (sb.judge_avoid == 'Active')
- std.judge_avoid = 'Active';
- });
- var data = angular.extend({}, $scope.judge, {
- score_json : $scope.aesValue(angular.toJson(std.SubjectArray)),
- std_id : std.std_id,
- real_exam_seq : std.real_exam_seq,
- judge_avoid : std.judge_avoid,
- remark : std.remark,
- discipline_id: std.discipline_id
- });
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/std/score.htm',
- data : data,
- error : function() {
- // $scope.submitStdScore(std);
- // 出现评分分差,跳转到打分界面
- $scope.confirmStdArray = [];
- $scope.requestingStdId = undefined;
- }
- }, function(response) {
- std.commit_flag = true;
- $scope.scoreStdTotal = $scope.scoreStdTotal - 1;
- // 移除队列
- for (var i = 0; i < $scope.StdArray.length; i++) {
- if ($scope.StdArray[i].std_id == std.std_id) {
- $scope.StdArray.splice(i, 1);
- break;
- }
- }
- $scope.requestingStdId = undefined;
- })
- }
- $scope.cancelConfirm = function() {
- $scope.currStep = 'Examing';
- //是否开启视频评分
- if($scope.getParamValue('JudgeVideoScore', 'InActive') == 'Active' && $scope.currentStd.separate_score == 'Active') {
- setTimeout(function() {
- var v = document.getElementById('video-player');
- if (v) {
- let skips = parseInt($scope.currentStd.ExVideoList[0]["skip_prepare_secs"]);
- $scope.showVideo($scope.currentStd.ExVideoList[0].video_file, skips);
- $scope.first_load = false;
- }
-
- }, 1000);
- }
- }
- $scope.showJudge = function() {
- $scope.modifyJudge = angular.extend({}, $scope.judge, {});
- // 显示评分版
- $('#judgeModal').modal('show')
- }
- $scope.changeJudge = function() {
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/judge/modify.htm',
- data : $scope.modifyJudge
- }, function(response) {
- $scope.judge = response.entity;
- // todo 更优雅的提醒方式
- alert('评委信息已修改!');
- $('#judgeModal').modal('hide')
- })
- }
- $scope.exitJudge = function() {
- $scope.judge = undefined;
- $scope.currentSubject = undefined;
- $scope.currentScore = undefined;
- $scope.currentStd = undefined;
- $scope.scoreStdTotal = 0;
- $scope.StdArray = [];
- $scope.confirmStdArray = undefined;
- $scope.requestingStdId == undefined;
- if ($scope.groupArray != undefined) {
- $scope.chooseRoom($scope.room);
- } else {
- $scope.currStep = 'LoginName';
- }
- }
- $scope.getBatchName = function(tracks) {
- var current_batch = 1;
- angular.forEach($scope.currentStd.tracksArray, function(t) {
- if (t.tracks_batch > current_batch)
- current_batch = t.tracks_batch;
- });
- if (tracks.tracks_batch == 1) {
- return '';
- }
- if (tracks.tracks_batch == 2)
- return '复试:'
- return '三试:'
- }
- $scope.getTracksClass = function(tracks) {
- var current_batch = 1;
- angular.forEach($scope.currentStd.tracksArray, function(t) {
- if (t.tracks_batch > current_batch)
- current_batch = t.tracks_batch;
- });
- if (current_batch == tracks.tracks_batch) {
- return 'text-success';
- }
- return '';
- }
- $scope.login = function() {
- var login_name = document.getElementById('login_name').value;
- if (!login_name) {
- alert('请输入评委登录账号!');
- return;
- }
- $scope.queryJudge($.trim(login_name));
- //$scope.launchFullscreen();
- }
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/param.htm'
- }, function(response) {
- var map = {};
- for (var i = 0; i < response.array.length; i++) {
- map[response.array[i].param_name] = response.array[i];
- }
- $scope.ParamMap = map;
- if ($scope.getParamValue('JudgeLoginType', 'LoginName') == 'ChooseGroup') {
- $scope.showGroup();
- }
- //是否开启生成Pad随机码
- if($scope.getParamValue('PadRandomCode', 'Active') == 'Active') {
- $scope.generateRandom();
- }
- });
- /***************************************************************************
- * 获取客户端的MAC地址
- */
- $rootScope.ajaxRequest({
- url : '../exam/judge/grade/judge/getMac.htm'
- }, function(response) {
- if (response) {
- $scope.clientMac = response.entity;
- }
- });
- /***************************************************************************
- * 获取提交考生的起止序号
- */
- $scope.setStdNumber = function(array) {
- $scope.numberBetween = "";
- if(array.length >= 1) {
- $scope.numberBetween += array[0].real_exam_echo;
- $scope.numberBetween += "~" + array[array.length-1].real_exam_echo;
- }
- }
- // 清除签名
- $scope.clearCanvas = function() {
- $("#signature")[0].contentWindow.clearCanvas();
- }
- // 保存签名
- $scope.saveSignature = function() {
- if ($("#signature")[0].contentWindow.document.getElementById('saveBtn').disabled) {
- alert('保存签名前,请先签名!');
- return;
- }
- $("#signature")[0].contentWindow.saveSignature();
- }
-
- //标记违纪
- $scope.stdDiscipline = function(sb) {
- if($scope.currentSubject.disciplineFlag == 'Active'){
- $scope.currentSubject.disciplineFlag = 'InActive';
- //$scope.currentSubject.discipline_id = ''
- }else{
- $scope.currentSubject.disciplineFlag = 'Active';
- }
- }
-
- $timeout(function() {
- $('#login_name').focus();
- // $scope.launchFullscreen();
- }, 100);
-
-
- //***九宫格输分***************************************************************
- //保存录入分数
- $scope.saveJudgeScore = function() {
- var score = $('#score_cur').val();
- //录入前判断
- if(score == '00' || score == '000') {
- score = '0';
- }
- if(score.length == 2 && score.substring(0,1) == '0') {
- score = score.substring(1,2);
- }
- if(score.length == 3 && score.substring(0,1) == '0') {
- score = score.substring(1,3);
- }
- $scope.gradeScore(score);
- }
-
- //返回到科目选择界面
- $scope.backPanel = function() {
- $scope.scoreStep = 'subjectPanel';
- $scope.nineExit();
- }
- //九宫格控制
- $scope.nineExit = function() {
- if($(".auth_keybord")) {
- $(".auth_keybord").css({
- "display" : "none"
- });
- }
- }
-
- //***九宫格输分***************************************************************
-
- /**********************************
- * 生成32随机码
- */
- $scope.randomString = function(len) {
- len = len || 32;
- var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
- var maxPos = $chars.length;
- var str = '';
- for (i = 0; i < len; i++) {
- str += $chars.charAt(Math.floor(Math.random() * maxPos));
- }
- return str;
- }
-
- /**********************************
- * 本地存储随机码
- */
- $scope.generateRandom = function() {
- if(!window.localStorage){
- alert("浏览器不支持localstorage");
- return false;
- }else{
- if(!localStorage.getItem('padMac')) {
- localStorage.setItem('padMac', $scope.randomString());
- }
- }
- }
-
-
- /**********************************
- * 查看考题
- */
- $scope.lookTopic = function() {
- $rootScope.ajaxRequest({
- url : '../std/video/topic.htm',
- data: {
- std_id : $scope.currentStd.std_id,
- ly_group_id : $scope.currentSubject.ly_group_id
- }
- }, function(response) {
- $scope.topic = response.array;
- $('#topicModal').modal('show');
- });
- }
-
-
- $scope.showPhoto = function() {
- // 显示评分版
- $('#judgeModal2').modal('show');
- }
-
-
- } ]);
|