wbslist.jsp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: user
  4. Date: 2019/8/7
  5. Time: 18:39
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <%@ include file="/webpage/include/taglib.jsp"%>
  10. <html>
  11. <head>
  12. <title>wbs</title>
  13. <link rel="stylesheet" href="${ctxp}/static/plugin/assets/layui/css/layui.css">
  14. <link rel="stylesheet" href="${ctxp}/static/plugin/assets/common.css"/>
  15. <script type="text/javascript" src="${ctxp}/static/plugin/assets/jquery-3.2.1.min.js"></script>
  16. </head>
  17. <style>
  18. .btn_out{
  19. width: 100px;
  20. margin: 0;
  21. float: right;
  22. margin-right:2%;
  23. }
  24. .div_main_form{
  25. width: 50%;
  26. margin-left: 10px;
  27. }
  28. .layui-icon-layer{
  29. display: none;
  30. }
  31. .layui-icon-file{
  32. display: none;
  33. }
  34. .layui-table-view .layui-table {width:100%}
  35. </style>
  36. <body style="background-color: white ;height: 100%">
  37. <sys:message content="${message}"/>
  38. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  39. <legend>结算汇总表</legend>
  40. </fieldset>
  41. <div class="" style="margin-left: 10px;margin-right: 10px;">
  42. <table class="layui-hide" id="settlement" lay-filter="settle"></table>
  43. </div>
  44. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  45. <legend>本体部分</legend>
  46. </fieldset>
  47. <div class="" style="margin-left: 10px;margin-right: 10px;margin-top: 10px;">
  48. <c:forEach items="${map.list1}" var="data1" varStatus="index">
  49. <a class="layui-btn" href="${ctx}/jkxl/export?id=${data1.id}">导出</a>
  50. <%--<a class="layui-btn" href="${ctx}/jkxl/import?id=${data1.id}">导入</a>--%>
  51. </c:forEach>
  52. <%--<table:importExcel url="${ctx}/propertycostreminder/propertyCostReminder/import"></table:importExcel>--%>
  53. <table id="table1" class="layui-table" lay-filter="table1"></table>
  54. </div>
  55. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  56. <legend>其他部分</legend>
  57. </fieldset>
  58. <div class="" style="margin-left: 10px;margin-right: 10px;">
  59. <table id="table2" class="layui-table" lay-filter="table2"></table>
  60. </div>
  61. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  62. <legend>未识别部分</legend>
  63. </fieldset>
  64. <div class="" style="margin-left: 10px;width:70%;margin-right: 10px;">
  65. <input hidden="hidden" name="" id="newid" value=""/>
  66. <input hidden="hidden" name="" id="xmmc1" value=""/>
  67. <input hidden="hidden" name="" id="fyje1" value=""/>
  68. <table class="layui-hide" id="xmmc" lay-filter="freestr"></table>
  69. </div>
  70. <div style="width: 100%;height: 100px"></div>
  71. <script type="text/html" id="barDemo">
  72. <a class="layui-btn layui-btn-xs" lay-event="fttz">分摊调整</a>
  73. <a class="layui-btn layui-btn-xs" lay-event="ddtz">单独调整</a>
  74. </script>
  75. <script type="text/html" id="barbtn1">
  76. <%--<c:if test="${not empty map.settlementList}">--%>
  77. <%--<c:forEach items="${map.settlementList}" var="data" varStatus="id">--%>
  78. <%--{{# if(data.status==0){}}--%>
  79. <%--<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="byz">一致</a>--%>
  80. {{# if(d.status==0){}}
  81. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="byz">不一致</a>
  82. {{# }}}
  83. <%--</c:forEach>--%>
  84. <%--</c:if>--%>
  85. </script>
  86. </body>
  87. <script src="${ctxp}/static/plugin/assets/layui/layui.js"></script>
  88. <script>
  89. layui.config({
  90. base: '${ctxp}/static/plugin/assets/'
  91. }).extend({
  92. treetable: 'treetable-lay/treetable'
  93. }).use(['layer', 'table', 'treetable'], function () {
  94. var $ = layui.jquery;
  95. var table = layui.table;
  96. var layer = layui.layer;
  97. var treetable = layui.treetable;
  98. var renderTable1 = function () {
  99. layer.load(2);
  100. treetable.render({
  101. treeColIndex: 1,
  102. treeSpid: -1,
  103. treeIdName: 'id',
  104. treePidName: 'pid',
  105. treeDefaultClose: false,
  106. treeLinkage: false,
  107. elem: '#table1',
  108. <%--url: '${ctxp}/webpage/modules/sys/free/selfwbs.json',--%>
  109. page: false,
  110. cols: [[
  111. {type:'numbers',title: '序号', rowspan: 2, totalRowText: "合计",},
  112. {field: 'wbsys', title: 'WBS要素',width:200, rowspan:'2'},
  113. {field:'wbssbm',width:100, align:'center',rowspan:'2',title:"wbs识别码",rowspan:'2'},
  114. {field:'fbfxysj', align:'center', title: '分部分项(原数据)',colspan:'6'},
  115. {field:'fbfxtch',align:'center',title:'分部分项(调差后)',colspan:'4'},
  116. {field:'fbfxtch',align:'center',title:'共性分摊费用',colspan:'10'},
  117. {field:'hj',align:'center',width:120,title:'合计',rowspan:'2',totalRow: true}
  118. // {templet: '#oper-col', title: 'oper'}
  119. ],[
  120. {field:'hjje', width:120,align:'center',title:'合计金额',totalRow: true},
  121. {field:'zjgcf', width:120,align:'center',title:'直接工程费',totalRow: true},
  122. {field:'rgf1', width:120,align:'center',title:'人工费',totalRow: true},
  123. {field:'cbrcg1', width:120,align:'center',title:'承包人采购',totalRow: true},
  124. {field:'fbrcg1', width:120,align:'center',title:'发包人采购',totalRow: true},
  125. {field:'jxf1', width:120,align:'center',title:'机械费',totalRow: true},
  126. {field:'rgf2', width:120,align:'center',title:'人工费',totalRow: true},
  127. {field:'cbrcg2', width:120,align:'center',title:'承包人采购',totalRow: true},
  128. {field:'fbrcg2', width:120,align:'center',title:'发包人采购',totalRow: true},
  129. {field:'jxf2', width:120,align:'center',title:'机械费',totalRow: true},
  130. {field:'rgf3', width:120,align:'center',title:'人工费',totalRow: true},
  131. {field:'cbrcg3', width:120,align:'center',title:'承包人采购',totalRow: true},
  132. {field:'fbrcg3', width:120,align:'center',title:'发包人采购',totalRow: true},
  133. {field:'jxf3', width:120,align:'center',title:'机械费',totalRow: true},
  134. {field:'csf_1',width:120,title:'措施费-1',align:'center',totalRow: true},
  135. {field:'csf_2',width:120,title:'措施费-2',align:'center',totalRow: true},
  136. {field:'csf2',align:'center',width:120,title:'措施费二',totalRow: true},
  137. {field:'qtf',align:'center',width:120,title:'其他费',totalRow: true},
  138. {field:'gf',align:'center',width:120,title:'规费',totalRow: true},
  139. {field:'sf',align:'center',width:120,title:'税金',totalRow: true},
  140. // {field:'gxfy',align:'center',width:120,title: '共性费用',rowspan:'2',totalRow: true},
  141. ]]
  142. ,data: [
  143. <c:if test="${ not empty map.list}">
  144. <c:forEach items="${map.list}" var="data" varStatus="index">
  145. <c:if test="${data.feeType eq '1'}">
  146. {
  147. "id": "${data.wbsCode}",
  148. "wbsys":"${data.describe}",
  149. "wbssbm": "${data.wbsCode}",
  150. "hjje": "${data.originalTotalCost}",
  151. "zjgcf":"${data.zjgcFee}",
  152. "rgf1": "${data.originalRgCost}",
  153. "cbrcg1": "${data.originalCbrCost}",
  154. "fbrcg1": "${data.originalFbrCost}",
  155. "jxf1": "${data.originalJxCost}",
  156. "rgf2": "${data.rgCost}",
  157. "cbrcg2": "${data.cbrCost}",
  158. "fbrcg2":"${data.fbrCost}",
  159. "jxf2": "${data.jxCost}",
  160. <%--"rgf3": "${data.rgFtFee}",--%>
  161. "rgf3": "<c:if test="${ empty data.rgFtFee and not empty data.originalTotalCost}">0.0</c:if><c:if test="${ not empty data.rgFtFee}">${data.rgFtFee}</c:if> ",
  162. "cbrcg3": "<c:if test="${ empty data.cbrFtFee and not empty data.originalTotalCost}">0.0</c:if><c:if test="${ not empty data.cbrFtFee}">${data.cbrFtFee}</c:if>",
  163. "fbrcg3": "<c:if test="${ empty data.fbrFtFee and not empty data.originalTotalCost}">0.0</c:if><c:if test="${ not empty data.fbrFtFee}">${data.fbrFtFee}</c:if>",
  164. "jxf3": "<c:if test="${ empty data.jxFtFee and not empty data.originalTotalCost}">0.0</c:if><c:if test="${ not empty data.jxFtFee}">${data.jxFtFee}</c:if>",
  165. "csf_1": "${data.measuresFee1}",
  166. "csf_2": "${data.measuresFee2}",
  167. "csf2": "<c:if test="${ empty data.measuresFee3 and not empty data.originalTotalCost}">0.0</c:if><c:if test="${ not empty data.measuresFee3}">${data.measuresFee3}</c:if>",
  168. "qtf":"${data.otherCost}",
  169. "gf":"${data.fees}",
  170. "sf":"${data.tex}",
  171. "hj": "${data.totalFee}",
  172. "gxfy": "${data.gxFee}",
  173. "pid": "${data.parentNode}"
  174. },
  175. </c:if>
  176. </c:forEach>
  177. </c:if>
  178. ],
  179. done: function () {
  180. layer.closeAll('loading');
  181. }
  182. });
  183. };
  184. renderTable1();
  185. });
  186. </script>
  187. <script>
  188. layui.use(['table', 'form', 'element', 'treetable'], function () {
  189. var $ = layui.jquery;
  190. var table = layui.table;
  191. var form = layui.form;
  192. var element = layui.element;
  193. var treetable = layui.treetable;
  194. // 渲染表格
  195. var renderTable2 = function () {
  196. layer.load(2);
  197. treetable.render({
  198. treeColIndex: 1,
  199. treeSpid: -1,
  200. treeIdName: 'd_id',
  201. treePidName: 'd_pid',
  202. elem: '#table2',
  203. <%--url: '${ctxp}/webpage/modules/sys/free/other.json',--%>
  204. page: false,
  205. cols: [[
  206. {type: 'numbers'},
  207. // {field: 'id', title: 'WBS要素'},
  208. {field: 'wbsys', title: 'WBS要素'},
  209. {field: 'wbssbm', title: 'WBS识别码'},
  210. {field: 'money', title: '金额'},
  211. // {field: 'pid', title: 'pid'},
  212. ]]
  213. ,data: [
  214. <c:if test="${ not empty map.list}">
  215. <c:forEach items="${map.list}" var="data" varStatus="index">
  216. <c:if test="${data.feeType eq '0'}">
  217. {
  218. "d_id": "${data.wbsCode}",
  219. "wbsys": "${data.describe}",
  220. "wbssbm": "${data.wbsCode}",
  221. "money": "${data.totalFee}",
  222. "d_pid": "${data.parentNode}"
  223. },
  224. </c:if>
  225. </c:forEach>
  226. </c:if>
  227. ],
  228. done: function () {
  229. layer.closeAll('loading');
  230. }
  231. });
  232. };
  233. renderTable2();
  234. });
  235. </script>
  236. <script>
  237. layui.use('table', function(){
  238. var table = layui.table;
  239. });
  240. </script>
  241. <script>
  242. layui.use('table', function(){
  243. var table = layui.table;
  244. table.render({
  245. elem: '#xmmc'
  246. ,title: '未标识'
  247. ,cols: [[
  248. {field:'xmmc', width:200,title:'项目名称'}
  249. ,{field:'fyje', width:178,title:'费用金额'}
  250. ,{width:178, toolbar: '#barDemo',title:'操作'}
  251. ]]
  252. ,data:[
  253. <c:if test="${ not empty map.list}">
  254. <c:forEach items="${map.list2}" var="data" varStatus="index">
  255. {
  256. "id":"${data.id}",
  257. "xmmc": "${data.type}",
  258. "fyje": "${data.fee}"
  259. },
  260. </c:forEach>
  261. </c:if>
  262. ]
  263. ,page: false
  264. });
  265. //监听工具条
  266. table.on('tool(freestr)', function(obj){
  267. var datacount="";
  268. var data = obj.data;
  269. if(obj.event === 'fttz'){
  270. sureradio(data);
  271. } else if(obj.event === 'ddtz'){
  272. sureradio2(data);
  273. }
  274. // alert(datacount);
  275. });
  276. });
  277. </script>
  278. <script>
  279. function sureradio2(data){
  280. var newid = data.id;
  281. var xmmc = data.xmmc;
  282. var fyje = data.fyje;
  283. $("#newid").val(newid);
  284. $("#xmmc1").val(xmmc);
  285. $("#fyje1").val(fyje);
  286. // alert(fyje);
  287. layui.use(['table','layer'],function(){
  288. layer.open({
  289. type: 2,
  290. title: '单独调整',
  291. area: ['70%', '90%'],
  292. shade: 0.8,
  293. // closeBtn: 0,
  294. // fixed: true, //不固定
  295. maxmin: true,
  296. shadeClose: true,
  297. content: '${ctxp}/webpage/modules/sg/free/alongst.jsp'
  298. , btn: ['确定','关闭']
  299. ,yes: function(index, layero){
  300. var bodyparent = layer.getChildFrame('body', index);
  301. bodyparent.find('#freenl').click();
  302. }
  303. ,btn2: function(index, layero){
  304. // alert(layero);
  305. layer.close(index);
  306. }
  307. })
  308. })
  309. }
  310. </script>
  311. <script>
  312. function sureradio(data,target){
  313. var newid = data.id;
  314. var xmmc = data.xmmc;
  315. var fyje = data.fyje;
  316. $("#newid").val(newid);
  317. $("#xmmc1").val(xmmc);
  318. $("#fyje1").val(fyje);
  319. layui.use(['table','layer'],function(){
  320. layer.open({
  321. type: 2,
  322. title: xmmc,
  323. area: ['40%', '90%'],
  324. shade: 0.8,
  325. shadeClose: true,
  326. content: '${ctxp}/webpage/modules/sg/free/avgpage.jsp'
  327. , btn: ['调整','关闭']
  328. ,yes: function(index, layero){
  329. var body = layer.getChildFrame('body', index);
  330. var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
  331. var inputForm = body.find('#inputForm');
  332. var top_iframe;
  333. if(target){
  334. top_iframe = target;//如果指定了iframe,则在改frame中跳转
  335. }else{
  336. top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
  337. }
  338. inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
  339. iframeWin.contentWindow.doSubmit();
  340. layer.close(index);//关闭对话框。
  341. }
  342. })
  343. })
  344. }
  345. </script>
  346. <script>
  347. layui.use('table', function(){
  348. var table = layui.table;
  349. table.render({
  350. elem: '#settlement'
  351. ,limit:Number.MAX_VALUE
  352. ,title: '结算汇总表'
  353. ,cols: [[
  354. {width:50, title: '序号',type:'numbers'}
  355. ,{field:'setname',title:'项目或费用名称'}
  356. ,{field:'setmoney',title:'金额'}
  357. ,{field:'settext', title:'备注'}
  358. ,{field:'op',align:'center',title:"数据核验", templet:function(d){
  359. ////对操作进行初始化
  360. var xml = "";
  361. if(d.status=="1")
  362. xml += "<a style='margin-top: 3px;' class='layui-btn layui-btn-danger layui-btn-xs' lay-event='byz'>不一致</a>";
  363. if(d.status == "0")
  364. xml+="<a style='margin-top: 3px;' class='layui-btn layui-btn-xs' lay-event='byz'>一致</a>";
  365. return xml;
  366. }}
  367. ]]
  368. ,data:[
  369. <c:if test="${not empty map.list3}">
  370. <c:forEach items="${map.list3}" var="data">
  371. {
  372. "id":"${data.id}",
  373. "setname": "${data.entryName}",
  374. "setmoney":"${data.money}",
  375. "settext":"${data.remarks}",
  376. "status":"${data.status}",
  377. "reason":"${data.reason}"
  378. },
  379. </c:forEach>
  380. </c:if>
  381. ]
  382. // ,page: false
  383. });
  384. //监听行工具事件
  385. table.on('tool(settle)', function(obj){
  386. var data = obj.data;
  387. var status = data.status;
  388. if(status=="0"){
  389. var xml="<span style='color: green'>&nbsp;一致。</span>";
  390. }else {
  391. var xml="<span style='color: red'>&nbsp;不一致。</span>";
  392. }
  393. if(obj.event === 'byz'){
  394. layer.open({
  395. type: 1,
  396. title:data.setname,
  397. // skin: 'layui-layer-rim',
  398. area: ['50%', '70%'],
  399. content: "<div style='padding: 16px'>"+data.reason+"</br>&nbsp;金额"+xml+"</div>"
  400. });
  401. }
  402. });
  403. });
  404. </script>
  405. </html>