Слияние кода завершено, страница обновится автоматически
import { Table } from 'component/antd';
import { SearchAndFilterContainer } from 'container/search-filter';
import { tableFilter } from 'lib/utils';
import { observer } from 'mobx-react';
import * as React from 'react';
import { cluster } from 'store/cluster';
import { topic } from 'store/topic';
import { app } from 'store/app';
import { getAllTopicColumns } from './config';
import { ITopic } from 'types/base-type';
import { pagination } from 'constants/table';
import { topicStatusMap } from 'constants/status-map';
import 'styles/table-filter.less';
@observer
export class AllTopic extends SearchAndFilterContainer {
public state = {
searchKey: ''
};
public componentDidMount() {
if (!cluster.allData.length) {
cluster.getAllClusters();
}
if (!topic.allTopicData.length) {
topic.getAllTopic();
}
if (!app.data.length) {
app.getAppList();
}
}
public getColumns = (data: ITopic[]) => {
const statusColumn = Object.assign({
title: '状态',
dataIndex: 'access',
key: 'access',
width: '10%',
filters: tableFilter<ITopic>(data, 'access', topicStatusMap),
onFilter: (text: number, record: ITopic) => record.access === text,
render: (val: number) => (
<div className={val === 0 ? '' : 'success'}>
{topicStatusMap[val] || ''}
</div>
),
}, this.renderColumnsFilter('filterStatus')) as any;
const columns = getAllTopicColumns(this.urlPrefix);
// columns.splice(-2, 0, statusColumn);
return columns;
}
public getData<T extends ITopic>(origin: T[]) {
let data: T[] = [];
let { searchKey } = this.state;
searchKey = (searchKey + '').trim().toLowerCase();
if (cluster.allActive !== -1 || searchKey !== '') {
data = origin.filter(d =>
((d.topicName !== undefined && d.topicName !== null) && d.topicName.toLowerCase().includes(searchKey as string)
|| ((d.appPrincipals !== undefined && d.appPrincipals !== null) && d.appPrincipals.toLowerCase().includes(searchKey as string)))
&& (cluster.allActive === -1 || d.clusterId === cluster.allActive),
);
} else {
data = origin;
}
return data;
}
public renderTableList(data: ITopic[]) {
return (
<Table
rowKey="key"
columns={this.getColumns(data)}
dataSource={data}
pagination={pagination}
loading={topic.loading}
/>
);
}
public renderTable() {
return this.renderTableList(this.getData(topic.allTopicData));
}
public renderOperationPanel() {
return (
<>
{this.renderAllCluster('集群:')}
{this.renderSearch('名称:', '请输入Topic名称或负责人')}
</>
);
}
public render() {
return (
<div className="container">
<div className="table-operation-panel">
<ul>
{this.renderOperationPanel()}
</ul>
</div>
<div className="table-wrapper">
{this.renderTable()}
</div>
</div>
);
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )