历史对话

main
wangyunfei 1 month ago
parent 02aa1993f7
commit 2301da2538

@ -1,624 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>飞利信人力管理系统</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/5.5.0/echarts.min.js"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.font-pacifico {
font-family: 'Pacifico', serif;
}
.icon-center {
display: flex;
justify-content: center;
align-items: center;
}
.scroll-container {
overflow: hidden;
white-space: nowrap;
}
.scroll-content {
display: inline-block;
animation: scroll 20s linear infinite;
}
@keyframes scroll {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-50%);
}
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type="number"] {
-moz-appearance: textfield;
}
</style>
</head>
<body class="min-h-[1024px] bg-secondary flex flex-col">
<!-- 顶部导航栏 -->
<!-- <header class="w-full bg-primary shadow-sm">
<div class="container mx-auto px-4 h-[60px] flex items-center justify-between">
<div class="flex items-center">
<div class="text-xs bg-white text-primary px-3 py-1 rounded-button">人力</div>
</div>
<nav class="flex-1 px-8">
<ul class="flex space-x-4 whitespace-nowrap">
<li><a href="#"
class="text-xs text-white hover:bg-blue-600 px-3 py-1 rounded-button font-medium">多维统计</a>
</li>
<li><a href="#" class="text-xs text-white bg-blue-600 px-3 py-1 rounded-button font-medium">人员管理</a>
</li>
<li><a href="#"
class="text-xs text-white hover:bg-blue-600 px-3 py-1 rounded-button font-medium">组织管理</a>
</li>
<li><a href="#"
class="text-xs text-white hover:bg-blue-600 px-3 py-1 rounded-button font-medium">考勤管理</a>
</li>
<li><a href="#"
class="text-xs text-white hover:bg-blue-600 px-3 py-1 rounded-button font-medium">绩效管理</a>
</li>
<li><a href="#"
class="text-xs text-white hover:bg-blue-600 px-3 py-1 rounded-button font-medium">薪酬管理</a>
</li>
<li><a href="#"
class="text-xs text-white hover:bg-blue-600 px-3 py-1 rounded-button font-medium">知识库</a>
</li>
<li><a href="#"
class="text-xs text-white hover:bg-blue-600 px-3 py-1 rounded-button font-medium">后台管理</a>
</li>
</ul>
</nav>
<div class="flex items-center space-x-4">
<div class="relative">
<input type="text" placeholder="搜索..."
class="pl-10 pr-4 py-2 text-sm bg-white rounded-button w-32 focus:outline-none focus:ring-2 focus:ring-white focus:border-transparent">
<i class="fas fa-search absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-500"></i>
</div>
<div class="relative group">
<div
class="w-8 h-8 rounded-full bg-white text-primary flex items-center justify-center cursor-pointer">
<i class="fas fa-user"></i>
</div>
<div
class="absolute right-0 mt-2 w-48 bg-white rounded-md shadow-lg py-1 z-50 hidden group-hover:block">
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">个人中心</a>
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">系统设置</a>
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">退出登录</a>
</div>
</div>
<button
class="bg-white text-primary px-3 py-1 rounded-button flex items-center space-x-2 hover:bg-gray-100 transition text-sm">
<i class="fas fa-robot"></i>
<span>AI助手</span>
</button>
</div>
</div>
</header> -->
<!-- 公告栏 -->
<div class="w-full bg-blue-50 py-1">
<div class="container mx-auto px-4">
<div class="flex items-center text-xs text-gray-700">
<span class="font-medium text-primary mr-3">公告:</span>
<div class="scroll-container w-full">
<div class="scroll-content">
<span>2023年度员工体检将于11月20日开始请各部门安排好时间。</span>
<span class="ml-8">公司年会定于12月28日举行各部门请提前准备节目。</span>
<span class="ml-8">新版本人力资源系统已上线如有问题请联系IT支持。</span>
<span class="ml-8">2024年春节假期安排已发布请查看公司公告。</span>
</div>
</div>
</div>
</div>
</div>
<!-- 主体内容 -->
<main class="flex-1 container mx-auto px-4 py-6">
<div class="bg-white rounded-lg shadow-sm p-6">
<h2 class="text-xl font-semibold text-gray-800 mb-6">人员管理</h2>
<div class="flex space-x-6">
<!-- 左侧组织架构树 -->
<div class="w-[20%] bg-white border border-gray-200 rounded-lg p-4">
<div class="flex justify-between items-center mb-4">
<h3 class="font-medium text-gray-700">组织架构</h3>
<div class="flex space-x-2">
<button class="text-gray-500 hover:text-primary">
<i class="fas fa-sync-alt"></i>
</button>
<button class="text-gray-500 hover:text-primary">
<i class="fas fa-expand"></i>
</button>
</div>
</div>
<div class="overflow-y-auto h-[600px]">
<ul class="space-y-1">
<li>
<div class="flex items-center justify-between p-2 bg-blue-50 rounded-button">
<div class="flex items-center">
<i class="fas fa-building mr-2 text-gray-600"></i>
<span class="text-sm font-medium">飞利信集团</span>
</div>
<i class="fas fa-chevron-down text-gray-500"></i>
</div>
<ul class="ml-6 mt-1 space-y-1">
<li>
<div
class="flex items-center justify-between p-2 hover:bg-gray-50 rounded-button">
<div class="flex items-center">
<i class="fas fa-sitemap mr-2 text-gray-600"></i>
<span>人力资源部</span>
</div>
<i class="fas fa-chevron-down text-gray-500"></i>
</div>
<ul class="ml-6 mt-1 space-y-1">
<li class="flex items-center p-2 hover:bg-gray-50 rounded-button">
<i class="fas fa-users mr-2 text-gray-600"></i>
<span class="text-primary font-medium">招聘组</span>
</li>
<li class="flex items-center p-2 hover:bg-gray-50 rounded-button">
<i class="fas fa-chart-line mr-2 text-gray-600"></i>
<span>绩效组</span>
</li>
<li class="flex items-center p-2 hover:bg-gray-50 rounded-button">
<i class="fas fa-money-bill-wave mr-2 text-gray-600"></i>
<span>薪酬组</span>
</li>
</ul>
</li>
<li>
<div
class="flex items-center justify-between p-2 hover:bg-gray-50 rounded-button">
<div class="flex items-center">
<i class="fas fa-sitemap mr-2 text-gray-600"></i>
<span>技术研发部</span>
</div>
<i class="fas fa-chevron-down text-gray-500"></i>
</div>
</li>
<li>
<div
class="flex items-center justify-between p-2 hover:bg-gray-50 rounded-button">
<div class="flex items-center">
<i class="fas fa-sitemap mr-2 text-gray-600"></i>
<span>市场营销部</span>
</div>
<i class="fas fa-chevron-down text-gray-500"></i>
</div>
</li>
<li>
<div
class="flex items-center justify-between p-2 hover:bg-gray-50 rounded-button">
<div class="flex items-center">
<i class="fas fa-sitemap mr-2 text-gray-600"></i>
<span>财务部</span>
</div>
<i class="fas fa-chevron-down text-gray-500"></i>
</div>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- 右侧人员信息区 -->
<div class="w-[80%]">
<!-- 筛选条件 -->
<div class="bg-gray-50 rounded-lg p-4 mb-6">
<div class="grid grid-cols-3 gap-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">姓名</label>
<input type="text"
class="w-full border rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">电话</label>
<input type="text"
class="w-full border rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">身份证号</label>
<input type="text"
class="w-full border rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">部门</label>
<div class="relative">
<input type="text"
class="w-full border rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
<i
class="fas fa-chevron-down absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-500"></i>
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">岗位</label>
<div class="relative">
<input type="text"
class="w-full border rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
<i
class="fas fa-chevron-down absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-500"></i>
</div>
</div>
<div class="flex items-end space-x-2">
<button
class="bg-primary text-white px-4 py-2 rounded-button hover:bg-blue-600 transition">搜索</button>
<button
class="border border-gray-300 text-gray-700 px-4 py-2 rounded-button hover:bg-gray-50 transition">重置</button>
</div>
</div>
</div>
<!-- 操作按钮 -->
<div class="flex justify-between items-center mb-4">
<div class="text-sm text-gray-600">共 356 条记录</div>
<div class="flex space-x-2">
<button
class="border border-gray-300 text-gray-700 px-3 py-1 rounded-button text-sm hover:bg-gray-50 transition">
<i class="fas fa-download mr-1"></i>导出
</button>
<button
class="bg-primary text-white px-3 py-1 rounded-button text-sm hover:bg-blue-600 transition">
<i class="fas fa-plus mr-1"></i>新增人员
</button>
</div>
</div>
<!-- 人员表格 -->
<div class="overflow-x-auto">
<table class="min-w-full bg-white border border-gray-200 rounded-lg overflow-hidden">
<thead class="bg-gray-50">
<tr>
<th
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
序号</th>
<th
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
姓名</th>
<th
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
性别</th>
<th
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
年龄</th>
<th
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
电话</th>
<th
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
部门</th>
<th
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
岗位</th>
<th
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
操作</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200">
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 text-sm text-gray-700">1</td>
<td class="px-4 py-3 text-sm font-medium text-gray-900">张明远</td>
<td class="px-4 py-3 text-sm text-gray-700"></td>
<td class="px-4 py-3 text-sm text-gray-700">32</td>
<td class="px-4 py-3 text-sm text-gray-700">138****5678</td>
<td class="px-4 py-3 text-sm text-gray-700">人力资源部</td>
<td class="px-4 py-3 text-sm text-gray-700">招聘经理</td>
<td class="px-4 py-3 text-sm text-gray-700">
<div class="flex space-x-2">
<button class="text-blue-500 hover:text-blue-700">
<i class="fas fa-edit"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 text-sm text-gray-700">2</td>
<td class="px-4 py-3 text-sm font-medium text-gray-900">李静怡</td>
<td class="px-4 py-3 text-sm text-gray-700"></td>
<td class="px-4 py-3 text-sm text-gray-700">28</td>
<td class="px-4 py-3 text-sm text-gray-700">159****2345</td>
<td class="px-4 py-3 text-sm text-gray-700">技术研发部</td>
<td class="px-4 py-3 text-sm text-gray-700">前端工程师</td>
<td class="px-4 py-3 text-sm text-gray-700">
<div class="flex space-x-2">
<button class="text-blue-500 hover:text-blue-700">
<i class="fas fa-edit"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 text-sm text-gray-700">3</td>
<td class="px-4 py-3 text-sm font-medium text-gray-900">王建国</td>
<td class="px-4 py-3 text-sm text-gray-700"></td>
<td class="px-4 py-3 text-sm text-gray-700">45</td>
<td class="px-4 py-3 text-sm text-gray-700">186****7890</td>
<td class="px-4 py-3 text-sm text-gray-700">市场营销部</td>
<td class="px-4 py-3 text-sm text-gray-700">市场总监</td>
<td class="px-4 py-3 text-sm text-gray-700">
<div class="flex space-x-2">
<button class="text-blue-500 hover:text-blue-700">
<i class="fas fa-edit"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 text-sm text-gray-700">4</td>
<td class="px-4 py-3 text-sm font-medium text-gray-900">赵雪梅</td>
<td class="px-4 py-3 text-sm text-gray-700"></td>
<td class="px-4 py-3 text-sm text-gray-700">36</td>
<td class="px-4 py-3 text-sm text-gray-700">137****4567</td>
<td class="px-4 py-3 text-sm text-gray-700">财务部</td>
<td class="px-4 py-3 text-sm text-gray-700">财务主管</td>
<td class="px-4 py-3 text-sm text-gray-700">
<div class="flex space-x-2">
<button class="text-blue-500 hover:text-blue-700">
<i class="fas fa-edit"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 text-sm text-gray-700">5</td>
<td class="px-4 py-3 text-sm font-medium text-gray-900">刘志强</td>
<td class="px-4 py-3 text-sm text-gray-700"></td>
<td class="px-4 py-3 text-sm text-gray-700">29</td>
<td class="px-4 py-3 text-sm text-gray-700">188****3456</td>
<td class="px-4 py-3 text-sm text-gray-700">技术研发部</td>
<td class="px-4 py-3 text-sm text-gray-700">后端工程师</td>
<td class="px-4 py-3 text-sm text-gray-700">
<div class="flex space-x-2">
<button class="text-blue-500 hover:text-blue-700">
<i class="fas fa-edit"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 text-sm text-gray-700">6</td>
<td class="px-4 py-3 text-sm font-medium text-gray-900">陈雨桐</td>
<td class="px-4 py-3 text-sm text-gray-700"></td>
<td class="px-4 py-3 text-sm text-gray-700">27</td>
<td class="px-4 py-3 text-sm text-gray-700">135****6789</td>
<td class="px-4 py-3 text-sm text-gray-700">人力资源部</td>
<td class="px-4 py-3 text-sm text-gray-700">薪酬专员</td>
<td class="px-4 py-3 text-sm text-gray-700">
<div class="flex space-x-2">
<button class="text-blue-500 hover:text-blue-700">
<i class="fas fa-edit"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 text-sm text-gray-700">7</td>
<td class="px-4 py-3 text-sm font-medium text-gray-900">孙伟</td>
<td class="px-4 py-3 text-sm text-gray-700"></td>
<td class="px-4 py-3 text-sm text-gray-700">31</td>
<td class="px-4 py-3 text-sm text-gray-700">139****1234</td>
<td class="px-4 py-3 text-sm text-gray-700">市场营销部</td>
<td class="px-4 py-3 text-sm text-gray-700">市场经理</td>
<td class="px-4 py-3 text-sm text-gray-700">
<div class="flex space-x-2">
<button class="text-blue-500 hover:text-blue-700">
<i class="fas fa-edit"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 text-sm text-gray-700">8</td>
<td class="px-4 py-3 text-sm font-medium text-gray-900">周晓琳</td>
<td class="px-4 py-3 text-sm text-gray-700"></td>
<td class="px-4 py-3 text-sm text-gray-700">33</td>
<td class="px-4 py-3 text-sm text-gray-700">158****4567</td>
<td class="px-4 py-3 text-sm text-gray-700">财务部</td>
<td class="px-4 py-3 text-sm text-gray-700">会计</td>
<td class="px-4 py-3 text-sm text-gray-700">
<div class="flex space-x-2">
<button class="text-blue-500 hover:text-blue-700">
<i class="fas fa-edit"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 text-sm text-gray-700">9</td>
<td class="px-4 py-3 text-sm font-medium text-gray-900">吴刚</td>
<td class="px-4 py-3 text-sm text-gray-700"></td>
<td class="px-4 py-3 text-sm text-gray-700">40</td>
<td class="px-4 py-3 text-sm text-gray-700">136****7890</td>
<td class="px-4 py-3 text-sm text-gray-700">技术研发部</td>
<td class="px-4 py-3 text-sm text-gray-700">技术总监</td>
<td class="px-4 py-3 text-sm text-gray-700">
<div class="flex space-x-2">
<button class="text-blue-500 hover:text-blue-700">
<i class="fas fa-edit"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 text-sm text-gray-700">10</td>
<td class="px-4 py-3 text-sm font-medium text-gray-900">郑美丽</td>
<td class="px-4 py-3 text-sm text-gray-700"></td>
<td class="px-4 py-3 text-sm text-gray-700">26</td>
<td class="px-4 py-3 text-sm text-gray-700">187****2345</td>
<td class="px-4 py-3 text-sm text-gray-700">人力资源部</td>
<td class="px-4 py-3 text-sm text-gray-700">招聘专员</td>
<td class="px-4 py-3 text-sm text-gray-700">
<div class="flex space-x-2">
<button class="text-blue-500 hover:text-blue-700">
<i class="fas fa-edit"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt"></i>
</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 分页 -->
<div class="flex items-center justify-between mt-4">
<div class="text-sm text-gray-600">显示 1 到 10 条,共 356 条记录</div>
<div class="flex space-x-1">
<button
class="px-3 py-1 border rounded-button text-sm text-gray-700 hover:bg-gray-50">上一页</button>
<button class="px-3 py-1 border rounded-button text-sm bg-primary text-white">1</button>
<button
class="px-3 py-1 border rounded-button text-sm text-gray-700 hover:bg-gray-50">2</button>
<button
class="px-3 py-1 border rounded-button text-sm text-gray-700 hover:bg-gray-50">3</button>
<span class="px-3 py-1 text-sm text-gray-700">...</span>
<button
class="px-3 py-1 border rounded-button text-sm text-gray-700 hover:bg-gray-50">36</button>
<button
class="px-3 py-1 border rounded-button text-sm text-gray-700 hover:bg-gray-50">下一页</button>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- 页脚 -->
<footer class="w-full bg-gray-800 text-white py-6">
<div class="container mx-auto px-4">
<div class="grid grid-cols-4 gap-6 mb-6">
<div>
<h3 class="text-base font-medium mb-3">关于我们</h3>
<ul class="space-y-1 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">公司简介</a></li>
<li><a href="#" class="hover:text-white">发展历程</a></li>
<li><a href="#" class="hover:text-white">企业文化</a></li>
<li><a href="#" class="hover:text-white">荣誉资质</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-medium mb-4">产品服务</h3>
<ul class="space-y-2 text-sm text-gray-300">
<li><a href="#" class="hover:text-white">人力资源系统</a></li>
<li><a href="#" class="hover:text-white">考勤管理系统</a></li>
<li><a href="#" class="hover:text-white">薪酬管理系统</a></li>
<li><a href="#" class="hover:text-white">绩效管理系统</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-medium mb-4">帮助中心</h3>
<ul class="space-y-2 text-sm text-gray-300">
<li><a href="#" class="hover:text-white">使用指南</a></li>
<li><a href="#" class="hover:text-white">常见问题</a></li>
<li><a href="#" class="hover:text-white">视频教程</a></li>
<li><a href="#" class="hover:text-white">在线客服</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-medium mb-4">联系我们</h3>
<ul class="space-y-2 text-sm text-gray-300">
<li><i class="fas fa-map-marker-alt mr-2"></i> 北京市海淀区中关村南大街5号</li>
<li><i class="fas fa-phone-alt mr-2"></i> 400-888-8888</li>
<li><i class="fas fa-envelope mr-2"></i> contact@feilixin.com</li>
<li class="flex space-x-4 mt-4">
<a href="#"
class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center hover:bg-primary">
<i class="fab fa-weixin"></i>
</a>
<a href="#"
class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center hover:bg-primary">
<i class="fab fa-weibo"></i>
</a>
<a href="#"
class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center hover:bg-primary">
<i class="fab fa-linkedin-in"></i>
</a>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 pt-6">
<div class="flex flex-col md:flex-row justify-between items-center">
<div class="text-sm text-gray-400 mb-4 md:mb-0">
© 2023 飞利信人力资源管理系统 版权所有
</div>
<div class="flex space-x-6">
<a href="#" class="text-sm text-gray-400 hover:text-white">隐私政策</a>
<a href="#" class="text-sm text-gray-400 hover:text-white">服务条款</a>
<a href="#" class="text-sm text-gray-400 hover:text-white">法律声明</a>
<a href="#" class="text-sm text-gray-400 hover:text-white">ICP备案号京ICP备12345678号</a>
</div>
</div>
</div>
</div>
</footer>
</body>
</html>

@ -1,563 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>人力资源管理系统 - 多维统计</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/5.5.0/echarts.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
.chart-container {
width: 100%;
height: 300px;
}
.fa-icon {
display: flex;
justify-content: center;
align-items: center;
width: 20px;
height: 20px;
}
</style>
</head>
<body class="min-h-[1024px] bg-secondary font-sans">
<!-- 顶部导航 -->
<!-- <header class="w-full bg-primary text-white shadow-md">
<div class="container mx-auto px-6 h-16 flex items-center justify-between">
<div class="flex items-center space-x-8">
<a href="#" class="text-2xl font-['Pacifico']">人力</a>
<nav class="hidden md:flex space-x-6">
<a href="#" class="text-sm hover:text-gray-200 transition">多维统计</a>
<a href="#" class="text-sm hover:text-gray-200 transition">人员管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">组织管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">考勤管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">绩效管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">薪酬管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">知识库</a>
<a href="#" class="text-sm hover:text-gray-200 transition">后台管理</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative">
<input type="text" placeholder="搜索..." class="bg-white/20 text-sm px-4 py-2 rounded-button w-48 focus:outline-none focus:ring-2 focus:ring-white/50">
<i class="fa-icon fa-solid fa-magnifying-glass absolute right-3 top-1/2 transform -translate-y-1/2 text-white/70"></i>
</div>
<button class="flex items-center space-x-1 bg-white/10 hover:bg-white/20 px-3 py-1 rounded-button transition">
<i class="fa-icon fa-solid fa-robot"></i>
<span class="text-sm">AI助手</span>
</button>
<div class="w-8 h-8 rounded-full bg-white/20 flex items-center justify-center cursor-pointer">
<i class="fa-icon fa-solid fa-user"></i>
</div>
</div>
</div>
</header> -->
<!-- 主要内容 -->
<main class="container mx-auto px-6 py-8">
<!-- 数据卡片行 -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8">
<div class="bg-white p-6 rounded-lg shadow-sm hover:shadow-md transition">
<div class="flex justify-between items-start">
<div>
<p class="text-gray-500 text-sm">员工总数</p>
<p class="text-3xl font-bold mt-2">1,248</p>
</div>
<div class="bg-green-100 text-green-800 px-2 py-1 rounded-button text-xs flex items-center">
<i class="fa-icon fa-solid fa-arrow-up mr-1"></i>
<span>5.2%</span>
</div>
</div>
<p class="text-gray-500 text-xs mt-2">较上月增加 62 人</p>
</div>
<div class="bg-white p-6 rounded-lg shadow-sm hover:shadow-md transition">
<div>
<p class="text-gray-500 text-sm">本月入职</p>
<p class="text-3xl font-bold mt-2">87</p>
</div>
<p class="text-gray-500 text-xs mt-2">其中社招 52 人,校招 35 人</p>
</div>
<div class="bg-white p-6 rounded-lg shadow-sm hover:shadow-md transition">
<div>
<p class="text-gray-500 text-sm">本月离职</p>
<p class="text-3xl font-bold mt-2">25</p>
</div>
<p class="text-gray-500 text-xs mt-2">主动离职 18 人,被动离职 7 人</p>
</div>
<div class="bg-white p-6 rounded-lg shadow-sm hover:shadow-md transition">
<div>
<p class="text-gray-500 text-sm">平均工龄</p>
<p class="text-3xl font-bold mt-2">3.2</p>
</div>
<p class="text-gray-500 text-xs mt-2">年,较行业平均高 0.8 年</p>
</div>
</div>
<!-- 图表行1 -->
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8">
<div class="bg-white p-6 rounded-lg shadow-sm">
<h3 class="text-lg font-semibold mb-4">部门人员分布</h3>
<div class="chart-container" id="departmentChart"></div>
</div>
<div class="bg-white p-6 rounded-lg shadow-sm">
<h3 class="text-lg font-semibold mb-4">职位分布</h3>
<div class="chart-container" id="positionChart"></div>
</div>
</div>
<!-- 图表行2 -->
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8">
<div class="bg-white p-6 rounded-lg shadow-sm">
<h3 class="text-lg font-semibold mb-4">员工年龄分布</h3>
<div class="chart-container" id="ageChart"></div>
</div>
<div class="bg-white p-6 rounded-lg shadow-sm">
<h3 class="text-lg font-semibold mb-4">员工工龄分布</h3>
<div class="chart-container" id="seniorityChart"></div>
</div>
</div>
<!-- 图表行3 -->
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8">
<div class="bg-white p-6 rounded-lg shadow-sm">
<h3 class="text-lg font-semibold mb-4">员工绩效分布</h3>
<div class="chart-container" id="performanceChart"></div>
</div>
<div class="bg-white p-6 rounded-lg shadow-sm">
<h3 class="text-lg font-semibold mb-4">招聘渠道分布</h3>
<div class="chart-container" id="recruitmentChart"></div>
</div>
</div>
</main>
<!-- 页脚 -->
<footer class="w-full bg-gray-800 text-white py-8 mt-auto">
<div class="container mx-auto px-6">
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div>
<h3 class="text-lg font-semibold mb-4">关于我们</h3>
<p class="text-sm text-gray-400 mb-4">人力科技是一家专注于企业人力资源数字化解决方案的高科技公司,致力于为企业提供智能化的人力资源管理工具。</p>
<div class="flex space-x-4">
<a href="#" class="text-gray-400 hover:text-white transition"><i class="fa-icon fa-brands fa-weixin"></i></a>
<a href="#" class="text-gray-400 hover:text-white transition"><i class="fa-icon fa-brands fa-weibo"></i></a>
<a href="#" class="text-gray-400 hover:text-white transition"><i class="fa-icon fa-brands fa-linkedin"></i></a>
</div>
</div>
<div>
<h3 class="text-lg font-semibold mb-4">快速链接</h3>
<ul class="space-y-2">
<li><a href="#" class="text-sm text-gray-400 hover:text-white transition">产品介绍</a></li>
<li><a href="#" class="text-sm text-gray-400 hover:text-white transition">解决方案</a></li>
<li><a href="#" class="text-sm text-gray-400 hover:text-white transition">客户案例</a></li>
<li><a href="#" class="text-sm text-gray-400 hover:text-white transition">价格方案</a></li>
<li><a href="#" class="text-sm text-gray-400 hover:text-white transition">帮助中心</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-semibold mb-4">联系我们</h3>
<ul class="space-y-2 text-sm text-gray-400">
<li class="flex items-start">
<i class="fa-icon fa-solid fa-map-marker-alt mt-1 mr-2"></i>
<span>北京市海淀区中关村软件园 12 号楼 3 层</span>
</li>
<li class="flex items-center">
<i class="fa-icon fa-solid fa-phone mr-2"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fa-icon fa-solid fa-envelope mr-2"></i>
<span>contact@hrtech.com</span>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-6 text-center text-sm text-gray-400">
<p>© 2023 人力科技 版权所有 | 京ICP备12345678号-1 | 京公网安备11010802023456号</p>
</div>
</div>
</footer>
<script>
// 部门分布图表
const departmentChart = echarts.init(document.getElementById('departmentChart'));
departmentChart.setOption({
animation: false,
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
right: 10,
top: 'center',
data: ['技术部', '产品部', '市场部', '销售部', '人力资源', '财务部', '行政部']
},
series: [
{
name: '部门分布',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 4,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '18',
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 320, name: '技术部' },
{ value: 240, name: '产品部' },
{ value: 149, name: '市场部' },
{ value: 180, name: '销售部' },
{ value: 98, name: '人力资源' },
{ value: 56, name: '财务部' },
{ value: 105, name: '行政部' }
]
}
]
});
// 职位分布图表
const positionChart = echarts.init(document.getElementById('positionChart'));
positionChart.setOption({
animation: false,
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
right: 10,
top: 'center',
data: ['工程师', '产品经理', '设计师', '市场专员', '销售代表', 'HRBP', '财务专员', '行政专员']
},
series: [
{
name: '职位分布',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 4,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '18',
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 280, name: '工程师' },
{ value: 120, name: '产品经理' },
{ value: 90, name: '设计师' },
{ value: 80, name: '市场专员' },
{ value: 150, name: '销售代表' },
{ value: 60, name: 'HRBP' },
{ value: 40, name: '财务专员' },
{ value: 80, name: '行政专员' }
]
}
]
});
// 年龄分布图表
const ageChart = echarts.init(document.getElementById('ageChart'));
ageChart.setOption({
animation: false,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'category',
data: ['20-25岁', '26-30岁', '31-35岁', '36-40岁', '41岁以上'],
axisTick: {
alignWithLabel: true
}
},
yAxis: {
type: 'value'
},
series: [
{
name: '人数',
type: 'bar',
barWidth: '60%',
itemStyle: {
color: '#2D5CF6'
},
data: [120, 480, 360, 180, 108]
}
]
});
// 工龄分布图表
const seniorityChart = echarts.init(document.getElementById('seniorityChart'));
seniorityChart.setOption({
animation: false,
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
right: 10,
top: 'center',
data: ['1年以内', '1-3年', '3-5年', '5-10年', '10年以上']
},
series: [
{
name: '工龄分布',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 4,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '18',
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 280, name: '1年以内' },
{ value: 420, name: '1-3年' },
{ value: 300, name: '3-5年' },
{ value: 180, name: '5-10年' },
{ value: 68, name: '10年以上' }
]
}
]
});
// 绩效分布图表
const performanceChart = echarts.init(document.getElementById('performanceChart'));
performanceChart.setOption({
animation: false,
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
right: 10,
top: 'center',
data: ['A(优秀)', 'B(良好)', 'C(合格)', 'D(待改进)']
},
series: [
{
name: '绩效分布',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 4,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '18',
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 180, name: 'A(优秀)' },
{ value: 420, name: 'B(良好)' },
{ value: 480, name: 'C(合格)' },
{ value: 68, name: 'D(待改进)' }
]
}
]
});
// 招聘渠道图表
const recruitmentChart = echarts.init(document.getElementById('recruitmentChart'));
recruitmentChart.setOption({
animation: false,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
data: ['猎头', '招聘网站', '内部推荐', '校园招聘', '社交媒体']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value'
},
yAxis: {
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月']
},
series: [
{
name: '猎头',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [5, 3, 7, 4, 6, 8]
},
{
name: '招聘网站',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [12, 10, 15, 18, 14, 16]
},
{
name: '内部推荐',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [8, 6, 10, 7, 9, 11]
},
{
name: '校园招聘',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [0, 0, 0, 15, 12, 10]
},
{
name: '社交媒体',
type: 'bar',
stack: 'total',
label: {
show: true
},
emphasis: {
focus: 'series'
},
data: [3, 5, 4, 6, 5, 7]
}
]
});
// 窗口大小变化时重新调整图表大小
window.addEventListener('resize', function() {
departmentChart.resize();
positionChart.resize();
ageChart.resize();
seniorityChart.resize();
performanceChart.resize();
recruitmentChart.resize();
});
</script>
</body>
</html>

