angular.app.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. app.controller('AppCtrl', [ '$rootScope', '$scope', '$http', '$localStorage', '$location', '$q', '$timeout', '$sce', function($rootScope, $scope, $http, $localStorage, $location, $q, $timeout, $sce) {
  2. /***************************************************************************
  3. * Frame参数
  4. */
  5. $rootScope.frame = {
  6. CompanyName : '',
  7. FrameVersion : '2.0.0',
  8. WaitWindow : false
  9. };
  10. $rootScope.ArtStdReg = undefined;
  11. // 设置cookeis
  12. $rootScope.setLocalStorage = function(name, value) {
  13. $localStorage[name] = value;
  14. };
  15. // 获取cookies
  16. $rootScope.getLocalStorage = function(name) {
  17. return $localStorage[name];
  18. };
  19. // 内部跳转
  20. $rootScope.goLocation = function(url) {
  21. $location.path('app/' + url);
  22. };
  23. // 到首页
  24. $rootScope.goWechat = function(url) {
  25. window.location = './wechat.jsp';
  26. };
  27. $scope.closeWechat = function() {
  28. WeixinJSBridge.call('closeWindow');
  29. }
  30. $rootScope.showHtml = function(html) {
  31. var value = html.replace(/ /g, '&nbsp;').replace(/\n/g, '<br />');
  32. return $sce.trustAsHtml(value);
  33. }
  34. // Ajax统一请求函数
  35. $rootScope.ajaxRequest = function(params, fn) {
  36. if (params == undefined)
  37. params = {};
  38. if (params.data == undefined)
  39. params.data = {};
  40. if ($rootScope.ArtStdReg != undefined)
  41. params.data.std_id = $rootScope.ArtStdReg.std_id;
  42. var params = angular.extend({
  43. method : 'post'
  44. }, params);
  45. $http(params).then(function onSuccess(response) {
  46. // $.hideLoading();
  47. if (response == undefined)
  48. console.log(params);
  49. fn.call(undefined, response.data);
  50. });
  51. };
  52. // 将date转换成长时间串
  53. $rootScope.isAfterTime = function(date, now) {
  54. if (now == undefined)
  55. now = new Date();
  56. if (!angular.isDate(date))
  57. date = $rootScope.parseLongString(date);
  58. console.log(date.getTime() - now.getTime());
  59. return date.getTime() > now.getTime();
  60. };
  61. // 将date转换成长时间串
  62. $rootScope.longDateString = function(date) {
  63. if (date == undefined)
  64. date = new Date();
  65. if (angular.isDate(date))
  66. return date.toJSON();
  67. return "";
  68. };
  69. // 将date转换成长时间串
  70. $rootScope.longMinuteString = function(date) {
  71. return $rootScope.longDateString(date).substr(0, 15);
  72. };
  73. // 将日期转换成短时间串
  74. $rootScope.shortDateString = function(date) {
  75. if (date == undefined)
  76. return "";
  77. if (angular.isDate(date))
  78. date = date.toJSON();
  79. if (date.length > 10)
  80. return date.substr(0, 10);
  81. return date;
  82. };
  83. // 获取日期的时间串
  84. $rootScope.shortTimeString = function(date) {
  85. if (date == undefined)
  86. return "";
  87. if (angular.isDate(date))
  88. date = date.toJSON();
  89. if (date.length > 10)
  90. return date.substr(11, 5);
  91. return date;
  92. }
  93. // 将短日期时间串转换成日期
  94. $rootScope.parseShortString = function(date) {
  95. if (date == undefined)
  96. date = new Date();
  97. var str = $rootScope.shortDateString(date);
  98. return new Date(Date.parse(str.replace(/-/g, "/")));
  99. }
  100. // 将长时间串转化成日期
  101. $rootScope.parseLongString = function(date) {
  102. if (angular.isDate(date))
  103. return date;
  104. if (date == undefined || date.length != 19)
  105. return undefined;
  106. return new Date(Date.parse(date.replace(/-/g, "/")));
  107. }
  108. // 获取url参数
  109. $rootScope.GetQueryString = function(name) {
  110. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  111. var r = window.location.search.substr(1).match(reg);
  112. if (r != null)
  113. return unescape(r[2]);
  114. return null;
  115. };
  116. $rootScope.initWinxinApi = function() {
  117. $rootScope.ajaxRequest({
  118. url : '../enrol/wx/config.htm',
  119. data : {
  120. url : location.href.split('#')[0]
  121. }
  122. }, function(data) {
  123. var obj = angular.extend({
  124. debug : false
  125. }, data.entity, {
  126. jsApiList : [ 'checkJsApi', 'hideMenuItems', 'showMenuItems', 'hideAllNonBaseMenuItem', 'showAllNonBaseMenuItem', 'translateVoice', 'startRecord', 'stopRecord', 'onVoiceRecordEnd', 'playVoice', 'onVoicePlayEnd', 'pauseVoice', 'stopVoice', 'uploadVoice', 'downloadVoice', 'chooseImage', 'previewImage', 'uploadImage', 'downloadImage', 'getNetworkType', 'openLocation', 'getLocation', 'hideOptionMenu', 'showOptionMenu', 'closeWindow', 'scanQRCode', 'chooseWXPay', 'openProductSpecificView', 'addCard', 'chooseCard', 'openCard' ]
  127. });
  128. wx.error(function(res) {
  129. // 加载直到成功为止
  130. $rootScope.initWinxinApi();
  131. return false;
  132. });
  133. wx.config(obj);
  134. wx.ready(function() {
  135. wx.hideOptionMenu();
  136. wx.hideAllNonBaseMenuItem();
  137. });
  138. });
  139. };
  140. $rootScope.getParamValue = function(paran_name, default_value) {
  141. if ($rootScope.FrameParam[paran_name] == undefined)
  142. return default_value;
  143. return $rootScope.FrameParam[paran_name];
  144. }
  145. $rootScope.checkParamValue = function(param_name, default_value, check_value) {
  146. var value = $rootScope.getParamValue(param_name, default_value);
  147. if ((value + '') == (check_value + ''))
  148. return true;
  149. return false;
  150. }
  151. $rootScope.InitStatus = false;
  152. $rootScope.loginSuccess = false;
  153. $rootScope.getUserInfo = function() {
  154. // 请求用户信息
  155. $.ajax({
  156. url : '../enrol/wx/user/info.htm',
  157. async : false,
  158. type : "POST",
  159. dataType : "json",
  160. data : {
  161. code : $rootScope.GetQueryString('code')
  162. },
  163. success : function(data) {
  164. $.hideLoading();
  165. if (data.success == false) {
  166. $.alert(data.errorMsg, function() {
  167. WeixinJSBridge.call('closeWindow');
  168. });
  169. // if(data.login == false) {
  170. // $.alert("微信加载出现问题,请退出重新进入公众号!", function() {
  171. // WeixinJSBridge.call('closeWindow');
  172. // });
  173. // return;
  174. // }else {
  175. // $.alert(data.errorMsg, function() {
  176. // WeixinJSBridge.call('closeWindow');
  177. // });
  178. // return;
  179. // }
  180. return;
  181. }
  182. // 初始化成功
  183. $rootScope.InitStatus = true;
  184. $rootScope.loginSuccess = true;
  185. // 初始化参数信息
  186. $rootScope.FrameParam = {};
  187. angular.forEach(data.map.FrameParamArray, function(param) {
  188. $rootScope.FrameParam[param.param_name] = param.param_value;
  189. });
  190. $rootScope.StdTypeArray = data.map.StdTypeArray;
  191. // 设置微信抬头
  192. if ($rootScope.FrameParam.EnrolTitle) {
  193. document.title = $rootScope.FrameParam.EnrolTitle;
  194. }
  195. // 判断当前考务状态
  196. if ($rootScope.FrameParam.ArtStatus == 'Config') {
  197. // 未开放报名,
  198. $rootScope.InitStatus = false;
  199. WeixinJSBridge.call('closeWindow');
  200. return;
  201. }
  202. $rootScope.ArtStdReg = data.map.StdReg;
  203. $rootScope.WxUser = data.map.WxUser;
  204. // --std_info
  205. if (data.map.StdReg != undefined) {
  206. // 处理考生信息
  207. if (data.map.StdReg.reg_status == 'IdCard') {
  208. // 上传了证件照片
  209. $rootScope.goLocation('std/reg');
  210. } else if (data.map.StdReg.reg_status == 'NoCrownPhoto') {
  211. // 上传免冠照片
  212. $rootScope.goLocation('std/reg');
  213. } else if (data.map.StdReg.std_score_file == 'firstLogin') {
  214. $rootScope.goLocation('std/info');
  215. } else {
  216. $rootScope.goLocation('main');
  217. }
  218. } else {
  219. if ($rootScope.FrameParam.AllowStdReg == 'InActive') {
  220. // 不允许考生自行注册
  221. if($rootScope.FrameParam.GeneralExam == 'Active') {
  222. $rootScope.goLocation('std/wybinding');
  223. } else {
  224. $rootScope.goLocation('std/binding');
  225. }
  226. } else {
  227. $rootScope.goLocation('std/reg');
  228. }
  229. return;
  230. }
  231. },
  232. error : function(data) {
  233. }
  234. });
  235. }
  236. $rootScope.getJudgerInfo = function() {
  237. $.ajax({
  238. url : '../judge/wx/judger/info.htm',
  239. async : false,
  240. type : "POST",
  241. dataType : "json",
  242. data : {
  243. code : $rootScope.GetQueryString('code')
  244. },
  245. success : function(data) {
  246. $.hideLoading();
  247. if (data.success == false) {
  248. $.alert(data.errorMsg, function() {
  249. WeixinJSBridge.call('closeWindow');
  250. });
  251. return;
  252. }
  253. // 初始化成功
  254. $rootScope.InitStatus = true;
  255. $rootScope.loginSuccess = true;
  256. // 初始化参数信息
  257. $rootScope.FrameParam = {};
  258. angular.forEach(data.map.FrameParamArray, function(param) {
  259. $rootScope.FrameParam[param.param_name] = param.param_value;
  260. });
  261. $rootScope.WxUser = data.map.WxUser;
  262. if (data.map.WxUser) {
  263. $rootScope.goLocation('judge');
  264. }
  265. /*
  266. * else{ $rootScope.goLocation('judge/binding'); }
  267. */
  268. },
  269. error : function(data) {
  270. }
  271. });
  272. }
  273. $rootScope.initWinxinApi();
  274. if (location.search.indexOf('?judge') != -1) {
  275. $rootScope.getJudgerInfo();
  276. } else {
  277. $rootScope.getUserInfo();
  278. }
  279. $rootScope.isProvinceStd = function() {
  280. if ($rootScope.ArtStdReg.std_province == $rootScope.FrameParam.SchoolProvince)
  281. return true;
  282. return false;
  283. }
  284. $rootScope.getTimeName = function(time_type) {
  285. if (time_type + '' == '1')
  286. return '上午';
  287. else if (time_type + '' == '2')
  288. return '下午';
  289. if (time_type + '' == '3')
  290. return '晚上';
  291. else
  292. return time_type;
  293. }
  294. $rootScope.uploadStdMaterial = function(material_type, fn, enrol_id) {
  295. wx.chooseImage({
  296. count : 1, // 默认9
  297. sizeType : [ 'compressed' ], // 可以指定是原图还是压缩图,默认二者都有'original',
  298. sourceType : [ 'album', 'camera' ], // 可以指定来源是相册还是相机,默认二者都有
  299. success : function(res) {
  300. var localIds = res.localIds;
  301. wx.uploadImage({
  302. localId : localIds[0], // 需要上传的图片的本地ID,由chooseImage接口获得
  303. isShowProgressTips : 1, // 默认为1,显示进度提示
  304. success : function(serverRes) {
  305. var serverId = serverRes.serverId; // 返回图片的服务器端ID
  306. $.showLoading("考生材料上传中,请稍候...")
  307. // 上传成功,去服务器取图片
  308. var vData = {
  309. std_id : $rootScope.ArtStdReg.std_id,
  310. media_id : serverId,
  311. material_type : material_type
  312. };
  313. if (enrol_id)
  314. vData.enrol_id = enrol_id;
  315. $rootScope.ajaxRequest({
  316. url : '../enrol/std/material/upload.htm',
  317. method : 'post',
  318. data : vData
  319. }, function(data) {
  320. $.hideLoading();
  321. $rootScope[material_type] = data.entity;
  322. if (material_type == 'NoCrownPhoto') {
  323. $rootScope.ArtStdReg.std_image = data.entity.material_file;
  324. }
  325. if (fn)
  326. fn.call(undefined, data);
  327. });
  328. },
  329. fail : function(error) {
  330. $.alert('图片服务器暂时无法访问,请稍侯再试', '错误提示');
  331. }
  332. });
  333. }
  334. });
  335. }
  336. } ]);