angular.app.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  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. return;
  160. }
  161. // 初始化成功
  162. $rootScope.InitStatus = true;
  163. $rootScope.loginSuccess = true;
  164. // 初始化参数信息
  165. $rootScope.FrameParam = {};
  166. angular.forEach(data.map.FrameParamArray, function(param) {
  167. $rootScope.FrameParam[param.param_name] = param.param_value;
  168. });
  169. $rootScope.StdTypeArray = data.map.StdTypeArray;
  170. // 设置微信抬头
  171. if ($rootScope.FrameParam.EnrolTitle) {
  172. document.title = $rootScope.FrameParam.EnrolTitle;
  173. }
  174. // 判断当前考务状态
  175. if ($rootScope.FrameParam.ArtStatus == 'Config') {
  176. // 未开放报名,
  177. $rootScope.InitStatus = false;
  178. WeixinJSBridge.call('closeWindow');
  179. return;
  180. }
  181. $rootScope.ArtStdReg = data.map.StdReg;
  182. $rootScope.WxUser = data.map.WxUser;
  183. if (data.map.StdReg != undefined) {
  184. // 处理考生信息
  185. if (data.map.StdReg.reg_status == 'IdCard') {
  186. // 上传了证件照片
  187. $rootScope.goLocation('std/reg');
  188. } else if (data.map.StdReg.reg_status == 'NoCrownPhoto') {
  189. // 上传免冠照片
  190. $rootScope.goLocation('std/reg');
  191. } else if (data.map.StdReg.std_score_file == 'firstLogin') {
  192. $rootScope.goLocation('std/info');
  193. } else {
  194. $rootScope.goLocation('main');
  195. }
  196. } else {
  197. if ($rootScope.FrameParam.AllowStdReg == 'InActive') {
  198. // 不允许考生自行注册
  199. if($rootScope.FrameParam.GeneralExam == 'Active') {
  200. $rootScope.goLocation('std/wybinding');
  201. } else {
  202. $rootScope.goLocation('std/binding');
  203. }
  204. //$rootScope.goLocation('std/notice');
  205. } else {
  206. $rootScope.goLocation('std/reg');
  207. }
  208. return;
  209. }
  210. },
  211. error : function(data) {
  212. }
  213. });
  214. }
  215. $rootScope.initWinxinApi();
  216. $rootScope.getUserInfo();
  217. $rootScope.isProvinceStd = function() {
  218. if ($rootScope.ArtStdReg.std_province == $rootScope.FrameParam.SchoolProvince)
  219. return true;
  220. return false;
  221. }
  222. $rootScope.getTimeName = function(time_type) {
  223. if (time_type + '' == '1')
  224. return '上午';
  225. else if (time_type + '' == '2')
  226. return '下午';
  227. if (time_type + '' == '3')
  228. return '晚上';
  229. else
  230. return time_type;
  231. }
  232. $rootScope.isMobile = function() {
  233. if(window.navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)) {
  234. return true; // 移动端
  235. }else{
  236. return false; // PC端
  237. }
  238. }
  239. $rootScope.uploadStdMaterial = function(material_type, fn, enrol_id) {
  240. if(!$rootScope.isMobile()) {
  241. $.alert('请使用手机微信拍照上传免冠照!');
  242. return;
  243. }
  244. wx.chooseImage({
  245. count : 1, // 默认9
  246. sizeType : [ 'compressed' ], // 可以指定是原图还是压缩图,默认二者都有'original',
  247. sourceType : ['album','camera' ], // 可以指定来源是相册还是相机,默认二者都有
  248. success : function(res) {
  249. var localIds = res.localIds;
  250. wx.uploadImage({
  251. localId : localIds[0], // 需要上传的图片的本地ID,由chooseImage接口获得
  252. isShowProgressTips : 1, // 默认为1,显示进度提示
  253. success : function(serverRes) {
  254. var serverId = serverRes.serverId; // 返回图片的服务器端ID
  255. $.showLoading("考生材料上传中,请稍候...")
  256. // 上传成功,去服务器取图片
  257. var vData = {
  258. std_id : $rootScope.ArtStdReg.std_id,
  259. media_id : serverId,
  260. material_type : material_type
  261. };
  262. if (enrol_id)
  263. vData.enrol_id = enrol_id;
  264. $rootScope.ajaxRequest({
  265. url : '../enrol/std/material/upload.htm',
  266. method : 'post',
  267. data : vData
  268. }, function(data) {
  269. $.hideLoading();
  270. $rootScope[material_type] = data.entity;
  271. if (material_type == 'NoCrownPhoto') {
  272. $rootScope.ArtStdReg.std_image = data.entity.material_file;
  273. }
  274. if (fn)
  275. fn.call(undefined, data);
  276. });
  277. },
  278. fail : function(error) {
  279. $.alert('图片服务器暂时无法访问,请稍侯再试', '错误提示');
  280. }
  281. });
  282. }
  283. });
  284. }
  285. $rootScope.uploadStdMaterialPhoto = function(material_type, fn, enrol_id) {
  286. if(!$rootScope.isMobile()) {
  287. $.alert('请使用手机微信拍照上传免冠照!');
  288. return;
  289. }
  290. wx.chooseImage({
  291. count : 1, // 默认9
  292. sizeType : [ 'compressed' ], // 可以指定是原图还是压缩图,默认二者都有'original',
  293. sourceType : ['camera' ], // 可以指定来源是相册还是相机,默认二者都有
  294. success : function(res) {
  295. var localIds = res.localIds;
  296. wx.uploadImage({
  297. localId : localIds[0], // 需要上传的图片的本地ID,由chooseImage接口获得
  298. isShowProgressTips : 1, // 默认为1,显示进度提示
  299. success : function(serverRes) {
  300. var serverId = serverRes.serverId; // 返回图片的服务器端ID
  301. $.showLoading("考生材料上传中,请稍候...")
  302. // 上传成功,去服务器取图片
  303. var vData = {
  304. std_id : $rootScope.ArtStdReg.std_id,
  305. media_id : serverId,
  306. material_type : material_type
  307. };
  308. if (enrol_id)
  309. vData.enrol_id = enrol_id;
  310. $rootScope.ajaxRequest({
  311. url : '../enrol/std/material/upload.htm',
  312. method : 'post',
  313. data : vData
  314. }, function(data) {
  315. $.hideLoading();
  316. $rootScope[material_type] = data.entity;
  317. if (material_type == 'NoCrownPhoto') {
  318. $rootScope.ArtStdReg.std_image = data.entity.material_file;
  319. }
  320. if (fn)
  321. fn.call(undefined, data);
  322. });
  323. },
  324. fail : function(error) {
  325. $.alert('图片服务器暂时无法访问,请稍侯再试', '错误提示');
  326. }
  327. });
  328. }
  329. });
  330. }
  331. } ]);