Step1.vue 4.7 KB
Newer Older
1 2 3
<template>
  <div class="main">

4
    <a-form style="max-width: 500px; margin: 40px auto 0;" :form="form" @keyup.enter.native="nextStep">
5 6 7 8 9 10
      <a-form-item>
        <a-input
          v-decorator="['username',validatorRules.username]"
          size="large"
          type="text"
          autocomplete="false"
11
          placeholder="请输入用户账号或手机号">
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
          <a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/>
        </a-input>
      </a-form-item>
      <a-row :gutter="0">
        <a-col :span="14">
          <a-form-item>
            <a-input
              v-decorator="['inputCode',validatorRules.inputCode]"
              size="large"
              type="text"
              @change="inputCodeChange"
              placeholder="请输入验证码">
              <a-icon slot="prefix" v-if=" inputCodeContent==verifiedCode " type="smile"
                      :style="{ color: 'rgba(0,0,0,.25)' }"/>
              <a-icon slot="prefix" v-else type="frown" :style="{ color: 'rgba(0,0,0,.25)' }"/>
            </a-input>
          </a-form-item>
        </a-col>
        <a-col :span="10">
          <j-graphic-code @success="generateCode" style="float: right"></j-graphic-code>
        </a-col>
      </a-row>
      <a-form-item :wrapperCol="{span: 19, offset: 5}">
35
        <router-link style="float: left;line-height: 40px;" :to="{ name: 'login' }">使用已有账户登录</router-link>
36 37 38 39 40 41 42 43
        <a-button type="primary" @click="nextStep">下一步</a-button>
      </a-form-item>
    </a-form>
  </div>
</template>

<script>
  import JGraphicCode from '@/components/jeecg/JGraphicCode'
44 45 46
  import {getAction} from '@/api/manage'
  import {checkOnlyUser} from '@/api/api'

47 48 49 50 51
  export default {
    name: "Step1",
    components: {
      JGraphicCode
    },
52
    data() {
53 54 55
      return {
        form: this.$form.createForm(this),
        inputCodeContent: "",
56 57
        inputCodeNull: true,
        verifiedCode: "",
58
        validatorRules: {
59 60
          username: {rules: [{required: false}, {validator: this.validateInputUsername}]},
          inputCode: {rules: [{required: true, message: '请输入验证码!'}, {validator: this.validateInputCode}]},
61 62 63 64 65
        },

      }
    },
    methods: {
66
      nextStep() {
67 68
        let that = this
        this.form.validateFields((err, values) => {
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
          if (!err) {
            let isPhone = false;
            var params = {}
            var reg = /^[1-9]\d*$|^0$/;
            var username = values.username;
            if (reg.test(username) == true) {
              params.phone = username;
              isPhone = true
            } else {
              params.username = username;
            }
            getAction("/sys/user/querySysUser", params).then((res) => {
              if (res.success) {
                var userList = {
                  username: res.result.username,
                  phone: res.result.phone,
                  isPhone: isPhone
                };
                setTimeout(function () {
                  that.$emit('nextStep', userList)
                })
              }
            });
92
          }
93
        })
94 95

      },
96
      validateInputCode(rule, value, callback) {
97 98 99 100 101 102
        if (!value || this.verifiedCode == this.inputCodeContent) {
          callback();
        } else {
          callback(new Error("您输入的验证码不正确!"));
        }
      },
103
      inputCodeChange(e) {
104 105
        this.inputCodeContent = e.target.value;
        console.log(this.inputCodeContent)
106 107 108
        if (!e.target.value || 0 == e.target.value) {
          this.inputCodeNull = true
        } else {
109
          this.inputCodeContent = this.inputCodeContent.toLowerCase()
110
          this.inputCodeNull = false
111 112
        }
      },
113
      generateCode(value) {
114 115 116
        this.verifiedCode = value.toLowerCase();
        console.log(this.verifiedCode);
      },
117
      validateInputUsername(rule, value, callback) {
118
        console.log(value);
119 120
        var reg = /^[0-9]+.?[0-9]*/;
        if (!value) {
121 122 123
          callback("请输入用户名和手机号!");
        }

124
        //判断用户输入账号还是手机号码
125
        if (reg.test(value)) {
126
          var params = {
127
            phone: value,
128
          };
129
          checkOnlyUser(params).then((res) => {
130
            if (res.success) {
131 132 133 134 135 136
              callback("用户名不存在!")
            } else {
              callback()
            }
          })
        } else {
137
          var params = {
138
            username: value,
139
          };
140
          checkOnlyUser(params).then((res) => {
141
            if (res.success) {
142 143 144 145 146
              callback("用户名不存在!")
            } else {
              callback()
            }
          })
147 148 149 150 151 152 153 154 155 156
        }
      },

    }
  }
</script>

<style scoped>

</style>