import React, { useState, useEffect } from 'react'; import moment from 'moment'; import { useParams } from 'react-router-dom'; import { Button, Drawer, Utils, Descriptions, Tabs, Input, IconFont, message, Spin, InputNumber } from 'knowdesign'; import TaskDetails from './TeskDetails'; import NodeTraffic from './NodeTraffic'; import RebalancePlan from './RebalancePlan'; import { jobTypeEnum, runningStatusEnum } from './config'; import { timeFormat, getSizeAndUnit } from '../../constants/common'; import Api from '@src/api'; import { CheckOutlined, CloseOutlined } from '@ant-design/icons'; const { request, post } = Utils; const { TabPane } = Tabs; export const ViewJobsProgress = (props: any) => { const urlParams = useParams(); // 获取地址栏参数 const [detailData, setDetailData] = useState(null); const [loading, setLoading] = useState(false); const [positionType, setPositionType] = useState('TeskDetails'); const [editFlowLimitStatus, setEditFlowLimitStatus] = useState(false); // 修改限流状态 const [flowLimit, setFlowLimit] = useState(); // 修改限流数值 const callback = (key: any) => { // setSearchValue(''); // setSearchKeywords(''); setPositionType(key); }; // * 修改限流事件 const editFlowLimit = () => { if (!flowLimit) { message.error('限流值不能为空'); return; } if (flowLimit < 0) { message.error('限流值最小值为0'); return; } const newSize = Utils.transMBToB(flowLimit); post(Api.getJobTraffic(urlParams.clusterId, props?.record?.id, newSize)).then((res) => { message.success('修改限流成功'); getDetailData(); setEditFlowLimitStatus(false); }); }; // * 获取详情和任务明细数据 const getDetailData = () => { setLoading(true); props?.record && request(Api.getJobDetail(urlParams.clusterId, props?.record?.id)) .then((res: any) => { setDetailData(res || []); const newFlowLimit = Utils.transBToMB(res?.flowLimit as number); setFlowLimit(newFlowLimit); // setDetailData(res || mockData); setLoading(false); }) .catch((err) => { setLoading(false); }); }; useEffect(() => { getDetailData(); }, [props?.record]); return ( props.setVisble(false)} destroyOnClose={true} maskClosable={false} > {jobTypeEnum[detailData?.jobType] || '-'} {runningStatusEnum[detailData?.jobStatus] || '-'} {/* 修改限流 */}
{editFlowLimitStatus ? (
setFlowLimit(e)} min={0} max={99999} style={{ width: '150px' }} /> setEditFlowLimitStatus(false)} />
) : ( {detailData?.flowLimit ? Utils.transBToMB(detailData?.flowLimit) + ' MB/s ' : '-'} {runningStatusEnum[detailData?.jobStatus] && runningStatusEnum[detailData?.jobStatus] !== 'Success' ? ( setEditFlowLimitStatus(true)} /> ) : null} )}
{detailData?.planTime ? moment(detailData?.planTime).format(timeFormat) : '-'} {detailData?.startTime ? moment(detailData?.startTime).format(timeFormat) : '-'} {detailData?.endTime ? moment(detailData?.endTime).format(timeFormat) : '-'}
{props?.record?.jobType === 2 && ( )} {/* { } */} {} {}
); };