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.
 
 
 
 

193 lines
7.1 KiB

plugin = null;
function initCRF() {
let index = 0
// 初始化签字笔
const initPlugin = function () {
index++
// console.log(plugin);
if (plugin) {
plugin.DestroyPlugin();
}
plugin = new PluginNSV();
plugin.InitPlugin(function (state) {
if (state === 1) {
//set pen size
plugin.setPenSizeRange(1, 5, null);
//set pen color
plugin.setPenColor(0, 0, 0, null);
plugin.setDisplayMapMode(1, 0, 0, null)
console.log('succeeded')
} else {
console.log('fails')
}
});
/*confirm event*/
plugin.onConfirm = function () {
saveSignToBase64();
endSign();
plugin.mouseControl(false, null);
};
/*clear event*/
plugin.onClear = function () {
clearSign();
};
/*cancel event*/
plugin.onCancel = function () {
endSign();
};
// 监听插件连接服务的状态
plugin.onStateChange = function (state) {
if (state === 1) {
// 连接服务成功
} else {
// 连接服务断开
}
}
// 第一次启动时判断
if (index === 1) {
console.log('--------------111111111111');
// 设备是否连接--use是否插上
plugin.onDevNotifyEvent = (item) => {
if (item === 1) {
alert('签字笔已插入')
} else {
alert('签字笔已拔出')
}
}
}
}
initPlugin()
// 点击手签按钮事件
$('.shouqian').on('click', function () {
// console.log($(this)[0].id);
const buttonNodeIdName = {
name: $(this)[0].id,
isImgClick: false,
type: 1 // 1手签 2自动获取
}
$(this).parent().addClass("shouqian-buttons")
window.sessionStorage.setItem('sign-nodeIdName', JSON.stringify(buttonNodeIdName))
// 开始签字
beginSign()
})
// 手签图片点击事件
$('.shouqian-img').on('click', function () {
// console.log($(this)[0].id);
const imgNodeName = {
name: $(this)[0].id,
isImgClick: true,
type: 1 // 1手签 2自动获取
}
window.sessionStorage.setItem('sign-nodeIdName', JSON.stringify(imgNodeName))
// 开始签字
beginSign()
})
// 点击自动获取按钮
$('.auto-import').on('click', function () {
console.log('自动获取');
// console.log($(this)[0].id);
const buttonNodeIdName = {
name: $(this)[0].id,
isImgClick: false,
type: 2 // 1手签 2自动获取
}
$(this).parent().addClass("auto-import-buttons")
window.sessionStorage.setItem('sign-nodeIdName', JSON.stringify(buttonNodeIdName))
setAutoImport()
})
// 开始签名
const beginSign = function () {
if (!!plugin) {
plugin.beginSign(function (state, args) { });
}
}
// 清空签名
const clearSign = function () {
if (!!plugin) {
plugin.clearSign(function (state, args) { });
}
}
// 结束签名
function endSign() {
if (!!plugin) {
/* plugin.endSign(null);*/
plugin.endSign(function (state, args) { });
}
}
// 保存返回的base64图片
function saveSignToBase64() {
if (!!plugin) {
//Get the plugin's signature image data.
plugin.saveSignToBase64(/*615, 272*/0, 0, function (state, args) {
if (state) {
const img_base64_data = args[0];
const nodeIdName = JSON.parse(window.sessionStorage.getItem('sign-nodeIdName'))
const img_base64 = "data:image/png;base64," + img_base64_data;
// 没有图片时如果点击的是按钮
if (!nodeIdName.isImgClick) {
let img = `<img id="${nodeIdName.name}-img" class="shouqian-img" style="width:60px;margin: 0 auto;" src="${img_base64}" ></img>`
// 动态插入img
$(`#${nodeIdName.name}`).after(img)
// 当前父级p标签margn设置为0
$(`#${nodeIdName.name}`).parent()[0].style.margin = '0px'
// 图片显示后按钮设置为隐藏
// $(`#${nodeIdName.name}`).parent().next().css({ "display": "none" }) // 兄弟节点按钮隐藏
$(`#${nodeIdName.name}`).css({ "display": "none" }) // 当前节点按钮隐藏
// 有了图片后添加图片的点击事件
$('.shouqian-img').on('click', function () {
// console.log($(this)[0].id);
const imgNodeName = {
name: $(this)[0].id,
isImgClick: true
}
window.sessionStorage.setItem('sign-nodeIdName', JSON.stringify(imgNodeName))
// 开始签字
beginSign()
})
}
// 有图片后如果点击的是图片
else {
// 给img动态设置src
// console.log($(`.${nodeIdName.name}`)[0].src);
$(`#${nodeIdName.name}`)[0].src = img_base64;
}
} else {
// ...
}
});
}
}
// 自动获取图片
function setAutoImport() {
console.log(123);
const nodeIdName = JSON.parse(window.sessionStorage.getItem('sign-nodeIdName'))
const img_base64 = JSON.parse(window.sessionStorage.getItem('qg-userData')).signImgBasesignImgBase
// 调取接口
let img = `<img id="${nodeIdName.name}-img" class="shouqian-img" style="width:60px;margin: 0 auto;vertical-align: middle;" src="${img_base64}" ></img>`
// 动态插入img
$(`#${nodeIdName.name}`).after(img)
// 当前父级p标签margn设置为0
$(`#${nodeIdName.name}`).parent()[0].style.margin = '0px'
// 图片显示后按钮设置为隐藏
$(`#${nodeIdName.name}`).parent().prev().css({ "display": "none" }) // 兄弟节点按钮隐藏
$(`#${nodeIdName.name}`).css({ "display": "none" }) // 当前节点按钮隐藏
}
}
initCRF()
// 销毁签字笔
function destroyPlugin() {
console.log('销毁');
plugin.DestroyPlugin();
// 防止签名重复调取,销毁点击事件
$('.auto-import').unbind("click");
}