2024-03-21 22:22:35 +08:00
|
|
|
|
import './proj-edit-step.css';
|
2024-05-21 11:21:34 +08:00
|
|
|
|
import { message, Modal, Spin ,Button} from "antd";
|
|
|
|
|
import { useParams } from "react-router-dom";
|
|
|
|
|
import { useEffect, useState } from "react";
|
|
|
|
|
import { get, put } from "../../../util/AjaxUtils.ts";
|
|
|
|
|
// import {Button, Form, Input} from 'antd';
|
|
|
|
|
import { AxiosResponse } from "axios";
|
|
|
|
|
import { useNavigate } from 'react-router-dom';
|
2024-03-21 22:22:35 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export default function ProjEditStep3() {
|
2024-05-21 11:21:34 +08:00
|
|
|
|
const navigate = useNavigate()
|
2024-03-21 22:22:35 +08:00
|
|
|
|
const pathParams = useParams();
|
|
|
|
|
const [messageApi, contextHolder] = message.useMessage();
|
2024-05-21 11:21:34 +08:00
|
|
|
|
|
2024-03-21 22:22:35 +08:00
|
|
|
|
const [loading, setLoading] = useState<boolean>(false);
|
|
|
|
|
const [isEditModalOpen, setIsEditModalOpen] = useState(false);
|
2024-05-21 11:21:34 +08:00
|
|
|
|
|
|
|
|
|
const [envHardDev, setenvHardDev] = useState('')
|
|
|
|
|
const [envHardProd, setenvHardProd] = useState('')
|
|
|
|
|
const [envIndustry, setenvIndustry] = useState('')
|
|
|
|
|
// const [envLang, setenvLang] = useState('')
|
|
|
|
|
const [envSoftDev, setenvSoftDev] = useState('')
|
|
|
|
|
const [envSoftProd, setenvSoftProd] = useState('')
|
|
|
|
|
const [envSystemDev, setenvSystemDev] = useState('')
|
|
|
|
|
const [envSystemProd, seenvSystemProd] = useState('')
|
|
|
|
|
const [envTechnical, setenvTechnical] = useState('')
|
2024-03-21 22:22:35 +08:00
|
|
|
|
const height = window.innerHeight - 180;
|
2024-05-21 11:21:34 +08:00
|
|
|
|
// const [defaultData, setDefaultData] = useState<any[]>([])
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
const getData = () => {
|
|
|
|
|
|
|
|
|
|
get({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/get/edit-step3/${pathParams.projId}`,
|
|
|
|
|
onSuccess({ data }: AxiosResponse) {
|
|
|
|
|
// resolve(data);
|
|
|
|
|
console.log('获取页面信息', data);
|
|
|
|
|
setenvHardDev(data.envHardDev)
|
|
|
|
|
setenvHardProd(data.envHardProd)
|
|
|
|
|
setenvIndustry(data.envIndustry)
|
|
|
|
|
setenvSoftDev(data.envSoftDev)
|
|
|
|
|
setenvSoftProd(data.envSoftProd)
|
|
|
|
|
setenvSystemDev(data.envSystemDev)
|
|
|
|
|
seenvSystemProd(data.envSystemProd)
|
|
|
|
|
setenvTechnical(data.envTechnical)
|
|
|
|
|
}
|
|
|
|
|
})
|
2024-03-21 22:22:35 +08:00
|
|
|
|
|
2024-05-21 11:21:34 +08:00
|
|
|
|
}
|
|
|
|
|
// 硬件开发环境
|
|
|
|
|
const getEnvHardDev = () => {
|
|
|
|
|
get({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/dict/get-env-hard-dev`,
|
|
|
|
|
onSuccess({ data }: AxiosResponse) {
|
|
|
|
|
// resolve(data);
|
|
|
|
|
// console.log('硬件开发环境', data);
|
|
|
|
|
setenvHardDev(data.data)
|
|
|
|
|
}
|
2024-03-21 22:22:35 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
2024-05-21 11:21:34 +08:00
|
|
|
|
// 硬件运行环境
|
|
|
|
|
const getEnvHardProd = () => {
|
|
|
|
|
get({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/dict/get-env-hard-proj`,
|
|
|
|
|
onSuccess({ data }: AxiosResponse) {
|
|
|
|
|
// resolve(data);
|
|
|
|
|
// console.log('硬件运行环境', data);
|
|
|
|
|
setenvHardProd(data.data)
|
|
|
|
|
}
|
2024-03-21 22:22:35 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
2024-05-21 11:21:34 +08:00
|
|
|
|
|
|
|
|
|
// 软件环境 开发
|
|
|
|
|
const getEnvsoftDev = () => {
|
|
|
|
|
get({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/dict/get-env-soft`,
|
|
|
|
|
onSuccess({ data }: AxiosResponse) {
|
|
|
|
|
// resolve(data);
|
|
|
|
|
// console.log('软件环境', data);
|
|
|
|
|
setenvSoftDev(data.data[0])
|
|
|
|
|
}
|
2024-03-21 22:22:35 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
2024-05-21 11:21:34 +08:00
|
|
|
|
// 软件环境 运行
|
|
|
|
|
const getEnvsoftProd = () => {
|
|
|
|
|
get({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/dict/get-env-soft`,
|
|
|
|
|
onSuccess({ data }: AxiosResponse) {
|
|
|
|
|
// resolve(data);
|
|
|
|
|
// console.log('软件环境', data);
|
|
|
|
|
setenvSoftProd(data.data[1])
|
|
|
|
|
}
|
2024-03-21 22:22:35 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-21 11:21:34 +08:00
|
|
|
|
// 开发系统 api/proj/dict/get-system-dev
|
|
|
|
|
const getSystemdev = () => {
|
|
|
|
|
get({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/dict/get-system-dev`,
|
|
|
|
|
onSuccess({ data }: AxiosResponse) {
|
|
|
|
|
// resolve(data);
|
|
|
|
|
// console.log('开发系统', data);
|
|
|
|
|
setenvSystemDev(data.data)
|
|
|
|
|
}
|
2024-03-21 22:22:35 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
2024-05-21 11:21:34 +08:00
|
|
|
|
// 运行系统 api/proj/dict/get-system-prod
|
|
|
|
|
const getSystemprod = () => {
|
|
|
|
|
get({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/dict/get-system-prod`,
|
|
|
|
|
onSuccess({ data }: AxiosResponse) {
|
|
|
|
|
// resolve(data);
|
|
|
|
|
// console.log('运行系统', data);
|
|
|
|
|
seenvSystemProd(data.data)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
// 技术特点 api/proj/dict/get-technical
|
|
|
|
|
const getTechnical = () => {
|
|
|
|
|
get({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/dict/get-technical`,
|
|
|
|
|
onSuccess({ data }: AxiosResponse) {
|
|
|
|
|
// resolve(data);
|
|
|
|
|
// console.log('技术特点', data);
|
|
|
|
|
setenvTechnical(data.data)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
// 面向领域 api/proj/dict/get-industry
|
|
|
|
|
const getIndustry = () => {
|
|
|
|
|
get({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/dict/get-industry`,
|
|
|
|
|
onSuccess({ data }: AxiosResponse) {
|
|
|
|
|
// resolve(data);
|
|
|
|
|
console.log('面向领域', data);
|
|
|
|
|
setenvIndustry(data.data)
|
|
|
|
|
}
|
2024-03-21 22:22:35 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
useEffect(() => {
|
2024-05-21 11:21:34 +08:00
|
|
|
|
// render();
|
|
|
|
|
getData()
|
2024-03-21 22:22:35 +08:00
|
|
|
|
}, [])
|
|
|
|
|
|
|
|
|
|
return (
|
2024-05-21 11:21:34 +08:00
|
|
|
|
<div style={{ height: `${height}px`, overflow: 'auto', marginTop: '18px' }}>
|
2024-03-21 22:22:35 +08:00
|
|
|
|
{contextHolder}
|
|
|
|
|
|
2024-05-21 11:21:34 +08:00
|
|
|
|
<div className="form-container" style={{height: `${height}px`,overflow: 'auto',paddingBottom:'10px'}}>
|
|
|
|
|
<div className='Step-title'>
|
|
|
|
|
<div className='Step-titlel'></div>
|
|
|
|
|
<div className='Step-titler'>软件功能特点</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software'>
|
|
|
|
|
<div className='step-software-context'>
|
|
|
|
|
<div className='step-software-title'>
|
|
|
|
|
开发的硬件环境
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-text'>
|
|
|
|
|
{envHardDev}
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-btn' onClick={()=>{getEnvHardDev()}}>
|
|
|
|
|
生成
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className='step-software-context'>
|
|
|
|
|
<div className='step-software-title'>
|
|
|
|
|
运行的硬件环境
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-text'>
|
|
|
|
|
{envHardProd}
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-btn' onClick={()=>{getEnvHardProd()}}>
|
|
|
|
|
生成
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className='step-software-context'>
|
|
|
|
|
<div className='step-software-title'>
|
|
|
|
|
开发软件的操作系统
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-text'>
|
|
|
|
|
{envSystemDev}
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-btn' onClick={()=>{getSystemdev()}}>
|
|
|
|
|
生成
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className='step-software-context'>
|
|
|
|
|
<div className='step-software-title'>
|
|
|
|
|
该软件的运行平台/操作系统
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-text'>
|
|
|
|
|
{envSystemProd}
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-btn' onClick={()=>{getSystemprod()}}>
|
|
|
|
|
生成
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-03-21 22:22:35 +08:00
|
|
|
|
|
2024-05-21 11:21:34 +08:00
|
|
|
|
<div className='step-software-context'>
|
|
|
|
|
<div className='step-software-title'>
|
|
|
|
|
软件开发环境/开发工具
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-text'>
|
|
|
|
|
{envSoftDev}
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-btn' onClick={()=>{getEnvsoftDev()}}>
|
|
|
|
|
生成
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-context'>
|
|
|
|
|
<div className='step-software-title'>
|
|
|
|
|
软件运行支撑环境/支持软件
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-text'>
|
|
|
|
|
{envSoftProd}
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-btn' onClick={()=>{getEnvsoftProd()}}>
|
|
|
|
|
生成
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className='step-software-context'>
|
|
|
|
|
<div className='step-software-title'>
|
|
|
|
|
编程语言
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-text'>
|
|
|
|
|
Java
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className='step-software-context'>
|
|
|
|
|
<div className='step-software-title'>
|
|
|
|
|
面向领域/行业
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-text'>
|
|
|
|
|
{envIndustry}
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-btn' onClick={()=>{getIndustry()}}>
|
|
|
|
|
生成
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className='step-software-context'>
|
|
|
|
|
<div className='step-software-title'>
|
|
|
|
|
技术特点
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-text'>
|
|
|
|
|
{envTechnical}
|
|
|
|
|
</div>
|
|
|
|
|
<div className='step-software-btn' onClick={()=>{getTechnical()}}>
|
|
|
|
|
生成
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-03-21 22:22:35 +08:00
|
|
|
|
|
|
|
|
|
</div>
|
2024-05-21 11:21:34 +08:00
|
|
|
|
<div className='software-btn'>
|
|
|
|
|
<Button className='software-back'
|
|
|
|
|
type="default"
|
|
|
|
|
size='large'
|
|
|
|
|
onClick={()=>{navigate(-1)}}>
|
|
|
|
|
返回
|
|
|
|
|
</Button>
|
|
|
|
|
<Button className='software-up'
|
|
|
|
|
size='large'
|
|
|
|
|
type="primary"
|
|
|
|
|
onClick={()=>{
|
|
|
|
|
setIsEditModalOpen(true)
|
|
|
|
|
}}>
|
2024-05-22 09:04:00 +08:00
|
|
|
|
保存
|
2024-05-21 11:21:34 +08:00
|
|
|
|
</Button>
|
|
|
|
|
</div>
|
|
|
|
|
|
2024-03-21 22:22:35 +08:00
|
|
|
|
</div>
|
2024-05-21 11:21:34 +08:00
|
|
|
|
|
2024-03-21 22:22:35 +08:00
|
|
|
|
<Modal title="提示"
|
2024-05-21 11:21:34 +08:00
|
|
|
|
okText="确定"
|
|
|
|
|
cancelText="取消"
|
|
|
|
|
open={isEditModalOpen}
|
|
|
|
|
onOk={() => {
|
|
|
|
|
setIsEditModalOpen(false);
|
|
|
|
|
put({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/update/edit-step3/${pathParams.projId}`,
|
|
|
|
|
body: {
|
|
|
|
|
envHardDev: envHardDev,
|
|
|
|
|
envHardProd:envHardProd ,
|
|
|
|
|
envIndustry: envIndustry,
|
|
|
|
|
envLang: "Java",
|
|
|
|
|
envSoftDev: envSoftDev,
|
|
|
|
|
envSoftProd: envSoftProd,
|
|
|
|
|
envSystemDev: envSystemDev,
|
|
|
|
|
envSystemProd:envSystemProd,
|
|
|
|
|
envTechnical: envTechnical
|
|
|
|
|
},
|
|
|
|
|
onBefore() {
|
|
|
|
|
setLoading(true);
|
|
|
|
|
},
|
|
|
|
|
onSuccess() {
|
|
|
|
|
messageApi.open({
|
|
|
|
|
type: 'success',
|
|
|
|
|
content: '编辑成功'
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
onFinally() {
|
|
|
|
|
setLoading(false);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}}
|
|
|
|
|
onCancel={() => {
|
|
|
|
|
setIsEditModalOpen(false);
|
|
|
|
|
}}>
|
2024-03-21 22:22:35 +08:00
|
|
|
|
<div>确定提交吗?</div>
|
|
|
|
|
</Modal>
|
2024-05-21 11:21:34 +08:00
|
|
|
|
<Spin tip="正在提交..." spinning={loading} fullscreen />
|
|
|
|
|
</div>
|
2024-03-21 22:22:35 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
}
|