mesWorkOrderList.html 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <% layout('/layouts/default.html', {title: '工单管理', libs: ['dataGrid']}){ %>
  2. <div class="main-content">
  3. <div class="box box-main">
  4. <div class="box-header">
  5. <div class="box-title">
  6. <i class="fa icon-notebook"></i> ${text('工单管理')}
  7. </div>
  8. <div class="box-tools pull-right">
  9. <a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
  10. <a href="#" class="btn btn-default" id="btnExport"><i class="glyphicon glyphicon-export"></i> ${text('导出')}</a>
  11. <% if(hasPermi('mes:mesWorkOrder:edit')){ %>
  12. <a href="#" class="btn btn-default" id="btnImport"><i class="glyphicon glyphicon-import"></i> ${text('导入')}</a>
  13. <a href="${ctx}/mes/mesWorkOrder/form" class="btn btn-default btnTool" title="${text('新增工单')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
  14. <% } %>
  15. <a href="#" class="btn btn-default" id="btnSetting" title="${text('设置')}"><i class="fa fa-navicon"></i></a>
  16. </div>
  17. </div>
  18. <div class="box-body">
  19. <#form:form id="searchForm" model="${mesWorkOrder}" action="${ctx}/mes/mesWorkOrder/listData" method="post" class="form-inline hide"
  20. data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
  21. <div class="form-group">
  22. <label class="control-label">${text('工单号')}:</label>
  23. <div class="control-inline">
  24. <#form:input path="workNo" maxlength="64" class="form-control width-120"/>
  25. </div>
  26. </div>
  27. <div class="form-group">
  28. <label class="control-label">${text('总成料号')}:</label>
  29. <div class="control-inline">
  30. <#form:input path="materialSn" maxlength="64" class="form-control width-120"/>
  31. </div>
  32. </div>
  33. <div class="form-group">
  34. <label class="control-label">${text('项目别')}:</label>
  35. <div class="control-inline">
  36. <#form:input path="projectCode" maxlength="64" class="form-control width-120"/>
  37. </div>
  38. </div>
  39. <div class="form-group">
  40. <label class="control-label">${text('订单编号')}:</label>
  41. <div class="control-inline">
  42. <#form:input path="saleOrderNo" maxlength="64" class="form-control width-120"/>
  43. </div>
  44. </div>
  45. <div class="form-group">
  46. <label class="control-label">${text('产线')}:</label>
  47. <div class="control-inline width-120">
  48. <#form:select path="lineSn" items="${lines}" itemLabel="title" itemValue="sn" blankOption="true" class="form-control"/>
  49. </div>
  50. </div>
  51. <div class="form-group">
  52. <label class="control-label">${text('工件类型')}:</label>
  53. <div class="control-inline width-120">
  54. <#form:select path="cateSn" items="${cates}" itemLabel="title" itemValue="sn" blankOption="true" class="form-control"/>
  55. </div>
  56. </div>
  57. <div class="form-group">
  58. <label class="control-label">${text('状态')}:</label>
  59. <div class="control-inline width-120">
  60. <select name="state" class="form-control">
  61. <option value="">${text('全部')}</option>
  62. <option value="0"<% if(mesWorkOrder.state == '0'){ %> selected<% } %>>${text('待下达')}</option>
  63. <option value="1"<% if(mesWorkOrder.state == '1'){ %> selected<% } %>>${text('已下达')}</option>
  64. <option value="2"<% if(mesWorkOrder.state == '2'){ %> selected<% } %>>${text('生产中')}</option>
  65. <option value="3"<% if(mesWorkOrder.state == '3'){ %> selected<% } %>>${text('完工')}</option>
  66. <option value="4"<% if(mesWorkOrder.state == '4'){ %> selected<% } %>>${text('暂停')}</option>
  67. <option value="5"<% if(mesWorkOrder.state == '5'){ %> selected<% } %>>${text('关闭')}</option>
  68. </select>
  69. </div>
  70. </div>
  71. <div class="form-group">
  72. <label class="control-label">${text('生产日期')}:</label>
  73. <div class="control-inline">
  74. <#form:input path="produceDate_gte" readonly="true" maxlength="20" class="form-control laydate width-date"
  75. dataFormat="date" data-type="date" data-format="yyyy-MM-dd"/>
  76. &nbsp;-&nbsp;
  77. <#form:input path="produceDate_lte" readonly="true" maxlength="20" class="form-control laydate width-date"
  78. dataFormat="date" data-type="date" data-format="yyyy-MM-dd"/>
  79. </div>
  80. </div>
  81. <div class="form-group">
  82. <button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
  83. <button type="reset" class="btn btn-default btn-sm">${text('重置')}</button>
  84. </div>
  85. </#form:form>
  86. <table id="dataGrid"></table>
  87. <div id="dataGridPage"></div>
  88. </div>
  89. </div>
  90. </div>
  91. <% } %>
  92. <script>
  93. var workOrderStateMap = {'0':'待下达','1':'已下达','2':'生产中','3':'完工','4':'暂停','5':'关闭'};
  94. $('#dataGrid').dataGrid({
  95. searchForm: $("#searchForm"),
  96. columnModel: [
  97. {header:'${text("工单号")}', name:'workNo', index:'a.work_no', width:150, align:"center", frozen:true, formatter: function(val, obj, row, act){
  98. return '<a href="${ctx}/mes/mesWorkOrder/form?id='+row.id+'" class="btnList" data-title="${text("编辑工单")}">'+(val||'')+'</a>';
  99. }},
  100. {header:'${text("项目别")}', name:'projectCode', index:'a.project_code', width:90, align:"center"},
  101. {header:'${text("总成料号")}', name:'materialSn', index:'a.material_sn', width:140, align:"center"},
  102. {header:'${text("规格名称")}', name:'specName', index:'a.spec_name', width:160, align:"left"},
  103. {header:'${text("图号")}', name:'drawingNo', index:'a.drawing_no', width:120, align:"center"},
  104. {header:'${text("需生产数量")}', name:'planQty', index:'a.plan_qty', width:100, align:"center"},
  105. {header:'${text("已完工")}', name:'doneQty', index:'a.done_qty', width:80, align:"center"},
  106. {header:'${text("开单日期")}', name:'openDate', index:'a.open_date', width:110, align:"center"},
  107. {header:'${text("生产日期")}', name:'produceDate', index:'a.produce_date', width:110, align:"center"},
  108. {header:'${text("订单编号")}', name:'saleOrderNo', index:'a.sale_order_no', width:140, align:"center"},
  109. {header:'${text("产线")}', name:'lineTitle', index:'a.line_sn', width:120, align:"center"},
  110. {header:'${text("工件类型")}', name:'cateTitle', index:'a.cate_sn', width:120, align:"center"},
  111. {header:'${text("状态")}', name:'state', index:'a.state', width:90, align:"center", formatter: function(val, obj, row, act){
  112. return workOrderStateMap[val] || val || '';
  113. }},
  114. {header:'${text("操作")}', name:'actions', width:190, formatter: function(val, obj, row, act){
  115. var actions = [];
  116. actions.push('<a href="${ctx}/mes/mesWorkOrder/snList?workNo='+(row.workNo||'')+'" class="addTabPage" data-title="${text("工单工件")}" title="${text("工件")}"><i class="fa fa-list"></i></a>&nbsp;');
  117. <% if(hasPermi('mes:mesWorkOrder:edit')){ %>
  118. actions.push('<a href="${ctx}/mes/mesWorkOrder/form?id='+row.id+'" class="btnList" title="${text("编辑")}"><i class="fa fa-pencil"></i></a>&nbsp;');
  119. if (row.state == '0'){
  120. actions.push('<a href="${ctx}/mes/mesWorkOrder/issue?id='+row.id+'" class="btnList" title="${text("下达")}" data-confirm="${text("确认下达该工单吗?")}"><i class="glyphicon glyphicon-ok"></i></a>&nbsp;');
  121. actions.push('<a href="${ctx}/mes/mesWorkOrder/delete?id='+row.id+'" class="btnList" title="${text("删除")}" data-confirm="${text("确认删除该工单吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
  122. }
  123. if (row.state == '1'){
  124. actions.push('<a href="${ctx}/mes/mesWorkOrder/recall?id='+row.id+'" class="btnList" title="${text("撤回")}" data-confirm="${text("确认撤回该工单吗?")}"><i class="glyphicon glyphicon-arrow-left"></i></a>&nbsp;');
  125. }
  126. if (row.state == '0' || row.state == '1'){
  127. actions.push('<a href="${ctx}/mes/mesWorkOrder/close?id='+row.id+'" class="btnList" title="${text("关闭")}" data-confirm="${text("确认关闭该工单吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
  128. }
  129. <% } %>
  130. return actions.join('');
  131. }}
  132. ],
  133. ajaxSuccess: function(data){
  134. }
  135. });
  136. </script>
  137. <script>
  138. $('#btnExport').click(function(){
  139. js.ajaxSubmitForm($('#searchForm'), {
  140. url:'${ctx}/mes/mesWorkOrder/exportData',
  141. downloadFile:true
  142. });
  143. });
  144. $('#btnImport').click(function(){
  145. js.layer.open({
  146. type: 1,
  147. area: ['420px'],
  148. title: '${text("导入工单")}',
  149. resize: false,
  150. scrollbar: true,
  151. content: js.template('importTpl'),
  152. btn: ['<i class="fa fa-check"></i> ${text("导入")}',
  153. '<i class="fa fa-remove"></i> ${text("关闭")}'],
  154. btn1: function(index, layero){
  155. var form = {
  156. inputForm: layero.find('#inputForm'),
  157. file: layero.find('#file').val()
  158. };
  159. if (form.file == '' || (!js.endWith(form.file, '.xls') && !js.endWith(form.file, '.xlsx'))){
  160. js.showMessage("${text('文件不正确,请选择后缀为“xls”或“xlsx”的文件。')}", null, 'warning');
  161. return false;
  162. }
  163. js.ajaxSubmitForm(form.inputForm, function(data){
  164. js.showMessage(data.message);
  165. if(data.result == Global.TRUE){
  166. js.layer.closeAll();
  167. }
  168. page();
  169. }, "json");
  170. return true;
  171. }
  172. });
  173. });
  174. </script>
  175. <script id="importTpl" type="text/template">//<!--
  176. <form id="inputForm" action="${ctx}/mes/mesWorkOrder/importData" method="post" enctype="multipart/form-data"
  177. class="form-horizontal mt20 mb10" style="overflow:auto;max-height:220px;">
  178. <div class="row">
  179. <div class="col-xs-12 col-xs-offset-1">
  180. <input type="file" id="file" name="file" class="form-file"/>
  181. <div class="mt10 pt5" style="color:red">
  182. ${text('可直接导入武汉厂工单排程表。第1行说明、第2行表头、第3行起为数据。')}
  183. </div>
  184. <div class="mt10 pt5">
  185. <a href="${ctx}/mes/mesWorkOrder/importTemplate" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> ${text('下载模板')}</a>
  186. </div>
  187. </div>
  188. </div>
  189. </form>
  190. //--></script>