This commit is contained in:
xixi 2024-05-29 14:43:48 +08:00
parent 6a977019f2
commit ceef8a5e88
11 changed files with 265 additions and 152 deletions

View File

@ -35,7 +35,7 @@ type FormFieldType = {
type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0]; type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0];
export default function ProjConfigLoginpage(props:any) { export default function ProjConfigLoginpage(props: any) {
// const nav = useNavigate(); // const nav = useNavigate();
// const pathParams = useParams(); // const pathParams = useParams();
const [messageApi, contextHolder] = message.useMessage(); const [messageApi, contextHolder] = message.useMessage();
@ -58,7 +58,7 @@ export default function ProjConfigLoginpage(props:any) {
return isJpgOrPng; return isJpgOrPng;
}; };
const preview = () => { const preview = () => {
post<any>({ post<any>({
messageApi, messageApi,
url: `/api/proj/preview/${props.projId}`, url: `/api/proj/preview/${props.projId}`,
@ -187,7 +187,7 @@ export default function ProjConfigLoginpage(props:any) {
{title: '登录界面设置'}, {title: '登录界面设置'},
]} ]}
/> */} /> */}
<div className="form-container" style={{ height: `${height}px`, overflow: 'hidden', padding: '10px', background: '#EFEFEF',boxSizing:'border-box' }}> <div className="form-container" style={{ height: `${height}px`, overflow: 'hidden', padding: '10px', background: '#EFEFEF', boxSizing: 'border-box' }}>
<div className="loginpage-body" style={{ height: `${height}px`, overflow: 'auto' }}> <div className="loginpage-body" style={{ height: `${height}px`, overflow: 'auto' }}>
<Row gutter={15}> <Row gutter={15}>
@ -206,6 +206,7 @@ export default function ProjConfigLoginpage(props:any) {
type="default" type="default"
className='seeButton' onClick={() => { className='seeButton' onClick={() => {
props.closeModal() props.closeModal()
// window.location.reload()
}}></Button> }}></Button>
<Button <Button
type="primary" type="primary"
@ -255,7 +256,7 @@ export default function ProjConfigLoginpage(props:any) {
</div> </div>
<Form.Item <Form.Item
style={{ style={{
display:'none' display: 'none'
}} }}
// label="副标题" // label="副标题"
name="loginpageId" name="loginpageId"
@ -559,6 +560,10 @@ export default function ProjConfigLoginpage(props:any) {
content: '编辑成功' content: '编辑成功'
}) })
// props.closeModal() // props.closeModal()
props.closeModal()
setTimeout(() => {
window.location.reload()
}, 500)
}, },
onFinally() { onFinally() {

View File

@ -477,6 +477,7 @@ export default function CardProj(props: { item: IProj }) {
onCancel={() => { onCancel={() => {
setLoginPageOpne(false); setLoginPageOpne(false);
// window.location.reload(); // 在取消时刷新页面
}} }}
footer={null} footer={null}
@ -490,6 +491,7 @@ export default function CardProj(props: { item: IProj }) {
onCancel={() => { onCancel={() => {
setLoginPageShowOpne(false); setLoginPageShowOpne(false);
}} }}
footer={null} footer={null}
@ -503,7 +505,7 @@ export default function CardProj(props: { item: IProj }) {
onCancel={() => { onCancel={() => {
setSoftwareManagementOpen(false); setSoftwareManagementOpen(false);
window.location.reload(); // 在取消时刷新页面 // window.location.reload(); // 在取消时刷新页面
}} }}
footer={null} footer={null}
> >

View File

@ -4,7 +4,7 @@ import { MouseEvent, Reducer, useEffect, useReducer, useState } from "react";
import { useNavigate, useSearchParams, Outlet } from "react-router-dom"; import { useNavigate, useSearchParams, Outlet } from "react-router-dom";
import { IMenuListItem, IMenuWithTopButton } from "../../interfaces/menu/IMenuWithTopButton.ts"; import { IMenuListItem, IMenuWithTopButton } from "../../interfaces/menu/IMenuWithTopButton.ts";
import MenuWithTopButton from "../../components/menu/MenuWithTopButton.tsx"; import MenuWithTopButton from "../../components/menu/MenuWithTopButton.tsx";
import MenuWithBottomButtom from '../../components/menu/MenuWithBottomButton.tsx' // import MenuWithBottomButtom from '../../components/menu/MenuWithBottomButton.tsx'
import MenuTreeWithTopButton from "../../components/menu/MenuTreeWithTopButton.tsx"; import MenuTreeWithTopButton from "../../components/menu/MenuTreeWithTopButton.tsx";
// import ListProj from "../../components/list/ListProj.tsx"; // import ListProj from "../../components/list/ListProj.tsx";
// import ListProjAgent from "../../components/list/ListProjAgent.tsx"; // import ListProjAgent from "../../components/list/ListProjAgent.tsx";
@ -313,7 +313,7 @@ export default function Index() {
list={agentMenu.list} list={agentMenu.list}
handleListItem={agentMenu.handleListItem} handleListItem={agentMenu.handleListItem}
/> */} /> */}
<MenuWithBottomButtom {/* <MenuWithBottomButtom
button={sellMenu.button} button={sellMenu.button}
list={sellMenu.list} list={sellMenu.list}
handleListItem={sellMenu.handleListItem} handleListItem={sellMenu.handleListItem}
@ -322,7 +322,7 @@ export default function Index() {
button={buyMenu.button} button={buyMenu.button}
list={buyMenu.list} list={buyMenu.list}
handleListItem={buyMenu.handleListItem} handleListItem={buyMenu.handleListItem}
/> /> */}
</div> </div>
<div className="right"> <div className="right">
<div> <div>

View File

@ -56,8 +56,8 @@ export default function ProjEdit() {
const [softwareManagementOpen, setSoftwareManagementOpen] = useState(false) const [softwareManagementOpen, setSoftwareManagementOpen] = useState(false)
const [softwareManagementShowOpen, setSoftwareManagementShowOpen] = useState(false) const [softwareManagementShowOpen, setSoftwareManagementShowOpen] = useState(false)
// 第六步 显示顺序 // 第六步 显示顺序
const [displayOrderOpen,setDisplayOrderOpen] = useState(false) const [displayOrderOpen, setDisplayOrderOpen] = useState(false)
const [displayOrderShowOpen,setDisplayOrderShowOpen] = useState(false) const [displayOrderShowOpen, setDisplayOrderShowOpen] = useState(false)
// 判断是否完成状态 成功未处理/失败/正在处理 // 判断是否完成状态 成功未处理/失败/正在处理
// 模块数量 // 模块数量
@ -512,6 +512,7 @@ export default function ProjEdit() {
</div> </div>
<FloatButton.Group> <FloatButton.Group>
<FloatButton <FloatButton
shape="square" //报错处理 lyp
onClick={() => { setAiHelperModalOpen(true) }} onClick={() => { setAiHelperModalOpen(true) }}
description={<span style={{ fontWeight: 'bold' }}>AI</span>} description={<span style={{ fontWeight: 'bold' }}>AI</span>}
>AI助手</FloatButton> >AI助手</FloatButton>
@ -585,7 +586,12 @@ export default function ProjEdit() {
width={1500} width={1500}
onCancel={() => { onCancel={() => {
setTitleIntroductionOpen(false); setTitleIntroductionOpen(false);
setTimeout(() => {
window.location.reload()
}, 500)
}} }}
footer={null} footer={null}
> >
@ -610,6 +616,13 @@ export default function ProjEdit() {
onCancel={() => { onCancel={() => {
setSoftwareOpen(false); setSoftwareOpen(false);
// setTimeout(() => {
// props.closeModal()
// window.location.reload(); // 刷新页面
// }, 1000);
setTimeout(() => {
window.location.reload()
}, 500)
}} }}
footer={null} footer={null}
> >
@ -634,6 +647,10 @@ export default function ProjEdit() {
onCancel={() => { onCancel={() => {
setSoftwareFeaturesOpen(false); setSoftwareFeaturesOpen(false);
setTimeout(() => {
window.location.reload()
}, 500)
}} }}
footer={null} footer={null}
> >
@ -658,6 +675,10 @@ export default function ProjEdit() {
onCancel={() => { onCancel={() => {
setLoginPageOpne(false); setLoginPageOpne(false);
setTimeout(() => {
window.location.reload()
}, 500)
}} }}
footer={null} footer={null}
> >
@ -710,8 +731,8 @@ export default function ProjEdit() {
> >
<DisplayOrder></DisplayOrder> <DisplayOrder></DisplayOrder>
</Modal> </Modal>
{/* 第六步 查看 */} {/* 第六步 查看 */}
<Modal open={displayOrderShowOpen} <Modal open={displayOrderShowOpen}
title="查看功能列表显示顺序" title="查看功能列表显示顺序"
width={1500} width={1500}

View File

@ -1,6 +1,6 @@
import './proj-new.css'; import './proj-new.css';
import { useNavigate, useParams, useSearchParams } from "react-router-dom"; import { useNavigate, useParams, useSearchParams } from "react-router-dom";
import { Button, Flex, Form, Input, message, Modal, Spin } from "antd"; import { Button, Flex, Form, Input, message, Modal, Spin, Checkbox } from "antd";
import { useContext, useEffect, useState } from "react"; import { useContext, useEffect, useState } from "react";
import { get, post } from "../../util/AjaxUtils.ts"; import { get, post } from "../../util/AjaxUtils.ts";
import { IProjCharge, ProjAdditionalType, ProjChargeType } from "../../interfaces/proj/IProj.ts"; import { IProjCharge, ProjAdditionalType, ProjChargeType } from "../../interfaces/proj/IProj.ts";
@ -29,7 +29,7 @@ export default function ProjNew() {
}); });
const [createProjId, setCreateProjId] = useState(''); const [createProjId, setCreateProjId] = useState('');
const oldlistProjChargeAdditional: string[] = []; const oldlistProjChargeAdditional: string[] = [];
const [listProjChargeAdditional,setlistProjChargeAdditional] = useState<string[]>([]) const [listProjChargeAdditional, setlistProjChargeAdditional] = useState<string[]>([])
useEffect(() => { useEffect(() => {
get({ get({
@ -69,7 +69,7 @@ export default function ProjNew() {
price += charge.additional.pkg; price += charge.additional.pkg;
oldlistProjChargeAdditional.push(ProjAdditionalType.PKG); oldlistProjChargeAdditional.push(ProjAdditionalType.PKG);
console.log(listProjChargeAdditional); console.log(listProjChargeAdditional);
} }
if (videoDemo) { if (videoDemo) {
price += charge.additional.videoDemo; price += charge.additional.videoDemo;
@ -97,7 +97,7 @@ export default function ProjNew() {
{title: '新建项目'}, {title: '新建项目'},
]} ]}
/> */} /> */}
<div className='projNew' style={{height: `${height}px`, overflow: 'auto' }}> <div className='projNew' style={{ height: `${height}px`, overflow: 'auto' }}>
<div className="proj-new"> <div className="proj-new">
{/* <div className="proj-title">请完善项目的基本信息</div> */} {/* <div className="proj-title">请完善项目的基本信息</div> */}
<div className="proj-form"> <div className="proj-form">
@ -117,12 +117,28 @@ export default function ProjNew() {
autoComplete="off" autoComplete="off"
> >
<div className='formItemOne'> <div className='formItemOne'>
<div className='formItem-title oneTitle'>*</div> <div className='formItem-title oneTitle'>*</div>
<Form.Item<ProjInfo> <Form.Item<ProjInfo>
name="projName" name="projName"
rules={[{ required: true, message: '请输入系统标题' }]} rules={[{ required: true, message: '请输入系统全称' }]}
> >
<Input style={{ background: '#eeeeee', width: '1000px', height: '50px' ,fontSize:'16px'}} placeholder="请输入系统标题" /> <Input style={{ background: '#eeeeee', width: '1000px', height: '50px', fontSize: '16px' }} placeholder="请输入系统全称" />
</Form.Item>
</div>
<div className='software-protocol'>
<Form.Item
name="agreement"
valuePropName="checked"
rules={[
{
validator: (_, value) =>
value ? Promise.resolve() : Promise.reject(new Error('请阅读并勾选《软件委托开发协议》')),
},
]}
>
<Checkbox>
<a href="https://www.aimzhu.com/Seda.html"></a>
</Checkbox>
</Form.Item> </Form.Item>
</div> </div>
{/* <div className='formItemTwo'> {/* <div className='formItemTwo'>
@ -133,29 +149,29 @@ export default function ProjNew() {
<TextArea rows={10} style={{ background: '#eeeeee', resize: 'none',width:"328px",height:'220px',fontSize:'16px' }} placeholder="请对系统作出简单的描述,以使可准确生成资料..." /> <TextArea rows={10} style={{ background: '#eeeeee', resize: 'none',width:"328px",height:'220px',fontSize:'16px' }} placeholder="请对系统作出简单的描述,以使可准确生成资料..." />
</Form.Item> </Form.Item>
</div> */} </div> */}
<div style={{ marginTop: '20px' }}> <div style={{ marginTop: '' }}>
<Form.Item> <Form.Item>
<Flex align="center" justify="center" gap="large"> <Flex align="center" justify="center" gap="large">
<Button <Button
// style={{ // style={{
// backgroundColor: '#F5F5F5', width: '216px', // backgroundColor: '#F5F5F5', width: '216px',
// height: '50px', color: '#AFAFAF', fontSize: '16px' // height: '50px', color: '#AFAFAF', fontSize: '16px'
// }} // }}
size='large' size='large'
type="default" htmlType="button" onClick={() => { type="default" htmlType="button" onClick={() => {
nav(-1); nav(-1);
}} }}
> >
</Button> </Button>
<Button type="primary" htmlType="submit" <Button type="primary" htmlType="submit"
size='large' size='large'
// style={{ // style={{
// backgroundColor: 'var(--color-primary)', width: '216px', // backgroundColor: 'var(--color-primary)', width: '216px',
// height: '50px', fontSize: '16px', marginLeft: '53px' // height: '50px', fontSize: '16px', marginLeft: '53px'
// }} // }}
> >
</Button> </Button>
</Flex> </Flex>
@ -171,7 +187,7 @@ export default function ProjNew() {
open={isCreateModalOpen} open={isCreateModalOpen}
onOk={() => { onOk={() => {
// console.log('最终',listProjChargeAdditional); // console.log('最终',listProjChargeAdditional);
setIsCreateModalOpen(false); setIsCreateModalOpen(false);
post<any>({ post<any>({
messageApi, messageApi,

View File

@ -33,7 +33,7 @@ type FormFieldType = {
type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0]; type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0];
export default function ProjConfigLoginpage(props:any) { export default function ProjConfigLoginpage(props: any) {
// const nav = useNavigate(); // const nav = useNavigate();
const pathParams = useParams(); const pathParams = useParams();
const [messageApi, contextHolder] = message.useMessage(); const [messageApi, contextHolder] = message.useMessage();
@ -185,7 +185,7 @@ export default function ProjConfigLoginpage(props:any) {
{title: '登录界面设置'}, {title: '登录界面设置'},
]} ]}
/> */} /> */}
<div className="form-container" style={{ height: `${height}px`, overflow: 'hidden', padding: '10px', background: '#EFEFEF',boxSizing:'border-box' }}> <div className="form-container" style={{ height: `${height}px`, overflow: 'hidden', padding: '10px', background: '#EFEFEF', boxSizing: 'border-box' }}>
<div className="loginpage-body" style={{ height: `${height}px`, overflow: 'auto' }}> <div className="loginpage-body" style={{ height: `${height}px`, overflow: 'auto' }}>
<Row gutter={15}> <Row gutter={15}>
@ -204,6 +204,10 @@ export default function ProjConfigLoginpage(props:any) {
type="default" type="default"
className='seeButton' onClick={() => { className='seeButton' onClick={() => {
props.closeModal() props.closeModal()
setTimeout(()=>{
window.location.reload()
},500)
}}></Button> }}></Button>
<Button <Button
type="primary" type="primary"
@ -253,7 +257,7 @@ export default function ProjConfigLoginpage(props:any) {
</div> </div>
<Form.Item <Form.Item
style={{ style={{
display:'none' display: 'none'
}} }}
// label="副标题" // label="副标题"
name="loginpageId" name="loginpageId"
@ -557,6 +561,10 @@ export default function ProjConfigLoginpage(props:any) {
content: '编辑成功' content: '编辑成功'
}) })
// props.closeModal() // props.closeModal()
props.closeModal()
setTimeout(()=>{
window.location.reload()
},500)
}, },
onFinally() { onFinally() {

View File

@ -219,9 +219,9 @@ export default function ProjConfigModList(props: PropType) {
<ConfigModSave <ConfigModSave
projId={projId} projId={projId}
closeModal={() => { closeModal={() => {
renderData()
setConfigModSaveOpen(false) setConfigModSaveOpen(false)
renderData()
}}></ConfigModSave> }}></ConfigModSave>
</Modal> </Modal>

View File

@ -1,6 +1,6 @@
import './proj-edit-step.css'; import './proj-edit-step.css';
import { Col, Flex, message, Modal, Row, Select, Spin } from "antd"; import { Col, Flex, message, Modal, Row, Select, Spin } from "antd";
import { useParams } from "react-router-dom"; import { useParams } from "react-router-dom";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { get, put } from "../../../util/AjaxUtils.ts"; import { get, put } from "../../../util/AjaxUtils.ts";
import { Button, Form, Input } from 'antd'; import { Button, Form, Input } from 'antd';
@ -16,7 +16,7 @@ type FieldType = {
projDesc: string; projDesc: string;
}; };
export default function ProjEditStep1(props:any) { export default function ProjEditStep1(props: any) {
// const nav = useNavigate(); // const nav = useNavigate();
const pathParams = useParams(); const pathParams = useParams();
const [messageApi, contextHolder] = message.useMessage(); const [messageApi, contextHolder] = message.useMessage();
@ -24,7 +24,7 @@ export default function ProjEditStep1(props:any) {
const [loading, setLoading] = useState<boolean>(false); const [loading, setLoading] = useState<boolean>(false);
const [isEditModalOpen, setIsEditModalOpen] = useState(false); const [isEditModalOpen, setIsEditModalOpen] = useState(false);
const height = window.innerHeight - 200 const height = window.innerHeight - 200
// 初始化表格数据
useEffect(() => { useEffect(() => {
get({ get({
messageApi, messageApi,
@ -42,7 +42,7 @@ export default function ProjEditStep1(props:any) {
}, []) }, [])
return ( return (
<div style={{ height: `${height}px`,overflow:'auto'}}> <div style={{ height: `${height}px`, overflow: 'auto' }}>
{contextHolder} {contextHolder}
{/* <Breadcrumb {/* <Breadcrumb
items={[ items={[
@ -53,7 +53,7 @@ export default function ProjEditStep1(props:any) {
]} ]}
/> */} /> */}
{/* <div className="form-container" style={{ height: `${height}px` }}> */} {/* <div className="form-container" style={{ height: `${height}px` }}> */}
<div className="form-container" style={{ paddingBottom: '13px',boxSizing:"border-box" }}> <div className="form-container" style={{ paddingBottom: '13px', boxSizing: "border-box" }}>
<div className='Step-title'> <div className='Step-title'>
<div className='Step-titlel'></div> <div className='Step-titlel'></div>
<div className='Step-titler'></div> <div className='Step-titler'></div>
@ -179,6 +179,9 @@ export default function ProjEditStep1(props:any) {
size='large' size='large'
onClick={() => { onClick={() => {
props.closeModal() props.closeModal()
setTimeout(() => {
window.location.reload()
}, 500); // 刷新页面
}}> }}>
</Button> </Button>
@ -221,7 +224,11 @@ export default function ProjEditStep1(props:any) {
type: 'success', type: 'success',
content: '编辑成功' content: '编辑成功'
}) })
// props.closeModal() setTimeout(() => {
props.closeModal()
window.location.reload(); // 刷新页面
}, 1000);
}, },
onFinally() { onFinally() {
setLoading(false); setLoading(false);

View File

@ -21,6 +21,7 @@ type FieldType = {
projDevCompleteDate: Dayjs; projDevCompleteDate: Dayjs;
companyName: string; companyName: string;
companyNameEn: string; companyNameEn: string;
projName:string
}; };
// 所属人信息类型 // 所属人信息类型
type BelongPeopleType = { type BelongPeopleType = {
@ -61,7 +62,7 @@ interface Option {
pId: string; pId: string;
} }
export default function ProjEditStep2(props:any) { export default function ProjEditStep2(props: any) {
// const nav = useNavigate(); // const nav = useNavigate();
const pathParams = useParams(); const pathParams = useParams();
const [messageApi, contextHolder] = message.useMessage(); const [messageApi, contextHolder] = message.useMessage();
@ -238,6 +239,7 @@ export default function ProjEditStep2(props:any) {
messageApi, messageApi,
url: `/api/proj/get/edit-step2/${pathParams.projId}`, url: `/api/proj/get/edit-step2/${pathParams.projId}`,
onSuccess({ data }: AxiosResponse) { onSuccess({ data }: AxiosResponse) {
// 获取默认所属人信息 // 获取默认所属人信息
setauthorName(data.authorName) setauthorName(data.authorName)
@ -261,6 +263,7 @@ export default function ProjEditStep2(props:any) {
setAuthorId(data.authorId) setAuthorId(data.authorId)
setApplyConcatId(data.applyContactId) setApplyConcatId(data.applyContactId)
formInfo.setFieldsValue({ formInfo.setFieldsValue({
projName : data.projName,
projSubName: data.projSubName, projSubName: data.projSubName,
projVersion: data.projVersion, projVersion: data.projVersion,
projDevCompleteDate: data.projDevCompleteDate ? dayjs(data.projDevCompleteDate, 'YYYY-MM-DD') : '', projDevCompleteDate: data.projDevCompleteDate ? dayjs(data.projDevCompleteDate, 'YYYY-MM-DD') : '',
@ -320,6 +323,7 @@ export default function ProjEditStep2(props:any) {
} }
}) })
} }
const [belongShow, setBelongShow] = useState('')
// 编辑所属者 // 编辑所属者
const upProjOwner = () => { const upProjOwner = () => {
const crcAccountPassword = Number(formBelong.getFieldValue('isCrcAccount')) == 1 ? formBelong.getFieldValue('crcAccountPassword') : '' const crcAccountPassword = Number(formBelong.getFieldValue('isCrcAccount')) == 1 ? formBelong.getFieldValue('crcAccountPassword') : ''
@ -331,7 +335,8 @@ export default function ProjEditStep2(props:any) {
crcAccountPassword: crcAccountPassword, crcAccountPassword: crcAccountPassword,
crcAccountUsername: crcAccountUsername, crcAccountUsername: crcAccountUsername,
idCardNo: formBelong.getFieldValue('authorIdCard'), idCardNo: formBelong.getFieldValue('authorIdCard'),
idCardType: formBelong.getFieldValue('authorIdCardType'), // idCardType: formBelong.getFieldValue('authorIdCardType'),
idCardType: belongShow == 'PERSONAL' ? 'ID_CARD' : 'BUSINESS_LICENSE',
isCrcAccount: Number(formBelong.getFieldValue('isCrcAccount')), isCrcAccount: Number(formBelong.getFieldValue('isCrcAccount')),
name: formBelong.getFieldValue('authorName'), name: formBelong.getFieldValue('authorName'),
nameEn: formBelong.getFieldValue('nameEn') || '', nameEn: formBelong.getFieldValue('nameEn') || '',
@ -367,7 +372,8 @@ export default function ProjEditStep2(props:any) {
crcAccountPassword: crcAccountPassword, crcAccountPassword: crcAccountPassword,
crcAccountUsername: crcAccountUsername, crcAccountUsername: crcAccountUsername,
idCardNo: formBelong.getFieldValue('authorIdCard'), idCardNo: formBelong.getFieldValue('authorIdCard'),
idCardType: formBelong.getFieldValue('authorIdCardType'), // idCardType: formBelong.getFieldValue('authorIdCardType'),
idCardType: belongShow == 'PERSONAL' ? 'ID_CARD' : 'BUSINESS_LICENSE',
isCrcAccount: Number(formBelong.getFieldValue('isCrcAccount')), isCrcAccount: Number(formBelong.getFieldValue('isCrcAccount')),
name: formBelong.getFieldValue('authorName'), name: formBelong.getFieldValue('authorName'),
nameEn: formBelong.getFieldValue('nameEn'), nameEn: formBelong.getFieldValue('nameEn'),
@ -462,11 +468,15 @@ export default function ProjEditStep2(props:any) {
} }
}) })
} }
const [belongShow, setBelongShow] = useState('')
const typeChange = (data: any) => { const typeChange = (data: any) => {
// console.log(data.target.value); // console.log(data.target.value);
setBelongShow(data.target.value) setBelongShow(data.target.value)
} }
const [CrcAccountShow,setCrcAccountShow] = useState('0')
const isCrcAccountChange = (data:any) => {
// console.log(data.target.value);
setCrcAccountShow(data.target.value)
}
useEffect(() => { useEffect(() => {
getEditstep() getEditstep()
@ -528,9 +538,24 @@ export default function ProjEditStep2(props:any) {
> >
<Row gutter={15}> <Row gutter={15}>
<div className='projNameInt'> <div className='projNameInt'>
<div style={{ display: 'flex' }}>
<div className='projTitle '> :</div>
<Form.Item
// label="项目简称"
name="projName"
rules={[{ required: false, message: '' }]}
>
<Input
style={{ height: '50px', width: '411px', fontSize: '16px' }}
readOnly
// value={}
/>
</Form.Item>
</div>
<div style={{ display: 'flex' }}> <div style={{ display: 'flex' }}>
<div className='projTitle '> :</div> <div className='projTitle ' style={{ marginLeft: '112px' }}> :</div>
<Form.Item<FieldType> <Form.Item<FieldType>
// label="项目简称" // label="项目简称"
@ -543,23 +568,7 @@ export default function ProjEditStep2(props:any) {
placeholder="请输入项目简称" /> placeholder="请输入项目简称" />
</Form.Item> </Form.Item>
</div> </div>
<div style={{ display: 'flex' }}>
<div className='projTitle ' style={{ marginLeft: '112px' }}><span className='redicon'>*</span> :</div>
<Form.Item<FieldType>
// label="开发完成时间"
name="projDevCompleteDate"
rules={[{ required: true, message: '请输入开发完成时间' }]}
>
<DatePicker placeholder="请选择开发完成日期"
format={dateFormat}
locale={locale}
// style={{ width: '100%' }}
style={{ height: '50px', width: '411px', fontSize: '16px' }}
/>
</Form.Item>
</div>
</div> </div>
@ -579,8 +588,24 @@ export default function ProjEditStep2(props:any) {
placeholder="请输入项目版本" /> placeholder="请输入项目版本" />
</Form.Item> </Form.Item>
</div> </div>
<div style={{ display: 'flex' }}> <div style={{ display: 'flex' }}>
<div className='projTitle ' style={{ marginLeft: '112px' }}><span className='redicon'>*</span> :</div>
<Form.Item<FieldType>
// label="开发完成时间"
name="projDevCompleteDate"
rules={[{ required: true, message: '请输入开发完成时间' }]}
>
<DatePicker placeholder="请选择开发完成日期"
format={dateFormat}
locale={locale}
// style={{ width: '100%' }}
style={{ height: '50px', width: '411px', fontSize: '16px' }}
/>
</Form.Item>
</div>
<div style={{ display: 'none' }}>
<div className='projTitle ' style={{ marginLeft: '112px' }}>:</div> <div className='projTitle ' style={{ marginLeft: '112px' }}>:</div>
<Input <Input
readOnly readOnly
@ -593,7 +618,7 @@ export default function ProjEditStep2(props:any) {
</Row> </Row>
<Row gutter={15}> <Row gutter={15}>
<div style={{ display: 'flex' }}> <div style={{ display: 'none' }}>
<div className='projTitle '><span className='redicon'>*</span> :</div> <div className='projTitle '><span className='redicon'>*</span> :</div>
<Input <Input
readOnly readOnly
@ -612,12 +637,13 @@ export default function ProjEditStep2(props:any) {
<div style={{ padding: '22px 15px' }}> <div style={{ padding: '22px 15px' }}>
<div style={{ padding: '14px 19px', background: '#F3F3F3', color: '#A3A3A3', fontSize: '14px' }}> <div style={{ padding: '14px 19px', background: '#F3F3F3', color: '#A3A3A3', fontSize: '14px' }}>
<span style={{ color: '#FDB33E' }}></span> <a href="https://www.aimzhu.com/RealName.html" style={{ color: '#FDB33E' }}></a>
</div> </div>
<div className='belongPeople-center'> <div className='belongPeople-center'>
<Button onClick={() => { <Button onClick={() => {
// lyp // lyp
setBelongShow('') setBelongShow('')
setCrcAccountShow('0')
// 先初始化数据 // 先初始化数据
formBelong.resetFields() formBelong.resetFields()
setIsNewBelongOpen(true) setIsNewBelongOpen(true)
@ -709,6 +735,7 @@ export default function ProjEditStep2(props:any) {
render={(text, record: any) => ( render={(text, record: any) => (
<Space size="middle"> <Space size="middle">
<a onClick={() => { <a onClick={() => {
// alert(record.projOwnerId); // alert(record.projOwnerId);
console.log('text:', text); console.log('text:', text);
@ -719,6 +746,7 @@ export default function ProjEditStep2(props:any) {
setBelongShow(record.type) setBelongShow(record.type)
setIsNewBelongOpen(true) setIsNewBelongOpen(true)
// 发起请求给formBelong 表单赋值 // 发起请求给formBelong 表单赋值
setCrcAccountShow(record.isCrcAccount == 1 ? '1' : '0')
formBelong.setFieldsValue({ formBelong.setFieldsValue({
// 公司名 // 公司名
authorName: record.name, authorName: record.name,
@ -903,8 +931,11 @@ export default function ProjEditStep2(props:any) {
<Form.Item wrapperCol={{ span: 24 }}> <Form.Item wrapperCol={{ span: 24 }}>
<Flex align="center" justify="center" gap="large"> <Flex align="center" justify="center" gap="large">
<Button type="default" htmlType="button" onClick={() => { <Button type="default" htmlType="button" onClick={() => {
props.closeModal() props.closeModal()
// alert('发挥') setTimeout(() => {
window.location.reload()
}, 500)
// alert('发挥')
}} }}
// style={{ height: '49px', width: '104px', color: '#4B4B4B', background: '#D1D1D1', fontSize: '16px' }} // style={{ height: '49px', width: '104px', color: '#4B4B4B', background: '#D1D1D1', fontSize: '16px' }}
size='large' size='large'
@ -921,6 +952,7 @@ export default function ProjEditStep2(props:any) {
// 如果验证通过,则执行确认操作 // 如果验证通过,则执行确认操作
// 这里可以放置你的确认操作逻辑 // 这里可以放置你的确认操作逻辑
setIsEditModalOpen(true) setIsEditModalOpen(true)
}).catch(() => { }).catch(() => {
// 如果验证不通过,可以根据需要处理错误信息 // 如果验证不通过,可以根据需要处理错误信息
@ -1014,7 +1046,11 @@ export default function ProjEditStep2(props:any) {
content: '编辑成功' content: '编辑成功'
}) })
// props.closeModal() // props.closeModal()
props.closeModal()
setTimeout(() => {
window.location.reload()
}, 500)
}, },
onFinally() { onFinally() {
setLoading(false); setLoading(false);
@ -1109,14 +1145,14 @@ export default function ProjEditStep2(props:any) {
<Col span={12}> <Col span={12}>
<div className='blongNameInt blongSmallNamel'> <div className='blongNameInt blongSmallNamel'>
{/* <div className='blongTitle blongsmallTitle '>姓名或公司名称:</div> */} {/* <div className='blongTitle blongsmallTitle '>姓名或公司名称:</div> */}
<div className='blongTitle blongsmallTitle '>{belongShow == 'PERSONAL'?'姓名':'公司名称'}</div> <div className='blongTitle blongsmallTitle '>{belongShow == 'PERSONAL' ? '姓名' : '公司名称'}</div>
<Form.Item<BelongPeopleType> <Form.Item<BelongPeopleType>
// label="姓名或公司名称" // label="姓名或公司名称"
name="authorName" name="authorName"
rules={[{ required: true, message: belongShow == 'PERSONAL'?'请输入姓名':'请输入公司名称' }]} rules={[{ required: true, message: belongShow == 'PERSONAL' ? '请输入姓名' : '请输入公司名称' }]}
> >
<Input placeholder={belongShow == 'PERSONAL'?'请输入姓名':'请输入公司名称'} <Input placeholder={belongShow == 'PERSONAL' ? '请输入姓名' : '请输入公司名称'}
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }} style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
disabled={belongTitle == '查看所属者' ? true : false} disabled={belongTitle == '查看所属者' ? true : false}
@ -1127,14 +1163,14 @@ export default function ProjEditStep2(props:any) {
</Col> </Col>
<Col span={12}> <Col span={12}>
<div className='blongNameInt blongSmallNameR'> <div className='blongNameInt blongSmallNameR'>
<div className='blongTitle blongsmallTitle '>{belongShow == 'PERSONAL'?'英文名':'公司英文名称'}</div> <div className='blongTitle blongsmallTitle '>{belongShow == 'PERSONAL' ? '英文名' : '公司英文名称'}</div>
<Form.Item<BelongPeopleType> <Form.Item<BelongPeopleType>
// label="公司英文名" // label="公司英文名"
name="nameEn" name="nameEn"
rules={[{ required: true, message: '请输入公司英文名' }]} rules={[{ required: true, message: belongShow == 'PERSONAL' ? '请输入英文名' : '请输入公司英文名' }]}
> >
<Input placeholder="请输入公司英文名" <Input placeholder={belongShow == 'ORGANIZATION' ? '请输入公司英文名称' : '请输入英文名'}
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }} style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
disabled={belongTitle == '查看所属者' ? true : false} disabled={belongTitle == '查看所属者' ? true : false}
/> />
@ -1146,37 +1182,34 @@ export default function ProjEditStep2(props:any) {
</Row> </Row>
<Row gutter={15}> <Row gutter={15}>
<div className='blongNameInt blongSmallNamel' style={{ display: 'none' }}>
<div className='blongTitle blongsmallTitle '>:</div>
<Form.Item<BelongPeopleType>
name="authorIdCardType"
>
<Select
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
placeholder="请选择样证件类型"
onChange={(value: string) => {
console.log(`selected ${value}`);
}}
options={[
{ value: 'BUSINESS_LICENSE', label: '营业执照' },
{ value: 'ID_CARD', label: '身份证' },
]}
disabled={belongTitle == '查看所属者' ? true : false}
/>
</Form.Item>
</div>
<Col span={12}> <Col span={12}>
<div className='blongNameInt blongSmallNamel'> <div className='blongNameInt blongSmallNamel'>
<div className='blongTitle blongsmallTitle '>:</div> <div className='blongTitle blongsmallTitle '>{belongShow == 'PERSONAL' ? '身份证号' : '营业执照号'}:</div>
<Form.Item<BelongPeopleType>
// label="证件类型"
name="authorIdCardType"
rules={[{ required: true, message: '请选择证件类型' }]}
>
<Select
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
placeholder="请选择样证件类型"
onChange={(value: string) => {
console.log(`selected ${value}`);
}}
options={[
{ value: 'BUSINESS_LICENSE', label: '营业执照' },
{ value: 'ID_CARD', label: '身份证' },
]}
disabled={belongTitle == '查看所属者' ? true : false}
/>
</Form.Item>
</div>
</Col>
<Col span={12}>
<div className='blongNameInt blongSmallNameR'>
<div className='blongTitle blongsmallTitle '>:</div>
<Form.Item<BelongPeopleType> <Form.Item<BelongPeopleType>
// label="证件号" // label="证件号"
@ -1254,7 +1287,9 @@ export default function ProjEditStep2(props:any) {
style={{ marginTop: '22px', marginLeft: '24px' }} style={{ marginTop: '22px', marginLeft: '24px' }}
> >
<Radio.Group disabled={belongTitle == '查看所属者' ? true : false}> <Radio.Group
onChange={isCrcAccountChange}
disabled={belongTitle == '查看所属者' ? true : false}>
<Radio value="1"> </Radio> <Radio value="1"> </Radio>
<Radio value="0"> </Radio> <Radio value="0"> </Radio>
</Radio.Group> </Radio.Group>
@ -1274,55 +1309,59 @@ export default function ProjEditStep2(props:any) {
</Row> </Row>
<Row gutter={15}> <Row gutter={15}>
<Col span={12}> <Col span={12}>
<div className='crcAccount'></div> <div style={{display:CrcAccountShow=='0'?'none':'block'}}>
<Form.Item<BelongPeopleType> <div className='crcAccount'></div>
// label="中国版权登记业务平台用户名" <Form.Item<BelongPeopleType>
name="crcAccountUsername" // label="中国版权登记业务平台用户名"
rules={[ name="crcAccountUsername"
({ getFieldValue }) => ({ rules={[
validator(_, value) { ({ getFieldValue }) => ({
validator(_, value) {
if (getFieldValue('isCrcAccount') === '1') { if (getFieldValue('isCrcAccount') === '1') {
if (!value) { if (!value) {
return Promise.reject('请输入账号'); return Promise.reject('请输入账号');
}
} }
} return Promise.resolve();
return Promise.resolve(); },
}, }),
}), ]}
]}
> >
<Input placeholder="" <Input placeholder=""
style={{ height: '44px', width: '533px', fontSize: '15px', marginTop: '18px' }} style={{ height: '44px', width: '533px', fontSize: '15px', marginTop: '18px' }}
disabled={belongTitle == '查看所属者' ? true : false} disabled={belongTitle == '查看所属者' ? true : false}
/> />
</Form.Item> </Form.Item>
</div>
</Col> </Col>
<Col span={12}> <Col span={12}>
<div className='crcAccount'></div> <div style={{display:CrcAccountShow=='0'?'none':'block'}}>
<Form.Item<BelongPeopleType> <div className='crcAccount'></div>
// label="中国版权登记业务平台密码" <Form.Item<BelongPeopleType>
name="crcAccountPassword" // label="中国版权登记业务平台密码"
rules={[ name="crcAccountPassword"
({ getFieldValue }) => ({ rules={[
validator(_, value) { ({ getFieldValue }) => ({
if (getFieldValue('isCrcAccount') === '1') { validator(_, value) {
if (!value) { if (getFieldValue('isCrcAccount') === '1') {
return Promise.reject('请输入密码'); if (!value) {
return Promise.reject('请输入密码');
}
} }
} return Promise.resolve();
return Promise.resolve(); },
}, }),
}), ]}
]}
> >
<Input placeholder="" <Input placeholder=""
style={{ height: '44px', width: '533px', fontSize: '15px', marginTop: '18px' }} style={{ height: '44px', width: '533px', fontSize: '15px', marginTop: '18px' }}
disabled={belongTitle == '查看所属者' ? true : false} disabled={belongTitle == '查看所属者' ? true : false}
/> />
</Form.Item> </Form.Item>
</div>
</Col> </Col>
</Row> </Row>
</Form> </Form>

View File

@ -275,6 +275,9 @@ export default function ProjEditStep3(props:any) {
size='large' size='large'
onClick={()=>{ onClick={()=>{
props.closeModal() props.closeModal()
setTimeout(()=>{
window.location.reload()
},500)
}}> }}>
</Button> </Button>
@ -319,6 +322,10 @@ export default function ProjEditStep3(props:any) {
content: '编辑成功' content: '编辑成功'
}) })
// props.closeModal() // props.closeModal()
props.closeModal()
setTimeout(()=>{
window.location.reload()
},500)
}, },
onFinally() { onFinally() {
setLoading(false); setLoading(false);

View File

@ -56,4 +56,12 @@
/* background-color: red; */ /* background-color: red; */
/* width: 410px */ /* width: 410px */
} }
.software-protocol{
font-family: Microsoft YaHei UI;
/* font-weight: bold; */
/* background-color: red; */
color: #474747;
margin-top: 12px;
margin-left: 116px;
}