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 (