接口联调

This commit is contained in:
黄心宇 2023-07-21 17:44:44 +08:00
parent 464fd7f911
commit e8739893e4
13 changed files with 245 additions and 117 deletions

View File

@ -10,9 +10,16 @@ const Iframe = (props) => {
const history = props.history
const location = history.location
if (!location.state.url) {
history.push("/404");
}
function iframeLoad() {
let myIframe = document.getElementById("iframe");
myIframe.height = `${document.documentElement.clientHeight - 300}px`
if (myIframe.contentWindow.location && myIframe.contentWindow.location.href) {
window.location.href = myIframe.contentWindow.location.href
}
}
return <iframe

View File

@ -1,14 +1,14 @@
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 { Confirm } from '../../components/ModalFun';
import { paperCheckStatusArr,taskStatusAllArr } from '../static';
import { readyCheckPapers, checkPaper, } from '../api';
import { paperCheckStatusArr,taskStatusAllArr, signStatus } from '../static';
import { agreementSignList, getSignUrl, } from '../api';
import '../index.scss';
import './index.scss';
import { httpUrl } from '../fetch';
const format = "YYYY-MM-DD HH:mm:ss";
const Option = Select.Option;
const TextArea = Input.TextArea;
const statusArr = [];
for (const item of taskStatusAllArr) {
@ -18,39 +18,35 @@ const checkStatusArr = [];
for (const item of paperCheckStatusArr) {
checkStatusArr[item.dicItemCode] = item.dicItemName;
}
export default Form.create()(({ current_user, form, showNotification, match, history }) => {
export default Form.create()(({ form, history }) => {
const { getFieldDecorator, setFieldsValue, getFieldsValue } = form;
const [loading, setLoading] = useState(false);
const [signLoading, setSignLoading] = useState(false);
const [searchObj, setSearchObj] = useState({
checkStatus: '2',
parentId: 0,
signStatus: signStatus.unsigned,
});
const [curPage, setCurPage] = useState(1);
const [total, setTotal] = useState(0);
const [taskList, setTaskList] = useState([]);
const [reload, setReload] = useState(0);
const [currentImg, setCurrentImg] = useState(undefined);
const [visible, setVisible] = useState(false);
useEffect(() => {
const params = {
curPage,
pageSize: 10,
...searchObj,
};
setLoading(true);
readyCheckPapers(params).then(data => {
agreementSignList(params).then(data => {
if (data) {
if((data.rows && data.rows.length<=0) && curPage>1){
if((data.data && data.data.length<=0) && curPage>1){
setCurPage(curPage-1);
}
setTaskList(data.rows);
setTaskList(data.data);
setTotal(data.total);
}
setLoading(false);
@ -67,26 +63,28 @@ export default Form.create()(({ current_user, form, showNotification, match, his
function onSearch() {
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 = '';
let values = getFieldsValue(['signStatus']);
setSearchObj(values);
}
function clearSearch() {
setFieldsValue({
startCreatedAt: '',
endCreatedAt: '',
checkStatus: '0,1,2',
number:''
signStatus: signStatus.all,
});
setSearchObj({});
}
function previewImage() {
setCurrentImg('https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png')
setVisible(true)
function getAgreementSignUrl(item) {
setSignLoading(true);
const params = {
signTaskType: 2 , //: 1- 2-
signatureFormSignTaskId: item.checkedAgreementSignTaskId
}
getSignUrl(params).then(data => {
history.push({ pathname: '/managements/iframe', state: { url: data.data } })
}).finally(() => {
setSignLoading(false);
})
}
const columns = useMemo(() => {
@ -100,50 +98,67 @@ export default Form.create()(({ current_user, form, showNotification, match, his
},
{
title: '任务编号',
dataIndex: 'number',
dataIndex: 'taskId',
},
{
title: '任务名称',
dataIndex: 'name',
dataIndex: 'taskName',
},
{
title: '发布时间',
dataIndex: 'createdAt',
dataIndex: 'taskPublishedTime',
},
{
title: '胜出者姓名',
dataIndex: 'user',
render: (text, record) => {
return record.user.nickname || record.user.login
return record.nickname || record.login
}
},
{
title: '协议',
dataIndex: 'content',
render: (text, record) => {
return <img
style={{ width: '100px' , cursor: 'pointer' }}
onClick={ previewImage }
src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
/>
return record.checkedAgreementFileId ? <a href={`${ httpUrl }/busiAttachments/view/${ record.checkedAgreementFileId }`} target='_blank'>协议预览</a> : '-'
}
},
{
title: '操作',
key: 'action',
render: (text, record) => (
!record.checkedAgreementFileId ? <Button className="mr5 font-12" type="primary" onClick={() => { getAgreementSignUrl(record) }} loading={ signLoading } >签订表签字</Button> : '已签署'
),
},
]
}, []);
function changeType(e) {
setSearchObj({
...searchObj,
parentId: e,
signStatus: e,
});
setCurPage(1);
}
return (
<div className="task-manage paper-manage">
<div className="task-manage paper-manage imageLayerParent">
<div className="center-screen clearfix" >
<div className="center-left-but">
{helper(
"签订状态",
"signStatus",
[],
<Select
showArrow
placeholder="请选择签订状态"
onChange={changeType}
>
<Option key={0} value={ signStatus.all }>全部</Option>
<Option key={1} value={ signStatus.unsigned }>未签订</Option>
<Option key={2} value={ signStatus.signed }>已签订</Option>
</Select>,
signStatus.unsigned
)}
{helper(
"任务编号",
"number",
@ -170,35 +185,8 @@ export default Form.create()(({ current_user, form, showNotification, match, his
placeholder="请输入胜出者姓名"
/>
)}
</div>
<div className="center-right-but">
{helper(
"发布时间:",
"startCreatedAt",
[],
<DatePicker
showTime
format={format}
placeholder="请选择开始时间"
/>
)}
{helper(
"",
"endCreatedAt",
[],
<DatePicker
showTime
format={format}
placeholder="请选择结束时间"
/>
)}
<Button className="mr10" type="primary" onClick={onSearch}>搜索</Button>
<Button className="mr10" type="" onClick={clearSearch}>清除</Button>
</div>
</div>
@ -206,7 +194,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
<div className="center-content">
<Table
loading={loading}
loading={loading || signLoading}
rowKey={(row) => row.id}
dataSource={taskList}
columns={columns}
@ -221,15 +209,6 @@ export default Form.create()(({ current_user, form, showNotification, match, his
/>}
</div>
<Modal
visible={visible}
footer={null}
className="form-edit-modal"
width={'1000px'}
onCancel={() => { setVisible(false)}}
>
<img style={{ width: '95%', margin: 'auto' }} src={ currentImg } alt="" />
</Modal>
</div>
)
}

View File

@ -18,6 +18,9 @@
.line_1{
display: inline-block;
}
a {
color: #4154f1;
}
}
.ant-modal-body {
display: flex;

View File

@ -6,10 +6,13 @@ import { paperCheckStatusArr,taskStatusAllArr } from '../static';
import { agreementListNew, adminCheckAgreementNew } from '../api';
import '../index.scss';
import './index.scss';
import { httpUrl } from '../fetch';
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;
@ -36,7 +39,8 @@ export default Form.create()(({ current_user, form, showNotification, match, his
const [checkedItem, setCheckedItem] = useState({});
const [visible, setVisible] = useState(false);
const [checkLoading, setCheckLoading] = useState(false);
useEffect(() => {
const params = {
@ -84,6 +88,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
Modal.confirm({
title: '确认审批通过?',
onOk() {
setCheckLoading(true);
adminCheckAgreementNew({
taskOnlineSignId: item.id,
params: {
@ -94,8 +99,11 @@ export default Form.create()(({ current_user, form, showNotification, match, his
showNotification('操作成功');
setReload(Math.random());
}
}).finally(() => {
setCheckLoading(false);
})
}
},
confirmLoading: checkLoading
});
}
@ -107,6 +115,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
function dealAction() {
validateFields((error, values) => {
if (!error) {
setCheckLoading(true);
adminCheckAgreementNew({
taskOnlineSignId: checkedItem.id,
params: {
@ -119,6 +128,8 @@ export default Form.create()(({ current_user, form, showNotification, match, his
setReload(Math.random());
setVisible(false);
}
}).finally(() => {
setCheckLoading(false);
});
}
});
@ -147,16 +158,24 @@ export default Form.create()(({ current_user, form, showNotification, match, his
dataIndex: 'user',
render: (text, record) => {
return record.signatureFormUnsignedFile ?
<a href={ record.signatureFormUnsignedFile.fileDownloadPath } target='_blank' download={ record.signatureFormUnsignedFile.fileName }><Icon type="file" /> { record.signatureFormUnsignedFile.fileName }</a>
<div>
<Icon type="file" /> { record.signatureFormUnsignedFile.fileName }
<a href={ record.signatureFormUnsignedFile.fileDownloadPath } target="_blank" download={ record.signatureFormUnsignedFile.fileName } className="ml10">下载</a>
<a href={`${ httpUrl }/busiAttachments/view/${ record.signatureFormUnsignedFile.id }`} target="_blank" className="ml10">预览</a>
</div>
: '-'
}
},
{
title: '协议文件文件',
title: '协议文件',
dataIndex: 'user1',
render: (text, record) => {
return record.agreementFile ?
<a href={ record.agreementFile.fileDownloadPath } target='_blank' download={ record.agreementFile.fileName }><Icon type="file" /> { record.agreementFile.fileName }</a>
<div>
<Icon type="file" /> { record.agreementFile.fileName }
<a href={ record.agreementFile.fileDownloadPath } target="_blank" download={ record.agreementFile.fileName } className="ml10">下载</a>
<a href={`${ httpUrl }/busiAttachments/view/${ record.agreementFile.id }`} target="_blank" className="ml10">预览</a>
</div>
: '-'
}
},
@ -175,8 +194,8 @@ export default Form.create()(({ current_user, form, showNotification, match, his
{
record.firstDraftCheckStatus === 2 && <React.Fragment>
<Button type="primary" className="mr20" onClick={() => { agreeClick(record) }}>同意</Button>
<Button onClick={() => { refuseClick(record) }}>驳回</Button>
<Button type="primary" className="mr20" onClick={() => { agreeClick(record) }} >同意</Button>
<Button onClick={() => { refuseClick(record) }} >驳回</Button>
</React.Fragment>
}
</span>
@ -233,7 +252,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
<div className="center-content">
<Table
loading={loading}
loading={loading || checkLoading }
rowKey={(row) => row.id}
dataSource={taskList}
columns={columns}
@ -254,6 +273,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
onOk={dealAction}
onCancel={() => { setVisible(false) }}
className="form-edit-modal"
confirmLoading={ checkLoading }
>
{
helper('驳回原因', 'message', [{ required: visible, message: "请输入驳回的原因" }, { max: 200, message: '不能超过200字符' }],

View File

@ -18,4 +18,7 @@
.line_1{
display: inline-block;
}
a {
color: #4154f1;
}
}

View File

@ -2,8 +2,8 @@ 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 { Confirm } from '../../components/ModalFun';
import { paperCheckStatusArr,taskStatusAllArr } from '../static';
import { readyCheckPapers, agreementSignList, getSignUrl } from '../api';
import { paperCheckStatusArr,taskStatusAllArr, signStatus } from '../static';
import { readyCheckPapers, signatureFormList, getSignUrl } from '../api';
import '../index.scss';
import './index.scss';
const format = "YYYY-MM-DD HH:mm:ss";
@ -24,9 +24,9 @@ export default Form.create()(({ current_user, form, showNotification, match, his
const { getFieldDecorator, setFieldsValue, getFieldsValue } = form;
const [loading, setLoading] = useState(false);
const [signLoading, setSignLoading] = useState(false);
const [searchObj, setSearchObj] = useState({
signStatus: '2',
parentId: 0,
signStatus: signStatus.unsigned,
});
const [curPage, setCurPage] = useState(1);
const [total, setTotal] = useState(0);
@ -42,7 +42,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
...searchObj,
};
setLoading(true);
agreementSignList(params).then(data => {
signatureFormList(params).then(data => {
if (data) {
if((data.data && data.data.length<=0) && curPage>1){
setCurPage(curPage-1);
@ -70,18 +70,21 @@ export default Form.create()(({ current_user, form, showNotification, match, his
function clearSearch() {
setFieldsValue({
signStatus: '',
signStatus: signStatus.all,
});
setSearchObj({});
}
function getSignFormUrl(item) {
setSignLoading(true);
const params = {
signTaskType: 1 , //: 1- 2-
signatureFormSignTaskId: item.signatureFormSignTaskId
}
getSignUrl(params).then(data => {
history.push({ pathname: '/managements/iframe', state: { url: data.data } })
history.push({ pathname: '/managements/iframe', state: { url: data.data } });
}).finally(() => {
setSignLoading(false);
})
}
@ -94,6 +97,10 @@ export default Form.create()(({ current_user, form, showNotification, match, his
return <div style={{ textAlign: 'center' }}>{index + 1}</div>
}
},
{
title: '任务编号',
dataIndex: 'taskId',
},
{
title: '任务名称',
dataIndex: 'taskName',
@ -101,21 +108,19 @@ export default Form.create()(({ current_user, form, showNotification, match, his
{
title: '发布主体',
dataIndex: 'user',
// render: (text, record) => {
// return record.user.nickname || record.user.login
// }
render: (text, record) => {
return record.nickname || record.login
}
},
{
title: '发布时间',
dataIndex: 'createdAt',
dataIndex: 'taskPublishedTime',
},
{
title: '操作',
key: 'action',
render: (text, record) => (
<React.Fragment>
<Button className="mr5 font-12" type="primary" onClick={() => { getSignFormUrl(record) }}>签订表签字</Button>
</React.Fragment>
!record.signatureFormSignedFileId ? <Button className="mr5 font-12" type="primary" onClick={() => { getSignFormUrl(record) }} loading={ signLoading } >签订表签字</Button> : '已签署'
),
},
]
@ -142,10 +147,11 @@ export default Form.create()(({ current_user, form, showNotification, match, his
placeholder="请选择签订状态"
onChange={changeType}
>
<Option key={0} value={0}>未签订</Option>
<Option key={1} value={1}>已签订</Option>
<Option key={0} value={ signStatus.all }>全部</Option>
<Option key={1} value={ signStatus.unsigned }>未签订</Option>
<Option key={2} value={ signStatus.signed }>已签订</Option>
</Select>,
0
signStatus.unsigned
)}
<Button className="mr10" type="primary" onClick={onSearch}>搜索</Button>

View File

@ -737,7 +737,7 @@ export function changePinnedTaskSort(data){
// 签订表+协议审核列表
export function agreementListNew(params) {
return fetch({
url: `/api/taskOnlineSign/firstDraft/list`,
url: `/api/taskOnlineSign/admin/firstDraft/list`,
method: 'get',
params,
});
@ -753,7 +753,7 @@ export function adminCheckAgreementNew(data) {
}
// 签订表签署列表
export function agreementSignList(params) {
export function signatureFormList(params) {
return fetch({
url: `/api/taskOnlineSign/admin/signatureForm/list`,
method: 'get',
@ -786,4 +786,31 @@ export function uploadSignForm(data) {
method: 'post',
data: data.params
});
}
// 获取协议签署列表
export function agreementSignList(params) {
return fetch({
url: `/api/taskOnlineSign/admin/agreement/list`,
method: 'get',
params,
});
}
// 用户获取任务签署状态
export function getTaskSignStatus(params) {
return fetch({
url: `/api/taskOnlineSign/signTaskStatus`,
method: 'get',
params,
});
}
// 用户获取签订表签署链接
export function getUserSignUrl(params) {
return fetch({
url: `/api/taskOnlineSign/user/get-url`,
method: 'get',
params,
});
}

View File

@ -14,9 +14,16 @@ export default Form.create()(props => {
const [fileList, setFileList] = useState([]);
const [fileList1, setFileList1] = useState([]);
const [content,setContent]=useState('');
const [content, setContent]=useState('');
const [loading, setLoading]=useState(false);
const uploadList = [uploadAgreement, uploadSignForm]
const uploadList = [{
func: uploadAgreement,
params: 'files'
}, {
func: uploadSignForm,
params: 'files1'
}, ]
useEffect(()=>{
visible && getAgreement({title:'协议模板'}).then(res=>{
@ -54,10 +61,11 @@ export default Form.create()(props => {
validateFields((err, values) => {
if (!err) {
const promiseList = []
setLoading(true)
uploadList.forEach(e => {
promiseList.push(e({
promiseList.push(e.func({
params: {
files: values.files,
files: values[e.params],
paperNumber: checkedItem.number
}
}))
@ -74,6 +82,8 @@ export default Form.create()(props => {
}else{
showNotification("上传协议失败")
}
}).finally(() => {
setLoading(false)
});
}
})
@ -86,6 +96,7 @@ export default Form.create()(props => {
onOk={uploadAgree}
onCancel={() => { setVisible(false) }}
className="form-edit-modal"
confirmLoading={ loading }
>
<div className="task-popup-content">
{/* paperAuditing */}

View File

@ -24,7 +24,7 @@ for (const item of paperCheckStatusArr) {
}
export default Form.create()((props) => {
const { list, curPage, total, changePage, loading, applyStatusAllNameArr, reloadList, showNotification, current_user, form, detailStatus, expertReview ,mygetHelmetapi, taskLimit} = props;
const { list, curPage, total, changePage, loading, applyStatusAllNameArr, reloadList, showNotification, current_user, form, detailStatus, expertReview ,agreementStatus, taskLimit} = props;
const { getFieldDecorator, validateFields, setFieldsValue } = form;
const [page, setPage] = useState(1);
const pageSize = props.pageSize || 10;
@ -172,8 +172,14 @@ export default Form.create()((props) => {
{winReview && i ==0 && <span className='winReview'><img src={win1}/>第一名</span>}
{winReview && i ==1 && <span className='winReview'><img src={win2}/>第二名</span>}
{winReview && i ==2 && <span className='winReview'><img src={win3}/>第三名</span>}
{item.status === 2 && detailStatus === 6 && taskLimit &&
<a className="right-button" onClick={() => {certificationCheck(item); }}>签订协议</a>}
{
item.status === 2 && detailStatus === 6 && taskLimit &&
<a className="right-button" onClick={() => {certificationCheck(item); }}>签订协议</a>
}
{
item.status === 2 && detailStatus > 6 && (current_user.login === item.user.login) &&
<a className="right-button" href={`${httpUrl}/busiAttachments/downloadAttachment/${agreementStatus.checkedAgreementFileUniqueId}`} target='_blank'>下载协议</a>
}
</li>
<li className="fr">
{((item.needComplain && detailStatus === 3) || (detailStatus === 5 && item.publicTaskComplain && item.checkStatus === 1 && item.status !== 2)) && (current_user.login === item.user.login) &&

View File

@ -72,7 +72,7 @@
border:1px solid;
border-color:#4154f1;
border-radius:2px;
color:#4154f1;
color: #4154f1 !important;;
font-size:15px;
line-height: 34px;
text-align: center;

View File

@ -253,3 +253,15 @@ export function surplusTime(item) {
delayTime
};
}
export const signStatus = {
all: 'all', // 全部
unsigned: 'unsigned', // 未签署
signed: 'signed', // 已签署
};
//
export const urlType = {
edit: 1, // 协同编辑
agreement: 2 // 协议签署
};

View File

@ -10,8 +10,8 @@ import StatusNav from '../../components/statusNav';
import ItemListPaper from '../components/itemListPaper';
import ProofModal from '../components/proofModal';
import ExportPaper from './exportPaper';
import { getTaskDetail, getTaskCategory, getTaskPaper, makePublic, addPaper, getAgreement, agreement, checkAgreement, checkHavePaper, addExpertReview, followTask, unfollowTask } from '../api';
import { taskModeIdArr, applyStatusArr, applyStatusAllArr, paperCheckSearchArr, agreementContent, paperCheckTextArr, surplusTime } from '../static';
import { getTaskDetail, getTaskCategory, getTaskPaper, makePublic, addPaper, getAgreement, agreement, checkAgreement, checkHavePaper, addExpertReview, followTask, unfollowTask, getTaskSignStatus, getUserSignUrl } from '../api';
import { taskModeIdArr, applyStatusArr, applyStatusAllArr, paperCheckSearchArr, agreementContent, paperCheckTextArr, surplusTime, urlType } from '../static';
import { httpUrl } from '../fetch';
import './index.scss';
import { getRules } from 'src/military/expert/api';
@ -53,6 +53,7 @@ export default Form.create()(
const [total, setTotal] = useState(0);
const [dataList, setDataList] = useState([]);
const [loading, setLoading] = useState(false);
const [signLoading, setSignLoading] = useState(false);
const [reload, setReload] = useState(0);
const [relaodChildList, setRelaodChildList] = useState(0);
@ -62,6 +63,11 @@ export default Form.create()(
const [publishedReviewRules, setPublishedReviewRules] = useState(undefined);
const [download, setDownload] = useState();
// 线
const [agreementStatus, setAgreementStatus] = useState({
phase: 0
})
// useEffect(()=>{
// !current_user.login&&showLoginDialog();
// },[current_user.login]);
@ -127,15 +133,31 @@ export default Form.create()(
const isWinner = useMemo(() => {
let isWin = false
for (const item of dataList) {
if (item.user.login === current_user.login) {
if (item.user.login === current_user.login && item.status === 2) {
isWin = true
}
}
return isWin
},[dataList, current_user])
const signStep = (status) => {
return status === 0 ? <span>协议在线签字</span> : <span>协议在线签字,<Link to={{ pathname: '/iframe', state: { url: 'https://umijs.org/docs/introduce/contributing' } }} >点击前往</Link></span>
const signStep = () => {
return agreementStatus.phase === 1 && agreementStatus.checkedAgreementSignTaskId?
<span>协议在线签字,<Button type="link" size="large" onClick={ getSignFormUrl } loading={ signLoading }>点击前往</Button></span>
: <span>协议在线签字</span>
}
//
const getSignFormUrl = () => {
setSignLoading(true);
const params = {
urlType: urlType.agreement , // 1- 2-
taskId: id
}
getUserSignUrl(params).then(data => {
history.push({ pathname: '/iframe', state: { url: data.data.actorAgreementSignTaskEmbedUrl } })
}).finally(() => {
setSignLoading(false);
})
}
//
@ -179,6 +201,23 @@ export default Form.create()(
}
}, [id, status, checkStatus, curPage, reload, relaodChildList, detailData, current_user.login]);
//
useEffect(() => {
//
if (detailData.status > 6 && isWinner) {
const params = {
taskId: id
}
getTaskSignStatus(params).then(data => {
if (data.data) {
data.data.phase = data.data.phase - 2
setAgreementStatus(data.data); // 线
}
});
}
}, [dataList]);
//
const process = useCallback((title, status, days) => {
@ -586,7 +625,7 @@ export default Form.create()(
{
current_user.login && detailData.status === 6 && isWinner && <div className="edu-back-white step-contain mt20">
<Steps current={1}>
<Steps current={ agreementStatus.phase }>
<Step title="等待平台审核协议内容" />
<Step title={ signStep() }></Step>
</Steps>
@ -647,6 +686,7 @@ export default Form.create()(
agreementSigning={detailData.agreementSigning}
expertReview={detailData.expertReview}
mygetHelmetapi={mygetHelmetapi}
agreementStatus={ agreementStatus }
/>
</div>

View File

@ -74,6 +74,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
taskModeId: data.taskModeId,
collectionMode: data.collectionMode,
publishMode: data.publishMode + '',
agreementType: data.agreementType + '',
description: data.description,
collectingDays: data.collectingDays,
@ -113,6 +114,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
taskModeId: 1,
collectionMode: 1,
publishMode: '0',
agreementType: '1',
collectingDays: 30,
choosingDays: 15,
makePublicDays: 7,
@ -254,6 +256,7 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
enterpriseName: enterpriseName,
categoryId,
};
params.expertReview=Boolean(params.expertReview);
let dateSum = params.collectingDays + params.choosingDays + params.makePublicDays + params.signingDays + params.payingDays;
if (dateSum > 180) {
@ -491,6 +494,17 @@ export default Form.create()(forwardRef(({ current_user, form, showNotification,
</Radio.Group>
)}
{helper(
"协议类型:",
"agreementType",
[{ required: true, message: "协议类型" }],
<Radio.Group disabled={published}>
<Radio value={'1'}>理论成果协议</Radio>
<Radio value={'2'}>软件成果协议</Radio>
<Radio value={'3'}>实物成果协议</Radio>
</Radio.Group>
)}
<div className="task-setting-days">
<div className="timing_task">
<div className="mbt10 color-grey-9 lineh-35"><span className="inline-span active">需求提报</span></div>