From e7d45b61ad438bb96c0d0d7f17923f024a1e6aaf Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 18 三月 2026 14:05:29 +0800
Subject: [PATCH] 进销存升级app 1.工作台图标替换

---
 src/pages/indexItem.vue |  524 +++++++++++++---------------------------------------------
 1 files changed, 117 insertions(+), 407 deletions(-)

diff --git a/src/pages/indexItem.vue b/src/pages/indexItem.vue
index c2b6633..29ef495 100644
--- a/src/pages/indexItem.vue
+++ b/src/pages/indexItem.vue
@@ -14,11 +14,8 @@
           <up-grid-item v-for="(item, index) in commonItems"
                         :key="index"
                         @click="handleCommonItemClick(item)">
-            <view class="icon-container"
-                  :style="{ background: item.bgColor }">
-              <up-icon :name="item.icon"
-                       :size="58"
-                       color="#ffffff"></up-icon>
+            <view class="icon-container">
+              <image :src="item.icon" class="item-icon"></image>
             </view>
             <text class="item-label">{{item.label}}</text>
           </up-grid-item>
@@ -35,331 +32,94 @@
   import PageHeader from "@/components/PageHeader.vue";
 
   const userStore = useUserStore();
-  const kaoqin = reactive([
-    {
-      icon: "/static/images/icon/gongchuguanli@2x.png",
-      label: "鍏嚭绠$悊",
-    },
-    {
-      icon: "/static/images/icon/qingjiaguanli@2x.png",
-      label: "璇峰亣绠$悊",
-    },
-    {
-      icon: "/static/images/icon/chuchaiguanli@2x.png",
-      label: "鍑哄樊绠$悊",
-    },
-  ]);
-  const caiwu = reactive([
-    {
-      icon: "/static/images/icon/baoxiaoguanli.png",
-      label: "鎶ラ攢绠$悊",
-    },
-    {
-      icon: "/static/images/icon/caigouguanli.png",
-      label: "閲囪喘瀹℃壒",
-    },
-    {
-      icon: "/static/images/icon/baojiaguanli.png",
-      label: "鎶ヤ环瀹℃壒",
-    },
-    {
-      icon: "/static/images/icon/chukuguanli@2x.png",
-      label: "鍙戣揣瀹℃壒",
-    },
-  ]);
-  // 鑰冨嫟璐㈠姟鍚堝苟鑿滃崟锛堣�冨嫟3涓� + 璐㈠姟4涓� = 7涓級
-  const kaoqinCaiwu = reactive([
-    {
-      icon: "/static/images/icon/gongchuguanli@2x.png",
-      label: "鍏嚭绠$悊",
-    },
-    {
-      icon: "/static/images/icon/qingjiaguanli@2x.png",
-      label: "璇峰亣绠$悊",
-    },
-    {
-      icon: "/static/images/icon/chuchaiguanli@2x.png",
-      label: "鍑哄樊绠$悊",
-    },
-    {
-      icon: "/static/images/icon/baoxiaoguanli.png",
-      label: "鎶ラ攢绠$悊",
-    },
-    {
-      icon: "/static/images/icon/caigouguanli.png",
-      label: "閲囪喘瀹℃壒",
-    },
-    {
-      icon: "/static/images/icon/baojiaguanli.png",
-      label: "鎶ヤ环瀹℃壒",
-    },
-    {
-      icon: "/static/images/icon/chukuguanli@2x.png",
-      label: "鍙戣揣瀹℃壒",
-    },
-  ]);
-
-  const huiyi = reactive([
-    {
-      icon: "/static/images/icon/huiyishezhi@2x.png",
-      label: "浼氳璁剧疆",
-    },
-    {
-      icon: "/static/images/icon/huiyiliebiao@2x.png",
-      label: "浼氳鍒楄〃",
-    },
-    {
-      icon: "/static/images/icon/huiyishenqing@2x.png",
-      label: "浼氳鐢宠",
-    },
-    {
-      icon: "/static/images/icon/huiyishenpi@2x.png",
-      label: "浼氳瀹℃壒",
-    },
-    {
-      icon: "/static/images/icon/huiyifabu@2x.png",
-      label: "浼氳鍙戝竷",
-    },
-    {
-      icon: "/static/images/icon/huiyizongjie@2x.png",
-      label: "浼氳鎬荤粨",
-    },
-    {
-      icon: "/static/images/icon/huiyikanban@2x.png",
-      label: "浼氳鐪嬫澘",
-    },
-  ]);
+  const operationType = ref("");
   const commonItems = ref([]);
