From 2541a19884ef482086966c8f67784604af84d723 Mon Sep 17 00:00:00 2001 From: NanamiAdmin Date: Thu, 7 May 2026 22:52:15 +0800 Subject: [PATCH] feat: add new fullscreen dialog UI, dialog manager and system self-check functionality - Implement FSDialog component for system-wide dialogs - Add dialog manager utility for centralized dialog control - Introduce system self-check API and handle results - Show welcome dialog for new superusers - Display self-check errors on home page - Refactor proxy form handling in InstanceDetail --- src/App.vue | 18 +++- src/api/index.js | 1 + src/components/FSDialog.vue | 178 +++++++++++++++++++++++++++++++++++ src/utils/dialogManager.js | 13 +++ src/views/Home.vue | 34 ++++++- src/views/InstanceDetail.vue | 26 +++-- src/views/Login.vue | 24 ++++- 7 files changed, 278 insertions(+), 16 deletions(-) create mode 100644 src/components/FSDialog.vue create mode 100644 src/utils/dialogManager.js diff --git a/src/App.vue b/src/App.vue index 5ce18dc..38d7364 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,24 +1,38 @@ + + diff --git a/src/utils/dialogManager.js b/src/utils/dialogManager.js new file mode 100644 index 0000000..dba8b4f --- /dev/null +++ b/src/utils/dialogManager.js @@ -0,0 +1,13 @@ +let dialogInstance = null; + +export function registerDialog(instance) { + dialogInstance = instance; +} + +export function showFSDialog(type, title, content) { + if (!dialogInstance) { + console.error('FSDialog not registered'); + return Promise.resolve(0); + } + return dialogInstance.show(type, title, content); +} diff --git a/src/views/Home.vue b/src/views/Home.vue index 22dffe0..66e2d94 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -9,9 +9,12 @@