yuanxingsheji/员工保险健康管理/员工页面.html

2664 lines
118 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>员工保险与健康管理系统</title>
<style>
:root {
--primary-color: #3498db;
--secondary-color: #2c3e50;
--success-color: #27ae60;
--danger-color: #e74c3c;
--warning-color: #f39c12;
--light-color: #f8f9fa;
--dark-color: #343a40;
--gray-color: #7f8c8d;
--border-color: #ddd;
}
body {
font-family: 'Microsoft YaHei', sans-serif;
margin: 0;
padding: 0;
background-color: #f4f6f9;
color: #333;
}
.header {
background-color: var(--secondary-color);
color: white;
padding: 15px 20px;
display: flex;
justify-content: space-between;
align-items: center;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.header h1 {
margin: 0;
font-size: 22px;
}
.user-info {
display: flex;
align-items: center;
}
.user-info span {
margin-right: 15px;
}
.logout-btn {
background-color: var(--danger-color);
color: white;
border: none;
padding: 5px 10px;
border-radius: 3px;
cursor: pointer;
transition: background-color 0.3s;
}
.logout-btn:hover {
background-color: #c0392b;
}
.container {
display: flex;
min-height: calc(100vh - 60px);
}
.sidebar {
width: 220px;
background-color: #34495e;
color: white;
padding: 20px 0;
transition: width 0.3s;
}
.sidebar-menu {
list-style: none;
padding: 0;
margin: 0;
}
.sidebar-menu li {
padding: 12px 20px;
cursor: pointer;
transition: background-color 0.3s;
display: flex;
align-items: center;
}
.sidebar-menu li i {
margin-right: 10px;
width: 20px;
text-align: center;
}
.sidebar-menu li:hover {
background-color: var(--secondary-color);
}
.sidebar-menu li.active {
background-color: var(--secondary-color);
border-left: 4px solid var(--primary-color);
}
.main-content {
flex: 1;
padding: 20px;
transition: margin-left 0.3s;
}
.card {
background-color: white;
border-radius: 5px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
padding: 20px;
margin-bottom: 20px;
}
.card-header {
border-bottom: 1px solid var(--border-color);
padding-bottom: 10px;
margin-bottom: 15px;
display: flex;
justify-content: space-between;
align-items: center;
}
.card-header h2 {
margin: 0;
font-size: 18px;
color: var(--secondary-color);
}
table {
width: 100%;
border-collapse: collapse;
}
th, td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid var(--border-color);
}
th {
background-color: var(--light-color);
font-weight: bold;
color: var(--secondary-color);
}
tr:hover {
background-color: #f5f5f5;
}
.btn {
padding: 8px 12px;
border-radius: 3px;
border: none;
cursor: pointer;
font-size: 14px;
margin-right: 5px;
transition: background-color 0.3s;
display: inline-flex;
align-items: center;
}
.btn i {
margin-right: 5px;
}
.btn-primary {
background-color: var(--primary-color);
color: white;
}
.btn-success {
background-color: var(--success-color);
color: white;
}
.btn-danger {
background-color: var(--danger-color);
color: white;
}
.btn-warning {
background-color: var(--warning-color);
color: white;
}
.btn-info {
background-color: #17a2b8;
color: white;
}
.btn-primary:hover {
background-color: #2980b9;
}
.btn-success:hover {
background-color: #219653;
}
.btn-danger:hover {
background-color: #c0392b;
}
.btn-warning:hover {
background-color: #e67e22;
}
.btn-info:hover {
background-color: #138496;
}
.status-active {
color: var(--success-color);
font-weight: bold;
}
.status-expired {
color: var(--danger-color);
font-weight: bold;
}
.status-pending {
color: var(--warning-color);
font-weight: bold;
}
.status-warning {
color: var(--warning-color);
font-weight: bold;
}
.insurance-detail {
display: none;
margin-top: 15px;
padding: 15px;
background-color: #f9f9f9;
border-radius: 5px;
border-left: 4px solid var(--primary-color);
}
.detail-row {
display: flex;
margin-bottom: 10px;
}
.detail-label {
width: 150px;
font-weight: bold;
color: #555;
}
.detail-value {
flex: 1;
}
.policy-benefits {
margin-top: 15px;
padding-top: 15px;
border-top: 1px solid var(--border-color);
}
.benefit-item {
display: flex;
justify-content: space-between;
padding: 8px 0;
border-bottom: 1px dashed var(--border-color);
}
.text-success {
color: var(--success-color);
}
.text-warning {
color: var(--warning-color);
}
.text-danger {
color: var(--danger-color);
}
.text-info {
color: #17a2b8;
}
.file-list {
list-style: none;
padding: 0;
}
.file-item {
display: flex;
justify-content: space-between;
padding: 10px;
border-bottom: 1px solid var(--border-color);
align-items: center;
}
.file-item:hover {
background-color: #f9f9f9;
}
.file-icon {
margin-right: 10px;
color: var(--primary-color);
}
.profile-section {
display: flex;
margin-bottom: 20px;
}
.profile-avatar {
width: 100px;
height: 100px;
border-radius: 50%;
background-color: #eee;
margin-right: 20px;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.profile-avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.profile-info {
flex: 1;
}
.profile-name {
font-size: 20px;
font-weight: bold;
margin-bottom: 5px;
}
.profile-meta {
color: var(--gray-color);
margin-bottom: 10px;
}
.profile-actions {
margin-top: 10px;
}
.info-table {
width: 100%;
}
.info-table td {
padding: 10px;
border-bottom: 1px solid var(--border-color);
}
.info-table td:first-child {
width: 30%;
font-weight: bold;
color: #555;
}
.search-bar {
display: flex;
margin-bottom: 20px;
gap: 10px;
}
.search-bar input {
flex: 1;
padding: 10px;
border: 1px solid var(--border-color);
border-radius: 4px;
}
.search-bar button {
padding: 10px 15px;
background-color: var(--primary-color);
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.3s;
}
.search-bar button:hover {
background-color: #2980b9;
}
.pagination {
display: flex;
justify-content: center;
margin-top: 20px;
}
.pagination a {
color: var(--primary-color);
padding: 8px 16px;
text-decoration: none;
border: 1px solid var(--border-color);
margin: 0 4px;
}
.pagination a.active {
background-color: var(--primary-color);
color: white;
border: 1px solid var(--primary-color);
}
.pagination a:hover:not(.active) {
background-color: #ddd;
}
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.4);
}
.modal-content {
background-color: #fefefe;
margin: 10% auto;
padding: 20px;
border: 1px solid #888;
width: 60%;
border-radius: 5px;
max-width: 800px;
box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover {
color: black;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: 8px;
border: 1px solid var(--border-color);
border-radius: 4px;
box-sizing: border-box;
}
.form-group textarea {
min-height: 100px;
resize: vertical;
}
.form-actions {
text-align: right;
margin-top: 20px;
}
.tabs {
display: flex;
border-bottom: 1px solid var(--border-color);
margin-bottom: 20px;
}
.tab {
padding: 10px 20px;
cursor: pointer;
border: 1px solid transparent;
border-bottom: none;
margin-right: 5px;
background-color: var(--light-color);
border-radius: 5px 5px 0 0;
transition: all 0.3s;
}
.tab:hover {
background-color: #e9ecef;
}
.tab.active {
background-color: white;
border-color: var(--border-color);
border-bottom-color: white;
margin-bottom: -1px;
font-weight: bold;
color: var(--primary-color);
}
.tab-content {
display: none;
}
.tab-content.active {
display: block;
}
.chart-container {
width: 100%;
height: 400px;
margin-bottom: 20px;
background-color: white;
border-radius: 5px;
padding: 20px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
display: flex;
align-items: center;
justify-content: center;
}
.filter-bar {
display: flex;
margin-bottom: 20px;
gap: 10px;
flex-wrap: wrap;
}
.filter-bar select,
.filter-bar input {
padding: 8px;
border: 1px solid var(--border-color);
border-radius: 4px;
min-width: 150px;
}
.filter-bar button {
padding: 8px 15px;
background-color: var(--primary-color);
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.3s;
}
.filter-bar button:hover {
background-color: #2980b9;
}
.stat-cards {
display: flex;
gap: 20px;
margin-bottom: 20px;
flex-wrap: wrap;
}
.stat-card {
flex: 1;
min-width: 200px;
background-color: white;
border-radius: 5px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
padding: 20px;
text-align: center;
}
.stat-card h3 {
margin-top: 0;
color: var(--gray-color);
}
.stat-card .value {
font-size: 24px;
font-weight: bold;
margin: 10px 0;
}
.stat-card .trend {
font-size: 14px;
color: var(--success-color);
}
.stat-card .trend.down {
color: var(--danger-color);
}
.health-record {
margin-bottom: 20px;
padding: 15px;
background-color: white;
border-radius: 5px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.health-record-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
padding-bottom: 10px;
border-bottom: 1px solid var(--border-color);
}
.health-record-title {
font-weight: bold;
color: var(--secondary-color);
}
.health-record-date {
color: var(--gray-color);
font-size: 14px;
}
.health-record-content {
display: flex;
flex-wrap: wrap;
gap: 20px;
}
.health-record-section {
flex: 1;
min-width: 250px;
}
.health-record-section h4 {
margin-top: 0;
color: var(--secondary-color);
border-bottom: 1px solid var(--border-color);
padding-bottom: 5px;
}
.health-record-item {
display: flex;
margin-bottom: 8px;
}
.health-record-label {
width: 120px;
font-weight: bold;
color: #555;
}
.health-record-value {
flex: 1;
}
.badge {
display: inline-block;
padding: 3px 8px;
border-radius: 10px;
font-size: 12px;
font-weight: bold;
margin-left: 5px;
}
.badge-success {
background-color: var(--success-color);
color: white;
}
.badge-warning {
background-color: var(--warning-color);
color: white;
}
.badge-danger {
background-color: var(--danger-color);
color: white;
}
.badge-info {
background-color: #17a2b8;
color: white;
}
.alert {
padding: 10px 15px;
border-radius: 4px;
margin-bottom: 15px;
}
.alert-warning {
background-color: #fff3cd;
color: #856404;
border-left: 4px solid var(--warning-color);
}
.alert-info {
background-color: #d1ecf1;
color: #0c5460;
border-left: 4px solid #17a2b8;
}
.toggle-sidebar {
display: none;
background: none;
border: none;
color: white;
font-size: 20px;
cursor: pointer;
margin-right: 15px;
}
@media (max-width: 992px) {
.sidebar {
width: 60px;
overflow: hidden;
}
.sidebar-menu li span {
display: none;
}
.sidebar-menu li i {
margin-right: 0;
font-size: 18px;
}
.sidebar.expanded {
width: 220px;
}
.sidebar.expanded .sidebar-menu li span {
display: inline;
}
.toggle-sidebar {
display: block;
}
}
@media (max-width: 768px) {
.container {
flex-direction: column;
}
.sidebar {
width: 100%;
padding: 10px 0;
}
.sidebar-menu {
display: flex;
overflow-x: auto;
}
.sidebar-menu li {
white-space: nowrap;
}
.sidebar.expanded .sidebar-menu {
flex-wrap: wrap;
}
.main-content {
padding: 15px;
}
.stat-cards {
flex-direction: column;
}
.health-record-content {
flex-direction: column;
}
.modal-content {
width: 90%;
margin: 20px auto;
}
}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
</head>
<body>
<div class="header">
<div>
<button class="toggle-sidebar" onclick="toggleSidebar()">
<i class="fas fa-bars"></i>
</button>
<h1>员工保险与健康管理系统</h1>
</div>
<div class="user-info">
<span id="current-username">张三 (EMP001)</span>
<button class="logout-btn" onclick="logout()">
<i class="fas fa-sign-out-alt"></i> 退出
</button>
</div>
</div>
<div class="container">
<div class="sidebar" id="sidebar">
<ul class="sidebar-menu" id="admin-menu">
<li class="active" data-target="dashboard">
<i class="fas fa-tachometer-alt"></i>
<span>工作台</span>
</li>
<li data-target="insurance">
<i class="fas fa-shield-alt"></i>
<span>我的保险</span>
</li>
<li data-target="health">
<i class="fas fa-heartbeat"></i>
<span>健康档案</span>
</li>
<li data-target="documents">
<i class="fas fa-file-alt"></i>
<span>保单文件</span>
</li>
<li data-target="profile">
<i class="fas fa-user"></i>
<span>个人信息</span>
</li>
<li data-target="password">
<i class="fas fa-key"></i>
<span>修改密码</span>
</li>
</ul>
<ul class="sidebar-menu" id="employee-menu" style="display: none;">
<li class="active" data-target="dashboard">
<i class="fas fa-tachometer-alt"></i>
<span>工作台</span>
</li>
<li data-target="insurance">
<i class="fas fa-shield-alt"></i>
<span>我的保险</span>
</li>
<li data-target="health">
<i class="fas fa-heartbeat"></i>
<span>健康档案</span>
</li>
<li data-target="documents">
<i class="fas fa-file-alt"></i>
<span>保单文件</span>
</li>
<li data-target="profile">
<i class="fas fa-user"></i>
<span>个人信息</span>
</li>
</ul>
</div>
<div class="main-content" id="main-content">
<!-- 工作台 -->
<div id="dashboard" class="tab-content active">
<div class="card">
<div class="card-header">
<h2><i class="fas fa-tachometer-alt"></i> 工作台概览</h2>
</div>
<div id="admin-dashboard">
<div class="stat-cards">
<div class="stat-card">
<h3>员工总数</h3>
<div class="value">156</div>
<div class="trend">↑ 5% 较上月</div>
</div>
<div class="stat-card">
<h3>有效保单</h3>
<div class="value">142</div>
<div class="trend">↑ 3% 较上月</div>
</div>
<div class="stat-card">
<h3>即将到期</h3>
<div class="value">23</div>
<div class="trend down">↑ 5% 较上月</div>
</div>
<div class="stat-card">
<h3>年度总保费</h3>
<div class="value">¥ 1,256,800</div>
<div class="trend">↑ 8% 较上年</div>
</div>
</div>
<div class="filter-bar">
<select>
<option>全部部门</option>
<option>人事部</option>
<option>技术部</option>
<option>市场部</option>
<option>财务部</option>
</select>
<button class="btn btn-primary">
<i class="fas fa-filter"></i> 筛选
</button>
<button class="btn btn-success">
<i class="fas fa-file-excel"></i> 导出Excel
</button>
</div>
<div class="alert alert-warning">
<i class="fas fa-exclamation-triangle"></i> 您有 <strong>3份</strong> 保险即将在30天内到期请及时处理。
</div>
<div class="chart-container">
<img src="https://via.placeholder.com/1200x400?text=保险类型分布图表" alt="保险类型分布图表" style="width:100%; border:1px solid #eee; border-radius:5px;">
</div>
<div class="card">
<div class="card-header">
<h2><i class="fas fa-bell"></i> 待办事项</h2>
</div>
<table>
<thead>
<tr>
<th>事项</th>
<th>相关员工</th>
<th>截止日期</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三-医疗保险续保</td>
<td>张三 (EMP001)</td>
<td>2023-12-15</td>
<td class="status-warning">即将到期</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 处理
</button>
</td>
</tr>
<tr>
<td>李四-意外险续保</td>
<td>李四 (EMP002)</td>
<td>2023-12-20</td>
<td class="status-warning">即将到期</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 处理
</button>
</td>
</tr>
<tr>
<td>王五-体检报告审核</td>
<td>王五 (EMP003)</td>
<td>2023-11-30</td>
<td class="status-danger">已过期</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 处理
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="employee-dashboard" style="display: none;">
<div class="stat-cards">
<div class="stat-card">
<h3>我的保险</h3>
<div class="value">3</div>
<div class="trend">全部有效</div>
</div>
<div class="stat-card">
<h3>最近体检</h3>
<div class="value">2023-10-15</div>
<div class="trend">正常</div>
</div>
<div class="stat-card">
<h3>即将到期</h3>
<div class="value">1</div>
<div class="trend down">医疗保险</div>
</div>
<div class="stat-card">
<h3>健康评分</h3>
<div class="value">86</div>
<div class="trend">↑ 2% 较上月</div>
</div>
</div>
<div class="alert alert-warning">
<i class="fas fa-exclamation-triangle"></i> 您的医疗保险将于 <strong>15天</strong> 后到期请及时联系HR处理续保事宜。
</div>
<div class="alert alert-info">
<i class="fas fa-info-circle"></i> 您的下一次体检安排在 <strong>2024-04-15</strong>,请提前做好准备。
</div>
<div class="card">
<div class="card-header">
<h2><i class="fas fa-bell"></i> 我的提醒</h2>
</div>
<table>
<thead>
<tr>
<th>事项</th>
<th>日期</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>医疗保险续保</td>
<td>2023-12-15</td>
<td class="status-warning">即将到期</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-info-circle"></i> 详情
</button>
</td>
</tr>
<tr>
<td>年度体检</td>
<td>2024-04-15</td>
<td class="status-active">待安排</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-info-circle"></i> 详情
</button>
</td>
</tr>
<tr>
<td>健康问卷</td>
<td>2023-12-01</td>
<td class="status-pending">待完成</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 填写
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- 我的保险 -->
<div id="insurance" class="tab-content">
<div class="card">
<div class="card-header">
<h2><i class="fas fa-shield-alt"></i> 我的保险信息</h2>
<button class="btn btn-success" id="add-insurance-btn" style="display: none;">
<i class="fas fa-plus"></i> 添加保险
</button>
</div>
<div id="admin-insurance-view" style="display: none;">
<div class="search-bar">
<input type="text" placeholder="搜索员工姓名、工号或保单号...">
<button class="btn btn-primary">
<i class="fas fa-search"></i> 搜索
</button>
</div>
<table>
<thead>
<tr>
<th>员工姓名</th>
<th>工号</th>
<th>保险公司</th>
<th>保险类型</th>
<th>保单号</th>
<th>保费</th>
<th>保额</th>
<th>生效日期</th>
<th>到期日期</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>EMP001</td>
<td>中国人寿</td>
<td>医疗保险</td>
<td>CL12345678</td>
<td>¥8,500</td>
<td>¥500,000</td>
<td>2023-01-01</td>
<td>2023-12-31</td>
<td class="status-active">有效</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-trash"></i> 删除
</button>
</td>
</tr>
<tr>
<td>李四</td>
<td>EMP002</td>
<td>平安保险</td>
<td>意外险</td>
<td>PA87654321</td>
<td>¥1,200</td>
<td>¥1,000,000</td>
<td>2023-01-01</td>
<td>2023-12-31</td>
<td class="status-active">有效</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-trash"></i> 删除
</button>
</td>
</tr>
<tr>
<td>王五</td>
<td>EMP003</td>
<td>太平洋保险</td>
<td>养老保险</td>
<td>TP11223344</td>
<td>¥12,000</td>
<td>¥300,000</td>
<td>2022-01-01</td>
<td>2022-12-31</td>
<td class="status-expired">已过期</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-trash"></i> 删除
</button>
<button class="btn btn-warning btn-sm">
<i class="fas fa-sync-alt"></i> 续保
</button>
</td>
</tr>
</tbody>
</table>
<div class="pagination">
<a href="#">&laquo;</a>
<a href="#" class="active">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">&raquo;</a>
</div>
</div>
<div id="employee-insurance-view">
<table>
<thead>
<tr>
<th>保险公司</th>
<th>保险类型</th>
<th>保单号</th>
<th>生效日期</th>
<th>到期日期</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>中国人寿</td>
<td>医疗保险</td>
<td>CL12345678</td>
<td>2023-01-01</td>
<td>2023-12-31</td>
<td class="status-active">有效</td>
<td>
<button class="btn btn-primary btn-sm" onclick="toggleDetail('detail1')">
<i class="fas fa-eye"></i> 查看详情
</button>
</td>
</tr>
<tr>
<td colspan="7">
<div id="detail1" class="insurance-detail">
<div class="detail-row">
<div class="detail-label">保费:</div>
<div class="detail-value">¥ 8,500/年 (公司承担¥6,800个人承担¥1,700)</div>
</div>
<div class="detail-row">
<div class="detail-label">保额:</div>
<div class="detail-value">¥ 500,000</div>
</div>
<div class="detail-row">
<div class="detail-label">受益人:</div>
<div class="detail-value">张三本人</div>
</div>
<div class="detail-row">
<div class="detail-label">缴费方式:</div>
<div class="detail-value">年缴</div>
</div>
<div class="detail-row">
<div class="detail-label">备注:</div>
<div class="detail-value">包含门诊和住院医疗,无免赔额</div>
</div>
<div class="policy-benefits">
<h4>保障内容:</h4>
<div class="benefit-item">
<span>住院医疗费用报销</span>
<span class="text-success">最高¥200,000 (90%报销)</span>
</div>
<div class="benefit-item">
<span>门诊医疗费用报销</span>
<span class="text-success">最高¥50,000 (80%报销)</span>
</div>
<div class="benefit-item">
<span>重大疾病保障</span>
<span class="text-success">一次性给付¥300,000 (涵盖30种重疾)</span>
</div>
<div class="benefit-item">
<span>住院津贴</span>
<span class="text-warning">¥200/天(最高90天)</span>
</div>
<div class="benefit-item">
<span>年度体检</span>
<span class="text-success">免费基础体检1次/年</span>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>平安保险</td>
<td>意外险</td>
<td>PA87654321</td>
<td>2023-01-01</td>
<td>2023-12-31</td>
<td class="status-active">有效</td>
<td>
<button class="btn btn-primary btn-sm" onclick="toggleDetail('detail2')">
<i class="fas fa-eye"></i> 查看详情
</button>
</td>
</tr>
<tr>
<td colspan="7">
<div id="detail2" class="insurance-detail">
<div class="detail-row">
<div class="detail-label">保费:</div>
<div class="detail-value">¥ 1,200/年 (公司全额承担)</div>
</div>
<div class="detail-row">
<div class="detail-label">保额:</div>
<div class="detail-value">¥ 1,000,000</div>
</div>
<div class="detail-row">
<div class="detail-label">受益人:</div>
<div class="detail-value">张三本人、配偶、子女</div>
</div>
<div class="detail-row">
<div class="detail-label">保障地区:</div>
<div class="detail-value">全球范围(战争地区除外)</div>
</div>
<div class="policy-benefits">
<h4>保障内容:</h4>
<div class="benefit-item">
<span>意外身故/全残</span>
<span class="text-success">¥1,000,000</span>
</div>
<div class="benefit-item">
<span>意外医疗费用</span>
<span class="text-success">¥50,000 (100%报销)</span>
</div>
<div class="benefit-item">
<span>意外住院津贴</span>
<span class="text-warning">¥150/天(最高180天)</span>
</div>
<div class="benefit-item">
<span>公共交通意外</span>
<span class="text-success">额外¥500,000</span>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>泰康保险</td>
<td>养老保险</td>
<td>TK33445566</td>
<td>2022-01-01</td>
<td>2042-12-31</td>
<td class="status-active">有效</td>
<td>
<button class="btn btn-primary btn-sm" onclick="toggleDetail('detail3')">
<i class="fas fa-eye"></i> 查看详情
</button>
</td>
</tr>
<tr>
<td colspan="7">
<div id="detail3" class="insurance-detail">
<div class="detail-row">
<div class="detail-label">保费:</div>
<div class="detail-value">¥ 12,000/年 (公司承担¥6,000个人承担¥6,000)</div>
</div>
<div class="detail-row">
<div class="detail-label">保额:</div>
<div class="detail-value">退休后每月¥3,000 (保证领取20年)</div>
</div>
<div class="detail-row">
<div class="detail-label">受益人:</div>
<div class="detail-value">张三本人</div>
</div>
<div class="detail-row">
<div class="detail-label">缴费期限:</div>
<div class="detail-value">20年 (已缴1年)</div>
</div>
<div class="detail-row">
<div class="detail-label">预计退休金:</div>
<div class="detail-value text-success">¥3,000/月 (按当前标准)</div>
</div>
<div class="policy-benefits">
<h4>保障内容:</h4>
<div class="benefit-item">
<span>养老金</span>
<span class="text-success">60岁起每月领取¥3,000</span>
</div>
<div class="benefit-item">
<span>身故保障</span>
<span class="text-success">缴费期内身故返还已缴保费120%</span>
</div>
<div class="benefit-item">
<span>全残保障</span>
<span class="text-success">缴费期内全残免缴后续保费</span>
</div>
<div class="benefit-item">
<span>分红权益</span>
<span class="text-warning">参与公司盈利分配(浮动)</span>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- 健康档案 -->
<div id="health" class="tab-content">
<div class="card">
<div class="card-header">
<h2><i class="fas fa-heartbeat"></i> 健康档案</h2>
<button class="btn btn-success" id="add-health-btn">
<i class="fas fa-plus"></i> 添加记录
</button>
</div>
<div id="admin-health-view" style="display: none;">
<div class="search-bar">
<input type="text" placeholder="搜索员工姓名或工号...">
<button class="btn btn-primary">
<i class="fas fa-search"></i> 搜索
</button>
</div>
<table>
<thead>
<tr>
<th>员工姓名</th>
<th>工号</th>
<th>最近体检日期</th>
<th>体检医院</th>
<th>体检结果</th>
<th>下次体检日期</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>EMP001</td>
<td>2023-10-15</td>
<td>北京协和医院</td>
<td><span class="badge badge-success">正常</span></td>
<td>2024-10-15</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-eye"></i> 查看
</button>
<button class="btn btn-info btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
</td>
</tr>
<tr>
<td>李四</td>
<td>EMP002</td>
<td>2023-09-20</td>
<td>上海瑞金医院</td>
<td><span class="badge badge-warning">轻度异常</span></td>
<td>2024-03-20</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-eye"></i> 查看
</button>
<button class="btn btn-info btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
</td>
</tr>
<tr>
<td>王五</td>
<td>EMP003</td>
<td>2023-08-10</td>
<td>广州中山医院</td>
<td><span class="badge badge-danger">异常</span></td>
<td>2023-11-10</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-eye"></i> 查看
</button>
<button class="btn btn-info btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div id="employee-health-view">
<div class="health-record">
<div class="health-record-header">
<div class="health-record-title">
2023年度体检报告
<span class="badge badge-success">正常</span>
</div>
<div class="health-record-date">
体检日期: 2023-10-15 | 有效期至: 2024-10-15
</div>
</div>
<div class="health-record-content">
<div class="health-record-section">
<h4><i class="fas fa-hospital"></i> 基本信息</h4>
<div class="health-record-item">
<div class="health-record-label">体检医院:</div>
<div class="health-record-value">北京协和医院</div>
</div>
<div class="health-record-item">
<div class="health-record-label">体检套餐:</div>
<div class="health-record-value">高级管理人员套餐</div>
</div>
<div class="health-record-item">
<div class="health-record-label">总评:</div>
<div class="health-record-value">健康状况良好,无明显异常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">建议:</div>
<div class="health-record-value">保持规律作息,适量运动,控制饮食</div>
</div>
</div>
<div class="health-record-section">
<h4><i class="fas fa-flask"></i> 检验结果</h4>
<div class="health-record-item">
<div class="health-record-label">血常规:</div>
<div class="health-record-value">正常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">尿常规:</div>
<div class="health-record-value">正常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">肝功能:</div>
<div class="health-record-value">正常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">肾功能:</div>
<div class="health-record-value">正常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">血脂:</div>
<div class="health-record-value">
总胆固醇 5.2 mmol/L <span class="badge badge-warning">偏高</span>
</div>
</div>
<div class="health-record-item">
<div class="health-record-label">血糖:</div>
<div class="health-record-value">5.1 mmol/L (正常)</div>
</div>
</div>
<div class="health-record-section">
<h4><i class="fas fa-procedures"></i> 检查结果</h4>
<div class="health-record-item">
<div class="health-record-label">心电图:</div>
<div class="health-record-value">窦性心律,正常心电图</div>
</div>
<div class="health-record-item">
<div class="health-record-label">胸部X光:</div>
<div class="health-record-value">心肺膈未见明显异常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">腹部B超:</div>
<div class="health-record-value">肝胆胰脾肾未见明显异常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">眼科检查:</div>
<div class="health-record-value">
视力: 左眼1.0右眼1.2
<span class="badge badge-warning">轻度视疲劳</span>
</div>
</div>
</div>
</div>
</div>
<div class="health-record">
<div class="health-record-header">
<div class="health-record-title">
2022年度体检报告
<span class="badge badge-success">正常</span>
</div>
<div class="health-record-date">
体检日期: 2022-10-20 | 有效期至: 2023-10-20
</div>
</div>
<div class="health-record-content">
<div class="health-record-section">
<h4><i class="fas fa-hospital"></i> 基本信息</h4>
<div class="health-record-item">
<div class="health-record-label">体检医院:</div>
<div class="health-record-value">北京协和医院</div>
</div>
<div class="health-record-item">
<div class="health-record-label">体检套餐:</div>
<div class="health-record-value">高级管理人员套餐</div>
</div>
<div class="health-record-item">
<div class="health-record-label">总评:</div>
<div class="health-record-value">健康状况良好</div>
</div>
<div class="health-record-item">
<div class="health-record-label">建议:</div>
<div class="health-record-value">注意控制体重,减少高脂饮食</div>
</div>
</div>
<div class="health-record-section">
<h4><i class="fas fa-flask"></i> 检验结果</h4>
<div class="health-record-item">
<div class="health-record-label">血常规:</div>
<div class="health-record-value">正常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">尿常规:</div>
<div class="health-record-value">正常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">肝功能:</div>
<div class="health-record-value">正常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">肾功能:</div>
<div class="health-record-value">正常</div>
</div>
<div class="health-record-item">
<div class="health-record-label">血脂:</div>
<div class="health-record-value">
总胆固醇 5.0 mmol/L <span class="badge badge-warning">偏高</span>
</div>
</div>
<div class="health-record-item">
<div class="health-record-label">血糖:</div>
<div class="health-record-value">5.0 mmol/L (正常)</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 保单文件 -->
<div id="documents" class="tab-content">
<div class="card">
<div class="card-header">
<h2><i class="fas fa-file-alt"></i> 保单文件</h2>
<button class="btn btn-success" id="upload-document-btn">
<i class="fas fa-upload"></i> 上传文件
</button>
</div>
<div id="admin-documents-view" style="display: none;">
<div class="search-bar">
<input type="text" placeholder="搜索员工姓名、工号或文件名...">
<button class="btn btn-primary">
<i class="fas fa-search"></i> 搜索
</button>
</div>
<table>
<thead>
<tr>
<th>员工姓名</th>
<th>工号</th>
<th>文件名</th>
<th>文件类型</th>
<th>上传日期</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>EMP001</td>
<td>医疗保险合同.pdf</td>
<td>PDF文档</td>
<td>2023-01-05</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-eye"></i> 查看
</button>
<button class="btn btn-success btn-sm">
<i class="fas fa-download"></i> 下载
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-trash"></i> 删除
</button>
</td>
</tr>
<tr>
<td>李四</td>
<td>EMP002</td>
<td>意外险合同.pdf</td>
<td>PDF文档</td>
<td>2023-01-05</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-eye"></i> 查看
</button>
<button class="btn btn-success btn-sm">
<i class="fas fa-download"></i> 下载
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-trash"></i> 删除
</button>
</td>
</tr>
<tr>
<td>王五</td>
<td>EMP003</td>
<td>养老保险合同.pdf</td>
<td>PDF文档</td>
<td>2022-01-05</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-eye"></i> 查看
</button>
<button class="btn btn-success btn-sm">
<i class="fas fa-download"></i> 下载
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-trash"></i> 删除
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div id="employee-documents-view">
<ul class="file-list">
<li class="file-item">
<div>
<span class="file-icon">📄</span>
<span>中国人寿-医疗保险-保单.pdf</span>
<small class="text-muted">上传于 2023-01-05</small>
</div>
<div>
<button class="btn btn-primary btn-sm">
<i class="fas fa-eye"></i> 查看
</button>
<button class="btn btn-success btn-sm">
<i class="fas fa-download"></i> 下载
</button>
</div>
</li>
<li class="file-item">
<div>
<span class="file-icon">📄</span>
<span>平安保险-意外险-保单.pdf</span>
<small class="text-muted">上传于 2023-01-05</small>
</div>
<div>
<button class="btn btn-primary btn-sm">
<i class="fas fa-eye"></i> 查看
</button>
<button class="btn btn-success btn-sm">
<i class="fas fa-download"></i> 下载
</button>
</div>
</li>
<li class="file-item">
<div>
<span class="file-icon">📄</span>
<span>泰康保险-养老保险-保单.pdf</span>
<small class="text-muted">上传于 2022-01-05</small>
</div>
<div>
<button class="btn btn-primary btn-sm">
<i class="fas fa-eye"></i> 查看
</button>
<button class="btn btn-success btn-sm">
<i class="fas fa-download"></i> 下载
</button>
</div>
</li>
<li class="file-item">
<div>
<span class="file-icon">📄</span>
<span>保险条款说明.docx</span>
<small class="text-muted">上传于 2022-01-10</small>
</div>
<div>
<button class="btn btn-primary btn-sm">
<i class="fas fa-eye"></i> 查看
</button>
<button class="btn btn-success btn-sm">
<i class="fas fa-download"></i> 下载
</button>
</div>
</li>
</ul>
</div>
</div>
</div>
<!-- 个人信息 -->
<div id="profile" class="tab-content">
<div class="card">
<div class="card-header">
<h2><i class="fas fa-user"></i> 个人信息</h2>
<button class="btn btn-primary" id="edit-profile-btn">
<i class="fas fa-edit"></i> 编辑信息
</button>
</div>
<div class="profile-section">
<div class="profile-avatar">
<img src="https://randomuser.me/api/portraits/men/32.jpg" alt="员工头像">
</div>
<div class="profile-info">
<div class="profile-name" id="profile-name">张三</div>
<div class="profile-meta">
<span id="profile-empid">EMP001</span> |
<span id="profile-dept">技术部</span> |
<span id="profile-position">高级软件工程师</span>
</div>
<div class="profile-actions">
<button class="btn btn-primary btn-sm">
<i class="fas fa-camera"></i> 更换头像
</button>
</div>
</div>
</div>
<table class="info-table">
<tr>
<td>员工编号</td>
<td id="employee-id">EMP001</td>
</tr>
<tr>
<td>部门</td>
<td id="department">技术部</td>
</tr>
<tr>
<td>职位</td>
<td id="position">高级软件工程师</td>
</tr>
<tr>
<td>入职日期</td>
<td id="hire-date">2020-05-15</td>
</tr>
<tr>
<td>联系电话</td>
<td id="phone">13800138001</td>
</tr>
<tr>
<td>电子邮箱</td>
<td id="email">zhangsan@company.com</td>
</tr>
<tr>
<td>身份证号</td>
<td id="id-card">**************1234</td>
</tr>
<tr>
<td>联系地址</td>
<td id="address">北京市海淀区中关村软件园1号楼</td>
</tr>
<tr>
<td>紧急联系人</td>
<td id="emergency-contact">李四 (配偶) 13800138002</td>
</tr>
</table>
</div>
</div>
<!-- 修改密码 -->
<div id="password" class="tab-content">
<div class="card">
<div class="card-header">
<h2><i class="fas fa-key"></i> 修改密码</h2>
</div>
<form id="change-password-form">
<div class="form-group">
<label for="current-password">当前密码</label>
<input type="password" id="current-password" placeholder="请输入当前密码" required>
</div>
<div class="form-group">
<label for="new-password">新密码</label>
<input type="password" id="new-password" placeholder="请输入新密码" required>
<small class="text-muted">密码长度至少8位包含字母和数字</small>
</div>
<div class="form-group">
<label for="confirm-password">确认新密码</label>
<input type="password" id="confirm-password" placeholder="请再次输入新密码" required>
</div>
<div class="form-actions">
<button type="reset" class="btn btn-danger">
<i class="fas fa-times"></i> 重置
</button>
<button type="submit" class="btn btn-success">
<i class="fas fa-check"></i> 保存
</button>
</div>
</form>
</div>
</div>
<!-- 系统设置 (仅管理员可见) -->
<div id="settings" class="tab-content">
<div class="card">
<div class="tabs">
<div class="tab active" onclick="switchSettingsTab('users')">用户管理</div>
<div class="tab" onclick="switchSettingsTab('companies')">保险公司管理</div>
<div class="tab" onclick="switchSettingsTab('types')">保险类型管理</div>
<div class="tab" onclick="switchSettingsTab('system')">系统配置</div>
</div>
<div id="settings-users" class="settings-tab-content active">
<div class="card-header">
<h2><i class="fas fa-users"></i> 用户列表</h2>
<button class="btn btn-success" onclick="showAddUserModal()">
<i class="fas fa-plus"></i> 添加用户
</button>
</div>
<table>
<thead>
<tr>
<th>用户名</th>
<th>姓名</th>
<th>角色</th>
<th>部门</th>
<th>工号</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>admin</td>
<td>系统管理员</td>
<td>管理员</td>
<td>人事部</td>
<td>ADM001</td>
<td>激活</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-ban"></i> 禁用
</button>
</td>
</tr>
<tr>
<td>zhangsan</td>
<td>张三</td>
<td>员工</td>
<td>技术部</td>
<td>EMP001</td>
<td>激活</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-ban"></i> 禁用
</button>
</td>
</tr>
<tr>
<td>lisi</td>
<td>李四</td>
<td>员工</td>
<td>市场部</td>
<td>EMP002</td>
<td>激活</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-ban"></i> 禁用
</button>
</td>
</tr>
<tr>
<td>wangwu</td>
<td>王五</td>
<td>员工</td>
<td>财务部</td>
<td>EMP003</td>
<td>已禁用</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-success btn-sm">
<i class="fas fa-check"></i> 激活
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div id="settings-companies" class="settings-tab-content">
<div class="card-header">
<h2><i class="fas fa-building"></i> 保险公司管理</h2>
<button class="btn btn-success" onclick="showAddCompanyModal()">
<i class="fas fa-plus"></i> 添加保险公司
</button>
</div>
<table>
<thead>
<tr>
<th>保险公司名称</th>
<th>联系人</th>
<th>联系电话</th>
<th>合作状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>中国人寿</td>
<td>张经理</td>
<td>13800138001</td>
<td>合作中</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-times"></i> 终止合作
</button>
</td>
</tr>
<tr>
<td>平安保险</td>
<td>李经理</td>
<td>13800138002</td>
<td>合作中</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-times"></i> 终止合作
</button>
</td>
</tr>
<tr>
<td>太平洋保险</td>
<td>王经理</td>
<td>13800138003</td>
<td>合作中</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-times"></i> 终止合作
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div id="settings-types" class="settings-tab-content">
<div class="card-header">
<h2><i class="fas fa-list-alt"></i> 保险类型管理</h2>
<button class="btn btn-success" onclick="showAddInsuranceTypeModal()">
<i class="fas fa-plus"></i> 添加保险类型
</button>
</div>
<table>
<thead>
<tr>
<th>保险类型</th>
<th>描述</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>医疗保险</td>
<td>员工医疗费用报销</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-trash"></i> 删除
</button>
</td>
</tr>
<tr>
<td>意外险</td>
<td>员工意外伤害保障</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-trash"></i> 删除
</button>
</td>
</tr>
<tr>
<td>养老保险</td>
<td>员工退休养老保障</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-trash"></i> 删除
</button>
</td>
</tr>
<tr>
<td>重大疾病险</td>
<td>员工重大疾病保障</td>
<td>
<button class="btn btn-primary btn-sm">
<i class="fas fa-edit"></i> 编辑
</button>
<button class="btn btn-danger btn-sm">
<i class="fas fa-trash"></i> 删除
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div id="settings-system" class="settings-tab-content">
<div class="card-header">
<h2><i class="fas fa-cog"></i> 系统配置</h2>
</div>
<form>
<div class="form-group">
<label for="system-name">系统名称</label>
<input type="text" id="system-name" value="员工保险与健康管理系统">
</div>
<div class="form-group">
<label for="company-name">公司名称</label>
<input type="text" id="company-name" value="某某科技有限公司">
</div>
<div class="form-group">
<label for="expire-warning">保险到期提前提醒天数</label>
<input type="number" id="expire-warning" value="30">
</div>
<div class="form-group">
<label for="health-check-interval">体检间隔(月)</label>
<input type="number" id="health-check-interval" value="12">
</div>
<div class="form-group">
<label for="backup-frequency">数据备份频率</label>
<select id="backup-frequency">
<option value="daily">每天</option>
<option value="weekly" selected>每周</option>
<option value="monthly">每月</option>
</select>
</div>
<div class="form-actions">
<button type="reset" class="btn btn-danger">
<i class="fas fa-times"></i> 重置
</button>
<button type="submit" class="btn btn-success">
<i class="fas fa-check"></i> 保存配置
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- 添加保险模态框 -->
<div id="addInsuranceModal" class="modal">
<div class="modal-content">
<span class="close" onclick="hideModal('addInsuranceModal')">&times;</span>
<h2><i class="fas fa-plus-circle"></i> 添加新保险</h2>
<form>
<div class="form-group">
<label for="insurance-employee">员工</label>
<select id="insurance-employee">
<option value="">请选择员工</option>
<option value="EMP001">张三 (EMP001)</option>
<option value="EMP002">李四 (EMP002)</option>
<option value="EMP003">王五 (EMP003)</option>
<option value="EMP004">赵六 (EMP004)</option>
</select>
</div>
<div class="form-group">
<label for="insurance-company">保险公司</label>
<select id="insurance-company">
<option value="">请选择保险公司</option>
<option value="中国人寿">中国人寿</option>
<option value="平安保险">平安保险</option>
<option value="太平洋保险">太平洋保险</option>
<option value="泰康保险">泰康保险</option>
<option value="其他">其他</option>
</select>
</div>
<div class="form-group">
<label for="insurance-type">保险类型</label>
<select id="insurance-type">
<option value="">请选择保险类型</option>
<option value="医疗保险">医疗保险</option>
<option value="意外险">意外险</option>
<option value="养老保险">养老保险</option>
<option value="重大疾病险">重大疾病险</option>
<option value="雇主责任险">雇主责任险</option>
<option value="其他">其他</option>
</select>
</div>
<div class="form-group">
<label for="policy-number">保单号</label>
<input type="text" id="policy-number" placeholder="请输入保单号">
</div>
<div class="form-group">
<label for="start-date">生效日期</label>
<input type="date" id="start-date">
</div>
<div class="form-group">
<label for="end-date">到期日期</label>
<input type="date" id="end-date">
</div>
<div class="form-group">
<label for="premium">保费</label>
<input type="number" id="premium" placeholder="请输入保费金额">
</div>
<div class="form-group">
<label for="coverage">保额</label>
<input type="number" id="coverage" placeholder="请输入保额">
</div>
<div class="form-group">
<label for="beneficiary">受益人</label>
<input type="text" id="beneficiary" placeholder="请输入受益人">
</div>
<div class="form-group">
<label for="insurance-notes">备注</label>
<textarea id="insurance-notes" rows="3" placeholder="请输入备注信息"></textarea>
</div>
<div class="form-actions">
<button type="button" class="btn btn-danger" onclick="hideModal('addInsuranceModal')">
<i class="fas fa-times"></i> 取消
</button>
<button type="submit" class="btn btn-success">
<i class="fas fa-check"></i> 保存
</button>
</div>
</form>
</div>
</div>
<!-- 添加上传文件模态框 -->
<div id="uploadDocumentModal" class="modal">
<div class="modal-content">
<span class="close" onclick="hideModal('uploadDocumentModal')">&times;</span>
<h2><i class="fas fa-upload"></i> 上传保单文件</h2>
<form>
<div class="form-group">
<label for="document-employee">员工</label>
<select id="document-employee">
<option value="">请选择员工</option>
<option value="EMP001">张三 (EMP001)</option>
<option value="EMP002">李四 (EMP002)</option>
<option value="EMP003">王五 (EMP003)</option>
<option value="EMP004">赵六 (EMP004)</option>
</select>
</div>
<div class="form-group">
<label for="document-type">文件类型</label>
<select id="document-type">
<option value="">请选择文件类型</option>
<option value="保险合同">保险合同</option>
<option value="保险凭证">保险凭证</option>
<option value="理赔材料">理赔材料</option>
<option value="体检报告">体检报告</option>
<option value="其他">其他</option>
</select>
</div>
<div class="form-group">
<label for="file-upload">选择文件</label>
<input type="file" id="file-upload">
</div>
<div class="form-group">
<label for="document-description">文件描述</label>
<textarea id="document-description" rows="3" placeholder="请输入文件描述"></textarea>
</div>
<div class="form-actions">
<button type="button" class="btn btn-danger" onclick="hideModal('uploadDocumentModal')">
<i class="fas fa-times"></i> 取消
</button>
<button type="submit" class="btn btn-success">
<i class="fas fa-upload"></i> 上传
</button>
</div>
</form>
</div>
</div>
<!-- 添加健康记录模态框 -->
<div id="addHealthRecordModal" class="modal">
<div class="modal-content">
<span class="close" onclick="hideModal('addHealthRecordModal')">&times;</span>
<h2><i class="fas fa-plus-circle"></i> 添加健康记录</h2>
<form>
<div class="form-group">
<label for="health-employee">员工</label>
<select id="health-employee">
<option value="">请选择员工</option>
<option value="EMP001">张三 (EMP001)</option>
<option value="EMP002">李四 (EMP002)</option>
<option value="EMP003">王五 (EMP003)</option>
<option value="EMP004">赵六 (EMP004)</option>
</select>
</div>
<div class="form-group">
<label for="checkup-date">体检日期</label>
<input type="date" id="checkup-date">
</div>
<div class="form-group">
<label for="hospital">体检医院</label>
<input type="text" id="hospital" placeholder="请输入体检医院">
</div>
<div class="form-group">
<label for="checkup-type">体检类型</label>
<select id="checkup-type">
<option value="常规体检">常规体检</option>
<option value="入职体检">入职体检</option>
<option value="年度体检">年度体检</option>
<option value="专项体检">专项体检</option>
</select>
</div>
<div class="form-group">
<label for="checkup-result">体检结果</label>
<select id="checkup-result">
<option value="正常">正常</option>
<option value="轻度异常">轻度异常</option>
<option value="异常">异常</option>
</select>
</div>
<div class="form-group">
<label for="next-checkup">下次体检日期</label>
<input type="date" id="next-checkup">
</div>
<div class="form-group">
<label for="health-summary">体检总结</label>
<textarea id="health-summary" rows="3" placeholder="请输入体检总结"></textarea>
</div>
<div class="form-group">
<label for="health-suggestion">医生建议</label>
<textarea id="health-suggestion" rows="3" placeholder="请输入医生建议"></textarea>
</div>
<div class="form-group">
<label for="health-report">体检报告</label>
<input type="file" id="health-report">
</div>
<div class="form-actions">
<button type="button" class="btn btn-danger" onclick="hideModal('addHealthRecordModal')">
<i class="fas fa-times"></i> 取消
</button>
<button type="submit" class="btn btn-success">
<i class="fas fa-check"></i> 保存
</button>
</div>
</form>
</div>
</div>
<!-- 添加用户模态框 -->
<div id="addUserModal" class="modal">
<div class="modal-content">
<span class="close" onclick="hideModal('addUserModal')">&times;</span>
<h2><i class="fas fa-user-plus"></i> 添加新用户</h2>
<form>
<div class="form-group">
<label for="username">用户名</label>
<input type="text" id="username" placeholder="请输入用户名">
</div>
<div class="form-group">
<label for="fullname">姓名</label>
<input type="text" id="fullname" placeholder="请输入姓名">
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" id="password" placeholder="请输入密码">
</div>
<div class="form-group">
<label for="confirm-password">确认密码</label>
<input type="password" id="confirm-password" placeholder="请再次输入密码">
</div>
<div class="form-group">
<label for="role">角色</label>
<select id="role">
<option value="employee">员工</option>
<option value="admin">管理员</option>
</select>
</div>
<div class="form-group">
<label for="department">部门</label>
<select id="department">
<option value="hr">人事部</option>
<option value="tech">技术部</option>
<option value="market">市场部</option>
<option value="finance">财务部</option>
</select>
</div>
<div class="form-group">
<label for="employee-id">工号</label>
<input type="text" id="employee-id" placeholder="请输入工号">
</div>
<div class="form-actions">
<button type="button" class="btn btn-danger" onclick="hideModal('addUserModal')">
<i class="fas fa-times"></i> 取消
</button>
<button type="submit" class="btn btn-success">
<i class="fas fa-check"></i> 保存
</button>
</div>
</form>
</div>
</div>
<!-- 添加保险公司模态框 -->
<div id="addCompanyModal" class="modal">
<div class="modal-content">
<span class="close" onclick="hideModal('addCompanyModal')">&times;</span>
<h2><i class="fas fa-building"></i> 添加保险公司</h2>
<form>
<div class="form-group">
<label for="company-name">保险公司名称</label>
<input type="text" id="company-name" placeholder="请输入保险公司名称">
</div>
<div class="form-group">
<label for="contact-person">联系人</label>
<input type="text" id="contact-person" placeholder="请输入联系人">
</div>
<div class="form-group">
<label for="contact-phone">联系电话</label>
<input type="text" id="contact-phone" placeholder="请输入联系电话">
</div>
<div class="form-group">
<label for="company-email">电子邮箱</label>
<input type="email" id="company-email" placeholder="请输入电子邮箱">
</div>
<div class="form-group">
<label for="company-address">公司地址</label>
<input type="text" id="company-address" placeholder="请输入公司地址">
</div>
<div class="form-group">
<label for="cooperation-date">合作开始日期</label>
<input type="date" id="cooperation-date">
</div>
<div class="form-actions">
<button type="button" class="btn btn-danger" onclick="hideModal('addCompanyModal')">
<i class="fas fa-times"></i> 取消
</button>
<button type="submit" class="btn btn-success">
<i class="fas fa-check"></i> 保存
</button>
</div>
</form>
</div>
</div>
<!-- 添加保险类型模态框 -->
<div id="addInsuranceTypeModal" class="modal">
<div class="modal-content">
<span class="close" onclick="hideModal('addInsuranceTypeModal')">&times;</span>
<h2><i class="fas fa-list-alt"></i> 添加保险类型</h2>
<form>
<div class="form-group">
<label for="insurance-type-name">保险类型</label>
<input type="text" id="insurance-type-name" placeholder="请输入保险类型">
</div>
<div class="form-group">
<label for="type-description">描述</label>
<textarea id="type-description" rows="3" placeholder="请输入保险类型描述"></textarea>
</div>
<div class="form-group">
<label for="coverage-range">保障范围</label>
<textarea id="coverage-range" rows="3" placeholder="请输入保障范围"></textarea>
</div>
<div class="form-actions">
<button type="button" class="btn btn-danger" onclick="hideModal('addInsuranceTypeModal')">
<i class="fas fa-times"></i> 取消
</button>
<button type="submit" class="btn btn-success">
<i class="fas fa-check"></i> 保存
</button>
</div>
</form>
</div>
</div>
<script>
// 当前用户角色 (模拟数据,实际应用中应从登录信息获取)
let currentUserRole = 'employee'; // 'admin' 或 'employee'
let currentUserId = 'EMP001';
let currentUserName = '张三';
// 初始化页面
document.addEventListener('DOMContentLoaded', function() {
// 根据用户角色初始化界面
initUserInterface();
// 绑定侧边栏菜单点击事件
bindSidebarMenuEvents();
// 绑定其他事件
bindEvents();
});
// 根据用户角色初始化界面
function initUserInterface() {
const adminMenu = document.getElementById('admin-menu');
const employeeMenu = document.getElementById('employee-menu');
const adminDashboard = document.getElementById('admin-dashboard');
const employeeDashboard = document.getElementById('employee-dashboard');
const adminInsuranceView = document.getElementById('admin-insurance-view');
const employeeInsuranceView = document.getElementById('employee-insurance-view');
const adminHealthView = document.getElementById('admin-health-view');
const employeeHealthView = document.getElementById('employee-health-view');
const adminDocumentsView = document.getElementById('admin-documents-view');
const employeeDocumentsView = document.getElementById('employee-documents-view');
const settingsTab = document.getElementById('settings');
const addInsuranceBtn = document.getElementById('add-insurance-btn');
const addHealthBtn = document.getElementById('add-health-btn');
const uploadDocumentBtn = document.getElementById('upload-document-btn');
const editProfileBtn = document.getElementById('edit-profile-btn');
const currentUsername = document.getElementById('current-username');
if (currentUserRole === 'admin') {
// 管理员视图
adminMenu.style.display = 'block';
employeeMenu.style.display = 'none';
adminDashboard.style.display = 'block';
employeeDashboard.style.display = 'none';
adminInsuranceView.style.display = 'block';
employeeInsuranceView.style.display = 'none';
adminHealthView.style.display = 'block';
employeeHealthView.style.display = 'none';
adminDocumentsView.style.display = 'block';
employeeDocumentsView.style.display = 'none';
settingsTab.style.display = 'block';
addInsuranceBtn.style.display = 'inline-block';
addHealthBtn.style.display = 'inline-block';
uploadDocumentBtn.style.display = 'inline-block';
editProfileBtn.style.display = 'inline-block';
currentUsername.textContent = '系统管理员';
} else {
// 员工视图
adminMenu.style.display = 'none';
employeeMenu.style.display = 'block';
adminDashboard.style.display = 'none';
employeeDashboard.style.display = 'block';
adminInsuranceView.style.display = 'none';
employeeInsuranceView.style.display = 'block';
adminHealthView.style.display = 'none';
employeeHealthView.style.display = 'block';
adminDocumentsView.style.display = 'none';
employeeDocumentsView.style.display = 'block';
settingsTab.style.display = 'none';
addInsuranceBtn.style.display = 'none';
addHealthBtn.style.display = 'none';
uploadDocumentBtn.style.display = 'none';
editProfileBtn.style.display = 'inline-block';
currentUsername.textContent = currentUserName + ' (' + currentUserId + ')';
}
}
// 绑定侧边栏菜单点击事件
function bindSidebarMenuEvents() {
const menuItems = document.querySelectorAll('.sidebar-menu li');
menuItems.forEach(item => {
item.addEventListener('click', function() {
// 移除所有菜单项的active类
menuItems.forEach(li => li.classList.remove('active'));
// 给当前点击的菜单项添加active类
this.classList.add('active');
// 获取目标内容区域ID
const targetId = this.getAttribute('data-target');
// 隐藏所有内容区域
document.querySelectorAll('.tab-content').forEach(content => {
content.classList.remove('active');
});
// 显示目标内容区域
document.getElementById(targetId).classList.add('active');
});
});
}
// 绑定其他事件
function bindEvents() {
// 添加保险按钮点击事件
document.getElementById('add-insurance-btn')?.addEventListener('click', function() {
showModal('addInsuranceModal');
});
// 上传文件按钮点击事件
document.getElementById('upload-document-btn')?.addEventListener('click', function() {
showModal('uploadDocumentModal');
});
// 添加健康记录按钮点击事件
document.getElementById('add-health-btn')?.addEventListener('click', function() {
showModal('addHealthRecordModal');
});
// 修改密码表单提交事件
document.getElementById('change-password-form')?.addEventListener('submit', function(e) {
e.preventDefault();
alert('密码修改成功!');
this.reset();
});
// 点击模态框外部关闭模态框
window.addEventListener('click', function(event) {
if (event.target.classList.contains('modal')) {
event.target.style.display = 'none';
}
});
}
// 显示模态框
function showModal(modalId) {
document.getElementById(modalId).style.display = 'block';
}
// 隐藏模态框
function hideModal(modalId) {
document.getElementById(modalId).style.display = 'none';
}
// 切换保险详情显示
function toggleDetail(detailId) {
const detailElement = document.getElementById(detailId);
if (detailElement.style.display === 'block') {
detailElement.style.display = 'none';
} else {
// 先关闭所有已打开的详情
document.querySelectorAll('.insurance-detail').forEach(detail => {
detail.style.display = 'none';
});
// 再打开当前点击的详情
detailElement.style.display = 'block';
}
}
// 切换系统设置标签页
function switchSettingsTab(tabId) {
// 隐藏所有标签内容
document.querySelectorAll('.settings-tab-content').forEach(content => {
content.classList.remove('active');
});
// 取消所有标签的活动状态
document.querySelectorAll('#settings .tab').forEach(tab => {
tab.classList.remove('active');
});
// 显示选中的标签内容
document.getElementById('settings-' + tabId).classList.add('active');
// 设置选中标签的活动状态
event.currentTarget.classList.add('active');
}
// 显示添加用户模态框
function showAddUserModal() {
showModal('addUserModal');
}
// 显示添加保险公司模态框
function showAddCompanyModal() {
showModal('addCompanyModal');
}
// 显示添加保险类型模态框
function showAddInsuranceTypeModal() {
showModal('addInsuranceTypeModal');
}
// 切换侧边栏显示状态
function toggleSidebar() {
const sidebar = document.getElementById('sidebar');
sidebar.classList.toggle('expanded');
const mainContent = document.getElementById('main-content');
if (sidebar.classList.contains('expanded')) {
mainContent.style.marginLeft = '220px';
} else {
mainContent.style.marginLeft = '60px';
}
}
// 退出登录
function logout() {
if (confirm('确定要退出系统吗?')) {
window.location.href = 'login.html';
}
}
</script>
</body>
</html>