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.
 
 
 
 
 

559 lines
25 KiB

<#macro layout>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<!-- <link rel="icon" href="/favicon.ico"> -->
<!-- <link rel="shortcut icon" href="/ico/favicon.ico" type="image/x-icon"> -->
<title>${projectTitle!"CCL"}</title>
<!-- Bootstrap core CSS -->
<link href="/bootstrap/3.3.7/bootstrap.min.css" rel="stylesheet">
<link href="/bootstrap/3.3.7/bootstrap-theme.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/jeasyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="/jeasyui/themes/icon.css">
<link rel="stylesheet" type="text/css" href="/js/layer/skin/layer.css">
<!-- Custom styles for this template -->
<link href="/css/app.css" rel="stylesheet">
<script type="text/javascript" src="/jeasyui/jquery.min.js"></script>
<script type="text/javascript" src="/jeasyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="/jeasyui/locale/easyui-lang-zh_CN.js"></script>
<style>
.common-label .textbox-label {
width: 150px;
}
.oneLine-label .textbox-label {
width: 120px;
}
</style>
<script>
function formatDateTime(value, row){
if (value && value > 0){
var d = new Date(value);
var MM = d.getMonth() <= 9 ? '0'+(d.getMonth()+1) : d.getMonth() + 1;
var hh = d.getHours() <= 9 ? '0'+d.getHours() : d.getHours();
var mm = d.getMinutes() <= 9 ? '0'+d.getMinutes() : d.getMinutes();
var ss = d.getSeconds() <= 9 ? '0'+d.getSeconds() : d.getSeconds();
var dd = d.getDate() <= 9 ? '0'+d.getDate() : d.getDate();
var datestring = d.getFullYear() + "-" + MM + "-" + dd + " " + hh + ":" + mm + ":" + ss;
return datestring;
}
return "";
}
//格式化字符串时间
function formatStringTime(value, row){
if(null == value || '' == value){
return '';
}
//处理位数不够的问题
if(value.length < 19){
value = value.substring(0, 10);
}else{
value = value.substring(0, 19);
}
return value;
}
//格式化liux时间戳
function formatDate(value){
let currentValue = value.replace(/-/g,'/');
if (value){
var d = new Date(currentValue);
var MM = d.getMonth() < 9 ? '0'+(d.getMonth()+1) : d.getMonth() + 1;
var dd = d.getDate() <= 9 ? '0'+d.getDate() : d.getDate();
var datestring = d.getFullYear() + "-" + MM + "-" + dd;
return datestring;
}
return "";
}
function formatQrcode(value,row){
// return "<a target='_blank' href='/qrcode/"+value+"/'>"+value+"</a>";
return "<a target='forprint' href='/print/text/" +value+"/'>"+value+"</a>";
}
function formatLodopPrint(tag){
return function(value, row){
return "<a target='forprint' href='/print/"+tag + "/" +value+"/'>"+value+"</a>";
};
}
</script>
</head>
<body>
<!-- 隐藏域 -->
<#if currentUser??>
<div style="display: none;">
<input id="current_order_no" value="${currentUser.workingOrder! ''}">
<input id="current_username" value="${currentUser.username!''}">
<input id="current_site" value="${currentUser.site!''}">
</div>
</#if>
<#if currentUser??>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span ><img src="/img/ccl-logo.png" height="30" style="margin-top:10px;margin-right:10px;" /></span>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<#if currentUser.isAdmin || currentUser.authorities?contains("prepress")>
<li class="dropdown">
<a href="/order/so_order" role="button" aria-haspopup="true" aria-expanded="false">PrePress</a>
</li>
</#if>
<#if currentUser.isAdmin || currentUser.authorities?contains("basic_info")>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Basic Data<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/product/part">Part Info</a></li>
</ul>
</li>
</#if>
<#if currentUser.isAdmin || currentUser.authorities?contains("indigo")>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Print<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/indigo/create_roll">Create Roll</a></li>
<li><a href="javascript:void(0)" onclick="switchOrderModal('indigo');">Switch Order</a></li>
</ul>
</li>
</#if>
<#if currentUser.isAdmin || currentUser.authorities?contains("AOI")>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">AOI<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/aoi/createFinalRoll">Create FG Roll</a></li>
<li><a href="/aoi/finalRollsSearch">Query - FG Rolls</a></li>
<li><a href="javascript:void(0)" onclick="switchOrderModal('AOI');">Switch Order</a></li>
</ul>
</li>
</#if>
<#if currentUser.isAdmin || currentUser.authorities?contains("scan_stock")>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Receiving<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/fqc/pack_and_stock">Receiving</a></li>
<li><a href="/fqc/box_stock">Stock Query</a></li>
</ul>
</li>
</#if>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Query<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/query/receiveQty">Query - SO Receive</a></li>
<li><a href="/query/stockSearch">Stock Query</a></li>
</ul>
</li>
<#if currentUser.isAdmin || currentUser.authorities?contains("delivery")>
<li class="dropdown">
<a href="/delivery/sales_delivery" role="button" aria-haspopup="true" aria-expanded="false">Customer Order Shipment</a>
</li>
</#if>
<#if currentUser.isAdmin || currentUser.authorities?contains("inventoryTasks")>
<li class="dropdown">
<a href="/inventory/inventoryTasks" role="button" aria-haspopup="true" aria-expanded="false">Counting</a>
</li>
</#if>
</ul>
<ul class="nav navbar-nav navbar-right" style="margin-right: -40px;">
<li><a href="javascript:void(0)">Current Shop Order:${currentUser.workingOrder!}</a></li>
<input type="hidden" id="hdnWorkingOrder" value="${currentUser.workingOrder!}" />
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">${currentUser.display}<span class="caret"></span></a>
<input type = "hidden" id="subscriber" value="${currentUser.display}"/>
<ul class="dropdown-menu">
<li><a href="javascript:void(0);" onclick="showChangePwdDlg()">Change Password</a></li>
<#if currentUser.isAdmin>
<li><a href="/user/user_page">User Management</a></li>
<#-- <li><a href="/base/various_machine">机器设置</a></li>-->
</#if>
<li><a href="/print/set_printer/">Print Setup</a></li>
<li role="separator" class="divider"></li>
<li><a href="javascript:$('#frmLogout').submit();">Quit</a></li>
</ul>
</li>
<li><a href="javascript:void(0);"></a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
</#if>
<div class="container role="main" >
<#nested>
<div id="switch_order_dlg" class="easyui-dialog" style="width:500px;display: none;" closed="true" buttons="#changeWOdlg-buttons">
<form id="switch_order_fm" method="post" class="common-label" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input name="username" class="easyui-textbox" required="true" label="User ID:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input name="passwd" class="easyui-passwordbox" data-options="lastDelay:50" required="true" label="Pass Word:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input name="orderNo" class="easyui-textbox" required="true" label="Switch to Order :" style="width:100%">
</div>
</form>
</div>
<div id="changeWOdlg-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="switchOrder()" style="width:90px">Save</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#switch_order_dlg').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 漏扫补号 -->
<div id="complementSnDlg" class="easyui-dialog" style="width:500px;display: none;"
closed="true" buttons="#complementSnDlg-buttons">
<form id="complementSnDlgFm" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input name="serialNo" class="easyui-textbox" required="true" label="Serials Number:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input name="finalRollNo" class="easyui-textbox" required="true" label="Roll No:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input name="pid" class="easyui-textbox" required="true" label="Pid:" style="width:100%">
</div>
</form>
</div>
<div id="complementSnDlg-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="saveComplement()" style="width:90px">Save</a>
<!-- <a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="exportComplement()" style="width:90px">Export</a> -->
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#complementSnDlg').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 缺失号导出 -->
<div id="exportSnDlg" class="easyui-dialog" style="width:500px;display: none;"
closed="true" buttons="#exportSnDlg-buttons">
<form id="exportSnDlgFm" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input id = "pid" name="pid" class="easyui-textbox" required="true" label="Pid:" style="width:100%">
</div>
</form>
</div>
<div id="exportSnDlg-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="exportComplement()" style="width:90px">Export</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#exportSnDlg').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 扫描箱号 -->
<div id="scanBoxDlg" class="easyui-dialog" style="width:500px;display: none;"
closed="true" buttons="#scanBoxDlg-buttons">
<form id="scanBoxDlgFm" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input id = "boxNo" name="boxNo" class="easyui-textbox" required="true" label="Box No:" style="width:100%">
</div>
</form>
</div>
<div id="scanBoxDlg-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="scanBoxComplement()" style="width:90px">Check</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#scanBoxDlg').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 扫描序列号 -->
<div id="scanSnDlg" class="easyui-dialog" style="width:500px;display: none;"
closed="true" buttons="#scanSnDlg-buttons">
<form id="scanSnDlgFm" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input id = "snNo" name="snNo" class="easyui-textbox" required="true" label="Serials Number:" style="width:100%">
</div>
</form>
</div>
<div id="scanSnDlg-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="scanSnComplement()" style="width:90px">Check</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#scanSnDlg').dialog('close')" style="width:90px">Cancel</a>
</div>
<!-- 缺失报告 -->
<div id="missingSnDlg" class="easyui-dialog" style="width:500px;display: none;"
closed="true" buttons="#missingSnDlg-buttons">
<form id="missingSnDlgFm" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input id = "start_qty" name="start_qty" class="easyui-numberbox" required="true" label="Top few digits:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input id = "end_qty" name="end_qty" class="easyui-numberbox" required="true" label="Last few digits:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input id = "order_no" name="order_no" class="easyui-textbox" required="true" label="SO No:" style="width:100%">
</div>
<div style="margin-bottom:10px">
<input id = "serial_no" name="serial_no" class="easyui-textbox" required="true" label="Serials Number:" style="width:100%">
</div>
</form>
</div>
<div id="missingSnDlg-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="exportMissSn()" style="width:90px">Export</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#missingSnDlg').dialog('close')" style="width:90px">Cancel</a>
</div>
<#if currentUser??>
<div id="changePWDdlg" class="easyui-dialog" style="width:500px;display: none;"
closed="true" buttons="#changePWDdlg-buttons">
<form id="changePWDdlgFm" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px" class="common-label">
<input id="update_username" name="username" value="${currentUser.username!''}" class="easyui-textbox " data-options="lastDelay:50" readonly="readonly" required="true" label="User ID:" style="width:100%">
</div>
<div style="margin-bottom:10px" class="common-label">
<input name="oldPassword" class="easyui-passwordbox" data-options="lastDelay:50" required="true" label="Old Password:" style="width:100%">
</div>
<div style="margin-bottom:10px" class="common-label">
<input name="newPassword" class="easyui-passwordbox" data-options="lastDelay:50" required="true" label="New Password:" style="width:100%">
</div>
<div style="margin-bottom:10px" class="common-label">
<input name="newPasswordConfirm" class="easyui-passwordbox" data-options="lastDelay:50" required="true" label="Confirm new password:" style="width:100%">
</div>
</form>
</div>
<div id="changePWDdlg-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="saveNewPwd()" style="width:90px">Save</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#changePWDdlg').dialog('close')" style="width:90px">Cancel</a>
</div>
</#if>
<!-- 扫描卷号-冻结 -->
<div id="frozenRnDlg" class="easyui-dialog" style="width:500px;display: none;"
closed="true" buttons="#scanSnDlg-buttons">
<form id="frozenRnDlgFm" method="post" novalidate style="margin:0;padding:20px 20px">
<div style="margin-bottom:10px">
<input id = "frozenRn" name="frozenRn" class="easyui-textbox" required="true" label="Roll No:" style="width:100%">
</div>
</form>
</div>
<div id="scanSnDlg-buttons" style="display: none;">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="frozenRnComplement()" style="width:90px">Check</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#frozenRnDlg').dialog('close')" style="width:90px">Cancel</a>
</div>
<script>
//切换工单的工序
let switchOrderItemNo = "";
//打开切换工单的工序
function switchOrderModal(itemNo) {
switchOrderItemNo = itemNo;
$('#switch_order_dlg').dialog('center').dialog('setTitle', 'update order(need authority)').dialog('open');
$('#switch_order_fm').form('clear');
}
// function changeWorkingOrder(site) {
// SWITCH_ORDER_SITE = site;
// $('#changeWOdlg').dialog('center').dialog('setTitle', '修改操作订单(需有权限人操作)').dialog('open');
// $('#changeWOdlgFm').form('clear');
// }
//切换工单
function switchOrder() {
$('#switch_order_fm').form('submit',{
url: "/indigo/"+switchOrderItemNo+"/switchOrderNo",
onSubmit: function(param){
param.operatorId = $("#current_username").val();
return $(this).form('validate');
},
success: function(result){
var result = eval("("+result+")");
if (result.success){
$('#switch_order_dlg').dialog('close'); // close the dialog
window.location.reload();
//$.messager.alert('info', '切换成功!', 'info');
} else {
$.messager.alert('error',result.msg, 'error');
}
}
});
}
function showChangePwdDlg() {
$('#changePWDdlg').dialog('center').dialog('setTitle', 'Edit PassWord').dialog('open');
$('#changePWDdlgFm').form('clear');
//设置用户名
$('#update_username').textbox('setValue', $('#current_username').val());
}
function saveNewPwd() {
$('#changePWDdlgFm').form('submit',{
url: "/user/updateUserPassword",
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
var result = eval("("+result+")");
if (result.errorMsg){
$.messager.alert('error',result.errorMsg, 'error');
} else {
$('#changePWDdlg').dialog('close'); // close the dialog
}
}
});
}
//漏扫补号页面
function complement() {
$('#complementSnDlg').dialog('center').dialog('setTitle', 'Manual Scan Missing Serial No').dialog('open');
$('#complementSnDlgFm').form('clear');
}
//漏扫补号保存
function saveComplement() {
$('#complementSnDlgFm').form('submit',{
url: "/complement/soFinalRollDtls",
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
console.log(result);
var result = eval("("+result+")");
if (result.errorMsg){
$.messager.alert('error',result.errorMsg, 'error');
} else {
$('#complementSnDlgFm').form('clear');
}
}
});
}
//导出缺失序列号
function exportSn() {
$('#exportSnDlg').dialog('center').dialog('setTitle', 'export missing serial number').dialog('open');
$('#exportSnDlgFm').form('clear');
}
//导出缺失序列号
function exportComplement(){
var pid = $("#pid").val();
$.post("/shipment/exportSn", {pid: pid}, function(ret){
if(ret.success){
window.location.href="/prepress/download/"+ret.fileName;
}else{
$.messager.alert('Error',ret.errorMsg, 'error');
}
});
}
//导出缺失序列号
function missingReport() {
$('#missingSnDlg').dialog('center').dialog('setTitle', 'Statistic of Missing Serial Nos').dialog('open');
$('#missingSnDlgFm').form('clear');
$('#start_qty').numberbox('setValue', "10");
$('#end_qty').numberbox('setValue', "10");
}
//导出缺失序列号
function exportMissSn(){
var startQty = $("#start_qty").val();
var endQty = $("#end_qty").val();
var orderNo = $("#order_no").val();
var serialNo = $("#serial_no").val();
$.post("/prepress/exportMissSn", {startQty: startQty,endQty: endQty,orderNo: orderNo,serialNo: serialNo}, function(ret){
if(ret.success){
window.location.href="/prepress/downloadFileZip/"+ret.fileName;
}else{
$.messager.alert('Error',ret.errorMsg, 'error');
}
});
}
//扫描箱号
function scanBox() {
$('#scanBoxDlg').dialog('center').dialog('setTitle', 'Scaning Box No').dialog('open');
$('#scanBoxDlgFm').form('clear');
}
function scanBoxComplement(){
var boxNo = $("#boxNo").val();
$.post("/shipment/scanBoxNo", {boxNo: boxNo}, function(ret){
if(ret.success){
if(ret.flag){
$.messager.confirm('Confirm',' <b>'+boxNo+'</b>There is surplus roll in this box, are you sure to print ?',function(r){
if (r){
$("#ifmforprint").attr('src', "/print/checkReceiveBox/" + boxNo + "/");
}
});
}else{
$.messager.alert('Info','No surplus roll!', 'Info');
}
}else{
$.messager.alert('Error',ret.errorMsg, 'error');
}
});
}
//扫描序列号
function scanSn() {
$('#scanSnDlg').dialog('center').dialog('setTitle', 'Scan Serials No').dialog('open');
$('#scanSnDlgFm').form('clear');
}
function scanSnComplement(){
var snNo = $("#snNo").val();
$.post("/shipment/scanSnNo", {snNo: snNo}, function(ret){
if(ret.success){
$.messager.confirm('Confirm',' <b>'+ret.rollNo+'</b> Is Printed ?',function(r){
if (r){
$("#ifmforprint").attr('src', "/print/newlabel/" + ret.rollNo + "/");
}
});
}else{
$.messager.alert('Error',ret.errorMsg, 'error');
}
});
}
//冻结卷页面
function frozenSn(){
$('#frozenRnDlg').dialog('center').dialog('setTitle', 'Scanning Roll No').dialog('open');
$('#frozenRnDlgFm').form('clear');
}
//确认冻结卷
function frozenRnComplement(){
var frozenRn = $("#frozenRn").val();
$.post("/scanning/frozenRn", {frozenRn: frozenRn}, function(ret){
if(ret.success){
$.messager.alert('Info',"Frozen", 'Info');
$('#frozenRnDlg').dialog('close');
}else{
$.messager.alert('Error',ret.errorMsg, 'error');
}
});
}
</script>
</div> <!-- /container -->
<iframe id="ifmforprint" name="forprint" style="display: none;"></iframe>
<script src="/js/holder.min.js"></script>
<script src="/js/bootstrap.js"></script>
<script src="/js/WdatePicker.js"></script>
<script src="/js/app.js?v=1"></script>
<form id="frmLogout" action="/logout" method="post">
</form>
</body>
</html>
</#macro>