fix: Fix the value of the name column in the network list which use the simple table

Show id and name to match column headings

Change-Id: Ifea9927b024ae613d2db4f402aa4ad020d767c6e
This commit is contained in:
xusongfu 2021-12-16 13:58:47 +08:00
parent d884b0ba6e
commit 0aaca80308

View File

@ -24,6 +24,8 @@ import {
checkIsStatusColumn,
getStatusRender,
getRender,
getNameRender,
getNameRenderByRouter,
} from 'utils/table';
import { Link } from 'react-router-dom';
import { getNoValue } from 'utils/index';
@ -80,6 +82,9 @@ export default class SimpleTable extends React.Component {
isStatus,
isName,
isPrice,
isLink,
routeName,
linkPrefix,
...rest
} = column;
if (column.key === 'operation') {
@ -98,8 +103,12 @@ export default class SimpleTable extends React.Component {
if (dataIndex === 'project_name') {
newRender = this.getProjectRender(newRender);
}
if (dataIndex === 'name' || isName) {
newRender = this.getNameRender(newRender, column);
if ((dataIndex === 'name' && routeName) || isLink) {
const { rowKey } = this.props;
newRender = getNameRenderByRouter(newRender, column, rowKey);
}
if ((dataIndex === 'name' && linkPrefix) || isName) {
newRender = getNameRender(newRender, column);
}
if (dataIndex === 'cost' || isPrice) {
newRender = this.getPriceRender(newRender, column);
@ -153,38 +162,6 @@ export default class SimpleTable extends React.Component {
return (value) => getNoValue(value);
};
getNameRender = (render, column) => {
if (render) {
return render;
}
const { linkPrefix, dataIndex, idKey, linkPrefixFunc, linkFunc } = column;
const { rowKey } = this.props;
return (value, record) => {
const idValue = get(record, idKey || rowKey);
let url = null;
if (linkFunc) {
url = linkFunc(value, record);
} else {
const linkValue = linkPrefixFunc
? linkPrefixFunc(value, record)
: linkPrefix;
url = this.getLinkUrl(linkValue, idValue);
}
const nameValue = value || get(record, dataIndex) || '-';
if (!url) {
return nameValue;
}
return (
<div>
<div>
<Link to={url}>{idValue}</Link>
</div>
<div>{nameValue}</div>
</div>
);
};
};
getLinkUrl = (prefix, id) => {
if (!prefix) {
return null;