SpringBoot + Spring Cloud +Vue 管理系统前端搭建(六、完善登录流程)

SpringBoot+Vue智能停车场管理系统:从环境搭建到核心功能测试全流程指南 这次我们来看一个基于 SpringBoot + Vue 的智能停车场管理系统。这是一个典型的 Java Web 毕业设计或课程大作业项目,提供了完整的源码、数据库脚本和文档。对于正在寻找实战项目来巩固 SpringBoot 和 Vue 技术栈,或者急需一个高质量毕设选题的同学来说,这类“开箱即用”的项目非常具有参考价值。 这个项目的核心是构建一个现代化的停车场管理平台,旨在解决传统停车场管理效率低下、数据统计困难、用户体验不佳等问题。它采用了当前企业级开发中最主流的前后端分离架构:后端使用 SpringBo 阅读详情

这里我们简单做一个登录界面,界面如图:

话不多说直接上代码

首先我们修改登录界面

login.vue

<template>
  <el-form :model="loginForm" :rules="fieldRules" ref="loginForm" label-position="left" label-width="0px" class="demo-ruleForm login-container">
    <span class="tool-bar">
    </span>
    <h2 class="title" style="padding-left:22px;" >系统登录</h2>
    <el-form-item prop="account">
      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
    </el-form-item>
    <el-form-item prop="password">
      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
    </el-form-item>
    <el-form-item >
      <el-col :span="12">
        <el-form-item prop="captcha">
          <el-input type="test" v-model="loginForm.captcha" auto-complete="off" placeholder="验证码, 单击图片刷新"
            style="width: 100%;">
          </el-input>
        </el-form-item>
      </el-col>
      <el-col class="line" :span="1">&nbsp;</el-col>
      <el-col :span="11">
        <el-form-item>
            <img style="width: 100%;" class="pointer" :src="loginForm.src" @click="refreshCaptcha">
        </el-form-item>
      </el-col>
    </el-form-item>
    <el-form-item style="width:100%;">
      <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button>
      <el-button type="primary" style="width:48%;" @click.native.prevent="login" :loading="loading">登 录</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
import Cookies from "js-cookie"
export default {
  name: 'Login',
  data() {
    return {
      loading: false,
      loginForm: {
        account: 'admin',
        password: 'admin',
        captcha:'',
        src: ''
      },
      fieldRules: {
        account: [
          { required: true, message: '请输入账号', trigger: 'blur' }
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' }
        ]
      },
      checked: true
    }
  },
  methods: {
    login() {
      this.loading = true
      let userInfo = { account:this.loginForm.account, password:this.loginForm.password,
        captcha:this.loginForm.captcha }
      this.$api.login.login(userInfo).then((res) => {  // 调用登录接口
          if(res.msg != null) {
            this.$message({ message: res.msg, type: 'error' })
          } else {
            Cookies.set('token', res.data.token) // 放置token到Cookie
            sessionStorage.setItem('user', userInfo.account) // 保存用户到本地会话
            this.$router.push('/')  // 登录成功,跳转到主页
          }
          this.loading = false
        }).catch((res) => {
          this.$message({ message: res.message, type: 'error' })
        })
    },
    refreshCaptcha: function(){
      this.loginForm.src = this.global.baseUrl + "/captcha.jpg?t=" + new Date().getTime();
    },
    reset() {
      this.$refs.loginForm.resetFields()
    }
  },
  mounted() {
    this.refreshCaptcha()
  }
}
</script>

<style lang="scss" scoped>
  .login-container {
    -webkit-border-radius: 5px;
    border-radius: 5px;
    -moz-border-radius: 5px;
    background-clip: padding-box;
    margin: 100px auto;
    width: 350px;
    padding: 35px 35px 15px 35px;
    background: #fff;
    border: 1px solid #eaeaea;
    box-shadow: 0 0 25px #cac6c6;
    .title {
      margin: 0px auto 30px auto;
      text-align: center;
      color: #505458;
    }
  }
</style>

修改主界面

Home.vue

