Bỏ qua

Đặc tả màn (app) — Danh bạ

Pair với mockup: ui-mockups/longdo-erp/app-longdo-erp/pace-2/danh-ba.html (Thành viên + các nhóm Đối tác), nhom.html (Nhóm chat). Mục đích: tra cứu liên hệ nội bộ & đối tác, mở nhanh cuộc trò chuyện (bản mobile). Quyền xem / thao tác: mọi nhân sự; thao tác quản lý theo quyền (BR-DB-07). Loại màn: danh sách + drawer chi tiết.

Bản app mobile (Flutter / Material 3) của phân hệ Danh bạ. Nghiệp vụ đầy đủ (mã FR-DB / BR-DB) xem tai-lieu-nghiep-vu/danh-ba.md; trang này chỉ đặc tả giao diện app theo mockup. Bản web có 6 nhóm liên hệ; app dùng 3 tab: Thành viên · Nhóm · Đối tác. Tab Nhóm hiển thị các nhóm hội thoại (nhóm chat) — chạm một nhóm để mở đoạn chat nhóm đó. Tab Đối tác gom 5 nhóm còn lại của web (Khách hàng, Thầu phụ, Tổ đội nhân công, NCC vật liệu, NCC máy & thiết bị) — bấm để sổ ra bộ chọn nhóm, chọn nhóm nào thì đổ nội dung nhóm đó ngay trong trang.

Nút + trên header có 2 trạng thái: Thành viên → ẩn (nhân sự do HR quản lý, không thêm tại Danh bạ — BR-DB-06); Đối tác → Thêm đúng nhóm đối tác đang chọn. Tab Nhóm không có trạng thái + riêng vì đó là liên kết sang màn Nhóm (nhom.html) — nút Tạo nhóm nằm trên header của màn đó. Cặp tài liệu nghiệp vụ app do TASK-13 cập nhật.


A. Màn Danh bạ — tab Thành viên (danh-ba.html)

Tab Danh bạ ở thanh điều hướng dưới. Header sáng: tiêu đề lớn “Danh bạ”, nút Thông báo (badge số), ô Tìm kiếm và nút (đổi theo tab — xem dưới). Dưới header là hàng tab phụ (Thành viên · Nhóm · Đối tác), dòng tóm tắt số lượng, và danh sách thành viên nhóm theo chữ cái A–Z kèm thanh chỉ mục A–Z nhảy nhanh ở mép phải.

Tham số / Bộ lọc

Thành phần Kiểu Bắt buộc Mặc định Ghi chú
Tab phụ enum Thành viên Thành viên / Nhóm / Đối tác (Đối tác sổ ra 5 nhóm con)
Ô tìm “Tìm kiếm” text rỗng placeholder cố định “Tìm kiếm”; lọc theo tên, chức vụ · phòng banSĐT — SĐT không hiển thị trên dòng nhưng vẫn tìm được, gõ liền hay cách quãng đều ra (FR-DB-07)
Thanh chỉ mục A–Z enum chạm chữ cái để nhảy tới nhóm tương ứng

Thành phần dữ liệu — mỗi dòng thành viên

Thành phần Kiểu Bắt buộc Nguồn / Tùy chọn Ràng buộc / Định dạng Mặc định
Avatar ảnh đại diện từ Trang cá nhân nếu có; không có thì chữ viết tắt vòng tròn 40dp
Họ và tên text Hành chính – Nhân sự nhãn “(Bạn)” cho chính người dùng
Chức vụ · Phòng ban text Hành chính – Nhân sự 1 dòng, cắt …
2 nút Gọi thoại + Gọi video ở cuối mỗi dòng; gọi nội bộ (VOIP) — chỉ liên hệ có tài khoản (FR-DB-09, BR-TN-17)

Hành động

Nút / Thao tác Điều kiện Kết quả
Chạm một dòng (tên / avatar / vùng trống) mở đoạn chat 1–1 (chat-chi-tiet.html) với người đó
Nút Gọi thoại (cuối dòng) liên hệ có tài khoản mở đoạn chat + màn gọi thoại (?call=voice)
Nút Gọi video (cuối dòng) liên hệ có tài khoản mở đoạn chat + màn gọi video (?call=video)
Chạm dòng “(Bạn)” mở Trang cá nhân (trang-ca-nhan.html)
Thanh chỉ mục A–Z cuộn nhanh tới nhóm chữ cái

Trạng thái màn

Trạng thái Hiển thị
Rỗng (tìm không ra) danh sách trống theo từ khoá (mockup demo: giữ danh sách mẫu)

B. Xem chi tiết một thành viên

