From 45dde95b5f9282e9035e12122d6f63145d57e3d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=AB=A5=E5=B4=87?= Date: Thu, 30 Jun 2022 17:19:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9ccks=E6=8F=90=E6=A1=88?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/military/competition.js | 35 +++- src/military/competition/api.js | 53 ++--- src/military/competition/apply/ccks.jsx | 48 +++-- src/military/competition/image/ccks_csv.png | Bin 0 -> 1762 bytes .../competition/image/ccks_upload.png | Bin 0 -> 7172 bytes .../competition/image/ccks_upload_success.png | Bin 0 -> 9506 bytes src/military/competition/image/rank_bg1.png | Bin 0 -> 1066736 bytes src/military/competition/image/rank_bg2.png | Bin 0 -> 946594 bytes src/military/competition/image/rank_first.png | Bin 0 -> 6863 bytes .../competition/image/rank_second.png | Bin 0 -> 5365 bytes src/military/competition/image/rank_start.png | Bin 0 -> 20384 bytes src/military/competition/image/rank_third.png | Bin 0 -> 7207 bytes src/military/competition/image/rank_tit.png | Bin 0 -> 988 bytes src/military/competition/rank/index.jsx | 88 ++++++++ src/military/competition/rank/index.scss | 123 ++++++++++++ src/military/competition/refer/ccks.jsx | 180 +++++++++++++++++ src/military/competition/refer/index.jsx | 153 +------------- src/military/competition/refer/index.scss | 188 +++++++++++++----- src/military/competition/refer/qz2022.jsx | 152 ++++++++++++++ 19 files changed, 776 insertions(+), 244 deletions(-) create mode 100644 src/military/competition/image/ccks_csv.png create mode 100644 src/military/competition/image/ccks_upload.png create mode 100644 src/military/competition/image/ccks_upload_success.png create mode 100644 src/military/competition/image/rank_bg1.png create mode 100644 src/military/competition/image/rank_bg2.png create mode 100644 src/military/competition/image/rank_first.png create mode 100644 src/military/competition/image/rank_second.png create mode 100644 src/military/competition/image/rank_start.png create mode 100644 src/military/competition/image/rank_third.png create mode 100644 src/military/competition/image/rank_tit.png create mode 100644 src/military/competition/rank/index.jsx create mode 100644 src/military/competition/rank/index.scss create mode 100644 src/military/competition/refer/ccks.jsx create mode 100644 src/military/competition/refer/qz2022.jsx diff --git a/src/military/competition.js b/src/military/competition.js index 677d035e..797f0397 100644 --- a/src/military/competition.js +++ b/src/military/competition.js @@ -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, @@ -149,9 +153,11 @@ const Competition = (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 +169,8 @@ const Competition = (props) => { {/* banner图+选项 */} - {banner_url&&} - {pathname.indexOf("qz2022")>-1 && } + {banner_url && } + {pathname.indexOf("qz2022") > -1 && }
{/* {paths.indexOf(active) !== -1 && */} @@ -184,16 +190,25 @@ const Competition = (props) => { 通知公告 {/* 处于报名阶段正常跳转到报名页面,不处于右侧弹消息 */} -
  • + {competitionId === 'qz2022' ?
  • { current_user && current_user.login ? !applyStatus && props.showNotification("报名时间已截止") : props.showLoginDialog() }}>参赛报名 +
  • :
  • + { current_user && current_user.login ? !applyStatus&& ( enrollStatus && !enrollStatus.enroll_status ) && props.showNotification("报名时间已截止") : props.showLoginDialog() }}>参赛报名
  • + } {competitionId === 'qz2022' ?
  • 提案提交
  • :
  • - 提案提交 + 1 ? `/competition/${competitionId}/refer` : '' }} onClick={goToRefer}>提案提交
  • } + { + ['ccks', 'zstp2022'].includes(competitionId) &&
  • + 排行榜 +
  • + } + {competitionId === 'qz2022' &&
  • 数据统计
  • } @@ -258,6 +273,12 @@ const Competition = (props) => { () => () } > + {/* 排行榜 */} + () + } + > {/* 交流互动 */} { {/* 大赛介绍 */} (competitionId=='qz2022'? :) + () => (competitionId == 'qz2022' ? : ) } > diff --git a/src/military/competition/api.js b/src/military/competition/api.js index b323b844..17740720 100644 --- a/src/military/competition/api.js +++ b/src/military/competition/api.js @@ -11,33 +11,33 @@ export function getCompetitionDetail(competitionId) { } // 报名启智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 getEnrollList(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 getProList(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 addCompetitionNotice(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 updateCompetitionNotice(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 deleteCompetitionNotice(id,competitionId){ +export async function deleteCompetitionNotice(id, competitionId) { return axios.delete(`/competition_infos/${competitionId}/competition_notices/${id}.json`); } // 编辑大赛介绍、大赛指南、关于我 -export async function updateCompetition(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 edf29936..695236f8 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.enroll_status))) { 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,7 +450,7 @@ export default Form.create()((props) => { )}
    - {enrollStatus && enrollStatus.enroll_info.members.length ?
    + {enrollStatus && enrollStatus.enroll_info.members.length ?
    成员 : { 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) && + (