angular.app2.js 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  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.longDateString = function(date) {
  54. date = new Date();
  55. if (angular.isDate(date))
  56. return date.toJSON();
  57. return "";
  58. };
  59. // 将date转换成长时间串
  60. $rootScope.longMinuteString = function(date) {
  61. return $rootScope.longDateString(date).substr(0, 15);
  62. };
  63. // 将日期转换成短时间串
  64. $rootScope.shortDateString = function(date) {
  65. if (date == undefined)
  66. return "";
  67. if (angular.isDate(date))
  68. date = date.toJSON();
  69. if (date.length > 10)
  70. return date.substr(0, 10);
  71. return date;
  72. };
  73. // 获取日期的时间串
  74. $rootScope.shortTimeString = 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(11, 5);
  81. return date;
  82. }
  83. // 将短日期时间串转换成日期
  84. $rootScope.parseShortString = function(date) {
  85. if (date == undefined)
  86. date = new Date();
  87. var str = $rootScope.shortDateString(date);
  88. return new Date(Date.parse(str.replace(/-/g, "/")));
  89. }
  90. // 将长时间串转化成日期
  91. $rootScope.parseLongString = function(date) {
  92. if (angular.isDate(date))
  93. return date;
  94. if (date == undefined || date.length != 19)
  95. return undefined;
  96. return new Date(Date.parse(date.replace(/-/g, "/")));
  97. }
  98. // 获取url参数
  99. $rootScope.GetQueryString = function(name) {
  100. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  101. var r = window.location.search.substr(1).match(reg);
  102. if (r != null)
  103. return unescape(r[2]);
  104. return null;
  105. };
  106. $rootScope.initWinxinApi = function() {
  107. $rootScope.ajaxRequest({
  108. url : '../enrol/wx/config.htm',
  109. data : {
  110. url : location.href.split('#')[0]
  111. }
  112. }, function(data) {
  113. var obj = angular.extend({
  114. debug : false
  115. }, data.entity, {
  116. 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' ]
  117. });
  118. wx.error(function(res) {
  119. // 加载直到成功为止
  120. $rootScope.initWinxinApi();
  121. return false;
  122. });
  123. wx.config(obj);
  124. wx.ready(function() {
  125. wx.hideOptionMenu();
  126. wx.hideAllNonBaseMenuItem();
  127. });
  128. });
  129. };
  130. $rootScope.getParamValue = function(paran_name, default_value) {
  131. if ($rootScope.FrameParam[paran_name] == undefined)
  132. return default_value;
  133. return $rootScope.FrameParam[paran_name];
  134. }
  135. $rootScope.checkParamValue = function(param_name, default_value, check_value) {
  136. var value = $rootScope.getParamValue(param_name, default_value);
  137. if ((value + '') == (check_value + ''))
  138. return true;
  139. return false;
  140. }
  141. $rootScope.InitStatus = false;
  142. $rootScope.loginSuccess = false;
  143. $rootScope.getUserInfo = function() {
  144. // 请求用户信息
  145. $.ajax({
  146. url : '../enrol/wx/user/info.htm',
  147. async : false,
  148. type : "POST",
  149. dataType : "json",
  150. data : {
  151. code : $rootScope.GetQueryString('code')
  152. },
  153. success : function(data) {
  154. $.hideLoading();
  155. if (data.success == false) {
  156. $.alert(data.errorMsg, function() {
  157. WeixinJSBridge.call('closeWindow');
  158. });
  159. // if(data.login == false) {
  160. // $.alert("微信加载出现问题,请退出重新进入公众号!", function() {
  161. // WeixinJSBridge.call('closeWindow');
  162. // });
  163. // return;
  164. // }else {
  165. // $.alert(data.errorMsg, function() {
  166. // WeixinJSBridge.call('closeWindow');
  167. // });
  168. // return;
  169. // }
  170. return;
  171. }
  172. // 初始化成功
  173. $rootScope.InitStatus = true;
  174. $rootScope.loginSuccess = true;
  175. // 初始化参数信息
  176. $rootScope.FrameParam = {};
  177. angular.forEach(data.map.FrameParamArray, function(param) {
  178. $rootScope.FrameParam[param.param_name] = param.param_value;
  179. });
  180. $rootScope.StdTypeArray = data.map.StdTypeArray;
  181. // 设置微信抬头
  182. if ($rootScope.FrameParam.EnrolTitle) {
  183. document.title = $rootScope.FrameParam.EnrolTitle;
  184. }
  185. // 判断当前考务状态
  186. if ($rootScope.FrameParam.ArtStatus == 'Config') {
  187. // 未开放报名,
  188. $rootScope.InitStatus = false;
  189. WeixinJSBridge.call('closeWindow');
  190. return;
  191. }
  192. $rootScope.ArtStdReg = data.map.StdReg;
  193. $rootScope.WxUser = data.map.WxUser;
  194. // --std_info
  195. if (data.map.StdReg != undefined) {
  196. // 处理考生信息
  197. if (data.map.StdReg.reg_status == 'IdCard') {
  198. // 上传了证件照片
  199. $rootScope.goLocation('std/reg');
  200. } else if (data.map.StdReg.reg_status == 'NoCrownPhoto') {
  201. // 上传免冠照片
  202. $rootScope.goLocation('std/reg');
  203. } else {
  204. $rootScope.goLocation('main');
  205. }
  206. } else {
  207. if ($rootScope.FrameParam.AllowStdReg == 'InActive') {
  208. // 不允许考生自行注册
  209. $rootScope.goLocation('std/binding');
  210. } else {
  211. $rootScope.goLocation('std/reg');
  212. }
  213. return;
  214. }
  215. },
  216. error : function(data) {
  217. }
  218. });
  219. }
  220. $rootScope.initWinxinApi();
  221. $rootScope.getUserInfo();
  222. $rootScope.isProvinceStd = function() {
  223. if ($rootScope.ArtStdReg.std_province == $rootScope.FrameParam.SchoolProvince)
  224. return true;
  225. return false;
  226. }
  227. $rootScope.getTimeName = function(time_type) {
  228. if (time_type + '' == '1')
  229. return '上午';
  230. else if (time_type + '' == '2')
  231. return '下午';
  232. if (time_type + '' == '3')
  233. return '晚上';
  234. else
  235. return time_type;
  236. }
  237. $rootScope.uploadStdMaterial = function(material_type, fn, enrol_id) {
  238. wx.chooseImage({
  239. count : 1, // 默认9
  240. sizeType : [ 'compressed' ], // 可以指定是原图还是压缩图,默认二者都有'original',
  241. sourceType : [ 'album', 'camera' ], // 可以指定来源是相册还是相机,默认二者都有
  242. success : function(res) {
  243. var localIds = res.localIds;
  244. wx.uploadImage({
  245. localId : localIds[0], // 需要上传的图片的本地ID,由chooseImage接口获得
  246. isShowProgressTips : 1, // 默认为1,显示进度提示
  247. success : function(serverRes) {
  248. var serverId = serverRes.serverId; // 返回图片的服务器端ID
  249. $.showLoading("考生材料上传中,请稍候...")
  250. // 上传成功,去服务器取图片
  251. var vData = {
  252. std_id : $rootScope.ArtStdReg.std_id,
  253. media_id : serverId,
  254. material_type : material_type
  255. };
  256. if (enrol_id)
  257. vData.enrol_id = enrol_id;
  258. $rootScope.ajaxRequest({
  259. url : '../enrol/std/material/upload.htm',
  260. method : 'post',
  261. data : vData
  262. }, function(data) {
  263. $.hideLoading();
  264. $rootScope[material_type] = data.entity;
  265. if (material_type == 'NoCrownPhoto') {
  266. $rootScope.ArtStdReg.std_image = data.entity.material_file;
  267. }
  268. if (fn)
  269. fn.call(undefined, data);
  270. });
  271. },
  272. fail : function(error) {
  273. $.alert('图片服务器暂时无法访问,请稍侯再试', '错误提示');
  274. }
  275. });
  276. }
  277. });
  278. }
  279. } ]);