From 2082dea4977d47618c8d7ad4dd9bb847f5cf1b17 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 28 四月 2026 09:47:14 +0800
Subject: [PATCH] 升级apppro 1.迁移档案管理功能

---
 src/pages/works.vue |  144 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 137 insertions(+), 7 deletions(-)

diff --git a/src/pages/works.vue b/src/pages/works.vue
index 41aad95..b4400c7 100644
--- a/src/pages/works.vue
+++ b/src/pages/works.vue
@@ -66,6 +66,28 @@
         </up-grid>
       </view>
     </view>
+    <!-- 浠撳偍鐗╂祦妯″潡 -->
+    <view class="common-module warehouse-logistics-module"
+          v-if="hasWarehouseLogisticsItems">
+      <view class="module-header">
+        <view class="module-title-container">
+          <text class="module-title">浠撳偍鐗╂祦</text>
+        </view>
+      </view>
+      <view class="module-content">
+        <up-grid :border="false"
+                 col="4">
+          <up-grid-item v-for="(item, index) in warehouseLogisticsItems"
+                        :key="index"
+                        @click="handleCommonItemClick(item)">
+            <view class="icon-container">
+              <image :src="item.icon" class="item-icon"></image>
+            </view>
+            <text class="item-label">{{item.label}}</text>
+          </up-grid-item>
+        </up-grid>
+      </view>
+    </view>
     <!-- 浜哄姏璧勬簮妯″潡 -->
     <view class="common-module collaboration-module"
           v-if="hasHumanResourcesItems">
@@ -242,6 +264,8 @@
         </up-grid>
       </view>
     </view>
+
+    <DownloadProgressMask />
   </view>
 </template>
 
@@ -249,6 +273,7 @@
   import { ref, onMounted, nextTick, reactive, computed } from "vue";
   import { userLoginFacotryList } from "@/api/login";
   import { getProductWorkOrderById } from "@/api/productionManagement/productionReporting";
+  import DownloadProgressMask from "@/components/DownloadProgressMask.vue";
   import modal from "@/plugins/modal";
   import useUserStore from "@/store/modules/user";
 
@@ -278,6 +303,14 @@
   // 钀ラ攢绠$悊鍔熻兘鏁版嵁
   const marketingItems = reactive([
     {
+      icon: "/static/images/icon/kehudangan.svg",
+      label: "瀹㈡埛妗f",
+    },
+    {
+      icon: "/static/images/icon/xiaoshoubaojia.svg",
+      label: "閿�鍞姤浠�",
+    },
+    {
       icon: "/static/images/icon/xiaoshoutaizhang.svg",
       label: "閿�鍞彴璐�",
     },
@@ -302,7 +335,7 @@
       label: "閲囪喘閫�璐�",
     },
     {
-      icon: "/static/images/icon/gongchuguanli.svg",
+      icon: "/static/images/icon/gongyingshangdangan.svg",
       label: "渚涘簲鍟嗘。妗�",
     },
   ]);
@@ -341,14 +374,50 @@
       icon: "/static/images/icon/fukuanliushui.svg",
       label: "浠樻娴佹按",
     },
