ftdetail.jsp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. <%@ page contentType="text/html; charset=utf-8" session="false" %>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3. <script type="text/javascript">
  4. var mydataFtdetail,Calculation = 0,isLockCount = "${isLockCount }";
  5. $(document).ready( function() {
  6. getCalculation();//计算模式动态显示列名称
  7. loadFtdetailList(); //加载jqgrid
  8. panelS = $("body").layout("panel","south").panel();
  9. $("#listFtdetail").jqGrid("setGridHeight",panelS.height()-75);
  10. $("#listFtdetail").jqGrid("setGridWidth",document.body.clientWidth - 30);
  11. });
  12. //jqgrid初始化
  13. function loadFtdetailList(){
  14. jQuery("#listFtdetail").jqGrid({
  15. datatype: "local", //从服务器端返回的数据类型,(表格期望接收的数据类型)。可选类型:xml,xmlstring,json,local,function
  16. height: 120, //高度
  17. colNames:["主键","饲料主键","饲料包名称","饲料名称","重量","搅拌延时(分钟)","是否锁定牛头数比例", "顺序", "饲料包主键"], //列名
  18. colModel:[
  19. {
  20. name: "ID",
  21. index: "ID",
  22. align: "center",
  23. sorttype: "string",
  24. editable: true,
  25. hidden: true
  26. //editoptions:{readonly:true} 如果要显示该列可以设置只读
  27. },
  28. {
  29. name: "FID",
  30. index: "FID",
  31. align: "center",
  32. sorttype: "string",
  33. editable: true,
  34. hidden: true
  35. },
  36. {
  37. name: "feedpackageName",
  38. index: "feedpackageName",
  39. align: "center",
  40. sorttype: "string",
  41. editable: false,
  42. hidden: true
  43. },
  44. {
  45. name: "FNAME",
  46. index: "FNAME",
  47. align: "center",
  48. sorttype: "int",
  49. editable: true,
  50. edittype: "select",
  51. editoptions:{
  52. dataUrl: "${contextPath }/admin/recipeplan/ftdetailselect.html?type=1",
  53. dataEvents: [{
  54. type: "change", fn: function(e){
  55. var selId = $("#listFtdetail").jqGrid("getGridParam","selrow"); //获取当前选中行号
  56. var selRow = $("#listFtdetail").jqGrid("getRowData",selId);
  57. var thisval = $(e.target).val();
  58. if(thisval != ""){
  59. var feedpackageId = thisval.substring(0,thisval.indexOf(","));
  60. var feedtype = thisval.substring(thisval.indexOf(",")+1);
  61. if(feedtype == 1){
  62. //选择饲料包处理
  63. var currentTfId = $("#currentTfId").val();
  64. $.ajax({
  65. async: false,
  66. type: "post",
  67. dataType: "json", //返回类型json
  68. data: "feedpackageId="+feedpackageId+"&currentTfId="+currentTfId+"&selId="+selRow.ID+"&Calculation="+Calculation,
  69. url: "${contextPath }/admin/recipeplan/selfeedpackage.html",
  70. error: function(){alert("系统错误");},
  71. success: function(json){
  72. if(json.status == "fail"){
  73. alert(json.msg);
  74. }
  75. $("#listFtdetail").clearGridData(); //清空原grid数据
  76. loadFtdetailList(); //重新载入服务器数据
  77. }
  78. });
  79. }
  80. }
  81. }
  82. }]
  83. }
  84. },
  85. {
  86. name: "FWEIGHT",
  87. index: "FWEIGHT",
  88. align: "center",
  89. sorttype: "number",
  90. editable: true,
  91. editrules:{
  92. required: true,
  93. number: true
  94. }
  95. },
  96. {
  97. name: "stirDelay",
  98. index: "stirDelay",
  99. align: "center",
  100. sorttype: "string",
  101. editable: true
  102. },
  103. {
  104. name: "isLockCount",
  105. index: "isLockCount",
  106. align: "center",
  107. sorttype: "string",
  108. editable: true,
  109. hidden: true,
  110. edittype: "select",
  111. editoptions: {value:{"1":"是","0":"否"}}
  112. },
  113. {
  114. name: "SORT",
  115. index: "SORT",
  116. align: "center",
  117. sorttype: "int",
  118. editable: true,
  119. editrules:{
  120. required: true,
  121. integer: true
  122. }
  123. },
  124. {
  125. name: "feedpackageId",
  126. index: "feedpackageId",
  127. align: "center",
  128. sorttype: "string",
  129. editable: true,
  130. hidden: true
  131. //editoptions:{readonly:true} 如果要显示该列可以设置只读
  132. }
  133. ],
  134. cellEdit: true,
  135. cellsubmit: "clientArray", //当单元格发生变化后不直接发送请求、"remote"默认直接发送请求
  136. beforeEditCell: function (rowid, cellname, value, iRow, iCol){
  137. var rowData = $("#listFtdetail").jqGrid("getRowData",rowid);
  138. var fid = rowData.FID;
  139. var feedpackageName = rowData.feedpackageName;
  140. if(feedpackageName!=""){
  141. if(iCol != 7){
  142. //设置单元格不可编辑
  143. setTimeout(function () {
  144. $("#listFtdetail").jqGrid("restoreCell", iRow, iCol);
  145. }, 1);
  146. }
  147. }else{
  148. if(fid==1000 && (iCol==3 || iCol==4)){
  149. setTimeout(function () {
  150. $("#listFtdetail").jqGrid("restoreCell", iRow, iCol);
  151. }, 1);
  152. }
  153. }
  154. },
  155. afterSaveCell: function(rowid,name,val,iRow,iCol) {
  156. var currentTfId = $("#currentTfId").val();
  157. var rowData = $("#listFtdetail").jqGrid("getRowData",rowid);
  158. var fid = rowData.FID;
  159. var feedpackageId = rowData.feedpackageId;
  160. var feedpackageName = rowData.feedpackageName;
  161. if(fid==1000 && (iCol==3 || iCol==4)){
  162. alert("该饲料只能修改顺序");
  163. }else{
  164. if(iCol==3){
  165. //修改饲料列进入
  166. var feedtype = val.substring(val.indexOf(",")+1);
  167. val = val.substring(0,val.indexOf(","));
  168. if(feedtype == 0){
  169. //选择饲料处理
  170. $.ajax({
  171. async: false,
  172. type: "POST",
  173. dataType:"json", //返回类型jsond
  174. data: "ID="+rowData.ID+"&colName="+name+"&colValue="+val+"&Calculation="+Calculation+"&feedpackageId="+feedpackageId+"&feedpackageName="+feedpackageName+"&currentTfId="+currentTfId,
  175. url: "${contextPath }/admin/recipeplan/ftdetailupdatedyg.html",
  176. error: function(){alert("系统错误");},
  177. success: function(json){
  178. if(json.status == "fail"){
  179. alert(json.msg);
  180. }
  181. $("#listFtdetail").clearGridData(); //清空原grid数据
  182. loadFtdetailList(); //重新载入服务器数据
  183. }
  184. });
  185. }
  186. }else{
  187. //修改饲料列以外的列进入
  188. $.ajax({
  189. async: false,
  190. type: "POST",
  191. dataType:"json", //返回类型jsond
  192. data: "ID="+rowData.ID+"&colName="+name+"&colValue="+val+"&Calculation="+Calculation+"&feedpackageId="+feedpackageId+"&feedpackageName="+feedpackageName+"&currentTfId="+currentTfId,
  193. url: "${contextPath }/admin/recipeplan/ftdetailupdatedyg.html",
  194. error: function(){alert("系统错误");},
  195. success: function(json){
  196. $("#listFtdetail").clearGridData(); //清空原grid数据
  197. loadFtdetailList(); //重新载入服务器数据
  198. }
  199. });
  200. }
  201. }
  202. },
  203. pager: "#pageFtdetail", //#page分页控件绑定的位置对象
  204. rowNum: 1000, //每页显示条数
  205. viewrecords: true, //是否显示总条数
  206. emptyrecords: "无数据", //服务器返回空列表时显示的内容
  207. autowidth: true, //自动调节宽度
  208. footerrow: true, //统计运算的功能
  209. gridComplete: completeMethod1
  210. });
  211. //获取数据集
  212. mydataFtdetail = getFtdetailLists();
  213. if(mydataFtdetail!=null){
  214. for(var i=0;i<=mydataFtdetail.length;i++){
  215. jQuery("#listFtdetail").jqGrid("addRowData",i+1,mydataFtdetail[i]);
  216. }
  217. jQuery("#listFtdetail").jqGrid().trigger("reloadGrid"); //添加完数据后客户端自动刷新一次、实现客户端数据与服务器数据的完全分离
  218. }
  219. //绑定、设置工具栏
  220. jQuery("#listFtdetail").jqGrid("navGrid","#pageFtdetail",{
  221. add: true, addtext: "添加",
  222. edit: false, edittext: "编辑",
  223. del: true, deltext: "删除",refresh: false,
  224. addfunc: addRow1, //自定义添加方法
  225. delfunc: deleteRow1, //自定义删除方法
  226. searchtext: "搜索",
  227. refreshtext: "刷新",
  228. alerttext:"请选择一条记录!"
  229. });
  230. var sum = $("#listFtdetail").jqGrid("getDataIDs"); //获取当前的数量集合
  231. if(sum == 1){
  232. var rowData = $("#listFtdetail").jqGrid("getRowData",sum);
  233. var fid = rowData.FID;
  234. if(fid == "1000"){
  235. //自定义添加所有方法
  236. $("#listFtdetail").navButtonAdd("#pageFtdetail",
  237. { caption:"添加所有",
  238. buttonicon:"ui-icon-plus",
  239. onClickButton: viewRow,
  240. position: "last",
  241. title:"添加所有",
  242. cursor: "pointer"
  243. }
  244. );
  245. }
  246. }
  247. //是否锁定牛头数比例(默认否):0否、1锁
  248. if(isLockCount == 1){
  249. $("#listFtdetail").jqGrid("showCol","isLockCount");
  250. }else{
  251. $("#listFtdetail").jqGrid("hideCol","isLockCount");
  252. }
  253. }
  254. //获取服务器数据
  255. function getFtdetailLists(){
  256. var currentTfId = $("#currentTfId").val();
  257. $.ajax({
  258. async: false,
  259. type: "POST",
  260. dataType:"json", //返回类型json
  261. url: "${contextPath }/admin/recipeplan/ftdetaillist.html?currentTfId="+currentTfId,
  262. error: function(){alert("系统错误");},
  263. success: function(json){
  264. mydataFtdetail = json;
  265. }
  266. });
  267. return mydataFtdetail;
  268. }
  269. //自定义添加方法
  270. function addRow1(){
  271. var currentTfId = $("#currentTfId").val();
  272. var ids = $("#listFtdetail").jqGrid("getDataIDs");
  273. $("#listFtdetail").jqGrid("addRowData",ids.length+1,{FNAME:"新记录"},"first");
  274. $.ajax({
  275. async: false,
  276. type: "POST",
  277. dataType:"json", //返回类型jsond
  278. data: "oper=add&selId="+currentTfId,
  279. url: "${contextPath }/admin/recipeplan/ftdetailupdate.html",
  280. error: function(){alert("系统错误");},
  281. success: function(json){
  282. $("#listFtdetail").clearGridData(); //清空原grid数据
  283. loadFtdetailList(); //重新载入服务器数据
  284. }
  285. });
  286. }
  287. //自定义删除方法
  288. function deleteRow1(){
  289. var row = $("#listFtdetail").jqGrid("getGridParam","selrow");
  290. var selRow = $("#listFtdetail").jqGrid("getRowData",row);
  291. var fid = selRow.FID;
  292. var feedpackageId = selRow.feedpackageId;
  293. var feedpackageName = selRow.feedpackageName;
  294. if(fid==1000){
  295. alert("该饲料不能删除");
  296. }else{
  297. if(feedpackageId != "" && feedpackageName != ""){
  298. var flag = confirm("您确定要删除该饲料包下所有饲料吗?");
  299. var currentTfId = $("#currentTfId").val();
  300. if(flag){
  301. //删除饲料包
  302. $.ajax({
  303. async: false,
  304. type: "POST",
  305. dataType:"json", //返回类型jsond
  306. data: "feedpackageId="+feedpackageId+"&currentTfId="+currentTfId,
  307. url: "${contextPath }/admin/recipeplan/delftdetailbyfeedpackage.html",
  308. error: function(){alert("系统错误");},
  309. success: function(json){
  310. $("#listFtdetail").clearGridData(); //清空原grid数据
  311. loadFtdetailList(); //重新载入服务器数据
  312. }
  313. });
  314. }
  315. }else{
  316. var flag = confirm("您确定要删除吗?");
  317. if(flag){
  318. //删除独立饲料
  319. $.ajax({
  320. async: false,
  321. type: "POST",
  322. dataType:"json", //返回类型jsond
  323. data: "oper=del&selId="+selRow.ID,
  324. url: "${contextPath }/admin/recipeplan/ftdetailupdate.html",
  325. error: function(){alert("系统错误");},
  326. success: function(json){
  327. $("#listFtdetail").clearGridData(); //清空原grid数据
  328. loadFtdetailList(); //重新载入服务器数据
  329. }
  330. });
  331. }
  332. }
  333. }
  334. }
  335. //自定义添加所有方法
  336. function viewRow(){
  337. var currentTfId = $("#currentTfId").val();
  338. var sum = $("#listFtdetail").jqGrid("getDataIDs"); //获取当前的数量集合
  339. if(sum == 1){
  340. var rowData = $("#listFtdetail").jqGrid("getRowData",sum);
  341. var fid = rowData.FID;
  342. if(fid == "1000"){
  343. $.ajax({
  344. async: false,
  345. type: "POST",
  346. data: "currentTfId="+currentTfId,
  347. dataType: "json",
  348. url: "${contextPath}/admin/recipeplan/ftdetailaddall.html",
  349. error: function(){alert("系统错误");},
  350. success: function(json){
  351. if(json.status == "success"){
  352. $("#listFtdetail").clearGridData(); //清空原grid数据
  353. loadFtdetailList(); //重新载入服务器数据
  354. }
  355. }
  356. });
  357. }else{
  358. alert("有数据不能添加所有!");
  359. }
  360. }
  361. }
  362. //获取计算模式
  363. function getCalculation(){
  364. $.ajax({
  365. async: false,
  366. type: "POST",
  367. dataType:"json", //返回类型json
  368. url: "${contextPath }/admin/basicdata/defaultConfigCalculation.html",
  369. error: function(){alert("系统错误");},
  370. success: function(json){
  371. Calculation = json.calculation;
  372. }
  373. });
  374. }
  375. //页脚统计
  376. function completeMethod1(){
  377. var sum_countd=$("#listFtdetail").getCol("FWEIGHT",true,"sum");
  378. $("#listFtdetail").footerData("set", {FNAME:"合计:", FWEIGHT: sum_countd.toFixed(2)});
  379. }
  380. </script>
  381. <input type="hidden" id="currentTfId" name="currentTfId" value="${currentTfId }" />
  382. <input type="hidden" id="currentTname" name="currentTname" value="${currentTname }" />
  383. <table id="listFtdetail"></table>
  384. <div id="pageFtdetail"></div>