@{ ViewData["Title"] = "維修進/出統計報表"; Layout = "~/Views/Shared/_AMESLayout.cshtml"; } <style type="text/css"> .layui-table-main .layui-table-cell { /*height: auto !important;*/ white-space: normal; } .layui-table img { max-width: 60px; max-height: 28px; } .layui-tree-main { cursor: pointer; padding-right: 10px; float: left; border-width: 1px; border-style: solid; border-color: #e6e6e6; margin: 10px 0; } </style> <div class="layui-card"> <div class="layui-card-header"> <div class="layui-form"> <div class="layui-form-item"> <div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> </div> </div> </div> <div class="layui-card-body"> <div class="layui-form"> <div class="layui-row"> <div class="layui-form-item"> <div class="layui-col-sm3"> <div class="layui-inline"> <label class="layui-form-label">工單號碼:</label> <div class="layui-input-inline" style="width:150px"> <input id="wipNO" name="wipNo" autocomplete="off" class="layui-input" placeholder="請輸入工單號碼"> </div> </div> </div> <div class="layui-col-sm3"> <div class="layui-inline"> <label class="layui-form-label">料號:</label> <div class="layui-input-inline" style="width:150px"> <input id="itemNO" name="itemNo" autocomplete="off" class="layui-input" placeholder="請輸入料號"> </div> </div> </div> </div> </div> <div class="layui-row"> <div class="layui-form-item"> <div class="layui-col-sm5"> <div class="layui-inline"> <label class="layui-form-label">維修日期:</label> <div class="layui-input-inline" style="width:150px"> <input id="dateStart" name="dateStart" autocomplete="off" class="layui-input" readonly=""> </div> <div class="layui-form-mid">~</div> <div class="layui-input-inline" style="width:150px"> <input id="dateEnd" name="dateEnd" autocomplete="off" class="layui-input" readonly=""> </div> </div> </div> <div class="layui-col-sm1"> <div class="layui-inline layui-show-xs-block"> <button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="querysubmit"> <i class="layui-icon layui-icon-sm"></i> </button> </div> </div> </div> </div> </div> <table class="layui-hide" id="query" lay-filter="query"></table> <div class="layui-inline"> <button type="button" id="btnExport" class="layui-btn layui-btn-normal layui-btn-sm"><i class="fa fa-file-excel-o"></i>導出全部數據</button> </div> </div> </div> @section Scripts{ <script type="text/javascript"> layui.config({ base: '../lib/layui_ext/', }).extend({ excel: 'excel', }); </script> <script type="text/javascript"> function formatJSONDate(jsonDate) { if (jsonDate == null) { return ""; } else { var date = eval(jsonDate.replace(/\/Date\((\d+)\)\//gi, "new Date($1)")); var myDate = new Date(date); var yy = myDate.getFullYear(); var mm = (myDate.getMonth() + 1 < 10 ? '0' : '') + (myDate.getMonth() + 1); var dd = (myDate.getDate() < 10 ? '0' : '') + myDate.getDate(); var h = (myDate.getHours() < 10 ? '0' : '') + myDate.getHours(); var m = (myDate.getMinutes() < 10 ? '0' : '') + myDate.getMinutes(); var s = (myDate.getSeconds() < 10 ? '0' : '') + myDate.getSeconds(); //mm + "/" + dd + " " + //var output = yy + "-" + mm + "-" + dd + " " + h + ":" + m + ":" + s; var output = yy + mm + dd + h + m + s; // myDate.getHours() + ":" + myDate.getMinutes() + ":" + myDate.getSeconds(); return output; } } layui.use(['jquery', 'excel', 'layer'], function () { var $ = layui.jquery; var layer = layui.layer; var excel = layui.excel; $('#btnExport').on('click', function () { $.ajax({ url: '@Url.Action("REP013Query", "REP")', dataType: 'json', success(res) { var data = res.data; data = excel.filterExportData(data, [ 'unitNO', 'lineDesc', 'createDate', 'month', 'weekOfYearISO', 'stationName', 'wipNO', 'planQTY', 'barcodeNo', 'modelNO', 'itemNO', 'semiItemNo', 'oldPartNo', 'newPartNo', 'ngNo', 'reasonDesc', 'locationNo', 'changeMaterial', 'repairReason', 'repairType2', 'memo', 'repairDesc', 'ngType2', 'rrDesc', 'userNo', 'userName', 'replyDate', 'testDate', 'testUserNo', 'testUserName', 'testTypeName', 'qaTypeName', 'ngReasonDescEn', 'partNo', 'pinNo', 'reelNo', 'dateCode', 'vendorCode', 'replyReason', 'replyMeasure', 'replyUserNo', 'replyUserName', 'checkInUserName', 'checkInDate', 'checkOutUserName', 'checkOutDate', 'tat', 'stateDesc' ]); data.unshift({ unitNO: "製程單位", lineDesc: "線別", createDate: "維修時間", month: "月份", weekOfYearISO: "第幾週", stationName: "站別", wipNO: "工單號碼", planQTY: "數量", barcodeNo: "條碼", modelNO: "機種", itemNO: "料號", semiItemNo: "半成品料號", oldPartNo: "舊料號", newPartNo: "新料號", ngNo: "不良代碼", reasonDesc: "不良描述", locationNo: "維修位置", changeMaterial: "更換零件", repairReason: "維修原因", repairType2: "維修類別", memo: "維修備註", repairDesc: "維修描述", ngType2: "不良類別", rrDesc: "不良責任類別", userNo: "維修工號", userName: "維修人員", replyDate: "回覆時間", testDate: "測試時間", testUserNo: "測試工號", testUserName: "測試人員" , testTypeName: "測試類別", qaTypeName: "QA類別", ngReasonDescEn: "英文不良描述", partNo: "零件料號", pinNo: "腳位", reelNo: "料卷號" , dateCode: "日期碼", vendorCode: "供應商代碼", replyReason: "回覆原因" , replyMeasure: "回覆對策", replyUserNo: "回覆工號", replyUserName: "回覆人員" , checkInUserName: "進站人員", checkInDate: "進站時間", checkOutUserName: "出站人員", checkOutDate: "出站時間", tat: "TAT(小時)", stateDesc: "狀態" }); var timestart = Date.now(); excel.downloadExcel(data, '維修進出統計報表' + formatJSONDate(Date.now().toString()), 'xlsx'); var timeend = Date.now(); var spent = (timeend - timestart) / 1000; layer.alert('導出全部數據耗時 ' + spent + ' s'); } , error() { layer.alert('導出全部數據失敗'); } }); }); }); layui.use(['form', 'layer', 'laydate'], function () { form = layui.form; laydate = layui.laydate; laydate.render({ elem: '#dateStart' , trigger: 'click' , format: 'yyyy/MM/dd' , theme: 'grid' }); laydate.render({ elem: '#dateEnd' , trigger: 'click' , format: 'yyyy/MM/dd' , theme: 'grid' }); }); //监听表单提交事件 hg.form.onsubmit('querysubmit', function (data) { hg.msghide("重新載入資料.."); table && table.reload(data); }); var tableCols = [[ { field: 'barcodeNo', title: '條碼', sort: true }, { field: 'wipNO', width: 200, title: '工單號碼', sort: true }, { field: 'itemNO', title: '料號', width: 200, sort: true }, { field: 'stationName', width: 160, title: '站別', sort: true }, { field: 'checkInUserName', title: '進站人員', width: 160, sort: true }, { field: 'checkInDate', title: '進站時間', width: 160, templet: '<div>{{ layui.util.toDateString(d.testDate, "yyyy/MM/dd HH:mm") }}</div>' }, { field: 'checkOutUserName', title: '出站人員', width: 160, sort: true }, { field: 'checkOutDate', title: '出站時間', width: 160, templet: '<div>{{ layui.util.toDateString(d.createDate, "yyyy/MM/dd HH:mm") }}</div>' }, { field: 'tat', title: 'TAT(天)', width: 160, sort: true }, { field: 'stateDesc', title: '狀態', width: 100, sort: true }] ]; //var param = productTypeNo.value + '_' + testTypeNo.value + '_' + unitNo.value + '_' + lineID.value + '_' + stationID.value + '_' + wipNO.value + '_' + itemNO.value + '_' + dateStart.value + '_' + dateEnd.value; //基本数据表格 var table = hg.table.datatable('query', '維修進/出統計報表', '/REP/REP013Query', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); </script> }