修改统计

This commit is contained in:
何童崇 2022-03-29 15:17:48 +08:00
parent a4e453a221
commit ba93a044d3
3 changed files with 25 additions and 16 deletions

View File

@ -184,7 +184,7 @@ const Qz2022 = (props) => {
{/* 数据统计 */} {/* 数据统计 */}
<Route path="/competition/qz2022/statistics" <Route path="/competition/qz2022/statistics"
render={ render={
() => (<Statistics {...props} />) () => (<Statistics {...props} qzDetail={qzDetail}/>)
} }
></Route> ></Route>
{/* 后台管理-报名列表 */} {/* 后台管理-报名列表 */}

View File

@ -18,6 +18,8 @@ const colorArr0 = ['rgba(226, 217, 255, 1)', 'rgba(251, 201, 0, 0.36)', 'rgba(14
const colorArr1= ['rgba(155, 128, 245, 1)', 'rgba(254, 140, 0, 1)', 'rgba(37, 109, 255, 1)']; const colorArr1= ['rgba(155, 128, 245, 1)', 'rgba(254, 140, 0, 1)', 'rgba(37, 109, 255, 1)'];
export default ({ id, className, title, legendArr, xData, yData }) => { export default ({ id, className, title, legendArr, xData, yData }) => {
console.log(yData);
useEffect(() => { useEffect(() => {
let newEchartBar = document.getElementById(id) && echarts.init(document.getElementById(id)); let newEchartBar = document.getElementById(id) && echarts.init(document.getElementById(id));
let textColor = "#7988a5"; let textColor = "#7988a5";

View File

@ -23,50 +23,57 @@ const initPieArr = [
]; ];
const initLegendArr = ["战略方向", "前沿技术", "作战领域"]; const initLegendArr = ["战略方向", "前沿技术", "作战领域"];
const initBarYData = [[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]];
function Statistics({ showNotification, match, history }) { function Statistics({ showNotification, qzDetail }) {
const [pieArr, setPieArr] = useState(initPieArr); const [pieArr, setPieArr] = useState(initPieArr);
const [barXData, setBarXData] = useState(['LJLJLJ', 'HJHJHJ', 'KJKJKJ', 'HJJHJJHJJ', 'ZLZYBD', '联勤保障', 'WJWJWJ']); const [barXData, setBarXData] = useState(['LJLJLJ', 'HJHJHJ', 'KJKJKJ', 'HJJHJJHJJ', 'ZLZYBD', '联勤保障', 'WJWJWJ']);
const [legendArr, setLegendArr] = useState(initLegendArr); const [legendArr, setLegendArr] = useState(initLegendArr);
const [barYData, setBarYData] = useState([[3, 2, 3, 4, 2, 4, 7, 5], [3, 2, 3, 4, 7, 2, 4, 5], [3, 2, 2, 3, 4, 2, 4, 5]]); const [barYData, setBarYData] = useState(initBarYData);
const [uploadCount, setUploadCount] = useState(0);
const [enrollCount, setEnrollCount] = useState(0);
useEffect(() => { useEffect(() => {
stattistics().then(res => { stattistics().then(res => {
if (res && Array.isArray(res.data)) { if (res && res.data && Array.isArray(res.data.data)) {
let pieArrList = []; let pieArrList = [];
let xData = []; let xData = [];
let yData1 = [], yData2 = [], yData3 = []; let yData1 = [], yData2 = [], yData3 = [];
let barYDataArr = []; let barYDataArr = [];
res.data.forEach(i => { res.data.data.forEach(i => {
i[0]&&xData.push(i[0].split('分赛区')[0]); i[0] && xData.push(i[0].split('分赛区')[0]);
yData1.push(i[1]); yData1.push(i[1]);
yData2.push(i[2]); yData2.push(i[2]);
yData3.push(i[3]); yData3.push(i[3]);
}); });
setLegendArr(res.competition_subs); setLegendArr(res.data.competition_subs);
setUploadCount(res.data.upload_count);
setEnrollCount(res.data.enroll_count);
setBarXData(xData); setBarXData(xData);
barYDataArr[0] = yData1; barYDataArr[0] = yData1;
barYDataArr[1] = yData2; barYDataArr[1] = yData2;
barYDataArr[2] = yData3; barYDataArr[2] = yData3;
// setBarYData(barYData); setBarYData(barYDataArr);
let yData = []; let yData = [];
yData.push(yData1.reduce((pre, current) => { return pre + current }, 0)); yData.push(yData1.reduce((pre, current) => { return pre + current }, 0));
yData.push(yData2.reduce((pre, current) => { return pre + current }, 0)); yData.push(yData2.reduce((pre, current) => { return pre + current }, 0));
yData.push(yData3.reduce((pre, current) => { return pre + current }, 0)); yData.push(yData3.reduce((pre, current) => { return pre + current }, 0));
res.competition_subs.forEach((item, index) => { res.data.competition_subs.forEach((item, index) => {
pieArrList.push({ pieArrList.push({
name: item, name: item,
value: yData[index], value: yData[index],
}) })
}); });
setPieArr(pieArrList); setPieArr(pieArrList);
}else{
showNotification((res&&res.message) || '请求数据失败!');
} }
}); });
}, []); }, []);
@ -78,7 +85,7 @@ function Statistics({ showNotification, match, history }) {
<div className="num-item sum"> <div className="num-item sum">
<img src={statisticsSum} ></img> <img src={statisticsSum} ></img>
<div className="item-content"> <div className="item-content">
<div className="num-data">12121+</div> <div className="num-data">{enrollCount}+</div>
<div className="num-tit">竞赛总报名数</div> <div className="num-tit">竞赛总报名数</div>
</div> </div>
</div> </div>
@ -86,24 +93,24 @@ function Statistics({ showNotification, match, history }) {
<div className="num-item work"> <div className="num-item work">
<img src={statisticsWork} ></img> <img src={statisticsWork} ></img>
<div className="item-content"> <div className="item-content">
<div className="num-data">1221+</div> <div className="num-data">{uploadCount}+</div>
<div className="num-tit">竞赛总作品提交数</div> <div className="num-tit">竞赛总作品提交数</div>
</div> </div>
</div> </div>
</div> </div>
{/* 外网 */} {/* 外网 */}
{/* <div className="right-echart outside"> {!qzDetail.is_local && <div className="right-echart outside">
<h3 className="type-name">综合赛区报名数</h3> <h3 className="type-name">综合赛区报名数</h3>
<EchartPie <EchartPie
id="network" id="network"
className="echart-box" className="echart-box"
dataList={pieArr} dataList={pieArr}
/> />
</div> */} </div>}
{/* 内网 */} {/* 内网 */}
<div className="right-echart"> {qzDetail.is_local && <div className="right-echart">
<EchartBar <EchartBar
id="newAddedProjects" id="newAddedProjects"
className="echart-box" className="echart-box"
@ -112,7 +119,7 @@ function Statistics({ showNotification, match, history }) {
xData={barXData} xData={barXData}
yData={barYData} yData={barYData}
/> />
</div> </div>}
</div> </div>
) )
} }