reset.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. <style>
  2. .reset-title{padding-left: 20px; line-height: 40px;font-size: 14px;border-bottom: 1px solid #eee;}
  3. .paper-title{margin-right: 20px;font-weight: bold;}
  4. .chk-all{margin-left: 20px; padding-left:20px; cursor: pointer;background: url(/images/select_no.png) no-repeat left center;-webkit-background-size: 16px;background-size: 16px;}
  5. .chk-all.active{background: url(/images/select_ipt.png) no-repeat left center;-webkit-background-size: 16px;background-size: 16px;}
  6. .chk-num{margin-top: 10px;margin-left: 5px; width: 20px;height: 20px;line-height: 20px; text-align: center;font-style:normal; border-radius: 50%;background-color: #f40;color: #fff;}
  7. .class-box{padding-bottom:50px;}
  8. .class-box ul{padding:20px 0 0 24px;}
  9. .class-box li{position: relative;margin-right: 28px;margin-bottom: 20px; padding:10px 16px;width: 210px;height: 105px; border:1px solid #ccc;box-sizing: border-box;cursor: pointer;}
  10. .class-box li h3{margin:0; width: 180px; font-size: 16px;line-height: 24px; color: #697aff;}
  11. .class-box li p{margin-top: 6px;}
  12. .selected-img{position: absolute;top:50%;right: 10px;transform:translateY(-50%);display: none;}
  13. .class-box li.active,.class-box li:hover{border-color: #2977ff}
  14. .class-box li.active .selected-img{display: block;}
  15. .reset-btn{position: fixed;left: 24px;bottom:0;padding-top:10px;padding-bottom: 16px;width: 100%;background-color: #fff;}
  16. .reset-btn span{color: #f00;}
  17. .reset-btn a{margin-right: 10px; display: inline-block;color: #fff;background-color: grey;width: 100px;line-height: 30px;text-align: center; }
  18. .reset-btn2 a{text-decoration: none;background:#2977ff;}
  19. .reset-btn2 a:hover{text-decoration: none;background-color: #2977ff;}
  20. .reset-num{font-style:normal;}
  21. /*.topic-content*/
  22. .choose-topic h3,.filling-topic h3,.answer-topic h3{font-weight: 700;font-size: 14px;line-height: 34px;}
  23. .topic a{margin:0 5px; color: #4395ff}
  24. .topic p{display: inline;}
  25. .batch_topic a{margin:0 5px; color: #4395ff}
  26. .batch_topic p{display: inline;}
  27. /*.topic .score{color: #f00;}*/
  28. .score input,.right-answer{width: 30px;text-align: center; background: #fff;border:0;color: #50d2c2}
  29. .score input:focus,.right-answer:focus{border:1px solid #50d2c2;outline: none;}
  30. /*.right-answer{color: #f40;}*/
  31. .topic-answer input{width: 60px;}
  32. .model-score input{padding-left: 5px; height: 30px;width: 230px;border:1px solid #ccc;outline: none;}
  33. .model-score input:focus{border-color: #50d2c2;box-shadow: 0 0 5px #50d2c2;}
  34. .modal-btn{text-align: center;margin:10px 0;}
  35. .modal-btn a{display: inline-block;margin:0 5px; width: 100px; line-height: 40px;background: #50d2c2;color: #fff;}
  36. .modal-content{position: absolute;left: 50%;top: 50%;padding-top: 40px; width: 500px;background: #fff; transform: translate(-50%,-50%);}
  37. .modal-title{position: absolute;top: 0;left: 0;padding-left: 20px; width: 100%;height: 40px;line-height: 40px;background: #4395ff;color:#fff;}
  38. .modal-title em{width: 40px;height: 40px;text-align: center;font-size: 20px;cursor: pointer;}
  39. .model-score1 input{padding-left: 5px; height: 30px;width: 230px;border:1px solid #ccc;outline: none;}
  40. .model-score1 input:focus{border-color: #50d2c2;box-shadow: 0 0 5px #50d2c2;}
  41. .modal-btn{text-align: center;margin:10px 0;}
  42. .modal-btn a{display: inline-block;margin:0 5px; width: 100px; line-height: 40px;background: #50d2c2;color: #fff;}
  43. .model-score2 input{padding-left: 5px; height: 30px;width: 230px;border:1px solid #ccc;outline: none;}
  44. .model-score2 input:focus{border-color: #50d2c2;box-shadow: 0 0 5px #50d2c2;}
  45. .modal-btn{text-align: center;margin:10px 0;}
  46. .modal-btn a{display: inline-block;margin:0 5px; width: 100px; line-height: 40px;background: #4395ff;color: #fff;}
  47. .modal-btn .close3{display: inline-block;margin:0 5px; width: 100px; line-height: 40px;background: #fff;color: #000;border:1px solid #555;border-radius: 3px;}
  48. .modal1_multi{position: fixed;top: 0;left: 0;width: 100%;height: 100%;font-size:14px;display:none ;background: rgba(0,0,0,.4)}
  49. .model-rule{width:80%;margin:15px auto;text-align: center;font-size:18px;}
  50. .modal1_multi .model-score1{width:80%;margin:10px auto;text-align: left}
  51. .modal1_multi .model-score-m{width:80%;margin:5px auto;}
  52. #update_msg{color:red}
  53. .modal1_multi .model-score-m label{margin:5px 0;font-size: 12px;color:red;font-weight: initial}
  54. .btn-garder {
  55. cursor: pointer;
  56. margin-top: 5px;
  57. margin-left: 10px;
  58. margin-right: 50px;
  59. display: inline-block;
  60. width: 100px;
  61. border: none;
  62. text-align: center;
  63. line-height: 30px;
  64. color: #fff;
  65. background-color: #2977ff;
  66. }
  67. </style>
  68. <div class="reset-title clearfix">
  69. <span class="fl paper-title"><?php echo $mwName;?></span>
  70. <div class="fr">
  71. <span class="chk-all fl">全选</span>
  72. <em class="fl chk-num reset-num">0</em>
  73. <span class="fr btn-garder" id="goBack">返回</span>
  74. </div>
  75. </div>
  76. <div class="class-box" style="padding: 20px;color: #619aff;font-size: large;">
  77. <p> </p>
  78. <p> 1. 每次可重置本批次部分班级或全部班级。</p>
  79. <p> 2. 每个班级只可重置一次,同一学生重置前内容和重置后可能不同,具体视设置情况而定。</p>
  80. <p> 3. 重置时,当前班级开通订单的学生将生成PDF。</p>
  81. <p> 4. 已重置之前的词汇宝,均不可重置,为“已失效”状态。</p>
  82. <p> 5. 本次已经生成的错词再练,重置后将无法生成。</p>
  83. </div>
  84. <div class="class-box">
  85. <ul class="clearfix" id="select-class">
  86. <?php foreach($resultList as $key => $value):?>
  87. <?php $invalid = (Yii::app()->session['testFlag']==0 && $value['reset_times']>=1) ? 1 : 0;?>
  88. <li class="fl" invalid="<?php echo $invalid;?>" mwId="<?php echo $value['mw_id'];?>">
  89. <?php
  90. $downloadCount = '0/0';
  91. $downloadCount = "{$value["pdfCount"]}/{$value["totalCount"]}";
  92. ?>
  93. <div class="fl">
  94. <h3 class="ellipsis" style="position: relative">
  95. <div title="<?php echo $value['class_name'];?>" style="width: 150px; text-overflow: ellipsis;overflow: hidden;white-space: nowrap;"><?php echo $value['class_name'];?></div>
  96. <?php if($invalid):?>
  97. <span style="color: white;background:gray; position: absolute; top: -10px; right: -12px">已失效</span>
  98. <?php endif;?>
  99. </h3>
  100. <p>已生成/总数:<?php echo $downloadCount;?></p>
  101. </div>
  102. <img src="/images/select_li.png" class="selected-img">
  103. </li>
  104. <?php endforeach;?>
  105. </ul>
  106. </div>
  107. <input type="hidden" value="<?php echo $mw_group_id; ?>" id="mw-group-id" />
  108. <div class="reset-btn">
  109. <a href="javascript:;">重置</a>
  110. <span>您将重置<em class="reset-num">0</em>个班级的词汇宝
  111. </span>
  112. </div>
  113. <!-- 重置提示框 -->
  114. <div class="modal1_multi">
  115. <div class="modal-shadow"></div>
  116. <div class="modal-content">
  117. <div class="modal-title clearfix">
  118. 提示<em class="fr close3">×</em>
  119. </div>
  120. <div class="model-rule">
  121. 确定需要重置吗?
  122. </div>
  123. <div class="model-score-m">
  124. <label>产品生成会占用服务器资源,请谨慎操作,重置后需排队等待哦!</label>
  125. </div>
  126. <div class="modal-btn">
  127. <a href="javascript:;" class="sumbit3">确定重置</a>
  128. <a href="javascript:;" class="close3 chameleon">取消</a>
  129. </div>
  130. </div>
  131. </div>
  132. <script>
  133. $(function () {
  134. //var printType = "<?php //echo $printType;?>//",
  135. // resetCount=parseInt(<?php //echo $resetCount;?>//);
  136. // resetCount=1;
  137. $(".reset-btn a").click(function () {
  138. $('.model-rule').html("同一场考试,只提供一次重置机会。 <br>确定需要重置吗?");
  139. $('.sumbit3').show();
  140. $('.chameleon').html('取消');
  141. $('.model-score-m').show();
  142. $('.modal1_multi').show();
  143. //判断重置次数
  144. // if(resetCount==0){
  145. // $('.model-rule').html("同一场考试,只提供一次重置机会。 <br>确定需要重置吗?");
  146. // $('.sumbit3').show();
  147. // $('.chameleon').html('取消');
  148. // $('.model-score-m').show();
  149. // $('.modal1_multi').show();
  150. // }else{
  151. // $('.model-score-m').hide();
  152. // $('.sumbit3').hide();
  153. // $('.chameleon').html('知道了');
  154. // $('.model-rule').html("当前考试已重置,不能继续重置!<br>请联系技术支持,谢谢!");
  155. // $('.modal1_multi').show();
  156. //
  157. // }
  158. // $(".layout-reset").fadeIn(400);
  159. });
  160. $('.close3').click(function(){
  161. $('.modal1_multi').hide();
  162. });
  163. $('.sumbit3').click(function(){
  164. doSubmit();
  165. });
  166. //提交重置
  167. function doSubmit(){
  168. var obj = $("#select-class>li.active");
  169. var mwGroupId=$("#mw-group-id").val();
  170. var classExam = [];
  171. $.each(obj, function(key, value) {
  172. classExam.push($(value).attr('mwId'));
  173. });
  174. if(classExam.length > 0){
  175. var url = "<?php echo $this->createUrl('magic/reset'); ?>";
  176. resetAction(classExam,url,mwGroupId);
  177. }else{
  178. layer.msg('请选择班级!',{
  179. icon: 5
  180. }, function(){
  181. layer.closeAll();
  182. });
  183. }
  184. }
  185. $(".chk-all").click(function () {
  186. if ($(this).hasClass("active")) {
  187. $(this).removeClass("active");
  188. $(".class-box li").removeClass("active");
  189. $(".reset-num").html(0);
  190. $(".reset-btn").removeClass('reset-btn2');
  191. } else {
  192. var count = 0;
  193. for (var i = 0; i < $(".class-box li").length; i++) {
  194. if($(".class-box li").eq(i).attr('invalid') != 1){
  195. $(".class-box li").eq(i).addClass("active")
  196. count++;
  197. }
  198. if(count > 0){
  199. $(".reset-btn").addClass('reset-btn2');
  200. }else{
  201. $(".reset-btn").removeClass('reset-btn2');
  202. }
  203. }
  204. if(count == 0){
  205. layer.msg('无可选目标!',{
  206. icon: 5
  207. }, function(){
  208. layer.closeAll();
  209. });
  210. }else{
  211. $(this).addClass("active");
  212. $(".reset-num").html(count);
  213. $(".reset-btn").addClass('reset-btn2');
  214. }
  215. }
  216. });
  217. $("body").delegate(".class-box li", "click", function () {
  218. var count = 0;
  219. if($(this).attr('invalid') != 1) {
  220. if ($(this).hasClass("active")) {
  221. $(this).removeClass("active");
  222. } else {
  223. $(this).addClass("active");
  224. }
  225. }
  226. for (var i = 0; i < $(".class-box li").length; i++) {
  227. if ($(".class-box li").eq(i).hasClass("active")) {
  228. count++;
  229. }
  230. if(count > 0){
  231. $(".reset-btn").addClass('reset-btn2');
  232. }else{
  233. $(".reset-btn").removeClass('reset-btn2');
  234. }
  235. }
  236. if (count == $(".class-box li").length) {
  237. $(".chk-all").addClass("active");
  238. } else {
  239. $(".chk-all").removeClass("active");
  240. }
  241. $(".reset-num").html(count);
  242. });
  243. // toast("重置失败!请再次尝试")
  244. // toast("重置失败!请再次尝试",true)
  245. function toast(msg, flag) {
  246. /*flag参数为true,不能自动关闭,不传则3秒以后关闭*/
  247. $("body").append("<div class='toast'></div>");
  248. $(".toast").css({
  249. "position": "fixed",
  250. "left": "50%",
  251. "top": "50%",
  252. "transform": "translate(-50%,-50%)",
  253. "padding": "15px 25px",
  254. "max-width": "250px",
  255. "background": "rgba(0,0,0,.8)",
  256. "color": "#fff",
  257. "font-size": "14px",
  258. "border-radius": "5px",
  259. "display": "none",
  260. "z-index": "9999999"
  261. }).html(msg).fadeIn(400);
  262. if (flag)
  263. return;
  264. var tempTimer = setTimeout(function () {
  265. $(".toast").fadeOut(400).remove();
  266. clearTimeout(tempTimer)
  267. }, 3000)
  268. }
  269. function resetAction(classExam,url,mwGroupId){
  270. $.ajax({
  271. url: url,
  272. type: "POST",
  273. dataType: "json",
  274. data: {classExam:classExam,mwGroupId:mwGroupId},
  275. success: function (data){
  276. if(data.status){
  277. layer.msg('操作成功!自动返回上一层',{
  278. icon: 1
  279. }, function(){
  280. layer.closeAll();
  281. window.history.go(-1);
  282. });
  283. }else{
  284. layer.msg(data.message,{
  285. icon: 5
  286. }, function(){
  287. layer.closeAll();
  288. });
  289. }
  290. },
  291. error: function (data, status, e){ //服务器响应失败处理函数
  292. layer.msg('返回失败!',{
  293. icon: 5
  294. }, function(){
  295. layer.closeAll();
  296. });
  297. }
  298. });
  299. }
  300. })
  301. $('#goBack').click(function () {
  302. window.history.go(-1);
  303. })
  304. </script>