index.tsx
1.93 KB
1
2
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// 数据流 头部组件
import React, { useEffect, useState } from 'react';
import { Button, Space } from 'antd';
// import { useLocation } from 'umi';
import { useLocation } from 'react-router-dom';
import { QxIcon } from '@/components';
// 样式
import cls from 'classnames';
import styles from './index.module.less';
const prefix = 'qx-data-flow__header';
interface FlowHeaderProps {
handleClick?: (type: string) => void;
type?: 'FLOW' | 'VERSION'; // 数据流 | 数据流详情页 | 流程版本
renderLeft?: React.ReactNode;
title?: string;
renderRight?: React.ReactNode;
extraStyles?: React.CSSProperties;
}
const FlowHeader: React.FC<FlowHeaderProps> = (props) => {
const {
handleClick,
type = 'FLOW',
renderLeft,
title,
renderRight,
extraStyles,
} = props;
// @ts-ignore
const { query } = useLocation();
return (
<header className={cls(styles[`${prefix}`])} style={extraStyles}>
{!!renderLeft ? (
renderLeft
) : (
<div
className={cls(styles[`${prefix}__left`])}
onClick={() => {
handleClick && handleClick('RETURN');
}}
>
<QxIcon
className={cls(styles[`${prefix}__left-return`])}
type={'icon-common-arrow'}
/>
<div className={cls(styles[`${prefix}__left-title`])}>
{title || '数据流'}
</div>
</div>
)}
<div className={cls(styles[`${prefix}__right`])}>
{!!renderRight ? (
renderRight
) : (
<>
{type === 'FLOW' ? (
<Button
type="primary"
// loading={false}
onClick={() => {
handleClick && handleClick('ADD');
}}
>
新建数据流
</Button>
) : null}
</>
)}
</div>
</header>
);
};
export default FlowHeader;