身份证阅读器API模式 VUE Dorado7

VUE 新框架

javascript 复制代码
// 身份证扫描
readIdCard(type) {
  // 1.连接
  axios.get('http://localhost:19196/openDevice').then(res => {
    if (res.data.resultFlag === 0) {
      // 2.读卡
      axios.get('http://localhost:19196/readCard').then((res) => {
        if (res.data.resultFlag === 0) {
          // this.$message.success('读卡成功')
          // 信息处理
          this.form.name = res.data.partyName
          this.form.idCard = res.data.certNumber
          this.form.nationality = res.data.nation
          this.form.birthday = res.data.bornDay
          this.form.sex = res.data.gender === '男' ? 1 : res.data.gender === '女' ? 2 : 0
          this.form.expDate = res.data.expDate
          this.form.residence = res.data.certOrg
          this.form.addr = res.data.certAddress
          this.form.photo = 'data:image/jpeg;base64,' + res.data.identityPic

          // 签到打卡
          if (type === 'in') {
            this.loading = true
            trainClassApi.signIn({ idCard: this.form.idCard }).then(res => {
              this.loading = false
              if (res.code !== 200) {
                this.$message.error(res.msg)
                return
              }
              this.$message.success(res.msg)
              this.getByPage()
            }).catch(() => {
              this.loading = false
            })
          } else if (type === 'off') { // 签退打卡
            this.loading = true
            trainClassApi.signOff({ idCard: this.form.idCard }).then(res => {
              this.loading = false
              if (res.code !== 200) {
                this.$message.error(res.msg)
                return
              }
              this.$message.success(res.msg)
              this.getByPage()
            }).catch(() => {
              this.loading = false
            })
          }

          // 3.断开
          axios.get('http://localhost:19196/CloseDevice').then(res => {
            /* if (res.data.resultFlag !== 0) {
              this.$alert('断开失败', '提示', { type: 'error' })
            } */
          })
        } else {
          this.$alert('读卡失败', '提示', { type: 'error' })
        }
      })
    } else {
      this.$alert('连接失败', '提示', { type: 'error' })
    }
  })
},

Dorado7 新版身份证阅读器API模式

javascript 复制代码
/**
 * 身份证阅读器(API模式)【注意:需使用https模式才行 否者会被跨域拦截】
 * like12 add,20240913
 */
// @Bind #idCardApiBtn.onClick
!function(self, employeeForm, employeeDataSet){
	// 1.连接
	var xhr = new XMLHttpRequest();
	xhr.open('GET', 'http://127.0.0.1:19196/OpenDevice', true);
	// xhr.withCredentials = true; // 如果需要的话
	xhr.onreadystatechange = function() {
	    if (xhr.readyState === 4 && xhr.status === 200) {
	    	var resData = JSON.parse(xhr.responseText);
	        // console.log(resData);
	        if(resData.resultFlag == 0){
	        	// 2.读卡
	        	xhr.open('GET', 'http://127.0.0.1:19196/readCard', true);
	        	xhr.onreadystatechange = function() {
	        	    if (xhr.readyState === 4 && xhr.status === 200) {
	        	    	var resData = JSON.parse(xhr.responseText);
	        	        // console.log(resData);
	        	        if(resData.resultFlag == 0){
	        	        	// 信息处理
	        	            var name = resData.partyName;
	        	            var idCard = resData.certNumber;
	        	            var nationality = resData.nation;
	        	            var birthday = resData.bornDay;
	        	            var sex = resData.gender === '男' ? 1 : resData.gender === '女' ? 0 : 2; // 本系统为1男0女2未知
	        	            /*var expDate = resData.expDate;
	        	            var residence = resData.certOrg;*/
	        	            var addr = resData.certAddress;
	        	            var photo = resData.identityPic;
	        	            // var photo = 'data:image/jpeg;base64,' + resData.identityPic;
	        	            /*console.log(name);
	        	            console.log(idCard);
	        	            console.log(nationality);
	        	            console.log(birthday);
	        	            console.log(sex);
	        	            console.log(expDate);
	        	            console.log(residence);
	        	            console.log(addr);
	        	            // console.log(photo);*/
	        	            
	        	            // 出生日期格式转换
	        	    		var birthdayStr = birthday.substr(0, 4) + '-' + birthday.substr(4, 2) + '-' + birthday.substr(6, 2);

	        	    		// 赋值
	        	    		employeeDataSet.getData("#").set('employeeName', name);
	        	    		employeeDataSet.getData("#").set('employeeSex', sex);
	        	    		employeeDataSet.getData("#").set('idCard', idCard);
	        	    		employeeDataSet.getData("#").set('employeeBirthday', birthdayStr);
	        	    		employeeDataSet.getData("#").set('nationality', nationality);
	        	    		employeeDataSet.getData("#").set('registeredResidence', addr);
	        	    		
	        	    		// 保存图片
	        	    		var saveAction = view.get("#saveIdCardPhotoAction");
	        	    		saveAction.set("parameter", {
	        	    			"photo": photo,
	        	    			"idCard": idCard
	        	    		});
	        	    		saveAction.execute(function(returnVal){
	        	    			if(returnVal.indexOf(".jpg") != -1){
	        	    				// 保存图片地址
	        	    				employeeDataSet.getData("#").set('employeePhoto', returnVal);
	        	    				employeeForm.refreshData();
	        	    				// 显示照片
	        	    				view.set('#photoContainer.content', getImage(returnVal));
	        	    			}
	        	    		});
	        	        	
	        	        	// 3.断开
	        	        	xhr.open('GET', 'http://127.0.0.1:19196/CloseDevice', true);
	        	        	xhr.onreadystatechange = function() {};
	        	        	xhr.send();
	        	        }
	        	    }
	        	};
	        	xhr.send();
	        }
	    }
	};
	xhr.send();
};
相关推荐
F2E_Zhangmo4 分钟前
基于cornerstone3D的dicom影像浏览器 第二章 加载本地文件夹中的dicom文件并归档
前端·javascript·css
念念不忘 必有回响10 分钟前
js设计模式-装饰器模式
javascript·设计模式·装饰器模式
不会吃萝卜的兔子18 分钟前
go webrtc - 1 go基本概念
开发语言·golang·webrtc
weixin_5841214325 分钟前
vue3+ts导出PDF
javascript·vue.js·pdf
要做朋鱼燕40 分钟前
【C++】 priority_queue 容器模拟实现解析
开发语言·c++·笔记·职场和发展
jiaway1 小时前
【C语言】第四课 指针与内存管理
c语言·开发语言·算法
励志不掉头发的内向程序员1 小时前
C++进阶——继承 (1)
开发语言·c++·学习
给月亮点灯|1 小时前
Vue基础知识-脚手架开发-使用Axios发送异步请求+代理服务器解决前后端分离项目的跨域问题
前端·javascript·vue.js
叫我阿柒啊1 小时前
从Java全栈到前端框架:一次真实的面试对话与技术解析
java·javascript·typescript·vue·springboot·react·前端开发
@CLoudbays_Martin112 小时前
为什么动态视频业务内容不可以被CDN静态缓存?
java·运维·服务器·javascript·网络·python·php