群控系统服务端开发模式-应用开发-前端登录页面开发

一、清理不必要的文件

        1、删除auth-redirect.vue

                a、在根目录src文件夹下views文件夹下找到登录文件夹login,在login文件夹中删除auth-redirect.vue文件。

                b、在根目录mock文件夹下role文件夹中的routes.js文件中,删除下面的代码

{
    path: '/auth-redirect',
    component: 'views/login/auth-redirect',
    hidden: true
},

                c、在根目录src文件夹下route文件夹中的index.js文件中,删除下面的代码

{
    path: '/auth-redirect',
    component: () => import('@/views/login/auth-redirect'),
    hidden: true
},

                d、在根目录src文件夹下permission.js文件中,将const whiteList = ['/login',
'/auth-redirect']修改为const whiteList = ['/login']

        2、删除第三方组件

                a、在根目录src文件夹下views文件夹下找到登录文件夹login,在login文件夹中删除components文件夹。

        3、删除登录页面代码

                a、在根目录src文件夹下views文件夹下找到登录文件夹login,在login文件夹中修改index.vue文件,删除如下代码:

import SocialSign from './components/SocialSignin'
components: { SocialSign },
showDialog: false,

<el-dialog title="Or connect with" :visible.sync="showDialog">Can not be simulated on local, so please combine you own business simulation! ! !<br><br><br><social-sign />
</el-dialog>
<div style="position:relative">
    <div class="tips">
        <span>Username : admin</span>
        <span>Password : any</span>
    </div>
    <div class="tips">
        <span style="margin-right:18px;">Username : editor</span>
        <span>Password : any</span>
    </div>
    <el-button class="thirdparty-button" type="primary" @click="showDialog=true">Or connect with</el-button>
</div>

二、添加登录页面验证码功能

        1、更改配置参数

                a、在根目录下.env.development文件中修改VUE_APP_BASE_API参数值,将参数值改为

http://controlapi.yuanlongsoftware.cn,也就是你后端api访问的网址

        2、添加获取验证码方法

                a、在根目录下src文件夹下找到api文件夹。在里面新建common.js文件,然后添加如下代码:

export function getCode() {
    return request({
        url: '/login/get_code',
        method: 'get'
    })
}

        3、添加登录页面验证码显示

                在根目录src文件夹下views文件夹下找到登录文件夹login,在login文件夹中修改index.vue文件

                a、引入公用js文件

import { getCode } from '@/api/common'

                b、在return对象里面定义code并赋值为空

code: '',

                c、在created对象里面调用获取验证码方法

this.changeCode()

                d、在methods对象里面开发获取验证码方法。因我们的验证码后端返回的是base64,所以我们需要开发base64转化方法

//获取验证码
async changeCode() {
    const res = await getCode()
    this.code = window.URL.createObjectURL(this.convertBase64ToBlob(res.data));
}

//转化base64
convertBase64ToBlob(base64) {
    const parts = base64.split(';base64,');
    const contentType = parts[0].split(':')[1];
    const raw = window.atob(parts[1]);
    const rawLength = raw.length;
    const uInt8Array = new Uint8Array(rawLength);
    for (let i = 0; i < rawLength; ++i) {
        uInt8Array[i] = raw.charCodeAt(i);
    }
    return new Blob([uInt8Array], {type: contentType});
}

                e、在html代码里面添加如下代码:

<el-form-item prop="captcha_code">
    <span class="svg-container">
        <svg-icon icon-class="user" />
    </span>
    <el-input
        ref="captcha_code"
        v-model="loginForm.captcha_code"
        placeholder="请输入验证码"
        autocomplete="off"
        autocapitalize="off"
        spellcheck="false"
        name="captcha_code"
        type="text"
        tabindex="3"
        @keyup.enter.native="handleLogin"
    />
    <span style="position:absolute;right:0px;top:0px;font-size:16px;color:#889aa4;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;" @click="changeCode">
        <img ref="captcha_code" :src="code" style="width:200px;height:50px;margin:0px;padding:0px;">
    </span>
</el-form-item>

三、添加验证方法

        1、邮箱验证方法

export function validEmail(email) {
    const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
    return reg.test(email)
}

        2、密码强度验证方法

