Ames 昶亨 專案
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

@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">&#xe615;</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>
}