diff --git a/src/military/competition.js b/src/military/competition.js index 60888d75..e4520745 100644 --- a/src/military/competition.js +++ b/src/military/competition.js @@ -10,10 +10,10 @@ import { ImageLayerOfCommentHOC } from "../modules/page/layers/ImageLayerOfComme import './competition/index.scss'; import { Menu, Popover, Spin } from "antd"; import InfoModal from './competition/components/infoModal'; -import banner from './competition/image/banner.jpg'; -import banner_local from './competition/image/banner_local.jpg'; +// import banner from './competition/image/banner.jpg'; +// import banner_local from './competition/image/banner_local.jpg'; import logo from './competition/image/logo.png'; -import { getQz2022, userCompetitionStatus } from "./competition/api"; +import { getCompetitionDetail, userCompetitionStatus } from "./competition/api"; // import { paths } from "./competition/static"; import Login from './components/login'; @@ -49,6 +49,10 @@ const Refer = Loadable({ loader: () => import('./competition/refer'), loading: Loading, }) +const Rank = Loadable({ + loader: () => import('./competition/rank'), + loading: Loading, +}); const Chat = Loadable({ loader: () => import('./competition/chat'), loading: Loading, @@ -66,7 +70,7 @@ const Management = Loadable({ loading: Loading, }) -const Qz2022 = (props) => { +const Competition = (props) => { const { history, current_user, match } = props; const { location } = history; const { pathname } = location; @@ -117,7 +121,7 @@ const Qz2022 = (props) => { useEffect(() => { // 获取竞赛详情 - getQz2022(competitionId).then(response => { + getCompetitionDetail(competitionId).then(response => { if (response && response.status === 200) { setQzDetail(response.data.data); } @@ -149,9 +153,10 @@ const Qz2022 = (props) => { props.showNotification("您还未报名竞赛!"); } else if (enrollStatus && enrollStatus.status === 0) { props.showNotification("报名信息被管理员驳回!"); - } else if (['ccks','zstp2022'].includes(competitionId)&& enrollStatus && enrollStatus.status === 1) { + } else if (['ccks', 'zstp2022'].includes(competitionId) && enrollStatus && enrollStatus.status === 1) { props.showNotification("您的报名信息未通过审核!"); - } else { + } else if(['ccks', 'zstp2022'].includes(competitionId) && applyStatus ){ + }else{ !referStatus ? props.showNotification(!referEnd ? `竞赛尚未开始提交作品,提交作品开始时间为:${qzDetail && qzDetail.enroll_date.substring(0, 10)}` : "比赛已结束") : ""; } } @@ -163,8 +168,8 @@ const Qz2022 = (props) => { {/* banner图+选项 */} - {banner_url&&} - {pathname.indexOf("qz2022")>-1 && } + {banner_url && } + {pathname.indexOf("qz2022") > -1 && }
{/* {paths.indexOf(active) !== -1 && */} @@ -184,16 +189,25 @@ const Qz2022 = (props) => { 通知公告 {/* 处于报名阶段正常跳转到报名页面,不处于右侧弹消息 */} -
  • + {competitionId === 'qz2022' ?
  • { current_user && current_user.login ? !applyStatus && props.showNotification("报名时间已截止") : props.showLoginDialog() }}>参赛报名 +
  • :
  • + 1) && current_user && current_user.login ? `/competition/${competitionId}/apply` : '' }} onClick={() => { current_user && current_user.login ? !applyStatus&& ( enrollStatus && enrollStatus.status<2 ) && props.showNotification("报名时间已截止") : props.showLoginDialog() }}>参赛报名
  • + } {competitionId === 'qz2022' ?
  • 提案提交
  • :
  • - 提案提交 + 1 ? `/competition/${competitionId}/refer` : '' }} onClick={goToRefer}>提案提交
  • } + { + ['ccks', 'zstp2022'].includes(competitionId) &&
  • + 排行榜 +
  • + } + {competitionId === 'qz2022' &&
  • 数据统计
  • } @@ -258,6 +272,12 @@ const Qz2022 = (props) => { () => () } > + {/* 排行榜 */} + () + } + > {/* 交流互动 */} { {/* 大赛介绍 */} (competitionId=='qz2022'? :) + () => (competitionId == 'qz2022' ? : ) } > @@ -317,5 +337,5 @@ export default withRouter( ImageLayerOfCommentHOC({ imgSelector: ".imageLayerParent img, .imageLayerParent .imageTarget", parentSelector: ".newMain", - })(CNotificationHOC()(SnackbarHOC()(TPMIndexHOC(Qz2022)))) + })(CNotificationHOC()(SnackbarHOC()(TPMIndexHOC(Competition)))) ); diff --git a/src/military/competition/api.js b/src/military/competition/api.js index c197c6e6..17740720 100644 --- a/src/military/competition/api.js +++ b/src/military/competition/api.js @@ -5,39 +5,39 @@ export async function userCompetitionStatus(competitionId) { return axios.get(`/competition_infos/${competitionId}/enroll_status.json`); } -// 启智2022详情接口 -export function getQz2022(competitionId) { +// 竞赛详情接口 +export function getCompetitionDetail(competitionId) { return axios.get(`/competition_infos/${competitionId}.json`); } // 报名启智2022 竞赛?debug=teacher -export async function enrollCompetition(data,competitionId){ - return axios.post(`/competition_infos/${competitionId}/enroll.json`,data); +export async function enrollCompetition(data, competitionId) { + return axios.post(`/competition_infos/${competitionId}/enroll.json`, data); } // 修改报名信息 -export async function enrollUpdate(data,competitionId){ - return axios.post(`/competition_infos/${competitionId}/enroll_update.json`,data); +export async function enrollUpdate(data, competitionId) { + return axios.post(`/competition_infos/${competitionId}/enroll_update.json`, data); } // 统计启智2022 竞赛 -export async function stattistics(competitionId){ - return axios.get( `/competition_infos/${competitionId}/statistics.json`); +export async function stattistics(competitionId) { + return axios.get(`/competition_infos/${competitionId}/statistics.json`); } // 竞赛提交作品 -export async function uploadCompetition(data,competitionId){ - return axios.post(`/competition_infos/${competitionId}/upload.json`,data); +export async function uploadCompetition(data, competitionId) { + return axios.post(`/competition_infos/${competitionId}/upload.json`, data); } // 管理-竞赛报名列表?debug=admin -export function getQzEnrollList(params,competitionId) { - return axios.get(`/competition_infos/${competitionId}/enroll_list.json`,params={params}); +export function getEnrollList(params, competitionId) { + return axios.get(`/competition_infos/${competitionId}/enroll_list.json`, params = { params }); } // 管理-竞赛提交作品列表&debug=admin -export function getQzProList(params,competitionId) { - return axios.get(`/competition_infos/${competitionId}/enroll_list.json?upload=true`,params={params}); +export function getProList(params, competitionId) { + return axios.get(`/competition_infos/${competitionId}/enroll_list.json?upload=true`, params = { params }); } // 通知公告列表 @@ -46,36 +46,41 @@ export function getNoticeList(competitionId) { } // 通知公告详情 -export function getNoticeDetail(id,competitionId) { +export function getNoticeDetail(id, competitionId) { return axios.get(`/competition_infos/${competitionId}/competition_notices/${id}.json`); } // 新增通知 -export async function addQz2022Notice(data,competitionId){ - return axios.post(`/competition_infos/${competitionId}/competition_notices.json`,data); +export async function addCompetitionNotice(data, competitionId) { + return axios.post(`/competition_infos/${competitionId}/competition_notices.json`, data); } // 编辑通知 -export async function updateQz2022Notice(id,data,competitionId){ - return axios.put(`/competition_infos/${competitionId}/competition_notices/${id}.json`,data); +export async function updateCompetitionNotice(id, data, competitionId) { + return axios.put(`/competition_infos/${competitionId}/competition_notices/${id}.json`, data); } // 删除通知 -export async function deleteQz2022Notice(id,competitionId){ +export async function deleteCompetitionNotice(id, competitionId) { return axios.delete(`/competition_infos/${competitionId}/competition_notices/${id}.json`); } // 编辑大赛介绍、大赛指南、关于我 -export async function updateQz2022(data,competitionId){ - return axios.put(`/competition_infos/${competitionId}.json`,data); +export async function updateCompetition(data, competitionId) { + return axios.put(`/competition_infos/${competitionId}.json`, data); } // 修改竞赛报名状态 -export async function updateEnroll(data,competitionId){ - return axios.post(`/competition_infos/${competitionId}/enroll_status_update.json`,data); +export async function updateEnroll(data, competitionId) { + return axios.post(`/competition_infos/${competitionId}/enroll_status_update.json`, data); } // 报名表扫描件上传 -export async function updateTemplate(data,competitionId){ - return axios.post(`/competition_infos/${competitionId}/upload_enroll_template.json`,data); +export async function updateTemplate(data, competitionId) { + return axios.post(`/competition_infos/${competitionId}/upload_enroll_template.json`, data); +} + + +export async function rankingList(competitionId, params) { + return axios.get(`/competition_infos/${competitionId}/ranking_list.json`, { params }); } \ No newline at end of file diff --git a/src/military/competition/apply/ccks.jsx b/src/military/competition/apply/ccks.jsx index 95100aba..17213b4e 100644 --- a/src/military/competition/apply/ccks.jsx +++ b/src/military/competition/apply/ccks.jsx @@ -44,7 +44,7 @@ export default Form.create()((props) => { const applyStatus = qzDetail ? Date.parse(new Date()) < Date.parse(new Date(qzDetail.enroll_date)) : true; - if ((current_user && !current_user.login) || !applyStatus) { + if ((current_user && !current_user.login) || (!applyStatus && (enrollStatus && enrollStatus.status<2))) { history.push(`/competition/${competitionId}`); } if ( @@ -77,7 +77,7 @@ export default Form.create()((props) => { // form表单公共处理函数 const helper = useCallback( - (label, name, rules, widget, extra,className) => ( + (label, name, rules, widget, extra, className) => ( {getFieldDecorator(name, { rules, validateFirst: true })(widget)} @@ -96,14 +96,14 @@ export default Form.create()((props) => { // 检查用户填写信息 function checkInfo() { - if(!files.length){ - setFieldsValue({enroll_template_id:''}) + if (!files.length) { + setFieldsValue({ enroll_template_id: '' }) } setErrorMessage(undefined); // 检查用户输入的成员属性是否完全 if (members.length > 0) { let all = 0; - const len =3; + const len = 3; // 用户输入的长度是否满足要求 let sizes = 0; members.map((item) => { @@ -186,7 +186,7 @@ export default Form.create()((props) => { info.file.status === "removed" ) { setFiles(appendFileSizeToUploadFileAll(info.fileList).slice(-1)); - + } } @@ -199,15 +199,15 @@ export default Form.create()((props) => { // 进行文件大小检查 function beforeUpload(file) { const isLt100M = file.size / 1024 / 1024 < 10; - const isType = file.type === "image/png" || file.type === "image/jpg" || file.type === "image/jpeg" ||file.name.endsWith(".zip") || file.name.endsWith(".rar"); - if(!isType){ + const isType = file.type === "image/png" || file.type === "image/jpg" || file.type === "image/jpeg" || file.name.endsWith(".zip") || file.name.endsWith(".rar"); + if (!isType) { message.error("只能上传指定类型文件"); } if (!isLt100M) { message.error("文件大小必须小于10MB"); } - - return isLt100M &&isType; + + return isLt100M && isType; } return ( @@ -218,11 +218,10 @@ export default Form.create()((props) => {
    个人信息 @@ -231,9 +230,8 @@ export default Form.create()((props) => {
    报名审核中 @@ -242,9 +240,8 @@ export default Form.create()((props) => {
    报名成功 @@ -379,7 +376,7 @@ export default Form.create()((props) => {
    {/*

    成员 :

    */} - + {qzDetail && ( { {enrollStatus && enrollStatus.enroll_info.mail}
    - +
    队长单位证明 : @@ -453,28 +450,28 @@ export default Form.create()((props) => { )}
    - {enrollStatus && enrollStatus.enroll_info.members.length ?
    + {enrollStatus && enrollStatus.enroll_info.members.length ?
    成员 : { - return item.real_name + ","; - }) + return item.real_name; + }).join(',') } placement="topLeft" > {enrollStatus && enrollStatus.enroll_info.members && enrollStatus.enroll_info.members.map((item) => { - return item.real_name + ","; - })} + return item.real_name + }).join(',')} -
    :''} +
    : ''}
    - {enrollStatus && enrollStatus.enroll_info.status == 2 &&qzDetail && qzDetail.enroll_template&& ( + {enrollStatus && enrollStatus.enroll_info.status == 2 && qzDetail && qzDetail.enroll_template && ( {enrollStatus && - (!enrollStatus.enroll_status || enrollStatus.status === 0) && ( + (!enrollStatus.enroll_status || enrollStatus.status === 0) && + (