12.29 大屏第三版

This commit is contained in:
jl-zhoujl2
2022-12-29 03:26:24 +08:00
parent 576ac70ce4
commit 48dcfe8aef
4 changed files with 125 additions and 202 deletions

File diff suppressed because one or more lines are too long

View File

@ -3,19 +3,19 @@ import React, { useEffect, useRef, useState } from 'react';
import '../style.less' import '../style.less'
import { authCheck, onCell, onHeaderCell, OverviewItem, ProgressItem, proviceEnum, ScreenLabel, ScreenTitle, ScrollTable, StageCard } from '../Home'; import { authCheck, onCell, onHeaderCell, OverviewItem, ProgressItem, proviceEnum, ScreenLabel, ScreenTitle, ScrollTable, StageCard } from '../Home';
import Circle3199 from '@/assets/monitor/circle-3199.png'; import Circle3199 from '@/assets/monitor/circle-3199.png';
import { getDecryptSuccessRateTodayAPI, getTodayInfoAPI } from '../service'; import { getDecryptSuccessRateTodayAPI, getTodayInfoAPI, getTodayOpeningAPI } from '../service';
import { isNotEmpty } from '@/utils/CommonUtils'; import { isNotEmpty } from '@/utils/CommonUtils';
const columns: any[] = [ const columns: any[] = [
{ {
title: '省分', title: '省分',
dataIndex: 'provinceDictId', dataIndex: 'provinceName',
key: 'provinceDictId', key: 'provinceName',
width: '20%', width: '20%',
ellipsis: true, ellipsis: true,
onCell, onCell,
onHeaderCell, onHeaderCell,
render: (_: any, record: any) => proviceEnum[record.provinceDictId], // render: (_: any, record: any) => proviceEnum[record.provinceDictId],
}, },
{ {
title: '项目名称', title: '项目名称',
@ -28,16 +28,16 @@ const columns: any[] = [
}, },
{ {
title: '采购预算', title: '采购预算',
dataIndex: 'number', dataIndex: 'bidSectContractPrice',
key: 'number', key: 'bidSectContractPrice',
width: '30%', width: '30%',
onCell, onCell,
onHeaderCell, onHeaderCell,
}, },
{ {
title: '开标时间', title: '开标时间',
dataIndex: 'time', dataIndex: 'openTime',
key: 'time', key: 'openTime',
width: '20%', width: '20%',
onCell, onCell,
onHeaderCell, onHeaderCell,
@ -180,6 +180,8 @@ const OpenToday: React.FC<{}> = () => {
const [todayInfoData, setTodayInfoData] = useState<any>(); const [todayInfoData, setTodayInfoData] = useState<any>();
//今日开标-解密成功率 //今日开标-解密成功率
const [decryptSuccessRateTodayData, setDecryptSuccessRateTodayData] = useState<any>(); const [decryptSuccessRateTodayData, setDecryptSuccessRateTodayData] = useState<any>();
//今日开标-首页开标数据
const [todayOpeningData, setTodayOpeningData] = useState<any>();
//权限校验 //权限校验
const auth = useRef<boolean>(authCheck()); const auth = useRef<boolean>(authCheck());
//今日开标-评标阶段,评标及时率 //今日开标-评标阶段,评标及时率
@ -198,10 +200,19 @@ const OpenToday: React.FC<{}> = () => {
} }
}) })
} }
//获取今日开标
const getTodayOpening = () => {
getTodayOpeningAPI({ pageSize: 1000, pageNo: 1 }).then(res => {
if (res?.code == 200) {
setTodayOpeningData(res?.data);
}
})
}
useEffect(() => { useEffect(() => {
if (auth.current) { if (auth.current) {
getTodayInfo(); getTodayInfo();
getDecryptSuccessRateToday(); getDecryptSuccessRateToday();
getTodayOpening();
} }
}, []) }, [])
return ( return (
@ -218,9 +229,9 @@ const OpenToday: React.FC<{}> = () => {
</Col> </Col>
<Col span={10}> <Col span={10}>
<div className="monitor-top-space-flex monitor-today-overview-width"> <div className="monitor-top-space-flex monitor-today-overview-width">
<OverviewItem icon={Circle3199} title="标段总数" number={todayInfoData?.sectionNumber} unit="个" /> <OverviewItem icon={Circle3199} title="标段总数" number={isNotEmpty(todayOpeningData?.sectionNumber) ? todayOpeningData?.sectionNumber : 0} unit="个" />
<OverviewItem icon={Circle3199} title="已完成" number={73185} unit="个" /> <OverviewItem icon={Circle3199} title="已完成" number={isNotEmpty(todayOpeningData?.complete) ? todayOpeningData?.complete : 0} unit="个" />
<OverviewItem icon={Circle3199} title="完成率" number={90} unit="%" /> <OverviewItem icon={Circle3199} title="完成率" number={isNotEmpty(todayOpeningData?.rate) ? todayOpeningData?.rate.slice(0, todayOpeningData?.rate.length - 1) : 0} unit="%" />
</div> </div>
<div className="monitor-top-space-flex "> <div className="monitor-top-space-flex ">
<ProgressItem progress={isNotEmpty(decryptSuccessRateTodayData?.successRate) ? Number(decryptSuccessRateTodayData?.successRate) : 0} title="解密成功率" leftTitle='解密成功' rightTitle='解密失败' leftNumber={isNotEmpty(decryptSuccessRateTodayData?.successNum) ? Number(decryptSuccessRateTodayData?.successNum) : 0} rightNumber={isNotEmpty(decryptSuccessRateTodayData?.failNum) ? Number(decryptSuccessRateTodayData?.failNum) : 0} /> <ProgressItem progress={isNotEmpty(decryptSuccessRateTodayData?.successRate) ? Number(decryptSuccessRateTodayData?.successRate) : 0} title="解密成功率" leftTitle='解密成功' rightTitle='解密失败' leftNumber={isNotEmpty(decryptSuccessRateTodayData?.successNum) ? Number(decryptSuccessRateTodayData?.successNum) : 0} rightNumber={isNotEmpty(decryptSuccessRateTodayData?.failNum) ? Number(decryptSuccessRateTodayData?.failNum) : 0} />
@ -242,7 +253,7 @@ const OpenToday: React.FC<{}> = () => {
<Col span={12}> <Col span={12}>
<ScreenLabel title="今日开标明细" /> <ScreenLabel title="今日开标明细" />
<div className='monitor-tender-card'> <div className='monitor-tender-card'>
<ScrollTable dataSource={dataSource} columns={columns} ynum={530} /> <ScrollTable dataSource={todayOpeningData?.todayList} columns={columns} ynum={530} />
</div> </div>
</Col> </Col>
<Col span={12}> <Col span={12}>

File diff suppressed because one or more lines are too long

View File

@ -411,6 +411,8 @@
.monitor-tender-select { .monitor-tender-select {
margin-top: 10px; margin-top: 10px;
display: flex;
justify-content: space-between;
.monitor-tender-select-radio { .monitor-tender-select-radio {
margin-right: 8px; margin-right: 8px;
@ -460,6 +462,14 @@
margin-top: 20px; margin-top: 20px;
height: 760px; height: 760px;
} }
.monitor-label-pointer {
cursor: pointer;
&:hover {
background: rgba(255, 255, 255, 0.15);
}
}
} }
} }