uniapp--登录和注册页面-- login

目录

1.效果展示

2.源代码展示

测试登录 login.js

 测试请求 request.js

测试首页index.js


1.效果展示

          


2.源代码展示

<template><view><f-navbar title="登录" navbarType="4"></f-navbar><view class="tips"><view class="title">欢迎{{ isLogin ? '登录' : '注册'}}{{ title }}</view><view class="sub-title" style="">便捷高效管理学生信息</view></view><u-form :model="userInfo"><view class="container-input"><u-form-item><input placeholder="请输入账号" v-model="userInfo.username" placeholderStyle="color: #c0c4cc" style="height: 25px;"></input></u-form-item></view><view class="container-input" style="margin-top: 40rpx;"><view class="eye-input" style="padding: 10px 0;"><input :password="pwdOpen" placeholder="请输入密码" v-model="userInfo.password" placeholderStyle="color: #c0c4cc" style="height: 25px;padding-right: 64rpx;width: 100%;"></input><view class="eye-image"><image v-if="!eyeOpen && userInfo.password" src="../../static/login/eye_close.png" mode="aspectFill" @click="tabEyeClose"></image><image v-if="eyeOpen && userInfo.password" src="../../static/login/eye_open.png" mode="aspectFill" @click="tabEyeOpen"></image></view></view></view></u-form><view class="agree-list"><view :class="[radioShow ? 'agree-radio-active' : 'agree-radio']" @click="agree"></view><view class="agree-title">我已阅读并同意<text style="font-size: 26rpx;color: #428AF6;" @click="agreement">《用户协议》</text>以及<text style="font-size: 26rpx;color: #428AF6;" @click="privacy">《隐私政策》</text></view></view><view v-if="isLogin" class="container-bth" @click="login">登录</view><view v-if="!isLogin" class="container-bth" @click="register">注册</view><view class="flex-between" :style="{justifyContent: isLogin ? '' : 'flex-end'}" style="margin: 32rpx 40rpx 0 40rpx;"><view class="forget-pwd" @click="checkBtn">{{ !isLogin ? '立即登录?' : '立即注册?'}}</view><view v-if="isLogin" class="forget-pwd" @click="forget">忘记密码?</view></view></view>
</template><script>
import { accountLoginStudent } from "@/api/login/login.js"export default {data() {return {isLogin: true,radioShow: true, //默认勾上title: 'XXXX',eyeOpen: false,pwdOpen: true,userInfo: {username: '',password: ''}}},methods: {// 注册register() {if(!this.radioShow) {this.$tools.toast('用户协议和隐私政策未勾选')}else if(!this.userInfo.username) {this.$tools.toast('请填写账号')}else if(!this.userInfo.password) {this.$tools.toast('请输入密码')}else {this.isLogin = truethis.userInfo.password = ''this.userInfo.username = ''setTimeout(() => {this.$tools.toast('注册成功')},500)// accountLoginStudent(this.userInfo).then((res) => {// 	console.log('res: ',res);//     if (res.code === 200) {//         let token = res.data.token//         uni.setStorageSync('token', token)// 		uni.switchTab({// 		    url: '/pages/index/index'// 		})// 		setTimeout(() => {// 			this.$tools.toast('登录成功')// 		},500)//     }// })}},// 登录login() {if(!this.radioShow) {this.$tools.toast('用户协议和隐私政策未勾选')}else if(!this.userInfo.username) {this.$tools.toast('请填写账号')}else if(!this.userInfo.password) {this.$tools.toast('请输入密码')}else {let token = 'token123'uni.setStorageSync('token', token)uni.switchTab({url: '/pages/index/index'})setTimeout(() => {this.$tools.toast('登录成功')},500)// accountLoginStudent(this.userInfo).then((res) => {// 	console.log('res: ',res);//     if (res.code === 200) {//         let token = res.data.token//         uni.setStorageSync('token', token)// 		uni.switchTab({// 		    url: '/pages/index/index'// 		})// 		setTimeout(() => {// 			this.$tools.toast('登录成功')// 		},500)//     }// })}},checkBtn() {this.isLogin = !this.isLoginthis.userInfo.username = ''this.userInfo.password = ''this.eyeOpen = falsethis.pwdOpen = true},tabEyeClose(){this.eyeOpen = truethis.pwdOpen = false},tabEyeOpen(){this.eyeOpen = falsethis.pwdOpen = true},agree() {this.radioShow = !this.radioShow},//忘记密码forget() {uni.navigateTo({url: `/pagesHome/editPassword/editPassword`})},// 用户协议agreement() {this.$tools.toast('用户协议')},// 隐私政策privacy() {this.$tools.toast('隐私政策')}}
}
</script><style>page {background: linear-gradient(270deg, #E1ECFE 0%, #DDFCFF 100%);}
</style><style lang="scss" scoped>.tips {margin: 110rpx 0 100rpx 0;width: 100%;text-align: center;.title {font-size: 40rpx;font-family: PingFang SC, PingFang SC;font-weight: bold;letter-spacing: 2rpx;color: #26344D;}.sub-title {font-size: 28rpx;font-family: PingFang SC, PingFang SC;letter-spacing: 2rpx;color: #26344D;margin-top: 10rpx;}}.container-input {margin: 0 40rpx;background-color: #fff;border-radius: 16rpx;padding-left: 32rpx;padding-right: 32rpx;.eye-input {width: 100%;position: relative;display: flex;justify-content: space-between;align-items: center;.eye-image {position: absolute;right: 0;width: 30rpx;height: 30rpx;margin-left: 20rpx;flex-shrink: 0;image{width: 100%;height: 100%;}}}}.agree-list {margin: 16px 0 0 20px;display: flex;.agree-radio {width: 26rpx;height: 26rpx;border-radius: 50%;border: 1px solid #999;}.agree-radio-active {position: relative;width: 26rpx;height: 26rpx;border-radius: 50%;border: 1px solid transparent;background-color: #428AF6;}.agree-radio-active::after {position: absolute;content: '';left: 8rpx;width: 6rpx;height: 14rpx;top: 50%;transform: translateY(-60%) rotate(38deg);border: 4rpx solid #fff;border-width: 0 4rpx 4rpx 0;}.agree-title {margin-left: 10rpx;font-size: 26rpx;color: #333;}}.container-bth {margin: 0 40rpx;border-radius: 16rpx;height: 88rpx;background-color: #5990F5;margin-top: 60rpx;text-align: center;color: #fff;font-size: 32rpx;line-height: 88rpx;letter-spacing: 2rpx;}.forget-pwd {display: flex;align-items: center;justify-content: flex-end;font-size: 28rpx;font-family: MiSans-Regular, MiSans;color: #5990F5;}
</style>

测试登录 login.js
import api from '@/common/request.js'// 登录
export const accountLoginStudent = (data) => {return api({url: '/app/login/accountLoginStudent',method: 'POST',data})
}
 测试请求 request.js
import config from '@/config/index.js'const request = (options) => {uni.showLoading({title: '加载中',mask: true,icon: 'loading'});return new Promise((resolve, reject) => {uni.request({url: config.baseUrl + options.url,method: options.method || "GET",data: options.data || {},header: {'content-type': 'application/json','like-admin': uni.getStorageSync('token'),terminal: 1},success: (res) => {uni.hideLoading()if (res.data.code == 333) {uni.navigateTo({url: '/pages/login/login'})uni.showToast({title: "您还未登陆 ,请登录",icon: 'none',duration: 2000})} else if (res.data.code == 200) {} else if (res.data.code == 332) {uni.removeStorageSync('token')uni.removeStorageSync('userinfo')uni.removeStorageSync('userId')// uni.clearStorageSync()uni.navigateTo({url: '/pages/login/login'})uni.showToast({title: "登录过期,请重新登陆",icon: 'none',duration: 2000})} else {setTimeout(() => {uni.showToast({title: res.data.msg,icon: 'none',duration: 2000})}, 0)}resolve(res.data)},fail: (error) => {uni.hideLoading()reject(error)// console.log(error);setTimeout(() => {uni.showToast({title: '请求异常',icon: 'none',duration: 1500})}, 500)},complete() {uni.hideLoading()}})})
}export default request
测试首页index.js

import api from '@/common/request.js'

直接使用即可,可以根据自己的需求修改样式!

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

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

相关文章

图数据库Neo4J入门——Neo4J下载安装+Cypher基本操作+《西游记》人物关系图实例

这里写目录标题 一、效果图二、环境准备三、数据库设计3.1 人物节点设计3.2 关系设计 四、操作步骤4.1 下载、安装、启动Neo4J服务4.1.1 配置Neo4J环境变量4.1.2 启动Neo4J服务器4.1.3 启动Ne04J客户端 4.2 创建节点4.3 创建关系&#xff08;从已有节点创建关系&#xff09;4.4…

PhpStorm2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 PhpStorm是由JetBrains公司开发的一款商业的PHP集成开发环境&#xff08;IDE&#xff09;&#xff0c;深受全球开发人员的喜爱。它旨在提高开发效率&#xff0c;通过深刻理解用户的编码习惯&#xff0c;提供智能代码补全、快速导…

Java面试八股文(JVM篇)(❤❤)

Java面试八股文_JVM篇 1、知识点汇总2、知识点详解&#xff1a;3、说说类加载与卸载11、说说Java对象创建过程12、知道类的生命周期吗&#xff1f;14、如何判断对象可以被回收&#xff1f;17、调优命令有哪些&#xff1f;18、常见调优工具有哪些20、你知道哪些JVM性能调优参数&…

vue的就地更新与v-for的key属性

vue的就地更新 Vue中的就地更新到底是怎么回事&#xff0c;为什么会存在就地更新的现象&#xff1f; 注意下面的例子&#xff0c;使用v-for指令时&#xff0c;没有绑定key值&#xff0c;才有就地更新的现象&#xff0c;因为Vue默认按照就地更新的策略来更新v-for渲染的元素列表…

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)

CTFHUB-技能树-Web前置技能-文件上传&#xff08;前端验证—MIME绕过、00截断、00截断-双写后缀&#xff09; 文章目录 CTFHUB-技能树-Web前置技能-文件上传&#xff08;前端验证—MIME绕过、00截断、00截断-双写后缀&#xff09;前端验证—MIME绕过有关MIMEMIME的作用 解题时有…

元宇宙VR虚拟线上展馆满足企业快速布展的需要

想要拥有一个VR线上虚拟展馆&#xff0c;展现您的城市风采或企业特色吗? 相比实体展馆搭建&#xff0c;VR线上虚拟展馆投入资金少&#xff0c;回报周期短&#xff0c;只需几个月的时间&#xff0c;您就能开始资金回笼。那么一个VR线上虚拟展馆多少钱呢? 深圳VR公司华锐视点基…

bp神经网络拟合函数未知参数【源码+视频教程】

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法&#xff0c;并提供所有案例完整源码&#xff1b;2.…

无人零售行业展望:智能化与便利性引领未来

无人零售行业展望&#xff1a;智能化与便利性引领未来 无人零售&#xff0c;这一依靠智能化技术如人工智能、物联网、和大数据的零售模式&#xff0c;正逐步成为全球零售行业的新趋势。该模式允许消费者在没有店员的情况下自助完成购物&#xff0c;提供了24小时服务&#xff0…

IO、存储、硬盘、文件系统相关常识

目录 IO 文件系统 文件在硬盘上的存储 IO IO&#xff0c;就是Input和Output&#xff0c;即输入和输出操作。我们的电脑可以通过网络下载文件&#xff0c;也可以通过网络上传文件。通过网络下载文件就是输入操作&#xff0c;上传文件就是输出。如何区分输入和输出呢&#xf…

负载均衡的原理及算法简介

负载均衡&#xff08;Load Balancing&#xff09;是一种用于在多台服务器之间分配网络流量的技术&#xff0c;旨在优化系统资源利用率、提高服务可用性、增强系统的伸缩性和容错能力。其基本原理是将来自客户端的请求分散到一个服务器集群中的各个服务器上&#xff0c;而不是让…

postgresql|数据库|实时数据库监控利器 pg_activity 的部署和初步使用

前言&#xff1a; postgresql的调优是比较重要的&#xff0c;那么&#xff0c;如何调优呢&#xff1f;自然是在某一个时间段内&#xff0c;通常是业务高峰期或者压测时间内实时观察数据库的运行情况&#xff0c;然后通过观察到的信息判断数据库的瓶颈&#xff0c;比如&#xf…

通过adb 命令打印安装在第三方模拟器上的log

1&#xff0c;环境&#xff1a;Windows 11 &#xff0c;第三方模拟器 网易的MuMu 步骤&#xff1a; 1&#xff0c;打开cmd&#xff0c;输入 adb connect 172.0.0.1:7555 2&#xff0c;在cmd&#xff0c;再次输入adb logcat 回车

简单了解 HTTP 基础知识

HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是用于在网络上传输数据的一种协议&#xff0c;对于网络开发人员来说&#xff0c;理解这一协议是至关重要的。由于其广泛的应用&#xff0c;除了在网页应用传输数据之外&#xff0c;它还被应…

算法学习——LeetCode力扣补充篇8(146. LRU 缓存、 215. 数组中的第K个最大元素、25. K 个一组翻转链表)

算法学习——LeetCode力扣补充篇8 146. LRU 缓存 146. LRU 缓存 - 力扣&#xff08;LeetCode&#xff09; 描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化…

weblogic JSP action的配置

action(如xxx.do&#xff09;可以在Java文件中通过注解的方式配置&#xff0c;也可以在web.xml中进行配置 在java文件中配置的场合 WebServlet(xxxx.do) 并实现支持的方法&#xff1a;doGet或doPost等 或者 WebServlet(xxxx.do) 并实现service方法 所有method的处理方法都会…

华为 2024 届实习招聘——硬件-电源机试题(四套)

华为 2024 届实习招聘——硬件-电源机试题&#xff08;四套&#xff09; 部分题目分享&#xff0c;完整版带答案(有答案&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;共四套&#xff09; 获取&#xff08;WX:didadidadidida313&…

【保姆级讲解docker 的常用命令】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

设计模式-命令模式(Command)

1. 概念 命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;也被称为动作模式或事务模式。它的核心思想是将一个请求封装成一个对象&#xff0c;从而使你可以用不同的请求对客户进行参数化。对请求排队或记录&#xff0c;以及支持可撤销的操作…

Excel高效办公:人力资源管理(AI版)

AI人力资源管理一本通&#xff1a;147个“温馨提示”53个“教您一招”&#xff0c;掌握使用Excel高效完成人力资源管理工作的“心法”&#xff0c;助你早做完、不加班。 一本书掌握人力资源高效管理的“心法”&#xff01; 案例丰富&#xff0c;参考性强&#xff1a;本书不是…

Web3与社会契约:去中心化治理的新模式

在数字化时代&#xff0c;技术不断为我们提供新的可能性&#xff0c;而Web3技术作为一种基于区块链的创新&#xff0c;正在引领着互联网的下一波变革。它不仅改变了我们的经济模式和商业逻辑&#xff0c;还对社会契约和权力结构提出了全新的挑战和思考。本文将深入探讨Web3的基…