修改过页面
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

213 lines
6.5 KiB

<template>
<div>
<!-- <object
classid="clsid:05782014-9FF7-468C-BE96-8EDC73084202"
id="IcCardReader"
viewastext
width="0"
height="0"
></object> -->
<table
border="0"
style="border-collapse: collapse"
width="200"
height="100"
>
<tr>
<td width="160">
<textarea rows="2" cols="40" id="CardIDShower" name="S1"></textarea>
</td>
</tr>
<tr>
<td width="160">
<input
type="button"
value=" 读 卡 "
@click="readcard()"
/>
</td>
</tr>
</table>
</div>
</template>
<script>
var strls = "";
var errorno = "";
//控制字定义,控制字指定,控制字的含义请查看本公司网站提供的动态库说明
//javascript无法自定义常量, 你可以使用变量代替
var BLOCK0_EN = 0x01;//读第一块的(16个字节)
var BLOCK1_EN = 0x02;//读第二块的(16个字节)
var BLOCK2_EN = 0x04;//读第三块的(16个字节)
var NEEDSERIAL = 0x08;//仅读指定序列号的卡
var EXTERNKEY = 0x10;//用明码认证密码,产品开发完成后,建议把密码放到设备的只写区,然后用该区的密码后台认证,这样谁都不知道密码是多少,需要这方面支持请联系
var NEEDHALT = 0x20;//读/写完卡后立即休眠该卡,相当于这张卡不在感应区。要相重新操作该卡必要拿开卡再放上去
var myctrlword = 0;
var myareano = 0;
var authmode = 0;
var mypiccserial = "";
var mypicckey = "";
var piccdata0_2 = "";
var mypicckey_old = "";//旧密码
var mypicckey_new = "";//新密码
export default {
name: "index",
data() {
return {};
},
methods: {
readcard() {
//指定控制字
myctrlword = BLOCK0_EN + BLOCK1_EN + BLOCK2_EN + EXTERNKEY;
//指定区号
myareano = 8; //指定为第8区
//批定密码模式
authmode = 1; //大于0表示用A密码认证,推荐用A密码认证
//指定序列号,未知卡序列号时可指定为8个0
mypiccserial = "00000000";
//指定密码,以下密码为厂家出厂密码
mypicckey = "ffffffffffff";
var CardIDShower = document.getElementById('CardIDShower')
strls = window.IcCardReader.piccreadex(
myctrlword,
mypiccserial,
myareano,
authmode,
mypicckey
);
errorno = strls.substr(0, 4);
if (errorno == "ER00") {
this.beep();
}
switch (errorno) {
case "ER08":
alert("寻不到卡");
break;
case "ER09":
alert("寻不到卡");
break;
case "ER10":
alert("寻不到卡");
break;
case "ER11":
CardIDShower.value = "密码认证错误\r\n";
CardIDShower.value = CardIDShower.value + strls + "\r\n";
CardIDShower.value =
CardIDShower.value + "其中错误号为:" + errorno + "\r\n";
CardIDShower.value =
CardIDShower.value +
"卡十六进制序列号为:" +
strls.substr(5, 8) +
"\r\n";
alert("密码认证错误");
break;
case "ER12":
CardIDShower.value = "密码认证错误" + "\r\n";
CardIDShower.value = CardIDShower.value + strls + "\r\n";
CardIDShower.value =
CardIDShower.value + "其中错误号为:" + errorno + "\r\n";
CardIDShower.value =
CardIDShower.value +
"卡十六进制序列号为:" +
strls.substr(5, 8) +
"\r\n";
alert("密码认证错误");
break;
case "ER13":
CardIDShower.value = "读卡错误" + "\r\n";
CardIDShower.value = CardIDShower.value + strls + "\r\n";
CardIDShower.value =
CardIDShower.value + "其中错误号为:" + errorno + "\r\n";
CardIDShower.value =
CardIDShower.value +
"卡十六进制序列号为:" +
strls.substr(5, 8) +
"\r\n";
alert("读卡错误");
break;
case "ER14":
CardIDShower.value = "写卡错误" + "\r\n";
CardIDShower.value = CardIDShower.value + strls + "\r\n";
CardIDShower.value =
CardIDShower.value + "其中错误号为:" + errorno + "\r\n";
CardIDShower.value =
CardIDShower.value +
"卡十六进制序列号为:" +
strls.substr(5, 8) +
"\r\n";
alert("写卡错误");
break;
case "ER21":
alert("没找到动态库");
break;
case "ER22":
alert("动态库或驱动程序异常");
break;
case "ER23":
alert("读卡器未插上或动态库或驱动程序异常");
break;
case "ER24":
alert("操作超时,一般是动态库没有反应");
break;
case "ER25":
alert("发送字数不够");
break;
case "ER26":
alert("发送的CRC错");
break;
case "ER27":
alert("接收的字数不够");
break;
case "ER28":
alert("接收的CRC错");
break;
case "ER29":
alert("函数输入参数格式错误,请仔细查看");
break;
default:
//读卡成功,其中ER00表示完全成功,ER01表示完全没读到卡数据,ER02表示仅读该卡的第一块成功,,ER02表示仅读该卡的第一二块成功,这是刷卡太快原因
CardIDShower.value = "读卡成功" + "\r\n";
// CardIDShower.value = CardIDShower.value + strls + "\r\n";
// CardIDShower.value = CardIDShower.value + "其中错误号为:" + errorno + "\r\n";
CardIDShower.value =
CardIDShower.value +
"卡十六进制序列号为:" +
strls.substr(5, 8) +
"\r\n";
// CardIDShower.value = CardIDShower.value + "该区第一块十六进制数据为:" + strls.substr(14,32) + "\r\n";
// CardIDShower.value = CardIDShower.value + "该区第二块十六进制数据为:" + strls.substr(46,32) + "\r\n";
// CardIDShower.value = CardIDShower.value + "该区第三块十六进制数据为:" + strls.substr(78,32) + "\r\n";
break;
}
},
beep() {
IcCardReader.pcdbeep(100); //100表示响100毫秒
},
clears1() {
//alert("abc");
CardIDShower.value = "";
},
},
};
</script>
<style>
</style>