You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
344 lines
14 KiB
344 lines
14 KiB
@using Microsoft.AspNetCore.Mvc.Localization
|
|
@inject IViewLocalizer Localizer
|
|
|
|
@{
|
|
ViewData["Title"] = @Localizer["PCS005"];
|
|
Layout = "~/Views/Shared/_AMESLayout.cshtml";
|
|
}
|
|
|
|
<style>
|
|
/* 停用工單行樣式 */
|
|
.layui-table-view[lay-id="query"] .layui-table-main table tbody tr.layui-table-gray-row,
|
|
.layui-table-view[lay-id="query"] .layui-table-main table tbody tr.layui-table-gray-row td,
|
|
.layui-table-view[lay-id="query"] .layui-table-main table tbody tr.layui-table-gray-row .layui-table-cell,
|
|
.layui-table-view[lay-id="query"] .layui-table-fixed table tbody tr.layui-table-gray-row,
|
|
.layui-table-view[lay-id="query"] .layui-table-fixed table tbody tr.layui-table-gray-row td,
|
|
.layui-table-view[lay-id="query"] .layui-table-fixed table tbody tr.layui-table-gray-row .layui-table-cell {
|
|
background-color: #e4e4e4 !important;
|
|
color: #11151a !important;
|
|
}
|
|
</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-md3">
|
|
<div class="layui-inline">
|
|
<label class="layui-form-label" style="width:50px">@Localizer["WipNo"]</label>
|
|
<div class="layui-input-inline" style="width:170px">
|
|
<input id="wipNo" name="wipNo" autocomplete="off" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" class="layui-input">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md3">
|
|
<div class="layui-inline">
|
|
<label class="layui-form-label" style="width:50px">@Localizer["ItemNo"]</label>
|
|
<div class="layui-input-inline" style="width:170px">
|
|
<input id="itemNo" name="itemNo" autocomplete="off" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" class="layui-input">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md3">
|
|
<div class="layui-inline">
|
|
<label class="layui-form-label" style="width:50px">@Localizer["UnitNo"]</label>
|
|
<div class="layui-input-inline" style="width:170px">
|
|
<select id="unit" lay-filter="unit" name="unit" lay-submit asp-items="@ViewBag.FactoryUnitList">
|
|
</select>
|
|
<input id="unitNo" type="hidden" name="unitNo" value="@ViewBag.UnitNo" />
|
|
<input id="factoryNo" type="hidden" name="factoryNo" value="@ViewData["UserFactory"]" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md3">
|
|
<div class="layui-inline">
|
|
<label class="layui-form-label" style="width:50px">@Localizer["WipStatus"]</label>
|
|
<div class="layui-input-inline" style="width:100px">
|
|
<select id="statusNo" name="statusNo" lay-filter="statusNo" lay-submit>
|
|
<option value="">全部</option>
|
|
<option value="N">未完工</option>
|
|
<option value="D">停用</option>
|
|
<option value="E">已完工</option>
|
|
<option value="C">已刪除</option>
|
|
</select>
|
|
</div>
|
|
|
|
<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 class="layui-row">
|
|
<div class="layui-form-item">
|
|
<div class="layui-col-md3">
|
|
<div class="layui-inline">
|
|
<label class="layui-form-label" style="width:50px">@Localizer["CustomerWipNo"]</label>
|
|
<div class="layui-input-inline" style="width:170px">
|
|
<input id="customerWipNo" name="customerWipNo" autocomplete="off" oninput="let p=this.selectionStart;this.value=this.value.toUpperCase();this.setSelectionRange(p, p);" class="layui-input">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md3">
|
|
<div class="layui-inline">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md3">
|
|
<div class="layui-inline">
|
|
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md3">
|
|
<div class="layui-inline">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<table class="layui-hide" id="query" lay-filter="query"></table>
|
|
</div>
|
|
</div>
|
|
|
|
@section Scripts{
|
|
<script type="text/javascript">
|
|
layui.use('table', function () {
|
|
form = layui.form;
|
|
|
|
form.on('select(unit)', function (data) {
|
|
$("#unitNo").val(data.value);
|
|
//roleName = data.elem[data.elem.selectedIndex].text;
|
|
var qs = $('button[lay-filter="querysubmit"]');
|
|
qs.click();
|
|
});
|
|
|
|
form.on('select(statusNo)', function (data) {
|
|
//roleName = data.elem[data.elem.selectedIndex].text;
|
|
var qs = $('button[lay-filter="querysubmit"]');
|
|
qs.click();
|
|
});
|
|
|
|
var table = layui.table;
|
|
|
|
table.on('tool(query)', function (obj) {
|
|
if (obj.event == 'detail') {
|
|
if (obj.data.wipID) {
|
|
hg.open('@Localizer["PCS001R"]', '/PCS/PCS001R/' + obj.data.wipID, '', '', true);
|
|
}
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
//监听表单提交事件
|
|
hg.form.onsubmit('querysubmit', function (data) {
|
|
table && table.reload(data);
|
|
|
|
});
|
|
var tableCols = [[
|
|
{
|
|
field: 'wipNo',
|
|
width: 100,
|
|
title: '@Localizer["WipNo"]',
|
|
sort: true
|
|
},
|
|
{
|
|
field: 'itemNo',
|
|
title: '@Localizer["ItemNo"]',
|
|
width: 150,
|
|
sort: true,
|
|
expandedMode: 'tips'
|
|
},
|
|
{
|
|
field: 'description',
|
|
title: '@Localizer["WipDescription"]',
|
|
width: 100,
|
|
expandedMode: 'tips'
|
|
},
|
|
{
|
|
field: 'planQTY',
|
|
title: '@Localizer["PlanQty"]'
|
|
},
|
|
{
|
|
field: 'lineDesc',
|
|
title: '@Localizer["Lineid"]',
|
|
sort: true
|
|
},
|
|
{
|
|
field: 'unitName',
|
|
title: '@Localizer["UnitNo"]',
|
|
width: 100,
|
|
sort: true
|
|
},
|
|
{
|
|
field: 'factoryNameCh',
|
|
title: '@Localizer["Werks"]',
|
|
sort: true
|
|
},
|
|
{
|
|
field: 'wipScheduleDate',
|
|
title: '@Localizer["WipScheduleDate"]',
|
|
sort: true,
|
|
templet: '<div>{{ layui.util.toDateString(d.wipScheduleDate, "yyyy/MM/dd") }}</div>'
|
|
},
|
|
{
|
|
field: 'workDate',
|
|
title: '@Localizer["StartDate"]',
|
|
sort: true
|
|
},
|
|
{
|
|
field: 'wipDueDate',
|
|
title: '@Localizer["WipDueDate"]',
|
|
sort: true,
|
|
templet: '<div>{{ layui.util.toDateString(d.wipDueDate, "yyyy/MM/dd") }}</div>'
|
|
},
|
|
{
|
|
field: 'statusNo',
|
|
title: '@Localizer["WipStatus"]',
|
|
templet: '#statusNoName'
|
|
},
|
|
{
|
|
field: 'wipCheck',
|
|
title: '@Localizer["SendNotification"]'
|
|
},
|
|
{
|
|
field: 'fqcDate',
|
|
title: '@Localizer["FQCDate"]'
|
|
},
|
|
{
|
|
field: 'right',
|
|
width: 150,
|
|
title: '@Localizer["Action"]',
|
|
fixed: 'right',
|
|
templet: function (d) {
|
|
var detailBtn = '<a class="layui-btn layui-btn-warm layui-icon layui-icon-list layui-btn-xs" lay-event="detail">@Localizer["View"]</a>';
|
|
var toggleBtn = '';
|
|
|
|
// 如果是停用狀態,嘗試設置整行樣式
|
|
if (d.statusNo === 'D') {
|
|
setTimeout(function () {
|
|
var index = d.LAY_TABLE_INDEX;
|
|
$('.layui-table-view[lay-id="query"] tr[data-index="' + index + '"]').addClass('layui-table-gray-row');
|
|
}, 100);
|
|
}
|
|
|
|
if (d.statusNo === 'D') {
|
|
// 狀態為 D(停用)時顯示啟用按鈕
|
|
toggleBtn = '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-play" lay-event="enable">啟用</a>';
|
|
} else if (d.statusNo === 'A' || d.statusNo === 'N' || d.statusNo === 'S') {
|
|
// 狀態為 A、N 或 S 時顯示停用按鈕
|
|
toggleBtn = '<a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-pause" lay-event="disable">停用</a>';
|
|
}
|
|
return detailBtn + ' ' + toggleBtn;
|
|
}
|
|
}
|
|
]
|
|
];
|
|
|
|
|
|
//通过行tool檢視,lay-event="detail"
|
|
function detail(obj) {
|
|
if (obj.data.wipID) {
|
|
hg.open('@Localizer["PCS001R"]', '/PCS/PCS001R/' + obj.data.wipID, '', '', true);
|
|
}
|
|
}
|
|
|
|
//通过行tool編輯,lay-event="edit"
|
|
function edit(obj) {
|
|
if (obj.data.wipID) {
|
|
hg.open('@Localizer["PCS002"]', '/PCS/PCS003/' + obj.data.wipID, '', '', true);
|
|
}
|
|
}
|
|
|
|
function del(obj) {
|
|
hg.confirm("確定要刪除工單號碼【" + obj.data.wipNO + "】嗎?", function () {
|
|
$.ajax({
|
|
url: '/PCS/PCS005D',
|
|
data: { id: obj.data.wipID },
|
|
type: 'POST',
|
|
success: function (data) {
|
|
if (data.success) {
|
|
hg.msghide("刪除成功!");
|
|
var qs = $('button[lay-filter="querysubmit"]');
|
|
qs.click();
|
|
}
|
|
else {
|
|
hg.msg(data.msg);
|
|
}
|
|
},
|
|
error: function () {
|
|
hg.msg("網路請求失敗!");
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
// 停用/啟用工單
|
|
function toggleStatus(obj, targetStatus) {
|
|
var action = targetStatus === 'D' ? '停用' : '啟用';
|
|
var confirmMsg = '確定要' + action + '工單號碼【' + obj.data.wipNo + '】嗎?';
|
|
|
|
hg.confirm(confirmMsg, function () {
|
|
$.ajax({
|
|
url: '/PCS/PCS005ToggleStatus',
|
|
data: {
|
|
wipID: obj.data.wipID,
|
|
currentStatus: obj.data.statusNo,
|
|
targetStatus: targetStatus
|
|
},
|
|
type: 'POST',
|
|
success: function (data) {
|
|
if (data.success) {
|
|
hg.msghide(action + '成功!');
|
|
// 重新載入表格
|
|
layui.use('table', function () {
|
|
var table = layui.table;
|
|
table.reload('query');
|
|
});
|
|
}
|
|
else {
|
|
hg.msg(data.msg);
|
|
}
|
|
},
|
|
error: function () {
|
|
hg.msg("網路請求失敗!");
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
//通过行tool停用,lay-event="disable"
|
|
function disable(obj) {
|
|
toggleStatus(obj, 'D');
|
|
}
|
|
|
|
//通过行tool啟用,lay-event="enable"
|
|
function enable(obj) {
|
|
toggleStatus(obj, 'N');
|
|
}
|
|
|
|
var param = unitNo.value + '_' + wipNo.value + '_' + itemNo.value + '_' + factoryNo.value;
|
|
|
|
var table = hg.table.datatable('query', '工單資料查詢', '/PCS/PCS005Query/' + param, {}, tableCols, "", true, 'full-100', ['filter', 'print', 'exports']);
|
|
</script>
|
|
<script type="text/html" id="statusNoName">
|
|
{{# if(d.statusNo === 'E'){ }}
|
|
<span>{{ '完工' }}</span>
|
|
{{# } else if(d.statusNo === 'C'){ }}
|
|
<span>{{ '刪除' }}</span>
|
|
{{# } else if(d.statusNo === 'D'){ }}
|
|
<span>{{ '停用' }}</span>
|
|
{{# } else { }}
|
|
{{ '未完工' }}
|
|
{{# } }}
|
|
</script>
|
|
}
|