index.ux 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <template>
  2. <div class="phone-wrap">
  3. <div class="input-content">
  4. <div class="input-item">
  5. <input class="input-text" type="tel" placeholder="请输入手机号" value="{{mobile}}" style="placeholder-color: #CCC" onchange="updateMobile"></input>
  6. </div>
  7. <div class="input-item">
  8. <input class="input-text" type="number" maxlength="6" placeholder="请输入验证码" value="{{code}}" style="placeholder-color: #CCC" onchange="updateMessage"></input>
  9. <text class="send-msg" if="{{!hasSend}}" @click="sendMsg">获取验证码</text>
  10. <text class="send-msg disabled" else>重新获取{{duration}}</text>
  11. </div>
  12. </div>
  13. <input type="button" value="绑定手机号" class="bind-button" @click="bindUser"> </input>
  14. </div>
  15. </template>
  16. <script>
  17. import { validatePhone ,getSendOrderId } from '../../api/utils';
  18. import { sendCode, userBind } from '../../api/index';
  19. import router from '@system.router';
  20. import prompt from '@system.prompt';
  21. export default {
  22. private: {
  23. hasSend: false,
  24. duration: 120,
  25. mobile: null,
  26. code: null
  27. },
  28. onInit() {
  29. },
  30. async sendMsg() {
  31. let result = validatePhone(this.mobile);
  32. if (result) {
  33. let res = await sendCode({ phone: this.mobile });
  34. this.countDown();
  35. } else {
  36. prompt.showToast({
  37. message: '手机号格式不正确'
  38. })
  39. }
  40. },
  41. updateMobile(e) {
  42. this.mobile = e.value;
  43. },
  44. updateMessage(e) {
  45. this.code = e.value;
  46. },
  47. //倒计时
  48. countDown() {
  49. this.hasSend = true;
  50. let time = setInterval(() => {
  51. this.duration--;
  52. if (this.duration < 1) {
  53. clearInterval(time);
  54. this.duration = 120;
  55. this.hasSend = false;
  56. }
  57. }, 1000);
  58. },
  59. //绑定用户
  60. async bindUser() {
  61. if (!this.mobile || !this.code) {
  62. prompt.showToast({
  63. message: '请输入手机号和验证码'
  64. })
  65. return false;
  66. }
  67. if (!validatePhone(this.mobile)) {
  68. prompt.showToast({
  69. message: '手机号码格式不正确'
  70. })
  71. return false;
  72. }
  73. let params = {
  74. phone: this.mobile,
  75. code: this.code
  76. }
  77. let res = await userBind(params);
  78. prompt.showToast({
  79. message: '绑定成功!'
  80. })
  81. setTimeout(()=>{
  82. router.back();
  83. },1500)
  84. }
  85. }
  86. </script>
  87. <style lang="less">
  88. @import "../../assets/less/phone.less";
  89. </style>