中山教師繼續教育刷課

中山教師研修網刷課

  1. // ==UserScript==
  2. // @name 中山教师继续教育刷课
  3. // @name:zh-CN 中山教师继续教育刷课
  4. // @name:zh-TW 中山教師繼續教育刷課
  5. // @namespace https://gf.qytechs.cn/
  6. // @version 0.08
  7. // @description 中山教师研修网刷课
  8. // @description:zh-CN 中山教师研修网刷课
  9. // @description:zh-TW 中山教師研修網刷課
  10. // @author zsynzx
  11. // @match http*://m.zsjsjy.com/teacher/train/train/train/*
  12. // @match http*://m.zsjsjy.com/teacher/train/train/online/*
  13. // @icon http://m.zsjsjy.com/favicon.ico
  14. // @license GPL
  15. // ==/UserScript==
  16.  
  17. if (window.location.href.includes('m.zsjsjy.com/teacher/train/train/train/listForMine.do')) {
  18.  
  19. setTimeout(function () {
  20.  
  21. //如果还没选课则进入选课页面
  22. let bStr=Array.from(document.querySelectorAll('a.normal-account-permission'))
  23. .find(el => el.innerText === '进入学习');
  24. if (typeof bStr==="undefined") {
  25. //打开选课页面
  26. window.location='http://m.zsjsjy.com/teacher/train/train/online/listForTeacherRegist.do?paramMap[trainMode]=';
  27. }
  28.  
  29. //如果视频未完成继续学习
  30. let aStr=Array.from(document.querySelectorAll('a.normal-account-permission'))
  31. .find(el => el.innerText === '视频未完成');
  32. if (typeof aStr!=="undefined") {
  33. let fnStr=$(aStr).context.dataset.function;
  34. let fnArr=fnStr.split("'");
  35. window.location='http://m.zsjsjy.com/teacher/train/train/online/study.do?registerId='+fnArr[1]+'&part='+fnArr[7];
  36. }
  37.  
  38. }, 1000);
  39.  
  40. let interval = setInterval(function () {
  41. //如果有未评价则继续评价
  42. let aStr=Array.from(document.querySelectorAll('a.normal-account-permission'))
  43. .find(el => el.innerText === '进入评价');
  44. if (typeof aStr!=="undefined")
  45. {aStr.click();
  46. $('.star','.star-box').click();
  47. document.getElementById("content").value="讲解得非常好,谢谢老师!";
  48.  
  49. $("#evaluateUserResultForm").ajaxSubmit({
  50. type: 'post',
  51. success: function(json){
  52. json = $.myParseJSON(json);
  53. if(!$.isEmptyObject(json)){
  54. var responseMsg = json.responseMsg;
  55. var responseCode = json.responseCode;
  56. if("00"==responseCode) {//操作成功
  57. layer.msg("操作成功!1秒后关闭",{
  58. time: 1000
  59. }, function(){
  60. layer.closeAll();
  61. finishEvaluate();
  62. });
  63. } else {//操作失败
  64. layer.msg("信息提交失败。"+responseMsg);
  65. }
  66. }
  67. }
  68. });
  69. }
  70. else
  71. {clearInterval(interval);}//停止执行setInterval循环
  72. }, 1000);
  73.  
  74. }
  75.  
  76.  
  77. if (window.location.href.includes('m.zsjsjy.com/teacher/train/train/online/study.do')) {
  78.  
  79. let interval = setInterval(function () {
  80. if($(".u-empty").length==0) {//当前课程的视频全部看完,进入课程列表页面
  81. clearInterval(interval);//停止执行setInterval循环。
  82. window.location="http://m.zsjsjy.com/teacher/train/train/train/listForMine.do";//打开课程列表网页
  83. } else {
  84. let videoObj=document.querySelectorAll("video")[0];
  85. videoObj.play();
  86. videoObj.muted=true;//静音
  87. videoObj.playbackRate = 16.0;//加速
  88. let ID=videoObj.id;//视频ID
  89. let elevideo = document.getElementById(ID);
  90. let number = $('.g-mv-con .g-top').find("#number").val();//获取序号
  91. elevideo.addEventListener(
  92. 'ended',
  93. () => {
  94. if($(".u-empty").length==0) {
  95. layer.msg('当前课程的视频全部看完');
  96. } else {
  97. var newNum = parseInt(number)+1;
  98. var tabNo = $('#m-chapter-ul').find("#tg"+newNum);
  99. if(tabNo.length == 0){//则不存在对应的id
  100. layer.msg('不存在对应的id');
  101. }else{
  102. var videoUrl = $('#tg'+newNum).find('#videoUrl').val();//获取视频路径
  103. var courseId = $('#tg'+newNum).find('#courseId').val();//获取课程id
  104. var chapterId = $('#tg'+newNum).find('#chapterId').val();//获取章节id
  105. var name = $('#tg'+newNum).find('a[class="tit"]').text();//获取章节标题
  106. var videoUrlType = $('#tg'+newNum).find('#videoUrlType').val();//视频连接的类型
  107. changeVideoShow(name,videoUrl,newNum,courseId,chapterId,videoUrlType);//调用方法
  108. }
  109. }
  110. // false
  111. }
  112. );
  113. }
  114. }, 1000);
  115.  
  116. }
  117.  
  118.  
  119. if (window.location.href.includes('m.zsjsjy.com/teacher/train/train/online/listForTeacherRegist.do')) {
  120.  
  121. var Total=42;//上级要求必须修学的课程总分
  122.  
  123. //获取已报名的总学分数
  124. function getScourseAll(tableId){
  125. var table = document.getElementById(tableId);
  126. var tbody = table.tBodies[1];
  127. var tr = tbody.rows;
  128. var j=0;
  129. for (var i=0; i<tr.length; i++ ) {
  130. if (tr[i].cells[7].innerText === '已报名') {
  131. j=j+parseInt(tr[i].cells[6].innerText);//课程学分;
  132. }
  133. }
  134. return j;
  135. }
  136.  
  137. //继续选课:再选总学分:Scourse
  138. function RegistAll(Scourse,trValue){
  139. if (Scourse>0){
  140. var zf=0;//已选课的总学分
  141. var xf=0;
  142. for (var i=0; i<trValue.length; i++ ) {
  143. if (trValue[i].cells[7].innerText === '') {
  144. xf=parseInt(trValue[i].cells[6].innerText);//课程学分
  145. zf=zf+xf;
  146. if (zf>Scourse) {
  147. zf=zf-xf;
  148. continue;//此课程学分不合适,跳到下一次循环
  149. } else {
  150. myregist(i);//选课
  151. }
  152. }
  153. if (zf===Scourse){
  154. break;//选课完成,结束循环
  155. }
  156. }
  157. }
  158. }
  159.  
  160. //对页面课程列表中选择第n个课程进行报名
  161. function myregist(n) {
  162. var radio=$(":radio[name='id']")[n];
  163. radio.checked=true;
  164. var trainId = $(":radio[name='id']:checked").val();
  165. var classroomId = $("#classroomId_"+trainId).val();
  166. var data=$.ajaxSubmitValue('/manage/train/register/online/regist.do?register[trainId]='+trainId+'&register[classroomId]='+classroomId);
  167. }
  168.  
  169. //对指定表格指定列进行排序
  170. function sortTable(tableId,Idx){
  171. var table = document.getElementById(tableId);
  172. var tbody = table.tBodies[1];
  173. var tr = tbody.rows;
  174. var trValue = new Array();
  175. let j=0;
  176. for (var i=0; i<tr.length; i++ ) {
  177. if (tr[i].cells[7].innerText === '') {
  178. trValue[j] = tr[i];//将表格中各行的信息存储在新建的数组中
  179. j++;
  180. }
  181. }
  182. if (tbody.sortCol == Idx) {
  183. trValue.reverse(); //如果该列已经进行排序过了,则直接对其反序排列
  184. } else {
  185. //trValue.sort(compareTrs(Idx)); //进行排序
  186. trValue.sort(function(tr1, tr2){
  187. var value1 = tr1.cells[Idx].innerHTML;
  188. var value2 = tr2.cells[Idx].innerHTML;
  189. return value2.localeCompare(value1);
  190. });
  191. }
  192. var fragment = document.createDocumentFragment();//新建一个代码片段,用于保存排序后的结果
  193. for (i=0; i<trValue.length; i++ ) {
  194. fragment.appendChild(trValue[i]);
  195. }
  196. tbody.appendChild(fragment); //将排序的结果替换掉之前的值
  197. tbody.sortCol = Idx;
  198.  
  199. var sVal=getScourseAll(tableId);//已选学分
  200. RegistAll(Total-sVal,trValue);//选课:学分必须选够,不能多,也不能少!
  201.  
  202. }
  203.  
  204. setTimeout(function () {
  205. var url='/teacher/train/train/online/noskin/listForTeacherRegist.do?paramMap[isReplenish]=';
  206. var contentId='pageContent';
  207. var formId='pageForm';
  208. //url += "&pagination.limit=2147483647";
  209. url += "&pagination.limit=2147";
  210. loading.open();
  211. $("#"+contentId).load(url,$("#"+formId).serialize(),function() {
  212. loading.close();
  213. var laypage=document.querySelectorAll(".laypage_main");
  214. if (laypage.length===0) {
  215. //设置课程列表表格的ID
  216. document.querySelectorAll("table.z-crt")[0].id='mytable';
  217. //按表格的第7列(课程学分)升序排序
  218. sortTable('mytable',6);//第1次降序,再执行一次可升序
  219. window.location="http://m.zsjsjy.com/teacher/train/train/train/listForMine.do";//打开课程列表网页
  220. }
  221. });
  222. }, 1000);
  223.  
  224. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址