diff --git a/src/App.js b/src/App.js index 659ee589..1830c729 100644 --- a/src/App.js +++ b/src/App.js @@ -76,8 +76,13 @@ const EducoderLogin = Loadable({ }) // 成果库 -const Achieve=Loadable({ - loader: () => import('./achieveRequirement/index'), +const Achieve = Loadable({ + loader: () => import('./achieveRequirement/achieve'), + loading: Loading, +}) +// 需求管理 +const Requirement = Loadable({ + loader: () => import('./achieveRequirement/requirement'), loading: Loading, }) @@ -265,15 +270,8 @@ class App extends Component { (props) => { return () } - }> - ( - - ) - } - /> - + }> + {/*成果库*/} + {/*需求管理/创客行动*/} + { + return () + } + }> + + + ( + + ) + } + /> + + + - + diff --git a/src/achieveRequirement/index.js b/src/achieveRequirement/achieve.js similarity index 93% rename from src/achieveRequirement/index.js rename to src/achieveRequirement/achieve.js index 62df9d32..fed473ac 100644 --- a/src/achieveRequirement/index.js +++ b/src/achieveRequirement/achieve.js @@ -36,6 +36,7 @@ class Index extends Component { return (
+ ( @@ -60,6 +61,12 @@ class Index extends Component { )} > + ( + + )} + > ( diff --git a/src/achieveRequirement/achieve/achieveDetail/index.scss b/src/achieveRequirement/achieve/achieveDetail/index.scss index 82956b03..1024b07f 100644 --- a/src/achieveRequirement/achieve/achieveDetail/index.scss +++ b/src/achieveRequirement/achieve/achieveDetail/index.scss @@ -30,23 +30,4 @@ } } -// 文件预览modal样式 -.file-modal { - width: 800px !important; - .ant-modal-body { - padding-top: 40px; - .pdf-box { - height: 70vh; - overflow-y: scroll; - } - } - .ant-modal-close { - top: 0 !important; - } - .show-img { - width: 100%; - } - .react-pdf__Page__canvas { - margin: 0 auto; - } -} + diff --git a/src/achieveRequirement/achieve/achieveEdit/index.jsx b/src/achieveRequirement/achieve/achieveEdit/index.jsx index d1c39645..0e5cb2dd 100644 --- a/src/achieveRequirement/achieve/achieveEdit/index.jsx +++ b/src/achieveRequirement/achieve/achieveEdit/index.jsx @@ -10,12 +10,10 @@ const { TextArea } = Input; export default Form.create()( forwardRef(({ form, showNotification, match, history }, ref) => { - const [shareType, setShareType] = useState([]); const [tagType, setTagType] = useState([]); const [fileList, setFileList] = useState(null); - const [achievementFiles, setAchievementFiles] = useState(undefined); - const [achievementFileTypes, setAchievementFileTypes] = useState(undefined); + const [achievementFileTypes, setAchievementFileTypes] = useState(''); const id = match.params.achieveId; const { getFieldDecorator, validateFields, setFieldsValue } = form; @@ -27,7 +25,8 @@ export default Form.create()( achievementTypeId: data.achievementTypeId, achievementBelong: data.achievementBelong, achievementLabel: data.achievementLabel, - achievementRemark: data.achievementRemark + achievementRemark: data.achievementRemark, + achievementFiles: data.achievementFiles }; setFieldsValue(formValue); if (data.achievementAttachments.length) { @@ -51,11 +50,19 @@ export default Form.create()( }); }, []); - - // 上传附件后得到的文件id数组 - function UploadFunc(ids, types) { - setAchievementFiles(ids); - setAchievementFileTypes(types); + // 上传附件后得到的文件数组 + function UploadFunc(fileList) { + setFileList(fileList); + let files = []; + let fileTypes = []; + for (const item of fileList) { + files.push(item.id || item.response.data.id); + fileTypes.push(item.fileType || item.response.data.fileType); + } + setFieldsValue({ + achievementFiles: files.join() + }); + setAchievementFileTypes(fileTypes.join()); } const helper = useCallback( @@ -74,7 +81,7 @@ export default Form.create()( }, wrapperCol: { xs: { span: 12 }, - sm: { span: 20 }, + sm: { span: 16 }, }, }; @@ -92,18 +99,18 @@ export default Form.create()( }; // 修改 - function editItem() { - if (!achievementFiles.length) { - showNotification("请上传成果文件!"); - return; - } + function saveItem() { validateFields((error, values) => { if (!error) { - let params = { ...values, achievementFiles, achievementFileTypes, uploadUserId: 1, }; + let params = { + ...values, + achievementFileTypes, + }; params.achievementLabel = params.achievementLabel.join(); if (id) { // 编辑 + params.id = id; editAchieve(params).then(res => { if (res.code === '1') { showNotification("成果更新成功!"); @@ -114,9 +121,10 @@ export default Form.create()( }); } else { // 新增 + params.uploadUserId = 1; addAchieve(params).then(res => { if (res.code === '1') { - showNotification("成果更新成功!"); + showNotification("成果新增成功!"); history.go(-1); } else { showNotification(res.message); @@ -132,7 +140,7 @@ export default Form.create()(
-
修改成果
+
{id ? '修改' : '新增'}成果
@@ -141,6 +149,7 @@ export default Form.create()( "achievementName", [{ required: true, message: "请输入成果名称" }], )} @@ -149,7 +158,8 @@ export default Form.create()( "成果类别:", "achievementTypeId", [{ required: true, message: "请选择成果类别" }], - )} @@ -177,6 +188,11 @@ export default Form.create()( actionUrl={httpUrl} fileList={fileList} /> + + {/* 用一个隐藏的input实现上传文件的必填校验 */} + {getFieldDecorator('achievementFiles', { + rules: [{ required: true, message: "请上传成果文件" }], validateFirst: true + })()} {helper( @@ -184,7 +200,8 @@ export default Form.create()( "achievementLabel", [{ required: true, message: "请选择成果标签" }], + )} + + {helper( + "需求类型:", + "typeCode", + [{ required: true, message: "请选择需求类别" }], + + , { key: typeCode, label: typeName })} + + {helper( + "结束时间:", + "endTime", + [{ required: true, message: "请输入结束时间" }], + + )} + + + + + {/* 用一个隐藏的input实现上传文件的必填校验 */} + {getFieldDecorator('attachments', { + rules: [{ required: true, message: "请上传需求文件" }], validateFirst: true + })()} + + + {helper( + "标签:", + "tag", + [{ required: true, message: "请选择需求标签" }], + + )} + + {helper( + "需求描述:", + "remark", + [{ required: true, message: "请输入需求描述" }], +