WebSignPlugin.js 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. /**
  2. * WebSign插件,用于自定义表单。
  3. *
  4. * 1.WebSignPlugin.init();
  5. * 加载WebSign控件。
  6. *
  7. * 2.WebSignPlugin.submit();
  8. * 保存WebSign Info文档。
  9. */
  10. WebSignPlugin = {
  11. //当前登陆用户相关信息件对象
  12. user:{id:"0",name:"开发用户",groupId:"0",groupName:"开发部"},
  13. //WebSign控件对象
  14. webSignObj:null,
  15. //附件对象
  16. fileObj:null,
  17. //判断当前表单页面是否有WebSign控件。
  18. hasWebSignField:false,
  19. //初始化
  20. //所做的操作如下:
  21. //1.检查当前表单中是否有webSign控件。
  22. //2.如果存在webSign控件
  23. // 获取文件id,将webSign控件添加到容器中。
  24. init:function(){
  25. this.user = getSignUserData();
  26. this.fileObj=$("input[controltype='webSign']");
  27. if(this.fileObj.length>0){
  28. var name=this.fileObj.attr("name");
  29. var fileId=this.fileObj.val();
  30. //容器的ID
  31. var divId="div_" + name.replaceAll(":","_");
  32. var right=this.fileObj.attr("right");
  33. //没有权限,删除div容器。
  34. if(right=="no"){
  35. $("#" + divId).remove();
  36. }else{ //有读和写的权限,加载控件。
  37. $.ligerDialog.waitting('正在加载印章文档,请稍候...');
  38. //加载控件。
  39. this.webSignObj= new NtkoWebSign();
  40. //加载office控件。
  41. if(right=="r"||right=="rp"){ //只读时,没有按钮操作
  42. this.webSignObj.loadWebSign(divId,"ntkoocx"+divId,fileId,{user:this.user,imgStyle:'display: none;',buttonStyle:"display: none;"});
  43. }else{ //可编辑 有按钮操作
  44. this.webSignObj.loadWebSign(divId,"ntkoocx"+divId,fileId,{user:this.user,imgStyle:'display: none;',buttonStyle:"display: block;"});
  45. }
  46. $.ligerDialog.closeWaitting();
  47. $("#" + divId).removeClass("webSign-div"); //去掉背景图片 webSign-div为Web签章的样式自定样式
  48. //是否有office控件。
  49. this.hasWebSignField=true;
  50. }
  51. }
  52. },
  53. //提交文件保存。
  54. //如果有WebSign控件。则保存后将返回的附件id放到隐藏域。
  55. submit:function(){
  56. if(!this.hasWebSignField) return;
  57. var right=this.fileObj.attr("right");
  58. var fileId=this.fileObj.val();
  59. //可写,保存office内容并上传。
  60. if(right!="no"){
  61. //保存到服务器。
  62. if(right=="w"||right=="b"){
  63. fileId=this.webSignObj.SaveToServer(right); //返回保存对象的ID
  64. }
  65. //将结果放到隐藏域。
  66. this.fileObj.val(fileId);
  67. }else{
  68. $.ligerDialog.error("没有权限修改Web印章内容!",'提示信息');
  69. }
  70. }
  71. };
  72. //获取用户
  73. function getSignUserData(){
  74. var user = OfficePlugin.user;
  75. var path = __ctx +'/platform/system/sysFile/getUserData.ht';
  76. $.ajaxSetup({async:false}); //同步
  77. $.post(path,{},function(data){
  78. if(data!=""){
  79. var obj = eval('(' + data + ')');
  80. if(obj.success){
  81. user = obj.user;
  82. }
  83. }
  84. });
  85. $.ajaxSetup({async:true}); //异步
  86. return user;
  87. };
  88. //获取WebSign控件对象
  89. function getntkoWebSignObjX(){
  90. if(WebSignPlugin.fileObj==null||'undefined'== typeof (WebSignPlugin.fileObj)||WebSignPlugin.fileObj.length<1){
  91. $.ligerDialog.error("请添加Web印章控件,再进行操作!(控件只支持IE内核的浏览器)",'提示信息');
  92. return null;
  93. }
  94. var right=WebSignPlugin.fileObj.attr("right"); //权限
  95. if(right=="no"){
  96. $.ligerDialog.error("没有权限修改Web印章内容!",'提示信息');
  97. return null;
  98. }
  99. var ntkoWebSignObj = WebSignPlugin.webSignObj;
  100. if((ntkoWebSignObj!="")&&(ntkoWebSignObj!=null)&&('undefined' != typeof (ntkoWebSignObj))){
  101. return ntkoWebSignObj;
  102. }else{
  103. return null;
  104. }
  105. }
  106. //增加没有提示的手写WEB批注(自动对正大小)
  107. function AddSecHandSignNoPromptX(){
  108. var ntkoWebSignObj = getntkoWebSignObjX();
  109. if(ntkoWebSignObj!=null){
  110. ntkoWebSignObj.AddSecHandSignNoPrompt();
  111. }
  112. }
  113. //增加有提示的手写WEB批注(没有自动对正大小)
  114. function AddSecHandSignX(){
  115. var ntkoWebSignObj = getntkoWebSignObjX();
  116. if(ntkoWebSignObj!=null){
  117. ntkoWebSignObj.AddSecHandSign();
  118. }
  119. }
  120. //增加有提示的手写WEB批注(自动对正大小)
  121. function AddSecHandSignAdjustX(){
  122. var ntkoWebSignObj = getntkoWebSignObjX();
  123. if(ntkoWebSignObj!=null){
  124. ntkoWebSignObj.AddSecHandSignAdjust();
  125. }
  126. }
  127. //增加输入WEB批注(自动对正大小)
  128. function AddSecKeyBoardCommentX(){
  129. var ntkoWebSignObj = getntkoWebSignObjX();
  130. if(ntkoWebSignObj!=null){
  131. ntkoWebSignObj.AddSecKeyBoardComment();
  132. }
  133. }
  134. //输入有提示的本地WEB签章批注
  135. function AddSecSignFromLocalX(mark){
  136. var ntkoWebSignObj = getntkoWebSignObjX();
  137. if(ntkoWebSignObj!=null){
  138. ntkoWebSignObj.AddSecSignFromLocal(true);
  139. }
  140. }
  141. //远程(URL)WEB签章批注
  142. function AddSecSignFromURLX(){
  143. var ntkoWebSignObj = getntkoWebSignObjX();
  144. if(ntkoWebSignObj!=null){
  145. ntkoWebSignObj.AddSecSignFromURL();
  146. }
  147. }
  148. //输入有提示的服务器WEB签章批注
  149. function AddSecSignFromServiceX(){
  150. var ntkoWebSignObj = getntkoWebSignObjX();
  151. if(ntkoWebSignObj!=null){
  152. ntkoWebSignObj.AddSecSignFromService();
  153. }
  154. }
  155. //输入有提示的Ekey硬件WEB签章批注
  156. function AddSecSignFromEkeyX(){
  157. var ntkoWebSignObj = getntkoWebSignObjX();
  158. if(ntkoWebSignObj!=null){
  159. ntkoWebSignObj.AddSecSignFromEkey();
  160. }
  161. }
  162. //最后一个签章保存为本地图片并清除临时文件
  163. function SavePicAsTempFileX(webSignImg){
  164. var ntkoWebSignObj = getntkoWebSignObjX();
  165. if(ntkoWebSignObj!=null){
  166. ntkoWebSignObj.SavePicAsTempFile(webSignImg);
  167. }
  168. }
  169. //清除所有WEB签章
  170. function ClearAllSignsX(){
  171. var ntkoWebSignObj = getntkoWebSignObjX();
  172. if(ntkoWebSignObj!=null){
  173. ntkoWebSignObj.ClearAllSigns();
  174. }
  175. }
  176. //保存签章到附件
  177. function SaveToServerX(){
  178. var ntkoWebSignObj = getntkoWebSignObjX();
  179. if(ntkoWebSignObj!=null){
  180. ntkoWebSignObj.SaveToServer(WebSignPlugin.fileObj.attr("right"));
  181. }
  182. }
  183. //选择Web签章方法
  184. function webSignSelectEvent(selectEvent){
  185. var selectValue = $("#" + selectEvent).val();
  186. // alert(selectValue);
  187. if(selectValue==1){
  188. AddSecHandSignNoPromptX();
  189. }else if(selectValue==2){
  190. AddSecHandSignX();
  191. }else if(selectValue==3){
  192. AddSecHandSignAdjustX();
  193. }else if(selectValue==4){
  194. AddSecKeyBoardCommentX();
  195. }else if(selectValue==5){
  196. AddSecSignFromLocalX();
  197. }else if(selectValue==6){
  198. AddSecSignFromURLX();
  199. }else if(selectValue==7){
  200. AddSecSignFromEkeyX();
  201. }else if(selectValue==8){
  202. SaveToServerX();
  203. }else if(selectValue==9){
  204. ClearAllSignsX();
  205. }else if(selectValue==10){
  206. AddSecSignFromServiceX();
  207. }else{
  208. return;
  209. }
  210. /*tags+='<div class="group"><a class="link AddSecHandSignNoPrompt" onclick="AddSecHandSignNoPromptX()" >手写批注无口令(自动)</a></div>';
  211. tags+='<div class="group"><a class="link AddSecHandSign" onclick="AddSecHandSignX()" >手写批注</a></div>';
  212. tags+='<div class="group"><a class="link AddSecHandSignAdjust" onclick="AddSecHandSignAdjustX()" >手写批注有口令(自动)</a></div>';
  213. tags+='<div class="group"><a class="link AddSecKeyBoardComment" onclick="AddSecKeyBoardCommentX()" >输入批注</a></div>';
  214. tags+='<div class="group"><a class="link AddSecSignFromLocal" onclick="AddSecSignFromLocalX(true)" >本地签章</a></div>';
  215. tags+='<div class="group"><a class="link AddSecSignFromURL" onclick="AddSecSignFromURLX()" >URL签章</a></div>';
  216. tags+='<div class="group"><a class="link AddSecSignFromEkey" onclick="AddSecSignFromEkeyX()" >Ekey签章</a></div>';
  217. tags+='<div class="group"><a class="link SavePicAsTempFile" onclick="SavePicAsTempFileX(\'webSignImg\')" >签章保存为本地图片并清除临时文件</a></div>';
  218. tags+='<div class="group"><a class="link ClearAllSigns" onclick="ClearAllSignsX()" >清除签章</a></div>';
  219. tags+='<div class="group"><a class="link SaveToServer" onclick="SaveToServerX()" >保存签章</a></div>'; */
  220. }
  221. /** 鼠标获取位置 **/
  222. //鼠标获取位置的方法
  223. function mousePosition(ev) {
  224. if (ev.pageX || ev.pageY) {
  225. return {
  226. x : ev.pageX,
  227. y : ev.pageY
  228. };
  229. }
  230. return {
  231. x : ev.clientX + document.body.scrollLeft - document.body.clientLeft,
  232. y : ev.clientY + document.body.scrollTop - document.body.clientTop
  233. };
  234. }
  235. //设置鼠标获取位置的对象
  236. function mouseOndblclick(ev) {
  237. ev = ev || window.event;
  238. var mousePos = mousePosition(ev);
  239. var mousePosX = document.getElementById('mousePosX');
  240. var mousePosY = document.getElementById('mousePosY');
  241. if((mousePosX!=null)&&('undefined' != typeof (mousePosX))){
  242. document.getElementById('mousePosX').value = mousePos.x;
  243. }
  244. if((mousePosY!=null)&&('undefined' != typeof (mousePosY))){
  245. document.getElementById('mousePosY').value = mousePos.y;
  246. }
  247. }
  248. //设置鼠标获取位置的事件(双击)
  249. document.ondblclick = mouseOndblclick;