物业小区管理系统登录页面以及逻辑实现

news2025/1/11 19:47:11

        学习vue3和springboot那肯定是少不了写项目的,在各个项目中肯定是离不开登录和注册的事情的,这也是一个项目起步的需求。

        接下来我们来看看我们所写的项目起步。首先搭建vue3和springboot的项目环境,这些搭建大家自行完成即可,架子有了之后就得开始往里面装东西了。

        首先 是登录页面的渲染情况,大家根据自己的设计来实现自己登录页面的样式,下面先给大家一个参考:

代码也给大家参考:

<template>
  <div class="bgc">
    <div class="modalbox">
        <h2 style="text-align: center;font-family: '宋体';">系统登录</h2>
        <el-input prefix-icon="User" class="name" v-model="input" placeholder="请输入用户登录账号" />
        <el-input
          class="password"
          prefix-icon="Lock"
          v-model="password"
          type="password"
          placeholder="请输入用户密码"
          show-password
        />
        <el-input prefix-icon="CircleCheck" class="verificationcode" v-model="verificationcode" placeholder="请输入验证码" />
        <el-input class="code" v-model="code" placeholder="1569" disabled/>
        <div class="register">
          <el-text @click="register" class="mx-1" type="success">注册账号</el-text>
        </div>
        <el-button class="login" type="success" @click="login">登录</el-button>
    </div>
  </div>
</template>

//如果只考虑样式,那么script代码可以删掉
<script setup>
import { ref , onMounted} from 'vue';
import {useRouter} from "vue-router";
const router = useRouter();
const input = ref('');
const password = ref('');
const code = ref('');
const verificationcode = ref("");
import { ElMessage } from 'element-plus';
import axios from 'axios';
onMounted(()=>{
  code.value = parseInt(Math.random()*10000);
})
const register = () => {
  router.push('/register');
}
//下面这里的是登录验证,在只考虑样式的情况下,下面的代码可以不要
const login = () => {
    axios({
         url:`http://localhost:8080/user`,
         method:"post", 
         data:{
            username : input.value,
            password : password.value
         }
    }).then(res=>{
        let arr = res.data;
        let flg = false;
        console.log(res.data);
        for(let i = 0 ; i < arr.length ; i++){
          if(arr[i].username == input.value && arr[i].password == password.value && verificationcode.value == code.value){
              ElMessage({
                  message: '登录成功',
                  type: 'success',
                });
                return ;
          }
        };
        if(flg == false){
          ElMessage.error('账号密码不正确,请重新输入');
          return ;
        }
    })
  
}
</script>

<style scoped>
.bgc{
    
    width: 100%;
    height: 100%;
    background-image: url(../assets/bj.jpg);
    background-repeat: no-repeat;
    background-size: cover;
}
.modalbox{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 35%;
    height: 50%;
    border-radius: 10px;
    background-color: #fff;
}
.name{
    margin-top: 5%;
    margin-left: 10%;
    width: 80%;
    height: 40px;
}
.password{
    margin-top: 5%;
    margin-left: 10%;
    width: 80%;
    height: 40px;
}
.verificationcode{
    margin-top: 5%;
    margin-left: 10%;
    width: 40%;
    height: 45px;
}
.code{
    margin-top: 5%;
    margin-left: 4%;
    width: 35%;
    height: 40px;
}
.register{
    width: 15%;
    height: 5%;
    cursor: pointer;
    margin-top: 5%;
    margin-left: 10%;
}
.login{
    width: 80%;
    height: 10%;
    margin-top: 2%;
    margin-left: 10%;
}
</style>

        样式有了之后我们还需要逻辑,前端的逻辑上面代码已经都给全了,现在给大家参考后端的处理以及数据库的一些情况:

        控制类

package com.example.vue3spring.controller;

import com.example.vue3spring.entity.User;
import com.example.vue3spring.mapper.user;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class Users {
    @Autowired
    private user user;

   @RequestMapping(value = "/user",method = RequestMethod.POST)
   @CrossOrigin
    public List<User> user(@RequestBody User users){
       System.out.println(users.getUsername());
       System.out.println(users.getPassword());
       List<User> list = user.users();

//       for (int i = 0; i < list.size(); i++) {
//           System.out.println(list.get(i));
//       }
//       System.out.println(list);
       return list ;
    }
}

     实体类

