|
|
- <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>
|