lean.vn — LeanERP và hệ sinh thái AI
📖 Wiki-6S-HuongDan CiCC LeanERP SOP 🎬 Có Video Hướng Dẫn (V06)

Màn hình Danh sách thẻ (Kanban Board)

Danh sách thẻ 6S dạng Kanban + Location Drawers

🎬 Video Hướng Dẫn Thực Hành: Quản lý Danh sách Thẻ trên Bảng Kanban & Location Drawers V06 · 05:00 · Trưởng bộ phận · 6S Coordinator
Tab: Danh sách (screen-ds)
File: app.js lines 1055-1387, index.html lines 365-405

1. Tổng quan

Màn hình hiển thị toàn bộ thẻ 6S dưới dạng Kanban board, với location drawers để lọc nhanh theo khu vực.

CODE
📋 Danh sách Thẻ 6S

[🔍 Tìm mã thẻ, mô tả...] [S: Tất cả ▼] [📅 Thời gian: Tất cả ▼] [✕]

📁 Xưởng May 2 / C1 - Chuyền 1         [🟡 3] [🔴 1] [📦 4] [🔍 Tự DG] ▼
  ┌─────────┬─────────┬─────────┬──────────┬──────────┬──────────┐
  │ 🚨 Quá hạn │ 🆕 Mới │ ⏳ Chờ │ 🔧 Đang │ ❌ NG  │ ✅ OK    │
  │     1      │   2     │   3     │    1     │   1     │    5     │
  └─────────┴─────────┴─────────┴──────────┴──────────┴──────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🚨 Quá hạn  1 ▼
┌─────────────────────────────────────────────────────┐
│ R-2026-00001 🚨               [🔧 Xử lý]            │
│ Máy mở túi bị rung lắc mạnh                          │
│ 🚨 🔴 S6 👤 Nguyễn Văn A                             │
└─────────────────────────────────────────────────────┘

🆕 Mới treo  2 ▼
┌─────────────────────────────────────────────────────┐
│ Y-2026-00002                                        │
│ Vật tư để không đúng nơi quy định                    │
│ 🆕 🟡 S2 👤 Trần Văn B                               │
└─────────────────────────────────────────────────────┘

...

2. Bộ lọc (Filters)

2.1 Thanh tìm kiếm & filter trên cùng

ElementIDMô tả
Tìm kiếmkSearchTìm theo mã thẻ hoặc mô tả (debounce 250ms)
S-CategorykSFilterS1-S6
Thời giankDateFilterHôm nay, Tuần này, Tháng này, Quá hạn
Xóa filter✕clearAllFilters()

2.2 Filter chính

ElementIDMô tả
Select loạifilterTypeTất cả / Thẻ Vàng / Thẻ Đỏ
Nút Refresh—renderList()

2.3 Filter từ Dashboard

Click vào các KPI compact trên dashboard header:

  • 🚨 Quá hạn → filterTo('alarm')
  • 🆕 Mới → filterTo('new')
  • ⏳ Chờ → filterTo('pending')
  • 🔧 Đang → filterTo('processing')
  • ❌ NG → filterTo('ng')
  • ✅ OK → filterTo('done')

3. Location Drawers

Cấu trúc

CODE
📁 Xưởng May 2 / C1 - Chuyền 1    [🟡 3] [🔴 1] [📦 4] [🔍 Tự DG] ▼
┌──────────┬──────┬──────┬──────┐
│ Trạng thái│ Vàng│ Đỏ  │ Tổng │
├──────────┼──────┼──────┼──────┤
│ 🚨 Quá hạn│  1   │  0   │  1   │ ← click → lọc theo trạng thái này
│ 🆕 Mới   │  2   │  0   │  2   │
│ ⏳ Chờ XL│  2   │  1   │  3   │
│ 🔧 Đang XL│  0   │  1   │  1   │
│ ❌ Ko đạt│  1   │  0   │  1   │
│ ✅ Hoàn tất│  5   │  0   │  5   │
└──────────┴──────┴──────┴──────┘

Hành động:

  • Click vào hàng trạng thái → lọc kanban theo (location + state)
  • Click 🔍 Tự DG → chuyển tab Đánh giá + chọn location đó
  • Click ▼ → expand/collapse drawer

