记录页面——一个蛮好看的登录页(uni-app)
效果图

<template><view class="container"><view class="flex-col login-box"><view class="flex-col" style="width: 80%"><view class="flex-col"><text class="welcome-text-font">嗨~</text><text class="welcome-text-font welcome-text">现在加入我们吧!</text></view><text class="welcome-title text_99">欢迎来到XXXX,</text><text class="welcome-title text_102">有很多人在期盼你的到来呢</text><uni-forms :modelValue="formData" ref="form" :rules="rules"><uni-forms-item label="" name="username"><view class="password-box flex-row"><view class="password-input items-center flex-row"><view class="password-font"><inputtype="text"v-model="formData.username"placeholder="请输入账号"/></view></view></view></uni-forms-item><uni-forms-item label="" name="password"><view class="password-box flex-row"><viewclass="password-input items-center flex-row justify-between"><view class="password-font"><inputclass="password-input2":type="isShowPassword ? 'text' : 'password'"v-model="formData.password"placeholder="请输入密码"/></view><imageclass="shrink-0 image_53"src="../../assets/icon/see.png"@click="checkPassword"/><imagev-if="false"class="shrink-0 image_53"src="../../assets/icon/no_see.png"@click="checkPassword"/></view></view></uni-forms-item><uni-forms-item label="" name="authCode"><view class="password-box flex-row"><view class="password-input items-center flex-row"><view class="password-font"><inputtype="text"v-model="formData.authCode"placeholder="密钥(可选)"/></view></view></view></uni-forms-item></uni-forms></view><view class="button-box flex-row justify-center"><buttonclass="login-button flex-row justify-center items-center"@click="submitForm":loading="loading"type="primary">登录→</button></view></view><!-- <view class="content"><uni-forms :modelValue="formData" ref="form" :rules="rules"><uni-forms-item label="账号" name="username"><inputtype="text"v-model="formData.username"placeholder="请输入账号"/></uni-forms-item><uni-forms-item label="密码" name="password"><inputtype="password"v-model="formData.password"placeholder="请输入密码"/></uni-forms-item></uni-forms><button @click="submitForm" :loading="loading" type="primary">登录</button></view> --></view>
</template><script>
import * as dd from "dingtalk-jsapi";
import { exemption, longinByUsername } from "@/api/login";export default {data() {return {formData: {username: "",password: "",authCode: "",},loading: false,rules: {username: {rules: [{required: true,errorMessage: "请输入账号",},],},password: {rules: [{required: true,errorMessage: "请输入密码",},],},},isShowPassword: false // 是否显示密码};},onReady() {// 需要在onReady中设置规则this.$refs.form.setRules(this.rules);returnif (dd.env.platform !== "notInDingTalk") {dd.ready(() => {dd.runtime.permission.requestAuthCode({corpId: "corpId",onSuccess: (info) => {exemption(info.code).then((res) => {console.log("登录结果", res.data.token);this.getUserInfo(res.data.token);}).catch((cth) => {console.log("不管如和的登录结果", cth);});},onFail: (err) => {alert("fail");},});});}},methods: {submitForm(form) {this.$refs.form.validate().then((res) => {console.log(res);longinByUsername(res).then((resp) => {// console.log(resp);if (resp.code === 200) {this.getUserInfo(resp.data.token);}});}).catch((err) => {console.log('表单错误信息:', err);});},getUserInfo(token) {//将token存到本地uni.setStorageSync("token", token);//获取用户信息this.$request({url: "/auth/currentUserInfo",method: "POST",data: token,}).then((res) => {// console.log(res);const id = res.data.user.id;uni.setStorageSync("id", id);});uni.showToast({icon: "success",title: "登陆成功",});setTimeout(function () {uni.navigateTo({url: "/pages/index/index",});}, 1000);clearTimeout();},checkPassword() {this.isShowPassword = !this.isShowPassword}},
};
</script><style scoped lang="scss">
.container {font-size: 14px;width: 100vw;height: 100vh;background-color: #ebecf3;
}
::v-deep .uni-forms-item__content[data-v-61dfc0d0] {display: flex;align-items: center;
}.login-box {width: 100%;overflow: hidden;align-items: center;.password-box {width: 100%;padding-top: 15px;.password-input {width: 100%;border-radius: 50px;background-color: #ecf2ff;height: 50px;padding: 0 20px;.password-font {font-size: 14px;line-height: 13px;color: rgba(52, 57, 101, 0.5);.password-input2 {background-color: rgba(52, 57, 101, 0);color: rgba(52, 57, 101, 0.5);font-size: 14px;border: none; /* 去掉边框 */outline: none; /* 去掉聚焦时的轮廓 */}}}}.button-box {width: 100%;.login-button {background-color: #4963f4;width: 80%;height: 50px;border-radius: 50px;margin-top: 120px;}}
}
.welcome-text-font {font-size: 30px;font-family: NotoSansSC;line-height: 37px;font-weight: 700;color: rgb(52, 57, 101);
}
.welcome-text {margin-left: 18px;
}
.welcome-title {font-size: 12px;font-family: NotoSansSC;line-height: 14px;color: rgb(52, 57, 101);opacity: 0.5;
}
.text_102 {margin-left: 8px;
}
.text_99 {margin-top: 16px;
}
.image_53 {opacity: 0.5;width: 20px;height: 20px;
}
</style>
相关文章:
记录页面——一个蛮好看的登录页(uni-app)
效果图 <template><view class"container"><view class"flex-col login-box"><view class"flex-col" style"width: 80%"><view class"flex-col"><text class"welcome-text-font&qu…...
Android文件选择器[超级轻量级FilePicker测试没有问题][挣扎解决自带文件管理器获取不到绝对地址问题而是返回msf%3A1000038197]
超级轻量级FilePicker测试没有问题 本文摘录于:https://blog.csdn.net/gitblog_00365/article/details/141449437只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 今天真的是发了疯的找文件管理器,因为调用系统自带的文件管理…...
【论文速读】| RED QUEEN: 保护大语言模型免受隐蔽多轮越狱攻击
基本信息 原文标题:RED QUEEN: Safeguarding Large Language Models against Concealed Multi-Turn Jailbreaking 原文作者:Yifan Jiang, Kriti Aggarwal, Tanmay Laud, Kashif Munir, Jay Pujara, Subhabrata Mukherjee 作者单位:Hippocr…...
39.第二阶段x86游戏实战2-HOOK实现主线程调用
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…...
wordpress argon主题美化方面
1、页面前端额外CSS: /*字体*/ font-face {font-family: myFont1; src:url(https://blog.yangmumu.com/css/fonts/Dancing.ttf) ;font-display: swap; } font-face {font-family: myFont2; src:url(https://blog.yangmumu.com/css/fonts/Regular.ttf) ;font-displa…...
qt QRadioButton详解
QRadioButton 是一个可以切换选中(checked)或未选中(unchecked)状态的选项按钮。单选按钮通常呈现给用户一个“多选一”的选择,即在一组单选按钮中,一次只能选中一个按钮。 重要方法 QRadioButton(QWidget…...
Qt 最小化,最大化,关闭窗口
Qt 最小化,最大化 在Qt中,你可以使用QWidget类提供的方法来实现窗口的最小化、最大化等操作。 最小化窗口 你可以使用QWidget的showMinimized()方法来最小化窗口。这将隐藏窗口并将其显示为系统托盘区域的图标。 connect(ui->btnMin,&QPushButton::click…...
【vue项目中添加告警音频提示音】
一、前提: 由于浏览器限制不能自动触发音频文件播放,所以实现此类功能时,需要添加触发事件,举例如下: 1、页面添加打开告警声音开关按钮 2、首次进入页面时添加交互弹窗提示:是否允许播放音频 以上两种方…...
百度SEO分析实用指南 提升网站搜索排名的有效策略
内容概要 在数字化时代,搜索引擎优化(SEO)已经成为提升网站曝光度的关键工具。本指南将带您了解SEO的基本知识,帮助您在复杂的网络环境中立足。我们将从关键词优化开始,重点讲解如何选择合适的关键词来提高搜索引擎排…...
高并发场景下的性能测试方法!
在现代互联网应用中,高并发场景下的性能测试显得尤为重要。无论是电商平台的秒杀活动,还是社交应用的突发流量,都需要确保系统能够在高并发情况下稳定运行。本文将详细介绍高并发场景下的性能测试方法,并提供具体的方案和实战演练…...
杂项——USB键盘与鼠标流量分析——BUUCTF——流量分析
第一次做USB键盘与鼠标流量分析的题目,现在来好好做一个总结 1. 基础知识 USB流量指的是USB设备接口的流量,攻击者能够通过监听usb接口流量获取键盘敲击键、鼠标移动与点击、存储设备的铭文传输通信、USB无线网卡网络传输内容等等。 在正式介绍 USB H…...
Java如何实现企业微信审批流程
大家好,我是 V 哥。最近的一个项目中,用到企业微信的审批流程,整理出来分享给大家。在企业微信中实现审批流程可以通过调用企业微信的开放API完成,企业微信提供了审批应用接口,用于创建审批模板、发起审批流程以及获取…...
GEE app:在地图上构建一个可以查看局部的小窗
目录 简介 函数 ee.Geometry.MultiLineString(coords, proj, geodesic, maxError) Arguments: Returns: Geometry.MultiLineString getBounds(asGeoJSON) Arguments: Returns: GeoJSONGeometry|List|String setControlVisibility(all, layerList, zoomControl, scaleC…...
leetcode71:简化路径
给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 / 开头),请你将其转化为 更加简洁的规范路径。 在 Unix 风格的文件系统中规则如下: 一个点 . 表示当前目录本身。此外,两个点 ..…...
nodejs入门教程4:nodejs创建第一个应用
1. 安装 Node.js 首先,确保你的计算机上已经安装了 Node.js。如果还没有安装,可以从官方网站(https://nodejs.org)下载并安装最新的 LTS 版本。安装完成后,你可以在命令行或终端中运行以下命令来验证安装:…...
启用 iPhone 原生的五笔输入
聊聊如何在 iOS 中使用原生的五笔输入法 本文虽然介绍的是如何添加五笔键盘,其实其他键盘(双拼,外语键盘、第三方输入法)也是类似的添加方式。 使用原生的理由 虽然之前的文章列了不少第三方的五笔输入法,但其实…...
这个工具让你轻松开发一个带AI功能的Notion
这个工具让你轻松开发一个带AI功能的Notion Plate 是一款由 AI 加持的富文本编辑器,旨在帮助开发者创建功能强大的 WYSIWYG 文本编辑工具。本文将介绍 Plate 的基本信息、特点、以及如何快速上手使用。 软件简介 Plate 由 udecode 开发,基于 React 和 S…...
光耦合器的关键作用和创新---腾恩科技
光耦合器或光隔离器已成为电路中必不可少的器件,它允许信号在无需直接电接触的情况下跨不同电压域传输。这种隔离能力对于保护低压元件免受高压电路的潜在损坏至关重要。本文将仔细研究光耦合器在当今技术中发挥的独特作用,并探讨其在各种应用中不断扩展…...
穿越死锁的迷雾:pthread_mutex_lock的终极挑战与破解策略
穿越死锁的迷雾:pthread_mutex_lock的终极挑战与破解策略 一、死锁的基本概念二、pthread_mutex_lock 出现死锁的原因三、pthread_mutex_lock 出现死锁的表现四、处理pthread_mutex_lock 出现死锁的方法1. 避免死锁1.1 遵循锁的顺序原则1.2 使用定时锁1.3 使用尝试锁1.4 使用递…...
Dockerfile制作Oracle19c镜像
Dockerfile文件 cat > Dockerfile << EOF # 使用 Oracle Linux 8 作为基础镜像 FROM oraclelinux:8# 复制 Oracle 19c 安装包 COPY oracle-database-ee-19c-1.0-1.x86_64.rpm /tmp/# 安装 Oracle 19c 数据库和依赖 RUN yum localinstall -y /tmp/oracle-database-ee-…...
DCNv4:重塑视觉模型核心,三倍速率的动态稀疏卷积如何炼成?
1. 从标准卷积到DCNv4的进化之路 计算机视觉领域的核心算子就像乐高积木里的基础模块,决定了整个模型的表达能力。传统卷积就像用固定形状的积木拼图,虽然稳定但缺乏灵活性。2017年诞生的可变形卷积(DCN)首次给积木加上了"可…...
消息平台接入实战:Hermes Agent 实现微信/钉钉日常任务自动化的 4 步配置
1. 微信/钉钉自动化不是“接个API就完事”,而是上下文边界的重新定义 大多数人第一次配置 Hermes Agent 接入微信或钉钉时,会下意识打开官方文档,复制粘贴几行 webhook 配置,跑通一条“收到消息→回复‘你好’”的 demo 就以为大功告成。我试过三次——第一次在测试环境里…...
如何用Element React构建企业级React应用:完整组件库实战指南
如何用Element React构建企业级React应用:完整组件库实战指南 【免费下载链接】element-react Element UI 项目地址: https://gitcode.com/gh_mirrors/el/element-react Element React作为一套基于React框架的企业级UI组件库,为开发者提供了50余种…...
从一块烧坏的板子说起:PCB电源平面设计中最容易被忽略的‘路径’与‘形状’陷阱
从一块烧坏的板子说起:PCB电源平面设计中最容易被忽略的‘路径’与‘形状’陷阱 那块烧焦的PCB板至今仍躺在我的抽屉里——12V电源轨上清晰的碳化痕迹,像一道闪电劈开了整个设计团队的自信。当客户退回第三批故障设备时,我们才意识到…...
别再手动搬虚拟机了!手把手教你配置vSphere DRS集群,实现ESXi主机负载自动均衡
企业级虚拟化资源调度实战:vSphere DRS集群的智能配置与优化策略 虚拟化技术已成为现代企业IT基础设施的核心支柱,而资源的高效调度则是保障业务连续性和性能的关键。在传统虚拟化环境中,管理员往往需要手动监控主机负载并迁移虚拟机…...
GameEngineFromScratch输入管理系统:跨平台输入事件处理机制终极指南 [特殊字符]
GameEngineFromScratch输入管理系统:跨平台输入事件处理机制终极指南 🎮 【免费下载链接】GameEngineFromScratch 配合我的知乎专栏写的项目 项目地址: https://gitcode.com/gh_mirrors/ga/GameEngineFromScratch GameEngineFromScratch输入管理系…...
Mi-Create:零基础也能设计小米手表个性表盘的终极可视化工具
Mi-Create:零基础也能设计小米手表个性表盘的终极可视化工具 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 你是否厌倦了小米手表官方表盘商店的单…...
从Stable Diffusion到DALL-E 3:深入聊聊Diffusion Model里‘前向过程’的设计哲学与工程权衡
从Stable Diffusion到DALL-E 3:扩散模型前向过程的设计哲学与工程智慧 当你在MidJourney中输入一段文字描述,几秒后就能得到一张精美的图片,这背后隐藏着一场精心设计的"破坏与重建"游戏。扩散模型(Diffusion Model&…...
Linux用户必备的三大翻译神器:CuteTranslation如何解决多语言工作难题
Linux用户必备的三大翻译神器:CuteTranslation如何解决多语言工作难题 【免费下载链接】CuteTranslation Linux屏幕取词翻译软件 项目地址: https://gitcode.com/gh_mirrors/cu/CuteTranslation 对于长期在Linux环境下工作的开发者、研究人员和学生来说&…...
ESP32 Arduino核心开发终极指南:构建专业级物联网控制系统
ESP32 Arduino核心开发终极指南:构建专业级物联网控制系统 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 还在为物联网项目开发中的硬件兼容性、开发环境复杂…...
