login.vue 2.02 KB
<template>
  <div class="login">
    <p>
      <span>用户名</span>
      <input v-model="login_data.login_code" @keyup.enter="loginHandler" />
    </p>
    <p>
      <span>密码</span>
      <input type="password" v-model="login_data.login_password" @keyup.enter="loginHandler" />
    </p>
    <el-button type="primary" @click="loginHandler">登录</el-button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      login_data: {
        login_code: '',
        login_password: '1'
      }
    }
  },
  methods: {
    loginHandler () {
      if (this.login_data.login_code === '') {
        this.$vux.toast.show({
          type: 'warn',
          text: '请输入账号!'
        })
        return;
      }
      axios.post('b/auth/syslogin', this.login_data)
        .then(res => {
          if (res.data.ret === 'OK') {
            let user = res.data.content.user;
            window.localStorage['user_name'] = user.user_name
            window.localStorage['role'] = user.role
            window.localStorage['user_id'] = user.user_id
            if (user.role === 'PB') {
              window.localStorage['prov_id'] = user.parent_id;
            }
            if (user.role === 'FB') {
              window.localStorage['fran_id'] = user.parent_id;
            }
            if (user.role === 'SM' || user.role === 'SE') {
              window.localStorage['store_id'] = user.parent_id;
            }
            this.$router.push('./function_list')
          } else {
            this.$vux.toast.text(res.data.msg);
          }
        })
        .catch(err => {
          console.error(err);
        })
    }
  }
}
</script>

<style lang="less" scoped>
.login {
  position: absolute;
  top: 25%;
  left: 50%;
  transform: translateX(-50%);
  padding: 1.8rem 2.5rem;
  width: 15rem;
  button {
    margin-top: 1.2rem;
    position: absolute;
    right: 2.5rem;
  }
  input {
    display: block;
    width: 95%;
    padding: 0.8rem 0.4rem;
    background: #fff;
    border: 1px solid #d6d7dc;
    font-size: 0.95rem;
  }
}
</style>