@ -1,620 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>人力资源管理系统 - 人员详情</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA',
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.font-pacifico {
font-family: "Pacifico", serif;
}
.fa-icon {
display: flex;
justify-content: center;
align-items: center;
}
.scroll-container {
overflow: hidden;
white-space: nowrap;
}
.scroll-content {
display: inline-block;
animation: scroll 20s linear infinite;
}
@keyframes scroll {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-50%);
}
}
</style>
</head>
<body class="bg-secondary min-h-[1024px] flex flex-col">
<!-- 顶部导航 -->
<!-- <header class="bg-primary text-white w-full fixed top-0 z-50 shadow-md">
<div class="container mx-auto px-4 h-[60px] flex items-center justify-between">
<div class="flex items-center">
<span class="font-pacifico text-2xl mr-10">人力</span>
</div>
<nav class="hidden md:flex space-x-6">
<a href="#" class="text-sm hover:text-gray-200 transition">多维统计</a>
<a href="#" class="text-sm hover:text-gray-200 transition">人员管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">组织管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">考勤管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">绩效管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">薪酬管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">知识库</a>
<a href="#" class="text-sm hover:text-gray-200 transition">后台管理</a>
</nav>
<div class="flex items-center space-x-4">
<div class="relative hidden lg:block">
<input type="text" placeholder="搜索..."
class="bg-white/20 text-sm py-1 px-3 pl-8 rounded-button text-white placeholder-white/70 focus:outline-none focus:ring-1 focus:ring-white w-40">
<i
class="fas fa-search fa-icon absolute left-2 top-1/2 transform -translate-y-1/2 text-sm text-white/70"></i>
</div>
<button
class="bg-white/10 hover:bg-white/20 text-sm px-3 py-1 rounded-button flex items-center space-x-1 transition">
<i class="fas fa-robot fa-icon text-sm"></i>
<span>AI助手</span>
</button>
<div class="relative">
<img src="https://mastergo.com/ai/api/search-image?query=professional20business20portrait20of20a20asian20male20executive20in20suit20with20clean20background20high20quality20photo20realistic20detailed20face20corporate20style&width=100&height=100&orientation=squarish&flag=3efee3725d19ed6e79a0117bb8d09db5"
alt="用户头像" class="w-8 h-8 rounded-full object-cover border-2 border-white/30">
</div>
</div>
</div>
</header> -->
<!-- 公告栏 -->
<div class="bg-white py-2 px-4 shadow-sm">
<div class="container mx-auto">
<div class="scroll-container">
<div class="scroll-content text-sm text-gray-600">
<span class="font-medium text-primary mr-4">公告:</span>
<span class="mr-8">2023年度绩效考核工作将于12月1日正式启动</span>
<span class="mr-8">公司年度旅游活动报名截止日期延长至11月30日</span>
<span class="mr-8">新员工入职培训将于下周一上午9点在3楼会议室举行</span>
<span class="mr-8">公司福利政策更新:新增子女教育补贴项目</span>
<span class="mr-8">IT部门提醒请及时更新您的电脑系统至最新版本</span>
</div>
</div>
</div>
</div>
<!-- 主内容区 -->
<main class="flex-1 container mx-auto px-4 py-6 mt-4">
<!-- 面包屑导航 -->
<div class="flex items-center text-sm text-gray-500 mb-4">
<a href="#" class="hover:text-primary">首页</a>
<i class="fas fa-chevron-right mx-2 text-xs"></i>
<a href="#" class="hover:text-primary">人员管理</a>
<i class="fas fa-chevron-right mx-2 text-xs"></i>
<span class="text-gray-700">人员详情</span>
</div>
<!-- 个人信息卡片 -->
<div class="bg-white rounded-lg shadow-md p-6 mb-6">
<div class="flex flex-col">
<!-- 头像区域 -->
<div class="flex-shrink-0 mb-4">
<img src="https://mastergo.com/ai/api/search-image?query=professional20business20portrait20of20a20asian20female20executive20in20suit20with20clean20background20high20quality20photo20realistic20detailed20face20corporate20style&width=80&height=80&orientation=squarish&flag=5ebb2186f7537b5a7e434d5cf8384120"
alt="员工头像" class="w-20 h-20 rounded-lg object-cover border border-gray-200">
</div>
<!-- 基本信息 -->
<div class="flex-1">
<div class="flex flex-col md:flex-row md:items-center md:justify-between mb-4">
<div>
<h1 class="text-2xl font-bold text-gray-800">林晓梅</h1>
<p class="text-gray-500">高级产品经理 | 产品研发中心</p>
</div>
<div class="flex space-x-2 mt-2 md:mt-0">
<button
class="bg-primary hover:bg-blue-700 text-white text-sm px-3 py-1 rounded-button flex items-center space-x-1 transition">
<i class="fas fa-edit fa-icon text-xs"></i>
<span>编辑</span>
</button>
<button
class="bg-white border border-gray-300 hover:bg-gray-50 text-gray-700 text-sm px-3 py-1 rounded-button flex items-center space-x-1 transition">
<i class="fas fa-print fa-icon text-xs"></i>
<span>打印</span>
</button>
</div>
</div>
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
<div>
<p class="text-xs text-gray-500">员工编号</p>
<p class="text-sm font-medium">EMP20230085</p>
</div>
<div>
<p class="text-xs text-gray-500">入职日期</p>
<p class="text-sm font-medium">2018-06-15</p>
</div>
<div>
<p class="text-xs text-gray-500">工作年限</p>
<p class="text-sm font-medium">5年4个月</p>
</div>
<div>
<p class="text-xs text-gray-500">员工状态</p>
<p class="text-sm font-medium text-green-600">在职</p>
</div>
</div>
</div>
</div>
</div>
<!-- 移除标签页导航 -->
<!-- 基本信息内容 -->
<div class="space-y-6 mb-6">
<!-- 个人信息 -->
<div class="bg-white rounded-lg shadow-md p-6">
<h2 class="text-lg font-medium text-gray-800 mb-4 flex items-center">
<i class="fas fa-user-circle fa-icon text-primary mr-2"></i>
<span>个人信息</span>
</h2>
<div class="space-y-4">
<div class="grid grid-cols-2 gap-4">
<div>
<p class="text-xs text-gray-500">姓名</p>
<p class="text-sm font-medium">林晓梅</p>
</div>
<div>
<p class="text-xs text-gray-500">性别</p>
<p class="text-sm font-medium"></p>
</div>
</div>
<div class="grid grid-cols-2 gap-4">
<div>
<p class="text-xs text-gray-500">出生日期</p>
<p class="text-sm font-medium">1990-08-23</p>
</div>
<div>
<p class="text-xs text-gray-500">年龄</p>
<p class="text-sm font-medium">33岁</p>
</div>
</div>
<div>
<p class="text-xs text-gray-500">身份证号</p>
<p class="text-sm font-medium">310******19900823****</p>
</div>
<div>
<p class="text-xs text-gray-500">婚姻状况</p>
<p class="text-sm font-medium">已婚</p>
</div>
<div>
<p class="text-xs text-gray-500">联系电话</p>
<p class="text-sm font-medium">138****5678</p>
</div>
<div>
<p class="text-xs text-gray-500">电子邮箱</p>
<p class="text-sm font-medium">linxiaomei@company.com</p>
</div>
<div>
<p class="text-xs text-gray-500">现居住地</p>
<p class="text-sm font-medium">上海市浦东新区张江高科技园区科苑路88号</p>
</div>
</div>
</div>
<!-- 工作信息 -->
<div class="bg-white rounded-lg shadow-md p-6">
<h2 class="text-lg font-medium text-gray-800 mb-4 flex items-center">
<i class="fas fa-briefcase fa-icon text-primary mr-2"></i>
<span>工作信息</span>
</h2>
<div class="space-y-4">
<div>
<p class="text-xs text-gray-500">所属部门</p>
<p class="text-sm font-medium">产品研发中心 - 产品设计部</p>
</div>
<div>
<p class="text-xs text-gray-500">直接上级</p>
<p class="text-sm font-medium">张伟(产品研发中心总监)</p>
</div>
<div class="grid grid-cols-2 gap-4">
<div>
<p class="text-xs text-gray-500">职位</p>
<p class="text-sm font-medium">高级产品经理</p>
</div>
<div>
<p class="text-xs text-gray-500">职级</p>
<p class="text-sm font-medium">P7</p>
</div>
</div>
<div class="grid grid-cols-2 gap-4">
<div>
<p class="text-xs text-gray-500">员工类型</p>
<p class="text-sm font-medium">正式员工</p>
</div>
<div>
<p class="text-xs text-gray-500">工作地点</p>
<p class="text-sm font-medium">上海总部</p>
</div>
</div>
<div>
<p class="text-xs text-gray-500">工作职责</p>
<p class="text-sm font-medium">负责公司核心产品线的规划与设计,主导产品全生命周期管理,协调跨部门资源推动产品落地</p>
</div>
</div>
</div>
<!-- 职业履历 -->
<div class="bg-white rounded-lg shadow-md p-6">
<h2 class="text-lg font-medium text-gray-800 mb-4 flex items-center">
<i class="fas fa-history fa-icon text-primary mr-2"></i>
<span>职业履历</span>
</h2>
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
公司名称</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
职位</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
时间段</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
工作内容</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
状态</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="font-medium text-gray-800">上海科技有限公司</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm text-gray-600">高级产品经理</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-xs text-gray-500">2018-06-15 至今 · 5年4个月</div>
</td>
<td class="px-6 py-4">
<div class="text-sm text-gray-700">主导公司核心产品线的规划与设计带领5人产品团队成功推出3款市场领先产品用户增长300%
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 py-1 text-xs rounded bg-primary/10 text-primary">当前公司</span>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="font-medium text-gray-800">北京创新科技有限公司</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm text-gray-600">产品经理</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-xs text-gray-500">2015-07-01 至 2018-05-30 · 2年11个月</div>
</td>
<td class="px-6 py-4">
<div class="text-sm text-gray-700">负责企业级SaaS产品的设计与迭代成功将产品NPS从35提升至72客户续费率提升至85%
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap"></td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="font-medium text-gray-800">深圳科技发展有限公司</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm text-gray-600">产品助理</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-xs text-gray-500">2013-09-01 至 2015-06-30 · 1年10个月</div>
</td>
<td class="px-6 py-4">
<div class="text-sm text-gray-700">协助产品经理完成需求分析、原型设计参与3个移动端项目从0到1的全过程</div>
</td>
<td class="px-6 py-4 whitespace-nowrap"></td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- 教育经历 -->
<div class="bg-white rounded-lg shadow-md p-6">
<h2 class="text-lg font-medium text-gray-800 mb-4 flex items-center">
<i class="fas fa-graduation-cap fa-icon text-primary mr-2"></i>
<span>教育经历</span>
</h2>
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
学校名称</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
学历/专业</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
时间段</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
成绩/荣誉</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
状态</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="font-medium text-gray-800">复旦大学</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm text-gray-600">计算机科学与技术 · 硕士</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-xs text-gray-500">2010-09-01 至 2013-06-30</div>
</td>
<td class="px-6 py-4">
<div class="text-sm text-gray-700">GPA 3.8/4.0,获得校级优秀毕业生称号,研究方向为人机交互与用户体验</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 py-1 text-xs rounded bg-primary/10 text-primary">最高学历</span>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="font-medium text-gray-800">南京大学</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm text-gray-600">软件工程 · 学士</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-xs text-gray-500">2006-09-01 至 2010-06-30</div>
</td>
<td class="px-6 py-4">
<div class="text-sm text-gray-700">GPA 3.6/4.0获得国家奖学金参与2项校级科研项目</div>
</td>
<td class="px-6 py-4 whitespace-nowrap"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- 组织架构图 -->
<div class="bg-white rounded-lg shadow-md p-6 mb-6">
<h2 class="text-lg font-medium text-gray-800 mb-4 flex items-center">
<i class="fas fa-sitemap fa-icon text-primary mr-2"></i>
<span>组织架构</span>
</h2>
<div class="bg-gray-100 rounded-lg p-4 h-64 flex items-center justify-center">
<img src="https://ai-public.mastergo.com/gen_page/map_placeholder_1280x720.png" alt="组织架构图"
class="max-w-full max-h-full object-contain">
</div>
</div>
<!-- 职业履历 -->
<div class="bg-white rounded-lg shadow-md p-6 mb-6">
<h2 class="text-lg font-medium text-gray-800 mb-4 flex items-center">
<i class="fas fa-history fa-icon text-primary mr-2"></i>
<span>职业履历</span>
</h2>
<div class="space-y-4">
<!-- 当前公司经历 -->
<div class="border-l-2 border-primary pl-4 py-2">
<div class="flex justify-between items-start">
<div>
<h3 class="font-medium text-gray-800">上海科技有限公司</h3>
<p class="text-sm text-gray-600">高级产品经理</p>
</div>
<span class="text-xs bg-primary/10 text-primary px-2 py-1 rounded">当前公司</span>
</div>
<p class="text-xs text-gray-500 mt-1">2018-06-15 至今 · 5年4个月</p>
<p class="text-sm text-gray-700 mt-2">主导公司核心产品线的规划与设计带领5人产品团队成功推出3款市场领先产品用户增长300%</p>
</div>
<!-- 过往经历1 -->
<div class="border-l-2 border-gray-200 pl-4 py-2">
<div class="flex justify-between items-start">
<div>
<h3 class="font-medium text-gray-800">北京创新科技有限公司</h3>
<p class="text-sm text-gray-600">产品经理</p>
</div>
</div>
<p class="text-xs text-gray-500 mt-1">2015-07-01 至 2018-05-30 · 2年11个月</p>
<p class="text-sm text-gray-700 mt-2">负责企业级SaaS产品的设计与迭代成功将产品NPS从35提升至72客户续费率提升至85%</p>
</div>
<!-- 过往经历2 -->
<div class="border-l-2 border-gray-200 pl-4 py-2">
<div class="flex justify-between items-start">
<div>
<h3 class="font-medium text-gray-800">深圳科技发展有限公司</h3>
<p class="text-sm text-gray-600">产品助理</p>
</div>
</div>
<p class="text-xs text-gray-500 mt-1">2013-09-01 至 2015-06-30 · 1年10个月</p>
<p class="text-sm text-gray-700 mt-2">协助产品经理完成需求分析、原型设计参与3个移动端项目从0到1的全过程</p>
</div>
</div>
</div>
<!-- 教育经历 -->
<div class="bg-white rounded-lg shadow-md p-6">
<h2 class="text-lg font-medium text-gray-800 mb-4 flex items-center">
<i class="fas fa-graduation-cap fa-icon text-primary mr-2"></i>
<span>教育经历</span>
</h2>
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
学校名称</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
学历/专业</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
时间段</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
成绩/荣誉</th>
<th scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
状态</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="font-medium text-gray-800">复旦大学</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm text-gray-600">计算机科学与技术 · 硕士</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-xs text-gray-500">2010-09-01 至 2013-06-30</div>
</td>
<td class="px-6 py-4">
<div class="text-sm text-gray-700">GPA 3.8/4.0,获得校级优秀毕业生称号,研究方向为人机交互与用户体验</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 py-1 text-xs rounded bg-primary/10 text-primary">最高学历</span>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="font-medium text-gray-800">南京大学</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm text-gray-600">软件工程 · 学士</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-xs text-gray-500">2006-09-01 至 2010-06-30</div>
</td>
<td class="px-6 py-4">
<div class="text-sm text-gray-700">GPA 3.6/4.0获得国家奖学金参与2项校级科研项目</div>
</td>
<td class="px-6 py-4 whitespace-nowrap"></td>
</tr>
</tbody>
</table>
</div>
</div>
</main>
<!-- 底部通栏 -->
<footer class="bg-gray-800 text-white w-full py-8">
<div class="container mx-auto px-4">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-6">
<div>
<h3 class="text-sm font-medium mb-4">关于我们</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white transition">公司简介</a></li>
<li><a href="#" class="hover:text-white transition">发展历程</a></li>
<li><a href="#" class="hover:text-white transition">企业文化</a></li>
<li><a href="#" class="hover:text-white transition">管理团队</a></li>
<li><a href="#" class="hover:text-white transition">加入我们</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">产品服务</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white transition">人力资源系统</a></li>
<li><a href="#" class="hover:text-white transition">薪酬管理系统</a></li>
<li><a href="#" class="hover:text-white transition">绩效管理系统</a></li>
<li><a href="#" class="hover:text-white transition">考勤管理系统</a></li>
<li><a href="#" class="hover:text-white transition">培训管理系统</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">帮助中心</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white transition">使用文档</a></li>
<li><a href="#" class="hover:text-white transition">视频教程</a></li>
<li><a href="#" class="hover:text-white transition">常见问题</a></li>
<li><a href="#" class="hover:text-white transition">API接口</a></li>
<li><a href="#" class="hover:text-white transition">联系我们</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">联系我们</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li class="flex items-start">
<i class="fas fa-map-marker-alt fa-icon mr-2 mt-0.5"></i>
<span>上海市浦东新区张江高科技园区科苑路88号</span>
</li>
<li class="flex items-center">
<i class="fas fa-phone fa-icon mr-2"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fas fa-envelope fa-icon mr-2"></i>
<span>service@hrsystem.com</span>
</li>
<li class="flex items-center space-x-3 mt-4">
<a href="#"
class="w-6 h-6 rounded-full bg-gray-700 flex items-center justify-center hover:bg-primary transition">
<i class="fab fa-weixin fa-icon text-xs"></i>
</a>
<a href="#"
class="w-6 h-6 rounded-full bg-gray-700 flex items-center justify-center hover:bg-primary transition">
<i class="fab fa-weibo fa-icon text-xs"></i>
</a>
<a href="#"
class="w-6 h-6 rounded-full bg-gray-700 flex items-center justify-center hover:bg-primary transition">
<i class="fab fa-linkedin-in fa-icon text-xs"></i>
</a>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 pt-6">
<div class="flex flex-col md:flex-row justify-between items-center">
<p class="text-xs text-gray-400 mb-2 md:mb-0">© 2023 人力资源管理系统 版权所有</p>
<div class="flex space-x-4">
<a href="#" class="text-xs text-gray-400 hover:text-white transition">隐私政策</a>
<a href="#" class="text-xs text-gray-400 hover:text-white transition">服务条款</a>
<a href="#" class="text-xs text-gray-400 hover:text-white transition">法律声明</a>
<a href="#" class="text-xs text-gray-400 hover:text-white transition">沪ICP备12345678号-1</a>
</div>
</div>
</div>
</div>
</footer>
</body>
</html>

@ -1,572 +0,0 @@
<!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 rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
body {
min-height: 1024px;
}
.nav-item:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.tree-node:hover {
background-color: rgba(45, 92, 246, 0.05);
}
.table-row:hover {
background-color: #F5F6FA;
}
.ai-icon {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { opacity: 0.8; }
50% { opacity: 1; }
100% { opacity: 0.8; }
}
.marquee {
animation: scroll 20s linear infinite;
}
@keyframes scroll {
0% { transform: translateX(100%); }
100% { transform: translateX(-100%); }
}
i {
display: flex !important;
justify-content: center !important;
align-items: center !important;
}
</style>
</head>
<body class="bg-secondary font-sans">
<!-- 顶部导航栏 -->
<!--<header class="bg-primary text-white w-full fixed top-0 z-50 shadow-md">
<div class="container mx-auto px-4 h-14 flex items-center justify-between">
<div class="flex items-center">
<span class="font-['Pacifico'] text-xl mr-8">人力</span>
<nav class="hidden md:flex space-x-1">
<a href="#" class="nav-item px-3 py-1 text-sm rounded-button hover:bg-primary-600">多维统计</a>
<a href="#" class="nav-item px-3 py-1 text-sm rounded-button hover:bg-primary-600">人员管理</a>
<a href="#" class="nav-item px-3 py-1 text-sm rounded-button hover:bg-primary-600">组织管理</a>
<a href="#" class="nav-item px-3 py-1 text-sm rounded-button hover:bg-primary-600">考勤管理</a>
<a href="#" class="nav-item px-3 py-1 text-sm rounded-button hover:bg-primary-600">绩效管理</a>
<a href="#" class="nav-item px-3 py-1 text-sm rounded-button hover:bg-primary-600">薪酬管理</a>
<a href="#" class="nav-item px-3 py-1 text-sm rounded-button hover:bg-primary-600">知识库</a>
<a href="#" class="nav-item px-3 py-1 text-sm rounded-button hover:bg-primary-600">后台管理</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative hidden md:block">
<input type="text" placeholder="搜索..." class="bg-primary-600 text-white text-sm py-1 pl-8 pr-3 rounded-button border border-primary-400 focus:outline-none focus:ring-1 focus:ring-white w-48" />
<i class="fas fa-search absolute left-2 top-1/2 transform -translate-y-1/2 text-white text-sm"></i>
</div>
<button class="flex items-center space-x-1 bg-primary-600 hover:bg-primary-700 px-2 py-1 rounded-button text-sm">
<i class="fas fa-robot ai-icon text-white text-sm"></i>
<span>AI助手</span>
</button>
<div class="flex items-center space-x-2 cursor-pointer">
<div class="w-8 h-8 rounded-full bg-white flex items-center justify-center text-primary font-semibold"></div>
<span class="text-sm hidden md:inline">张明远</span>
</div>
</div>
</div>
</header> -->
<!-- 主内容区 -->
<main class="container mx-auto px-4 pt-6 pb-10 flex">
<!-- 左侧组织架构树 -->
<div class="w-1/5 pr-4">
<div class="bg-white rounded-md shadow-sm p-4 h-full">
<div class="flex items-center justify-between mb-4">
<h3 class="text-sm font-semibold text-gray-700">组织架构</h3>
<button class="text-primary text-sm">全部展开</button>
</div>
<div class="space-y-1 text-sm">
<!-- 一级部门 -->
<div class="tree-node pl-2 py-1 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-building mr-2 text-gray-500 text-xs"></i>
<span>集团总部</span>
</div>
<!-- 二级部门 -->
<div class="pl-4 mt-1 space-y-1">
<div class="tree-node pl-2 py-1 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-users mr-2 text-gray-500 text-xs"></i>
<span>人力资源部</span>
</div>
<!-- 三级部门 -->
<div class="pl-4 mt-1 space-y-1">
<div class="tree-node pl-2 py-1 rounded-md cursor-pointer flex items-center">
<i class="fas fa-user-tie mr-2 text-gray-500 text-xs"></i>
<span>招聘组</span>
</div>
<div class="tree-node pl-2 py-1 rounded-md cursor-pointer flex items-center">
<i class="fas fa-chart-line mr-2 text-gray-500 text-xs"></i>
<span>绩效组</span>
</div>
<div class="tree-node pl-2 py-1 rounded-md cursor-pointer flex items-center">
<i class="fas fa-money-bill-wave mr-2 text-gray-500 text-xs"></i>
<span>薪酬组</span>
</div>
</div>
</div>
<div class="tree-node pl-2 py-1 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-laptop-code mr-2 text-gray-500 text-xs"></i>
<span>技术研发部</span>
</div>
</div>
<div class="tree-node pl-2 py-1 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-shopping-cart mr-2 text-gray-500 text-xs"></i>
<span>市场营销部</span>
</div>
</div>
</div>
</div>
<!-- 一级部门 -->
<div class="tree-node pl-2 py-1 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-building mr-2 text-gray-500 text-xs"></i>
<span>华东分公司</span>
</div>
</div>
<!-- 一级部门 -->
<div class="tree-node pl-2 py-1 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-building mr-2 text-gray-500 text-xs"></i>
<span>华南分公司</span>
</div>
</div>
</div>
</div>
</div>
<!-- 右侧内容区 -->
<div class="w-4/5">
<!-- 公告栏 -->
<div class="bg-white rounded-md shadow-sm p-3 mb-4 overflow-hidden">
<div class="flex items-center">
<i class="fas fa-bullhorn text-primary mr-2 text-sm"></i>
<div class="marquee whitespace-nowrap text-sm">
<span class="mr-8">【系统公告】2023年度绩效考核工作将于12月1日正式启动</span>
<span class="mr-8">【重要通知】全体员工请于11月30日前完成个人信息核对</span>
<span class="mr-8">【培训通知】11月25日将举办新员工入职培训请相关人员准时参加</span>
</div>
</div>
</div>
<!-- 筛选区 -->
<div class="bg-white rounded-md shadow-sm p-4 mb-4">
<div class="flex items-center flex-wrap gap-4">
<div class="flex items-center">
<span class="text-sm text-gray-600 mr-2">时间段:</span>
<div class="relative">
<input type="text" class="border rounded-button px-3 py-1 text-sm w-40" placeholder="开始日期" />
<i class="fas fa-calendar-alt absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
<span class="mx-2 text-sm text-gray-400"></span>
<div class="relative">
<input type="text" class="border rounded-button px-3 py-1 text-sm w-40" placeholder="结束日期" />
<i class="fas fa-calendar-alt absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</div>
<div class="flex items-center">
<span class="text-sm text-gray-600 mr-2">作业人员:</span>
<div class="relative">
<input type="text" class="border rounded-button px-3 py-1 text-sm w-32" placeholder="姓名/工号" />
<i class="fas fa-search absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</div>
<div class="flex items-center">
<span class="text-sm text-gray-600 mr-2">作业类型:</span>
<div class="relative">
<select class="border rounded-button px-3 py-1 text-sm w-32 appearance-none bg-white">
<option>全部</option>
<option>招聘面试</option>
<option>培训组织</option>
<option>绩效考核</option>
<option>薪酬核算</option>
</select>
<i class="fas fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</div>
<button class="ml-auto bg-primary hover:bg-primary-600 text-white px-3 py-1 rounded-button text-sm whitespace-nowrap">
<i class="fas fa-filter mr-1 text-xs"></i>
筛选
</button>
<button class="bg-white border border-gray-300 hover:bg-gray-50 text-gray-700 px-3 py-1 rounded-button text-sm whitespace-nowrap">
<i class="fas fa-redo mr-1 text-xs"></i>
重置
</button>
</div>
</div>
<!-- 数据表格 -->
<div class="bg-white rounded-md shadow-sm overflow-hidden">
<div class="p-4 border-b flex items-center justify-between">
<h3 class="text-sm font-semibold text-gray-700">作业明细</h3>
<div class="flex items-center space-x-2">
<button class="bg-primary hover:bg-primary-600 text-white px-3 py-1 rounded-button text-sm whitespace-nowrap">
<i class="fas fa-plus mr-1 text-xs"></i>
新增
</button>
<button class="bg-white border border-gray-300 hover:bg-gray-50 text-gray-700 px-3 py-1 rounded-button text-sm whitespace-nowrap">
<i class="fas fa-download mr-1 text-xs"></i>
导出
</button>
</div>
</div>
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200 text-sm">
<thead class="bg-gray-50">
<tr>
<th class="px-4 py-2 text-left text-gray-500 font-medium">序号</th>
<th class="px-4 py-2 text-left text-gray-500 font-medium">作业类型</th>
<th class="px-4 py-2 text-left text-gray-500 font-medium">部门</th>
<th class="px-4 py-2 text-left text-gray-500 font-medium">作业人员</th>
<th class="px-4 py-2 text-left text-gray-500 font-medium">开始时间</th>
<th class="px-4 py-2 text-left text-gray-500 font-medium">结束时间</th>
<th class="px-4 py-2 text-left text-gray-500 font-medium">持续时长</th>
<th class="px-4 py-2 text-left text-gray-500 font-medium">作业数量</th>
<th class="px-4 py-2 text-left text-gray-500 font-medium">操作</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200">
<tr class="table-row">
<td class="px-4 py-2">1</td>
<td class="px-4 py-2">招聘面试</td>
<td class="px-4 py-2">人力资源部/招聘组</td>
<td class="px-4 py-2">张明远</td>
<td class="px-4 py-2">2023-11-01 09:00</td>
<td class="px-4 py-2">2023-11-01 11:30</td>
<td class="px-4 py-2">2.5小时</td>
<td class="px-4 py-2">3人</td>
<td class="px-4 py-2">
<button class="text-primary hover:text-primary-600 mr-2">
<i class="fas fa-edit text-xs"></i>
</button>
<button class="text-red-500 hover:text-red-600">
<i class="fas fa-trash-alt text-xs"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">2</td>
<td class="px-4 py-2">培训组织</td>
<td class="px-4 py-2">人力资源部</td>
<td class="px-4 py-2">李思雨</td>
<td class="px-4 py-2">2023-11-02 14:00</td>
<td class="px-4 py-2">2023-11-02 17:00</td>
<td class="px-4 py-2">3小时</td>
<td class="px-4 py-2">1场</td>
<td class="px-4 py-2">
<button class="text-primary hover:text-primary-600 mr-2">
<i class="fas fa-edit text-xs"></i>
</button>
<button class="text-red-500 hover:text-red-600">
<i class="fas fa-trash-alt text-xs"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">3</td>
<td class="px-4 py-2">绩效考核</td>
<td class="px-4 py-2">人力资源部/绩效组</td>
<td class="px-4 py-2">王建国</td>
<td class="px-4 py-2">2023-11-03 10:00</td>
<td class="px-4 py-2">2023-11-03 12:00</td>
<td class="px-4 py-2">2小时</td>
<td class="px-4 py-2">5人</td>
<td class="px-4 py-2">
<button class="text-primary hover:text-primary-600 mr-2">
<i class="fas fa-edit text-xs"></i>
</button>
<button class="text-red-500 hover:text-red-600">
<i class="fas fa-trash-alt text-xs"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">4</td>
<td class="px-4 py-2">薪酬核算</td>
<td class="px-4 py-2">人力资源部/薪酬组</td>
<td class="px-4 py-2">赵晓芳</td>
<td class="px-4 py-2">2023-11-05 09:00</td>
<td class="px-4 py-2">2023-11-05 18:00</td>
<td class="px-4 py-2">8小时</td>
<td class="px-4 py-2">128人</td>
<td class="px-4 py-2">
<button class="text-primary hover:text-primary-600 mr-2">
<i class="fas fa-edit text-xs"></i>
</button>
<button class="text-red-500 hover:text-red-600">
<i class="fas fa-trash-alt text-xs"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">5</td>
<td class="px-4 py-2">招聘面试</td>
<td class="px-4 py-2">人力资源部/招聘组</td>
<td class="px-4 py-2">张明远</td>
<td class="px-4 py-2">2023-11-08 09:30</td>
<td class="px-4 py-2">2023-11-08 12:00</td>
<td class="px-4 py-2">2.5小时</td>
<td class="px-4 py-2">4人</td>
<td class="px-4 py-2">
<button class="text-primary hover:text-primary-600 mr-2">
<i class="fas fa-edit text-xs"></i>
</button>
<button class="text-red-500 hover:text-red-600">
<i class="fas fa-trash-alt text-xs"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">6</td>
<td class="px-4 py-2">培训组织</td>
<td class="px-4 py-2">人力资源部</td>
<td class="px-4 py-2">李思雨</td>
<td class="px-4 py-2">2023-11-10 13:30</td>
<td class="px-4 py-2">2023-11-10 16:30</td>
<td class="px-4 py-2">3小时</td>
<td class="px-4 py-2">1场</td>
<td class="px-4 py-2">
<button class="text-primary hover:text-primary-600 mr-2">
<i class="fas fa-edit text-xs"></i>
</button>
<button class="text-red-500 hover:text-red-600">
<i class="fas fa-trash-alt text-xs"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">7</td>
<td class="px-4 py-2">绩效考核</td>
<td class="px-4 py-2">人力资源部/绩效组</td>
<td class="px-4 py-2">王建国</td>
<td class="px-4 py-2">2023-11-12 09:00</td>
<td class="px-4 py-2">2023-11-12 11:30</td>
<td class="px-4 py-2">2.5小时</td>
<td class="px-4 py-2">6人</td>
<td class="px-4 py-2">
<button class="text-primary hover:text-primary-600 mr-2">
<i class="fas fa-edit text-xs"></i>
</button>
<button class="text-red-500 hover:text-red-600">
<i class="fas fa-trash-alt text-xs"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">8</td>
<td class="px-4 py-2">薪酬核算</td>
<td class="px-4 py-2">人力资源部/薪酬组</td>
<td class="px-4 py-2">赵晓芳</td>
<td class="px-4 py-2">2023-11-15 09:00</td>
<td class="px-4 py-2">2023-11-15 17:30</td>
<td class="px-4 py-2">8.5小时</td>
<td class="px-4 py-2">135人</td>
<td class="px-4 py-2">
<button class="text-primary hover:text-primary-600 mr-2">
<i class="fas fa-edit text-xs"></i>
</button>
<button class="text-red-500 hover:text-red-600">
<i class="fas fa-trash-alt text-xs"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">9</td>
<td class="px-4 py-2">招聘面试</td>
<td class="px-4 py-2">人力资源部/招聘组</td>
<td class="px-4 py-2">张明远</td>
<td class="px-4 py-2">2023-11-18 09:00</td>
<td class="px-4 py-2">2023-11-18 11:00</td>
<td class="px-4 py-2">2小时</td>
<td class="px-4 py-2">2人</td>
<td class="px-4 py-2">
<button class="text-primary hover:text-primary-600 mr-2">
<i class="fas fa-edit text-xs"></i>
</button>
<button class="text-red-500 hover:text-red-600">
<i class="fas fa-trash-alt text-xs"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">10</td>
<td class="px-4 py-2">培训组织</td>
<td class="px-4 py-2">人力资源部</td>
<td class="px-4 py-2">李思雨</td>
<td class="px-4 py-2">2023-11-20 14:00</td>
<td class="px-4 py-2">2023-11-20 17:00</td>
<td class="px-4 py-2">3小时</td>
<td class="px-4 py-2">1场</td>
<td class="px-4 py-2">
<button class="text-primary hover:text-primary-600 mr-2">
<i class="fas fa-edit text-xs"></i>
</button>
<button class="text-red-500 hover:text-red-600">
<i class="fas fa-trash-alt text-xs"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 分页 -->
<div class="px-4 py-3 border-t flex items-center justify-between">
<div class="text-sm text-gray-600">
显示 <span class="font-medium">1</span><span class="font-medium">10</span> 条,共 <span class="font-medium">128</span> 条记录
</div>
<div class="flex space-x-1">
<button class="px-3 py-1 border rounded-button text-sm text-gray-700 hover:bg-gray-50 disabled:opacity-50" disabled>
上一页
</button>
<button class="px-3 py-1 border rounded-button text-sm bg-primary text-white hover:bg-primary-600">
1
</button>
<button class="px-3 py-1 border rounded-button text-sm text-gray-700 hover:bg-gray-50">
2
</button>
<button class="px-3 py-1 border rounded-button text-sm text-gray-700 hover:bg-gray-50">
3
</button>
<span class="px-3 py-1 text-sm">...</span>
<button class="px-3 py-1 border rounded-button text-sm text-gray-700 hover:bg-gray-50">
13
</button>
<button class="px-3 py-1 border rounded-button text-sm text-gray-700 hover:bg-gray-50">
下一页
</button>
</div>
</div>
</div>
</div>
</main>
<!-- 页脚 -->
<footer class="bg-gray-800 text-white py-8 w-full">
<div class="container mx-auto px-4">
<div class="grid grid-cols-4 gap-8">
<div>
<h4 class="text-sm font-semibold mb-4">关于我们</h4>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">公司简介</a></li>
<li><a href="#" class="hover:text-white">发展历程</a></li>
<li><a href="#" class="hover:text-white">企业文化</a></li>
<li><a href="#" class="hover:text-white">联系我们</a></li>
</ul>
</div>
<div>
<h4 class="text-sm font-semibold mb-4">产品服务</h4>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">人力资源系统</a></li>
<li><a href="#" class="hover:text-white">薪酬管理系统</a></li>
<li><a href="#" class="hover:text-white">绩效考核系统</a></li>
<li><a href="#" class="hover:text-white">培训发展平台</a></li>
</ul>
</div>
<div>
<h4 class="text-sm font-semibold mb-4">帮助中心</h4>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">使用指南</a></li>
<li><a href="#" class="hover:text-white">常见问题</a></li>
<li><a href="#" class="hover:text-white">视频教程</a></li>
<li><a href="#" class="hover:text-white">在线客服</a></li>
</ul>
</div>
<div>
<h4 class="text-sm font-semibold mb-4">联系我们</h4>
<ul class="space-y-2 text-xs text-gray-300">
<li class="flex items-start">
<i class="fas fa-map-marker-alt mr-2 mt-1 text-xs"></i>
<span>上海市浦东新区张江高科技园区科苑路88号</span>
</li>
<li class="flex items-center">
<i class="fas fa-phone-alt mr-2 text-xs"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fas fa-envelope mr-2 text-xs"></i>
<span>hr@company.com</span>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-6 flex flex-col md:flex-row justify-between items-center">
<div class="text-xs text-gray-400 mb-4 md:mb-0">
© 2023 人力资源管理系统 版权所有
</div>
<div class="flex space-x-4">
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-weixin text-sm"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-weibo text-sm"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-linkedin-in text-sm"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-github text-sm"></i>
</a>
</div>
</div>
</div>
</footer>
</body>
</html>

