wbslist.jsp 17 KB

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