sign-view-set_signer.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. <!DOCTYPE html>
  2. <html lang=zh-cn>
  3. <head>
  4. <meta charset=utf-8>
  5. <title>纵横计量支付系统</title>
  6. <meta name=description content=计量支付>
  7. <meta name=copyright content=smartcost.com.cn>
  8. <meta name="viewport" content="width=device-width,initial-scale=1.0">
  9. <link rel=stylesheet href="{{rootUrl}}global/css/bootstrap.css">
  10. <link rel=stylesheet href={{rootUrl}}global/css/style.css>
  11. <script src={{rootUrl}}global/js/jquery-1.9.1.min.js></script>
  12. <script src={{rootUrl}}global/js/bootstrap.js></script>
  13. <script src={{rootUrl}}global/js/jl.js></script>
  14. </head>
  15. <body>
  16. <!-- include "top" -->
  17. <div class="wrapContent">
  18. <!-- include "left" -->
  19. <div class="mainContainer" style="overflow-y:hidden">
  20. <!--内容-->
  21. <div class="mainContent signContent">
  22. <div class="title clearfix sign-title-height">
  23. <div class="fR sign-topbar">
  24. <a class="btn " href="javascript:void(0);" onclick="printdiv('sign_msg')"><i class="icon-print "></i> 打印</a>
  25. </div>
  26. <h1><a href="/sign/create" title="返回"><span class="closePanel" aria-hidden="true"
  27. data-icon="Z"></span></a>&nbsp;{{signmsg.name}}</h1>
  28. </div>
  29. <div class="sign-view clearfix">
  30. <div class="sign-side fR">
  31. <div class="view-info">
  32. <ul>
  33. <li>
  34. <div class="fL">所在项目</div>
  35. {{signmsg.project}}
  36. </li>
  37. <li>
  38. <div class="fL">标段</div>
  39. {{signmsg.tender}}
  40. </li>
  41. <li>
  42. <div class="fL">期数</div>
  43. 第{{ToChinaseNum(signmsg.phaseno)}}期
  44. </li>
  45. </ul>
  46. </div>
  47. <div class="signed-list" id="signerlist">
  48. <ul>
  49. </ul>
  50. <li class="add"><a href="#addsign" data-toggle="modal">+ 添加签署人</a></li>
  51. <div class="btn-bar">
  52. <input type="hidden" id="signid" value="{{signmsg.sid}}">
  53. <a id="signbtn" onclick="upsigner();" href="javascript:void(0);" class="btn btn-large btn-block disabled">发起签署</a>
  54. </div>
  55. </div>
  56. </div>
  57. <input type="hidden" id="maxwidth" value="{{maxwidth}}">
  58. <input type="hidden" id="maxheight" value="{{maxheight}}">
  59. <div class="sign-content fL" id="sign_msg">
  60. <div class="warp-printer">
  61. <!-- if !empty({{attlist}}) -->
  62. <!-- loop attlist -->
  63. <div class="page" id="pageContainer{{attlist' value.curnum}}"><img src="{{rootUrl}}{{attlist' value.filepath}}"></div>
  64. <!-- endloop -->
  65. <!-- endif -->
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. <!--内容-->
  71. </div>
  72. </div>
  73. <!-- 添加签署人弹出 -->
  74. <div id="addsign" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  75. <div class="modal-header">
  76. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  77. <h3 id="myModalLabel">添加签署人</h3>
  78. </div>
  79. <div class="modal-body">
  80. <div class="">
  81. <h5>原报人:</h5>
  82. <ul class="clearfix moadl-avatars" id="reportlist">
  83. <!-- if !empty({{reportlist}}) -->
  84. <li>
  85. <a class="fR btn btn-small btn-primary" data-userid="{{reportlist.userid}}" data-user="{{reportlist.userid}}&&{{reportlist.name}}&&{{reportlist.avatar}}">添加</a>
  86. <p><span class=" icon-user"></span> <b>{{reportlist.name}}</b></p>
  87. <p>{{reportlist.jobs}}</p>
  88. </li>
  89. <!-- endif -->
  90. </ul>
  91. </div>
  92. <div class="">
  93. <h5>标段审批人:</h5>
  94. <ul class="clearfix moadl-avatars" id="userlist">
  95. <!-- if !empty({{userlist}}) -->
  96. <!-- loop userlist -->
  97. <li>
  98. <a class="fR btn btn-small btn-primary" data-userid="{{userlist' value.userid}}" data-user="{{userlist' value.userid}}&&{{userlist' value.name}}&&{{userlist' value.avatar}}">添加</a>
  99. <p><span class=" icon-user"></span> <b>{{userlist' value.name}}</b></p>
  100. <p>{{userlist' value.jobs}}</p>
  101. </li>
  102. <!-- endloop -->
  103. <!-- endif -->
  104. </ul>
  105. </div>
  106. <div class="">
  107. <h5>添加新签署人:</h5>
  108. <div class="input-append">
  109. <input class="span3" type="text" placeholder="输入邮箱地址检索系统中的用户" id="searchuser">
  110. <button class="btn" type="button" onclick="searchuser();">搜索</button>
  111. </div>
  112. <ul class="clearfix moadl-avatars" id="resultsearch">
  113. </ul>
  114. </div>
  115. </div>
  116. </div>
  117. <!-- 添加签署人弹出 -->
  118. <!-- 发起签署弹出 -->
  119. <div id="starsign" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true">
  120. <div class="modal-body">
  121. <h4>发起后不可更改,确认发起签署?</h4>
  122. </div>
  123. <div class="modal-footer">
  124. <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
  125. <button type="button" class="btn btn-success" onclick="uploadsign();">确认</button>
  126. </div>
  127. </div>
  128. <!-- 发起签署弹出 -->
  129. <script type="text/javascript">autoFlashHeight();</script>
  130. <script>
  131. function printdiv(printpage)
  132. {
  133. $('.warp-printer').css("max-width","1085px");
  134. var headstr = '<html><head><title></title><link rel="stylesheet" href="https://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"><style type="text/css" media="print">' +
  135. '@page {size: {{style}}; margin: 0mm; padding: 0mm; border:0mm; } @media print body {margin:0mm;padding:0mm;border: 0mm} .warp-printer .page{margin:0mm;padding:0mm;border: 0mm;widows:0 orphans:0} .sign-content .page{margin:0mm;padding:0mm;border: 0mm;widows:0 orphans:0}' +
  136. '</style></head><body>';
  137. var footstr = '</body>';
  138. var newstr = document.all.item(printpage).innerHTML;
  139. var oldstr = document.body.innerHTML;
  140. document.body.innerHTML = headstr+newstr+footstr;
  141. window.print();
  142. document.body.innerHTML = oldstr;
  143. window.location.reload();
  144. return false;
  145. }
  146. function searchuser(){
  147. var search = $('#searchuser').val();
  148. if(search.trim() == ''){
  149. alert('请输入邮箱地址');
  150. return false;
  151. }else{
  152. $.ajax({
  153. type: 'get',
  154. url: '/sign/search/user',
  155. data: {email:search},
  156. dataType: 'json',
  157. success: function(result){
  158. var html = '';
  159. if(result.code == 400){
  160. alert(result.msg);
  161. }else{
  162. html += '<li><a class="fR btn btn-small btn-primary" data-user="'+result.user.userid+'&&'+result.user.name+'&&'+result.user.avatar+'">添加</a> <p><span class=" icon-user"></span> <b>'+result.user.name+'</b></p> <p>'+result.user.jobs+'</p></li>'
  163. }
  164. $('#resultsearch').html(html);
  165. $('#resultsearch li a').on('click',function(){
  166. var userarr = $(this).attr('data-user').split('&&');
  167. var flag = true;
  168. $('#signerlist ul li').each(function(){
  169. if($(this).attr('data-sid') == userarr[0]){
  170. alert('不能重复添加签署人');
  171. flag = false;
  172. return;
  173. }
  174. });
  175. if(flag){
  176. var html = '<li data-sid="'+userarr[0]+'"> <div class="no fL">'+($('#signerlist ul li').length+1)+'</div> <div class="avatars fL"><img src="{{rootUrl}}'+userarr[2]+'">'+userarr[1]+'</div> <div class="corl fR"><a href="#" class="colRed">移除</a></div> </li>';
  177. $('#signerlist ul').append(html);
  178. $('#signbtn').addClass('btn-primary').removeClass('disabled');
  179. $('#userlist li').each(function(){
  180. if($(this).children('a').attr('data-userid') == userarr[0]){
  181. $(this).children('a').removeClass('btn-primary').addClass('disabled');
  182. return;
  183. }
  184. });
  185. if($('#reportlist li a').attr('data-userid') == userarr[0]){
  186. $('#reportlist li a').removeClass('btn-primary').addClass('disabled');
  187. }
  188. alert('添加成功');
  189. $('#resultsearch').html('');
  190. }
  191. $('#signerlist ul li a').on('click',function(){
  192. var sid = $(this).parents('li').attr('data-sid');
  193. $('#userlist li').each(function(){
  194. if($(this).children('a').attr('data-userid') == sid){
  195. $(this).children('a').removeClass('disabled').addClass('btn-primary');
  196. return;
  197. }
  198. });
  199. if($('#reportlist li a').attr('data-userid') == sid){
  200. $('#reportlist li a').removeClass('disabled').addClass('btn-primary');
  201. }
  202. $(this).parents('li').remove();
  203. if($('#signerlist ul li').length == 0){
  204. $('#signbtn').removeClass('btn-primary').addClass('disabled');
  205. }else{
  206. var i =1;
  207. $('#signerlist ul li').each(function(){
  208. $(this).children('.no').text(i);
  209. i++;
  210. });
  211. }
  212. })
  213. })
  214. }
  215. })
  216. }
  217. }
  218. function upsigner(){
  219. if($('#signbtn').hasClass('disabled')){
  220. return false;
  221. }else{
  222. $('#starsign').modal('show');
  223. }
  224. }
  225. function uploadsign(){
  226. var idarr = [];
  227. var namearr = [];
  228. $('#signerlist ul li').each(function(){
  229. idarr.push($(this).attr('data-sid'));
  230. namearr.push($(this).children('.avatars').text());
  231. });
  232. $.ajax({
  233. type: 'post',
  234. url: '/sign/upsigner',
  235. data: {ids:idarr,names:namearr,sid:$('#signid').val()},
  236. dataType: 'json',
  237. success: function(result){
  238. if(result.code == 400){
  239. alert(result.msg);
  240. }else{
  241. window.location.href = '/sign/mylist';
  242. }
  243. }
  244. })
  245. }
  246. </script>
  247. <script>
  248. $(function(){
  249. $('.page').css('width',$('#maxwidth').val()+'px');
  250. $('#userlist li a').on('click',function(){
  251. if($(this).hasClass('disabled')){
  252. return false;
  253. }
  254. var userarr = $(this).attr('data-user').split('&&');
  255. var flag = true;
  256. $('#signerlist ul li').each(function(){
  257. if($(this).attr('data-sid') == userarr[0]){
  258. alert('不能重复添加签署人');
  259. flag = false;
  260. return;
  261. }
  262. });
  263. if(flag){
  264. var html = '<li data-sid="'+userarr[0]+'"> <div class="no fL">'+($('#signerlist ul li').length+1)+'</div> <div class="avatars fL"><img src="{{rootUrl}}'+userarr[2]+'">'+userarr[1]+'</div> <div class="corl fR"><a href="#" class="colRed">移除</a></div> </li>';
  265. $('#signerlist ul').append(html);
  266. $('#signbtn').addClass('btn-primary').removeClass('disabled');
  267. $(this).removeClass('btn-primary').addClass('disabled');
  268. if($('#reportlist li a').attr('data-userid') == userarr[0]){
  269. $('#reportlist li a').removeClass('btn-primary').addClass('disabled');
  270. }
  271. alert('添加成功');
  272. }
  273. $('#signerlist ul li a').on('click',function(e){
  274. var sid = $(this).parents('li').attr('data-sid');
  275. $('#userlist li').each(function(){
  276. if($(this).children('a').attr('data-userid') == sid){
  277. $(this).children('a').removeClass('disabled').addClass('btn-primary');
  278. return;
  279. }
  280. });
  281. if($('#reportlist li a').attr('data-userid') == sid){
  282. $('#reportlist li a').removeClass('disabled').addClass('btn-primary');
  283. }
  284. $(this).parents('li').remove();
  285. if($('#signerlist ul li').length == 0){
  286. $('#signbtn').removeClass('btn-primary').addClass('disabled');
  287. }else{
  288. var i =1;
  289. $('#signerlist ul li').each(function(){
  290. $(this).children('.no').text(i);
  291. i++;
  292. });
  293. }
  294. })
  295. });
  296. $('#reportlist li a').on('click',function(){
  297. if($(this).hasClass('disabled')){
  298. return false;
  299. }
  300. var userarr = $(this).attr('data-user').split('&&');
  301. var flag = true;
  302. $('#signerlist ul li').each(function(){
  303. if($(this).attr('data-sid') == userarr[0]){
  304. alert('不能重复添加签署人');
  305. flag = false;
  306. return;
  307. }
  308. });
  309. if(flag){
  310. var html = '<li data-sid="'+userarr[0]+'"> <div class="no fL">'+($('#signerlist ul li').length+1)+'</div> <div class="avatars fL"><img src="{{rootUrl}}'+userarr[2]+'">'+userarr[1]+'</div> <div class="corl fR"><a href="#" class="colRed">移除</a></div> </li>';
  311. $('#signerlist ul').append(html);
  312. $('#signbtn').addClass('btn-primary').removeClass('disabled');
  313. $(this).removeClass('btn-primary').addClass('disabled');
  314. $('#userlist li').each(function(){
  315. if($(this).children('a').attr('data-userid') == userarr[0]){
  316. $(this).children('a').removeClass('btn-primary').addClass('disabled');
  317. return;
  318. }
  319. });
  320. alert('添加成功');
  321. }
  322. $('#signerlist ul li a').on('click',function(e){
  323. var sid = $(this).parents('li').attr('data-sid');
  324. $('#userlist li').each(function(){
  325. if($(this).children('a').attr('data-userid') == sid){
  326. $(this).children('a').removeClass('disabled').addClass('btn-primary');
  327. return;
  328. }
  329. });
  330. if($('#reportlist li a').attr('data-userid') == sid){
  331. $('#reportlist li a').removeClass('disabled').addClass('btn-primary');
  332. }
  333. $(this).parents('li').remove();
  334. if($('#signerlist ul li').length == 0){
  335. $('#signbtn').removeClass('btn-primary').addClass('disabled');
  336. }else{
  337. var i =1;
  338. $('#signerlist ul li').each(function(){
  339. $(this).children('.no').text(i);
  340. i++;
  341. });
  342. }
  343. })
  344. })
  345. })
  346. </script>
  347. </body>