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
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							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"); | |
| }
 |