前端Vue自定义验证码密码登录切换tabs选项卡标签栏标题栏 验证码登录模版 密码登录模版

news2024/12/27 13:38:40

前端Vue自定义验证码密码登录切换tabs选项卡标签栏标题栏 验证码登录模版 密码登录模版, 请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13221

效果图如下:

实现代码如下:

# cc-selectBox

#### 使用方法

```使用方法

<!-- select-arr:选择数组 nowindex:当前选择序列 @change:切换选择事件  -->

<cc-selectBox :select-arr="select" :nowindex="nowindex" @change="turntap"></cc-selectBox>

```

#### HTML代码实现部分

```html

<template>

    <view>

        <view class="page">

<!-- select-arr:选择数组 nowindex:当前选择序列 @change:切换选择事件  -->

<cc-selectBox :select-arr="select" :nowindex="nowindex" @change="turntap"></cc-selectBox>

            <view class="tip-box">

                <view class="left">

                    <view class="title">Hello, 尊敬的用户 </view>

                    <view class="subtext">登录注册解锁更多精彩内容</view>

                </view>

                <image lazyLoad class="tip-img" src="https://cdn.pixabay.com/photo/2014/02/17/10/20/statue-of-liberty-267948_1280.jpg"></image>

            </view>

            <view class="form-mes" v-if="nowindex != 1">

                <view class="input-item">

                    <view class="num">+86</view>

                    <input

                        @blur="lossstyle"

                        @focus="changestyle"

                        @input="bindpancode"

                        class="item"

                        data-inputNum="0"

                        maxlength="11"

                        placeholder="手机号(新号码将自动注册)"

                        placeholderClass="placeholder"

                        type="number"

                    />

                </view>

                <view class="input-item">

                    <input

                        @blur="lossstyle"

                        @focus="changestyle"

                        @input="pushcode"

                        class="item"

                        data-inputNum="1"

                        maxlength="6"

                        placeholder="请输入验证码"

                        placeholderClass="placeholder"

                        type="number"

                    />

                    <view @tap.stop.prevent="getshortmes" :class="'code-btn ' + (getcode ? 'active' : '') + ' ptp_exposure'" data-ptpid="0a55-1480-8c29-d6e1">

                        {{ getcodemes }}

                    </view>

                </view>

                <view @tap="bid" class="logoin submit ptp_exposure" data-ptpid="50c4-1348-ad62-db8f">登录</view>

                <view @tap="voiceCode" class="send_call ptp_exposure" data-ptpid="eaac-1adf-a790-feac" v-if="sendcall">

                    收不到验证码?试试

                    <text class="green">语音验证</text>

                </view>

            </view>

            <view class="form-mes" v-if="nowindex != 0">

                <view class="input-item">

                    <view class="num">+86</view>

                    <input

                        @blur="lossstyle"

                        @focus="changestyle"

                        @input="regloginaccount"

                        class="item"

                        data-inputNum="0"

                        maxlength="11"

                        placeholder="请输入手机号"

                        placeholderClass="placeholder"

                        type="number"

                    />

                </view>

                <view class="input-item">

                    <input

                        @blur="lossstyle"

                        @focus="changestyle"

                        @input="regloginpass"

                        class="item"

                        data-inputNum="2"

                        :password="isPassword"

                        placeholder="请输入密码"

                        placeholderClass="placeholder"

                        type="text"

                    />

                    <view @tap="changePassType" :class="'iconfont ' + (isPassword ? 'iconeye_off' : 'iconeye')" data-ptpid="8d48-14e8-85ae-6a5f"></view>

                </view>

                <view @tap="reglogin" class="logoin submit ptp_exposure" data-ptpid="2572-1abd-b620-ade5">登录</view>

                <view @tap="forgetpass" class="forget green ptp_exposure" data-ptpid="a54d-1179-8be7-3e5e">

                    <text>忘记密码?</text>

                </view>

            </view>

            <view class="iagree">

                登录注册代表您已同意《

                <text @tap="skipAgreePage" class="green ptp_exposure" data-ptpid="934b-1839-b547-2d42">App用户协议</text>

                》

            </view>

        </view>

        <view @tap="closeImgCode" class="toastbg ptp_exposure" data-ptpid="dad4-159d-ad73-a360" v-if="showimgcode"></view>

        <view class="imagecont" v-if="showimgcode">

            <view class="imagetitle">

                <input @input="getImgCode" class="imagevalue" maxlength="4" placeholder="请输入图片验证码" placeholderClass="placeholder" />

                <image lazyLoad @tap="changeImgCode" class="ptp_exposure" data-ptpid="75db-11fd-a7c2-3fdb" :src="imageCode" style="width: 160rpx; height: 64rpx"></image>

            </view>

            <view @tap="confirmCode" :class="'choosesure ' + (confirmactive ? 'active' : '') + ' ptp_exposure'" data-ptpid="35bd-1312-a0c2-9664">确定</view>

        </view>

    </view>

</template>

<script>

var app = getApp();

export default {

    components: {

    },

    data() {

        return {

            logs: [],

            nowindex: 0,

            regularLogin: false,

            select: ['验证码登录', '密码登录'],

            getcode: false,

            getcodemes: '获取验证码',

            sendcall: false,

            hidepass: false,

            callimg: false,

            phone: '',

            code: '',

            submit: {

                submit: false,

                text: '登录'

            },

            miniOpenId: '',

            redirect: '',

            showimgcode: false,

            imageCode: '',

            localcode: '',

            confirmactive: false,

            regmobile: '',

            regpassword: '',

            nowUrl: '/accountCenter/account/fast/login/verifyCode',

            frontPage: '',

            deviceIdCode: Math.random(),

            inputStyle: [

                {

                    iconactive: 'https://qiniu-image.qtshe.com/2017041020px-mobilegreen@3x.png',

                    icon: 'https://qiniu-image.qtshe.com/2017041020px-mobilegray@3x.png',

                    selected: false

                },

                {

                    iconactive: 'https://qiniu-image.qtshe.com/2017041020px-volidegreen@3x.png',

                    icon: 'https://qiniu-image.qtshe.com/2017041020px-volidegray@3x.png',

                    selected: false

                },

                {

                    iconactive: 'https://qiniu-image.qtshe.com/2017041020px-passgreen@3x.png',

                    icon: 'https://qiniu-image.qtshe.com/2017041020px-passgray@3x.png',

                    selected: false

                }

            ],

            nowOnFocus: 0,

            isPassword: true

        };

    },

    onLoad: function (e) {

this.redirect = e.redirect || '';

    },

    methods: {

        getImgCode: function (e) {},

        closeImgCode: function () {

this.showimgcode = false;

        },

        voiceCode: function () {},

        changestyle: function (e) {},

        lossstyle: function (e) {},

        confirmCode: function () {},

        getshortmes: function () {},

        bid: function () {},

// 切换登录方式

        turntap: function (e) {

this.nowindex = e.target.dataset.num;

},

        pushcode: function (e) {},

        bindpancode: function (e) {},

        forgetpass: function () {},

        hideorshow: function () {},

        regloginaccount: function (e) {},

        regloginpass: function (e) {},

        changeImgCode: function () {},

        skipAgreePage: function () {},

        reglogin: function () {},

        inviteFriend: function () {},

        changePassType: function () {}

    }

};

</script>

<style lang="scss" scoped>

@import "./login.scss";

</style>

```

