fix: 修正操作手冊選單顯示邏輯並強化內容
This commit is contained in:
@@ -309,19 +309,23 @@ export default function AuthenticatedLayout({
|
|||||||
const menuItems = useMemo(() => {
|
const menuItems = useMemo(() => {
|
||||||
return allMenuItems
|
return allMenuItems
|
||||||
.map((item) => {
|
.map((item) => {
|
||||||
// 如果有子項目,先過濾子項目
|
// 如果有子項目
|
||||||
if (item.children && item.children.length > 0) {
|
if (item.children && item.children.length > 0) {
|
||||||
const filteredChildren = item.children.filter(hasPermissionForItem);
|
const filteredChildren = item.children.filter(hasPermissionForItem);
|
||||||
// 若所有子項目都無權限,則隱藏整個群組
|
|
||||||
if (filteredChildren.length === 0) return null;
|
// 若有子項目符合權限,則顯示該群組(群組本身的權限僅作為額外過濾)
|
||||||
return { ...item, children: filteredChildren };
|
if (filteredChildren.length > 0) {
|
||||||
|
return { ...item, children: filteredChildren };
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 無子項目的單一選單,直接檢查權限
|
// 無子項目的單一選單,直接檢查權限
|
||||||
if (!hasPermissionForItem(item)) return null;
|
if (!hasPermissionForItem(item)) return null;
|
||||||
return item;
|
return item;
|
||||||
})
|
})
|
||||||
.filter((item): item is MenuItem => item !== null);
|
.filter((item): item is MenuItem => item !== null);
|
||||||
}, [can, canAny]);
|
}, [allMenuItems, hasPermissionForItem]);
|
||||||
|
|
||||||
// 初始化狀態:優先讀取 localStorage
|
// 初始化狀態:優先讀取 localStorage
|
||||||
const [expandedItems, setExpandedItems] = useState<string[]>(() => {
|
const [expandedItems, setExpandedItems] = useState<string[]>(() => {
|
||||||
|
|||||||
@@ -31,5 +31,14 @@
|
|||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> 進貨單一旦儲存,系統會立即更新庫存餘額。請務必確認數量正確。
|
> 進貨單一旦儲存,系統會立即更新庫存餘額。請務必確認數量正確。
|
||||||
|
|
||||||
|
## 4. 儀表板 (Dashboard) 功能
|
||||||
|
|
||||||
|
儀表板提供系統目前的關鍵指標與待辦事項:
|
||||||
|
- **存貨分析 KPI**:顯示目前總庫存、滯銷品項與即將過期商品。
|
||||||
|
- **待辦事項**:列出需審核的單據與待收貨的採購單。
|
||||||
|
- **熱銷/積壓排行**:即時掌握銷售趨勢與庫存壓力。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
---
|
---
|
||||||
*下一章:[庫存管理規範](inventory-management)*
|
*下一章:[採購流程說明](purchasing-workflow)*
|
||||||
Reference in New Issue
Block a user