From 626d20c9b84600a3f32493c8b8d17a8101e73c95 Mon Sep 17 00:00:00 2001 From: duorameng <2997944583@qq.com> Date: Fri, 12 Jun 2026 09:16:24 +0800 Subject: [PATCH] feat: add dependent tasks view for environments (#126) Add a dialog in the environment variables list to view which tasks depend on a specific variable/secret. --- web/src/views/environments/Environments.vue | 52 +++++--- .../components/DependentTasksDialog.vue | 115 ++++++++++++++++++ 2 files changed, 149 insertions(+), 18 deletions(-) create mode 100644 web/src/views/environments/components/DependentTasksDialog.vue diff --git a/web/src/views/environments/Environments.vue b/web/src/views/environments/Environments.vue index 90653fc..1dbe95a 100644 --- a/web/src/views/environments/Environments.vue +++ b/web/src/views/environments/Environments.vue @@ -3,7 +3,7 @@ import { ref, watch, onMounted } from 'vue' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import Pagination from '@/components/Pagination.vue' -import { Plus, Pencil, Trash2, Eye, EyeOff, Search, AlertTriangle, Terminal, Zap, ZapOff, Shield, Tag } from 'lucide-vue-next' +import { Plus, Pencil, Trash2, Eye, EyeOff, Search, AlertTriangle, Terminal, Zap, ZapOff, Shield, Tag, Link } from 'lucide-vue-next' import TextOverflow from '@/components/TextOverflow.vue' import TagInput from '@/components/TagInput.vue' import { api, type EnvVar } from '@/api' @@ -16,6 +16,7 @@ import { Badge } from '@/components/ui/badge' import EditEnvDialog from './components/EditEnvDialog.vue' import DeleteEnvDialog from './components/DeleteEnvDialog.vue' +import DependentTasksDialog from './components/DependentTasksDialog.vue' function formatDate(dateStr?: string) { if (!dateStr) return '-' @@ -41,6 +42,7 @@ let searchTimer: ReturnType | null = null const editDialogRef = ref | null>(null) const deleteDialogRef = ref | null>(null) +const dependentTasksDialogRef = ref | null>(null) async function checkSecretStatus() { try { @@ -100,6 +102,10 @@ function openEdit(env: EnvVar) { editDialogRef.value?.openEdit(env) } +function openDependentTasks(env: EnvVar) { + dependentTasksDialogRef.value?.open(env) +} + function confirmDelete(id: string) { deleteDialogRef.value?.confirmDelete(id, activeTab.value) } @@ -239,16 +245,19 @@ onMounted(() => { -
- - - +
@@ -296,16 +305,19 @@ onMounted(() => { -
- - - +
@@ -353,12 +365,15 @@ onMounted(() => { -
+
+ @@ -377,5 +392,6 @@ onMounted(() => { + diff --git a/web/src/views/environments/components/DependentTasksDialog.vue b/web/src/views/environments/components/DependentTasksDialog.vue new file mode 100644 index 0000000..fdaea13 --- /dev/null +++ b/web/src/views/environments/components/DependentTasksDialog.vue @@ -0,0 +1,115 @@ + + +