enrol_info.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. app.controller('StdEnrolInfoCtrl', [ '$rootScope', '$scope', '$stateParams', '$timeout', function($rootScope, $scope, $stateParams, $timeout) {
  2. $scope.showcheckin=false;
  3. $scope.currentEnrolParam = {};
  4. if ($stateParams == undefined || $stateParams.enrol_id == undefined) {
  5. $.alert('参数错误,无法获取报考详细信息', function() {
  6. $rootScope.goWechat();
  7. });
  8. return;
  9. }
  10. /* $rootScope.ajaxRequest({
  11. url : '../enrol/log.htm',
  12. data : {
  13. logType:'WebPageEnrolInfo'
  14. }
  15. }, function(response) {
  16. });*/
  17. $scope.getEnrol = function(autopay) {
  18. $rootScope.ajaxRequest({
  19. url : '../enrol/std/enrol/find.htm',
  20. data : {
  21. enrol_id : $stateParams.enrol_id,
  22. aspect_batch : 1
  23. }
  24. }, function(response) {
  25. $scope.curStep = 'info';
  26. $scope.EnrolMap = response.map;
  27. $scope.showcheckin = response.map.showcheckin;
  28. $scope.OldEnrolMap = angular.copy(response.map);
  29. $scope.mp3_file_temp = $scope.EnrolMap.StdEnrol.mp3_file;
  30. //按照品种分组
  31. $scope.varietyArr = [];
  32. $scope.varietyObj = [];
  33. for(var tracks of $scope.EnrolMap.TracksArray_1) {
  34. if(!$scope.varietyArr.inArray(tracks.variety_id)) {
  35. $scope.varietyArr.push(tracks.variety_id);
  36. $scope.varietyObj.push({variety_id:tracks.variety_id,variety_name: tracks.variety_name});
  37. }
  38. }
  39. if (autopay && autopay == 'active' && $scope.EnrolMap.StdEnrol.pay_status != 'Active'
  40. && $rootScope.getParamValue('SchoolCode') !== '10728') {
  41. $scope.goAspectPay();
  42. }
  43. //西音-第三方接口对接
  44. if (autopay && autopay == 'active' && $scope.EnrolMap.StdEnrol.pay_status != 'Active'
  45. && $rootScope.getParamValue('SchoolCode') == '10728') {
  46. $scope.goXyAspectPay();
  47. }
  48. });
  49. }
  50. $scope.goStep = function(step) {
  51. $scope.curStep = step
  52. }
  53. $scope.chooseTracks = function(tracks,tracks_order) {
  54. $scope.variety_id = tracks.variety_id;
  55. $scope.tracks_order = tracks_order;
  56. $scope.goSearchTracks(0,10);
  57. }
  58. // 选择曲目
  59. $scope.goSearchTracks = function(start, limit) {
  60. $rootScope.ajaxRequest({
  61. url : '../enrol/gobal/conf/tracks/query.htm',
  62. data : {
  63. start : start == undefined ? 0 : start,
  64. limit : limit == undefined ? 10 : limit,
  65. variety_id : $scope.variety_id,
  66. query : $scope.currentEnrolParam.tracks_query
  67. }
  68. }, function(data) {
  69. $scope.TracksPage = data.page;
  70. $scope.curStep = 'tracksChoose';
  71. });
  72. };
  73. // 查询曲目
  74. $scope.keyTracksSearch = function($event) {
  75. $scope.goSearchTracks(0, 10);
  76. };
  77. // 选择品种曲目
  78. $scope.choooseVarietyTracks = function(tracks) {
  79. for (var k = 0; k < $scope.EnrolMap.TracksArray_1.length; k++) {
  80. var sb = $scope.EnrolMap.TracksArray_1[k];
  81. if(tracks.tracks_id == sb.tracks_id) {
  82. $.alert('不能选择相同的曲目,请重新选择', '错误提示');
  83. return ;
  84. }
  85. }
  86. for (var k = 0; k < $scope.EnrolMap.TracksArray_1.length; k++) {
  87. var sb = $scope.EnrolMap.TracksArray_1[k];
  88. if (k+1 == $scope.tracks_order) {
  89. sb.tracks_author = tracks.tracks_author;
  90. sb.tracks_code = tracks.tracks_code;
  91. sb.tracks_id = tracks.tracks_id;
  92. sb.tracks_name = tracks.tracks_name;
  93. $scope.curStep = "modify";
  94. return;
  95. }
  96. }
  97. };
  98. $scope.modifyTracks = function(tracks_batch) {
  99. var array = [];
  100. if(tracks_batch == 1) {
  101. for (var index = 0; index < $scope.EnrolMap.TracksArray_1.length; index++) {
  102. $scope.EnrolMap.TracksArray_1[index].tracks_name = $.trim($scope.EnrolMap.TracksArray_1[index].tracks_name);
  103. if ($scope.EnrolMap.TracksArray_1[index].tracks_name != $scope.OldEnrolMap.TracksArray_1[index].tracks_name)
  104. array.push($scope.EnrolMap.TracksArray_1[index]);
  105. }
  106. } else if(tracks_batch == 2) {
  107. for (var index = 0; index < $scope.EnrolMap.TracksArray_2.length; index++) {
  108. $scope.EnrolMap.TracksArray_2[index].tracks_name = $.trim($scope.EnrolMap.TracksArray_2[index].tracks_name);
  109. if ($scope.EnrolMap.TracksArray_2[index].tracks_name != $scope.OldEnrolMap.TracksArray_2[index].tracks_name)
  110. array.push($scope.EnrolMap.TracksArray_2[index]);
  111. }
  112. } else if(tracks_batch == 3) {
  113. for (var index = 0; index < $scope.EnrolMap.TracksArray_3.length; index++) {
  114. $scope.EnrolMap.TracksArray_3[index].tracks_name = $.trim($scope.EnrolMap.TracksArray_3[index].tracks_name);
  115. if ($scope.EnrolMap.TracksArray_3[index].tracks_name != $scope.OldEnrolMap.TracksArray_3[index].tracks_name)
  116. array.push($scope.EnrolMap.TracksArray_3[index]);
  117. }
  118. }
  119. if (array.length == 0) {
  120. if(!$scope.mp3_file_temp) {
  121. $.alert('曲目未进行修改,无须提交保存!');
  122. return;
  123. } else if($scope.mp3_file_temp == $scope.EnrolMap.StdEnrol.mp3_file) {
  124. $.alert('曲目未进行修改,无须提交保存!');
  125. return;
  126. }
  127. }
  128. $.showLoading('正在提交曲目变更请求,请稍候......');
  129. $rootScope.ajaxRequest({
  130. url : '../enrol/std/enrol/tracks/save.htm',
  131. data : {
  132. enrol_id : $stateParams.enrol_id,
  133. tracks_batch : tracks_batch,
  134. mp3_files: $scope.EnrolMap.StdEnrol.mp3_file,
  135. tracks_json : JSON.stringify(tracks_batch == 1 ? $scope.EnrolMap.TracksArray_1 : (tracks_batch == 2 ? $scope.EnrolMap.TracksArray_2 : $scope.EnrolMap.TracksArray_3))
  136. }
  137. }, function(response) {
  138. $.hideLoading();
  139. $scope.goStep('modifySuccess');
  140. });
  141. }
  142. $scope.goCancelEnrol = function() {
  143. if ($scope.EnrolMap.StdEnrol.pay_status == 'Active') {
  144. $.confirm("该专业已经缴费,确定要取消已经缴费的专业吗?", function() {
  145. $scope.saveCancelEnrol();
  146. }, function() {
  147. // 点击取消后的回调函数
  148. });
  149. }else {
  150. $scope.saveCancelEnrol();
  151. }
  152. }
  153. $scope.saveCancelEnrol = function(){
  154. $.showLoading('正在提交请求,请稍候......');
  155. $rootScope.ajaxRequest({
  156. url : '../enrol/std/enrol/cancel.htm',
  157. data : {
  158. enrol_id : $stateParams.enrol_id
  159. }
  160. }, function(response) {
  161. $.hideLoading();
  162. $scope.goStep('cancelSuccess');
  163. });
  164. }
  165. $scope.uploadMaterial = function() {
  166. $rootScope.uploadStdMaterial('Aspect', function(response) {
  167. $scope.EnrolMap.StdEnrol.without_exam_apply = response.entity.without_exam_apply;
  168. $scope.EnrolMap.StdEnrol.without_exam_material = response.entity.without_exam_material;
  169. $scope.EnrolMap.StdEnrol.without_exam_admit = undefined;
  170. }, $stateParams.enrol_id);
  171. }
  172. $scope.goCmAspectPay = function() {
  173. if (navigator.userAgent.indexOf('WindowsWechat') > -1) {
  174. alert('PC端无法交费,请使用手机微信打开');
  175. } else {
  176. $.showLoading('正在创建支付订单,请稍候......');
  177. $rootScope.ajaxRequest({
  178. url: '../std/enrol/pay/cm.htm',
  179. data: {
  180. enrol_id: $stateParams.enrol_id,
  181. aspect_batch : 1
  182. }
  183. }, function(data){
  184. $scope.payEntity = data.entity;
  185. setTimeout(function() {
  186. form1.submit();
  187. },200);
  188. });
  189. }
  190. }
  191. //西音-调用第三方支付接口
  192. $scope.goXyAspectPay = function() {
  193. if (navigator.userAgent.indexOf('WindowsWechat') > -1) {
  194. alert('PC端无法交费,请使用手机微信打开');
  195. } else {
  196. $.showLoading('正在创建支付订单,请稍候......');
  197. $rootScope.ajaxRequest({
  198. url: '../std/enrol/pay/xy.htm',
  199. data: {
  200. enrol_id: $stateParams.enrol_id,
  201. aspect_batch : 1
  202. }
  203. }, function(data){
  204. window.location.href= data.entity.url;
  205. });
  206. }
  207. }
  208. $scope.goAspectPay = function() {
  209. if (navigator.userAgent.indexOf('WindowsWechat') > -1) {
  210. alert('PC端无法交费,请使用手机微信打开');
  211. } else {
  212. $.confirm("请确认报考的专业是否正确,缴费成功后将不能修改!", function() {
  213. $.showLoading('正在创建微信支付订单,请稍候......');
  214. $rootScope.ajaxRequest({
  215. url : '../enrol/std/enrol/pay/wx.htm',
  216. data : {
  217. enrol_id : $stateParams.enrol_id,
  218. aspect_batch : 1
  219. }
  220. }, function(data) {
  221. // var obj = angular.extend({}, data.entity, {
  222. // success :
  223. // });
  224. data.entity.success = function(res) {
  225. $timeout(function() {
  226. $scope.curStep = 'paySuccess';
  227. }, 100);
  228. };
  229. wx.chooseWXPay(data.entity);
  230. });
  231. }, function() {
  232. // 点击取消后的回调函数
  233. });
  234. }
  235. };
  236. $scope.getEnrol($stateParams.autopay);
  237. $scope.goVoide1 = function(){
  238. $rootScope.goLocation('exam/result/' + $stateParams.enrol_id);
  239. }
  240. $scope.goVoide = function(){
  241. if(new Date($scope.EnrolMap.Voide.voide_end_date.replace(/\-/g, "/"))<new Date()){
  242. $rootScope.goLocation('exam/result/' + $stateParams.enrol_id);
  243. return;
  244. }
  245. if($scope.EnrolMap.Voide.note_date==null){
  246. //没有配置公告日期,可以直接进入
  247. $rootScope.goLocation('exam/voide/' + $stateParams.enrol_id+'/false');
  248. return;
  249. }
  250. var d = new Date($scope.EnrolMap.Voide.note_date.replace(/\-/g, "/"));
  251. if (d<new Date()){
  252. //时间到了
  253. $rootScope.goLocation('exam/voide/' + $stateParams.enrol_id+'/true');
  254. }else{
  255. $.alert('入场时间未到,请在'+$scope.EnrolMap.Voide.note_date+'后入场!');
  256. }
  257. }
  258. $scope.goDownload = function() {
  259. $('#down_url').attr('href', '../../image/'+$scope.EnrolMap.StdEnrol.without_exam_material);
  260. document.getElementById("down_url").click();
  261. }
  262. $scope.goUpload = function(){
  263. var file = document.getElementById("fileUpload").files[0];
  264. var data = new FormData();
  265. data.append('file', file);
  266. data.append('enrol_id',$stateParams.enrol_id);
  267. data.append('photo_type','photo_file');
  268. if(file==null) return;
  269. $rootScope.ajaxRequest({
  270. url: '../enrol/exam/upload.htm',
  271. data:data,
  272. headers: {'Content-Type': undefined},
  273. transformRequest: angular.identity
  274. }, function(response) {
  275. $scope.EnrolMap.StdEnrol.photo_file=response.entity;
  276. });
  277. }
  278. $scope.checkin = function(){
  279. var start_time = new Date($scope.EnrolMap.stdSubject.exam_start_time.replace(/\-/g, "/"));
  280. var end_time = new Date($scope.EnrolMap.stdSubject.exam_end_time.replace(/\-/g, "/"));
  281. var now = new Date();
  282. if((now<start_time || now>end_time) && !$scope.EnrolMap.stdSubject.real_inroom_time ) {
  283. $.alert('检录时间未到!请在'+$rootScope.shortTimeString($scope.EnrolMap.stdSubject.exam_start_time)+'后'+
  284. $rootScope.shortTimeString($scope.EnrolMap.stdSubject.exam_end_time)+'前检录!');
  285. } else{
  286. var StdEnrol = $scope.EnrolMap.StdEnrol;
  287. $rootScope.ajaxRequest({
  288. url: '../exam/online/checkin/inqueue.htm',
  289. data:{agent_id:StdEnrol.agent_id, aspect_id:StdEnrol.aspect_id, std_id:StdEnrol.std_id}
  290. }, function(response) {
  291. $rootScope.goLocation('exam/wait/'+StdEnrol.agent_id+"/"+StdEnrol.aspect_id);
  292. });
  293. }
  294. // var StdEnrol = $scope.EnrolMap.StdEnrol;
  295. // $rootScope.ajaxRequest({
  296. // url: '../exam/online/checkin.htm',
  297. // data:{agent_id:StdEnrol.agent_id, aspect_id:StdEnrol.aspect_id, std_id:StdEnrol.std_id}
  298. // }, function(response) {
  299. // $rootScope.goLocation('exam/checkin/'+StdEnrol.agent_id+"/"+StdEnrol.aspect_id);
  300. // });
  301. }
  302. //选择品种
  303. $scope.chooseVariety = function(enrol_id) {
  304. $rootScope.ajaxRequest({
  305. url : '../enrol/std/enrol/in/time.htm',
  306. data : { }
  307. }, function(data) {
  308. if(!data.entity) {
  309. $.alert('报考已结束,不能修改品种!');
  310. return;
  311. } else {
  312. $rootScope.goLocation('variety/choose/' + enrol_id +'/2');
  313. }
  314. });
  315. }
  316. //上传文件
  317. $scope.uploadFiles = function(files) {
  318. var file = document.getElementById('mp3_file').files[0];
  319. if(document.getElementById('mp3_file').files==null||file==null){
  320. $.alert('请选择曲目音频!');
  321. return;
  322. }
  323. if(file.size > 10*1024*1024) {
  324. $.alert('文件大小超出限制,请上传10M以下的文件!');
  325. return;
  326. }
  327. var data = new FormData();
  328. data.append('file', file);
  329. data.append('enrol_id',$stateParams.enrol_id);
  330. $.showLoading('正在上传文件,请稍候......');
  331. $rootScope.ajaxRequest({
  332. url: '../enrol/std/enrol/mp3/upload.htm',
  333. data:data,
  334. headers: {'Content-Type': undefined},
  335. transformRequest: angular.identity
  336. }, function(response) {
  337. $.hideLoading();
  338. $scope.EnrolMap.StdEnrol.mp3_file = response.entity;
  339. $.alert('上传曲目音频成功');
  340. });
  341. }
  342. } ])