forked from Gitlink/forgeplus-react
增加管理员修改发布任务后继续修改任务的功能
This commit is contained in:
parent
161adbe6c7
commit
cadf447f45
2
.babelrc
2
.babelrc
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"presets": [
|
"presets": [
|
||||||
"es2015",
|
"env",
|
||||||
"react",
|
"react",
|
||||||
"stage-2"
|
"stage-2"
|
||||||
],
|
],
|
||||||
|
|
|
@ -52,14 +52,13 @@ function renderModal(props) {
|
||||||
if (type === 'delete') {
|
if (type === 'delete') {
|
||||||
return <InitModal
|
return <InitModal
|
||||||
title="删除"
|
title="删除"
|
||||||
contentTitle="确定要删除吗?"
|
|
||||||
okText="确认删除"
|
okText="确认删除"
|
||||||
{...props}
|
{...props}
|
||||||
|
|
||||||
afterClose={destroy}
|
afterClose={destroy}
|
||||||
contentTitle={<React.Fragment>
|
contentTitle={<React.Fragment>
|
||||||
<i className="red-circle iconfont icon-shanchu_tc_icon mr3"></i>
|
<i className="red-circle iconfont icon-shanchu_tc_icon mr3"></i>
|
||||||
{props.contentTitle}
|
{props.contentTitle||'确定要删除吗?'}
|
||||||
</React.Fragment>}
|
</React.Fragment>}
|
||||||
/>
|
/>
|
||||||
} else if (type === 'confirm') {
|
} else if (type === 'confirm') {
|
||||||
|
|
|
@ -48,6 +48,7 @@ function Uploads({ className, size, actionUrl, fileList, showNotification, load
|
||||||
|
|
||||||
|
|
||||||
function handleChange(info) {
|
function handleChange(info) {
|
||||||
|
console.log(info);
|
||||||
if (info.file.status === 'uploading' || info.file.status === 'done' || info.file.status === 'removed') {
|
if (info.file.status === 'uploading' || info.file.status === 'done' || info.file.status === 'removed') {
|
||||||
let fileList = info.fileList;
|
let fileList = info.fileList;
|
||||||
setFiles(appendFileSizeToUploadFileAll(fileList));
|
setFiles(appendFileSizeToUploadFileAll(fileList));
|
||||||
|
@ -59,7 +60,8 @@ function Uploads({ className, size, actionUrl, fileList, showNotification, load
|
||||||
}
|
}
|
||||||
backFiles(fileList);
|
backFiles(fileList);
|
||||||
if (!info.file.response.data) {
|
if (!info.file.response.data) {
|
||||||
info.file.response && showNotification(info.file.response.message)
|
info.file.response && showNotification(info.file.response.message);
|
||||||
|
setFiles([]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -183,6 +183,24 @@ export function updateTask(data) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//修改已发布创客任务内容
|
||||||
|
export function updatePublishedTask(data) {
|
||||||
|
return fetch({
|
||||||
|
url: '/api/tasks/backend/admin/updatePublishedTask',
|
||||||
|
method: 'PUT',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//重置延期关闭任务状态
|
||||||
|
export function resetTask(data) {
|
||||||
|
return fetch({
|
||||||
|
url: '/api/tasks/backend/admin/resetTask',
|
||||||
|
method: 'PUT',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//删除
|
//删除
|
||||||
export function deleteTask(id, isDelete) {
|
export function deleteTask(id, isDelete) {
|
||||||
return fetch({
|
return fetch({
|
||||||
|
@ -268,7 +286,7 @@ export function updatePaper(data) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除成果
|
||||||
export function deletePaper(id) {
|
export function deletePaper(id) {
|
||||||
return fetch({
|
return fetch({
|
||||||
url: `api/paper/${id}`,
|
url: `api/paper/${id}`,
|
||||||
|
|
|
@ -1,15 +1,19 @@
|
||||||
import React, { useCallback, useEffect, useState, useMemo } from 'react';
|
import React, { useCallback, useEffect, useState, useMemo } from 'react';
|
||||||
import { Input, Radio, Select, Button, Form, DatePicker, Table, Pagination, Modal } from 'antd';
|
import { Input, Radio, Select, Button, Form, DatePicker, Table, Pagination, Modal } from 'antd';
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import { paperCheckStatusArr } from '../static';
|
import { Confirm } from '../../components/ModalFun';
|
||||||
import { readyCheckPapers, checkPaper, } from '../api';
|
import { paperCheckStatusArr,taskStatusAllArr } from '../static';
|
||||||
|
import { readyCheckPapers, checkPaper,deletePaper } from '../api';
|
||||||
import '../index.scss';
|
import '../index.scss';
|
||||||
import './index.scss';
|
import './index.scss';
|
||||||
const format = "YYYY-MM-DD HH:mm:ss";
|
const format = "YYYY-MM-DD HH:mm:ss";
|
||||||
const Option = Select.Option;
|
const Option = Select.Option;
|
||||||
const TextArea = Input.TextArea;
|
const TextArea = Input.TextArea;
|
||||||
|
|
||||||
|
const statusArr = [];
|
||||||
|
for (const item of taskStatusAllArr) {
|
||||||
|
statusArr[item.dicItemCode] = item.dicItemName;
|
||||||
|
}
|
||||||
const checkStatusArr = [];
|
const checkStatusArr = [];
|
||||||
for (const item of paperCheckStatusArr) {
|
for (const item of paperCheckStatusArr) {
|
||||||
checkStatusArr[item.dicItemCode] = item.dicItemName;
|
checkStatusArr[item.dicItemCode] = item.dicItemName;
|
||||||
|
@ -62,7 +66,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
|
||||||
|
|
||||||
|
|
||||||
function onSearch() {
|
function onSearch() {
|
||||||
let values = getFieldsValue(['checkStatus', 'endCreatedAt', 'startCreatedAt', 'parentId']);
|
let values = getFieldsValue(['checkStatus', 'endCreatedAt', 'startCreatedAt', 'parentId','number']);
|
||||||
if (values.startCreatedAt) values.startCreatedAt = values.startCreatedAt.format(format);
|
if (values.startCreatedAt) values.startCreatedAt = values.startCreatedAt.format(format);
|
||||||
if (values.endCreatedAt) values.endCreatedAt = values.endCreatedAt.format(format);
|
if (values.endCreatedAt) values.endCreatedAt = values.endCreatedAt.format(format);
|
||||||
if (values.checkStatus === '0,1,2') values.checkStatus = '';
|
if (values.checkStatus === '0,1,2') values.checkStatus = '';
|
||||||
|
@ -73,11 +77,30 @@ export default Form.create()(({ current_user, form, showNotification, match, his
|
||||||
setFieldsValue({
|
setFieldsValue({
|
||||||
startCreatedAt: '',
|
startCreatedAt: '',
|
||||||
endCreatedAt: '',
|
endCreatedAt: '',
|
||||||
checkStatus: '0,1,2'
|
checkStatus: '0,1,2',
|
||||||
|
number:''
|
||||||
});
|
});
|
||||||
setSearchObj({});
|
setSearchObj({});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 删除成果
|
||||||
|
function deleteItem(id){
|
||||||
|
Confirm({
|
||||||
|
title: "警告",
|
||||||
|
content: "此操作将删除该用户提交的成果,用户可重新提交。确认删除?",
|
||||||
|
okText: '确定',
|
||||||
|
cancelText: '取消',
|
||||||
|
onOk() {
|
||||||
|
deletePaper(id).then(res => {
|
||||||
|
if (res.message === 'success') {
|
||||||
|
showNotification('操作成功!');
|
||||||
|
setReload(Math.random());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function checkPaperItem(paperId, passStatus) {
|
function checkPaperItem(paperId, passStatus) {
|
||||||
validateFields((err, values) => {
|
validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
|
@ -113,6 +136,10 @@ export default Form.create()(({ current_user, form, showNotification, match, his
|
||||||
return <div style={{ textAlign: 'center' }}>{index + 1}</div>
|
return <div style={{ textAlign: 'center' }}>{index + 1}</div>
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '成果编号',
|
||||||
|
dataIndex: 'number',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '来源任务',
|
title: '来源任务',
|
||||||
dataIndex: 'name',
|
dataIndex: 'name',
|
||||||
|
@ -123,6 +150,13 @@ export default Form.create()(({ current_user, form, showNotification, match, his
|
||||||
</span >
|
</span >
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '任务状态',
|
||||||
|
dataIndex: 'task',
|
||||||
|
render: (text, record) => {
|
||||||
|
return text.status.exceptClosedBoolean ? '已关闭' : statusArr[text.status]
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '评论/成果内容',
|
title: '评论/成果内容',
|
||||||
dataIndex: 'content',
|
dataIndex: 'content',
|
||||||
|
@ -157,7 +191,10 @@ export default Form.create()(({ current_user, form, showNotification, match, his
|
||||||
key: 'action',
|
key: 'action',
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<Link className="line_1 color-grey3" to={`/task/taskDetail/${record.taskId}`}>查看</Link>
|
<Link className="mr5 line_1 color-grey3" to={`/task/taskDetail/${record.taskId}`}>查看</Link>
|
||||||
|
{record.task&&record.task.status==3&&<a className="mr5 line_1 color-grey3" onClick={() => { deleteItem(record.id) }}>删除</a>}
|
||||||
|
|
||||||
|
{/* {record.task&&record.task.status==3&&<Button className=" font-12" type="danger" size="small" onClick={() => { deleteItem(record.id) }}>删除</Button>} */}
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
@ -244,10 +281,18 @@ export default Form.create()(({ current_user, form, showNotification, match, his
|
||||||
</Select>,
|
</Select>,
|
||||||
0
|
0
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{helper(
|
||||||
|
"成果编号",
|
||||||
|
"number",
|
||||||
|
[{ max: 20, message: '长度不能超过20个字符' }],
|
||||||
|
<Input
|
||||||
|
placeholder="请输入成果编号"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="center-right-but">
|
<div className="center-right-but">
|
||||||
|
|
||||||
{helper(
|
{helper(
|
||||||
"发布时间:",
|
"发布时间:",
|
||||||
"startCreatedAt",
|
"startCreatedAt",
|
||||||
|
@ -270,6 +315,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|
||||||
<Button className="mr10" type="primary" onClick={onSearch}>搜索</Button>
|
<Button className="mr10" type="primary" onClick={onSearch}>搜索</Button>
|
||||||
<Button className="mr10" type="" onClick={clearSearch}>清除</Button>
|
<Button className="mr10" type="" onClick={clearSearch}>清除</Button>
|
||||||
|
|
||||||
|
|
|
@ -6,4 +6,16 @@
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.center-left-but{
|
||||||
|
width: 100%;
|
||||||
|
.ant-form-item{
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.center-right-but{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.line_1{
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -5,7 +5,7 @@ import { Link } from 'react-router-dom';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
|
||||||
import { paperCheckStatusArr, publishModeArr, taskStatusAllArr, showUserModeArr, main_web_site_url } from '../static';
|
import { paperCheckStatusArr, publishModeArr, taskStatusAllArr, showUserModeArr, main_web_site_url } from '../static';
|
||||||
import { getTaskAdminList, changeShowUserMode, deleteTask, recommendTask, addExpertReview, publishExpertsAndRules,delayTask } from '../api';
|
import { getTaskAdminList, changeShowUserMode, deleteTask, recommendTask, addExpertReview, publishExpertsAndRules,delayTask ,resetTask} from '../api';
|
||||||
import '../index.scss';
|
import '../index.scss';
|
||||||
import './index.scss';
|
import './index.scss';
|
||||||
import { getRules, selectExpertList } from 'src/military/expert/api';
|
import { getRules, selectExpertList } from 'src/military/expert/api';
|
||||||
|
@ -45,6 +45,8 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
||||||
const [expertReview, setExpertReview] = useState('');
|
const [expertReview, setExpertReview] = useState('');
|
||||||
const [downloading,setDownloading] = useState(false);
|
const [downloading,setDownloading] = useState(false);
|
||||||
|
|
||||||
|
const [restartVisible,setRestartVisible]= useState(false); //重启任务modal
|
||||||
|
|
||||||
//查看评审规则、查看选取专家、发布评审任务
|
//查看评审规则、查看选取专家、发布评审任务
|
||||||
const [lookRules, setLookRules] = useState(false);
|
const [lookRules, setLookRules] = useState(false);
|
||||||
const [lookExperts, setLookExperts] = useState(false);
|
const [lookExperts, setLookExperts] = useState(false);
|
||||||
|
@ -54,7 +56,7 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
||||||
const [publicTaskId, setPublicTaskId] = useState(undefined);
|
const [publicTaskId, setPublicTaskId] = useState(undefined);
|
||||||
// 加入专家评审的创客id数组
|
// 加入专家评审的创客id数组
|
||||||
const [reviewTaskId, setReviewTaskId] = useState(undefined);
|
const [reviewTaskId, setReviewTaskId] = useState(undefined);
|
||||||
const [visible, setVisible] = useState(false);
|
const [visible, setVisible] = useState(false); //延期任务modal
|
||||||
const [checkedItem, setCheckedItem] = useState('');
|
const [checkedItem, setCheckedItem] = useState('');
|
||||||
|
|
||||||
useEffect(()=>{
|
useEffect(()=>{
|
||||||
|
@ -134,9 +136,13 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
||||||
setSearchObj({});
|
setSearchObj({});
|
||||||
}
|
}
|
||||||
|
|
||||||
function delayClick(item) {
|
function delayClick(item,restart) {
|
||||||
setCheckedItem(item);
|
setCheckedItem(item);
|
||||||
setVisible(true);
|
if(restart){
|
||||||
|
setVisible(true);
|
||||||
|
}else{
|
||||||
|
setRestartVisible(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const columns = useMemo(() => {
|
const columns = useMemo(() => {
|
||||||
|
@ -217,7 +223,8 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
||||||
const disabled = record.assignRuleAndExperts || !(record.status == 1 || record.status == 3);
|
const disabled = record.assignRuleAndExperts || !(record.status == 1 || record.status == 3);
|
||||||
return(
|
return(
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
{[3,4,6,7].includes(record.status)&&<Button className="mr5 mb5 f89" onClick={() => { delayClick(record) }}>延期</Button>}
|
{[3,4,6,7].includes(record.status)&&<Button className="mr5 mb5 f89" onClick={() => { delayClick(record,true) }}>延期</Button>}
|
||||||
|
{record.status==8&& record.exceptClosedBoolean&&<Button className="mr5 mb5 f89" onClick={() => { delayClick(record)}}>重启</Button>}
|
||||||
<Button className="mr5 mb5 f20" onClick={() => { deleteItem(record.id,isDelete == '0' ? '1':'0') }}>{isDelete == '0' ? '隐藏任务':'恢复任务'}</Button>
|
<Button className="mr5 mb5 f20" onClick={() => { deleteItem(record.id,isDelete == '0' ? '1':'0') }}>{isDelete == '0' ? '隐藏任务':'恢复任务'}</Button>
|
||||||
<Button className="mr5 mb5 f89" onClick={() => { recommendItem(record.id, record.recommend ? '0' :'1') }}>{record.recommend ? '撤销推荐':'首页推荐'}</Button>
|
<Button className="mr5 mb5 f89" onClick={() => { recommendItem(record.id, record.recommend ? '0' :'1') }}>{record.recommend ? '撤销推荐':'首页推荐'}</Button>
|
||||||
<Button className={`mr5 mb5 c2a3 ${text ? 'bor':'full'} ${disabled && 'disabled'}`} onClick={() => { changeExpertReviewStatus(text ? '-1':'1', record.id) }} disabled={disabled}>{text ? '取消专家评审':'加入专家评审'}</Button>
|
<Button className={`mr5 mb5 c2a3 ${text ? 'bor':'full'} ${disabled && 'disabled'}`} onClick={() => { changeExpertReviewStatus(text ? '-1':'1', record.id) }} disabled={disabled}>{text ? '取消专家评审':'加入专家评审'}</Button>
|
||||||
|
@ -292,6 +299,8 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
||||||
];
|
];
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
// function resetTaskModal
|
||||||
|
|
||||||
function recommendItem(id, recommend) {
|
function recommendItem(id, recommend) {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: "警告",
|
title: "警告",
|
||||||
|
@ -519,10 +528,13 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
||||||
return current && current < moment(checkedItem.eachPhaseEndTime).endOf('day');
|
return current && current < moment(checkedItem.eachPhaseEndTime).endOf('day');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function disabledDate2(current) {
|
||||||
|
return current && current < moment();
|
||||||
|
}
|
||||||
|
|
||||||
function delayTime() {
|
function delayTime() {
|
||||||
validateFields((err, values) => {
|
validateFields(['delayedTo'],(err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
console.log(values)
|
|
||||||
delayTask({
|
delayTask({
|
||||||
taskId: checkedItem.id,
|
taskId: checkedItem.id,
|
||||||
params: {
|
params: {
|
||||||
|
@ -539,7 +551,22 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function restartTask(){
|
||||||
|
validateFields(["restartEndTime"],(err, values) => {
|
||||||
|
if (!err) {
|
||||||
|
resetTask({
|
||||||
|
taskId: checkedItem.id,
|
||||||
|
endTime: moment(values.restartEndTime).format(format)
|
||||||
|
}).then(res => {
|
||||||
|
if (res && res.message === 'success') {
|
||||||
|
showNotification('操作成功');
|
||||||
|
setReload(Math.random());
|
||||||
|
setRestartVisible(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="task-manage-all ">
|
<div className="task-manage-all ">
|
||||||
|
@ -755,6 +782,28 @@ export default Form.create()(({ form, showNotification, match, history, state })
|
||||||
)}
|
)}
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
title="重启任务"
|
||||||
|
visible={restartVisible}
|
||||||
|
onOk={restartTask}
|
||||||
|
onCancel={() => { setRestartVisible(false) }}
|
||||||
|
// className="time-edit-modal"
|
||||||
|
destroyOnClose
|
||||||
|
>
|
||||||
|
<div>当前任务将恢复至<span className="imoptantText">{statusArr[checkedItem.currentStatus]}</span>,请选择该阶段的截止日期:</div>
|
||||||
|
{helper(
|
||||||
|
"",
|
||||||
|
"restartEndTime",
|
||||||
|
[{ required: true, message: "请选择时间" }],
|
||||||
|
<DatePicker
|
||||||
|
format={format}
|
||||||
|
placeholder="请选择时间"
|
||||||
|
disabledDate={disabledDate2}
|
||||||
|
/>,
|
||||||
|
moment(moment(new Date()).format(formatDelay)+' 23:59:59')
|
||||||
|
)}
|
||||||
|
</Modal>
|
||||||
|
|
||||||
<ExportTable downloading={downloading} setDownloading={setDownloading}/>
|
<ExportTable downloading={downloading} setDownloading={setDownloading}/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -238,3 +238,7 @@
|
||||||
width: 200px;
|
width: 200px;
|
||||||
margin:0 auto;
|
margin:0 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.imoptantText{
|
||||||
|
color: $primary-color;
|
||||||
|
}
|
|
@ -9,7 +9,7 @@ import StatusNav from '../../components/statusNav';
|
||||||
import ItemListPaper from '../components/itemListPaper';
|
import ItemListPaper from '../components/itemListPaper';
|
||||||
import ProofModal from '../components/proofModal';
|
import ProofModal from '../components/proofModal';
|
||||||
import { getTaskDetail, getTaskCategory, getTaskPaper, makePublic, addPaper, getAgreement, agreement, checkAgreement, checkHavePaper, addExpertReview, followTask, unfollowTask } from '../api';
|
import { getTaskDetail, getTaskCategory, getTaskPaper, makePublic, addPaper, getAgreement, agreement, checkAgreement, checkHavePaper, addExpertReview, followTask, unfollowTask } from '../api';
|
||||||
import { taskModeIdArr, applyStatusArr, applyStatusAllArr, agreementContent, paperCheckTextArr, surplusTime} from '../static';
|
import { taskModeIdArr, applyStatusArr, applyStatusAllArr, agreementContent, paperCheckTextArr, surplusTime } from '../static';
|
||||||
import { httpUrl } from '../fetch';
|
import { httpUrl } from '../fetch';
|
||||||
import './index.scss';
|
import './index.scss';
|
||||||
import { getRules } from 'src/military/expert/api';
|
import { getRules } from 'src/military/expert/api';
|
||||||
|
@ -160,7 +160,7 @@ export default Form.create()(
|
||||||
|
|
||||||
// 流程步骤显示,返回剩余时间
|
// 流程步骤显示,返回剩余时间
|
||||||
const process = useCallback((title, status, days) => {
|
const process = useCallback((title, status, days) => {
|
||||||
let {surplus,
|
let { surplus,
|
||||||
surplusTimetext,
|
surplusTimetext,
|
||||||
delayTime
|
delayTime
|
||||||
} = surplusTime(detailData);
|
} = surplusTime(detailData);
|
||||||
|
@ -216,6 +216,9 @@ export default Form.create()(
|
||||||
let params = {
|
let params = {
|
||||||
...values,
|
...values,
|
||||||
taskId: id
|
taskId: id
|
||||||
|
};
|
||||||
|
if (!params.files){
|
||||||
|
delete params.files;
|
||||||
}
|
}
|
||||||
setPaperUploadLoading(true);
|
setPaperUploadLoading(true);
|
||||||
addPaper(params).then((res) => {
|
addPaper(params).then((res) => {
|
||||||
|
@ -307,7 +310,7 @@ export default Form.create()(
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
content: "请先完成实名认证再提交需求申请,是否前往认证?",
|
content: "请先完成实名认证再提交需求申请,是否前往认证?",
|
||||||
onOk() {
|
onOk() {
|
||||||
window.location.href=`${mygetHelmetapi && mygetHelmetapi.main_web_site_url}/users/${current_user.login}/profiles`;
|
window.location.href = `${mygetHelmetapi && mygetHelmetapi.main_web_site_url}/users/${current_user.login}/profiles`;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -404,6 +407,7 @@ export default Form.create()(
|
||||||
<Link to="/task">创客空间 ></Link>
|
<Link to="/task">创客空间 ></Link>
|
||||||
<Link to="/task">任务大厅 ></Link>
|
<Link to="/task">任务大厅 ></Link>
|
||||||
任务编号:{detailData.number}
|
任务编号:{detailData.number}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="edu-back-white padding30">
|
<div className="edu-back-white padding30">
|
||||||
|
@ -420,19 +424,23 @@ export default Form.create()(
|
||||||
<span className="font-18 mr20 font-bd task-tit-text fl" >{detailData.name}</span>
|
<span className="font-18 mr20 font-bd task-tit-text fl" >{detailData.name}</span>
|
||||||
<span className="task_tag">{taskCategoryValueArr[detailData.categoryId]}</span>
|
<span className="task_tag">{taskCategoryValueArr[detailData.categoryId]}</span>
|
||||||
</span>
|
</span>
|
||||||
<span className='detail_tag_btn '>
|
<span>
|
||||||
{
|
{
|
||||||
detailData.canFollow ? <span className='detail_tag_btn_name' onClick={follow}>
|
current_user && current_user.roles && current_user.roles.includes('管理员') && <Link class="adminEdit" to={`/task/taskEdit/${id}`}>编辑</Link>
|
||||||
<i className="iconfont icon-kongxing font-16 mr3"></i>
|
|
||||||
关注
|
|
||||||
</span> : <span className='detail_tag_btn_name' onClick={unfollow}>
|
|
||||||
<i className="iconfont icon-shixing color-orange font-16 mr3"></i>
|
|
||||||
取消关注
|
|
||||||
</span>
|
|
||||||
}
|
}
|
||||||
<span className="detail_tag_btn_count">{detailData.followCount}</span>
|
<span className='detail_tag_btn '>
|
||||||
|
{
|
||||||
|
detailData.canFollow ? <span className='detail_tag_btn_name' onClick={follow}>
|
||||||
|
<i className="iconfont icon-kongxing font-16 mr3"></i>
|
||||||
|
关注
|
||||||
|
</span> : <span className='detail_tag_btn_name' onClick={unfollow}>
|
||||||
|
<i className="iconfont icon-shixing color-orange font-16 mr3"></i>
|
||||||
|
取消关注
|
||||||
|
</span>
|
||||||
|
}
|
||||||
|
<span className="detail_tag_btn_count">{detailData.followCount}</span>
|
||||||
|
</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div className="clearfix flex1">
|
<div className="clearfix flex1">
|
||||||
<ul className="fl">
|
<ul className="fl">
|
||||||
|
|
|
@ -11,6 +11,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.adminEdit{
|
||||||
|
float: left;
|
||||||
|
margin-right: 2em;
|
||||||
|
color: #4154f1;
|
||||||
|
}
|
||||||
|
|
||||||
.task-tit-text{
|
.task-tit-text{
|
||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
max-width: 800px;
|
max-width: 800px;
|
||||||
|
@ -56,6 +62,7 @@
|
||||||
.head-navigation {
|
.head-navigation {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -2.3em;
|
top: -2.3em;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.task-title{
|
.task-title{
|
||||||
|
|
|
@ -6,30 +6,27 @@ import ReactWEditor from 'wangeditor-for-react';
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import Upload from '../../components/Upload';
|
import Upload from '../../components/Upload';
|
||||||
import { httpUrl } from '../fetch';
|
import { httpUrl } from '../fetch';
|
||||||
import { getTaskDetail, addTask, updateTask, getTaskCategory, getCompanyInfo } from '../api';
|
import { getTaskDetail, addTask, updateTask, updatePublishedTask, getTaskCategory, getCompanyInfo } from '../api';
|
||||||
import { formItemLayout, formModalLayout } from '../static';
|
import { formItemLayout, formModalLayout } from '../static';
|
||||||
import { editorConfig } from '../../components/config';
|
import { editorConfig } from '../../components/config';
|
||||||
import CodeModal from './codeModal';
|
import CodeModal from './codeModal';
|
||||||
import './index.scss';
|
import './index.scss';
|
||||||
|
import { Confirm } from '../../components/ModalFun';
|
||||||
|
|
||||||
|
|
||||||
const { info } = Modal;
|
const { info } = Modal;
|
||||||
|
|
||||||
|
|
||||||
function getSomeDayAfter(nDay) {
|
|
||||||
return moment(new Date().setDate(new Date().getDate() + nDay)).format('YYYY-MM-DD HH:mm');
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Form.create()(forwardRef(({ current_user, form, showNotification, match, history }, ref) => {
|
export default Form.create()(forwardRef(({ current_user, form, showNotification, match, history }, ref) => {
|
||||||
|
|
||||||
console.log(current_user);
|
|
||||||
|
|
||||||
const [taskCategoryArr, setTaskCategoryArr] = useState([]);
|
const [taskCategoryArr, setTaskCategoryArr] = useState([]);
|
||||||
const [fileList, setFileList] = useState(null);
|
const [fileList, setFileList] = useState(null);
|
||||||
|
|
||||||
const [publishMode, setPublishMode] = useState('0');
|
const [publishMode, setPublishMode] = useState('0'); //发布方式
|
||||||
const [categoryId, setCategoryId] = useState('7');
|
const [categoryId, setCategoryId] = useState('7'); //所在领域
|
||||||
const [descriptionHtml, setDescriptionHtml] = useState('');
|
const [descriptionHtml, setDescriptionHtml] = useState(''); //详情的富文本
|
||||||
const [enterpriseName, setEnterpriseName] = useState('');
|
const [enterpriseName, setEnterpriseName] = useState(''); //主体信息
|
||||||
const [displayTime, setDisplayTime] = useState(() => {
|
const [displayTime, setDisplayTime] = useState(() => {
|
||||||
return {
|
return {
|
||||||
collectingTime: getSomeDayAfter(30),
|
collectingTime: getSomeDayAfter(30),
|
||||||
|
@ -38,18 +35,32 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
signingTime: getSomeDayAfter(30 + 15 + 7 + 15),
|
signingTime: getSomeDayAfter(30 + 15 + 7 + 15),
|
||||||
payingTime: getSomeDayAfter(30 + 15 + 7 + 15 + 15)
|
payingTime: getSomeDayAfter(30 + 15 + 7 + 15 + 15)
|
||||||
}
|
}
|
||||||
});
|
}); //节点时间
|
||||||
const [visible, setVisible] = useState(false);
|
const [visible, setVisible] = useState(false);
|
||||||
const [num, setNum] = useState(0) // 倒计时
|
const [num, setNum] = useState(0) // 倒计时
|
||||||
const [isSend, setIsSend] = useState(false) // 是否发送验证码
|
const [isSend, setIsSend] = useState(false) // 是否发送验证码
|
||||||
|
const [published, setPublished] = useState(false); //是否已发布
|
||||||
|
const [status, setStatus] = useState(0); //任务当前状态
|
||||||
|
const [publishedAt, setPublishedAt] = useState();
|
||||||
|
|
||||||
const id = match.params.taskId;
|
const id = match.params.taskId;
|
||||||
const { getFieldDecorator, validateFields, setFieldsValue, getFieldsValue } = form;
|
const { getFieldDecorator, validateFields, setFieldsValue, getFieldsValue } = form;
|
||||||
|
|
||||||
// 根据是否传id判断是新增还是修改
|
// 根据是否传id判断是新增还是修改,根据状态判定是否是发布后的修改
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (id) {
|
if (id) {
|
||||||
getTaskDetail(id).then(data => {
|
getTaskDetail(id).then(data => {
|
||||||
|
console.log('data');
|
||||||
|
console.log(data.status);
|
||||||
|
// 如果发布了, 且用户不是管理员,那么返回之前的页面
|
||||||
|
if (data.status > 2 && !(current_user && current_user.admin)) {
|
||||||
|
history.go(-1);
|
||||||
|
}
|
||||||
|
if (data.status > 2) {
|
||||||
|
setPublished(true);
|
||||||
|
setStatus(data.status);
|
||||||
|
setPublishedAt(data.publishedAt || data.createdAt)
|
||||||
|
}
|
||||||
let formValue = {
|
let formValue = {
|
||||||
name: data.name,
|
name: data.name,
|
||||||
contactName: data.contactName,
|
contactName: data.contactName,
|
||||||
|
@ -67,6 +78,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
makePublicDays: data.makePublicDays,
|
makePublicDays: data.makePublicDays,
|
||||||
signingDays: data.signingDays,
|
signingDays: data.signingDays,
|
||||||
payingDays: data.payingDays,
|
payingDays: data.payingDays,
|
||||||
|
expertReview: data.expertReview&&'checked'
|
||||||
};
|
};
|
||||||
if (data.tasksAttachments && data.tasksAttachments.length) {
|
if (data.tasksAttachments && data.tasksAttachments.length) {
|
||||||
for (const item of data.tasksAttachments) {
|
for (const item of data.tasksAttachments) {
|
||||||
|
@ -82,11 +94,13 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
setDescriptionHtml(data.description);
|
setDescriptionHtml(data.description);
|
||||||
setPublishMode(data.publishMode + '');
|
setPublishMode(data.publishMode + '');
|
||||||
|
|
||||||
let collectingTime = getSomeDayAfter(data.collectingDays);
|
let publishedAt = (data.publishedAt || data.createdAt);
|
||||||
let choosingTime = getSomeDayAfter(data.collectingDays + data.choosingDays);
|
|
||||||
let makePublicTime = getSomeDayAfter(data.collectingDays + data.choosingDays + data.makePublicDays);
|
let collectingTime = getSomeDayAfter(data.collectingDays, publishedAt);
|
||||||
let signingTime = getSomeDayAfter(data.collectingDays + data.choosingDays + data.makePublicDays + data.signingDays);
|
let choosingTime = getSomeDayAfter(data.collectingDays + data.choosingDays, publishedAt);
|
||||||
let payingTime = getSomeDayAfter(data.collectingDays + data.choosingDays + data.makePublicDays + data.signingDays + data.payingDays);
|
let makePublicTime = getSomeDayAfter(data.collectingDays + data.choosingDays + data.makePublicDays, publishedAt);
|
||||||
|
let signingTime = getSomeDayAfter(data.collectingDays + data.choosingDays + data.makePublicDays + data.signingDays, publishedAt);
|
||||||
|
let payingTime = getSomeDayAfter(data.collectingDays + data.choosingDays + data.makePublicDays + data.signingDays + data.payingDays, publishedAt);
|
||||||
setDisplayTime({ collectingTime, choosingTime, makePublicTime, signingTime, payingTime });
|
setDisplayTime({ collectingTime, choosingTime, makePublicTime, signingTime, payingTime });
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -153,6 +167,12 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
};
|
};
|
||||||
}, [isSend]);
|
}, [isSend]);
|
||||||
|
|
||||||
|
// 计算发布以后多久
|
||||||
|
function getSomeDayAfter(nDay, publishedAt) {
|
||||||
|
return publishedAt ? moment(new Date(publishedAt).setDate((publishedAt ? new Date(publishedAt) : new Date()).getDate() + nDay)).format('YYYY-MM-DD HH:mm') :
|
||||||
|
moment(new Date().setDate(new Date().getDate() + nDay)).format('YYYY-MM-DD HH:mm');
|
||||||
|
}
|
||||||
|
|
||||||
// 上传附件后得到的文件数组
|
// 上传附件后得到的文件数组
|
||||||
function UploadFunc(fileList) {
|
function UploadFunc(fileList) {
|
||||||
setFileList(fileList);
|
setFileList(fileList);
|
||||||
|
@ -177,16 +197,19 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
), []);
|
), []);
|
||||||
|
|
||||||
const helperNoLabel = useCallback(
|
const helperNoLabel = useCallback(
|
||||||
(title, name, rules, widget, displayTime) => (
|
(title, name, rules, widget, displayTime) => {
|
||||||
<div className="timing_task" key={name}>
|
let active = (status == 3 && title == '成果提交') || (status == 4 && title == '成果评选') || (status == 5 && title == '结果公示') || (status == 6 && title == '任务协议签订');
|
||||||
<div className="mbt10 color-grey-9 lineh-35"><span className="inline-span">{title}</span></div>
|
return (
|
||||||
<Form.Item className="no-label">
|
<div className="timing_task" key={name}>
|
||||||
{getFieldDecorator(name, { rules, validateFirst: true, })(widget)}
|
<div className="mbt10 color-grey-9 lineh-35"><span className={`inline-span ${active ? 'active' : ''}`}>{title}</span></div>
|
||||||
</Form.Item>
|
<Form.Item className="no-label">
|
||||||
<span className="days-word color-grey-9 ">天</span>
|
{getFieldDecorator(name, { rules, validateFirst: true, })(widget)}
|
||||||
{publishMode == '0' && <p className="display-time">{displayTime}</p>}
|
</Form.Item>
|
||||||
</div>
|
<span className="days-word color-grey-9 ">天</span>
|
||||||
), [publishMode]);
|
{publishMode == '0' && <p className="display-time">{displayTime}</p>}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}, [publishMode, status]);
|
||||||
|
|
||||||
// 新增或者修改后的处理函数
|
// 新增或者修改后的处理函数
|
||||||
const publishDeal = useCallback((status, publishMode, res) => {
|
const publishDeal = useCallback((status, publishMode, res) => {
|
||||||
|
@ -194,6 +217,9 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
if (!status) {
|
if (!status) {
|
||||||
history.push("/task/myTask?published=false");
|
history.push("/task/myTask?published=false");
|
||||||
showNotification("任务保存成功!");
|
showNotification("任务保存成功!");
|
||||||
|
} else if (current_user.admin && status>2) {
|
||||||
|
history.push(`/task/taskDetail/${id}`);
|
||||||
|
showNotification("任务修改成功!");
|
||||||
} else if (current_user.admin) {
|
} else if (current_user.admin) {
|
||||||
history.push("/task");
|
history.push("/task");
|
||||||
showNotification("任务发布成功!");
|
showNotification("任务发布成功!");
|
||||||
|
@ -229,7 +255,23 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
showNotification("任务天数总和不得超过180天!");
|
showNotification("任务天数总和不得超过180天!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (id) {
|
if (status > 2) {
|
||||||
|
updatePublishedTask({
|
||||||
|
id: id,
|
||||||
|
bounty: values.bounty,
|
||||||
|
choosingDays: values.choosingDays,
|
||||||
|
collectingDays: values.collectingDays,
|
||||||
|
currentUserId: current_user.user_id,
|
||||||
|
description: values.description,
|
||||||
|
makePublicDays: values.makePublicDays,
|
||||||
|
name: values.name,
|
||||||
|
payingDays: values.payingDays,
|
||||||
|
signingDays: values.signingDays,
|
||||||
|
uploadFileNumbers:values.uploadFileNumbers
|
||||||
|
}).then(res => {
|
||||||
|
publishDeal(status, publishMode, res);
|
||||||
|
});
|
||||||
|
} else if (id) {
|
||||||
// 编辑
|
// 编辑
|
||||||
params.id = id;
|
params.id = id;
|
||||||
updateTask(params).then(res => {
|
updateTask(params).then(res => {
|
||||||
|
@ -251,21 +293,36 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
}
|
}
|
||||||
let values = getFieldsValue();
|
let values = getFieldsValue();
|
||||||
values[field] = v;
|
values[field] = v;
|
||||||
let collectingTime = getSomeDayAfter(values.collectingDays);
|
let collectingTime = getSomeDayAfter(values.collectingDays, publishedAt);
|
||||||
let choosingTime = getSomeDayAfter(values.collectingDays + values.choosingDays);
|
let choosingTime = getSomeDayAfter(values.collectingDays + values.choosingDays, publishedAt);
|
||||||
let makePublicTime = getSomeDayAfter(values.collectingDays + values.choosingDays + values.makePublicDays);
|
let makePublicTime = getSomeDayAfter(values.collectingDays + values.choosingDays + values.makePublicDays, publishedAt);
|
||||||
let signingTime = getSomeDayAfter(values.collectingDays + values.choosingDays + values.makePublicDays + values.signingDays);
|
let signingTime = getSomeDayAfter(values.collectingDays + values.choosingDays + values.makePublicDays + values.signingDays, publishedAt);
|
||||||
let payingTime = getSomeDayAfter(values.collectingDays + values.choosingDays + values.makePublicDays + values.signingDays + values.payingDays);
|
let payingTime = getSomeDayAfter(values.collectingDays + values.choosingDays + values.makePublicDays + values.signingDays + values.payingDays, publishedAt);
|
||||||
|
|
||||||
setDisplayTime({ collectingTime, choosingTime, makePublicTime, signingTime, payingTime });
|
setDisplayTime({ collectingTime, choosingTime, makePublicTime, signingTime, payingTime });
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeContactPhone(e){
|
function changeContactPhone(e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
setFieldsValue({
|
setFieldsValue({
|
||||||
contactPhone:e
|
contactPhone: e
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function editPublished() {
|
||||||
|
Confirm({
|
||||||
|
title: '提醒',
|
||||||
|
content: <div>
|
||||||
|
<p>确认更改该创客任务内容?</p>
|
||||||
|
</div>,
|
||||||
|
onOk: () => {
|
||||||
|
saveItem(status)
|
||||||
|
},
|
||||||
|
onCancel:()=>{
|
||||||
|
history.push(`/task/taskDetail/${id}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<div className="centerbox">
|
<div className="centerbox">
|
||||||
<div className="head-navigation">
|
<div className="head-navigation">
|
||||||
|
@ -289,6 +346,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
"contactName",
|
"contactName",
|
||||||
[{ required: true, message: "请输入联系人" }],
|
[{ required: true, message: "请输入联系人" }],
|
||||||
<Input
|
<Input
|
||||||
|
disabled={published}
|
||||||
className="contact-input"
|
className="contact-input"
|
||||||
placeholder="请输入联系人"
|
placeholder="请输入联系人"
|
||||||
/>
|
/>
|
||||||
|
@ -364,8 +422,9 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
<Form.Item >
|
<Form.Item >
|
||||||
{getFieldDecorator('expertReview', {
|
{getFieldDecorator('expertReview', {
|
||||||
validateFirst: true,
|
validateFirst: true,
|
||||||
initialValue: false
|
defaultValue:true,
|
||||||
})(<Checkbox className="color-grey-3 font-bd mb10 font-18">是否增加专家评审流程?添加后可联系管理员发布此专家评审任务</Checkbox>)}
|
valuePropName:"checked"
|
||||||
|
})(<Checkbox className="color-grey-3" disabled={published}>是否增加专家评审流程?添加后可联系管理员发布此专家评审任务</Checkbox>)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
<Form.Item >
|
<Form.Item >
|
||||||
|
@ -404,7 +463,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
"悬赏模式:",
|
"悬赏模式:",
|
||||||
"taskModeId",
|
"taskModeId",
|
||||||
[{ required: true, message: "请选择悬赏模式" }],
|
[{ required: true, message: "请选择悬赏模式" }],
|
||||||
<Radio.Group>
|
<Radio.Group disabled={published}>
|
||||||
<Radio value={1}>单人悬赏,只设置一个中标者</Radio>
|
<Radio value={1}>单人悬赏,只设置一个中标者</Radio>
|
||||||
<Radio value={2}>多人悬赏,设置多分中标分享赏金</Radio>
|
<Radio value={2}>多人悬赏,设置多分中标分享赏金</Radio>
|
||||||
<Radio value={3}>计件悬赏,合格一稿,支付一稿(稿件数量≥2件)</Radio>
|
<Radio value={3}>计件悬赏,合格一稿,支付一稿(稿件数量≥2件)</Radio>
|
||||||
|
@ -415,7 +474,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
"征集方式:",
|
"征集方式:",
|
||||||
"collectionMode",
|
"collectionMode",
|
||||||
[{ required: true, message: "请选择征集方式" }],
|
[{ required: true, message: "请选择征集方式" }],
|
||||||
<Radio.Group>
|
<Radio.Group disabled={published}>
|
||||||
<Radio value={1}>创意征集,应征者以开放讨论的形式参与</Radio>
|
<Radio value={1}>创意征集,应征者以开放讨论的形式参与</Radio>
|
||||||
<Radio value={0}>物化成果征集,应征者以各自提交成果物的形式参与</Radio>
|
<Radio value={0}>物化成果征集,应征者以各自提交成果物的形式参与</Radio>
|
||||||
</Radio.Group>
|
</Radio.Group>
|
||||||
|
@ -425,7 +484,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
"发布方式:",
|
"发布方式:",
|
||||||
"publishMode",
|
"publishMode",
|
||||||
[{ required: true, message: "请选择发布方式" }],
|
[{ required: true, message: "请选择发布方式" }],
|
||||||
<Radio.Group onChange={(e) => { setPublishMode(e.target.value) }}>
|
<Radio.Group disabled={published} onChange={(e) => { setPublishMode(e.target.value) }}>
|
||||||
<Radio value={'0'}>自主提交方式,由发布方自行支付赏金,一键自助发布</Radio>
|
<Radio value={'0'}>自主提交方式,由发布方自行支付赏金,一键自助发布</Radio>
|
||||||
<Radio value={'1'}>统筹任务,由平台支付赏金,需经过平台遴选方能发布</Radio>
|
<Radio value={'1'}>统筹任务,由平台支付赏金,需经过平台遴选方能发布</Radio>
|
||||||
</Radio.Group>
|
</Radio.Group>
|
||||||
|
@ -447,6 +506,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
onChange={(v) => { changeDate(v, 'collectingDays') }}
|
onChange={(v) => { changeDate(v, 'collectingDays') }}
|
||||||
min={1}
|
min={1}
|
||||||
max={180}
|
max={180}
|
||||||
|
disabled={status > 2}
|
||||||
/>,
|
/>,
|
||||||
displayTime.collectingTime
|
displayTime.collectingTime
|
||||||
)}
|
)}
|
||||||
|
@ -462,6 +522,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
onChange={(v) => { changeDate(v, 'choosingDays') }}
|
onChange={(v) => { changeDate(v, 'choosingDays') }}
|
||||||
min={1}
|
min={1}
|
||||||
max={180}
|
max={180}
|
||||||
|
disabled={status > 3}
|
||||||
/>,
|
/>,
|
||||||
displayTime.choosingTime
|
displayTime.choosingTime
|
||||||
)}
|
)}
|
||||||
|
@ -475,6 +536,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
onChange={(v) => { changeDate(v, 'makePublicDays') }}
|
onChange={(v) => { changeDate(v, 'makePublicDays') }}
|
||||||
min={1}
|
min={1}
|
||||||
max={180}
|
max={180}
|
||||||
|
disabled={status > 4}
|
||||||
/>,
|
/>,
|
||||||
displayTime.makePublicTime
|
displayTime.makePublicTime
|
||||||
)}
|
)}
|
||||||
|
@ -520,11 +582,16 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Button className="mr20" type={"primary"} onClick={() => { saveItem(1) }}>发布</Button>
|
{
|
||||||
<Button className="mr20" type={"primary"} onClick={() => { saveItem(0) }}>保存</Button>
|
published ? <Button className="mr20" type={"primary"} onClick={editPublished}>确认修改</Button> : <div>
|
||||||
<Button onClick={() => { history.go(-1) }}>取消</Button>
|
<Button className="mr20" type={"primary"} onClick={() => { saveItem(1) }}>发布</Button>
|
||||||
|
<Button className="mr20" type={"primary"} onClick={() => { saveItem(0) }}>保存</Button>
|
||||||
|
<Button onClick={() => { history.go(-1) }}>取消</Button>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
<CodeModal visible={visible} setVisible={setVisible} changeContactPhone={changeContactPhone}/>
|
|
||||||
|
<CodeModal visible={visible} setVisible={setVisible} changeContactPhone={changeContactPhone} />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
line-height: 28px;
|
line-height: 28px;
|
||||||
padding: 0px 12px;
|
padding: 0px 12px;
|
||||||
color: #656565;
|
color: #656565;
|
||||||
margin: 0px 10px 10px;
|
margin: 0px 10px 10px !important;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue