From b7ffa7395cddfeb10f88d70a81567371f62021c3 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期日, 25 十月 2026 16:30:17 +0800
Subject: [PATCH] feat(router): 排除AI模块页面并添加访问权限控制
---
src/views/dashboard/analytics/modules/alert-panel.vue | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/views/dashboard/analytics/modules/alert-panel.vue b/src/views/dashboard/analytics/modules/alert-panel.vue
index 4be1544..0f1bf4d 100644
--- a/src/views/dashboard/analytics/modules/alert-panel.vue
+++ b/src/views/dashboard/analytics/modules/alert-panel.vue
@@ -2,9 +2,10 @@
import type { MesHomeApi } from '#/api/mes/home';
import type { EchartsUIType } from '@vben/plugins/echarts';
-import { onMounted, ref } from 'vue';
+import { computed, onMounted, ref } from 'vue';
import { CountTo } from '@vben/common-ui';
+import { useAccess } from '@vben/access';
import { IconifyIcon } from '@vben/icons';
import { EchartsUI, useEcharts } from '@vben/plugins/echarts';
@@ -22,12 +23,17 @@
const emit = defineEmits<{
navigate: [name: string];
}>();
+const { hasAccessByCodes } = useAccess();
+const canViewWorkOrder = computed(() => hasAccessByCodes(['mes:pro-work-order:query']));
+const canViewAndon = computed(() => hasAccessByCodes(['mes:pro-andon-record:query']));
+const canViewRepair = computed(() => hasAccessByCodes(['mes:dv-repair:query']));
const chartRef = ref<EchartsUIType>();
const { renderEcharts } = useEcharts(chartRef);
const loading = ref(false);
async function loadStatus() {
+ if (!canViewWorkOrder.value) return;
loading.value = true;
try {
const data = await getWorkOrderStatusDistribution();
@@ -67,10 +73,11 @@
<template>
<div class="space-y-4">
<!-- 棰勮鍗$墖琛� -->
- <div class="grid grid-cols-2 gap-3">
+ <div v-if="canViewAndon || canViewRepair" class="grid gap-3" :class="canViewAndon && canViewRepair ? 'grid-cols-2' : 'grid-cols-1'">
<div
+ v-if="canViewAndon"
class="glass-tilt group cursor-pointer overflow-hidden rounded-2xl border-0 p-4"
- @click="emit('navigate', 'MesProAndon')"
+ @click="emit('navigate', 'MesProAndonRecord')"
>
<div class="relative z-10 flex items-center gap-3">
<div class="flex size-10 items-center justify-center rounded-lg bg-red-50 text-red-600 shadow-sm dark:bg-red-500/15 dark:text-red-400">
@@ -86,8 +93,9 @@
</div>
</div>
<div
+ v-if="canViewRepair"
class="glass-tilt group cursor-pointer overflow-hidden rounded-2xl border-0 p-4"
- @click="emit('navigate', 'MesProRepair')"
+ @click="emit('navigate', 'MesDvRepair')"
>
<div class="relative z-10 flex items-center gap-3">
<div class="flex size-10 items-center justify-center rounded-lg bg-amber-50 text-amber-600 shadow-sm dark:bg-amber-500/15 dark:text-amber-400">
@@ -105,7 +113,7 @@
</div>
<!-- 宸ュ崟鐘舵�佸浘 -->
- <div class="glass-tilt rounded-2xl p-5">
+ <div v-if="canViewWorkOrder" class="glass-tilt rounded-2xl p-5">
<h4 class="mb-3 text-sm font-semibold text-gray-800 dark:text-gray-100">
宸ュ崟鐘舵�佸垎甯�
</h4>
--
Gitblit v1.9.3