mesProcessParamLimitForm.html 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <% layout('/layouts/default.html', {title: '工艺参数上下限管理', libs: ['validate']}){ %>
  2. <div class="main-content">
  3. <div class="box box-main">
  4. <div class="box-header with-border">
  5. <div class="box-title">
  6. <i class="fa icon-note"></i> ${text(mesProcessParamLimit.isNewRecord ? '新增参数上下限' : '编辑参数上下限')}
  7. </div>
  8. <div class="box-tools pull-right">
  9. <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
  10. </div>
  11. </div>
  12. <#form:form id="inputForm" model="${mesProcessParamLimit}" action="${ctx}/mes/mesProcessParamLimit/save" method="post" class="form-horizontal">
  13. <div class="box-body">
  14. <div class="form-unit">${text('基本信息')}</div>
  15. <#form:hidden path="id"/>
  16. <#form:hidden path="processKey"/>
  17. <#form:hidden path="paramCode"/>
  18. <div class="row">
  19. <div class="col-xs-6">
  20. <div class="form-group">
  21. <label class="control-label col-sm-4">${text('工艺名称')}:</label>
  22. <div class="col-sm-8">
  23. <select id="processNameSelect" name="processName" class="form-control"></select>
  24. </div>
  25. </div>
  26. </div>
  27. <div class="col-xs-6">
  28. <div class="form-group">
  29. <label class="control-label col-sm-4">${text('参数名称')}:</label>
  30. <div class="col-sm-8">
  31. <select id="paramNameSelect" name="paramName" class="form-control"></select>
  32. </div>
  33. </div>
  34. </div>
  35. <div class="col-xs-6">
  36. <div class="form-group">
  37. <label class="control-label col-sm-4">${text('下限')}:</label>
  38. <div class="col-sm-8">
  39. <#form:input path="lowerLimit" maxlength="50" class="form-control"/>
  40. </div>
  41. </div>
  42. </div>
  43. <div class="col-xs-6">
  44. <div class="form-group">
  45. <label class="control-label col-sm-4">${text('上限')}:</label>
  46. <div class="col-sm-8">
  47. <#form:input path="upperLimit" maxlength="50" class="form-control"/>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. <div class="box-footer">
  54. <div class="row">
  55. <div class="col-sm-offset-2 col-sm-10">
  56. <% if (hasPermi('mes:mesProcessParamLimit:edit')){ %>
  57. <button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>&nbsp;
  58. <% } %>
  59. <button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
  60. </div>
  61. </div>
  62. </div>
  63. </#form:form>
  64. </div>
  65. </div>
  66. <% } %>
  67. <script>
  68. const processLimitOptions = [
  69. {key:'whitePart', name:'白件气密', params:[
  70. {code:'testPressure', name:'测试压'},
  71. {code:'leakVal', name:'泄漏值'}
  72. ]},
  73. {key:'assembly', name:'总成气密', params:[
  74. {code:'testPressure', name:'测试压'},
  75. {code:'leakVal', name:'泄漏值'}
  76. ]},
  77. {key:'prod115Front', name:'115拉铆框架正面', params:[
  78. {code:'fout', name:'拉力'},
  79. {code:'sout', name:'行程'}
  80. ]},
  81. {key:'prod115Back', name:'115液冷板装配拉铆', params:[
  82. {code:'fout', name:'拉力'},
  83. {code:'sout', name:'行程'}
  84. ]},
  85. {key:'prodHevBack', name:'HEV拉铆', params:[
  86. {code:'fout', name:'拉力'},
  87. {code:'sout', name:'行程'}
  88. ]},
  89. /* {key:'prodHevFront', name:'HEV正面拉铆', params:[
  90. {code:'fout', name:'拉力'},
  91. {code:'sout', name:'行程'}
  92. ]},*/
  93. {key:'welder', name:'凸焊', params:[
  94. {code:'capVoltage', name:'电容电压'},
  95. {code:'weldPeakCurrent', name:'焊接峰值电流'}
  96. ]},
  97. {key:'arc115', name:'115弧焊', params:[
  98. {code:'voltage1', name:'电压1'},
  99. {code:'current1', name:'电流1'},
  100. {code:'speed1', name:'送丝速度1'},
  101. {code:'voltage2', name:'电压2'},
  102. {code:'current2', name:'电流2'},
  103. {code:'speed2', name:'送丝速度2'}
  104. ]},
  105. {key:'arcHev', name:'HEV弧焊', params:[
  106. {code:'voltage1', name:'电压1'},
  107. {code:'current1', name:'电流1'},
  108. {code:'voltage2', name:'电压2'},
  109. {code:'current2', name:'电流2'}
  110. ]},
  111. {key:'spotHev', name:'HEV点焊', params:[
  112. {code:'current1', name:'电流1'},
  113. {code:'current2', name:'电流2'}
  114. ]}/*,
  115. {key:'spot115', name:'115点焊', params:[
  116. {code:'current1', name:'电流1'},
  117. {code:'current2', name:'电流2'}
  118. ]}*/
  119. ];
  120. const findProcess = (key, name) => processLimitOptions.find(item => item.name === name)
  121. || processLimitOptions.find(item => item.key === key);
  122. const findParam = (processKey, code, name) => {
  123. const process = findProcess(processKey);
  124. const params = process ? process.params : [];
  125. return params.find(item => item.code === code || item.name === name);
  126. };
  127. function fillProcessOptions() {
  128. const processSelect = $('#processNameSelect');
  129. processSelect.empty().append('<option value="">请选择工艺名称</option>');
  130. processLimitOptions.forEach(item => {
  131. processSelect.append('<option value="'+item.name+'" data-code="'+item.key+'">'+item.name+'</option>');
  132. });
  133. }
  134. function fillParamOptions(processKey, selectedParamName) {
  135. const paramSelect = $('#paramNameSelect');
  136. const process = findProcess(processKey);
  137. paramSelect.empty().append('<option value="">请选择参数名称</option>');
  138. if (!process) {
  139. return;
  140. }
  141. process.params.forEach(item => {
  142. paramSelect.append('<option value="'+item.name+'" data-code="'+item.code+'">'+item.name+'</option>');
  143. });
  144. if (selectedParamName) {
  145. paramSelect.val(selectedParamName);
  146. }
  147. }
  148. function syncProcessLimitFields() {
  149. const processSelect = $('#processNameSelect');
  150. const paramSelect = $('#paramNameSelect');
  151. const processName = processSelect.val() || '';
  152. const processItem = processLimitOptions.find(item => item.name === processName);
  153. $('#processKey').val(processItem ? processItem.key : '');
  154. const paramName = paramSelect.val() || '';
  155. const paramItem = processItem ? processItem.params.find(item => item.name === paramName) : null;
  156. $('#paramCode').val(paramItem ? paramItem.code : '');
  157. }
  158. function initProcessLimitSelects() {
  159. fillProcessOptions();
  160. const currentProcessName = '${mesProcessParamLimit.processName!}';
  161. const currentProcessKey = '${mesProcessParamLimit.processKey!}';
  162. const currentParamName = '${mesProcessParamLimit.paramName!}';
  163. const currentParamCode = '${mesProcessParamLimit.paramCode!}';
  164. const processItem = findProcess(currentProcessKey, currentProcessName);
  165. const processName = processItem ? processItem.name : currentProcessName;
  166. $('#processNameSelect').val(processName);
  167. fillParamOptions(processItem ? processItem.key : currentProcessKey, currentParamName);
  168. if (currentParamName && currentParamCode && $('#paramNameSelect option').filter(function(){
  169. return $(this).val() === currentParamName;
  170. }).length === 0) {
  171. $('#paramNameSelect').append('<option value="'+currentParamName+'" data-code="'+currentParamCode+'">'+currentParamName+'</option>');
  172. $('#paramNameSelect').val(currentParamName);
  173. }
  174. if (!currentParamName && currentParamCode && processItem) {
  175. const paramItem = findParam(processItem.key, currentParamCode, '');
  176. if (paramItem) {
  177. $('#paramNameSelect').val(paramItem.name);
  178. }
  179. }
  180. syncProcessLimitFields();
  181. }
  182. $('#processNameSelect').change(function(){
  183. const processName = $(this).val() || '';
  184. const processItem = processLimitOptions.find(item => item.name === processName);
  185. fillParamOptions(processItem ? processItem.key : '', '');
  186. syncProcessLimitFields();
  187. });
  188. $('#paramNameSelect').change(function(){
  189. syncProcessLimitFields();
  190. });
  191. $("#inputForm").validate({
  192. submitHandler: function(form){
  193. syncProcessLimitFields();
  194. js.ajaxSubmitForm($(form), function(data){
  195. js.showMessage(data.message);
  196. if(data.result == Global.TRUE){
  197. js.closeCurrentTabPage(function(contentWindow){
  198. contentWindow.page();
  199. });
  200. }
  201. }, "json");
  202. }
  203. });
  204. initProcessLimitSelects();
  205. </script>