From 9c8418ab40654744f46e1b26efdded6215cea12c Mon Sep 17 00:00:00 2001
From: maggieyyy <61950669+maggieyyy@users.noreply.github.com>
Date: Wed, 28 Aug 2024 14:07:55 +0800
Subject: [PATCH] fix:intelligent plugin & browser lang & check monitor config
---
.../src/components/aoplatform/BasicLayout.tsx | 14 +++---
.../components/aoplatform/LanguageSetting.tsx | 9 +++-
.../aoplatform/UnUsedWordForTranslate.tsx | 6 +++
.../components/aoplatform/WithPermission.tsx | 1 -
.../IntelligentPluginConfig.tsx | 12 +++--
.../IntelligentPluginList.tsx | 36 ++++++++-------
.../common/src/locales/scan/en-GB.json | 27 +++++++++++-
.../src/locales/scan/newJson/en-GB.json | 19 --------
.../src/locales/scan/newJson/zh-CN.json | 25 -----------
.../common/src/locales/scan/zh-CN.json | 8 +++-
frontend/packages/core/src/App.tsx | 5 +--
.../src/pages/logsettings/LogSettings.tsx | 3 --
.../core/src/pages/member/MemberList.tsx | 5 +--
.../resourcesettings/ResourceSettings.tsx | 1 -
.../approval/SystemInsideApprovalList.tsx | 1 -
.../src/component/MonitorPieGraph.tsx | 1 -
.../dashboard/src/pages/Dashboard.tsx | 44 +++++++++++++++++--
.../src/pages/DashboardInstruction.tsx | 20 ++++++---
18 files changed, 137 insertions(+), 100 deletions(-)
diff --git a/frontend/packages/common/src/components/aoplatform/BasicLayout.tsx b/frontend/packages/common/src/components/aoplatform/BasicLayout.tsx
index 9717d219..51f44706 100644
--- a/frontend/packages/common/src/components/aoplatform/BasicLayout.tsx
+++ b/frontend/packages/common/src/components/aoplatform/BasicLayout.tsx
@@ -242,13 +242,13 @@ const themeToken = {
];
}}
headerTitleRender={() => (
-
-

navigator(mainPage)}
- />
-
+
+

navigator(mainPage)}
+ />
+
)}
logo={Logo}
pageTitleRender={()=>$t('APIPark - 企业API数据开放平台')}
diff --git a/frontend/packages/common/src/components/aoplatform/LanguageSetting.tsx b/frontend/packages/common/src/components/aoplatform/LanguageSetting.tsx
index d4aaf4b5..33b0e915 100644
--- a/frontend/packages/common/src/components/aoplatform/LanguageSetting.tsx
+++ b/frontend/packages/common/src/components/aoplatform/LanguageSetting.tsx
@@ -27,7 +27,13 @@ const LanguageSetting = ({mode = 'light'}:{mode?:'dark'|'light'}) => {
const langLabel = useMemo(()=>items.find((item) => item?.key === state.language)?.title,[state.language])
useEffect(()=>{
- sessionStorage.getItem('i18nextLng') && dispatch({ type: 'UPDATE_LANGUAGE', language: sessionStorage.getItem('i18nextLng') as 'en' | 'cn' });
+ const savedLang = sessionStorage.getItem('i18nextLng')
+ const browserLang = navigator.language || navigator.userLanguage
+ if(savedLang){
+ dispatch({ type: 'UPDATE_LANGUAGE', language: savedLang.startsWith('cn') ? 'cn' : 'en' });
+ }else{
+ dispatch({ type: 'UPDATE_LANGUAGE', language: browserLang.startsWith('zh') ? 'cn' : 'en' });
+ }
},[
])
return (
@@ -40,7 +46,6 @@ const LanguageSetting = ({mode = 'light'}:{mode?:'dark'|'light'}) => {
const { key } = e;
dispatch({ type: 'UPDATE_LANGUAGE', language: key });
i18n.changeLanguage(key);
- // window.location.reload()
}
}}
>
diff --git a/frontend/packages/common/src/components/aoplatform/UnUsedWordForTranslate.tsx b/frontend/packages/common/src/components/aoplatform/UnUsedWordForTranslate.tsx
index af7d1ec3..9a91b6e3 100644
--- a/frontend/packages/common/src/components/aoplatform/UnUsedWordForTranslate.tsx
+++ b/frontend/packages/common/src/components/aoplatform/UnUsedWordForTranslate.tsx
@@ -38,6 +38,12 @@ export const TranslateWord = ()=>{
{$t('鉴权Secret')}
{$t('网络协议')}
{$t('日志等级')}
+ {$t('单行')}
+ {$t('小时')}
+ {$t('天')}
+ {$t('未发布')}
+ {$t('待发布')}
+ {$t('单位:s,最小值:1')}
>
)
}
\ No newline at end of file
diff --git a/frontend/packages/common/src/components/aoplatform/WithPermission.tsx b/frontend/packages/common/src/components/aoplatform/WithPermission.tsx
index db43f4f4..48b582d5 100644
--- a/frontend/packages/common/src/components/aoplatform/WithPermission.tsx
+++ b/frontend/packages/common/src/components/aoplatform/WithPermission.tsx
@@ -26,7 +26,6 @@ const WithPermission = ({access, tooltip, children,disabled, showDisabled = true
useEffect(()=>{
// 先判断权限,无论权限是否为true,如果disabled为true时则必须为ture
access && setEditAccess(lastAccess)
- console.log('editAccess',editAccess, children,children?.type?.displayName,showDisabled, children?.type?.displayName !== 'Button' && showDisabled)
},[lastAccess,disabled])
diff --git a/frontend/packages/common/src/components/aoplatform/intelligent-plugin/IntelligentPluginConfig.tsx b/frontend/packages/common/src/components/aoplatform/intelligent-plugin/IntelligentPluginConfig.tsx
index 687d21f5..4b52bc89 100644
--- a/frontend/packages/common/src/components/aoplatform/intelligent-plugin/IntelligentPluginConfig.tsx
+++ b/frontend/packages/common/src/components/aoplatform/intelligent-plugin/IntelligentPluginConfig.tsx
@@ -48,6 +48,7 @@ import {useFetch} from "@common/hooks/http.ts";
import {App, Descriptions} from "antd";
import { $t } from "@common/locales";
import { useGlobalContext } from "@common/contexts/GlobalStateContext";
+import { setValidateLanguage } from '@formily/core'
export const DynamicRender = (props) => {
const {schema} = props
@@ -68,14 +69,12 @@ export const DynamicRender = (props) => {
const translateSchema = (render) =>{
- console.log(render)
const res1 = {
...render,
...(render.title ? {title:$t(render.title)} : {}),
...(render.description) ? {description:$t(render.description)} : {},
...(render.label ? {label:$t(render.label)} : {}),
...(render.properties ? {properties: Object.keys(render.properties).reduce((total, cur) => {
- console.log(total, cur); // 可选:在生产环境中移除或注释掉
try {
total[cur] = translateSchema(render.properties[cur]);
} catch (error) {
@@ -86,7 +85,7 @@ export const DynamicRender = (props) => {
...(render.items && Array.isArray(render.items) ? {items:render.items.map(x=>translateSchema(x))} : {}),
...(render.items && !Array.isArray(render.items) ? {items:translateSchema(render.items)} : {}),
...(render.additionalProperties ? {additionalProperties: translateSchema(render.additionalProperties)} : {}),
- ...(render.enum ?render.enum.map(x=>({...x, label:$t(x.label)})) : {}),
+ ...(render.enum ? {enum: render.enum.map(x=>({...x, label:$t(x.label)}))} : {}),
}
return res1
@@ -174,6 +173,11 @@ export const IntelligentPluginConfig = forwardRef{
+ setValidateLanguage(state.language === 'cn' ? 'zh-CN' : 'en-US')
+ },[state.language])
const pluginEditSchema = {
type: 'object',
@@ -313,7 +317,7 @@ export const IntelligentPluginConfig = forwardRef
-
+
([]);
const [tableHttpReload, setTableHttpReload] = useState(true);
- const [columns,setColumns] = useState[] >([])
+ const [columns,setColumns] = useState([])
const {fetchData} = useFetch()
const pageListRef = useRef(null);
const [publishBtnLoading, setPublishBtnLoading] = useState(false)
@@ -133,20 +133,7 @@ export default function IntelligentPluginList(){
message.destroy();
if(res.code === STATUS_CODE.SUCCESS){
getConfig(res.data)
- setColumns(res.data.basic.fields.map((field:DynamicTableField, index:number)=>({
- title:field.title,
- dataIndex:field.name,
- fixed:field.name === 'title' ? 'left' : undefined,
- ellipsis:true,
- width:field.name === 'title' ? 150 : undefined,
- ...(field.enum?.length > 0 ?{
- onFilter: (value: string, record: { [x: string]: string | string[]; }) => record[field.name].indexOf(value) === 0,
- filters:field.enum?.map((x:string)=>{return {text:x, value:x}}),
- render:(_: unknown, entity: { [x: string]: string; })=> {
- return {(entity[field.name] as string)}
- },
- }:{}),
- })))
+ setColumns(res.data.basic.fields)
setTableListDataSource(res.data.list);
return ({ data: res.data.list, success: true,total:res.data.total });
}else{
@@ -157,7 +144,22 @@ export default function IntelligentPluginList(){
return ({ data: [], success: false });})
}
- const translatedCol = useMemo(()=>columns.map(x=>({...x, title:typeof x.title === 'string' ? $t(x.title as string) : x.title})),[columns,state.language])
+ const translatedCol = useMemo(()=>columns.map((field:DynamicTableField, index:number)=>({
+ title: typeof field.title === 'string' ? $t(field.title as string): field.title,
+ dataIndex:field.name,
+ fixed:field.name === 'title' ? 'left' : undefined,
+ ellipsis:true,
+ width:field.name === 'title' ? 150 : undefined,
+ ...(field.enum?.length > 0 ?{
+ onFilter: (value: string, record: { [x: string]: string | string[]; }) => record[field.name].indexOf(value) === 0,
+ filters:field.enum?.map((x:string)=>{return {text:$t(x), value:x}}),
+ render:(_: unknown, entity: { [x: string]: string; })=> {
+ return {$t(entity[field.name] as string)}
+ },
+ }:{}),
+ })),[state.language,columns])
+
+
const getConfig = (data:DynamicTableConfig)=>{
const {basic,list } = data
@@ -331,7 +333,7 @@ export default function IntelligentPluginList(){
onSearchWordChange={(e)=>{setSearchWord(e.target.value);setTableHttpReload(true);setTableHttpReload(true)}}
/>
- {setCurDetail(undefined);setDrawerOpen(false)}} onSubmit={()=>drawerFormRef.current?.save()?.then((res)=>{res && manualReloadTable();return res})} submitAccess=''>
+ {setCurDetail(undefined);setDrawerOpen(false)}} onSubmit={()=>drawerFormRef.current?.save()?.then((res)=>{res && manualReloadTable();return res})} submitAccess=''>
} spinning={drawerLoading}>
(sessionStorage.getItem('i18nextLng') === 'cn'? zhCN : enUS);
- dayjs.locale(sessionStorage.getItem('i18nextLng') || 'en');
+ const [locale, setLocal] = useState();
useInitializeMonaco()
const { state} = useGlobalContext()
+
useEffect(() => {
dayjs.locale(state.language);
setLocal(state.language === 'cn' ? zhCN : enUS);
diff --git a/frontend/packages/core/src/pages/logsettings/LogSettings.tsx b/frontend/packages/core/src/pages/logsettings/LogSettings.tsx
index ba07ce05..6bf464fd 100644
--- a/frontend/packages/core/src/pages/logsettings/LogSettings.tsx
+++ b/frontend/packages/core/src/pages/logsettings/LogSettings.tsx
@@ -39,8 +39,6 @@ const LogSettings = ()=>{
const menuData = useMemo(()=>{
const newMenu = menuItems?.map((x:DynamicMenuItem)=>{
- console.log(state.language, $t(x.title))
-
return getItem(
{$t(x.title)},
x.name,
@@ -49,7 +47,6 @@ const LogSettings = ()=>{
undefined,
'system.devops.log_configuration.view')
})
- console.log(newMenu)
return newMenu
},[state.language,menuItems])
diff --git a/frontend/packages/core/src/pages/member/MemberList.tsx b/frontend/packages/core/src/pages/member/MemberList.tsx
index 9e812866..44dc2525 100644
--- a/frontend/packages/core/src/pages/member/MemberList.tsx
+++ b/frontend/packages/core/src/pages/member/MemberList.tsx
@@ -332,10 +332,7 @@ const MemberList = ()=>{
}
})
}
-
- useEffect(()=>{
- console.log(roleSelectableList,roleSelectableList?.map((x:{id:string,name:string})=>({label:$t(x.name), value:x.id})) )
- },[state.language,roleSelectableList])
+
const translatedCol = useMemo(
()=> MEMBER_TABLE_COLUMNS.map((x)=>({...x, ...(x.dataIndex === 'roles' ? {
render:(_,entity)=>(
diff --git a/frontend/packages/core/src/pages/resourcesettings/ResourceSettings.tsx b/frontend/packages/core/src/pages/resourcesettings/ResourceSettings.tsx
index 7abd5cae..780bf549 100644
--- a/frontend/packages/core/src/pages/resourcesettings/ResourceSettings.tsx
+++ b/frontend/packages/core/src/pages/resourcesettings/ResourceSettings.tsx
@@ -49,7 +49,6 @@ const LogSettings = ()=>{
undefined,
'system.devops.log_configuration.view')
})
- console.log(newMenu)
return newMenu
},[state.language,menuItems])
diff --git a/frontend/packages/core/src/pages/system/approval/SystemInsideApprovalList.tsx b/frontend/packages/core/src/pages/system/approval/SystemInsideApprovalList.tsx
index 649cd5c3..d9d91049 100644
--- a/frontend/packages/core/src/pages/system/approval/SystemInsideApprovalList.tsx
+++ b/frontend/packages/core/src/pages/system/approval/SystemInsideApprovalList.tsx
@@ -165,7 +165,6 @@ const SystemInsideApprovalList:FC = ()=>{
return filteredCol.map(x=>{
if(x.filters &&((x.dataIndex as string[])?.indexOf('applier') !== -1 || (x.dataIndex as string[])?.indexOf('approver') !== -1) ){
const tmpValueEnum :Record= {}
- console.log(memberValueEnum)
memberValueEnum?.forEach((x:SimpleMemberItem)=>{
tmpValueEnum[x.name] = {text:$t(x.name)}
})
diff --git a/frontend/packages/dashboard/src/component/MonitorPieGraph.tsx b/frontend/packages/dashboard/src/component/MonitorPieGraph.tsx
index 58e74f50..70789c40 100644
--- a/frontend/packages/dashboard/src/component/MonitorPieGraph.tsx
+++ b/frontend/packages/dashboard/src/component/MonitorPieGraph.tsx
@@ -31,7 +31,6 @@ const MonitorPieGraph: FC = ({ className,title, pieData, labelNam
tooltip: {
trigger: 'item',
formatter: (params:Array>) => {
- console.log(params)
const startHtml = ''
return startHtml + ($t(params.name || '-') + '    ' + params.value + '')
}
diff --git a/frontend/packages/dashboard/src/pages/Dashboard.tsx b/frontend/packages/dashboard/src/pages/Dashboard.tsx
index 84a6b78a..410136fd 100644
--- a/frontend/packages/dashboard/src/pages/Dashboard.tsx
+++ b/frontend/packages/dashboard/src/pages/Dashboard.tsx
@@ -1,26 +1,62 @@
-import { useEffect } from "react";
+import { useEffect, useState } from "react";
import { useBreadcrumb } from "@common/contexts/BreadcrumbContext";
import DashboardPage from "./DashboardTabPage";
import { $t } from "@common/locales";
+import { useFetch } from "@common/hooks/http";
+import { BasicResponse, RESPONSE_TIPS, STATUS_CODE } from "@common/const/const";
+import { App, Spin } from "antd";
+import { reject } from "lodash-es";
+import { EntityItem } from "@common/const/type";
+import { LoadingOutlined } from "@ant-design/icons";
+import DashboardInstruction from "./DashboardInstruction";
+import cluster from "cluster";
export default function Dashboard(){
const { setBreadcrumb } = useBreadcrumb()
+ const {fetchData } = useFetch()
+ const { message } = App.useApp()
+ const [clusters, setClusters] = useState>([])
+ const [enabledClusters, setEnabledClusters] = useState>([])
+ const [loading, setLoading] = useState(false)
+ const getClusters = ()=>{
+ setLoading(true)
+ fetchData}>>('simple/monitor/clusters',{
+ method: 'GET'}).then(response=>{
+ const {code,data,msg} = response
+ if(code === STATUS_CODE.SUCCESS){
+ const filteredCluster = data?.clusters?.filter(x=>x.enable)
+ setClusters(data.cluster || [])
+ setEnabledClusters(filteredCluster)
+ }else{
+ message.error(msg || $t(RESPONSE_TIPS.error))
+ }
+ }).catch((errorInfo)=> reject(errorInfo)).finally(()=>setLoading(false))
+ }
useEffect(() => {
+ getClusters()
setBreadcrumb([
{
title:$t('运行视图')
},
])
+
}, []);
return (
<>
-
-
-
+ } spinning={loading}>
+ {
+ !loading && <>
+ {
+ enabledClusters.length > 0 ?
+ :
+ }
+ >
+ }
+
>
)
}
\ No newline at end of file
diff --git a/frontend/packages/dashboard/src/pages/DashboardInstruction.tsx b/frontend/packages/dashboard/src/pages/DashboardInstruction.tsx
index 4cd63261..4faf2ad7 100644
--- a/frontend/packages/dashboard/src/pages/DashboardInstruction.tsx
+++ b/frontend/packages/dashboard/src/pages/DashboardInstruction.tsx
@@ -1,7 +1,7 @@
import { Link } from "react-router-dom";
-export default function DashboardInstruction() {
+export default function DashboardInstruction({showClusterIns, showMonitorIns}:{showClusterIns:boolean, showMonitorIns:boolean}) {
return (
@@ -10,12 +10,20 @@ export default function DashboardInstruction() {
{/*
更多配置问题,请点击帮助中心
{/* 查看更多 *
*/}
-
-
+
+ {showClusterIns &&
集群配置
-
新增集群地址、描述和其他相关属性,以确保监控系统能够正确识别和连接到集群
-
添加集群信息
-
+
配置集群地址,以确保监控系统能够正确识别和连接到集群
+
配置集群信息
+
}
+ {showMonitorIns &&
+
+
监控设置
+
设置监控报表的数据来源,设置完成之后即可获得详细的API调用统计图表。
+
配置监控信息
+
+ }
+
)