+
+  // 璺敱鏄犲皠閰嶇疆
+  const routeMapping = {
+    "閿�鍞彴璐�": "/pages/sales/salesAccount/index",
+    "寮�绁ㄧ櫥璁�": "/pages/sales/invoicingRegistration/index",
+    "寮�绁ㄥ彴璐�": "/pages/sales/invoiceLedger/index",
+    "鍥炴鐧昏": "/pages/sales/receiptPayment/index",
+    "鍥炴娴佹按": "/pages/sales/receiptPaymentHistory/index",
+    "瀹㈡埛寰�鏉�": "/pages/sales/receiptPaymentLedger/index",
+    "閲囪喘鍙拌处": "/pages/procurementManagement/procurementLedger/index",
+    "鏉ョエ鐧昏": "/pages/procurementManagement/invoiceEntry/index",
+    "鏉ョエ鍙拌处": "/pages/procurementManagement/procurementInvoiceLedger/index",
+    "浠樻鐧昏": "/pages/procurementManagement/paymentEntry/index",
+    "浠樻娴佹按": "/pages/procurementManagement/receiptPaymentHistory/index",
+    "渚涘簲鍟嗗線鏉�": "/pages/procurementManagement/paymentLedger/index",
+    "鍏嚭绠$悊": "/pages/cooperativeOffice/collaborativeApproval/index1",
+    "璇峰亣绠$悊": "/pages/cooperativeOffice/collaborativeApproval/index2",
+    "鍑哄樊绠$悊": "/pages/cooperativeOffice/collaborativeApproval/index3",
+    "鎶ラ攢绠$悊": "/pages/cooperativeOffice/collaborativeApproval/index4",
+    "閲囪喘瀹℃壒": "/pages/cooperativeOffice/collaborativeApproval/index5",
+    "鎶ヤ环瀹℃壒": "/pages/cooperativeOffice/collaborativeApproval/index6",
+    "鍙戣揣瀹℃壒": "/pages/cooperativeOffice/collaborativeApproval/index7",
+    "鍗忓悓瀹℃壒": "/pages/cooperativeOffice/collaborativeApproval/index",
+    "浼氳璁剧疆": "/pages/managementMeetings/meetingSettings/index",
+    "浼氳鍒楄〃": "/pages/managementMeetings/meetingList/index",
+    "浼氳鐢宠": "/pages/managementMeetings/meetApplication/index",
+    "浼氳瀹℃壒": "/pages/managementMeetings/meetExamine/index",
+    "浼氳鍙戝竷": "/pages/managementMeetings/meetPublish/index",
+    "浼氳鎬荤粨": "/pages/managementMeetings/meetSummary/index",
+    "浼氳鐪嬫澘": "/pages/managementMeetings/meetingBoard/index",
+    "閫氱煡鍏憡": "/pages/cooperativeOffice/noticeManagement/index",
+    "鐭ヨ瘑搴�": "/pages/managementMeetings/knowledgeBase/index",
+    "鐢ㄥ嵃绠$悊": "/pages/managementMeetings/sealManagement/index",
+    "瑙勭珷鍒跺害": "/pages/managementMeetings/rulesRegulationsManagement/index",
+    "瀹㈡埛鎷滆": "/pages/cooperativeOffice/clientVisit/index",
+    "鐢熶骇璁㈠崟": "/pages/productionManagement/productionOrder/index",
+    "鐢熶骇娲惧伐": "/pages/productionManagement/productionDispatching/index",
+    "宸ュ簭鎺掍骇": "/pages/productionManagement/processScheduling/index",
+    "鐢熶骇鏍哥畻": "/pages/productionManagement/productionAccounting/index",
+    "璁惧鍙拌处": "/pages/equipmentManagement/ledger/index",
+    "璁惧鎶ヤ慨": "/pages/equipmentManagement/repair/index",
+    "璁惧淇濆吇": "/pages/equipmentManagement/upkeep/index",
+    "璁惧宸℃": "/pages/inspectionUpload/index",
+    "鍒嗘瀽杩芥函": "/pages/equipmentManagement/faultAnalysis/index",
+    "鏅鸿兘娲惧崟": "/pages/equipmentManagement/smartDispatch/index",
+    "浣滀笟鎸囧": "/pages/equipmentManagement/sop/index",
+    "缁撴灉楠岃瘉": "/pages/equipmentManagement/verification/index",
+  };
+
+  // 鑿滃崟閰嶇疆
+  const menuConfig = {
+    "鑰冨嫟绠$悊": [
+      { icon: "/static/images/icon/gongchuguanli.svg", label: "鍏嚭绠$悊" },
+      { icon: "/static/images/icon/qingjiaguanli.svg", label: "璇峰亣绠$悊" },
+      { icon: "/static/images/icon/chuchaiguanli.svg", label: "鍑哄樊绠$悊" },
+    ],
+    "浼氳绠$悊": [
+      { icon: "/static/images/icon/huiyishezhi.svg", label: "浼氳璁剧疆" },
+      { icon: "/static/images/icon/huiyiliebiao.svg", label: "浼氳鍒楄〃" },
+      { icon: "/static/images/icon/huiyishenqing.svg", label: "浼氳鐢宠" },
+      { icon: "/static/images/icon/huiyishenpi.svg", label: "浼氳瀹℃壒" },
+      { icon: "/static/images/icon/huiyifabu.svg", label: "浼氳鍙戝竷" },
+      { icon: "/static/images/icon/huiyizongjie.svg", label: "浼氳鎬荤粨" },
+      { icon: "/static/images/icon/huiyikanban.svg", label: "浼氳鐪嬫澘" },
+    ],
+    "鍗忓悓瀹℃壒": [
+      { icon: "/static/images/icon/gongchuguanli.svg", label: "鍏嚭绠$悊" },
+      { icon: "/static/images/icon/qingjiaguanli.svg", label: "璇峰亣绠$悊" },
+      { icon: "/static/images/icon/chuchaiguanli.svg", label: "鍑哄樊绠$悊" },
+      { icon: "/static/images/icon/baoxiaoguanli.svg", label: "鎶ラ攢绠$悊" },
+      { icon: "/static/images/icon/caigouguanli.svg", label: "閲囪喘瀹℃壒" },
+      { icon: "/static/images/icon/baojiaguanli.svg", label: "鎶ヤ环瀹℃壒" },
+      { icon: "/static/images/icon/chukuguanli.svg", label: "鍙戣揣瀹℃壒" },
+    ],
+  };
+
   // 澶勭悊甯哥敤鍔熻兘鐐瑰嚮
   const handleCommonItemClick = item => {
-    // 鏍规嵁涓嶅悓鐨勫姛鑳介」杩涜璺宠浆
-    switch (item.label) {
-      case "閿�鍞彴璐�":
-        uni.navigateTo({
-          url: "/pages/sales/salesAccount/index",
-        });
-        break;
-      case "寮�绁ㄧ櫥璁�":
-        uni.navigateTo({
-          url: "/pages/sales/invoicingRegistration/index",
-        });
-        break;
-      case "寮�绁ㄥ彴璐�":
-        uni.navigateTo({
-          url: "/pages/sales/invoiceLedger/index",
-        });
-        break;
-      case "鍥炴鐧昏":
-        uni.navigateTo({
-          url: "/pages/sales/receiptPayment/index",
-        });
-        break;
-      case "鍥炴娴佹按":
-        uni.navigateTo({
-          url: "/pages/sales/receiptPaymentHistory/index",
-        });
-        break;
-      case "瀹㈡埛寰�鏉�":
-        uni.navigateTo({
-          url: "/pages/sales/receiptPaymentLedger/index",
-        });
-        break;
-      case "閲囪喘鍙拌处":
-        uni.navigateTo({
-          url: "/pages/procurementManagement/procurementLedger/index",
-        });
-        break;
-      case "鏉ョエ鐧昏":
-        uni.navigateTo({
-          url: "/pages/procurementManagement/invoiceEntry/index",
-        });
-        break;
-      case "鏉ョエ鍙拌处":
-        uni.navigateTo({
-          url: "/pages/procurementManagement/procurementInvoiceLedger/index",
-        });
-        break;
-      case "浠樻鐧昏":
-        uni.navigateTo({
-          url: "/pages/procurementManagement/paymentEntry/index",
-        });
-        break;
-      case "浠樻娴佹按":
-        uni.navigateTo({
-          url: "/pages/procurementManagement/receiptPaymentHistory/index",
-        });
-        break;
-      case "渚涘簲鍟嗗線鏉�":
-        uni.navigateTo({
-          url: "/pages/procurementManagement/paymentLedger/index",
-        });
-        break;
-      case "鍏嚭绠$悊":
-        uni.navigateTo({
-          url: "/pages/cooperativeOffice/collaborativeApproval/index1",
-        });
-        break;
-      case "璇峰亣绠$悊":
-        uni.navigateTo({
-          url: "/pages/cooperativeOffice/collaborativeApproval/index2",
-        });
-        break;
-      case "鍑哄樊绠$悊":
-        uni.navigateTo({
-          url: "/pages/cooperativeOffice/collaborativeApproval/index3",
-        });
-        break;
-      case "鎶ラ攢绠$悊":
-        uni.navigateTo({
-          url: "/pages/cooperativeOffice/collaborativeApproval/index4",
-        });
-        break;
-      case "閲囪喘瀹℃壒":
-        uni.navigateTo({
-          url: "/pages/cooperativeOffice/collaborativeApproval/index5",
-        });
-        break;
-      case "鎶ヤ环瀹℃壒":
-        uni.navigateTo({
-          url: "/pages/cooperativeOffice/collaborativeApproval/index6",
-        });
-        break;
-      case "鍙戣揣瀹℃壒":
-        uni.navigateTo({
-          url: "/pages/cooperativeOffice/collaborativeApproval/index7",
-        });
-        break;
-      case "浼氳璁剧疆":
-        uni.navigateTo({
-          url: "/pages/managementMeetings/meetingSettings/index",
-        });
-        break;
-      case "浼氳鍒楄〃":
-        uni.navigateTo({
-          url: "/pages/managementMeetings/meetingList/index",
-        });
-        break;
-      case "浼氳鐢宠":
-        uni.navigateTo({
-          url: "/pages/managementMeetings/meetApplication/index",
-        });
-        break;
-      case "浼氳瀹℃壒":
-        uni.navigateTo({
-          url: "/pages/managementMeetings/meetExamine/index",
-        });
-        break;
-      case "浼氳鍙戝竷":
-        uni.navigateTo({
-          url: "/pages/managementMeetings/meetPublish/index",
-        });
-        break;
-      case "浼氳鎬荤粨":
-        uni.navigateTo({
-          url: "/pages/managementMeetings/meetSummary/index",
-        });
-        break;
-      case "浼氳鐪嬫澘":
-        uni.navigateTo({
-          url: "/pages/managementMeetings/meetingBoard/index",
-        });
-        break;
-      case "閫氱煡鍏憡":
-        uni.navigateTo({
-          url: "/pages/cooperativeOffice/noticeManagement/index",
-        });
-        break;
-      case "鐭ヨ瘑搴�":
-        uni.navigateTo({
-          url: "/pages/managementMeetings/knowledgeBase/index",
-        });
-        break;
-      case "鐢ㄥ嵃绠$悊":
-        uni.navigateTo({
-          url: "/pages/managementMeetings/sealManagement/index",
-        });
-        break;
-      case "瑙勭珷鍒跺害":
-        uni.navigateTo({
-          url: "/pages/managementMeetings/rulesRegulationsManagement/index",
-        });
-        break;
-
-      case "鍗忓悓瀹℃壒":
-        uni.navigateTo({
-          url: "/pages/cooperativeOffice/collaborativeApproval/index",
-        });
-        break;
-      case "瀹㈡埛鎷滆":
-        uni.navigateTo({
-          url: "/pages/cooperativeOffice/clientVisit/index",
-        });
-        break;
-      case "鐢熶骇璁㈠崟":
-        uni.navigateTo({
-          url: "/pages/productionManagement/productionOrder/index",
-        });
-        break;
-      case "鐢熶骇娲惧伐":
-        uni.navigateTo({
-          url: "/pages/productionManagement/productionDispatching/index",
-        });
-        break;
-      case "宸ュ簭鎺掍骇":
-        uni.navigateTo({
-          url: "/pages/productionManagement/processScheduling/index",
-        });
-        break;
-      case "鐢熶骇鏍哥畻":
-        uni.navigateTo({
-          url: "/pages/productionManagement/productionAccounting/index",
-        });
-        break;
-      case "璁惧鍙拌处":
-        uni.navigateTo({
-          url: "/pages/equipmentManagement/ledger/index",
-        });
-        break;
-      case "璁惧鎶ヤ慨":
-        uni.navigateTo({
-          url: "/pages/equipmentManagement/repair/index",
-        });
-        break;
-      case "璁惧淇濆吇":
-        uni.navigateTo({
-          url: "/pages/equipmentManagement/upkeep/index",
-        });
-        break;
-      case "璁惧宸℃":
-        uni.navigateTo({
-          url: "/pages/inspectionUpload/index",
-        });
-        break;
-      case "鍒嗘瀽杩芥函":
-        uni.navigateTo({
-          url: "/pages/equipmentManagement/faultAnalysis/index",
-        });
-        break;
-      case "鏅鸿兘娲惧崟":
-        uni.navigateTo({
-          url: "/pages/equipmentManagement/smartDispatch/index",
-        });
-        break;
-      case "浣滀笟鎸囧":
-        uni.navigateTo({
-          url: "/pages/equipmentManagement/sop/index",
-        });
-        break;
-      case "缁撴灉楠岃瘉":
-        uni.navigateTo({
-          url: "/pages/equipmentManagement/verification/index",
-        });
-        break;
-      default:
-        uni.showToast({
-          title: `鐐瑰嚮浜�${item.label}`,
-          icon: "none",
-        });
+    const url = routeMapping[item.label];
+    if (url) {
+      uni.navigateTo({ url });
+    } else {
+      uni.showToast({
+        title: `鐐瑰嚮浜�${item.label}`,
+        icon: "none",
+      });
     }
   };
   // 杩斿洖涓婁竴椤�
@@ -371,27 +131,14 @@
     // 璁剧疆鐢ㄦ埛淇℃伅
     userStore.getInfo();
   });
