register.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. (function() {
  2. Vue.component('register-form', {
  3. template: '<div><div class="container-fluid c-border-b">\
  4. <div class="container" id="head">\
  5. <div class="ptb30 top-banner">\
  6. <img src="../../../images/LOGO.png"/>\
  7. <span class="qr-container">\
  8. <img src="../../../images/qr_code.png" class="qr_code" />\
  9. <p class="c-f12 text-center c-909090" style="padding-top:5px">下载APP</p>\
  10. </span>\
  11. <span class="backlogin" @click="gologin()">返回登录页</span>\
  12. </div>\
  13. </div>\
  14. </div>\
  15. <div class="container">\
  16. <div class="ptb80">\
  17. <div id="registerForm" class="main">\
  18. <div class="ptb10 c-border-b c-f20">注册</div>\
  19. <form id="form" class="m-t" role="form" onsubmit="return false;" style="width:310px;">\
  20. <div class="form-group">\
  21. <select class="form-control" v-model="idCardType">\
  22. <option v-for="ct in idCardTypes" :value="ct.value">{{ct.name}}</option>\
  23. </select>\
  24. </div>\
  25. <div class="form-group">\
  26. <input class="form-control idCardType" type="text" maxlength="18" placeholder="请输入身份证号码" v-model="IDCard" id="IDCard">\
  27. </div>\
  28. <div class="form-group">\
  29. <input class="form-control form-password" type="password" placeholder="请输入登录密码" v-model="password" min-length="6" max-length="16">\
  30. <span class="type-change-icon" @click="changePwdType(event)"></span>\
  31. </div>\
  32. <div class="form-group">\
  33. <input class="form-control form-password" type="password" placeholder="请再次输入登录密码" v-model="rePassword" min-length="6" max-length="16">\
  34. <span class="type-change-icon" @click="changePwdType(event)"></span>\
  35. </div>\
  36. <p class="c-909090" style="margin-top:-10px;">密码格式为6-16位,不允许有空格</p>\
  37. <div class="checkbox">\
  38. <label><input type="checkbox" v-model="toggle"> 阅读并接受<a href="#" target="_blank">《健康之路用户协议》</a>及<a href="#" target="_blank">《健康之路隐私保护声明》</a></label>\
  39. </div>\
  40. <button type="submit" class="btn btn-theme block full-width m-b" :class="{\'disabled\' : !toggle}" @click="register">完成注册并登录</button>\
  41. </form>\
  42. </div>\
  43. </div>\
  44. </div>\
  45. </div>',
  46. // <div class="form-group">\
  47. // <input class="form-control" placeholder="请输入手机号码" v-model="phone" type="text" length="11">\
  48. // </div>\
  49. // <div class="form-group">\
  50. // <input class="form-control" placeholder="请确认验证码" v-model="captcha">\
  51. // <span id="getCode" @click="getCode(60)" v-text="codeMsg" :class="{\'disabled bgc-909090\':codeMsg!==\'获取验证码\'}">获取验证码</span>\
  52. // </div>\
  53. props: [],
  54. data: function() {
  55. return {
  56. IDCard: "",
  57. phone: "",
  58. password: "",
  59. rePassword: "",
  60. captcha: "",
  61. toggle: true,
  62. idCardType:1,
  63. idCardTypes:[
  64. {value:1,name:'身份证'},
  65. // {value:2,name:'军官证'},
  66. ],
  67. pwdType:false,
  68. codeMsg:"获取验证码",
  69. }
  70. },
  71. methods: {
  72. register: function() {
  73. var vm = this
  74. if(!vm.toggle){
  75. alert("协议未勾选!");
  76. return ;
  77. }
  78. if(!isCardNo(vm.IDCard)) {
  79. return ;
  80. }
  81. if(!vm.Password) {
  82. alert("登录密码不能为空!");
  83. return false;
  84. }
  85. if(!vm.captcha) {
  86. alert("验证码不能为空!");
  87. return false;
  88. }
  89. if(!vm.toggle) {
  90. alert("未确认是否阅读并接受条款");
  91. return false;
  92. }
  93. // location.href = "../login/login.html"
  94. //连接注册后台接口
  95. var data = {
  96. idCardNo: vm.IDCard,
  97. password: vm.password,
  98. }
  99. var params = {
  100. userJsonData: JSON.stringify(data),
  101. appId: httpRequest.client_id
  102. }
  103. loginAPI.registe(params).then(function(res) {
  104. if(res.successFlg) {
  105. alert("注册成功");
  106. sessionStorage.setItem("userAgent", JSON.stringify(res));
  107. var data1 = {
  108. grant_type: httpRequest.grant_type,
  109. client_id: httpRequest.client_id,
  110. idCardNo: vm.IDCard,
  111. password: vm.password,
  112. }
  113. loginAPI.accessToken(data1).then(function(oauthInfo) {
  114. sessionStorage.setItem("oauthInfo", JSON.stringify(oauthInfo));
  115. }).catch(function(e) {
  116. console.log("获取accessToken失败")
  117. })
  118. vm.getJueSeData(res);
  119. } else {
  120. alert(res.errorMsg);
  121. }
  122. }).catch(function(err) {
  123. alert(err.errorMsg);
  124. })
  125. },
  126. gologin: function() {
  127. location.href = "../../login/html/login.html"
  128. },
  129. getCode: function(num){
  130. var vm=this;
  131. if(num<0){
  132. vm.codeMsg="获取验证码";
  133. }else{
  134. setTimeout(function(){
  135. num--;
  136. vm.codeMsg="("+num+"s)重新获取";
  137. vm.getCode(num);
  138. },1000)
  139. }
  140. },
  141. changePwdType:function(ev){
  142. var obj=$(ev.target);
  143. if(obj.hasClass('type-change-icon-active')){
  144. obj.removeClass('type-change-icon-active');
  145. obj.parent().find('.form-password').attr('type','password')
  146. }else{
  147. obj.addClass('type-change-icon-active');
  148. obj.parent().find('.form-password').attr('type','text')
  149. }
  150. },
  151. getJueSeData: function(userAgent) {
  152. var vm = this;
  153. //获取居民权限接口
  154. loginAPI.findByUserId({
  155. userId: userAgent.id
  156. }).then(function(data) {
  157. sessionStorage.setItem("roleList", JSON.stringify(data.detailModelList)); //缓存角色列表
  158. // location.href = "../../../home/html/home.html"//跳转到主页面
  159. location.href = "../../../page/mine/html/personal-info.html"
  160. })
  161. },
  162. },
  163. watch: {
  164. Password: function(newVal, oldVal) {
  165. var val = newVal.toString();
  166. var reg = /\s+/g; //去除空格
  167. if(reg.test(val)) {
  168. this.Password = oldVal;
  169. }
  170. },
  171. idCardType:function(val){
  172. for(var i in this.idCardTypes){
  173. if(this.idCardTypes[i].value==val){
  174. $('.idCardType').attr('placeholder','请输入'+this.idCardTypes[i].name+'号码');
  175. break;
  176. }
  177. }
  178. }
  179. }
  180. });
  181. function isCardNo(card, phone) {
  182. // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
  183. var iscard = false;
  184. var reg1 = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  185. if(reg1.test(card) === false) {
  186. alert("身份证号输入不合法");
  187. } else {
  188. iscard = true
  189. }
  190. return iscard;
  191. }
  192. })()