Nút Add Employee mở employee-form-modal.vue — form tối thiểu:
Field
Ghi chú
first_name
Bắt buộc — nút Save chỉ bật khi có giá trị
last_name, email, phone
Tuỳ chọn
department_id, employment_type_id
M2O tới hr_departments / hr_employment_types
job_title, start_date
Tuỳ chọn
Form gửi stage: 'probation' cố định — tạo trực tiếp một employee mới (không đi qua pipeline Talent). Backend tạo/tìm contact tương ứng theo email trước khi tạo satellite hr_people (xem Tích hợp Contacts) — form không cần chọn contact thủ công.
Mở một dòng trong danh sách vào /hr/employees/:id — trang con mặc định redirect sang tab Profile. Hồ sơ có 6 tab (route riêng từng tab, share state qua useEmployeeDetail()):
Profile
Header avatar/tên/chức danh + badge stage. Chế độ xem: 2 cột Contact
(email/phone/date of birth) và Employment (employee_id, job_title,
start date + số năm thâm niên tự tính). Bấm Edit chuyển sang form đầy
đủ field (họ tên, liên hệ, department, employment type…).
Employment
3 khối con: Contract (loại hợp đồng, ngày bắt đầu/kết thúc, ngày hết
thử việc, số lần gia hạn), Compensation (lương cơ bản, chu kỳ trả +
danh sách allowance thêm/xoá được), Insurance (số sổ BHXH/BHYT +
badge trạng thái đủ điều kiện, có thể override thủ công qua modal riêng).
Assets
Danh sách thiết bị đang cấp phát (laptop, điện thoại, thẻ ra vào…) —
cấp mới, đánh dấu đã trả, huỷ, xem chi tiết kèm ảnh trong slideover.
Thiết bị đã trả gộp vào accordion riêng bên dưới.
Provisioning
Trạng thái tài khoản trên các hệ thống bên thứ 3 (Authentik/Webhook, cấu
hình ở Settings → Integrations) — mỗi provider 1 dòng: trạng thái
(active/disabled/not_created/error), username, lần hành động gần
nhất. Có nút Retry khi lỗi, Create account khi chưa tạo.
Offboarding
Chỉ có nội dung khi employee đang có/đã có 1 hr_offboarding case.
Checklist các đầu việc rời đi (thu hồi tài sản, deprovision tài khoản,
exit interview, quyết toán…), tính toán ngày phép còn lại + số tiền
payout, và nút Finalize/Cancel case. Case cũ hơn xem trong mục
lịch sử (đọc-only).
Activity
Timeline hoạt động trên hồ sơ + khung ghi note nội bộ (không gửi cho
ai, chỉ hiển thị trong HR).
Tab Employment, Assets, Provisioning chỉ render khi stage đang ở probation/active/resigned — mở nhầm URL khi person còn ở stage talent sẽ tự redirect về tab Profile.
Khu vực Documents (đọc từ hr_documents) hiển thị danh sách file đã có trên hồ sơ — tên, danh mục, ngày tạo, badge trạng thái (generated/signed/pending/expired/archived), tải về hoặc xoá.
sensitive.read — bắt buộc để thấy Compensation, Insurance và Documents. Không có quyền này (vd HR Recruiter, HR Viewer) sẽ thấy ô khoá kèm icon 🔒 thay vì dữ liệu.
sensitive.update — bắt buộc để sửa Compensation/Insurance/Documents; thiếu quyền này thì các khối đó hiển thị nhưng ở chế độ đọc.
create/update/delete — tạo/sửa/xoá employee record nói chung (Profile, Employment, Assets…). HR Recruiter không có các quyền này — họ chỉ chạm được vào Talents.