individualForm.jsp 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <%@ include file="/webpage/include/taglib.jsp"%>
  3. <html>
  4. <head>
  5. <title>单独调整</title>
  6. <link rel="stylesheet" href="${ctxp}/static/plugin/assets/layui/css/layui.css">
  7. <link rel="stylesheet" href="${ctxp}/static/plugin/assets/common.css"/>
  8. <script type="text/javascript" src="${ctxp}/static/plugin/assets/jquery-3.2.1.min.js"></script>
  9. <script src="${ctxp}/static/plugin/assets/layui/layui.js"></script>
  10. <%--<%@include file="alongst.js"%>--%>
  11. </head>
  12. <style>
  13. .layui-table-view .layui-table {width:100%}
  14. .layui-table-cell .layui-form-checkbox[lay-skin="primary"]{top: 50%;transform: translateY(-50%);}
  15. .layui-icon-layer{display: none;}
  16. .layui-icon-file{display: none;}
  17. .layui-table-tips-main{display:none}
  18. .layui-table-tips-c{display:none}
  19. input {
  20. height: 33px;
  21. line-height: 33px;
  22. padding: 0 7px;
  23. border: 1px solid #ccc;
  24. border-radius: 2px;
  25. margin-bottom: -2px;
  26. outline: none;
  27. }
  28. input:focus {
  29. border-color: #009E94;
  30. }
  31. </style>
  32. <body>
  33. <div class="layui-btn-group suretable" style="display: none;">
  34. <button class="layui-btn" data-type="getCheckData" id="freenl">确定</button>
  35. </div>
  36. <form class="layui-form" action="">
  37. <div class="layui-form-item">
  38. <div class="" style="margin-left: 10px;margin-top: 10px;">
  39. <span id="mylable2">项目调整</span>
  40. <span>:</span>
  41. <span id="readid2">200</span>
  42. </div>
  43. <div class="" style="margin-left: 10px;">
  44. <input type="radio" name="mydiv" value="1" title="增加" checked="">
  45. <input type="radio" name="mydiv" value="2" title="减少">
  46. &nbsp;&nbsp;
  47. <input id="edt-search" type="text" placeholder="输入关键字" style="width: 120px;"/>&nbsp;&nbsp;
  48. <button class="layui-btn" id="btn-search">&nbsp;&nbsp;搜索&nbsp;&nbsp;</button>
  49. </div>
  50. </div>
  51. </form>
  52. <div style="margin-left: 7px;margin-right: 7px">
  53. <table class="layui-table" id="longtable" lay-filter="longtable"></table>
  54. </div>
  55. </body>
  56. <script type="text/javascript">
  57. layui.config({
  58. base: '${ctxp}/static/plugin/assets/'
  59. }).extend({
  60. treetable: 'treetable-lay/treetable'
  61. }).use(['layer', 'table', 'treetable'], function () {
  62. var $ = layui.jquery;
  63. var table = layui.table;
  64. var layer = layui.layer;
  65. var treetable = layui.treetable;
  66. var renderTable1 = function () {
  67. layer.load(2);
  68. treetable.render({
  69. treeColIndex: 1,
  70. treeSpid: -1,
  71. treeIdName: 'id',
  72. treePidName: 'pid',
  73. treeDefaultClose: false,
  74. treeLinkage: false,
  75. id:'checktable',
  76. elem: '#longtable',
  77. cols: [[
  78. {type: 'checkbox'},
  79. {field:'wbsys',title:'分部分项'},
  80. {field:'wbsCode',title:'WBS识别码'},
  81. {field:'bl',title:'比例(%)',edit: 'text'},
  82. {field:'fee',title:'分摊金额',edit: 'text'},
  83. ]],
  84. data: [
  85. <c:if test="${ not empty list}">
  86. <c:forEach items="${list}" var="data" varStatus="index">
  87. {
  88. "id":"${data.wbsCode}",
  89. "wbsys": "${data.describe}",
  90. "wbsCode": "${data.wbsCode}",
  91. "bl":'',
  92. "fee":'',
  93. "pid": "${data.parentNode}"
  94. },
  95. </c:forEach>
  96. </c:if>
  97. // {
  98. // "id":"1",
  99. // "wbsys": "12",
  100. // "wbsCode": "32",
  101. // "bl":'',
  102. // "fee":'',
  103. // "pid": -1
  104. // },
  105. // {
  106. // "id":"2",
  107. // "wbsys": "121212131231",
  108. // "wbsCode": "32",
  109. // "bl":'',
  110. // "fee":'',
  111. // "pid": 1
  112. // },
  113. // {
  114. // "id":"3",
  115. // "wbsys": "12123123",
  116. // "wbsCode": "32",
  117. // "bl":'',
  118. // "fee":'',
  119. // "pid": -1
  120. // },
  121. // {
  122. // "id":"4",
  123. // "wbsys": "12123123",
  124. // "wbsCode": "32",
  125. // "bl":'',
  126. // "fee":'',
  127. // "pid": 3
  128. // }
  129. ],
  130. done: function (res, curr, count) {
  131. layer.closeAll('loading');
  132. }
  133. });
  134. };
  135. renderTable1();
  136. //计算比例/金额
  137. table.on('edit(longtable)', function(obj){
  138. var field = obj.field;
  139. var moneycount = $("#readid2").text();
  140. if(field == 'bl'){
  141. var value = obj.value;
  142. var data = obj.data;
  143. var blvalue = value/100;
  144. if(value==''){
  145. var w = $(this).closest("tr").find("td").eq("4").find("div").html("");
  146. data.fee="";
  147. return false;
  148. }
  149. if(isNaN(blvalue)){
  150. layer.msg('请输入有效数字');
  151. return false;
  152. }
  153. var bfb = (blvalue*moneycount);
  154. var w = $(this).closest("tr").find("td").eq("4").find("div").html(bfb);
  155. data.fee=bfb;
  156. }else{
  157. var value = obj.value;
  158. var data = obj.data;
  159. var feevalue = value/moneycount;
  160. if(value==''){
  161. $(this).closest("tr").find("td").eq("3").find("div").html("");
  162. data.bl="";
  163. return false;
  164. }
  165. if(isNaN(value)){ //判断输入是否是数字
  166. layer.msg('请输入有效数字');
  167. return false;
  168. }
  169. var bfb2 = (feevalue*100);
  170. $(this).closest("tr").find("td").eq("3").find("div").html(bfb2);
  171. data.bl=bfb2;
  172. }
  173. });
  174. var $ = layui.$, active = {
  175. getCheckData: function(){ //获取选中数据
  176. var checkStatus = table.checkStatus('checktable'),
  177. data = checkStatus.data;
  178. var moneycount2 = $("#readid2").text();
  179. var val = $('input[name="mydiv"]:checked').val();
  180. if(val==null){
  181. layer.msg('请选择操作方式');
  182. return false;
  183. }
  184. var jsondata=JSON.stringify(data);
  185. var objdata = JSON.parse(jsondata);
  186. var blcount = 0;
  187. var feecount = 0;
  188. for (var i = 0;i<objdata.length;i++) {
  189. blcount=Number(blcount)+Number(objdata[i].bl) ;
  190. feecount=Number(feecount)+Number(objdata[i].fee);
  191. }
  192. if(blcount!=100||feecount!=moneycount2){
  193. layer.msg('比例/金额分配不正确!');
  194. return false;
  195. }
  196. var newid2 = parent.$('#newid').val();//获取父类input框的值
  197. var xmmc2 = parent.$('#xmmc1').val();
  198. var fyje2 = parent.$('#fyje1').val();
  199. $.ajax({
  200. type:"post",
  201. url:"${ctx}/jkxl/ddtz",
  202. // data:JSON.stringify({id:newid2,type:xmmc2,fee:fyje2}),
  203. data:{id:newid2,type:xmmc2,fee:fyje2,tableData:jsondata,state:val },
  204. success:function(result){
  205. parent.location.reload();
  206. }
  207. });
  208. }
  209. };
  210. $('.suretable .layui-btn').on('click', function(){
  211. var type = $(this).data('type');
  212. active[type] ? active[type].call(this) : '';
  213. });
  214. var newid2 = parent.$('#newid').val();
  215. var xmmc2 = parent.$('#xmmc1').val();
  216. var fyje2 = parent.$('#fyje1').val();
  217. $("#mylable2").text(xmmc2);
  218. $("#readid2").text(fyje2);
  219. });
  220. </script>
  221. <script>
  222. $('#btn-search').click(function () {
  223. var keyword = $('#edt-search').val();
  224. var searchCount = 0;
  225. $('#longtable').next('.treeTable').find('.layui-table-body tbody tr td').each(function () {
  226. $(this).css('background-color', 'transparent');
  227. var text = $(this).text();
  228. if (keyword != '' && text.indexOf(keyword) >= 0) {
  229. $(this).css('background-color', 'rgba(250,230,160,0.5)');
  230. if (searchCount == 0) {
  231. treetable.expandAll('#longtable');
  232. $('html,body').stop(true);
  233. $('html,body').animate({scrollTop: $(this).offset().top - 150}, 500);
  234. }
  235. searchCount++;
  236. }
  237. });
  238. if (keyword == '') {
  239. layer.msg("请输入搜索内容", {icon: 5});
  240. } else if (searchCount == 0) {
  241. layer.msg("没有匹配结果", {icon: 5});
  242. }
  243. });
  244. </script>
  245. </html>