<template>
|
<div class="aui-wrapper aui-page__login">
|
<div class="aui-content__wrapper">
|
<main class="aui-content">
|
<div class="login-header">
|
<h2 class="login-brand">{{ $t('brand.lg') }}</h2>
|
</div>
|
<div class="login-body">
|
<h3 class="login-title">{{ $t('login.title') }}</h3>
|
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="formSubmit()" status-icon>
|
<zt-form-item prop="username" rules="required">
|
<el-input v-model="dataForm.username" :placeholder="$t('login.username')">
|
<span slot="prefix" class="el-input__icon">
|
<svg class="icon-svg" aria-hidden="true"><use xlink:href="#icon-user"></use></svg>
|
</span>
|
</el-input>
|
</zt-form-item>
|
<zt-form-item prop="password" rules="required">
|
<el-input v-model="dataForm.password" type="password" :placeholder="$t('login.password')">
|
<span slot="prefix" class="el-input__icon">
|
<svg class="icon-svg" aria-hidden="true"><use xlink:href="#icon-lock"></use></svg>
|
</span>
|
</el-input>
|
</zt-form-item>
|
<zt-form-item prop="captcha" rules="required" v-if="$config.IS_LOGIN_NEED_CAPTURE">
|
<el-row :gutter="20">
|
<el-col :span="14">
|
<el-input v-model="dataForm.captcha" :placeholder="$t('login.captcha')">
|
<span slot="prefix" class="el-input__icon">
|
<svg class="icon-svg" aria-hidden="true"><use xlink:href="#icon-safetycertificate"></use></svg>
|
</span>
|
</el-input>
|
</el-col>
|
<el-col :span="10" class="login-captcha">
|
<img :src="captchaPath" @click="getCaptcha()">
|
</el-col>
|
</el-row>
|
</zt-form-item>
|
<el-form-item>
|
<el-button type="primary" @click="formSubmit()" class="w-percent-100">{{ $t('login.title') }}
|
</el-button>
|
</el-form-item>
|
</el-form>
|
</div>
|
</main>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import Cookies from 'js-cookie'
|
import debounce from 'lodash/debounce'
|
import {getUUID} from '../../../packages/utils'
|
|
export default {
|
data() {
|
return {
|
captchaPath: '',
|
dataForm: {
|
username: '',
|
password: '',
|
uuid: '',
|
captcha: ''
|
}
|
}
|
},
|
computed: {
|
},
|
created() {
|
this.getCaptcha()
|
},
|
methods: {
|
// 获取验证码
|
getCaptcha() {
|
this.dataForm.uuid = getUUID()
|
this.captchaPath = `${window.SITE_CONFIG['apiURL']}/captcha?uuid=${this.dataForm.uuid}`
|
},
|
// 表单提交
|
formSubmit: debounce(function () {
|
this.$refs['dataForm'].validate(async valid => {
|
if (valid) {
|
let res = await this.$http.post('/login', this.dataForm)
|
this.getCaptcha()
|
if (res.success) {
|
Cookies.set('token', res.data.token)
|
Cookies.remove('systemId')
|
this.$router.replace({name: 'home'})
|
}
|
}
|
})
|
}, 1000, {'leading': true, 'trailing': false})
|
}
|
}
|
</script>
|