@ -1,444 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>人力资源管理系统</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.font-pacifico {
font-family: 'Pacifico', serif;
}
.fa-icon {
display: flex;
justify-content: center;
align-items: center;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type="number"] {
-moz-appearance: textfield;
}
.scroll-container {
overflow: hidden;
white-space: nowrap;
}
.scroll-content {
display: inline-block;
animation: scroll 15s linear infinite;
}
@keyframes scroll {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
</style>
</head>
<body class="min-h-[1024px] bg-secondary flex flex-col">
<!-- 顶部导航栏 -->
<!-- <header class="bg-primary text-white w-full h-16 shadow-md">
<div class="container mx-auto h-full px-6 flex items-center justify-between">
<div class="flex items-center">
<h1 class="font-pacifico text-2xl mr-10">人力</h1>
<nav class="hidden md:flex space-x-8">
<a href="#" class="text-sm hover:text-gray-200 transition">多维统计</a>
<a href="#" class="text-sm hover:text-gray-200 transition">人员管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">组织管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">考勤管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">绩效管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">薪酬管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">知识库</a>
<a href="#" class="text-sm hover:text-gray-200 transition">后台管理</a>
</nav>
</div>
<div class="flex items-center space-x-6">
<div class="relative hidden md:block">
<input type="text" placeholder="搜索..." class="bg-white text-gray-800 text-sm rounded-button pl-4 pr-10 py-2 w-48 focus:outline-none">
<i class="fas fa-search absolute right-3 top-2.5 text-gray-500 text-sm"></i>
</div>
<button class="hidden md:flex items-center space-x-1 bg-blue-600 hover:bg-blue-700 text-white text-sm px-3 py-1.5 rounded-button transition">
<i class="fas fa-robot fa-icon w-4 h-4"></i>
<span>AI助手</span>
</button>
<div class="flex items-center space-x-2 cursor-pointer">
<div class="w-8 h-8 rounded-full bg-white flex items-center justify-center">
<i class="fas fa-user text-primary"></i>
</div>
<span class="text-sm hidden md:block">张明远</span>
</div>
</div>
</div>
</header> -->
<!-- 主要内容区 -->
<main class="flex-1 container mx-auto px-6 py-8 flex">
<!-- 左侧组织架构树 -->
<div class="w-1/5 pr-6">
<div class="bg-white rounded-md shadow p-4 h-full">
<div class="flex justify-between items-center mb-4">
<h2 class="font-medium text-gray-800">组织架构</h2>
<button class="text-primary text-sm">
<i class="fas fa-sync-alt fa-icon w-4 h-4"></i>
</button>
</div>
<div class="space-y-1">
<div class="flex items-center justify-between py-1.5 px-2 bg-gray-100 rounded">
<div class="flex items-center">
<i class="fas fa-building fa-icon w-4 h-4 mr-2 text-gray-600"></i>
<span class="text-sm">集团公司</span>
</div>
<i class="fas fa-chevron-down fa-icon w-3 h-3 text-gray-500"></i>
</div>
<div class="pl-6 space-y-1">
<div class="flex items-center justify-between py-1.5 px-2 hover:bg-gray-50 rounded">
<div class="flex items-center">
<i class="fas fa-sitemap fa-icon w-4 h-4 mr-2 text-gray-600"></i>
<span class="text-sm">技术中心</span>
</div>
<i class="fas fa-chevron-down fa-icon w-3 h-3 text-gray-500"></i>
</div>
<div class="pl-6 space-y-1">
<div class="flex items-center py-1.5 px-2 hover:bg-gray-50 rounded">
<i class="fas fa-code-branch fa-icon w-4 h-4 mr-2 text-gray-600"></i>
<span class="text-sm">前端开发部</span>
</div>
<div class="flex items-center py-1.5 px-2 hover:bg-gray-50 rounded">
<i class="fas fa-code-branch fa-icon w-4 h-4 mr-2 text-gray-600"></i>
<span class="text-sm">后端开发部</span>
</div>
<div class="flex items-center py-1.5 px-2 hover:bg-gray-50 rounded">
<i class="fas fa-code-branch fa-icon w-4 h-4 mr-2 text-gray-600"></i>
<span class="text-sm">测试部</span>
</div>
</div>
<div class="flex items-center justify-between py-1.5 px-2 hover:bg-gray-50 rounded">
<div class="flex items-center">
<i class="fas fa-sitemap fa-icon w-4 h-4 mr-2 text-gray-600"></i>
<span class="text-sm">产品中心</span>
</div>
<i class="fas fa-chevron-down fa-icon w-3 h-3 text-gray-500"></i>
</div>
<div class="flex items-center justify-between py-1.5 px-2 hover:bg-gray-50 rounded">
<div class="flex items-center">
<i class="fas fa-sitemap fa-icon w-4 h-4 mr-2 text-gray-600"></i>
<span class="text-sm">市场部</span>
</div>
<i class="fas fa-chevron-down fa-icon w-3 h-3 text-gray-500"></i>
</div>
<div class="flex items-center justify-between py-1.5 px-2 hover:bg-gray-50 rounded">
<div class="flex items-center">
<i class="fas fa-sitemap fa-icon w-4 h-4 mr-2 text-gray-600"></i>
<span class="text-sm">人力资源部</span>
</div>
<i class="fas fa-chevron-down fa-icon w-3 h-3 text-gray-500"></i>
</div>
</div>
</div>
</div>
</div>
<!-- 右侧审批详情 -->
<div class="w-4/5">
<div class="bg-white rounded-md shadow p-6">
<div class="flex justify-between items-center mb-6">
<h2 class="text-xl font-semibold text-gray-800">员工异动审批详情</h2>
<div class="flex space-x-3">
<button class="bg-primary hover:bg-blue-700 text-white text-sm px-4 py-2 rounded-button transition">
<i class="fas fa-check fa-icon w-4 h-4 mr-1"></i>
<span>同意</span>
</button>
<button class="bg-red-500 hover:bg-red-600 text-white text-sm px-4 py-2 rounded-button transition">
<i class="fas fa-times fa-icon w-4 h-4 mr-1"></i>
<span>拒绝</span>
</button>
<button class="border border-gray-300 hover:bg-gray-50 text-gray-700 text-sm px-4 py-2 rounded-button transition">
<i class="fas fa-print fa-icon w-4 h-4 mr-1"></i>
<span>打印</span>
</button>
</div>
</div>
<!-- 基本信息 -->
<div class="mb-8">
<h3 class="text-lg font-medium text-gray-800 mb-4 pb-2 border-b">基本信息</h3>
<div class="grid grid-cols-3 gap-6">
<div class="col-span-1">
<div class="flex flex-col items-center">
<div class="w-32 h-32 rounded-full bg-gray-200 mb-3 overflow-hidden">
<img src="https://mastergo.com/ai/api/search-image?query=professional20asian20businessman20portrait20with20white20background20high20quality20photo20realistic20detailed20face20corporate20style20neutral20expression&width=300&height=300&orientation=squarish&flag=4bef40f432379c943d4dcedd922e3bf6"
alt="员工照片" class="w-full h-full object-cover">
</div>
<span class="text-sm text-gray-600">员工照片</span>
</div>
</div>
<div class="col-span-2">
<div class="grid grid-cols-2 gap-4">
<div>
<p class="text-sm text-gray-500 mb-1">员工姓名</p>
<p class="text-gray-800 font-medium">林志强</p>
</div>
<div>
<p class="text-sm text-gray-500 mb-1">员工编号</p>
<p class="text-gray-800 font-medium">EMP20230085</p>
</div>
<div>
<p class="text-sm text-gray-500 mb-1">原部门</p>
<p class="text-gray-800 font-medium">前端开发部</p>
</div>
<div>
<p class="text-sm text-gray-500 mb-1">新部门</p>
<p class="text-gray-800 font-medium">产品设计部</p>
</div>
<div>
<p class="text-sm text-gray-500 mb-1">原岗位</p>
<p class="text-gray-800 font-medium">高级前端工程师</p>
</div>
<div>
<p class="text-sm text-gray-500 mb-1">新岗位</p>
<p class="text-gray-800 font-medium">产品设计师</p>
</div>
<div>
<p class="text-sm text-gray-500 mb-1">异动类型</p>
<p class="text-gray-800 font-medium">部门调动</p>
</div>
<div>
<p class="text-sm text-gray-500 mb-1">异动时间</p>
<p class="text-gray-800 font-medium">2023-06-15</p>
</div>
<div class="col-span-2">
<p class="text-sm text-gray-500 mb-1">异动原因</p>
<p class="text-gray-800 font-medium">根据公司人才发展规划,结合员工个人职业发展意愿,经双方协商一致,同意调动。</p>
</div>
</div>
</div>
</div>
</div>
<!-- 证件信息 -->
<div class="mb-8">
<h3 class="text-lg font-medium text-gray-800 mb-4 pb-2 border-b">证件信息</h3>
<div class="grid grid-cols-2 gap-6">
<div>
<p class="text-sm text-gray-500 mb-2">身份证正面</p>
<div class="h-48 bg-gray-100 rounded-md overflow-hidden">
<img src="https://mastergo.com/ai/api/search-image?query=Chinese20ID20card20front20side20realistic20photo20white20background20high20resolution20detailed20text20and20portrait&width=600&height=400&orientation=landscape&flag=e6c18985431a6efddd63bff3f2e5a4e9"
alt="身份证正面" class="w-full h-full object-cover">
</div>
</div>
<div>
<p class="text-sm text-gray-500 mb-2">身份证反面</p>
<div class="h-48 bg-gray-100 rounded-md overflow-hidden">
<img src="https://mastergo.com/ai/api/search-image?query=Chinese20ID20card20back20side20realistic20photo20white20background20high20resolution20detailed20text20and20barcode&width=600&height=400&orientation=landscape&flag=2737ba49402a36d436de3b0671643607"
alt="身份证反面" class="w-full h-full object-cover">
</div>
</div>
</div>
</div>
<!-- 审批流程 -->
<div>
<h3 class="text-lg font-medium text-gray-800 mb-4 pb-2 border-b">审批流程</h3>
<div class="relative">
<!-- 时间轴 -->
<div class="absolute left-8 top-0 bottom-0 w-0.5 bg-gray-200"></div>
<!-- 流程节点 -->
<div class="space-y-8">
<!-- 提交申请 -->
<div class="relative pl-16">
<div class="absolute left-0 top-0 w-16 flex justify-center">
<div class="w-4 h-4 rounded-full bg-green-500 border-4 border-green-100"></div>
</div>
<div class="bg-green-50 rounded-md p-4">
<div class="flex justify-between items-center mb-2">
<h4 class="font-medium text-green-800">提交申请</h4>
<span class="text-sm text-green-600">2023-06-05 09:30</span>
</div>
<p class="text-sm text-gray-700">申请人:林志强</p>
</div>
</div>
<!-- 部门经理审批 -->
<div class="relative pl-16">
<div class="absolute left-0 top-0 w-16 flex justify-center">
<div class="w-4 h-4 rounded-full bg-green-500 border-4 border-green-100"></div>
</div>
<div class="bg-green-50 rounded-md p-4">
<div class="flex justify-between items-center mb-2">
<h4 class="font-medium text-green-800">部门经理审批</h4>
<span class="text-sm text-green-600">2023-06-05 14:15</span>
</div>
<p class="text-sm text-gray-700">审批人:王建国(前端开发部经理)</p>
<p class="text-sm text-gray-700 mt-1">审批意见:同意调动,该员工在产品设计方面有潜力。</p>
</div>
</div>
<!-- 技术总监审批 -->
<div class="relative pl-16">
<div class="absolute left-0 top-0 w-16 flex justify-center">
<div class="w-4 h-4 rounded-full bg-green-500 border-4 border-green-100"></div>
</div>
<div class="bg-green-50 rounded-md p-4">
<div class="flex justify-between items-center mb-2">
<h4 class="font-medium text-green-800">技术总监审批</h4>
<span class="text-sm text-green-600">2023-06-06 10:45</span>
</div>
<p class="text-sm text-gray-700">审批人:张伟(技术中心总监)</p>
<p class="text-sm text-gray-700 mt-1">审批意见:同意,符合技术人才发展规划。</p>
</div>
</div>
<!-- HR审批 -->
<div class="relative pl-16">
<div class="absolute left-0 top-0 w-16 flex justify-center">
<div class="w-4 h-4 rounded-full bg-green-500 border-4 border-green-100"></div>
</div>
<div class="bg-green-50 rounded-md p-4">
<div class="flex justify-between items-center mb-2">
<h4 class="font-medium text-green-800">HR审批</h4>
<span class="text-sm text-green-600">2023-06-07 11:20</span>
</div>
<p class="text-sm text-gray-700">审批人:李芳(人力资源部经理)</p>
<p class="text-sm text-gray-700 mt-1">审批意见:已核实相关情况,同意调动。</p>
</div>
</div>
<!-- 总经理审批 -->
<div class="relative pl-16">
<div class="absolute left-0 top-0 w-16 flex justify-center">
<div class="w-4 h-4 rounded-full bg-green-500 border-4 border-green-100"></div>
</div>
<div class="bg-green-50 rounded-md p-4">
<div class="flex justify-between items-center mb-2">
<h4 class="font-medium text-green-800">总经理审批</h4>
<span class="text-sm text-green-600">2023-06-08 16:30</span>
</div>
<p class="text-sm text-gray-700">审批人:陈明(总经理)</p>
<p class="text-sm text-gray-700 mt-1">审批意见:同意执行。</p>
</div>
</div>
<!-- 入职生效 -->
<div class="relative pl-16">
<div class="absolute left-0 top-0 w-16 flex justify-center">
<div class="w-4 h-4 rounded-full bg-blue-500 border-4 border-blue-100"></div>
</div>
<div class="bg-blue-50 rounded-md p-4">
<div class="flex justify-between items-center mb-2">
<h4 class="font-medium text-blue-800">入职生效</h4>
<span class="text-sm text-blue-600">待处理</span>
</div>
<p class="text-sm text-gray-700">计划生效日期2023-06-15</p>
</div>
</div>
<!-- 审批完结 -->
<div class="relative pl-16">
<div class="absolute left-0 top-0 w-16 flex justify-center">
<div class="w-4 h-4 rounded-full bg-gray-300 border-4 border-gray-100"></div>
</div>
<div class="bg-gray-50 rounded-md p-4">
<div class="flex justify-between items-center mb-2">
<h4 class="font-medium text-gray-800">审批完结</h4>
<span class="text-sm text-gray-500">未开始</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- 底部通栏 -->
<footer class="bg-gray-800 text-white w-full py-8">
<div class="container mx-auto px-6">
<div class="grid grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-medium mb-4">关于我们</h3>
<ul class="space-y-2">
<li><a href="#" class="text-xs text-gray-400 hover:text-white transition">公司简介</a></li>
<li><a href="#" class="text-xs text-gray-400 hover:text-white transition">发展历程</a></li>
<li><a href="#" class="text-xs text-gray-400 hover:text-white transition">企业文化</a></li>
<li><a href="#" class="text-xs text-gray-400 hover:text-white transition">管理团队</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">产品服务</h3>
<ul class="space-y-2">
<li><a href="#" class="text-xs text-gray-400 hover:text-white transition">人力资源系统</a></li>
<li><a href="#" class="text-xs text-gray-400 hover:text-white transition">薪酬管理系统</a></li>
<li><a href="#" class="text-xs text-gray-400 hover:text-white transition">绩效考核系统</a></li>
<li><a href="#" class="text-xs text-gray-400 hover:text-white transition">培训发展平台</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">联系我们</h3>
<ul class="space-y-2">
<li class="text-xs text-gray-400">电话400-888-8888</li>
<li class="text-xs text-gray-400">邮箱service@hrsystem.com</li>
<li class="text-xs text-gray-400">地址北京市海淀区科技园路88号</li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">关注我们</h3>
<div class="flex space-x-4">
<a href="#" class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center hover:bg-primary transition">
<i class="fab fa-weixin fa-icon w-4 h-4"></i>
</a>
<a href="#" class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center hover:bg-primary transition">
<i class="fab fa-weibo fa-icon w-4 h-4"></i>
</a>
<a href="#" class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center hover:bg-primary transition">
<i class="fab fa-linkedin-in fa-icon w-4 h-4"></i>
</a>
</div>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-6 text-center">
<p class="text-xs text-gray-500">© 2023 人力资源管理系统 版权所有 京ICP备12345678号</p>
</div>
</div>
</footer>
</body>
</html>

@ -1,581 +0,0 @@
<!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 rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.tree-item {
transition: all 0.3s ease;
}
.tree-item:hover {
background-color: rgba(45, 92, 246, 0.1);
}
.scroll-container {
scrollbar-width: thin;
scrollbar-color: #2D5CF6 #F5F6FA;
}
.scroll-container::-webkit-scrollbar {
width: 6px;
height: 6px;
}
.scroll-container::-webkit-scrollbar-track {
background: #F5F6FA;
}
.scroll-container::-webkit-scrollbar-thumb {
background-color: #2D5CF6;
border-radius: 20px;
}
.marquee {
animation: marquee 20s linear infinite;
}
@keyframes marquee {
0% { transform: translateX(100%); }
100% { transform: translateX(-100%); }
}
.dropdown:hover .dropdown-menu {
display: block;
}
i.fa-icon {
display: flex;
justify-content: center;
align-items: center;
width: 20px;
height: 20px;
}
</style>
</head>
<body class="min-h-[1024px] bg-secondary font-sans text-gray-800">
<!-- 顶部导航栏 -->
<!-- <header class="w-full bg-primary text-white shadow-md">
<div class="container mx-auto px-6 h-16 flex items-center justify-between">
<div class="flex items-center space-x-8">
<a href="#" class="text-xl font-['Pacifico']">人力</a>
<nav class="hidden md:flex space-x-6 text-sm">
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button">多维统计</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button">人员管理</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button">组织管理</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button">考勤管理</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button">绩效管理</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button">薪酬管理</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button">知识库</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button">后台管理</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative">
<input type="text" placeholder="搜索..." class="bg-white/20 border-none text-white placeholder-white/70 rounded-button pl-8 pr-4 py-1 text-sm w-40 focus:w-60 transition-all duration-300 focus:outline-none">
<i class="fas fa-search fa-icon absolute left-2 top-1/2 transform -translate-y-1/2 text-white/70"></i>
</div>
<div class="relative group">
<div class="flex items-center space-x-2 cursor-pointer">
<div class="w-8 h-8 rounded-full bg-white/20 flex items-center justify-center">
<i class="fas fa-user fa-icon text-white"></i>
</div>
<span class="text-sm">张明远</span>
</div>
<div class="absolute right-0 mt-2 w-48 bg-white rounded-md shadow-lg z-10 hidden group-hover:block">
<div class="py-1">
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">个人中心</a>
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">系统设置</a>
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">退出登录</a>
</div>
</div>
</div>
<button class="bg-white text-primary rounded-button px-3 py-1 text-sm flex items-center space-x-1 hover:bg-white/90">
<i class="fas fa-robot fa-icon"></i>
<span>AI助手</span>
</button>
</div>
</div>
</header> -->
<!-- 公告栏 -->
<div class="bg-white border-b border-gray-200">
<div class="container mx-auto px-6 py-2 overflow-hidden">
<div class="flex items-center">
<span class="bg-red-500 text-white text-xs px-2 py-1 rounded-button mr-3 whitespace-nowrap">最新公告</span>
<div class="overflow-hidden">
<div class="marquee whitespace-nowrap">
<span class="text-sm mr-8">系统将于2023年12月15日00:00-06:00进行升级维护</span>
<span class="text-sm mr-8">2023年度绩效考核工作已启动请各部门按时完成</span>
<span class="text-sm mr-8">新员工入职培训将于本周五下午2点在3楼会议室举行</span>
</div>
</div>
</div>
</div>
</div>
<!-- 主内容区 -->
<main class="container mx-auto px-6 py-8">
<div class="flex justify-between items-center mb-6">
<h1 class="text-2xl font-bold text-gray-800">数据字典管理</h1>
<div class="flex space-x-3">
<button class="bg-primary text-white rounded-button px-4 py-2 text-sm flex items-center space-x-1 hover:bg-primary/90">
<i class="fas fa-plus fa-icon"></i>
<span>新增元数据域</span>
</button>
<button class="bg-white border border-gray-300 rounded-button px-4 py-2 text-sm flex items-center space-x-1 hover:bg-gray-50">
<i class="fas fa-download fa-icon"></i>
<span>导出配置</span>
</button>
</div>
</div>
<div class="bg-white rounded-lg shadow-md overflow-hidden">
<div class="flex border-b border-gray-200">
<div class="w-1/4 border-r border-gray-200">
<div class="p-4 border-b border-gray-200">
<div class="relative">
<input type="text" placeholder="搜索元数据域..." class="w-full border border-gray-300 rounded-button pl-8 pr-4 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<i class="fas fa-search fa-icon absolute left-2 top-1/2 transform -translate-y-1/2 text-gray-400"></i>
</div>
</div>
<div class="h-[600px] overflow-y-auto scroll-container">
<div class="p-2">
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center justify-between">
<div class="flex items-center space-x-2">
<i class="fas fa-folder fa-icon text-yellow-500"></i>
<span>基础信息</span>
</div>
<i class="fas fa-chevron-down fa-icon text-gray-500"></i>
</div>
<div class="ml-6 mt-1">
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center space-x-2">
<i class="fas fa-id-card fa-icon text-blue-500"></i>
<span>员工编号</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center space-x-2">
<i class="fas fa-user fa-icon text-blue-500"></i>
<span>姓名</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center space-x-2">
<i class="fas fa-venus-mars fa-icon text-blue-500"></i>
<span>性别</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center space-x-2">
<i class="fas fa-birthday-cake fa-icon text-blue-500"></i>
<span>出生日期</span>
</div>
</div>
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center justify-between mt-2">
<div class="flex items-center space-x-2">
<i class="fas fa-folder fa-icon text-yellow-500"></i>
<span>技术职务</span>
</div>
<i class="fas fa-chevron-right fa-icon text-gray-500"></i>
</div>
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center justify-between mt-2">
<div class="flex items-center space-x-2">
<i class="fas fa-folder fa-icon text-yellow-500"></i>
<span>行政职务</span>
</div>
<i class="fas fa-chevron-down fa-icon text-gray-500"></i>
</div>
<div class="ml-6 mt-1">
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center space-x-2">
<i class="fas fa-sitemap fa-icon text-blue-500"></i>
<span>行政级别</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center space-x-2">
<i class="fas fa-money-bill-wave fa-icon text-blue-500"></i>
<span>级别待遇</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center space-x-2">
<i class="fas fa-calendar-alt fa-icon text-blue-500"></i>
<span>任职时间</span>
</div>
</div>
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center justify-between mt-2">
<div class="flex items-center space-x-2">
<i class="fas fa-folder fa-icon text-yellow-500"></i>
<span>联系方式</span>
</div>
<i class="fas fa-chevron-right fa-icon text-gray-500"></i>
</div>
<div class="tree-item cursor-pointer p-2 rounded-button flex items-center justify-between mt-2">
<div class="flex items-center space-x-2">
<i class="fas fa-folder fa-icon text-yellow-500"></i>
<span>其他信息</span>
</div>
<i class="fas fa-chevron-right fa-icon text-gray-500"></i>
</div>
</div>
</div>
</div>
<div class="w-3/4">
<div class="p-4 border-b border-gray-200 flex justify-between items-center">
<h2 class="text-lg font-semibold">行政职务 - 属性配置</h2>
<button class="bg-primary text-white rounded-button px-3 py-1 text-sm flex items-center space-x-1 hover:bg-primary/90">
<i class="fas fa-plus fa-icon"></i>
<span>新增属性</span>
</button>
</div>
<div class="h-[600px] overflow-y-auto scroll-container">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">属性名称</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">显示名称</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">数据类型</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">是否必填</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">默认值</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">操作</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">admin_level</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">行政级别</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-blue-100 text-blue-800 rounded-button text-xs">列表</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-green-100 text-green-800 rounded-button text-xs"></span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">-</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-primary/80 mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">level_benefit</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">级别待遇</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-blue-100 text-blue-800 rounded-button text-xs">列表</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-green-100 text-green-800 rounded-button text-xs"></span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">-</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-primary/80 mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">appointment_date</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">任职时间</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-purple-100 text-purple-800 rounded-button text-xs">日期</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-green-100 text-green-800 rounded-button text-xs"></span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">系统当前日期</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-primary/80 mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">department</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">所属部门</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-blue-100 text-blue-800 rounded-button text-xs">列表</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-green-100 text-green-800 rounded-button text-xs"></span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">-</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-primary/80 mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">job_title</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">职务名称</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-indigo-100 text-indigo-800 rounded-button text-xs">文本</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-green-100 text-green-800 rounded-button text-xs"></span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">-</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-primary/80 mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">is_leader</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">是否领导职务</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-pink-100 text-pink-800 rounded-button text-xs">布尔</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<span class="px-2 py-1 bg-gray-100 text-gray-800 rounded-button text-xs"></span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500"></td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-primary/80 mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- 列表数据配置弹窗 -->
<div class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden" id="listConfigModal">
<div class="bg-white rounded-lg shadow-xl w-1/2 max-h-[80vh] overflow-hidden">
<div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center">
<h3 class="text-lg font-semibold">列表数据配置 - 行政级别</h3>
<button onclick="document.getElementById('listConfigModal').classList.add('hidden')" class="text-gray-400 hover:text-gray-500">
<i class="fas fa-times fa-icon"></i>
</button>
</div>
<div class="p-6 overflow-y-auto h-[60vh]">
<div class="mb-6">
<label class="block text-sm font-medium text-gray-700 mb-1">数据来源</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="staticData" name="dataSource" type="radio" class="h-4 w-4 text-primary focus:ring-primary border-gray-300" checked>
<label for="staticData" class="ml-2 block text-sm text-gray-700">静态数据</label>
</div>
<div class="flex items-center">
<input id="apiData" name="dataSource" type="radio" class="h-4 w-4 text-primary focus:ring-primary border-gray-300">
<label for="apiData" class="ml-2 block text-sm text-gray-700">API接口</label>
</div>
<div class="flex items-center">
<input id="functionData" name="dataSource" type="radio" class="h-4 w-4 text-primary focus:ring-primary border-gray-300">
<label for="functionData" class="ml-2 block text-sm text-gray-700">回调函数</label>
</div>
</div>
</div>
<div id="staticDataConfig">
<div class="mb-4">
<label class="block text-sm font-medium text-gray-700 mb-1">数据项</label>
<div class="bg-gray-50 rounded-lg p-4">
<div class="flex items-center justify-between mb-2">
<span class="text-sm font-medium">数据项列表</span>
<button class="text-primary text-sm flex items-center">
<i class="fas fa-plus fa-icon mr-1"></i>
<span>添加项</span>
</button>
</div>
<div class="space-y-2">
<div class="flex items-center space-x-2">
<input type="text" class="flex-1 border border-gray-300 rounded-button px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" value="1级">
<input type="text" class="flex-1 border border-gray-300 rounded-button px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" value="1">
<button class="text-red-500">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</div>
<div class="flex items-center space-x-2">
<input type="text" class="flex-1 border border-gray-300 rounded-button px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" value="2级">
<input type="text" class="flex-1 border border-gray-300 rounded-button px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" value="2">
<button class="text-red-500">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</div>
<div class="flex items-center space-x-2">
<input type="text" class="flex-1 border border-gray-300 rounded-button px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" value="3级">
<input type="text" class="flex-1 border border-gray-300 rounded-button px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" value="3">
<button class="text-red-500">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</div>
<div class="flex items-center space-x-2">
<input type="text" class="flex-1 border border-gray-300 rounded-button px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" value="4级">
<input type="text" class="flex-1 border border-gray-300 rounded-button px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" value="4">
<button class="text-red-500">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</div>
</div>
</div>
</div>
</div>
<div id="apiDataConfig" class="hidden">
<div class="mb-4">
<label class="block text-sm font-medium text-gray-700 mb-1">API地址</label>
<input type="text" class="w-full border border-gray-300 rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" placeholder="请输入API地址">
</div>
<div class="mb-4">
<label class="block text-sm font-medium text-gray-700 mb-1">请求方法</label>
<select class="w-full border border-gray-300 rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>GET</option>
<option>POST</option>
<option>PUT</option>
<option>DELETE</option>
</select>
</div>
<div class="mb-4">
<label class="block text-sm font-medium text-gray-700 mb-1">请求参数</label>
<div class="bg-gray-50 rounded-lg p-4">
<div class="flex items-center justify-between mb-2">
<span class="text-sm font-medium">参数列表</span>
<button class="text-primary text-sm flex items-center">
<i class="fas fa-plus fa-icon mr-1"></i>
<span>添加参数</span>
</button>
</div>
<div class="space-y-2">
<div class="flex items-center space-x-2">
<input type="text" class="flex-1 border border-gray-300 rounded-button px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" placeholder="参数名">
<input type="text" class="flex-1 border border-gray-300 rounded-button px-3 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" placeholder="参数值">
<button class="text-red-500">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</div>
</div>
</div>
</div>
</div>
<div id="functionDataConfig" class="hidden">
<div class="mb-4">
<label class="block text-sm font-medium text-gray-700 mb-1">函数名称</label>
<input type="text" class="w-full border border-gray-300 rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" placeholder="请输入函数名称">
</div>
<div class="mb-4">
<label class="block text-sm font-medium text-gray-700 mb-1">函数代码</label>
<textarea class="w-full border border-gray-300 rounded-button px-3 py-2 text-sm font-mono h-40 focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary" placeholder="// 请在此处编写回调函数代码"></textarea>
</div>
</div>
</div>
<div class="px-6 py-4 border-t border-gray-200 flex justify-end space-x-3">
<button onclick="document.getElementById('listConfigModal').classList.add('hidden')" class="bg-white border border-gray-300 rounded-button px-4 py-2 text-sm hover:bg-gray-50">取消</button>
<button class="bg-primary text-white rounded-button px-4 py-2 text-sm hover:bg-primary/90">保存配置</button>
</div>
</div>
</div>
</main>
<!-- 底部区域 -->
<footer class="w-full bg-gray-800 text-white mt-auto">
<div class="container mx-auto px-6 py-8">
<div class="grid grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-semibold uppercase tracking-wider mb-4">关于我们</h3>
<ul class="space-y-2 text-sm">
<li><a href="#" class="hover:text-gray-300">公司简介</a></li>
<li><a href="#" class="hover:text-gray-300">发展历程</a></li>
<li><a href="#" class="hover:text-gray-300">企业文化</a></li>
<li><a href="#" class="hover:text-gray-300">荣誉资质</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold uppercase tracking-wider mb-4">产品服务</h3>
<ul class="space-y-2 text-sm">
<li><a href="#" class="hover:text-gray-300">人力资源系统</a></li>
<li><a href="#" class="hover:text-gray-300">薪酬管理系统</a></li>
<li><a href="#" class="hover:text-gray-300">绩效考核系统</a></li>
<li><a href="#" class="hover:text-gray-300">培训发展平台</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold uppercase tracking-wider mb-4">帮助中心</h3>
<ul class="space-y-2 text-sm">
<li><a href="#" class="hover:text-gray-300">使用文档</a></li>
<li><a href="#" class="hover:text-gray-300">视频教程</a></li>
<li><a href="#" class="hover:text-gray-300">常见问题</a></li>
<li><a href="#" class="hover:text-gray-300">在线客服</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold uppercase tracking-wider mb-4">联系我们</h3>
<ul class="space-y-2 text-sm">
<li class="flex items-start">
<i class="fas fa-map-marker-alt fa-icon mt-1 mr-2"></i>
<span>北京市海淀区中关村软件园2号楼A座3层</span>
</li>
<li class="flex items-center">
<i class="fas fa-phone-alt fa-icon mr-2"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fas fa-envelope fa-icon mr-2"></i>
<span>service@hrsystem.com</span>
</li>
</ul>
</div>
</div>
<div class="mt-8 pt-8 border-t border-gray-700 flex justify-between items-center">
<div class="text-sm">
© 2023 人力资源管理系统. 保留所有权利.
</div>
<div class="flex space-x-6">
<a href="#" class="hover:text-gray-300">
<i class="fab fa-weixin fa-icon"></i>
</a>
<a href="#" class="hover:text-gray-300">
<i class="fab fa-weibo fa-icon"></i>
</a>
<a href="#" class="hover:text-gray-300">
<i class="fab fa-linkedin fa-icon"></i>
</a>
<a href="#" class="hover:text-gray-300">
<i class="fab fa-github fa-icon"></i>
</a>
</div>
</div>
</div>
</footer>
</body>
</html>

@ -1,400 +0,0 @@
<!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 rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/5.5.0/echarts.min.js"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA',
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.fa-icon {
display: flex;
justify-content: center;
align-items: center;
}
.scroll-container {
overflow: hidden;
white-space: nowrap;
}
.scroll-content {
display: inline-block;
animation: scroll 20s linear infinite;
}
@keyframes scroll {
0% { transform: translateX(0); }
100% { transform: translateX(-100%); }
}
.card-hover:hover {
transform: translateY(-4px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
</style>
</head>
<body class="min-h-[1024px] flex flex-col bg-secondary">
<!-- 顶部导航栏 -->
<!-- <header class="w-full bg-primary text-white shadow-md">
<div class="container mx-auto px-6 h-[60px] flex items-center justify-between">
<div class="flex items-center space-x-8">
<a href="#" class="text-2xl font-['Pacifico']">人力</a>
<nav class="hidden md:flex space-x-6">
<a href="#" class="text-sm hover:opacity-80">多维统计</a>
<a href="#" class="text-sm hover:opacity-80">人员管理</a>
<a href="#" class="text-sm hover:opacity-80">组织管理</a>
<a href="#" class="text-sm hover:opacity-80">考勤管理</a>
<a href="#" class="text-sm hover:opacity-80">绩效管理</a>
<a href="#" class="text-sm hover:opacity-80">薪酬管理</a>
<a href="#" class="text-sm font-semibold hover:opacity-80">知识库</a>
<a href="#" class="text-sm hover:opacity-80">后台管理</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative hidden md:block">
<input type="text" placeholder="搜索..." class="py-1 pl-8 pr-4 text-sm rounded-button bg-white bg-opacity-20 placeholder-white focus:outline-none focus:ring-1 focus:ring-white">
<i class="fas fa-search fa-icon text-sm absolute left-2 top-1/2 transform -translate-y-1/2"></i>
</div>
<button class="flex items-center space-x-1 bg-white bg-opacity-20 px-3 py-1 rounded-button hover:bg-opacity-30">
<i class="fas fa-robot fa-icon text-sm"></i>
<span class="text-sm whitespace-nowrap">AI 助手</span>
</button>
<div class="w-8 h-8 rounded-full bg-white flex items-center justify-center overflow-hidden">
<img src="https://mastergo.com/ai/api/search-image?query=professional20business20profile20photo20of20a20young20asian20female20executive20with20short20hair20wearing20formal20attire20against20a20neutral20light20gray20background&width=80&height=80&orientation=squarish&flag=7fe686c57027aca4551bef56744d5fdf" alt="用户头像" class="w-full h-full object-cover">
</div>
</div>
</div>
</header> -->
<!-- 主内容区域 -->
<main class="flex-1 container mx-auto px-6 py-8">
<!-- 面包屑导航 -->
<!-- <div class="flex items-center text-sm text-gray-600 mb-4">
<a href="#" class="hover:text-primary">首页</a>
<i class="fas fa-chevron-right fa-icon mx-2 text-xs"></i>
<span>知识库</span>
</div> -->
<!-- 页面标题和操作区 -->
<div class="flex justify-between items-center mb-6">
<h1 class="text-2xl font-bold text-gray-800">知识库管理</h1>
<div class="flex space-x-3">
<div class="relative">
<input type="text" placeholder="搜索知识..." class="py-2 pl-10 pr-4 text-sm rounded-button border border-gray-300 focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<i class="fas fa-search fa-icon text-gray-400 absolute left-3 top-1/2 transform -translate-y-1/2"></i>
</div>
<button class="bg-primary text-white px-4 py-2 rounded-button hover:bg-opacity-90 flex items-center space-x-2">
<i class="fas fa-plus fa-icon text-sm"></i>
<span class="whitespace-nowrap">新建知识</span>
</button>
</div>
</div>
<!-- 公告栏 -->
<div class="bg-white rounded-md shadow-sm p-3 mb-6">
<div class="flex items-center">
<div class="bg-yellow-100 text-yellow-800 px-2 py-1 rounded-button text-xs font-medium mr-3">公告</div>
<div class="scroll-container w-full">
<div class="scroll-content text-sm text-gray-700">
<span class="mr-8">系统将于 2023 年 12 月 15 日 00:00 - 02:00 进行维护升级</span>
<span class="mr-8">新员工入职指南已更新,请及时查阅</span>
<span class="mr-8">2023 年度绩效考核标准已发布</span>
<span class="mr-8">系统将于 2023 年 12 月 15 日 00:00 - 02:00 进行维护升级</span>
</div>
</div>
</div>
</div>
<!-- 分类筛选 -->
<div class="flex items-center space-x-4 mb-6 overflow-x-auto pb-2">
<button class="px-4 py-2 bg-primary text-white rounded-button whitespace-nowrap">全部</button>
<button class="px-4 py-2 bg-white border border-gray-200 rounded-button hover:bg-gray-50 whitespace-nowrap">政策制度</button>
<button class="px-4 py-2 bg-white border border-gray-200 rounded-button hover:bg-gray-50 whitespace-nowrap">操作手册</button>
<button class="px-4 py-2 bg-white border border-gray-200 rounded-button hover:bg-gray-50 whitespace-nowrap">培训资料</button>
<button class="px-4 py-2 bg-white border border-gray-200 rounded-button hover:bg-gray-50 whitespace-nowrap">常见问题</button>
<button class="px-4 py-2 bg-white border border-gray-200 rounded-button hover:bg-gray-50 whitespace-nowrap">模板下载</button>
</div>
<!-- 知识卡片列表 -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8">
<!-- 卡片1 -->
<div class="bg-white rounded-md shadow-sm overflow-hidden transition-all duration-300 card-hover">
<div class="h-40 overflow-hidden">
<img src="https://mastergo.com/ai/api/search-image?query=a20modern20business20document20with20clean20design20and20minimalist20layout20on20a20white20desk20with20a20pen20and20coffee20cup20in20the20background&width=400&height=200&orientation=landscape&flag=1e4cf2beacde2cc80fc63a0f89a9703a" alt="文档封面" class="w-full h-full object-cover">
</div>
<div class="p-4">
<div class="flex justify-between items-start mb-2">
<h3 class="font-medium text-gray-800">2023 年员工手册</h3>
<span class="bg-blue-100 text-blue-800 text-xs px-2 py-1 rounded-button">政策制度</span>
</div>
<p class="text-sm text-gray-600 mb-3 line-clamp-2">包含公司文化、行为规范、考勤制度、福利政策等最新修订版员工手册,适用于全体员工。</p>
<div class="flex justify-between items-center text-xs text-gray-500">
<span>更新于 2023-11-20</span>
<span>下载 128 次</span>
</div>
<div class="mt-3 flex space-x-2">
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-eye fa-icon mr-1"></i> 预览
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-download fa-icon mr-1"></i> 下载
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-share-alt fa-icon mr-1"></i> 分享
</button>
</div>
</div>
</div>
<!-- 卡片2 -->
<div class="bg-white rounded-md shadow-sm overflow-hidden transition-all duration-300 card-hover">
<div class="h-40 overflow-hidden">
<img src="https://mastergo.com/ai/api/search-image?query=a20step20by20step20illustration20of20HR20software20interface20with20clear20numbering20and20annotations20on20a20light20gray20background&width=400&height=200&orientation=landscape&flag=108451af3b1eb2058f31b710d4071080" alt="操作手册封面" class="w-full h-full object-cover">
</div>
<div class="p-4">
<div class="flex justify-between items-start mb-2">
<h3 class="font-medium text-gray-800">考勤系统操作指南</h3>
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded-button">操作手册</span>
</div>
<p class="text-sm text-gray-600 mb-3 line-clamp-2">详细说明如何使用公司考勤系统,包括打卡、请假申请、加班申请、考勤异常处理等操作步骤。</p>
<div class="flex justify-between items-center text-xs text-gray-500">
<span>更新于 2023-10-15</span>
<span>下载 256 次</span>
</div>
<div class="mt-3 flex space-x-2">
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-eye fa-icon mr-1"></i> 预览
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-download fa-icon mr-1"></i> 下载
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-share-alt fa-icon mr-1"></i> 分享
</button>
</div>
</div>
</div>
<!-- 卡片3 -->
<div class="bg-white rounded-md shadow-sm overflow-hidden transition-all duration-300 card-hover">
<div class="h-40 overflow-hidden">
<img src="https://mastergo.com/ai/api/search-image?query=a20professional20training20presentation20slide20with20bullet20points20and20infographics20on20a20projector20screen20in20a20meeting20room&width=400&height=200&orientation=landscape&flag=91a52e2f3cc2550ca2a643ea105f2d4b" alt="培训资料封面" class="w-full h-full object-cover">
</div>
<div class="p-4">
<div class="flex justify-between items-start mb-2">
<h3 class="font-medium text-gray-800">新员工入职培训</h3>
<span class="bg-purple-100 text-purple-800 text-xs px-2 py-1 rounded-button">培训资料</span>
</div>
<p class="text-sm text-gray-600 mb-3 line-clamp-2">新员工入职培训全套资料,包含公司介绍、部门职能、产品知识、安全规范等内容。</p>
<div class="flex justify-between items-center text-xs text-gray-500">
<span>更新于 2023-09-28</span>
<span>下载 189 次</span>
</div>
<div class="mt-3 flex space-x-2">
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-eye fa-icon mr-1"></i> 预览
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-download fa-icon mr-1"></i> 下载
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-share-alt fa-icon mr-1"></i> 分享
</button>
</div>
</div>
</div>
<!-- 卡片4 -->
<div class="bg-white rounded-md shadow-sm overflow-hidden transition-all duration-300 card-hover">
<div class="h-40 overflow-hidden">
<img src="https://mastergo.com/ai/api/search-image?query=a20frequently20asked20questions20list20with20question20marks20and20answers20in20a20modern20digital20interface20design&width=400&height=200&orientation=landscape&flag=923ef06f9362683938111ad04bb8643c" alt="FAQ封面" class="w-full h-full object-cover">
</div>
<div class="p-4">
<div class="flex justify-between items-start mb-2">
<h3 class="font-medium text-gray-800">HR 系统常见问题</h3>
<span class="bg-orange-100 text-orange-800 text-xs px-2 py-1 rounded-button">常见问题</span>
</div>
<p class="text-sm text-gray-600 mb-3 line-clamp-2">整理了员工在使用 HR 系统过程中遇到的常见问题及解决方案,持续更新中。</p>
<div class="flex justify-between items-center text-xs text-gray-500">
<span>更新于 2023-11-05</span>
<span>浏览 342 次</span>
</div>
<div class="mt-3 flex space-x-2">
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-eye fa-icon mr-1"></i> 查看
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-bookmark fa-icon mr-1"></i> 收藏
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-share-alt fa-icon mr-1"></i> 分享
</button>
</div>
</div>
</div>
<!-- 卡片5 -->
<div class="bg-white rounded-md shadow-sm overflow-hidden transition-all duration-300 card-hover">
<div class="h-40 overflow-hidden">
<img src="https://mastergo.com/ai/api/search-image?query=a20collection20of20office20document20templates20including20forms20and20contracts20neatly20stacked20on20a20desk20with20a20laptop&width=400&height=200&orientation=landscape&flag=2a11c867bb72b869508c9cbccb7f198c" alt="模板封面" class="w-full h-full object-cover">
</div>
<div class="p-4">
<div class="flex justify-between items-start mb-2">
<h3 class="font-medium text-gray-800">人力资源常用模板</h3>
<span class="bg-red-100 text-red-800 text-xs px-2 py-1 rounded-button">模板下载</span>
</div>
<p class="text-sm text-gray-600 mb-3 line-clamp-2">包含劳动合同、离职申请表、转正申请表、调岗申请表等常用人力资源表格模板。</p>
<div class="flex justify-between items-center text-xs text-gray-500">
<span>更新于 2023-08-12</span>
<span>下载 421 次</span>
</div>
<div class="mt-3 flex space-x-2">
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-eye fa-icon mr-1"></i> 预览
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-download fa-icon mr-1"></i> 下载
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-share-alt fa-icon mr-1"></i> 分享
</button>
</div>
</div>
</div>
<!-- 卡片6 -->
<div class="bg-white rounded-md shadow-sm overflow-hidden transition-all duration-300 card-hover">
<div class="h-40 overflow-hidden">
<img src="https://mastergo.com/ai/api/search-image?query=a20performance20management20framework20diagram20with20key20metrics20and20evaluation20criteria20presented20in20a20modern20corporate20style&width=400&height=200&orientation=landscape&flag=72c9f106f07f07f22208f2c8edfd99fb" alt="绩效封面" class="w-full h-full object-cover">
</div>
<div class="p-4">
<div class="flex justify-between items-start mb-2">
<h3 class="font-medium text-gray-800">绩效考核标准与流程</h3>
<span class="bg-blue-100 text-blue-800 text-xs px-2 py-1 rounded-button">政策制度</span>
</div>
<p class="text-sm text-gray-600 mb-3 line-clamp-2">详细说明公司绩效考核的标准、流程、时间节点及评分细则,适用于管理人员参考。</p>
<div class="flex justify-between items-center text-xs text-gray-500">
<span>更新于 2023-07-30</span>
<span>下载 178 次</span>
</div>
<div class="mt-3 flex space-x-2">
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-eye fa-icon mr-1"></i> 预览
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-download fa-icon mr-1"></i> 下载
</button>
<button class="text-primary hover:text-primary-dark text-sm flex items-center">
<i class="fas fa-share-alt fa-icon mr-1"></i> 分享
</button>
</div>
</div>
</div>
</div>
<!-- 分页 -->
<div class="flex justify-center mt-8">
<nav class="inline-flex rounded-md shadow-sm">
<button class="px-3 py-1 rounded-l-md border border-gray-300 bg-white text-gray-700 hover:bg-gray-50">
<i class="fas fa-chevron-left fa-icon"></i>
</button>
<button class="px-3 py-1 border-t border-b border-gray-300 bg-primary text-white">1</button>
<button class="px-3 py-1 border-t border-b border-gray-300 bg-white text-gray-700 hover:bg-gray-50">2</button>
<button class="px-3 py-1 border-t border-b border-gray-300 bg-white text-gray-700 hover:bg-gray-50">3</button>
<button class="px-3 py-1 border-t border-b border-gray-300 bg-white text-gray-700 hover:bg-gray-50">4</button>
<button class="px-3 py-1 border-t border-b border-gray-300 bg-white text-gray-700 hover:bg-gray-50">5</button>
<button class="px-3 py-1 rounded-r-md border border-gray-300 bg-white text-gray-700 hover:bg-gray-50">
<i class="fas fa-chevron-right fa-icon"></i>
</button>
</nav>
</div>
</main>
<!-- 页脚 -->
<footer class="w-full bg-gray-800 text-white py-8">
<div class="container mx-auto px-6">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-6">
<div>
<h3 class="text-lg font-medium mb-4">关于我们</h3>
<ul class="space-y-2 text-sm text-gray-300">
<li><a href="#" class="hover:text-white">公司简介</a></li>
<li><a href="#" class="hover:text-white">发展历程</a></li>
<li><a href="#" class="hover:text-white">企业文化</a></li>
<li><a href="#" class="hover:text-white">团队介绍</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-medium mb-4">帮助中心</h3>
<ul class="space-y-2 text-sm text-gray-300">
<li><a href="#" class="hover:text-white">使用指南</a></li>
<li><a href="#" class="hover:text-white">常见问题</a></li>
<li><a href="#" class="hover:text-white">视频教程</a></li>
<li><a href="#" class="hover:text-white">在线客服</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-medium mb-4">联系我们</h3>
<ul class="space-y-2 text-sm text-gray-300">
<li><i class="fas fa-map-marker-alt fa-icon mr-2"></i> 北京市海淀区中关村南大街5号</li>
<li><i class="fas fa-phone fa-icon mr-2"></i> 400-888-8888</li>
<li><i class="fas fa-envelope fa-icon mr-2"></i> hr@company.com</li>
<li><i class="fas fa-clock fa-icon mr-2"></i> 周一至周五 9:00-18:00</li>
</ul>
</div>
<div>
<h3 class="text-lg font-medium mb-4">关注我们</h3>
<div class="flex space-x-4 mb-4">
<a href="#" class="w-8 h-8 bg-gray-700 rounded-full flex items-center justify-center hover:bg-primary">
<i class="fab fa-weixin fa-icon"></i>
</a>
<a href="#" class="w-8 h-8 bg-gray-700 rounded-full flex items-center justify-center hover:bg-primary">
<i class="fab fa-weibo fa-icon"></i>
</a>
<a href="#" class="w-8 h-8 bg-gray-700 rounded-full flex items-center justify-center hover:bg-primary">
<i class="fab fa-linkedin-in fa-icon"></i>
</a>
<a href="#" class="w-8 h-8 bg-gray-700 rounded-full flex items-center justify-center hover:bg-primary">
<i class="fab fa-github fa-icon"></i>
</a>
</div>
<p class="text-sm text-gray-300">订阅我们的新闻通讯</p>
<div class="mt-2 flex">
<input type="email" placeholder="您的邮箱" class="py-2 px-3 text-sm rounded-l-md border-none focus:outline-none focus:ring-1 focus:ring-primary w-full">
<button class="bg-primary text-white px-3 py-2 rounded-r-md hover:bg-opacity-90">
<i class="fas fa-paper-plane fa-icon"></i>
</button>
</div>
</div>
</div>
<div class="pt-6 border-t border-gray-700 text-center text-sm text-gray-400">
<p>© 2023 人力管理系统 版权所有 | 京ICP备12345678号-1 | 京公网安备11010802012345号</p>
</div>
</div>
</footer>
</body>
</html>

@ -1,510 +0,0 @@
<!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 rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.font-logo {
font-family: "Pacifico", serif;
}
.fa-icon {
display: flex;
justify-content: center;
align-items: center;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type="number"] {
-moz-appearance: textfield;
}
.org-node {
transition: all 0.3s ease;
}
.org-node:hover {
transform: translateY(-2px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.marquee {
animation: marquee 20s linear infinite;
}
@keyframes marquee {
0% {
transform: translateX(100%);
}
100% {
transform: translateX(-100%);
}
}
</style>
</head>
<body class="bg-gray-50 min-h-[1024px] flex flex-col">
<!-- 顶部导航栏 -->
<!-- <header class="bg-primary text-white shadow-md fixed top-0 left-0 right-0 z-50">
<div class="container mx-auto px-4 h-16 flex items-center justify-between">
<div class="flex items-center">
<div class="font-logo text-2xl mr-10">人力</div>
<nav class="hidden md:flex space-x-6">
<a href="#" class="text-sm hover:text-gray-200 transition">多维统计</a>
<a href="#" class="text-sm hover:text-gray-200 transition">人员管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">组织管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">考勤管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">绩效管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">薪酬管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">知识库</a>
<a href="#" class="text-sm hover:text-gray-200 transition">后台管理</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative hidden md:block">
<input type="text" placeholder="搜索..."
class="bg-white text-gray-800 text-sm rounded-button pl-3 pr-8 py-1 w-40 focus:outline-none focus:ring-2 focus:ring-blue-300">
<i
class="fas fa-search absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 fa-icon w-4 h-4"></i>
</div>
<div class="relative">
<img src="https://mastergo.com/ai/api/search-image?query=professional20asian20business20woman20portrait20with20white20background20high20quality20photorealistic20detailed20facial20features20corporate20attire&width=40&height=40&orientation=squarish&flag=eb8362eb2348067d24cec632e6a759b0"
alt="用户头像" class="w-8 h-8 rounded-full object-cover cursor-pointer">
</div>
<button
class="bg-white text-primary text-sm px-3 py-1 rounded-button flex items-center space-x-1 hover:bg-gray-100 transition">
<i class="fas fa-robot fa-icon w-4 h-4"></i>
<span>AI助手</span>
</button>
<button class="md:hidden text-white">
<i class="fas fa-bars fa-icon w-6 h-6"></i>
</button>
</div>
</div>
</header> -->
<!-- 主要内容区 -->
<main class="flex-grow container mx-auto px-4 mb-8">
<!-- 公告栏 -->
<div class="bg-white rounded-md shadow-sm p-3 mb-6 overflow-hidden">
<div class="flex items-center">
<div
class="bg-yellow-100 text-yellow-800 rounded-md px-2 py-1 text-xs font-medium mr-3 whitespace-nowrap">
<i class="fas fa-bullhorn fa-icon w-3 h-3 mr-1"></i>
公告
</div>
<div class="overflow-hidden">
<div class="marquee whitespace-nowrap">
<span class="text-sm mr-8">2023年度绩效考核方案已发布请各部门负责人及时查阅</span>
<span class="text-sm mr-8">系统将于2023年12月25日00:00-06:00进行升级维护</span>
<span class="text-sm mr-8">新员工入职培训计划已更新,请相关人员注意查收邮件</span>
<span class="text-sm">年度优秀员工评选活动正式启动,详情请见内网公告</span>
</div>
</div>
</div>
</div>
<!-- 内容主体 -->
<div class="flex flex-col md:flex-row gap-6">
<!-- 左侧组织架构树 -->
<div class="w-full md:w-1/5 bg-white rounded-md shadow-sm p-4">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-medium">组织架构</h2>
<button class="text-primary text-sm">
<i class="fas fa-sync-alt fa-icon w-4 h-4"></i>
</button>
</div>
<div class="space-y-1">
<div class="org-node bg-secondary p-2 rounded-md cursor-pointer flex items-center justify-between">
<div class="flex items-center">
<i class="fas fa-building fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">集团公司</span>
</div>
<i class="fas fa-chevron-down fa-icon w-3 h-3 text-gray-400"></i>
</div>
<div class="ml-6 space-y-1">
<div
class="org-node bg-secondary p-2 rounded-md cursor-pointer flex items-center justify-between">
<div class="flex items-center">
<i class="fas fa-sitemap fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">行政中心</span>
</div>
<i class="fas fa-chevron-down fa-icon w-3 h-3 text-gray-400"></i>
</div>
<div class="ml-6 space-y-1">
<div class="org-node bg-secondary p-2 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-users fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">人力资源部</span>
</div>
</div>
<div class="org-node bg-secondary p-2 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-file-invoice-dollar fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">财务部</span>
</div>
</div>
<div class="org-node bg-secondary p-2 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-laptop fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">IT部</span>
</div>
</div>
</div>
<div
class="org-node bg-secondary p-2 rounded-md cursor-pointer flex items-center justify-between">
<div class="flex items-center">
<i class="fas fa-sitemap fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">营销中心</span>
</div>
<i class="fas fa-chevron-down fa-icon w-3 h-3 text-gray-400"></i>
</div>
<div class="ml-6 space-y-1">
<div class="org-node bg-secondary p-2 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-chart-line fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">市场部</span>
</div>
</div>
<div class="org-node bg-secondary p-2 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-shopping-cart fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">销售部</span>
</div>
</div>
<div class="org-node bg-secondary p-2 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-headset fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">客户服务部</span>
</div>
</div>
</div>
<div
class="org-node bg-secondary p-2 rounded-md cursor-pointer flex items-center justify-between">
<div class="flex items-center">
<i class="fas fa-sitemap fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">研发中心</span>
</div>
<i class="fas fa-chevron-down fa-icon w-3 h-3 text-gray-400"></i>
</div>
<div class="ml-6 space-y-1">
<div class="org-node bg-secondary p-2 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-code fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">前端开发部</span>
</div>
</div>
<div class="org-node bg-secondary p-2 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-database fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">后端开发部</span>
</div>
</div>
<div class="org-node bg-secondary p-2 rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-mobile-alt fa-icon w-4 h-4 mr-2 text-gray-500"></i>
<span class="text-sm">移动开发部</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 右侧内容区 -->
<div class="w-full md:w-4/5">
<!-- 筛选区域 -->
<div class="bg-white rounded-md shadow-sm p-4 mb-6">
<div class="flex items-center justify-between">
<h2 class="text-lg font-medium">组织架构详情</h2>
<div class="flex items-center space-x-4">
<div class="flex items-center">
<span class="text-sm text-gray-600 mr-2">年份:</span>
<div class="relative">
<button
class="bg-secondary text-gray-700 text-sm px-3 py-1 rounded-button flex items-center space-x-1">
<span>2023</span>
<i class="fas fa-chevron-down fa-icon w-3 h-3"></i>
</button>
</div>
</div>
<button
class="bg-primary text-white text-sm px-3 py-1 rounded-button flex items-center space-x-1 hover:bg-blue-600 transition">
<i class="fas fa-download fa-icon w-4 h-4"></i>
<span>导出</span>
</button>
</div>
</div>
</div>
<!-- 组织架构树 -->
<div class="bg-white rounded-md shadow-sm p-6">
<div class="org-tree">
<div class="org-level-1 flex flex-col items-center">
<div class="org-node bg-primary text-white p-3 rounded-md shadow-md mb-4 w-48 text-center">
<h3 class="font-medium">集团公司</h3>
<p class="text-xs opacity-80">1,284人</p>
</div>
<div class="flex space-x-8">
<div class="org-level-2 flex flex-col items-center">
<div class="org-node bg-blue-100 p-3 rounded-md shadow-sm mb-4 w-40 text-center">
<h4 class="font-medium">行政中心</h4>
<p class="text-xs text-gray-600">356人</p>
</div>
<div class="flex space-x-6">
<div class="org-level-3 flex flex-col items-center">
<div class="org-node bg-blue-50 p-2 rounded-md mb-3 w-32 text-center">
<h5 class="text-sm">人力资源部</h5>
<p class="text-xs text-gray-500">45人</p>
</div>
<div class="org-node bg-blue-50 p-2 rounded-md mb-3 w-32 text-center">
<h5 class="text-sm">财务部</h5>
<p class="text-xs text-gray-500">32人</p>
</div>
<div class="org-node bg-blue-50 p-2 rounded-md w-32 text-center">
<h5 class="text-sm">IT部</h5>
<p class="text-xs text-gray-500">28人</p>
</div>
</div>
</div>
</div>
<div class="org-level-2 flex flex-col items-center">
<div class="org-node bg-blue-100 p-3 rounded-md shadow-sm mb-4 w-40 text-center">
<h4 class="font-medium">营销中心</h4>
<p class="text-xs text-gray-600">268人</p>
</div>
<div class="flex space-x-6">
<div class="org-level-3 flex flex-col items-center">
<div class="org-node bg-blue-50 p-2 rounded-md mb-3 w-32 text-center">
<h5 class="text-sm">市场部</h5>
<p class="text-xs text-gray-500">86人</p>
</div>
<div class="org-node bg-blue-50 p-2 rounded-md mb-3 w-32 text-center">
<h5 class="text-sm">销售部</h5>
<p class="text-xs text-gray-500">124人</p>
</div>
<div class="org-node bg-blue-50 p-2 rounded-md w-32 text-center">
<h5 class="text-sm">客户服务部</h5>
<p class="text-xs text-gray-500">58人</p>
</div>
</div>
</div>
</div>
<div class="org-level-2 flex flex-col items-center">
<div class="org-node bg-blue-100 p-3 rounded-md shadow-sm mb-4 w-40 text-center">
<h4 class="font-medium">研发中心</h4>
<p class="text-xs text-gray-600">232人</p>
</div>
<div class="flex space-x-6">
<div class="org-level-3 flex flex-col items-center">
<div class="org-node bg-blue-50 p-2 rounded-md mb-3 w-32 text-center">
<h5 class="text-sm">前端开发部</h5>
<p class="text-xs text-gray-500">76人</p>
</div>
<div class="org-node bg-blue-50 p-2 rounded-md mb-3 w-32 text-center">
<h5 class="text-sm">后端开发部</h5>
<p class="text-xs text-gray-500">92人</p>
</div>
<div class="org-node bg-blue-50 p-2 rounded-md w-32 text-center">
<h5 class="text-sm">移动开发部</h5>
<p class="text-xs text-gray-500">64人</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 部门统计 -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mt-8">
<div class="bg-secondary rounded-md p-4">
<div class="flex items-center justify-between mb-2">
<h3 class="text-sm font-medium text-gray-600">部门总数</h3>
<i class="fas fa-sitemap fa-icon w-5 h-5 text-primary"></i>
</div>
<div class="text-2xl font-bold">24</div>
<div class="text-xs text-gray-500 mt-1">较上月增加2个</div>
</div>
<div class="bg-secondary rounded-md p-4">
<div class="flex items-center justify-between mb-2">
<h3 class="text-sm font-medium text-gray-600">员工总数</h3>
<i class="fas fa-users fa-icon w-5 h-5 text-primary"></i>
</div>
<div class="text-2xl font-bold">1,284</div>
<div class="text-xs text-gray-500 mt-1">较上月增加56人</div>
</div>
<div class="bg-secondary rounded-md p-4">
<div class="flex items-center justify-between mb-2">
<h3 class="text-sm font-medium text-gray-600">平均在职时长</h3>
<i class="fas fa-clock fa-icon w-5 h-5 text-primary"></i>
</div>
<div class="text-2xl font-bold">3.2年</div>
<div class="text-xs text-gray-500 mt-1">较上月增加0.1年</div>
</div>
</div>
<!-- 部门人员分布 -->
<div class="mt-8">
<h3 class="text-lg font-medium mb-4">各部门人员分布</h3>
<div class="bg-secondary rounded-md p-4 h-64">
<div id="departmentChart" class="w-full h-full"></div>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- 底部通栏 -->
<footer class="bg-gray-800 text-white py-8">
<div class="container mx-auto px-4">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-medium mb-4">关于我们</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white transition">公司简介</a></li>
<li><a href="#" class="hover:text-white transition">发展历程</a></li>
<li><a href="#" class="hover:text-white transition">企业文化</a></li>
<li><a href="#" class="hover:text-white transition">联系我们</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">产品服务</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white transition">人力资源系统</a></li>
<li><a href="#" class="hover:text-white transition">考勤管理系统</a></li>
<li><a href="#" class="hover:text-white transition">绩效评估系统</a></li>
<li><a href="#" class="hover:text-white transition">薪酬管理系统</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">帮助中心</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white transition">使用手册</a></li>
<li><a href="#" class="hover:text-white transition">常见问题</a></li>
<li><a href="#" class="hover:text-white transition">视频教程</a></li>
<li><a href="#" class="hover:text-white transition">在线客服</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">联系我们</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li class="flex items-start">
<i class="fas fa-map-marker-alt fa-icon w-3 h-3 mt-0.5 mr-2"></i>
<span>北京市海淀区中关村南大街5号</span>
</li>
<li class="flex items-center">
<i class="fas fa-phone-alt fa-icon w-3 h-3 mr-2"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fas fa-envelope fa-icon w-3 h-3 mr-2"></i>
<span>hr@company.com</span>
</li>
<li class="flex items-center">
<i class="fas fa-clock fa-icon w-3 h-3 mr-2"></i>
<span>周一至周五 9:00-18:00</span>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-6 text-center text-xs text-gray-400">
<p>© 2023 人力资源管理系统 版权所有 | 京ICP备12345678号-1 | 京公网安备11010802012345号</p>
</div>
</div>
</footer>
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/5.5.0/echarts.min.js"></script>
<script>
// 初始化部门人员分布图表
const departmentChart = echarts.init(document.getElementById('departmentChart'));
const departmentOption = {
animation: false,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value',
axisLine: {
show: false
},
axisTick: {
show: false
},
splitLine: {
lineStyle: {
color: '#e5e7eb'
}
}
},
yAxis: {
type: 'category',
data: ['人力资源部', '财务部', 'IT部', '市场部', '销售部', '客户服务部', '前端开发部', '后端开发部', '移动开发部'],
axisLine: {
show: false
},
axisTick: {
show: false
}
},
series: [
{
name: '人数',
type: 'bar',
data: [45, 32, 28, 86, 124, 58, 76, 92, 64],
itemStyle: {
color: '#2D5CF6',
borderRadius: [0, 4, 4, 0]
},
barWidth: 12
}
]
};
departmentChart.setOption(departmentOption);
// 响应式调整图表大小
window.addEventListener('resize', function () {
departmentChart.resize();
});
</script>
</body>
</html>

@ -1,566 +0,0 @@
<!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 rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.marquee {
animation: marquee 15s linear infinite;
}
@keyframes marquee {
0% {
transform: translateX(100%);
}
100% {
transform: translateX(-100%);
}
}
.tree-item {
transition: all 0.2s ease;
}
.tree-item:hover {
background-color: #e0e0e0;
}
.table-row:hover {
background-color: #f0f4ff;
}
.search-input:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(45, 92, 246, 0.2);
}
.dropdown:hover .dropdown-menu {
display: block;
}
i.fa-icon {
display: flex;
justify-content: center;
align-items: center;
width: 16px;
height: 16px;
}
</style>
</head>
<body class="bg-gray-50 min-h-screen flex flex-col">
<!-- 顶部导航栏 -->
<!-- <header class="w-full bg-primary text-white">
<div class="container mx-auto px-4">
<div class="flex items-center justify-between h-16">
<div class="flex items-center">
<span class="font-['Pacifico'] text-xl">人力</span>
</div>
<nav class="hidden md:flex space-x-6">
<a href="#" class="text-sm hover:text-gray-200 transition">多维统计</a>
<a href="#" class="text-sm font-medium">人员管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">组织管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">考勤管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">绩效管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">薪酬管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">知识库</a>
<a href="#" class="text-sm hover:text-gray-200 transition">后台管理</a>
</nav>
<div class="flex items-center space-x-4">
<div class="relative">
<input type="text" placeholder="搜索..."
class="search-input bg-white bg-opacity-20 text-sm rounded-button pl-8 pr-4 py-1 w-40 focus:w-56 transition-all duration-300 placeholder-white">
<i
class="fas fa-search absolute left-2 top-1/2 transform -translate-y-1/2 text-white text-sm"></i>
</div>
<button
class="bg-white bg-opacity-20 hover:bg-opacity-30 text-white text-xs px-3 py-1 rounded-button flex items-center space-x-1 transition">
<i class="fas fa-robot text-sm"></i>
<span>AI助手</span>
</button>
<div class="dropdown relative">
<button class="flex items-center space-x-1">
<div class="w-8 h-8 rounded-full bg-white bg-opacity-20 flex items-center justify-center">
<i class="fas fa-user text-sm"></i>
</div>
</button>
<div class="dropdown-menu absolute right-0 mt-2 w-48 bg-white rounded-md shadow-lg z-10 hidden">
<div class="py-1">
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">个人中心</a>
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">系统设置</a>
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">退出登录</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="bg-yellow-50 h-10 flex items-center overflow-hidden">
<div class="container mx-auto px-4">
<div class="relative">
<div class="marquee whitespace-nowrap text-xs text-gray-900">
<span class="inline-block mr-8">【公告】2023年度绩效考核工作将于12月1日正式启动</span>
<span class="inline-block mr-8">【通知】关于2024年春节放假安排的通知</span>
<span class="inline-block mr-8">【提醒】请各部门及时更新员工信息</span>
<span class="inline-block">【培训】新员工入职培训将于下周一举行</span>
</div>
</div>
</div>
</div>
</header> -->
<!-- 主内容区 -->
<main class="flex-1 container mx-auto px-4 py-6">
<div class="flex">
<!-- 左侧组织架构树 -->
<div class="w-1/5 pr-4">
<div class="bg-white rounded-md shadow p-4 h-full">
<div class="flex items-center justify-between mb-4">
<h3 class="text-sm font-medium">组织架构</h3>
<button class="text-primary text-xs hover:text-primary-dark">
<i class="fas fa-sync-alt fa-icon"></i>
</button>
</div>
<div class="space-y-1">
<div class="tree-item cursor-pointer p-2 rounded-md hover:bg-secondary">
<div class="flex items-center">
<i class="fas fa-building fa-icon mr-2 text-gray-500"></i>
<span class="text-sm">集团公司</span>
</div>
</div>
<div class="pl-6">
<div class="tree-item cursor-pointer p-2 rounded-md hover:bg-secondary">
<div class="flex items-center">
<i class="fas fa-sitemap fa-icon mr-2 text-gray-500"></i>
<span class="text-sm">人力资源部</span>
</div>
</div>
<div class="pl-6">
<div class="tree-item cursor-pointer p-2 rounded-md hover:bg-secondary">
<div class="flex items-center">
<i class="fas fa-users fa-icon mr-2 text-gray-500"></i>
<span class="text-sm">招聘组</span>
</div>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md hover:bg-secondary">
<div class="flex items-center">
<i class="fas fa-chart-line fa-icon mr-2 text-gray-500"></i>
<span class="text-sm">绩效组</span>
</div>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md hover:bg-secondary">
<div class="flex items-center">
<i class="fas fa-money-bill-wave fa-icon mr-2 text-gray-500"></i>
<span class="text-sm">薪酬组</span>
</div>
</div>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md hover:bg-secondary">
<div class="flex items-center">
<i class="fas fa-sitemap fa-icon mr-2 text-gray-500"></i>
<span class="text-sm">财务部</span>
</div>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md hover:bg-secondary">
<div class="flex items-center">
<i class="fas fa-sitemap fa-icon mr-2 text-gray-500"></i>
<span class="text-sm">技术研发中心</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 右侧内容区 -->
<div class="w-4/5">
<div class="bg-white rounded-md shadow p-6">
<!-- 筛选区 -->
<div class="mb-6">
<h2 class="text-lg font-medium mb-4">人员筛选</h2>
<div class="grid grid-cols-4 gap-4">
<div>
<label class="block text-sm text-gray-600 mb-1">姓名</label>
<input type="text"
class="w-full border border-gray-300 rounded-button px-3 py-1 text-sm focus:border-primary focus:ring-1 focus:ring-primary">
</div>
<div>
<label class="block text-sm text-gray-600 mb-1">电话</label>
<input type="text"
class="w-full border border-gray-300 rounded-button px-3 py-1 text-sm focus:border-primary focus:ring-1 focus:ring-primary">
</div>
<div>
<label class="block text-sm text-gray-600 mb-1">身份证号</label>
<input type="text"
class="w-full border border-gray-300 rounded-button px-3 py-1 text-sm focus:border-primary focus:ring-1 focus:ring-primary">
</div>
<div>
<label class="block text-sm text-gray-600 mb-1">部门</label>
<div class="relative">
<select
class="w-full border border-gray-300 rounded-button px-3 py-1 text-sm appearance-none bg-white">
<option>全部部门</option>
<option>人力资源部</option>
<option>财务部</option>
<option>技术研发中心</option>
</select>
<div class="absolute inset-y-0 right-0 flex items-center pr-2 pointer-events-none">
<i class="fas fa-chevron-down fa-icon text-gray-400"></i>
</div>
</div>
</div>
<div>
<label class="block text-sm text-gray-600 mb-1">性别</label>
<div class="flex space-x-2">
<label class="inline-flex items-center">
<input type="radio" name="gender" class="text-primary focus:ring-primary">
<span class="ml-1 text-sm"></span>
</label>
<label class="inline-flex items-center">
<input type="radio" name="gender" class="text-primary focus:ring-primary">
<span class="ml-1 text-sm"></span>
</label>
<label class="inline-flex items-center">
<input type="radio" name="gender" class="text-primary focus:ring-primary">
<span class="ml-1 text-sm">不限</span>
</label>
</div>
</div>
<div>
<label class="block text-sm text-gray-600 mb-1">年龄范围</label>
<div class="flex space-x-2">
<input type="number" placeholder="最小"
class="w-1/2 border border-gray-300 rounded-button px-3 py-1 text-sm">
<input type="number" placeholder="最大"
class="w-1/2 border border-gray-300 rounded-button px-3 py-1 text-sm">
</div>
</div>
<div>
<label class="block text-sm text-gray-600 mb-1">绩效状态</label>
<div class="relative">
<select
class="w-full border border-gray-300 rounded-button px-3 py-1 text-sm appearance-none bg-white">
<option>全部状态</option>
<option>新建</option>
<option>已审批</option>
<option>审批中</option>
<option>已确认</option>
</select>
<div class="absolute inset-y-0 right-0 flex items-center pr-2 pointer-events-none">
<i class="fas fa-chevron-down fa-icon text-gray-400"></i>
</div>
</div>
</div>
<div class="flex items-end">
<button
class="bg-primary hover:bg-primary-dark text-white px-4 py-1 rounded-button text-sm flex items-center">
<i class="fas fa-search fa-icon mr-1"></i>
<span>搜索</span>
</button>
<button
class="ml-2 border border-gray-300 hover:bg-gray-50 px-4 py-1 rounded-button text-sm">
重置
</button>
</div>
</div>
</div>
<!-- 操作按钮区 -->
<div class="flex justify-between items-center mb-4">
<h2 class="text-lg font-medium">人员绩效列表</h2>
<div class="flex space-x-2">
<button
class="bg-primary hover:bg-primary-dark text-white px-3 py-1 rounded-button text-sm flex items-center">
<i class="fas fa-plus fa-icon mr-1"></i>
<span>新增</span>
</button>
<button
class="border border-gray-300 hover:bg-gray-50 px-3 py-1 rounded-button text-sm flex items-center">
<i class="fas fa-download fa-icon mr-1"></i>
<span>导出</span>
</button>
<button
class="border border-gray-300 hover:bg-gray-50 px-3 py-1 rounded-button text-sm flex items-center">
<i class="fas fa-print fa-icon mr-1"></i>
<span>打印</span>
</button>
</div>
</div>
<!-- 表格区 -->
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th scope="col"
class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
序号</th>
<th scope="col"
class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
姓名</th>
<th scope="col"
class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
性别</th>
<th scope="col"
class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
年龄</th>
<th scope="col"
class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
部门</th>
<th scope="col"
class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
职位</th>
<th scope="col"
class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
绩效总分</th>
<th scope="col"
class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
绩效状态</th>
<th scope="col"
class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
操作</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<tr class="table-row">
<td class="px-4 py-2 whitespace-nowrap text-sm">1</td>
<td class="px-4 py-2 whitespace-nowrap text-sm font-medium">张明远</td>
<td class="px-4 py-2 whitespace-nowrap text-sm"></td>
<td class="px-4 py-2 whitespace-nowrap text-sm">32</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">人力资源部</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">招聘主管</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">92.5</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<span
class="px-2 py-1 text-xs rounded-full bg-green-100 text-green-800">已确认</span>
</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<button class="text-primary hover:text-primary-dark mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2 whitespace-nowrap text-sm">2</td>
<td class="px-4 py-2 whitespace-nowrap text-sm font-medium">李思雨</td>
<td class="px-4 py-2 whitespace-nowrap text-sm"></td>
<td class="px-4 py-2 whitespace-nowrap text-sm">28</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">财务部</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">会计</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">88.0</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<span
class="px-2 py-1 text-xs rounded-full bg-blue-100 text-blue-800">审批中</span>
</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<button class="text-primary hover:text-primary-dark mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2 whitespace-nowrap text-sm">3</td>
<td class="px-4 py-2 whitespace-nowrap text-sm font-medium">王建国</td>
<td class="px-4 py-2 whitespace-nowrap text-sm"></td>
<td class="px-4 py-2 whitespace-nowrap text-sm">45</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">技术研发中心</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">技术总监</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">95.5</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<span
class="px-2 py-1 text-xs rounded-full bg-green-100 text-green-800">已确认</span>
</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<button class="text-primary hover:text-primary-dark mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2 whitespace-nowrap text-sm">4</td>
<td class="px-4 py-2 whitespace-nowrap text-sm font-medium">赵雪</td>
<td class="px-4 py-2 whitespace-nowrap text-sm"></td>
<td class="px-4 py-2 whitespace-nowrap text-sm">26</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">人力资源部</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">薪酬专员</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">85.0</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<span
class="px-2 py-1 text-xs rounded-full bg-yellow-100 text-yellow-800">已审批</span>
</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<button class="text-primary hover:text-primary-dark mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2 whitespace-nowrap text-sm">5</td>
<td class="px-4 py-2 whitespace-nowrap text-sm font-medium">陈志强</td>
<td class="px-4 py-2 whitespace-nowrap text-sm"></td>
<td class="px-4 py-2 whitespace-nowrap text-sm">35</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">技术研发中心</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">高级工程师</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">90.5</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<span class="px-2 py-1 text-xs rounded-full bg-gray-100 text-gray-800">新建</span>
</td>
<td class="px-4 py-2 whitespace-nowrap text-sm">
<button class="text-primary hover:text-primary-dark mr-2">
<i class="fas fa-edit fa-icon"></i>
</button>
<button class="text-red-500 hover:text-red-700">
<i class="fas fa-trash-alt fa-icon"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 分页区 -->
<div class="flex items-center justify-between mt-4">
<div class="text-sm text-gray-500">
每页显示 <span class="font-medium">10</span> 条,当前 <span class="font-medium">1-10</span> 条,共
<span class="font-medium">128</span> 条记录
</div>
<div class="flex space-x-1">
<button
class="px-3 py-1 border border-gray-300 rounded-button text-sm bg-white hover:bg-gray-50">
<i class="fas fa-angle-left fa-icon"></i>
</button>
<button
class="px-3 py-1 border border-gray-300 rounded-button text-sm bg-primary text-white">1</button>
<button
class="px-3 py-1 border border-gray-300 rounded-button text-sm bg-white hover:bg-gray-50">2</button>
<button
class="px-3 py-1 border border-gray-300 rounded-button text-sm bg-white hover:bg-gray-50">3</button>
<button
class="px-3 py-1 border border-gray-300 rounded-button text-sm bg-white hover:bg-gray-50">4</button>
<button
class="px-3 py-1 border border-gray-300 rounded-button text-sm bg-white hover:bg-gray-50">5</button>
<button
class="px-3 py-1 border border-gray-300 rounded-button text-sm bg-white hover:bg-gray-50">
<i class="fas fa-angle-right fa-icon"></i>
</button>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- 页脚 -->
<footer class="w-full bg-gray-800 text-white py-8">
<div class="container mx-auto px-4">
<div class="grid grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-medium mb-4">关于我们</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">公司简介</a></li>
<li><a href="#" class="hover:text-white">发展历程</a></li>
<li><a href="#" class="hover:text-white">企业文化</a></li>
<li><a href="#" class="hover:text-white">联系我们</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">产品服务</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">人力资源管理系统</a></li>
<li><a href="#" class="hover:text-white">薪酬管理系统</a></li>
<li><a href="#" class="hover:text-white">绩效管理系统</a></li>
<li><a href="#" class="hover:text-white">考勤管理系统</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">帮助中心</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">使用指南</a></li>
<li><a href="#" class="hover:text-white">常见问题</a></li>
<li><a href="#" class="hover:text-white">更新日志</a></li>
<li><a href="#" class="hover:text-white">API文档</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">联系我们</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li class="flex items-start">
<i class="fas fa-map-marker-alt fa-icon mr-2 mt-1"></i>
<span>北京市海淀区中关村软件园2号楼</span>
</li>
<li class="flex items-center">
<i class="fas fa-phone fa-icon mr-2"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fas fa-envelope fa-icon mr-2"></i>
<span>contact@hrsystem.com</span>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-6 flex flex-col md:flex-row justify-between items-center">
<div class="text-xs text-gray-400 mb-4 md:mb-0">
© 2023 人力资源管理系统 版权所有
</div>
<div class="flex space-x-4">
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-weixin fa-icon"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-weibo fa-icon"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-github fa-icon"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-linkedin-in fa-icon"></i>
</a>
</div>
<div class="text-xs text-gray-400 mt-4 md:mt-0">
京ICP备12345678号-1
</div>
</div>
</div>
</footer>
</body>
</html>

@ -1,738 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>人力管理系统 - 数据字典</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.tree-item {
padding-left: 20px;
position: relative;
}
.tree-item::before {
content: "";
position: absolute;
left: 8px;
top: 0;
height: 100%;
border-left: 1px solid #e5e7eb;
}
.tree-item:last-child::before {
height: 50%;
}
.tree-item::after {
content: "";
position: absolute;
left: 8px;
top: 50%;
width: 8px;
border-bottom: 1px solid #e5e7eb;
}
.scroll-container {
scrollbar-width: thin;
scrollbar-color: #cbd5e1 #f1f5f9;
}
.scroll-container::-webkit-scrollbar {
width: 6px;
height: 6px;
}
.scroll-container::-webkit-scrollbar-track {
background: #f1f5f9;
}
.scroll-container::-webkit-scrollbar-thumb {
background-color: #cbd5e1;
border-radius: 3px;
}
.hover-card:hover {
transform: translateY(-2px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
i.fa-icon {
display: flex;
justify-content: center;
align-items: center;
}
</style>
</head>
<body class="min-h-[1024px] bg-gray-50 flex flex-col">
<!-- 顶部导航 -->
<!-- <header class="bg-primary text-white shadow-md">
<div class="container mx-auto px-6 py-3 flex items-center justify-between">
<div class="flex items-center space-x-8">
<a href="#" class="text-xl font-['Pacifico']">人力</a>
<nav class="hidden md:flex space-x-6 text-sm">
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button transition">多维统计</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button transition">人员管理</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button transition">组织管理</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button transition">考勤管理</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button transition">绩效管理</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button transition">薪酬管理</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button transition">知识库</a>
<a href="#" class="hover:bg-white/20 px-2 py-1 rounded-button transition">后台管理</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative">
<input type="text" placeholder="搜索..."
class="bg-white/20 text-white placeholder-white/70 text-sm rounded-button px-3 py-1 pl-8 w-40 focus:w-60 transition-all duration-300 focus:outline-none focus:ring-1 focus:ring-white/50">
<i
class="fa-icon fa-solid fa-magnifying-glass absolute left-2 top-1/2 transform -translate-y-1/2 text-white/70 text-xs"></i>
</div>
<button
class="bg-white/10 hover:bg-white/20 rounded-button px-3 py-1 text-sm flex items-center space-x-1 transition">
<i class="fa-icon fa-solid fa-robot text-xs"></i>
<span>AI 助手</span>
</button>
<div class="relative">
<img src="https://mastergo.com/ai/api/search-image?query=professional20business20profile20photo20of20a20young20asian20male20executive20with20white20background&width=32&height=32&orientation=squarish&flag=a6d20992702c7a888c93eb051f248a43"
alt="用户头像" class="w-8 h-8 rounded-full object-cover cursor-pointer">
</div>
</div>
</div>
</header> -->
<!-- 主内容区域 -->
<main class="flex-grow container mx-auto px-6 py-8">
<div class="flex flex-col space-y-6">
<!-- 面包屑导航 -->
<!-- <div class="flex items-center text-sm text-gray-600">
<a href="#" class="hover:text-primary">首页</a>
<i class="fa-icon fa-solid fa-chevron-right mx-2 text-xs"></i>
<a href="#" class="hover:text-primary">系统管理</a>
<i class="fa-icon fa-solid fa-chevron-right mx-2 text-xs"></i>
<span class="text-gray-800">数据字典管理</span>
</div> -->
<!-- 页面标题和操作按钮 -->
<div class="flex justify-between items-center">
<h1 class="text-2xl font-bold text-gray-800">数据字典管理</h1>
<div class="flex space-x-3">
<button
class="bg-primary hover:bg-blue-700 text-white rounded-button px-4 py-2 text-sm flex items-center space-x-2 transition">
<i class="fa-icon fa-solid fa-plus text-xs"></i>
<span>新增元数据域</span>
</button>
<button
class="bg-white border border-gray-300 hover:bg-gray-50 text-gray-700 rounded-button px-4 py-2 text-sm flex items-center space-x-2 transition">
<i class="fa-icon fa-solid fa-download text-xs"></i>
<span>导出配置</span>
</button>
</div>
</div>
<!-- 数据字典内容区域 -->
<div class="bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden">
<div class="flex h-[1200px]">
<!-- 左侧树形结构 -->
<div class="w-1/4 border-r border-gray-200 overflow-y-auto scroll-container">
<div class="p-4 space-y-2">
<div class="flex items-center justify-between">
<h3 class="font-medium text-gray-700">员工模型</h3>
<button class="text-gray-400 hover:text-gray-600">
<i class="fa-icon fa-solid fa-ellipsis-vertical text-xs"></i>
</button>
</div>
<div class="mt-2 space-y-1">
<!-- 树形结构项 -->
<div class="tree-item">
<div
class="flex items-center justify-between py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<div class="flex items-center space-x-2">
<i class="fa-icon fa-solid fa-folder text-yellow-400 text-sm"></i>
<span class="text-sm">基础信息</span>
</div>
<i class="fa-icon fa-solid fa-chevron-down text-gray-400 text-xs"></i>
</div>
<div class="ml-4 mt-1 space-y-1">
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">员工编号</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">姓名</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">性别</span>
</div>
</div>
</div>
<div class="tree-item">
<div
class="flex items-center justify-between py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<div class="flex items-center space-x-2">
<i class="fa-icon fa-solid fa-folder text-yellow-400 text-sm"></i>
<span class="text-sm">技术职务</span>
</div>
<i class="fa-icon fa-solid fa-chevron-right text-gray-400 text-xs"></i>
</div>
</div>
<div class="tree-item">
<div
class="flex items-center justify-between py-1 px-2 rounded hover:bg-gray-100 cursor-pointer bg-blue-50">
<div class="flex items-center space-x-2">
<i class="fa-icon fa-solid fa-folder-open text-yellow-400 text-sm"></i>
<span class="text-sm font-medium text-primary">绩效参数</span>
</div>
<i class="fa-icon fa-solid fa-chevron-down text-gray-400 text-xs"></i>
</div>
<div class="ml-4 mt-1 space-y-1">
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">代码量</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">文档字数</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">出勤时长</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">项目金额</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">培训时长</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">会议次数</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">会议时长</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">千行 bug 数</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">运维响应时间</span>
</div>
<div
class="flex items-center py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<i class="fa-icon fa-solid fa-file text-blue-400 text-sm mr-2"></i>
<span class="text-sm">员工满意度</span>
</div>
</div>
</div>
<div class="tree-item">
<div
class="flex items-center justify-between py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<div class="flex items-center space-x-2">
<i class="fa-icon fa-solid fa-folder text-yellow-400 text-sm"></i>
<span class="text-sm">联系方式</span>
</div>
<i class="fa-icon fa-solid fa-chevron-right text-gray-400 text-xs"></i>
</div>
</div>
<div class="tree-item">
<div
class="flex items-center justify-between py-1 px-2 rounded hover:bg-gray-100 cursor-pointer">
<div class="flex items-center space-x-2">
<i class="fa-icon fa-solid fa-folder text-yellow-400 text-sm"></i>
<span class="text-sm">其他信息</span>
</div>
<i class="fa-icon fa-solid fa-chevron-right text-gray-400 text-xs"></i>
</div>
</div>
</div>
</div>
</div>
<!-- 右侧属性配置面板 -->
<div class="w-3/4 overflow-y-auto scroll-container">
<div class="p-6">
<div class="flex justify-between items-center mb-6">
<h2 class="text-lg font-semibold text-gray-800">绩效参数属性配置</h2>
<button
class="bg-primary hover:bg-blue-700 text-white rounded-button px-3 py-1 text-sm flex items-center space-x-2 transition">
<i class="fa-icon fa-solid fa-plus text-xs"></i>
<span>新增属性</span>
</button>
</div>
<div class="bg-gray-50 rounded-lg p-4 mb-6">
<div class="grid grid-cols-2 gap-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">元数据域名称</label>
<input type="text" value="绩效参数"
class="w-full border border-gray-300 rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">元数据域编码</label>
<input type="text" value="performance_params"
class="w-full border border-gray-300 rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
</div>
<div class="col-span-2">
<label class="block text-sm font-medium text-gray-700 mb-1">描述</label>
<textarea
class="w-full border border-gray-300 rounded-button px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary"
rows="2">用于记录员工各项绩效指标的参数集合</textarea>
</div>
</div>
</div>
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th scope="col"
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
属性名称</th>
<th scope="col"
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
编码</th>
<th scope="col"
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
数据类型</th>
<th scope="col"
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
单位</th>
<th scope="col"
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
必填</th>
<th scope="col"
class="px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
操作</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-900">
代码量</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">code_amount
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<select
class="border border-gray-300 rounded-button px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>数字</option>
<option>文本</option>
<option>日期</option>
<option selected>列表</option>
</select>
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500"></td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<input type="checkbox" checked
class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<button class="text-blue-600 hover:text-blue-900 mr-2">
<i class="fa-icon fa-solid fa-pen text-xs"></i>
</button>
<button class="text-red-600 hover:text-red-900">
<i class="fa-icon fa-solid fa-trash text-xs"></i>
</button>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-900">
文档字数</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">doc_words</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<select
class="border border-gray-300 rounded-button px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>数字</option>
<option>文本</option>
<option>日期</option>
<option selected>列表</option>
</select>
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500"></td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<input type="checkbox" checked
class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<button class="text-blue-600 hover:text-blue-900 mr-2">
<i class="fa-icon fa-solid fa-pen text-xs"></i>
</button>
<button class="text-red-600 hover:text-red-900">
<i class="fa-icon fa-solid fa-trash text-xs"></i>
</button>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-900">
出勤时长</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
attendance_hours</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<select
class="border border-gray-300 rounded-button px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>数字</option>
<option>文本</option>
<option>日期</option>
<option selected>列表</option>
</select>
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">小时</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<input type="checkbox" checked
class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<button class="text-blue-600 hover:text-blue-900 mr-2">
<i class="fa-icon fa-solid fa-pen text-xs"></i>
</button>
<button class="text-red-600 hover:text-red-900">
<i class="fa-icon fa-solid fa-trash text-xs"></i>
</button>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-900">
项目金额</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">project_amount
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<select
class="border border-gray-300 rounded-button px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>数字</option>
<option>文本</option>
<option>日期</option>
<option selected>列表</option>
</select>
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500"></td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<input type="checkbox"
class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<button class="text-blue-600 hover:text-blue-900 mr-2">
<i class="fa-icon fa-solid fa-pen text-xs"></i>
</button>
<button class="text-red-600 hover:text-red-900">
<i class="fa-icon fa-solid fa-trash text-xs"></i>
</button>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-900">
培训时长</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">training_hours
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<select
class="border border-gray-300 rounded-button px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>数字</option>
<option>文本</option>
<option>日期</option>
<option selected>列表</option>
</select>
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">小时</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<input type="checkbox"
class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<button class="text-blue-600 hover:text-blue-900 mr-2">
<i class="fa-icon fa-solid fa-pen text-xs"></i>
</button>
<button class="text-red-600 hover:text-red-900">
<i class="fa-icon fa-solid fa-trash text-xs"></i>
</button>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-900">
会议次数</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">meeting_count
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<select
class="border border-gray-300 rounded-button px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>数字</option>
<option>文本</option>
<option>日期</option>
<option selected>列表</option>
</select>
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500"></td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<input type="checkbox" checked
class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<button class="text-blue-600 hover:text-blue-900 mr-2">
<i class="fa-icon fa-solid fa-pen text-xs"></i>
</button>
<button class="text-red-600 hover:text-red-900">
<i class="fa-icon fa-solid fa-trash text-xs"></i>
</button>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-900">
会议时长</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">meeting_hours
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<select
class="border border-gray-300 rounded-button px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>数字</option>
<option>文本</option>
<option>日期</option>
<option selected>列表</option>
</select>
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">分钟</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<input type="checkbox"
class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<button class="text-blue-600 hover:text-blue-900 mr-2">
<i class="fa-icon fa-solid fa-pen text-xs"></i>
</button>
<button class="text-red-600 hover:text-red-900">
<i class="fa-icon fa-solid fa-trash text-xs"></i>
</button>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-900">千行
bug 数</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">bug_count</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<select
class="border border-gray-300 rounded-button px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>数字</option>
<option>文本</option>
<option>日期</option>
<option selected>列表</option>
</select>
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">个/千行</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<input type="checkbox" checked
class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<button class="text-blue-600 hover:text-blue-900 mr-2">
<i class="fa-icon fa-solid fa-pen text-xs"></i>
</button>
<button class="text-red-600 hover:text-red-900">
<i class="fa-icon fa-solid fa-trash text-xs"></i>
</button>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-900">
运维响应时间</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">response_time
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<select
class="border border-gray-300 rounded-button px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>数字</option>
<option>文本</option>
<option>日期</option>
<option selected>列表</option>
</select>
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">分钟</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<input type="checkbox" checked
class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<button class="text-blue-600 hover:text-blue-900 mr-2">
<i class="fa-icon fa-solid fa-pen text-xs"></i>
</button>
<button class="text-red-600 hover:text-red-900">
<i class="fa-icon fa-solid fa-trash text-xs"></i>
</button>
</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-3 whitespace-nowrap text-sm font-medium text-gray-900">
员工满意度</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">satisfaction
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<select
class="border border-gray-300 rounded-button px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary">
<option>数字</option>
<option>文本</option>
<option>日期</option>
<option selected>列表</option>
</select>
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500"></td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<input type="checkbox"
class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
</td>
<td class="px-4 py-3 whitespace-nowrap text-sm text-gray-500">
<button class="text-blue-600 hover:text-blue-900 mr-2">
<i class="fa-icon fa-solid fa-pen text-xs"></i>
</button>
<button class="text-red-600 hover:text-red-900">
<i class="fa-icon fa-solid fa-trash text-xs"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div class="mt-6 flex items-center justify-between">
<div class="text-sm text-gray-500">
显示 <span class="font-medium">1</span><span class="font-medium">10</span> 条,共
<span class="font-medium">10</span> 条记录
</div>
<div class="flex space-x-1">
<button
class="px-3 py-1 border border-gray-300 rounded-button text-sm text-gray-700 bg-white hover:bg-gray-50">
上一页
</button>
<button
class="px-3 py-1 border border-primary bg-primary text-white rounded-button text-sm">
1
</button>
<button
class="px-3 py-1 border border-gray-300 rounded-button text-sm text-gray-700 bg-white hover:bg-gray-50">
2
</button>
<button
class="px-3 py-1 border border-gray-300 rounded-button text-sm text-gray-700 bg-white hover:bg-gray-50">
下一页
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- 页脚 -->
<footer class="w-full bg-gray-800 text-white py-8">
<div class="container mx-auto px-4">
<div class="grid grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-medium mb-4">关于我们</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">公司简介</a></li>
<li><a href="#" class="hover:text-white">发展历程</a></li>
<li><a href="#" class="hover:text-white">企业文化</a></li>
<li><a href="#" class="hover:text-white">联系我们</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">产品服务</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">人力资源管理系统</a></li>
<li><a href="#" class="hover:text-white">薪酬管理系统</a></li>
<li><a href="#" class="hover:text-white">绩效管理系统</a></li>
<li><a href="#" class="hover:text-white">考勤管理系统</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">帮助中心</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">使用指南</a></li>
<li><a href="#" class="hover:text-white">常见问题</a></li>
<li><a href="#" class="hover:text-white">更新日志</a></li>
<li><a href="#" class="hover:text-white">API文档</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">联系我们</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li class="flex items-start">
<i class="fas fa-map-marker-alt fa-icon mr-2 mt-1"></i>
<span>北京市海淀区中关村软件园2号楼</span>
</li>
<li class="flex items-center">
<i class="fas fa-phone fa-icon mr-2"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fas fa-envelope fa-icon mr-2"></i>
<span>contact@hrsystem.com</span>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-6 flex flex-col md:flex-row justify-between items-center">
<div class="text-xs text-gray-400 mb-4 md:mb-0">
© 2023 人力资源管理系统 版权所有
</div>
<div class="flex space-x-4">
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-weixin fa-icon"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-weibo fa-icon"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-github fa-icon"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-linkedin-in fa-icon"></i>
</a>
</div>
<div class="text-xs text-gray-400 mt-4 md:mt-0">
京ICP备12345678号-1
</div>
</div>
</div>
</footer>
</body>
</html>

@ -1,318 +0,0 @@
<!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 rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA',
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.marquee {
white-space: nowrap;
overflow: hidden;
box-sizing: border-box;
animation: marquee 20s linear infinite;
}
@keyframes marquee {
0% { transform: translateX(100%); }
100% { transform: translateX(-100%); }
}
.card-shadow {
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.icon-container {
display: flex;
justify-content: center;
align-items: center;
width: 24px;
height: 24px;
}
</style>
</head>
<body class="min-h-[1024px] bg-secondary flex flex-col">
<!-- 顶部导航 -->
<!-- <header class="w-full bg-primary text-white">
<nav class="max-w-7xl mx-auto px-4 py-3 flex items-center justify-between">
<div class="flex items-center space-x-10">
<h1 class="text-xl font-['Pacifico']">人力</h1>
<div class="flex space-x-6 text-sm">
<a href="#" class="hover:text-gray-200">多维统计</a>
<a href="#" class="hover:text-gray-200">人员管理</a>
<a href="#" class="hover:text-gray-200">组织管理</a>
<a href="#" class="hover:text-gray-200">考勤管理</a>
<a href="#" class="hover:text-gray-200">绩效管理</a>
<a href="#" class="hover:text-gray-200">薪酬管理</a>
<a href="#" class="hover:text-gray-200">知识库</a>
<a href="#" class="hover:text-gray-200">后台管理</a>
</div>
</div>
<div class="flex items-center space-x-4">
<div class="relative">
<input type="text" placeholder="搜索..." class="py-1 px-3 pl-8 text-sm rounded-button text-gray-800 w-40">
<i class="fas fa-search absolute left-2 top-1/2 transform -translate-y-1/2 text-gray-500"></i>
</div>
<div class="flex items-center space-x-2">
<div class="w-8 h-8 rounded-full bg-white flex items-center justify-center">
<i class="fas fa-user text-primary"></i>
</div>
<span class="text-sm">张明远</span>
</div>
<button class="bg-white text-primary text-sm py-1 px-3 rounded-button flex items-center space-x-1">
<i class="fas fa-robot"></i>
<span>AI助手</span>
</button>
</div>
</nav>
<div class="bg-amber-50 text-black py-1 px-4 text-xs">
<div class="marquee">
<span>【系统公告】2025年度绩效考核标准已更新请各部门负责人及时查阅。 | 2025年第一季度员工满意度调查结果已发布整体满意度达到92.5%。 | 提醒2025年上半年绩效计划填报截止日期为6月30日请及时完成。 | 新员工入职培训将于7月5日在总部3楼会议室举行。</span>
</div>
</div>
</header> -->
<!-- 主内容区 -->
<main class="flex-1 max-w-7xl mx-auto px-4 py-6 w-full">
<!-- 筛选区 -->
<div class="bg-white p-4 rounded-lg card-shadow mb-6">
<div class="grid grid-cols-4 gap-4">
<div>
<label class="block text-xs text-gray-600 mb-1">姓名</label>
<input type="text" class="w-full border border-gray-300 rounded-button px-2 py-1 text-sm">
</div>
<div>
<label class="block text-xs text-gray-600 mb-1">电话</label>
<input type="text" class="w-full border border-gray-300 rounded-button px-2 py-1 text-sm">
</div>
<div>
<label class="block text-xs text-gray-600 mb-1">身份证</label>
<input type="text" class="w-full border border-gray-300 rounded-button px-2 py-1 text-sm">
</div>
<div>
<label class="block text-xs text-gray-600 mb-1">绩效计划</label>
<div class="relative">
<button class="w-full border border-gray-300 rounded-button px-2 py-1 text-sm text-left flex justify-between items-center">
<span>2025年度</span>
<i class="fas fa-chevron-down text-xs"></i>
</button>
</div>
</div>
</div>
<div class="flex justify-end mt-4">
<button class="bg-primary text-white text-sm py-1 px-4 rounded-button mr-2">查询</button>
<button class="bg-white border border-gray-300 text-gray-700 text-sm py-1 px-4 rounded-button">重置</button>
</div>
</div>
<!-- 人员信息 -->
<div class="bg-white p-4 rounded-lg card-shadow mb-6">
<div class="flex items-center space-x-4">
<div class="w-16 h-16 rounded-full bg-gray-200 flex items-center justify-center">
<i class="fas fa-user text-gray-500 text-2xl"></i>
</div>
<div class="grid grid-cols-4 gap-4 flex-1">
<div>
<p class="text-xs text-gray-500">性别</p>
<p class="text-sm"></p>
</div>
<div>
<p class="text-xs text-gray-500">年龄</p>
<p class="text-sm">32</p>
</div>
<div>
<p class="text-xs text-gray-500">部门</p>
<p class="text-sm">技术研发中心</p>
</div>
<div>
<p class="text-xs text-gray-500">岗位</p>
<p class="text-sm">高级软件工程师</p>
</div>
</div>
<div>
<p class="text-xs text-gray-500">绩效计划名称</p>
<p class="text-sm">2025年度技术岗绩效计划</p>
</div>
</div>
</div>
<!-- 绩效公式 -->
<div class="bg-white p-4 rounded-lg card-shadow mb-6">
<p class="text-sm font-medium mb-2">绩效公式</p>
<p class="text-xs bg-gray-100 p-2 rounded-button">
总分 = 代码量 × 0.1 + 文档字数 × 0.01 + 培训次数 × 3 + 项目金额 × 0.01 + 项目比重 × 0.1 + 工作时长 × 0.01 + 执行力 × 0.1 + 对公司认同度 × 0.1
</p>
</div>
<!-- 绩效总分 -->
<div class="bg-white p-4 rounded-lg card-shadow mb-6">
<div class="flex justify-between">
<div>
<p class="text-xs text-gray-500">绩效总分</p>
<p class="text-2xl font-bold text-primary">92</p>
</div>
<div>
<p class="text-xs text-gray-500">审批状态</p>
<p class="text-sm text-green-600 font-medium">已确认</p>
</div>
</div>
</div>
<!-- 客观指标 -->
<div class="bg-white p-4 rounded-lg card-shadow mb-6">
<p class="text-sm font-medium mb-3">客观指标</p>
<div class="grid grid-cols-3 gap-4">
<div>
<p class="text-xs text-gray-500">代码量</p>
<p class="text-sm">15,672 行</p>
</div>
<div>
<p class="text-xs text-gray-500">文档字数</p>
<p class="text-sm">28,500 字</p>
</div>
<div>
<p class="text-xs text-gray-500">培训次数</p>
<p class="text-sm">8 次</p>
</div>
<div>
<p class="text-xs text-gray-500">项目金额</p>
<p class="text-sm">¥1,250,000</p>
</div>
<div>
<p class="text-xs text-gray-500">项目比重</p>
<p class="text-sm">35%</p>
</div>
<div>
<p class="text-xs text-gray-500">工作时长</p>
<p class="text-sm">1,850 小时</p>
</div>
</div>
</div>
<!-- 主观指标 -->
<div class="grid grid-cols-2 gap-4 mb-6">
<!-- 执行力 -->
<div class="bg-white p-4 rounded-lg card-shadow">
<p class="text-sm font-medium mb-3">执行力</p>
<div class="flex items-center space-x-2 mb-3">
<span class="text-xs text-gray-500">评分:</span>
<div class="flex">
<i class="fas fa-star text-yellow-400"></i>
<i class="fas fa-star text-yellow-400"></i>
<i class="fas fa-star text-yellow-400"></i>
<i class="fas fa-star text-yellow-400"></i>
<i class="fas fa-star text-gray-300"></i>
</div>
<span class="text-xs">4.0</span>
</div>
<div>
<p class="text-xs text-gray-500 mb-1">评价</p>
<textarea class="w-full border border-gray-300 rounded-button px-2 py-1 text-sm h-20" placeholder="请输入评价内容...">该员工能够高效执行分配的任务,在项目开发过程中表现出色,能够按时保质完成工作。在团队协作中主动承担责任,遇到问题能够积极寻求解决方案。</textarea>
</div>
</div>
<!-- 对公司认同 -->
<div class="bg-white p-4 rounded-lg card-shadow">
<p class="text-sm font-medium mb-3">对公司认同度</p>
<div class="flex items-center space-x-2 mb-3">
<span class="text-xs text-gray-500">评分:</span>
<div class="flex">
<i class="fas fa-star text-yellow-400"></i>
<i class="fas fa-star text-yellow-400"></i>
<i class="fas fa-star text-yellow-400"></i>
<i class="fas fa-star text-yellow-400"></i>
<i class="fas fa-star-half-alt text-yellow-400"></i>
</div>
<span class="text-xs">4.5</span>
</div>
<div>
<p class="text-xs text-gray-500 mb-1">评价</p>
<textarea class="w-full border border-gray-300 rounded-button px-2 py-1 text-sm h-20" placeholder="请输入评价内容...">该员工高度认同公司文化和价值观,积极参与公司组织的各项活动。在日常工作中能够主动传播正能量,对新员工起到良好的示范作用。对公司发展战略有深刻理解并积极支持。</textarea>
</div>
</div>
</div>
<!-- 操作按钮 -->
<div class="flex justify-end space-x-3 mb-6">
<button class="bg-primary text-white text-sm py-2 px-6 rounded-button">保存评价</button>
<button class="bg-white border border-primary text-primary text-sm py-2 px-6 rounded-button">返回列表</button>
</div>
</main>
<!-- 页脚 -->
<footer class="w-full bg-gray-800 text-white py-6">
<div class="max-w-7xl mx-auto px-4">
<div class="grid grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-medium mb-3">关于我们</h3>
<ul class="space-y-2 text-xs text-gray-400">
<li><a href="#" class="hover:text-white">公司简介</a></li>
<li><a href="#" class="hover:text-white">发展历程</a></li>
<li><a href="#" class="hover:text-white">企业文化</a></li>
<li><a href="#" class="hover:text-white">加入我们</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-3">产品服务</h3>
<ul class="space-y-2 text-xs text-gray-400">
<li><a href="#" class="hover:text-white">人力资源系统</a></li>
<li><a href="#" class="hover:text-white">薪酬管理系统</a></li>
<li><a href="#" class="hover:text-white">绩效考核系统</a></li>
<li><a href="#" class="hover:text-white">培训发展平台</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-3">帮助中心</h3>
<ul class="space-y-2 text-xs text-gray-400">
<li><a href="#" class="hover:text-white">使用指南</a></li>
<li><a href="#" class="hover:text-white">常见问题</a></li>
<li><a href="#" class="hover:text-white">视频教程</a></li>
<li><a href="#" class="hover:text-white">在线客服</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-3">联系我们</h3>
<ul class="space-y-2 text-xs text-gray-400">
<li>电话400-888-8888</li>
<li>邮箱service@hrsystem.com</li>
<li>地址北京市海淀区科技园路88号</li>
<li class="flex space-x-3 mt-3">
<a href="#" class="hover:text-white"><i class="fab fa-weixin"></i></a>
<a href="#" class="hover:text-white"><i class="fab fa-weibo"></i></a>
<a href="#" class="hover:text-white"><i class="fab fa-linkedin"></i></a>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 mt-6 pt-6 text-center text-xs text-gray-400">
<p>© 2025 人力资源管理系统 版权所有 | 京ICP备12345678号-1 | 京公网安备11010802023456号</p>
</div>
</div>
</footer>
</body>
</html>

@ -1,366 +0,0 @@
<!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 rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA',
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.fa-icon {
display: flex;
justify-content: center;
align-items: center;
width: 16px;
height: 16px;
}
.scroll-container {
scrollbar-width: none;
}
.scroll-container::-webkit-scrollbar {
display: none;
}
</style>
</head>
<body class="min-h-[1024px] bg-secondary font-sans text-sm text-gray-800">
<!-- <header class="w-full h-[60px] bg-primary text-white fixed top-0 z-50 shadow-md">
<div class="w-[1200px] h-full mx-auto flex items-center justify-between">
<div class="flex items-center">
<span class="font-['Pacifico'] text-2xl mr-10">人力</span>
</div>
<nav class="flex-1 flex items-center">
<ul class="flex space-x-6">
<li><a href="#" class="hover:text-gray-200 transition">多维统计</a></li>
<li><a href="#" class="hover:text-gray-200 transition">人员管理</a></li>
<li><a href="#" class="hover:text-gray-200 transition">组织管理</a></li>
<li><a href="#" class="hover:text-gray-200 transition font-semibold">考勤管理</a></li>
<li><a href="#" class="hover:text-gray-200 transition">绩效管理</a></li>
<li><a href="#" class="hover:text-gray-200 transition">薪酬管理</a></li>
<li><a href="#" class="hover:text-gray-200 transition">知识库</a></li>
<li><a href="#" class="hover:text-gray-200 transition">后台管理</a></li>
</ul>
</nav>
<div class="flex items-center space-x-4">
<div class="relative">
<input type="text" placeholder="搜索..." class="pl-8 pr-3 py-1 rounded-button bg-white bg-opacity-20 text-white placeholder-white focus:outline-none focus:ring-1 focus:ring-white w-[180px]">
<i class="fas fa-search absolute left-2 top-1/2 transform -translate-y-1/2 fa-icon"></i>
</div>
<button class="flex items-center space-x-1 bg-white bg-opacity-20 hover:bg-opacity-30 px-3 py-1 rounded-button transition">
<i class="fas fa-robot fa-icon"></i>
<span>AI助手</span>
</button>
<div class="w-8 h-8 rounded-full bg-white flex items-center justify-center overflow-hidden">
<i class="fas fa-user fa-icon text-primary"></i>
</div>
</div>
</div>
</header> -->
<!-- 主内容区 -->
<main class="w-[1200px] mx-auto px-4 py-6">
<div class="flex space-x-4">
<!-- 左侧组织架构树 -->
<div class="w-1/5 bg-white rounded-md shadow-sm p-4">
<h2 class="font-medium text-gray-700 mb-4">组织架构</h2>
<div class="space-y-2">
<div class="flex items-center space-x-2 cursor-pointer">
<i class="fas fa-building fa-icon text-gray-500"></i>
<span class="hover:text-primary">公司总部</span>
</div>
<div class="ml-6 space-y-2">
<div class="flex items-center space-x-2 cursor-pointer">
<i class="fas fa-users fa-icon text-gray-500"></i>
<span class="hover:text-primary">人力资源部</span>
</div>
<div class="flex items-center space-x-2 cursor-pointer">
<i class="fas fa-users fa-icon text-gray-500"></i>
<span class="hover:text-primary">财务部</span>
</div>
<div class="flex items-center space-x-2 cursor-pointer">
<i class="fas fa-users fa-icon text-gray-500"></i>
<span class="hover:text-primary">技术研发部</span>
</div>
<div class="ml-6 space-y-2">
<div class="flex items-center space-x-2 cursor-pointer">
<i class="fas fa-user fa-icon text-gray-500"></i>
<span class="hover:text-primary">前端开发组</span>
</div>
<div class="flex items-center space-x-2 cursor-pointer">
<i class="fas fa-user fa-icon text-gray-500"></i>
<span class="hover:text-primary">后端开发组</span>
</div>
<div class="flex items-center space-x-2 cursor-pointer">
<i class="fas fa-user fa-icon text-gray-500"></i>
<span class="hover:text-primary">测试组</span>
</div>
</div>
<div class="flex items-center space-x-2 cursor-pointer">
<i class="fas fa-users fa-icon text-gray-500"></i>
<span class="hover:text-primary">产品部</span>
</div>
<div class="flex items-center space-x-2 cursor-pointer">
<i class="fas fa-users fa-icon text-gray-500"></i>
<span class="hover:text-primary">市场部</span>
</div>
</div>
</div>
</div>
<!-- 右侧考勤管理区 -->
<div class="w-4/5 bg-white rounded-md shadow-sm p-4">
<h2 class="font-medium text-gray-700 mb-4">考勤管理</h2>
<!-- 筛选区 -->
<div class="grid grid-cols-4 gap-4 mb-6">
<div>
<label class="block text-gray-600 mb-1">员工ID</label>
<input type="text" class="w-full border rounded-button px-3 py-1 focus:outline-none focus:ring-1 focus:ring-primary">
</div>
<div>
<label class="block text-gray-600 mb-1">员工姓名</label>
<input type="text" class="w-full border rounded-button px-3 py-1 focus:outline-none focus:ring-1 focus:ring-primary">
</div>
<div>
<label class="block text-gray-600 mb-1">日期范围</label>
<div class="relative">
<input type="text" class="w-full border rounded-button px-3 py-1 focus:outline-none focus:ring-1 focus:ring-primary" placeholder="选择日期">
<i class="fas fa-calendar-alt absolute right-2 top-1/2 transform -translate-y-1/2 fa-icon text-gray-400"></i>
</div>
</div>
<div>
<label class="block text-gray-600 mb-1">考勤状态</label>
<div class="relative">
<select class="w-full border rounded-button px-3 py-1 appearance-none focus:outline-none focus:ring-1 focus:ring-primary">
<option>全部</option>
<option>正常</option>
<option>迟到</option>
<option>早退</option>
<option>缺勤</option>
</select>
<i class="fas fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 fa-icon text-gray-400"></i>
</div>
</div>
</div>
<!-- 操作按钮 -->
<div class="flex justify-between mb-4">
<div class="flex space-x-2">
<button class="bg-primary text-white px-3 py-1 rounded-button hover:bg-opacity-90 transition">
<i class="fas fa-search fa-icon mr-1"></i>
<span>查询</span>
</button>
<button class="border border-gray-300 px-3 py-1 rounded-button hover:bg-gray-50 transition">
<i class="fas fa-redo fa-icon mr-1"></i>
<span>重置</span>
</button>
</div>
<div>
<button class="bg-primary text-white px-3 py-1 rounded-button hover:bg-opacity-90 transition">
<i class="fas fa-download fa-icon mr-1"></i>
<span>导出</span>
</button>
</div>
</div>
<!-- 数据表格 -->
<div class="overflow-x-auto">
<table class="w-full">
<thead class="bg-secondary">
<tr>
<th class="px-4 py-2 text-left">员工ID</th>
<th class="px-4 py-2 text-left">员工姓名</th>
<th class="px-4 py-2 text-left">日期</th>
<th class="px-4 py-2 text-left">单位</th>
<th class="px-4 py-2 text-left">部门</th>
<th class="px-4 py-2 text-left">考勤状态</th>
<th class="px-4 py-2 text-left">上班时间</th>
<th class="px-4 py-2 text-left">下班时间</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200">
<tr class="hover:bg-gray-50">
<td class="px-4 py-2">10001</td>
<td class="px-4 py-2">张伟</td>
<td class="px-4 py-2">2023-06-01</td>
<td class="px-4 py-2">总部</td>
<td class="px-4 py-2">技术研发部</td>
<td class="px-4 py-2 text-green-500">正常</td>
<td class="px-4 py-2">09:00:00</td>
<td class="px-4 py-2">18:00:00</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-2">10002</td>
<td class="px-4 py-2">王芳</td>
<td class="px-4 py-2">2023-06-01</td>
<td class="px-4 py-2">总部</td>
<td class="px-4 py-2">人力资源部</td>
<td class="px-4 py-2 text-yellow-500">迟到</td>
<td class="px-4 py-2">09:30:00</td>
<td class="px-4 py-2">18:00:00</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-2">10003</td>
<td class="px-4 py-2">李娜</td>
<td class="px-4 py-2">2023-06-01</td>
<td class="px-4 py-2">总部</td>
<td class="px-4 py-2">财务部</td>
<td class="px-4 py-2 text-green-500">正常</td>
<td class="px-4 py-2">09:00:00</td>
<td class="px-4 py-2">18:00:00</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-2">10004</td>
<td class="px-4 py-2">赵明</td>
<td class="px-4 py-2">2023-06-01</td>
<td class="px-4 py-2">总部</td>
<td class="px-4 py-2">产品部</td>
<td class="px-4 py-2 text-green-500">正常</td>
<td class="px-4 py-2">09:00:00</td>
<td class="px-4 py-2">18:00:00</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-2">10005</td>
<td class="px-4 py-2">刘强</td>
<td class="px-4 py-2">2023-06-01</td>
<td class="px-4 py-2">总部</td>
<td class="px-4 py-2">市场部</td>
<td class="px-4 py-2 text-red-500">早退</td>
<td class="px-4 py-2">09:00:00</td>
<td class="px-4 py-2">17:30:00</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-2">10006</td>
<td class="px-4 py-2">陈静</td>
<td class="px-4 py-2">2023-06-01</td>
<td class="px-4 py-2">总部</td>
<td class="px-4 py-2">技术研发部</td>
<td class="px-4 py-2 text-green-500">正常</td>
<td class="px-4 py-2">09:00:00</td>
<td class="px-4 py-2">18:00:00</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-2">10007</td>
<td class="px-4 py-2">杨光</td>
<td class="px-4 py-2">2023-06-01</td>
<td class="px-4 py-2">总部</td>
<td class="px-4 py-2">人力资源部</td>
<td class="px-4 py-2 text-green-500">正常</td>
<td class="px-4 py-2">09:00:00</td>
<td class="px-4 py-2">18:00:00</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="px-4 py-2">10008</td>
<td class="px-4 py-2">周涛</td>
<td class="px-4 py-2">2023-06-01</td>
<td class="px-4 py-2">总部</td>
<td class="px-4 py-2">财务部</td>
<td class="px-4 py-2 text-green-500">正常</td>
<td class="px-4 py-2">09:00:00</td>
<td class="px-4 py-2">18:00:00</td>
</tr>
</tbody>
</table>
</div>
<!-- 分页 -->
<div class="flex justify-between items-center mt-4">
<div class="text-gray-500">
显示 1 到 8 条,共 120 条记录
</div>
<div class="flex space-x-1">
<button class="w-8 h-8 border rounded-button flex items-center justify-center hover:bg-gray-50">
<i class="fas fa-angle-left fa-icon"></i>
</button>
<button class="w-8 h-8 border rounded-button flex items-center justify-center bg-primary text-white">1</button>
<button class="w-8 h-8 border rounded-button flex items-center justify-center hover:bg-gray-50">2</button>
<button class="w-8 h-8 border rounded-button flex items-center justify-center hover:bg-gray-50">3</button>
<button class="w-8 h-8 border rounded-button flex items-center justify-center hover:bg-gray-50">4</button>
<button class="w-8 h-8 border rounded-button flex items-center justify-center hover:bg-gray-50">5</button>
<button class="w-8 h-8 border rounded-button flex items-center justify-center hover:bg-gray-50">
<i class="fas fa-angle-right fa-icon"></i>
</button>
</div>
</div>
</div>
</div>
</main>
<!-- 页脚 -->
<footer class="w-full bg-gray-800 text-gray-400 py-6">
<div class="w-[1200px] mx-auto">
<div class="grid grid-cols-3 gap-8">
<div>
<h3 class="text-white text-sm font-medium mb-3">关于我们</h3>
<p class="text-xs leading-6">人力资源管理系统致力于为企业提供专业的人力资源管理解决方案,帮助企业提升管理效率,优化人力资源配置。</p>
</div>
<div>
<h3 class="text-white text-sm font-medium mb-3">快速链接</h3>
<ul class="space-y-2 text-xs">
<li><a href="#" class="hover:text-white transition">帮助中心</a></li>
<li><a href="#" class="hover:text-white transition">API文档</a></li>
<li><a href="#" class="hover:text-white transition">系统更新</a></li>
<li><a href="#" class="hover:text-white transition">联系我们</a></li>
</ul>
</div>
<div>
<h3 class="text-white text-sm font-medium mb-3">联系方式</h3>
<ul class="space-y-2 text-xs">
<li class="flex items-center">
<i class="fas fa-phone fa-icon mr-2"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fas fa-envelope fa-icon mr-2"></i>
<span>service@hrms.com</span>
</li>
<li class="flex items-center">
<i class="fas fa-map-marker-alt fa-icon mr-2"></i>
<span>北京市海淀区科技园路88号</span>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 mt-6 pt-4 text-xs text-center">
<p>© 2023 人力资源管理系统 版权所有 | 京ICP备12345678号</p>
</div>
</div>
</footer>
</body>
</html>

@ -1,451 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>人力资源管理系统</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
body {
min-height: 1024px;
}
.nav-item:hover {
background-color: rgba(255,255,255,0.1);
}
.tree-item:hover {
background-color: rgba(45,92,246,0.1);
}
.table-row:hover {
background-color: #F5F6FA;
}
.search-icon {
display: flex;
justify-content: center;
align-items: center;
width: 16px;
height: 16px;
}
.user-avatar {
width: 32px;
height: 32px;
}
.ai-icon {
display: flex;
justify-content: center;
align-items: center;
width: 20px;
height: 20px;
}
</style>
</head>
<body class="bg-white font-sans text-gray-800">
<!-- 顶部导航栏 -->
<!-- <header class="w-full bg-primary text-white fixed top-0 left-0 z-50 shadow-md">
<div class="container mx-auto px-4 h-16 flex items-center justify-between">
<div class="flex items-center">
<div class="font-['Pacifico'] text-xl mr-8">人力</div>
<nav class="hidden md:flex space-x-5">
<a href="#" class="nav-item px-3 py-2 text-sm rounded-button whitespace-nowrap">多维统计</a>
<a href="#" class="nav-item px-3 py-2 text-sm rounded-button whitespace-nowrap">人员管理</a>
<a href="#" class="nav-item px-3 py-2 text-sm rounded-button whitespace-nowrap">组织管理</a>
<a href="#" class="nav-item px-3 py-2 text-sm rounded-button whitespace-nowrap">考勤管理</a>
<a href="#" class="nav-item px-3 py-2 text-sm rounded-button whitespace-nowrap">绩效管理</a>
<a href="#" class="nav-item px-3 py-2 text-sm rounded-button whitespace-nowrap">薪酬管理</a>
<a href="#" class="nav-item px-3 py-2 text-sm rounded-button whitespace-nowrap">知识库</a>
<a href="#" class="nav-item px-3 py-2 text-sm rounded-button whitespace-nowrap">后台管理</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative hidden md:block">
<input type="text" placeholder="搜索..." class="bg-white bg-opacity-20 text-white text-sm pl-8 pr-4 py-1 rounded-full border-none focus:ring-2 focus:ring-white focus:ring-opacity-50 placeholder-white placeholder-opacity-70 w-48">
<i class="fas fa-search search-icon absolute left-3 top-1/2 transform -translate-y-1/2 text-white text-opacity-70"></i>
</div>
<button class="flex items-center space-x-1 bg-white bg-opacity-20 hover:bg-opacity-30 px-3 py-1 rounded-button text-sm whitespace-nowrap">
<i class="fas fa-robot ai-icon text-white"></i>
<span>AI助手</span>
</button>
<div class="flex items-center space-x-2 cursor-pointer">
<div class="user-avatar rounded-full bg-white text-primary flex items-center justify-center font-semibold"></div>
</div>
</div>
</div>
</header> -->
<!-- 主体内容 -->
<main class="container mx-auto px-4 pb-10">
<div class="flex mt-6">
<!-- 左侧组织架构树 -->
<div class="w-1/5 pr-4">
<div class="bg-secondary rounded-md shadow-sm p-4 h-full">
<h3 class="text-sm font-semibold mb-4 text-gray-700">组织架构</h3>
<div class="space-y-1">
<div class="tree-item cursor-pointer p-2 rounded-md text-sm flex items-center">
<i class="fas fa-building mr-2 text-gray-500"></i>
<span>集团公司</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md text-sm flex items-center ml-4">
<i class="fas fa-sitemap mr-2 text-gray-500"></i>
<span>技术中心</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md text-sm flex items-center ml-8 bg-primary bg-opacity-10 text-primary">
<i class="fas fa-code-branch mr-2"></i>
<span>研发部</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md text-sm flex items-center ml-8">
<i class="fas fa-code-branch mr-2 text-gray-500"></i>
<span>测试部</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md text-sm flex items-center ml-4">
<i class="fas fa-sitemap mr-2 text-gray-500"></i>
<span>市场中心</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md text-sm flex items-center ml-8">
<i class="fas fa-code-branch mr-2 text-gray-500"></i>
<span>市场部</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md text-sm flex items-center ml-8">
<i class="fas fa-code-branch mr-2 text-gray-500"></i>
<span>品牌部</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md text-sm flex items-center ml-4">
<i class="fas fa-sitemap mr-2 text-gray-500"></i>
<span>运营中心</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md text-sm flex items-center ml-8">
<i class="fas fa-code-branch mr-2 text-gray-500"></i>
<span>客服部</span>
</div>
<div class="tree-item cursor-pointer p-2 rounded-md text-sm flex items-center ml-8">
<i class="fas fa-code-branch mr-2 text-gray-500"></i>
<span>运营部</span>
</div>
</div>
</div>
</div>
<!-- 右侧内容区 -->
<div class="w-4/5">
<!-- 筛选区域 -->
<div class="bg-white rounded-md shadow-sm p-4 mb-4">
<h3 class="text-sm font-semibold mb-4 text-gray-700">薪酬查询</h3>
<div class="grid grid-cols-4 gap-4">
<div>
<label class="block text-xs text-gray-500 mb-1">姓名</label>
<input type="text" class="w-full border border-gray-200 rounded-md px-3 py-1 text-sm focus:ring-primary focus:border-primary">
</div>
<div>
<label class="block text-xs text-gray-500 mb-1">电话</label>
<input type="text" class="w-full border border-gray-200 rounded-md px-3 py-1 text-sm focus:ring-primary focus:border-primary">
</div>
<div>
<label class="block text-xs text-gray-500 mb-1">月份</label>
<div class="relative">
<input type="text" class="w-full border border-gray-200 rounded-md px-3 py-1 text-sm focus:ring-primary focus:border-primary" placeholder="选择月份">
<i class="fas fa-calendar-alt absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 text-sm"></i>
</div>
</div>
<div class="flex items-end">
<button class="bg-primary text-white px-4 py-1 rounded-button text-sm whitespace-nowrap hover:bg-opacity-90">查询</button>
<button class="ml-2 border border-gray-200 px-4 py-1 rounded-button text-sm whitespace-nowrap hover:bg-gray-50">重置</button>
</div>
</div>
</div>
<!-- 薪酬列表 -->
<div class="bg-white rounded-md shadow-sm overflow-hidden">
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200 text-sm">
<thead class="bg-secondary">
<tr>
<th class="px-4 py-2 text-left font-medium text-gray-700">序号</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">姓名</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">性别</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">年龄</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">部门</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">岗位</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">月份</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">税前工资</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">税后工资</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">基本工资</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">浮动工资</th>
<th class="px-4 py-2 text-left font-medium text-gray-700">详情</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200">
<tr class="table-row">
<td class="px-4 py-2">1</td>
<td class="px-4 py-2">张明远</td>
<td class="px-4 py-2"></td>
<td class="px-4 py-2">32</td>
<td class="px-4 py-2">研发部</td>
<td class="px-4 py-2">高级工程师</td>
<td class="px-4 py-2">2023-10</td>
<td class="px-4 py-2">¥28,500</td>
<td class="px-4 py-2">¥24,225</td>
<td class="px-4 py-2">¥18,000</td>
<td class="px-4 py-2">¥10,500</td>
<td class="px-4 py-2">
<button class="text-primary hover:underline">查看</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">2</td>
<td class="px-4 py-2">李思雨</td>
<td class="px-4 py-2"></td>
<td class="px-4 py-2">28</td>
<td class="px-4 py-2">市场部</td>
<td class="px-4 py-2">市场经理</td>
<td class="px-4 py-2">2023-10</td>
<td class="px-4 py-2">¥25,800</td>
<td class="px-4 py-2">¥22,170</td>
<td class="px-4 py-2">¥16,000</td>
<td class="px-4 py-2">¥9,800</td>
<td class="px-4 py-2">
<button class="text-primary hover:underline">查看</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">3</td>
<td class="px-4 py-2">王建国</td>
<td class="px-4 py-2"></td>
<td class="px-4 py-2">45</td>
<td class="px-4 py-2">技术中心</td>
<td class="px-4 py-2">技术总监</td>
<td class="px-4 py-2">2023-10</td>
<td class="px-4 py-2">¥42,000</td>
<td class="px-4 py-2">¥34,860</td>
<td class="px-4 py-2">¥25,000</td>
<td class="px-4 py-2">¥17,000</td>
<td class="px-4 py-2">
<button class="text-primary hover:underline">查看</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">4</td>
<td class="px-4 py-2">赵雪</td>
<td class="px-4 py-2"></td>
<td class="px-4 py-2">26</td>
<td class="px-4 py-2">运营部</td>
<td class="px-4 py-2">运营专员</td>
<td class="px-4 py-2">2023-10</td>
<td class="px-4 py-2">¥15,000</td>
<td class="px-4 py-2">¥13,350</td>
<td class="px-4 py-2">¥10,000</td>
<td class="px-4 py-2">¥5,000</td>
<td class="px-4 py-2">
<button class="text-primary hover:underline">查看</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">5</td>
<td class="px-4 py-2">陈志强</td>
<td class="px-4 py-2"></td>
<td class="px-4 py-2">35</td>
<td class="px-4 py-2">测试部</td>
<td class="px-4 py-2">测试经理</td>
<td class="px-4 py-2">2023-10</td>
<td class="px-4 py-2">¥22,500</td>
<td class="px-4 py-2">¥19,575</td>
<td class="px-4 py-2">¥15,000</td>
<td class="px-4 py-2">¥7,500</td>
<td class="px-4 py-2">
<button class="text-primary hover:underline">查看</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">6</td>
<td class="px-4 py-2">刘芳</td>
<td class="px-4 py-2"></td>
<td class="px-4 py-2">30</td>
<td class="px-4 py-2">品牌部</td>
<td class="px-4 py-2">品牌主管</td>
<td class="px-4 py-2">2023-10</td>
<td class="px-4 py-2">¥19,800</td>
<td class="px-4 py-2">¥17,406</td>
<td class="px-4 py-2">¥12,000</td>
<td class="px-4 py-2">¥7,800</td>
<td class="px-4 py-2">
<button class="text-primary hover:underline">查看</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">7</td>
<td class="px-4 py-2">周伟</td>
<td class="px-4 py-2"></td>
<td class="px-4 py-2">29</td>
<td class="px-4 py-2">研发部</td>
<td class="px-4 py-2">前端工程师</td>
<td class="px-4 py-2">2023-10</td>
<td class="px-4 py-2">¥20,000</td>
<td class="px-4 py-2">¥17,600</td>
<td class="px-4 py-2">¥13,000</td>
<td class="px-4 py-2">¥7,000</td>
<td class="px-4 py-2">
<button class="text-primary hover:underline">查看</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">8</td>
<td class="px-4 py-2">吴晓梅</td>
<td class="px-4 py-2"></td>
<td class="px-4 py-2">27</td>
<td class="px-4 py-2">客服部</td>
<td class="px-4 py-2">客服主管</td>
<td class="px-4 py-2">2023-10</td>
<td class="px-4 py-2">¥16,500</td>
<td class="px-4 py-2">¥14,685</td>
<td class="px-4 py-2">¥11,000</td>
<td class="px-4 py-2">¥5,500</td>
<td class="px-4 py-2">
<button class="text-primary hover:underline">查看</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">9</td>
<td class="px-4 py-2">郑阳</td>
<td class="px-4 py-2"></td>
<td class="px-4 py-2">33</td>
<td class="px-4 py-2">研发部</td>
<td class="px-4 py-2">后端工程师</td>
<td class="px-4 py-2">2023-10</td>
<td class="px-4 py-2">¥23,000</td>
<td class="px-4 py-2">¥19,910</td>
<td class="px-4 py-2">¥15,000</td>
<td class="px-4 py-2">¥8,000</td>
<td class="px-4 py-2">
<button class="text-primary hover:underline">查看</button>
</td>
</tr>
<tr class="table-row">
<td class="px-4 py-2">10</td>
<td class="px-4 py-2">林静</td>
<td class="px-4 py-2"></td>
<td class="px-4 py-2">31</td>
<td class="px-4 py-2">市场部</td>
<td class="px-4 py-2">市场策划</td>
<td class="px-4 py-2">2023-10</td>
<td class="px-4 py-2">¥18,500</td>
<td class="px-4 py-2">¥16,315</td>
<td class="px-4 py-2">¥12,000</td>
<td class="px-4 py-2">¥6,500</td>
<td class="px-4 py-2">
<button class="text-primary hover:underline">查看</button>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 分页 -->
<div class="px-4 py-3 flex items-center justify-between border-t border-gray-200">
<div class="text-xs text-gray-500">
显示 1 到 10 条,共 128 条记录
</div>
<div class="flex space-x-1">
<button class="px-3 py-1 border border-gray-200 rounded-md text-sm hover:bg-gray-50">&laquo;</button>
<button class="px-3 py-1 border border-gray-200 rounded-md text-sm bg-primary text-white">1</button>
<button class="px-3 py-1 border border-gray-200 rounded-md text-sm hover:bg-gray-50">2</button>
<button class="px-3 py-1 border border-gray-200 rounded-md text-sm hover:bg-gray-50">3</button>
<button class="px-3 py-1 border border-gray-200 rounded-md text-sm hover:bg-gray-50">...</button>
<button class="px-3 py-1 border border-gray-200 rounded-md text-sm hover:bg-gray-50">13</button>
<button class="px-3 py-1 border border-gray-200 rounded-md text-sm hover:bg-gray-50">&raquo;</button>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- 底部页脚 -->
<footer class="w-full bg-secondary border-t border-gray-200 mt-10">
<div class="container mx-auto px-4 py-8">
<div class="grid grid-cols-4 gap-8">
<div>
<h4 class="text-sm font-semibold mb-4">关于我们</h4>
<p class="text-xs text-gray-600 mb-4">人力科技是一家专注于企业人力资源数字化解决方案的高科技企业,致力于为企业提供专业、高效的人力资源管理服务。</p>
<div class="flex space-x-4">
<a href="#" class="text-gray-500 hover:text-primary"><i class="fab fa-weixin"></i></a>
<a href="#" class="text-gray-500 hover:text-primary"><i class="fab fa-weibo"></i></a>
<a href="#" class="text-gray-500 hover:text-primary"><i class="fab fa-linkedin"></i></a>
</div>
</div>
<div>
<h4 class="text-sm font-semibold mb-4">产品服务</h4>
<ul class="space-y-2 text-xs text-gray-600">
<li><a href="#" class="hover:text-primary">人力资源管理系统</a></li>
<li><a href="#" class="hover:text-primary">薪酬计算系统</a></li>
<li><a href="#" class="hover:text-primary">绩效考核系统</a></li>
<li><a href="#" class="hover:text-primary">招聘管理系统</a></li>
</ul>
</div>
<div>
<h4 class="text-sm font-semibold mb-4">帮助中心</h4>
<ul class="space-y-2 text-xs text-gray-600">
<li><a href="#" class="hover:text-primary">使用文档</a></li>
<li><a href="#" class="hover:text-primary">视频教程</a></li>
<li><a href="#" class="hover:text-primary">常见问题</a></li>
<li><a href="#" class="hover:text-primary">在线客服</a></li>
</ul>
</div>
<div>
<h4 class="text-sm font-semibold mb-4">联系我们</h4>
<ul class="space-y-2 text-xs text-gray-600">
<li class="flex items-start">
<i class="fas fa-map-marker-alt mr-2 mt-0.5"></i>
<span>北京市海淀区中关村软件园二期</span>
</li>
<li class="flex items-center">
<i class="fas fa-phone-alt mr-2"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fas fa-envelope mr-2"></i>
<span>service@hrtech.com</span>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-200 mt-8 pt-6 text-center text-xs text-gray-500">
<p>© 2023 人力科技 版权所有 京ICP备12345678号</p>
</div>
</div>
</footer>
</body>
</html>

@ -1,520 +0,0 @@
<!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 rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA',
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
body {
font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
min-height: 1024px;
}
.nav-item:hover {
background-color: rgba(255, 255, 255, 0.2);
}
.tree-node:hover {
background-color: #E6E9F0;
}
.form-card {
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}
.scroll-container {
animation: scroll 15s linear infinite;
}
@keyframes scroll {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
i.fa-icon {
display: flex;
justify-content: center;
align-items: center;
}
</style>
</head>
<body class="bg-gray-50">
<!-- 顶部导航栏 -->
<!-- <header class="bg-primary text-white sticky top-0 z-50">
<div class="container mx-auto px-4 h-15 flex items-center justify-between">
<div class="flex items-center">
<span class="font-['Pacifico'] text-xl mr-10">人力</span>
</div>
<nav class="flex-1 flex justify-center">
<ul class="flex space-x-6">
<li class="nav-item px-3 py-2 rounded-button cursor-pointer">多维统计</li>
<li class="nav-item px-3 py-2 rounded-button cursor-pointer">人员管理</li>
<li class="nav-item px-3 py-2 rounded-button cursor-pointer">组织管理</li>
<li class="nav-item px-3 py-2 rounded-button cursor-pointer">考勤管理</li>
<li class="nav-item px-3 py-2 rounded-button cursor-pointer">绩效管理</li>
<li class="nav-item px-3 py-2 rounded-button cursor-pointer">薪酬管理</li>
<li class="nav-item px-3 py-2 rounded-button cursor-pointer">知识库</li>
<li class="nav-item px-3 py-2 rounded-button cursor-pointer">后台管理</li>
</ul>
</nav>
<div class="flex items-center space-x-4">
<div class="relative">
<input type="text" placeholder="搜索..." class="bg-white bg-opacity-20 text-white placeholder-white text-sm rounded-button pl-8 pr-4 py-1 w-40 focus:outline-none">
<i class="fa-icon fa-solid fa-magnifying-glass absolute left-2 top-1/2 transform -translate-y-1/2 text-white text-sm"></i>
</div>
<div class="flex items-center space-x-2 cursor-pointer">
<div class="w-8 h-8 rounded-full bg-white flex items-center justify-center">
<i class="fa-icon fa-solid fa-user text-primary text-sm"></i>
</div>
<span class="text-sm">张明远</span>
</div>
<button class="bg-white text-primary text-sm px-3 py-1 rounded-button flex items-center space-x-1">
<i class="fa-icon fa-solid fa-robot text-sm"></i>
<span>AI 助手</span>
</button>
</div>
</div>
</header> -->
<!-- 公告栏 -->
<div class="bg-primary bg-opacity-10 py-2 overflow-hidden">
<div class="container mx-auto px-4">
<div class="flex items-center">
<span class="bg-primary text-white text-xs px-2 py-1 rounded-button mr-3 whitespace-nowrap">公告</span>
<div class="relative w-full overflow-hidden">
<div class="scroll-container whitespace-nowrap">
<span class="text-sm mr-8">2023年度绩效考核方案已发布请各部门负责人及时查阅</span>
<span class="text-sm mr-8">薪酬管理系统将于本周五18:00-20:00进行升级维护</span>
<span class="text-sm mr-8">新员工入职培训计划已更新,请相关人员做好准备</span>
<span class="text-sm mr-8">2023年度绩效考核方案已发布请各部门负责人及时查阅</span>
<span class="text-sm mr-8">薪酬管理系统将于本周五18:00-20:00进行升级维护</span>
<span class="text-sm mr-8">新员工入职培训计划已更新,请相关人员做好准备</span>
</div>
</div>
</div>
</div>
</div>
<!-- 主体内容 -->
<main class="container mx-auto px-4 py-6">
<div class="flex">
<!-- 左侧组织架构树 -->
<div class="w-1/5 pr-4">
<div class="bg-white rounded-md shadow-sm p-4 h-full">
<div class="flex justify-between items-center mb-4">
<h3 class="font-medium text-gray-700">组织架构</h3>
<div class="flex space-x-2">
<button class="text-gray-500 hover:text-primary">
<i class="fa-icon fa-solid fa-expand text-sm"></i>
</button>
<button class="text-gray-500 hover:text-primary">
<i class="fa-icon fa-solid fa-filter text-sm"></i>
</button>
</div>
</div>
<div class="space-y-1">
<div class="tree-node flex items-center py-1 px-2 rounded-button cursor-pointer">
<i class="fa-icon fa-solid fa-building text-gray-500 mr-2 text-sm"></i>
<span class="text-sm">集团公司</span>
</div>
<div class="pl-4">
<div class="tree-node flex items-center py-1 px-2 rounded-button cursor-pointer">
<i class="fa-icon fa-solid fa-building text-gray-500 mr-2 text-sm"></i>
<span class="text-sm">北京分公司</span>
</div>
<div class="pl-4">
<div class="tree-node flex items-center py-1 px-2 rounded-button cursor-pointer">
<i class="fa-icon fa-solid fa-users text-gray-500 mr-2 text-sm"></i>
<span class="text-sm">人力资源部</span>
</div>
<div class="tree-node flex items-center py-1 px-2 rounded-button cursor-pointer">
<i class="fa-icon fa-solid fa-chart-line text-gray-500 mr-2 text-sm"></i>
<span class="text-sm">财务部</span>
</div>
<div class="tree-node flex items-center py-1 px-2 rounded-button cursor-pointer">
<i class="fa-icon fa-solid fa-laptop-code text-gray-500 mr-2 text-sm"></i>
<span class="text-sm">技术研发部</span>
</div>
</div>
<div class="tree-node flex items-center py-1 px-2 rounded-button cursor-pointer">
<i class="fa-icon fa-solid fa-building text-gray-500 mr-2 text-sm"></i>
<span class="text-sm">上海分公司</span>
</div>
<div class="pl-4">
<div class="tree-node flex items-center py-1 px-2 rounded-button cursor-pointer">
<i class="fa-icon fa-solid fa-users text-gray-500 mr-2 text-sm"></i>
<span class="text-sm">人力资源部</span>
</div>
<div class="tree-node flex items-center py-1 px-2 rounded-button cursor-pointer">
<i class="fa-icon fa-solid fa-shopping-bag text-gray-500 mr-2 text-sm"></i>
<span class="text-sm">市场部</span>
</div>
</div>
</div>
<div class="tree-node flex items-center py-1 px-2 rounded-button cursor-pointer">
<i class="fa-icon fa-solid fa-building text-gray-500 mr-2 text-sm"></i>
<span class="text-sm">深圳分公司</span>
</div>
</div>
</div>
</div>
<!-- 右侧薪酬规则设置 -->
<div class="w-4/5">
<div class="bg-white rounded-md shadow-sm p-6">
<div class="flex justify-between items-center mb-6">
<h2 class="text-xl font-semibold text-gray-800">薪酬计算规则设置</h2>
<div class="flex space-x-3">
<button class="bg-primary text-white text-sm px-4 py-2 rounded-button flex items-center space-x-2">
<i class="fa-icon fa-solid fa-save text-sm"></i>
<span>保存规则</span>
</button>
<button class="bg-white border border-gray-300 text-gray-700 text-sm px-4 py-2 rounded-button flex items-center space-x-2">
<i class="fa-icon fa-solid fa-times text-sm"></i>
<span>取消</span>
</button>
</div>
</div>
<div class="space-y-6">
<!-- 基本信息 -->
<div class="form-card bg-secondary rounded-md p-4">
<h3 class="font-medium text-gray-700 mb-3">基本信息</h3>
<div class="grid grid-cols-3 gap-4">
<div>
<label class="block text-sm text-gray-600 mb-1">规则名称</label>
<input type="text" class="w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary">
</div>
<div>
<label class="block text-sm text-gray-600 mb-1">适用组织</label>
<div class="relative">
<input type="text" value="集团公司/北京分公司" class="w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-chevron-down absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</div>
<div>
<label class="block text-sm text-gray-600 mb-1">生效日期</label>
<div class="relative">
<input type="text" value="2023-07-01" class="w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-calendar-days absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</div>
</div>
</div>
<!-- 薪酬项设置 -->
<div class="form-card bg-secondary rounded-md p-4">
<div class="flex justify-between items-center mb-3">
<h3 class="font-medium text-gray-700">薪酬项设置</h3>
<button class="text-primary text-sm flex items-center space-x-1">
<i class="fa-icon fa-solid fa-plus text-sm"></i>
<span>添加薪酬项</span>
</button>
</div>
<div class="overflow-x-auto">
<table class="w-full">
<thead>
<tr class="text-left text-sm text-gray-500 border-b border-gray-200">
<th class="pb-2">薪酬项名称</th>
<th class="pb-2">类型</th>
<th class="pb-2">计税方式</th>
<th class="pb-2">计算公式</th>
<th class="pb-2">操作</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200">
<tr>
<td class="py-3">
<input type="text" value="基本工资" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-32 focus:outline-none focus:ring-1 focus:ring-primary">
</td>
<td class="py-3">
<div class="relative">
<input type="text" value="固定工资" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-32 focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</td>
<td class="py-3">
<div class="relative">
<input type="text" value="税前" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-32 focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</td>
<td class="py-3">
<input type="text" value="岗位工资基数 * 职级系数" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-64 focus:outline-none focus:ring-1 focus:ring-primary">
</td>
<td class="py-3">
<button class="text-red-500 hover:text-red-700">
<i class="fa-icon fa-solid fa-trash text-sm"></i>
</button>
</td>
</tr>
<tr>
<td class="py-3">
<input type="text" value="绩效奖金" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-32 focus:outline-none focus:ring-1 focus:ring-primary">
</td>
<td class="py-3">
<div class="relative">
<input type="text" value="浮动工资" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-32 focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</td>
<td class="py-3">
<div class="relative">
<input type="text" value="税前" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-32 focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</td>
<td class="py-3">
<input type="text" value="基本工资 * 绩效系数" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-64 focus:outline-none focus:ring-1 focus:ring-primary">
</td>
<td class="py-3">
<button class="text-red-500 hover:text-red-700">
<i class="fa-icon fa-solid fa-trash text-sm"></i>
</button>
</td>
</tr>
<tr>
<td class="py-3">
<input type="text" value="交通补贴" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-32 focus:outline-none focus:ring-1 focus:ring-primary">
</td>
<td class="py-3">
<div class="relative">
<input type="text" value="补贴" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-32 focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</td>
<td class="py-3">
<div class="relative">
<input type="text" value="税后" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-32 focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</td>
<td class="py-3">
<input type="text" value="固定金额 500" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-64 focus:outline-none focus:ring-1 focus:ring-primary">
</td>
<td class="py-3">
<button class="text-red-500 hover:text-red-700">
<i class="fa-icon fa-solid fa-trash text-sm"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- 社保公积金设置 -->
<div class="form-card bg-secondary rounded-md p-4">
<h3 class="font-medium text-gray-700 mb-3">社保公积金设置</h3>
<div class="grid grid-cols-2 gap-4">
<div>
<label class="block text-sm text-gray-600 mb-1">社保缴纳基数</label>
<div class="relative">
<input type="text" value="员工基本工资" class="w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-chevron-down absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</div>
<div>
<label class="block text-sm text-gray-600 mb-1">公积金缴纳基数</label>
<div class="relative">
<input type="text" value="员工基本工资" class="w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-chevron-down absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</div>
</div>
<div class="mt-4">
<label class="block text-sm text-gray-600 mb-2">缴纳比例</label>
<div class="overflow-x-auto">
<table class="w-full">
<thead>
<tr class="text-left text-sm text-gray-500 border-b border-gray-200">
<th class="pb-2">项目</th>
<th class="pb-2">单位比例</th>
<th class="pb-2">个人比例</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200">
<tr>
<td class="py-2">养老保险</td>
<td class="py-2">
<div class="relative w-24">
<input type="text" value="16%" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-full focus:outline-none focus:ring-1 focus:ring-primary">
</div>
</td>
<td class="py-2">
<div class="relative w-24">
<input type="text" value="8%" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-full focus:outline-none focus:ring-1 focus:ring-primary">
</div>
</td>
</tr>
<tr>
<td class="py-2">医疗保险</td>
<td class="py-2">
<div class="relative w-24">
<input type="text" value="9.5%" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-full focus:outline-none focus:ring-1 focus:ring-primary">
</div>
</td>
<td class="py-2">
<div class="relative w-24">
<input type="text" value="2%" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-full focus:outline-none focus:ring-1 focus:ring-primary">
</div>
</td>
</tr>
<tr>
<td class="py-2">失业保险</td>
<td class="py-2">
<div class="relative w-24">
<input type="text" value="0.5%" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-full focus:outline-none focus:ring-1 focus:ring-primary">
</div>
</td>
<td class="py-2">
<div class="relative w-24">
<input type="text" value="0.5%" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-full focus:outline-none focus:ring-1 focus:ring-primary">
</div>
</td>
</tr>
<tr>
<td class="py-2">公积金</td>
<td class="py-2">
<div class="relative w-24">
<input type="text" value="12%" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-full focus:outline-none focus:ring-1 focus:ring-primary">
</div>
</td>
<td class="py-2">
<div class="relative w-24">
<input type="text" value="12%" class="border border-gray-300 rounded-md px-2 py-1 text-sm w-full focus:outline-none focus:ring-1 focus:ring-primary">
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- 个税设置 -->
<div class="form-card bg-secondary rounded-md p-4">
<h3 class="font-medium text-gray-700 mb-3">个人所得税设置</h3>
<div class="grid grid-cols-2 gap-4">
<div>
<label class="block text-sm text-gray-600 mb-1">起征点</label>
<div class="relative">
<input type="text" value="5000" class="w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary">
</div>
</div>
<div>
<label class="block text-sm text-gray-600 mb-1">专项附加扣除</label>
<div class="relative">
<input type="text" value="自动计算" class="w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary">
<i class="fa-icon fa-solid fa-chevron-down absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 text-xs"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- 底部通栏 -->
<footer class="bg-gray-800 text-white py-8 mt-10">
<div class="container mx-auto px-4">
<div class="grid grid-cols-4 gap-8">
<div>
<h4 class="text-sm font-medium mb-4">关于我们</h4>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">公司简介</a></li>
<li><a href="#" class="hover:text-white">发展历程</a></li>
<li><a href="#" class="hover:text-white">企业文化</a></li>
<li><a href="#" class="hover:text-white">联系我们</a></li>
</ul>
</div>
<div>
<h4 class="text-sm font-medium mb-4">产品服务</h4>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">人力资源管理系统</a></li>
<li><a href="#" class="hover:text-white">薪酬管理系统</a></li>
<li><a href="#" class="hover:text-white">绩效管理系统</a></li>
<li><a href="#" class="hover:text-white">培训管理系统</a></li>
</ul>
</div>
<div>
<h4 class="text-sm font-medium mb-4">帮助中心</h4>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">使用指南</a></li>
<li><a href="#" class="hover:text-white">常见问题</a></li>
<li><a href="#" class="hover:text-white">视频教程</a></li>
<li><a href="#" class="hover:text-white">在线客服</a></li>
</ul>
</div>
<div>
<h4 class="text-sm font-medium mb-4">联系我们</h4>
<ul class="space-y-2 text-xs text-gray-300">
<li class="flex items-center">
<i class="fa-icon fa-solid fa-phone mr-2 text-sm"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fa-icon fa-solid fa-envelope mr-2 text-sm"></i>
<span>service@hrsystem.com</span>
</li>
<li class="flex items-center">
<i class="fa-icon fa-solid fa-location-dot mr-2 text-sm"></i>
<span>北京市海淀区中关村软件园</span>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-6 flex justify-between items-center">
<p class="text-xs text-gray-400">© 2023 人力资源管理系统 版权所有</p>
<div class="flex space-x-4">
<a href="#" class="text-gray-400 hover:text-white">
<i class="fa-icon fa-brands fa-weixin text-sm"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fa-icon fa-brands fa-weibo text-sm"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fa-icon fa-brands fa-linkedin-in text-sm"></i>
</a>
</div>
</div>
</div>
</footer>
</body>
</html>

@ -1,475 +0,0 @@
<!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 rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
.font-logo {
font-family: 'Pacifico', serif;
}
.fa-icon {
display: flex;
justify-content: center;
align-items: center;
}
.scroll-container {
overflow: hidden;
}
.scroll-content {
display: inline-block;
white-space: nowrap;
animation: scroll 20s linear infinite;
}
@keyframes scroll {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type="number"] {
-moz-appearance: textfield;
}
</style>
</head>
<body class="min-h-[1024px] bg-gray-50 flex flex-col">
<!-- 顶部导航栏 -->
<!-- <header class="w-full bg-primary text-white shadow-md">
<div class="container mx-auto px-6 h-[60px] flex items-center justify-between">
<div class="flex items-center space-x-8">
<div class="font-logo text-xl">人力</div>
<nav class="hidden md:flex space-x-6">
<a href="#" class="text-sm hover:text-gray-200 transition">多维统计</a>
<a href="#" class="text-sm hover:text-gray-200 transition">人员管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">组织管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">考勤管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">绩效管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">薪酬管理</a>
<a href="#" class="text-sm hover:text-gray-200 transition">知识库</a>
<a href="#" class="text-sm hover:text-gray-200 transition">后台管理</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative hidden md:block">
<input type="text" placeholder="搜索..." class="bg-primary-light text-sm text-white placeholder-gray-300 rounded-button pl-8 pr-4 py-2 border border-gray-300 focus:outline-none focus:ring-1 focus:ring-blue-500">
<i class="fas fa-search absolute left-2 top-1/2 transform -translate-y-1/2 text-gray-300 fa-icon w-4 h-4"></i>
</div>
<button class="bg-blue-600 hover:bg-blue-700 text-white text-sm px-4 py-2 rounded-button flex items-center space-x-2">
<i class="fas fa-robot fa-icon w-4 h-4"></i>
<span>AI 助手</span>
</button>
<div class="w-8 h-8 rounded-full bg-white flex items-center justify-center cursor-pointer">
<i class="fas fa-user text-primary fa-icon w-4 h-4"></i>
</div>
</div>
</div>
</header> -->
<!-- 公告栏 -->
<div class="w-full bg-yellow-50 py-2 px-6 border-b border-yellow-200">
<div class="container mx-auto flex items-center">
<span class="text-yellow-700 font-medium text-sm mr-4 whitespace-nowrap">公告:</span>
<div class="scroll-container w-full">
<div class="scroll-content text-sm text-yellow-700">
2023年度绩效考核工作将于12月1日正式启动请各部门提前做好准备。2023年度员工满意度调查结果已发布请各部门负责人查阅。公司年度旅游活动报名开始截止日期11月30日。2024年春节放假安排已发布请各部门做好工作安排。公司新办公区将于2024年1月正式启用请各部门做好搬迁准备。
</div>
</div>
</div>
</div>
<!-- 主体内容 -->
<main class="flex-1 container mx-auto px-6 py-6 flex">
<!-- 左侧组织架构树 -->
<div class="w-1/5 pr-4">
<div class="bg-white rounded-md shadow-sm p-4 h-full">
<div class="flex justify-between items-center mb-4">
<h3 class="font-medium text-gray-700">组织架构</h3>
<button class="text-primary hover:text-blue-700">
<i class="fas fa-sync-alt fa-icon w-4 h-4"></i>
</button>
</div>
<div class="space-y-1">
<div class="flex items-center justify-between p-2 hover:bg-secondary rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-building text-gray-500 fa-icon w-4 h-4 mr-2"></i>
<span class="text-sm">集团公司</span>
</div>
<i class="fas fa-chevron-down text-gray-400 fa-icon w-3 h-3"></i>
</div>
<div class="pl-6">
<div class="flex items-center justify-between p-2 hover:bg-secondary rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-sitemap text-gray-500 fa-icon w-4 h-4 mr-2"></i>
<span class="text-sm">人力资源部</span>
</div>
<i class="fas fa-chevron-down text-gray-400 fa-icon w-3 h-3"></i>
</div>
<div class="pl-6">
<div class="flex items-center p-2 hover:bg-secondary rounded-md cursor-pointer">
<i class="fas fa-users text-gray-500 fa-icon w-4 h-4 mr-2"></i>
<span class="text-sm">招聘组</span>
</div>
<div class="flex items-center p-2 hover:bg-secondary rounded-md cursor-pointer">
<i class="fas fa-users text-gray-500 fa-icon w-4 h-4 mr-2"></i>
<span class="text-sm">培训组</span>
</div>
<div class="flex items-center p-2 hover:bg-secondary rounded-md cursor-pointer">
<i class="fas fa-users text-gray-500 fa-icon w-4 h-4 mr-2"></i>
<span class="text-sm">薪酬组</span>
</div>
</div>
<div class="flex items-center justify-between p-2 hover:bg-secondary rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-sitemap text-gray-500 fa-icon w-4 h-4 mr-2"></i>
<span class="text-sm">财务部</span>
</div>
<i class="fas fa-chevron-down text-gray-400 fa-icon w-3 h-3"></i>
</div>
<div class="flex items-center justify-between p-2 hover:bg-secondary rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-sitemap text-gray-500 fa-icon w-4 h-4 mr-2"></i>
<span class="text-sm">技术研发中心</span>
</div>
<i class="fas fa-chevron-down text-gray-400 fa-icon w-3 h-3"></i>
</div>
<div class="flex items-center justify-between p-2 hover:bg-secondary rounded-md cursor-pointer">
<div class="flex items-center">
<i class="fas fa-sitemap text-gray-500 fa-icon w-4 h-4 mr-2"></i>
<span class="text-sm">市场营销部</span>
</div>
<i class="fas fa-chevron-down text-gray-400 fa-icon w-3 h-3"></i>
</div>
</div>
</div>
</div>
</div>
<!-- 右侧部门列表 -->
<div class="w-4/5 pl-4">
<div class="bg-white rounded-md shadow-sm p-6 h-full">
<div class="flex justify-between items-center mb-6">
<div class="flex items-center space-x-4">
<h2 class="text-lg font-medium text-gray-800">部门管理</h2>
<div class="flex items-center space-x-2">
<span class="text-sm text-gray-500">年份:</span>
<div class="relative">
<button class="flex items-center justify-between bg-white border border-gray-300 rounded-button px-3 py-1 text-sm text-gray-700 w-28">
<span>2023</span>
<i class="fas fa-chevron-down fa-icon w-3 h-3 ml-2"></i>
</button>
</div>
</div>
</div>
<button class="bg-primary hover:bg-blue-700 text-white text-sm px-4 py-2 rounded-button flex items-center space-x-2">
<i class="fas fa-plus fa-icon w-4 h-4"></i>
<span>添加部门</span>
</button>
</div>
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">序号</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">部门名称</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">部门负责人</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">员工人数</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">操作</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">1</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">人力资源部</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">张明远</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">24</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-blue-700 mr-3">
<i class="fas fa-users fa-icon w-4 h-4"></i>
</button>
<button class="text-blue-600 hover:text-blue-800 mr-3">
<i class="fas fa-edit fa-icon w-4 h-4"></i>
</button>
<button class="text-red-600 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon w-4 h-4"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">2</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">财务部</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">李思雨</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">18</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-blue-700 mr-3">
<i class="fas fa-users fa-icon w-4 h-4"></i>
</button>
<button class="text-blue-600 hover:text-blue-800 mr-3">
<i class="fas fa-edit fa-icon w-4 h-4"></i>
</button>
<button class="text-red-600 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon w-4 h-4"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">3</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">技术研发中心</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">王建国</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">56</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-blue-700 mr-3">
<i class="fas fa-users fa-icon w-4 h-4"></i>
</button>
<button class="text-blue-600 hover:text-blue-800 mr-3">
<i class="fas fa-edit fa-icon w-4 h-4"></i>
</button>
<button class="text-red-600 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon w-4 h-4"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">4</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">市场营销部</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">赵雪梅</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">32</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-blue-700 mr-3">
<i class="fas fa-users fa-icon w-4 h-4"></i>
</button>
<button class="text-blue-600 hover:text-blue-800 mr-3">
<i class="fas fa-edit fa-icon w-4 h-4"></i>
</button>
<button class="text-red-600 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon w-4 h-4"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">5</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">产品设计部</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">陈志强</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">28</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-blue-700 mr-3">
<i class="fas fa-users fa-icon w-4 h-4"></i>
</button>
<button class="text-blue-600 hover:text-blue-800 mr-3">
<i class="fas fa-edit fa-icon w-4 h-4"></i>
</button>
<button class="text-red-600 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon w-4 h-4"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">6</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">客户服务部</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">刘芳芳</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">22</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-blue-700 mr-3">
<i class="fas fa-users fa-icon w-4 h-4"></i>
</button>
<button class="text-blue-600 hover:text-blue-800 mr-3">
<i class="fas fa-edit fa-icon w-4 h-4"></i>
</button>
<button class="text-red-600 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon w-4 h-4"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">7</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">行政后勤部</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">吴晓峰</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">15</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-blue-700 mr-3">
<i class="fas fa-users fa-icon w-4 h-4"></i>
</button>
<button class="text-blue-600 hover:text-blue-800 mr-3">
<i class="fas fa-edit fa-icon w-4 h-4"></i>
</button>
<button class="text-red-600 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon w-4 h-4"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">8</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">质量管理部</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">郑海涛</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">19</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-blue-700 mr-3">
<i class="fas fa-users fa-icon w-4 h-4"></i>
</button>
<button class="text-blue-600 hover:text-blue-800 mr-3">
<i class="fas fa-edit fa-icon w-4 h-4"></i>
</button>
<button class="text-red-600 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon w-4 h-4"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">9</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">采购部</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">周丽华</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">12</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-blue-700 mr-3">
<i class="fas fa-users fa-icon w-4 h-4"></i>
</button>
<button class="text-blue-600 hover:text-blue-800 mr-3">
<i class="fas fa-edit fa-icon w-4 h-4"></i>
</button>
<button class="text-red-600 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon w-4 h-4"></i>
</button>
</td>
</tr>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">10</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">法务部</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">孙正义</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">8</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<button class="text-primary hover:text-blue-700 mr-3">
<i class="fas fa-users fa-icon w-4 h-4"></i>
</button>
<button class="text-blue-600 hover:text-blue-800 mr-3">
<i class="fas fa-edit fa-icon w-4 h-4"></i>
</button>
<button class="text-red-600 hover:text-red-800">
<i class="fas fa-trash-alt fa-icon w-4 h-4"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div class="flex items-center justify-between mt-6">
<div class="text-sm text-gray-500">
显示 1 到 10 条,共 15 条记录
</div>
<div class="flex space-x-1">
<button class="px-3 py-1 border border-gray-300 rounded-button text-sm text-gray-700 bg-white hover:bg-gray-50">上一页</button>
<button class="px-3 py-1 border border-primary rounded-button text-sm text-white bg-primary hover:bg-blue-700">1</button>
<button class="px-3 py-1 border border-gray-300 rounded-button text-sm text-gray-700 bg-white hover:bg-gray-50">2</button>
<button class="px-3 py-1 border border-gray-300 rounded-button text-sm text-gray-700 bg-white hover:bg-gray-50">下一页</button>
</div>
</div>
</div>
</div>
</main>
<!-- 页脚 -->
<footer class="w-full bg-gray-800 text-white py-8">
<div class="container mx-auto px-6">
<div class="grid grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-medium mb-4">关于我们</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">公司简介</a></li>
<li><a href="#" class="hover:text-white">发展历程</a></li>
<li><a href="#" class="hover:text-white">企业文化</a></li>
<li><a href="#" class="hover:text-white">荣誉资质</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">产品服务</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">人力资源系统</a></li>
<li><a href="#" class="hover:text-white">薪酬管理系统</a></li>
<li><a href="#" class="hover:text-white">绩效考核系统</a></li>
<li><a href="#" class="hover:text-white">培训管理系统</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">帮助中心</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li><a href="#" class="hover:text-white">常见问题</a></li>
<li><a href="#" class="hover:text-white">使用教程</a></li>
<li><a href="#" class="hover:text-white">API文档</a></li>
<li><a href="#" class="hover:text-white">联系我们</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-medium mb-4">联系我们</h3>
<ul class="space-y-2 text-xs text-gray-300">
<li class="flex items-center">
<i class="fas fa-map-marker-alt fa-icon w-4 h-4 mr-2"></i>
<span>北京市海淀区中关村软件园</span>
</li>
<li class="flex items-center">
<i class="fas fa-phone-alt fa-icon w-4 h-4 mr-2"></i>
<span>400-888-8888</span>
</li>
<li class="flex items-center">
<i class="fas fa-envelope fa-icon w-4 h-4 mr-2"></i>
<span>contact@hrsystem.com</span>
</li>
</ul>
<div class="flex space-x-4 mt-4">
<a href="#" class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center hover:bg-gray-600">
<i class="fab fa-weixin fa-icon w-4 h-4"></i>
</a>
<a href="#" class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center hover:bg-gray-600">
<i class="fab fa-weibo fa-icon w-4 h-4"></i>
</a>
<a href="#" class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center hover:bg-gray-600">
<i class="fab fa-linkedin-in fa-icon w-4 h-4"></i>
</a>
</div>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-6 text-xs text-gray-400">
<div class="flex justify-between">
<div>© 2023 人力资源管理系统 版权所有</div>
<div class="flex space-x-4">
<a href="#" class="hover:text-white">隐私政策</a>
<a href="#" class="hover:text-white">服务条款</a>
<a href="#" class="hover:text-white">法律声明</a>
</div>
</div>
</div>
</div>
</footer>
</body>
</html>

@ -1,358 +0,0 @@
<!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 rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2D5CF6',
secondary: '#F5F6FA'
},
borderRadius: {
'none': '0px',
'sm': '2px',
DEFAULT: '4px',
'md': '8px',
'lg': '12px',
'xl': '16px',
'2xl': '20px',
'3xl': '24px',
'full': '9999px',
'button': '4px'
}
}
}
}
</script>
<style>
body {
min-height: 1024px;
display: flex;
flex-direction: column;
}
.main-content {
flex: 1;
}
.nav-link:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.ai-assistant {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
opacity: 0.8;
}
50% {
opacity: 1;
transform: scale(1.05);
}
100% {
opacity: 0.8;
}
}
.table-row:hover {
background-color: #F5F6FA;
}
.search-input:focus {
outline: none;
box-shadow: 0 0 0 2px rgba(45, 92, 246, 0.5);
}
.card-shadow {
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
</style>
</head>
<body class="bg-gray-50">
<!-- 顶部导航栏 -->
<!-- <header class="bg-primary text-white sticky top-0 z-50">
<div class="container mx-auto px-4">
<div class="flex items-center justify-between h-16">
<div class="flex items-center">
<span class="font-['Pacifico'] text-xl mr-10">人力</span>
<nav class="hidden md:flex space-x-1">
<a href="#" class="nav-link px-3 py-2 text-sm rounded-button">多维统计</a>
<a href="#" class="nav-link px-3 py-2 text-sm rounded-button">人员管理</a>
<a href="#" class="nav-link px-3 py-2 text-sm rounded-button">组织管理</a>
<a href="#" class="nav-link px-3 py-2 text-sm rounded-button">考勤管理</a>
<a href="#" class="nav-link px-3 py-2 text-sm rounded-button">绩效管理</a>
<a href="#" class="nav-link px-3 py-2 text-sm rounded-button">薪酬管理</a>
<a href="#" class="nav-link px-3 py-2 text-sm rounded-button">知识库</a>
<a href="#" class="nav-link px-3 py-2 text-sm rounded-button">后台管理</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative hidden lg:block">
<div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
<i class="fas fa-search text-gray-400" style="width: 16px; height: 16px; display: flex; justify-content: center; align-items: center;"></i>
</div>
<input type="text" class="search-input bg-white text-gray-800 pl-10 pr-4 py-2 rounded-button text-sm w-64 focus:outline-none" placeholder="搜索...">
</div>
<div class="flex items-center">
<img src="https://mastergo.com/ai/api/search-image?query=professional+asian+business+man+headshot+with+white+background&width=32&height=32&orientation=squarish&flag=ccdb4f7d825487d0239ffd0e25db8ae5"
alt="用户头像"
class="w-8 h-8 rounded-full object-cover">
</div>
<button class="ai-assistant bg-white text-primary px-3 py-1 rounded-button text-sm flex items-center whitespace-nowrap">
<i class="fas fa-robot mr-2" style="width: 14px; height: 14px; display: flex; justify-content: center; align-items: center;"></i>
AI助手
</button>
</div>
</div>
</div>
</header> -->
<!-- 主要内容区 -->
<main class="main-content py-8">
<div class="container mx-auto px-4 max-w-6xl">
<!-- 页面标题和操作区 -->
<div class="flex justify-between items-center mb-6">
<h1 class="text-2xl font-semibold text-gray-800">配置项管理</h1>
<button class="bg-primary text-white px-4 py-2 rounded-button text-sm flex items-center whitespace-nowrap">
<i class="fas fa-plus mr-2" style="width: 14px; height: 14px; display: flex; justify-content: center; align-items: center;"></i>
新建配置项
</button>
</div>
<!-- 搜索区 -->
<div class="bg-white card-shadow rounded-md p-6 mb-6">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">配置项名称</label>
<input type="text" class="w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:ring-primary focus:border-primary">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">配置项 Code</label>
<input type="text" class="w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:ring-primary focus:border-primary">
</div>
<div class="flex items-end">
<button class="bg-primary text-white px-4 py-2 rounded-button text-sm whitespace-nowrap w-full">
<i class="fas fa-search mr-2" style="width: 14px; height: 14px;"></i>
查询
</button>
</div>
</div>
</div>
<!-- 配置项列表 -->
<div class="bg-white card-shadow rounded-md overflow-hidden">
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">配置名称</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">配置 Code</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">配置值</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">修改人</th>
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">修改时间</th>
<th scope="col" class="px-6 py-3 text-right text-xs font-medium text-gray-500 uppercase tracking-wider">操作</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<tr class="table-row">
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">系统名称</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">system.name</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">人力管理系统</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">张明远</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">2023-05-12 14:30</td>
<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<button class="text-primary hover:text-primary-dark mr-3">编辑</button>
<button class="text-red-600 hover:text-red-900">删除</button>
</td>
</tr>
<tr class="table-row">
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">登录超时时间</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">session.timeout</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">30分钟</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">李思雨</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">2023-06-18 09:15</td>
<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<button class="text-primary hover:text-primary-dark mr-3">编辑</button>
<button class="text-red-600 hover:text-red-900">删除</button>
</td>
</tr>
<tr class="table-row">
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">默认每页条数</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">page.size</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">20</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">王建国</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">2023-07-22 16:45</td>
<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<button class="text-primary hover:text-primary-dark mr-3">编辑</button>
<button class="text-red-600 hover:text-red-900">删除</button>
</td>
</tr>
<tr class="table-row">
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">系统Logo URL</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">system.logo</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">/assets/logo.png</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">赵晓雯</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">2023-08-05 11:20</td>
<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<button class="text-primary hover:text-primary-dark mr-3">编辑</button>
<button class="text-red-600 hover:text-red-900">删除</button>
</td>
</tr>
<tr class="table-row">
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">数据备份路径</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">backup.path</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">/data/backup</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">陈宇航</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">2023-09-14 13:10</td>
<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<button class="text-primary hover:text-primary-dark mr-3">编辑</button>
<button class="text-red-600 hover:text-red-900">删除</button>
</td>
</tr>
<tr class="table-row">
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">邮件服务器地址</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">mail.server</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">smtp.example.com</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">林志强</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">2023-10-08 10:05</td>
<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<button class="text-primary hover:text-primary-dark mr-3">编辑</button>
<button class="text-red-600 hover:text-red-900">删除</button>
</td>
</tr>
<tr class="table-row">
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">系统维护时间</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">maintenance.time</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">每周日 02:00-04:00</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">吴晓峰</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">2023-11-19 15:30</td>
<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<button class="text-primary hover:text-primary-dark mr-3">编辑</button>
<button class="text-red-600 hover:text-red-900">删除</button>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 分页 -->
<div class="bg-white px-6 py-4 flex items-center justify-between border-t border-gray-200">
<div class="flex-1 flex justify-between sm:hidden">
<a href="#" class="relative inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50">
上一页
</a>
<a href="#" class="ml-3 relative inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50">
下一页
</a>
</div>
<div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between">
<div>
<p class="text-sm text-gray-700">
显示 <span class="font-medium">1</span><span class="font-medium">7</span> 条,共 <span class="font-medium">32</span> 条记录
</p>
</div>
<div>
<nav class="relative z-0 inline-flex rounded-md shadow-sm -space-x-px" aria-label="Pagination">
<a href="#" class="relative inline-flex items-center px-2 py-2 rounded-l-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50">
<span class="sr-only">上一页</span>
<i class="fas fa-chevron-left" style="width: 12px; height: 12px; display: flex; justify-content: center; align-items: center;"></i>
</a>
<a href="#" aria-current="page" class="z-10 bg-primary border-primary text-white relative inline-flex items-center px-4 py-2 border text-sm font-medium">
1
</a>
<a href="#" class="bg-white border-gray-300 text-gray-500 hover:bg-gray-50 relative inline-flex items-center px-4 py-2 border text-sm font-medium">
2
</a>
<a href="#" class="bg-white border-gray-300 text-gray-500 hover:bg-gray-50 relative inline-flex items-center px-4 py-2 border text-sm font-medium">
3
</a>
<span class="relative inline-flex items-center px-4 py-2 border border-gray-300 bg-white text-sm font-medium text-gray-700">
...
</span>
<a href="#" class="bg-white border-gray-300 text-gray-500 hover:bg-gray-50 relative inline-flex items-center px-4 py-2 border text-sm font-medium">
8
</a>
<a href="#" class="relative inline-flex items-center px-2 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50">
<span class="sr-only">下一页</span>
<i class="fas fa-chevron-right" style="width: 12px; height: 12px; display: flex; justify-content: center; align-items: center;"></i>
</a>
</nav>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- 底部通栏 -->
<footer class="bg-gray-800 text-white py-8">
<div class="container mx-auto px-4">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-semibold uppercase tracking-wider mb-4">关于我们</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-300 hover:text-white text-sm">公司简介</a></li>
<li><a href="#" class="text-gray-300 hover:text-white text-sm">发展历程</a></li>
<li><a href="#" class="text-gray-300 hover:text-white text-sm">企业文化</a></li>
<li><a href="#" class="text-gray-300 hover:text-white text-sm">招贤纳士</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold uppercase tracking-wider mb-4">产品服务</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-300 hover:text-white text-sm">人力资源系统</a></li>
<li><a href="#" class="text-gray-300 hover:text-white text-sm">薪酬管理系统</a></li>
<li><a href="#" class="text-gray-300 hover:text-white text-sm">绩效管理系统</a></li>
<li><a href="#" class="text-gray-300 hover:text-white text-sm">培训管理系统</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold uppercase tracking-wider mb-4">帮助中心</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-300 hover:text-white text-sm">使用指南</a></li>
<li><a href="#" class="text-gray-300 hover:text-white text-sm">常见问题</a></li>
<li><a href="#" class="text-gray-300 hover:text-white text-sm">视频教程</a></li>
<li><a href="#" class="text-gray-300 hover:text-white text-sm">在线客服</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold uppercase tracking-wider mb-4">联系我们</h3>
<ul class="space-y-2">
<li class="text-gray-300 text-sm">电话400-888-8888</li>
<li class="text-gray-300 text-sm">邮箱contact@hrsystem.com</li>
<li class="text-gray-300 text-sm">地址北京市海淀区科技园路88号</li>
<li class="flex space-x-4 mt-4">
<a href="#" class="text-gray-300 hover:text-white">
<i class="fab fa-weixin" style="width: 16px; height: 16px; display: flex; justify-content: center; align-items: center;"></i>
</a>
<a href="#" class="text-gray-300 hover:text-white">
<i class="fab fa-weibo" style="width: 16px; height: 16px; display: flex; justify-content: center; align-items: center;"></i>
</a>
<a href="#" class="text-gray-300 hover:text-white">
<i class="fab fa-linkedin" style="width: 16px; height: 16px; display: flex; justify-content: center; align-items: center;"></i>
</a>
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center">
<p class="text-gray-400 text-xs">© 2023 人力管理系统 版权所有</p>
<div class="flex space-x-6 mt-4 md:mt-0">
<a href="#" class="text-gray-400 hover:text-white text-xs">隐私政策</a>
<a href="#" class="text-gray-400 hover:text-white text-xs">服务条款</a>
<a href="#" class="text-gray-400 hover:text-white text-xs">法律声明</a>
<a href="#" class="text-gray-400 hover:text-white text-xs">ICP备案号京ICP备12345678号</a>
</div>
</div>
</div>
</footer>
</body>
</html>

@ -80,8 +80,8 @@ export const callDeepSeekAPI = async (messages, options = {}) => {
return content
}
// 本地服务调用(调试版:打印详细日志,方便逐步排查)
export const callLocalChatAPI = async (prompt) => {
// 本地服务调用 - 流式版本
export const callLocalChatAPI = async (prompt, onStreamData) => {
const base = '/api/chat/stream'
const url = `${base}?prompt=${encodeURIComponent(prompt)}`
@ -110,49 +110,85 @@ export const callLocalChatAPI = async (prompt) => {
throw err
}
// 最简单:一次性读取完整响应文本(非流式),然后从 SSE 格式中提取第一个 event:message 的 data
const raw = await resp.text().catch(e => {
// eslint-disable-next-line no-console
console.error('[callLocalChatAPI] text read error:', e)
return ''
})
// eslint-disable-next-line no-console
console.debug('[callLocalChatAPI] raw length:', raw?.length || 0, 'preview:', (raw || '').slice(0, 500))
if (!raw) throw new Error('EMPTY_RESPONSE')
// 按空行分块,优先找到 event:message 的 data
const blocks = raw.split(/\r?\n\r?\n/).map(b => b.trim()).filter(Boolean)
for (const block of blocks) {
const lines = block.split(/\r?\n/).map(l => l.trim())
let eventType = ''
const dataLines = []
// 流式读取响应
const reader = resp.body.getReader()
const decoder = new TextDecoder()
let buffer = ''
let thoughtContent = ''
let messageContent = ''
let currentEvent = ''
try {
while (true) {
const { done, value } = await reader.read()
if (done) break
buffer += decoder.decode(value, { stream: true })
// 按行处理缓冲区
const lines = buffer.split(/\r?\n/)
buffer = lines.pop() || '' // 保留最后一行(可能不完整)
for (const line of lines) {
if (/^event\s*:/i.test(line)) {
eventType = line.split(':').slice(1).join(':').trim()
} else if (/^data\s*:/i.test(line)) {
dataLines.push(line.split(':').slice(1).join(':'))
if (line.startsWith('event:')) {
currentEvent = line.substring(6).trim()
} else if (line.startsWith('data:')) {
const data = line.substring(5)
if (currentEvent === 'thought') {
thoughtContent += data
console.log('Thought data received:', data, 'Total thought:', thoughtContent) // 调试信息
// 流式输出思考内容 - 立即传递新接收到的数据
if (onStreamData) {
onStreamData({
type: 'thought',
content: data, // 新接收到的数据
totalContent: thoughtContent, // 累积的完整内容
isComplete: false
})
}
} else if (currentEvent === 'message') {
messageContent += data
console.log('Message data received:', data, 'Total message:', messageContent) // 调试信息
// 流式输出消息内容 - 立即传递新接收到的数据
if (onStreamData) {
onStreamData({
type: 'message',
content: data, // 新接收到的数据
totalContent: messageContent, // 累积的完整内容
isComplete: false
})
}
} else if (currentEvent === 'complete') {
// 完成信号
if (onStreamData) {
onStreamData({
type: 'complete',
content: '',
isComplete: true,
thoughtContent: thoughtContent,
messageContent: messageContent
})
}
// 流式处理完成直接返回null避免重复处理
return null
}
if (eventType === 'message' && dataLines.length > 0) {
const message = dataLines.join('\n').trim()
// eslint-disable-next-line no-console
console.debug('[callLocalChatAPI] parsed message data preview:', message.slice(0, 300))
if (!message) throw new Error('EMPTY_RESPONSE')
return message
}
}
}
} finally {
reader.releaseLock()
}
// 回退:取第一个 data: 行的内容
const firstDataMatch = raw.match(/^[ \t]*data\s*:(.*)$/im)
if (firstDataMatch && firstDataMatch[1]) {
const fallback = firstDataMatch[1].trim()
// eslint-disable-next-line no-console
console.debug('[callLocalChatAPI] fallback data:', fallback.slice(0, 300))
return fallback
// 返回最终结果
console.log('API returning:', { thought: thoughtContent, message: messageContent }) // 调试信息
// 确保返回的内容不为undefined
return {
thought: thoughtContent || '',
message: messageContent || ''
}
// 最后回退:返回原始文本
return raw
} catch (err) {
// eslint-disable-next-line no-console
console.error('[callLocalChatAPI] ERROR:', err)

@ -44,8 +44,19 @@ function ChatConversation() {
const [editingConversation, setEditingConversation] = useState(null)
const [newTitle, setNewTitle] = useState('')
// 流式输出状态
const [streamingThought, setStreamingThought] = useState('')
const [streamingMessage, setStreamingMessage] = useState('')
const [isStreaming, setIsStreaming] = useState(false)
const [displayedThought, setDisplayedThought] = useState('')
const [displayedMessage, setDisplayedMessage] = useState('')
// 流式显示控制
const [isTyping, setIsTyping] = useState(false)
const messagesEndRef = useRef(null)
const inputRef = useRef(null)
const typewriterTimeoutRef = useRef(null)
// 获取当前会话
const currentConversation = conversations.find(conv => conv.id === currentConversationId)
@ -62,6 +73,46 @@ function ChatConversation() {
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" })
}
// 打字机效果函数
const typewriterEffect = (targetText, setDisplayedText, delay = 20) => {
let currentIndex = 0
const currentDisplayed = displayedThought + displayedMessage
const typeNextChar = () => {
if (currentIndex < targetText.length) {
setDisplayedText(targetText.substring(0, currentIndex + 1))
currentIndex++
typewriterTimeoutRef.current = setTimeout(typeNextChar, delay)
}
}
typeNextChar()
}
// 监听流式内容变化,实现真正的流式显示
useEffect(() => {
if (streamingThought && streamingThought !== displayedThought) {
// 直接显示新内容,实现真正的流式显示
setDisplayedThought(streamingThought)
setIsTyping(true)
}
}, [streamingThought])
useEffect(() => {
if (streamingMessage && streamingMessage !== displayedMessage) {
// 直接显示新内容,实现真正的流式显示
setDisplayedMessage(streamingMessage)
setIsTyping(true)
}
}, [streamingMessage])
// 当流式输出停止时,停止打字状态
useEffect(() => {
if (!isStreaming) {
setIsTyping(false)
}
}, [isStreaming])
const handleChange = value => {
console.log(`selected ${value}`);
@ -78,6 +129,15 @@ function ChatConversation() {
return unsubscribe
}, [])
// 清理定时器
useEffect(() => {
return () => {
if (typewriterTimeoutRef.current) {
clearTimeout(typewriterTimeoutRef.current)
}
}
}, [])
useEffect(() => {
scrollToBottom()
}, [currentMessages])
@ -135,30 +195,72 @@ function ChatConversation() {
setInputValue('')
setLoading(true)
setIsStreaming(true)
setStreamingThought('')
setStreamingMessage('')
setDisplayedThought('')
setDisplayedMessage('')
try {
// 准备发送给API的消息历史
const apiMessages = currentMessages.map(msg => ({
role: msg.role,
content: msg.content
})).concat({
role: 'user',
content: messageText
// 调用本地后端接口(流式版本)
const result = await callLocalChatAPI(messageText, (streamData) => {
console.log('Stream data received:', streamData)
if (streamData.type === 'thought') {
console.log('Setting streamingThought:', streamData.content)
// 使用totalContent作为完整内容content作为新增内容
setStreamingThought(streamData.totalContent || streamData.content)
} else if (streamData.type === 'message') {
console.log('Setting streamingMessage:', streamData.content)
// 使用totalContent作为完整内容content作为新增内容
setStreamingMessage(streamData.totalContent || streamData.content)
} else if (streamData.type === 'complete') {
// 流式输出完成,将最终内容添加到对话存储
// 使用complete事件中传递的最终内容
const finalThought = streamData.thoughtContent || streamingThought
const finalMessage = streamData.messageContent || streamingMessage
const finalContent = finalThought + (finalMessage ? '\n\n' + finalMessage : '')
console.log('Complete event - finalThought:', finalThought)
console.log('Complete event - finalMessage:', finalMessage)
console.log('Complete event - finalContent:', finalContent)
if (finalContent.trim()) {
conversationStore.addMessage('assistant', finalContent)
} else {
conversationStore.addMessage('assistant', '抱歉,我无法生成回复内容。')
}
setIsStreaming(false)
setStreamingThought('')
setStreamingMessage('')
setDisplayedThought('')
setDisplayedMessage('')
}
})
// 调用本地后端接口(把用户输入作为 prompt 传给后端)
// 注意callLocalChatAPI 目前只发送 messageText如果后端需要历史可改为序列化 apiMessages 并后端解析
const assistantResponse = await callLocalChatAPI(messageText)
// 如果API没有返回流式数据直接处理结果
if (result && !isStreaming) {
const thought = result?.thought || ''
const message = result?.message || ''
const finalContent = thought + (message ? '\n\n' + message : '')
// 添加助手回复到独立存储
conversationStore.addMessage('assistant', assistantResponse)
if (finalContent.trim()) {
conversationStore.addMessage('assistant', finalContent)
} else {
conversationStore.addMessage('assistant', '抱歉,我无法生成回复内容。')
}
}
} catch (error) {
const errorMessage = handleAPIError(error)
message.error(errorMessage)
// 添加错误消息到独立存储
conversationStore.addMessage('assistant', `抱歉,我遇到了一个问题:${errorMessage}`)
setIsStreaming(false)
setStreamingThought('')
setStreamingMessage('')
setDisplayedThought('')
setDisplayedMessage('')
} finally {
setLoading(false)
}
@ -288,6 +390,66 @@ function ChatConversation() {
</div>
)
}
// 渲染流式输出消息
const renderStreamingMessage = () => {
if (!isStreaming && !displayedThought && !displayedMessage) return null
return (
<div className='ds-message-row from-assistant streaming'>
<div className='ds-avatar'>
<RobotOutlined />
</div>
<div className='ds-message-body'>
<div className='ds-message-meta'>
<span className='role'>AI对话</span>
<span className='time'>正在思考</span>
</div>
<div className='ds-message-content'>
{/* 思考内容 - 浅灰色 */}
{displayedThought && (
<div className='ds-thought-content'>
<ReactMarkdown
remarkPlugins={[remarkGfm]}
>
{displayedThought}
</ReactMarkdown>
</div>
)}
{/* 回复内容 - 正常颜色 */}
{displayedMessage && (
<div className='ds-response-content'>
<ReactMarkdown
remarkPlugins={[remarkGfm]}
>
{displayedMessage}
</ReactMarkdown>
{/* 流式输入光标 */}
{isTyping && isStreaming && (
<span className='ds-typing-cursor'>|</span>
)}
</div>
)}
{/* 流式输出指示器 */}
{isStreaming && (
<div className='ds-streaming-indicator'>
<Spin
indicator={<LoadingOutlined style={{ fontSize: 14 }} spin />}
size='small'
/>
<span className='streaming-text'>
{isTyping ? '正在输入...' : '正在思考...'}
</span>
</div>
)}
</div>
</div>
</div>
)
}
// =================================================
return (
@ -302,10 +464,14 @@ function ChatConversation() {
</div>
)}
{/* 第一句话 */}
{/* 历史消息 */}
{currentMessages.map(renderMessage)}
{loading && (
{/* 流式输出消息 */}
{renderStreamingMessage()}
{/* 加载状态(当没有流式输出时显示) */}
{loading && !isStreaming && (
<div className='ds-message-row from-assistant thinking'>
<div className='ds-avatar'>
<RobotOutlined />

@ -1,4 +1,3 @@
// // 滚动条样式
// .chat-list::-webkit-scrollbar {
// width: 6px;
@ -193,6 +192,14 @@
align-items: center;
gap: 10px;
}
// 流式输出样式
&.streaming {
.ds-message-content {
background: #f8f9fa;
border: 1px solid #e3e8ef;
}
}
}
.ds-avatar {
@ -253,7 +260,8 @@
}
.ds-message-content {
display: inline-block;
// display: inline-block;
display: block;
max-width: 100%;
min-width: 48px;
background: #fff;
@ -263,7 +271,8 @@
font-size: 17px;
color: #1f2329;
position: relative;
overflow: hidden;
// overflow: hidden;
overflow: visible;
word-break: break-word;
box-shadow: 0 2px 4px rgba(0, 0, 0, .04);
@ -300,6 +309,66 @@
}
}
// 思考内容样式 - 浅灰色
.ds-thought-content {
color: #999;
font-style: italic;
margin-bottom: 12px;
padding: 8px 12px;
background: #f5f5f5;
border-radius: 8px;
border-left: 3px solid #ddd;
p {
margin: 0 0 4px;
color: #999;
&:last-child {
margin-bottom: 0;
}
}
}
// 回复内容样式 - 正常颜色
.ds-response-content {
color: #1f2329;
p {
margin: 0 0 8px;
color: #1f2329;
&:last-child {
margin-bottom: 0;
}
}
}
// 流式输出指示器
.ds-streaming-indicator {
display: flex;
align-items: center;
gap: 8px;
margin-top: 8px;
padding: 4px 8px;
background: #f0f0f0;
border-radius: 6px;
font-size: 12px;
color: #666;
.streaming-text {
font-style: italic;
}
}
// 流式输入光标
.ds-typing-cursor {
display: inline-block;
animation: blink 1s infinite;
color: #3478f6;
font-weight: bold;
margin-left: 2px;
}
.typing-dots {
display: inline-flex;
gap: 4px;
@ -449,6 +518,7 @@
opacity: .3;
}
}
.ds-select,
.ds-select .ant-select-selector,
.ds-select .ant-select-selection-item,
@ -456,6 +526,7 @@
font-size: 12px !important;
color: #808791 !important;
}
.ds-select-dropdown .ant-select-item {
font-size: 12px !important;
color: #808791 !important;

@ -1,183 +0,0 @@
// API配置文件
export const API_CONFIG = {
// DeepSeek API配置
DEEPSEEK: {
BASE_URL: 'https://api.deepseek.com/v1',
MODEL: 'deepseek-chat',
API_KEY:
process.env.UMI_APP_DEEPSEEK_API_KEY ||
process.env.REACT_APP_DEEPSEEK_API_KEY ||
'your-api-key-here',
MAX_TOKENS: 2000,
TEMPERATURE: 0.7,
SYSTEM_PROMPT: '你是一个智能AI助手请用简洁、专业、友好的方式回答用户的问题。'
},
// 其他API配置
OPENAI: {
BASE_URL: 'https://api.openai.com/v1',
MODEL: 'gpt-3.5-turbo',
API_KEY: process.env.UMI_APP_OPENAI_API_KEY || '',
MAX_TOKENS: 2000,
TEMPERATURE: 0.7
}
}
// 调试:开发阶段临时查看是否拿到
if (process.env.NODE_ENV === 'development') {
// 只显示是否存在,不打印具体 key
// eslint-disable-next-line no-console
console.log(
'DeepSeek key loaded =',
!!process.env.UMI_APP_DEEPSEEK_API_KEY
)
}
// DeepSeek 调用
export const callDeepSeekAPI = async (messages, options = {}) => {
const cfg = API_CONFIG.DEEPSEEK
const apiKey = cfg.API_KEY
if (!apiKey || apiKey === 'your-api-key-here') {
throw new Error('NO_API_KEY')
}
// 组装消息(如果历史里已经含 system 就不重复)
const hasSystem = messages.some(m => m.role === 'system')
const finalMessages = hasSystem
? messages
: [{ role: 'system', content: cfg.SYSTEM_PROMPT }, ...messages]
const payload = {
model: cfg.MODEL,
messages: finalMessages.map(m => ({ role: m.role, content: m.content })),
temperature: options.temperature ?? cfg.TEMPERATURE,
max_tokens: options.maxTokens ?? cfg.MAX_TOKENS,
stream: false
}
const resp = await fetch(`${cfg.BASE_URL}/chat/completions`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${apiKey}`
},
body: JSON.stringify(payload)
})
const data = await resp.json().catch(() => ({}))
if (!resp.ok) {
// 统一抛出,交给 handleAPIError
const msg = data?.error?.message || resp.statusText || 'API_ERROR'
const err = new Error(msg)
err.status = resp.status
err.code = data?.error?.code
throw err
}
const content = data?.choices?.[0]?.message?.content?.trim()
if (!content) throw new Error('EMPTY_RESPONSE')
return content
}
// 本地服务调用(调试版:打印详细日志,方便逐步排查)
export const callLocalChatAPI = async (prompt) => {
const base = '/api/chat/stream'
const url = `${base}?prompt=${encodeURIComponent(prompt)}`
// 逐步调试日志
// eslint-disable-next-line no-console
console.debug('[callLocalChatAPI] url:', url)
try {
// eslint-disable-next-line no-console
console.debug('[callLocalChatAPI] fetch start')
const resp = await fetch(url, { method: 'GET' })
// eslint-disable-next-line no-console
console.debug('[callLocalChatAPI] fetch done', {
ok: resp.ok,
status: resp.status,
statusText: resp.statusText,
headers: Object.fromEntries(resp.headers.entries())
})
if (!resp.ok) {
const txt = await resp.text().catch(() => null)
// eslint-disable-next-line no-console
console.error('[callLocalChatAPI] non-OK response body:', txt)
const msg = txt || resp.statusText || `HTTP_${resp.status}`
const err = new Error(msg)
err.status = resp.status
throw err
}
// 最简单:一次性读取完整响应文本(非流式),然后从 SSE 格式中提取第一个 event:message 的 data
const raw = await resp.text().catch(e => {
// eslint-disable-next-line no-console
console.error('[callLocalChatAPI] text read error:', e)
return ''
})
// eslint-disable-next-line no-console
console.debug('[callLocalChatAPI] raw length:', raw?.length || 0, 'preview:', (raw || '').slice(0, 500))
if (!raw) throw new Error('EMPTY_RESPONSE')
// 按空行分块,优先找到 event:message 的 data
const blocks = raw.split(/\r?\n\r?\n/).map(b => b.trim()).filter(Boolean)
for (const block of blocks) {
const lines = block.split(/\r?\n/).map(l => l.trim())
let eventType = ''
const dataLines = []
for (const line of lines) {
if (/^event\s*:/i.test(line)) {
eventType = line.split(':').slice(1).join(':').trim()
} else if (/^data\s*:/i.test(line)) {
dataLines.push(line.split(':').slice(1).join(':'))
}
}
if (eventType === 'message' && dataLines.length > 0) {
const message = dataLines.join('\n').trim()
// eslint-disable-next-line no-console
console.debug('[callLocalChatAPI] parsed message data preview:', message.slice(0, 300))
if (!message) throw new Error('EMPTY_RESPONSE')
return message
}
}
// 回退:取第一个 data: 行的内容
const firstDataMatch = raw.match(/^[ \t]*data\s*:(.*)$/im)
if (firstDataMatch && firstDataMatch[1]) {
const fallback = firstDataMatch[1].trim()
// eslint-disable-next-line no-console
console.debug('[callLocalChatAPI] fallback data:', fallback.slice(0, 300))
return fallback
}
// 最后回退:返回原始文本
return raw
} catch (err) {
// eslint-disable-next-line no-console
console.error('[callLocalChatAPI] ERROR:', err)
throw err
}
}
// 错误处理函数
export const handleAPIError = (error) => {
const raw = error?.message || ''
const status = error?.status
const code = error?.code
if (raw === 'NO_API_KEY') return '未配置 API Key请在 .env 里加 UMI_APP_DEEPSEEK_API_KEY 并重启。'
if (raw === 'EMPTY_RESPONSE') return '接口返回空结果,请重试。'
// 典型鉴权问题
if (status === 401 || /unauthorized|invalid api key/i.test(raw) || code === 'invalid_api_key') {
return 'API密钥无效请检查是否正确。'
}
if (status === 429 || /rate limit/i.test(raw)) return '请求过多,被限流。'
if (status === 500) return '服务端错误,请稍后再试。'
if (/timeout/i.test(raw)) return '请求超时,请检查网络。'
if (/certificate|SSL/i.test(raw)) return '证书/网络问题,请更换网络或代理。'
return `调用失败:${raw || '未知错误'}`
}

@ -3,10 +3,22 @@ import { history, Outlet, useLocation, matchRoutes } from '@umijs/max'
import { Menu, Tabs } from 'antd'
import './SystemContentList.less'
import { formatRoute, getDefaultRoute } from '@/utils/routeUtils'
import {
conversationStore,
} from '@/utils/pageConversationStore'
import { renderPageContent } from '../topnavbar/form/RenderPageContentForm'
const SystemContentList = (props) => {
const dynamicRoute = window.dynamicRoute
console.log(dynamicRoute)
const [expandedPage, setExpandedPage] = useState('conversation')
const conversationExpanded = expandedPage === 'conversation'
const toggleExpand = (page) => {
setExpandedPage(prev => prev === page ? null : page)
}
const [conversationConversations, setConversationConversations] = useState(conversationStore.getConversations())
const location = useLocation()
const pathName = location.pathname
const [openKey, setOpenKey] = useState([])
@ -33,6 +45,16 @@ const SystemContentList = (props) => {
setMenuItems(newList)
}, [pathName])
useEffect(() => {
const unsubscribeConversation = conversationStore.subscribe(({ conversations }) => {
setConversationConversations(conversations)
})
return () => {
unsubscribeConversation()
}
}, [])
const setRouteActive = (value, menu) => {
const curKey = value.key
const tempMenu = menu ?? menuItems ?? []
@ -62,6 +84,10 @@ const SystemContentList = (props) => {
onOpenChange={value => setOpenKey(value)}
mode='vertical'
/>
{/* 这是历史会话 */}
<div className='contentHistory'>
{renderPageContent('conversation', conversationConversations, conversationExpanded)}
</div>
</div>
<div className='rightContentMain'>

@ -32,3 +32,13 @@
overflow-y: auto;
}
}
.contentHistory {
height: 40%;
overflow-y: auto;
overflow-x: hidden;
background: transparent;
// position: absolute;
// top: 65%;
// left: 1%;
}

@ -7,10 +7,6 @@ import { getPageQuery } from '@/utils/utils'
import Logo from '@/assets/logo.png'
import { userInfo } from '@/utils/globalCommon'
import {
conversationStore,
} from '@/utils/pageConversationStore'
import { renderPageContent } from './form/RenderPageContentForm'
const menuItem = [
{
@ -100,13 +96,6 @@ const TopNavBar = (props) => {
const [expandedPage, setExpandedPage] = useState('conversation')
const conversationExpanded = expandedPage === 'conversation'
const toggleExpand = (page) => {
setExpandedPage(prev => prev === page ? null : page)
}
const [conversationConversations, setConversationConversations] = useState(conversationStore.getConversations())
const [collapsed, setCollapsed] = useState(false);
const toggleCollapsed = () => setCollapsed(c => !c);
@ -137,15 +126,6 @@ const TopNavBar = (props) => {
}, [dynamicRoute])
useEffect(() => {
const unsubscribeConversation = conversationStore.subscribe(({ conversations }) => {
setConversationConversations(conversations)
})
return () => {
unsubscribeConversation()
}
}, [])
@ -228,10 +208,7 @@ const TopNavBar = (props) => {
<div className={styles.contentMain} style={{ height: 'auto', backgroundColor: 'inherit' }}>
<Outlet />
</div>
<div className={styles.contentHistory}>
{renderPageContent('conversation', conversationConversations, conversationExpanded)}
</div>
{/* 底部版权信息 */}
<div className='footerCopyright' style={{
// position: 'fixed',

@ -55,13 +55,5 @@
overflow-y: hidden;
}
.contentHistory {
height: 40%;
overflow-y: auto;
overflow-x: hidden;
background: transparent;
position: absolute;
top: 65%;
left: 10%;
}
}
Loading…
Cancel
Save