GZMachinesWeb/WebContent/WEB-INF/views/newInput/newInputAuditinglist.jsp

785 lines
21 KiB
Plaintext

<%@page import="com.bonus.core.DateTimeHelper"%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html >
<html lang="en">
<meta name="renderer" content="webkit">
<head>
<%@include file="../baseset.jsp" %>
<%@include file="../systemset.jsp" %>
<%
String endTime = DateTimeHelper.getNowDate();
String startTime = DateTimeHelper.getPreMonthDate();
%>
<link rel="stylesheet" href="${bonuspath}/static/plugins/zTree/3.5/zTreeStyle.css" />
<link rel="stylesheet" href="${bonuspath}/static/js/theme/default/layer.css" />
<script src="${bonuspath}/static/plugins/zTree/3.5/jquery.ztree.core-3.5.min.js"></script>
<script type="text/javascript" src="${bonuspath}/static/plugins/jquery.jqprint-0.3.js"></script>
<script src="${bonuspath}/static/js/layer.js"></script>
<link rel="stylesheet" href="${bonuspath}/static/js/layui/css/layui.css" />
<script src="${bonuspath}/static/js/layui/layui.js"></script>
<style>
/* 南网蓝色主题 - 适合老年人视力的页面样式 */
:root {
/* 南网蓝色色系 */
--primary-blue: #0066CC; /* 南网主蓝色 */
--light-blue: #E6F3FF; /* 浅蓝色背景 */
--medium-blue: #4A90D9; /* 中等蓝色 */
--dark-blue: #003A75; /* 深蓝色 */
--accent-blue: #1E88E5; /* 强调蓝色 */
/* 辅助色系 - 高对比度 */
--success-green: #2E7D32; /* 成功绿色 */
--warning-orange: #E65100; /* 警告橙色 */
--error-red: #C62828; /* 错误红色 */
--text-primary: #212121; /* 主要文字 */
--text-secondary: #424242; /* 次要文字 */
--border-color: #E0E0E0; /* 边框颜色 */
--background-gray: #F5F5F5; /* 背景灰色 */
}
body {
background-color: var(--background-gray);
font-family: 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', Arial, sans-serif;
font-size: 14px;
line-height: 1.6;
color: var(--text-primary);
}
.page-content {
background: var(--background-gray);
min-height: 100vh;
padding: 20px;
}
/* 页面容器优化 */
.content-wrapper {
background: #ffffff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
padding: 0;
overflow: hidden;
border: 1px solid var(--border-color);
}
/* 页面头部 - 南网蓝色主题 */
.page-header {
background: linear-gradient(135deg, var(--primary-blue) 0%, var(--dark-blue) 100%);
color: white;
padding: 25px 30px;
border-radius: 8px 8px 0 0;
margin-bottom: 0;
position: relative;
}
.page-header::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(90deg, var(--accent-blue) 0%, var(--medium-blue) 100%);
}
.page-title {
color: #fff;
font-size: 22px;
font-weight: 600;
margin: 0;
display: flex;
align-items: center;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.page-title::before {
content: "📋";
margin-right: 12px;
font-size: 24px;
opacity: 0.9;
}
/* 搜索区域优化 - 南网蓝色主题 */
.search-section {
background: #ffffff;
padding: 25px 30px;
border-bottom: 2px solid var(--light-blue);
}
.search-form {
display: flex;
align-items: center;
gap: 15px;
flex-wrap: wrap;
}
.search-input {
flex: 1;
min-width: 280px;
height: 44px;
padding: 0 16px;
border: 2px solid var(--border-color);
border-radius: 6px;
font-size: 15px;
transition: all 0.2s ease;
background: #ffffff;
color: var(--text-primary);
}
.search-input:focus {
outline: none;
border-color: var(--primary-blue);
box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);
background-color: var(--light-blue);
}
.search-input::placeholder {
color: var(--text-secondary);
}
/* 按钮组优化 - 南网蓝色主题 */
.btn-group-modern {
display: flex;
gap: 12px;
}
.btn-modern {
height: 44px;
padding: 0 24px;
border: 2px solid transparent;
border-radius: 6px;
font-size: 15px;
font-weight: 600;
cursor: pointer;
transition: all 0.2s ease;
display: flex;
align-items: center;
gap: 8px;
text-decoration: none;
white-space: nowrap;
letter-spacing: 0.5px;
}
.btn-primary-modern {
background: var(--primary-blue);
color: white;
border-color: var(--primary-blue);
}
.btn-primary-modern:hover {
background: var(--dark-blue);
border-color: var(--dark-blue);
color: white;
text-decoration: none;
box-shadow: 0 4px 12px rgba(0, 102, 204, 0.25);
}
.btn-success-modern {
background: var(--success-green);
color: white;
border-color: var(--success-green);
}
.btn-success-modern:hover {
background: #1B5E20;
border-color: #1B5E20;
color: white;
text-decoration: none;
box-shadow: 0 4px 12px rgba(46, 125, 50, 0.25);
}
/* 表格容器优化 - 南网蓝色主题 */
.table-section {
padding: 0 30px 30px;
}
.table-container {
background: white;
border-radius: 6px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
border: 1px solid var(--border-color);
}
/* 表格样式优化 - 南网蓝色主题 */
.table-modern {
width: 100%;
margin: 0;
border-collapse: separate;
border-spacing: 0;
font-size: 15px;
}
.table-modern thead th {
background: linear-gradient(135deg, var(--light-blue) 0%, #CCE7FF 100%);
color: var(--dark-blue);
font-weight: 700;
padding: 20px 16px;
text-align: center;
border: none;
border-bottom: 3px solid var(--primary-blue);
font-size: 15px;
position: relative;
letter-spacing: 0.3px;
}
.table-modern thead th:first-child {
border-top-left-radius: 6px;
}
.table-modern thead th:last-child {
border-top-right-radius: 6px;
}
.table-modern tbody tr {
transition: all 0.2s ease;
border-bottom: 1px solid var(--border-color);
}
.table-modern tbody tr:hover {
background-color: var(--light-blue);
}
.table-modern tbody tr:nth-child(even) {
background-color: #FAFAFA;
}
.table-modern tbody tr:nth-child(even):hover {
background-color: var(--light-blue);
}
.table-modern tbody tr:last-child {
border-bottom: none;
}
.table-modern tbody td {
padding: 18px 16px;
text-align: center;
vertical-align: middle;
border: none;
color: var(--text-primary);
font-size: 14px;
line-height: 1.5;
}
/* 状态标签优化 - 南网蓝色主题 */
.status-badge {
display: inline-block;
padding: 8px 16px;
border-radius: 4px;
font-size: 13px;
font-weight: 600;
text-align: center;
min-width: 80px;
border: 2px solid transparent;
letter-spacing: 0.3px;
}
.status-pending {
background: #FFF3E0;
color: var(--warning-orange);
border-color: #FFB74D;
}
.status-approved {
background: #E8F5E8;
color: var(--success-green);
border-color: #81C784;
}
/* 操作按钮优化 - 南网蓝色主题 */
.action-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: 6px;
border: 2px solid transparent;
cursor: pointer;
transition: all 0.2s ease;
text-decoration: none;
margin: 0 4px;
}
.action-btn:hover {
text-decoration: none;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.btn-approve {
background: var(--success-green);
color: white;
border-color: var(--success-green);
}
.btn-approve:hover {
background: #1B5E20;
border-color: #1B5E20;
color: white;
}
/* 复选框优化 - 南网蓝色主题 */
.custom-checkbox {
position: relative;
display: inline-block;
}
.custom-checkbox input[type="checkbox"] {
opacity: 0;
position: absolute;
}
.custom-checkbox .checkmark {
position: absolute;
top: 0;
left: 0;
height: 22px;
width: 22px;
background-color: #ffffff;
border: 3px solid var(--border-color);
border-radius: 4px;
transition: all 0.2s ease;
}
.custom-checkbox input:checked ~ .checkmark {
background-color: var(--primary-blue);
border-color: var(--primary-blue);
}
.custom-checkbox input:hover ~ .checkmark {
border-color: var(--medium-blue);
}
.custom-checkbox .checkmark:after {
content: "";
position: absolute;
display: none;
}
.custom-checkbox input:checked ~ .checkmark:after {
display: block;
}
.custom-checkbox .checkmark:after {
left: 7px;
top: 3px;
width: 6px;
height: 11px;
border: solid white;
border-width: 0 3px 3px 0;
transform: rotate(45deg);
}
/* 分页样式优化 - 南网蓝色主题 */
.pagination-section {
padding: 20px 30px;
background: white;
border-top: 2px solid var(--light-blue);
border-radius: 0 0 6px 6px;
}
.pagination {
justify-content: center;
margin: 0;
}
.pagination li a {
color: var(--primary-blue);
border: 2px solid var(--border-color);
padding: 12px 16px;
margin: 0 3px;
border-radius: 4px;
transition: all 0.2s ease;
font-weight: 600;
min-width: 44px;
text-align: center;
}
.pagination li a:hover {
background: var(--primary-blue);
color: white;
border-color: var(--primary-blue);
text-decoration: none;
}
.pagination li.active a {
background: var(--primary-blue);
border-color: var(--primary-blue);
color: white;
}
.pagination li.disabled a {
color: #BDBDBD;
border-color: #EEEEEE;
background: #FAFAFA;
cursor: not-allowed;
}
.pagination li.disabled a:hover {
color: #BDBDBD;
border-color: #EEEEEE;
background: #FAFAFA;
}
/* 老年人友好性优化 */
.accessibility-enhanced {
font-size: 16px !important;
line-height: 1.8 !important;
}
.high-contrast-mode .table-modern tbody tr:hover {
background-color: #FFE082 !important;
color: #000000 !important;
}
.large-text-mode {
font-size: 120% !important;
}
.large-text-mode .table-modern {
font-size: 16px !important;
}
.large-text-mode .btn-modern {
font-size: 16px !important;
height: 48px !important;
}
.large-text-mode .search-input {
font-size: 16px !important;
height: 48px !important;
}
/* 焦点高亮优化 */
.search-input:focus,
.btn-modern:focus,
.action-btn:focus,
.custom-checkbox input:focus + .checkmark {
outline: 3px solid var(--accent-blue) !important;
outline-offset: 2px !important;
}
/* 更高对比度的文字 */
.table-modern tbody td {
color: #1A1A1A !important;
font-weight: 500;
}
.table-modern thead th {
color: var(--dark-blue) !important;
font-weight: 800;
}
/* 响应式优化 */
@media (max-width: 768px) {
.page-content {
padding: 10px;
}
.search-form {
flex-direction: column;
align-items: stretch;
}
.search-input {
min-width: 100%;
margin-bottom: 10px;
}
.btn-group-modern {
justify-content: center;
}
.table-container {
overflow-x: auto;
}
.table-modern {
min-width: 800px;
}
/* 移动端大字体 */
.table-modern {
font-size: 16px !important;
}
.btn-modern {
font-size: 16px !important;
height: 48px !important;
}
.search-input {
font-size: 16px !important;
height: 48px !important;
}
}
/* 加载动画 - 南网蓝色主题 */
.loading-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(255, 255, 255, 0.95);
display: flex;
align-items: center;
justify-content: center;
z-index: 9999;
}
.loading-spinner {
width: 45px;
height: 45px;
border: 4px solid var(--light-blue);
border-top: 4px solid var(--primary-blue);
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* 空数据状态 - 南网蓝色主题 */
.empty-state {
text-align: center;
padding: 60px 20px;
color: var(--text-secondary);
}
.empty-state-icon {
font-size: 72px;
margin-bottom: 20px;
opacity: 0.6;
color: var(--medium-blue);
}
.empty-state-text {
font-size: 18px;
margin-bottom: 12px;
color: var(--text-primary);
font-weight: 600;
}
.empty-state-subtext {
font-size: 15px;
color: var(--text-secondary);
line-height: 1.5;
}
</style>
</head>
<body>
<div class="page-content">
<div class="content-wrapper">
<!-- 页面头部 -->
<div class="page-header">
<h1 class="page-title">新入库审核列表</h1>
</div>
<!-- 搜索区域 -->
<div class="search-section">
<form id="baseForm" class="search-form" method="POST" onsubmit="return false;">
<input type="text" id="keyWord" name="machinesName" placeholder="请输入机具名称、规格型号等关键词进行搜索..." class="search-input">
<div class="btn-group-modern">
<button id="searchBtn" class="btn-modern btn-primary-modern" title="搜索" type="button" onclick="getbaseList(1)">
<i class="icon-search"></i>
搜索
</button>
<button id="checkBtn" class="btn-modern btn-success-modern" title="批量审核" type="button" onclick="batchAudit()">
<i class="icon-ok"></i>
批量审核
</button>
</div>
<input type='hidden' class='pageNum' name='pageNum' value='1'/>
<input type='hidden' class='pageSize' name='pageSize' value='10'/>
</form>
</div>
<!-- 表格区域 -->
<div class="table-section">
<div class="table-container">
<table id="baseTable" class="table-modern">
<thead>
<tr>
<th style="width:5%">
<label class="custom-checkbox">
<input type="checkbox" style="">
<span class="checkmark"></span>
</label>
</th>
<th style="width:8%" class="hidden-480">序号</th>
<th style="width:15%">机具名称</th>
<th style="width:15%">规格型号</th>
<th style="width:10%">检验数量</th>
<th style="width:10%">入库数量</th>
<th style="width:10%">检验人</th>
<th style="width:10%">入库人</th>
<th style="width:10%">审核状态</th>
<th style="width:12%">操作</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
<!-- 分页区域 -->
<div class="pagination-section">
<div id="pageing" class="dataTables_paginate paging_bootstrap">
<ul class="pagination"></ul>
</div>
</div>
</div>
<!-- 对话框 -->
<%@include file="../dialog.jsp" %>
</div>
<script src="${bonuspath}/static/js/newInput/newInputAuditing.js?v=1"></script>
<script>
// 页面增强功能
$(document).ready(function() {
// 全选功能优化
$('thead input[type="checkbox"]').change(function() {
var isChecked = $(this).is(':checked');
$('tbody input[type="checkbox"]').prop('checked', isChecked);
updateBatchButtonState();
});
// 单个复选框变化
$(document).on('change', 'tbody input[type="checkbox"]', function() {
updateBatchButtonState();
updateSelectAllState();
});
// 更新批量按钮状态
function updateBatchButtonState() {
var checkedCount = $('tbody input[type="checkbox"]:checked').length;
$('#checkBtn').prop('disabled', checkedCount === 0);
if (checkedCount > 0) {
$('#checkBtn').removeClass('btn-success-modern').addClass('btn-primary-modern');
$('#checkBtn').html('<i class="icon-ok"></i> 批量审核 (' + checkedCount + ')');
} else {
$('#checkBtn').removeClass('btn-primary-modern').addClass('btn-success-modern');
$('#checkBtn').html('<i class="icon-ok"></i> 批量审核');
}
}
// 更新全选状态
function updateSelectAllState() {
var totalCheckboxes = $('tbody input[type="checkbox"]').length;
var checkedCheckboxes = $('tbody input[type="checkbox"]:checked').length;
if (checkedCheckboxes === 0) {
$('thead input[type="checkbox"]').prop('indeterminate', false).prop('checked', false);
} else if (checkedCheckboxes === totalCheckboxes) {
$('thead input[type="checkbox"]').prop('indeterminate', false).prop('checked', true);
} else {
$('thead input[type="checkbox"]').prop('indeterminate', true);
}
}
// 搜索框回车事件
$('#keyWord').keypress(function(e) {
if (e.which === 13) {
getbaseList(1);
}
});
// 表格行双击事件
$(document).on('dblclick', '#baseTable tbody tr', function() {
var checkbox = $(this).find('input[type="checkbox"]');
checkbox.prop('checked', !checkbox.prop('checked'));
updateBatchButtonState();
updateSelectAllState();
});
});
// 重写getbaseList函数以适配新的表格结构
if (typeof originalGetbaseList === 'undefined') {
var originalGetbaseList = getbaseList;
}
function getbaseList(init) {
var keyWord = $("#keyWord").val();
if (init == 1) {
$(".pageNum").val(1);
}
// 显示加载状态
var loadingHtml = '<tr><td colspan="10" class="empty-state"><div class="loading-spinner"></div><div class="empty-state-text">正在加载数据...</div></td></tr>';
$("#baseTable tbody").html(loadingHtml);
JY.Ajax.doRequest("baseForm", bonuspath + '/backstage/new/findIsExamine', {
keyWord: keyWord
}, function(data) {
$("#baseTable tbody").empty();
var obj = data.obj;
var list = obj.list;
var results = list.results;
var permitBtn = obj.permitBtn;
var pageNum = list.pageNum, pageSize = list.pageSize, totalRecord = list.totalRecord;
var html = "";
if (results != null && results.length > 0) {
var leng = (pageNum - 1) * pageSize;
for (var i = 0; i < results.length; i++) {
var l = results[i];
var no = i + leng + 1;
html += "<tr>";
html += "<td class='center'><label class='custom-checkbox'>";
html += "<input type='checkbox' name='checkId' class='ids' value='" + l.id + "' checkNum='" + l.checkNum + "' nums='" + l.nums + "' no='" + no + "'>";
html += "<span class='checkmark'></span></label></td>";
html += "<td class='center hidden-480'>" + no + "</td>";
html += "<td class='center'>" + (l.maType || '-') + "</td>";
html += "<td class='center'>" + (l.maModel || '-') + "</td>";
html += "<td class='center'>" + (l.checkNum || '-') + "</td>";
html += "<td class='center'>" + (l.nums || '-') + "</td>";
html += "<td class='center'>" + (l.checker || '-') + "</td>";
html += "<td class='center'>" + (l.customerRep || '-') + "</td>";
if(l.isExamine == 0 || l.isExamine == '0') {
html += "<td class='center'><span class='status-badge status-pending'>未审核</span></td>";
} else {
html += "<td class='center'><span class='status-badge status-approved'>已审核</span></td>";
}
html += "<td class='center'>";
if(l.isExamine != 1 && l.isExamine != '1') {
html += "<a href='#' title='审核' onclick='check(\"" + l.id + "\",\"" + l.checkNum + "\",\"" + l.nums + "\")' class='action-btn btn-approve'>";
html += "<i class='icon-ok'></i></a>";
} else {
html += "<span style='color: var(--success-green); font-size: 18px;' title='已审核'><i class='icon-ok-circle'></i></span>";
}
html += "</td>";
html += "</tr>";
}
$("#baseTable tbody").append(html);
JY.Page.setPage("baseForm", "pageing", pageSize, pageNum, totalRecord, "getbaseList");
} else {
html = '<tr><td colspan="10" class="empty-state">';
html += '<div class="empty-state-icon">📋</div>';
html += '<div class="empty-state-text">暂无数据</div>';
html += '<div class="empty-state-subtext">请尝试调整搜索条件或稍后再试</div>';
html += '</td></tr>';
$("#baseTable tbody").append(html);
$("#pageing ul").empty();
}
// 重置批量按钮状态
updateBatchButtonState();
});
}
</script>
</body>
</html>