<template>
  <div class="container">
      <!-- 导航菜单栏 -->
      <nav-bar></nav-bar>
      <!-- 头部区域 -->
      <head-bar></head-bar>
      <!-- 主内容区域 -->
      <main-content></main-content>
  </div>
</template>

<script>
import HeadBar from "./HeadBar"
import NavBar from "./NavBar"
import MainContent from "./MainContent"
export default {
  components:{
        HeadBar,
        NavBar,
        MainContent
  }
};
</script>

<style scoped lang="scss">
  .container {
    position:absolute;
    top: 0px;
    left: 0px;
    right: 0px;
    bottom: 0px;
    // background: rgba(224, 234, 235, 0.1);
  }
</style> 

在views下添加导航菜单栏、头部区域、内容区域

左测导航菜单栏

NavBar.vue

<template>
    <div class="menu-bar-container">
    <!-- logo -->
    <div class="logo" style="background:#14889A" :class="'menu-bar-width'"
        @click="$router.push('/')">
        <img src="@/assets/logo.png"/> <div>Mango</div>
    </div>
    </div>
</template>

<script>
export default {
  methods: {
  }
}
</script>

<style scoped lang="scss">
.menu-bar-container {
  position: fixed;
  top: 0px;
  left: 0;
  bottom: 0;
  z-index: 1020;
  .logo {
    position:absolute;
    top: 0px;
    height: 60px;   
    line-height: 60px;
    background: #545c64;
    cursor:pointer;
    img {
        width: 40px;
        height: 40px;
        border-radius: 0px;
        margin: 10px 10px 10px 10px;
        float: left;
    }
    div {
      font-size: 25px;
      color: white;
      text-align: left;
      padding-left: 20px;
    }
  }
  .menu-bar-width {
    width: 200px;
  }
}

</style>

头部区域:

HeadBar.vue

<template>

<div class="headbar" style="background:#14889A" :class="'position-left'">

<!-- 工具栏 -->

<span class="toolbar">

<el-menu class="el-menu-demo" background-color="#14889A" text-color="#14889A" active-text-color="#14889A" mode="horizontal">

<el-menu-item index="1">

<!-- 用户信息 -->

<span class="user-info"><img :src="user.avatar" />{{user.name}}</span>

</el-menu-item>

</el-menu>

</span>

</div>

</template>

 

<script>

import mock from "@/mock/index"

export default {

data() {

return {

user: {

name: "Louis",

avatar: "",

role: "超级管理员",

registeInfo: "注册时间:2018-12-20 "

},

activeIndex: '1',

langVisible: false

}

},

methods: {

selectNavBar(key, keyPath) {

console.log(key, keyPath)

}

},

mounted() {

var user = sessionStorage.getItem("user")

if (user) {

this.user.name = user

this.user.avatar = require("@/assets/user.png")

}

}

}

</script>

 

<style scoped lang="scss">

.headbar {

position: fixed;

top: 0;

right: 0;

z-index: 1030;

height: 60px;

line-height: 60px;

border-color: rgba(180, 190, 190, 0.8);

border-left-width: 1px;

border-left-style: solid;

}

.navbar {

float: left;

}

.toolbar {

float: right;

}

.user-info {

font-size: 20px;

color: #fff;

cursor: pointer;

img {

width: 40px;

height: 40px;

border-radius: 10px;

margin: 10px 0px 10px 10px;

float: right;

}

}

.position-left {

left: 200px;

}

</style>

主内容区域:

MainContent.vue

<template>
  <div id="main-container" class="main-container" :class="'position-left'">
    <!-- 标签页 -->
    <div class="tab-container"></div>
    <!-- 主内容区域 -->
    <div class="main-content">
      <keep-alive>
        <transition name="fade" mode="out-in">
            <router-view></router-view>
        </transition>
      </keep-alive>
    </div>
  </div>
</template>

<script>
export default {
  data () {
    return {
    }
  },
  methods: {
    
  }
}
</script>

