feat: Cluster 图表去掉放大功能

This commit is contained in:
GraceWalk
2022-09-21 16:11:14 +08:00
parent fbfa0d2d2a
commit 1d3caeea7d
4 changed files with 88 additions and 149 deletions

View File

@@ -1,53 +1,20 @@
.cluster-container-border { .cluster-detail-container-border {
background: #ffffff; background: #fff;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.01), 0 3px 6px 3px rgba(0, 0, 0, 0.01), 0 2px 6px 0 rgba(0, 0, 0, 0.03); box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.01), 0 3px 6px 3px rgba(0, 0, 0, 0.01), 0 2px 6px 0 rgba(0, 0, 0, 0.03);
border-radius: 12px; border-radius: 12px;
} }
.cluster-detail-container { .cluster-detail-container {
width: 100%;
&-header {
display: flex;
align-items: center;
height: 36px;
.refresh-icon-box {
display: flex;
justify-content: center;
align-items: center;
width: 22px;
height: 22px;
border-radius: 50%;
cursor: pointer;
.refresh-icon {
font-size: 14px;
color: #74788d;
}
&:hover {
background: #21252904;
.refresh-icon {
color: #495057;
}
}
}
}
&-main { &-main {
.header-chart-container { .header-chart-container {
width: 100%;
height: 244px; height: 244px;
margin-bottom: 12px; margin-bottom: 12px;
.cluster-container-border(); .cluster-detail-container-border();
.dcloud-spin.dcloud-spin-spinning { .dcloud-spin.dcloud-spin-spinning {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 100%; height: 100%;
height: 244px;
} }
} }
@@ -61,7 +28,7 @@
flex: 1; flex: 1;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
.cluster-container-border(); .cluster-detail-container-border();
> div { > div {
width: 100%; width: 100%;
height: 100%; height: 100%;
@@ -73,8 +40,19 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
}
.chart-box { .config-change-records-container {
width: 240px;
height: 100%;
margin-left: 12px;
.cluster-detail-container-border();
}
}
}
}
.cluster-detail-chart-box {
position: relative; position: relative;
width: 100%; width: 100%;
height: 244px; height: 244px;
@@ -107,18 +85,7 @@
} }
} }
} }
} .cluster-detail-chart-box-title {
.config-change-records-container {
width: 240px;
height: 100%;
margin-left: 12px;
.cluster-container-border();
}
}
}
.chart-box-title {
padding: 18px 0 0 20px; padding: 18px 0 0 20px;
font-family: @font-family-bold; font-family: @font-family-bold;
line-height: 16px; line-height: 16px;
@@ -134,4 +101,3 @@
cursor: pointer; cursor: pointer;
} }
} }
}

View File

