96 lines
3.1 KiB
Vue
96 lines
3.1 KiB
Vue
|
<template>
|
||
|
<div>
|
||
|
<TitleBar/>
|
||
|
<v-content>
|
||
|
<v-container
|
||
|
class="fill-height"
|
||
|
fluid
|
||
|
>
|
||
|
<v-row
|
||
|
align="center"
|
||
|
justify="center"
|
||
|
>
|
||
|
<v-col
|
||
|
cols="12"
|
||
|
sm="8"
|
||
|
md="4"
|
||
|
>
|
||
|
<v-card class="elevation-12">
|
||
|
<v-toolbar
|
||
|
color="blue accent-4"
|
||
|
dark
|
||
|
flat
|
||
|
>
|
||
|
<v-toolbar-title>Login form</v-toolbar-title>
|
||
|
<v-spacer />
|
||
|
</v-toolbar>
|
||
|
<v-card-text>
|
||
|
<v-form >
|
||
|
<v-text-field
|
||
|
label="Login"
|
||
|
name="login"
|
||
|
prepend-icon="person"
|
||
|
type="text"
|
||
|
v-model="username"
|
||
|
ref="first"
|
||
|
@keyup.enter="login"
|
||
|
@change="resetError"
|
||
|
/>
|
||
|
|
||
|
<v-text-field
|
||
|
id="password"
|
||
|
label="Password"
|
||
|
name="password"
|
||
|
prepend-icon="lock"
|
||
|
type="password"
|
||
|
v-model="password"
|
||
|
@keyup.enter="login"
|
||
|
@change="resetError"
|
||
|
/>
|
||
|
</v-form>
|
||
|
</v-card-text>
|
||
|
<v-alert v-if="loginFail" dense type="error">{{ loginFail }}</v-alert>
|
||
|
<v-card-actions>
|
||
|
<v-spacer />
|
||
|
<v-btn @click="login" @submit.prevent="login" color="primary">Login</v-btn>
|
||
|
</v-card-actions>
|
||
|
</v-card>
|
||
|
</v-col>
|
||
|
</v-row>
|
||
|
</v-container>
|
||
|
</v-content>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import TitleBar from "@/components/TitleBar";
|
||
|
export default {
|
||
|
name: "Login",
|
||
|
components: {TitleBar},
|
||
|
data() {
|
||
|
return {
|
||
|
username: null,
|
||
|
password: null
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
login() {
|
||
|
let o = {username: this.username, password: this.password}
|
||
|
this.$store.dispatch("doLogin", o)
|
||
|
},
|
||
|
resetError() {
|
||
|
this.$store.dispatch("resetLoginError")
|
||
|
}
|
||
|
},
|
||
|
computed: {
|
||
|
loginFail() {
|
||
|
return this.$store.state.loginError
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style scoped>
|
||
|
|
||
|
</style>
|