#### 组件实现代码

```组件实现代码

<template>

<view class="logway">

<view :class="'act ' + (nowindex == index ? 'active' : '')" v-for="(item, index) in selectArr" :key="index">

<view @tap="turntap" class="item ptp_exposure" :data-index="index" :data-num="index"

data-ptpid="6f22-1fc6-9182-d53d">

{{ item }}

</view>

<view class="dot"></view>

</view>

</view>

</template>

<script>

export default {

data() {

return {

};

},

props: {

selectArr: {

type: Array,

default: []

},

// 当前选中

nowindex: {

type: Number,

default: 0

},

},

methods: {

turntap(e) {

this.$emit("change", e);

},

}

};

</script>

<style lang="scss" scoped>

@import "./index.scss";

</style>

```

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

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

相关文章

【计算机网络】可靠传输的实现机制

1、停止-等待协议SW 信道利用率 题目 小结 2.回退N帧协议GBN Go-Back-N 题目 小结

设计模式3:单例模式:JMM与volatile和synchronized的关系

本文目录 JMM简介Java 内部内存模型(The Internal Java Memory Model)硬件内存架构(Hardware Memory Architecture)弥合 Java 内存模型和硬件内存架构之间的差距(Bridging The Gap Between The Java Memory Model And The Hardware Memory Architecture)1.共享对象的可见性2.竞…

