biangeng-approval.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  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" type="text/css" href="{{rootUrl}}global/css/dataTables.bootstrap.min.css">
  11. <link rel="stylesheet" type="text/css" href="{{rootUrl}}global/css/fixedColumns.bootstrap.min.css">
  12. <link rel=stylesheet href={{rootUrl}}global/css/style.css>
  13. <link href="{{rootUrl}}global/css/assets/styles.css" rel="stylesheet">
  14. <script src={{rootUrl}}global/js/jquery-1.9.1.min.js></script>
  15. <script src={{rootUrl}}global/js/bootstrap.js></script>
  16. <script src={{rootUrl}}global/js/jl.js></script>
  17. <style type="text/css" class="init">
  18. #list td input{
  19. width: 100%
  20. }
  21. .allwidth1{
  22. /*width: 16% !important;*/
  23. max-width: 250px !important;
  24. }
  25. .allwidth2{
  26. /*width: 9% !important;*/
  27. max-width: 150px !important;
  28. }
  29. .allwidth3{
  30. /*width: 5% !important;*/
  31. max-width: 100px !important;
  32. }
  33. div.DTFC_LeftFootWrapper table, div.DTFC_RightFootWrapper table{
  34. border-top: 1px solid #ddd;
  35. }
  36. div.dataTables_scrollFootInner table{
  37. margin-top: 0 !important;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <!-- include "top" -->
  43. <div class="wrapContent">
  44. <!-- include "left" -->
  45. <div class="mainContainer" data-spy="scroll" data-target="#navbar-example">
  46. <!--内容-->
  47. <div class="mainContent">
  48. <input id="pmid" type="hidden" value="{{pmArray.pmid}}">
  49. <input id="cid" type="hidden" value="{{cid}}">
  50. <input id="uid" type="hidden" value="{{uid}}">
  51. <input id="verification" type="hidden" value="{{verification}}">
  52. <div class="title" id="xinxi">
  53. <div class="bg-top-btn affix"><button class="btn btn-success showapproval" status="pass">通过</button>&nbsp;<button class="btn btn-warning showapproval" status="back">退回</button>&nbsp;<button class="btn btn-danger showapproval" status="stop">终止</button></div>
  54. <h1><a href="/change/index/tender/{{pmArray.pmid}}" title="返回"><span class="closePanel" aria-hidden="true" data-icon="Z"></span></a>&nbsp;{{changeArray.pnum}}</h1>
  55. </div>
  56. <div class="row">
  57. <div class="col-md-2" id="navbar-example">
  58. <ul class="nav nav-pills nav-stacked bg-nav affix">
  59. <li><a href="#xinxi"><span class="glyphicon glyphicon-info-sign"></span> 变更信息</a></li>
  60. <li><a href="#qingdan"><span class="glyphicon glyphicon-list-alt"></span> 变更清单</a></li>
  61. <li><a href="#fujian"><span class="glyphicon glyphicon-paperclip"></span> 附件</a></li>
  62. <li><a href="#shenpi"><span class="glyphicon glyphicon-check"></span> 审批流程</a></li>
  63. </ul>
  64. </div>
  65. <div class="col-md-10">
  66. <div class="bg-con-warp">
  67. <legend><span class="glyphicon glyphicon-info-sign"></span> 变更信息</legend>
  68. <div class="row">
  69. <div class="col-md-4">
  70. <div class="form-group">
  71. <label>申请编号</label>
  72. <input class="form-control" value="{{changeArray.pnum}}" type="text" readonly disabled>
  73. </div>
  74. <div class="form-group">
  75. <label>工程名称</label>
  76. <input class="form-control" value="{{changeArray.pname}}" type="text" readonly disabled>
  77. </div>
  78. <div class="form-group">
  79. <label>桩号</label>
  80. <input class="form-control" value="{{changeArray.mnum}}" type="text" readonly disabled>
  81. </div>
  82. <div class="form-group">
  83. <label>原设计图名称</label>
  84. <input class="form-control" placeholder="" value="{{changeArray.odname}}" type="text" readonly disabled>
  85. </div>
  86. <div class="form-group">
  87. <label>原图号</label>
  88. <input class="form-control" placeholder="" value="{{changeArray.onum}}" type="text" readonly disabled>
  89. </div>
  90. <div class="form-group">
  91. <label>变更设计图名称</label>
  92. <input class="form-control" placeholder="" value="{{changeArray.cdname}}" type="text" readonly disabled>
  93. </div>
  94. <div class="form-group">
  95. <label>变更图号</label>
  96. <input class="form-control" placeholder="" value="{{changeArray.cnum}}" type="text" readonly disabled>
  97. </div>
  98. </div>
  99. <div class="col-md-4" style="z-index:999;">
  100. <div class="form-group">
  101. <label>工程变更理由及内容</label>
  102. <textarea class="form-control" rows="6" readonly disabled>{{changeArray.description}}</textarea>
  103. </div>
  104. <div class="form-group">
  105. <label>工程变更合同依据</label>
  106. <textarea class="form-control" rows="6" readonly disabled>{{changeArray.basis}}</textarea>
  107. </div>
  108. <div class="form-group">
  109. <label>备注</label>
  110. <textarea class="form-control" rows="3" readonly disabled>{{changeArray.remarks}}</textarea>
  111. </div>
  112. </div>
  113. <div class="col-md-4">
  114. <!-- if !empty({{changeArray.ctype}}) -->
  115. <div class="form-group">
  116. <label>变更类型</label>
  117. <div class="checkbox">
  118. <!-- loop changeArray.ctypelist -->
  119. <label class="checkbox-inline">
  120. <input type="checkbox" checked disabled>{{ctypelist' value.typename}}
  121. </label>
  122. <!-- endloop -->
  123. </div>
  124. </div>
  125. <!-- endif -->
  126. <div class="form-group">
  127. <label>变更类别 </label>
  128. <select class="form-control" disabled><option>{{changeArray.categoryname}}</option></select>
  129. </div>
  130. <div class="form-group">
  131. <label>变更性质 </label>
  132. <select class="form-control" disabled><option>{{changeArray.naturename}}</option></select>
  133. </div>
  134. <div class="form-group">
  135. <label>变更提出单位</label>
  136. <select class="form-control" disabled><option>{{changeArray.companyname}}</option></select>
  137. </div>
  138. <div class="form-group">
  139. <label>费用承担方</label>
  140. <div class="radio">
  141. <label class="radio-inline">
  142. <input id="inlineCheckbox1" value="option1" type="radio" checked disabled> <!-- if {{changeArray.bear}} == 1 -->业主<!-- else -->承包人<!-- endif -->
  143. </label>
  144. </div>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. <div class="bg-con-warp">
  150. <legend id="qingdan"><span class="glyphicon glyphicon-list-alt"></span> 变更清单</legend>
  151. {{listtablehtml}}
  152. </div>
  153. <div class="bg-con-warp">
  154. <legend id="fujian"><span class="glyphicon glyphicon-paperclip"></span> 附件&nbsp;&nbsp;<a href="#addfujian" class="btn btn-primary btn-xs" data-toggle="modal"><span class="glyphicon glyphicon-open"></span> 上传附件</a></legend>
  155. <table class="table table-bordered">
  156. <thead>
  157. <tr><th width="50">序号</th><th>名称</th><th width="90">大小</th><th width="100">上传时间</th><th width="100">操作</th></tr>
  158. </thead>
  159. <tbody id="filesshow">
  160. <!-- if !empty({{attlist}}) -->
  161. <!-- loop attlist -->
  162. <tr><td>{{attlist' value.sort}}</td><td><a href="{{attlist' value.downurl}}">{{attlist' value.filename}}</a></td><td>{{attlist' value.size}}</td><td>{{attlist' value.time}}</td><td><!-- if {{attlist' value.uid}} == {{userid}} --><a id="delatt_{{attlist' value.fid}}" file_id="{{attlist' value.fid}}" class="btn btn-default btn-sm" title="删除附件"><span class="glyphicon glyphicon-trash text-danger"></span></a><!-- endif --></td></tr>
  163. <!-- endloop -->
  164. <!-- endif -->
  165. </tbody>
  166. </table>
  167. </div>
  168. <div class="bg-con-warp">
  169. <legend id="shenpi"><span class="glyphicon glyphicon-check"></span> 审批流程</legend>
  170. <table class="table table-bordered">
  171. <!-- loop auditlist -->
  172. <tr>
  173. <td width="100"><!-- if {{auditlist' value.usite}} == 0 -->提交人<!-- else -->{{auditlist' value.usite}} 审<!-- endif --></td>
  174. <td width="250"><h4 class="media-heading">{{auditlist' value.jobs}} {{auditlist' value.name}}</h4>
  175. {{auditlist' value.company}}</td>
  176. <!-- if {{auditlist' value.usite}} == 0 -->
  177. <!-- if {{auditlist' value.status}} == 'checked' --><td width="100" class="colGreen">上报完成</td><td>{{formatDate(auditlist' value.sintime)}}<br></td>
  178. <!-- elseif {{auditlist' value.times}} == 0 && {{auditlist' value.status}} == 'checking' --><td width="100" class="colOrange">上报中</td><td><br></td>
  179. <!-- elseif {{auditlist' value.times}} != 0 && {{auditlist' value.status}} == 'checking' --><td width="100" class="colOrange">重新上报中</td><td><br></td>
  180. <!-- endif -->
  181. <!-- else -->
  182. <!-- if {{auditlist' value.status}} == 'checked' --><td width="100" class="colGreen">审批通过</td><td>{{formatDate(auditlist' value.sintime)}}<br>{{auditlist' value.sdesc}}</td>
  183. <!-- elseif {{auditlist' value.status}} == 'back' || {{auditlist' value.status}} == 'backnew' --><td width="100" class="colRed">退回</td><td>{{formatDate(auditlist' value.sintime)}}<br>{{auditlist' value.sdesc}}</td>
  184. <!-- elseif {{auditlist' value.status}} == 'checkno' --><td width="100" class="colRed">审批终止</td><td>{{formatDate(auditlist' value.sintime)}}<br>{{auditlist' value.sdesc}}</td>
  185. <!-- elseif {{auditlist' value.status}} == 'checking' --><td width="100" class="colOrange">审批中</td><td></td>
  186. <!-- else --><td width="100"></td><td></td>
  187. <!-- endif -->
  188. <!-- endif -->
  189. </tr>
  190. <!-- endloop -->
  191. </table>
  192. </div>
  193. </div>
  194. </div>
  195. </div>
  196. <!--内容-->
  197. </div>
  198. </div>
  199. <!-- 审批弹出 -->
  200. <div id="approval" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  201. <div class="modal-dialog">
  202. <div class="modal-content">
  203. <div class="modal-header">
  204. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  205. <h4 class="modal-title">审批变更</h4>
  206. </div>
  207. <form method="post" onsubmit="return checksubmit();">
  208. <input type="hidden" id="approvalstatus" value="1">
  209. <input type="hidden" name="approval" value="1">
  210. <input type="hidden" name="clist" id="oneclist" value="">
  211. <input type="hidden" name="lastuid" value="{{lastuid}}">
  212. <div class="modal-body">
  213. <!-- if {{isenduser}} == 1 -->
  214. <div class="form-group approval-success" style="display: none">
  215. <label>申请编号</label>
  216. <input class="form-control" value="{{changeArray.pnum}}" readonly type="text">
  217. </div>
  218. <div class="form-group approval-success" style="display: none">
  219. <label>批复编号</label>
  220. <input class="form-control" id="batchnumber" name="bnum" value="{{changeArray.pnum}}" type="text">
  221. </div>
  222. <!-- endif -->
  223. <div class="form-group">
  224. <label>审批意见</label>
  225. <textarea class="form-control" name="desc" rows="4"></textarea>
  226. </div>
  227. <div class="alert alert-success" style="display: none;" role="alert">审批通过,将由下一审批人继续审批,如果您是终审,变更审批将完成。</div>
  228. <div class="alert alert-warning" style="display: none;" role="alert">审批退回,将由上一审批人重新审批或将由原报重新提交变更。</div>
  229. <div class="alert alert-danger" style="display: none;" role="alert">审批终止,将结束本次审批。</div>
  230. <div id="backform" style="display: none">
  231. <!-- if {{firstcheck}} == 0 -->
  232. <label class="radio-inline">
  233. <input type="radio" name="back" value="1" checked> 退回上一个审批人 <b>{{lastusername}}</b>
  234. </label>
  235. <!-- endif -->
  236. <label class="radio-inline">
  237. <input type="radio" name="back" value="2" <!-- if {{firstcheck}} != 0 -->checked<!-- endif -->> 退回提交人 <b>{{createusername}}</b>
  238. </label>
  239. </div>
  240. </div>
  241. <div class="modal-footer" id="submitform">
  242. <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">关闭</button>
  243. <button class="btn btn-success" style="display: none" name="status" value="checked" type="submit">通过</button><button style="display: none" type="submit" name="status" value="back" class="btn btn-warning">退回</button><button style="display: none" type="submit" name="status" value="checkno" class="btn btn-danger">终止</button>
  244. </div>
  245. </form>
  246. </div>
  247. </div>
  248. </div>
  249. <!--添加附件-->
  250. <div class="modal fade" id="addfujian" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  251. <div class="modal-dialog" role="document">
  252. <div class="modal-content">
  253. <div class="modal-header">
  254. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  255. <h4 class="modal-title" id="myModalLabel">附件</h4>
  256. </div>
  257. <div class="modal-body">
  258. <p>上传文件大小最大:10MB</p>
  259. <div class="row">
  260. <div class="col-xs-2">
  261. <button id="uploadBtn" class="btn btn-large btn-primary">选择文件</button>
  262. </div>
  263. </div>
  264. <div class="row">
  265. <div class="col-xs-12">
  266. <div id="progressBox"> </div>
  267. </div>
  268. </div>
  269. <div class="row" style="padding-top:10px;">
  270. <div class="col-xs-10">
  271. <div id="msgBox">
  272. </div>
  273. </div>
  274. </div>
  275. </div>
  276. </div>
  277. </div>
  278. </div>
  279. <!--添加附件-->
  280. <script type="text/javascript">autoFlashHeight();</script>
  281. <link href="//cdn.bootcss.com/toastr.js/2.1.2/toastr.css" rel="stylesheet">
  282. <script src="//cdn.bootcss.com/toastr.js/2.1.2/toastr.min.js"></script>
  283. <script src="{{rootUrl}}global/js/SimpleAjaxUploader.min.js"></script>
  284. <script type="text/javascript" language="javascript" src="{{rootUrl}}global/js/jquery.dataTables.min.js"></script>
  285. <script type="text/javascript" language="javascript" src="{{rootUrl}}global/js/dataTables.bootstrap.min.js"></script>
  286. <script type="text/javascript" language="javascript" src="{{rootUrl}}global/js/dataTables.fixedColumns.min.js"></script>
  287. <script src="{{rootUrl}}global/js/jlzf-change-table.js"></script>
  288. <script>
  289. function escapeTags( str ) {
  290. return String( str )
  291. .replace( /&/g, '&amp;' )
  292. .replace( /"/g, '&quot;' )
  293. .replace( /'/g, '&#39;' )
  294. .replace( /</g, '&lt;' )
  295. .replace( />/g, '&gt;' );
  296. }
  297. $.event.special.valuechange = {
  298. teardown: function (namespaces) {
  299. $(this).unbind('.valuechange');
  300. },
  301. handler: function (e) {
  302. $.event.special.valuechange.triggerChanged($(this));
  303. },
  304. add: function (obj) {
  305. $(this).on('keyup.valuechange cut.valuechange paste.valuechange input.valuechange', obj.selector, $.event.special.valuechange.handler)
  306. },
  307. triggerChanged: function (element) {
  308. var current = element[0].contentEditable === 'true' ? element.html() : element.val()
  309. , previous = typeof element.data('previous') === 'undefined' ? element[0].defaultValue : element.data('previous');
  310. if (current !== previous) {
  311. element.trigger('valuechange', [element.data('previous')]);
  312. element.data('previous', current);
  313. }
  314. }
  315. };
  316. $(function(){
  317. toastr.options = {
  318. "closeButton": false,
  319. "debug": false,
  320. "newestOnTop": false,
  321. "progressBar": false,
  322. "positionClass": "toast-top-right",
  323. "preventDuplicates": false,
  324. "onclick": null,
  325. "showDuration": "300",
  326. "hideDuration": "1000",
  327. "timeOut": "5000",
  328. "extendedTimeOut": "1000",
  329. "showEasing": "swing",
  330. "hideEasing": "linear",
  331. "showMethod": "fadeIn",
  332. "hideMethod": "fadeOut"
  333. };
  334. var table = $('#tablelist').removeAttr('width').DataTable({
  335. columnDefs: [
  336. { className: 'allwidth1', width: 200, targets: 1 },
  337. { className: 'allwidth3', width: 60, targets: 2 },
  338. { className: 'allwidth2', width: 100, targets: '_all' }
  339. ],
  340. fixedColumns: {
  341. leftColumns: 4
  342. }
  343. });
  344. $('.clist input').on("valuechange", function (e, previous) {
  345. var num = $(this).val();
  346. var unitprice = $(this).parents('.clist').children('td').eq(3).text();
  347. var total = num.trim() != '' && unitprice.trim() != '' ? parseFloat(parseFloat(unitprice)*parseFloat(num)).toFixed(2) : '';
  348. $(this).parents('.clist').find('.cnum').text(total);
  349. //统计合计金额
  350. var utotalnum = 0;
  351. $('.clist').each(function(){
  352. var utotal = $(this).find('.cnum').text();
  353. utotalnum = utotal != '' ? parseFloat(utotalnum)+parseFloat(utotal) : parseFloat(utotalnum);
  354. });
  355. $('.utotalnum').eq(1).text(parseFloat(utotalnum).toFixed(2));
  356. });
  357. $('.showapproval').on('click',function(){
  358. var status = $(this).attr('status');
  359. if(status == 'pass'){
  360. $('#submitform').find('.btn-success').show();
  361. $('#submitform').find('.btn-warning').hide();
  362. $('#submitform').find('.btn-danger').hide();
  363. $('#approval').find('.alert-success').show();
  364. $('#approval').find('.alert-warning').hide();
  365. $('#approval').find('.alert-danger').hide();
  366. $('#approval').find('.approval-success').show();
  367. $('#approvalstatus').val(1);
  368. $('#backform').hide();
  369. }else if(status == 'back'){
  370. $('#submitform').find('.btn-success').hide();
  371. $('#submitform').find('.btn-warning').show();
  372. $('#submitform').find('.btn-danger').hide();
  373. $('#approval').find('.alert-success').hide();
  374. $('#approval').find('.alert-warning').show();
  375. $('#approval').find('.alert-danger').hide();
  376. $('#approval').find('.approval-success').hide();
  377. $('#approvalstatus').val(2);
  378. $('#backform').show();
  379. }else{
  380. $('#submitform').find('.btn-success').hide();
  381. $('#submitform').find('.btn-warning').hide();
  382. $('#submitform').find('.btn-danger').show();
  383. $('#approval').find('.alert-success').hide();
  384. $('#approval').find('.alert-warning').hide();
  385. $('#approval').find('.alert-danger').show();
  386. $('#approval').find('.approval-success').hide();
  387. $('#approvalstatus').val(3);
  388. $('#backform').hide();
  389. }
  390. var clist = new Array();
  391. $('.clist input').each(function(){
  392. var value = $(this).val();
  393. var lid = $(this).attr('listid');
  394. clist.push(lid+'_'+value);
  395. });
  396. $('#oneclist').val(clist.join(','));
  397. $('#approval').modal('show');
  398. });
  399. //文件上传
  400. var btn = document.getElementById('uploadBtn'),
  401. msgBox = document.getElementById('msgBox'),
  402. filenum = $('#filesshow tr').length+1;
  403. var uploader = new ss.SimpleUpload({
  404. button: btn,
  405. url: '/change/file/upload/'+ $('#pmid').val() +'/'+$('#cid').val(),
  406. // sessionProgressUrl: '/code/ajaxuploader/sessionProgress.php',
  407. name: 'uploadfile',
  408. multipart: true,
  409. hoverClass: 'hover',
  410. focusClass: 'focus',
  411. responseType: 'json',
  412. multipleSelect: true,
  413. multiple: true,
  414. maxSize: 10240,
  415. data:{uid:$('#uid').val(),verification:$('#verification').val()},
  416. onSubmit: function(filename, extension) {
  417. var progress = document.createElement('div'),
  418. bar = document.createElement('div'),
  419. fileSize = document.createElement('div'),
  420. wrapper = document.createElement('div'),
  421. progressBox = document.getElementById('progressBox');
  422. progress.className = 'progress progress-striped';
  423. bar.className = 'progress-bar progress-bar-success';
  424. fileSize.className = 'size';
  425. wrapper.className = 'wrapper';
  426. progress.appendChild(bar);
  427. wrapper.innerHTML = '<div class="name">'+filename+'</div>';
  428. wrapper.appendChild(fileSize);
  429. wrapper.appendChild(progress);
  430. progressBox.appendChild(wrapper);
  431. this.setProgressBar(bar);
  432. this.setFileSizeBox(fileSize);
  433. this.setProgressContainer(wrapper);
  434. },
  435. onComplete: function( filename, response ) {
  436. if ( !response ) {
  437. toastr.error('无法上传文件');
  438. msgBox.innerHTML = '无法上传文件';
  439. return;
  440. }
  441. var msgBoxfiles = document.createElement('div');
  442. msgBoxfiles.className = 'msg';
  443. if ( response.success === true ) {
  444. toastr.success(filename + ' 上传成功。');
  445. msgBoxfiles.innerHTML = '<strong>' + escapeTags( filename ) + '</strong>' + ' 上传成功。';
  446. msgBox.appendChild(msgBoxfiles);
  447. var filestr = '<tr><td>'+ filenum +'</td><td><a href="'+ response.files.downurl +'">'+ response.files.filename +'</a></td><td>'+ response.files.size +'</td><td>'+ response.files.time +'</td><td><a id="delatt_'+ response.files.id +'" file_id="'+ response.files.id +'" class="btn btn-default btn-sm" title="删除附件"><span class="glyphicon glyphicon-trash text-danger"></span></a></td></tr>';
  448. $('#filesshow').append(filestr);
  449. filenum++;
  450. setTimeout(function(){
  451. msgBox.removeChild(msgBoxfiles);
  452. },3000);
  453. } else {
  454. if ( response.msg ) {
  455. toastr.error(filename + ' ' + response.msg);
  456. msgBoxfiles.innerHTML = '<strong>' + escapeTags( filename ) + '</strong> ' + response.msg;
  457. msgBox.appendChild(msgBoxfiles);
  458. setTimeout(function(){
  459. msgBox.removeChild(msgBoxfiles);
  460. },3000);
  461. } else {
  462. toastr.error(filename + ' 发生错误,上传失败。');
  463. msgBoxfiles.innerHTML = '<strong>' + escapeTags( filename ) + '</strong>'+ ' 发生错误,上传失败。';
  464. msgBox.appendChild(msgBoxfiles);
  465. setTimeout(function(){
  466. msgBox.removeChild(msgBoxfiles);
  467. },3000);
  468. }
  469. }
  470. },
  471. onError: function() {
  472. var msgBoxfiles = document.createElement('div');
  473. msgBoxfiles.className = 'msg';
  474. toastr.error('无法上传文件');
  475. msgBoxfiles.innerHTML = '无法上传文件';
  476. msgBox.appendChild(msgBoxfiles);
  477. setTimeout(function(){
  478. msgBox.removeChild(msgBoxfiles);
  479. },3000);
  480. }
  481. });
  482. //删除附件
  483. $('body').on('click',"a[id^='delatt_']",function (){
  484. var fid = $(this).attr('file_id');
  485. $(this).parents('tr').remove();
  486. var newsort = 1;
  487. $('#filesshow tr').each(function(){
  488. $(this).children('td').eq(0).text(newsort);
  489. newsort++;
  490. });
  491. filenum = newsort;
  492. $.ajax({
  493. type: 'post',
  494. url: '/change/file/delete',
  495. data:{fid: fid},
  496. dataType: 'json',
  497. success: function(result){
  498. }
  499. })
  500. });
  501. //让回车提交表单方法失效并改成光标往下
  502. $("body").on('keypress','input',function (e) {
  503. var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
  504. if (keyCode == 13) {
  505. var inputs = $('#tablelist input');
  506. for(var i = 0;i<inputs.length;i++){
  507. // 如果是最后一个,则焦点回到第一个
  508. if(i==(inputs.length-1)){
  509. // inputs[0].focus();
  510. inputs[0].select();
  511. break;
  512. }else if(this == inputs[i]){
  513. // inputs[i+1].focus();
  514. inputs[i+1].select();
  515. break;
  516. }
  517. }
  518. return false;
  519. } else {
  520. return true;
  521. }
  522. });
  523. $("#tablelist input[type=text]").focus(function() {
  524. $(this).select();
  525. });
  526. });
  527. function checksubmit() {
  528. if($('#approvalstatus').val() == 1){
  529. if($('#batchnumber').length >0 && $.trim($('#batchnumber').val()) == ''){
  530. toastr.error('批复编号不能为空');
  531. return false;
  532. }
  533. }
  534. }
  535. </script>
  536. </body>