angular.app.js 11 KB

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