2025-06-20 17:47:53 +08:00
|
|
|
<%@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>
|
2025-07-04 16:32:00 +08:00
|
|
|
|
|
|
|
|
<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>
|
2025-06-20 17:47:53 +08:00
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
2025-07-04 16:32:00 +08:00
|
|
|
<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>
|
2025-06-20 17:47:53 +08:00
|
|
|
</body>
|
|
|
|
|
</html>
|