mesProductCheckDeskCheck.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. <% layout('/layouts/default.html', {title: '质量检查记录管理', libs: ['validate','fileupload']}){ %>
  2. <style>
  3. .custom-table{
  4. table-layout:fixed;
  5. white-space: pre-wrap!important;
  6. }
  7. </style>
  8. <div class="main-content">
  9. <div class="box box-main">
  10. <div class="box-header with-border">
  11. <div class="box-title">
  12. <i class="fa icon-note"></i> ${text('首件检查')} 当前工件码:<span id="sss"></span>
  13. </div>
  14. <div class="box-tools pull-right">
  15. <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
  16. </div>
  17. </div>
  18. <#form:form id="inputForm" model="${mesProductCheck}" action="${ctx}/mes/mesProductCheck/desksave" method="post" class="form-horizontal">
  19. <div class="box-body">
  20. <!-- <div class="form-unit">${text('基本信息')}</div>-->
  21. <#form:hidden path="id"/>
  22. <div class="row">
  23. <!-- <div class="col-xs-12">-->
  24. <!-- <table class="table table-bordered">-->
  25. <!-- <tr>-->
  26. <!-- <th class="mpc-header">来源</th>-->
  27. <!-- <td>首件检查</td>-->
  28. <!-- </tr>-->
  29. <!-- <tr>-->
  30. <!-- <th class="mpc-header">二维码编号</th>-->
  31. <!-- <td><span id="sss"></span></td>-->
  32. <!-- </tr>-->
  33. <!-- <tr>-->
  34. <!-- <th class="mpc-header">工位号</th>-->
  35. <!-- <td>OP300</td>-->
  36. <!-- </tr>-->
  37. <!-- </table>-->
  38. <!-- </div>-->
  39. <#form:hidden path="checkId"/>
  40. <!-- <div class="col-xs-12">-->
  41. <!-- <div class="form-group">-->
  42. <!-- <label class="control-label col-sm-2" title="">-->
  43. <!-- <span class="required">*</span> ${text('检查类型')}:<i class="fa icon-question hide"></i></label>-->
  44. <!-- <div class="col-sm-10">-->
  45. <!-- <#form:select path="checkId" items="${mclist}" itemLabel="title" blankOption="true" itemValue="id" class="form-control required" />-->
  46. <!-- </div>-->
  47. <!-- </div>-->
  48. <!-- </div>-->
  49. <div class="col-xs-12">
  50. <div class="form-group">
  51. <!-- <label class="control-label col-sm-2" title="">-->
  52. <!-- <span class="required">*</span> ${text('检查清单')}:<i class="fa icon-question hide"></i></label>-->
  53. <div class="col-sm-12">
  54. <input type="hidden" id="checkItemsBox" name="items" value="">
  55. <table class="table table-bordered text-center custom-table">
  56. <thead>
  57. <tr>
  58. <th>检查位置</th>
  59. <th>检查项目</th>
  60. <th>标准要求</th>
  61. <th>检查方式</th>
  62. <th>结果</th>
  63. <th>失效类型</th>
  64. </tr>
  65. </thead>
  66. <tbody id="checkitems">
  67. <!--<tr>
  68. <td>检查位置</td>
  69. <td>检查项目</td>
  70. <td>标准要求</td>
  71. <td>检查方式</td>
  72. <td><input type="radio" name="aa[0]"></td>
  73. <td>
  74. <label style="font-weight: normal;">失效类型1 <input name="bb[0]" type="checkbox"></label>
  75. <label>失效类型2 <input name="bb[0]" type="checkbox"></label>
  76. <label>失效类型3 <input name="bb[0]" type="checkbox"></label>
  77. <label>失效类型4 <input name="bb[0]" type="checkbox"></label>
  78. <label>失效类型5 <input name="bb[0]" type="checkbox"></label>
  79. <label>失效类型6 <input name="bb[0]" type="checkbox"></label>
  80. <label>失效类型7 <input name="bb[0]" type="checkbox"></label>
  81. </td>
  82. </tr>
  83. <tr>
  84. <td>检查位置</td>
  85. <td>检查项目</td>
  86. <td>标准要求</td>
  87. <td>检查方式</td>
  88. <td><input type="radio" name="aa[1]"></td>
  89. <td>
  90. <table class="table text-center">
  91. <tr>
  92. <td><label>失效类型1 <input name="bb[1]" type="checkbox"></label></td>
  93. </tr>
  94. <tr>
  95. <td><label>失效类型2 <input name="bb[1]" type="checkbox"></label></td>
  96. </tr>
  97. <tr>
  98. <td><label>失效类型3 <input name="bb[1]" type="checkbox"></label></td>
  99. </tr>
  100. <tr>
  101. <td><label>失效类型4 <input name="bb[1]" type="checkbox"></label></td>
  102. </tr>
  103. </table>
  104. </td>-->
  105. </tbody>
  106. </tr>
  107. </table>
  108. </div>
  109. </div>
  110. </div>
  111. <div class="col-xs-12">
  112. <div class="form-group">
  113. <label class="control-label col-sm-2" title="">
  114. <span class="required">*</span> ${text('操作')}:<i class="fa icon-question hide"></i></label>
  115. <div class="col-sm-10">
  116. <#form:radio path="state" dictType="mes_deal_status" class="form-control required" />
  117. </div>
  118. </div>
  119. </div>
  120. <div class="col-xs-12">
  121. <div class="form-group">
  122. <label class="control-label col-sm-2" title="">
  123. <span class="required hide">*</span> ${text('备注')}:<i class="fa icon-question hide"></i></label>
  124. <div class="col-sm-10">
  125. <#form:input path="remark" maxlength="255" class="form-control"/>
  126. </div>
  127. </div>
  128. </div>
  129. <div class="col-xs-12" id="repairbox" style="display: none;">
  130. <div class="form-group">
  131. <label class="control-label col-sm-2" title="">
  132. <span class="required">*</span> ${text('不合格类型')}:<i class="fa icon-question hide"></i></label>
  133. <div class="col-sm-10">
  134. <#form:select path="repairType" dictType="mes_warehouse_type" multiple="true" blankOption="true" class="form-control " />
  135. </div>
  136. </div>
  137. <div class="form-group">
  138. <label class="control-label col-sm-2" title="">
  139. <span class="required">*</span> ${text('不合格描述')}:<i class="fa icon-question hide"></i></label>
  140. <div class="col-sm-10">
  141. <#form:input path="repairContent" maxlength="255" class="form-control"/>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. <div class="box-footer">
  148. <div class="row">
  149. <div class="col-sm-offset-2 col-sm-10">
  150. <button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>&nbsp;
  151. <button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
  152. </div>
  153. </div>
  154. </div>
  155. </#form:form>
  156. </div>
  157. </div>
  158. <% } %>
  159. <script>
  160. var mclist = ${toJson(mclist)}; // 检查类型
  161. var items = []; // 检查清单
  162. $(function () {
  163. let val = $('#checkId').val(); // 取值
  164. changeVal(val);
  165. callJavaFx();
  166. });
  167. function callJavaFx(){
  168. // window.sout.println("test:"+window.apps.callFromJs("jaaaaa"))
  169. var javaja = window.apps.callFromJs("jadd");
  170. // console.log("sss:"+javaja)
  171. // alert(javaja)
  172. $("#sss").html(javaja);
  173. }
  174. $("#inputForm").validate({
  175. submitHandler: function(form){
  176. js.ajaxSubmitForm($(form), function(data){
  177. js.showMessage(data.message);
  178. if(data.result == Global.TRUE){
  179. js.closeCurrentTabPage(function(contentWindow){
  180. contentWindow.page();
  181. });
  182. }
  183. }, "json");
  184. }
  185. });
  186. // 选中事件
  187. $('#state').on('ifChecked', function(){
  188. let val = $('#state input:radio:checked').val(); // 取值
  189. if(val == '2' || val == '4'){
  190. $('#repairbox').show();
  191. }else{
  192. $('#repairbox').hide();
  193. }
  194. });
  195. $('#checkId').on('select2:select', function (event) {
  196. let val = $('#checkId').val(); // 取值
  197. changeVal(val);
  198. });
  199. function changeVal(val) {
  200. console.log(val);
  201. items = [];
  202. for(let o in mclist){
  203. if(mclist[o].id == val){
  204. items = mclist[o].mesCheckFormList;
  205. }
  206. }
  207. for(let o in items){
  208. items[o].result = "";
  209. items[o].fails = "";
  210. }
  211. formatItems();
  212. }
  213. function formatItems() {
  214. let str = "";
  215. for (let o in items){
  216. str += '<tr>';
  217. str += '<td>'+items[o].position+'</td>';
  218. str += '<td>'+items[o].title+'</td>';
  219. str += '<td>'+items[o].standard+'</td>';
  220. str += '<td>'+items[o].way+'</td>';
  221. str += '<td><label style="font-weight: normal;"><input type="radio" name="extraitems['+o+']" onclick="selectOk(this)" data-id="'+items[o].id+'" value="1">OK</label>&nbsp;&nbsp;&nbsp;';
  222. str += '<label style="font-weight: normal;"><input type="radio" name="extraitems['+o+']" onclick="selectNok(this)" data-id="'+items[o].id+'" value="0">NOK</label></td>';
  223. str += '<td style="text-align: left">';
  224. let fails = items[o].mesCheckItemsFail;
  225. for (let n in fails){
  226. str += '<label style="font-weight: normal;"> <input onchange="changeFail(this)" data-id="'+items[o].id+'" name="extraitems['+o+'][fails]" type="checkbox" value="'+fails[n].id+'"> '+fails[n].title+' </label><br />';
  227. }
  228. str += '</td>';
  229. str += '</tr>';
  230. }
  231. $('#checkitems').html(str);
  232. formatResult();
  233. }
  234. function formatResult() {
  235. let checkItems = [];
  236. for(let o in items){
  237. checkItems.push({
  238. id: items[o].itemsId,
  239. result: items[o].result?items[o].result:'',
  240. fails: items[o].fails?items[o].fails:'',
  241. oprno: items[o].oprno
  242. });
  243. }
  244. console.log('result',checkItems);
  245. $('#checkItemsBox').val(JSON.stringify(checkItems));
  246. }
  247. function selectOk(_self) {
  248. let id = $(_self).attr('data-id');
  249. for(let o in items){
  250. if(items[o].id == id){
  251. items[o].result = "1";
  252. items[o].fails = "";
  253. }
  254. }
  255. console.log(items);
  256. formatResult();
  257. }
  258. function selectNok(_self) {
  259. let id = $(_self).attr('data-id');
  260. for(let o in items){
  261. if(items[o].id == id){
  262. items[o].result = "0";
  263. //jquery获取复选框值
  264. let chk_value =[];//定义一个数组
  265. //遍历每一个名字为active的复选框,其中选中的执行函数
  266. $('input[name="extraitems['+o+'][fails]"]:checked').each(function(){
  267. chk_value.push($(this).val());//将选中的值添加到数组chk_value中
  268. });
  269. items[o].fails = chk_value.join(',');
  270. }
  271. }
  272. console.log(items);
  273. formatResult();
  274. }
  275. function changeFail(_self) {
  276. let id = $(_self).attr('data-id');
  277. console.log(id);
  278. for(let o in items){
  279. if(items[o].id == id){
  280. if(items[o].result == '0'){
  281. //jquery获取复选框值
  282. let chk_value =[];//定义一个数组
  283. //遍历每一个名字为active的复选框,其中选中的执行函数
  284. $('input[name="extraitems['+o+'][fails]"]:checked').each(function(){
  285. chk_value.push($(this).val());//将选中的值添加到数组chk_value中
  286. });
  287. items[o].fails = chk_value.join(',');
  288. }else{
  289. items[o].fails = '';
  290. }
  291. }
  292. }
  293. formatResult();
  294. }
  295. </script>