@@ -15,6 +15,7 @@ import { getDataNumberUnit, getUnit } from '@src/constants/chartConfig';
import SingleChartHeader, { KsHeaderOptions } from '@src/components/SingleChartHeader'; import SingleChartHeader, { KsHeaderOptions } from '@src/components/SingleChartHeader';
import { MAX_TIME_RANGE_WITH_SMALL_POINT_INTERVAL } from '@src/constants/common'; import { MAX_TIME_RANGE_WITH_SMALL_POINT_INTERVAL } from '@src/constants/common';
import RenderEmpty from '@src/components/RenderEmpty'; import RenderEmpty from '@src/components/RenderEmpty';
import DragGroup from '@src/components/DragGroup';
type ChartFilterOptions = Omit<KsHeaderOptions, 'gridNum'>; type ChartFilterOptions = Omit<KsHeaderOptions, 'gridNum'>;
interface MetricInfo { interface MetricInfo {
@@ -279,7 +280,7 @@ const DetailChart = (props: { children: JSX.Element }): JSX.Element => {
}, []); }, []);
return ( return (
<div className="cluster-detail-container"> <div className="chart-panel cluster-detail-container">
<SingleChartHeader <SingleChartHeader
onChange={ksHeaderChange} onChange={ksHeaderChange}
hideNodeScope={true} hideNodeScope={true}
@@ -306,7 +307,7 @@ const DetailChart = (props: { children: JSX.Element }): JSX.Element => {
<Spin spinning={defaultChartLoading}> <Spin spinning={defaultChartLoading}>
{messagesInMetricData.data && ( {messagesInMetricData.data && (
<> <>
<div className="chart-box-title"> <div className="cluster-detail-chart-box-title">
<Tooltip <Tooltip
placement="topLeft" placement="topLeft"
title={() => { title={() => {
@@ -354,14 +355,25 @@ const DetailChart = (props: { children: JSX.Element }): JSX.Element => {
<div className="multiple-chart-container"> <div className="multiple-chart-container">
<div className={!metricDataList.length ? 'multiple-chart-container-loading' : ''}> <div className={!metricDataList.length ? 'multiple-chart-container-loading' : ''}>
<Spin spinning={chartLoading}> <Spin spinning={chartLoading}>
<Row gutter={[16, 16]}>
{metricDataList.length ? ( {metricDataList.length ? (
metricDataList.map((data: any, i: number) => { <div className="no-group-con">
<DragGroup
sortableContainerProps={{
onSortStart: () => 0,
onSortEnd: () => 0,
axis: 'xy',
useDragHandle: false,
}}
gridProps={{
span: 12,
gutter: [16, 16],
}}
>
{metricDataList.map((data: any, i: number) => {
const { metricName, metricUnit, metricLines } = data; const { metricName, metricUnit, metricLines } = data;
return ( return (
<Col key={metricName} span={12}> <div key={metricName} className="cluster-detail-chart-box">
<div className="chart-box"> <div className="cluster-detail-chart-box-title">
<div className="chart-box-title">
<Tooltip <Tooltip
placement="topLeft" placement="topLeft"
title={() => { title={() => {
@@ -379,15 +391,6 @@ const DetailChart = (props: { children: JSX.Element }): JSX.Element => {
</span> </span>
</Tooltip> </Tooltip>
</div> </div>
<div
className="expand-icon-box"
onClick={() => {
setChartDetail(data);
setShowChartDetailModal(true);
}}
>
<IconFont type="icon-chuangkoufangda" className="expand-icon" />
</div>
<SingleChart <SingleChart
chartKey={metricName} chartKey={metricName}
showHeader={false} showHeader={false}
@@ -405,15 +408,15 @@ const DetailChart = (props: { children: JSX.Element }): JSX.Element => {
})} })}
/> />
</div> </div>
</Col>
); );
}) })}
</DragGroup>
</div>
) : chartLoading ? ( ) : chartLoading ? (
<></> <></>
) : ( ) : (
<RenderEmpty message="请先选择指标或刷新" /> <RenderEmpty message="请先选择指标或刷新" />
)} )}
</Row>
</Spin> </Spin>
</div> </div>
</div> </div>
@@ -421,35 +424,6 @@ const DetailChart = (props: { children: JSX.Element }): JSX.Element => {
<div className="config-change-records-container">{props.children}</div> <div className="config-change-records-container">{props.children}</div>
</div> </div>
</div> </div>
{/* 图表详情 */}
<Modal
width={1080}
visible={showChartDetailModal}
centered={true}
footer={null}
closable={false}
onCancel={() => setShowChartDetailModal(false)}
>
<div className="chart-detail-modal-container">
<div className="expand-icon-box" onClick={() => setShowChartDetailModal(false)}>
<IconFont type="icon-chuangkousuoxiao" className="expand-icon" />
</div>
{chartDetail && (
<SingleChart
chartTypeProp="line"
wrapStyle={{
width: 'auto',
height: 462,
}}
propChartData={chartDetail.metricLines}
{...getChartConfig({
metricName: `${chartDetail.metricName}{unit|${chartDetail.metricUnit}}`,
})}
/>
)}
</div>
</Modal>
</div> </div>
); );
}; };

View File

@@ -231,9 +231,10 @@
} }
.chart-panel { .chart-panel {
flex: 1; flex: auto;
margin-left: 12px; margin-left: 12px;
margin-right: 10px; margin-right: 10px;
overflow: hidden;
} }
.change-log-panel { .change-log-panel {

View File

@@ -21,13 +21,11 @@ const SingleClusterDetail = (): JSX.Element => {
</div> </div>
<div className="cluster-detail"> <div className="cluster-detail">
<LeftSider /> <LeftSider />
<div className="chart-panel">
<ChartPanel> <ChartPanel>
<ChangeLog /> <ChangeLog />
</ChartPanel> </ChartPanel>
</div> </div>
</div> </div>
</div>
</> </>
); );
}; };