sign-view-set_signer.html 18 KB

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