Complate login page

pull/9/head
ruibaby 2019-04-06 01:03:01 +08:00
parent 9be72448fd
commit 4f4cab98be
5 changed files with 186 additions and 13 deletions

View File

@ -9,6 +9,7 @@
"test:unit": "vue-cli-service test:unit" "test:unit": "vue-cli-service test:unit"
}, },
"dependencies": { "dependencies": {
"animate.css": "^3.7.0",
"ant-design-vue": "~1.3.7", "ant-design-vue": "~1.3.7",
"axios": "^0.18.0", "axios": "^0.18.0",
"enquire.js": "^2.1.6", "enquire.js": "^2.1.6",

View File

@ -191,10 +191,12 @@ export const constantRouterMap = [
} }
] ]
}, },
{
path: '/login',
component: () => import('@/views/user/Login')
},
{ {
path: '/404', path: '/404',
component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404') component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404')
} }
] ]

View File

@ -9,10 +9,12 @@ import './core/use'
import bootstrap from './core/bootstrap' import bootstrap from './core/bootstrap'
// import '@/permission' // permission control // import '@/permission' // permission control
import '@/utils/filter' // global filter import '@/utils/filter' // global filter
import animated from 'animate.css'
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(router) Vue.use(router)
Vue.use(animated)
new Vue({ new Vue({
router, router,

View File

@ -1,20 +1,118 @@
<template> <template>
<div class="page-header-index-wide"> <div class="page-header-index-wide">
<a-card title="Card Title"> <a-row :gutter="12" type="flex" align="middle">
<a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid> <a-col
<a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid> class="attachment-item"
<a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid> :xl="4"
<a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid> :lg="4"
<a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid> :md="12"
<a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid> :sm="12"
<a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid> :xs="24"
</a-card> >
<a-card :bodyStyle="{ padding: '14px' }">
<img :src="src" slot="cover" />
</a-card>
</a-col>
<a-col
class="attachment-item"
:xl="4"
:lg="4"
:md="12"
:sm="12"
:xs="24"
>
<a-card :bodyStyle="{ padding: '14px' }">
<img :src="src" slot="cover" />
</a-card>
</a-col>
<a-col
class="attachment-item"
:xl="4"
:lg="4"
:md="12"
:sm="12"
:xs="24"
>
<a-card :bodyStyle="{ padding: '14px' }">
<img :src="src" slot="cover" />
</a-card>
</a-col>
<a-col
class="attachment-item"
:xl="4"
:lg="4"
:md="12"
:sm="12"
:xs="24"
>
<a-card :bodyStyle="{ padding: '14px' }">
<img :src="src" slot="cover" />
</a-card>
</a-col>
<a-col
class="attachment-item"
:xl="4"
:lg="4"
:md="12"
:sm="12"
:xs="24"
>
<a-card :bodyStyle="{ padding: '14px' }">
<img :src="src" slot="cover" />
</a-card>
</a-col>
<a-col
class="attachment-item"
:xl="4"
:lg="4"
:md="12"
:sm="12"
:xs="24"
>
<a-card :bodyStyle="{ padding: '14px' }">
<img :src="src" slot="cover" />
</a-card>
</a-col>
<a-col
class="attachment-item"
:xl="4"
:lg="4"
:md="12"
:sm="12"
:xs="24"
>
<a-card :bodyStyle="{ padding: '14px' }">
<img :src="src" slot="cover" />
</a-card>
</a-col>
<a-col
class="attachment-item"
:xl="4"
:lg="4"
:md="12"
:sm="12"
:xs="24"
>
<a-card :bodyStyle="{ padding: '14px' }">
<img :src="src" slot="cover" />
</a-card>
</a-col>
</a-row>
</div> </div>
</template> </template>
<script> <script>
export default {} export default {
data() {
return {
src: 'https://cdn.ryanc.cc/img/blog/thumbnails/c86b59623c4a9bfeac403824dec3a789.jpg'
}
}
}
</script> </script>
<style scoped> <style lang="less" scoped>
.attachment-item {
padding-bottom: 12px;
}
</style> </style>

70
src/views/user/Login.vue Normal file
View File

@ -0,0 +1,70 @@
<template>
<div class="container loginForm">
<div class="loginLogo animated fadeInUp">
Halo
</div>
<div class="loginBody animated">
<a-form layout="vertical">
<a-form-item class="animated fadeInUp" :style="{'animation-delay': '0.1s'}">
<a-input placeholder="用户名/邮箱"></a-input>
</a-form-item>
<a-form-item class="animated fadeInUp" :style="{'animation-delay': '0.2s'}">
<a-input type="password" placeholder="密码"></a-input>
</a-form-item>
<a-form-item class="animated fadeInUp" :style="{'animation-delay': '0.3s'}">
<a-button type="primary" block="true">登录</a-button>
</a-form-item>
</a-form>
</div>
</div>
</template>
<script>
export default {
beforeCreate() {
this.form = this.$form.createForm(this)
},
methods: {
handleSubmit(e) {
e.preventDefault()
this.form.validateFields((err, values) => {
if (!err) {
console.log('Received values of form: ', values)
}
})
}
}
}
</script>
<style>
body {
background-color: #f5f5f5;
}
* {
outline: 0;
}
.container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
.loginForm {
max-width: 380px;
margin-top: 10%;
}
.loginLogo {
font-size: 56px;
text-align: center;
margin-bottom: 25px;
font-weight: 500;
color: #444;
text-shadow: #b2baba 0.1em 0.1em 0.2em;
}
.loginBody {
padding: 20px;
background-color: #fff;
-o-box-shadow: -4px 7px 46px 2px rgba(0, 0, 0, 0.1);
box-shadow: -4px 7px 46px 2px rgba(0, 0, 0, 0.1);
}
</style>