添加身份证读取窗口

article/2025/9/27 6:42:51

实现功能:点击读取身份证会弹出身份证识别窗口,读取到数据后,回传用户选择是否替换原先数据。

效果演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.读取身份证的弹窗

src\components\idCard.vue

<template><el-dialogtitle="读取身份证信息":close-on-click-modal="false":visible.sync="visible"class="cms_formPart"append-to-bodyv-loading="loading"><el-form:model="dataForm":rules="dataRule"ref="dataForm"@keyup.enter.native="dataFormSubmit()"label-width="120px"><div class="tablePart"><el-form-item label="身份证持有人:" prop="name"><el-input v-model="dataForm.name" readonly placeholder="身份证持有人" /></el-form-item><el-form-item label="性别:" prop="sex"><el-radio-group v-model="dataForm.sex"><el-radio :label="1"></el-radio><el-radio :label="2"></el-radio></el-radio-group></el-form-item><el-form-item label="身份证号码:" prop="code"><el-input v-model="dataForm.code" readonly placeholder="身份证号码" /></el-form-item><el-form-item label="出生日期:" prop="birthday"><el-input v-model="dataForm.birthday" readonly placeholder="出生日期" /></el-form-item><el-form-item label="辖区派出所:" prop="department"><el-input v-model="dataForm.department" readonly placeholder="辖区派出所" /></el-form-item><el-form-item label="民族:" prop="nation"><el-input v-model="dataForm.nation" readonly placeholder="民族" /></el-form-item><el-form-item label="户籍地址:" prop="address" class="fullList"><el-inputtype="textarea"rows="4"v-model="dataForm.address"placeholder="户籍地址"readonlyresize="none"/></el-form-item></div></el-form><span slot="footer" class="dialog-footer"><el-button @click="visible = false">取消</el-button><el-button type="primary" @click="dataFormSubmit()">确定</el-button><el-button @click="getDeathReadIDCard" type="info">读取身份证信息</el-button></span></el-dialog>
</template><script>
import { dialogMixin, IdCardMixin } from "@/mixins";
export default {mixins: [dialogMixin, IdCardMixin],data() {return {dataForm: {additional_address: "", // 地址(暂无数据)age:"",address: "",  // 户籍地址birthday: "", // 出生年月日code: "", // 身份证号department: "", // 辖区管辖派出所end_date: "", // 身份证有效结束日期name: "", // 用户名nation: "", // 民族sex: "",  // 性别start_date: "", // 身份证有效开始日期type: "", // 证件类型},dataRule: {name: [{ required: true, message: "身份证持有人不能为空", trigger: "blur" },],code: [{ required: true, message: "身份证号码不能为空", trigger: "blur" }],},};},methods: {init() {this.$init({defaultMethod: () => {},});},dataFormSubmit() {this.$refs["dataForm"].validate(valid => {if (valid) {this.$message({message: "操作成功",type: "success",duration: 1500,onClose: () => {this.visible = false;this.$emit("success", this.dataForm);},});}});},//读身份证getDeathReadIDCard() {this.$readIdCard({after: data => {//this.dataForm = {...data.data};const { name, sex, nation, address, birthday, code, type, department } = data.data;this.dataForm.department = department;this.dataForm.code = code;this.dataForm.name = name;this.dataForm.sex = sex === "男" ? 1 : 2;this.dataForm.address = address;this.dataForm.type = type;// this.dataForm.nationId = this.nationList.filter(//     item => item.name === `${nation}族`,// )[0].id;//this.dataForm.household = address;// this.handleHouseholdChange()this.dataForm.nation = nation;if(type === "居民身份证") this.dataForm.type = 1;const year = birthday.slice(0, 4);const month = birthday.slice(4, 6);const day = birthday.slice(6, 8);this.dataForm.birthday = year + "-" + month + "-" + day;this.dataForm.idcard = code;this.dataForm.age = new Date().getFullYear() - year;},});},},
};
</script>

2.其他页面引入身份证组件

import IdCard from "@/components/idCard";

放入容器中

  components: {IdCard},

3.组件 和显示变量

  data () {return {idcardVisible: false, //显示变量
    <!-- 身份证读取器 要放在 template里面--><IdCard v-if="idcardVisible" ref="idcard" @success="reForm" /></el-dialog>
</template>

成功时调用reForm方法

 // 身份证弹窗识别reForm(data) {if (data) {this.$confirm('是否替换当前人员身份证信息, 是否继续?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {this.dataForm.name = data.name;this.dataForm.idcard = data.code;this.dataForm.sex = data.sex;this.dataForm.age = data.age;this.dataForm.address = data.address;this.dataForm.otherAddress = data.address,this.dataForm.idcardTypeId = data.type}).catch(() => {this.$message({type: 'info',message: '已取消替换'});});}},

读取身份证的按钮

<el-button type="primary" @click="$dialog('idcard')">读取身份证</el-button>

如果没有dialog方法的话需要引入

import { dialogMixin}  from "@/mixins";
$dialog(dialog, ...params) {this[`${dialog}Visible`] = true;this.$nextTick(() => {this.$refs[dialog].init(...params);});},

或者

export const dialogMixin = {data() {return {visible: false,loading: false,dataForm: {},};},methods: {_submit({ url, data, params, method, before, after }) {this.loading = true;before && before();this.$http({url: this.$http.adornUrl(url),method,data: this.$http.adornData(data),params: this.$http.adornParams(params),}).then(({ data }) => {if (data && data.code === 0) {after && after(data);this.$success();this.$emit("success");this.visible = false;} else {this.$error(data.msg);}}).finally(() => (this.loading = false));},$submit({url,data = this.dataForm,params,method = "post",validate = true,before,after,}) {if (validate) {this.$refs.dataForm.validate(valid => {if (valid) {this._submit({ url, data, params, method, before, after });}});} else {this._submit({ url, data, params, method, before, after });}},_reset({ resetForm = this.dataForm, after }) {Object.keys(resetForm).forEach(key => {if(getType(resetForm[key]) === 'Array') resetForm[key] = []else resetForm[key] = null;});after && after(resetForm);},$init({url,params,method = "get",reset = true,before,after,defaultMethod,resetMethod = () => {},}) {this.visible = true;if (reset) {this._reset({ after: resetMethod });this.$nextTick(() => {this.$refs.dataForm.clearValidate();});}before && before();if (url) {this.loading = true;this.$http({url: this.$http.adornUrl(url),method,params: this.$http.adornParams(params),}).then(({ data }) => {if (data && data.code === 0) {after && after(data);this.loading = false;}});} else {defaultMethod && defaultMethod();}},},
};

http://chatgpt.dhexx.cn/article/RtsnLYes.shtml

相关文章

基于华视身份证读卡器读取身份证信息的Android demo

项目概述 本Demo需要华视的身份证读卡器&#xff0c;连接Android机器设备&#xff0c;当身份证读卡器读取到身份证信息后&#xff0c;立马展示出身份证信息数据。得到身份证的姓名、照片、出生年月等数据。 项目概述 本Demo需要华视的身份证读卡器&#xff0c;连接Android机…

【Python 身份证JSON数据读取】——身份证前六位地区码对照表文件(最全版-JSON文件)

点个赞留个关注吧&#xff01;&#xff01; 1、生成身份证前六位地区码对照表JSON文件 2、python 读取JSON文件 提取码【1234】 json文件下载 废话不多说&#xff0c;先上效果图 一、生成身份证json数据文件 先去百度搜索地区身份证号码前6位查询 ,然后进入网站控制台界面&…

VUE实现华视身份证阅读器读取身份证信息(本文分两种情况,第一中是点击按钮读取信息,一种是自动读取信息)

本文是用了vueelement来实现华视身份证读卡器读取身份信息的&#xff0c;当然在开发之前要做好前提准备&#xff0c;就是厂家提供对应设备的api和安装对应的驱动。本文通过两种方法来实现读取信息&#xff0c;第一种是点击按钮读取信息&#xff0c;第二种是卡片放上去会自动读取…

身份证读取设备开发解决方案:2、Android下通过usb转串口读取身份证信息

身份证读取设备开发解决方案&#xff1a;2、Android下通过usb转串口读取身份证信息 文章目录 身份证读取设备开发解决方案&#xff1a;2、Android下通过usb转串口读取身份证信息1. 前言2. 准备3. android下读取身份证信息的demo3.1 部分源码3.2 碎片代码3.3 结果展示3.4 注意点…

自动化神器!Python 批量读取身份证信息写入 Excel

今天分享一个实用技能&#xff0c;利用 Python 批量读取身份证信息写入 Excel。 读取 以图片形式的身份证为例&#xff0c;信息读取我们使用百度文字识别OCR来实现&#xff0c;百度接口提供了免费额度&#xff0c;日常使用基本差不多够了&#xff0c;下面来具体看一下如何使用…

浏览器使用华视电子设备读取身份证信息

项目中用到了使用华视电子CVR-100U、CVR-100D设备读取身份证的设备在浏览器上读取身份证信息&#xff0c;在浏览器使用时&#xff0c;需要安装浏览器的运行的插件&#xff0c;否则设备不好用。 sdk下载方式在文章最后 此控件支持IE、360浏览器、360极速浏览器等浏览器 暂不支持…

身份证读取设备开发解决方案:3、单片机读取身份证信息的demo

身份证读取设备开发解决方案&#xff1a;3、单片机读取身份证信息的demo 文章目录 身份证读取设备开发解决方案&#xff1a;3、单片机读取身份证信息的demo一、前言二、部分代码及结果展示1. 准备2. 部分代码3. 结果展示 三、常见错误错误1错误2 四、注意事项1. 确认串口线焊接…

身份证阅读器读卡器React网页方法实现身份证的读取

支持产品型号东信EST-100GS谷歌版本身份证读卡器USB免驱接口&#xff0c;支持谷歌火狐360 IE 遨游 搜狗 等等多种web浏览器使用。 官方网址&#xff1a;www.eastcoms.com 以下为React源码示例&#xff1a; import React, {PureComponent} from react; import "./agreemen…

身份证读取

在找读取身份证动态库&#xff08;dll&#xff09; 文件时&#xff0c;发现这么一篇好文章&#xff0c;有兴趣学习一下&#xff01; ---------------- 这份代码&#xff0c;主要是根据api文档来写的&#xff0c;文档上提供了各个方法的使用说明&#xff0c;并且有一个示例代码。…

身份证读取设备开发解决方案:1、Windows下开发Qt程序demo读取身份证信息

身份证读取设备开发解决方案&#xff1a;1、Windows下开发Qt程序demo读取身份证信息 文章目录 身份证读取设备开发解决方案&#xff1a;1、Windows下开发Qt程序demo读取身份证信息1. 前言2. 身份证读取模块3. Qt5开发简单上位机读取身份证信息1. 注意的点2. 部分源码3. 结果展示…

最新web/java/jsp实现发送手机短信验证码和邮箱验证码的注册登录功能(详细)

最新web/java/jsp实现发送手机短信验证码和邮箱验证码的注册登录功能&#xff08;详细&#xff09; 最近几天有人需要帮忙做一个关于发送验证码的功能&#xff0c;之前没有做过&#xff0c;于是我鼓捣一阵子&#xff0c;记录一下关于web项目中注册登录常用的手机验证码和邮箱验…

uniapp中注册手机号短信验证码

一、效果图 二、输入手机号页面 <template><view><view classlogin-tel><view classtel-main><view classlogin-from><view classlogin-user><text classuser-text>手机号</text><input type"number" focustrue…

阿里云手机验证码注册(可以使用阿里云提供的测试模板,不用个人申请)

目录 打开阿里云&#xff1a;&#xff08;绑定手机号码&#xff09;&#xff0c;不用申请模板和签名手机验证码注册流程&#xff1a;实现流程创建springboot工程&#xff0c;添加依赖编写applicatioin配置文件编写controller&#xff0c;根据手机号发送短信编写service&#xf…

抖音实战~手机号验证码一键注册登录流程(限制手机终端登录)

文章目录 一、手机号验证码二、前端2.1. 点击登陆流程2.2. 点击登录源码 三、后端登录3.1. 登录流程图3.2. 流程简述3.3. 手机号验证码登录流程 一、手机号验证码 二、前端 2.1. 点击登陆流程 1.先校验手机号是否合法&#xff1f;不合法&#xff0c;则提示“请输入正确的手机…

会话——验证码注册与记住密码登录

文章目录 1、需求分析2、用户登录功能2.1、流程分析2.2、代码实现2.3、结果演示 3、登录记住密码功能3.1、流程分析3.2、代码实现3.3、结果演示 4、用户注册功能4.1、流程分析4.2、代码实现4.3、结果演示 5、注册验证码功能5.1、流程分析5.2、代码实现5.3、结果演示 1、需求分析…

关于烧写ESP8285核心板的相关事项

首先需要一个CH340的usb 转ttl 板子 然后连接到8285 脚管对应 TTL ---- 8285 VCC----VCC RXD----TX0 TXD----RX0 GND----GND 在通电之前先要把8285的GND 和io 0 连在ttl 板子的 GND上 烧写软件要设置正确否则无法启动

esp32 esp8285 wf6000OTA升级小记

近期做了3个IOT芯片的OTA升级&#xff0c;记录下&#xff1a; 最开始做完的是ESP32,升级流程也简单&#xff0c;初始烧录到固定区&#xff0c;然后OTA升级就会在user1,user2两个区内来回升&#xff0c;升级的文件是同一个&#xff08;即同一个文件&#xff0c;先升级就是user1…

Ubuntu18.04 上 ESP8285 的 esp-at release_v2.2.0.0 编译环境搭建

1 环境搭建前提 1.1 安装编译 ESP-IDF 需要的软件包&#xff1a; sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util1.2 安装 Python 3.8 sudo apt-get install python3.8-…

探索ESP8285(3)通过EMQX服务器点亮一个LED灯

CCC_122&#xff1a;博客只用于学习交流&#xff0c;不涉及任何商业用途&#xff0c;如果有错误之处&#xff0c;欢迎指正。 在上一个博客的基础上 探索ESP8285&#xff08;2&#xff09;搭建Windows版MQTT服务器 我们来通过EMQX服务器点亮ESP8285模块上的LED灯。 首先查得E…

乐鑫esp8266学习rtos3.0笔记第10篇:内置仅1M的Esp8285,如何攻破最棘手的OTA问题,大大节省资源成本开发产品;

本系列博客学习由非官方人员 半颗心脏 潜心所力所写&#xff0c;仅仅做个人技术交流分享&#xff0c;不做任何商业用途。如有不对之处&#xff0c;请留言&#xff0c;本人及时更改。 1、 Esp8266之 搭建开发环境&#xff0c;开始一个“hellow world”串口打印。 2、 Esp8266之…