add.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  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-tab layui-tab-card">-->
  19. <!-- <ul class="layui-tab-title">-->
  20. <!-- <li class="layui-this">常规</li>-->
  21. <!-- <li>计划</li>-->
  22. <!-- </ul>-->
  23. <!-- <div class="layui-tab-content">-->
  24. <!--常规开始-->
  25. <!-- <div class="layui-tab-item layui-show">-->
  26. <!-- <form class="layui-form" action="" lay-filter="formDemo">-->
  27. <div class="layui-form layuimini-form" style="padding-bottom: 100px">
  28. <div class="layui-form-item layui-inline" style="width: 100%">
  29. <label class="layui-form-label required" style="width: 80px">年份</label>
  30. <div class="layui-input-inline" style="width: 360px">
  31. <input type="hidden" name="zb" id="zb" class="layui-input" th:value="${xm}">
  32. <input type="hidden" name="qs" id="qs" class="layui-input" th:value="${qs}">
  33. <input type="hidden" name="wc" id="wc" class="layui-input" th:value="${wc}">
  34. <input type="hidden" id="ysjecz" name="ysjecz" class="layui-input" th:value="${ysjecz}">
  35. <input type="number" id="nf" name="nf" maxlength="4" lay-verify="required" lay-reqtext="年份不能为空" class="layui-input">
  36. </div>
  37. <label class="layui-form-label " style="width: 80px">序号</label>
  38. <div class="layui-input-inline" style="width: 360px">
  39. <input type="text" id="xh" name="xh" autocomplete="off" class="layui-input" >
  40. </div>
  41. </div>
  42. <div class="layui-form-item layui-inline" style="width: 100%">
  43. <label class="layui-form-label required" style="width: 80px">出资单位</label>
  44. <div class="layui-input-inline" style="width: 360px">
  45. <input type="hidden" name="czdw" id="czdw" class="layui-input">
  46. <input type="text" id="dwmc" name="dwmc" lay-verify="required" lay-reqtext="出资单位不能为空" class="layui-input" readonly>
  47. </div>
  48. <label class="layui-form-label required" style="width: 80px">出资金额(万)</label>
  49. <div class="layui-input-inline" style="width: 360px">
  50. <input type="number" id="czje" name="czje" lay-verify="required" lay-reqtext="出资金额不能为空" class="layui-input" readonly>
  51. </div>
  52. </div>
  53. <div class="layui-form-item layui-inline" style="width: 100%">
  54. <label class="layui-form-label" style="width: 80px">承担单位</label>
  55. <div class="layuimini-container" style="width: 840px; margin-left: 109px">
  56. <div id="toolbarSheme" class="layui-btn-group" style="margin-bottom: -8px">
  57. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subAdd"><i class="layui-icon"></i>新建</button>
  58. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subEdit"><i class="layui-icon"></i>编辑</button>
  59. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subView"><i class="layui-icon">&#xe63c;</i>查看</button>
  60. <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" lay-filter="subDelete"><i class="layui-icon"></i>删除</button>
  61. </div>
  62. <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter" style="padding-top: 0px;margin-top: 0px"></table>
  63. </div>
  64. </div>
  65. <!-- 右侧悬浮按钮 -->
  66. <div class="right-bottom-btn">
  67. <button class="layui-btn" lay-submit lay-filter="saveBtn">
  68. <i class="layui-icon layui-icon-ok"></i>保存
  69. </button>
  70. <button class="layui-btn" lay-filter="cancleBtn">
  71. <i class="layui-icon layui-icon-close"></i>取消
  72. </button>
  73. </div>
  74. </div>
  75. <!-- </form>-->
  76. <!-- </div>-->
  77. <!--常规结束-->
  78. <!-- </div>-->
  79. <!-- </div>-->
  80. </form>
  81. <script id="tpl1" type="text/html">
  82. <input type="text" id="mc" name="mc" lay-verify="required" lay-reqtext="单位不能为空" class="layui-input">
  83. </script>
  84. <script th:src="@{/lib/jquery-3.4.1/jquery-3.4.1.min.js}" charset="utf-8"></script>
  85. <script th:src="@{/lib/layui/layui.js}" charset="utf-8"></script>
  86. <script th:src="@{/lib/coco-message/coco-message.js}" charset="utf-8"></script>
  87. <script th:src="@{/lib/xm-select-v1.2.2/xm-select.js}" charset="utf-8"></script>
  88. <script th:src="@{/js/lay-config.js}" charset="utf-8"></script>
  89. <script type="text/javascript" th:inline="javascript">
  90. AjaxUtil.ctx = /*[[@{/}]]*/'';
  91. var czfaId = -1;
  92. var updateflag = 0;
  93. var cdCompany = [];
  94. layui.use(['form', 'table', 'tableSelect'], function () {
  95. var form = layui.form,
  96. table = layui.table,
  97. layer = layui.layer,
  98. tableSelect = layui.tableSelect;
  99. $("#nf").val(new Date().getFullYear());
  100. //出资单位
  101. tableSelect.render({
  102. elem: '#dwmc',
  103. checkedKey: 'id',
  104. searchKey: 'mc',
  105. searchPlaceholder: '搜索单位',
  106. table: {
  107. url: AjaxUtil.ctx + 'baseCompany/dwlist',
  108. cols: [
  109. [
  110. {type: 'radio'},
  111. {type: 'numbers', align: 'center'},
  112. {field: 'mc', title: '单位'}
  113. ]
  114. ]
  115. },
  116. done: function (elem, data) {
  117. var NEWJSON = [];
  118. var NEWJSON1 = [];
  119. layui.each(data.data, function (index, item) {
  120. NEWJSON.push(item.mc);
  121. NEWJSON1.push(item.id);
  122. });
  123. elem.val(NEWJSON.join(","));
  124. $("#czdw").val(NEWJSON1.join(","));
  125. }
  126. });
  127. // 用于存放表格数据
  128. var tableData=new Array();
  129. //承担单位
  130. table.render({
  131. elem: '#currentTableId',
  132. data: tableData,
  133. cols: [
  134. [
  135. {type: "checkbox"},
  136. {type: 'numbers', align: 'center'},
  137. {field: 'xh', title: '序号', width: '8%'},
  138. {field: 'dwmc', title: '单位', width: '40%'},
  139. {field: 'skje', title: '收款金额(万)', width: '18%'},
  140. {field: 'bz', title: '备注', width: '20%'}
  141. ]
  142. ],
  143. autoSort: true,
  144. initSort: {
  145. field: 'xh', //排序字段
  146. type: 'asc' //排序方式:desc 降序,asc 升序
  147. }
  148. });
  149. //监听新建按钮(承担单位)
  150. $("button[lay-filter='subAdd']").click(function(){
  151. var index = layer.open({
  152. title: '新建承担单位',
  153. type: 2,
  154. // maxmin: true,
  155. shade: 0.2,
  156. area: [layerwidth + 'px', layerheight + 'px'],
  157. content: AjaxUtil.ctx + 'prjUndertakecompany/forAdd/' + parseInt($("#zb").val()) + '?ysjecz='+$("#ysjecz").val() + '&czjecz=' +$("#czje").val(),
  158. end: function (index) {
  159. if (updateflag == 1) {
  160. updateflag = 0;
  161. var oldData = table.cache["currentTableId"];
  162. var item = {
  163. "xh": cdCompany.xh,
  164. "dw": cdCompany.dw,
  165. "dwmc": cdCompany.dwmc,
  166. "skje": cdCompany.skje,
  167. "bz": cdCompany.bz
  168. };
  169. }
  170. console.log(oldData);
  171. //刷新表格
  172. oldData.push(item);
  173. table.reload('currentTableId',{
  174. data : oldData
  175. });
  176. //出资金额
  177. var czje = 0;
  178. for (let item of oldData) {
  179. czje += parseFloat(item.skje);
  180. }
  181. $("#czje").val(czje);
  182. }
  183. });
  184. });
  185. // 监听编辑按钮(承担单位)
  186. $("button[lay-filter='subEdit']").click(function(){
  187. var companys = table.cache["currentTableId"];
  188. if(companys.length == 0)
  189. return;
  190. var checkStatus = table.checkStatus('currentTableId')
  191. ,data = checkStatus.data;
  192. if (data == null || data.length === 0) {
  193. Message.warning("请选择要编辑的单位!", 1500);
  194. } else if(data.length > 1) {
  195. Message.warning("请选择一条记录进行编辑操作!", 1500);
  196. } else {
  197. cdCompany = {
  198. "xh": data[0].xh,
  199. "dw": data[0].dw,
  200. "dwmc": data[0].dwmc,
  201. "skje": data[0].skje,
  202. "bz": data[0].bz
  203. };
  204. var index = layer.open({
  205. title: '编辑承担单位',
  206. type: 2,
  207. // maxmin: true,
  208. shade: 0.2,
  209. area: [layerwidth + 'px', layerheight + 'px'],
  210. content: AjaxUtil.ctx + 'prjUndertakecompany/forUpdate',
  211. end: function (index)
  212. {
  213. if (updateflag == 1) {
  214. updateflag = 0;
  215. var oldData = table.cache["currentTableId"];
  216. var currCompany = {
  217. "xh": cdCompany.xh,
  218. "dw": cdCompany.dw,
  219. "dwmc": cdCompany.dwmc,
  220. "skje": cdCompany.skje,
  221. "bz": cdCompany.bz
  222. };
  223. for (var i = 0; i < oldData.length; i++) {
  224. var item = oldData[i];
  225. if (item.LAY_CHECKED) {//条件:选中
  226. oldData.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  227. break;
  228. }
  229. }
  230. //刷新表格
  231. var currData = oldData;
  232. currData.push(currCompany);
  233. table.reload('currentTableId', {
  234. data: currData
  235. });
  236. //出资金额
  237. var czje = 0;
  238. for (let item of currData) {
  239. czje += parseFloat(item.skje);
  240. }
  241. $("#czje").val(czje);
  242. }
  243. }
  244. });
  245. }
  246. });
  247. // 监听查看按钮(承担单位)
  248. $("button[lay-filter='subView']").click(function(){
  249. var companys = table.cache["currentTableId"];
  250. if(companys.length == 0)
  251. return;
  252. var checkStatus = table.checkStatus('currentTableId')
  253. ,data = checkStatus.data;
  254. if (data == null || data.length === 0) {
  255. Message.warning("请选择要浏览的单位!", 1500);
  256. } else if(data.length > 1) {
  257. Message.warning("请选择一条记录进行浏览!", 1500);
  258. } else {
  259. cdCompany = {
  260. "xh": data[0].xh,
  261. "dw": data[0].dw,
  262. "dwmc": data[0].dwmc,
  263. "skje": data[0].skje,
  264. "bz": data[0].bz
  265. };
  266. var index = layer.open({
  267. title: '浏览承担单位',
  268. type: 2,
  269. // maxmin: true,
  270. shade: 0.2,
  271. area: [layerwidth + 'px', layerheight + 'px'],
  272. content: AjaxUtil.ctx + 'prjUndertakecompany/forView'
  273. });
  274. }
  275. });
  276. // 监听删除按钮(承担单位)
  277. $("button[lay-filter='subDelete']").click(function(){
  278. var companys = table.cache["currentTableId"];
  279. if(companys.length == 0)
  280. return;
  281. var checkStatus = table.checkStatus('currentTableId')
  282. ,data = checkStatus.data;
  283. if (data == null || data.length === 0) {
  284. Message.warning("请选择要删除的单位!", 1000);
  285. return;
  286. }
  287. var oldData = table.cache["currentTableId"];
  288. for (var i = 0; i < oldData.length; i++) {
  289. var item = oldData[i];
  290. if (item.LAY_CHECKED) {//条件:选中
  291. oldData.splice(i, 1);//移除后后造成数组下标索引发生变化,所以下面需要i--
  292. i--;
  293. }
  294. }
  295. var currData = oldData;
  296. table.reload('currentTableId', {
  297. data: currData
  298. });
  299. //出资金额
  300. if(currData.length == 0)
  301. $("#czje").val('');
  302. else {
  303. var czje = 0;
  304. for (let item of currData) {
  305. czje += parseFloat(item.skje);
  306. }
  307. $("#czje").val(czje);
  308. }
  309. });
  310. //双击(承担单位)
  311. table.on('rowDouble(currentTableFilter)', function (obj) {
  312. var data = obj.data;
  313. cdCompany = {
  314. "xh": data.xh,
  315. "dw": data.dw,
  316. "dwmc": data.dwmc,
  317. "skje": data.skje,
  318. "bz": data.bz
  319. };
  320. var index = layer.open({
  321. title: '浏览承担单位',
  322. type: 2,
  323. // maxmin: true,
  324. shade: 0.2,
  325. area: [layerwidth + 'px', layerheight + 'px'],
  326. content: AjaxUtil.ctx + 'prjUndertakecompany/forView',
  327. end: function () {
  328. layer.close(index);
  329. }
  330. });
  331. });
  332. // 监听确认按钮
  333. form.on('submit(saveBtn)', function (data) {
  334. var nf = $("#nf").val();
  335. var qs = $("#qs").val();
  336. var wc = $("#wc").val();
  337. if(nf < qs || nf > wc) {
  338. Message.error(nf + "不在项目起止时间内!", 1500);
  339. return false;
  340. }
  341. var url = AjaxUtil.ctx;
  342. if(czfaId == -1)
  343. url += "prjFeescheme/doAdd";
  344. else
  345. url += "prjFeescheme/doUpdate";
  346. //基本信息
  347. var index = layer.load(0, {shade: 0.1});
  348. AjaxUtil.post({
  349. url: url,
  350. data: data.field,
  351. success: function (res) {
  352. layer.close(index);
  353. if (res.code === 0) {
  354. Message.success(1500, res.message, function () {
  355. czfaId = res.data.id;
  356. $("#id").val(czfaId);
  357. parent.setUpdateFlag();
  358. //承担单位
  359. var companys = [];
  360. var oldCompanys = table.cache["currentTableId"];
  361. for (const item of oldCompanys) {
  362. var company = {
  363. "zb": czfaId,
  364. "xh": item.xh,
  365. "dw": item.dw,
  366. "dwmc": item.dwmc,
  367. "skje": item.skje,
  368. "bz": item.bz
  369. };
  370. companys.push(company);
  371. }
  372. AjaxUtil.post({
  373. url: AjaxUtil.ctx + "prjUndertakecompany/batchInsert/" + czfaId,
  374. contentType: "application/json",
  375. data: JSON.stringify(companys),
  376. success: function (res) {
  377. if (res.code === 0) {
  378. // Message.success(1500, res.message, function () {
  379. //
  380. // });
  381. } else {
  382. // Message.error(res.message, 1000);
  383. }
  384. },
  385. error: function (error) {
  386. }
  387. });
  388. //关闭当前层
  389. var iframeIndex = parent.layer.getFrameIndex(window.name);
  390. parent.layer.close(iframeIndex);
  391. });
  392. } else {
  393. Message.error(res.message, 1000);
  394. }
  395. },
  396. error: function (error) {
  397. layer.close(index);
  398. }
  399. });
  400. return false;
  401. });
  402. // 监听取消按钮
  403. $("button[lay-filter='cancleBtn']").click(function(){
  404. var iframeIndex = parent.layer.getFrameIndex(window.name);
  405. parent.layer.close(iframeIndex);
  406. });
  407. });
  408. //设置更新标志
  409. function setUpdateFlag() {
  410. updateflag = 1;
  411. }
  412. function setCdCompany(company) {
  413. cdCompany = company;
  414. }
  415. function getCdCompany() {
  416. return cdCompany;
  417. }
  418. </script>
  419. </body>
  420. </html>