diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/Market.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/Market.tsx index e64f6d19a..25080bcb5 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/Market.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/Market.tsx @@ -268,7 +268,13 @@ const ClassMetricTable: React.FC = ({ domainManger, dispatch }) => { params.sensitiveLevel = sensitiveLevelValue; params.type = typeValue; setFilterParams(params); - await queryMetricList(params, filterParams.key ? false : true); + await queryMetricList( + { + ...params, + ...defaultPagination, + }, + filterParams.key ? false : true, + ); }; const rowSelection = { @@ -352,6 +358,7 @@ const ClassMetricTable: React.FC = ({ domainManger, dispatch }) => { tableAlertRender={() => { return false; }} + sticky={{ offsetHeader: 0 }} rowSelection={{ type: 'checkbox', ...rowSelection, diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/ClassMetricTable.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/ClassMetricTable.tsx index 670d4cbda..7af7f11ba 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/ClassMetricTable.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/ClassMetricTable.tsx @@ -1,12 +1,12 @@ import type { ActionType, ProColumns } from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table'; -import { message, Button, Space, Popconfirm, Input } from 'antd'; -import React, { useRef, useState } from 'react'; +import { message, Button, Space, Popconfirm, Input, Select } from 'antd'; +import React, { useRef, useState, useEffect } from 'react'; import type { Dispatch } from 'umi'; import { StatusEnum } from '../enum'; import { connect } from 'umi'; import type { StateType } from '../model'; -import { SENSITIVE_LEVEL_ENUM } from '../constant'; +import { SENSITIVE_LEVEL_ENUM, SENSITIVE_LEVEL_OPTIONS } from '../constant'; import { queryMetric, deleteMetric, @@ -31,11 +31,16 @@ const ClassMetricTable: React.FC = ({ domainManger, dispatch }) => { const [createModalVisible, setCreateModalVisible] = useState(false); const [metricItem, setMetricItem] = useState(); const [selectedRowKeys, setSelectedRowKeys] = useState([]); - const [pagination, setPagination] = useState({ + const [tableData, setTableData] = useState([]); + const [loading, setLoading] = useState(false); + const defaultPagination = { current: 1, pageSize: 20, total: 0, - }); + }; + const [pagination, setPagination] = useState(defaultPagination); + const [filterParams, setFilterParams] = useState>({}); + const actionRef = useRef(); const [downloadLoading, setDownloadLoading] = useState(false); @@ -61,14 +66,19 @@ const ClassMetricTable: React.FC = ({ domainManger, dispatch }) => { message.error(msg); }; + useEffect(() => { + queryMetricList({ ...filterParams, ...defaultPagination }); + }, [filterParams]); + const queryMetricList = async (params: any) => { + setLoading(true); const { code, data, msg } = await queryMetric({ - ...params, ...pagination, + ...params, modelId, }); + setLoading(false); const { list, pageSize, pageNum, total } = data || {}; - let resData: any = {}; if (code === 200) { setPagination({ ...pagination, @@ -76,20 +86,11 @@ const ClassMetricTable: React.FC = ({ domainManger, dispatch }) => { current: pageNum, total, }); - - resData = { - data: list || [], - success: true, - }; + setTableData(list); } else { message.error(msg); - resData = { - data: [], - total: 0, - success: false, - }; + setTableData([]); } - return resData; }; const columns: ProColumns[] = [ @@ -104,13 +105,40 @@ const ClassMetricTable: React.FC = ({ domainManger, dispatch }) => { dataIndex: 'key', title: '指标搜索', hideInTable: true, - renderFormItem: () => , + renderFormItem: () => ( + { + setFilterParams((preState) => { + return { + ...preState, + key: value, + }; + }); + }} + /> + ), }, { dataIndex: 'sensitiveLevel', title: '敏感度', hideInTable: true, valueEnum: SENSITIVE_LEVEL_ENUM, + renderFormItem: () => ( +