From f9f5ceac9d518ee884e5a1a321a886597d66ce0a Mon Sep 17 00:00:00 2001 From: lapuda <577732344@qq.com> Date: Thu, 16 Jul 2026 09:59:27 +0800 Subject: [PATCH] feat: enhance Druid integration and improve user management features --- src/pages/Monitor/Druid/index.tsx | 37 +++++- src/pages/System/Dept/index.tsx | 82 ++++++++++---- src/pages/System/User/components/DeptTree.tsx | 47 ++++++-- src/pages/System/User/edit.tsx | 3 + src/pages/System/User/index.tsx | 105 +++++++++++++----- src/pages/Tool/Swagger/index.tsx | 8 +- src/services/monitor/druid.ts | 12 ++ src/types/system/user.d.ts | 12 +- src/utils/publicUrl.ts | 11 ++ tests/utils/publicUrl.test.ts | 8 +- 10 files changed, 253 insertions(+), 72 deletions(-) create mode 100644 src/services/monitor/druid.ts diff --git a/src/pages/Monitor/Druid/index.tsx b/src/pages/Monitor/Druid/index.tsx index 20a3853..643ce68 100644 --- a/src/pages/Monitor/Druid/index.tsx +++ b/src/pages/Monitor/Druid/index.tsx @@ -1,4 +1,7 @@ -import React, { useEffect } from 'react'; +import React, { useEffect, useState } from 'react'; +import { message } from 'antd'; +import { getDruidIndexUrl } from '@/utils/publicUrl'; +import { establishDruidSession } from '@/services/monitor/druid'; /* * * @@ -8,6 +11,32 @@ import React, { useEffect } from 'react'; * */ const DruidInfo: React.FC = () => { + const [druidLoginUrl, setDruidLoginUrl] = useState(); + + useEffect(() => { + let active = true; + establishDruidSession() + .then((res) => { + if (!active) { + return; + } + if (res.code !== 200) { + message.error(res.msg || 'Druid 自动登录失败'); + return; + } + setDruidLoginUrl(getDruidIndexUrl()); + }) + .catch(() => { + if (active) { + message.error('Druid 自动登录失败'); + } + }); + + return () => { + active = false; + }; + }, []); + useEffect(() => { const frame = document.getElementById('bdIframe'); if (frame) { @@ -16,14 +45,14 @@ const DruidInfo: React.FC = () => { frame.style.width = `${Number(deviceWidth) - 220}px`; frame.style.height = `${Number(deviceHeight) - 120}px`; } - }); + }, [druidLoginUrl]); return (