123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- import React from 'react'
- import { Button, Tooltip, Col, Popconfirm } from 'antd'
- import { ButtonProps } from 'antd/lib/button/button'
- import { IProject } from 'containers/Projects/types'
- import { IDashboard } from '../types'
- import ModulePermission from 'containers/Account/components/checkModulePermission'
- import ShareDownloadPermission from 'containers/Account/components/checkShareDownloadPermission'
- const utilStyles = require('assets/less/util.less')
- interface IToolbarProps {
- currentProject: IProject
- currentDashboard: IDashboard
- showAddDashboardItem: () => void
- onOpenSharePanel: () => void
- onOpenLinkageConfig: () => void
- onOpenGlobalControlConfig: () => void
- onDownloadDashboard: () => void
- }
- export class Toolbar extends React.PureComponent<IToolbarProps> {
- public render () {
- const { currentDashboard } = this.props
- if (!currentDashboard) { return null }
- const {
- currentProject,
- showAddDashboardItem,
- onOpenSharePanel,
- onOpenLinkageConfig,
- onOpenGlobalControlConfig,
- onDownloadDashboard
- } = this.props
- const AddButton = ModulePermission<ButtonProps>(currentProject, 'viz', true)(Button)
- const ShareButton = ShareDownloadPermission<ButtonProps>(currentProject, 'share')(Button)
- const DownloadButton = ShareDownloadPermission<ButtonProps>(currentProject, 'download')(Button)
- const LinkageButton = ModulePermission<ButtonProps>(currentProject, 'viz', false)(Button)
- const GlobalFilterButton = ModulePermission<ButtonProps>(currentProject, 'viz', false)(Button)
- let addButton
- let shareButton
- let downloadButton
- let linkageButton
- let globalFilterButton
- addButton = (
- <Tooltip placement="bottom" title="新增">
- <AddButton
- type="primary"
- icon="plus"
- style={{marginLeft: '8px'}}
- onClick={showAddDashboardItem}
- />
- </Tooltip>
- )
- shareButton = (
- <Tooltip placement="bottom" title="分享">
- <ShareButton
- type="primary"
- icon="share-alt"
- style={{marginLeft: '8px'}}
- onClick={onOpenSharePanel}
- />
- </Tooltip>
- )
- downloadButton = (
- <Tooltip placement="bottom" title="下载">
- <Popconfirm
- title="点击开始下载"
- placement="bottom"
- onConfirm={onDownloadDashboard}
- >
- <DownloadButton
- type="primary"
- icon="download"
- style={{marginLeft: '8px'}}
- />
- </Popconfirm>
- </Tooltip>
- )
- linkageButton = (
- <Tooltip placement="bottom" title="联动关系配置">
- <LinkageButton
- type="primary"
- icon="link"
- style={{marginLeft: '8px'}}
- onClick={onOpenLinkageConfig}
- />
- </Tooltip>
- )
- globalFilterButton = (
- <Tooltip placement="bottomRight" title="全局控制器配置">
- <GlobalFilterButton
- type="primary"
- icon="filter"
- style={{marginLeft: '8px'}}
- onClick={onOpenGlobalControlConfig}
- />
- </Tooltip>
- )
- return (
- <Col sm={12} className={utilStyles.textAlignRight}>
- {addButton}
- {shareButton}
- {downloadButton}
- {linkageButton}
- {globalFilterButton}
- </Col>
- )
- }
- }
- export default Toolbar
|