mirror of
https://github.com/APIParkLab/APIPark.git
synced 2026-06-14 20:41:15 +08:00
fix:intelligent i18next
This commit is contained in:
@@ -56,7 +56,7 @@ const TableBtnWithPermission = ({btnTitle, access, tooltip, disabled, navigateTo
|
||||
|
||||
return (<>{
|
||||
!btnAccess || (disabled&&tooltip) ?
|
||||
<Tooltip placement="top" title={tooltip ?? $t('暂无(0)权限,请联系管理员分配。',[btnTitle])}>
|
||||
<Tooltip placement="top" title={tooltip ?? $t('暂无(0)权限,请联系管理员分配。',[$t(btnTitle).toLowerCase()])}>
|
||||
<Button type="text" disabled={true} className={`h-[22px] border-none p-0 flex items-center bg-transparent ${className}`} key={btnType} icon={<Icon icon={TableIconName[btnType as keyof typeof TableIconName]} width="18" height="18"/>} >{}</Button>
|
||||
</Tooltip>
|
||||
:
|
||||
|
||||
@@ -6,9 +6,9 @@ export const TranslateWord = ()=>{
|
||||
<>
|
||||
{$t('文件日志')}
|
||||
{$t('HTTP日志')}
|
||||
{$t('Kafka文件日志')}
|
||||
{$t('NSQ文件日志')}
|
||||
{$t('Syslog文件日志')}
|
||||
{$t('Kafka日志')}
|
||||
{$t('NSQ日志')}
|
||||
{$t('Syslog日志')}
|
||||
{$t('未分配')}
|
||||
{$t('超级管理员')}
|
||||
{$t('团队管理员')}
|
||||
@@ -20,6 +20,24 @@ export const TranslateWord = ()=>{
|
||||
{$t('应用开发者')}
|
||||
{$t('应用管理员')}
|
||||
{$t('驱动名称')}
|
||||
{$t('请求失败数')}
|
||||
{$t('转发失败数')}
|
||||
{$t('作用范围')}
|
||||
{$t('添加条目')}
|
||||
{$t('添加地址')}
|
||||
{$t('文件名称')}
|
||||
{$t('存放目录')}
|
||||
{$t('日志分割周期')}
|
||||
{$t('过期时间')}
|
||||
{$t('单位:天')}
|
||||
{$t('输出格式')}
|
||||
{$t('格式化配置')}
|
||||
{$t('服务器地址')}
|
||||
{$t('Access日志')}
|
||||
{$t('NSQD地址列表')}
|
||||
{$t('鉴权Secret')}
|
||||
{$t('网络协议')}
|
||||
{$t('日志等级')}
|
||||
</>
|
||||
)
|
||||
}
|
||||
+36
-3
@@ -1,4 +1,4 @@
|
||||
import {forwardRef, useEffect, useImperativeHandle, useState} from "react";
|
||||
import {forwardRef, useEffect, useImperativeHandle, useMemo, useState} from "react";
|
||||
import { action } from '@formily/reactive'
|
||||
import {
|
||||
FormItem,
|
||||
@@ -45,14 +45,16 @@ import {DefaultOptionType} from "antd/es/cascader";
|
||||
import {createSchemaField, FormProvider, RecursionField, useField, useForm} from "@formily/react";
|
||||
import {BasicResponse, PLACEHOLDER, RESPONSE_TIPS, STATUS_CODE} from "@common/const/const.tsx";
|
||||
import {useFetch} from "@common/hooks/http.ts";
|
||||
import {App} from "antd";
|
||||
import {App, Descriptions} from "antd";
|
||||
import { $t } from "@common/locales";
|
||||
import { useGlobalContext } from "@common/contexts/GlobalStateContext";
|
||||
|
||||
export const DynamicRender = (props) => {
|
||||
const {schema} = props
|
||||
const field = useField()
|
||||
const form = useForm()
|
||||
const [renderSchema, setRenderSchema] = useState({})
|
||||
const {state} = useGlobalContext()
|
||||
|
||||
useEffect(() => {
|
||||
form.clearFormGraph(`${field.address}.*`)
|
||||
@@ -64,10 +66,41 @@ export const DynamicRender = (props) => {
|
||||
}
|
||||
}, [form.values.driver])
|
||||
|
||||
|
||||
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) {
|
||||
console.error(`Error translating schema for property ${cur}:`, error);
|
||||
}
|
||||
return total;
|
||||
}, {})} : {}),
|
||||
...(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)})) : {}),
|
||||
|
||||
}
|
||||
return res1
|
||||
}
|
||||
|
||||
const translatedRenderSchema = useMemo(()=>{
|
||||
const res = renderSchema && translateSchema(renderSchema)
|
||||
return res
|
||||
},[state.language,renderSchema])
|
||||
|
||||
return (
|
||||
<RecursionField
|
||||
basePath={field.address}
|
||||
schema={renderSchema}
|
||||
schema={translatedRenderSchema}
|
||||
onlyRenderProperties
|
||||
/>
|
||||
)
|
||||
|
||||
@@ -39,7 +39,7 @@ export const useExcelExport = <T>() => {
|
||||
return tableColumnConfig
|
||||
.filter((head: ProColumnType<T>&{eoTitle:string}) => tableConfig?.[head.dataIndex as string]?.show)
|
||||
.map((head) => { return({
|
||||
header: head.eoTitle,
|
||||
header: $t(head.eoTitle),
|
||||
key: head.dataIndex,
|
||||
width: (head.eoTitle as string).length > 5 ? (head.eoTitle as string).length * 3 : 15,
|
||||
style: (head.dataIndex as string).includes('Rate') ? { numFmt: '0.00%' } : undefined,
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
"Kb1dedda3": "Close",
|
||||
"Kb2fc7600": "Add Configuration",
|
||||
"K4e07217d": "Edit Configuration",
|
||||
"K4ea968fe": "Edit(0)",
|
||||
"Ka7aaaeb": "Add(0)",
|
||||
"K4ea968fe": "Edit (0)",
|
||||
"Ka7aaaeb": "Add (0)",
|
||||
"Kaff78ecf": "Please Enter Key",
|
||||
"K65d46535": "Please Enter Value",
|
||||
"Kc14b2ea3": "Back",
|
||||
@@ -71,9 +71,10 @@
|
||||
"Kd6d28fc": "7 Days",
|
||||
"K3d7465f7": "File Logs",
|
||||
"Kc87167a0": "HTTP Logs",
|
||||
"K80ef19d3": "Kafka File Logs",
|
||||
"K398cc3c5": "NSQ File Logs",
|
||||
"K2bcdb54": "Syslog File Logs",
|
||||
"K54630fe8": "Kafka Logs",
|
||||
"Kd5c3966e": "NSQ Logs",
|
||||
"K2e3de2c1": "Syslog Logs",
|
||||
"Kb1cfa6e7": "Access Logs",
|
||||
"K23fda291": "No Permission, Please Contact Administrator.",
|
||||
"K4618cb0a": "WeChat Mini Program",
|
||||
"Ka854f511": "Path Required for File Retrieval",
|
||||
@@ -247,6 +248,7 @@
|
||||
"Kf12b3034": "Management Address",
|
||||
"K867e6faf": "Service Address",
|
||||
"K37348a5e": "Cluster Sync Address",
|
||||
"K2a49373f": "Cluster Sync Address",
|
||||
"K151d2bb7": "Environment Name",
|
||||
"Kfa744afd": "Number of Clusters",
|
||||
"K23a3bd72": "Error",
|
||||
@@ -614,5 +616,5 @@
|
||||
"K9919285b": "Service Type",
|
||||
"Kf14d159b": "Times",
|
||||
"K753e8aeb": "TPS",
|
||||
"K396e56ab": "Payload"
|
||||
"K21ad4a6a": "(0) Payload"
|
||||
}
|
||||
@@ -1,18 +1,21 @@
|
||||
{
|
||||
"Kfd50704d": "暂无(0)权限,请联系管理员分配。",
|
||||
"K48322168": "未分配",
|
||||
"K98f247f9": "超级管理员",
|
||||
"K9c8a571f": "团队管理员",
|
||||
"K929b485b": "运维管理员",
|
||||
"K82cc5ec2": "普通成员",
|
||||
"Ke41d7451": "只读成员",
|
||||
"Kf99e8b66": "服务管理员",
|
||||
"Kda8db57a": "服务开发者",
|
||||
"K216a1ac7": "应用开发者",
|
||||
"K27924db": "应用管理员",
|
||||
"K8dc5c723": "驱动名称",
|
||||
"K9919285b": "服务类型",
|
||||
"Kf14d159b": "次",
|
||||
"K753e8aeb": "次/秒",
|
||||
"K396e56ab": "报文量"
|
||||
"Kda249fe8": "请求失败数",
|
||||
"Kcf2df651": "转发失败数",
|
||||
"K7e6a859d": "作用范围",
|
||||
"K3a008b34": "添加条目",
|
||||
"Ke0599ef7": "添加地址",
|
||||
"K48d3b5c4": "文件名称",
|
||||
"Kafde0d2a": "存放目录",
|
||||
"Kfb2926ac": "日志分割周期",
|
||||
"Kd96c2c69": "单位:天",
|
||||
"Kc2b776fa": "输出格式",
|
||||
"K7b7cdac2": "格式化配置",
|
||||
"K2f59807a": "服务器地址",
|
||||
"K540488a8": "NSQD地址列表",
|
||||
"K8bc33a11": "鉴权Secret",
|
||||
"K1cd3002f": "网络协议",
|
||||
"Kdfaa32c8": "日志等级",
|
||||
"Ka46b9b24": "数据源类型",
|
||||
"Kbb0cdcd0": "数据源地址",
|
||||
"Kd9dfb884": "Organization"
|
||||
}
|
||||
|
||||
@@ -1,18 +1,27 @@
|
||||
{
|
||||
"Kfd50704d": "暂无(0)权限,请联系管理员分配。",
|
||||
"K48322168": "未分配",
|
||||
"K98f247f9": "超级管理员",
|
||||
"K9c8a571f": "团队管理员",
|
||||
"K929b485b": "运维管理员",
|
||||
"K82cc5ec2": "普通成员",
|
||||
"Ke41d7451": "只读成员",
|
||||
"Kf99e8b66": "服务管理员",
|
||||
"Kda8db57a": "服务开发者",
|
||||
"K216a1ac7": "应用开发者",
|
||||
"K27924db": "应用管理员",
|
||||
"K8dc5c723": "驱动名称",
|
||||
"K9919285b": "服务类型",
|
||||
"Kf14d159b": "次",
|
||||
"K753e8aeb": "次/秒",
|
||||
"K396e56ab": "报文量"
|
||||
"K54630fe8": "Kafka日志",
|
||||
"Kd5c3966e": "NSQ日志",
|
||||
"K2e3de2c1": "Syslog日志",
|
||||
"Kda249fe8": "请求失败数",
|
||||
"Kcf2df651": "转发失败数",
|
||||
"K7e6a859d": "作用范围",
|
||||
"K3a008b34": "添加条目",
|
||||
"Ke0599ef7": "添加地址",
|
||||
"K48d3b5c4": "文件名称",
|
||||
"Kafde0d2a": "存放目录",
|
||||
"Kfb2926ac": "日志分割周期",
|
||||
"Kd96c2c69": "单位:天",
|
||||
"Kc2b776fa": "输出格式",
|
||||
"K7b7cdac2": "格式化配置",
|
||||
"K2f59807a": "服务器地址",
|
||||
"Kb1cfa6e7": "Access日志",
|
||||
"K540488a8": "NSQD地址列表",
|
||||
"K8bc33a11": "鉴权Secret",
|
||||
"K1cd3002f": "网络协议",
|
||||
"Kdfaa32c8": "日志等级",
|
||||
"Ka46b9b24": "数据源类型",
|
||||
"Kbb0cdcd0": "数据源地址",
|
||||
"Kd9dfb884": "Organization",
|
||||
"K2a49373f": "同步地址",
|
||||
"K21ad4a6a": "(0)报文量"
|
||||
}
|
||||
|
||||
@@ -613,5 +613,5 @@
|
||||
"K8dc5c723": "驱动名称",
|
||||
"Kf14d159b": "次",
|
||||
"K753e8aeb": "次/秒",
|
||||
"K396e56ab": "报文大小"
|
||||
"K21ad4a6a": "(0)报文大小"
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import { DASHBOARD_SETTING_DRIVER_OPTION_LIST } from "../../const/partitions/con
|
||||
import WithPermission from "@common/components/aoplatform/WithPermission";
|
||||
import { BasicResponse, PLACEHOLDER, STATUS_CODE, VALIDATE_MESSAGE } from "@common/const/const";
|
||||
import { useFetch } from "@common/hooks/http";
|
||||
import { $t } from "@common/locales";
|
||||
|
||||
export type DashboardPageShowStatus = 'view'|'edit'
|
||||
|
||||
@@ -55,7 +56,7 @@ export type DashboardSettingEditProps = {
|
||||
autoComplete="off"
|
||||
>
|
||||
<Form.Item<PartitionDashboardConfigFieldType>
|
||||
label="数据源类型"
|
||||
label={$t("数据源类型")}
|
||||
name="driver"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
@@ -63,7 +64,7 @@ export type DashboardSettingEditProps = {
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item<PartitionDashboardConfigFieldType>
|
||||
label="数据源地址"
|
||||
label={$t("数据源地址")}
|
||||
name={['config','addr']}
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
@@ -71,7 +72,7 @@ export type DashboardSettingEditProps = {
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item<PartitionDashboardConfigFieldType>
|
||||
label="Organization"
|
||||
label={$t("Organization")}
|
||||
name={['config','org']}
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
@@ -79,7 +80,7 @@ export type DashboardSettingEditProps = {
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item<PartitionDashboardConfigFieldType>
|
||||
label="鉴权 Token"
|
||||
label={$t("鉴权 Token")}
|
||||
name={['config','token']}
|
||||
>
|
||||
<Input className="w-INPUT_NORMAL" placeholder={$t(PLACEHOLDER.input)}/>
|
||||
@@ -88,11 +89,11 @@ export type DashboardSettingEditProps = {
|
||||
<div className="flex gap-btnbase">
|
||||
<WithPermission access=''>
|
||||
<Button type="primary" htmlType="submit">
|
||||
保存
|
||||
{$t('保存')}
|
||||
</Button>
|
||||
</WithPermission>
|
||||
<Button type="default" onClick={()=>changeStatus('view')}>
|
||||
取消
|
||||
{$t('取消')}
|
||||
</Button>
|
||||
</div>
|
||||
</Form>
|
||||
|
||||
@@ -88,9 +88,9 @@ const PartitionInsideCluster:FC = ()=> {
|
||||
|
||||
export function ClusterConfigPreview (x:PartitionClusterNodeTableListItem){
|
||||
return <div className="flex flex-col gap-[4px] ">
|
||||
<Row className=""><Col className="font-bold text-right pr-[4px]">管理地址:</Col><Col>{x.managerAddress.map(m=>(<p className="leading-[22px]">{m}</p>))}</Col></Row>
|
||||
<Row className=""><Col className="font-bold text-right pr-[4px]">服务地址:</Col><Col>{x.serviceAddress.map(m=>(<p className="leading-[22px]">{m}</p>))}</Col></Row>
|
||||
<Row className=""><Col className="font-bold text-right pr-[4px]">同步地址:</Col><Col><p className="leading-[22px]">{x.peerAddress}</p></Col></Row>
|
||||
<Row className=""><Col className="font-bold text-right pr-[4px]">{$t('管理地址')}:</Col><Col>{x.managerAddress.map(m=>(<p className="leading-[22px]">{m}</p>))}</Col></Row>
|
||||
<Row className=""><Col className="font-bold text-right pr-[4px]">{$t('服务地址')}:</Col><Col>{x.serviceAddress.map(m=>(<p className="leading-[22px]">{m}</p>))}</Col></Row>
|
||||
<Row className=""><Col className="font-bold text-right pr-[4px]">{$t('同步地址')}:</Col><Col><p className="leading-[22px]">{x.peerAddress}</p></Col></Row>
|
||||
</div>}
|
||||
|
||||
export default PartitionInsideCluster
|
||||
@@ -68,7 +68,7 @@ export default function MonitorDetailPage(props:MonitorDetailPageProps){
|
||||
const { timeInterval, tendency } = data
|
||||
setInvokeStatic(tendency)
|
||||
setInvokeStaticError(false)
|
||||
setTimeUnit(getTimeUnit(timeInterval!))
|
||||
setTimeUnit((getTimeUnit(timeInterval!)))
|
||||
// this.invokeLineRef?.changeLineChart()
|
||||
}else{
|
||||
setInvokeStaticError(true)
|
||||
@@ -108,7 +108,7 @@ export default function MonitorDetailPage(props:MonitorDetailPageProps){
|
||||
const { timeInterval, tendency } = data
|
||||
setDetailInvokeStatic(tendency)
|
||||
setDetailInvokeError(false)
|
||||
setTimeUnit(getTimeUnit(timeInterval!))
|
||||
setTimeUnit((getTimeUnit(timeInterval!)))
|
||||
setModalTitle($t('(0)-(1)调用趋势', [entity.name, detailName]))
|
||||
setModalVisible(true);
|
||||
}else{
|
||||
@@ -153,7 +153,7 @@ export default function MonitorDetailPage(props:MonitorDetailPageProps){
|
||||
{invokeStaticError ? <Empty className="mt-[20%]" image={Empty.PRESENTED_IMAGE_SIMPLE}/>: <MonitorLineGraph
|
||||
lineData={invokeStatic}
|
||||
titles={[$t('调用量统计')]}
|
||||
yAxisTitle={timeUnit || '-'}
|
||||
yAxisTitle={$t(timeUnit || '-')}
|
||||
type="invoke"
|
||||
/>}
|
||||
</div>
|
||||
@@ -176,7 +176,7 @@ export default function MonitorDetailPage(props:MonitorDetailPageProps){
|
||||
className="w-[calc(100%-22px)] w-min-[300px]"
|
||||
lineData={detailInvokeStatic!}
|
||||
titles={[$t('调用量统计')]}
|
||||
yAxisTitle={timeUnit || '-'}
|
||||
yAxisTitle={$t(timeUnit || '-')}
|
||||
type="invoke"
|
||||
/>}
|
||||
{/* 这里应该添加图表组件 */}
|
||||
@@ -185,7 +185,7 @@ export default function MonitorDetailPage(props:MonitorDetailPageProps){
|
||||
className="w-[calc(100%-20px)]"
|
||||
lineData={invokeStatic}
|
||||
titles={[$t('调用量统计')]}
|
||||
yAxisTitle={timeUnit || '-'}
|
||||
yAxisTitle={$t(timeUnit || '-')}
|
||||
type="invoke"
|
||||
/>
|
||||
}</>}
|
||||
|
||||
@@ -631,7 +631,7 @@ const MonitorLineGraph: FC<LineGraphProps> = ({ className, lineData, titles, yAx
|
||||
},
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: (lineData as MessageData)?.date.length > 0 ? `${yAxisTitle}${$t('报文量')}(KB)` : '',
|
||||
name: (lineData as MessageData)?.date.length > 0 ? `${$t('(0)报文量',[yAxisTitle])}(KB)` : '',
|
||||
nameLocation: 'end',
|
||||
nameTextStyle: {
|
||||
align: 'left'
|
||||
|
||||
@@ -30,6 +30,11 @@ const MonitorPieGraph: FC<PieGraphProps> = ({ className,title, pieData, labelNam
|
||||
const option: EChartsOption = useMemo(()=>({
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: (params:Array<Record<string,unknown>>) => {
|
||||
console.log(params)
|
||||
const startHtml = '<div><section style="align-items: center;display:flex; justify-content: space-between;flex-wrap: nowrap;"><span> ' + $t(title) + '</span></div>'
|
||||
return startHtml + ($t(params.name || '-') + '    </span><span style="font-weight:bold"> ' + params.value + '</span></section></div>')
|
||||
}
|
||||
},
|
||||
title: [
|
||||
{
|
||||
@@ -54,7 +59,7 @@ const MonitorPieGraph: FC<PieGraphProps> = ({ className,title, pieData, labelNam
|
||||
right: '10',
|
||||
orient: 'vertical',
|
||||
formatter: (name) => {
|
||||
return `{title|${$t(name)}}{percent|${changeNumberUnit(pieData[name]) || '0'}}`;
|
||||
return `{title|${$t(name)}}{percent|${changeNumberUnit(pieData[name]).value ? (changeNumberUnit(pieData[name]).value + $t(changeNumberUnit(pieData[name]).unit)) : '0'}}`;
|
||||
},
|
||||
textStyle: {
|
||||
rich: {
|
||||
@@ -102,13 +107,13 @@ const MonitorPieGraph: FC<PieGraphProps> = ({ className,title, pieData, labelNam
|
||||
<li className="text-[#999999] mt-[16px]">
|
||||
{$t('状态码4XX数')}
|
||||
<span className="text-[#999999] inline-block w-[50px] ml-[10px] text-right">
|
||||
{changeNumberUnit(status4xxCount)}
|
||||
</span>
|
||||
{changeNumberUnit(status4xxCount).value + $t(changeNumberUnit(status4xxCount).unit)}
|
||||
</span>
|
||||
</li>
|
||||
<li className="text-[#999999] mt-[18px]">
|
||||
{$t('状态码5XX数')}
|
||||
<span className="text-[#999999] inline-block w-[50px] ml-[10px] text-right">
|
||||
{changeNumberUnit(status5xxCount)}
|
||||
{changeNumberUnit(status5xxCount).value + $t(changeNumberUnit(status5xxCount).unit)}
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
|
||||
import { ActionType } from "@ant-design/pro-components"
|
||||
import { useImperativeHandle, useRef, useState } from "react"
|
||||
import { useImperativeHandle, useMemo, useRef, useState } from "react"
|
||||
import PageList, { PageProColumns } from "@common/components/aoplatform/PageList"
|
||||
import TableBtnWithPermission from "@common/components/aoplatform/TableBtnWithPermission"
|
||||
import { API_TABLE_GLOBAL_COLUMNS_CONFIG,SERVICE_TABLE_GLOBAL_COLUMNS_CONFIG, APPLICATION_TABLE_GLOBAL_COLUMNS_CONFIG } from "@dashboard/const/const"
|
||||
import {forwardRef} from "react"
|
||||
import { COLUMNS_TITLE } from "@common/const/const"
|
||||
import { Tooltip } from "antd"
|
||||
import { $t } from "@common/locales"
|
||||
import { useGlobalContext } from "@common/contexts/GlobalStateContext"
|
||||
import { StringifyOptions } from "querystring"
|
||||
|
||||
const TableType = {
|
||||
api :API_TABLE_GLOBAL_COLUMNS_CONFIG,
|
||||
@@ -41,6 +45,7 @@ const MonitorTable = forwardRef<MonitorTableHandler, MonitorTableProps<unknown>>
|
||||
const tableRef = useRef<ActionType>(null)
|
||||
const [tableHttpReload, setTableHttpReload] = useState(true);
|
||||
const [tableListDataSource, setTableListDataSource] = useState<unknown[]>([]);
|
||||
const {state} = useGlobalContext()
|
||||
|
||||
useImperativeHandle(ref,()=>({
|
||||
reload: ()=>{tableRef.current?.reload()}
|
||||
@@ -63,6 +68,11 @@ const MonitorTable = forwardRef<MonitorTableHandler, MonitorTableProps<unknown>>
|
||||
})
|
||||
}
|
||||
|
||||
const columns = useMemo(()=>[...TableType[type]].map((x)=>({
|
||||
...x,
|
||||
title:<Tooltip title={$t(x.title as string)}>{$t(x.title as StringifyOptions)}</Tooltip>
|
||||
})),[type, state])
|
||||
|
||||
const operation:PageProColumns<unknown>[] =[
|
||||
{
|
||||
title: COLUMNS_TITLE.operate,
|
||||
@@ -86,7 +96,7 @@ const MonitorTable = forwardRef<MonitorTableHandler, MonitorTableProps<unknown>>
|
||||
besidesTableHeight={inModal ? 64+56+258: undefined}
|
||||
ref={tableRef}
|
||||
showPagination={showPagination}
|
||||
columns = {[...(TableType[type] || []),...operation]}
|
||||
columns = {[...columns,...operation]}
|
||||
request={getTableDataSource}
|
||||
dataSource={tableListDataSource}
|
||||
// tableClickAccess="system.dashboard.self.view"
|
||||
|
||||
@@ -144,7 +144,7 @@ const MonitorTotalPage = (props:MonitorTotalPageProps) => {
|
||||
const { timeInterval, ...arr } = data
|
||||
setInvokeStatic(arr as InvokeData)
|
||||
setInvokeStaticError(false)
|
||||
setTimeUnit(getTimeUnit(timeInterval!))
|
||||
setTimeUnit((getTimeUnit(timeInterval!)))
|
||||
// this.invokeLineRef?.changeLineChart()
|
||||
}else{
|
||||
setInvokeStaticError(true)
|
||||
@@ -258,7 +258,7 @@ const MonitorTotalPage = (props:MonitorTotalPageProps) => {
|
||||
labelName={$t("请求成功率")}
|
||||
labelValue={requestSucRate}
|
||||
subText={$t("请求总数")}
|
||||
subValue={changeNumberUnit(requestStatic?.total)}
|
||||
subValue={changeNumberUnit(requestStatic?.total).value + $t(changeNumberUnit(requestStatic?.total).unit)}
|
||||
status4xxCount={requestStatic?.status_4xx}
|
||||
status5xxCount={requestStatic?.status_5xx}
|
||||
/>}
|
||||
@@ -270,7 +270,7 @@ const MonitorTotalPage = (props:MonitorTotalPageProps) => {
|
||||
labelName={$t("转发成功率")}
|
||||
labelValue={proxySucRate}
|
||||
subText={$t("转发总数")}
|
||||
subValue={changeNumberUnit(proxyStatic?.total)}
|
||||
subValue={`${changeNumberUnit(proxyStatic?.total).value} ${$t(changeNumberUnit(proxyStatic?.total).unit)}`}
|
||||
status4xxCount={proxyStatic?.status_4xx}
|
||||
status5xxCount={proxyStatic?.status_5xx}
|
||||
/>}
|
||||
@@ -282,7 +282,7 @@ const MonitorTotalPage = (props:MonitorTotalPageProps) => {
|
||||
className=" bg-MAIN_BG pt-[16px] border-[1px] border-solid border-BORDER rounded-[10px]"
|
||||
lineData={invokeStatic}
|
||||
titles={[$t('调用量统计')]}
|
||||
yAxisTitle={timeUnit || '-'}
|
||||
yAxisTitle={$t(timeUnit || '-')}
|
||||
type="invoke"
|
||||
/>}
|
||||
{/* 报文量统计折线图 */}
|
||||
@@ -290,7 +290,7 @@ const MonitorTotalPage = (props:MonitorTotalPageProps) => {
|
||||
className=" bg-MAIN_BG pt-[16px] border-[1px] border-solid border-BORDER rounded-[10px]"
|
||||
lineData={trafficStatic}
|
||||
titles={[$t('报文量统计')]}
|
||||
yAxisTitle={timeUnit || '-'}
|
||||
yAxisTitle={$t(timeUnit || '-')}
|
||||
type="traffic"
|
||||
/>}
|
||||
</div>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { MonitorApiData, MonitorData } from "./type"
|
||||
import { EChartsOption } from "echarts-for-react"
|
||||
import { Tooltip } from "antd"
|
||||
import { $t } from "@common/locales"
|
||||
import { } from "@common/locales"
|
||||
import { PageProColumns } from "@common/components/aoplatform/PageList"
|
||||
|
||||
// 监控表格参数
|
||||
export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle:string})[] = [
|
||||
{
|
||||
title:$t('请求总数'),
|
||||
eoTitle:$t('请求总数'),
|
||||
title:('请求总数'),
|
||||
eoTitle:('请求总数'),
|
||||
dataIndex: 'requestTotal',
|
||||
sorter: (a,b)=> {
|
||||
return a.requestTotal - b.requestTotal
|
||||
@@ -17,8 +17,8 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
width: 96
|
||||
},
|
||||
{
|
||||
title: <Tooltip title={$t("请求成功数")} >{$t('请求成功数')}</Tooltip>,
|
||||
eoTitle:$t('请求成功数'),
|
||||
title: '请求成功数',
|
||||
eoTitle:('请求成功数'),
|
||||
dataIndex: 'requestSuccess',
|
||||
width: 106,
|
||||
ellipsis:true,
|
||||
@@ -27,9 +27,8 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
},
|
||||
},
|
||||
{
|
||||
// title:$t('请求成功率',
|
||||
title: <Tooltip title={$t('请求成功率')} >{$t('请求成功率')}</Tooltip>,
|
||||
eoTitle:$t('请求成功率'),
|
||||
title: '请求成功率',
|
||||
eoTitle:('请求成功率'),
|
||||
dataIndex: 'requestRate',
|
||||
valueType:'percent',
|
||||
ellipsis:true,
|
||||
@@ -39,8 +38,8 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
width: 106
|
||||
},
|
||||
{
|
||||
title:$t('转发总数'),
|
||||
eoTitle:$t('转发总数'),
|
||||
title:('转发总数'),
|
||||
eoTitle:('转发总数'),
|
||||
width: 96,
|
||||
dataIndex: 'proxyTotal',
|
||||
ellipsis:true,
|
||||
@@ -49,9 +48,8 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
},
|
||||
},
|
||||
{
|
||||
// title:$t('转发成功数',
|
||||
title: <Tooltip title={$t("转发成功数")} >{$t('转发成功数')}</Tooltip>,
|
||||
eoTitle:$t('转发成功数'),
|
||||
title: '转发成功数',
|
||||
eoTitle:('转发成功数'),
|
||||
width: 106,
|
||||
dataIndex: 'proxySuccess',
|
||||
ellipsis:true,
|
||||
@@ -60,9 +58,8 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
},
|
||||
},
|
||||
{
|
||||
// title:$t('转发成功率',
|
||||
title: <Tooltip title={$t("转发成功率")} >{$t('转发成功率')}</Tooltip>,
|
||||
eoTitle:$t('转发成功率'),
|
||||
title: '转发成功率',
|
||||
eoTitle:('转发成功率'),
|
||||
width: 106,
|
||||
dataIndex: 'proxyRate',
|
||||
valueType:'percent',
|
||||
@@ -72,9 +69,8 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
},
|
||||
},
|
||||
{
|
||||
// title:$t('失败状态码数',
|
||||
title: <Tooltip title={$t("失败状态码数")} >{$t('失败状态码数')}</Tooltip>,
|
||||
eoTitle:$t('失败状态码数'),
|
||||
title: '失败状态码数',
|
||||
eoTitle:('失败状态码数'),
|
||||
width: 120,
|
||||
dataIndex: 'statusFail',
|
||||
ellipsis:true,
|
||||
@@ -83,10 +79,9 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
},
|
||||
},
|
||||
{
|
||||
// title:$t('平均响应时间(ms)',
|
||||
title: <Tooltip title={$t("平均响应时间(ms)")} >{$t('平均响应时间(ms)')}</Tooltip>,
|
||||
eoTitle:$t('平均响应时间(ms)'),
|
||||
width: 148,
|
||||
title:'平均响应时间(ms)',
|
||||
eoTitle:('平均响应时间(ms)'),
|
||||
width: 148,
|
||||
dataIndex: 'avgResp',
|
||||
valueType:'digit',
|
||||
ellipsis:true,
|
||||
@@ -95,10 +90,9 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
},
|
||||
},
|
||||
{
|
||||
// title:$t('最大响应时间(ms)',
|
||||
title: <Tooltip title={$t("最大响应时间(ms)")} >{$t('最大响应时间(ms)')}</Tooltip>,
|
||||
eoTitle:$t('最大响应时间(ms)'),
|
||||
width: 148,
|
||||
title:('最大响应时间(ms)'),
|
||||
eoTitle:('最大响应时间(ms)'),
|
||||
width: 148,
|
||||
dataIndex: 'maxResp',
|
||||
valueType:'digit',
|
||||
ellipsis:true,
|
||||
@@ -107,10 +101,10 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
},
|
||||
},
|
||||
{
|
||||
// title:$t('最小响应时间(ms)',
|
||||
title: <Tooltip title={$t("最小响应时间(ms)")} >{$t('最小响应时间(ms)')}</Tooltip>,
|
||||
eoTitle:$t('最小响应时间(ms)'),
|
||||
width: 148,
|
||||
// title:('最小响应时间(ms)',
|
||||
title: ('最小响应时间(ms)'),
|
||||
eoTitle:('最小响应时间(ms)'),
|
||||
width: 148,
|
||||
dataIndex: 'minResp',
|
||||
valueType:'digit',
|
||||
ellipsis:true,
|
||||
@@ -119,10 +113,10 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
},
|
||||
},
|
||||
{
|
||||
// title:$t('平均请求流量(KB)',
|
||||
title: <Tooltip title={$t("平均请求流量(KB)")} >{$t('平均请求流量(KB)')}</Tooltip>,
|
||||
eoTitle:$t('平均请求流量(KB)'),
|
||||
width: 148,
|
||||
// title:('平均请求流量(KB)',
|
||||
title: '平均请求流量(KB)',
|
||||
eoTitle:('平均请求流量(KB)'),
|
||||
width: 148,
|
||||
dataIndex: 'avgTraffic',
|
||||
valueType:'digit',
|
||||
ellipsis:true,
|
||||
@@ -131,9 +125,8 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
},
|
||||
},
|
||||
{
|
||||
// title:$t('最大请求流量(KB)',
|
||||
title: <Tooltip title={$t("最大请求流量(KB)")} >{$t('最大请求流量(KB)')}</Tooltip>,
|
||||
eoTitle:$t('最大请求流量(KB)'),
|
||||
title:('最大请求流量(KB)'),
|
||||
eoTitle:('最大请求流量(KB)'),
|
||||
width: 148,
|
||||
dataIndex: 'maxTraffic',
|
||||
valueType:'digit',
|
||||
@@ -143,9 +136,8 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
},
|
||||
},
|
||||
{
|
||||
// title:$t('最小请求流量(KB)',
|
||||
title: <Tooltip title={$t("最小请求流量(KB)")} >{$t('最小请求流量(KB)')}</Tooltip>,
|
||||
eoTitle:$t('最小请求流量(KB)'),
|
||||
title:'最小请求流量(KB)',
|
||||
eoTitle:('最小请求流量(KB)'),
|
||||
width: 148,
|
||||
dataIndex: 'minTraffic',
|
||||
valueType:'digit',
|
||||
@@ -159,24 +151,24 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
export const API_TABLE_GLOBAL_COLUMNS_CONFIG:(PageProColumns<MonitorApiData>&{eoTitle:string})[] = [
|
||||
|
||||
{
|
||||
title:$t('API 名称'),
|
||||
eoTitle:$t('API 名称'),
|
||||
dataIndex: 'name',
|
||||
title:('API 名称'),
|
||||
eoTitle:('API 名称'),
|
||||
dataIndex: 'name',
|
||||
width:120,
|
||||
ellipsis:true,
|
||||
fixed: 'left',
|
||||
disable:true
|
||||
},
|
||||
{
|
||||
title:$t('请求路径'),
|
||||
eoTitle:$t('请求路径'),
|
||||
dataIndex: 'path',
|
||||
title:('请求路径'),
|
||||
eoTitle:('请求路径'),
|
||||
dataIndex: 'path',
|
||||
ellipsis:true,
|
||||
width: 80
|
||||
},
|
||||
{
|
||||
title:$t('所属服务'),
|
||||
eoTitle:$t('所属服务'),
|
||||
title:('所属服务'),
|
||||
eoTitle:('所属服务'),
|
||||
dataIndex: ['project','name'],
|
||||
ellipsis:true,
|
||||
width: 80
|
||||
@@ -189,17 +181,17 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
export const APPLICATION_TABLE_GLOBAL_COLUMNS_CONFIG:(PageProColumns<MonitorApiData>&{eoTitle:string})[] = [
|
||||
|
||||
{
|
||||
title:$t('应用名称'),
|
||||
eoTitle:$t('应用名称'),
|
||||
dataIndex: 'name',
|
||||
title:('应用名称'),
|
||||
eoTitle:('应用名称'),
|
||||
dataIndex: 'name',
|
||||
width:160,
|
||||
ellipsis:true,
|
||||
fixed: 'left',
|
||||
disable:true
|
||||
},
|
||||
{
|
||||
title:$t('应用 ID'),
|
||||
eoTitle:$t('应用 ID'),
|
||||
title:('应用 ID'),
|
||||
eoTitle:('应用 ID'),
|
||||
dataIndex: 'id',
|
||||
width: 140,
|
||||
ellipsis:true,
|
||||
@@ -211,8 +203,8 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
export const SERVICE_TABLE_GLOBAL_COLUMNS_CONFIG:(PageProColumns<MonitorApiData>&{eoTitle:string})[] = [
|
||||
|
||||
{
|
||||
title:$t('服务名称'),
|
||||
eoTitle:$t('服务名称'),
|
||||
title:('服务名称'),
|
||||
eoTitle:('服务名称'),
|
||||
dataIndex: 'name',
|
||||
width:160,
|
||||
ellipsis:true,
|
||||
@@ -220,8 +212,8 @@ export const DASHBOARD_BASE_COLUMNS_CONFIG:(PageProColumns<MonitorData>&{eoTitle
|
||||
disable:true
|
||||
},
|
||||
{
|
||||
title:$t('服务 ID'),
|
||||
eoTitle:$t('服务 ID'),
|
||||
title:('服务 ID'),
|
||||
eoTitle:('服务 ID'),
|
||||
dataIndex: 'id',
|
||||
width: 140,
|
||||
ellipsis:true,
|
||||
|
||||
@@ -46,23 +46,23 @@ export function getTime (
|
||||
// 相差秒数
|
||||
switch (timeInterval) {
|
||||
case '1m': {
|
||||
timeUnit = $t('每分钟')
|
||||
timeUnit = ('每分钟')
|
||||
break
|
||||
}
|
||||
case '5m': {
|
||||
timeUnit = $t('每5分钟')
|
||||
timeUnit = ('每5分钟')
|
||||
break
|
||||
}
|
||||
case '1h': {
|
||||
timeUnit = $t('每小时')
|
||||
timeUnit = ('每小时')
|
||||
break
|
||||
}
|
||||
case '1d': {
|
||||
timeUnit = $t('每天')
|
||||
timeUnit = ('每天')
|
||||
break
|
||||
}
|
||||
case '1w': {
|
||||
timeUnit = $t('每周')
|
||||
timeUnit = ('每周')
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -70,15 +70,15 @@ export function getTime (
|
||||
}
|
||||
|
||||
// 当数据超过10万时,保留两个小数点,单位为万,如123212,显示12.32万;
|
||||
export function changeNumberUnit (value?:number):string {
|
||||
export function changeNumberUnit (value?:number):{value:string, unit:string} {
|
||||
if (value && value > 1000000000) {
|
||||
return (value && value / 100000000).toFixed(2) + $t('亿')
|
||||
return {value:(value && value / 100000000).toFixed(2) ,unit: ('亿')}
|
||||
} else if (value && value > 1000000) {
|
||||
return (value && value / 10000).toFixed(0) + $t('万')
|
||||
return {value: (value && value / 10000).toFixed(0) , unit: ('万')}
|
||||
} else if (value && value > 10000) {
|
||||
return (value && value / 10000).toFixed(2) + $t('万')
|
||||
return {value: (value && value / 10000).toFixed(2) , unit: ('万')}
|
||||
}
|
||||
return (value ?? '-') + $t(' 次')
|
||||
return {value: (value ?? '-') + '', unit: (' 次')}
|
||||
}
|
||||
|
||||
export function yUnitFormatter (value:number):string {
|
||||
|
||||
@@ -106,7 +106,7 @@ const ServiceHubDetail = ()=>{
|
||||
{
|
||||
key: 'introduction',
|
||||
label: $t('介绍'),
|
||||
children: <><div className="p-btnbase preview-document" dangerouslySetInnerHTML={{__html: serviceDoc || ''}}></div></>,
|
||||
children: <><div className="p-btnbase preview-document mb-PAGE_INSIDE_B" dangerouslySetInnerHTML={{__html: serviceDoc || ''}}></div></>,
|
||||
icon: <Icon icon="ic:baseline-space-dashboard" width="14" height="14"/>,
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user