@ -1,19 +1,11 @@
@model AMESCoreStudio.WebApi.Models.AMES.InspectionResultMaster
@{ ViewData["Title"] = "SPC005C ";
@{ ViewData["Title"] = "SPC005U ";
Layout = "~/Views/Shared/_AMESLayout.cshtml";
//Layout = "~/Views/Shared/_FormLayout.cshtml";
}
<style>
/* .control-label {
justify-content: flex-end !important;
}
*/
.layui-table-cell {
overflow: visible !important;
}
@ -24,143 +16,232 @@
margin-right: -10px;
}
</style>
<div class="layui-card">
<div class="layui-card-body">
<label class="layui-form-label" value="@ViewBag.FormName"></label>
<label class="layui-form-label" value="@ViewBag.InspectionForm"></label>
<form id="modelform" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="InspectionID" value="0" />
<input type="hidden" id="InspectionFormID" asp-for="InspectionFormID" value="@ViewBag.FormID" />
<input type="hidden" asp-for="CreateUserID" value="0" />
<input type="hidden" id="InspectionID" asp-for="InspectionID" />
<input type="hidden" id="InspectionFormID" asp-for="InspectionFormID" />
<input type="hidden" asp-for="CreateUserID" />
<input type="hidden" asp-for="UpdateUserID" value="0" />
<input type="hidden" asp-for="CreateDate" value="@System.DateTime.Now" />
<input type="hidden" asp-for="CreateDate" />
<input type="hidden" asp-for="UpdateDate" value="@System.DateTime.Now" />
<input type="hidden" asp-for="StatusNo" />
<div class="form-inline ">
<div class="layui-form-item">
<div class="layui-input-inline">
<label asp-for="WipNo" class="control-label col-sm-2"></label>
<input asp-for="WipNo" class="form-control col-sm-4" />
<span asp-validation-for="WipNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="layui-input-inline">
<label asp-for="ItemNo" class="control-label col-sm-2"></label>
<input asp-for="ItemNo" class="form-control col-sm-4" />
<span asp-validation-for="ItemNo" class="text-danger offset-sm-3 my-sm-1"></span>
<div class="layui-form-item">
<div class="layui-input-inline">
<label asp-for="WipNo" class="control-label col-sm-2"></label>
<input id="WipNo" asp-for="WipNo" type="text" class="layui-input" readonly>
</div>
<div class="layui-input-inline">
<label asp-for="ItemNo" class="control-label col-sm-2"></label>
<input id="ItemNo" asp-for="ItemNo" class="layui-input" readonly>
</div>
<div class="layui-input-inline">
<label asp-for="BarcodeNo" class="control-label col-sm-2"></label>
<input id="BarcodeNo" asp-for="BarcodeNo" class="layui-input" readonly>
</div>
</div>
<div class="layui-input-inline">
<label asp-for="BarcodeNo" class="control-label col-sm-2"></label>
<input asp-for="BarcodeNo" class="form-control col-sm-4" />
<span asp-validation-for="BarcodeNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<input type="hidden" asp-for="StatusNo" value="T" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-item">
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>
<button type="submit" class="layui-btn tt" lay-submit="" lay-filter="demo1">查詢 </button>
<button id="querysubmit" class="layui-btn tt">查詢2 </button>
<button id="querysubmitTmp" class="layui-btn tt">暫存</button>
<button id="querysubmit" class="layui-btn tt">保存 </button>
</div>
</div>
</form>
<form id="modeltable" method="post">
<table class="layui-hide" id="test" lay-filter="test" lay-data="{id:'test'}"></table>
</form>
</div>
<form id="modeltable" enctype="multipart/form-data" method="post">
<table class="layui-hide" id="test" lay-filter="test" lay-data="{id:'test'}"></table>
</form>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
<script type="text/html" id="purchaseTotal">
<input type="number" min="0" class="layui-input" lay-vertype="tips" name="purchase_total" value="" lay-event="purchaseTotal" lay-filter="purchaseTotal">
</script>
@*回復*@
<script type="text/html" id="selectResult">
<select name='result' lay-verify='' lay-search='' class="layui-form" lay-filter="result ">
<select name="selectResult" lay-filter="selectResult" id="selectResult" data-value={{d.result}} class="layui-form">
<option value="NA">N/A</option>
<option value="P">PASS</option>
<option value="F">FAIL </option>
</select>
</script>
@*備註*@
<script type="text/html" id="inputTest">
<input type="text" class="layui-input" lay-vertype="tips" name="input_Test" value="" lay-event="inputTest" lay-filter="inputTest">
<input type="text" class="layui-input" style=" margin-top: -10px; margin-left: -10px; margin-right: -10px;" lay-vertype="tips" name="input_Test" value="" lay-event="inputTest" lay-filter="inputTest">
</script>
@*線別*@
<script type="text/html" id="selectLine">
<select name='line' lay-verify='' lay-search='' asp-items="@ViewBag.LineList" class="layui-form" lay-filter="line ">
<select name="selectLine" lay-filter="selectLine" id="selectLine" data-value={{d.lineID}} asp-items="@ViewBag.LineList" class="layui-form">
</select>
</script>
@*站別*@
<script type="text/html" id="selectStation">
<select name='station' lay-verify='' lay-search='' asp-items="@ViewBag.StationList" class="layui-form" lay-filter="station">
<select name="selectStation" lay-filter="selectStation" id="selectStation" data-value={{d.ruleStationID}} asp-items="@ViewBag.StationList" class="layui-form" >
</select>
</script>
@*插件位置*@
<script type="text/html" id="inputLocation">
<input type="text" class="layui-input" style=" margin-top: -10px; margin-left: -10px; margin-right: -10px;" lay-vertype="tips" name="input_Loca" value="" lay-event="inputTest" lay-filter="inputLoca">
</script>
@*缺失單位*@
<script type="text/html" id="selectDept">
<select name="selectDept" lay-filter="selectDept" id="selectDept" data-value={{d.missingUnitNo}} asp-items="@ViewBag.FactoryUnit" class="layui-form">
</select>
</script>
@*缺失人員*@
<script type="text/html" id="selectUser">
<select name="selectUser" lay-filter="selectUser" id="selectUser" data-value={{d.missingUserID}} lay-search='' asp-items="@ViewBag.UserList" class="layui-form">
</select>
</script>
<script type="text/javascript">
////搜索
////保存
$('#querysubmit').click(function () {
var WipNo = $("#WipNo").val();
var ItemNo = $("#ItemNo").val();
var BarcodeNo = $("#BarcodeNo").val();
if (!WipNo) {
alert('請填寫工單!!');
return false;
}
else if (!ItemNo) {
alert('請填寫料號!!');
return false;
}
else if (!BarcodeNo) {
alert('請填寫生產序號!!');
return false;
}
else
insertMaster("C");
});
////暫存
$('#querysubmitTmp').click(function () {
var WipNo = $("#WipNo").val();
var ItemNo = $("#ItemNo").val();
var BarcodeNo = $("#BarcodeNo").val();
if (!WipNo) {
alert('請填寫工單!!');
return false;
}
else if (!ItemNo) {
alert('請填寫料號!!');
return false;
}
else if (!BarcodeNo) {
alert('請填寫生產序號!!');
return false;
}
else
insertMaster("T");
});
function insertMaster(status) {
var model = $("#modelform").serializeArray();
console.log(tableDas);
var InspectionID;
var InspectionFormID;
var CreateUserID;
var UpdateUserID;
var CreateDate;
var UpdateDate;
var WipNo;
var ItemNo;
var BarcodeNo;
var StatusNo;
if (model.length > 0) {
InspectionID = model[0].value;
console.log(InspectionID);
InspectionFormID = model[1].value;
CreateUserID = model[2].value;
UpdateUserID = model[3].value;
CreateDate = model[4].value;
UpdateDate = model[5].value;
WipNo = model[6].value;
ItemNo = model[7].value;
BarcodeNo = model[8].value;
StatusNo = model[9].value;
$.post("/SPC/SPC005TSAVE",
{
InspectionID: InspectionID,
InspectionFormID: InspectionFormID,
CreateUserID: CreateUserID,
UpdateUserID: UpdateUserID,
CreateDate: CreateDate,
UpdateDate: UpdateDate,
WipNo: WipNo,
ItemNo: ItemNo,
BarcodeNo: BarcodeNo,
StatusNo: StatusNo
},
function (data) {
//console.log("mastre:" + data.success);
//console.log("master:" + data.msg);
if (model.length > 0) {
var requestURL = "/SPC/SPC005USave";
var dataJSON = {};
dataJSON["InspectionID"] = model[0].value;
dataJSON["InspectionFormID"] = model[1].value;
dataJSON["CreateUserID"] = model[2].value;
dataJSON["UpdateUserID"] = model[3].value;
dataJSON["CreateDate"] = model[4].value;
dataJSON["UpdateDate"] = model[5].value;
dataJSON["WipNo"] = model[6].value;
dataJSON["ItemNo"] = model[7].value;
dataJSON["BarcodeNo"] = model[8].value;
dataJSON["StatusNo"] = status;
$.ajax({
url: requestURL,
data: JSON.stringify(dataJSON),
type: "PATCH",
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (returnData) {
console.log(returnData);
if (data.success) {
console.log("master:data.success");
//if (data.msg)
insertList(data.msg);
insertList(data.msg);
}
});
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr.status);
console.log(thrownError);
}
});
}
}
});
function insertList(id) {
//批量修改时间
Regex = /^([1-9][0-9]*)$/;
var data = $("#modeltable").serializeArray();
//console.info(model);
//var InspectionID;
//var InspectionFormID;
//var CreateUserID;
//var UpdateUserID;
//var CreateDate;
//var UpdateDate;
//var WipNo;
//var ItemNo;
//var BarcodeNo;
//var StatusNo;
//if (model.length > 0) {
// //console.log(model);
// InspectionID = model[0].value;
// InspectionFormID = model[1].value;
// CreateUserID = model[2].value;
// UpdateUserID = model[3].value;
// CreateDate = model[4].value;
// UpdateDate = model[5].value;
// WipNo = model[6].value;
// ItemNo = model[7].value;
// BarcodeNo = model[8].value;
// StatusNo = status;
// console.log('789');
// $.post("/SPC/SPC005USAVE/",
// {
// InspectionID: InspectionID,
// InspectionFormID: InspectionFormID,
// CreateUserID: CreateUserID,
// UpdateUserID: UpdateUserID,
// CreateDate: CreateDate,
// UpdateDate: UpdateDate,
// WipNo: WipNo,
// ItemNo: ItemNo,
// BarcodeNo: BarcodeNo,
// StatusNo: StatusNo
// },
// function (data) {
// console.log(data);
// if (data.success) {
// console.log("master:data.success");
// insertList(data.msg);
// }
// }).success(function () { alert("second success"); })
// .error(function () { alert("error"); })
// .complete(function () { alert("complete"); });
//
//
//}
};
function insertList(id) {
console.log('insertList');
var tableDas = layui.table.cache["test"];
var modeltable = $("#modeltable").serializeArray();
console.log(modeltable);
if (data.length > 0) {
if (modeltable .length > 0) {
var InspectionID;
var InspectionItemID;
@ -172,14 +253,15 @@
var UpdateUserID;
var CreateDate;
var UpdateDate;
var MissingUnitNo;
var MissingUserID;
var MissingRemark;
var tableDas = layui.table.cache["test"];
console.log(tableDas);
for (var i = 0; i < data.length; i++) {
console.log('for');
var text = i / 4;
if (!Regex.test(text)) {
for (var i = 0; i < modeltable.length - 1; i++) {
var test = i / 7 ;
var cc = i % 7 == 0;
//if (!Regex.test(text)) {
if (!cc) {
InspectionID = '';
InspectionItemID = '';
Result = '';
@ -188,41 +270,84 @@
MissingRemark = '';
}
else {
console.log('else');
InspectionID = id;
InspectionItemID = tableDas[text].value;
Result = data[i + 0].value;
LineID = data[i + 1].value;
RuleStationID = data[i + 2].value;
MissingRemark = data[i + 3].value;
InspectionItemID = tableDas[test].inspectionItemID;
Result = modeltable[i + 0].value;
LineID = modeltable[i + 1].value;
RuleStationID = modeltable[i + 2].value;
Location = modeltable[i + 3].value;
MissingUnitNo = modeltable[i + 4].value;
MissingUserID = modeltable[i + 5].value;
MissingRemark = modeltable[i + 6].value;
CreateUserID = 0;
UpdateUserID = 0;
CreateDate = 0;
UpdateDate = 0;
CreateDate = '';
UpdateDate = '';
console.log('post');
$.post("/SPC/SPC005ListSave",
$.post("/SPC/SPC005U ListSave/ ",
{
InspectionID: InspectionID,
InspectionItemID: InspectionItemID,
Result: Result,
LineID: LineID,
RuleStationID: RuleStationID,
Result: Result,
Area: '',
Location: Location,
MissingUnitNo: MissingUnitNo,
MissingStationID: '',
MissingUserID: MissingUserID,
MissingType: '',
MissingRemark: MissingRemark,
Method: '',
PeplyReason: '',
PeplyMethod: '',
PeplyUserID: '',
CreateUserID: CreateUserID,
UpdateUserID: UpdateUserID,
CreateDate: CreateDate,
UpdateDate: UpdateDate
UpdateDate: UpdateDate,
},
function (data) {
console.log("list:" + data.success);
if (i = modeltable.length - 2) {
parent.hg.msg("新增成功!");
window.parent.location.reload();
//parent.layer.table.render();
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
});
}
}
}
}
$('#WipNo').focusout(function () {
var data = $("#WipNo").val();
if (data) {
$.ajax({
url: "/WHS/GetWipAtt",
dataType: 'json',
data: { id: data },
contentType: "application/json",
type: 'get',
success: function (result) {
if (result.data) {
//console.info(result.data);//確認itemNO/modelNO
$("#ItemNo").val(result.data.modelNO);
}
else {
alert("查無資料,請確認工單是否正確!");
}
}
});
} else {
alert("請填寫工單!");
}
});
layui.use(['form', 'layer', 'table', 'laytpl', 'laydate'], function () {
var layer = layui.layer,
$ = layui.jquery,
@ -233,31 +358,50 @@
itemslist();
function itemslist() {
var formID = $("#InspectionForm ID").val();
var formID = $("#InspectionID").val();
table.render({
elem: '#test',
url: '/SPC/GetInspectionItemsByFormID ?id=' + formID,
url: '/SPC/GetInspectionResultDetails ?id=' + formID,
id: 'test',
toolbar: '#toolBar',
height:720,
//defaultToolbar: ['filter', 'print', 'exports'],
//title: 'test',
//where: where,
page: false,
cols: [[
{ field: 'inspectionItemID', width: 50, title: '#', },
{ field: 'inspectionItemName', title: '項目', align: 'left' },
{ field: 'inspectionResult', title: '稽核結果', width: 100, align: "left", templet: '#selectResult' },
{ field: 'line', title: '線別', width: 100, align: "left", templet: '#selectLine' },
{ field: 'station', title: '站別', width: 100, align: "left", templet: '#selectStation' },
{ field: 'note', title: '備註', width: 250, align: "left", templet: '#inputTest' },
{
field: 'inspectionItem',
title: '項目',
align: 'left',
sort: true,
templet: function (d) {
return d.inspectionItem['inspectionItemName'];
}
},
{
field: 'inspectionItem',
title: '標準值',
align: 'left',
sort: true,
templet: function (d) {
return d.inspectionItem['inspectionItemValue'];
}
},
//{ field: 'inspectionItemName', title: '項目', align: 'left' },
//{ field: 'inspectionItemValue', title: '標準值', align: 'left' },
{ field: 'result', title: '稽核結果', width: 100, align: "left", templet: '#selectResult' },
{ field: 'lineID', title: '線別', width: 100, align: "left", templet: '#selectLine' },
{ field: 'ruleStationID', title: '站別', width: 100, align: "left", templet: '#selectStation' },
{ field: 'location', title: '插件位置', width: 100, align: "left", edit: "text" },
{ field: 'missingUnitNo', title: '缺失單位', width: 100, align: "left", templet: '#selectDept' },
{ field: 'missingUserID', title: '缺失人員', width: 100, align: "left", templet: '#selectUser' },
{ field: 'missingRemark', title: '備註', width: 250, align: "left", edit:"text"},//templet: '#inputTest'
{
field: 'right',
width: 50,
width: 10 0,
title: '操作',
fixed: 'right',
templet: function (d) {
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> '
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">上傳圖片 </a> '
}
}
]],
@ -282,11 +426,37 @@
var name = layui.$(this).attr('name');
data[name] = val
obj.update(data);//更新行对象数据
console.log(data);
// console.log(data);
})
}
else if (layEvent === 'edit') {
var id = $("#InspectionID").val();
if (obj.data.inspectionItemID) {
layer.open({
type: 2 //此處以iframe舉例
, title: '上傳文件'
, area: ['480px', '400px']
, shade: 0
, maxmin: true
, offset: 'auto'//顯示座標-auto居中
, content: "/SPC/SPC005R?id=" + id + "&itemID=" + obj.data.inspectionItemID
//, btn: ['關閉']
, yes: function () {
//layer.close();
if (layer.confirm('確定要關閉麼')) {
layer.close(index);
}
// $(that).click();
}
, zIndex: 19891014 //layer.zIndex //重點1
, success: function (layero) {
layer.setTop(layero); //重點2
}
});
//hg.open('上傳文件', '/SPC/SPC005R?id=' + id + '&itemID=' + obj.data.inspectionItemID, 1080, 640);
}
}
});
form.on('select(line)', function (data) {
//获取下拉框选中的值
var score = data.value;
@ -308,9 +478,7 @@
});
$(document).ready(function () {
$(document).ready(function () {
var error = '@Html.ValidationMessage("error")';
if ($(error).text() != '') {
parent.hg.msg(error);