<style scoped lang="scss">
.main-container {
  padding: 0 5px 5px;
  position: absolute;
  top: 60px;
  left: 1px;
  right: 1px;
  bottom: 0px;
  background: rgba(67, 69, 70, 0.1);
  .main-content {
    position: absolute;
    top: 45px;
    left: 5px;
    right: 5px;
    bottom: 5px;
    padding: 5px;
  }
}
.position-left {
  left: 200px;
}
</style>

修改App.vue

<template>

<div id="app">

<router-view/>

</div>

</template>

 

<script>

export default {

name: 'App'

}

</script>

 

<style>

#app {

font-family: 'Avenir', Helvetica, Arial, sans-serif;

-webkit-font-smoothing: antialiased;

-moz-osx-font-smoothing: grayscale;

text-align: center;

color: #2c3e50;

margin-top: 60px;

}

</style>

测试:

修改完代码后访问:http://localhost:8080/#/login

如下图,可以看到我们的登录界面已经出来了

然后我们点击登录,进入主界面

好啦,到此我们就完成了一个简单的登录流程,在实际开发过程中,在登录后可能会有一些操作要进行,我们这里就不细说了。

 

看完记得点赞哦!

 

Spring Boot、 Spring Cloud 、OAuth2 的RBAC 权限管理系统分享 基于 Spring Cloud Hoxton 、Spring Boot 2.2、 OAuth2 的RBAC权限管理系统 基于数据驱动视图的理念封装 Ant Design Vue,即使没有 vue 的使用经验也能快速上手 提供 lambda 、stream api 、webflux 的生产实践 项目源码获取方式:关注本头条号,转发点赞文章之后后天私信【源码】即可获取 核心依赖 模块说明 cjlgb-cloud-platform ├── cjlgb-design-common ... 阅读详情

相关推荐

首次公开!基于SpringCloud+SpringBoot+Vue电子版项目实战教程,附完整源码

随着 Spring Boot 和 Spring Cloud 的诞生和流行,集智慧于大成的 Spring 技术体系成为行业开发的首选之一。市场代表需求,技术代表能力。显而易见,在当今开发领域中,谁能更好地掌握这些主流开发技术,谁就能在跟别人竞争的时候多一些筹码,谁就能获得更好的就业机会、薪资报酬和发展空间。要想更好地掌握开发技术和知识,就要进入项目多写代码,当然,对于大多数人来说,最好的成长方式,就是能够进入优秀的项目,跟着优秀的前辈,产出优秀的代码。

xhbzl的博客 1004

登录验证码实现(Captcha)

登录验证码 登录验证是一般系统都会有的功能,验证的方式也多种多样,比如输入式验证码,拖动式验证条,拖动式验证拼图等等。 我们这里先实现常规的输入验证码的方式,右边显示验证码图片,点击可刷新,左边输入验证码。如下图为实现的效果。 实现案例 验证码的实现需要前后端协同,脱离彼此则不可用,故将前后端的实现放在一起,不再另写前端教程。 后端 1.添加依赖 打开kitty-admin 工程,添加maven依赖。 pom.xml <!-- kaptcha --> <depende.

红袖添香的博客 1万+

芋道框架万字详解(前后端分离)、若依框架、yudao-cloud保姆级攻略

芋道开发框架,低代码平台

争者留其名 2万+

前后端springboot+vue2实现登录功能全流程!

前后端springboot+vue2实现登录功能全流程!

weixin_74009895的博客 792

springcloud+vue实战项目

基于springcloud+vu构建的项目 用maven多模块的方式,下载下来安装maven环境 即可运行

ROS2零拷贝避坑指南:Fast DDS共享内存配置常见问题与排查方法

本文深入解析ROS2 Humble中Fast DDS的零拷贝机制,提供共享内存配置的常见问题排查方法。从环境变量设置、XML配置文件到运行时诊断工具,全面指导开发者高效实现进程间数据传输优化,避免低效拷贝问题。特别针对/dev/shm无文件生成等典型场景给出解决方案。

weixin_30379531的博客 478

搭建 SpringCloud + 鉴权登录

SpringCloud +鉴权登录

梭哈是一种智慧 479