Các hàm

HàmMô tả
renderLocationDrawers(allTags)Render toàn bộ drawers
toggleLocDrawer(headerEl)Toggle expand/collapse
filterKanbanByLoc(locId, stateKey, stateLabel)Lọc kanban theo location + state
clearLocFilter()Xóa location filter

4. Kanban Columns

6 cột Kanban, mỗi cột có thể collapse/expand:

ColumnIDMàuFilter key
🚨 Quá hạnkanban-alarm#d32f2falarm
🆕 Mới treokanban-new#1565c0new
⏳ Chờ XLkanban-pending#e65100pending
🔧 Đang XLkanban-processing#f9a825processing
❌ Không đạtkanban-ng#c62828ng
✅ Hoàn tấtkanban-done#2e7d32done

Cột tự động ẩn nếu không có item và không được filter chọn.

Kanban Card

Mỗi thẻ hiển thị:

CODE
┌─────────────────────────────────────────────────────┐
│ Y-2026-00002 🚨               [🔧 Xử lý]            │  ← nếu chưa hoàn tất
│ Vật tư để không đúng nơi quy định                    │  ← mô tả (80 ký tự max)
│ 🆕 🟡 S2 👤 Trần Văn B                               │  ← badge + loại + S + người
└─────────────────────────────────────────────────────┘

Card click → mở chi tiết thẻ (openCardDetail)


5. Các hàm xử lý

HàmMô tả
renderList(filter)Render toàn bộ danh sách + kanban
loadAllTags()Load tags từ server + local, merge theo mã thẻ
loadLocalTags()Load từ localStorage('6s_tags')
saveTags()Lưu tags xuống localStorage + update dashboard count
updateDashboardCount()Cập nhật số liệu trên dashboard header
debounceFilter()Debounce filter 250ms
clearAllFilters()Xóa toàn bộ filter
getStatusBadge(t)Trả về { label, color, icon } theo trạng thái thẻ

Trạng thái thẻ (status functions)

HàmĐiều kiện
isTagCompleted(t)status='completed' hoặc eval_result='completed'/'ok'
isTagRejected(t)status='rejected' hoặc eval_result='rejected'/'ng'
isTagOverdue(t)past due_date, hoặc quá 7 ngày (Vàng) / 1 ngày (Đỏ)
isTagNew(t)status='new'/'open', không overdue, không completed
isTagWaiting(t)status='waiting'/'assigned'/'waiting_approve'/'waiting_evaluation'
isTagProcessing(t)status='in_progress'/'processing'

Audio thuyết minh

🖼️
Nghe hướng dẫnĐường dẫn minh họa: audio/06-kanban.mp3

Click play để nghe hướng dẫn bằng giọng đọc.


Screenshots

Tổng quan Kanban Board
📸 Tổng quan Kanban Board (Bấm vào ảnh để phóng to)

Chú thích: Toàn bộ màn hình danh sách thẻ dạng Kanban với các cột trạng thái

Location Drawers mở rộng
📸 Location Drawers mở rộng (Bấm vào ảnh để phóng to)

Chú thích: Location Drawers mở rộng hiển thị thống kê thẻ theo khu vực + trạng thái

Kanban 6 cột
📸 Kanban 6 cột (Bấm vào ảnh để phóng to)

Chú thích: 6 cột Kanban: Quá hạn, Mới treo, Chờ XL, Đang XL, Không đạt, Hoàn tất

Full màn hình Danh sách — zoom out
📸 Full màn hình Danh sách — zoom out (Bấm vào ảnh để phóng to)

Chú thích: Toàn bộ layout danh sách thẻ gồm location drawers + kanban board 6 cột

Drawer table mở rộng
📸 Drawer table mở rộng (Bấm vào ảnh để phóng to)

Chú thích: Location drawer mở rộng hiển thị bảng trạng thái 6 dòng

🖼️
Card detail khi clickĐường dẫn minh họa: images/danhsach/05-kanban-card-detail.png

Chú thích: Chi tiết card khi click vào trong Kanban

🖼️
Filters đang hoạt độngĐường dẫn minh họa: images/danhsach/06-filters-active.png

Chú thích: Bộ lọc S-category + search đang hoạt động