📄 default.js
字号:
String.prototype.right=function(len)
{
return this.substring(this.length-len);
}
String.prototype.trim=function()
{
return this.replace(/(\s*$)|(^\s*)/g, "");
}
//获得当前的时间 年-月-日
function getNow()
{
var now=new Date();
return now.getYear()+"-"+("0"+(now.getMonth()+1)).right(2)+"-"+("0"+now.getDate()).right(2);
}
//获得下一年的今天的日期
function getNextYearNow()
{
var now=new Date();
return (now.getYear()+1)+"-"+("0"+(now.getMonth()+1)).right(2)+"-"+("0"+now.getDate()).right(2);
}
function initBmdm(obj)
{
obj.options.add(new Option("北京市","110000"));
obj.options.add(new Option("天津市","120000"));
obj.options.add(new Option("河北省","130000"));
obj.options.add(new Option("山西省","140000"));
obj.options.add(new Option("内蒙古自治区","150000"));
obj.options.add(new Option("辽宁省","210000"));
obj.options.add(new Option("吉林省","220000"));
obj.options.add(new Option("黑龙江省","230000"));
obj.options.add(new Option("上海市 ","310000"));
obj.options.add(new Option("江苏省 ","320000"));
obj.options.add(new Option("浙江省","330000"));
obj.options.add(new Option("安徽省 ","340000"));
obj.options.add(new Option("福建省 ","350000"));
obj.options.add(new Option("江西省 ","360000"));
obj.options.add(new Option("山东省 ","370000"));
obj.options.add(new Option("河南省","410000"));
obj.options.add(new Option("湖北省 ","420000"));
obj.options.add(new Option("湖南省 ","430000"));
obj.options.add(new Option("广东省 ","440000"));
obj.options.add(new Option("广西壮族自治区","450000"));
obj.options.add(new Option("海南省","460000"));
obj.options.add(new Option("重庆市","500000"));
obj.options.add(new Option("四川省","510000"));
obj.options.add(new Option("贵州省","520000"));
obj.options.add(new Option("云南省","530000"));
obj.options.add(new Option("西藏自治区","540000"));
obj.options.add(new Option("陕西省","610000"));
obj.options.add(new Option("甘肃省","620000"));
obj.options.add(new Option("青海省","630000"));
obj.options.add(new Option("宁夏回族自治区","640000"));
obj.options.add(new Option("新疆维吾尔自治区","650000"));
obj.options.add(new Option("台湾省","710000"));
obj.options.add(new Option("香港特别行政区","810000"));
obj.options.add(new Option("国家级","000000"));
}
var cwin;
function showDialog(url)
{
cwin = window.open(url,'cwin2','fullscreen=0,toolbar=0,width=350,height=150,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0' );
cwin.moveTo(130,200);
cwin.focus();
}
////////////////////////////////////////////////////////////////////
function Page_Load()
{
form1.B1.onclick=function(){B1_Click();}
form1.B2.onclick=function(){B2_Click();}
form1.B3.onclick=function(){B3_Click();}
form1.bmdm.onchange=function(){bmdm_Change();}
form1.yxqq.value=getNow();
form1.yxqz.value=getNextYearNow();
initBmdm(form1.bmdm);
}
function bmdm_Change()
{
form1.yhmc.value=form1.bmdm.options[form1.bmdm.selectedIndex].text;
}
//开始写一个管理卡
function B1_Click()
{
Write();
}
//退出事件
function B2_Click()
{
closes.Click();
}
//设置数据库连接
function B3_Click()
{
showDialog("lib/dbset.htm");
}
window.onload=function(){Page_Load();}
window.onunload=function(){closeICReader();cwin.close();}
/////////////////////////////////////////////
//标识IC端口是否成功打开 true 表示已经成功打开 false 表示没有成功打开
var isPortOpen=false;
//标识读卡器上是否有卡
var isFindCard=false;
//没有成功获得卡类型则cardType=0 否则表示卡类型 8 或 51
var cardType=0;
//没有成功验证则记录的用户密码为空,否则记录成功验证的用户密码
var strPin="";
function init(strUserPin)
{
//如果端口还没有成功打开则打开
if(!isPortOpen)
//端口打开失败则返回
if(!openPort()) return false;
//调试端口是否成功打开
// alert("isPortOpen:"+isPortOpen);
//如果还没有发现IC卡则试图发现IC卡
if(!isFindCard)
//发现失败则返回
if(!findICCard()) return false;
//调试卡是否插好
//alert("isFindCard:"+isFindCard);
//如果还没有获得卡类型则试图获得卡类型
if(cardType==0)
//如果获得卡类型失败则返回
if(!findCardType()) return false;
//调试是否成功发现卡类型
//alert("cardType:"+cardType);
//如果还没有验证用户密码则验证用户密码
if(strPin=="")
//如果验证失败则返回
if(!verifyUser(strUserPin)) return false;
//调试是否成功验证
//alert("strPin"+strPin);
//IC卡初始化完成,可以读写信息了
return true;
}
function Write()
{
init(form1.mm.value);
var CardID=getCardID(cardType);
//卡型,密码,值,起地址,长度
//写地区编码
writecard(cardType, strPin,40,form1.bmdm.value, 8);
//写用户类型
writecard(cardType, strPin, 48,"0", 8);
str="";
//写用户帐号
writecard(cardType, strPin, 56,str, 56);
//写用户权限
writecard(cardType, strPin, 112,"222222222222", 24);
//写开始日期
writecard(cardType, strPin, 136, form1.yxqq.value.trim(), 16);
//写截止日期
writecard(cardType, strPin,152, form1.yxqz.value.trim(), 16);
//写用户名称
writecard(cardType, strPin,168 , form1.yhmc.value.trim(), 152);
//写文档长度
writecard(cardType, strPin, 360, "240", 8);
//写文档内容
for(i=0;i<240;i++) str+="2";
writecard(cardType, strPin, 368, str, 240);
closeICReader();
//开始更新数据库
rs=new ActiveXObject("Adodb.RecordSet");
sqls="update iccardxxb set yhmc='"+form1.yhmc.value.trim()+"',bmdm='"+form1.bmdm.value.trim()+"',yhlx='0',yhzh='',yhqx='222222222222',yxqq='"+form1.yxqq.value.trim()+"',yxqz='"+form1.yxqz.value.trim()+"',bz='',scbz=0 where ic='"+CardID+"'";
conn="driver={sql server};server="+form1.server.value.trim()+";uid="+form1.username.value.trim()+";pwd="+form1.password.value.trim()+";database="+form1.database.value.trim();
try{
rs.open(sqls,conn,1,1);
rs=null;
alert("写卡成功!");
}catch(e){alert("数据库连接失败!");}
}
//打开IC卡端口
function openPort()
{
//如果成功打开端口一则返回真,将端口是否已打开全局变量设为真
if(openreader(0)) {isPortOpen=true;return true;}
//如果成功打开端口二则返回真,将端口是否已打开全局变量设为真
if(openreader(1)) {isPortOpen=true;return true;}
//将端口是否已打开全局变量设为假
isPortOpen=false;
//返回假
return false;
}
//检测卡器上是否有卡
function findICCard()
{
//如果发现了IC卡则返回真,将端口是否发现IC卡全局变量设为真
if(findcard()) {isFindCard=true;return true}
//将端口是否发现IC卡全局变量设为假
isFindCard=false;
//返回假
return false;
}
//检测卡类型
function findCardType()
{
var tmpCardType;
tmpCardType=checkcard();
//如果IC卡类型为已知类型,将IC 卡类型全局变量设为该卡类型,并返回真
if(tmpCardType==8||tmpCardType==51){cardType=tmpCardType;return true;}
//将IC 卡类型全局变量设为0
cardType=0;
//返回假
return false;
}
//验证用户密码
function verifyUser(strUserPin)
{
//如果密码验证成功,则用户密码变成读取IC卡的strPin
if(verifypin(cardType, strUserPin)){strPin=strUserPin;return true;}
//否则将strPin设为空
strPin="";
return false;
}
////////////////////////////////////////////////////////////////////////////////////////////
//打开读卡器端口
function openreader(port)
{
if( DTFICCardv331.OpenReader(port))
//打开读卡器成功
return true;
//打开读卡器失败
return false;
}
//关闭卡
function closeICReader()
{
//如果已经打开则关闭,并且重置所有的全局变量否则什么也不做
if(isPortOpen)
{
isPortOpen=false;
isFindCard=false;
cardType=0;
strPin="";
closereader();
}
}
//关闭读卡器端口
function closereader()
{
if( DTFICCardv331.CloseReader())
//关闭读卡器成功
return true;
//关闭读卡器失败
return false;
}
//查看卡片是否已插入
function findcard()
{
if( DTFICCardv331.FindCard() )
return true;
return false;
}
//返回卡类型
function checkcard()
{
return DTFICCardv331.CheckCard();
}
//写卡 卡类型,pin 首地址,写入的字符串、写入的长度
function writecard(nType, pin, addr, swrite,write_len)
{
var hpin, hwrite;
hpin = DTFICCardv331.ASCIIToHex(pin);
hwrite = DTFICCardv331.ASCIIToHex(swrite);
//后来替换的方法WriteCard1
if(DTFICCardv331.WriteCard1(nType, hpin, addr, write_len, hwrite))
//写卡成功
return true;
//写卡失败
return false;
}
//读卡 卡类型,pin 首地址,长度
function readcard(nType, pin, addr, len)
{
var hpin, hread, sread;
hpin = DTFICCardv331.ASCIIToHex(pin);
hread = DTFICCardv331.ReadCard(nType, hpin, addr, len);
sread = DTFICCardv331.HexToASCII(hread);
return sread;
}
//安装密钥
function installkey(nType, pin, key)
{
var hpin, hkey;
hpin = DTFICCardv331.ASCIIToHex(pin);
hkey = DTFICCardv331.ASCIIToHex(key);
if( DTFICCardv331.InstallKey(nType, hpin, hkey))
//安装密钥成功
return true;
//安装密钥失败
return false;
}
//检验密钥
function verifypin(nType, pin)
{
var hpin;
hpin = DTFICCardv331.ASCIIToHex(pin);
if(DTFICCardv331.VerifyPin(nType, hpin))
//校验成功
return true;
//校验失败
return false;
}
//获得卡的唯一标识
function getCardID(nType)
{
return readcard2(nType, 0, 40);
}
//读卡的保留区域
function readcard2(nType, addr, len)
{
var hread, sread;
hread = DTFICCardv331.ReadCard2(nType, addr, len);
sread = DTFICCardv331.HexToASCII(hread);
return sread;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -