S某M修改

This commit is contained in:
何童崇 2022-03-25 16:35:47 +08:00
parent c6de7d0bde
commit a9cb22374d
11 changed files with 286 additions and 17 deletions

View File

@ -34,6 +34,17 @@ const Apply = Loadable({
loader: () => import('./qz2022/apply'),
loading: Loading,
})
<<<<<<< HEAD
=======
const Chat = Loadable({
loader: () => import('./qz2022/chat'),
loading: Loading,
})
const Statistics = Loadable({
loader: () => import('./qz2022/statistics'),
loading: Loading,
})
>>>>>>> 91839339 (S某M修改)
const Management = Loadable({
loader: () => import('./qz2022/management'),
loading: Loading,
@ -131,6 +142,21 @@ const Qz2022 = (props) => {
() => (<Apply {...props} />)
}
></Route>
<<<<<<< HEAD
=======
{/* 交流互动 */}
<Route path="/competition/qz2022/chat"
render={
() => (<Chat {...props} />)
}
></Route>
{/* 数据统计 */}
<Route path="/competition/qz2022/statistics"
render={
() => (<Statistics {...props} />)
}
></Route>
>>>>>>> 91839339 (S某M修改)
{/* 后台管理-报名列表 */}
<Route path="/competition/qz2022/management/applys"
render={

View File

@ -78,22 +78,22 @@ export default Form.create()(({ match, history, showNotification, form, current_
{ max: 32, message: '长度不能超过32个字符' }],
<Input placeholder="请输入职务"/>
)}
{helper('军衔',
{helper('JX',
'expertName',
[{ required: true, message: "军衔不能为空" },
[{ required: true, message: "JX不能为空" },
{ max: 32, message: '长度不能超过32个字符' }],
<Input placeholder="请输入军衔"/>
<Input placeholder="请输入JX"/>
)}
{helper('赛区',
'expertName',
[{ required: true, message: "军衔不能为空" }],
[{ required: true, message: "JX不能为空" }],
<Select placeholder="请选择赛区">
{competitionArea.map(item=> {return <Option value={item.value} key={item.value}>{item.title}</Option>})}
</Select>
)}
{helper('赛项',
'expertName',
[{ required: true, message: "军衔不能为空" }],
[{ required: true, message: "JX不能为空" }],
<Select placeholder="请选择赛项">
{competitionType.map(item=> {return <Option value={item.value} key={item.value}>{item.title}</Option>})}
</Select>
@ -123,7 +123,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
<div><span>参赛单位 : </span></div>
<div className="info-right"><span>参赛团队负责人姓名 : </span></div>
<div><span>职务 : </span></div>
<div className="info-right"><span>军衔 : </span></div>
<div className="info-right"><span>JX : </span></div>
<div><span>赛区 : </span></div>
<div className="info-right"><span>赛项 : </span></div>
<div><span>课题来源 : </span></div>

View File

@ -86,7 +86,7 @@ class EditableTable extends React.Component {
editable: true,
},
{
title: '军衔',
title: 'JX',
dataIndex: 'militaryRank',
editable: true,
},

View File

@ -15,10 +15,10 @@ function Introduce({ form, showNotification, match, history }) {
return (
<div className="introduce">
<div className="introduce-content clearfix">
<div className="introduce-video"><video src="http://111.8.36.180:8000/preview/93579e3f4bc0ba33075a905c08c79322_1648171321186.mp4" autoPlay controls></video></div>
<div className="introduce-video"><video src="http://111.8.36.180:8000/preview/93579e3f4bc0ba33075a905c08c79322_1648197024501.mp4" autoPlay controls></video></div>
<div className="introduce-info">
<h3 className="info-tit">启智2022作战概念·事需求创新大赛</h3>
<h3 className="info-tit">启智2022作战概念·事需求创新大赛</h3>
{/* <div className="info-content"> */}
<p className="content-item">创客以用户创新为核心理念是面向知识社会
的创新2.0模式在设计与制造领域的典型体现

View File

@ -40,7 +40,7 @@ function Introduce({ form, showNotification, match, history:{location:{pathname}
key: 'reviewEndOn',
},
{
title: '军衔',
title: 'JX',
dataIndex: 'surplus',
key: 'surplus',
},

View File

@ -25,7 +25,7 @@ function NoticeDetail({ form, showNotification, match, history }) {
</div>
<div className="notice_title _1818 font-18">启智2022大赛即将开始报名!</div>
<div className="notice_time">发布时间: 2021年3月31日</div>
<div className="_1818">启智 2022 创意征集行动军委联合参谋部科学技术委员会联合举办军事科学院航天科技集团协手创办的大型竞赛现竞赛已临近报名阶段报名安排如下:</div>
<div className="_1818">启智 2022 创意征集行动JW联合参谋部科学技术委员会联合举办JS科学院航天科技集团协手创办的大型竞赛现竞赛已临近报名阶段报名安排如下:</div>
<div className="_1818 notice_small_title">报名时间</div>
<div className="_1818">2022年4月1日~2022年4月30日</div>

View File

@ -19,7 +19,7 @@ function Notice({ form, showNotification, match, history }) {
<Link to={"/competition/qz2022/notice/1"}>
<div className="qz_notice_cont">
<div className="notCont_head">启智2022大赛即将开始报名!</div>
<div className="font-15">启智 2022 创意征集行动军委联合参谋部科学技术委员会联合举办军事科学院航天科技集团协手创办的大型竞赛现竞赛已临近报名阶段报名安排如下...</div>
<div className="font-15">启智 2022 创意征集行动JW联合参谋部科学技术委员会联合举办JS科学院航天科技集团协手创办的大型竞赛现竞赛已临近报名阶段报名安排如下...</div>
<p>2022-03-31</p>
</div>
</Link>

View File

@ -2,13 +2,13 @@
// 赛项*必填项placeholder请选择赛项下拉列表选择选项为战略方向作战领域前沿技术
// 赛区配置
export const competitionArea = [
{ value: '0', title: "陆军分赛区"},
{ value: '1', title: "海军分赛区"},
{ value: '2', title: "空军分赛区"},
{ value: '3', title: "火箭军分赛区"},
{ value: '0', title: "LJ分赛区"},
{ value: '1', title: "HJ分赛区"},
{ value: '2', title: "KJ分赛区"},
{ value: '3', title: "HJJ分赛区"},
{ value: '4', title: "战略支援部队分赛区"},
{ value: '5', title: "联勤保障分赛区"},
{ value: '6', title: "武军部队分赛区"}
{ value: '6', title: "WJ部队分赛区"}
];
// 赛项配置
export const competitionType = [

View File

@ -0,0 +1,152 @@
import React, { useEffect } from 'react';
import * as echarts from 'echarts';
let fontSizeText = 16;
let clientWidth = document.body.clientWidth;
if (clientWidth < 1000) {
fontSizeText = 16
} else if (clientWidth >= 1000 && clientWidth <= 2000) {
fontSizeText = 14 + (clientWidth - 1000) / 500;
} else if (clientWidth > 2000) {
fontSizeText = 16 + (clientWidth - 2000) / 500;
} else if (clientWidth > 3000) {
fontSizeText = 18 + (clientWidth - 3000) / 2000;
}
let fontSizeTitle = 1.25 * fontSizeText;
export default ({ id,className, title, xData, yData }) => {
useEffect(() => {
let newEchartBar = document.getElementById(id) && echarts.init(document.getElementById(id));
let textColor = "#7988a5";
let normalColor = "#e8e8ed";
let option = {
grid: {
left: "3%",
top: "15%",
right: "8%",
bottom: 0,
containLabel: true
},
title: {
text: title,
fontSize: fontSizeTitle,
position: 'inside',
textStyle: {
color: textColor
}
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
textStyle: {
color: "#fff"
}
},
},
xAxis: [{
type: "category",
data: xData,
axisPointer: {
type: "shadow"
},
axisLabel: {
textStyle: {
color: textColor,
fontSize: .75 * fontSizeText
},
interval: 0,
rotate: 40
},
axisLine: {
lineStyle: {
color: normalColor
}
},
axisTick: {
show: false
},
splitLine: {
show: false
}
}],
yAxis: [{
type: "value",
minInterval: 1,
nameTextStyle: {
color: textColor,
fontSize: fontSizeText
},
axisLabel: {
formatter: "{value}",
textStyle: {
color: textColor,
fontSize: fontSizeText
}
},
axisLine: {
lineStyle: {
color: normalColor
}
},
axisTick: {
show: false
},
splitLine: {
lineStyle: {
color: normalColor
}
},
}],
series: [{
type: "bar",
data: yData,
barWidth: "60%",
itemStyle: {
normal: {
color: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: "#deeefe"
},
{
offset: 1,
color: "#2c8bff"
}
],
globalCoord: false
}
}
},
label: {
show: true,
// position: ['-20%', -1.2 * fontSizeText],
position: "top",
// color: "#2c8bff",
color: '#555',
fontSize: fontSizeText,
formatter: function (params) {
// var percent = 0;
// percent = ((params.value / allStaff.num) * 100).toFixed(0);
return params.value || ''
// + '\n' + percent + '%';
},
}
}]
};
newEchartBar && newEchartBar.setOption(option);
}, [id, title, xData, yData])
return (
<div id={id} key={id} className={className} style={{minHeight:"20vh"}}>
</div>
)
}

View File

@ -0,0 +1,30 @@
import React from "react";
import btn from "../image/btn-right.png";
import './index.scss';
import '../../index.scss';
function Statistics({ form, showNotification, match, history }) {
return (
<div className="statistics qz_main clearfix">
<div className="statistics-words">
<div className="statistics-tit">交流互动</div>
<div className="statistics-content">
<p>集萃群智体会</p>
<p>与论坛成员交流比赛经验分享参赛心得</p>
<p>汇聚赛事资讯</p>
<p>助您第一时间解读竞赛动态把握赛事脉搏</p>
</div>
<div className="statistics-btn">
<span className="detail1">了解详情</span>
<img
className="iconPlay1"
src={btn}
/>
</div>
</div>
</div>
)
}
export default Statistics;

View File

@ -0,0 +1,61 @@
.statistics {
margin: 9rem auto;
padding: 0 1.5rem;
background: #fff;
.statistics-left {
float: left;
position: relative;
top: -5rem;
width: 56.6%;
box-shadow: 0px 3px 8px rgba(219, 227, 255, 0.7) inset;
margin-bottom: -3.5rem;
padding: 1.25rem;
}
.statistics-words {
display: inline-block;
padding: 1.5rem;
}
.statistics-tit {
display: inline-block;
font-weight: 700;
color: #2e3341;
font-size: 1.25rem;
line-height: 1rem;
&::after {
content: "";
display: inline-block;
width: 100%;
height: 1px;
background-color: #2e5bfe;
}
}
.statistics-conten {
font-size: 1rem;
line-height: 1.625rem;
}
.statistics-btn {
margin-top:1.5rem;
width: 9.5rem;
height: 2.5rem;
display: flex;
justify-content: space-between;
align-items: center;
border: 2px solid #2e5bfe;
background-color: #2e5bfe;
}
.detail1 {
white-space: nowrap;
color: #ffffff;
font-size: 1rem;
font-weight: 400;
margin-left:1em;
}
.iconPlay1 {
height: 100%;
}
}