168 lines
4.7 KiB
JavaScript
168 lines
4.7 KiB
JavaScript
layui.define('common', function (exports) {
|
||
var common = layui.common;
|
||
|
||
var Ry;
|
||
var handle;
|
||
var UKeyLib = {};
|
||
var CurrentLib = UKeyLib;
|
||
var UkeyPid = '411C20E1';
|
||
//获取guid
|
||
CurrentLib.getJSGuid = function () {
|
||
function S4() {
|
||
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
|
||
}
|
||
|
||
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
|
||
}
|
||
|
||
CurrentLib.initUkey = function () {
|
||
if (common.getBrowserType() != 'IE') {
|
||
top.dialog.msg('该功能仅支持IE11浏览器');
|
||
return;
|
||
}
|
||
if (common.getIEBrowserVersion() != '11') {
|
||
top.dialog.msg('该功能仅支持IE11浏览器');
|
||
return;
|
||
}
|
||
var ret;
|
||
Ry = document.getElementById("uKey");
|
||
Ry.pid = UkeyPid;
|
||
ret = Ry.Don_FindToken();
|
||
if (ret == 0) {
|
||
if (Ry.index != -1) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
CurrentLib.Open = function () {
|
||
if (CurrentLib.initUkey()) {
|
||
ret = Ry.Don_OpenToken();
|
||
if (ret == 0) {
|
||
handle = Ry.hHandle;
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
CurrentLib.WriteUKeyData = function (data) {
|
||
if (CurrentLib.Open()) {
|
||
var ret;
|
||
Ry.DataLen = 120;
|
||
Ry.Offset = 0;
|
||
Ry.InData = CurrentLib.GetString(data);
|
||
ret = Ry.Don_WriteData();
|
||
if (ret == 0) {
|
||
Ry.Don_CloseToken();
|
||
return true;
|
||
}
|
||
}
|
||
Ry.Don_CloseToken();
|
||
return false;
|
||
}
|
||
|
||
CurrentLib.ReadUKeyData = function () {
|
||
var reValue = new Object();
|
||
if (CurrentLib.Open()) {
|
||
var ret;
|
||
Ry.DataLen = 120;
|
||
Ry.Offset = 0;
|
||
Ry.InData = 0;//清空Data
|
||
ret = Ry.Don_ReadData();
|
||
reValue.data = Ry.OutData;
|
||
//获取真实数据
|
||
var tag = "0000";
|
||
reValue.data = reValue.data.substring(0, reValue.data.indexOf(tag));
|
||
reValue.success = true;
|
||
reValue.hid = Ry.hid;
|
||
} else {
|
||
reValue.success = false;
|
||
}
|
||
Ry.Don_CloseToken();
|
||
return reValue;
|
||
}
|
||
|
||
CurrentLib.GetString = function (str) {
|
||
var l = str.length;
|
||
var blen = 0;
|
||
for (i = 0; i < l; i++) {
|
||
if ((str.charCodeAt(i) & 0xff00) != 0) {
|
||
blen++;
|
||
}
|
||
blen++;
|
||
}
|
||
var len = 120;
|
||
if (blen < len) {
|
||
for (j = 0; j < len - blen; j++) {
|
||
str += "0";
|
||
}
|
||
}
|
||
return str;
|
||
}
|
||
|
||
CurrentLib.ParseJson = function (jsonString) {
|
||
/// <summary>
|
||
/// 将Json字符串转为对象
|
||
/// </summary>
|
||
/// <param name="value">待转化的字符串</param>
|
||
jsonString = jsonString.replace(/\n/ig, "");
|
||
jsonString = jsonString.replace(/\r/ig, "");
|
||
try {
|
||
var c = eval("(" + jsonString + ")");
|
||
} catch (e) {
|
||
alert("非严格的json字符串:" + jsonString);
|
||
}
|
||
return eval("(" + jsonString + ")");
|
||
}
|
||
|
||
//将JSON对象转化为字符串类型
|
||
CurrentLib.JsonToString = function (o) {
|
||
var arr = [];
|
||
var fmt = function (s) {
|
||
if (typeof s == 'object' && s != null) return json2str(s);
|
||
return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
|
||
}
|
||
for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
|
||
return '{' + arr.join(',') + '}';
|
||
}
|
||
|
||
//获取Hid
|
||
CurrentLib.GetHid = function () {
|
||
if (common.getBrowserType() != 'IE') {
|
||
top.dialog.msg('该功能仅支持IE11浏览器');
|
||
return null;
|
||
}
|
||
if (common.getIEBrowserVersion() != '11') {
|
||
top.dialog.msg('该功能仅支持IE11浏览器');
|
||
return null;
|
||
}
|
||
var Ry;
|
||
var handle;
|
||
var ret;
|
||
Ry = document.getElementById("uKey");
|
||
Ry.pid = UkeyPid;
|
||
//寻找key
|
||
ret = Ry.Don_FindToken();
|
||
if (ret == 0) {
|
||
//打开key
|
||
var opentoken = Ry.Don_OpenToken();
|
||
if (opentoken == 0) {
|
||
Ry.DataLen = 120;
|
||
Ry.Offset = 0;
|
||
Ry.InData = 0;
|
||
//读取key
|
||
var readtoken = Ry.Don_ReadData();
|
||
if (readtoken == 0) {
|
||
var hid = Ry.hid;
|
||
return hid;
|
||
}
|
||
}
|
||
var closeResult = Ry.Don_CloseToken();
|
||
}
|
||
return '';
|
||
}
|
||
|
||
exports('ftukey', CurrentLib)
|
||
}); |