zhangwencui
2026-03-03 2dd434830299e781cd942ef5e6e938160dd12704
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,16 @@
      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: "原材料检验",
    },
  ]);
  const safetyItems = reactive([
    {
@@ -425,7 +460,7 @@
    },
    {
      icon: "/static/images/icon/xunjianshangchuan@2x.png",
      label: "巡检上传",
      label: "设备巡检",
    },
  ]);
@@ -641,7 +676,7 @@
          url: "/pages/equipmentManagement/upkeep/index",
        });
        break;
      case "巡检上传":
      case "设备巡检":
        uni.navigateTo({
          url: "/pages/inspectionUpload/index",
        });
@@ -714,6 +749,16 @@
      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;
      default:
@@ -981,6 +1026,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);
@@ -990,6 +1036,15 @@
      humanResourcesItems.length,
      ...filteredHumanResources
    );
    // 过滤质量管理菜单
    const originalQuality = [
      { 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 = [
@@ -1009,7 +1064,7 @@
      { 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);
@@ -1022,6 +1077,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);