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

OSCHINA-MIRROR/didiopensource-KnowStreaming

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
index.tsx 4.2 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
zengqiao Отправлено 4 лет назад 447a575
import * as React from 'react';
import { observer } from 'mobx-react';
import { Tabs, PageHeader, Button, notification, Popconfirm, Spin } from 'antd';
import { handleTabKey } from 'lib/utils';
import { EassentialInfo } from './essential-info';
import { TaskStatusDetails } from './taskStatus-details';
import { ITasksMetaData, ITrigger } from 'types/base-type';
import { triggerClusterTask } from 'lib/api';
import { handlePageBack } from 'lib/utils';
import { admin } from 'store/admin';
import Url from 'lib/url-parser';
import './index.less';
const { TabPane } = Tabs;
let showStatus: boolean = false;
let showContinue: boolean = false;
@observer
export class OperationDetail extends React.Component {
public taskId: number;
public taskName: string;
public state = {
showContinue: false,
};
constructor(props: any) {
super(props);
const url = Url();
this.taskId = Number(url.search.taskId);
}
public bindClick() {
const type = showContinue ? 'start' : 'pause';
const params = {
taskId: this.taskId,
action: type,
hostname: '',
} as ITrigger;
triggerClusterTask(params).then(data => {
admin.getSubtasksStatus(this.taskId);
notification.success({ message: `${showContinue ? '继续部署' : '暂停'}成功!` });
});
}
public callBackOrCancel(type: string) {
const params = {
taskId: this.taskId,
action: type,
hostname: '',
} as ITrigger;
triggerClusterTask(params).then(data => {
admin.getSubtasksStatus(this.taskId);
notification.success({ message: `${type === 'rollback' ? '回滚任务' : '取消'}成功` });
});
}
public handleVal(value: number) {
showStatus = (value + '').includes('100') ? true : false;
}
public componentDidMount() {
admin.getTasksMetadata(this.taskId);
admin.getSubtasksStatus(this.taskId);
}
public render() {
// 任务状态: 30:运行中(展示暂停), 40:暂停(展示开始), 100:完成(都置灰)
showStatus = admin.taskStatusDetails && admin.taskStatusDetails.status === 100 ? true : false;
showContinue = admin.taskStatusDetails && admin.taskStatusDetails.status === 40 ? true : false;
const showRollBack = admin.taskStatusDetails && admin.taskStatusDetails.rollback;
let tasks = {} as ITasksMetaData;
tasks = admin.tasksMetaData ? admin.tasksMetaData : tasks;
return (
<>
<Spin spinning={admin.loading}>
<PageHeader
className="detail hotspot-header"
onBack={() => handlePageBack('/admin/operation#1')}
title={`任务名称${tasks.taskName ? '/' + tasks.taskName : ''}`}
extra={[
<Button key="1" type="primary" disabled={showStatus} >
<Popconfirm
title={`确定${showContinue ? '开始' : '暂停'}?`}
onConfirm={() => this.bindClick()}
cancelText="取消"
okText="确认"
>
<a>{showContinue ? '开始' : '暂停'}</a>
</Popconfirm>
</Button>,
<Button
key="2"
type="primary"
disabled={showRollBack || showStatus}
>
<Popconfirm
title={`确定回滚?`}
onConfirm={() => this.callBackOrCancel('rollback')}
cancelText="取消"
okText="确认"
>
<a>回滚</a>
</Popconfirm>
</Button>,
<Button
key="3"
type="primary"
disabled={showStatus}
>
<Popconfirm
title={`确定回滚?`}
onConfirm={() => this.callBackOrCancel('cancel')}
cancelText="取消"
okText="确认"
>
<a>取消</a>
</Popconfirm>
</Button>,
]}
>
<Tabs activeKey={location.hash.substr(1) || '1'} type="card" onChange={handleTabKey}>
<TabPane tab="基本信息" key="1">
<EassentialInfo tasksMetaData={tasks} />
</TabPane>
<TabPane tab="任务状态详情" key="2">
<TaskStatusDetails handleVal={(value: number) => this.handleVal(value)} />
</TabPane>
</Tabs>
</PageHeader>
</Spin>
</>
);
}
}

Комментарий ( 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.2.0