【信贷后台管理之登录(一)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 目录结构
  • 一、项目搭建
  • 二、登录页面
    • 1.引入Element-ui
    • 2.LoginView.vue组件
    • 3.router文件的index.js引入组件
  • gitee仓库地址


目录结构

在这里插入图片描述


一、项目搭建

找到存放项目的文件夹。打开终端,vue create debtproject,自定义安装
在这里插入图片描述

在这里插入图片描述

二、登录页面

路由组件都放在views文件夹,登录组件LoginView.vue
登录组件里用两个div容器,登录表单用element-ui,密码要求不小于6位数,登录成功后跳转至/home页面。
【想要实现运行成功后,页面主动跳出,可在package.json里添加–open,如下】
在这里插入图片描述
【想要运行成功后的地址不带#号,路由器工作模式选择history模式,在router/index.js】
在这里插入图片描述

需要下载element-ui,在该项目控制台下npm install element-ui -S
【遇到certificate has expired证书过期问题】
在这里插入图片描述
【解决方法】
npm cache clean --force
npm config set strict-ssl false
npm install
然后再次安装element-ui即可

1.引入Element-ui

在main.js完整引入,记得use
在这里插入图片描述

2.LoginView.vue组件

<template>
  <div class="login-box">
    <div class="login-input-box">
      <h1>信贷后台管理系统</h1>
      <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="70px" class="demo-ruleForm">
        <el-form-item label="用户名" prop="username">
          <el-input  v-model="ruleForm.username" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="密码" prop="pass">
          <el-input type="password" v-model="ruleForm.pass" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
        </el-form-item>
      </el-form>
    </div>
  </div>

</template>

<script >
export default {
  data(){
    // 密码校验,长度不小于8位且不大于20位字符,必须包含大写字母,小写字母,数字和特殊符号
    // var ISPWD =/^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*,\._\+(){}])[0-9a-zA-Z!@#$%^&*,\\._\+(){}]{8,20}$/;
    // // 密码校验
    // const validatePass = (rule, value, callback) =>{
    //   if (!ISPWD.test(this.registerForm.password)) {
    //     callback(new Error("用户密码必须包含大写字母、小写字母、数字和特殊符号"));
    //   } else {
    //     callback();
    //   }
    // }

    // const validatePass = (rule,value,callback){
    //   if(this.ruleForm.pass === '') {
    //     callback(new Error('请输入密码'))
    //   }else if(this.ruleForm.pass.length < 6){
    //     callback(new Error('密码长度不能小于6'))
    //   }else{
    //     callback();
    //   }
    // },
    return{
      ruleForm: {
        username:'',
        pass:'',
      },
      rules:{
        username: [
          {required:true,trigger:'blur',message:'请输入用户名'}
        ],
        pass:[
          {required:true,trigger:'blur',validator:this.validatePass},
        ],
      },
    };
  },

  methods:{
    // 校验规则
    validatePass(rule,value,callback){
      if (value === ""){
        callback(new Error("请输入密码"));
      }else if (value.length < 6){
        callback(new Error("密码不能小于6位数"));
      }else{
        callback();
      }

    },
    submitForm(){
      // 验证规则
      this.$refs.ruleForm.validate((valid) => {
        if (valid) {
          this.login(this.ruleForm);
        }else{
          return false;
        }
      });
    },
    login(){
      this.$router.replace("/home");
    }
  }
}

</script>

<style lagn="scss" scoped>
.login-box{
  display: flex;   /* div可成为flex容器*/
  justify-content: center;  /*上面贴着父元素,居于中间*/
  align-items: center;  /* 左侧贴着父元素,把项目位置调整到中间 */
  height: 100vh; /* 元素撑开和屏幕一致*/
  background-image: url("../assets/login-background.jpg");
  background-size: cover;
}
.login-input-box{
  width: 650px;
  height: 320px;
  background-color: #fff;
  text-align: center;
  padding: 40px 40px 12px 12px;
}
.el-button{
  width: 600px;
}
.el-input{
  width: 600px;
  margin-bottom: 16px;
}
::v-deep .el-input_inner{
  background: #e5e5e5;
}
</style>

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

涉及样式学习参考:https://blog.csdn.net/Zoey_J/article/details/89445844
涉及el-form学习参考:
https://blog.csdn.net/m0_46123285/article/details/136709541
https://blog.csdn.net/xuanyuanjiaqi/article/details/132314536
路由跳转学习参考:https://blog.csdn.net/weixin_44038287/article/details/126136566
登录功能优化参考:https://blog.csdn.net/ccyolo/article/details/126967074

3.router文件的index.js引入组件

在这里插入图片描述


gitee仓库地址

https://gitee.com/sunmyi/debt-project.git
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解析旅游者心声:用PySpark和SnowNLP揭秘景区评论的情感秘密

简介: 在本篇博客中,我们将探讨如何利用PySpark和SnowNLP这两个强大的工具来分析大规模的旅游评论数据。通过结合携程和去哪儿的数据作为示例,我们将探索如何从海量的评论中提取有价值的情感信息和洞察。PySpark作为一种分布式计算框架,能够处理大规模的数据集,为我们提供…

Java服务运行在Linux----维护常用命令

想起来哪些再添加上去 查看Java程序进程 jps -l 查出进程后根据pid 查询程序所在目录 pwdx 31313 根据端口查找PID 根据pid杀死程序 kill -p 31313 查看目录下所有包含9527的文件 grep -rn 9527 查看磁盘空间 查找文件名"nginx"文件或模糊查找"*nginx*&quo…

Mysql中如何显示第几周

