sign-view-set_signer.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  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 btn-default" 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 class="list-unstyled">
  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 class="list-unstyled">
  49. </ul>
  50. <li class="add"><a href="#addsign" data-toggle="modal">+ 添加签署人</a></li>
  51. </div>
  52. <div class="btn-bar">
  53. <input type="hidden" id="signid" value="{{signmsg.sid}}">
  54. <a id="signbtn" onclick="upsigner();" href="javascript:void(0);" class="btn btn-default btn-large btn-block disabled">发起签署</a>
  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 fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  75. <div class="modal-dialog">
  76. <div class="modal-content">
  77. <div class="modal-header">
  78. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  79. <h4 class="modal-title">添加签署人</h4>
  80. </div>
  81. <div class="modal-body">
  82. <div class="">
  83. <h5>原报人:</h5>
  84. <ul class="clearfix moadl-avatars" id="reportlist">
  85. <!-- if !empty({{reportlist}}) -->
  86. <li>
  87. <a class="fR btn btn-sm btn-primary" data-userid="{{reportlist.userid}}" data-user="{{reportlist.userid}}&&{{reportlist.name}}&&{{reportlist.avatar}}">添加</a>
  88. <p><span class=" icon-user"></span> <b>{{reportlist.name}}</b></p>
  89. <p>{{reportlist.jobs}}</p>
  90. </li>
  91. <!-- endif -->
  92. </ul>
  93. </div>
  94. <div class="">
  95. <h5>标段审批人:</h5>
  96. <ul class="clearfix moadl-avatars" id="userlist">
  97. <!-- if !empty({{userlist}}) -->
  98. <!-- loop userlist -->
  99. <li>
  100. <a class="fR btn btn-sm btn-primary" data-userid="{{userlist' value.userid}}" data-user="{{userlist' value.userid}}&&{{userlist' value.name}}&&{{userlist' value.avatar}}">添加</a>
  101. <p><span class=" icon-user"></span> <b>{{userlist' value.name}}</b></p>
  102. <p>{{userlist' value.jobs}}</p>
  103. </li>
  104. <!-- endloop -->
  105. <!-- endif -->
  106. </ul>
  107. </div>
  108. <div class="">
  109. <h5>添加新签署人:</h5>
  110. <div class="input-group col-xs-8">
  111. <input class="span3 form-control" type="text" placeholder="输入邮箱地址检索" id="searchuser">
  112. <span class="input-group-btn">
  113. <button class="btn btn-default" type="button" onclick="searchuser();">搜索</button>
  114. </span>
  115. </div>
  116. <ul class="clearfix moadl-avatars" id="resultsearch">
  117. </ul>
  118. </div>
  119. </div>
  120. </div>
  121. </div>
  122. </div>
  123. <!-- 添加签署人弹出 -->
  124. <!-- 发起签署弹出 -->
  125. <div id="starsign" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
  126. <div class="modal-dialog">
  127. <div class="modal-content">
  128. <div class="modal-body">
  129. <h4>发起后不可更改,确认发起签署?</h4>
  130. </div>
  131. <div class="modal-footer">
  132. <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
  133. <button type="button" class="btn btn-success" onclick="uploadsign();">确认</button>
  134. </div>
  135. </div>
  136. </div>
  137. </div>
  138. <!-- 发起签署弹出 -->
  139. <script type="text/javascript">autoFlashHeight();</script>
  140. <script>
  141. function printdiv(printpage)
  142. {
  143. var maxwidth = $('#maxwidth').val();
  144. $('.warp-printer').css("max-width",maxwidth+"px");
  145. 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">' +
  146. '@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}' +
  147. '</style></head><body>';
  148. var footstr = '</body>';
  149. var newstr = document.all.item(printpage).innerHTML;
  150. var oldstr = document.body.innerHTML;
  151. document.body.innerHTML = headstr+newstr+footstr;
  152. window.print();
  153. document.body.innerHTML = oldstr;
  154. window.location.reload();
  155. return false;
  156. }
  157. function searchuser(){
  158. var search = $('#searchuser').val();
  159. if(search.trim() == ''){
  160. alert('请输入邮箱地址');
  161. return false;
  162. }else{
  163. $.ajax({
  164. type: 'get',
  165. url: '/sign/search/user',
  166. data: {email:search},
  167. dataType: 'json',
  168. success: function(result){
  169. var html = '';
  170. if(result.code == 400){
  171. alert(result.msg);
  172. }else{
  173. html += '<li><a class="fR btn btn-sm 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>'
  174. }
  175. $('#resultsearch').html(html);
  176. $('#resultsearch li a').on('click',function(){
  177. var userarr = $(this).attr('data-user').split('&&');
  178. var flag = true;
  179. $('#signerlist ul li').each(function(){
  180. if($(this).attr('data-sid') == userarr[0]){
  181. alert('不能重复添加签署人');
  182. flag = false;
  183. return;
  184. }
  185. });
  186. if(flag){
  187. 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>';
  188. $('#signerlist ul').append(html);
  189. $('#signbtn').addClass('btn-primary').removeClass('disabled');
  190. $('#userlist li').each(function(){
  191. if($(this).children('a').attr('data-userid') == userarr[0]){
  192. $(this).children('a').removeClass('btn-primary').addClass('btn-default').addClass('disabled');
  193. return;
  194. }
  195. });
  196. if($('#reportlist li a').attr('data-userid') == userarr[0]){
  197. $('#reportlist li a').removeClass('btn-primary').addClass('btn-default').addClass('disabled');
  198. }
  199. alert('添加成功');
  200. $('#resultsearch').html('');
  201. }
  202. $('#signerlist ul li a').on('click',function(){
  203. var sid = $(this).parents('li').attr('data-sid');
  204. $('#userlist li').each(function(){
  205. if($(this).children('a').attr('data-userid') == sid){
  206. $(this).children('a').removeClass('disabled').addClass('btn-primary').removeClass('btn-default');
  207. return;
  208. }
  209. });
  210. if($('#reportlist li a').attr('data-userid') == sid){
  211. $('#reportlist li a').removeClass('disabled').addClass('btn-primary').removeClass('btn-default');
  212. }
  213. $(this).parents('li').remove();
  214. if($('#signerlist ul li').length == 0){
  215. $('#signbtn').removeClass('btn-primary').addClass('disabled').addClass('btn-default');
  216. }else{
  217. var i =1;
  218. $('#signerlist ul li').each(function(){
  219. $(this).children('.no').text(i);
  220. i++;
  221. });
  222. }
  223. })
  224. })
  225. }
  226. })
  227. }
  228. }
  229. function upsigner(){
  230. if($('#signbtn').hasClass('disabled')){
  231. return false;
  232. }else{
  233. $('#starsign').modal('show');
  234. }
  235. }
  236. function uploadsign(){
  237. var idarr = [];
  238. var namearr = [];
  239. $('#signerlist ul li').each(function(){
  240. idarr.push($(this).attr('data-sid'));
  241. namearr.push($(this).children('.avatars').text());
  242. });
  243. $.ajax({
  244. type: 'post',
  245. url: '/sign/upsigner',
  246. data: {ids:idarr,names:namearr,sid:$('#signid').val()},
  247. dataType: 'json',
  248. success: function(result){
  249. if(result.code == 400){
  250. alert(result.msg);
  251. }else{
  252. window.location.href = '/sign/mylist';
  253. }
  254. }
  255. })
  256. }
  257. </script>
  258. <script>
  259. $(function(){
  260. $('.page').css('width',$('#maxwidth').val()+'px');
  261. $('#userlist li a').on('click',function(){
  262. if($(this).hasClass('disabled')){
  263. return false;
  264. }
  265. var userarr = $(this).attr('data-user').split('&&');
  266. var flag = true;
  267. $('#signerlist ul li').each(function(){
  268. if($(this).attr('data-sid') == userarr[0]){
  269. alert('不能重复添加签署人');
  270. flag = false;
  271. return;
  272. }
  273. });
  274. if(flag){
  275. 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>';
  276. $('#signerlist ul').append(html);
  277. $('#signbtn').addClass('btn-primary').removeClass('disabled').removeClass('btn-default');
  278. $(this).removeClass('btn-primary').addClass('disabled').addClass('btn-default');
  279. if($('#reportlist li a').attr('data-userid') == userarr[0]){
  280. $('#reportlist li a').removeClass('btn-primary').addClass('disabled').addClass('btn-default');
  281. }
  282. alert('添加成功');
  283. }
  284. $('#signerlist ul li a').on('click',function(e){
  285. var sid = $(this).parents('li').attr('data-sid');
  286. $('#userlist li').each(function(){
  287. if($(this).children('a').attr('data-userid') == sid){
  288. $(this).children('a').removeClass('disabled').addClass('btn-primary').removeClass('btn-default');
  289. return;
  290. }
  291. });
  292. if($('#reportlist li a').attr('data-userid') == sid){
  293. $('#reportlist li a').removeClass('disabled').addClass('btn-primary').removeClass('btn-default');
  294. }
  295. $(this).parents('li').remove();
  296. if($('#signerlist ul li').length == 0){
  297. $('#signbtn').removeClass('btn-primary').addClass('disabled').addClass('btn-default');
  298. }else{
  299. var i =1;
  300. $('#signerlist ul li').each(function(){
  301. $(this).children('.no').text(i);
  302. i++;
  303. });
  304. }
  305. })
  306. });
  307. $('#reportlist li a').on('click',function(){
  308. if($(this).hasClass('disabled')){
  309. return false;
  310. }
  311. var userarr = $(this).attr('data-user').split('&&');
  312. var flag = true;
  313. $('#signerlist ul li').each(function(){
  314. if($(this).attr('data-sid') == userarr[0]){
  315. alert('不能重复添加签署人');
  316. flag = false;
  317. return;
  318. }
  319. });
  320. if(flag){
  321. 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>';
  322. $('#signerlist ul').append(html);
  323. $('#signbtn').addClass('btn-primary').removeClass('disabled').removeClass('btn-default');
  324. $(this).removeClass('btn-primary').addClass('disabled').addClass('btn-default');
  325. $('#userlist li').each(function(){
  326. if($(this).children('a').attr('data-userid') == userarr[0]){
  327. $(this).children('a').removeClass('btn-primary').addClass('disabled').addClass('btn-default');
  328. return;
  329. }
  330. });
  331. alert('添加成功');
  332. }
  333. $('#signerlist ul li a').on('click',function(e){
  334. var sid = $(this).parents('li').attr('data-sid');
  335. $('#userlist li').each(function(){
  336. if($(this).children('a').attr('data-userid') == sid){
  337. $(this).children('a').removeClass('disabled').addClass('btn-primary').removeClass('btn-default');
  338. return;
  339. }
  340. });
  341. if($('#reportlist li a').attr('data-userid') == sid){
  342. $('#reportlist li a').removeClass('disabled').addClass('btn-primary').removeClass('btn-default');
  343. }
  344. $(this).parents('li').remove();
  345. if($('#signerlist ul li').length == 0){
  346. $('#signbtn').removeClass('btn-primary').addClass('disabled').addClass('btn-default');
  347. }else{
  348. var i =1;
  349. $('#signerlist ul li').each(function(){
  350. $(this).children('.no').text(i);
  351. i++;
  352. });
  353. }
  354. })
  355. })
  356. })
  357. </script>
  358. </body>