From 563ca38d45fc938d679aba43cef93c666d685580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=AB=A5=E5=B4=87?= Date: Fri, 21 May 2021 17:15:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E9=9C=80=E6=B1=82=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=8C=E5=BE=AE=E8=B0=83=E6=88=90=E6=9E=9C=E5=BA=93?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.js | 42 ++- .../{index.js => achieve.js} | 7 + .../achieve/achieveDetail/index.scss | 21 +- .../achieve/achieveEdit/index.jsx | 59 ++-- .../achieve/achieveList/index.jsx | 9 +- .../achieve/achieveMine/index.jsx | 1 + src/achieveRequirement/achieve/api.js | 2 +- src/achieveRequirement/components/Upload.jsx | 28 +- .../components/chooseNav/index.jsx | 30 +- .../components/itemList/index.jsx | 25 +- .../components/itemList/index.scss | 9 +- src/achieveRequirement/index.scss | 39 +- src/achieveRequirement/requirement.js | 95 +++++ src/achieveRequirement/requirement/api.js | 71 ++++ .../requirement/requireDetail/index.jsx | 217 ++++++++++++ .../requirement/requireDetail/index.scss | 40 +++ .../requirement/requireEdit/index.jsx | 247 +++++++++++++ .../requirement/requireEdit/index.scss | 4 + .../requirement/requireList/index.jsx | 117 ++++++ .../requirement/requireMine/allRequire.jsx | 333 ++++++++++++++++++ .../requirement/requireMine/index.jsx | 25 ++ .../requirement/requireMine/index.scss | 54 +++ .../requirement/requireMine/myRequire.jsx | 80 +++++ src/fetch.js | 1 - 24 files changed, 1452 insertions(+), 104 deletions(-) rename src/achieveRequirement/{index.js => achieve.js} (93%) create mode 100644 src/achieveRequirement/requirement.js create mode 100644 src/achieveRequirement/requirement/api.js create mode 100644 src/achieveRequirement/requirement/requireDetail/index.jsx create mode 100644 src/achieveRequirement/requirement/requireDetail/index.scss create mode 100644 src/achieveRequirement/requirement/requireEdit/index.jsx create mode 100644 src/achieveRequirement/requirement/requireEdit/index.scss create mode 100644 src/achieveRequirement/requirement/requireList/index.jsx create mode 100644 src/achieveRequirement/requirement/requireMine/allRequire.jsx create mode 100644 src/achieveRequirement/requirement/requireMine/index.jsx create mode 100644 src/achieveRequirement/requirement/requireMine/index.scss create mode 100644 src/achieveRequirement/requirement/requireMine/myRequire.jsx 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: "请输入需求描述" }], +