update_bom.ftl 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  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"
  8. content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
  9. <meta http-equiv="Cache-Control" content="no-siteapp"/>
  10. <#include "/base/add_base.ftl">
  11. <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
  12. <style>
  13. </style>
  14. <title>修改Bom - Bom管理 - RST</title>
  15. </head>
  16. <body>
  17. <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
  18. <span class="c-gray en">&gt;</span> Bom管理
  19. <span class="c-gray en">&gt;</span> 修改Bom
  20. <a class="btn radius r"
  21. style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;"
  22. href="javascript:location.replace(location.href);" title="刷新"><i class="Hui-iconfont">&#xe68f;</i></a>
  23. </nav>
  24. <article class="page-container" style="padding: 10px;width: 600px;margin: 0 auto;">
  25. <form action="${path}/admin/bom/update_bom" method="post" class="form form-horizontal" id="form-bom-update">
  26. <input type="hidden" value="${ptsBom.bomId}" id="bomId" name="bomId">
  27. <input type="hidden" value="${ptsBom.produceId}" id="produceId" name="produceId">
  28. <div class="row cl">
  29. <label class="form-label col-xs-4 col-sm-3">所属产品:</label>
  30. <div class="formControls col-xs-8 col-sm-9" > <span class="select-box">
  31. <select class="select" disabled="disabled" style="background: #eee;">
  32. <#if produceList?? && (produceList?size > 0) >
  33. <#list produceList as produce>
  34. <option value="${produce.produceId}" <#if ptsBom.produceId??><#if ptsBom.produceId == produce.produceId >selected="selected" </#if></#if>>${produce.produceName}</option>
  35. </#list>
  36. </#if>
  37. </select>
  38. </span>
  39. </div>
  40. </div>
  41. <div class="row cl">
  42. <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>Bom名称:</label>
  43. <div class="formControls col-xs-8 col-sm-9">
  44. <input type="text" class="input-text" value="${ptsBom.bomName}" id="bomName" name="bomName" placeholder="请输入1-20位的名称,支持中文、字母、数字" datatype="/^[a-zA-Z0-9\u4e00-\u9fa5]{1,20}$/" errormsg="请输入1-20位的名称,支持中文、字母、数字!">
  45. </div>
  46. </div>
  47. <div class="row cl">
  48. <label class="form-label col-xs-4 col-sm-3">备注:</label>
  49. <div class="formControls col-xs-8 col-sm-9">
  50. <textarea name="bomRemarks" id="bomRemarks" cols="" rows="" class="textarea"
  51. placeholder="Bom单备注,最多支持100字符" onKeyUp="$.Huitextarealength(this,100)" >${ptsBom.bomRemarks ! ''}</textarea>
  52. <p class="textarea-numberbar"><em class="textarea-length">0</em>/100</p>
  53. </div>
  54. </div>
  55. <div class="row cl">
  56. <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>Bom零件清单:</label>
  57. <div class="formControls col-xs-8 col-sm-9 components">
  58. <input type="hidden" id="bomComponentJson" name="bomComponentJson">
  59. <table class="table table-border table-bordered table-bg table-hover table-sort">
  60. <thead>
  61. <tr class="text-c">
  62. <th width="150">选择零件</th>
  63. <th width="60">零件数量</th>
  64. <th width="20">操作</th>
  65. </tr>
  66. </thead>
  67. <tbody id="componentaAll">
  68. <#if ptsBom.ptsBomComponentsList?? && (ptsBom.ptsBomComponentsList?size > 0) >
  69. <#list ptsBom.ptsBomComponentsList as bomComponents>
  70. <tr class="text-c">
  71. <td>
  72. <select class="select" size="1" name="comName" style="height: 30px;">
  73. <#list ptsComponentsList as ptsComponents>
  74. <option value="${ptsComponents.componentsId}" <#if bomComponents.componentsId == ptsComponents.componentsId >selected="selected"</#if>>${ptsComponents.componentsName}(${ptsComponents.componentsNo})</option>
  75. </#list>
  76. </select>
  77. </td>
  78. <td>
  79. <input type="text" class="input-text" value="${bomComponents.bomComponentsQuantity}" id="" name="comNumber" placeholder="零件数量" datatype="n1-3" errormsg="零件数量不能超过999件!">
  80. </td>
  81. <td>
  82. <a style="" href="javascript:void(0);" title="删除" onclick="delComponent(this,1)"> <i class="Hui-iconfont"></i> </a>
  83. </td>
  84. </tr>
  85. </#list>
  86. </#if>
  87. </tbody>
  88. </table>
  89. </div>
  90. </div>
  91. <div class="row cl">
  92. <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
  93. <input class="btn btn-primary radius" type="button" value="&nbsp;&nbsp;新增零件&nbsp;&nbsp;" onclick="addComponents('#','')">
  94. </div>
  95. </div>
  96. <div class="row cl">
  97. <label class="form-label col-xs-4 col-sm-3"></label>
  98. <span class="c-red">*提示</span><span>:新增的Bom,需要批次选中该Bom单,才会生效!</span>
  99. </div>
  100. <div class="row cl">
  101. <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
  102. <input class="btn btn-primary radius" type="submit" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
  103. </div>
  104. </div>
  105. </form>
  106. </article>
  107. <script type="text/javascript">
  108. $(function(){
  109. $("#form-bom-update").Validform({
  110. tiptype: function (msg, o, cssctl) {
  111. if (o.type == 3) {//失败
  112. layer.msg(msg, {icon: 5, time: 3000});
  113. $(window).scrollTop(o.obj.offset().top - 40);
  114. }
  115. },
  116. datatype: {//自定义验证类型
  117. "select": function (gets, obj, curform, regxp) {
  118. if (gets == "") {
  119. return false;
  120. } else {
  121. return true;
  122. }
  123. }
  124. },
  125. ignoreHidden: true,
  126. tipSweep: true, //若为true,则只在表单提交时验证
  127. ajaxPost: true, //异步提交
  128. beforeCheck: function (curform) { //验证通过之前执行的函数
  129. },
  130. beforeSubmit: function (curform) { //验证通过之后执行的函数
  131. var ptsBomComponentsList = new Array();
  132. $("#componentaAll").find("tr").each(function (){
  133. var ptsBomComponents = {};
  134. ptsBomComponents.componentsId = $(this).find("[name='comName']").eq(0).val();
  135. ptsBomComponents.bomComponentsQuantity = $(this).find("[name='comNumber']").eq(0).val();
  136. ptsBomComponentsList.push(ptsBomComponents);
  137. })
  138. $("#bomComponentJson").val(JSON.stringify(ptsBomComponentsList));
  139. },
  140. callback: function (data) {//异步回调函数
  141. if (data) {
  142. var index = layer.alert(data.resultMsg, function () {
  143. if (data.resultCode == 200 ) {
  144. location.href = "${path}/admin/bom/_bom_list";
  145. } else {
  146. layer.close(index);
  147. }
  148. });
  149. }
  150. }
  151. });
  152. })
  153. var allComponents; //所有零件的集合
  154. $(function () {
  155. })
  156. /* 添加零件 */
  157. function addComponents(componentsId,number) {
  158. var tbody = $("#componentaAll");
  159. if(allComponents == null){ //获取零件列表
  160. var produceId = $("[name='produceId']").val();
  161. allComponents = listComponent(produceId);
  162. }
  163. var opHtml = '';
  164. for(var i=0;i<allComponents.length;i++){
  165. var components = allComponents[i];
  166. var isSelect = '';
  167. if(componentsId == components.componentsId){
  168. isSelect = 'selected="selected"';
  169. }
  170. opHtml += '<option value="'+ components.componentsId +'" '+ isSelect +'>'+ components.componentsName +'('+ components.componentsNo + ')</option>';
  171. }
  172. var html = '<tr class="text-c"> '
  173. +'<td> '
  174. +'<select class="select" size="1" name="comName" style="height: 30px;"> '
  175. +''
  176. + opHtml
  177. +'</select> '
  178. +'</td> '
  179. +'<td> '
  180. +'<input type="text" class="input-text" value="'+ number +'" id="" name="comNumber" placeholder="零件数量" datatype="n1-3" errormsg="零件数量不能超过999件!"> '
  181. +'</td> '
  182. +'<td> '
  183. +'<a style="" href="javascript:void(0);" title="删除" onclick="delComponent(this,1)"> '
  184. +'<i class="Hui-iconfont">&#xe609;</i> '
  185. +'</a> '
  186. +'</td> '
  187. +'</tr>';
  188. tbody.append(html);
  189. }
  190. /*删除零件 type=all时删除所有的零件 */
  191. function delComponent(node,type) {
  192. if(type == "all"){
  193. $("#componentaAll").find("tr").each(function () {
  194. $(this).remove();
  195. })
  196. }else{
  197. $(node).parent().parent().remove();
  198. }
  199. }
  200. /*获取所有的零件*/
  201. function listComponent(produceId) {
  202. var list = new Array();
  203. $.ajax({
  204. type: "POST",
  205. data: {
  206. produceId : produceId
  207. },
  208. url: "${path}/admin/bom/get_listComponents",
  209. async: false,
  210. success: function(data){
  211. if (data.returnCode == 200) {
  212. list = data.returnMsg.ptsComponentsList;
  213. }
  214. },
  215. error: function(XmlHttpRequest, textStatus, errorThrown){
  216. }
  217. });
  218. return list;
  219. }
  220. /*获取bom信息,赋值在页面上*/
  221. function getBom(bomId){
  222. var bom = new Object();
  223. $.ajax({
  224. type: "POST",
  225. data: {
  226. bomId : bomId
  227. },
  228. url: "${path}/admin/bom/get_bom",
  229. async: false,
  230. success: function(data){
  231. if (data.returnCode == 200) {
  232. bom = data.returnMsg.ptsBom;
  233. }
  234. },
  235. error: function(XmlHttpRequest, textStatus, errorThrown){
  236. }
  237. });
  238. if(bom != null && bom.bomId != null){
  239. $("#bomName").val(bom.bomName);
  240. $("#bomRemarks").val(bom.bomRemarks);
  241. delComponent(0,"all");
  242. var components = bom.ptsBomComponentsList;
  243. if(components != null && components.length > 0){
  244. for(var i=0;i<components.length;i++){
  245. addComponents(components[i].componentsId,components[i].bomComponentsQuantity);
  246. }
  247. }
  248. }else{
  249. defaultAllInput();
  250. }
  251. }
  252. /*当选择产品或者bom不选择时,都需要重置所有的输入框和表格*/
  253. function defaultAllInput() {
  254. $("#bomName").val("");
  255. $("#bomRemarks").val("");
  256. delComponent(0,"all");
  257. addComponents("#","");
  258. }
  259. </script>
  260. <!--/请在上方写此页面业务相关的脚本-->
  261. </body>
  262. </html>