From fdd158306bf6dc3584f5110a385323f4a8dfb463 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 02 九月 2026 14:25:10 +0800
Subject: [PATCH] feat(wms): 重构仓库管理系统并优化图表显示
---
src/views/dashboard/bagCodeHome/modules/shortcuts.vue | 98 ++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 81 insertions(+), 17 deletions(-)
diff --git a/src/views/dashboard/bagCodeHome/modules/shortcuts.vue b/src/views/dashboard/bagCodeHome/modules/shortcuts.vue
index bac404f..e257af2 100644
--- a/src/views/dashboard/bagCodeHome/modules/shortcuts.vue
+++ b/src/views/dashboard/bagCodeHome/modules/shortcuts.vue
@@ -9,12 +9,74 @@
const router = useRouter();
-/** 蹇嵎鍏ュ彛鍒楄〃锛屾寜涓氬姟鍩熺簿绠�涓� 4 涓牳蹇冨叆鍙� */
-const shortcuts = [
- { bgColor: '#409EFF', icon: 'lucide:package', name: '鍝佺绠$悊', routeName: 'MdmItem' },
- { bgColor: '#E6A23C', icon: 'lucide:folder-tree', name: '鍝佺鍒嗙被', routeName: 'MesMdItemType' },
- { bgColor: '#f59e0b', icon: 'lucide:layers', name: '鎵规鐢熶骇', routeName: 'MesProBatch' },
- { bgColor: '#ec4899', icon: 'lucide:scan-barcode', name: '璧嬬爜绠$悊', routeName: 'MesProBagCode' },
+interface Shortcut {
+ icon: string;
+ name: string;
+ routeName: string;
+}
+
+interface ShortcutGroup {
+ title: string;
+ items: Shortcut[];
+}
+
+/** 鎸変笟鍔″煙鍒嗙粍鐨勫揩鎹峰叆鍙� */
+const groups: ShortcutGroup[] = [
+ {
+ title: '鍩虹鏁版嵁',
+ items: [
+ { icon: 'lucide:package', name: '鍝佺绠$悊', routeName: 'MdmItem' },
+ { icon: 'lucide:folder-tree', name: '鍝佺鍒嗙被', routeName: 'MesMdItemType' },
+ { icon: 'lucide:ruler', name: '璁¢噺鍗曚綅', routeName: 'MdmUnit' },
+ ],
+ },
+ {
+ title: '涓�琚嬩竴鐮佺敓浜�',
+ items: [
+ { icon: 'lucide:factory', name: '浜х嚎缁存姢', routeName: 'MesProLine' },
+ { icon: 'lucide:layers', name: '鎵规鐢熶骇', routeName: 'MesProBatch' },
+ { icon: 'lucide:scan-barcode', name: '璧嬬爜绠$悊', routeName: 'MesProBagCode' },
+ { icon: 'lucide:grid-2x2', name: '鎵樼洏鐮�', routeName: 'MesProPallet' },
+ { icon: 'lucide:scan-line', name: '鎵爜鍏ュ簱', routeName: 'MesProScanIn' },
+ ],
+ },
+ {
+ title: '鍑哄簱娴侀��',
+ items: [
+ { icon: 'lucide:send', name: '鍙戣揣閫氱煡', routeName: 'MesWmSalesNotice' },
+ { icon: 'lucide:truck', name: '閿�鍞嚭搴�', routeName: 'MesWmProductSales' },
+ { icon: 'lucide:rotate-ccw', name: '閿�鍞��璐�', routeName: 'MesWmReturnSales' },
+ ],
+ },
+ {
+ title: '闃蹭吉闃茬獪璐�',
+ items: [
+ { icon: 'lucide:shield-alert', name: '绐滆揣棰勮', routeName: 'MesTraceCrossRegion' },
+ { icon: 'lucide:map-pin', name: '鎵爜鍦扮悊鍒嗗竷', routeName: 'MesConsumerScanDistribution' },
+ { icon: 'lucide:database-check', name: '瀹屾暣鎬ф牎楠�', routeName: 'MesTraceIntegrity' },
+ ],
+ },
+ {
+ title: '婧簮鍒嗘瀽',
+ items: [{ icon: 'lucide:scan-line', name: '娑堣垂鑰呮壂鐮佺粺璁�', routeName: 'MesConsumerScanStatistics' }],
+ },
+ {
+ title: '浠撳偍鐗╂祦',
+ items: [
+ { icon: 'lucide:warehouse', name: '浠撳簱璁剧疆', routeName: 'MesWmWarehouse' },
+ { icon: 'lucide:boxes', name: '搴撳瓨鐜版湁閲�', routeName: 'MesWmMaterialStock' },
+ { icon: 'lucide:bell-alert', name: '搴撳瓨棰勮', routeName: 'MesWmStockWarning' },
+ { icon: 'lucide:move-right', name: '杞Щ璋冩嫧', routeName: 'MesWmTransfer' },
+ ],
+ },
+ {
+ title: '璐ㄩ噺绠$悊',
+ items: [
+ { icon: 'lucide:list-tree', name: '鎵规杩芥函', routeName: 'BatchTrace' },
+ { icon: 'lucide:shield-x', name: '涓嶅悎鏍煎搧', routeName: 'MesQcNcr' },
+ { icon: 'lucide:bean', name: '绉嶅瓙璐ㄦ', routeName: 'MesQcSeedQuality' },
+ ],
+ },
];
/** 璺宠浆鍒扮洰鏍囬〉闈紙鎸夎矾鐢� name锛屾湭鍔犺浇鏃舵彁绀猴級 */
@@ -30,18 +92,20 @@
<template>
<Card title="蹇嵎鍏ュ彛" class="h-full">
<Row :gutter="16">
- <Col v-for="item in shortcuts" :key="item.name" :lg="6" :md="8" :sm="12" :xs="12" class="mb-4">
- <div
- class="hover:bg-accent flex cursor-pointer flex-col items-center gap-2 rounded-lg py-3 transition-all hover:-translate-y-0.5"
- @click="handleNavigate(item.routeName)"
- >
- <div
- class="flex size-12 items-center justify-center rounded-xl text-white"
- :style="{ background: item.bgColor }"
- >
- <IconifyIcon class="size-6" :icon="item.icon" />
+ <Col v-for="group in groups" :key="group.title" :lg="8" :md="12" :sm="24" :xs="24" class="mb-4">
+ <div class="rounded-xl border border-[rgba(16,185,129,0.16)] bg-[rgba(255,255,255,0.55)] p-3 backdrop-blur">
+ <div class="text-muted-foreground mb-2 text-xs font-medium">{{ group.title }}</div>
+ <div class="flex flex-wrap gap-2">
+ <div
+ v-for="item in group.items"
+ :key="item.name"
+ class="flex cursor-pointer items-center gap-1.5 rounded-lg border border-[rgba(16,185,129,0.22)] px-2 py-1.5 text-sm transition-colors hover:bg-[rgba(16,185,129,0.12)]"
+ @click="handleNavigate(item.routeName)"
+ >
+ <IconifyIcon class="size-4 text-[#0d9488]" :icon="item.icon" />
+ <span>{{ item.name }}</span>
+ </div>
</div>
- <span class="text-sm">{{ item.name }}</span>
</div>
</Col>
</Row>
--
Gitblit v1.9.3