OpenStack(T版)——计算(Nova)服务介绍与安装

文章目录 OpenStack(T版)——计算(Nova)服务介绍与安装安装与配置(controller)准备(1)创建数据库(2)加载环境变量(3)创建认证服务凭据(4)创建Nova计算服务组件的API endpoint 安装和配置Nova计算服务组件(1)安装软件包(2)编辑/etc/nova/nova.conf 完成以下操作(3)同步数据库验证…

云服务器Linux防火墙云锁安装部署及使用 技术支持服务器安全运维

服务器必备安全防护及运维管理SAAS解决方案&#xff0c;支持windows/linux服务器跨平台实时、批量、远程安全管理&#xff0c;有效对抗服务器入侵和网络攻击。 服务器&#xff1a;Redhat/CentOS/Ubuntu/SUSE/中标麒麟 64位 Web中间件&#xff1a;Apache/Nginx/kangle/Tomcat/W…

【软考网络管理员】2023年软考网管初级常见知识考点(26)- HTML常见属性标签、表格、表单详解

涉及知识点 Html的概念&#xff0c;html常见标签&#xff0c;html常见属性&#xff0c;html表格&#xff0c;html表单&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码…

5-2图像处理经典案例:正弦噪声图像去噪

学习目标&#xff1a; 图像处理经典案例 去除噪声 1.简述 图像降噪的英文名称是Image Denoising&#xff0c; 图像处理中的专业术语。是指减少数字图像中噪声的过程&#xff0c;有时候又称为图像去噪。图像的噪声来源相对复杂&#xff0c;搞清楚图像噪声的成因对我们进行…

B+树

B树 B树是对B树的一种变形树&#xff0c;它与B树的差异在于: 非叶结点仅具有索引作用&#xff0c;也就是说&#xff0c;非叶子结点只存储key&#xff0c;不存储value 树的所有叶结点构成一个有序链表&#xff0c;可以按照key排序的次序遍历全部数据 B树存储数据 若参数M选…

使用影刀RPA拆分excel数据

首先&#xff0c;要使程序有一定的兼容性&#xff0c;即增加互动性&#xff0c;认为选择要拆分的文件和拆分的依据列&#xff0c;可以利用影刀中的‘打开选择对话框’和‘打开输入对话框’来实现&#xff0c;这样一来便不用考虑待拆分excel的路径问题获取1中选择的依据拆分列&a…

登录框界面之渗透测试思路总结

前言 大家都知道&#xff0c;渗透的过程中&#xff0c;遇见登录框是很常见的。下面就简单总结一下渗透中遇见登录页面的思路&#xff1a; 首先登录页面可能产生哪些漏洞呢&#xff1f; 1、弱密码与暴力破解 2、万能密码、SQL与XSS&#xff08;注入&#xff09; 3、登录时&…

渗透测试自动化报告脚本-----Nessus报告自动化解析--1-html解析

