judge.html 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  6. <meta http-equiv="pragma" content="no-cache">
  7. <meta http-equiv="cache-control" content="no-cache">
  8. <meta http-equiv="expires" content="0">
  9. <!-- Bootstrap CSS -->
  10. <link rel="stylesheet" href="../vendor/bootstrap-4.4.1/css/bootstrap.min.css">
  11. <link rel="stylesheet" href="../vendor/fontawesome-free-5.12.1-web/css/all.min.css">
  12. <link rel="stylesheet" href="./judge.css">
  13. <!--阿里播放组件 -->
  14. <link rel="stylesheet" href="../vendor/aliplayer/aliplayer-min.css">
  15. <script type="text/javascript" charset="utf-8" src="../vendor/aliplayer/aliplayer-min.js"></script>
  16. <!--阿里播放组件 -->
  17. <link rel="stylesheet" href="https://g.alicdn.com/de/prismplayer/2.8.7/skins/default/aliplayer-min.css" />
  18. <script type="text/javascript" charset="utf-8" src="https://g.alicdn.com/de/prismplayer/2.8.7/aliplayer-min.js"></script>
  19. <title>无纸化评分系统</title>
  20. </head>
  21. <body ng-app="app" ng-controller="AppCtrl" ontouchstart>
  22. <div id="main_div" ng-controller="LoginCtrl">
  23. <div class="d-flex flex-column flex-md-row align-items-center p-3 px-md-4 mb-3 bg-white border-bottom shadow-sm">
  24. <h5 class="my-0 mr-md-auto font-weight-normal">启明禾木</h5>
  25. <!--
  26. <nav class="my-2 my-md-0 mr-md-3">
  27. <a class="p-2 text-dark" href="#">笔试拍照</a> <a class="p-2 text-dark"
  28. href="#">面试拍照</a> <a class="p-2 text-dark" href="#">扫描登录</a>
  29. </nav> -->
  30. <!-- <a class="btn btn-outline-primary" href="#" id="div_fullscreen" ng-click="launchFullscreen()" style="">全屏</a> -->
  31. <a class="btn btn-outline-primary ml-3" href="#" ng-click="showGroup()" ng-if="currStep == 'LoginName' && getParamValue('JudgeLoginByGroup')=='Active'">选考场</a> <a class="btn btn-outline-primary" href="#" ng-click="showLoginName()" ng-if="currStep == 'ChooseGroup'">用户名登录</a> <a class="btn btn-outline-info ml-3" href="#" ng-click="showJudge()" ng-if="currStep == 'Examing'">{{judge.login_name}}</a> <a class="btn btn-outline-danger ml-3" href="#" ng-click="exitJudge()" ng-if="currStep == 'Examing'">退出登录</a>
  32. </div>
  33. <!-- 登录和选择窗口 -->
  34. <div class="container" ng-if="currStep != 'Examing' && currStep !='ConfirmScore'">
  35. <h6 class="my-0 login_title_30">{{getParamValue('JudgeLoginMajorText','武汉启明禾木软件服务有限公司')}}</h6>
  36. <h4 class="my-0 login_title">
  37. {{getParamValue('JudgeLoginTitleText','武汉启明禾木软件服务有限公司')}}
  38. </h4>
  39. <div class="card-deck mb-3 text-center mt-5">
  40. <div class="card mb-4 shadow-sm" ng-if="currStep== 'LoginName'">
  41. <input class="form-control clearable" style="font-size: 50px;font-weight:10;" id="login_name" style="height: 80px;" ng-keyup="changeLogin($event)" placeholder="请输入用户名" autocomplete="off" autofocus="" tabindex="0" maxlength=11 autocorrect="off" autocapitalize="off" spellcheck="false">
  42. </div>
  43. <div ng-if="currStep== 'LoginName' && getParamValue('ExamJudgeLoginWithPassword') == 'Active'">
  44. <label style="height: 80px; width:100px;" ></label>
  45. </div>
  46. <div class="mb-4 shadow-sm" ng-if="currStep== 'LoginName' && getParamValue('ExamJudgeLoginWithPassword', 'InActive') == 'InActive'">
  47. <button type="button" class="btn btn-outline-primary" style="height: 90px; width:100px;" ng-click="login()">登录</button>
  48. </div>
  49. </div>
  50. <div class="card-deck mb-3 text-center mt-5" ng-if="getParamValue('ExamJudgeLoginWithPassword') == 'Active'">
  51. <div class="card mb-4 shadow-sm" ng-if="currStep== 'LoginName' ">
  52. <input class="form-control clearable" type="password" style="font-size: 50px;font-weight:10;" id="login_pass" style="height: 80px;" ng-keyup="changeLoginName($event)" placeholder="请输入密码" autocomplete="off" autofocus="" tabindex="0" maxlength=11 autocorrect="off" autocapitalize="off" spellcheck="false">
  53. </div>
  54. <div class="mb-4 shadow-sm" ng-if="currStep== 'LoginName'">
  55. <button type="button" class="btn btn-outline-primary" style="height: 90px; width:100px;" ng-click="login()">登录</button>
  56. </div>
  57. </div>
  58. <!-- 手机验证码 -->
  59. <div class="card-deck mb-3 text-center mt-5" ng-if="isWillCheckPhoneCode == true">
  60. <div class="card mb-4 shadow-sm" >
  61. <input class="form-control login_name clearable" id="phone_code" ng-model="checkCodeForm.phone_code" placeholder="" autocomplete="off" autofocus="" tabindex="0" maxlength=11 autocorrect="off" autocapitalize="off" spellcheck="false">
  62. </div>
  63. <div class="mb-4 shadow-sm">
  64. <button type="button" class="btn btn-outline-primary mr-3" style="height: 140px; width:100px;" ng-click="sendPhoneCode()" ng-disabled="codeCountDown > 0">发送手机验证码{{codeCountDown==0?"":codeCountDown}}</button>
  65. </div>
  66. <center>
  67. <button type="button" class="btn btn-outline-primary" style="height: 140px; width:100px;" ng-click="checkPhoneCode()">验证</button>
  68. </center>
  69. </div>
  70. <div class="card-deck mb-3 text-center mt-5 ml-3" ng-if="isWillCheckPhoneCode == true && checkPhoneCodeSucMsg " style="font-size:40px;font-weight:600;color:green">
  71. {{checkPhoneCodeSucMsg}}
  72. </div>
  73. <div class="card-deck mb-3 text-center mt-5 ml-3" ng-if="isWillCheckPhoneCode == true && checkPhoneCodeErrMsg " style="font-size:40px;font-weight:600;color:red">
  74. {{checkPhoneCodeErrMsg}}
  75. </div>
  76. <!-- 手机验证码 -->
  77. <!-- 手动选择面试项目 -->
  78. <div ng-if="currStep == 'ChooseGroup'" class="container">
  79. <table class="table table-bordered table-hover">
  80. <thead>
  81. <tr>
  82. <th scope="col">#</th>
  83. <th scope="col">面试项目</th>
  84. <th scope="col">评委数量</th>
  85. <th scope="col"></th>
  86. </tr>
  87. </thead>
  88. <tbody>
  89. <tr ng-repeat="group in groupArray">
  90. <th scope="row">{{$index+1}}</th>
  91. <td>{{group.group_name}}</td>
  92. <td>{{group.room_judge_num}}</td>
  93. <td><button type="button" class="btn btn-primary" ng-click="chooseGroup(group)">选择该面试</button></td>
  94. </tr>
  95. <tr ng-if="groupArray == undefined ||groupArray.length ==0">
  96. <td colspan=4 class="text-center">本日无考试安排</td>
  97. </tr>
  98. </tbody>
  99. </table>
  100. </div>
  101. <!-- 手动选择面试项目 -->
  102. <!-- 手动选择考场 -->
  103. <div ng-if="currStep == 'ChooseRoom'" class="container">
  104. <p class="h1">面试类型:{{group.group_name}}</p>
  105. <table class="table table-bordered table-hover">
  106. <thead>
  107. <tr>
  108. <th scope="col">#</th>
  109. <th scope="col">考场地址</th>
  110. <th scope="col">考场状态</th>
  111. <th>{{group.group_name}}</th>
  112. </tr>
  113. </thead>
  114. <tbody>
  115. <tr ng-repeat="room in roomArray" ng-if="room.room_status=='Active'">
  116. <th scope="row">{{$index+1}}</th>
  117. <td>{{room.room_addr}}</td>
  118. <td><span ng-if="room.exam_status == 'Init'" class="">等待工作人员开启</span> <span ng-if="room.exam_status == 'Judge'" class="text-primary">等待评委登录</span> <span ng-if="room.exam_status == 'Examing'" class="text-success">考试中</span> <span ng-if="room.exam_status == 'Complete'" class="text-danger">考试结束</span></td>
  119. <td><button type="button" class="btn btn-primary" ng-click="chooseRoom(room)" ng-if="room.exam_status=='Judge' || room.exam_status == 'Examing'">选择该考场</button></td>
  120. </tr>
  121. <tr>
  122. <td colspan="4" class="text-center"><button type="button" class="btn btn-primary" ng-click="showGroup()">返回选择面试项目</button></td>
  123. </tr>
  124. </tbody>
  125. </table>
  126. </div>
  127. <!-- 手动选择考场 -->
  128. <!-- 考场评委状态 -->
  129. <div ng-if="currStep == 'ChooseJudge'" class="container">
  130. <p class="h1">{{group.group_name}} - {{room.room_addr}}</p>
  131. <table class="table table-bordered table-hover">
  132. <thead>
  133. <tr>
  134. <th scope="col">评委序号</th>
  135. <th scope="col">登录名称</th>
  136. <th scope="col">登录状态</th>
  137. <th></th>
  138. </tr>
  139. </thead>
  140. <tbody>
  141. <tr ng-repeat="judge in judgeArray">
  142. <th scope="row">第{{judge.judge_seq}}评委</th>
  143. <th>{{judge.login_name}}</th>
  144. <td><span ng-if="judge.judge_status == 'Init'" class="">未登录</span> <span ng-if="judge.judge_status == 'Examing'" class="text-success">已登录</span></td>
  145. <td><button type="button" class="btn btn-primary" ng-click="chooseJudge(judge)">选择该评委</button></td>
  146. </tr>
  147. </tbody>
  148. </table>
  149. </div>
  150. <!-- 考场评委状态 -->
  151. <div ng-if="currStep == 'ConfrimJudge'" class="container">
  152. <table class="table table-bordered table-hover">
  153. <tbody>
  154. <tr>
  155. <td>面试项目</td>
  156. <th><p class="h1">{{group.group_name}}</p></th>
  157. </tr>
  158. <tr>
  159. <td>考场地址</td>
  160. <th><p class="h1">{{room.room_addr}}</p></th>
  161. </tr>
  162. <tr>
  163. <td>登录名称</td>
  164. <th><p class="h1">{{judge.login_name}}</p></th>
  165. </tr>
  166. <tr>
  167. <td>评委姓名</td>
  168. <th><p class="h1">{{judge.judge_name}}</p></th>
  169. </tr>
  170. <tr>
  171. <td colspan="2"><button type="button" class="btn btn-primary btn-lg" ng-click="judgeLogin()">确定登录</button>
  172. <button type="button" class="btn btn-secondary btn-lg ml-5" ng-click="showLoginName()">重新选择</button></td>
  173. </tr>
  174. </tbody>
  175. </table>
  176. </div>
  177. </div>
  178. <!-- 登录和选择窗口 -->
  179. <div class="" ng-if="currStep == 'Examing'">
  180. <div class="row">
  181. <!--左侧考生序号和考试科目 -->
  182. <div class="col-xs-4 col-lg-4 col-sm-4 col-md-4 div_left">
  183. <table class="table table-borderless table-hover">
  184. <tbody>
  185. <tr ng-repeat="std in StdArray" class="alert {{std.std_id == currentStd.std_id?'alert-warning':'alert-secondary'}}" ng-click="clickChooseStd(std)">
  186. <th scope="row" style="vertical-align: middle">{{std.real_exam_echo}}</th>
  187. <td>
  188. <ul class="list-group ">
  189. <li class="list-group-item " ng-repeat="sb in std['SubjectArray']">{{sb.subject_name}}
  190. <span ng-if="sb.judge_score == undefined && sb.judge_avoid !='Active'" class="ml-2"><i class="fas fa-edit "></i> </span>
  191. <span ng-if="sb.judge_avoid == 'Active'" class="ml-2 text-danger">回避</span>
  192. <span ng-if="sb.judge_score != undefined" class="ml-2 text-success text-bold h2">{{sb.judge_score}}</span>
  193. </li>
  194. </ul></td>
  195. </tr>
  196. </tbody>
  197. </table>
  198. </div>
  199. <!-- 左侧考生序号和考试科目 -->
  200. <div class="jumbotron col-xs-7 col-lg-7" ng-if="currStep == 'Examing' && currentStd ==undefined">
  201. <h1 class="display-4">等待考生进场</h1>
  202. <p class="lead">上次查询时间:{{lastRequestTime}}</p>
  203. <hr class="my-4">
  204. <p>工作人员正在核实考生身份,请稍候,考生进场系统将自动刷新,无需进行其他操作!</p>
  205. </div>
  206. <div class="col-xs-8 col-lg-8 col-sm-8 col-md-8" ng-if="currStep == 'Examing' && currentStd !=undefined">
  207. <!-- 头部 -->
  208. <div class="row" ng-if="currentStd.material_file ==undefined">
  209. <!-- 序号和姓名 -->
  210. <div class="col-xs-2 col-lg-2">
  211. <div class="row text-center h1">{{currentStd.real_exam_echo}}号考生</div>
  212. <div class="row text-center h2">{{currentStd.std_name}}</div>
  213. </div>
  214. <!-- 序号和姓名 -->
  215. <div class="col-xs-2 col-lg-2 text-center">
  216. <!-- 图片 -->
  217. <img ng-if="currentStd.std_image!=undefined" ng-src="{{currentStd.std_image}}" class="rounded img-thumbnail" style="width: 120px; height: 150px;" alt="...">
  218. </div>
  219. <div class="col-xs-5 col-lg-5" ng-if="currentStd.aspect_name !=undefined">
  220. <div class="row text-center h2">{{currentStd.aspect_name}}</div>
  221. </div>
  222. <div class="col-xs-3 col-lg-3" ng-if="currentStd.ticket_no !=undefined">
  223. <div class="row text-center h2">{{currentStd.ticket_no}}</div>
  224. </div>
  225. <div class="col-xs-8 col-lg-8">
  226. <div ng-repeat="t in currentStd.tracksArray">
  227. <s ng-if="t.tracks_status == 'InActive'" class="text-muted">{{getBatchName(t)}}{{t.tracks_name}}</s>
  228. <span ng-if="t.tracks_status == 'Active'" class="{{getTracksClass(t)}}">{{getBatchName(t)}}{{t.tracks_name}}</span>
  229. </div>
  230. <!-- 曲目信息 -->
  231. </div>
  232. </div>
  233. <!-- 头部 -->
  234. <!-- 视频播放窗口,无用可删除 -->
  235. <div class="row" ng-if="currentStd.material_file !=undefined && currentStd.material_file != '' && getParamValue('JudgeVideoScore') == 'Active' && currentStd.separate_score == 'Active'">
  236. <div style="width:1320px;">
  237. <div style="width:90%;margin:3px !important;background-color: #eee;font-size: 18px;font-weight: bold;">
  238. <table style="width: 100%;height: 100%;">
  239. <tr>
  240. <td style="width: 80%;height: 60%;padding: 10px 0px 10px 10px;">
  241. <!-- todo 增加判断 material_file 是否为视频文件 -->
  242. <div id="video-player" style="height: 450px; width: 930px;background-color: grey;vertical-align: middle">
  243. <font style="font-size:26px;margin:20px">等待视频控件加载...</font>
  244. </div>
  245. </td>
  246. <!-- 序号,照片,姓名 -->
  247. <td align="center" style="width: 20%;vertical-align: middle;">
  248. 考生序号:{{currentStd.real_exam_echo}}
  249. <br>
  250. <!-- 图片 -->
  251. <img ng-if="currentStd.std_image!=undefined" ng-src="{{currentStd.std_image}}" class="rounded img-thumbnail" style="width: 120px; height: 150px;" alt="...">
  252. <br>
  253. {{currentStd.std_name}}
  254. <br>
  255. <span style="float: auto !important;">
  256. <button type="button" class="btn btn-info" ng-click='chooseLastStd()'>上一个考生</button>
  257. <br>
  258. <button type="button" class="btn btn-info mt-2" ng-click='chooseNextStd()'>下一个考生</button>
  259. </span>
  260. </td>
  261. <td style="width:10px">
  262. </td>
  263. </tr>
  264. </table>
  265. </div>
  266. <!-- <img ng-if="currentStd.material_file!=undefined" src='../fonts/video_play.png' ng-click="showVideo(currentStd)" class="video_btn"> -->
  267. </div>
  268. <div class="col-xs-3 col-lg-3">
  269. <div ng-repeat="t in currentStd.tracksArray">
  270. <s ng-if="t.tracks_status == 'InActive'" class="text-muted">{{getBatchName(t)}}{{t.tracks_name}}</s>
  271. <span ng-if="t.tracks_status == 'Active'" class="{{getTracksClass(t)}}">{{getBatchName(t)}}{{t.tracks_name}}</span>
  272. </div>
  273. </div>
  274. </div>
  275. <!-- 视频播放窗口,无用可删除 -->
  276. <!-- 多个科目的评分-->
  277. <div class="row mt-5" ng-if="scoreStep == 'subjectPanel'">
  278. <table class="table table-hover table-borderless">
  279. <tbody>
  280. <tr ng-repeat="sb in currentStd.SubjectArray" class="h2" ng-click="chooseSubject(sb)">
  281. <th scope="row">{{sb.subject_name}}</th>
  282. <th><span ng-if="sb.judge_score == undefined && currentStd.avoid_flag !='Active'"><i class="fas fa-edit ml-2"></i></span> <span ng-if="currentStd.avoid_flag =='Active'" class='text-danger'>回避该考生</span> <span ng-if="sb.judge_score!=undefined" class="text-bold text-success h2">{{sb.judge_score}}</span></th>
  283. </tr>
  284. </tbody>
  285. </table>
  286. </div>
  287. <!-- 多个科目的评分 -->
  288. <!-- 评分区间 -->
  289. <div class="mt-5 text-center align-center" ng-if="scoreStep == 'scorePanel'">
  290. <div class="row mb-2 text-center" ng-if="currentStd.SubjectArray.length>1">
  291. <div>
  292. 评分科目:<span class="h2">{{currentSubject.subject_name}}</span>
  293. </div>
  294. </div>
  295. <!--评分区间名称 -->
  296. <div class="row">
  297. <div class="ml-2" ng-repeat="s in ExamParamMap['SubjectScore_' + currentSubject.subject_id]">
  298. <button type="button" ng-click="chooseScore(s)" class="btn {{s.score_id==currentScore.score_id?'btn-primary':''}}">{{s.score_name}}</button>
  299. </div>
  300. </div>
  301. <!-- 评分区间名称 -->
  302. <div class="row mt-5">
  303. <div class="col-xs-2 col-lg-2 mb-5" ng-repeat="s in scoreArray">
  304. <button type="button" class="btn btn-lg {{currentSubject.judge_score == s.score_value?'btn-success':'btn-secondary'}} " ng-click="gradeScore(s.score_value)">{{s.score_value}}</button>
  305. </div>
  306. </div>
  307. <!-- 违规项 -->
  308. <div class="row" ng-if="getParamValue('ShowAppraise') == 'Active' && disciplineFlag == 'Active' ">
  309. <div class="radio" ng-repeat= "dis in disArr">
  310. <label><input type="radio" name="optradio" value="{{dis.discipline_id}}" ng-model="currentSubject.discipline_id">{{dis.discipline_value}}</label>
  311. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  312. </div>
  313. </div>
  314. <div class=" mt-5 text-center" ng-if="currentStd.SubjectArray.length > 1">
  315. <button type="button" class="btn btn-warning" ng-if="getParamValue('ShowAppraise') == 'Active'" ng-click='stdDiscipline()' >标记违规</button>
  316. </div>
  317. <!-- 违规项 -->
  318. <!-- <div class="row" ng-if="getParamValue('ShowAppraise') == 'Active' && disciplineFlag == 'Active'">
  319. <div class="ml-5">
  320. <textarea rows="5" cols="150" placeholder="请填写考生的违纪信息" ng-model="currentStd.remark"></textarea>
  321. </div>
  322. </div> -->
  323. </div>
  324. <!-- 评分区间 -->
  325. <div class=" mt-5 text-center" ng-if="scoreStep == 'subjectPanel' || currentStd.SubjectArray.length == 1">
  326. <div class="">
  327. <button type="button" class="btn btn-warning mr-5" ng-if="getParamValue('JudgeAvoidFlag') == 'Active' && currentStd.avoid_flag =='Active'" ng-click="avoidStd()">取消回避,正常评分</button>
  328. <button type="button" class="btn btn-danger mr-5" ng-if="getParamValue('JudgeAvoidFlag') == 'Active' && currentStd.avoid_flag !='Active'" ng-click="avoidStd()">回避该考生</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  329. <button type="button" class="btn btn-warning" ng-if="getParamValue('ShowAppraise') == 'Active' && currentStd.SubjectArray.length == 1 " ng-click='stdDiscipline()' >标记违规</button>
  330. <button type="button" class="btn {{scoreStdTotal == StdArray.length?'btn-success':'btn-warning'}}" ng-if="scoreStdTotal>0" ng-click='confirmScore()'>提交已评分数({{scoreStdTotal}}/{{StdArray.length}})</button>
  331. <button type="button" class="btn btn-success" ng-if="getParamValue('JudgeShowSubScore') == 'Active'" ng-click='lookScore()' >查看评分</button>
  332. <span style="float: right !important; margin-right:10px;" ng-if="currentStd.material_file == undefined">
  333. <button type="button" class="btn btn-info mr-3" ng-click='chooseLastStd()'>上一个考生</button>
  334. <button type="button" class="btn btn-info" ng-click='chooseNextStd()'>下一个考生</button>
  335. </span>
  336. </div>
  337. </div>
  338. </div>
  339. </div>
  340. </div>
  341. <!-- 分数确认页面 -->
  342. <div class="container mt-5" ng-if="currStep == 'ConfirmScore'">
  343. <p class="h2 text-center">
  344. 确认提交分数,本次共提交【<span class="text-success">{{confirmStdArray.length}}</span>】个考生
  345. </p>
  346. <table class="table table-striped mt-5">
  347. <thead>
  348. <tr>
  349. <th scope="col">序号</th>
  350. <th scope="col">科目及成绩</th>
  351. <th scope="col">状态</th>
  352. </tr>
  353. </thead>
  354. <tbody>
  355. <tr ng-repeat="std in confirmStdArray">
  356. <th scope="row">{{std.real_exam_echo}}</th>
  357. <td>{{std.confirm_score_value}}</td>
  358. <td><span class="text-success" ng-if="std.commit_flag == true">已提交</span></td>
  359. </tr>
  360. <tr>
  361. </tbody>
  362. </table>
  363. <div class="mt-5" ng-if="getParamValue('ShowJudgeSign') == 'Active'">
  364. <h4>请填写签名:</h4>
  365. <input type="hidden" value="{{judge.login_name}}" id="judgeName" />
  366. <input type="hidden" value="{{numberBetween}}" id="numberBetween" />
  367. <input type="hidden" value="{{room.ly_room_id}}" id="ly_room_id" />
  368. <input type="hidden" value="{{judge.judge_id}}" id="judge_id" />
  369. <iframe src="sign.html" id="signature" name="signature" width="100%" height="410" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
  370. </div>
  371. <div class="text-center mt-2" ng-if="commitScoreFlag == undefined">
  372. <button type="button" class="btn btn-danger btn-lg" ng-click="clearCanvas()" ng-if="getParamValue('ShowJudgeSign') == 'Active'">清除签名</button>
  373. <!-- <button type="button" class="btn btn-success btn-lg ml-5" ng-click="saveSignature()" ng-if="getParamValue('ShowJudgeSign') == 'Active'">保存签名</button> -->
  374. <button type="button" class="btn btn-primary btn-lg ml-5" ng-click="submitScore()">分数确认无误,提交</button>
  375. <button type="button" class="btn btn-secondary btn-lg ml-5" ng-click="cancelConfirm()">暂不提交,返回检查</button>
  376. </div>
  377. <div>
  378. </div>
  379. </div>
  380. <!-- 分数确认页面 -->
  381. <!-- 分数回看页面 -->
  382. <div class="container mt-5" ng-if="currStep == 'LookScore'">
  383. <table class="table table-striped mt-5">
  384. <thead>
  385. <tr>
  386. <th scope="col">考生序号</th>
  387. <th scope="col">科目及成绩</th>
  388. </tr>
  389. </thead>
  390. <tbody>
  391. <tr ng-repeat="score in stdScoreArray">
  392. <th scope="row">{{score.real_exam_seq}}</th>
  393. <td>{{score.subject_name}}</td>
  394. </tr>
  395. </tbody>
  396. </table>
  397. <div class="text-center mt-5" ng-if="commitScoreFlag == undefined">
  398. <button type="button" class="btn btn-secondary btn-lg ml-5" ng-click="cancelConfirm()">返回</button>
  399. </div>
  400. </div>
  401. <!-- 分数回看页面 -->
  402. <!-- 评委详细信息弹窗 -->
  403. <div class="modal fade" id="judgeModal" tabindex="-1" role="dialog" aria-labelledby="judge_title" aria-hidden="true">
  404. <div class="modal-dialog" role="document">
  405. <div class="modal-content">
  406. <div class="modal-header">
  407. <h5 class="modal-title" id="judge_title">评委详细信息</h5>
  408. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  409. <span aria-hidden="true">&times;</span>
  410. </button>
  411. </div>
  412. <div class="modal-body">
  413. <form>
  414. <div class="row">
  415. <div class="form-group col-xs-12 col-lg-12">
  416. <div class="form-group">
  417. <label class="col-form-label">考场地址:</label> <input type="text" class="form-control" value="{{room.room_addr}}" readonly>
  418. </div>
  419. </div>
  420. </div>
  421. <div class="row" style="margin-top: -20px;">
  422. <div class="form-group col-xs-6 col-lg-6">
  423. <label class="col-form-label">登录帐号:</label> <input type="text" class="form-control" value="{{judge.login_name}}" readonly>
  424. </div>
  425. <div class="form-group col-xs-6 col-lg-6">
  426. <label class="col-form-label">评委姓名:</label>
  427. <input type="text" class="form-control" ng-readonly="getParamValue('ModifyJudgeInfo') != 'Active'" ng-model="modifyJudge.judge_name">
  428. </div>
  429. </div>
  430. <div class="row" style="margin-top: -15px;">
  431. <div class="form-group col-xs-12 col-lg-12">
  432. <label class="col-form-label">联系电话:</label>
  433. <input type="text" class="form-control" ng-readonly="getParamValue('ModifyJudgeInfo') != 'Active'" ng-model="modifyJudge.judge_tel">
  434. </div>
  435. </div>
  436. </form>
  437. </div>
  438. <div class="modal-footer">
  439. <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭窗口</button>
  440. <button type="button" class="btn btn-primary" ng-if="getParamValue('ModifyJudgeInfo') == 'Active'" ng-click="changeJudge()">更新评委信息</button>
  441. </div>
  442. </div>
  443. </div>
  444. </div>
  445. <!-- 评委详细信息弹窗 -->
  446. <footer ng-if="currStep != 'Examing' && currStep != 'ConfirmScore'" class="my-5 pt-5 text-muted text-center text-small navbar-fixed-bottom">
  447. <p class="mb-1">© 2020-2022 启明禾木</p>
  448. <ul class="list-inline">
  449. <li class="list-inline-item"><a href="#">无纸化评分</a></li>
  450. </ul>
  451. </footer>
  452. </div>
  453. <script src="../vendor/jquery-3.4.1/jquery.slim.min.js"></script>
  454. <script src="../vendor/popper-1.16.0/popper.min.js"></script>
  455. <script src="../vendor/bootstrap-4.4.1/js/bootstrap.min.js"></script>
  456. <script src="../vendor/angular-1.7.8/angular.min.js"></script>
  457. <script src="../vendor/angular-1.7.8/angular-sanitize.min.js"></script>
  458. <script src="../vendor/cryptojs-3.1.2/cryptojs.min.js"></script>
  459. <script src="../vendor/cryptojs-3.1.2/mode-ecb.js"></script>
  460. <script src="./js/angular.init.js"></script>
  461. <script src="./js/angular.app.js"></script>
  462. <script src="./js/angular.login.js?v=20200519"></script>
  463. </body>
  464. </html>