export function validPassword(str) {
    let modes = 1
    if (str.length >= 6 && str.length <= 20) {
        if (/\d/.test(str)) modes++ // 数字
        if (/[a-z]/.test(str)) modes++ // 小写
        if (/[A-Z]/.test(str)) modes++ // 大写
        if (/\W/.test(str)) modes++ // 特殊字符
    }
    // 逻辑处理
    if (modes === 1) {
        return '密码长度只能是6到20位之间'
    } else if (modes === 2) {
        return '密码的强度不够'
    } else {
        return true
    }
}

        3、添加数字验证方法

export function validCode(str) {
    return /^[0-9]{4}$/.test(str)
}

四、提前说明

        下一步开始做登录操作

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

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

相关文章

深入理解接口测试:实用指南与最佳实践5.0(三)

✨博客主页&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客内容》&#xff1a;.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 &#x1f4e2;博客专栏&#xff1a; https://blog.csdn.net/m0_63815035/cat…

mongoDB的安装及使用

mongodb的安装参考&#xff1a; Centos系统中mongodb的安装详解_centos安装mongodb-CSDN博客 不要下载最新的版本&#xff0c;新的版本中mongo命令无法使用&#xff0c;也就是安装后不能通过mongo命令登录&#xff0c;我这里使用5.0.30版本&#xff1b; mongodb客户端demo: …

vue3面试题1|[2024-11-12]

问题1&#xff1a;vue2与vue3的区别 1.vue2 和 vue3 双向绑定 方法不同 vue2&#xff1a;Object.defineProperty() ***使用这种方法&#xff0c;对于后添加的属性是劫持不到的&#xff0c;所以就会出现数据更新了&#xff0c; 但是视图没有更新&#xff0c;所以vue2就需要使用$…

python-24-一篇文章彻底掌握Python HTTP库Requests

python-24-一篇文章彻底掌握Python HTTP库Requests 一.简介 在 Python 中&#xff0c;Requests 是一个非常流行且易于使用的 Python HTTP 库&#xff0c;专门用于发送 HTTP/HTTPS 请求&#xff0c;获取请求响应&#xff1b; 可能觉得HTTP请求不是应该前端去做么&#xff1f;…

打造移动友好网站:UI设计的自适应技巧

随着移动互联网的快速发展&#xff0c;手机已成为人们获取信息的主要渠道之一。对于UI设计师而言&#xff0c;打造一个能够自适应手机屏幕的网站变得尤为重要。这不仅能够提升用户体验&#xff0c;还能在搜索引擎优化&#xff08;SEO&#xff09;中占据优势。以下是实现UI设计网…

Python →爬虫实践

爬取研究中心的书目 现在&#xff0c;想要把如下网站中的书目信息爬取出来。 案例一 耶鲁 Publications | Yale Law School 分析网页&#xff0c;如下图所示&#xff0c;需要爬取的页面&#xff0c;标签信息是“<p>”&#xff0c;所以用 itemssoup.find_all("p&…

STM32问题集

这里写目录标题 一、烧录1、 Can not connect to target!【ST-LINK烧录】 一、烧录 1、 Can not connect to target!【ST-LINK烧录】 烧录突然 If the target is in low power mode, please enable “Debug in Low Power mode” option from Target->settings menu 然后就&…

正点原子IMX6ULL--嵌入式Linux开发板学习中常用命令和笔记记录

学习路线图 传驱动文件 sudo cp chrdevbase.ko chrdevbaseApp /home/txj/linux/nfs/rootfs/lib/modules/4.1.15/ -f bootcmd setenv bootcmd tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000 setenv bootcmd tftp 80800000 zImag…

29.电影院售票系统(基于springboot和vue的Java项目)

目录 1.系统的受众说明 2 论文背景 2.1 国内研究现状&#xff1a; 2.2 国外研究现状&#xff1a; ​​​​​​​2.3 所用技术 3 系统需求分析 ​​​​​​​3.1 需求分析 ​​​​​​​3.2 可行性分析 3.2.1技术可行性分析 3.2.2市场可行性分析 3.2.3经济可…

(一)<江科大STM32>——软件环境搭建+新建工程步骤

