This commit is contained in:
xixi 2024-06-14 15:59:55 +08:00
parent 9289522415
commit f89d818bc9
2 changed files with 180 additions and 65 deletions

View File

@ -1,18 +1,27 @@
import './proj-edit.css'; import './proj-edit.css';
import { useNavigate, useParams} from "react-router-dom"; import { useNavigate, useParams } from "react-router-dom";
import { Button, message} from "antd"; import { Button, message, Modal } from "antd";
import StepProjEdit from "../../components/step/StepProjEdit.tsx"; import StepProjEdit from "../../components/step/StepProjEdit.tsx";
import CardProjEdit from "../../components/card/CardProjEdit.tsx"; import CardProjEdit from "../../components/card/CardProjEdit.tsx";
import {Process} from "../../interfaces/step/IStepProj.ts"; import { Process } from "../../interfaces/step/IStepProj.ts";
import CardProjDownload from "../../components/card/CardProjDownload.tsx"; import CardProjDownload from "../../components/card/CardProjDownload.tsx";
import CardProjJump from "../../components/card/CardProjJump.tsx"; import CardProjJump from "../../components/card/CardProjJump.tsx";
import {useEffect, useState} from "react"; import { useEffect, useState } from "react";
import {Axios, get} from "../../util/AjaxUtils.ts"; import { Axios, get } from "../../util/AjaxUtils.ts";
import {EditStepEnum, IProjEdit} from "../../interfaces/card/ICardProj.ts"; import { EditStepEnum, IProjEdit } from "../../interfaces/card/ICardProj.ts";
import {MAX_MOD_SIZE} from "./edit/ProjConfigModList.tsx"; import { MAX_MOD_SIZE } from "./edit/ProjConfigModList.tsx";
import {GenerateStatus} from "../../interfaces/proj/IProj.ts"; import { GenerateStatus } from "../../interfaces/proj/IProj.ts";
import TitleIntroduction from '../../route/proj/edit/ProjEditStep1.tsx'
import TitleIntroductionShow from '../../route/proj/edit/ProjEditStep1Show.tsx'
import SoftwareInfo from '../../route/proj/edit/ProjEditStep2.tsx'
import SoftwareInfoShow from '../../route/proj/edit/ProjEditStep2Show.tsx'
export default function ProjEditAll() { export default function ProjEditAll() {
//第一步 标题简介弹窗
const [titleIntroductionOpen, setTitleIntroductionOpen] = useState(false)
const [titleIntroductionShowOpen, setTitleIntroductionShowOpen] = useState(false)
//第二步 软件基本信息弹窗
const [softwareInfoOpen, setSoftwareOpen] = useState(false)
const [softwareInfoShowOpen, setSoftwareShowOpen] = useState(false)
const nav = useNavigate(); const nav = useNavigate();
const pathParams = useParams(); const pathParams = useParams();
@ -26,6 +35,7 @@ export default function ProjEditAll() {
// const height = window.innerHeight - 240; // const height = window.innerHeight - 240;
const renderEditStep = (data: any, isEdited: boolean, isGenerateSuccess: boolean) => { const renderEditStep = (data: any, isEdited: boolean, isGenerateSuccess: boolean) => {
const editStepArray: IProjEdit[] = []; const editStepArray: IProjEdit[] = [];
editStepArray.push( editStepArray.push(
{ {
@ -33,12 +43,14 @@ export default function ProjEditAll() {
desc: '修改软件系统的相关简介与详细介绍', desc: '修改软件系统的相关简介与详细介绍',
step: 1, step: 1,
btnName: !isGenerateSuccess ? '设置' : '查看', btnName: !isGenerateSuccess ? '设置' : '查看',
status: data.projIntroduction?EditStepEnum.EDITED:EditStepEnum.UN_EDIT, status: data.projIntroduction ? EditStepEnum.EDITED : EditStepEnum.UN_EDIT,
handleEdit() { handleEdit() {
if (!isGenerateSuccess) { if (!isGenerateSuccess) {
nav(`/proj-edit/step1/${pathParams.projId}`) // nav(`/proj-edit/step1/${pathParams.projId}`)
setTitleIntroductionOpen(true)
} else { } else {
nav(`/proj-edit/step1-show/${pathParams.projId}`) // nav(`/proj-edit/step1-show/${pathParams.projId}`)
setTitleIntroductionShowOpen(true)
} }
} }
}, },
@ -47,13 +59,17 @@ export default function ProjEditAll() {
desc: '完善软件简称、版本号、软件所属者及联系人等信息', desc: '完善软件简称、版本号、软件所属者及联系人等信息',
step: 2, step: 2,
btnName: !isGenerateSuccess ? '设置' : '查看', btnName: !isGenerateSuccess ? '设置' : '查看',
status: data.apply.projDevCompleteDate?EditStepEnum.EDITED:EditStepEnum.UN_EDIT, status: data.apply.projDevCompleteDate ? EditStepEnum.EDITED : EditStepEnum.UN_EDIT,
canBtnClick: false, canBtnClick: false,
handleEdit() { handleEdit() {
if (generateStatus != GenerateStatus.SUCCESS) { if (generateStatus != GenerateStatus.SUCCESS) {
nav(`/proj-edit/step2/${pathParams.projId}`) // nav(`/proj-edit/step2/${pathParams.projId}`)
setSoftwareOpen(true)
} else { } else {
nav(`/proj-edit/step2-show/${pathParams.projId}`) // nav(`/proj-edit/step2-show/${pathParams.projId}`)
setSoftwareShowOpen(true)
} }
} }
}, },
@ -94,7 +110,7 @@ export default function ProjEditAll() {
get<any>({ get<any>({
messageApi: messageApi, messageApi: messageApi,
url: `/api/proj/get/${pathParams.projId}`, url: `/api/proj/get/${pathParams.projId}`,
onSuccess({data}) { onSuccess({ data }) {
const isEdited = Boolean(data.projIntroduction) == true && Boolean(data.apply.projDevCompleteDate) == true && Boolean(data.apply.envHardDev) == true && Boolean(data.loginpage.loginpageId) == true const isEdited = Boolean(data.projIntroduction) == true && Boolean(data.apply.projDevCompleteDate) == true && Boolean(data.apply.envHardDev) == true && Boolean(data.loginpage.loginpageId) == true
const isConfig = data.loginpage.loginpageId && MAX_MOD_SIZE > 0; const isConfig = data.loginpage.loginpageId && MAX_MOD_SIZE > 0;
const isGenerateSuccess: boolean = data.generate.generateStatus == GenerateStatus.SUCCESS; const isGenerateSuccess: boolean = data.generate.generateStatus == GenerateStatus.SUCCESS;
@ -120,7 +136,7 @@ export default function ProjEditAll() {
{title: '编辑项目'}, {title: '编辑项目'},
]} ]}
/> */} /> */}
<div className="proj-edit" style={{ marginTop:'21px', padding: '15px 175px'}}> <div className="proj-edit" style={{ marginTop: '21px', padding: '15px 175px' }}>
<StepProjEdit step={1} process={isEditStepEdited ? Process.COMPLETE : Process.PROCESSING} <StepProjEdit step={1} process={isEditStepEdited ? Process.COMPLETE : Process.PROCESSING}
descTitle="完善信息" descTitle="完善信息"
descDetail="完善项目的基本信息" descDetail="完善项目的基本信息"
@ -191,15 +207,77 @@ export default function ProjEditAll() {
<div className="btn-container"> <div className="btn-container">
<Button size="large" style={{ <Button size="large" style={{
width: '200px', width: '200px',
height:'40px', height: '40px',
fontSize: '16px', fontSize: '16px',
backgroundColor: '#e9e7e7', backgroundColor: '#e9e7e7',
color: '#A0A0A0', color: '#A0A0A0',
border:'none', border: 'none',
}} onClick={() => { }} onClick={() => {
nav(-1); nav(-1);
}}></Button> }}></Button>
</div> </div>
{/* 第1步设置 */}
<Modal open={titleIntroductionOpen}
title="软件简介确认"
width={1500}
destroyOnClose={true}
onCancel={() => {
setTitleIntroductionOpen(false);
// setTimeout(() => {
// window.location.reload()
// }, 500)
}}
footer={null}
>
<TitleIntroduction closeModal={() => { setTitleIntroductionOpen(false) }}></TitleIntroduction>
</Modal>
{/* 第1步查看 */}
<Modal open={titleIntroductionShowOpen}
destroyOnClose={true}
title="软件简介查看"
width={1500}
onCancel={() => {
setTitleIntroductionShowOpen(false);
}}
footer={null}
>
<TitleIntroductionShow></TitleIntroductionShow>
</Modal>
{/* 第二步设置 */}
<Modal open={softwareInfoOpen}
title="软件基本信息填写"
width={1500}
destroyOnClose={true}
onCancel={() => {
setSoftwareOpen(false);
// setTimeout(() => {
// props.closeModal()
// window.location.reload(); // 刷新页面
// }, 1000);
// setTimeout(() => {
// window.location.reload()
// }, 500)
}}
footer={null}
>
<SoftwareInfo closeModal={() => { setSoftwareOpen(false) }}></SoftwareInfo>
</Modal>
{/* 第二步查看 */}
<Modal open={softwareInfoShowOpen}
title="软件基本信息查看"
width={1500}
destroyOnClose={true}
onCancel={() => {
setSoftwareShowOpen(false);
}}
footer={null}
>
<SoftwareInfoShow></SoftwareInfoShow>
</Modal>
</> </>
) )
} }

View File

@ -1,6 +1,6 @@
import './proj-edit.css'; import './proj-edit.css';
import { useNavigate, useParams } from "react-router-dom"; import { useNavigate, useParams } from "react-router-dom";
import { Button, message } from "antd"; import { Button, message,Modal } from "antd";
import StepProjEdit from "../../components/step/StepProjEdit.tsx"; import StepProjEdit from "../../components/step/StepProjEdit.tsx";
import CardProjEdit from "../../components/card/CardProjEdit.tsx"; import CardProjEdit from "../../components/card/CardProjEdit.tsx";
import { Process } from "../../interfaces/step/IStepProj.ts"; import { Process } from "../../interfaces/step/IStepProj.ts";
@ -11,8 +11,12 @@ import { Axios, get } from "../../util/AjaxUtils.ts";
import { EditStepEnum, IProjEdit } from "../../interfaces/card/ICardProj.ts"; import { EditStepEnum, IProjEdit } from "../../interfaces/card/ICardProj.ts";
import { MAX_MOD_SIZE_FREE } from "./edit/ProjConfigModList.tsx"; import { MAX_MOD_SIZE_FREE } from "./edit/ProjConfigModList.tsx";
import { GenerateStatus } from "../../interfaces/proj/IProj.ts"; import { GenerateStatus } from "../../interfaces/proj/IProj.ts";
import TitleIntroduction from '../../route/proj/edit/ProjEditStep1.tsx'
import TitleIntroductionShow from '../../route/proj/edit/ProjEditStep1Show.tsx'
export default function ProjEdit() { export default function ProjEdit() {
//第一步 标题简介弹窗
const [titleIntroductionOpen, setTitleIntroductionOpen] = useState(false)
const [titleIntroductionShowOpen, setTitleIntroductionShowOpen] = useState(false)
const nav = useNavigate(); const nav = useNavigate();
const pathParams = useParams(); const pathParams = useParams();
@ -38,9 +42,11 @@ export default function ProjEdit() {
status: data.projIntroduction?EditStepEnum.EDITED:EditStepEnum.UN_EDIT, status: data.projIntroduction?EditStepEnum.EDITED:EditStepEnum.UN_EDIT,
handleEdit() { handleEdit() {
if (!isGenerateSuccess) { if (!isGenerateSuccess) {
nav(`/proj-edit/step1/${pathParams.projId}`) // nav(`/proj-edit/step1/${pathParams.projId}`)
setTitleIntroductionOpen(true)
} else { } else {
nav(`/proj-edit/step1-show/${pathParams.projId}`) nav(`/proj-edit/step1-show/${pathParams.projId}`)
setTitleIntroductionShowOpen(true)
} }
} }
}, },
@ -341,6 +347,37 @@ export default function ProjEdit() {
nav(-1); nav(-1);
}}></Button> }}></Button>
</div> </div>
{/* 第1步设置 */}
<Modal open={titleIntroductionOpen}
title="软件简介确认"
width={1500}
destroyOnClose={true}
onCancel={() => {
setTitleIntroductionOpen(false);
// setTimeout(() => {
// window.location.reload()
// }, 500)
}}
footer={null}
>
<TitleIntroduction closeModal={() => { setTitleIntroductionOpen(false) }}></TitleIntroduction>
</Modal>
{/* 第1步查看 */}
<Modal open={titleIntroductionShowOpen}
destroyOnClose={true}
title="软件简介查看"
width={1500}
onCancel={() => {
setTitleIntroductionShowOpen(false);
}}
footer={null}
>
<TitleIntroductionShow></TitleIntroductionShow>
</Modal>
</> </>
) )
} }