Commit 9cbd9102 by zhaochengxiang

资产运营

parent 99f3d960
import React from 'react' import React from 'react'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import { Row, Col, Card, Space, Divider, Badge } from 'antd' import ResizeObserver from 'rc-resize-observer'
import { Row, Col, Card, Space, Divider, Badge, Select, DatePicker } from 'antd'
import Table from '../../../util/Component/Table' import Table from '../../../util/Component/Table'
import { dispatch } from '../../../model' import { dispatch } from '../../../model'
...@@ -53,48 +54,111 @@ export const Header = ({ title }) => ( ...@@ -53,48 +54,111 @@ export const Header = ({ title }) => (
) )
const Summary = ({ data }) => { const Summary = ({ data }) => {
const [contentWidth, setContentWidth] = React.useState()
const colWidth = React.useMemo(() => {
const len = (data??[]).length
if (contentWidth && len>0) {
const len = (data??[]).length
return (contentWidth - (len-1)*10)/len
}
return 0
}, [contentWidth, data])
return ( return (
<Card> <Card size='small'>
<Header title='资产数据概览' /> <Header title='资产数据概览' />
<Row gutter={10} > <ResizeObserver
{ onResize={({ width }) => {
data?.map((item, index) => { setContentWidth(width)
return ( }}
<Col key={index} span={4}> >
<Card> <div className='flex' style={{ justifyContent: 'space-between', alignItems: 'center' }}>
<div {
className='flex' data?.map((item, index) => {
style={{ return (
justifyContent: 'space-between', <div key={index} style={{ width: colWidth }}>
alignItems: 'center' <Card>
}} <div
> className='flex'
<span style={{ color: 'rgba(0, 0, 0, 0.45)' }}>{item.title}</span> style={{
<span style={{ color: 'rgba(0, 0, 0, 0.85)', fontSize: 24 }}>{item.value||0}</span> justifyContent: 'space-between',
</div> alignItems: 'center'
</Card> }}
</Col> >
); <span style={{ color: 'rgba(0, 0, 0, 0.45)' }}>{item.title}</span>
}) <span style={{ color: 'rgba(0, 0, 0, 0.85)', fontSize: 24 }}>{item.value||0}</span>
} </div>
</Row> </Card>
</div>
);
})
}
</div>
</ResizeObserver>
</Card> </Card>
) )
} }
const ResourceStatistic = () => { const ResourceStatistic = () => {
const mockOptions = [
'按资源状态',
]
return ( return (
<Card> <Card size='small'>
<Header title='数据资源统计' /> <Header title='数据资源统计' />
<div className='flex mb-3' style={{ justifyContent: 'space-between', alignItems: 'center' }}>
<Select
onChange={(value) => {
}}
style={{ width: 140 }}
>
{
(mockOptions??[]).map((item, index) => <Select.Option key={index} value={item}>{item}</Select.Option>)
}
</Select>
<DatePicker.RangePicker
format="YYYY-MM-DD"
onChange={(values) => {
// setArgsAndPage({ startTime: (values??[]).length>0?values[0].valueOf():'', endTime: (values??[]).length>1?values[1].valueOf():'' })
}}
style={{ width: 240 }}
/>
</div>
<StackedLine /> <StackedLine />
</Card> </Card>
) )
} }
const AssetStatistic = () => { const AssetStatistic = () => {
const mockOptions = [
'按资源状态',
]
return ( return (
<Card> <Card size='small'>
<Header title='数据资产统计' /> <Header title='数据资产统计' />
<div className='flex mb-3' style={{ justifyContent: 'space-between', alignItems: 'center' }}>
<Select
onChange={(value) => {
}}
style={{ width: 140 }}
>
{
(mockOptions??[]).map((item, index) => <Select.Option key={index} value={item}>{item}</Select.Option>)
}
</Select>
<DatePicker.RangePicker
format="YYYY-MM-DD"
onChange={(values) => {
// setArgsAndPage({ startTime: (values??[]).length>0?values[0].valueOf():'', endTime: (values??[]).length>1?values[1].valueOf():'' })
}}
style={{ width: 240 }}
/>
</div>
<StackedLine /> <StackedLine />
</Card> </Card>
) )
...@@ -154,7 +218,7 @@ const AssetBrowseRank = () => { ...@@ -154,7 +218,7 @@ const AssetBrowseRank = () => {
} }
return ( return (
<Card> <Card size='small'>
<Header title='资产浏览排行榜' /> <Header title='资产浏览排行榜' />
<Table <Table
loading={loading} loading={loading}
...@@ -221,7 +285,7 @@ const AssetNewest = () => { ...@@ -221,7 +285,7 @@ const AssetNewest = () => {
} }
return ( return (
<Card> <Card size='small'>
<Header title='最新发布资产' /> <Header title='最新发布资产' />
<Table <Table
loading={loading} loading={loading}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment