phone.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <template>
  2. <view class="container">
  3. <view class="input-box">
  4. <view class="icon" />
  5. <input type="number" :value="phoneNumber" placeholder="请输入手机号码" data-name='phoneNumber' @input="onInput">
  6. </view>
  7. <view class="authcode" style="margin-top:30rpx;">
  8. <view class="input-box">
  9. <view class="icon" />
  10. <input type="number" :value="password" placeholder="请输入验证码" data-name='password' @input="onInput">
  11. </view>
  12. <button class="cu-btn bg-red" :loading='loading' @click="getAuthcode">{{ butText }}</button>
  13. </view>
  14. <view class="flex flex-direction" style="padding: 104rpx 100rpx; 0">
  15. <button class="cu-btn bg-red margin-tb-sm lg" :disabled="phoneNumber == '' || password == ''" :loading='loading'
  16. @click="startLogging">{{ loading ? ' 登陆中' :
  17. '登录' }}</button>
  18. </view>
  19. </view>
  20. </template>
  21. <script>
  22. let countDown = null;
  23. import { hexMD5 } from "./md5";
  24. export default {
  25. name: "Phone",
  26. data() {
  27. return {
  28. loading: false,
  29. phoneNumber: "",
  30. password: "",
  31. butText: "获取验证码"
  32. };
  33. },
  34. created() {
  35. if (uni.getStorageSync("phoneNumber")) this.phoneNumber = uni.getStorageSync("phoneNumber");
  36. },
  37. methods: {
  38. /* 获取验证码 */
  39. getAuthcode() {
  40. if (this.butText == '获取验证码' || this.butText == '重新获取') {
  41. var count = 30;
  42. this.butText = count + 's';
  43. countDown = setInterval(() => {
  44. if (count == 0) {
  45. clearInterval(countDown);
  46. this.butText = '重新获取';
  47. } else {
  48. count = count - 1;
  49. this.butText = count + 's';
  50. }
  51. }, 1000)
  52. }
  53. },
  54. /* 输入框输入内容 */
  55. onInput(e) {
  56. this[e.currentTarget.dataset.name] = e.detail.value;
  57. },
  58. /* 开始登录 */
  59. startLogging() {
  60. this.loading = true;
  61. uni.setStorageSync("loginMethod", 'phone');
  62. uni.setStorageSync("phoneNumber", this.phoneNumber);
  63. setTimeout(() => {
  64. this.loading = false;
  65. }, 1000)
  66. }
  67. }
  68. }
  69. </script>
  70. <style lang="scss">
  71. @import url("./input.css");
  72. .icon {
  73. background-color: $my-color-main;
  74. }
  75. /deep/uni-checkbox.blue.checked .uni-checkbox-input {
  76. background-color: #0A3971 !important;
  77. opacity: 0.65;
  78. }
  79. .assist {
  80. display: flex;
  81. justify-content: space-between;
  82. width: 548rpx;
  83. height: 34rpx;
  84. font-size: 24rpx;
  85. font-family: PingFang SC-Regular, PingFang SC;
  86. color: #FFFFFF;
  87. margin: 26rpx auto 0;
  88. label {
  89. display: flex;
  90. align-items: center;
  91. checkbox {
  92. transform: scale(0.6);
  93. background: #0A3971;
  94. color: #0A3971;
  95. border-radius: 8rpx;
  96. opacity: 0.65;
  97. border: 2rpx solid rgba(11, 63, 126, 0.1);
  98. }
  99. }
  100. navigator {
  101. padding-right: 10rpx;
  102. }
  103. }
  104. .cu-btn {
  105. background: #0A3971;
  106. opacity: 0.65;
  107. }
  108. </style>