diff --git a/src/components/Tables/Base/index.jsx b/src/components/Tables/Base/index.jsx
index 67883600..2cb3642d 100644
--- a/src/components/Tables/Base/index.jsx
+++ b/src/components/Tables/Base/index.jsx
@@ -43,12 +43,12 @@ import {
columnRender,
getValueMapRender,
getUnitRender,
+ getProjectRender,
+ getProjectId,
} from 'utils/table';
import { getNoValue } from 'utils/index';
import { getLocalStorageItem, setLocalStorageItem } from 'utils/local-storage';
-import { getLinkRender } from 'utils/route-map';
import { inject } from 'mobx-react';
-import globalRootStore from 'stores/root';
import CustomColumns from './CustomColumns';
import ItemActionButtons from './ItemActionButtons';
import PrimaryActionButtons from './PrimaryActionButtons';
@@ -322,32 +322,6 @@ export class BaseTable extends React.Component {
return actionList && actionList.length > 0;
};
- getProjectId = (record) =>
- record.project_id || record.owner || record.fingerprint || record.tenant;
-
- getProjectRender = (render) => {
- if (render) {
- return render;
- }
- return (value, record) => {
- const projectId = this.getProjectId(record);
- if (!projectId) {
- return '-';
- }
- const link = getLinkRender({
- key: 'projectDetailAdmin',
- params: { id: projectId },
- value: projectId,
- });
- return (
- <>
-
{globalRootStore.hasAdminRole ? link : projectId}
- {value || '-'}
- >
- );
- };
- };
-
getNoValueRender = (render) => {
if (render) {
return render;
@@ -439,7 +413,7 @@ export class BaseTable extends React.Component {
newRender = this.getNoValueRender(newRender);
}
if (dataIndex === 'project_name') {
- newRender = this.getProjectRender(newRender);
+ newRender = getProjectRender(newRender);
}
if ((dataIndex === 'name' && routeName) || isLink) {
const { rowKey } = this.props;
@@ -565,7 +539,7 @@ export class BaseTable extends React.Component {
it.dataIndex === 'project_name'
) {
fIndex = 'project_id';
- render = (_, record) => this.getProjectId(record);
+ render = (_, record) => getProjectId(record);
}
return [
{
diff --git a/src/components/Tables/SimpleTable/index.jsx b/src/components/Tables/SimpleTable/index.jsx
index 4d43ded3..360e3319 100644
--- a/src/components/Tables/SimpleTable/index.jsx
+++ b/src/components/Tables/SimpleTable/index.jsx
@@ -28,8 +28,8 @@ import {
getNameRenderByRouter,
getValueMapRender,
getUnitRender,
+ getProjectRender,
} from 'utils/table';
-import { Link } from 'react-router-dom';
import { getNoValue } from 'utils/index';
import styles from './index.less';
@@ -111,7 +111,7 @@ export default class SimpleTable extends React.Component {
newRender = this.getNoValueRender(newRender);
}
if (dataIndex === 'project_name') {
- newRender = this.getProjectRender(newRender);
+ newRender = getProjectRender(newRender);
}
if ((dataIndex === 'name' && routeName) || isLink) {
const { rowKey } = this.props;
@@ -141,30 +141,6 @@ export default class SimpleTable extends React.Component {
return newColumn;
});
- getProjectId = (record) =>
- record.project_id || record.owner || record.fingerprint || record.tenant;
-
- getProjectRender = (render) => {
- if (render) {
- return render;
- }
- return (value, record) => {
- const projectId = this.getProjectId(record);
- if (!projectId) {
- return '-';
- }
- const url = `/identity/project-admin/detail/${projectId}`;
- return (
- <>
-
- {projectId}
-
- {value || '-'}
- >
- );
- };
- };
-
getNoValueRender = (render) => {
if (render) {
return render;
diff --git a/src/utils/table.jsx b/src/utils/table.jsx
index 55d84e23..1ac94b81 100644
--- a/src/utils/table.jsx
+++ b/src/utils/table.jsx
@@ -28,6 +28,7 @@ import Status from 'components/Status';
import { renderFilterMap } from 'utils/index';
import { getLinkRender } from 'utils/route-map';
import classnames from 'classnames';
+import globalRootStore from 'stores/root';
const { Paragraph } = Typography;
@@ -312,3 +313,30 @@ export const getUnitRender = (column) => {
}
return null;
};
+
+export const getProjectRender = (render) => {
+ if (render) {
+ return render;
+ }
+ return (value, record) => {
+ const projectId = getProjectId(record);
+ if (!projectId) {
+ return '-';
+ }
+ const { hasAdminRole } = globalRootStore;
+ const hasLink = !!hasAdminRole;
+ let idRender = null;
+ if (hasLink) {
+ const url = `/identity/project-admin/detail/${projectId}`;
+ idRender = {getIdRender(projectId, true, true)};
+ } else {
+ idRender = getIdRender(projectId, true, false);
+ }
+ return (
+ <>
+ {idRender}
+ {value || '-'}
+ >
+ );
+ };
+};