AI Agent生产环境压测指南:并发、延迟与资源瓶颈定位

去年我接触了不下10个AI Agent上线翻车的案例:有做智能客服的公司双11当天流量暴涨3倍,Agent服务直接雪崩,用户咨询全超时,损失超200万订单;有做企业内部RAG Agent的团队,上线后100人同时查询就把向量库打挂,还连累了其他业务的数据库;还有做多智能体系统的团队,压测只测了单请求性能,上线后多Agent交互超时率高达30%。

软件工程实践的博客 171

基于springcloud+Vue整合前后端分离权限管理系统 第一季

这个项目是前后端端分离项目,本课程第一季主要是实现后端功能,不包含前端项目,主要实现功能有,菜单管理,部门管理,角色管理,用户管理。日志管理,权限分配等。菜单权限管理模块如图所示:角色管理模块如图所示:部门管理如图所示:项目后台首页如图所示:

智慧园区——解读零碳智慧园区全域双碳管理建设方案【附全文阅读】

《零碳智慧园区全域双碳管理建设方案》为园区开发运营企业、政府部门及绿色能源服务商等提供系统性指导。方案基于"背景-理念-路径"框架,首先分析全球双碳趋势及我国园区高碳排放现状,明确零碳园区价值;其次提出"数字+绿色"双动力理念,构建数字底座与绿色能源体系;最后详细规划实施路径,包括碳排查、绿能规划、能效优化、碳交易等全流程管理,结合数字孪生技术实现可视化管控,助力园区实现碳中和目标。

cdfunlove的博客 206

国科大学习资料--模式识别与机器学习(黄庆明)--期末复习题2(含答案)

国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) ...

无名何许人的博客 1万+

SpringBoot基础流程

是一个全新的Java软件开发框架,其设计目的是用来简化Spring项目的初始搭建以及开发过程,并为后面的微服务实践提供更加便利条件。,希望能够在蓬勃发展的快速应用开发领域成为其领导者。

BASK2311的博客 1325

QGis软件 —— 2、QGis加载在线地图两种方式(谷歌地图、天地图)

QGis软件 —— 2、QGis加载在线地图两种方式(谷歌地图)

1万+

SpringBoot + Spring Cloud +Vue 管理系统前端搭建(二、visual studio code开发前端项目)

我们打开visual studio code , 选择文件------------->将文件夹添加到工作区,导入我们的项目 安装Element 导入后,我们安装以下element 官网:https://element.eleme.cn/#/zh-CN/component/installation 安装命令:npm add element-ui或者也可以用yarn 安装完成后,我们在main.js中引入Element import Vue from 'vue' import App .

Java 璐到底 9386

干掉百度Apollo的安装!(Apollo10.0的源码安装)

1、在Apollo10.0的安装手册中,没有再详细给出源码安装的步骤,官方更推荐的是包管理安装,但实际上Apollo10.0仍然是可以进行源码安装的。2、使用源码安装Apollo10.0,比Apollo9.0的源码安装问题要少,整个安装过程更顺畅。3、从Apollo 10.0开始,源码安装和包管理安装采用同一套编译工具,也就是aem。之前只有在进行包管理安装的时候我们才需要安装aem,现在进行源码安装也需要安装aem。

qq_40033030的博客 894

基于Proximal Policy Optimization的无人机姿态控制系统的研究及Matlab实现

本文简要介绍了基于Proximal Policy Optimization算法的无人机姿态控制系统,并使用Matlab实现了一个简化版的代码。PPO算法的特点在于能够解决强化学习中的部分可观察性问题,同时还能保持策略网络更新的稳定性。本文将介绍基于Proximal Policy Optimization(PPO)算法的无人机姿态控制系统,并使用Matlab进行简化版实现。无人机姿态控制是指通过调整飞行器各部件的参数,使其保持特定角度、方向和位置的状态。本文将实现无人机的横滚姿态控制,并将其作为实现的示例。

m0_47037246的博客 716

SpringBoot + Spring Cloud +Vue 管理系统前端搭建(九、动态加载菜单)

