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, checkIsStatusColumn,
getStatusRender, getStatusRender,
getRender, getRender,
getNameRender,
getNameRenderByRouter,
} from 'utils/table'; } from 'utils/table';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { getNoValue } from 'utils/index'; import { getNoValue } from 'utils/index';
@ -80,6 +82,9 @@ export default class SimpleTable extends React.Component {
isStatus, isStatus,
isName, isName,
isPrice, isPrice,
isLink,
routeName,
linkPrefix,
...rest ...rest
} = column; } = column;
if (column.key === 'operation') { if (column.key === 'operation') {
@ -98,8 +103,12 @@ export default class SimpleTable extends React.Component {
if (dataIndex === 'project_name') { if (dataIndex === 'project_name') {
newRender = this.getProjectRender(newRender); newRender = this.getProjectRender(newRender);
} }
if (dataIndex === 'name' || isName) { if ((dataIndex === 'name' && routeName) || isLink) {
newRender = this.getNameRender(newRender, column); const { rowKey } = this.props;
newRender = getNameRenderByRouter(newRender, column, rowKey);
}
if ((dataIndex === 'name' && linkPrefix) || isName) {
newRender = getNameRender(newRender, column);
} }
if (dataIndex === 'cost' || isPrice) { if (dataIndex === 'cost' || isPrice) {
newRender = this.getPriceRender(newRender, column); newRender = this.getPriceRender(newRender, column);
@ -153,38 +162,6 @@ export default class SimpleTable extends React.Component {
return (value) => getNoValue(value); 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) => { getLinkUrl = (prefix, id) => {
if (!prefix) { if (!prefix) {
return null; return null;