-  const operationType = ref("");
   onLoad(options => {
     if (options.label) {
-      // 澶勭悊 URL 鍙傛暟鍙兘鍖呭惈鍏朵粬鏌ヨ鍙傛暟鐨勬儏鍐碉紙濡傦細鍗忓悓瀹℃壒?approveType=6锛�
-      // 鍙彁鍙� label 鍙傛暟鐨勫�硷紝鍘婚櫎鍙兘闄勫姞鐨勬煡璇㈠弬鏁�
       let labelValue = options.label;
-      // 濡傛灉 label 鍖呭惈 ? 绗﹀彿锛屽彧鍙� ? 涔嬪墠鐨勯儴鍒�
       if (labelValue.includes("?")) {
         labelValue = labelValue.split("?")[0];
       }
       operationType.value = labelValue;
-      if (operationType.value === "鑰冨嫟绠$悊") {
-        commonItems.value = kaoqin;
-      } else if (operationType.value === "浼氳绠$悊") {
-        commonItems.value = huiyi;
-      } else if (operationType.value === "璐㈠姟绠$悊") {
-        commonItems.value = caiwu;
-      } else if (operationType.value === "鍗忓悓瀹℃壒") {
-        commonItems.value = kaoqinCaiwu;
-        operationType.value = "鍗忓悓瀹℃壒";
-      }
+      commonItems.value = menuConfig[labelValue] || [];
     }
     console.log(operationType.value);
     console.log(commonItems.value);
@@ -487,7 +234,7 @@
   .bg-img {
     width: 100%;
     height: 8.75rem;
-    background-image: url("../static/images/banner/backview.png");
+    background-image: url("../static/images/banner/backview.svg");
     background-size: cover;
     border-radius: 0.75rem;
     position: relative;
@@ -810,68 +557,27 @@
   }
 
   .icon-container {
-    width: 3.25rem;
-    height: 3.25rem;
-    border-radius: 0.75rem;
+    width: 36px;
+    height: 36px;
+    border-radius: 12px;
     display: flex;
     align-items: center;
     justify-content: center;
     margin-bottom: 0.375rem;
-    box-shadow: 0 0.1875rem 0.75rem rgba(0, 0, 0, 0.12);
     transition: all 0.2s ease;
     position: relative;
     overflow: hidden;
     animation: fadeInScale 0.5s ease both;
+  }
 
-    &::before {
-      content: "";
-      position: absolute;
-      top: 0;
-      left: 0;
-      right: 0;
-      bottom: 0;
-      background: linear-gradient(
-        135deg,
-        rgba(255, 255, 255, 0.1) 0%,
-        transparent 50%,
-        rgba(255, 255, 255, 0.05) 100%
-      );
-      opacity: 0;
-      transition: opacity 0.3s ease;
-    }
+  .item-icon {
+    width: 36px;
+    height: 36px;
+    display: block;
+  }
 
-    &::after {
-      content: "";
-      position: absolute;
-      top: 0;
-      left: 0;
-      right: 0;
-      bottom: 0;
-      border-radius: 0.75rem;
-      background: linear-gradient(
-        45deg,
-        transparent,
-        rgba(255, 255, 255, 0.2),
-        transparent
-      );
-      opacity: 0;
-      transition: opacity 0.3s ease;
-    }
-
-    &:hover {
-      transform: translateY(-0.1875rem) scale(1.02);
-      box-shadow: 0 0.5rem 1.5625rem rgba(0, 0, 0, 0.18);
-
-      &::before,
-      &::after {
-        opacity: 1;
-      }
-    }
-
-    &:active {
-      transform: scale(0.97);
-      box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.18);
-    }
+  .icon-container:active {
+    transform: scale(0.94);
   }
 
   .item-label {
@@ -1080,32 +786,36 @@
   }
 
   .icon-container {
-    width: 3.25rem;
-    height: 3.25rem;
-    border-radius: 0.75rem;
+    width: 36px;
+    height: 36px;
+    border-radius: 12px;
     display: flex;
     align-items: center;
     justify-content: center;
     margin-bottom: 0.375rem;
-    box-shadow: 0 0.1875rem 0.75rem rgba(0, 0, 0, 0.12);
     transition: all 0.2s ease;
     position: relative;
     overflow: hidden;
     animation: fadeInScale 0.5s ease both;
+  }
 
-    &:hover {
-      transform: translateY(-0.1875rem) scale(1.02);
-      box-shadow: 0 0.5rem 1.5625rem rgba(0, 0, 0, 0.18);
-    }
+  .item-icon {
+    width: 36px;
+    height: 36px;
+    display: block;
+  }
 
-    &:active {
-      transform: scale(0.97);
-      box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.18);
-    }
+  .icon-container:active {
+    transform: scale(0.97);
   }
 
   .item-label {
-    font-size: 0.8125rem;
+    font-size: 12px;
+    color: #555555;
+    text-align: center;
+    display: block;
+    line-height: 1.4;
+    font-weight: 500;
     margin-top: 0.25rem;
     margin-bottom: 0.625rem;
   }

--
Gitblit v1.9.3