adds.html 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  6. <title>新建</title>
  7. <link rel="stylesheet" th:href="@{/lib/layui/css/layui.css}" media="all">
  8. <link rel="stylesheet" th:href="@{/css/public.css}" media="all">
  9. <link rel="stylesheet" th:href="@{/lib/font-awesome-4.7.0/css/font-awesome.min.css}" media="all">
  10. <style>
  11. body {
  12. background-color: #ffffff;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <form class="layui-form" action="" lay-filter="formDemo">
  18. <div class="layui-form layuimini-form" style="padding-bottom: 100px">
  19. <div class="layui-form-item layui-inline" style="width: 100%">
  20. <label class="layui-form-label required" style="width: 15%">年度费用已报账</label>
  21. <div class="layui-input-inline" style="width: 70%">
  22. <input type="hidden" id="rws" name="rws" class="layui-input" lay-verify="required"
  23. lay-reqtext="任务书不能为空">
  24. <input type="hidden" id="rwsmc" name="rwsmc" class="layui-input">
  25. <select name="ysrws" id="ysrws" lay-filter="ysrws">
  26. <option value="">-- 情选择年度预算 --</option>
  27. <option value="-1">[浏览]</option>
  28. </select>
  29. </div>
  30. </div>
  31. <div class="layui-form-item layui-inline" style="width: 100%">
  32. <label class="layui-form-label required" style="width: 15%">费用类别</label>
  33. <div class="layui-input-inline" style="width: 70%">
  34. <input type="hidden" id="fjmc" name="fjmc" class="layui-input">
  35. <input type="hidden" id="fylb" name="fylb" class="layui-input">
  36. <input type="text" id="fylbmc" name="fylbmc" lay-verify="required"
  37. lay-reqtext="费用类别不能为空" class="layui-input" placeholder="请选择费用类别..." readonly>
  38. </div>
  39. </div>
  40. <div class="layui-form-item layui-inline" style="width: 100%">
  41. <label class="layui-form-label required" style="width: 15%">合同</label>
  42. <div class="layui-input-inline" style="width:30%">
  43. <input type="hidden" id="htmc" name="htmc" class="layui-input" lay-verify="required"
  44. lay-reqtext="合同名称不能为空">
  45. <input type="hidden" id="htes" name="htes" class="layui-input">
  46. <select name="ht" id="ht" lay-filter="ht" lay-verify="required" lay-reqtext="合同不能为空" lay-search=“”>
  47. <option value="">-- 请选择合同 --</option>
  48. <option value="-1">[浏览]</option>
  49. </select>
  50. </div>
  51. <label class="layui-form-label required" style="width: 10%">合同金额(万元)</label>
  52. <div class="layui-input-inline" style="width: 25%">
  53. <input type="number" id="htje" name="htje" class="layui-input" lay-verify="required"
  54. lay-reqtext="合同金额不能为空" autocomplete="off" placeholder="请填入合同金额..." readonly>
  55. </div>
  56. </div>
  57. <div class="layui-form-item layui-inline" style="width: 100%">
  58. <label class="layui-form-label required" style="width: 15%">付款计划</label>
  59. <div class="layui-input-inline" style="width: 30%">
  60. <select name="fkjh" id="fkjh" lay-filter="fkjh" lay-verify="required" lay-reqtext="付款计划不能为空">
  61. <option value="">-- 请先选择合同,再选择付款计划 --</option>
  62. </select>
  63. </div>
  64. <label class="layui-form-label required" style="width: 10%;">本次付款金额(万元)</label>
  65. <div class="layui-input-inline" style="width: 25%">
  66. <input type="number" id="bcfkje" name="bcfkje" class="layui-input" lay-verify="required" lay-affix="number" placeholder="请填入本次付款金额..."
  67. lay-reqtext="本次付款金额不能为空" autocomplete="off">
  68. </div>
  69. </div>
  70. <div class="layui-form-item layui-inline" style="width: 100%">
  71. <label class="layui-form-label" style="width: 15%">合同文件</label>
  72. <div class="layuimini-container" style="margin-left: 90px; margin-right: 20px; padding-bottom: 10px">
  73. <input type="hidden" id="htwj" name="htwj" class="layui-input">
  74. <div class="layui-btn-group" style="margin-bottom: -8px">
  75. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm upload" id="upLoad1"
  76. lay-data="{fileType:'payhtwj'}"><i class="layui-icon"></i>上传
  77. </button>
  78. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm upload" id="upLoad3"
  79. lay-data="{fileType:'payhtwj'}"><i class="layui-icon"></i>上传
  80. </button>
  81. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="deleteFile1"><i
  82. class="layui-icon"></i>删除
  83. </button>
  84. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnView2"><i
  85. class="layui-icon">&#xe63c;</i>查看
  86. </button>
  87. </div>
  88. <table class="layui-hide" id="currentTableId1" name="currentTableId1" lay-filter="currentTableFilter1"
  89. style="padding-top: 0px;margin-top: 0px"></table>
  90. <label>请在合同管理中修改文件</label>
  91. </div>
  92. </div>
  93. <div class="layui-form-item layui-inline" style="width: 100%">
  94. <label class="layui-form-label" style="width: 15%">验收资料</label>
  95. <div class="layuimini-container" style="margin-left: 90px; margin-right: 20px; padding-bottom: 10px">
  96. <input type="hidden" id="yszl" name="yszl" class="layui-input">
  97. <div class="layui-btn-group" style="margin-bottom: -8px">
  98. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm upload" id="upLoad2"
  99. lay-data="{fileType:'payyszl'}"><i class="layui-icon"></i>上传
  100. </button>
  101. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="deleteFile2"><i
  102. class="layui-icon"></i>删除
  103. </button>
  104. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="btnView2"><i
  105. class="layui-icon">&#xe63c;</i>查看
  106. </button>
  107. </div>
  108. <table class="layui-hide" id="currentTableId2" name="currentTableId2" lay-filter="currentTableFilter2"
  109. style="padding-top: 0px;margin-top: 0px"></table>
  110. <label>需上传合同约定的技术报告、测试报告、第三方检测报告、图纸、文宣专利等乙方应提供成果;外委验收意见(包括完成情况表及专家签名)。</label>
  111. </div>
  112. </div>
  113. <!-- 右侧悬浮按钮 -->
  114. <div class="right-bottom-btn">
  115. <button type="button" class="layui-btn" lay-submit lay-filter="saveBtn">
  116. <i class="layui-icon layui-icon-ok"></i>保存
  117. </button>
  118. <button type="button" class="layui-btn" lay-filter="cancleBtn">
  119. <i class="layui-icon layui-icon-close"></i>取消
  120. </button>
  121. </div>
  122. </div>
  123. </form>
  124. <script>
  125. var bcfkje = document.getElementById('bcfkje').value;
  126. if (bcfkje < 0){
  127. layer.msg('本次付款金额不能小于0.00!',{icon: 2});
  128. document.getElementById('bcfkje').value == '';
  129. }else if (bcfkje == 0){
  130. layer.msg('本次付款金额不能等于0.00',{icon:2});
  131. }
  132. </script>
  133. <script th:src="@{/lib/jquery-3.4.1/jquery-3.4.1.min.js}" charset="utf-8"></script>
  134. <script th:src="@{/lib/layui/layui.js}" charset="utf-8"></script>
  135. <script th:src="@{/lib/coco-message/coco-message.js}" charset="utf-8"></script>
  136. <script th:src="@{/lib/xm-select-v1.2.2/xm-select.js}" charset="utf-8"></script>
  137. <script th:src="@{/js/lay-config.js}" charset="utf-8"></script>
  138. <script th:src="@{/lib/sweetalert/sweetalert-master/docs/assets/sweetalert/sweetalert.min.js}" charset="utf-8"></script>
  139. <script type="text/javascript" th:inline="javascript">
  140. AjaxUtil.ctx = /*[[@{/}]]*/'';
  141. var travelExpense = [];//差旅费
  142. var updateflag = 0;//更新标志
  143. layui.use(['form', 'table', 'upload','tableSelect'], function () {
  144. var form = layui.form,
  145. table = layui.table,
  146. layer = layui.layer,
  147. upload = layui.upload,
  148. tableSelect = layui.tableSelect;
  149. var xmApproval = parent.getXmApproval();
  150. let htList = ' ';
  151. var ysId = 1;
  152. $("#fysq").val(xmApproval.fysq);
  153. $("#fysqmc").val(xmApproval.fysqmc);
  154. $("#rws").val(xmApproval.rws);
  155. $("#rwsmc").val(xmApproval.rwsmc);
  156. // 用于存放验收资料文件
  157. var dataYszl = new Array();
  158. // 用于存放合同文件
  159. var dataHtwj = new Array();
  160. //监听合同
  161. form.on('select(ht)', function (data) {
  162. var rws = document.getElementById('rwsmc').value;
  163. if (rws === null){
  164. layer.msg('请先选择任务书!');
  165. return false;
  166. }
  167. var len = $("#fkjh")[0].length;
  168. console.log('len'+len);
  169. while (len > 1) {
  170. $("#fkjh")[0].options[--len].remove();
  171. }
  172. if (data.value == "") {
  173. $("#htje").val("");
  174. } else {
  175. var htList = [[${htList}]];
  176. for (let ht of htList) {
  177. if (ht.id == data.value) {
  178. $("#htje").val(ht.htje);
  179. var wj = JSON.parse(ht.wj);
  180. var yszl = JSON.parse(ht.yszl);
  181. dataHtwj.splice(0, dataHtwj.length)
  182. dataYszl.splice(0, dataYszl.length)
  183. dataHtwj.push.apply(dataHtwj, wj);
  184. dataYszl.push.apply(dataYszl, yszl);
  185. console.log(currTable1)
  186. currTable1.reload();
  187. currTable2.reload();
  188. break;
  189. }
  190. }
  191. $.ajax({
  192. url: AjaxUtil.ctx + 'prjPayplan/list/' + data.value,
  193. type: "post",
  194. async: false,
  195. dataType: "json",
  196. success: function (result) {
  197. while (len > 1)
  198. $("#fkjh")[0].options[--len].remove();
  199. var dataFkjh = result.data.rows;
  200. for (let item of dataFkjh) {
  201. $("#fkjh").append("<option value=" + item.id + ">" + item.jhmc + " / " + item.zfje + "</option>");
  202. }
  203. }
  204. });
  205. }
  206. $("#fkjh").val(0);
  207. form.render('select');
  208. return false;
  209. });
  210. // 用于存放验收资料文件
  211. var dataYszl = new Array();
  212. // 用于存放合同文件
  213. var dataHtwj = new Array();
  214. //任务书
  215. form.on('select(ht)', function (data) {
  216. var rws = document.getElementById('rwsmc').value;
  217. if (rws === null || rws == ''){
  218. layer.msg('请先选择已报账费用申请!');
  219. return false;
  220. }
  221. var xmmc = localStorage.getItem("xmmc");
  222. xmmc = xmmc.replace(/[\/\\]/g, '_');
  223. if (data.value == "-1") {
  224. parent.layer.open({
  225. title: '浏览任务书',
  226. type: 2,
  227. shade: 0.3,
  228. maxmin: true,
  229. area: ['1200px', '750px'],
  230. content: AjaxUtil.ctx + 'staPayapproval/init_projects/'+xmmc,
  231. end: function (obj) {
  232. rwsId = localStorage.getItem("rws");
  233. var updateflag = localStorage.getItem("updateflag");
  234. if (updateflag == "1") {
  235. document.getElementById('htje').value = localStorage.getItem('htje');
  236. var htmc = localStorage.getItem("htmc");
  237. htmc = htmc.replace(/[\/\\]/g, '_');
  238. var id = localStorage.getItem("id");
  239. $("#ht").append("<option value=" + id + " selected>" + htmc + "</option>");
  240. document.getElementById('htmc').value = localStorage.getItem('htmc');
  241. var wjString = localStorage.getItem("wj");
  242. var yszlString = localStorage.getItem("yszl");
  243. var wj = JSON.parse(wjString);
  244. var yszl = JSON.parse(yszlString);
  245. dataHtwj.splice(0, dataHtwj.length);
  246. dataYszl.splice(0, dataYszl.length);
  247. dataHtwj.push.apply(dataHtwj, wj);
  248. dataYszl.push.apply(dataYszl, yszl);
  249. console.log(currTable1);
  250. currTable1.reload();
  251. currTable2.reload();
  252. $.ajax({
  253. url: AjaxUtil.ctx + 'prjPayplan/list/'+id,
  254. type: "post",
  255. async: false,
  256. dataType: "json",
  257. success: function (result) {
  258. var dataFkjh = result.data.rows;
  259. console.log('list'+result);
  260. // 假设data是包含合同数据的数组
  261. // 通过id获取select元素的DOM对象
  262. console.log(dataFkjh);
  263. var selectElement = document.getElementById('fkjh');
  264. // 清空select元素的选项
  265. selectElement.innerHTML = '';
  266. // 添加一个默认的“请选择”选项
  267. var defaultOption = document.createElement('option');
  268. defaultOption.value = '';
  269. defaultOption.innerText = '请选择';
  270. defaultOption.selected = true; // 设置为默认选中
  271. selectElement.appendChild(defaultOption);
  272. // 遍历数据,创建并添加option元素到select元素中
  273. dataFkjh.forEach(function(item) {
  274. var optionElement = document.createElement('option');
  275. optionElement.value = item.id;
  276. console.log(item.yfkje)
  277. if (item.yfkje==item.zfje){
  278. optionElement.disabled = true; // 设置为不可选择
  279. }else if (item.yfkje>item.zfje){
  280. optionElement.disabled = true; // 设置为不可选择
  281. alert('该合同下名称为'+item.jhmc+'的付款计划关联的付款申请,总付款额大于付款计划金额,已付款金额为'+item.yfkje+'万元,请联系系统管理员处理该问题!!')
  282. }
  283. if (item.yfkje==null){
  284. item.yfkje = 0
  285. }
  286. optionElement.innerText = item.jhmc+' / '+item.zfje+'/'+item.yfkje;
  287. selectElement.appendChild(optionElement);
  288. });
  289. }
  290. });
  291. } else {
  292. $("#ht").val(0);
  293. $("#htes").val('');
  294. $("#hts").val('');
  295. $("#htes").val('');
  296. }
  297. form.render();
  298. }
  299. });
  300. }
  301. return false;
  302. });
  303. //任务书
  304. form.on('select(ysrws)', function (data) {
  305. var len = $("#ysrws")[0].length;
  306. while (len > 2)
  307. $("#ysrws")[0].options[--len].remove();
  308. if (data.value == "") {
  309. $("#ysrws").val(0);
  310. $("#rws").val('');
  311. $("#rwsmc").val('');
  312. $("#qs").val('');
  313. $("#wc").val('');
  314. $("#xmzxq").val('');
  315. $("#xmmc").val('');
  316. $("#erpbh").val('');
  317. $("#xmlx").val('');
  318. $("#xmlxmc").val('');
  319. $("#xmfzr").val('');
  320. $("#xmfzrxm").val('');
  321. $("#ssbm").val('');
  322. $("#ssbmmc").val('');
  323. $("#rwsys").val('');
  324. form.render();
  325. }
  326. if (data.value == "-1") {
  327. parent.layer.open({
  328. title: '浏览任务书',
  329. type: 2,
  330. shade: 0.3,
  331. maxmin: true,
  332. area: ['1200px', '750px'],
  333. content: AjaxUtil.ctx + 'staPayapproval/init_project',
  334. end: function (obj) {
  335. rwsId = localStorage.getItem("rws");
  336. var updateflag = localStorage.getItem("updateflag");
  337. if (updateflag == "1") {
  338. var rwsmc = localStorage.getItem("xmmc");
  339. var fysqid = localStorage.getItem("id");
  340. $("#ysrws").append("<option value=" + fysqid + " selected>" + rwsmc + "</option>");
  341. $("#rws").val(fysqid);
  342. $("#rwsmc").val(rwsmc);
  343. $("#fysqmc").val(localStorage.getItem("fysqmc"));
  344. $('#fysq').val(fysqid);
  345. localStorage.setItem("fyId", fysqid);
  346. console.log('这个NYSid是'+fysqid);
  347. tableSelect.render({
  348. elem: '#fylbmc',
  349. checkedKey: 'id',
  350. searchKey: 'mc',
  351. searchPlaceholder: '搜索费用名称',
  352. table: {
  353. url: AjaxUtil.ctx + 'staBudgetapproval/getFyBz/' + fysqid +'/?searchKey='+tableSelect.searchKey,
  354. method: 'get',
  355. cols: [
  356. [
  357. {type: "radio", fixed: 'left',title: '😊'},
  358. {type: 'numbers', align: 'center',title: '序号'},
  359. {field: 'fymc', width: '25%', title: '费用名称'},
  360. {title: '报账总金额(万元)',align: 'right',width: '20%',templet:function (row) {
  361. if (row.bzze == ' '){
  362. return 0.00;
  363. }else if (row.bzze == null){
  364. return 0.00;
  365. }else {
  366. return parseFloat(row.bzze).toFixed(2);
  367. }
  368. }},
  369. {title: '已付总额(万元)',width: '20%',align: 'right',templet:function (row) {
  370. if (row.yfze == null || row.yfze == ' '){
  371. return 0.00;
  372. }
  373. return row.yfze;
  374. }},
  375. {title: '可申请额度(万元)',align: 'right',width: '20%',templet:function (row) {
  376. const bzze = parseFloat(row.bzze);
  377. const yfze = parseFloat(row.yfze);
  378. if (isNaN(bzze) || isNaN(yfze)) {
  379. return 0.00;
  380. }
  381. const bzzeFormatted = bzze.toFixed(2);
  382. const yfzeFormatted = yfze.toFixed(2);
  383. const ye = bzzeFormatted - yfzeFormatted;
  384. console.log('ye:'+ye);
  385. if (ye > 0) {
  386. return parseFloat(ye.toFixed(2));
  387. }
  388. return 0.00;
  389. }
  390. }
  391. ]
  392. ]
  393. },
  394. done: function (elem, data) {
  395. var NEWJSON = [];
  396. var NEWJSON1 = [];
  397. var NEWJSON2 = [];
  398. var NEWJSON3 = [];
  399. layui.each(data.data, function (index, item) {
  400. NEWJSON.push(item.fymc);
  401. NEWJSON1.push(item.id);
  402. NEWJSON2.push(item.fjmc);
  403. NEWJSON3.push(item.ysje);
  404. })
  405. elem.val(NEWJSON.join(","));
  406. $("#fylb").val(NEWJSON1.join(","));
  407. $("#fjmc").val(NEWJSON2.join(","));
  408. // 假设 tableSelect 实例挂载在 window 下某个变量,尝试关闭
  409. if (typeof window.tableSelectInstance === 'object') {
  410. window.tableSelectInstance.close();
  411. }
  412. }
  413. });
  414. } else {
  415. $("#ysrws").val(0);
  416. $("#rws").val('');
  417. $("#rwsmc").val('');
  418. $("#fysqmc").val('');
  419. }
  420. form.render();
  421. }
  422. });
  423. }
  424. return false;
  425. });
  426. $("#bcfkje").blur(function (e) {
  427. var bcfkje = parseFloat(e.delegateTarget.value);
  428. if (bcfkje <= 0) {
  429. layer.msg('金额不能为负数或0的数字,请重新输入!',{icon:2});
  430. e.delegateTarget.value = "";
  431. }else if (bcfkje > 1000){
  432. layer.msg('本次付款金额单位为万元,请确认当前数据无误。',{icon:2});
  433. }
  434. });
  435. //合同文件
  436. var currTable1 = table.render({
  437. elem: '#currentTableId1',
  438. data: dataHtwj,
  439. cols: [
  440. [
  441. {type: "checkbox", align: 'center'},
  442. {type: 'numbers', align: 'center',title: '序号'},
  443. {field: 'wjm', title: '文件名', width: '30%'},
  444. {field: 'scrq', title: '上传日期', width: '15%', align: 'center'},
  445. {field: 'sm', title: '说明', edit: 'text'}
  446. ]
  447. ],
  448. autoSort: false,
  449. limits: [10, 15, 20, 25, 50, 100],
  450. limit: 10,
  451. page: false,
  452. skin: 'grid',
  453. done: function (res, curr, count) { // done为数据渲染完的回调
  454. console.log('currTable1渲染弯沉')
  455. console.log(dataHtwj)
  456. }
  457. });
  458. //文件上传
  459. upload.render({
  460. elem: '#upLoad1' //绑定元素
  461. , url: AjaxUtil.ctx + 'fileupload/upload'
  462. , methd: 'post'
  463. , accept: 'file'
  464. , multiple: true // 允许批量上传
  465. , data: {}
  466. , done: function (res) {
  467. if (0 === res.code) {
  468. var curData = {
  469. "wjm": res.data.fileName,
  470. "scrq": res.data.fileDate,
  471. "Url": res.data.fileUrl,
  472. "sm": res.data.sm
  473. };
  474. dataHtwj.push(curData);
  475. currTable1.reload();
  476. layer.msg('"'+res.data.fileName+'"'+'上传成功!', { icon: 1 });
  477. } else
  478. layer.alert("上传文件出现错误!");
  479. }
  480. , error: function () {
  481. layer.alert("上传文件出现错误!");
  482. }
  483. , before: function (res) {
  484. let fileType = this.fileType;
  485. this.data.fileType = fileType;
  486. }
  487. });
  488. $("button[lay-filter='deleteFile1']").click(function () {
  489. if (dataHtwj.length == 0)
  490. return;
  491. var checkStatus = table.checkStatus('currentTableId1')
  492. , data = checkStatus.data;
  493. if (data == null || data.length === 0) {
  494. Message.warning("请选择要删除的文件!", 1000);
  495. return;
  496. }
  497. for (var i = 0; i < dataHtwj.length; i++) {
  498. var item = dataHtwj[i];
  499. if (item.LAY_CHECKED) {//条件:选中
  500. dataHtwj.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  501. i--;
  502. }
  503. }
  504. //刷新表格
  505. currTable1.reload();
  506. });
  507. //双击(合同文件)
  508. table.on('rowDouble(currentTableFilter1)', function (obj) {
  509. window.open(obj.data.Url);
  510. });
  511. //验收资料
  512. var currTable2 = table.render({
  513. elem: '#currentTableId2',
  514. data: dataYszl,
  515. cols: [
  516. [
  517. {type: "checkbox", align: 'center'},
  518. {type: 'numbers', align: 'center',title: '序号'},
  519. {field: 'wjm', title: '文件名', width: '30%'},
  520. {field: 'scrq', title: '上传日期', width: '15%', align: 'center'},
  521. {field: 'sm', title: '说明', edit: 'text'}
  522. ]
  523. ],
  524. autoSort: false,
  525. limits: [10, 15, 20, 25, 50, 100],
  526. limit: 10,
  527. page: false,
  528. skin: 'grid',
  529. done: function (res, curr, count) { // done为数据渲染完的回调
  530. console.log('currTable2渲染弯沉')
  531. }
  532. });
  533. //文件上传
  534. upload.render({
  535. elem: '#upLoad2' //绑定元素
  536. , url: AjaxUtil.ctx + 'fileupload/upload'
  537. , methd: 'post'
  538. , accept: 'file'
  539. , data: {}
  540. , done: function (res) {
  541. if (0 === res.code) {
  542. var curData = {
  543. "wjm": res.data.fileName,
  544. "scrq": res.data.fileDate,
  545. "Url": res.data.fileUrl,
  546. "sm": res.data.sm
  547. };
  548. dataYszl.push(curData);
  549. currTable2.reload();
  550. layer.msg('"'+res.data.fileName+'"'+'上传成功!', { icon: 1 });
  551. } else
  552. layer.alert("上传文件出现错误!");
  553. }
  554. , error: function () {
  555. layer.alert("上传文件出现错误!");
  556. }
  557. , before: function (res) {
  558. let fileType = this.fileType;
  559. this.data.fileType = fileType;
  560. }
  561. });
  562. $("button[lay-filter='deleteFile2']").click(function () {
  563. if (dataYszl.length == 0)
  564. return;
  565. var checkStatus = table.checkStatus('currentTableId2')
  566. , data = checkStatus.data;
  567. if (data == null || data.length === 0) {
  568. Message.warning("请选择要删除的文件!", 1000);
  569. return;
  570. }
  571. for (var i = 0; i < dataYszl.length; i++) {
  572. var item = dataYszl[i];
  573. if (item.LAY_CHECKED) {//条件:选中
  574. dataYszl.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  575. i--;
  576. }
  577. }
  578. //刷新表格
  579. currTable2.reload();
  580. });
  581. $("button[lay-filter='deleteFile1']").click(function () {
  582. if (dataHtwj.length == 0)
  583. return;
  584. var checkStatus = table.checkStatus('currentTableId1')
  585. , data = checkStatus.data;
  586. if (data == null || data.length === 0) {
  587. Message.warning("请选择要查看的文件!", 1000);
  588. return;
  589. }
  590. for (var i = 0; i < dataHtwj.length; i++) {
  591. var item = dataHtwj[i];
  592. if (item.LAY_CHECKED) {//条件:选中
  593. dataHtwj.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  594. i--;
  595. }
  596. }
  597. //刷新表格
  598. currTable1.reload();
  599. });
  600. //双击(验收资料)
  601. table.on('rowDouble(currentTableFilter2)', function (obj) {
  602. window.open(obj.data.Url);
  603. });
  604. // 监听确认按钮
  605. form.on('submit(saveBtn)', function (data) {
  606. const htje = document.getElementById('htje').value;
  607. var selectElement = document.getElementById("fkjh");
  608. var selectedText = selectElement.options[selectElement.selectedIndex].text.split('/');
  609. const bcfkje = parseFloat(document.getElementById('bcfkje').value);
  610. /* const fysq = document.getElementById('fysq').value;*/
  611. var fkje;
  612. var bzje;
  613. console.log(selectedText[1].replace(/\s+/g, ''))
  614. console.log(selectedText[2].replace(/\s+/g, ''))
  615. if (bcfkje > selectedText[1].replace(/\s+/g, '')){
  616. layer.msg('本次付款金额,不能大于付款计划金额!',{icon:2});
  617. return ;
  618. }
  619. if (bcfkje+parseFloat(selectedText[2].replace(/\s+/g, ''))>selectedText[1].replace(/\s+/g, '')){
  620. layer.msg('该付款计划下已申请付款金额加上本次付款金额,大于付款计划金额!',{icon:2});
  621. return ;
  622. }
  623. /* $.ajax({
  624. url: AjaxUtil.ctx + 'staPayapproval/getYFKJE/'+fysq,
  625. type: "post",
  626. async: false,
  627. dataType: "json",
  628. success: function (result) {
  629. console.log(result);
  630. fkje = result.fkje
  631. bzje = result.bzje
  632. }
  633. })
  634. if ( (fkje+bcfkje) > bzje){
  635. Message.warning('该报账下付款申请已申请总金额已超出报账金额!',2000);
  636. return ;
  637. }*/
  638. //合同文件
  639. var dataWB_Htwj = [];
  640. for (const item of dataHtwj) {
  641. var dfWb = {
  642. "id": item.id,
  643. "wjm": item.wjm,
  644. "Url": item.Url,
  645. "scrq": item.scrq,
  646. "sm": item.sm
  647. };
  648. dataWB_Htwj.push(dfWb);
  649. }
  650. $("#htwj").val(JSON.stringify(dataWB_Htwj));
  651. data.field.htwj = JSON.stringify(dataWB_Htwj);
  652. console.log(data.field);
  653. //验收资料
  654. var dataWB_Yszl = [];
  655. for (const item of dataYszl) {
  656. var dfWb = {
  657. "id": item.id,
  658. "wjm": item.wjm,
  659. "Url": item.Url,
  660. "scrq": item.scrq,
  661. "sm": item.sm
  662. };
  663. dataWB_Yszl.push(dfWb);
  664. }
  665. $("#yszl").val(JSON.stringify(dataWB_Yszl));
  666. data.field.yszl = JSON.stringify(dataWB_Yszl);
  667. console.log(data.field);
  668. var index = layer.load(0, {shade: 0.1});
  669. AjaxUtil.post({
  670. url: AjaxUtil.ctx + "staPayapproval/doAdd",
  671. data: data.field,
  672. success: function (res) {
  673. layer.close(index);
  674. if (res.code === 0) {
  675. parent.setUpdateFlag();
  676. } else {
  677. layer.msg(res.message,{icon:2});
  678. return ;
  679. }
  680. parent.layer.close(parent.layer.getFrameIndex(window.name));
  681. },
  682. error: function (error) {
  683. Message.error(error.message, 1000)
  684. }
  685. });
  686. return false;
  687. });
  688. // 监听取消按钮
  689. $("button[lay-filter='cancleBtn']").click(function () {
  690. var iframeIndex = parent.layer.getFrameIndex(window.name);
  691. parent.layer.close(iframeIndex);
  692. });
  693. });
  694. function setTravelExpense(expense) {
  695. travelExpense = expense;
  696. }
  697. function getTravelExpense() {
  698. return travelExpense;
  699. }
  700. function setUpdateFlag() {
  701. updateflag = 1;
  702. }
  703. </script>
  704. </body>
  705. </html>