Đặc tả màn (app) — Tin nhắn
Pair với mockup: ui-mockups/longdo-erp/app-longdo-erp/pace-2/chat.html,
.../chat-chi-tiet.html, .../nhom.html
Mục đích: nhắn tin 1–1 và nhóm trong app nội bộ Longdo ERP (bản mobile).
Quyền xem / thao tác: mọi nhân sự có tài khoản (BR-TN-17).
Loại màn: danh sách · hội thoại (chat) · danh sách nhóm.
Bản app mobile (Flutter / Material 3) của phân hệ Tin nhắn. Nghiệp vụ đầy đủ (mã
FR-TN / BR-TN) xem tai-lieu-nghiep-vu/tin-nhan.md; trang này chỉ đặc tả giao
diện app theo mockup đã dựng. Cặp tài liệu nghiệp vụ app do TASK-13 cập nhật.
A. Màn Danh sách hội thoại (chat.html)
Tab Tin nhắn ở thanh điều hướng dưới. Header: nút Thông báo. Hàng tìm kiếm gồm ô
Tìm kiếm và nút + (mở thẳng màn Tạo nhóm). Dưới là hàng chip lọc và
danh sách hội thoại.
Tham số / Bộ lọc
| Thành phần |
Kiểu |
Bắt buộc |
Mặc định |
Ghi chú |
| Chip lọc |
enum |
– |
Tất cả |
Tất cả / Chưa đọc / Nhóm (FR-TN-02, BR-TN-01) |
| Ô tìm kiếm |
text |
– |
rỗng |
lọc theo tên hội thoại & trích đoạn tin cuối (FR-TN-03) |
| Khối gợi ý “Danh bạ” |
– |
– |
ẩn |
Hiện dưới danh sách hội thoại khi đang gõ từ khoá: gợi ý người trong danh bạ chưa có hội thoại với mình (BR-TN-03). Mỗi dòng = avatar + tên + chức vụ; chạm là vào thẳng đoạn chat 1–1 nên không có chip “Nhắn tin” như bản web |
Thành phần dữ liệu — mỗi mục hội thoại
| 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 hội thoại nếu có, không thì chữ viết tắt tên (nhóm & cá nhân dùng chung một kiểu) |
vòng tròn 48dp |
– |
| Tên hội thoại |
text |
✔ |
tên nhóm / tên người |
in đậm khi còn tin chưa đọc |
– |
| Cờ 📌 / 🔕 |
enum |
– |
trạng thái ghim / tắt thông báo |
📌 cạnh tên khi ghim; 🔕 khi tắt TB (BR-TN-05, BR-TN-25) |
– |
| Trích đoạn tin cuối |
text |
✔ |
tin gần nhất |
1 dòng, cắt … ; kèm người gửi (nhóm) |
– |
| Thời gian |
text |
✔ |
giờ hh:mm / “Hôm qua” / “T4”… |
– |
– |
| Badge chưa đọc |
number |
– |
số tin chưa đọc |
hiện số tin chưa đọc; ẩn khi = 0. Không liên quan tới cờ tắt thông báo |
– |
Hành động
| Nút / Thao tác |
Điều kiện |
Kết quả |
| Chạm một mục |
– |
mở màn Hội thoại (chat-chi-tiet.html) kèm tên/loại/avatar |
| Chạm “Tin nhắn của tôi” |
– |
mở hội thoại với chính mình (?loai=self) — xem mục A.1 |
| Nhấn giữ một mục |
– |
Làm mờ nền, “nhấc” đúng mục đang giữ lên trên nền mờ (mục vẫn ở nguyên vị trí, nổi bật khỏi danh sách), và mở menu thao tác dạng thẻ nổi neo ngay dưới mục (thiếu chỗ thì lật lên trên): Ghim/Bỏ ghim · Tắt thông báo · Chọn nhiều · Xoá. Chạm ra nền để đóng. Riêng “Tin nhắn của tôi” chỉ có Ghim / Bỏ ghim (BR-TN-41) |
| Nhấn giữ mục → Ghim / Bỏ ghim |
– |
bật/tắt cờ 📌 (FR-TN-04, BR-TN-05) |
| Nhấn giữ mục → Tắt / Bật thông báo |
– |
bật/tắt cờ 🔕 (FR-TN-21, BR-TN-25) |
| Nhấn giữ mục → Xoá hội thoại |
xác nhận |
gỡ khỏi danh sách của riêng người dùng kèm toàn bộ tin nhắn bên trong (FR-TN-05, BR-TN-04) |
| Nhấn giữ mục → Chọn nhiều |
– |
bật chế độ chọn nhiều hội thoại: mỗi mục hiện ô chọn, thanh trên có Huỷ chọn · bộ đếm “Đã chọn N” · Chọn tất cả · Xoá (cần xác nhận) để xoá hàng loạt. “Tin nhắn của tôi” không có ô chọn (FR-TN-39, BR-TN-45) |
| + (cạnh ô tìm) → Tạo một nhóm |
chọn ≥2 người |
mở thẳng màn Tạo nhóm: đặt tên nhóm (≤100 ký tự; trống → “Nhóm chưa đặt tên”), chọn ảnh nhóm (mặc định = chữ viết tắt tên), rồi chọn ≥2 thành viên → tạo nhóm (FR-TN-16) |
| Nút Thông báo |
– |
mở màn Thông báo (thong-bao.html) |
Trạng thái màn
| Trạng thái |
Hiển thị |
| Rỗng (không kết quả) |
biểu tượng 💬 + câu theo ngữ cảnh tab / từ khoá tìm |
| Đã tắt thông báo |
cờ 🔕 cạnh tên (chỉ báo hội thoại đang tắt thông báo). Badge chưa đọc vẫn hiện số bình thường — hai thứ độc lập, không thay thế nhau |
Ghi chú nghiệp vụ
- Header chỉ có nút Tạo nhóm — chat 1–1 bắt đầu từ gợi ý ô tìm hoặc từ Danh bạ,
không có nút tạo chat 1–1 riêng (FR-TN-15).
- Ghim nhiều hội thoại; ghim/bỏ ghim chỉ đổi thứ tự của riêng người dùng (BR-TN-05).
- Xoá hội thoại xoá luôn tin nhắn bên trong ở phía mình và không ảnh hưởng người khác (BR-TN-04).
A.1 Mục “Tin nhắn của tôi” (nhắn với chính mình)
Hội thoại hệ thống dựng sẵn cho mỗi tài khoản, dùng để ghi chú / lưu tạm nội dung
cho riêng mình (FR-TN-37, BR-TN-41).
| Đặc điểm |
Mô tả |
| Vị trí |
Ghim sẵn → nằm đầu danh sách, mang cờ 📌 như hội thoại ghim thường |
| Avatar |
Icon bookmark (phân biệt bằng hình, không bằng màu) |
| Bỏ ghim |
Được — bỏ ghim thì về thứ tự theo hoạt động gần nhất |
| Menu nhấn giữ |
Chỉ Ghim / Bỏ ghim — không Tắt thông báo, không Chọn nhiều, không Xoá |
| Chọn nhiều |
Không có ô chọn ở mục này (không xoá được) |
| Tab Nhóm |
Không hiện (chỉ có một người, không phải nhóm) |
| Trong hội thoại |
Chỉ có tin một phía (bên phải); không nút Gọi; không có Tắt thông báo ở hành động nhanh; menu nhấn giữ tin không có Thu hồi (chỉ mình mình nên “gỡ với mọi người” vô nghĩa — tin cũ chỉ cần Xoá) |
| Popup xoá tin |
Rút gọn: “Bạn có chắc muốn xoá mục này?” (xoá nhiều: “Bạn có chắc muốn xoá N mục đã chọn?”) — không nhắc “những người khác vẫn xem được” vì hội thoại chỉ có mình |
B. Màn Hội thoại (chat-chi-tiet.html)
Top app bar: nút Quay lại, avatar + tên, nút Gọi thoại,
Gọi video, nút Thông tin. Thân là vùng tin cuộn; dưới cùng là thanh soạn tin. Có thanh
ghim tin (đầu) và thanh trích dẫn (trên ô soạn) — ẩn mặc định. Chạm avatar +
tên hoặc nút Thông tin đều mở thẳng Thông tin hội thoại (mục B.4) — nơi có các
hành động nhanh Tắt thông báo · Tìm tin nhắn · Thêm thành viên · Trang cá nhân; nút Gọi
mở màn cuộc gọi (mục B.5).
Với “Tin nhắn của tôi” (?loai=self): avatar là icon bookmark, không có dòng phụ
dưới tên, không có nút Gọi thoại / Gọi video, không có Tắt thông báo ở hàng hành
động nhanh, Thông tin hội thoại không có khối Thành viên lẫn Thông tin liên hệ. Vùng tin
chỉ có một phía — mọi tin đều là tin của mình (bên phải), không có bong bóng tin đến
bên trái (FR-TN-37, BR-TN-41).
Thành phần dữ liệu
| 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 |
| Mốc ngày |
text |
– |
“Hôm nay” / ngày |
chip giữa vùng tin |
– |
| Bong bóng tin đến |
text |
✔ |
tin người khác |
nền surfaceVariant, avatar + giờ; tên người gửi (nhóm) |
– |
| Bong bóng tin đi |
text |
✔ |
tin của mình |
nền brand nhạt (indigo nhạt), chữ tím đậm; giờ + trạng thái ✓✓ |
– |
| Bong bóng tệp đính kèm |
file |
– |
tài liệu gửi trong hội thoại |
thẻ file: icon + tên + dung lượng + Tải xuống · Lưu vào Tài liệu (FR-TN-07, FR-TN-20) |
– |
| Bong bóng ảnh |
ảnh |
– |
ảnh gửi trong hội thoại |
1 ảnh hoặc lưới chùm ảnh; chạm → mở Trình xem ảnh (ảnh trải hết chiều rộng màn hình, không hiển thị tên ảnh; chuyển ảnh bằng lướt ngang; đếm N/M + chấm trang, Tải xuống · Chia sẻ · Chuyển tiếp) (FR-TN-07, FR-TN-20) |
– |
| Thanh tin đã ghim |
text |
– |
tin được Ghim |
đầu hội thoại, có nút bỏ ghim (FR-TN-11) |
ẩn |
| Thanh trích dẫn |
text |
– |
tin đang trả lời |
trên ô soạn, có nút huỷ (FR-TN-09) |
ẩn |
| Khay đính kèm |
file/ảnh |
– |
tệp/ảnh vừa chọn (chưa gửi) |
trên ô soạn; mỗi mục có nút ✕ bỏ chọn; nhấn Gửi mới gửi (FR-TN-07) |
ẩn |
| Ô soạn tin “Nhắn tin…” |
text |
– |
nhập tự do |
có nút biểu tượng cảm xúc (mở bảng emoji) |
rỗng |
| Thanh “Nhóm đã giải tán” |
– |
– |
nhóm bị Trưởng nhóm giải tán |
Thay ô soạn tin khi mở nhóm đã giải tán (BR-TN-50): dòng chú “Nhóm đã được giải tán. Bạn không gửi tin nhắn hay xem lại nội dung cũ được nữa.” + nút Xoá lịch sử trò chuyện. Vùng tin chỉ còn dòng thông báo; header bỏ nút gọi thoại / gọi video / thông tin |
ẩn |
| Bảng @nhắc tên |
– |
– |
thành viên nhóm |
chỉ ở hội thoại nhóm: gõ @ mở bảng gợi ý chọn người cần nhắc; tên được nhắc hiển thị nổi bật (@mọi người, @Tên) — FR-TN-34 |
ẩn |
| Menu thao tác tin |
– |
– |
tin được nhấn giữ |
thẻ nổi lưới 4 cột, mỗi ô = icon + nhãn dưới icon; các mục: Trả lời · Chuyển tiếp · Sao chép · Lưu vào Tài liệu (chỉ tin tệp / ảnh) · Ghim (đổi nhãn thành “Bỏ ghim” khi tin đã ghim) · Chọn nhiều (FR-TN-40) · Thu hồi (chỉ tin của mình; không có ở “Tin nhắn của tôi”) · Xoá. Icon đơn sắc theo token M3; riêng Xoá dùng màu error. Nền mờ (scrim) phía sau |
ẩn |
| Thanh Chọn nhiều tin |
– |
– |
tin đã tích chọn |
Hiện khi bật Chọn nhiều (FR-TN-40): Huỷ chọn · “Đã chọn N” · Chuyển tiếp · Xoá (hai nút mờ khi chưa chọn tin nào) |
ẩn |
| Ô tích chọn tin |
– |
– |
mọi dòng tin |
Khi bật Chọn nhiều: mỗi dòng tin (cả tin đến lẫn tin của mình) hiện ô tròn ở lề trái — đặc + dấu ✓ (nền primary) khi đang chọn, rỗng viền outline khi chưa. Tin đang chọn còn được viền (ring primary) quanh bóng tin. Chạm ô tích hoặc chạm bóng tin đều tích / bỏ tích. (Bản web không có ô tích — tin đang chọn được bôi đậm — BR-TN-47.) |
ẩn |
| Bottom-sheet chọn nơi lưu |
– |
– |
tệp/ảnh đang lưu |
Mở khi chọn Lưu vào Tài liệu (menu tin, nút Lưu trên thẻ tệp, hoặc menu ⋮ ở File đã chia sẻ). Hai lựa chọn: Tài liệu của tôi (“Chỉ mình bạn xem được”) / Tài liệu chung (“Cả công ty xem được”) — FR-TN-12, BR-TN-14 |
ẩn |
| Popup xác nhận |
– |
– |
hành động phá huỷ |
M3 AlertDialog giữa màn (tiêu đề + nội dung + Huỷ / nút hành động màu error) — dùng cho Thu hồi, Xoá tin (kể cả sau khi chọn phạm vi xoá), Xoá nhiều tin, Xoá thành viên, Xoá lịch sử, Rời nhóm, Xoá hội thoại. Không dùng hộp thoại mặc định của trình duyệt. Nội dung nêu rõ phạm vi: “Tin sẽ bị gỡ khỏi hội thoại ở phía bạn. Những người khác vẫn xem được.” — riêng “Tin nhắn của tôi” rút gọn thành “Bạn có chắc muốn xoá mục này?” (xoá nhiều: “Bạn có chắc muốn xoá N mục đã chọn?”) vì hội thoại không có người khác |
ẩn |
Hành động
| Nút / Thao tác |
Điều kiện |
Kết quả |
| Nhấn giữ một bong bóng tin |
– |
Làm mờ nền và “nhấc” chính bong bóng đó lên trên nền mờ (tin sáng nổi bật cùng menu), rồi mở menu thao tác tin — thẻ nổi dạng lưới 4 cột (icon + nhãn), neo ngay cạnh tin: ưu tiên dưới tin, không đủ chỗ thì lật lên trên; canh theo phía tin (tin của mình dạt phải, tin đến dạt trái). Chạm ra nền để đóng. Chạm thường không mở menu (tránh mở nhầm khi cuộn) |
| Thao tác → Chọn nhiều |
– |
bật chế độ chọn nhiều tin (FR-TN-40, BR-TN-46): mọi dòng tin hiện ô tích tròn ở lề trái (BR-TN-47), tin vừa nhấn giữ được tích sẵn; thanh trên có Huỷ chọn · “Đã chọn N” · Chuyển tiếp · Xoá. Chạm ô tích hoặc chạm tin để tích/bỏ tích — mọi tin, không phân biệt người gửi. Trong lúc chọn, chạm tin không mở menu hay xem ảnh. Xoá chỉ gỡ ở phía mình (có xác nhận); Chuyển tiếp mở màn Chuyển tiếp cho các tin đã chọn |
| Thao tác → Trả lời |
– |
hiện thanh trích dẫn, gắn tin trả lời với tin gốc (FR-TN-09) |
| Thao tác → Chuyển tiếp |
– |
mở màn Chuyển tiếp → chọn nơi nhận: “Tin nhắn của tôi” (luôn ở đầu danh sách, không chọn sẵn — BR-TN-42), nhóm, hoặc thành viên công ty; có thể kèm lời nhắn (FR-TN-10) |
| Thao tác → Sao chép |
– |
chép nội dung tin vào bộ nhớ tạm (toast “Đã sao chép”) (FR-TN-35) |
| Chạm một bong bóng ảnh |
– |
mở Trình xem ảnh toàn màn (lướt ngang để sang ảnh khác; không hiện tên ảnh; Tải xuống · Chia sẻ · Chuyển tiếp) |
| Thao tác → Ghim tin nhắn |
– |
tin lên thanh ghim đầu hội thoại (FR-TN-11, BR-TN-10) |
| Thao tác → Lưu vào Tài liệu |
tin là tệp / ảnh |
mở bottom-sheet chọn nơi lưu: Tài liệu của tôi / Tài liệu chung (FR-TN-12, BR-TN-14) |
| Thao tác → Thu hồi |
chỉ tin của mình (hiện với mọi tin của mình, kể cả tin cũ); không có ở “Tin nhắn của tôi” |
tin còn trong 24 giờ: xác nhận → gỡ nội dung với mọi người, để lại “Tin nhắn đã được thu hồi”. Tin quá 24 giờ: toast “Chỉ có thể thu hồi tin nhắn trong vòng 24 giờ sau khi gửi.”, không đổi tin (FR-TN-14, BR-TN-08, BR-TN-11, BR-TN-12) |
| Thao tác → Xoá |
– |
gỡ tin ở phía mình, không giới hạn thời gian; có xác nhận (FR-TN-13) |
| Thao tác → Xoá (Trưởng nhóm, tin của thành viên khác, trong 24 giờ) |
– |
mở bottom-sheet chọn phạm vi xoá: Xoá ở phía tôi / Xoá với mọi người. Chọn phạm vi chưa xoá ngay — bottom-sheet chạm-là-chọn nên hệ thống mở thêm popup xác nhận rồi mới thực hiện (BR-TN-48); chọn “với mọi người” thì gỡ nội dung với cả nhóm, để lại dấu vết “<Tên trưởng nhóm> đã xóa tin nhắn này” (FR-TN-36, BR-TN-39, BR-TN-40) |
| + (đính kèm) |
– |
bottom-sheet: Tài liệu (mở trình chọn tệp trong máy) · Hình ảnh (mở thư viện ảnh, chọn nhiều) · Chụp ảnh · Vị trí. Tệp/ảnh chọn xong vào khay đính kèm — chưa gửi (FR-TN-07) |
| Gửi |
có nội dung / có khay |
đẩy khay đính kèm (tệp/ảnh) rồi tới text vào hội thoại; trạng thái “Đã gửi” ✓✓ (FR-TN-06, BR-TN-06) |
| Chạm avatar + tên / nút Thông tin |
– |
mở Thông tin hội thoại (mục B.4) — FR-TN-19 |
| Thông tin → Tìm tin nhắn |
– |
mở thanh tìm trong hội thoại (đếm kết quả, trước/kế) — FR-TN-22 |
| Thông tin → Tắt thông báo |
– |
menu thời lượng 1 giờ / 4 giờ / 8 giờ / đến khi bật lại — FR-TN-21, BR-TN-25 |
| Gọi thoại / Gọi video |
liên hệ có tài khoản |
mở màn cuộc gọi (mục B.5) — FR-TN-17, FR-TN-18 |
Trạng thái màn
| Trạng thái |
Hiển thị |
| Tin của mình |
bong bóng nền brand nhạt, ✓✓ “Đã gửi” |
| Tin đã thu hồi |
“Tin nhắn đã được thu hồi” (in nghiêng, mờ) — mọi người đều thấy (BR-TN-12) |
| Tin bị Trưởng nhóm xoá |
“<Tên trưởng nhóm> đã xóa tin nhắn này” (in nghiêng, mờ) — mọi người đều thấy; phân biệt với tin tự thu hồi (BR-TN-40) |
| Đang trả lời |
thanh trích dẫn hiện trên ô soạn |
| Có tin ghim |
thanh ghim hiện đầu hội thoại |
Ghi chú nghiệp vụ
- Thu hồi chỉ với tin của mình và chỉ trong 24 giờ (BR-TN-11). Lựa chọn Thu hồi
vẫn hiện với mọi tin của mình — quá 24 giờ thì chạm vào sẽ báo lý do, không ẩn nút
để người dùng khỏi thắc mắc vì sao mất lựa chọn. Xoá thì không giới hạn thời gian,
chỉ gỡ ở phía mình (FR-TN-13). Không có sửa nội dung tin đã gửi (BR-TN-13).
- Trưởng nhóm xoá được tin của thành viên khác trong 24 giờ, có lưu vết tên người
xoá (FR-TN-36, BR-TN-39, BR-TN-40). Thành viên thường không có thao tác này.
- Người rời nhóm / bị xoá khỏi nhóm: tin nhắn họ đã gửi vẫn giữ nguyên trong
hội thoại, vẫn hiện đúng tên + avatar — không xoá, không ẩn danh (BR-TN-44).
- Hệ thống không có trạng thái “đã xem” theo từng người (BR-TN-06).
- Ngoài phạm vi app: “Chụp màn hình” (FR-TN-08 — chọn vùng → chú thích → chèn vào khay
đính kèm) chỉ có ở bản web. Khay + của app chỉ có Tài liệu · Hình ảnh · Chụp ảnh ·
Vị trí (máy điện thoại đã có sẵn chức năng chụp màn hình của hệ điều hành).
B.4 Thông tin hội thoại (overlay trong chat-chi-tiet.html)
Mở khi chạm avatar + tên hoặc nút Thông tin trên top app bar. Đầu là khối nhận diện (avatar lớn, tên,
số thành viên / trạng thái) — nhóm có nút đổi tên/ảnh. Kế đó là hàng hành động nhanh,
rồi phần thân đổi theo loại hội thoại, cuối là hành động hội thoại.
| Thành phần |
Nhóm |
1–1 |
Tin nhắn của tôi |
Ghi chú (FR/BR) |
| Khối nhận diện + đổi tên/ảnh |
✔ (sửa được) |
✔ (chỉ xem) |
✔ (chỉ xem) |
mọi thành viên đổi tên/ảnh nhóm — FR-TN-27, BR-TN-30 |
| Tắt thông báo (nhanh) |
✔ |
✔ |
– |
menu thời lượng — FR-TN-21, BR-TN-25 |
| Tìm tin nhắn |
✔ |
✔ |
✔ |
mở thanh tìm trong hội thoại; chỉ tìm trong các tin còn giữ ở phía mình — FR-TN-22, BR-TN-26 |
| Thêm thành viên |
✔ |
– |
– |
bộ chọn nhiều người — FR-TN-23, BR-TN-29 |
| Trang cá nhân |
– |
✔ |
– |
mở trang cá nhân đối phương — FR-TN-19 |
| Danh sách Thành viên (vai trò, Trưởng nhóm, nút xoá) |
✔ |
– |
– |
Chạm một thành viên → mở chat 1–1 với người đó; chỉ Trưởng nhóm thấy nút ✕ xoá thành viên (không xoá chính mình) — FR-TN-19/24, BR-TN-30/31. Tin cũ của người bị xoá vẫn giữ nguyên (BR-TN-44) |
| Thông tin liên hệ (chức vụ, phòng ban, điện thoại) |
– |
✔ |
– |
FR-TN-19 |
| Kho Ảnh/Video + File đã chia sẻ |
✔ |
✔ |
✔ |
lưới ảnh + danh sách tệp, mỗi khối có Xem tất cả (mở màn danh sách đầy đủ); chạm ảnh → Trình xem media (Tải xuống · Chia sẻ · Chuyển tiếp); chạm ⋮ trên dòng tệp → bottom-sheet tuỳ chọn (Tải xuống · Lưu vào Tài liệu · Chuyển tiếp · Chia sẻ); chạm thẳng vào dòng tệp là Tải xuống — FR-TN-20, BR-TN-33 |
| Cài đặt nhóm → “Lịch sử trò chuyện cho thành viên mới” |
✔ |
– |
– |
Đặt ngay dưới khối File đã chia sẻ. Hiện giá trị đang áp dụng (“Hiện · xem được toàn bộ tin cũ” / “Ẩn · chỉ xem 100 tin gần nhất”); chỉ Trưởng nhóm chạm mở được bottom-sheet chọn Hiện / Ẩn, thành viên khác chỉ xem kèm dòng chú “Chỉ Trưởng nhóm đổi được cài đặt này” — FR-TN-38, BR-TN-35, BR-TN-38 |
| Xoá lịch sử trò chuyện |
✔ |
✔ |
✔ |
xác nhận; chỉ gỡ phía mình, hội thoại về trống — Tìm tin nhắn chỉ tìm trong tin từ thời điểm xoá trở đi — FR-TN-25, BR-TN-36 |
| Giải tán nhóm |
✔ (chỉ Trưởng nhóm) |
– |
– |
Nhãn đỏ, đặt trên Rời nhóm; chỉ Trưởng nhóm thấy — thành viên thường không có. Bấm → popup “Giải tán nhóm?” (“Toàn bộ thành viên bị gỡ khỏi nhóm; không ai nhắn tin hay xem lại nội dung cũ được nữa. Không thể khôi phục.”) → xác nhận thì gỡ hết thành viên + đóng hội thoại, Trưởng nhóm quay về danh sách chat (hội thoại biến mất). Thành viên mở hội thoại thấy trạng thái đã giải tán: thanh nhập tin thay bằng dòng chú + nút Xoá lịch sử trò chuyện, nội dung cũ không xem lại được (FR-TN-41, BR-TN-50) |
| Rời nhóm |
✔ |
– |
– |
Thành viên thường: popup xác nhận → rời. Trưởng nhóm: mở bottom-sheet “Chọn Trưởng nhóm mới” (dòng phụ “Bạn đang là Trưởng nhóm — chọn người thay thế trước khi rời nhóm”; danh sách các thành viên còn lại, mỗi dòng avatar + tên + chức vụ) → chọn một người → popup “Chuyển quyền và rời nhóm?” → chuyển quyền rồi rời (FR-TN-26, BR-TN-32). Thành viên cuối cùng: popup “Rời và giải tán nhóm?” (nêu rõ hội thoại và nội dung bị xoá, không khôi phục được) → rời và xoá nhóm (BR-TN-49). Khi bắt đầu rời, màn Thông tin đóng lại và nút bị khoá để tránh bấm lần hai |
B.5 Màn cuộc gọi thoại / video (overlay trong chat-chi-tiet.html)
Mở từ nút Gọi ở top app bar. Nền tối, thẻ giữa màn (avatar/tên/trạng thái → thời lượng).
| Thành phần / Nút |
Ở màn |
Kết quả (FR/BR) |
| Avatar + tên + trạng thái |
thoại & video |
“Đang gọi… / Đang kết nối…” → bộ đếm thời lượng — BR-TN-20 |
| Micro (tắt/bật) |
thoại & video |
đổi trạng thái nút — FR-TN-28 |
| Loa (tắt/bật) |
thoại |
bật/tắt loa ngoài — FR-TN-28 |
| Chuyển sang gọi video |
thoại |
mở camera, nâng lên gọi video — FR-TN-29, BR-TN-19 |
| Camera (tắt/bật) |
video |
self-view “Bạn” góc dưới phải — FR-TN-29 |
| Thành viên |
nhóm |
danh sách Trong cuộc gọi (có dòng “Bạn” + trạng thái mic) / Chưa tham gia — mỗi người chưa vào cuộc mang trạng thái “Đang đổ chuông…” hoặc “Đã từ chối” (nhãn màu error) — FR-TN-30, BR-TN-21 |
| Thu nhỏ |
thoại & video |
về thanh cuộc gọi nổi (đồng hồ chạy tiếp) — FR-TN-32, BR-TN-22 |
| Kết thúc (đỏ) |
thoại & video |
ngắt cuộc gọi, ghi dòng nhật ký vào chat. Nhóm mà sau khi mình rời vẫn còn ≥2 người → cuộc gọi tiếp diễn, nhật ký ghi “📞 Bạn đã rời cuộc gọi thoại/video · thời lượng”; còn <2 người (hoặc chat 1–1) → cuộc gọi kết thúc hẳn, nhật ký ghi “📞 Cuộc gọi thoại/video đã kết thúc · thời lượng” — FR-TN-31/33, BR-TN-24 |
Cuộc gọi 1–1 không có danh sách thành viên (BR-TN-21). Chỉ nút đỏ mới kết thúc;
thu nhỏ giữ cuộc gọi tiếp diễn (BR-TN-22).
C. Màn Nhóm (nhom.html)
Tab phụ Nhóm trong khối Danh bạ (Thành viên · Nhóm · Đối tác) — trình bày giống
danh bạ Thành viên: danh sách các nhóm hội thoại (nhóm chat, dùng chung với màn
Tin nhắn — BA Longdo ERP, Dự án Longdo ERP, Phòng Kế toán, Toàn công ty…) gộp theo chữ
cái đầu tên nhóm (A–Z), kèm thanh chỉ mục A–Z ở mép phải để nhảy nhanh. Đầu danh
sách có dòng “Nhóm đang tham gia (N)”. Mỗi dòng nhóm gồm avatar nhóm, tên nhóm, hàng
avatar vài thành viên đầu (+N) và số thành viên; chạm để mở đoạn chat nhóm. Đây
là danh bạ nên không hiển thị tin nhắn cuối và không có mũi tên › ở cuối dòng.
Thành phần dữ liệu — mỗi dòng nhóm
| 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óm |
– |
✔ |
ảnh nhóm hoặc chữ viết tắt |
tròn |
– |
| Tên nhóm |
text |
✔ |
tên nhóm |
1 dòng, cắt … |
– |
| Hàng avatar thành viên |
– |
– |
vài thành viên đầu + “+N” |
chồng nhau, cỡ nhỏ |
– |
| Số thành viên |
text |
✔ |
“N thành viên” |
cỡ nhỏ, cạnh hàng avatar |
– |
Hành động
| Nút / Thao tác |
Điều kiện |
Kết quả |
| Chạm dòng nhóm |
– |
mở đoạn chat nhóm đó (chat-chi-tiet.html?loai=nhom&ten=…) |
| + (cạnh ô tìm) |
– |
Tạo nhóm mới (mở màn Tạo nhóm dùng chung với Tin nhắn) |
| Ô tìm “Tìm kiếm” |
– |
lọc nhóm theo tên; ẩn mục chữ cái rỗng; có trạng thái rỗng; số ở “Nhóm đang tham gia (N)” cập nhật theo kết quả |
| Thanh chỉ mục A–Z (mép phải) |
– |
chạm chữ cái → cuộn tới nhóm có tên bắt đầu bằng chữ cái đó |
Trạng thái màn
| Trạng thái |
Hiển thị |
| Rỗng khi tìm không ra kết quả |
biểu tượng 👥 + “Không tìm thấy nhóm khớp từ khoá.”; ẩn các mục chữ cái rỗng |
Ghi chú nghiệp vụ
- Nhóm tối thiểu 3 thành viên (BR-TN-16); mọi thành viên xem được toàn bộ lịch
sử tin nhắn của nhóm (BR-TN-35).
- Thao tác quản trị nhóm (thêm/xoá thành viên, đổi tên/ảnh nhóm, rời nhóm) nằm ở tab
Thông tin hội thoại — xem
tai-lieu-nghiep-vu/tin-nhan.md mục 1.6.