1、添加store 我们先添加几个store状态,后续需要用来共享使用 首先,我们在store/modules下的app.js中添加一个menuRouteLoaded状态,来判断是否加载过路由 然后在store、modules下新建一个menu.js,在index.js中引入,里面保存加载后的导航菜单数据。 menu.js代码如下: export default { state: { navTree: [], // 导航菜单树 }, ...

Java 璐到底 1650

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SpringBoot + Spring Cloud +Vue 管理系统前端搭建(三、工具模块封装)

封装背景 使用axios发起一个请求是比较简单的事情,但是axios没有进行封装复用,项目越来越大,会yin'q

Java 璐到底 2880

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

10款精选的后台管理系统,收藏吧!

1.vue2-manage 此项目是 vue + element-ui 构建的后台管理系统,是后台项目node-elm的管理系统,所有的数据都是从服务器实时获取的真实数据,具有真实的注册、登陆、管理数据、权限验证等功能。 项目地址:https://github.com/bailicangdu/vue2-manage 2.Cloud-Admin Cloud-Admin(开源项目) ...

不安分的猿人的专栏 16万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

基于spring cloud+vue的社团管理系统_lbc7e7v4

前端页面数据处理传输以及页面展示使用Vue技术 采用B/S架构,使用Maven作为项目管理工具,使用Springboot+Mybatis做整合开发 ,基于spring cloud+vue的社团管理系统_lbc7e7v4采用的开发工具:IntelliJ IDEA,VScode;数据库管理软件:Navicat;开发技术框架:MyBatis,Spring Boot,Vue;使用Mysql数据库构建数据库表开发步骤;(1) 创建好数据库并导入,

QQ_188083800的博客 620

SpringBoot+Vue办公管理系统开发实战

企业级应用开发中,前后端分离架构已成为主流技术方案。SpringBoot作为Java领域的明星框架,与Vue.js前端框架的组合,能够高效构建现代化管理系统。这种架构通过RESTful API实现前后端通信,利用JWT进行安全认证,采用RBAC模型管理权限。在实际工程中,SpringBoot的自动配置特性大幅简化了开发流程,而Vue的组件化开发则提升了前端代码的可维护性。办公管理系统作为典型应用场景,涵盖了用户管理、流程审批等企业核心需求,是学习全栈开发的优质实践项目。通过实现MySQL数据库设计、Elem

weixin_33923762的博客 403

Mango后台管理系统:基于Spring Boot、Spring Cloud、Vue.js和Element UI的管理利器

Spring Boot:Spring Boot是一个用于构建Java应用程序的开发框架,它简化了Spring应用程序的配置和部署。在Mango权限管理系统中,Spring Boot用于后端服务的开发和部署。Spring Cloud:Spring Cloud是一个用于构建分布式系统的框架,它提供了微服务架构所需的各种组件和服务治理功能。在Mango权限管理系统中,Spring Cloud用于实现服务的注册与发现、负载均衡和容错处理。

chenchuang0128的博客 1379

【2025最新】基于SpringBoot+Vue的Spring Cloud智慧云停车场服务管理系统管理系统源码+MyBatis+MySQL

直接拿走,意外获得200多套代码,需要的滴我【2025最新】基于SpringBoot+Vue的Spring Cloud智慧云停车场服务管理系统管理系统源码+MyBatis+MySQL(可提供说明文档(通过*AIGC*)

qq5_910946292的博客 500

SpringBoot+Vue Spring Cloud智慧云停车场服务管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL

开源免费分享SpringBoot+Vue Spring Cloud智慧云停车场服务管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL可提供说明文档 可以通过*AIGC**技术包括:MySQL、VueJS、ElementUI、(Python或者Java或者.NET)等等*功能如图所示。可以滴我获取详细的视频介绍

w707050的博客 889
上一篇: SpringBoot + Spring Cloud +Vue 管理系统前端搭建(五、多语言国际化)
下一篇: 微信小程序 前台静态页面
Java程序之猿
博客等级 码龄9年 2599粉丝 140原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值