register.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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. <input class="form-control" type="text" maxlength="18" placeholder="请输入身份证号" v-model="IDCard" id="IDCard">
  22. </div>
  23. <div class="form-group">
  24. <input class="form-control" placeholder="请输入手机号码" v-model="phone" type="text" length="11">
  25. </div>
  26. <div class="form-group">
  27. <input class="form-control" placeholder="请确认验证码" v-model="captcha">
  28. </div>
  29. <div class="form-group">
  30. <input class="form-control" placeholder="请确认登录密码" v-model="Password" min-length="6" max-length="16">
  31. </div>
  32. <p class="c-909090" style="margin-top:-10px;">密码格式为6-16位,不允许有空格</p>
  33. <div class="checkbox">
  34. <label><input type="checkbox"
  35. v-model="toggle"> 阅读并接受<a href="#" target="_blank">《健康之路用户协议》</a>及<a href="#" target="_blank">《健康之路隐私保护声明》</a></label>
  36. </div>
  37. <button type="submit" class="btn btn-theme block full-width m-b" @click="register">完成注册并登录</button>
  38. </form>
  39. </div>
  40. </div>
  41. </div>
  42. </div>`,
  43. props: [],
  44. data: function() {
  45. return {
  46. IDCard: "",
  47. phone: "",
  48. Password: "",
  49. captcha: "",
  50. toggle: false,
  51. }
  52. },
  53. methods: {
  54. register: function() {
  55. var vm = this
  56. if(!isCardNo(vm.IDCard, vm.phone)) {
  57. return
  58. }
  59. if(!vm.Password) {
  60. alert("登录密码不能为空!");
  61. return false;
  62. }
  63. if(!vm.captcha) {
  64. alert("验证码不能为空!");
  65. return false;
  66. }
  67. if(!vm.toggle) {
  68. alert("未确认是否阅读并接受条款");
  69. return false;
  70. }
  71. // location.href = "../login/login.html"
  72. //连接注册后台接口
  73. var data = {
  74. demographicId: vm.IDCard,
  75. codeType: vm.codeType,
  76. telephone: vm.tel,
  77. password: vm.password,
  78. }
  79. var params = {
  80. userJsonData: JSON.stringify(data),
  81. appId: httpRequest.client_id
  82. }
  83. loginAPI.registe(params).then(function(res) {
  84. if(res.successFlg) {
  85. alert("注册成功");
  86. vm.login();
  87. } else {
  88. alert(res.errorMsg);
  89. }
  90. }).catch(function(err) {
  91. alert(err.errorMsg);
  92. })
  93. },
  94. gologin: function() {
  95. location.href = "../../login/html/login.html"
  96. }
  97. },
  98. watch: {
  99. Password: function(newVal, oldVal) {
  100. var val = newVal.toString();
  101. var reg = /\s+/g; //去除空格
  102. if(reg.test(val)) {
  103. this.Password = oldVal;
  104. }
  105. },
  106. }
  107. });
  108. function isCardNo(card, phone) {
  109. // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
  110. var iscard = false,
  111. isphone = false
  112. var reg1 = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  113. if(reg1.test(card) === false) {
  114. alert("身份证号输入不合法");
  115. } else {
  116. iscard = true
  117. }
  118. var reg2 = /0?(13|14|15|18|17)[0-9]{9}/;
  119. if(reg2.test(phone) === false) {
  120. alert("手机号码输入不合法");
  121. } else {
  122. isphone = true
  123. }
  124. return iscard && isphone
  125. }
  126. })()