art.js 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186
  1. app.config([ '$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
  2. $urlRouterProvider.otherwise("/enrol_main");
  3. $stateProvider.state('enrol_main', {
  4. url : "/enrol_main",
  5. params : {
  6. enrol_id : null
  7. },
  8. templateUrl : "enrol_main.html",
  9. controller : 'EnrolMainCtrl'
  10. }).state('enrol_guide', {
  11. url : "/enrol_guide/{category_id}",
  12. params : {
  13. category_id : null
  14. },
  15. templateUrl : "enrol_guide.html",
  16. controller : 'EnrolGuideCtrl'
  17. }).state('enrol_info', {
  18. url : "/enrol_info",
  19. params : {
  20. enrol_id : null,
  21. bk_status : null
  22. },
  23. templateUrl : "enrol_info.html",
  24. controller : 'EnrolInfoCtrl'
  25. }).state('std_info', {
  26. url : "/std_info",
  27. templateUrl : "std_info.html",
  28. controller : 'StdInfoCtrl'
  29. }).state('change_pwd', {
  30. url : "/change_pwd",
  31. templateUrl : "modify_password.html",
  32. controller : 'ModifyPasswordCtrl'
  33. }).state('std_bill', {
  34. url : "/std_bill",
  35. templateUrl : "std_bill.html",
  36. controller : 'StdBillCtrl'
  37. }).state('score', {
  38. url : "/score",
  39. templateUrl : "score.html",
  40. controller : 'StdScoreCtrl'
  41. }).state('notice', {
  42. url : "/notice/{category_id}",
  43. params : {
  44. category_id : null
  45. },
  46. templateUrl : "enrol_notice.html",
  47. controller : 'EnrolNoticeCtrl'
  48. }).state('exam_card', {
  49. url : "/examCard/{enrol_id}",
  50. params : {
  51. enrol_id : null
  52. },
  53. templateUrl : "exam_card.html",
  54. controller : 'ExamCardCtrl'
  55. }).state('reader', {
  56. url : "/reader/{category_id}/{i05}/{i04}",
  57. params : {
  58. category_id : null,
  59. i05 : null,
  60. i04 : null
  61. },
  62. templateUrl : "reader_download.html",
  63. controller : 'ReaderDownloadCtrl'
  64. }).state('modify_tracks', {
  65. url: '/modify_tracks/{enrol_id}',
  66. params: {
  67. enrol_id: null
  68. },
  69. templateUrl: 'modify_tracks.html',
  70. controller: 'ModifyTracksCtrl'
  71. })
  72. } ]);
  73. app.controller('AppCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', function($rootScope, $scope, $http, $timeout, $state) {
  74. $.ajax({
  75. url : '../enrol/gobal/std/init.htm',
  76. async : false,
  77. type : "POST",
  78. dataType : "json",
  79. success : function(data) {
  80. $rootScope.ArtStdReg = {};
  81. if (data.success == false) {
  82. var d = dialog({
  83. title : '错误提示',
  84. content : data.errorMsg,
  85. ok : function() {
  86. window.location = 'index.html';
  87. },
  88. okValue : '确定',
  89. width : 350
  90. });
  91. d.showModal();
  92. return;
  93. } else {
  94. $rootScope.ArtStdReg = data.entity;
  95. }
  96. },
  97. error : function() {
  98. var d = dialog({
  99. title : '错误提示',
  100. content : '无法正常访问服务器,请稍后再试',
  101. ok : function() {
  102. },
  103. okValue : '确定',
  104. width : 350
  105. });
  106. d.showModal();
  107. }
  108. });
  109. $rootScope.goUrl = function(url, ctrl) {
  110. $state.go(url);
  111. return false;
  112. }
  113. $scope.logout = function() {
  114. $http({
  115. url : '../enrol/pc/reg/logout.htm'
  116. }).success(function(data) {
  117. });
  118. window.location = 'index.html';
  119. }
  120. $rootScope.errorMsg = function(msg) {
  121. var d = dialog({
  122. title : '错误提示',
  123. content : msg,
  124. ok : function() {
  125. },
  126. okValue : '确定',
  127. width : 350
  128. });
  129. d.showModal();
  130. }
  131. $rootScope.dialogMsg = function(msg, fn) {
  132. var vFn = fn == undefined ? (function() {
  133. }) : fn
  134. var d = dialog({
  135. title : '操作提示',
  136. content : msg,
  137. ok : vFn,
  138. okValue : '确定',
  139. width : 320
  140. });
  141. d.showModal();
  142. }
  143. } ]).controller('EnrolMainCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', '$stateParams', function($rootScope, $scope, $http, $timeout, $state, $stateParams) {
  144. $scope.load = function() {
  145. $rootScope.curPage = 'enrol';
  146. if ($stateParams != undefined && $stateParams.enrol_id != null) {
  147. $scope.goEnrolInfo($stateParams.enrol_id);
  148. return;
  149. }
  150. $scope.myPromise = $http({
  151. url : '../enrol/gobal/conf/category.htm'
  152. }).success(function(data) {
  153. $scope.categoryArray = data.array;
  154. $http({
  155. url : '../enrol/gobal/std/enrol/list.htm',
  156. method : 'post',
  157. data : {
  158. std_id : $rootScope.ArtStdReg.std_id
  159. }
  160. }).success(function(data) {
  161. $rootScope.EnrolArray = data.array;
  162. angular.forEach($scope.categoryArray, function(category) {
  163. angular.forEach($scope.EnrolArray, function(enrol) {
  164. if (enrol.category_id == category.category_id) {
  165. category.enrol = enrol;
  166. }
  167. })
  168. category.enrol_closed = category.enrol_end_time < category.db_time;
  169. category.enrol_not_start = category.enrol_start_time > category.db_time;
  170. category.enrol_start_date = category.enrol_start_time.substr(0, 10);
  171. category.enrol_end_date = category.enrol_end_time.substr(0, 10);
  172. category.DB_TIME = category.db_time;
  173. category.enrol_active = category.enrol_start_time <= category.db_time && category.enrol_end_time >= category.db_time;
  174. })
  175. })
  176. });
  177. $http({
  178. url : '../enrol/gobal/std/ticket/list.htm',
  179. method : 'post',
  180. data : {
  181. std_id : $rootScope.ArtStdReg.std_id
  182. }
  183. }).success(function(data) {
  184. $scope.TicketArray = data.array;
  185. });
  186. $scope.goDownload = function(ticket) {
  187. ticket.std_id = $rootScope.ArtStdReg.std_id;
  188. $.ajax({
  189. url : '../enrol/gobal/std/ticket/pdf.htm',
  190. data : ticket,
  191. async : false,
  192. type : "POST",
  193. dataType : "json",
  194. success : function(data) {
  195. window.open(data.entity);
  196. }
  197. });
  198. }
  199. }
  200. $scope.load();
  201. $scope.goEnrolInfo = function(enrol_id) {
  202. $state.go('enrol_info', {
  203. enrol_id : enrol_id
  204. });
  205. }
  206. $scope.goModifyTracks = function(enrol_id) {
  207. //判断曲目是否可以修改
  208. $http({
  209. url : '../enrol/gobal/std/modify/tracks.htm',
  210. method: 'post',
  211. data : {
  212. enrol_id: enrol_id
  213. }
  214. }).success(function(data) {
  215. $state.go('modify_tracks', {
  216. enrol_id : enrol_id
  217. });
  218. });
  219. }
  220. $scope.goExamCardInfo = function(enrol_id) {
  221. $state.go('exam_card', {
  222. enrol_id : enrol_id
  223. });
  224. }
  225. $scope.goEnrolNotice = function(category_id, category_name) {
  226. //判断兼报(音乐类、舞蹈类、表导类)不能兼报
  227. var flag = true;
  228. for(var i=0; i< $scope.categoryArray.length; i++) {
  229. if($scope.categoryArray[i].category_id !== category_id && $scope.categoryArray[i].enrol) {
  230. $rootScope.errorMsg(category_name +"和" + $scope.categoryArray[i].category_name +"不能兼报!");
  231. flag = false;
  232. break;
  233. }
  234. }
  235. //判断是否具有大类的权限
  236. $http({
  237. url : '../enrol/std/reg/category.htm',
  238. method: 'post',
  239. data : {
  240. category_id: category_id,
  241. std_id: $rootScope.ArtStdReg.std_id
  242. }
  243. }).success(function(data){
  244. if(!data.entity) {
  245. $rootScope.errorMsg("考生统考未报考【" + category_name +"】,请确认自己的报考类别!");
  246. return;
  247. } else {
  248. if(flag) {
  249. $state.go('notice', {
  250. category_id : category_id
  251. });
  252. }
  253. }
  254. });
  255. }
  256. $scope.goReaderDownLoad = function(category_id,item) {
  257. $state.go('reader', {
  258. category_id : category_id,
  259. i01 : item.i01 ,
  260. i02 : item.i02 ,
  261. i03 : item.i03 ,
  262. i04 : item.i04 ,
  263. i05 : item.i05 ,
  264. s01 : item.s01 ,
  265. s02 : item.s02 ,
  266. s03 : item.s03 ,
  267. s04 : item.s04 ,
  268. s10 : item.s10
  269. });
  270. }
  271. $scope.testPayReply = function() {
  272. console.log('testPayReply');
  273. $http({
  274. url : '../enrol/gobal/std/pay/upay/reply.htm'
  275. }).success(function(data) {
  276. console.log(data);
  277. });
  278. }
  279. } ]).controller('StdInfoCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', '$stateParams', 'Upload', 'toaster', function($rootScope, $scope, $http, $timeout, $state, $stateParams, Upload, toaster) {
  280. $scope.load = function() {
  281. $rootScope.curPage = 'std';
  282. $scope.std = $rootScope.ArtStdReg;
  283. $http({
  284. url : '../enrol/gobal/reg/init.htm'
  285. }).success(function(data) {
  286. $scope.map = data.map;
  287. angular.forEach(data.map.ProvinceArray, function(province) {
  288. if (province.province_id == $scope.std.std_province) {
  289. $scope.std.std_province_name = province.province_name;
  290. }
  291. })
  292. });
  293. }
  294. $scope.load();
  295. $scope.submitStdForm = function(isValid) {
  296. $scope.submitted = true;
  297. if (isValid) {
  298. $scope.myPromise = $http({
  299. url : '../enrol/gobal/std/update.htm',
  300. method : 'post',
  301. data : $scope.std
  302. }).success(function(data) {
  303. toaster.pop('success', '修改个人信息', '操作成功!');
  304. });
  305. }
  306. }
  307. } ]).controller('ModifyPasswordCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', '$stateParams', 'toaster', function($rootScope, $scope, $http, $timeout, $state, $stateParams, toaster) {
  308. $scope.load = function() {
  309. $scope.formData = {
  310. std_old_pass : '',
  311. std_pass : '',
  312. std_pass2 : '',
  313. std_id : $rootScope.ArtStdReg.std_id
  314. }
  315. }
  316. $scope.load();
  317. $scope.submitPasswordForm = function(isValid) {
  318. $scope.pwdFormSubmitted = true;
  319. if (isValid) {
  320. if ($scope.formData.std_pass != $scope.formData.std_pass2) {
  321. toaster.pop('error', '新密码与确认密码不一致!');
  322. return;
  323. }
  324. $scope.myPromise = $http({
  325. url : '../enrol/gobal/std/modifyPassword.htm',
  326. method : 'post',
  327. data : $scope.formData
  328. }).success(function(data) {
  329. $rootScope.dialogMsg("考生密码修改成功!", function() {
  330. $state.go('enrol_main');
  331. });
  332. $scope.formData = {
  333. std_old_pass : '',
  334. std_pass : '',
  335. std_pass2 : '',
  336. std_id : $rootScope.ArtStdReg.std_id
  337. };
  338. $scope.pwdFormSubmitted = false;
  339. });
  340. }
  341. }
  342. } ]).controller('EnrolGuideCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', '$stateParams', function($rootScope, $scope, $http, $timeout, $state, $stateParams) {
  343. $scope.load = function() {
  344. $scope.myPromise = $http({
  345. url : '../enrol/gobal/conf/category.htm'
  346. }).success(function(data) {
  347. $scope.AspectArray = undefined;
  348. $scope.CategoryArray = data.array;
  349. if ($stateParams.category_id) {
  350. angular.forEach($scope.CategoryArray, function(category) {
  351. if (category.category_id == $stateParams.category_id) {
  352. $scope.category = category;
  353. }
  354. })
  355. }
  356. if ($scope.category) {
  357. $scope.goAspect();
  358. } else {
  359. $scope.curStep = 'category';
  360. }
  361. });
  362. }
  363. $scope.load();
  364. $scope.goStep = function(setp) {
  365. $scope.curStep = setp;
  366. }
  367. $scope.goAspect = function() {
  368. $scope.aspect = undefined;
  369. $scope.goSearchAspect(0)
  370. }
  371. $scope.goSearchAspect = function(index) {
  372. $http({
  373. url : '../enrol/gobal/conf/aspect.htm',
  374. method : 'post',
  375. data : {
  376. category_id : $scope.category.category_id,
  377. start : index * 10 ,
  378. limit : 10,
  379. query : $('#queryAspectText').val()
  380. }
  381. }).success(function(data) {
  382. $scope.AspectPage = data.page;
  383. if ($scope.AspectPage.total == 1) {
  384. $scope.goSubject($scope.AspectPage.records[0]);
  385. //$scope.goSubject(aspect);
  386. } else {
  387. $scope.curStep = 'aspect';
  388. //比较是否已经报考
  389. // angular.forEach($scope.AspectPage.records, function(aspect) {
  390. // angular.forEach($rootScope.EnrolArray, function(enrol) {
  391. // if(aspect.aspect_id == enrol.aspect_id) {
  392. // aspect.have_enrol = true;
  393. // }
  394. // });
  395. // })
  396. }
  397. });
  398. }
  399. $scope.goSubject = function(aspect) {
  400. var flag = false;
  401. for(var item of $scope.AspectPage.records) {
  402. if(item.have_enrol) {
  403. flag = true;
  404. break;
  405. }
  406. }
  407. if(flag) {
  408. $rootScope.errorMsg('只能选择一个招考方向报考!如果未缴费,请及时缴费!');
  409. return;
  410. }
  411. //没有权限
  412. if(!aspect.have_auth) {
  413. $rootScope.errorMsg('考生报考的统考方向和该方向不一致,请选择正确的招考方向!');
  414. return ;
  415. }
  416. $scope.aspect = aspect;
  417. $http({
  418. url : '../enrol/gobal/conf/subject.htm',
  419. method : 'post',
  420. data : {
  421. aspect_id : aspect.aspect_id
  422. }
  423. }).success(function(data) {
  424. $scope.SubjectMap = data.map;
  425. $scope.curStep = 'subject';
  426. });
  427. }
  428. /***************************************************************************
  429. * 选择科目信息
  430. */
  431. $scope.changeSubject = function(subject) {
  432. angular.forEach($scope.SubjectMap['SubjectGroup' + subject.subject_group], function(sb) {
  433. if (sb.subject_id == subject.subject_id)
  434. sj = sb;
  435. });
  436. if ($scope.SubjectMap['VarietyArray' + subject.subject_id].length == 1) {
  437. sj.variety_id = $scope.SubjectMap['VarietyArray' + subject.subject_id][0].variety_id;
  438. sj.variety_name = $scope.SubjectMap['VarietyArray' + subject.subject_id][0].variety_name;
  439. } else {
  440. sj.variety_id = undefined;
  441. sj.variety_name = undefined;
  442. }
  443. for (var k = 0; k < $scope.SubjectMap['SubjectArray'].length; k++) {
  444. if ($scope.SubjectMap['SubjectArray'][k].subject_group == sj.subject_group) {
  445. $scope.SubjectMap['SubjectArray'][k] = sj;
  446. }
  447. }
  448. }
  449. $scope.changeVariety = function(subject) {
  450. angular.forEach($scope.SubjectMap['VarietyArray' + subject.subject_id], function(variety) {
  451. if (subject.variety_id == variety.variety_id)
  452. subject.variety_name = variety.variety_name;
  453. });
  454. }
  455. $scope.goTracks = function() {
  456. $scope.TracksVarietyArray = undefined;
  457. $scope.TracksMap = undefined;
  458. $scope.AgentArray = undefined;
  459. $scope.agent = undefined;
  460. // 需要网报曲目的品种
  461. var varietyTracksArray = [], ids = [];
  462. for (var k = 0; k < $scope.SubjectMap['SubjectArray'].length; k++) {
  463. var subject = $scope.SubjectMap['SubjectArray'][k];
  464. // 判断是否选择了科目
  465. if (subject.subject_id == undefined) {
  466. $rootScope.errorMsg("请选择其中一个考试科目!");
  467. return;
  468. }
  469. // 判断是否选择了品种
  470. if ($scope.SubjectMap['VarietyArray' + subject.subject_id] && (subject.variety_id == undefined || subject.variety_id == 0)) {
  471. $rootScope.errorMsg("请为考试科目[" + subject.subject.subject_name + "]选择一个品种");
  472. return;
  473. }
  474. angular.forEach($scope.SubjectMap['VarietyArray' + subject.subject_id], function(variety) {
  475. if (subject.variety_id == variety.variety_id && variety.enrol_tracks_1 > 0) {
  476. varietyTracksArray.push(variety);
  477. ids.push(variety.variety_id);
  478. }
  479. });
  480. }
  481. // 去判断是否有曲目信息
  482. if (varietyTracksArray.length == 0) {
  483. // 不需要选择曲目
  484. // $scope.curStep = 'agent';
  485. $scope.goAgent();
  486. } else {
  487. // 需要选择曲目
  488. $http({
  489. url : '../enrol/gobal/conf/tracks.htm',
  490. method : 'post',
  491. data : {
  492. ids : ids
  493. }
  494. }).success(function(data) {
  495. $scope.TracksVarietyArray = varietyTracksArray;
  496. $scope.TracksMap = data.map;
  497. $scope.curStep = 'tracks';
  498. });
  499. }
  500. }
  501. $scope.goOpenTracks = function(item, tracks) {
  502. $scope.chooseTracks = true;
  503. $scope.variety = item;
  504. $scope.goSearchTracks(0);
  505. $scope.tracks = tracks;
  506. }
  507. // 查询曲目
  508. $scope.goSearchTracks = function(index, order, type) {
  509. console.log('goSearchTracks: ' + index);
  510. $http({
  511. url : '../enrol/gobal/conf/tracks/query.htm',
  512. method : 'post',
  513. data : {
  514. variety_id : $scope.variety.variety_id,
  515. start : index * 10,
  516. limit : 10,
  517. order : order,
  518. type : type,
  519. query : $('#queryTracksText').val(),
  520. tracks_type : $('#queryTracksType').val()
  521. }
  522. }).success(function(data) {
  523. $scope.TracksPage = data.page;
  524. console.log($scope.TracksPage);
  525. });
  526. }
  527. // 确认曲目信息
  528. $scope.goConfirmTrack = function(tracks) {
  529. $scope.variety = tracks;
  530. for (var k = 0; k < $scope.TracksMap['VarietyTracks' + $scope.variety.variety_id].length; k++) {
  531. if ($scope.TracksMap['VarietyTracks' + $scope.variety.variety_id][k].tracks_id == tracks.tracks_id) {
  532. $rootScope.errorMsg('已经选择了该曲目');
  533. return;
  534. }
  535. }
  536. for (var k = 0; k < $scope.TracksMap['VarietyTracks' + $scope.variety.variety_id].length; k++) {
  537. if ($scope.TracksMap['VarietyTracks' + $scope.variety.variety_id][k].tracks_order == $scope.tracks.tracks_order) {
  538. $scope.TracksMap['VarietyTracks' + $scope.variety.variety_id][k].tracks_name = tracks.tracks_name;
  539. $scope.TracksMap['VarietyTracks' + $scope.variety.variety_id][k].tracks_id = tracks.tracks_id;
  540. $scope.TracksMap['VarietyTracks' + $scope.variety.variety_id][k].tracks_code = tracks.tracks_code;
  541. $scope.TracksMap['VarietyTracks' + $scope.variety.variety_id][k].tracks_author = tracks.tracks_author;
  542. $scope.TracksMap['VarietyTracks' + $scope.variety.variety_id][k].tracks_source = tracks.tracks_source;
  543. $scope.TracksMap['VarietyTracks' + $scope.variety.variety_id][k].tracks_type = tracks.tracks_type;
  544. }
  545. }
  546. $scope.chooseTracks = undefined;
  547. }
  548. /***************************************************************************
  549. * 显示可报名的考点信息
  550. */
  551. $scope.goAgent = function() {
  552. $scope.TracksArray = [];
  553. // 判断是否选择了曲目
  554. if ($scope.TracksVarietyArray != undefined) {
  555. for (var k = 0; k < $scope.TracksVarietyArray.length; k++) {
  556. var variety = $scope.TracksVarietyArray[k];
  557. for (var m = 0; m < $scope.TracksMap['VarietyTracks' + variety.variety_id].length; m++) {
  558. var tracks = $scope.TracksMap['VarietyTracks' + variety.variety_id][m];
  559. console.log(tracks);
  560. if (tracks.tracks_enrol_type != 'Random' && (tracks.tracks_name == undefined || $.trim(tracks.tracks_name).length == 0)) {
  561. $rootScope.errorMsg('请填报品种[' + variety.variety_name + ']的第' + tracks.tracks_order + '首曲目信息');
  562. return;
  563. }
  564. tracks.variety_id = variety.variety_id;
  565. $scope.TracksArray.push(tracks);
  566. }
  567. }
  568. //曲目重复判断(不同品种的曲目可以相同)
  569. for(var k = 0; k<$scope.TracksVarietyArray.length; k++) {
  570. var variety = $scope.TracksVarietyArray[k];
  571. var tracksArr = []; //根据选择的品种不同,过滤曲目
  572. if($scope.TracksArray && $scope.TracksArray.length > 0) {
  573. for(var i=0; i< $scope.TracksArray.length; i++) {
  574. if($scope.TracksArray[i].variety_id == variety.variety_id) {
  575. tracksArr.push($scope.TracksArray[i]);
  576. }
  577. }
  578. }
  579. for(var i=0; i< tracksArr.length; i++) {
  580. for(var j = i+1; j< tracksArr.length; j++) {
  581. if(tracksArr[i].tracks_name.replace(/^\s*|\s*$/g,"") == tracksArr[j].tracks_name.replace(/^\s*|\s*$/g,"")) {
  582. $rootScope.errorMsg("["+variety.variety_name + "]曲目填报的名称不能相同!");
  583. return;
  584. }
  585. }
  586. }
  587. /*if($scope.TracksArray && $scope.TracksArray.length > 0) {
  588. for(var i=0; i< $scope.TracksArray.length; i++) {
  589. for(var j = i+1; j< $scope.TracksArray.length; j++) {
  590. if($scope.TracksArray[i].tracks_name.replace(/^\s*|\s*$/g,"") == $scope.TracksArray[j].tracks_name.replace(/^\s*|\s*$/g,"")
  591. && variety.variety_id == $scope.TracksArray[i].variety_id) {
  592. $rootScope.errorMsg("曲目填报的名称不能相同!");
  593. return;
  594. }
  595. }
  596. }
  597. }*/
  598. }
  599. }
  600. // 去获取可报考的考点信息
  601. $http({
  602. url : '../enrol/gobal/conf/agent.htm',
  603. method : 'post',
  604. data : {
  605. category_id : $scope.category.category_id,
  606. aspect_id : $scope.aspect.aspect_id
  607. }
  608. }).success(function(data) {
  609. $scope.AgentArray = data.array;
  610. if ($scope.AgentArray && $scope.AgentArray.length == 1) {
  611. $scope.goConfirm($scope.AgentArray[0]);
  612. } else {
  613. $scope.curStep = 'agent';
  614. }
  615. });
  616. }
  617. $scope.goConfirm = function(agent) {
  618. $scope.agent = agent;
  619. $scope.curStep = 'confirm';
  620. $scope.processing = undefined;
  621. }
  622. $scope.goSubmit = function() {
  623. var subjects = new Array();
  624. angular.forEach($scope.SubjectMap['SubjectArray'], function(sb) {
  625. var subject = sb;
  626. // subject.subject = undefined;
  627. subjects.push(subject);
  628. });
  629. var entity = {
  630. std_id : $rootScope.ArtStdReg.std_id,
  631. aspect_id : $scope.aspect.aspect_id,
  632. agent_id : $scope.agent.agent_id,
  633. subject_json : JSON.stringify(subjects),
  634. tracks_json : JSON.stringify($scope.TracksArray),
  635. };
  636. var d = dialog({
  637. title : '操作提示',
  638. content : '请确定报考信息是否有误?',
  639. ok : function() {
  640. $scope.processing = true;
  641. $http({
  642. url : '../enrol/std/enrol/add.htm',
  643. method : 'post',
  644. data : entity
  645. }).success(function(data) {
  646. $rootScope.dialogMsg("报考成功,请及时缴费!", function() {
  647. $state.go('enrol_info', {
  648. bk_status : 1,
  649. enrol_id : data.entity.enrol_id
  650. });
  651. });
  652. }).error(function() {
  653. $scope.processing = undefined;
  654. });
  655. },
  656. cancel : function() {
  657. },
  658. okValue : '确定无误',
  659. cancelValue : '重新检查信息',
  660. width : 350
  661. });
  662. d.showModal();
  663. }
  664. } ]).controller('EnrolInfoCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$stateParams', '$state', 'toaster', function($rootScope, $scope, $http, $timeout, $stateParams, $state, toaster) {
  665. $rootScope.curPage = 'enrol';
  666. if ($stateParams.enrol_id == undefined) {
  667. $rootScope.goUrl("enrol_main");
  668. return;
  669. }
  670. $scope.enrol_id = $stateParams.enrol_id;
  671. $http({
  672. url : '../enrol/gobal/std/enrol/info.htm',
  673. method : 'post',
  674. data : {
  675. std_id : $rootScope.ArtStdReg.std_id,
  676. enrol_id : $stateParams.enrol_id
  677. }
  678. }).success(function(data) {
  679. $scope.map = data.map;
  680. $scope.enrol_active = $scope.map.serverDate <= data.map.CfAgent.enrol_end_time;
  681. });
  682. $scope.goBank = function() {
  683. var d = dialog({
  684. title : '操作提示',
  685. content : '缴费成功后不能再修改报考信息',
  686. ok : function() {
  687. $.ajax({
  688. url : '../bank/gobal/list.htm',
  689. async : false,// 注意这里同步设置
  690. dataType : 'json'
  691. }).success(function(data) {
  692. if (data.array.length == 0) {
  693. $rootScope.errorMsg("银行支付功能未启用,请联系招办!");
  694. return;
  695. }
  696. if (data.array.length == 1) {
  697. // 直接跳转到银行页面
  698. // $scope.goPay(data.array[0]);
  699. var bank = data.array[0];
  700. $scope.chooseBank(bank);
  701. } else {
  702. $scope.BankArray = data.array;
  703. $('#divBankList').modal({
  704. keyboard : false,
  705. backdrop : 'static'
  706. })
  707. }
  708. });
  709. },
  710. cancel : function() {
  711. },
  712. okValue : '确定去缴费',
  713. cancelValue : '重新检查信息',
  714. width : 350
  715. });
  716. d.showModal();
  717. }
  718. // 选择银行
  719. $scope.chooseBank = function(bank) {
  720. $scope.Bank = bank;
  721. $('#divBankList').modal('hide');
  722. $('#divBankInfo').modal({
  723. keyboard : false,
  724. backdrop : 'static'
  725. })
  726. $("#imgBankPay").attr('src', bank.normal_image);
  727. if (bank.bank_code == 'WEIXIN') {
  728. $("#imgBankPay").attr('src', bank.small_image + "?enrol_id=" + $scope.enrol_id + "&std_id=" + $rootScope.ArtStdReg.std_id);
  729. } else {
  730. $scope.goPay(bank);
  731. }
  732. $scope.check = true;
  733. $timeout($scope.checkPayStatus, 1000);
  734. }
  735. $scope.closeBankModal = function() {
  736. $('#divBankList').modal('hide');
  737. }
  738. $scope.checkPayStatus = function() {
  739. if ($scope.check == false)
  740. return;
  741. $http({
  742. url : '../enrol/gobal/std/enrol/check.htm',
  743. method : 'post',
  744. data : {
  745. enrol_id : $stateParams.enrol_id
  746. }
  747. }).success(function(data) {
  748. if (data.entity != undefined) {
  749. // 已经缴费
  750. $scope.goRefresh();
  751. return;
  752. }
  753. $timeout($scope.checkPayStatus, 1000);
  754. }).error(function() {
  755. $timeout($scope.checkPayStatus, 1000);
  756. });
  757. }
  758. $scope.goRefresh = function() {
  759. $scope.check_flag = false;
  760. $('#divBankInfo').modal('hide');
  761. $scope.Bank = null;
  762. $timeout(function() {
  763. $state.go('enrol_info', {
  764. enrol_id : $scope.enrol_id
  765. }, {
  766. reload : true
  767. });
  768. }, 1000)
  769. }
  770. /*$scope.goPay = function(bank) {
  771. window.open("../enrol/gobal/std/pay/jump.htm?std_id=" + $rootScope.ArtStdReg.std_id + "&enrol_id=" + $stateParams.enrol_id + "&bank_code=" + bank.bank_code + "&private_version=" + bank.private_version);
  772. }*/
  773. //new pay
  774. $scope.goPay = function() {
  775. $http({
  776. url : '../enrol/std/pay/channel/list.htm',
  777. method : 'post',
  778. data : {
  779. std_id :$rootScope.ArtStdReg.std_id,
  780. enrol_id : $stateParams.enrol_id
  781. }
  782. }).success(function(data) {
  783. var array = data.array;
  784. if (array == undefined || array.length == 0) {
  785. $rootScope.errorMsg('此考点未开放网络缴费,请联系考点进行缴费确认!');
  786. return;
  787. }
  788. if (array.length > 1) {
  789. // 多个缴费渠道,显示列表供选择
  790. return;
  791. }
  792. $scope.payChannel = array[0];
  793. $scope.channelPay();
  794. }).error(function() {
  795. });
  796. }
  797. //new pay
  798. $scope.channelPay = function() {
  799. // 先判断是否已经缴费
  800. $http({
  801. url : '../std/stdEnrol/pay/check.htm',
  802. method : 'post',
  803. data : {
  804. std_id :$rootScope.ArtStdReg.std_id,
  805. enrol_id : $stateParams.enrol_id
  806. }
  807. }).success(function(entity) {
  808. if (entity.entity.pay_status == 'Active') {
  809. $rootScope.GobalInitMap.StdEnrol.pay_status = 'Active';
  810. $rootScope.GobalInitMap.StdEnrol.pay_time = entity.pay_time;
  811. $rootScope.GobalInitMap.StdEnrol.bill_id = entity.bill_id;
  812. $rootScope.errorMsg('已经对该报考进行了缴费确认,无需再进行缴费操作!', '缴费提示', function() {
  813. $rootScope.goUrl('enrol_main');
  814. });
  815. } else {
  816. if ($scope.payChannel.channel_id == 'WeiXin' || $scope.payChannel.channel_id == 'AnxinPay') {
  817. $scope.PayChannelDialog = dialog({
  818. title : '请用微信进行扫码支付',
  819. content : '<img class="ml-5" alt="正在生成微信扫描信息,请耐心等待!" src="' + $scope.payChannel.small_image + '?enrol_id=' + $stateParams.enrol_id + '&std_id=' + $rootScope.ArtStdReg.std_id + '&date='+ new Date()+'">',
  820. cancelDisplay : true,
  821. width : '300px',
  822. cancelValue : '取消操作',
  823. cancel : function() {
  824. $scope.check_flag = false;
  825. },
  826. quickClose : false
  827. });
  828. $scope.PayChannelDialog.showModal();
  829. }
  830. else {
  831. $scope.PayChannelDialog = dialog({
  832. title : '请在新页面进行支付操作',
  833. content : '系统打开了新的页面导航到银行支付页面,请在新页面完成支付操作,如未能打开新页面,请检查浏览器拦截设置。<br/>在完成支付前,请勿刷新本页面',
  834. cancelDisplay : true,
  835. width : '300px',
  836. cancelValue : '取消操作',
  837. cancel : function() {
  838. $scope.check_flag = false;
  839. },
  840. quickClose : false
  841. });
  842. $scope.PayChannelDialog.showModal();
  843. window.open('../std/stdEnrol/pay/bank.htm?enrol_id=' + $stateParams.enrol_id + '&channel_id=' + $scope.payChannel.channel_id + '&std_id=' + $rootScope.ArtStdReg.std_id);
  844. }
  845. $scope.check_flag = true;
  846. $timeout($scope.checkPay(), 3000);
  847. }
  848. }).error(function() {
  849. $scope.check_flag = true;
  850. $timeout($scope.checkPay(), 3000);
  851. });
  852. }
  853. //new pay
  854. $scope.checkPay = function() {
  855. $http({
  856. url : '../std/stdEnrol/pay/check.htm',
  857. method : 'post',
  858. data : {
  859. std_id :$rootScope.ArtStdReg.std_id,
  860. enrol_id : $stateParams.enrol_id
  861. }
  862. }).success(function(data) {
  863. if (data.entity.pay_status == 'Active') {
  864. $scope.PayChannelDialog.close().remove();
  865. // 已经缴费
  866. //$scope.goRefresh();
  867. $rootScope.goUrl('enrol_main');
  868. return;
  869. } else {
  870. if ($scope.check_flag)
  871. $timeout($scope.checkPay, 3000);
  872. }
  873. }).error(function() {
  874. if ($scope.check_flag)
  875. $timeout($scope.checkPay, 3000);
  876. });
  877. }
  878. $scope.goRemove = function() {
  879. var d = dialog({
  880. title : '操作提示',
  881. content : '请确定是否取消此报考?',
  882. ok : function() {
  883. $scope.myPromise = $http({
  884. url : '../enrol/gobal/std/enrol/remove.htm',
  885. method : 'post',
  886. data : {
  887. std_id : $rootScope.ArtStdReg.std_id,
  888. enrol_id : $stateParams.enrol_id
  889. }
  890. }).success(function(data) {
  891. if (data.success) {
  892. $state.go('enrol_main');
  893. toaster.pop('success', '取消报考', '操作成功!');
  894. }
  895. }).error(function() {
  896. console.log("error");
  897. });
  898. },
  899. cancel : function() {
  900. },
  901. okValue : '确定',
  902. cancelValue : '重新检查信息',
  903. width : 350
  904. });
  905. d.showModal();
  906. }
  907. // if ($stateParams.bk_status) {
  908. // $stateParams.bk_status = undefined;
  909. // $scope.goBank();
  910. // }
  911. } ]).controller('StdBillCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', '$stateParams', function($rootScope, $scope, $http, $timeout, $state, $stateParams) {
  912. $scope.load = function() {
  913. $rootScope.curPage = 'bill';
  914. $scope.std = $rootScope.ArtStdReg;
  915. $http({
  916. url : '../enrol/gobal/std/bill/list.htm',
  917. method : 'post',
  918. data : {
  919. std_id : $scope.std.std_id
  920. }
  921. }).success(function(data) {
  922. if (data.success) {
  923. $scope.array = data.array;
  924. var successNum = 0, refundNum = 0;
  925. angular.forEach($scope.array, function(item) {
  926. if (item.s08 == 'Complete') {
  927. successNum++;
  928. } else if (item.s08 == 'Refund') {
  929. refundNum++;
  930. }
  931. })
  932. if (successNum + refundNum == 0) {
  933. $scope.summary = '暂无缴费信息。如有疑问,请联系管理员。'
  934. } else {
  935. $scope.summary = "您有 " + successNum + " 条支付成功的订单。 ";
  936. if (refundNum > 0) {
  937. $scope.summary += refundNum + " 条已退款订单。"
  938. }
  939. }
  940. } else {
  941. $scope.summary = '操作失败,请联系管理员。'
  942. }
  943. });
  944. }
  945. $scope.load();
  946. } ]).controller('StdScoreCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', '$stateParams', function($rootScope, $scope, $http, $timeout, $state, $stateParams) {
  947. $scope.load = function() {
  948. $rootScope.curPage = 'score';
  949. $scope.std = $rootScope.ArtStdReg;
  950. }
  951. $scope.load();
  952. } ]).controller('EnrolNoticeCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', '$stateParams', '$interval', function($rootScope, $scope, $http, $timeout, $state, $stateParams, $interval) {
  953. $scope.load = function() {
  954. $scope.category_id = $stateParams.category_id;
  955. $scope.readTimeLeft = 1;
  956. $scope.timer = $interval(function() {
  957. if ($scope.readTimeLeft > 0) {
  958. $scope.readTimeLeft--;
  959. } else {
  960. $interval.cancel($scope.timer);
  961. }
  962. }, 1000);
  963. }
  964. $scope.load();
  965. $scope.goEnrolGuide = function() {
  966. var val=$('input:radio[name="readName"]:checked').val();
  967. if(val==null) {
  968. alert("您是否已仔细阅读报考需知!");
  969. return false;
  970. } else {
  971. $state.go('enrol_guide', {
  972. category_id : $scope.category_id
  973. });
  974. }
  975. }
  976. } ]).controller('ReaderDownloadCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', '$stateParams', '$interval', function($rootScope, $scope, $http, $timeout, $state, $stateParams, $interval) {
  977. $scope.load = function() {
  978. $scope.category_id = $stateParams.category_id;
  979. $scope.i05 = $stateParams.i05;
  980. $scope.i04 = $stateParams.i04;
  981. $scope.readTimeLeft = 1;
  982. $scope.timer = $interval(function() {
  983. if ($scope.readTimeLeft > 0) {
  984. $scope.readTimeLeft--;
  985. } else {
  986. $interval.cancel($scope.timer);
  987. }
  988. }, 1000);
  989. }
  990. $scope.load();
  991. $scope.goReaderDownload2 = function(i05,i04) {
  992. $.ajax({
  993. url : '../enrol/gobal/std/ticket/pdf.htm',
  994. data : {
  995. i05 : i05,
  996. std_id : i04
  997. },
  998. async : false,
  999. type : "POST",
  1000. dataType : "json",
  1001. success : function(data) {
  1002. window.open(data.entity);
  1003. }
  1004. });
  1005. }
  1006. } ]).controller('ExamCardCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', '$stateParams', function($rootScope, $scope, $http, $timeout, $state, $stateParams) {
  1007. $scope.load = function() {
  1008. $scope.enrol_id = $stateParams.enrol_id;
  1009. $scope.myPromise = $http({
  1010. url : '../enrol/gobal/std/enrol/info.htm',
  1011. method : 'post',
  1012. data : {
  1013. std_id : $rootScope.ArtStdReg.std_id,
  1014. enrol_id : $stateParams.enrol_id
  1015. }
  1016. }).success(function(data) {
  1017. $scope.map = data.map;
  1018. $scope.std = $rootScope.ArtStdReg;
  1019. $scope.writeSubjects = [];
  1020. $scope.faceSubjects = [];
  1021. angular.forEach($scope.map.SubjectArray, function(subject) {
  1022. if (subject.subject_type == 'Write') {
  1023. $scope.writeSubjects.push(subject);
  1024. } else {
  1025. $scope.faceSubjects.push(subject);
  1026. }
  1027. })
  1028. });
  1029. }
  1030. $scope.load();
  1031. $scope.downloadPdf = function() {
  1032. $scope.myPromise = $http({
  1033. url : '../enrol/gobal/std/enrol/pdf.htm',
  1034. method : 'post',
  1035. data : {
  1036. std_id : $rootScope.ArtStdReg.std_id,
  1037. enrol_id : $scope.enrol_id
  1038. }
  1039. }).success(function(data) {
  1040. console.log(data);
  1041. });
  1042. }
  1043. } ]).controller('ModifyTracksCtrl', [ '$rootScope', '$scope', '$http', '$timeout', '$state', '$stateParams', 'toaster', function($rootScope, $scope, $http, $timeout, $state, $stateParams, toaster) {
  1044. $scope.load = function() {
  1045. $scope.enrol_id = $stateParams.enrol_id;
  1046. $http({
  1047. url : '../enrol/gobal/std/tracks/list.htm',
  1048. method : 'post',
  1049. data : {
  1050. enrol_id: $stateParams.enrol_id
  1051. }
  1052. }).success(function(data) {
  1053. $scope.tracksList = data.array;
  1054. });
  1055. }
  1056. $scope.load();
  1057. //保存修改的曲目
  1058. $scope.saveTracks = function() {
  1059. //不为空判断
  1060. var tracksArr = [];
  1061. for(var tracks of $scope.tracksList) {
  1062. var arr = tracks.tracksList;
  1063. for(var item of arr) {
  1064. if(!item.tracks_name) {
  1065. $rootScope.errorMsg("请填写曲目!");
  1066. return;
  1067. }
  1068. tracksArr.push(item);
  1069. }
  1070. //曲目重复判断
  1071. if(tracksArr && tracksArr.length > 0) {
  1072. for(var i=0; i< tracksArr.length; i++) {
  1073. for(var j = i+1; j< tracksArr.length; j++) {
  1074. if(tracksArr[i].tracks_name.replace(/^\s*|\s*$/g,"") == tracksArr[j].tracks_name.replace(/^\s*|\s*$/g,"")) {
  1075. $rootScope.errorMsg("["+ tracks.variety_name +"]曲目填报的名称不能相同!");
  1076. return;
  1077. }
  1078. }
  1079. }
  1080. }
  1081. }
  1082. var d = dialog({
  1083. title : '操作提示',
  1084. content : '请确定更改曲目吗?',
  1085. ok : function() {
  1086. $scope.processing = true;
  1087. $scope.myPromise = $http({
  1088. url : '../enrol/gobal/std/tracks/update.htm',
  1089. method : 'post',
  1090. data : {
  1091. tracks_json : JSON.stringify(tracksArr)
  1092. }
  1093. }).success(function(data) {
  1094. $rootScope.dialogMsg("修改成功!", function() {
  1095. $state.go('enrol_main', {
  1096. });
  1097. });
  1098. }).error(function() {
  1099. $scope.processing = undefined;
  1100. });
  1101. },
  1102. cancel : function() {
  1103. },
  1104. okValue : '确定无误',
  1105. cancelValue : '重新检查信息',
  1106. width : 350
  1107. });
  1108. d.showModal();
  1109. }
  1110. } ]);