forked from Gitlink/forgeplus-react
issue
This commit is contained in:
parent
6f39cadda0
commit
01b9f84a8b
|
@ -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>
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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{
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
Loading…
Reference in New Issue