Files
leaudit-platform-frontend/html/评查结果.html
T
2025-05-30 19:48:37 +08:00

915 lines
31 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>评查结果 - 卡片对比版</title>
<!-- <link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet"> -->
<link href="https://unpkg.com/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet">
<style>
:root {
--primary-color: #00684a;
--primary-hover: #005a40;
--primary-light: rgba(0, 104, 74, 0.1);
--success-color: #52c41a;
--warning-color: #faad14;
--error-color: #ff4d4f;
--text-color: rgba(0, 0, 0, 0.85);
--text-secondary: rgba(0, 0, 0, 0.45);
--border-color: #f0f0f0;
--bg-gray: #f5f5f5;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
line-height: 1.4;
color: var(--text-color);
background-color: var(--bg-gray);
padding: 8px;
font-size: 12px;
}
.container {
max-width: 320px;
margin: 0 auto;
background: white;
border-radius: 8px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
overflow: hidden;
}
.header {
background: linear-gradient(135deg, var(--primary-color), var(--primary-hover));
color: white;
padding: 12px 16px;
text-align: center;
}
.header h1 {
font-size: 18px;
font-weight: 600;
margin-bottom: 4px;
}
.header p {
font-size: 12px;
opacity: 0.9;
}
.stats-overview {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 0;
background: white;
border-bottom: 1px solid var(--border-color);
}
.stat-item {
padding: 12px;
text-align: center;
border-right: 1px solid var(--border-color);
transition: all 0.2s ease;
}
.stat-item:last-child {
border-right: none;
}
.stat-item:hover {
background-color: #fafafa;
}
.stat-number {
font-size: 20px;
font-weight: 700;
margin-bottom: 3px;
display: block;
}
.stat-label {
font-size: 11px;
color: var(--text-secondary);
font-weight: 500;
}
.stat-total .stat-number { color: var(--text-color); }
.stat-pass .stat-number { color: var(--success-color); }
.stat-warning .stat-number { color: var(--warning-color); }
.stat-error .stat-number { color: var(--error-color); }
.content-area {
padding: 12px;
}
.search-box {
margin-bottom: 12px;
position: relative;
}
.search-input {
width: 100%;
padding: 8px 12px 8px 32px;
border: 1px solid var(--border-color);
border-radius: 20px;
font-size: 12px;
transition: all 0.2s ease;
background: #fafafa;
}
.search-input:focus {
outline: none;
border-color: var(--primary-color);
background: white;
box-shadow: 0 0 0 2px var(--primary-light);
}
.search-icon {
position: absolute;
left: 10px;
top: 50%;
transform: translateY(-50%);
color: var(--text-secondary);
font-size: 14px;
}
.results-section {
display: grid;
gap: 10px;
}
.result-card {
background: white;
border: 1px solid var(--border-color);
border-radius: 6px;
overflow: hidden;
transition: all 0.2s ease;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
}
.result-card:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.result-header {
background: linear-gradient(135deg, #f8f9fa, #e9ecef);
padding: 10px 12px;
border-bottom: 1px solid var(--border-color);
display: flex;
align-items: center;
justify-content: space-between;
}
.result-title {
font-size: 13px;
font-weight: 600;
color: var(--text-color);
display: flex;
align-items: center;
}
.result-title i {
margin-right: 6px;
color: var(--primary-color);
font-size: 15px;
}
.status-badge {
padding: 3px 8px;
border-radius: 10px;
font-size: 10px;
font-weight: 600;
display: flex;
align-items: center;
gap: 3px;
}
.status-pass {
background: #f6ffed;
color: var(--success-color);
border: 1px solid #b7eb8f;
}
.status-warning {
background: #fffbe6;
color: var(--warning-color);
border: 1px solid #ffe58f;
}
.status-error {
background: #fff2f0;
color: var(--error-color);
border: 1px solid #ffccc7;
}
.result-body {
padding: 12px;
}
/* 对比卡片样式 */
.comparison-group {
margin-bottom: 12px;
}
.comparison-group:last-child {
margin-bottom: 0;
}
.group-title {
font-size: 11px;
font-weight: 600;
color: var(--primary-color);
margin-bottom: 8px;
display: flex;
align-items: center;
padding: 4px 0;
border-bottom: 1px solid var(--border-color);
}
.group-title i {
margin-right: 4px;
font-size: 13px;
}
.comparison-item {
display: flex;
align-items: stretch;
margin-bottom: 6px;
border-radius: 4px;
overflow: hidden;
border: 1px solid #e8e8e8;
transition: all 0.2s ease;
}
.comparison-item:hover {
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}
.comparison-item:last-child {
margin-bottom: 0;
}
.field-label {
background: #f8f9fa;
padding: 6px 8px;
font-size: 10px;
font-weight: 600;
color: var(--text-secondary);
min-width: 70px;
display: flex;
align-items: center;
border-right: 1px solid #e8e8e8;
}
.comparison-values {
flex: 1;
display: flex;
}
.value-box {
flex: 1;
padding: 6px 8px;
font-size: 10px;
line-height: 1.3;
border-right: 1px solid #e8e8e8;
position: relative;
}
.value-box:last-child {
border-right: none;
}
.value-source {
font-size: 9px;
color: var(--text-secondary);
margin-bottom: 2px;
font-weight: 500;
}
.vs-icon {
font-size: 8px;
margin: 0 4px;
color: var(--primary-color);
}
.value-content {
font-size: 10px;
color: var(--text-color);
font-weight: 500;
}
.status-indicator {
min-width: 30px;
display: flex;
align-items: center;
justify-content: center;
font-size: 9px;
font-weight: 600;
padding: 6px 4px;
}
/* 状态样式 */
.comparison-item.match .value-box {
background: #f6ffed;
border-color: #d9f7be;
}
.comparison-item.match .status-indicator {
background: #f6ffed;
color: var(--success-color);
}
.comparison-item.mismatch .value-box {
background: #fffbe6;
border-color: #ffe58f;
}
.comparison-item.mismatch .status-indicator {
background: #fffbe6;
color: var(--warning-color);
}
.comparison-item.missing .value-box {
background: #fff2f0;
border-color: #ffccc7;
}
.comparison-item.missing .status-indicator {
background: #fff2f0;
color: var(--error-color);
}
/* 单项检查样式 */
.single-check-group {
margin-bottom: 12px;
}
.check-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 6px 8px;
margin-bottom: 4px;
border-radius: 4px;
border: 1px solid #e8e8e8;
transition: all 0.2s ease;
}
.check-item:hover {
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}
.check-item:last-child {
margin-bottom: 0;
}
.check-item.present {
background: #f6ffed;
border-color: #d9f7be;
}
.check-item.missing {
background: #fff2f0;
border-color: #ffccc7;
}
.check-label {
font-size: 10px;
color: var(--text-secondary);
font-weight: 500;
}
.check-value {
font-size: 10px;
font-weight: 500;
color: var(--text-color);
flex: 1;
margin: 0 8px;
}
.check-status {
font-size: 9px;
font-weight: 600;
display: flex;
align-items: center;
gap: 2px;
}
.check-status.present {
color: var(--success-color);
}
.check-status.missing {
color: var(--error-color);
}
/* 总结框 */
.summary-box {
background: linear-gradient(135deg, #f0f9ff, #e0f2fe);
border: 1px solid #bae6fd;
border-radius: 4px;
padding: 8px;
margin-top: 8px;
}
.summary-title {
font-size: 10px;
font-weight: 600;
color: var(--primary-color);
margin-bottom: 4px;
display: flex;
align-items: center;
}
.summary-title i {
margin-right: 3px;
font-size: 12px;
}
.summary-content {
font-size: 9px;
color: var(--text-color);
line-height: 1.4;
}
.action-buttons {
margin-top: 12px;
display: flex;
gap: 8px;
justify-content: flex-end;
}
.btn {
padding: 8px 14px;
border-radius: 4px;
font-size: 11px;
font-weight: 500;
cursor: pointer;
transition: all 0.2s ease;
border: none;
display: flex;
align-items: center;
gap: 4px;
}
.btn-primary {
background: var(--primary-color);
color: white;
}
.btn-primary:hover {
background: var(--primary-hover);
}
.btn-secondary {
background: white;
color: var(--text-color);
border: 1px solid var(--border-color);
}
.btn-secondary:hover {
border-color: var(--primary-color);
color: var(--primary-color);
}
/* 长内容两行显示样式 */
.comparison-item.long-content .comparison-values {
flex-direction: column;
}
.comparison-item.long-content .value-box {
border-right: none;
border-bottom: none;
padding: 2px 8px;
}
.comparison-item.long-content .value-box:last-child {
border-bottom: none;
}
/* 长内容合并标题样式 */
.comparison-item.long-content .merged-header {
background: #f8f9fa;
padding: 4px 8px;
font-size: 8px;
font-weight: 600;
color: var(--text-secondary);
border-bottom: 1px solid #e8e8e8;
text-align: center;
}
.comparison-item.long-content .content-row {
padding: 4px 8px;
font-size: 10px;
color: var(--text-color);
border-bottom: 1px solid #e8e8e8;
}
.comparison-item.long-content .content-row:last-child {
border-bottom: none;
}
.comparison-item.long-content .value-content {
line-height: 1.2;
margin-bottom: 0;
}
/* Tooltip 样式 */
.tooltip {
position: relative;
cursor: pointer;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 120px;
background-color: #333;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 6px;
position: absolute;
z-index: 1000;
bottom: 125%;
left: 50%;
margin-left: -60px;
opacity: 0;
transition: opacity 0.3s;
font-size: 10px;
line-height: 1.4;
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
white-space: nowrap;
}
.tooltip .tooltiptext::after {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: #333 transparent transparent transparent;
}
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 1;
}
/* 文本截断样式 */
.truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
}
@media (max-width: 768px) {
.stats-overview {
grid-template-columns: repeat(2, 1fr);
}
.stat-item {
border-right: none;
border-bottom: 1px solid var(--border-color);
}
.stat-item:nth-child(2n) {
border-right: none;
}
.content-area {
padding: 10px;
}
.action-buttons {
flex-direction: column;
}
.comparison-values {
flex-direction: column;
}
.value-box {
border-right: none;
border-bottom: 1px solid #e8e8e8;
}
.value-box:last-child {
border-bottom: none;
}
}
</style>
</head>
<body>
<div class="container">
<!-- 页面头部 -->
<div class="header">
<h1>评查结果</h1>
<p>烟草专卖行政执法案件评查报告</p>
</div>
<!-- 统计概览 -->
<div class="stats-overview">
<div class="stat-item stat-total">
<span class="stat-number">55</span>
<span class="stat-label">总计</span>
</div>
<div class="stat-item stat-pass">
<span class="stat-number">49</span>
<span class="stat-label">通过</span>
</div>
<div class="stat-item stat-warning">
<span class="stat-number">6</span>
<span class="stat-label">警告</span>
</div>
<div class="stat-item stat-error">
<span class="stat-number">0</span>
<span class="stat-label">错误</span>
</div>
</div>
<!-- 内容区域 -->
<div class="content-area">
<!-- 搜索框 -->
<div class="search-box">
<i class="ri-search-line search-icon"></i>
<input type="text" class="search-input" placeholder="搜索评查点...">
</div>
<!-- 评查结果列表 -->
<div class="results-section">
<!-- 当事人基本情况记载完整、准确 -->
<div class="result-card">
<div class="result-header">
<div class="result-title">
<i class="ri-user-check-line"></i>
当事人基本情况记载完整、准确
</div>
<div class="status-badge status-pass">
<i class="ri-check-circle-line"></i>
通过
</div>
</div>
<div class="result-body">
<!-- 个人基本信息对比 -->
<div class="comparison-group">
<!-- <div class="group-title">
<i class="ri-user-line"></i>
个人基本信息对比
</div> -->
<div class="comparison-item match">
<div class="field-label" style="display: none;">姓名</div>
<div class="comparison-values">
<div class="value-box">
<div class="value-source">立案报告表-姓名</div>
<div class="value-content">江小妹</div>
</div>
<div class="value-box">
<div class="value-source">身份证-姓名</div>
<div class="value-content">江小妹</div>
</div>
</div>
<div class="status-indicator tooltip">
<i class="ri-check-line" style="color: var(--success-color); font-size: 14px;"></i>
<span class="tooltiptext">一致</span>
</div>
</div>
<div class="comparison-item match">
<div class="field-label" style="display: none;">性别</div>
<div class="comparison-values">
<div class="value-box">
<div class="value-source">立案报告表-性别</div>
<div class="value-content"></div>
</div>
<div class="value-box">
<div class="value-source">身份证-性别</div>
<div class="value-content"></div>
</div>
</div>
<div class="status-indicator tooltip">
<i class="ri-check-line" style="color: var(--success-color); font-size: 14px;"></i>
<span class="tooltiptext">一致</span>
</div>
</div>
<div class="comparison-item mismatch">
<div class="field-label" style="display: none;">民族</div>
<div class="comparison-values">
<div class="value-box">
<div class="value-source">立案报告表-民族</div>
<div class="value-content">汉人</div>
</div>
<div class="value-box">
<div class="value-source">身份证-民族</div>
<div class="value-content">汉族</div>
</div>
</div>
<div class="status-indicator tooltip">
<i class="ri-alert-line" style="color: var(--warning-color); font-size: 14px;"></i>
<span class="tooltiptext">不一致</span>
</div>
</div>
<div class="comparison-item match">
<div class="field-label" style="display: none;">身份证号</div>
<div class="comparison-values">
<div class="value-box">
<div class="value-source">立案报告表-身份证号</div>
<div class="value-content">445322198602014328</div>
</div>
<div class="value-box">
<div class="value-source">身份证-身份证号</div>
<div class="value-content">445322198602014328</div>
</div>
</div>
<div class="status-indicator tooltip">
<i class="ri-check-line" style="color: var(--success-color); font-size: 14px;"></i>
<span class="tooltiptext">一致</span>
</div>
</div>
<div class="comparison-item match long-content">
<div class="field-label" style="display: none;">住址</div>
<div class="comparison-values">
<div class="value-box">
<div class="value-source">立案报告表-住址 <i class="ri-arrow-left-right-line vs-icon"></i> 身份证-住址</div>
<div class="value-content">广东省云浮市郁南县宋桂镇宋桂村委尾一村6号</div>
</div>
<div class="value-box">
<div class="value-content">广东省云浮市郁南县宋桂镇宋桂村委尾一村6号</div>
</div>
</div>
<div class="status-indicator tooltip">
<i class="ri-check-line" style="color: var(--success-color); font-size: 14px;"></i>
<span class="tooltiptext">一致</span>
</div>
</div>
</div>
<!-- 单位信息对比 -->
<div class="comparison-group">
<div class="group-title">
<i class="ri-building-line"></i>
单位信息对比
</div>
<div class="comparison-item match long-content">
<div class="field-label" style="display: none;">单位名称</div>
<div class="comparison-values">
<div class="value-box">
<div class="value-source">立案报告表-单位名称 <i class="ri-arrow-left-right-line vs-icon"></i> 营业执照-单位名称</div>
<div class="value-content">郁南县连滩镇领航烟酒商行</div>
</div>
<div class="value-box">
<div class="value-content">郁南县连滩镇领航烟酒商行</div>
</div>
</div>
<div class="status-indicator tooltip">
<i class="ri-check-line" style="color: var(--success-color); font-size: 14px;"></i>
<span class="tooltiptext">一致</span>
</div>
</div>
<div class="comparison-item match long-content">
<div class="field-label" style="display: none;">地址/住所</div>
<div class="comparison-values">
<div class="value-box">
<div class="value-source">立案报告表-地址 <i class="ri-arrow-left-right-line vs-icon"></i> 营业执照-住所</div>
<div class="value-content">郁南县连滩镇中华路106号一楼</div>
</div>
<div class="value-box">
<div class="value-content">郁南县连滩镇中华路106号一楼</div>
</div>
</div>
<div class="status-indicator tooltip">
<i class="ri-check-line" style="color: var(--success-color); font-size: 14px;"></i>
<span class="tooltiptext">一致</span>
</div>
</div>
</div>
<!-- 必要信息完整性检查 -->
<div class="single-check-group">
<!-- <div class="group-title">
<i class="ri-file-check-line"></i>
必要信息完整性检查
</div> -->
<div class="check-item present">
<div class="check-label">法定代表人</div>
<div class="check-value">江小妹</div>
<div class="check-status present tooltip">
<i class="ri-check-line" style="font-size: 14px;"></i>
<span class="tooltiptext">已填写</span>
</div>
</div>
<div class="check-item present">
<div class="check-label">年龄</div>
<div class="check-value">38</div>
<div class="check-status present tooltip">
<i class="ri-check-line" style="font-size: 14px;"></i>
<span class="tooltiptext">已填写</span>
</div>
</div>
<div class="check-item present">
<div class="check-label">联系电话</div>
<div class="check-value">13430472175</div>
<div class="check-status present tooltip">
<i class="ri-check-line" style="font-size: 14px;"></i>
<span class="tooltiptext">已填写</span>
</div>
</div>
</div>
<!-- 检查总结 -->
<div class="summary-box">
<div class="summary-title">
<i class="ri-file-list-check-line"></i>
检查总结
</div>
<div class="summary-content">
<strong>检查结果:</strong>当事人基本情况记录完整,与身份证信息基本一致。<br>
<strong>发现问题:</strong>民族字段存在细微差异("汉人" vs "汉族"),建议统一表述。<br>
<strong>建议:</strong>将立案报告表中的"汉人"修改为"汉族"以保持一致性。
</div>
</div>
</div>
</div>
</div>
<!-- 操作按钮 -->
<div class="action-buttons">
<button class="btn btn-secondary">
<i class="ri-download-line"></i>
导出报告
</button>
<button class="btn btn-primary">
<i class="ri-check-double-line"></i>
确认评查结果
</button>
</div>
</div>
</div>
<script>
// 搜索功能
document.querySelector('.search-input').addEventListener('input', function(e) {
const searchTerm = e.target.value.toLowerCase();
const resultCards = document.querySelectorAll('.result-card');
resultCards.forEach(card => {
const title = card.querySelector('.result-title').textContent.toLowerCase();
const content = card.querySelector('.result-body').textContent.toLowerCase();
if (title.includes(searchTerm) || content.includes(searchTerm)) {
card.style.display = 'block';
} else {
card.style.display = 'none';
}
});
});
// 按钮点击事件
document.querySelector('.btn-primary').addEventListener('click', function() {
alert('评查结果已确认!');
});
document.querySelector('.btn-secondary').addEventListener('click', function() {
alert('正在导出评查报告...');
});
// 卡片悬停效果
document.querySelectorAll('.result-card').forEach(card => {
card.addEventListener('mouseenter', function() {
this.style.transform = 'translateY(-2px)';
});
card.addEventListener('mouseleave', function() {
this.style.transform = 'translateY(0)';
});
});
// 对比项悬停效果
document.querySelectorAll('.comparison-item, .check-item').forEach(item => {
item.addEventListener('mouseenter', function() {
this.style.transform = 'translateX(2px)';
});
item.addEventListener('mouseleave', function() {
this.style.transform = 'translateX(0)';
});
});
</script>
</body>
</html>