From 3268de7494d5281186bb692635540e38db251e13 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 12 十月 2026 11:53:01 +0800
Subject: [PATCH] feat(dashboard): 添加权限控制和能耗分析功能
---
src/views/dashboard/analytics/modules/kpi-cards.vue | 24 ++++++++++++++++--------
1 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/src/views/dashboard/analytics/modules/kpi-cards.vue b/src/views/dashboard/analytics/modules/kpi-cards.vue
index 761db56..88853ef 100644
--- a/src/views/dashboard/analytics/modules/kpi-cards.vue
+++ b/src/views/dashboard/analytics/modules/kpi-cards.vue
@@ -8,7 +8,11 @@
import { Col, Row } from 'ant-design-vue';
+import { useHomeAccess } from '../use-home-access';
+
defineOptions({ name: 'DashboardKpiCards' });
+
+const { canNavigate } = useHomeAccess();
const props = defineProps<{
summary: MesHomeApi.Summary;
@@ -61,11 +65,12 @@
<!-- 鐢熶骇璁㈠崟 -->
<Col :lg="6" :md="12" :sm="12" :xl="6" :xs="24" class="mb-4">
<div
- class="glass-tilt group cursor-pointer overflow-hidden rounded-2xl border-0"
+ class="glass-tilt group overflow-hidden rounded-2xl border-0"
+ :class="{ 'cursor-pointer': canNavigate('MesProWorkOrder') }"
:style="tiltStyle('order')"
@mousemove="(e: MouseEvent) => onMouseMove(e, 'order')"
@mouseleave="onMouseLeave('order')"
- @click="emit('navigate', 'MesProWorkOrder')"
+ @click="canNavigate('MesProWorkOrder') && emit('navigate', 'MesProWorkOrder')"
>
<div class="relative z-10 flex items-center gap-4 p-5">
<div class="flex size-12 flex-shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-blue-500 to-cyan-400 shadow-lg shadow-blue-500/25 transition-transform duration-300 group-hover:scale-110">
@@ -92,11 +97,12 @@
<!-- 浠婃棩浜ч噺 -->
<Col :lg="6" :md="12" :sm="12" :xl="6" :xs="24" class="mb-4">
<div
- class="glass-tilt group cursor-pointer overflow-hidden rounded-2xl border-0"
+ class="glass-tilt group overflow-hidden rounded-2xl border-0"
+ :class="{ 'cursor-pointer': canNavigate('MesProFeedback') }"
:style="tiltStyle('output')"
@mousemove="(e: MouseEvent) => onMouseMove(e, 'output')"
@mouseleave="onMouseLeave('output')"
- @click="emit('navigate', 'MesProFeedback')"
+ @click="canNavigate('MesProFeedback') && emit('navigate', 'MesProFeedback')"
>
<div class="relative z-10 flex items-center gap-4 p-5">
<div class="flex size-12 flex-shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-emerald-500 to-green-400 shadow-lg shadow-emerald-500/25 transition-transform duration-300 group-hover:scale-110">
@@ -123,11 +129,12 @@
<!-- 璐ㄩ噺鍚堟牸鐜� -->
<Col :lg="6" :md="12" :sm="12" :xl="6" :xs="24" class="mb-4">
<div
- class="glass-tilt group cursor-pointer overflow-hidden rounded-2xl border-0"
+ class="glass-tilt group overflow-hidden rounded-2xl border-0"
+ :class="{ 'cursor-pointer': canNavigate('MesQcRecord') }"
:style="tiltStyle('quality')"
@mousemove="(e: MouseEvent) => onMouseMove(e, 'quality')"
@mouseleave="onMouseLeave('quality')"
- @click="emit('navigate', 'MesQcRecord')"
+ @click="canNavigate('MesQcRecord') && emit('navigate', 'MesQcRecord')"
>
<div class="relative z-10 flex items-center gap-4 p-5">
<div class="flex size-12 flex-shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-orange-500 to-amber-400 shadow-lg shadow-orange-500/25 transition-transform duration-300 group-hover:scale-110">
@@ -156,11 +163,12 @@
<!-- 璁惧杩愯鐜� -->
<Col :lg="6" :md="12" :sm="12" :xl="6" :xs="24" class="mb-4">
<div
- class="glass-tilt group cursor-pointer overflow-hidden rounded-2xl border-0"
+ class="glass-tilt group overflow-hidden rounded-2xl border-0"
+ :class="{ 'cursor-pointer': canNavigate('MesDvMachinery') }"
:style="tiltStyle('equip')"
@mousemove="(e: MouseEvent) => onMouseMove(e, 'equip')"
@mouseleave="onMouseLeave('equip')"
- @click="emit('navigate', 'MesDvMachinery')"
+ @click="canNavigate('MesDvMachinery') && emit('navigate', 'MesDvMachinery')"
>
<div class="relative z-10 flex items-center gap-4 p-5">
<div class="flex size-12 flex-shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-violet-500 to-purple-400 shadow-lg shadow-violet-500/25 transition-transform duration-300 group-hover:scale-110">
--
Gitblit v1.9.3