login.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. var loginPage = new Vue({
  2. el: "#loginPage",
  3. data: {
  4. maxtime:60,
  5. loginLoading: false,
  6. qrCodeLogin: false,
  7. loginAccount: '',
  8. loginPassword: '',
  9. rule:{
  10. account: "(^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$)|(^\\d{6,12}$)",
  11. password: "^[^\\u4e00-\\u9fa5]{6,30}$"
  12. },
  13. userData: {
  14. account: '',
  15. email: '',
  16. phone: '',
  17. name: '',
  18. userName: '',
  19. userId: '',
  20. spId: '',
  21. clubId: '',
  22. shopId: '',
  23. identity: '',
  24. permission: '',
  25. token: ''
  26. },
  27. applyUse:{
  28. clubId: '',
  29. shopId: '',
  30. token:'',
  31. },
  32. isWeChat: false,
  33. text:'',
  34. stautsfalse:false,
  35. infofalse:false,
  36. isSlideFinishState:true
  37. },
  38. computed: {
  39. },
  40. methods: {
  41. hideBg:function(){
  42. this.stautsfalse=false;
  43. },
  44. information:function(){
  45. window.location.href='/supplier/information.html';
  46. this.SetSoragesInfo( this.applyUse);
  47. },
  48. toQrCodeLogin: function(){//切换微信登录二维码
  49. var _self = this;
  50. var timeClock = null;
  51. this.qrCodeLogin = true;
  52. UserApi.ToWechatLogin({},function(response){
  53. var wxLogin = new WxLogin({
  54. self_redirect: true,
  55. id: "qrCodeWrap",
  56. appid: response.data.appId,
  57. scope: 'snsapi_login',
  58. redirect_uri: response.data.redirectUri,
  59. state: response.data.state,
  60. style: "black",
  61. href: "https://www.caimei365.com/css/base/base.pc.css"
  62. });
  63. timeClock = setInterval(function(){
  64. _self.maxtime--;
  65. if (_self.maxtime == 0) {
  66. clearInterval(timeClock);
  67. };
  68. },1000);
  69. _self.getWrchatStatusData({state:response.data.state})
  70. });
  71. },
  72. getWrchatStatusData:function(params){//轮询查询用户是否扫描过二维码登录
  73. var _self = this;
  74. var timer = null;
  75. UserApi.ToWechatPolling(params,function(response){
  76. if(response.code == -90){
  77. if(_self.maxtime == 0){
  78. clearInterval(timer);
  79. _self.maxtime = 60;
  80. $('#qrCodeWrap').append('<div class="model"><div class="refresh-div"><img class="refresh" src="/img/base/shua.png" alt=""><p>二维码已失效,点击刷新</p></div></div>');
  81. $('#qrCodeWrap .model').click(function () {
  82. $(this).remove();
  83. _self.toQrCodeLogin();
  84. })
  85. }else{
  86. timer = setTimeout(function(){
  87. _self.getWrchatStatusData(params);
  88. },3000)
  89. }
  90. }else {
  91. clearTimeout(timer); //清理定时任务
  92. if(response.code == 0){
  93. _self.userData = {
  94. account: response.data.account,
  95. email: response.data.email,
  96. phone: response.data.bindMobile,
  97. name: response.data.name,
  98. userName: response.data.userName,
  99. userId: response.data.userId,
  100. spId: response.data.serviceProviderId,
  101. clubId: response.data.clubId,
  102. shopId: response.data.shopId,
  103. userIdentity: response.data.userIdentity,
  104. permission: response.data.userPermission,
  105. token: response.data.token,
  106. unionId:response.data.unionId,
  107. firstClubType:response.data.firstClubType,
  108. vipFlag: response.data.vipFlag,
  109. listingFee:response.data.listingFee
  110. };
  111. _self.setStorages( _self.userData);
  112. // 登录成功页面跳转
  113. var loginBeforePath = getBaseCookie("loginBeforePath");
  114. if (loginBeforePath && loginBeforePath!='undefined' && loginBeforePath.indexOf('.html')>0) {
  115. delBaseCookie("loginBeforePath");
  116. window.location.href = loginBeforePath;
  117. } else if (_self.userData.userIdentity*1 === 3) {
  118. location.href = '/supplier/dashboard.html';
  119. } else if (_self.userData.userIdentity*1 === 2 || _self.userData.userIdentity*1 === 4) {
  120. location.href = '/user/dashboard.html';
  121. } else {
  122. location.href="/index.html";
  123. }
  124. }else if(response.code == -4){
  125. _self.userData = {
  126. account: response.data.account,
  127. email: response.data.email,
  128. phone: response.data.bindMobile,
  129. name: response.data.name ? response.data.name : response.data.userName,
  130. userName: response.data.userName,
  131. userId: response.data.userId,
  132. spId: response.data.serviceProviderId,
  133. clubId: response.data.clubId,
  134. shopId: response.data.shopId,
  135. userIdentity: response.data.userIdentity,
  136. permission: response.data.userPermission,
  137. token: response.data.token,
  138. unionId:response.data.unionId,
  139. listingFee:response.data.listingFee
  140. };
  141. _self.setStorages( _self.userData);
  142. setTimeout(function(){
  143. window.location.href = '/bind.html';
  144. },1000);
  145. }else if(response.code == '-3'){//审核未通过
  146. _self.text ='您的供应商账号审核未通过,原因:图片模糊,营业执照错误,审核人员在后台填写的内容';
  147. _self.stautsfalse = true;
  148. _self.infofalse = true;
  149. _self.applyUse = {
  150. userId: response.data.userId,
  151. shopId: response.data.shopId,
  152. token: response.data.token
  153. };
  154. console.log(_self.applyUse);
  155. }else if(response.code == '-2'){
  156. _self.stautsfalse = true;
  157. _self.text ='您的供应商账号正在加速审核中,审核通过后即可登录';
  158. }else{
  159. CAIMEI.Alert(response.msg,'确定',false);
  160. }
  161. }
  162. });
  163. },
  164. // 微信公众号授权登录
  165. weChatLogin: function(){
  166. if (this.isWeChat) {
  167. // 微信浏览器自动授权登录
  168. var urlForWeChat = 'https://www.caimei365.com/we_chat/redirect_uri.html';
  169. $.get(coreServer+'/user/login/auth/link?mode=2&redirectUri='+urlForWeChat, function(r){
  170. if(r.code===0 && r.data){
  171. setBaseCookie("weChatAutoLogin", 2);
  172. window.location.href = r.data;
  173. }
  174. });
  175. }
  176. },
  177. toNormalLogin: function(){
  178. this.qrCodeLogin = false;
  179. },
  180. showPassword: function(event) {
  181. var el = event.currentTarget;
  182. var pwdEle = $(el).siblings('input');
  183. if(pwdEle.attr('type') === 'password') {
  184. $(el).addClass('on');
  185. pwdEle.attr('type','text');
  186. } else {
  187. $(el).removeClass('on');
  188. pwdEle.attr('type','password');
  189. }
  190. },
  191. blurHandle: function(event) { // 失去焦点校验
  192. var el = event.currentTarget;
  193. verifyHandle(el);
  194. },
  195. loginSubmit: function () { // 账号登录
  196. var _self = this;
  197. var pass = verifyForm();
  198. if (this.loginLoading) { return false; }
  199. this.$nextTick(function(){
  200. if (!pass) { return false; }
  201. _self.loginLoading = true;
  202. var params = {mobileOrEmail: _self.loginAccount,password: _self.loginPassword};
  203. UserApi.PostLoginAccount(params,function(response){
  204. _self.loginLoading = false;
  205. if(response.code === 0){
  206. console.log(response);
  207. _self.userData = {
  208. account: response.data.account,
  209. email: response.data.email,
  210. phone: response.data.bindMobile,
  211. name: response.data.name,
  212. userName: response.data.userName,
  213. userId: response.data.userId,
  214. spId: response.data.serviceProviderId,
  215. clubId: response.data.clubId,
  216. shopId: response.data.shopId,
  217. userIdentity: response.data.userIdentity,
  218. permission: response.data.userPermission,
  219. token: response.data.token,
  220. vipFlag: response.data.vipFlag,
  221. firstClubType: response.data.firstClubType,
  222. listingFee:response.data.listingFee
  223. };
  224. _self.setStorages( _self.userData);
  225. // 登录成功页面跳转
  226. var loginBeforePath = getBaseCookie("loginBeforePath");
  227. if (loginBeforePath && loginBeforePath!='undefined' && loginBeforePath.indexOf('.html')>0) {
  228. delBaseCookie("loginBeforePath");
  229. window.location.href = loginBeforePath;
  230. } else if (_self.userData.userIdentity*1 === 3) {
  231. location.href = '/supplier/dashboard.html';
  232. } else if (_self.userData.userIdentity*1 === 2 || _self.userData.userIdentity*1 === 4) {
  233. location.href = '/user/dashboard.html';
  234. } else {
  235. location.href="/index.html";
  236. }
  237. } else if(response.code == '-3'){//审核未通过
  238. _self.text =response.msg;
  239. _self.stautsfalse = true;
  240. _self.infofalse = true;
  241. _self.applyUse = {
  242. userId: response.data.userId,
  243. shopId: response.data.shopId,
  244. token: response.data.token
  245. };
  246. }else if(response.code == '-2'){
  247. _self.stautsfalse = true;
  248. _self.text =response.msg;
  249. }else {// 登录失败
  250. CAIMEI.Alert(response.msg,'确定',false);
  251. }
  252. });
  253. });
  254. },
  255. SetSoragesInfo:function(data){
  256. localStorage.setItem('APPLY_INFO',JSON.stringify(data));
  257. },
  258. setStorages:function(data){//存储本地数据
  259. localStorage.setItem('userInfo',JSON.stringify(data));
  260. }
  261. },
  262. created: function () {
  263. var userAgent = navigator.userAgent.toLowerCase();
  264. this.isWeChat = userAgent.match(/MicroMessenger/i);
  265. // this.weChatAutoLogin();
  266. },
  267. mounted: function () {
  268. var _self = this;
  269. var SlideVerifyPlug = window.slideVerifyPlug;
  270. var slideVerify = new SlideVerifyPlug('#verify-wrap',{
  271. wrapWidth:'350',//设置 容器的宽度 ,不设置的话,会设置成100%,需要自己在外层包层div,设置宽度,这是为了适应方便点;
  272. initText:'请向右滑动滑块', //设置 初始的 显示文字
  273. sucessText:'验证通过',//设置 验证通过 显示的文字
  274. getSuccessState:function(res){
  275. //当验证完成的时候 会 返回 res 值 true,只留了这个应该够用了
  276. console.log(res);
  277. if(slideVerify.slideFinishState){
  278. $('.value').html(slideVerify.slideFinishState)
  279. $('#resetBtn').removeClass('prohibit')
  280. _self.isSlideFinishState = false;
  281. }
  282. }
  283. });
  284. $('body').on("focus",'[needverify]:visible',function(){
  285. $(this).siblings('.errTips').removeClass("show").siblings('.checked').removeClass("show");
  286. });
  287. //enter键登录
  288. if(!_self.isSlideFinishState){
  289. $(document).keyup(function (e) {
  290. var e = e || event;
  291. e.stopPropagation();
  292. if (e.keyCode === 13) {
  293. _self.loginSubmit();
  294. }
  295. });
  296. }
  297. }
  298. });