save_produce.ftl 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="renderer" content="webkit|ie-comp|ie-stand">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  7. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
  8. <meta http-equiv="Cache-Control" content="no-siteapp" />
  9. <#include "/base/add_base.ftl">
  10. <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css" />
  11. <style>
  12. .my-title{font-weight: 500;padding-left: 15px;position: relative;}
  13. .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
  14. .my-input{padding: 5px 10px;width: 60%;}
  15. .input-box{margin: 18px 0;}
  16. .input-dic{float: left;margin:5px 10px 0 0;font-size: 12px;}
  17. .add-list{list-style-type: none;padding: 10px;background-color: #f5f5f5;width: 60%;float: left;margin: 0;}
  18. .my-btn-edit{padding: 6px 20px;background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
  19. .my-btn-reset{padding: 6px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
  20. .my-btn-submit{padding: 6px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
  21. .add-list>li{margin: 10px 0;}
  22. .cp-list{list-style-type: none;margin: 0;padding: 0;}
  23. .cp-list>li{position: relative; cursor: pointer;clear: both;padding: 15px 0;}
  24. .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(images/select-1.png) right center no-repeat;background-size:auto 100%;}
  25. </style>
  26. <title>添加生产产品- 生产产品管理 - RST</title>
  27. </head>
  28. <body>
  29. <article class="page-container">
  30. <form class="form form-horizontal" id="form-admin-addProduce">
  31. <div style="padding: 10px;width: 600px;margin: 0 auto;" class="">
  32. <div class="my-title">产品信息</div>
  33. <div class="input-box"><span class="input-dic">产品名称</span><input class="my-input" name="produceName" type="text" value="" placeholder="请输入产品名称"/> </div>
  34. <div class="input-box"><span class="input-dic">产品描述</span><input class="my-input" type="text" name="produceRemake" value="" placeholder="请输入产品描述"/> </div>
  35. <div class="input-box"><span class="input-dic">产品类型</span>
  36. <label><input type="radio" name="produceType" value="1">净水机</label>
  37. <label><input type="radio" name="produceType" value="2">冲奶机</label>
  38. </div>
  39. <div style="background-color:rgba(0,0,0,.1);height: 1px;margin: 15px 0;"></div>
  40. <div class="my-title">节点信息</div>
  41. <ul class="cp-list onrTheProcess" id="sortable">
  42. <li id="1" class="processList">
  43. <input type="hidden" class="processNumber" value="1">
  44. <div class="input-box"><span class="input-dic process-type">节点类型</span>
  45. <label class=""><input type="radio" name="processType_p1" value="1">生产工序</label>
  46. <label><input type="radio" name="processType_p1" value="2">修理工序</label>
  47. <button type="button" class="my-btn-edit" onclick="delProcess(this)">删除节点</button>
  48. </div>
  49. <div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入节点名称"/> </div>
  50. <div class="input-box"><span class="input-dic">节点操作</span>
  51. <ul class="add-list oneTheNode" >
  52. <li class="nodeList">
  53. <#--<select class="my-select"><option>1</option></select>-->
  54. <label><input type="radio" name="nodeStatus_p1_n1" value="1">正常</label>
  55. <label><input type="radio" name="nodeStatus_p1_n1" value="0">异常</label>
  56. <input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点操作描述,2-10位中文" maxlength="10"/>
  57. <i class="Hui-iconfont" onclick="delNode(this)">&#xe60b;</i>
  58. </li>
  59. <li>
  60. <button type="button" class="my-btn-edit" onclick="addProNode(this)">增加节点操作</button>
  61. </li>
  62. </ul>
  63. </div>
  64. </li>
  65. </ul>
  66. <div style="clear: both;"></div>
  67. <div><button type="button" class="my-btn-edit" onclick="addProcess(this)">增加节点</button></div>
  68. <div>
  69. <button type="reset" class="my-btn-reset" >重置</button><button type="submit" class="my-btn-submit">确认提交</button>
  70. </div>
  71. </div>
  72. </form>
  73. </article>
  74. <#--<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>-->
  75. <#--<script type="text/javascript" src="${path}/common/lib/ueditor/1.4.3/ueditor.all.js"></script>-->
  76. <script type="text/javascript" src="${path}/common/lib/jquery.ui/jquery-ui.js"></script>
  77. <script type="text/javascript">
  78. //动态显示隐藏所属菜单
  79. $(document).on('click', '.menuSubid input[type=radio]', function() {
  80. isSelectShow($(this).val())
  81. })
  82. $(function(){
  83. $("#form-admin-addProduce").validate({
  84. rules:{
  85. subName:{
  86. required:true,
  87. minlength:4,
  88. maxlength:30
  89. }
  90. },
  91. onkeyup:false,
  92. focusCleanup:true,
  93. success:"valid",
  94. submitHandler:function(form){
  95. $.post(root_path + "/admin/produce/save_produce", formatJSON(),function(result){
  96. if (result.returnCode != 200 || result.returnCode != 200) {
  97. layer.msg('录入失败,请重试!',{icon: 5,time:3000});
  98. } else {
  99. layer.msg('录入成功!!',{icon: 1,time:2000}, function () {
  100. // 关闭当前页面,并刷新父级页面
  101. window.location.href= '${path}/admin/produce/list_produce?detaId='+result.resultMsg;
  102. });
  103. }
  104. });
  105. }
  106. });
  107. });
  108. /*将表单format为JSON*/
  109. function formatJSON() {
  110. var produce = {};
  111. var oneTheProcess = $(".onrTheProcess").find(".processList");
  112. var proessList = new Array();
  113. oneTheProcess.each(function(){
  114. var produceProcess = {};
  115. produceProcess.processName = $(this).find("[name='processName']").val(); //获取工序名称
  116. var processNumber = $(this).find(".processNumber").val();
  117. var processTypeName = "processType_p"+processNumber; //获取工序类型名称
  118. produceProcess.processType = $("input[name="+ processTypeName +"]:checked").val(); //获取工序类型
  119. var nodeList = new Array();
  120. var j=1;
  121. $(this).find(".oneTheNode").find(".nodeList").each(function(){
  122. var processNode = {};
  123. processNode.nodeDes = $(this).find("[name='nodeDes']").val(); //获取节点描述
  124. var nodeStatusName = "nodeStatus_p"+processNumber+"_n" +j;
  125. processNode.nodeStatus = $("input[name="+ nodeStatusName +"]:checked").val(); //获取节点状态
  126. nodeList.push(processNode);
  127. j++;
  128. })
  129. produceProcess.json = JSON.stringify(nodeList); //将node变成json存入到工序对象中
  130. //produceProcess.nodes = nodeList;
  131. proessList.push(produceProcess);
  132. })
  133. produce.json = JSON.stringify(proessList); //将工序变成json存入到产品对象中
  134. produce.produceName = $("[name='produceName']").val();//获取产品名称
  135. produce.produceRemake = $("[name='produceRemake']").val();//获取产品描述
  136. produce.produceType = $("[name='produceType']").val();//获取产品描述
  137. return produce;
  138. }
  139. /**
  140. * 增加节点操作方法
  141. */
  142. function addProNode(node){
  143. var processNumber = $(node).parents(".processList").find(".processNumber").val(); //获取当前的节点标识
  144. var nodeNumber = $(node).parents(".oneTheNode").find(".nodeList").length + 1; //因为是新加的节点操作所以 +1
  145. var nodeHtml = '<li class="nodeList">'
  146. //+'<select class="my-select"><option>1</option></select>&nbsp;'
  147. +'<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n'+ nodeNumber +'" value="1">正常</label>&nbsp;'
  148. +'<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n'+ nodeNumber +'" value="0">异常</label>&nbsp;'
  149. +'<input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点操作描述,2-10位中文" maxlength="10"/>&nbsp;'
  150. +'<i class="Hui-iconfont" onclick="delNode(this)">&#xe60b;</i>'
  151. +'</li>';
  152. $(node).parent().before(nodeHtml);
  153. }
  154. /**
  155. * 增加工序节点
  156. * @param node
  157. */
  158. function addProcess(node) {
  159. var processNumber = $(".onrTheProcess").find(".processList").length + 1; //因为是新加的工序节点所以 +1
  160. var processHtml = '<li id="'+ processNumber +'" class="processList"><input type="hidden" class="processNumber" value="'+ processNumber +'">'
  161. + '<div class="input-box"><span class="input-dic">节点类型</span>'
  162. + '<label><input type="radio" name="processType_p'+ processNumber +'" value="1">生产工序</label>'
  163. + '<label><input type="radio" name="processType_p'+ processNumber +'" value="2">修理工序</label>'
  164. + '<button type="button" class="my-btn-edit" onclick="delProcess(this)">删除节点</button>'
  165. + '</div>'
  166. + '<div class="input-box"><span class="input-dic">节点名称</span><input class="my-input" name="processName" type="text" value="" placeholder="请输入节点名称"/> </div>'
  167. + '<div class="input-box"><span class="input-dic">节点操作</span>'
  168. + '<ul class="add-list oneTheNode">'
  169. + '<li class="nodeList">'
  170. // + '<select class="my-select"><option>1</option></select>&nbsp;'
  171. + '<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n1" value="1">正常</label>&nbsp;'
  172. + '<label><input type="radio" name="nodeStatus_p'+ processNumber +'_n1" value="0">异常</label>&nbsp;'
  173. + '<input class="my-input" name="nodeDes" type="text" value="" placeholder="请输入节点操作描述,2-10位中文" maxlength="10"/>&nbsp;'
  174. + '<i class="Hui-iconfont" onclick="delNode(this)">&#xe60b;</i>'
  175. + '</li>'
  176. + '<li><button type="button" class="my-btn-edit" onclick="addProNode(this)">增加节点操作</button></li>'
  177. + '</ul>'
  178. + '</div>'
  179. + '</li>';
  180. $(".onrTheProcess").append(processHtml);
  181. }
  182. /**
  183. * 删除工序节点
  184. * @param node
  185. */
  186. function delProcess(node) {
  187. var processNumber = $(node).parents(".onrTheProcess").find(".processList").length;
  188. if(parseInt(processNumber) < 2){
  189. layer.msg('至少要有一个节点!',{icon: 5,time:3000});
  190. }else{
  191. $(node).parents(".processList").remove();
  192. delProcessIds += delProcessIds;
  193. }
  194. }
  195. /**
  196. * 删除节点操作
  197. * @param node
  198. */
  199. function delNode(node){
  200. var nodesNumber = $(node).parents(".oneTheNode").find(".nodeList").length;
  201. if(parseInt(nodesNumber) < 2){
  202. layer.msg('至少要有一个节点操作!',{icon: 5,time:3000});
  203. }else{
  204. $(node).parents(".nodeList").remove();
  205. }
  206. }
  207. </script>
  208. <script>
  209. $(function() {
  210. //在ajax拉取数据append()之后再初始化拖拽排序
  211. $( "#sortable" ).sortable({
  212. revert: true,
  213. containment: "parent"
  214. });
  215. $( "ul, li" ).disableSelection();
  216. });
  217. //确认提交事件,获取每个li的id
  218. $(document).on('click', '.my-btn-submit', function() {
  219. $("#sortable>li").each(function(){
  220. console.log($(this).attr("id"));
  221. });
  222. });
  223. </script>
  224. </body>
  225. </html>