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 f4b916fab..cb99b91d1 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/Market.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/Market.tsx @@ -60,6 +60,8 @@ const ClassMetricTable: React.FC = ({ domainManger, dispatch }) => { const [downloadLoading, setDownloadLoading] = useState(false); + const [hasAllPermission, setHasAllPermission] = useState(true); + const actionRef = useRef(); useEffect(() => { @@ -322,11 +324,25 @@ const ClassMetricTable: React.FC = ({ domainManger, dispatch }) => { const rowSelection = { onChange: (selectedRowKeys: React.Key[]) => { + const permissionList: boolean[] = []; + selectedRowKeys.forEach((id: React.Key) => { + const target = dataSource.find((item) => { + return item.id === id; + }); + if (target) { + permissionList.push(target.hasAdminRes); + } + }); + if (permissionList.includes(false)) { + setHasAllPermission(false); + } else { + setHasAllPermission(true); + } setSelectedRowKeys(selectedRowKeys); }, - getCheckboxProps: (record: ISemantic.IMetricItem) => ({ - disabled: !record.hasAdminRes, - }), + // getCheckboxProps: (record: ISemantic.IMetricItem) => ({ + // disabled: !record.hasAdminRes, + // }), }; const onMenuClick = (key: string) => { @@ -397,6 +413,7 @@ const ClassMetricTable: React.FC = ({ domainManger, dispatch }) => { onDeleteConfirm={() => { queryBatchUpdateStatus(selectedRowKeys, StatusEnum.DELETED); }} + disabledList={hasAllPermission ? [] : ['batchStart', 'batchStop', 'batchDelete']} onMenuClick={onMenuClick} onDownloadDateRangeChange={(searchDateRange, pickerType) => { downloadMetricQuery(selectedRowKeys, searchDateRange, pickerType); diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/data.d.ts b/webapp/packages/supersonic-fe/src/pages/SemanticModel/data.d.ts index 8594a9985..f7ff0923d 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/data.d.ts +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/data.d.ts @@ -194,7 +194,7 @@ export declare namespace ISemantic { domainName: string; modelName: string; modelId: number; - hasAdminRes?: boolean; + hasAdminRes: boolean; type: string; typeParams: ITypeParams; fullPath: string;