individualForm.jsp 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  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. </div>
  47. </div>
  48. </form>
  49. &nbsp;&nbsp;
  50. <input id="edt-search" type="text" placeholder="输入关键字" style="width: 120px;"/>&nbsp;&nbsp;
  51. <%--<button class="layui-btn" id="btn-search">&nbsp;&nbsp;搜索&nbsp;&nbsp;</button>--%>
  52. <button class="layui-btn" onclick="solr();">&nbsp;&nbsp;搜索&nbsp;&nbsp;</button>
  53. <div style="margin-left: 7px;margin-right: 7px">
  54. <table class="layui-table" id="longtable" lay-filter="longtable"></table>
  55. </div>
  56. </body>
  57. <script type="text/javascript">
  58. layui.config({
  59. base: '${ctxp}/static/plugin/assets/'
  60. }).extend({
  61. treetable: 'treetable-lay/treetable'
  62. }).use(['layer', 'table', 'treetable'], function () {
  63. var $ = layui.jquery;
  64. var table = layui.table;
  65. var layer = layui.layer;
  66. var treetable = layui.treetable;
  67. var renderTable1 = function () {
  68. layer.load(2);
  69. treetable.render({
  70. treeColIndex: 1,
  71. treeSpid: -1,
  72. treeIdName: 'id',
  73. treePidName: 'pid',
  74. treeDefaultClose: false,
  75. treeLinkage: false,
  76. id:'checktable',
  77. elem: '#longtable',
  78. cols: [[
  79. {type: 'checkbox'},
  80. {field:'wbsys',title:'分部分项'},
  81. {field:'wbsCode',title:'WBS识别码'},
  82. {field:'bl',title:'比例(%)',edit: 'text'},
  83. {field:'fee',title:'分摊金额',edit: 'text'},
  84. ]],
  85. data: [
  86. <c:if test="${ not empty list}">
  87. <c:forEach items="${list}" var="data" varStatus="index">
  88. {
  89. "id":"${data.wbsCode}",
  90. "wbsys": "${data.describe}",
  91. "wbsCode": "${data.wbsCode}",
  92. "bl":'',
  93. "fee":'',
  94. "pid": "${data.parentNode}"
  95. },
  96. </c:forEach>
  97. </c:if>
  98. ],
  99. done: function (res, curr, count) {
  100. layer.closeAll('loading');
  101. }
  102. });
  103. };
  104. renderTable1();
  105. //计算比例/金额
  106. table.on('edit(longtable)', function(obj){
  107. var field = obj.field;
  108. var moneycount = $("#readid2").text();
  109. if(field == 'bl'){
  110. var value = obj.value;
  111. var data = obj.data;
  112. var blvalue = value/100;
  113. if(value==''){
  114. var w = $(this).closest("tr").find("td").eq("4").find("div").html("");
  115. data.fee="";
  116. return false;
  117. }
  118. if(isNaN(blvalue)){
  119. layer.msg('请输入有效数字');
  120. return false;
  121. }
  122. var bfb = (blvalue*moneycount);
  123. var w = $(this).closest("tr").find("td").eq("4").find("div").html(bfb);
  124. data.fee=bfb;
  125. }else{
  126. var value = obj.value;
  127. var data = obj.data;
  128. var feevalue = value/moneycount;
  129. if(value==''){
  130. $(this).closest("tr").find("td").eq("3").find("div").html("");
  131. data.bl="";
  132. return false;
  133. }
  134. if(isNaN(value)){ //判断输入是否是数字
  135. layer.msg('请输入有效数字');
  136. return false;
  137. }
  138. var bfb2 = (feevalue*100);
  139. $(this).closest("tr").find("td").eq("3").find("div").html(bfb2);
  140. data.bl=bfb2;
  141. }
  142. });
  143. var $ = layui.$, active = {
  144. getCheckData: function(){ //获取选中数据
  145. var checkStatus = table.checkStatus('checktable'),
  146. data = checkStatus.data;
  147. var moneycount2 = $("#readid2").text();
  148. var val = $('input[name="mydiv"]:checked').val();
  149. if(val==null){
  150. layer.msg('请选择操作方式');
  151. return false;
  152. }
  153. var jsondata=JSON.stringify(data);
  154. var objdata = JSON.parse(jsondata);
  155. var blcount = 0;
  156. var feecount = 0;
  157. for (var i = 0;i<objdata.length;i++) {
  158. blcount=Number(blcount)+Number(objdata[i].bl) ;
  159. feecount=Number(feecount)+Number(objdata[i].fee);
  160. }
  161. if(blcount!=100||feecount!=moneycount2){
  162. layer.msg('比例/金额分配不正确!');
  163. return false;
  164. }
  165. var newid2 = parent.$('#newid').val();//获取父类input框的值
  166. var xmmc2 = parent.$('#xmmc1').val();
  167. var fyje2 = parent.$('#fyje1').val();
  168. $.ajax({
  169. type:"post",
  170. url:"${ctx}/jkxl/bddtz",
  171. // data:JSON.stringify({id:newid2,type:xmmc2,fee:fyje2}),
  172. data:{id:newid2,type:xmmc2,fee:fyje2,tableData:jsondata,state:val },
  173. success:function(result){
  174. parent.location.reload();
  175. }
  176. });
  177. }
  178. };
  179. $('.suretable .layui-btn').on('click', function(){
  180. var type = $(this).data('type');
  181. active[type] ? active[type].call(this) : '';
  182. });
  183. var newid2 = parent.$('#newid').val();
  184. var xmmc2 = parent.$('#xmmc1').val();
  185. var fyje2 = parent.$('#fyje1').val();
  186. $("#mylable2").text(xmmc2);
  187. $("#readid2").text(fyje2);
  188. });
  189. </script>
  190. <script>
  191. function solr(){
  192. var keyword = $('#edt-search').val();
  193. var searchCount = 0;
  194. $('#longtable').next('.treeTable').find('.layui-table-body tbody tr td').each(function () {
  195. $(this).css('background-color', 'transparent');
  196. var text = $(this).text();
  197. if (keyword != '' && text.indexOf(keyword) >= 0) {
  198. $(this).css('background-color', 'rgba(250,230,160,0.5)');
  199. if (searchCount == 0) {
  200. treetable.expandAll('#longtable');
  201. $('html,body').stop(true);
  202. $('html,body').animate({scrollTop: $(this).offset().top - 150}, 500);
  203. }
  204. searchCount++;
  205. }
  206. });
  207. if (keyword == '') {
  208. layer.msg("请输入搜索内容", {icon: 5});
  209. } else if (searchCount == 0) {
  210. layer.msg("没有匹配结果", {icon: 5});
  211. }
  212. }
  213. </script>
  214. </html>