.net core + vue开发单页应用(二)
上一篇中已将完成了基础结构的搭建,这一篇将开始正式开发。页面直接使用了一位小伙伴的源码,可以在https://github.com/taylorchen709/vue-admin下载
在入口函数中添加对element-ui,vue-router,vuex,vue-source等组件的引用
import Vue from "vue"import App from "./App"import ElementUI from "element-ui"import "element-ui/lib/theme-default/index.css"import VueRouter from "vue-router"import store from "./vuex/store"import Vuex from "vuex"import VueSource from "vue-resource"import routes from "./routes"import "font-awesome/css/font-awesome.min.css"Vue.use(ElementUI)Vue.use(VueRouter)Vue.use(Vuex)Vue.use(VueSource)//创建路由实例const router = new VueRouter({routes})router.beforeEach((to, from, next) => {//这里进行了简单的登录验证//访问login时直接清除userif (to.path == "/login") {sessionStorage.removeItem("user");}let user = JSON.parse(sessionStorage.getItem("user"));if (!user && to.path != "/login") {next({ path: "/login" })} else {next()}})new Vue({router,store,render: h => h(App)}).$mount("#app")
<template><div id="app"><transition name="fade"mode="out-in"><router-view></router-view></transition></div></template><script>export default {name: "app",components: {}}</script>
login.vue
<template><el-form :model="ruleForm2" :rules="rules2" ref="ruleForm2" label-position="left" label-width="0px" class="demo-ruleForm login-container"><h3 class="title">系统登录</h3><el-form-item prop="account"><el-input type="text" v-model="ruleForm2.account" auto-complete="off" placeholder="账号"></el-input></el-form-item><el-form-item prop="checkPass"><el-input type="password" v-model="ruleForm2.checkPass" auto-complete="off" placeholder="密码"></el-input></el-form-item><el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox><el-form-item style="width:100%;"><el-button type="primary" style="width:100%;" @click.native.prevent="handleSubmit2" :loading="logining">登录</el-button></el-form-item></el-form></template><script>export default {data() {return {logining: false,ruleForm2: {account: "admin",checkPass: "123456"},rules2: {account: [{ required: true, message: "请输入账号", trigger: "blur" },//{ validator: validaePass }],checkPass: [{ required: true, message: "请输入密码", trigger: "blur" },//{ validator: validaePass2 }]},checked: true};},methods: {handleReset2() {this.$refs.ruleForm2.resetFields();},handleSubmit2(ev) {var _this = this;this.$refs.ruleForm2.validate((valid) => {if (valid) {this.logining = true;//NProgress.start();var loginParams = { username: this.ruleForm2.account, password: this.ruleForm2.checkPass };if (loginParams.username != "admin") {this.$message({message: "用户不存在",type: "error"});this.logining = false;return false;}if (loginParams.password != "123456") {this.$message({message: "密码不正确",type: "error"});this.logining = false;return;}let user = {id: 1,username: "admin",password: "123456",avatar: "resources/img/user.png",name: "管理员"}sessionStorage.setItem("user", JSON.stringify(user));this.$router.push({ path: "/" });} else {return false;}});}}}</script><style scoped>.login-container {/*box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);*/-webkit-border-radius: 5px;border-radius: 5px;-moz-border-radius: 5px;background-clip: padding-box;margin: 180px auto;width: 350px;padding: 35px 35px 15px 35px;background: #fff;border: 1px solid #eaeaea;box-shadow: 0 0 25px #cac6c6;}.title {margin: 0px auto 40px auto;text-align: center;color: #505458;}.remember {margin: 0px 0px 35px 0px;}</style>
home.vue
<template><el-row class="container"><el-col :span="24" class="header"><el-col :span="10" :class="collapsed?"logo-collapse-width logo-collapsed":"logo-width logo"">{{collapsed?"":sysName}}<!--<img :src="logo" v-show="collapsed" />--></el-col><el-col :span="10"><div class="tools" @click.prevent="collapse"><i class="fa fa-align-justify"></i></div></el-col><el-col :span="4" class="userinfo"><el-dropdown trigger="hover"><span class="el-dropdown-link userinfo-inner"><img :src="this.sysUserAvatar" /> {{sysUserName}}</span><el-dropdown-menu slot="dropdown"><el-dropdown-item>我的消息</el-dropdown-item><el-dropdown-item>设置</el-dropdown-item><el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: .net core + vue开发单页应用(一)
- 下一篇:没有了
