zhangwencui
2026-03-04 e9ecd350234f21349eaea8901f64ff239f76c65c
src/pages/index.vue
@@ -137,6 +137,31 @@
        </up-grid>
      </view>
    </view>
    <!-- 质量管理模块 -->
    <view class="common-module collaboration-module"
          v-if="hasQualityItems">
      <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 qualityItems"
                        :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>
            <text class="item-label">{{item.label}}</text>
          </up-grid-item>
        </up-grid>
      </view>
    </view>
    <!-- 人力资源模块 -->
    <view class="common-module collaboration-module"
          v-if="hasHumanResourcesItems">
@@ -309,6 +334,24 @@
      icon: "/static/images/icon/caigoutaizhang@2x.png",
      label: "人员薪资",
    },
    {
      icon: "/static/images/icon/caigoutaizhang@2x.png",
      label: "合同管理",
    },
  ]);
  const qualityItems = reactive([
    {
      icon: "/static/images/icon/caigoutaizhang@2x.png",
      label: "原材料检验",
    },
    {
      icon: "/static/images/icon/caigoutaizhang@2x.png",
      label: "过程检验",
    },
    {
      icon: "/static/images/icon/caigoutaizhang@2x.png",
      label: "出厂检验",
    },
  ]);
  const safetyItems = reactive([
    {
@@ -425,7 +468,7 @@
    },
    {
      icon: "/static/images/icon/xunjianshangchuan@2x.png",
      label: "巡检上传",
      label: "设备巡检",
    },
  ]);
@@ -641,7 +684,7 @@
          url: "/pages/equipmentManagement/upkeep/index",
        });
        break;
      case "巡检上传":
      case "设备巡检":
        uni.navigateTo({
          url: "/pages/inspectionUpload/index",
        });
@@ -714,6 +757,26 @@
      case "人员薪资":
        uni.navigateTo({
          url: "/pages/humanResources/monthlyStatistics/index",
        });
        break;
      case "合同管理":
        uni.navigateTo({
          url: "/pages/humanResources/contractManagement/index",
        });
        break;
      case "原材料检验":
        uni.navigateTo({
          url: "/pages/qualityManagement/materialInspection/index",
        });
        break;
      case "过程检验":
        uni.navigateTo({
          url: "/pages/qualityManagement/processInspection/index",
        });
        break;
      case "出厂检验":
        uni.navigateTo({
          url: "/pages/qualityManagement/finalInspection/index",
        });
        break;
      default:
@@ -818,8 +881,6 @@
            return;
          }
        }
        console.log(orderRow, "orderRow======@@@@@@@@");
        // 扫码成功后跳转到生产报工页面,并传递orderRow参数
        uni.navigateTo({
          url: `/pages/productionManagement/productionReport/index?orderRow=${orderRow}`,
@@ -904,26 +965,6 @@
    };
    collectMenuTitles(routers);
    console.log("允许的菜单标题:", Array.from(allowedMenuTitles));
    console.log(
      "过滤前 - 营销管理:",
      marketingItems.length,
      "采购管理:",
      purchaseItems.length,
      "协同办公:",
      collaborationItems.length
    );
    console.log(
      "过滤前 - 安全生产:",
      safetyItems.length,
      "人力资源:",
      humanResourcesItems.length,
      "生产管控:",
      productionItems.length,
      "设备管理:",
      equipmentItems.length
    );
    // 过滤营销管理菜单
    const originalMarketing = [
      { icon: "/static/images/icon/xiaoshoutaizhang@2x.png", label: "销售台账" },
@@ -1003,6 +1044,7 @@
    const originalHumanResources = [
      { icon: "/static/images/icon/caigoutaizhang@2x.png", label: "打卡签到" },
      { icon: "/static/images/icon/caigoutaizhang@2x.png", label: "人员薪资" },
      { icon: "/static/images/icon/caigoutaizhang@2x.png", label: "合同管理" },
    ];
    const filteredHumanResources = originalHumanResources.filter(item => {
      return allowedMenuTitles.has(item.label);
@@ -1012,6 +1054,17 @@
      humanResourcesItems.length,
      ...filteredHumanResources
    );
    // 过滤质量管理菜单
    const originalQuality = [
      { icon: "/static/images/icon/caigoutaizhang@2x.png", label: "原材料检验" },
      { icon: "/static/images/icon/caigoutaizhang@2x.png", label: "过程检验" },
      { icon: "/static/images/icon/caigoutaizhang@2x.png", label: "出厂检验" },
    ];
    const filteredQuality = originalQuality.filter(item => {
      return allowedMenuTitles.has(item.label);
    });
    qualityItems.splice(0, qualityItems.length, ...filteredQuality);
    // 过滤生产管控菜单
    const originalProduction = [
@@ -1031,35 +1084,12 @@
      { icon: "/static/images/icon/shbeibaoxiu@2x.png", label: "运行管理" },
      { icon: "/static/images/icon/shbeibaoxiu@2x.png", label: "设备报修" },
      { icon: "/static/images/icon/shbeibaoyang@2x.png", label: "设备保养" },
      { icon: "/static/images/icon/xunjianshangchuan@2x.png", label: "巡检上传" },
      { icon: "/static/images/icon/xunjianshangchuan@2x.png", label: "设备巡检" },
    ];
    const filteredEquipment = originalEquipment.filter(item => {
      return allowedMenuTitles.has(item.label);
    });
    equipmentItems.splice(0, equipmentItems.length, ...filteredEquipment);
    console.log(
      "过滤后 - 营销管理:",
      marketingItems.length,
      "采购管理:",
      purchaseItems.length,
      "协同办公:",
      collaborationItems.length
    );
    console.log(
      "过滤后 - 安全生产:",
      safetyItems.length,
      "人力资源:",
      humanResourcesItems.length,
      "生产管控:",
      productionItems.length,
      "设备管理:",
      equipmentItems.length
    );
    console.log(
      "生产管控菜单项:",
      productionItems.map(item => item.label)
    );
  };
  // 检查模块是否有菜单项需要显示
@@ -1067,6 +1097,7 @@
  const hasPurchaseItems = computed(() => purchaseItems.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 hasProductionItems = computed(() => productionItems.length > 0);
  const hasEquipmentItems = computed(() => equipmentItems.length > 0);