一、软件环境搭建 &#xff08;1&#xff09;安装 Keil5 MDK 文件路径&#xff1a;江科大stm32入门教程资料/Keil5 MDK/MDK524a.EXE&#xff0c;安装即可&#xff0c;路径不能有中文。 &#xff08;2&#xff09;安装器件支持包 文件路径&#xff1a;江科大stm32入门教程资料…

热点更新场景,OceanBase如何实现性能优化

案例背景 这个案例来自一个保险行业的客户&#xff1a;他们的核心系统底层采用了OceanBase数据库作为存储解决方案&#xff0c;然而&#xff0c;在系统上线运行后&#xff0c;出现了一个异常情况&#xff0c;执行简单的主键更新语句时SQL执行时间出现了显著的波动。为了迅速定…

从0开始学习机器学习--Day24--核函数

核函数(Kernelsl function) 非线性数据的决策边界 对于非线性问题来说&#xff0c;决策边界在很多时候都是曲线&#xff0c;需要我们在假设函数中加入高阶多项式来拟合原始数据&#xff0c;这对于算法来说需要很长的运行时间去计算这些高阶多项式&#xff0c;那么有没有更高效…

Unity学习笔记(4):人物和基本组件

文章目录 前言开发环境新增角色添加组件RigidBody 2D全局项目设置Edit 给地图添加碰撞体 总结 前言 今天不加班&#xff0c;有空闲时间。争取一天学一课&#xff0c;养成习惯 开发环境 Unity 6windows 11vs studio 2022Unity2022.2 最新教程《勇士传说》入门到进阶&#xff…

【C++】字符串相乘

1.题目 2.代码 介绍一种比较简单的方法&#xff0c;就是先将字符串逆序&#xff0c;然后取出其中每一位的数相乘、相加。最后再考虑进位问题。 class Solution { public:string multiply(string num1, string num2) {//先排除边界情况&#xff0c;防止输出"00000...&quo…

Pycharm PyQt5 环境搭建创建第一个Hello程序

第一步: 创建Pycharm项目,下载包: pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/下载好了之后,可以看到相应包: PyQt5:PyQt5是一套Python绑定Digia QT5应用的框架。Qt库是最…

新手小白学习docker第六弹------Docker常规安装(安装tomcat、mysql、redis)

目录 1 总体步骤2 安装tomcat2.1 搜索镜像2.2 拉取镜像2.3 查看镜像2.4 启动镜像2.5 访问猫首页 3 安装mysql3.1 搜索镜像3.2 拉取镜像3.3 启动镜像 4 安装redis4.1 拉取镜像4.2 启动镜像&#xff08;法1基础版&#xff09;4.3 配置文件4.3.1 在宿主机下新建目录 /app/redis4.3…

python基础大杂烩

命令提示符程序&#xff0c;输入python&#xff0c;运行python程序 代码通过解释器程序翻译给计算机去执行 命令提示符输入的python本质上就是调用D:/dev/python/python3.12.5/python.exe这个解释器程序 有python程序将输入的代码翻译成二进制的0和1&#xff0c;去向计算机去运…

【数字图像处理+MATLAB】对图片进行伽马校正(Gamma Correction):使用幂律变换公式进行伽马变换

引言 伽马校正&#xff08;Gamma Correction&#xff09;是一种用于图像处理的技术&#xff0c;主要用于调整图像的亮度或对比度。其基本原理是对图像的每一个像素应用一个非线性变换&#xff0c;以更好地适应人眼的视觉感知。在数字图像处理中&#xff0c;伽马校正通常用于调…

Golang | Leetcode Golang题解之第553题最优除法

题目&#xff1a; 题解&#xff1a; func optimalDivision(nums []int) string {n : len(nums)if n 1 {return strconv.Itoa(nums[0])}if n 2 {return fmt.Sprintf("%d/%d", nums[0], nums[1])}ans : &strings.Builder{}ans.WriteString(fmt.Sprintf("%d…

基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路

一、项目概述 随着电动车的普及&#xff0c;充电桩作为关键基础设施&#xff0c;其智能化、网络化管理显得尤为重要。本项目旨在基于STM32微控制器开发一款智能充电桩&#xff0c;能够实现高效的充电监控与管理。项目通过物联网技术&#xff0c;提供实时数据监测、远程管理、用…