在数据分析中&#xff0c;经常需要对日期和时间进行格式化处理&#xff0c;以便更直观地展示和理解数据。 MySQL 5.7提供了强大的DATE_FORMAT函数&#xff0c;允许用户根据特定的格式字符串来显示日期和时间。 Week函数 最直接的是使用YEAR、WEEK函数 SELECTYEAR(NOW()) AS C…

健身运动耳机哪个牌子好?力荐五大品质翘楚的精品

健身已经成为许多人追求健康与活力的重要方式&#xff0c;而在健身的过程中&#xff0c;一款优质的耳机不仅能让你沉浸于音乐的世界&#xff0c;更能提升运动体验&#xff0c;激发无限潜能&#xff0c;那么如何选择一款既适合运动又品质卓越的耳机呢&#xff1f;今天我这个健身…

【热门话题】Yarn:新一代JavaScript包管理器的安装与使用

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Yarn&#xff1a;新一代JavaScript包管理器的安装与使用引言一、Yarn的安装1. 系…

element-ui inputNumber 组件源码分享

今日简单分享 inputNumber 组件的实现原理&#xff0c;主要从以下四个方面来分享&#xff1a; 1、inputNumber 组件的页面结构 2、inputNumber 组件的属性 3、inputNumber 组件的事件 4、inputNumber 组件的方法 一、inputNumber 组件的页面结构。 二、inputNumber 组件的…

linux安装Zookeeper的详细步骤

1.Java环境确认 确保已经安装了Java环境&#xff0c;没有的自行安装 2.官网下载包 Apache ZooKeeper 3.安装 3.1上传到linux&#xff0c;解压 我的目录为/root/apache-zookeeper-3.8.4-bin 进入到/root/apache-zookeeper-3.8.4-bin/conf目录下&#xff0c;执行命令复制zoo…

由浅到深认识Java语言(44):Junit单元测试

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

硬件12、PCB模块化布局

模块画布局其实就是根据原理图中绘制的小模块&#xff0c;比如3.3V芯片及其外围电路部分的元器件在PCB中放在一起进行布线&#xff0c;会方便很多 1、最好打开分屏&#xff0c;一边在原理图中选中模块&#xff0c;一边在PCB中绘制 2、选中原理图中的模块的所有元件&#xff0…

工业智能物联网关如何助力工业防震减灾

地震灾害难以预料&#xff0c;一旦发生往往就损失重大。对于工业领域而言&#xff0c;地震灾害的影响不仅仅是对人员安全的威胁&#xff0c;还包括对生产设施的破坏、生产进程的中断以及伴生的持续性经济损失。 随着5G、大数据、物联网技术的发展&#xff0c;面向工业领域构建一…

有效的数独-java

题目描述: 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&#…

python如何获取word文档的总页数

最近在搞AI. 遇到了一个问题&#xff0c;就是要进行doc文档的解析。并且需要展示每个文档的总页数。 利用AI. 分别尝试了chatGPT, 文心一言&#xff0c; github copilot&#xff0c;Kimi 等工具&#xff0c;给出来的答案都不尽如人意。 给的最多的查询方式就是下面这种。 这个…

代码随想录阅读笔记-二叉树【翻转二叉树】

题目 翻转一棵二叉树。 思路 如果要从整个树来看&#xff0c;翻转还真的挺复杂&#xff0c;整个树以中间分割线进行翻转&#xff0c;如图&#xff1a; 可以发现想要翻转它&#xff0c;其实就把每一个节点的左右孩子交换一下就可以了。 关键在于遍历顺序&#xff0c;前中后序应…

如何通过vscode连接到wsl

下载wsl扩展 远程连接模式

SQL Server 实验二:数据库视图的创建和使用

目录 第一关 相关知识 什么是表 操作数据表 创建数据表 插入数据 修改表结构 删除数据表 编程要求 第一关实验代码&#xff1a; 第二关 相关知识 视图是什么 视图的优缺点 视图的优点 视图的缺点 操作视图 创建视图 通过视图向基本表中插入数据 通过视图修改基本表的…

Selenium元素定位之页面检测技巧

在进行web自动化测试的时候进行XPath或者CSS定位&#xff0c;需要检测页面元素定位是否正确&#xff0c;如果用脚本去检测&#xff0c;那么效率是极低的。 一般网上推选装额外的插件来实现页面元素定位检测 如&#xff1a;firebug。 其实F12开发者工具就能直接在页面上检测元…

JavaScript new一个对象的详细过程

JavaScript new一个对象的详细过程 new实现过程 new实现原理 new手写实现 实现过程/原理 开辟一块内存&#xff0c;创建一个空对象 执行构造函数对这个空对象进行构造 给空对象添加__proto__属性 调用函数改变this指向 最后返回this指向的新对象&#xff08;如果是引用类型则返…

C# OpenCvSharp MatchTemplate 多目标匹配

目录 效果 项目 代码 下载 效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using O…

Collection集合 --java学习笔记

Collection Collection是单列集合的祖宗&#xff0c;它规定的方法&#xff08;功能&#xff09;是全部单列集合都会继承的 List系列集合&#xff1a;List系列集合&#xff1a;ArrayList、LinkedList --java学习笔记-CSDN博客 Set系列集合&#xff1a;Set系列集合&#xff1a;…

ARMv9新特性:虚拟内存系统架构 (VMSA) 的增强功能

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 权限索引 2022 ARM引入了一种新的控制内存权限方法。 不再是直接在转换表条目 (TTE) 中编码权限&#xff0c;而是使用 TTE 中的字段来索引寄存器中指定的权限数组。这种间接提供…