| <!DOCTYPE html> |
| <html lang="vi"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Chấm công tính lương</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
| <style> |
| .sidebar { |
| transition: all 0.3s; |
| } |
| .sidebar-collapsed { |
| width: 70px; |
| } |
| .sidebar-collapsed .sidebar-text { |
| display: none; |
| } |
| .sidebar-collapsed .logo-text { |
| display: none; |
| } |
| .sidebar-collapsed .nav-item { |
| justify-content: center; |
| } |
| .content { |
| transition: all 0.3s; |
| } |
| .content-expanded { |
| margin-left: 70px; |
| } |
| .calendar-day { |
| transition: all 0.2s; |
| } |
| .calendar-day:hover { |
| transform: scale(1.05); |
| } |
| .attendance-present { |
| background-color: #4ade80; |
| } |
| .attendance-absent { |
| background-color: #f87171; |
| } |
| .attendance-leave { |
| background-color: #60a5fa; |
| } |
| .attendance-late { |
| background-color: #fbbf24; |
| } |
| .header { |
| height: 64px; |
| } |
| .nav-item { |
| padding: 0.75rem 1.5rem; |
| } |
| .table-container { |
| overflow-x: auto; |
| width: 100%; |
| } |
| table { |
| min-width: 1200px; |
| } |
| .attendance-dropdown { |
| position: relative; |
| display: inline-block; |
| } |
| .attendance-dropdown-content { |
| display: none; |
| position: absolute; |
| background-color: #f9f9f9; |
| min-width: 160px; |
| box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); |
| z-index: 1; |
| border-radius: 4px; |
| } |
| .attendance-dropdown:hover .attendance-dropdown-content { |
| display: block; |
| } |
| .attendance-cell { |
| width: 30px; |
| height: 30px; |
| text-align: center; |
| vertical-align: middle; |
| cursor: pointer; |
| border-radius: 4px; |
| position: relative; |
| } |
| .attendance-cell:hover { |
| background-color: #f0f0f0; |
| } |
| .attendance-X { background-color: #4ade80; color: white; } |
| .attendance-N { background-color: #f87171; color: white; } |
| .attendance-H { background-color: #fbbf24; color: white; } |
| .attendance-P { background-color: #60a5fa; color: white; } |
| .attendance-L { background-color: #a78bfa; color: white; } |
| .attendance-O { background-color: #f472b6; color: white; } |
| .attendance-K { background-color: #94a3b8; color: white; } |
| .stat-item { |
| padding: 0.5rem 1rem; |
| border-radius: 0.5rem; |
| background-color: white; |
| box-shadow: 0 1px 3px rgba(0,0,0,0.1); |
| } |
| .dropdown-option { |
| padding: 8px 16px; |
| cursor: pointer; |
| display: flex; |
| align-items: center; |
| } |
| .dropdown-option:hover { |
| background-color: #f1f1f1; |
| } |
| .dropdown-option-icon { |
| width: 24px; |
| height: 24px; |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| margin-right: 8px; |
| border-radius: 4px; |
| color: white; |
| } |
| .print-btn { |
| margin-left: auto; |
| margin-right: 20px; |
| } |
| </style> |
| </head> |
| <body class="bg-gray-100"> |
| <div class="flex flex-col h-screen"> |
| |
| <div class="header bg-indigo-800 text-white w-full fixed top-0 left-0 z-50 shadow-md flex items-center justify-between px-4"> |
| <div class="flex items-center"> |
| <i class="fas fa-chalkboard-teacher text-2xl mr-3"></i> |
| <span class="logo-text text-xl font-bold">Chấm công tính lương</span> |
| </div> |
| |
| |
| <div class="flex items-center h-full"> |
| <div class="nav-item flex items-center text-white hover:bg-indigo-700 cursor-pointer h-full"> |
| <i class="fas fa-users mr-3"></i> |
| <span class="sidebar-text">Tổng hợp</span> |
| </div> |
| <div class="nav-item flex items-center text-white hover:bg-indigo-700 cursor-pointer active-nav-item h-full"> |
| <i class="fas fa-calendar-check mr-3"></i> |
| <span class="sidebar-text">Chấm công</span> |
| </div> |
| <div class="nav-item flex items-center text-white hover:bg-indigo-700 cursor-pointer h-full"> |
| <i class="fas fa-money-bill-wave mr-3"></i> |
| <span class="sidebar-text">Tính lương</span> |
| </div> |
| <button class="print-btn bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700 flex items-center ml-4"> |
| <i class="fas fa-print mr-2"></i> |
| <span>In phiếu lương</span> |
| </button> |
| </div> |
| </div> |
|
|
| |
| <div class="content flex-1 mt-16 p-6" id="content"> |
| |
| <div class="flex flex-wrap gap-2 mb-6"> |
| <div class="stat-item flex items-center text-sm"> |
| <span class="text-gray-500 mr-2">Tổng GV/NV:</span> |
| <span class="font-bold">42</span> |
| </div> |
| <div class="stat-item flex items-center text-sm"> |
| <span class="text-gray-500 mr-2">Đi làm hôm nay:</span> |
| <span class="font-bold">38</span> |
| </div> |
| <div class="stat-item flex items-center text-sm"> |
| <span class="text-gray-500 mr-2">Tổng lương tháng:</span> |
| <span class="font-bold">324,450,000đ</span> |
| </div> |
| <div class="stat-item flex items-center text-sm"> |
| <span class="text-gray-500 mr-2">Đi muộn hôm nay:</span> |
| <span class="font-bold">2</span> |
| </div> |
| </div> |
|
|
| |
| <div class="bg-white rounded-lg shadow overflow-hidden mb-6"> |
| <div class="p-6 border-b border-gray-200"> |
| <div class="flex justify-between items-center"> |
| <h2 class="text-xl font-semibold">Chấm công tháng 11/2023</h2> |
| <div class="flex items-center space-x-4"> |
| <div class="flex items-center"> |
| <select class="p-2 border border-gray-300 rounded"> |
| <option>Tháng 11</option> |
| <option>Tháng 10</option> |
| <option>Tháng 9</option> |
| </select> |
| </div> |
| <div class="flex items-center"> |
| <select class="p-2 border border-gray-300 rounded"> |
| <option>2023</option> |
| <option>2022</option> |
| <option>2021</option> |
| </select> |
| </div> |
| <button class="bg-indigo-600 text-white px-4 py-2 rounded hover:bg-indigo-700">Lưu</button> |
| </div> |
| </div> |
| </div> |
| |
| <div class="table-container"> |
| <table class="min-w-full divide-y divide-gray-200"> |
| <thead class="bg-gray-50"> |
| <tr> |
| <th class="px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">STT</th> |
| <th class="px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Họ và tên</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">1</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">2</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">3</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">4</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">5</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">6</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">7</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">8</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">9</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">10</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">11</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">12</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">13</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">14</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">15</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">16</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">17</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">18</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">19</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">20</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">21</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">22</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">23</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">24</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">25</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">26</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">27</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">28</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">29</th> |
| <th class="px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">30</th> |
| </tr> |
| </thead> |
| <tbody class="bg-white divide-y divide-gray-200"> |
| <tr> |
| <td class="px-3 py-4 whitespace-nowrap text-sm text-gray-500">1</td> |
| <td class="px-3 py-4 whitespace-nowrap"> |
| <div class="flex items-center"> |
| <div class="flex-shrink-0 h-10 w-10"> |
| <img class="h-10 w-10 rounded-full" src="https://randomuser.me/api/portraits/women/12.jpg" alt=""> |
| </div> |
| <div class="ml-4"> |
| <div class="text-sm font-medium text-gray-900">Nguyễn Thị A</div> |
| </div> |
| </div> |
| </td> |
| <td class="px-3 py-4 whitespace-nowrap text-center"> |
| <div class="attendance-dropdown"> |
| <div class="attendance-cell attendance-X" data-status="X">X</div> |
| <div class="attendance-dropdown-content"> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'X')"> |
| <div class="dropdown-option-icon bg-green-500">X</div> |
| <span>Làm việc</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'N')"> |
| <div class="dropdown-option-icon bg-red-500">N</div> |
| <span>Nghỉ</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'H')"> |
| <div class="dropdown-option-icon bg-yellow-500">1/2</div> |
| <span>Nửa ngày</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'P')"> |
| <div class="dropdown-option-icon bg-blue-500">P</div> |
| <span>Nghỉ phép</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'L')"> |
| <div class="dropdown-option-icon bg-purple-500">L</div> |
| <span>Nghỉ lễ</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'O')"> |
| <div class="dropdown-option-icon bg-pink-500">O</div> |
| <span>Nghỉ ốm</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'K')"> |
| <div class="dropdown-option-icon bg-gray-500">K</div> |
| <span>Khác</span> |
| </div> |
| </div> |
| </div> |
| </td> |
| <td class="px-3 py-4 whitespace-nowrap text-center"> |
| <div class="attendance-dropdown"> |
| <div class="attendance-cell attendance-X" data-status="X">X</div> |
| <div class="attendance-dropdown-content"> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'X')"> |
| <div class="dropdown-option-icon bg-green-500">X</div> |
| <span>Làm việc</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'N')"> |
| <div class="dropdown-option-icon bg-red-500">N</div> |
| <span>Nghỉ</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'H')"> |
| <div class="dropdown-option-icon bg-yellow-500">1/2</div> |
| <span>Nửa ngày</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'P')"> |
| <div class="dropdown-option-icon bg-blue-500">P</div> |
| <span>Nghỉ phép</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'L')"> |
| <div class="dropdown-option-icon bg-purple-500">L</div> |
| <span>Nghỉ lễ</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'O')"> |
| <div class="dropdown-option-icon bg-pink-500">O</div> |
| <span>Nghỉ ốm</span> |
| </div> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'K')"> |
| <div class="dropdown-option-icon bg-gray-500">K</div> |
| <span>Khác</span> |
| </div> |
| </div> |
| </div> |
| </td> |
| <td class="px-3 py-4 whitespace-nowrap text-center"> |
| <div class="attendance-dropdown"> |
| <div class="attendance-cell attendance-X" data-status="X">X</div> |
| <div class="attendance-dropdown-content"> |
| <div class="dropdown-option" onclick="changeAttendance(this, 'X')"> |
| <div class="dropdown-option-icon bg-green-500">X</div> |
| <span>Làm việc</span> |
| </div> |
| 极简主义是一种生活哲学,强调去除不必要的物质和精神负担,专注于真正重要的事物。它不仅仅关乎物质上的极简,更是一种思维方式和生活态度。 |
|
|
| 极简主义的核心原则包括: |
|
|
| 1. 少即是多 - 通过减少物品、信息和活动,获得更多时间、空间和精力 |
| 2. 质量优于数量 - 选择少量但高品质的物品和体验 |
| 3. 有意识地生活 - 对拥有的每件物品和每项承诺都保持清醒认知 |
| 4. 去除冗余 - 只保留真正需要和带来价值的事物 |
| 5. 专注当下 - 不被过去束缚,不为未来过度焦虑 |
|
|
| 实践极简主义可以从以下几个方面入手: |
|
|
| 1. 物质极简: |
| - 定期整理物品,只保留必需品和真正喜爱的物品 |
| - 建立"一进一出"原则,购买新物品前先处理旧物 |
| - 选择多功能、耐用、易维护的物品 |
|
|
| 2. 数字极简: |
| - 清理电子设备中不必要的文件和应用程序 |
| - 减少社交媒体使用时间 |
| - 设置无干扰时段专注工作 |
|
|
| 3. 精神极简: |
| - 学会说"不",拒绝不必要的社交和承诺 |
| - 培养冥想习惯,清理杂念 |
| - 简化目标,专注于少数真正重要的事项 |
|
|
| 4. 财务极简: |
| - 减少冲动消费 |
| - 建立自动储蓄机制 |
| - 投资体验而非物质 |
|
|
| 极简主义带来的好处包括: |
| - 减轻压力和焦虑 |
| - 提高生活效率 |
| - 增强对生活的掌控感 |
| - 获得更多时间和自由 |
| - 提升生活品质和幸福感 |
|
|
| 值得注意的是,极简主义不是苦行僧式的自我剥夺,而是通过有意识的选择,创造更充实、更有意义的生活。每个人的极简方式可能不同,重要的是找到适合自己的平衡点 |
| </html> |