+    {
+      icon: "/static/images/icon/shouruguanli.svg",
+      label: "鏀跺叆绠$悊",
+    },
+    {
+      icon: "/static/images/icon/zhichuguanli.svg",
+      label: "鏀嚭绠$悊",
+    },
+    {
+      icon: "/static/images/icon/jiekuanguanli.svg",
+      label: "鍊熸绠$悊",
+    },
   ]);
 
   // 妗f绠$悊鍔熻兘鏁版嵁
   const archiveManagementItems = reactive([
-  ]);
+    {
+      icon: "/static/images/icon/gongyingshangdangan.svg",
+      label: "鍊熼槄鐧昏",
+    },
+    {
+      icon: "/static/images/icon/hetongguanli.svg",
+      label: "褰掕繕鐧昏",
+    }
+  ])
 
   // 鍞悗鏈嶅姟鍔熻兘鏁版嵁
   const afterSalesServiceItems = reactive([
+    {
+      icon: "/static/images/icon/fankuidengji.svg",
+      label: "鍙嶉鐧昏",
+    },
+    {
+      icon: "/static/images/icon/shouhouchuli.svg",
+      label: "鍞悗澶勭悊",
+    },
+  ]);
+
+  // 浠撳偍鐗╂祦鍔熻兘鏁版嵁
+  const warehouseLogisticsItems = reactive([
+    {
+      icon: "/static/images/icon/xiaoshoutaizhang.svg",
+      label: "搴撳瓨绠$悊",
+    },
   ]);
 
   const humanResourcesItems = reactive([
@@ -463,6 +532,10 @@
       icon: "/static/images/icon/shengchanbaogong.svg",
       label: "鐢熶骇鎶ュ伐",
     },
+    {
+      icon: "/static/images/icon/shengchanbaogong.svg",
+      label: "鐢熶骇宸ュ崟",
+    },
     // {
     //   icon: "/static/images/icon/shengchanhesuan@2x.svg",
     //   label: "鐢熶骇鏍哥畻",
@@ -497,9 +570,19 @@
   const handleCommonItemClick = item => {
     // 鏍规嵁涓嶅悓鐨勫姛鑳介」杩涜璺宠浆
     switch (item.label) {
+      case "瀹㈡埛妗f":
+        uni.navigateTo({
+          url: "/pages/basicData/customerFile/index",
+        });
+        break;
       case "閿�鍞彴璐�":
         uni.navigateTo({
           url: "/pages/sales/salesAccount/index",
+        });
+        break;
+      case "閿�鍞姤浠�":
+        uni.navigateTo({
+          url: "/pages/sales/salesQuotation/index",
         });
         break;
       case "寮�绁ㄧ櫥璁�":
@@ -550,6 +633,21 @@
       case "浠樻娴佹按":
         uni.navigateTo({
           url: "/pages/procurementManagement/receiptPaymentHistory/index",
+        });
+        break;
+      case "鏀跺叆绠$悊":
+        uni.navigateTo({
+          url: "/pages/financialManagement/revenueManagement/index",
+        });
+        break;
+      case "鏀嚭绠$悊":
+        uni.navigateTo({
+          url: "/pages/financialManagement/expenseManagement/index",
+        });
+        break;
+      case "鍊熸绠$悊":
+        uni.navigateTo({
+          url: "/pages/financialManagement/loanManagement/index",
         });
         break;
       case "渚涘簲鍟嗗線鏉�":
@@ -687,6 +785,11 @@
           url: "/pages/productionManagement/processScheduling/index",
         });
         break;
+      case "鐢熶骇宸ュ崟":
+        uni.navigateTo({
+          url: "/pages/productionManagement/workOrder/index",
+        });
+        break;
       case "鐢熶骇鎶ュ伐":
         getcode();
         break;
@@ -808,6 +911,31 @@
       case "鍑哄巶妫�楠�":
         uni.navigateTo({
           url: "/pages/qualityManagement/finalInspection/index",
+        });
+        break;
+      case "搴撳瓨绠$悊":
+        uni.navigateTo({
+          url: "/pages/inventoryManagement/stockManagement/index",
+        });
+        break;
+      case "鍙嶉鐧昏":
+        uni.navigateTo({
+          url: "/pages/customerService/feedbackRegistration/index",
+        });
+        break;
+      case "鍞悗澶勭悊":
+        uni.navigateTo({
+          url: "/pages/customerService/afterSalesHandling/index",
+        });
+        break;
+      case "鍊熼槄鐧昏":
+        uni.navigateTo({
+          url: "/pages/fileManagement/borrow/index",
+        });
+        break;
+      case "褰掕繕鐧昏":
+        uni.navigateTo({
+          url: "/pages/fileManagement/return/index",
         });
         break;
       default:
@@ -998,6 +1126,7 @@
     // 瀹氫箟鑿滃崟閰嶇疆鏄犲皠
     const menuMapping = {
       collaboration: { target: collaborationItems, specialMapping: { "瑙勭珷鍒跺害": "瑙勭珷鍒跺害绠$悊" } },
+      purchase: { specialMapping: { "渚涘簲鍟嗘。妗�": "渚涘簲鍟嗙鐞�" } },
     };
     console.log(allowedMenuTitles)
     // 閫氱敤杩囨护鍑芥暟
@@ -1014,30 +1143,31 @@
 
     // 杩囨护鍚勪釜妯″潡
     filterArray(marketingItems);
-    filterArray(purchaseItems);
+    filterArray(purchaseItems, menuMapping.purchase.specialMapping);
     filterArray(financeManagementItems);
-    filterArray(archiveManagementItems);
-    filterArray(afterSalesServiceItems);
     filterArray(collaborationItems, menuMapping.collaboration.specialMapping);
     filterArray(safetyItems);
     filterArray(humanResourcesItems);
+    filterArray(warehouseLogisticsItems);
     filterArray(qualityItems);
     filterArray(productionItems);
     filterArray(equipmentItems);
+    filterArray(archiveManagementItems);
   };
 
   // 妫�鏌ユā鍧楁槸鍚︽湁鑿滃崟椤归渶瑕佹樉绀�
   const hasMarketingItems = computed(() => marketingItems.length > 0);
   const hasPurchaseItems = computed(() => purchaseItems.length > 0);
   const hasFinanceManagementItems = computed(() => financeManagementItems.length > 0);
-  const hasArchiveManagementItems = computed(() => true);
-  const hasAfterSalesServiceItems = computed(() => true);
+  const hasAfterSalesServiceItems = computed(() => afterSalesServiceItems.length > 0);
   const hasCollaborationItems = computed(() => collaborationItems.length > 0);
   const hasSafetyItems = computed(() => safetyItems.length > 0);
   const hasQualityItems = computed(() => qualityItems.length > 0);
   const hasHumanResourcesItems = computed(() => humanResourcesItems.length > 0);
+  const hasWarehouseLogisticsItems = computed(() => warehouseLogisticsItems.length > 0);
   const hasProductionItems = computed(() => productionItems.length > 0);
   const hasEquipmentItems = computed(() => equipmentItems.length > 0);
+  const hasArchiveManagementItems = computed(() => archiveManagementItems.length > 0);
 
   onMounted(() => {
     // 姣忔杩涘叆棣栭〉閮藉己鍒跺埛鏂扮敤鎴蜂俊鎭拰璺敱鏉冮檺锛屼笉鍋氭湰鍦扮紦瀛樺垽鏂�

--
Gitblit v1.9.3