package com.example.vue3spring.entity;

public class User {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

        mybatis-plus接口

package com.example.vue3spring.mapper;

import com.example.vue3spring.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface user {
    @Select("select * from login")
    public List<User> users();
}

在springboot使用mybatis-plus要在pom中加入以下依赖才可使用哦:

        </dependency>
        <!--        mybatis-plus依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <!--        mysql驱动依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>
        <!--        数据连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.23</version>
        </dependency>

以及在properties文件中数据库连接的配置:

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useSSL=false
spring.datasource.username=root
spring.datasource.password=w123456789
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

好了。以上就是所有的配置情况,仅供大家参考使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/781238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows 修改 RDP 远程桌面端口号

打开 PowerShell &#xff0c; 执行regedit 依次展开 PortNumber HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Control \Terminal Server \WinStations \RDP-Tcp 右边找到 PortNumber &#xff0c;对应修改自己的端口号 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Co…

深度学习:tf.keras实现模型搭建、模型训练和预测

在sklearn中&#xff0c;模型都是现成的。tf.Keras是一个神经网络库,我们需要根据数据和标签值构建神经网络。神经网络可以发现特征与标签之间的复杂关系。神经网络是一个高度结构化的图&#xff0c;其中包含一个或多个隐藏层。每个隐藏层都包含一个或多个神经元。神经网络有多…

echarts3d饼图实现

一、vue中使用3d饼图 效果图&#xff1a; 二、使用步骤 1.引入库 安装echarts 在package.json文件中添加 "dependencies": {"echarts": "^5.1.2""echarts-gl": "^1.1.0",// "echarts-gl": "^2.0.8&quo…

基于AutoEncoder自编码器的MNIST手写数字数据库识别matlab仿真

目录 1.算法理论概述 2.部分核心程序 3.算法运行软件版本 4.算法运行效果图预览 5.算法完整程序工程 1.算法理论概述 MNIST手写数字数据库是机器学习中常用的数据集&#xff0c;包含了0到9这10个数字的手写图片。本文介绍一种基于AutoEncoder自编码器的MNIST手写数字识别算…

高校大数据教材推荐-Hadoop大数据开发基础(第2版)(微课版)

Hadoop大数据开发基础(第2版)(微课版)是“十四五”职业教育国家规划教材&#xff0c;是大数据应用开发“1X”职业技能等级证书配套系列教材&#xff0c;也是“以纸质教材为核心、以互联网为载体”的新形态教材&#xff0c;配套39个微课视频&#xff08;二维码随扫随学&#xff…

DASCTF 2023 0X401七月暑期挑战赛 Reverse部分题解

文章目录 controlflow1. 异或0x4012. 加i*i3. 异或i*(i1)4. 减i5. 乘36. swap7. judge解题脚本 webserver1.关键函数2. 求约束条件3.Z3求解 controlflow 动态调试观察执行情况 1. 异或0x401 2. 加i*i 3. 异或i*(i1) 注意这里是从data[10i]开始 4. 减i 5. 乘3 6. swap 注意…

redis的简单入门

文章目录 一、前言1.1、什么是Redis? 二、简介三、Redis下载与安装四、Redis服务启动与停止五、Redis设置密码进行远程连接5.1、设置密码5.2、远程连接 六、Redis数据类型七、Redis常用命令7.1、字符串String命令7.2、哈希hash操作命令7.3、列表list操作命令7.4、集合set操作命…

机器人SLAM导航学习-All in one

参考引用 张虎&#xff0c;机器人SLAM导航核心技术与实战[M]. 机械工业出版社&#xff0c;2022.本博客未详尽之处可自行查阅上述书籍 一、编程基础篇 1. ROS 入门必备知识 ROS学习笔记&#xff08;文章链接汇总&#xff09; 2. C 编程范式 《21天学通C》读书笔记&#xff0…

leetcode743. 网络延迟时间 DJ

https://leetcode.cn/problems/network-delay-time/ 有 n 个网络节点&#xff0c;标记为 1 到 n。 给你一个列表 times&#xff0c;表示信号经过 有向 边的传递时间。 times[i] (ui, vi, wi)&#xff0c;其中 ui 是源节点&#xff0c;vi 是目标节点&#xff0c; wi 是一个信…

python_day13

reduceByKey算子&#xff0c;聚合 列表中存放二元元组&#xff0c;元组中第一个为key&#xff0c;此算子按key聚合&#xff0c;传入计算逻辑 from pyspark import SparkConf, SparkContext import osos.environ["PYSPARK_PYTHON"] "D:/dev/python/python3.10…

Geriit使用出错记录

拉取服务器代码&#xff08;clone &#xff09; 1、执行&#xff1a;git clone ssh:xxxxxx && scp -p -P 29418 xxxxxxxxx 1、报错&#xff1a;Unable to negotiate with XX.XX.XX.XX port XX:: no matching key exchange method found. Their offer: diffie-hellman…

第五章 编程之免交互

免交互&#xff1a;不需要人为控制就可以完成的自动化操作&#xff08;自动化运维&#xff09; shell脚本和面交互是一个概念&#xff0c;但是两种写法 shell&#xff1a;默认解释器是bash 使用i/o&#xff08;输入/输出&#xff09;重定向的方式&#xff0c;将命令的列表提供…

pytest钩子函数(二):初始化钩子

前言 pytest这个框架提供了非常多的钩子。通过这些钩子我们可以对pytest 用例收集、用例执行、报告输出等各个阶段进行干预&#xff0c;根据需求去开发对应的插件&#xff0c;以满足自己的使用场景。 01 什么是钩子函数&#xff1f; 钩子函数在pytest称之为Hook函数,它pytes…

【头歌】二叉树的二叉链表存储及基本操作

第1关:先序遍历创建二叉链表存储的二叉树及遍历操作 任务描述 本关任务:以二叉链表作存储结构存储二叉树,利用先序递归遍历创建二叉树,并依次进行二叉树的前序、中序、后序递归遍历。 相关知识 在顺序存储结构中,利用数组下标表示元素的位置及元素之间孩子或双亲的关系…

失去中国市场的三星继续称霸全球,中国手机的份额反而进一步下降了

市调机构canalys公布了二季度全球手机市场的数据&#xff0c;数据显示三星、苹果的市场份额保持稳定并位居全球前二&#xff0c;三星的表现显然让人称奇&#xff0c;一直被唱衰&#xff0c;却一直都稳稳占据全球手机市场第一名。 从Canalys公布的数据可以看到&#xff0c;三星以…

【Go】 map 精髓理解

map go map 的底层结构 hmap&#xff0c;的四个元素 然后再讲一下 buckets 的元素&#xff0c;讲一下 hash 冲突&#xff0c;和解决方法 再讲一下&#xff0c;增量扩容和等量扩容 再讲一下增删改查的过程&#xff0c;就查询过程 map 基础 向值为 nil 的 map 添加元素会发生 pa…

青枫壁纸小程序V1.4.0(后端SpringBoot)

引言 那么距离上次的更新已经过去了5个多月&#xff0c;期间因为忙着毕业设计的原因&#xff0c;更新的速度变缓了许多。所以&#xff0c;这次的更新无论是界面UI、用户功能、后台功能都有了非常大的区别。希望这次更新可以给用户带来更加好的使用体验 因为热爱&#xff0c;更…

【湍流介质的三维传播模拟器】全衍射3-D传播模拟器,用于在具有随机和背景结构的介质中传播无线电和光传播(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码实现 &#x1f4a5;1 概述 全衍射3-D传播模拟器是一种用于模拟在具有随机和背景结构的介质中传播无线电和光的工具。它可以帮助研究人员和工程师理解和预测无线电波和光波…

多重感知机MLP:Mnist

文章目录 网络结构代码common_utils.pynetwork.pyprovider.pytrain.pytest.pyvisual.py 实验训练结果测试结果可视化 网络结构 输入过程输出28*28Flatten784784Linear300300Linear100100Linear10 代码 文件结构&#xff1a; common_utils.py 用来输出日志文件 # common_…

基于扩展(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计

1 主要内容 该程序对应文章《Power System Dynamic State Estimation Using Extended and Unscented Kalman Filters》&#xff0c;电力系统状态的准确估计对于提高电力系统的可靠性、弹性、安全性和稳定性具有重要意义&#xff0c;虽然近年来测量设备和传输技术的发展大大降低…