1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/didiopensource-KnowStreaming

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
topic-all.tsx 3 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
孙超 Отправлено 4 лет назад 7f115c1
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 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/didiopensource-KnowStreaming.git
git@gitlife.ru:oschina-mirror/didiopensource-KnowStreaming.git
oschina-mirror
didiopensource-KnowStreaming
didiopensource-KnowStreaming
v2.5.0