diff --git a/frontend/packages/common/src/components/aoplatform/PublishApprovalModalContent.tsx b/frontend/packages/common/src/components/aoplatform/PublishApprovalModalContent.tsx index 6624d5a9..5cc681ff 100644 --- a/frontend/packages/common/src/components/aoplatform/PublishApprovalModalContent.tsx +++ b/frontend/packages/common/src/components/aoplatform/PublishApprovalModalContent.tsx @@ -146,8 +146,20 @@ export const PublishApprovalModalContent = forwardRef( - entity.status === 0 ? $t('正常') : $t('无效')) + render:(_,entity)=> { + switch(entity.change){ + case 'none': + return '-' + case 'new': + return $t('新建') + case 'update': + return $t('更新') + case 'delete': + return $t('删除') + default: + return '-' + } + } }:{}) } }),[state.language]) diff --git a/frontend/packages/common/src/components/aoplatform/UnUsedWordForTranslate.tsx b/frontend/packages/common/src/components/aoplatform/UnUsedWordForTranslate.tsx index d7054118..0c1bd16f 100644 --- a/frontend/packages/common/src/components/aoplatform/UnUsedWordForTranslate.tsx +++ b/frontend/packages/common/src/components/aoplatform/UnUsedWordForTranslate.tsx @@ -181,6 +181,10 @@ export const TranslateWord = ()=>{ {$t('请输入IP地址或CIDR范围,每条以换行分割')} {$t('待更新')} {$t('待删除')} + {$t('内容')} + {$t('调用地址')} + {$t('消费者 IP')} + {$t('鉴权名称')} ) } \ No newline at end of file diff --git a/frontend/packages/common/src/locales/scan/en-US.json b/frontend/packages/common/src/locales/scan/en-US.json index 50c3af57..1863cc04 100644 --- a/frontend/packages/common/src/locales/scan/en-US.json +++ b/frontend/packages/common/src/locales/scan/en-US.json @@ -749,5 +749,19 @@ "K67f4e9bb": "The domain name for obtaining API market documentation information when integrating with external platforms", "K1da86266": "Invalid", "K3a34d49b": "Pending Update", - "Kd2850420": "Pending Deletion" + "Kd2850420": "Pending Deletion", + "K9ada4366": "Operation successful, the page will refresh shortly", + "K9b332ab1": "Request prefix", + "K3d78d483": "HTTP headers", + "K17dc3a62": "Data logs", + "Ke429194e": "Processing logs", + "K84ffb1dd": "Enter the invocation address, consumer IP, and consumer condition to search", + "Kb147fabc": "Create", + "K40ca4f2": "Update", + "K3e7aa0ad": "Content", + "K2f5fdf5e": "Call Address", + "K1bc5e0a3": "Consumer IP", + "K6f39ea21": "Authentication Name", + "K8c34c02f": "Before Masking", + "K8e3d388d": "After Masking" } diff --git a/frontend/packages/common/src/locales/scan/ja-JP.json b/frontend/packages/common/src/locales/scan/ja-JP.json index 3956936e..bd1ab3fc 100644 --- a/frontend/packages/common/src/locales/scan/ja-JP.json +++ b/frontend/packages/common/src/locales/scan/ja-JP.json @@ -771,6 +771,19 @@ "K67f4e9bb": "外部プラットフォームと統合する際に、API市場のドキュメント情報を取得するためのドメイン名", "K1da86266": "無効", "K3a34d49b": "更新待ち", - "Kd2850420": "削除待ち" - + "Kd2850420": "削除待ち", + "K9ada4366": "操作成功、ページを更新します", + "K9b332ab1": "リクエストプレフィックス", + "K3d78d483": "HTTPヘッダー", + "K17dc3a62": "データログ", + "Ke429194e": "ログの処理", + "K84ffb1dd": "呼び出しアドレス、コンシューマーIP、条件を入力して検索", + "Kb147fabc": "新規作成", + "K40ca4f2": "更新", + "K3e7aa0ad": "内容", + "K2f5fdf5e": "呼び出しアドレス", + "K1bc5e0a3": "コンシューマー IP", + "K6f39ea21": "認証名", + "K8c34c02f": "マスキング前", + "K8e3d388d": "マスキング後" } diff --git a/frontend/packages/common/src/locales/scan/zh-CN.json b/frontend/packages/common/src/locales/scan/zh-CN.json index 5dc5f509..41ee0ce3 100644 --- a/frontend/packages/common/src/locales/scan/zh-CN.json +++ b/frontend/packages/common/src/locales/scan/zh-CN.json @@ -702,5 +702,19 @@ "K31faa2a1": "优先级", "Kbdec9fa": "筛选条件", "Kbcbb7391": "处理数", - "Kad207008": "编辑" + "Kad207008": "编辑", + "K9ada4366": "操作成功,即将刷新页面", + "K9b332ab1": "请求前缀", + "K3d78d483": "HTTP 头部", + "K17dc3a62": "数据日志", + "Ke429194e": "处理日志", + "K84ffb1dd": "输入调用地址、消费者IP和消费者条件查找", + "Kb147fabc": "新建", + "K40ca4f2": "更新", + "K3e7aa0ad": "内容", + "K2f5fdf5e": "调用地址", + "K1bc5e0a3": "消费者 IP", + "K6f39ea21": "鉴权名称", + "K8c34c02f": "脱敏前", + "K8e3d388d": "脱敏后" } \ No newline at end of file diff --git a/frontend/packages/common/src/locales/scan/zh-TW.json b/frontend/packages/common/src/locales/scan/zh-TW.json index 1d55c8d0..a7fda4a7 100644 --- a/frontend/packages/common/src/locales/scan/zh-TW.json +++ b/frontend/packages/common/src/locales/scan/zh-TW.json @@ -771,5 +771,19 @@ "K67f4e9bb": "與外部平台集成時,用於獲取 API 市場文檔信息的域名", "K1da86266": "無效", "K3a34d49b": "待更新", - "Kd2850420": "待刪除" + "Kd2850420": "待刪除", + "K9ada4366": "操作成功,即將刷新頁面", + "K9b332ab1": "請求前綴", + "K3d78d483": "HTTP 標頭", + "K17dc3a62": "數據日誌", + "Ke429194e": "處理日誌", + "K84ffb1dd": "輸入調用地址、消費者 IP 和消費者條件進行查找", + "Kb147fabc": "新建", + "K40ca4f2": "更新", + "K3e7aa0ad": "內容", + "K2f5fdf5e": "調用地址", + "K1bc5e0a3": "消費者 IP", + "K6f39ea21": "鑑權名稱", + "K8c34c02f": "脫敏前", + "K8e3d388d": "脫敏後" } diff --git a/frontend/packages/core/src/const/partitions/types.ts b/frontend/packages/core/src/const/partitions/types.ts index ffdb6c56..99d9d507 100644 --- a/frontend/packages/core/src/const/partitions/types.ts +++ b/frontend/packages/core/src/const/partitions/types.ts @@ -1,4 +1,6 @@ +import { PageProColumns } from "@common/components/aoplatform/PageList"; +import { COLUMNS_TITLE } from "@common/const/const"; import { EntityItem } from "@common/const/type"; export type PartitionConfigFieldType = { @@ -113,22 +115,43 @@ export type PartitionDashboardConfigFieldType = { addr: string } } +export type PartitionDataLogHeaderListFieldType = { + key: string + value: string + +} export type PartitionDataLogConfigFieldType = { - create_time: string - id: string - update_time: string - updater: { - id: string - name: string - } - creator: { - id: string - name: string - } - config: { - headers: { - [k: string]: string + headers: PartitionDataLogHeaderListFieldType[] + url: string +} + +export const PARTITION_DATA_LOG_CONFIG_TABLE_COLUMNS: PageProColumns[] = [ + { + title: ('标签'), + dataIndex: 'key', + formItemProps: { + className: 'p-0 bg-transparent border-none', + rootClassName: 'test', + rules: [ + { + required: true, + whitespace: true + }, + ], + }, + ellipsis: true + }, + { + title: ('内容'), + dataIndex: 'value', + formItemProps: { + className: 'p-0 bg-transparent border-none' } - url: string - } -} \ No newline at end of file + }, + { + title: COLUMNS_TITLE.operate, + valueType: 'option', + btnNums: 2, + render: () => null + }, +]; \ No newline at end of file diff --git a/frontend/packages/core/src/pages/partitions/DashboardSettingEdit.tsx b/frontend/packages/core/src/pages/partitions/DashboardSettingEdit.tsx index 8b0f5d69..d133e6ea 100644 --- a/frontend/packages/core/src/pages/partitions/DashboardSettingEdit.tsx +++ b/frontend/packages/core/src/pages/partitions/DashboardSettingEdit.tsx @@ -3,7 +3,7 @@ import { useEffect } from "react"; import { PartitionDashboardConfigFieldType } from "../../const/partitions/types"; import { DASHBOARD_SETTING_DRIVER_OPTION_LIST } from "../../const/partitions/const"; import WithPermission from "@common/components/aoplatform/WithPermission"; -import { BasicResponse, PLACEHOLDER, STATUS_CODE, VALIDATE_MESSAGE } from "@common/const/const"; +import { BasicResponse, PLACEHOLDER, STATUS_CODE } from "@common/const/const"; import { useFetch } from "@common/hooks/http"; import { $t } from "@common/locales"; @@ -29,10 +29,10 @@ export type DashboardSettingEditProps = { fetchData>('monitor/config',{method: 'POST',body:JSON.stringify(value),eoParams:{}}).then(response=>{ const {code,msg} = response if(code === STATUS_CODE.SUCCESS){ - message.success(msg || '操作成功,即将刷新页面') + message.success(msg || $t('操作成功,即将刷新页面')) refreshData?.() }else{ - message.error(msg || '操作失败') + message.error(msg || $t('操作失败')) } }) }) diff --git a/frontend/packages/core/src/pages/partitions/DataLogSettingEdit.tsx b/frontend/packages/core/src/pages/partitions/DataLogSettingEdit.tsx index 0950a105..7dafa743 100644 --- a/frontend/packages/core/src/pages/partitions/DataLogSettingEdit.tsx +++ b/frontend/packages/core/src/pages/partitions/DataLogSettingEdit.tsx @@ -1,18 +1,90 @@ -import { PartitionDataLogConfigFieldType } from "@core/const/partitions/types" +import EditableTable from "@common/components/aoplatform/EditableTable" +import WithPermission from "@common/components/aoplatform/WithPermission" +import { BasicResponse, PLACEHOLDER, STATUS_CODE } from "@common/const/const" +import { useFetch } from "@common/hooks/http" +import { $t } from "@common/locales" +import { PARTITION_DATA_LOG_CONFIG_TABLE_COLUMNS, PartitionDataLogConfigFieldType, PartitionDataLogHeaderListFieldType } from "@core/const/partitions/types" +import { Button, Form, Input, message } from "antd" +import { useEffect } from "react" -export type DashboardPageShowStatus = 'view'|'edit' +export type DashboardPageShowStatus = 'view' | 'edit' export type DashboardSettingEditProps = { - changeStatus:(status:DashboardPageShowStatus)=>void - refreshData:()=>void - data?:PartitionDataLogConfigFieldType + changeStatus: (status: DashboardPageShowStatus) => void + refreshData: () => void + data?: PartitionDataLogConfigFieldType } -const DataLogSettingEdit = (props:DashboardSettingEditProps) => { - const {changeStatus,refreshData,data} = props - return ( -
- 222 -
- ); +const DataLogSettingEdit = (props: DashboardSettingEditProps) => { + const { changeStatus, refreshData, data } = props + const [form] = Form.useForm(); + const { fetchData } = useFetch() + + const onFinish = () => { + form.validateFields().then((value) => { + const formData = { + config: { + url: value.url, + headers: value.headers.filter((item: PartitionDataLogHeaderListFieldType) => item.key).map((item: PartitionDataLogHeaderListFieldType) => ({key:item.key, value:item.value || ''})) + } + } + fetchData>('log/loki', { method: 'POST', body: JSON.stringify(formData), eoParams: {} }).then(response => { + const { code, msg } = response + if (code === STATUS_CODE.SUCCESS) { + message.success(msg || $t('操作成功,即将刷新页面')) + refreshData?.() + } else { + message.error(msg || $t('操作失败')) + } + }) + }) + } + + useEffect(() => { form.setFieldsValue(data) }, [data]) + + useEffect(() => { + return (form.setFieldsValue({})) + }, []); + return ( + <> +
+ +
+ + label={$t("请求前缀")} + name="url" + rules={[{ required: true }]} + > + + + + + label={$t("HTTP 头部")} + name="headers" + > + + configFields={PARTITION_DATA_LOG_CONFIG_TABLE_COLUMNS} + /> + +
+ + + + +
+ +
+
+ + ); } export default DataLogSettingEdit; \ No newline at end of file diff --git a/frontend/packages/core/src/pages/partitions/PartitionInsideDashboardSetting.tsx b/frontend/packages/core/src/pages/partitions/PartitionInsideDashboardSetting.tsx index 59e8e70c..bede0a6f 100644 --- a/frontend/packages/core/src/pages/partitions/PartitionInsideDashboardSetting.tsx +++ b/frontend/packages/core/src/pages/partitions/PartitionInsideDashboardSetting.tsx @@ -8,7 +8,7 @@ import { LoadingOutlined } from "@ant-design/icons"; import InsidePage from "@common/components/aoplatform/InsidePage.tsx"; import { $t } from "@common/locales/index.ts"; import DashboardSettingEdit, { DashboardPageShowStatus } from "./DashboardSettingEdit.tsx"; -import { PartitionDashboardConfigFieldType, PartitionDataLogConfigFieldType } from "@core/const/partitions/types.ts"; +import { PARTITION_DATA_LOG_CONFIG_TABLE_COLUMNS, PartitionDashboardConfigFieldType, PartitionDataLogConfigFieldType } from "@core/const/partitions/types.ts"; import PageList from "@common/components/aoplatform/PageList.tsx"; import DataLogSettingEdit from "./DataLogSettingEdit.tsx"; @@ -43,10 +43,11 @@ const PartitionInsideDashboardSetting: FC = () => { setDataLogLoading(true) return fetchData>('log/loki', { method: 'GET', eoTransformKeys: [] }).then(response => { const { code, data, msg } = response - console.log('data====', data); - if (code === STATUS_CODE.SUCCESS) { - data?.info && setDataLogData(data.info) + data?.info && setDataLogData({ + url: data.info?.config?.url || '', + headers: data.info?.config?.headers || [] + }) setShowDataLogStatus('view') } else { message.error(msg || $t(RESPONSE_TIPS.error)) @@ -66,10 +67,17 @@ const PartitionInsideDashboardSetting: FC = () => { getDataLogSettingInfo() }, []); - const setDashboardSettingBtn = (type: string) => { + const setDashboardSettingBtn = () => { return (<> {showGraphStatus === 'view' && - + + } + ) + } + const setDataLogSettingBtn = () => { + return (<> + {showDataLogStatus === 'view' && + } ) } @@ -94,7 +102,7 @@ const PartitionInsideDashboardSetting: FC = () => { {!loading && !data?.driver && {$t('未配置')} }} - extra={setDashboardSettingBtn('graph')}> + extra={setDashboardSettingBtn()}> {showGraphStatus === 'view' && data && data.driver && DashboardConfigPreview(data)} {showGraphStatus !== 'view' && } @@ -111,7 +119,7 @@ const PartitionInsideDashboardSetting: FC = () => { {!dataLogLoading && !dataLogData && {$t('未配置')} }} - extra={setDashboardSettingBtn('log')}> + extra={setDataLogSettingBtn()}> {showDataLogStatus === 'view' && dataLogData && DataLogConfigPreview(dataLogData)} {showDataLogStatus !== 'view' && } @@ -131,39 +139,29 @@ export function DashboardConfigPreview(x: PartitionDashboardConfigFieldType) { } export function DataLogConfigPreview(x: PartitionDataLogConfigFieldType) { - const columns = [ - { - title: '标签', - dataIndex: 'tag', - }, - { - title: '内容', - dataIndex: 'content' + const columns = PARTITION_DATA_LOG_CONFIG_TABLE_COLUMNS.map(x => { + return { + ...x, + title: ({$t(x.title as string)}) } - ] + }) const getTableList = () => { return new Promise((resolve, reject) => { resolve({ - data: x?.config?.headers ? Object.keys(x?.config?.headers).map((key) => { - return { - tag: key, - content: x?.config?.headers[key] - } - }) : [], + data: x?.headers || [], success: true }) }) } - console.log(getTableList()); return
- {$t('请求前缀')}:{x?.config?.url} + {$t('请求前缀')}:{x?.url} {$t('HTTP 头部')}:
getTableList()} showPagination={false} diff --git a/frontend/packages/core/src/pages/policy/dataMasking/DataMasking.tsx b/frontend/packages/core/src/pages/policy/dataMasking/DataMasking.tsx index 099b4dcb..53331528 100644 --- a/frontend/packages/core/src/pages/policy/dataMasking/DataMasking.tsx +++ b/frontend/packages/core/src/pages/policy/dataMasking/DataMasking.tsx @@ -233,7 +233,6 @@ const DataMasking = (props: any) => { * @param entity */ const openLogsModal = (entity: any) => { - console.log('日志', entity); setStrategy(entity.id) setModalVisible(true) } diff --git a/frontend/packages/core/src/pages/policy/dataMasking/DataMaskingColumn.tsx b/frontend/packages/core/src/pages/policy/dataMasking/DataMaskingColumn.tsx index 76865ce1..75d4921d 100644 --- a/frontend/packages/core/src/pages/policy/dataMasking/DataMaskingColumn.tsx +++ b/frontend/packages/core/src/pages/policy/dataMasking/DataMaskingColumn.tsx @@ -83,7 +83,7 @@ export const DATA_MASKING_TABLE_LOG_COLUMNS: PageProColumns[] = [ width: 200 }, { - title: ('消费者IP'), + title: ('消费者 IP'), dataIndex: 'remote_ip', ellipsis: true, width: 100 @@ -103,7 +103,7 @@ export const DATA_MASKING_TABLE_LOG_COLUMNS: PageProColumns[] = [ { title: ('时间'), dataIndex: 'record_time', - width: 150, + width: 110, ellipsis: true }, ] diff --git a/frontend/packages/core/src/pages/policy/dataMasking/DataMaskingCompare.tsx b/frontend/packages/core/src/pages/policy/dataMasking/DataMaskingCompare.tsx index 62757f29..318bf63a 100644 --- a/frontend/packages/core/src/pages/policy/dataMasking/DataMaskingCompare.tsx +++ b/frontend/packages/core/src/pages/policy/dataMasking/DataMaskingCompare.tsx @@ -62,7 +62,7 @@ const DataMaskingCompare = () => {
- 脱敏前 + {$t('脱敏前')}
{
- 脱敏后 + {$t('脱敏后')}
{ */ const operation: PageProColumns[] = [ { - title: '操作', + title: '', key: 'option', btnNums: 1, fixed: 'right', @@ -89,7 +89,7 @@ const DataMaskingLogModal = (props: any) => { } return { ...x, - title: typeof x.title === 'string' ? $t(x.title as string) : x.title + title: ({$t(x.title as string)}) } }) return res