前端vue2+vue-router3+ElementUI+axios综合使用代码教程登录页案例
为了测试vue2+vue-router3路由+ElementUI界面+axios网络HTTP请求的基本使用情况
专门编写一个登录页面进行demo验证

依赖情况package.json
{ "name": "default", "version": "0.1.0", "private": true, "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build" }, "dependencies": { "axios": "^1.1.3", "core-js": "^2.6.5", "element-ui": "^2.15.10", "vue": "^2.6.10", "vue-router": "^3.6.5" }, "devDependencies": { "@vue/cli-plugin-babel": "^3.8.0", "@vue/cli-service": "^3.8.0", "vue-template-compiler": "^2.6.10" } }
main.js
import Vue from 'vue' import VueRouter from 'vue-router' import ElementUi from 'element-ui' import 'element-ui/lib/theme-chalk/index.css'; import Login from './components/Login.vue' import App from './App.vue' //Vue.config.productionTip = false Vue.prototype.ApiHost = 'https://gofly.v1kf.com'; Vue.use(VueRouter) Vue.use(ElementUi) const routes = [ { path: '/login', component: Login }, ] const router = new VueRouter({ routes }) const app = new Vue({ render: h => h(App), router }).$mount('#app')
App.vue
<template> <div id="app"> <router-view></router-view> </div> </template> <script> export default { name: 'app', } </script>
./components/Login.vue
<template>
<div>
<div class="loginBox">
<div class="loginBg"></div>
<div class="signin">
<div class="loginHtml">
<h1 class="loginTitle">系统登录</h1>
<el-form :model="kefuForm" :rules="rules" ref="kefuForm">
<el-form-item prop="username">
<el-input v-model="kefuForm.username" placeholder="账号"></el-input>
</el-form-item>
<el-form-item prop="password">
<el-input show-password v-on:keyup.enter.native="kefuLogin('kefuForm')" v-model="kefuForm.password" placeholder="密码"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" style="width: 100%" :loading="loading" @click="kefuLogin('kefuForm','pc')">登录</el-button>
</el-form-item>
</el-form>
<div class="clear"></div>
</div>
<p class="copyright"> </p>
</div>
</div>
</div>
</template>
<script>
import axios from 'axios'
export default {
name: 'Login',
data() {
return {
kefuForm: {
username:"",
password:"",
},
rules: {},
loading:false,
}
},
methods: {
kefuLogin() {
var _this=this;
this.loading=true;
axios.post(this.ApiHost+'/check', {
username: this.kefuForm.username,
password: this.kefuForm.password
})
.then(function (response) {
_this.loading=false;
console.log(response);
var code=response.data.code;
var msg=response.data.msg;
if(code!=200){
_this.$message({
message: msg,
type: 'error'
});
return;
}
_this.$message({
message: msg,
type: 'success'
});
})
.catch(function (error) {
_this.loading=false;
console.log(error);
_this.$message({
message: error.message,
type: 'error'
});
});
}
}
}
</script>
<style>
body {
margin: 0;
padding: 0;
}
.loginBg{
width: 100%;
height: 100%;
position: fixed;
top: 0px;
left: 0px;
background: rgba(0, 0, 0, 0.5);
opacity: 0.5;
z-index: 0;
}
.loginBox{
width: 100%;
height: 100%;
background: url("/static/images/loginBg.jpg") no-repeat;
background-size: cover;
position: absolute;
display: flex;
align-items: center;
justify-content: center;
}
.clear{clear: both;}
.signin {
width: 460px;
padding: 25px;
background: #fff;
box-shadow: 0 25px 30px -13px rgba(40,40,40,.4);
border-radius: 6px;
z-index: 1;
}
.signin h1,.signin h2,.signin .copyright{
font-weight: normal;
color: #4d627b;
text-align: center;
}
.signin .loginTitle{
font-size: 24px;
margin: 15px 0px;
}
.signin .loginDesc{
font-size: 14px;
margin-bottom: 15px;
}
.signin .loginDesc .regBtn{
float: left;
}
.signin .loginDesc a{
text-decoration: none;
cursor: pointer;
color: #409EFF;
}
.signin .copyright{
font-size: 12px;
}
@media (max-width: 768px) {
body{
background-color: #fff;
}
.signin{
width: 80%;
background-color: #fff;
box-shadow:none;
}
}
</style>
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网
浙公网安备 33010602011771号