增加管理员修改发布任务后继续修改任务的功能

This commit is contained in:
何童崇 2022-11-25 16:21:30 +08:00
parent 161adbe6c7
commit cadf447f45
12 changed files with 293 additions and 81 deletions

View File

@ -1,6 +1,6 @@
{
"presets": [
"es2015",
"env",
"react",
"stage-2"
],

View File

@ -52,14 +52,13 @@ function renderModal(props) {
if (type === 'delete') {
return <InitModal
title="删除"
contentTitle="确定要删除吗?"
okText="确认删除"
{...props}
afterClose={destroy}
contentTitle={<React.Fragment>
<i className="red-circle iconfont icon-shanchu_tc_icon mr3"></i>
{props.contentTitle}
{props.contentTitle||'确定要删除吗?'}
</React.Fragment>}
/>
} else if (type === 'confirm') {

View File

@ -48,6 +48,7 @@ function Uploads({ className, size, actionUrl, fileList, showNotification, load
function handleChange(info) {
console.log(info);
if (info.file.status === 'uploading' || info.file.status === 'done' || info.file.status === 'removed') {
let fileList = info.fileList;
setFiles(appendFileSizeToUploadFileAll(fileList));
@ -59,7 +60,8 @@ function Uploads({ className, size, actionUrl, fileList, showNotification, load
}
backFiles(fileList);
if (!info.file.response.data) {
info.file.response && showNotification(info.file.response.message)
info.file.response && showNotification(info.file.response.message);
setFiles([]);
}
}
}

View File

@ -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) {
return fetch({
@ -268,7 +286,7 @@ export function updatePaper(data) {
});
}
// 删除
// 删除成果
export function deletePaper(id) {
return fetch({
url: `api/paper/${id}`,

View File

@ -1,15 +1,19 @@
import React, { useCallback, useEffect, useState, useMemo } from 'react';
import { Input, Radio, Select, Button, Form, DatePicker, Table, Pagination, Modal } from 'antd';
import { Link } from "react-router-dom";
import { paperCheckStatusArr } from '../static';
import { readyCheckPapers, checkPaper, } from '../api';
import { Confirm } from '../../components/ModalFun';
import { paperCheckStatusArr,taskStatusAllArr } from '../static';
import { readyCheckPapers, checkPaper,deletePaper } from '../api';
import '../index.scss';
import './index.scss';
const format = "YYYY-MM-DD HH:mm:ss";
const Option = Select.Option;
const TextArea = Input.TextArea;
const statusArr = [];
for (const item of taskStatusAllArr) {
statusArr[item.dicItemCode] = item.dicItemName;
}
const checkStatusArr = [];
for (const item of paperCheckStatusArr) {
checkStatusArr[item.dicItemCode] = item.dicItemName;
@ -62,7 +66,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
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.endCreatedAt) values.endCreatedAt = values.endCreatedAt.format(format);
if (values.checkStatus === '0,1,2') values.checkStatus = '';
@ -73,11 +77,30 @@ export default Form.create()(({ current_user, form, showNotification, match, his
setFieldsValue({
startCreatedAt: '',
endCreatedAt: '',
checkStatus: '0,1,2'
checkStatus: '0,1,2',
number:''
});
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) {
validateFields((err, values) => {
if (!err) {
@ -113,6 +136,10 @@ export default Form.create()(({ current_user, form, showNotification, match, his
return <div style={{ textAlign: 'center' }}>{index + 1}</div>
}
},
{
title: '成果编号',
dataIndex: 'number',
},
{
title: '来源任务',
dataIndex: 'name',
@ -123,6 +150,13 @@ export default Form.create()(({ current_user, form, showNotification, match, his
</span >
),
},
{
title: '任务状态',
dataIndex: 'task',
render: (text, record) => {
return text.status.exceptClosedBoolean ? '已关闭' : statusArr[text.status]
}
},
{
title: '评论/成果内容',
dataIndex: 'content',
@ -157,7 +191,10 @@ export default Form.create()(({ current_user, form, showNotification, match, his
key: 'action',
render: (text, record) => (
<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>
),
},
@ -244,10 +281,18 @@ export default Form.create()(({ current_user, form, showNotification, match, his
</Select>,
0
)}
{helper(
"成果编号",
"number",
[{ max: 20, message: '长度不能超过20个字符' }],
<Input
placeholder="请输入成果编号"
/>
)}
</div>
<div className="center-right-but">
{helper(
"发布时间:",
"startCreatedAt",
@ -269,6 +314,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
placeholder="请选择结束时间"
/>
)}
<Button className="mr10" type="primary" onClick={onSearch}>搜索</Button>
<Button className="mr10" type="" onClick={clearSearch}>清除</Button>

View File

@ -6,4 +6,16 @@
float: left;
}
}
.center-left-but{
width: 100%;
.ant-form-item{
width: 30%;
}
}
.center-right-but{
width: 100%;
}
.line_1{
display: inline-block;
}
}

View File

@ -5,7 +5,7 @@ import { Link } from 'react-router-dom';
import moment from 'moment';
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 { 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 [downloading,setDownloading] = useState(false);
const [restartVisible,setRestartVisible]= useState(false); //modal
//
const [lookRules, setLookRules] = 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);
// id
const [reviewTaskId, setReviewTaskId] = useState(undefined);
const [visible, setVisible] = useState(false);
const [visible, setVisible] = useState(false); //modal
const [checkedItem, setCheckedItem] = useState('');
useEffect(()=>{
@ -134,9 +136,13 @@ export default Form.create()(({ form, showNotification, match, history, state })
setSearchObj({});
}
function delayClick(item) {
function delayClick(item,restart) {
setCheckedItem(item);
setVisible(true);
if(restart){
setVisible(true);
}else{
setRestartVisible(true);
}
}
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);
return(
<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 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>
@ -292,6 +299,8 @@ export default Form.create()(({ form, showNotification, match, history, state })
];
}, []);
// function resetTaskModal
function recommendItem(id, recommend) {
Modal.confirm({
title: "警告",
@ -519,10 +528,13 @@ export default Form.create()(({ form, showNotification, match, history, state })
return current && current < moment(checkedItem.eachPhaseEndTime).endOf('day');
}
function disabledDate2(current) {
return current && current < moment();
}
function delayTime() {
validateFields((err, values) => {
validateFields(['delayedTo'],(err, values) => {
if (!err) {
console.log(values)
delayTask({
taskId: checkedItem.id,
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 (
<div className="task-manage-all ">
@ -755,6 +782,28 @@ export default Form.create()(({ form, showNotification, match, history, state })
)}
</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}/>
</div>

View File

@ -237,4 +237,8 @@
.time-edit-modal .ant-modal-body{
width: 200px;
margin:0 auto;
}
.imoptantText{
color: $primary-color;
}

View File

@ -9,7 +9,7 @@ import StatusNav from '../../components/statusNav';
import ItemListPaper from '../components/itemListPaper';
import ProofModal from '../components/proofModal';
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 './index.scss';
import { getRules } from 'src/military/expert/api';
@ -160,7 +160,7 @@ export default Form.create()(
//
const process = useCallback((title, status, days) => {
let {surplus,
let { surplus,
surplusTimetext,
delayTime
} = surplusTime(detailData);
@ -216,6 +216,9 @@ export default Form.create()(
let params = {
...values,
taskId: id
};
if (!params.files){
delete params.files;
}
setPaperUploadLoading(true);
addPaper(params).then((res) => {
@ -307,7 +310,7 @@ export default Form.create()(
Modal.confirm({
content: "请先完成实名认证再提交需求申请,是否前往认证?",
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">创客空间 &gt;</Link>
<Link to="/task">任务大厅 &gt;</Link>
&nbsp;任务编号{detailData.number}
</div>
<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="task_tag">{taskCategoryValueArr[detailData.categoryId]}</span>
</span>
<span className='detail_tag_btn '>
<span>
{
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>
current_user && current_user.roles && current_user.roles.includes('管理员') && <Link class="adminEdit" to={`/task/taskEdit/${id}`}>编辑</Link>
}
<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>
</div>
<div className="clearfix flex1">
<ul className="fl">
@ -440,7 +448,7 @@ export default Form.create()(
<li><span className="mr10 color-grey9">任务编号</span><span className="color-grey3">{detailData.number}</span></li>
<li><span className="mr10 color-grey9">发布时间</span><span className="color-grey3">{detailData.publishedAt || detailData.createdAt}</span></li>
</ul>
<div className="fr edu-txt-right mt10">
<div className="color-orange font-bd lineh-30"><span className="font-18"></span><span className="font-28">{detailData.bounty}</span></div>
</div>

View File

@ -11,6 +11,12 @@
}
}
.adminEdit{
float: left;
margin-right: 2em;
color: #4154f1;
}
.task-tit-text{
line-height: 1.4;
max-width: 800px;
@ -56,6 +62,7 @@
.head-navigation {
position: absolute;
top: -2.3em;
width: 100%;
}
.task-title{

View File

@ -6,30 +6,27 @@ import ReactWEditor from 'wangeditor-for-react';
import { Link } from "react-router-dom";
import Upload from '../../components/Upload';
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 { editorConfig } from '../../components/config';
import CodeModal from './codeModal';
import './index.scss';
import { Confirm } from '../../components/ModalFun';
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) => {
console.log(current_user);
const [taskCategoryArr, setTaskCategoryArr] = useState([]);
const [fileList, setFileList] = useState(null);
const [publishMode, setPublishMode] = useState('0');
const [categoryId, setCategoryId] = useState('7');
const [descriptionHtml, setDescriptionHtml] = useState('');
const [enterpriseName, setEnterpriseName] = useState('');
const [publishMode, setPublishMode] = useState('0'); //
const [categoryId, setCategoryId] = useState('7'); //
const [descriptionHtml, setDescriptionHtml] = useState(''); //
const [enterpriseName, setEnterpriseName] = useState(''); //
const [displayTime, setDisplayTime] = useState(() => {
return {
collectingTime: getSomeDayAfter(30),
@ -38,18 +35,32 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
signingTime: getSomeDayAfter(30 + 15 + 7 + 15),
payingTime: getSomeDayAfter(30 + 15 + 7 + 15 + 15)
}
});
}); //
const [visible, setVisible] = useState(false);
const [num, setNum] = useState(0) //
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 { getFieldDecorator, validateFields, setFieldsValue, getFieldsValue } = form;
// id
// id
useEffect(() => {
if (id) {
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 = {
name: data.name,
contactName: data.contactName,
@ -67,6 +78,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
makePublicDays: data.makePublicDays,
signingDays: data.signingDays,
payingDays: data.payingDays,
expertReview: data.expertReview&&'checked'
};
if (data.tasksAttachments && data.tasksAttachments.length) {
for (const item of data.tasksAttachments) {
@ -82,11 +94,13 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
setDescriptionHtml(data.description);
setPublishMode(data.publishMode + '');
let collectingTime = getSomeDayAfter(data.collectingDays);
let choosingTime = getSomeDayAfter(data.collectingDays + data.choosingDays);
let makePublicTime = getSomeDayAfter(data.collectingDays + data.choosingDays + data.makePublicDays);
let signingTime = getSomeDayAfter(data.collectingDays + data.choosingDays + data.makePublicDays + data.signingDays);
let payingTime = getSomeDayAfter(data.collectingDays + data.choosingDays + data.makePublicDays + data.signingDays + data.payingDays);
let publishedAt = (data.publishedAt || data.createdAt);
let collectingTime = getSomeDayAfter(data.collectingDays, publishedAt);
let choosingTime = getSomeDayAfter(data.collectingDays + data.choosingDays, publishedAt);
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 });
});
} else {
@ -153,6 +167,12 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
};
}, [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) {
setFileList(fileList);
@ -177,16 +197,19 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
), []);
const helperNoLabel = useCallback(
(title, name, rules, widget, displayTime) => (
<div className="timing_task" key={name}>
<div className="mbt10 color-grey-9 lineh-35"><span className="inline-span">{title}</span></div>
<Form.Item className="no-label">
{getFieldDecorator(name, { rules, validateFirst: true, })(widget)}
</Form.Item>
<span className="days-word color-grey-9 "></span>
{publishMode == '0' && <p className="display-time">{displayTime}</p>}
</div>
), [publishMode]);
(title, name, rules, widget, displayTime) => {
let active = (status == 3 && title == '成果提交') || (status == 4 && title == '成果评选') || (status == 5 && title == '结果公示') || (status == 6 && title == '任务协议签订');
return (
<div className="timing_task" key={name}>
<div className="mbt10 color-grey-9 lineh-35"><span className={`inline-span ${active ? 'active' : ''}`}>{title}</span></div>
<Form.Item className="no-label">
{getFieldDecorator(name, { rules, validateFirst: true, })(widget)}
</Form.Item>
<span className="days-word color-grey-9 "></span>
{publishMode == '0' && <p className="display-time">{displayTime}</p>}
</div>
)
}, [publishMode, status]);
//
const publishDeal = useCallback((status, publishMode, res) => {
@ -194,6 +217,9 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
if (!status) {
history.push("/task/myTask?published=false");
showNotification("任务保存成功!");
} else if (current_user.admin && status>2) {
history.push(`/task/taskDetail/${id}`);
showNotification("任务修改成功!");
} else if (current_user.admin) {
history.push("/task");
showNotification("任务发布成功!");
@ -229,7 +255,23 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
showNotification("任务天数总和不得超过180天");
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;
updateTask(params).then(res => {
@ -251,21 +293,36 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
}
let values = getFieldsValue();
values[field] = v;
let collectingTime = getSomeDayAfter(values.collectingDays);
let choosingTime = getSomeDayAfter(values.collectingDays + values.choosingDays);
let makePublicTime = getSomeDayAfter(values.collectingDays + values.choosingDays + values.makePublicDays);
let signingTime = getSomeDayAfter(values.collectingDays + values.choosingDays + values.makePublicDays + values.signingDays);
let payingTime = getSomeDayAfter(values.collectingDays + values.choosingDays + values.makePublicDays + values.signingDays + values.payingDays);
let collectingTime = getSomeDayAfter(values.collectingDays, publishedAt);
let choosingTime = getSomeDayAfter(values.collectingDays + values.choosingDays, publishedAt);
let makePublicTime = getSomeDayAfter(values.collectingDays + values.choosingDays + values.makePublicDays, publishedAt);
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, publishedAt);
setDisplayTime({ collectingTime, choosingTime, makePublicTime, signingTime, payingTime });
}
function changeContactPhone(e){
function changeContactPhone(e) {
console.log(e);
setFieldsValue({
contactPhone:e
contactPhone: e
})
}
function editPublished() {
Confirm({
title: '提醒',
content: <div>
<p>确认更改该创客任务内容</p>
</div>,
onOk: () => {
saveItem(status)
},
onCancel:()=>{
history.push(`/task/taskDetail/${id}`);
}
});
}
return (
<div className="centerbox">
<div className="head-navigation">
@ -289,6 +346,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
"contactName",
[{ required: true, message: "请输入联系人" }],
<Input
disabled={published}
className="contact-input"
placeholder="请输入联系人"
/>
@ -364,8 +422,9 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
<Form.Item >
{getFieldDecorator('expertReview', {
validateFirst: true,
initialValue: false
})(<Checkbox className="color-grey-3 font-bd mb10 font-18">是否增加专家评审流程添加后可联系管理员发布此专家评审任务</Checkbox>)}
defaultValue:true,
valuePropName:"checked"
})(<Checkbox className="color-grey-3" disabled={published}>是否增加专家评审流程添加后可联系管理员发布此专家评审任务</Checkbox>)}
</Form.Item>
<Form.Item >
@ -404,7 +463,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
"悬赏模式:",
"taskModeId",
[{ required: true, message: "请选择悬赏模式" }],
<Radio.Group>
<Radio.Group disabled={published}>
<Radio value={1}>单人悬赏只设置一个中标者</Radio>
<Radio value={2}>多人悬赏设置多分中标分享赏金</Radio>
<Radio value={3}>计件悬赏合格一稿支付一稿稿件数量2</Radio>
@ -415,7 +474,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
"征集方式:",
"collectionMode",
[{ required: true, message: "请选择征集方式" }],
<Radio.Group>
<Radio.Group disabled={published}>
<Radio value={1}>创意征集应征者以开放讨论的形式参与</Radio>
<Radio value={0}>物化成果征集应征者以各自提交成果物的形式参与</Radio>
</Radio.Group>
@ -425,7 +484,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
"发布方式:",
"publishMode",
[{ 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={'1'}>统筹任务由平台支付赏金需经过平台遴选方能发布</Radio>
</Radio.Group>
@ -447,6 +506,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
onChange={(v) => { changeDate(v, 'collectingDays') }}
min={1}
max={180}
disabled={status > 2}
/>,
displayTime.collectingTime
)}
@ -462,6 +522,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
onChange={(v) => { changeDate(v, 'choosingDays') }}
min={1}
max={180}
disabled={status > 3}
/>,
displayTime.choosingTime
)}
@ -475,6 +536,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
onChange={(v) => { changeDate(v, 'makePublicDays') }}
min={1}
max={180}
disabled={status > 4}
/>,
displayTime.makePublicTime
)}
@ -520,12 +582,17 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
</div>
</div>
<Button className="mr20" type={"primary"} onClick={() => { saveItem(1) }}>发布</Button>
<Button className="mr20" type={"primary"} onClick={() => { saveItem(0) }}>保存</Button>
<Button onClick={() => { history.go(-1) }}>取消</Button>
{
published ? <Button className="mr20" type={"primary"} onClick={editPublished}>确认修改</Button> : <div>
<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>
)
})

View File

@ -37,7 +37,7 @@
line-height: 28px;
padding: 0px 12px;
color: #656565;
margin: 0px 10px 10px;
margin: 0px 10px 10px !important;
cursor: pointer;
}