本专栏内容主要用于渗透测试工程师应对在工作中的自动化操作难题&#xff0c;高效摸鱼专用 解决问题 1、对Nessus导出的html报告进行自动化的提取操作&#xff0c;包括IP地址&#xff0c;漏洞个数&#xff0c;漏洞等级&#xff0c;漏洞描述&#xff0c;CVE编号等 2、由于Nes…

配置文件的优先级及maven打包和参数(port)的修改

1、配置文件的优先级 SpringBoot中支持五种配置格式:优先级&#xff1a;命令行参数(–xxxxxx) > java系统属性(-Dxxx xxx) > application.properties > application.yml > application.yaml 虽然springboot支持多种格式配置文件&#xff0c;但是在项目开发时&…

智能仓储货架的电子标签解决方案

近年来&#xff0c;电商和新零售行业的迅猛增长催生了仓储管理场景和运营模式的变革。企业不断寻求“低成本”和“更可靠”的解决方案&#xff0c;加快了仓储管理从粗放型向精细化转变的步伐。仓储管理的技术变革从机械化走向自动化&#xff0c;仓储数智化成为主流趋势。在这个…

chatgpt赋能python:Python语言冒泡排序-深入了解

Python语言冒泡排序 - 深入了解 冒泡排序是一种基本的排序算法&#xff0c;也是学习排序算法的入门算法之一。在Python中&#xff0c;我们可以很容易地实现冒泡排序。 冒泡排序的原理 冒泡排序的原理很简单&#xff0c;大概分为以下几个步骤&#xff1a; 比较相邻的元素&am…

Jnpf低代码开发平台

一、写在前面 低代码开发平台&#xff0c;一个号称能在几分钟的时间里开发出一套公司内部都可使用的应用系统开发工具。 很多人或许都隐隐听说过低代码&#xff0c;因为低代码不仅远名国外&#xff0c;国内的腾讯、阿里、华为、网易、百度等科技巨头也纷纷入局&#xff0c;足以…

蓝桥杯专题-试题版-【打印十字图】【剪格子】【错误票据】【翻硬币】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

【软考网络管理员】2023年软考网管初级常见知识考点(29)-进程管理与存储管理

涉及知识点 进程管理&#xff0c;进程状态&#xff0c;死锁问题&#xff0c;存储管理&#xff0c;页面置换算法&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&…

高速电路设计系列分享-熟悉JESD204B(中)

目录 概要 整体架构流程 技术名词解释 技术细节 1.数据链路层 小结 概要 提示&#xff1a;这里可以添加技术概要 随着高速ADC跨入GSPS范围&#xff0c;与FPGA(定制ASIC)进行数据传输的首选接口协JESD204B。为了捕捉频率范围更高的RF频谱&#xff0c;需要宽带RFADC。在其推动下…

elasticsearch 明明有index但是查不出来

最近用python去query elastricsearch的data&#xff0c;但是我再kibana明明看到有&#xff0c;但是就是查不出来 因为涉及公司隐私&#xff0c;就不截图直接举例子了&#xff0c;我在 discover里面看到的是某条数据的index是 xxx-sss-a-b&#xff0c;但是我写query是xxx-sss-a-…

Spring Boot中的@EnableAutoConfiguration注解

Spring Boot中的EnableAutoConfiguration注解 介绍 Spring Boot是一个非常流行的Java框架&#xff0c;它可以快速创建基于Spring的应用程序。Spring Boot提供了许多自动配置功能&#xff0c;使得开发者可以非常容易地创建一个可运行的应用程序。其中&#xff0c;EnableAutoCo…

macOS Sonoma 14beta 2 With OpenCore 0.9.3 and winPE双引导黑苹果镜像

镜像特点 完全由黑果魏叔官方制作&#xff0c;针对各种机型进行默认配置&#xff0c;让黑苹果安装不再困难。系统镜像设置为双引导分区&#xff0c;全面去除clover引导分区&#xff08;如有需要&#xff0c;可以自行直接替换opencore分区文件为clover引导文件&#xff09;备注…