App không dùng drawer chi tiết riêng cho thành viên: chạm một dòng mở thẳng đoạn chat với người đó (mục A). Thông tin đầy đủ (chức vụ, phòng ban, điện thoại, email, trạng thái làm việc) xem tại Trang cá nhân của người đó — mở từ đoạn chat → Thông tin hội thoạiTrang cá nhân; dòng đầu danh bạ là chính mình (“Bạn”), chạm để mở Trang cá nhân của mình. Dữ liệu thành viên do Hành chính – Nhân sự quản lý, đồng bộ sang Danh bạ (chỉ xem — BR-DB-02, BR-DB-06).


C. Tab Đối tác — 5 nhóm liên hệ ngoài (danh-ba.html)

Bấm tab Đối tác ▾ → sổ ra bộ chọn nhóm (bottom-sheet “Chọn nhóm đối tác”) gồm 5 nhóm của bản web, mỗi nhóm một icon đường nét đơn sắc riêng (phân biệt bằng hình, không dùng emoji nhiều màu):

Nhóm Nhãn nút Thêm
Khách hàng + Thêm khách hàng
Thầu phụ + Thêm thầu phụ
Tổ đội nhân công + Thêm tổ đội
NCC vật liệu + Thêm NCC
NCC máy, thiết bị + Thêm NCC

Ô tìm dùng placeholder cố định “Tìm kiếm” cho mọi nhóm — không đổi gợi ý theo nhóm (bản web cũng vậy).

Chọn một nhóm → đổ danh sách thẻ của nhóm đó ngay trong trang; chip đầu panel hiện tên nhóm đang xem (bấm lại để đổi nhóm). Mỗi thẻ: avatar viết tắt theo tên người, tiêu đề (tên người liên hệ / đội trưởng), dòng phụ (chức vụ · đơn vị / “Đội trưởng · tên tổ”), số điện thoại, và badge phụ (Khách hàng → trạng thái hợp tác; Tổ đội → số người). Chạm thẻ → drawer chi tiết đối tác.

Drawer chi tiết đối tác

Thành phần Ghi chú (FR/BR)
Khối nhận diện (avatar, tiêu đề, dòng phụ, badge) theo loại nhóm
Danh sách trường đầy đủ Khách hàng/Thầu phụ/NCC: người liên hệ, chức vụ, ĐT, MST, địa chỉ (+ trạng thái / nhóm vật liệu / loại thiết bị). Tổ đội: đội trưởng, ĐT, tổ/đội, chuyên môn, số người, dự án (FR-DB-06)
Ghi chú tài khoản Chỉ hiện khi liên hệ chưa có tài khoản: “chưa thể nhắn tin / gọi trong ứng dụng”. Liên hệ đã có tài khoản không hiện ghi chú này (đã có sẵn nút Nhắn tin / Gọi điện) (BR-TN-17)
Nhắn tin · Gọi điện · Sửa · Xoá Nút Nhắn tin (mở đoạn chat 1–1) và Gọi điện (gọi trong hệ thống) chỉ hiện khi liên hệ đã có tài khoản trên hệ thống; liên hệ chưa có tài khoản → ẩn cả hai (còn Sửa) (FR-DB-09, BR-TN-17). Sửa/Xoá hiện theo quyền (BR-DB-07/09/14)

Ghi chú nghiệp vụ (tab Đối tác)

  • Tab Nhóm (chat) là danh sách nhóm hội thoại của app — khác các “nhóm liên hệ” của Danh bạ web; giữ ở nhom.html.
  • Thao tác Thêm / Sửa / Xoá đối tác trên app mở đúng ngữ cảnh theo nhóm; biểu mẫu chi tiết bám bộ trường của bản web (tai-lieu-nghiep-vu/danh-ba.md mục 1.2/1.3).
  • Quy tắc bắt buộc, chống trùng SĐT theo nhóm, kiểm định dạng MST/SĐT/email… theo BR-DB; app chỉ thể hiện luồng, ràng buộc do bản web/Dev chốt.

D. Ngoài phạm vi app

Các chức năng của phân hệ Danh bạ chỉ có ở bản web, app không dựng:

  • Xuất Excel (FR-DB-08).
  • Sắp xếp theo cột (FR-DB-02) — app dùng danh sách nhóm theo chữ cái A–Z.
  • Lọc theo giá trị cột / phễu lọc (FR-DB-03) — app chỉ có ô tìm.

Phân trang (BR-DB-17 — 20 liên hệ/trang): app dùng danh sách cuộn liên tục, không phân trang. Bản web hiện cũng chưa dựng phân trang trong mockup — quy tắc này do Dev hiện thực, chưa thể hiện trên giao diện mẫu.