index.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <template>
  2. <!--找回密码-->
  3. <view class="retrieve-pwd">
  4. <u--form
  5. labelPosition="left"
  6. :model="formData"
  7. :rules="rules"
  8. ref="uForm"
  9. labelWidth="70"
  10. >
  11. <u-form-item label="手机号" prop="phoneNum">
  12. <c-input
  13. placeholder="请输入手机号"
  14. v-model="formData.phoneNum"
  15. type="number"
  16. border="none"
  17. maxlength="11"
  18. ></c-input>
  19. </u-form-item>
  20. </u--form>
  21. <view class="footer" style="margin-top: 130rpx">
  22. <c-button
  23. @click="nextStep"
  24. :key="isPassed"
  25. type="primary"
  26. :disabled="!isPassed"
  27. >
  28. 下一步
  29. </c-button>
  30. </view>
  31. </view>
  32. </template>
  33. <script>
  34. import { isPhone } from 'api/user/login/retrievePwd.js';
  35. export default {
  36. name: 'retrievePwd',
  37. data() {
  38. return {
  39. formData: {
  40. phoneNum: '',
  41. },
  42. rules: {
  43. phoneNum: [
  44. {
  45. type: 'string',
  46. required: true,
  47. message: '请输入手机号',
  48. trigger: ['change'],
  49. },
  50. {
  51. type: 'string',
  52. required: true,
  53. message: '手机号格式不正确',
  54. trigger: ['change'],
  55. pattern: /^(?:(?:\+|00)86)?1[3-9]\d{9}$/,
  56. },
  57. ],
  58. },
  59. };
  60. },
  61. computed: {
  62. isPassed() {
  63. const reg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/;
  64. const phoneNum = this.formData.phoneNum;
  65. return phoneNum && reg.test(phoneNum);
  66. },
  67. },
  68. onLoad(params) {
  69. const phoneNum = params.phoneNum || '';
  70. this.formData.phoneNum = phoneNum.length === 11 ? phoneNum : ''; // 回显登录页的手机号
  71. },
  72. methods: {
  73. async nextStep() {
  74. try {
  75. this.$c.loading();
  76. const phoneNum = this.formData.phoneNum;
  77. await isPhone(phoneNum);
  78. uni.hideLoading();
  79. this.$u.route({
  80. url: '/pages/user/retrievePwd/checkCode',
  81. params: {
  82. phoneNum,
  83. },
  84. });
  85. } catch (e) {
  86. uni.hideLoading();
  87. console.error(e);
  88. }
  89. },
  90. },
  91. };
  92. </script>
  93. <style scoped lang="scss">
  94. .retrieve-pwd {
  95. padding: 28rpx;
  96. background-color: #f8f8f8;
  97. height: 100%;
  98. .u-form-item {
  99. background-color: #fff;
  100. padding: 20rpx 30rpx;
  101. border-radius: 6px;
  102. }
  103. }
  104. </style>