在vue项目中,使用接口返回的数字生成验证码

背景:在项目中,我们经常会遇到使用验证码的场景,有时候,我们会使用js的插件解决这个问题,有时候,会调用后台接口,根据后台返回的4个数字生成验证码。本文,我们将介绍后面一种方法。

一、html部分

<div class="policy-wire">
    <div class="policy-line flex_bt">
        <div class="flex_st yzmLabel">
            <label class="yzmLabel">验证码</label>
            <input placeholder="请输入验证码" v-model.number="policyBox.captcha" type="number"/>
        </div>
        <img :src="codeImg" class="img-code" @click="updateCode" title="点击换一张"/>
    </div>
    <span v-show="InfoErrorMsg.captcha.flag" class="errorMsg flex_st">
        <img src="@/assets/images/warning.png" alt/>
        {{errorArr[2]}}
    </span>
</div>

二、js部分

<script>
/*eslint-disable*/
const {baseURL} = require("../js/interface");
export default{
    created(){
        //渲染验证码
        this.updateCode();
    },
    methods:{
        updateCode(){
            //生成十位随机数
            this.Num = "";
            for(var i = 0;i < 10;i++){
                this.Num += Math.floor(Math.random() * 10);
            }
            this.codeImg = baseURL + "captcha/formula-captcha?token=" + this.Num;
        },
        //查询检索
        inquiry(){
            this.showResult = false;
            this.errorArr = [];
            var resy = this.checkCell();
            if(resy == false){
                this.GLOBAL.showToast("请填写相关检索信息!");
                return;
            }
            var dt = {};
            this.GLOBAL.post(
                "captcha/validate/formula-captcha?result=" + 
                   this.policyBox.captcha + this.Num,dt,(res,sta) =>{
                        if(sta == 1){
                            this.InfoErrorMsg.captcha.flag = false;
                            this.inquiryResult();
                        }else if(sta == 0){
                            this.errorArr[2] = "验证码错误!";
                            this.InfoErrorMsg.captcha.flag = true;
                            this.updateCode(); //再次渲染验证码图片
                            return;
                        }
                    }
            );
        },
        
    },
    data(){
        policyBox:{
            captcha:""
        },
        InfoErrorMsg: {
            captcha:{flag:false}
        },
        codeImg:"",//验证码
        showResult: false,
        Num:"",
        errorArr:[],
    }
};
</script>

三、css部分

.policy-wire{
    border-top: 1px solid #f3f3f3;
}
.policy-line label {
    font-size; 14px;
    color: #333;
}
.policy-line input {
    padding-left: 15px;
    font-size: 14px;
    color: #999;
}
.img-code {
    width: 85px;
}

相关图片如下所示:

参考博客:Vue纯数字验证码  https://blog.csdn.net/weixin_41996632/article/details/86510542

                  vue项目经验:图形验证码接口get请求处理  https://blog.csdn.net/weixin_30785593/article/details/94860568

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 项目可以使用 Mock.js 来生成假数据。Mock.js 是一个用于生成随机数据的 JavaScript 库,可以模拟出各种数据类型,如数字、字符串、布尔、数组、对象等。它还支持自定义规则和插件扩展,非常方便实用。 以下是一个使用 Mock.js 生成假数据的示例: 1. 安装 Mock.js 在命令行执行以下命令进行安装: ``` npm install mockjs --save-dev ``` 2. 创建 mock 数据 在项目根目录下创建一个 `mock` 文件夹,在该文件夹创建一个 `data.js` 文件,编写如下代码: ```javascript import Mock from 'mockjs' // 模拟一个假的接口返回数据 Mock.mock('/api/user', 'get', { 'code': 200, 'message': 'ok', 'data': { 'id': '@id', 'name': '@cname', 'age|18-60': 1, 'email': '@email', 'phone': /^1[3456789]\d{9}$/ } }) ``` 在上述代码,我们使用了 Mock.js 提供的 `mock()` 方法来模拟一个假的接口返回数据。其参数一为接口地址,参数二为请求方式,参数三为返回数据,是一个 JSON 对象,包含了接口返回的所有数据字段。 在返回数据,我们使用了 Mock.js 提供的语法规则来生成随机数据,例如 `@id` 会生成一个随机的 ID,`@cname` 会生成一个随机的文姓名,`'age|18-60': 1` 会生成一个介于 18 和 60 之间的随机整数等等。 3. 引入 Mock.js 在项目入口文件(一般是 `main.js` 文件)引入 Mock.js: ```javascript import Mock from 'mockjs' import './mock/data.js' // 引入 mock 数据 ``` 以上就是在 Vue 项目使用 Mock.js 生成假数据的基本步骤。需要注意的是,使用 Mock.js 生成的假数据只会在开发环境生效,在生产环境不会生效。因此,建议在开发时使用假数据进行接口测试,而在上线前记得删除 Mock.js 相关代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值