CheckDetail.tsx 1.4 KB
Newer Older
Z
zengqiao 已提交
1
/* eslint-disable react/display-name */
G
GraceWalk 已提交
2
import { Drawer, Spin, Table, Utils } from 'knowdesign';
Z
zengqiao 已提交
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
import React, { useEffect, useState, forwardRef, useImperativeHandle } from 'react';
import { getDetailColumn } from './config';
import API from '../../api';
import { useParams } from 'react-router-dom';

const CheckDetail = forwardRef((props: any, ref): JSX.Element => {
  const [visible, setVisible] = useState(false);
  const [loading, setLoading] = useState(false);
  const [data, setData] = useState([]);
  const { clusterId } = useParams<{ clusterId: string }>();

  useImperativeHandle(ref, () => ({
    setVisible,
    getHealthDetail,
  }));

  const getHealthDetail = () => {
    setLoading(true);
    return Utils.request(API.getResourceListHealthDetail(+clusterId)).then((res: any) => {
      setData(res);
      setLoading(false);
    });
  };

  const onCancel = () => {
    setVisible(false);
  };

  useEffect(() => {
    if (visible) {
      getHealthDetail();
    }
  }, [visible]);

  return (
    <Drawer
      className="drawer-content"
      onClose={onCancel}
      maskClosable={false}
      title="Cluster健康状态详情"
      // title={intl.formatMessage({ id: 'check.detail' })}
      visible={visible}
      placement="right"
      width={1080}
    >
      <Spin spinning={loading}>
        <Table dataSource={data} columns={getDetailColumn(+clusterId)} pagination={false} />
      </Spin>
    </Drawer>
  );
});

export default CheckDetail;