@model AMESCoreStudio.Web.ViewModels.PCS.WipDataViewModel @{ ViewData["Title"] = "PCS001"; Layout = "~/Views/Shared/_AMESLayout.cshtml"; } <style> .control-label { justify-content: flex-end !important; } .text-error { color: #dc3545 !important; } </style> <div class="layui-card"> <div class="col-sm-12"> <form enctype="multipart/form-data" method="post" asp-action="PCS001" class="layui-form"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <input asp-for="wipAtt.ItemNO" type="hidden" value="@if(Model.wipAtt != null) {@Model.wipAtt.ItemNO}" /> <input asp-for="wipBarcodeOther.OtherID" type="hidden" value="@if(Model.wipBarcodeOther != null){ @Model.wipBarcodeOther.OtherID }" /> <input asp-for="wipMAC.WipNO" type="hidden" value="@if(Model.wipMAC != null){ @Model.wipMAC.WipNO }" /> <div class="layui-form-item " style="padding-left:30px"> <input asp-for="wipInfo.InputFlag" type="checkbox" title="判斷前製程是否已經投入" /> </div> <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="wipInfo.WipNO" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.WipNO" style="width: 140px; display:initial" class="layui-input" autocomplete="off" /> <button class="layui-btn layui-btn-sm layui-btn-normal" name="action" value="Copy" lay-submit lay-filter="querysubmit"> <i class="layui-icon layui-icon-sm"></i> </button> <span asp-validation-for="wipInfo.WipNO" class="layui-bg-red"></span> </div> <label asp-for="wipInfo.WipSEQ" class="layui-form-label"></label> <div class="layui-input-inline"> <select asp-for="wipInfo.WipSEQ" asp-items="@ViewBag.WipSEQTypeList" class=""></select> </div> <label asp-for="wipAtt.ItemNO" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipAtt.ItemNO" style="width: 140px; display:initial" class="layui-input" autocomplete="off" /> <button class="layui-btn layui-btn-sm layui-btn-normal" name="action" value="ItemNo" lay-submit lay-filter="querysubmit"> <i class="layui-icon layui-icon-sm"></i> </button> <span asp-validation-for="wipAtt.ItemNO" class="layui-bg-red"></span> </div> <label asp-for="wipInfo.PlanQTY" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.PlanQTY" class="layui-input" autocomplete="off" /> <span asp-validation-for="wipInfo.PlanQTY" class="layui-bg-red"></span> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="wipInfo.WipType" class="layui-form-label"></label> <div class="layui-input-inline"> <select asp-for="wipInfo.WipType" asp-items="@ViewBag.GetWipTypeList" class=""></select> </div> <label asp-for="wipInfo.ProductTypeID" class="layui-form-label"></label> <div class="layui-input-inline"> <select asp-for="wipInfo.ProductTypeID" asp-items="@ViewBag.ProductTypesList"></select> </div> <label asp-for="wipInfo.Werks" class="layui-form-label"></label> <div class="layui-input-inline"> <select asp-for="wipInfo.Werks" asp-items="@ViewBag.FactoryInfoList" style="color: #dc3545 !important;"></select> </div> <label asp-for="wipInfo.WerksNO" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.WerksNO" class="layui-input" autocomplete="off" /> <span asp-validation-for="wipInfo.WerksNO" class="layui-bg-red"></span> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">客戶類別</label> <div class="layui-input-inline"> <input asp-for="wipInfo.CustomerMedical" type="checkbox" title="醫療" /> <input asp-for="wipInfo.CustomerVIP" type="checkbox" title="VIP" /> </div> <label asp-for="wipInfo.CustomerNO" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.CustomerNO" class="layui-input" autocomplete="off" /> <span asp-validation-for="wipInfo.CustomerNO" class="layui-bg-red"></span> </div> <label asp-for="wipInfo.CustomerItemNO" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.CustomerItemNO" class="layui-input" autocomplete="off" /> </div> <label asp-for="wipInfo.Sales" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.Sales" class="layui-input" autocomplete="off" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="wipInfo.UnitNO" class="layui-form-label"></label> <div class="layui-input-inline"> <select id="unit" lay-filter="unit" asp-for="wipInfo.UnitNO" asp-items="@ViewBag.FactoryUnitByWipNo" class=""></select> </div> <input id="unitNo" type="hidden" asp-for="wipInfo.UnitNO" /> <label asp-for="wipInfo.LineID" class="layui-form-label"></label> <div class="layui-input-inline"> <select lay-filter="lind" asp-for="wipInfo.LineID" asp-items="@ViewBag.LineInfoList" class=""> </select> <span asp-validation-for="wipInfo.LineID" class="layui-bg-red"></span> </div> <input id="lindID" type="hidden" name="lindID" value="" /> <label asp-for="wipInfo.RelatedWONO" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.RelatedWONO" class="layui-input" /> <span asp-validation-for="wipInfo.RelatedWONO" class="layui-bg-red"></span> </div> <label asp-for="wipInfo.OrderNO" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.OrderNO" class="layui-input" /> </div> </div> </div> <div class="layui-form-item"> <label asp-for="wipInfo.Remarks" class="layui-form-label"></label> <div class="layui-input-block"> <input asp-for="wipInfo.Remarks" class="layui-input" /> </div> </div> <div class="layui-form-item"> <label asp-for="wipInfo.Description" class="layui-form-label"></label> <div class="layui-input-block"> <input asp-for="wipInfo.Description" class="layui-input" /> </div> </div> <div class="layui-form-item" style="padding-left:30px"> <input type="checkbox" title="混線投入機種檢查" asp-for="wipInfo.ModelCheck" /> <input type="checkbox" title="混線投入ECN相同檢查" asp-for="wipInfo.ECNCheck" /> <input type="checkbox" title="線上強制工單" asp-for="wipInfo.Priority" /> </div> <div class="layui-tab layui-tab-brief"> <ul class="layui-tab-title"> <li class="layui-this">工單屬性</li> <li>序號編碼</li> <li>Keypart組合</li> <li>生產流程</li> <li id="board">板卡-工程資訊</li> <li id="system">系統-工程資訊</li> <li>治具組合</li> <li>SOP文件</li> <li>標籤選項</li> <li>上傳檔案</li> </ul> <div class="layui-tab-content"> @* 工單屬性sheet *@ <div class="layui-tab-item layui-show"> <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="wipAtt.ModelNO" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipAtt.ModelNO" class="layui-input" /> </div> <label asp-for="wipAtt.WipProcess" class="layui-form-label"></label> <div class="layui-input-inline"> <select asp-for="wipAtt.WipProcess" asp-items="@ViewBag.ProcessTypeList" class=""></select> </div> <label asp-for="wipAtt.Side" class="layui-form-label"></label> <div class="layui-input-inline"> <select asp-for="wipAtt.Side" asp-items="@ViewBag.MFGTypeList" class=""></select> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="wipAtt.Boards" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipAtt.Boards" class="layui-input" /> <span asp-validation-for="wipAtt.Boards" class="layui-bg-red"></span> </div> <label asp-for="wipInfo.BoxCNT" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.BoxCNT" class="layui-input" /> <span asp-validation-for="wipInfo.BoxCNT" class="layui-bg-red"></span> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="wipAtt.ECN" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipAtt.ECN" class="layui-input" /> </div> <label asp-for="wipAtt.EAN" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipAtt.EAN" class="layui-input" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="wipInfo.WipScheduleDate" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.WipScheduleDate" class="layui-input" readonly="" /> <span asp-validation-for="wipInfo.WipScheduleDate" class="layui-bg-red"></span> </div> <label asp-for="wipInfo.WipDueDate" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipInfo.WipDueDate" class="layui-input" readonly="" /> <span asp-validation-for="wipInfo.WipDueDate" class="layui-bg-red"></span> </div> </div> </div> </div> @* 序號編碼sheet *@ <div class="layui-tab-item"> <label class="layui-form-label">生產序號</label> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">生產序號</label> <div class="layui-input-inline"> <input asp-for="wipBarcode.StartNO" class="layui-input" /> </div> <div class="layui-form-mid">-</div> <div class="layui-input-inline"> <input asp-for="wipBarcode.EndNO" class="layui-input" /> </div> <div class="layui-input-inline"> <input id="GetBarCode" class="layui-btn layui-btn-primary layui-border-blue layui-btn-sm" type="button" value="產生條碼" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">出貨序號</label> <div class="layui-input-inline"> <input asp-for="wipBarcodeOther.StartNO" class="layui-input" /> </div> <div class="layui-form-mid">-</div> <div class="layui-input-inline"> <input asp-for="wipBarcodeOther.EndNO" class="layui-input" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">MAC</label> <div class="layui-input-inline"> <input asp-for="wipMAC.StartNO" class="layui-input" /> </div> <div class="layui-form-mid">-</div> <div class="layui-input-inline"> <input asp-for="wipMAC.EndNO" class="layui-input" /> </div> <div class="layui-input-inline"> <input id="GetMAC" class="layui-btn layui-btn-primary layui-border-blue layui-btn-sm" type="button" value="產生MAC" /> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">備註</label> <div class="layui-input-block"> <input asp-for="wipBarcode.Remarks" class="layui-input" type="text" /> </div> </div> </div> @* Keypart組合sheet *@ <div class="layui-tab-item"> <a id="KPTableAdd" class="layui-btn layui-btn-xs layui-icon layui-icon-add-circle">新增</a> <input type="hidden" value=@Model.WipKps.Count() id="WipKpCount" /> <table id="KPTable" class="layui-table"> @{int k = 0;} <thead> <tr> <th> KP料號名稱 </th> <th> KP料號NO </th> <th> 順序 </th> <th> 前置碼 </th> <th> 長度 </th> <th> 生產單位代號 </th> <th> </th> </tr> </thead> <tbody> @foreach (var index in Model.WipKps) { <tr> <td> <input name="WipKps[@k].WipKpID" type="hidden" value="@index.WipKpID" /> <input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.KpName" name="WipKps[@k].KpName" /> </td> <td> <select asp-for="@index.KpNo" name="WipKps[@k].KpNo" asp-items="@ViewBag.ItemsList" class=""></select> </td> <td> <input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.KpSeq" name="WipKps[@k].KpSeq" /> </td> <td> <input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.Title" name="WipKps[@k].Title" /> </td> <td> <input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.Length" name="WipKps[@k].Length" /> </td> <td> <select asp-for="@index.UnitNo" name="WipKps[@k].UnitNo" asp-items="@ViewBag.FactoryUnitByWipNo" class=""></select> </td> <td> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" onclick="Remove(this);">刪除</a> </td> </tr> k++; } </tbody> </table> </div> @* 生產流程sheet *@ <div class="layui-tab-item"> <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="wipInfo.FlowRuleID" as class="layui-form-label"></label> <div class="layui-input-inline"> <select lay-filter="flow" asp-for="wipInfo.FlowRuleID" asp-items="@ViewBag.MaterialFlowRule" class=""></select> </div> </div> <div class="layui-inline"> <input type="checkbox" title="途程確認" asp-for="wipInfo.SFISFlowCk" /> </div> <div class="layui-form-item"> <label class="layui-form-label">作業流程註解</label> <div class="layui-input-block"> <textarea placeholder="請輸入作業流程註解" asp-for="wipInfo.FlowRemark" class="layui-textarea"></textarea> </div> </div> <table class="layui-hide" id="ruleStation" lay-filter="ruleStation"></table> <table id="rulestionOld" class="layui-table"> <thead> <tr> <th> 生產單位 </th> <th> 流程名稱 </th> <th> 站別描述 </th> <th> 站別順序 </th> <th> 站別類型 </th> </tr> </thead> <tbody> @foreach (var index in Model.ruleStations) { <tr> <td> @index.UnitNoName </td> <td> @index.FlowRuleName </td> <td> @index.StationDesc </td> <td> @index.Sequence </td> <td> @index.StationType </td> </tr> } </tbody> </table> </div> </div> @* 板卡-工程資訊sheet *@ <div class="layui-tab-item"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label" asp-for="wipBoard.Engineer"></label> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipBoard.Engineer" onchange="getUserName(this);" /> </div> <label class="layui-form-label">姓名</label> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipBoard.Engineer_Name" readonly="readonly" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">SMD點紅膠</label> <div class="layui-input-block"> <cl-checkbox asp-items="@ViewBag.GetCheckboxSMD" asp-for="wipBoard.SMDs" asp-skin="defult"></cl-checkbox> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">SMD點紅膠備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.SmdRemarks" class="layui-input" type="text" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">SMD點防焊膠</label> <div class="layui-input-block"> <cl-checkbox asp-items="@ViewBag.GetCheckboxSMDSolderMa" asp-for="wipBoard.SmdSolderMasks" asp-skin="defult"></cl-checkbox> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">SMD點防焊膠備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.SmdSMRemarks" class="layui-input" type="text" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">DIP</label> <div class="layui-input-block"> <cl-checkbox asp-items="@ViewBag.GetCheckboxDIP" asp-for="wipBoard.DipSides" asp-skin="defult"></cl-checkbox> <input asp-for="wipBoard.DipCarrier" type="checkbox" title="CARRIER" /> <input asp-for="wipBoard.DipTape" type="checkbox" title="貼付膠帶" /> <input asp-for="wipBoard.SmdSolderMask" type="checkbox" title="點防焊膠" /> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">DIP備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.DipRemarks" class="layui-input" type="text" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">燒錄</label> <div class="layui-input-inline"> <input type="checkbox" title="是否燒入" asp-for="wipBoard.Burn" /> </div> <div class="layui-input-inline"> <label asp-for="wipBoard.BurnLocation" class="layui-form-label"></label> <div class="layui-input-block"> <input asp-for="wipBoard.BurnLocation" class="layui-input" /> </div> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">燒錄備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.BurnRemarks" class="layui-input" type="text" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <input type="checkbox" title="零件是否需要烘烤" asp-for="wipBoard.Burn" /> </div> <div class="layui-inline"> <label class="layui-form-label">零件烘烤溫度</label> <div class="layui-input-inline"> <select asp-items="@ViewBag.GetPartsBakeTypeList" asp-for="wipBoard.PartsBake" class=""></select> </div> </div> <div class="layui-inline"> <label class="layui-form-label">零件烘烤時間</label> <div class="layui-input-block"> <input asp-for="wipBoard.PartsBakeTime" class="layui-input" /> <span asp-validation-for="wipBoard.PartsBakeTime" class="layui-bg-red"></span> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">零件烘烤備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.PartsBakeRemarks" class="layui-input" type="text" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">PCB烘烤</label> <div class="layui-input-inline"> <select asp-items="@ViewBag.GetPCBBakeTypeSelect" asp-for="wipBoard.PcbBake" class=""></select> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">PCB烘烤備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.PcbBakeRemarks" class="layui-input" type="text" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label" asp-for="wipBoard.SolderPaste"></label> <div class="layui-input-block"> <select asp-items="@ViewBag.GetSolderPasteSelect" asp-for="wipBoard.SolderPaste"></select> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">錫膏備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.SolderPasteRemarks" class="layui-input" type="text" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">PCB加工</label> <div class="layui-input-inline"> <select asp-items="@ViewBag.GetPCBProcessingTypeSelect" asp-for="wipBoard.PcbProcessing" class=""></select> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">PCB加工備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.PcbProcessingRemarks" class="layui-input" type="text" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <div class="layui-input-inline"> <label asp-for="wipBoard.BiRatio" class="layui-form-label"></label> <div class="layui-input-block"> <input asp-for="wipBoard.BiRatio" class="layui-input" /> <span asp-validation-for="wipBoard.BiRatio" class="layui-bg-red"></span> </div> </div> <div class="layui-input-inline"> <label asp-for="wipBoard.BiTemperature" class="layui-form-label"></label> <div class="layui-input-block"> <input asp-for="wipBoard.BiTemperature" class="layui-input" /> <span asp-validation-for="wipBoard.BiTemperature" class="layui-bg-red"></span> </div> </div> <div class="layui-input-inline"> <label asp-for="wipBoard.BiTime" class="layui-form-label"></label> <div class="layui-input-block"> <input asp-for="wipBoard.BiTime" class="layui-input" /> <span asp-validation-for="wipBoard.BiTime" class="layui-bg-red"></span> </div> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">燒機備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.BiRemarks" class="layui-input" type="text" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="wipBoard.BiosVer" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipBoard.BiosVer" class="layui-input" placeholder="請輸入BIOS" /> <span asp-validation-for="wipBoard.BiosVer" class="layui-bg-red"></span> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">BIOS備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.BiosRemarks" class="layui-input" type="text" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label asp-for="wipBoard.Checksum" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipBoard.Checksum" class="layui-input" placeholder="請輸入Checksum" /> <span asp-validation-for="wipBoard.Checksum" class="layui-bg-red"></span> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">Check Sum備註</label> <div class="layui-input-block"> <input asp-for="wipBoard.CsRemarks" class="layui-input" type="text" /> </div> </div> </div> @* 系統-工程資訊sheet *@ <div class="layui-tab-item"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label" asp-for="wipSystem.Engineer"></label> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Engineer" onchange="getUserName(this);" /> </div> <label class="layui-form-label">姓名</label> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Engineer_Name" readonly="readonly" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">Power Mode</label> <div class="layui-input-inline"> <select asp-for="wipSystem.PowerModeType" asp-items="@ViewBag.GetWipSystemPMTypeSelect" class=""></select> </div> <div class="layui-input-inline"> <input class="layui-input" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.PowerMode" autocomplete="off" /> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">PLM參考</label> <div class="layui-input-block"> <input class="layui-input" asp-for="wipSystem.PowerMode_Desc" readonly="readonly" /> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <div class="layui-input-inline"> <label asp-for="wipSystem.BiRatio" class="layui-form-label"></label> <div class="layui-input-block"> <input asp-for="wipSystem.BiRatio" class="layui-input" /> </div> </div> <div class="layui-input-inline"> <label asp-for="wipSystem.BiTemperature" class="layui-form-label"></label> <div class="layui-input-block"> <input asp-for="wipSystem.BiTemperature" class="layui-input" /> </div> </div> <div class="layui-input-inline"> <label asp-for="wipSystem.BiTime" class="layui-form-label"></label> <div class="layui-input-block"> <input asp-for="wipSystem.BiTime" class="layui-input" /> </div> </div> <label asp-for="wipSystem.BiMemo" class="layui-form-label"></label> <div class="layui-input-inline"> <input asp-for="wipSystem.BiMemo" class="layui-input" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">BIOS</label> <div class="layui-input-inline"> <select asp-for="wipSystem.BiosType" asp-items="@ViewBag.GetWipSystemTypeSelect" class=""></select> </div> <div class="layui-input-inline"> <input class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.Bios" autocomplete="off" /> </div> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Bios_Desc" readonly="readonly" /> </div> <label class="layui-form-label">Ver.</label> <div class="layui-input-inline" style="width:80px;"> <input asp-for="wipSystem.BiosVer" class="layui-input" /> </div> <label class="layui-form-label">CS.</label> <div class="layui-input-inline" style="width:80px;"> <input asp-for="wipSystem.Checksum" style="width:80px;" class="layui-input" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">EC</label> <div class="layui-input-inline"> <select asp-for="wipSystem.ECType" asp-items="@ViewBag.GetWipSystemTypeSelect" class=""></select> </div> <div class="layui-input-inline"> <input class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.Ec" autocomplete="off" /> </div> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Ec_Desc" readonly="readonly" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">FW</label> <div class="layui-input-inline"> <select asp-for="wipSystem.FWType" asp-items="@ViewBag.GetWipSystemTypeSelect" class=""></select> </div> <div class="layui-input-inline"> <input class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" asp-for="wipSystem.Fw" autocomplete="off" /> </div> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Fw_Desc" readonly="readonly" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">FW1</label> <div class="layui-input-inline"> <select asp-for="wipSystem.FW1Type" asp-items="@ViewBag.GetWipSystemTypeSelect" class=""></select> </div> <div class="layui-input-inline"> <input class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" asp-for="wipSystem.Fw1" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" autocomplete="off" /> </div> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Fw1_Desc" readonly="readonly" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">FW2</label> <div class="layui-input-inline"> <select asp-for="wipSystem.FW2Type" asp-items="@ViewBag.GetWipSystemTypeSelect" class=""></select> </div> <div class="layui-input-inline"> <input class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" asp-for="wipSystem.Fw2" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" autocomplete="off" /> </div> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Fw2_Desc" readonly="readonly" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label" asp-for="wipSystem.OsVer"></label> <div class="layui-input-inline"> <select asp-for="wipSystem.OsType" asp-items="@ViewBag.GetWipSystemTypeSelect" class=""></select> </div> <div class="layui-input-inline"> <input class="layui-input autocomplete" onkeypress="if( event.keyCode == 13 ) { return false; }" asp-for="wipSystem.OsVer" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" autocomplete="off" /> </div> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.OsVer_Desc" readonly="readonly" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label" asp-for="wipSystem.Cpu"></label> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Cpu" autocomplete="off" /> </div> <label class="layui-form-label" asp-for="wipSystem.Ram"></label> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Ram" autocomplete="off" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">FINE_PACKAGE</label> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.FinePackage" autocomplete="off" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label" asp-for="wipSystem.DmiBi"></label> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.DmiBi" autocomplete="off" /> </div> </div> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label" asp-for="wipSystem.Jumper"></label> <div class="layui-input-inline"> <input class="layui-input" asp-for="wipSystem.Jumper" autocomplete="off" /> </div> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">備註</label> <div class="layui-input-block"> <input class="layui-input" asp-for="wipSystem.Memo" /> </div> </div> </div> @* 治具組合sheet *@ <div class="layui-tab-item"> <a id="OutfitTableAdd" class="layui-btn layui-btn-xs layui-icon layui-icon-add-circle">新增</a> <input type="hidden" value=@Model.WipOutfits.Count() id="WipOutfitCount" /> <table id="OutfitTable" class="layui-table"> @{int l = 0;} <thead> <tr> <th> 治具種類 </th> <th> 生產單位 </th> <th> 流程站別 </th> <th> </th> </tr> </thead> <tbody> @foreach (var index in Model.WipOutfits) { <tr> <td> <input name="WipOutfits[@l].WipOutfitID" type="hidden" value="@index.WipOutfitID" /> <select asp-for="@index.PartNo" name="WipOutfits[@l].PartNo" asp-items="@ViewBag.OutfitCommodityInfo" class=""></select> </td> <td> <select asp-for="@index.UnitNo" name="WipOutfits[@l].UnitNo" asp-items="@ViewBag.FactoryUnitByWipNo" class=""></select> </td> <td> <select asp-for="@index.RuleStationID" name="WipOutfits[@l].RuleStationID" asp-items="@ViewBag.RuleStationByWipNoUnitNoList" class=""></select> </td> <td> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" onclick="Remove(this);">刪除</a> </td> </tr> l++; } </tbody> </table> </div> @* SOP文件 sheet *@ <div class="layui-tab-item" lay-filter="test2"> <a id="SopTableAdd" class="layui-btn layui-btn-xs layui-icon layui-icon-add-circle">新增</a> <input type="hidden" value=@Model.WipSops.Count() id="WipSopCount" /> <table id="SopTable" class="layui-table"> @{int i = 0;} <thead> <tr> <th> SOP文件敘述 </th> <th> 檔案路徑 </th> <th> SOP類型 </th> <th> 生產單位 </th> <th> </th> </tr> </thead> <tbody> @foreach (var index in Model.WipSops) { <tr> <td> <input name="WipSops[@i].WipSOPID" type="hidden" value="@index.WipSOPID" /> <input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.SOPName" name="WipSops[@i].SOPName" /> </td> <td> <input onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" asp-for="@index.SOPPath" name="WipSops[@i].SOPPath" /> </td> <td> <select asp-for="@index.SOPType" name="WipSops[@i].SOPType" asp-items="@ViewBag.GetSOPTypeSelect" class=""></select> </td> <td> <select asp-for="@index.UnitNo" name="WipSops[@i].UnitNo" asp-items="@ViewBag.FactoryUnitByWipNo" class=""></select> </td> <td> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" onclick="Remove(this);">刪除</a> </td> </tr> i++; } </tbody> </table> </div> @* 標籤選項sheet *@ <div class="layui-tab-item"> <div class="layui-form-item"> <label class="layui-form-label">列印方式</label> <cl-radio asp-items="@ViewBag.GetCheckboxPrintMode" asp-for="wipLabel.PrintMode"></cl-radio> </div> <div class="layui-form-item"> <label class="layui-form-label">列印張數</label> <div class="layui-input-inline" style="width: 100px;"> <input class="layui-input" asp-for="wipLabel.PrintPage" /> </div> <div class="layui-form-mid layui-word-aux">張</div> </div> <div class="layui-form-item"> <label class="layui-form-label">認證LOGO</label> <div class="layui-input-block"> <cl-checkbox asp-items="@ViewBag.GetCheckboxApproveLogo" asp-for="wipLabel.ApproveLogos" asp-skin="defult"></cl-checkbox> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">公司LOGO</label> <div class="layui-input-block"> <cl-radio asp-items="@ViewBag.GetCheckboxCompanyLogo" asp-for="wipLabel.CompanyLogo"></cl-radio> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">工單屬性</label> <div class="layui-input-block"> <cl-radio asp-items="@ViewBag.GetCheckboxWipAttr" asp-for="wipLabel.WipAttr"></cl-radio> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">備註</label> <div class="layui-input-block"> <input asp-for="wipLabel.Remarks" class="layui-input" type="text" /> </div> </div> </div> @* 上傳資料sheet *@ <div class="layui-tab-item"> <div class="layui-form-item"> <table lay-filter="demo" class="layui-table"> <thead> <tr> <th lay-data="{field:'username', width:100}">檔案名稱</th> <th lay-data="{field:'experience', width:80, sort:true}">檔案路徑</th> </tr> </thead> <tbody> @foreach (var index in Model.wipInfoBlobs) { <tr> <td> @index.ImageName </td> <td> @index.Filepath </td> </tr> } </tbody> </table> </div> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label" asp-for="wipInfoBlob.ImageName">檔案</label> <label class="layui-btn"> <input type="file" name="formFile"> </label> <input type="hidden" asp-for="wipInfoBlob.ImageName"> </div> </div> </div> </div> </div> <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> <div class="layui-form-item"> <div style="text-align:center"> <input type="submit" value="保存" name="action" class="layui-btn" /> </div> </div> </form> </div> </div> @section Scripts { @*@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); await Html.RenderPartialAsync("_FileinputScriptsPartial"); }*@ <script type="text/javascript"> $(document).ready(function () { getFlowRuleList($("#unit").val()); getLineInfoList($("#unit").val()); if ($("#unit").val() == "B" || $("#unit").val() == "P" || $("#unit").val() == "T") { $("#system").show(); $("#board").hide(); } else { $("#system").hide(); $("#board").show(); } if ($('#wipAtt_ItemNO').val() != "" && $('#wipInfo_PlanQTY').val() != "") { $("#GetMAC").hide(); } var error = '@Html.ValidationMessage("error")'; if ($(error).text() != '') { parent.hg.msg(error); }; function getFlowRuleList(data) { $.ajax( { url: "@Url.Action("GetFlowRuleJson", "BAS")", dataType: 'json', data: { "unit_no": $("#unit").val()}, type: 'post', success: function (result) { console.info(result.data); $("#wipInfo_FlowRuleID").empty();//清空下拉框的值 $.each(result.data, function (index, item) { $("#wipInfo_FlowRuleID").append($("<option>").text(item.text).val(item.value)) }); layui.form.render("select");//重新渲染 固定写法 // 刷新 生產流程 RuleStation($("#wipInfo_FlowRuleID").val()); }, error: function (result) { alert(result); } }); }; function getLineInfoList(data) { $.ajax( { url: "@Url.Action("GetUnitLineJson", "BAS")", dataType: 'json', data: { "unit_no": $("#unit").val()}, type: 'post', success: function (result) { console.info(result.data); $("#wipInfo_LineID").empty();//清空下拉框的值 $.each(result.data, function (index, item) { $("#wipInfo_LineID").append($("<option>").text(item.text).val(item.value)) }); $("#wipInfo_LineID option:eq(1)").attr("selected", 'selected'); //默认选择第一个选项 layui.form.render("select");//重新渲染 固定写法 }, error: function (result) { alert(result); } }); }; layui.config({ base: '/js/' //假设这是test.js所在的目录 }).extend({ //设定模块别名 autocomplete: 'layAutoComplete' }); layui.use(['form', 'laydate', 'autocomplete'], function () { var form = layui.form, laydate = layui.laydate; laydate.render({ elem: '#wipInfo_WipScheduleDate' , trigger: 'click' , format: 'yyyy/MM/dd' , theme: 'grid' }); laydate.render({ elem: '#wipInfo_WipDueDate' , trigger: 'click' , format: 'yyyy/MM/dd' , theme: 'grid' }); // PLM料號關鍵字 $(".autocomplete").each(function () { layui.autocomplete({ element: this, display: 'meterialNo', shortcut: 'modelName', num: 2, count: 10, url: '/PCS/getPLMMeterialAutoComplete', query: {}, resArray: 'data', done: function (item) { $(this.element).closest('div.layui-inline').find('input[id*=' + this.element.id + '_Desc]').val(item.meterialDesc); } }); }) // PowerMode layui.autocomplete({ element: '#wipSystem_PowerMode', display: 'meterialNo', shortcut: 'modelName', num: 2, count: 10, url: '/PCS/getPLMMeterialAutoComplete', query: {}, resArray: 'data', done: function (item) { $('#wipSystem_PowerMode_Desc').val(item.productionMemo); } }); form.on('select(unit)', function (data) { $("#unitNo").val(data.value); getFlowRuleList(data.value); getLineInfoList(data.value); if (data.value == "B" || data.value == "P" || data.value == "T") { $("#system").show(); $("#board").hide(); } else { $("#system").hide(); $("#board").show(); } }); form.on('select(flow)', function (data) { $("#flowId").val(data.value); }); form.on('select(lind)', function (data) { $("#lindId").val(data.value); }); }); $('#GetBarCode').click(function () { var wipNO = $('#wipInfo_WipNO').val().toUpperCase(); var planQTY = $('#wipInfo_PlanQTY').val(); if (wipNO == '' || !wipNO) { parent.hg.msg("請輸入工單號碼"); return; } if (planQTY == '' || !planQTY || planQTY == 0) { parent.hg.msg("請確認計畫數量"); return; } $("#wipBarcode_StartNO").val(wipNO + PrefixInteger(1, 4)); $("#wipBarcode_EndNO").val(wipNO + PrefixInteger(planQTY, 4)); }); $('#GetMAC1').click(function () { var wipNO = $('#wipAtt_ItemNO').val(); var planQTY = $('#wipInfo_PlanQTY').val(); if (wipNO == '' || !wipNO) { parent.hg.msg("請輸入料號"); return; } if (planQTY == '' || !planQTY || planQTY == 0) { parent.hg.msg("請確認計畫數量"); return; } $("#wipBarcode_StartNO").val(wipNO + PrefixInteger(1, 4)); $("#wipBarcode_EndNO").val(wipNO + PrefixInteger(planQTY, 4)); }); function PrefixInteger(num, length) { return (Array(length).join('0') + num).slice(-length); }; $("#GetMAC").click(function (event) { var wipNO = $('#wipAtt_ItemNO').val(); var planQTY = $('#wipInfo_PlanQTY').val(); if (wipNO == '' || !wipNO) { parent.hg.msg("請輸入料號"); return; } if (planQTY == '' || !planQTY || planQTY == 0) { parent.hg.msg("請確認計畫數量"); return; } $.ajax({ url: '@Url.Action("GetMAC", "PCS")', dataType:'json', data: { "itemno": $("#wipAtt_ItemNO").val(), "planQTY": $('#wipInfo_PlanQTY').val()}, cache: false, type: "POST", success: function (data, textStatus, jqXHR) { if (data._msg != undefined) { parent.hg.msg(data._msg); } $("#wipMAC_StartNO").val(data.mix); $("#wipMAC_EndNO").val(data.max); }, error: function (jqXHR, textStatus, errorThrown) { alert("Found error when using Ajax!!"); } }); }); }); //通过行tool编辑,lay-event="show" function show(obj) { layui.use('layer', function () { var layer = layui.layer; layer.open({ type: 2, area: ['900px', '650px'], fixed: false, //不固定 maxmin: true, content: obj.data.filePath + obj.data.newName }); }); }; @* KeyParts文件 sheet *@ hg.form.onsubmit('queryKeyParts', function (data) { var item = $("#wipAtt_ItemNO").val(); if ($.trim(item) == '' || item == undefined) { parent.hg.msg("請輸入料號"); return; } var tableCols_keyParts = [[ { field: 'itemName', width: 150, title: '料號', sort: true }, { field: 'kpName', title: 'KP料號名稱', width: 200, sort: true }, { field: 'kpNo', title: 'KP料號NO', sort: true }, { field: 'kpSeq', title: '順序', width: 100, sort: true }, { field: 'title', title: '前置碼', width: 150 }, { field: 'length', title: '長度', width: 150 }, { field: 'station', title: '站(前段)', width: 150 }] ]; var tableKeyParts = hg.table.datatable('keyparts', 'KeyParts查詢', '/PCS/MaterialKpQuery?itemNo=' + item, {}, tableCols_keyParts,'', false, 'full-100'); hg.msghide("重新載入資料.."); tableKeyParts ; }); @* Outfit sheet *@ hg.form.onsubmit('queryOutfit', function (data) { var item = $("#wipAtt_ItemNO").val(); if ($.trim(item) == '' || item == undefined) { parent.hg.msg("請輸入料號"); return; } var tableCols = [[ { field: 'outfitNo', width: 150, title: '設備編碼', sort: true }, { field: 'stationType', title: '設備名稱', width: 200, sort: true }, { field: 'unit.unitName', title: '生產單位', sort: true, templet: function (fileIng) { return fileIng.unit.unitName; } } ] ]; var tableOutfit = hg.table.datatable('Outfit', '治具維護', '/PCS/MaterialOutfitByItemNo?itemNo=' + item, {}, tableCols, '', false, 'full-100'); hg.msghide("重新載入資料.."); tableOutfit; }); @* SOP文件 sheet *@ hg.form.onsubmit('querysop', function (data) { var item = $("#wipAtt_ItemNO").val(); if ($.trim(item) == '' || item == undefined) { parent.hg.msg("請輸入料號"); return; } var tableCols = [[ { field: 'itemNo', width: 150, title: '料號', sort: true }, { field: 'unitName', title: '生產單位', width: 200, sort: true }, { field: 'sopName', title: 'SOP文件敘述', sort: true }, { field: 'sopPath', title: '檔案路徑', sort: true }, { field: 'sopTypeName', title: 'SOP類型', width: 100, sort: true }, { field: 'right', width: 80, title: '操作', align: 'center', fixed: 'right', templet: function (d) { return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-read" lay-event="show">預覽</a>' } }] ]; var tablesop = hg.table.datatable('wipsop', 'SOP文件查詢維護', '/PCS/PCS030Query?itemNo=' + item, {}, tableCols, '',false, 'full-100'); hg.msghide("重新載入資料.."); tablesop; }); function RuleStation(id) { if (id == null) { id = 1; }; var tableCols_rule = [[ { field: 'stationDesc', width: 150, title: '站別描述', sort: true }, { field: 'sequence', title: '站別順序', width: 200, sort: true }, { field: 'stationType', title: '站別類型', sort: true }] ]; var tableruleStation = hg.table.datatable('ruleStation', '', '/BAS/GetRuleStationsByFlow?flowId='+id, {}, tableCols_rule,'', false, 'full-100'); tableruleStation; }; function refreshTable() { var FactoryUnit = getFactoryUnitList(); var Select = "<select name=WipOutfits[" + No + "].UnitNo>"; $.each(FactoryUnit, function (index, item) { Select += '<option value=' + item.value + '>' + item.text + '</option>'; }); Select += '</select>'; $.each(result, function (key, item) { var contactdiv = '<tr>' + '<td><input value="" onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipOutfits[' + No + '].OutfitNo" /></td>' + '<td><input value="" onkeypress="if( event.keyCode == 13 ) { return false; }" class="layui-input" name="WipOutfits[' + No + '].PartNo" /></td>' + '<td>' + Select + '</td>' + '<td><a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" onclick="Remove(this);">刪除</a></td>' + '</tr>'; $('#OutfitTable').append(contactdiv); }); } //UserName function getUserName(val) { $.ajax( { url: "@Url.Action("getUserName", "SYS")", dataType: 'json', data: { "userNo": val.value}, type: 'post', success: function (result) { $(val).closest('div.layui-inline').find('input[id*=' + val.id + '_Name]').val(result.data); }, error: function (result) { alert(result); } }); }; </script> }