| | |
| | | <template> |
| | | <view class="content"> |
| | | <!-- 协同办公模块 --> |
| | | <view class="common-module collaboration-module" |
| | | v-if="hasCollaborationItems"> |
| | | <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 collaborationItems" |
| | | :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 marketing-module" |
| | | v-if="hasMarketingItems"> |
| | |
| | | </up-grid> |
| | | </view> |
| | | </view> |
| | | <!-- <!– 采购管理模块 –>--> |
| | | <!-- 采购管理模块 --> |
| | | <view class="common-module purchase-module" |
| | | v-if="hasPurchaseItems"> |
| | | <view class="module-header"> |
| | |
| | | <up-grid :border="false" |
| | | col="4"> |
| | | <up-grid-item v-for="(item, index) in purchaseItems" |
| | | :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"> |
| | | <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 collaborationItems" |
| | | :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="hasSafetyItems"> |
| | | <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 safetyItems" |
| | | :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="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"> |
| | |
| | | </up-grid> |
| | | </view> |
| | | </view> |
| | | <!-- 财务管理模块 --> |
| | | <view class="common-module finance-module" |
| | | v-if="hasFinanceManagementItems"> |
| | | <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 financeManagementItems" |
| | | :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 archive-module" |
| | | v-if="hasArchiveManagementItems"> |
| | | <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 archiveManagementItems" |
| | | :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 after-sales-module" |
| | | v-if="hasAfterSalesServiceItems"> |
| | | <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 afterSalesServiceItems" |
| | | :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="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"> |
| | | <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 equipment-module" |
| | | v-if="hasEquipmentItems"> |
| | |
| | | <up-grid :border="false" |
| | | col="4"> |
| | | <up-grid-item v-for="(item, index) in equipmentItems" |
| | | :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="hasSafetyItems"> |
| | | <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 safetyItems" |
| | | :key="index" |
| | | @click="handleCommonItemClick(item)"> |
| | | <view class="icon-container"> |
| | |
| | | label: "销售台账", |
| | | }, |
| | | { |
| | | icon: "/static/images/icon/kehuwanglai.svg", |
| | | label: "客户往来", |
| | | }, |
| | | ]); |
| | | |
| | | // 采购管理功能数据 |
| | | const purchaseItems = reactive([ |
| | | { |
| | | icon: "/static/images/icon/caigoutaizhang.svg", |
| | | label: "采购台账", |
| | | }, |
| | | { |
| | | icon: "/static/images/icon/gongyingshangwanglai.svg", |
| | | label: "供应商往来", |
| | | }, |
| | | ]); |
| | | |
| | | // 财务管理功能数据 |
| | | const financeManagementItems = reactive([ |
| | | { |
| | | icon: "/static/images/icon/kaipiaodengji.svg", |
| | | label: "开票登记", |
| | | }, |
| | |
| | | { |
| | | icon: "/static/images/icon/huikuanliushui.svg", |
| | | label: "回款流水", |
| | | }, |
| | | { |
| | | icon: "/static/images/icon/kehuwanglai.svg", |
| | | label: "客户往来", |
| | | }, |
| | | ]); |
| | | |
| | | // 采购管理功能数据 |
| | | const purchaseItems = reactive([ |
| | | { |
| | | icon: "/static/images/icon/caigoutaizhang.svg", |
| | | label: "采购台账", |
| | | }, |
| | | { |
| | | icon: "/static/images/icon/laipiaodengji.svg", |
| | |
| | | icon: "/static/images/icon/fukuanliushui.svg", |
| | | label: "付款流水", |
| | | }, |
| | | { |
| | | icon: "/static/images/icon/gongyingshangwanglai.svg", |
| | | label: "供应商往来", |
| | | }, |
| | | ]); |
| | | |
| | | // 档案管理功能数据 |
| | | const archiveManagementItems = reactive([ |
| | | ]); |
| | | |
| | | // 售后服务功能数据 |
| | | const afterSalesServiceItems = reactive([ |
| | | ]); |
| | | |
| | | const humanResourcesItems = reactive([ |
| | | { |
| | | icon: "/static/images/icon/dakaqiandao.svg", |
| | |
| | | // 过滤各个模块 |
| | | filterArray(marketingItems); |
| | | filterArray(purchaseItems); |
| | | filterArray(financeManagementItems); |
| | | filterArray(archiveManagementItems); |
| | | filterArray(afterSalesServiceItems); |
| | | filterArray(collaborationItems, menuMapping.collaboration.specialMapping); |
| | | filterArray(safetyItems); |
| | | filterArray(humanResourcesItems); |
| | |
| | | // 检查模块是否有菜单项需要显示 |
| | | 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 hasCollaborationItems = computed(() => collaborationItems.length > 0); |
| | | const hasSafetyItems = computed(() => safetyItems.length > 0); |
| | | const hasQualityItems = computed(() => qualityItems.length > 0); |