| | |
| | | <template> |
| | | <view class="content"> |
| | | <!-- OA办公模块 --> |
| | | <view class="common-module oa-module" |
| | | v-if="hasOaItems"> |
| | | <view class="module-header"> |
| | | <view class="module-title-container"> |
| | | <text class="module-title">OA办公</text> |
| | | </view> |
| | | </view> |
| | | <view class="module-content"> |
| | | <up-grid :border="false" |
| | | col="4"> |
| | | <up-grid-item v-for="(item, index) in oaItems" |
| | | :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="hasCollaborationItems"> |
| | |
| | | import { userLoginFacotryList } from "@/api/login"; |
| | | import { getProductWorkOrderById } from "@/api/productionManagement/productionReporting"; |
| | | import DownloadProgressMask from "@/components/DownloadProgressMask.vue"; |
| | | import { OA_WORKBENCH_ITEMS } from "@/config/oaWorkbench.js"; |
| | | import modal from "@/plugins/modal"; |
| | | import useUserStore from "@/store/modules/user"; |
| | | |
| | |
| | | label: "安全培训考核", |
| | | }, |
| | | ]); |
| | | // OA办公功能数据(纯前端配置,不参与后端权限过滤) |
| | | const oaItems = reactive( |
| | | OA_WORKBENCH_ITEMS.map(item => ({ ...item })) |
| | | ); |
| | | |
| | | // 协同办公功能数据 |
| | | const collaborationItems = reactive([ |
| | | { |
| | |
| | | |
| | | // 处理常用功能点击 |
| | | const handleCommonItemClick = item => { |
| | | if (item.path) { |
| | | uni.navigateTo({ url: item.path }); |
| | | return; |
| | | } |
| | | // 根据不同的功能项进行跳转 |
| | | switch (item.label) { |
| | | case "客户档案": |
| | |
| | | const hasAfterSalesServiceItems = computed( |
| | | () => afterSalesServiceItems.length > 0 |
| | | ); |
| | | const hasOaItems = computed(() => oaItems.length > 0); |
| | | const hasCollaborationItems = computed(() => collaborationItems.length > 0); |
| | | const hasSafetyItems = computed(() => safetyItems.length > 0); |
| | | const hasQualityItems = computed(() => qualityItems.length > 0); |
| | |
| | | --module-color: #4caf50; |
| | | } |
| | | |
| | | .oa-module { |
| | | --module-color: #673ab7; |
| | | } |
| | | |
| | | .production-module { |
| | | --module-color: #ff9800; |
| | | } |
| | |
| | | --module-color: #4caf50; |
| | | } |
| | | |
| | | .oa-module { |
| | | --module-color: #673ab7; |
| | | } |
| | | |
| | | .production-module { |
| | | --module-color: #ff9800; |
| | | } |