This commit is contained in:
谢思 2022-04-28 18:08:45 +08:00
parent 6f39cadda0
commit 01b9f84a8b
4 changed files with 37 additions and 23 deletions

View File

@ -4,6 +4,7 @@ import Link from "react-router-dom/Link";
import axios from "axios";
import './index.scss';
import moment from "moment";
const Option = Select.Option;
@ -42,7 +43,7 @@ function Competition(props){
key: "title",
align: "center",
render:(text, record)=>{
return <Tooltip title={`标识: ${record.identifier}, 竞赛副标题: ${record.subtitle}`}><a href={`${main_web_site_url}/competitions/${record.identifier}/home`} target="_blank" className="primary-link">{text}</a></Tooltip>
return <a href={`/competition/${record.identifier}`} target="_blank" className="primary-link">{text}</a>
}
},
{
@ -50,12 +51,18 @@ function Competition(props){
dataIndex: "enroll_date",
key: "enroll_date",
align: "center",
render: (text, record)=>{
return text ? moment(text).format('YYYY-MM-DD HH:mm:ss'): '--'
}
},
{
title: "提案截止时间",
dataIndex: "upload_date",
key: "upload_date",
align: "center",
render: (text, record)=>{
return text ? moment(text).format('YYYY-MM-DD HH:mm:ss'): '--'
}
},
{
title: "是否内网环境",
@ -78,9 +85,6 @@ function Competition(props){
];
}, []);
//
useEffect(()=>{
setLoading(true);
@ -95,7 +99,6 @@ function Competition(props){
})
}, [])
return(
<div className="centerbox competitionList">
<Button type="primary" className="mb10" onClick={()=>{history.push('/managements/competition/customize/add')}}>新增</Button>

View File

@ -1,5 +1,5 @@
import React, {useState, useCallback} from "react";
import { Input, Select, Button, Form, message, Radio, Modal, Upload, Icon } from 'antd';
import { Input, Select, Button, Form, message, Radio, Modal, Upload, Icon, Tooltip } from 'antd';
import { appendFileSizeToUploadFileAll } from 'educoder';
import { Base64 } from 'js-base64';
import {enrollCompetition, enrollUpdate, updateTemplate} from '../api';
@ -27,7 +27,6 @@ export default Form.create()((props) => {
// loading
const [loading, setLoading] = useState(false);
const [files, setFiles] = useState([]);
useEffect(()=>{
const applyStatus = qzDetail ? Date.parse(new Date()) < Date.parse(new Date(qzDetail.enroll_date)) : true;
if((current_user && !current_user.login) || !applyStatus){
@ -270,7 +269,9 @@ export default Form.create()((props) => {
{helper('电话',
'phone',
[{ required: true, message: "请正确输入电话" },
{pattern: /(\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/, message: "请输入正确的手机号"}],
// {pattern: /(\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/, message: ""}
{ max: 100, message: '超出限制长度100位字符请重新编辑' }
],
<Input placeholder="请输入电话" onBlur={()=>{verify("phone")}}/>
)}
<div className="edit_table">
@ -285,19 +286,19 @@ export default Form.create()((props) => {
{enrollStatus && enrollStatus.enroll_status && enrollStatus.status !== 0 &&
<div>
<div className="info">
<div><span>参赛单位 : </span>{enrollStatus && enrollStatus.enroll_info.org_name}</div>
<div className="info-right"><span>参赛团队负责人姓名 : </span>{enrollStatus && enrollStatus.enroll_info.leader}</div>
{qzDetail && qzDetail.is_local && <div><span>职务 : </span>{enrollStatus && enrollStatus.enroll_info.org_job}</div>}
{qzDetail && qzDetail.is_local && <div className="info-right"><span>{Base64.decode('5Yab6KGU')} : </span>{enrollStatus && enrollStatus.enroll_info.org_rank}</div>}
<div><span>参赛单位 : </span><Tooltip title={enrollStatus && enrollStatus.enroll_info.org_name} placement="topLeft">{enrollStatus && enrollStatus.enroll_info.org_name}</Tooltip></div>
<div className="info-right"><span>参赛团队负责人姓名 : </span><Tooltip title={enrollStatus && enrollStatus.enroll_info.leader} placement="topLeft">{enrollStatus && enrollStatus.enroll_info.leader}</Tooltip></div>
{qzDetail && qzDetail.is_local && <div><span>职务 : </span><Tooltip title={enrollStatus && enrollStatus.enroll_info.org_job} placement="topLeft">{enrollStatus && enrollStatus.enroll_info.org_job}</Tooltip></div>}
{qzDetail && qzDetail.is_local &&<div className="info-right"><span>{Base64.decode('5Yab6KGU')} : </span>{enrollStatus && enrollStatus.enroll_info.org_rank}</div>}
<div><span>赛区 : </span>{enrollStatus && enrollStatus.enroll_info.zone}</div>
<div className="info-right"><span>赛项 : </span>{enrollStatus && enrollStatus.enroll_info.sub_competition}</div>
{qzDetail && qzDetail.is_local && <div><span>课题来源 : </span>{enrollStatus && enrollStatus.enroll_info.subject_source_type === 0 ? "自主提报" : enrollStatus.enroll_info.subject_source_name}</div>}
<div className={`${qzDetail && qzDetail.is_local ? '':'info_bottom'}`}><span>电话 : </span>{enrollStatus && enrollStatus.enroll_info.phone}</div>
<div className={`info-right ${qzDetail && qzDetail.is_local ? 'ellipsis_div':''}`}><span>成员 : </span>{enrollStatus && enrollStatus.enroll_info.members && enrollStatus.enroll_info.members.map(item=>{return item.real_name + ','})}</div>
{qzDetail && qzDetail.is_local && <Tooltip title={enrollStatus && enrollStatus.enroll_info.subject_source_type === 0 ? "自主提报" : enrollStatus.enroll_info.subject_source_name}><div><span>课题来源 : </span>{enrollStatus && enrollStatus.enroll_info.subject_source_type === 0 ? "自主提报" : enrollStatus.enroll_info.subject_source_name}</div></Tooltip>}
<div className={`${qzDetail && qzDetail.is_local ? '':'info_bottom'}`}><span>电话 : </span><Tooltip title={enrollStatus && enrollStatus.enroll_info.phone} placement="topLeft">{enrollStatus && enrollStatus.enroll_info.phone}</Tooltip></div>
<div className={`info-right ${qzDetail && qzDetail.is_local ? 'ellipsis_div':''}`}><span>成员 : </span><Tooltip title={enrollStatus && enrollStatus.enroll_info.members && enrollStatus.enroll_info.members.map(item=>{return item.real_name + ','})} placement="topLeft">{enrollStatus && enrollStatus.enroll_info.members && enrollStatus.enroll_info.members.map(item=>{return item.real_name + ','})}</Tooltip></div>
</div>
<div className="action_box">
<span>报名表扫描件:</span>
{enrollStatus && enrollStatus.enroll_info.enroll_template ? <a href={current_main_site_url+enrollStatus.enroll_info.enroll_template.url} className="ml10 mb30">
{enrollStatus && enrollStatus.enroll_info.enroll_template ? <a href={current_main_site_url+enrollStatus.enroll_info.enroll_template.url} className="ml10 mb30 download">
{enrollStatus.enroll_info.enroll_template.title}
</a>:<Upload
accept=".zip,.rar"

View File

@ -90,8 +90,11 @@
border-right: 1px solid rgba(153, 153, 153, 0.3);
border-bottom: 1px solid rgba(153, 153, 153, 0.3);
height: 44px;
padding-left: 40px;
padding: 0 10px 0 40px;
line-height: 44px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.ellipsis_div{width: 100%;}
.info_bottom{border-bottom: none;}
@ -108,12 +111,20 @@
font-size: 14px;
color: gray;
}
.download{
color: #2e5bfe;
&:hover{
color: #2e5bfe;
opacity: 0.85;
}
}
.uploadBox{
border: 1px solid rgba(153, 153, 153, 0.3);
margin-left: 15px;
padding: 12px;
width: 51vw;
border-radius: 4px;
.ant-upload-list-item-name{color: #2e5bfe;}
}
}
.submit{

View File

@ -86,7 +86,7 @@ function Introduce({history:{location:{pathname}},qzDetail }) {
dataIndex: 'org_name',
align: 'center',
render:(text, record)=>{
return <Tooltip title={text}>{text}</Tooltip>;
return <Tooltip title={text} placement="topLeft">{text}</Tooltip>;
}
},
{
@ -118,7 +118,7 @@ function Introduce({history:{location:{pathname}},qzDetail }) {
title: '报名文件',
dataIndex: 'enroll_template',
render:(text, record)=>{
return text ? <Tooltip title={text.title}><a href={current_main_site_url+text.url} className="attachments_a">{text.title}</a></Tooltip> : '--';
return text ? <Tooltip title={text.title} placement="topLeft"><a href={current_main_site_url+text.url} className="attachments_a">{text.title}</a></Tooltip> : '--';
}
},
{
@ -277,10 +277,9 @@ function Introduce({history:{location:{pathname}},qzDetail }) {
</Select>
</div>
<div>
导出
{type === "applys" && <a href={current_main_site_url+`/api/competition_infos/qz2022/enroll_template.zip`}><Button className="but_2e5 ml10">报名表扫描件</Button></a>}
{type === "production" && <a href={current_main_site_url+`/api/competition_infos/qz2022/enroll_list.zip?upload=true`}><Button className="but_2e5 ml10">作品文件</Button></a>}
<a href={current_main_site_url+`/api/competition_infos/qz2022/enroll_list.xlsx${type === "applys"? '':"?upload=true"}`}><Button className="but_2e5 ml10">{type === "applys" ? '报名信息' : '作品信息'}</Button></a>
{type === "applys" && <a href={current_main_site_url+`/api/competition_infos/qz2022/enroll_template.zip`}><Button className="but_2e5 ml10">导出报名表扫描件</Button></a>}
{type === "production" && <a href={current_main_site_url+`/api/competition_infos/qz2022/enroll_list.zip?upload=true`}><Button className="but_2e5 ml10">导出作品文件</Button></a>}
<a href={current_main_site_url+`/api/competition_infos/qz2022/enroll_list.xlsx${type === "applys"? '':"?upload=true"}`}><Button className="but_2e5 ml10">导出{type === "applys" ? '报名信息' : '作品信息'}</Button></a>
</div>
</div>