| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | <template>  <div class="login">    操作日志    <!-- 手机号 -->    <!-- <InputGroup      v-model="phone"      type="number"      placeholder="手机号"      :btn-title="btnTitle"      :disabled="disabled"      :error="errors.phone"      @btnClick="getVerifyCode"    /> -->    <!-- 输入验证码 -->    <!-- <InputGroup      v-model="verifyCode"      type="number"      placeholder="验证码"      :error="errors.code"    /> -->    <!-- 登录按钮 -->    <!-- <div class="login_btn">      <button :disabled="isClick" @click="handleLogin">登录</button>    </div> -->  </div></template><script>import InputGroup from '@/components/InputGroup' // 引入封装的组件export default {  name: 'Operation',  components: { InputGroup },  data() {    return {      phone: '', // 手机号      verifyCode: '', // 验证码      btnTitle: '获取验证码',      disabled: false, // 是否可点击      errors: {} // 验证提示信息    }  },  computed: {    // 手机号和验证码都不能为空    isClick() {      if (!this.phone || !this.verifyCode) {        return true      } else {        return false      }    }  },  created() { },  methods: {    getVerifyCode() {    // 获取验证码      if (this.validatePhone()) {        this.validateBtn()        // 发送网络请求        this.$axios.post('/api/posts/sms_send', { tpl_id: '', key: '', phone: this.phone }).then(res => {          console.log(res)        })      }    },    validatePhone() {      // 判断输入的手机号是否合法      if (!this.phone) {        this.errors = {          phone: '手机号码不能为空'        }        // return false      } else if (!/^1[345678]\d{9}$/.test(this.phone)) {        this.errors = {          phone: '请输入正确是手机号'        }        // return false      } else {        this.errors = {}        return true      }    },    validateBtn() {      // 倒计时      let time = 60      const timer = setInterval(() => {        if (time == 0) {          clearInterval(timer)          this.disabled = false          this.btnTitle = '获取验证码'        } else {          this.btnTitle = time + '秒后重试'          this.disabled = true          time--        }      }, 1000)    },    handleLogin() {      // 点击发送      this.errors = {}      this.$axios.post('http://192.168.1.84:8081/authdata/api/posts/sms_back', {        phone: this.phone,        code: this.verifyCode      }).then(res => {        console.log(res)        localStorage.setItem('ele_login', true)        this.$router.push('/')      }).catch(error => {        // 返回错误信息        this.errors = {          code: error.response.data.msg        }      })    }  }}</script>
 |