|
@@ -1,7 +1,7 @@
|
|
|
import React, { useEffect, useCallback, useMemo, useState } from 'react'
|
|
|
import styles from './index.module.scss'
|
|
|
import { useDispatch, useSelector } from 'react-redux'
|
|
|
-import { Clue_APIgetClueList } from '@/store/action/clue'
|
|
|
+import { Clue_APIgetClueList, getTopinfo } from '@/store/action/clue'
|
|
|
import { RootState } from '@/store'
|
|
|
import store from '@/store'
|
|
|
import { ClueItem } from '@/types/api/clue'
|
|
@@ -15,6 +15,7 @@ type LeftProps = {
|
|
|
}
|
|
|
function Left(props: LeftProps) {
|
|
|
const dispatch = useDispatch()
|
|
|
+ const [topInfo, setTopInfo] = useState<any>()
|
|
|
const getListFu = useCallback(
|
|
|
(pageNum: number, pageSize: number) => {
|
|
|
dispatch(
|
|
@@ -27,11 +28,18 @@ function Left(props: LeftProps) {
|
|
|
[dispatch]
|
|
|
)
|
|
|
|
|
|
+ const getTopinfoFu = useCallback(async () => {
|
|
|
+ const res = await dispatch(getTopinfo() as any)
|
|
|
+ console.log('res', JSON.parse(res.rtf))
|
|
|
+ setTopInfo(JSON.parse(res.rtf))
|
|
|
+ }, [dispatch])
|
|
|
+
|
|
|
const { list: listAll, total } = useSelector((state: RootState) => state.Clue.tableInfo)
|
|
|
|
|
|
useEffect(() => {
|
|
|
getListFu(1, 20)
|
|
|
- }, [getListFu])
|
|
|
+ getTopinfoFu()
|
|
|
+ }, [getListFu, getTopinfoFu])
|
|
|
|
|
|
const fingingList = useMemo(() => {
|
|
|
return listAll.filter((item: ClueItem) => item.status === '跟进中')
|
|
@@ -64,19 +72,40 @@ function Left(props: LeftProps) {
|
|
|
<div className={classNames(styles.Left, props.classN)}>
|
|
|
<div className='infoContainer'>
|
|
|
<div className='topInfo'>
|
|
|
- <div className='finding'>
|
|
|
+ <div className='topInfoItem'>
|
|
|
+ <div className='title'>
|
|
|
+ <img src={require('@/assets/img/buried.png')} alt='' />
|
|
|
+ <div>安葬烈士</div>
|
|
|
+ </div>
|
|
|
+ <div className='num'>{topInfo?.[0].pcs}</div>
|
|
|
+ </div>
|
|
|
+ <div className='topInfoItem'>
|
|
|
+ <div className='title'>
|
|
|
+ <img src={require('@/assets/img/person.png')} alt='' />
|
|
|
+ <div>有名烈士</div>
|
|
|
+ </div>
|
|
|
+ <div className='num'>{topInfo?.[1].pcs}</div>
|
|
|
+ </div>
|
|
|
+ <div className='topInfoItem'>
|
|
|
+ <div className='title'>
|
|
|
+ <img src={require('@/assets/img/person.png')} alt='' />
|
|
|
+ <div>无名烈士</div>
|
|
|
+ </div>
|
|
|
+ <div className='num'>{topInfo?.[2].pcs}</div>
|
|
|
+ </div>
|
|
|
+ <div className='topInfoItem'>
|
|
|
<div className='title'>
|
|
|
<img src={require('@/assets/img/finding.png')} alt='' />
|
|
|
<div>寻亲中</div>
|
|
|
</div>
|
|
|
- <div className='num'>{fingingList.length}</div>
|
|
|
+ <div className='num'>{topInfo?.[3].pcs}</div>
|
|
|
</div>
|
|
|
- <div className='found'>
|
|
|
+ <div className='topInfoItem'>
|
|
|
<div className='title'>
|
|
|
<img src={require('@/assets/img/found.png')} alt='' />
|
|
|
<div>已找到</div>
|
|
|
</div>
|
|
|
- <div className='num'>{foundList.length}</div>
|
|
|
+ <div className='num'>{topInfo?.[4].pcs}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div className='mainInfoBox'>
|