This commit is contained in:
lyp 2025-01-20 15:24:23 +08:00
parent 0d4165f692
commit c32d09e68a
16 changed files with 160 additions and 54 deletions

View File

@ -517,6 +517,16 @@ export default function BelongPeople(props: propsInfo) {
}}
style={{ textAlign: 'center', height: 390 }} // 设置表格内容居中显示
rowKey="projOwnerId" // 指定数据项的唯一标识符
// onRow={(record: any) => {
// return {
// onClick: (event: React.MouseEvent<HTMLTableRowElement>) => {
// // 阻止默认的行点击事件,以避免选中行时触发其他操作
// event.stopPropagation();
// // 更新选中的行
// belongRowSelection.onChange([record.projOwnerId], [record]);
// },
// };
// }}
>
<Column
align="center"

View File

@ -256,7 +256,16 @@ export default function ContactPeople(props: any) {
...ContantRowSelection,
// selectedRowKeys: selectedKeys // 设置默认选中的行
}}
// onRow={(record: any) => {
// return {
// onClick: (event: React.MouseEvent<HTMLTableRowElement>) => {
// // 阻止默认的行点击事件,以避免选中行时触发其他操作
// event.stopPropagation();
// // 更新选中的行
// ContantRowSelection.onChange([record.projContactId], [record]);
// },
// };
// }}
dataSource={tableContactData}
pagination={{
defaultPageSize: 5, // 设置默认一页显示 5 条数据

View File

@ -32,6 +32,13 @@ export default function CorrectionModal(props: any) {
render: (text: string) => <>{text}</>,
},
{
title: '已通过补正次数',
dataIndex: 'approvedCount',
align: 'center',
width: 130,
render: (text) => <>{text}</>, // 显示序号从1开始
},
{
title: '所属者名称',
dataIndex: 'applyContactName',
@ -179,7 +186,7 @@ export default function CorrectionModal(props: any) {
},
onSuccess(data: any) {
// console.log(data);
// console.log(data.data.rows);
// const newArray = (data.data).map((item: { projId: any; projName: any; }) => ({
// value: item.projId,
// label: item.projName
@ -381,10 +388,10 @@ export default function CorrectionModal(props: any) {
</div>
</div>
<div
<div
style={{
color: '#FF0000',
marginLeft:10
marginLeft: 10
}}
>*</div>
<Form.Item>
@ -481,6 +488,18 @@ export default function CorrectionModal(props: any) {
/>,
}}
scroll={{ y: 500 }}
onRow={(record: DataType) => {
return {
onClick: (event: React.MouseEvent<HTMLTableRowElement>) => {
// 阻止默认的行点击事件,以避免选中行时触发其他操作
event.stopPropagation();
// 更新选中的行
setselectedRowKeys([record.projId]);
setnewProjId(record.projId);
setnewprojName(record.projName);
},
};
}}
/>

View File

@ -34,14 +34,18 @@
}
.refunInput-button{
/* height: 100%; */
width: 50px;
display: flex;
align-items: center;
width: 385px;
height: 46px;
/* background-color: pink; */
/* display: flex; */
/* align-items: flex-end; */
justify-content: center;
/* background-color: #F04C4C; */
color: rgb(18, 128, 255);
position: absolute;
top:13px;
top:0px;
line-height: 46px;
text-align: right;
right: 20px;
cursor: pointer;
}

View File

@ -387,6 +387,18 @@ export default function RefunModal(props: any) {
/>,
}}
scroll={{ y: 500 }}
onRow={(record: DataType) => {
return {
onClick: (event: React.MouseEvent<HTMLTableRowElement>) => {
// 阻止默认的行点击事件,以避免选中行时触发其他操作
event.stopPropagation();
// 更新选中的行
setselectedRowKeys([record.projId]);
setnewProjId(record.projId);
setnewprojName(record.projName);
},
};
}}
/>

View File

@ -279,8 +279,8 @@ export default function CardProj(props: any) {
//将data.projName储存到缓sessionStorage存里面 key为projName
sessionStorage.setItem('projName', data.projName);
sessionStorage.setItem('projStatus', data.generate.generateStatus == GenerateStatus.SUCCESS ? '查看' : '编辑');
}
}
@ -405,24 +405,28 @@ export default function CardProj(props: any) {
{
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
<span className="cpt-text-btn">
<span className="cpt-text-btn" onClick={goEdit}>
<SearchOutlined />
<span className='text-btn' onClick={goEdit}></span>
<span className='text-btn' ></span>
</span>
) : (
<span className="cpt-text-btn">
<span className="cpt-text-btn" onClick={goEdit}>
<EditOutlined />
<span className='text-btn' onClick={goEdit}></span>
<span className='text-btn' ></span>
</span>
)
}
<span className='orignLine' style={{ display: data.projStatus == 'EXPIRED' || data.pay.payStatus == 'CORRECTION2_REFUND' ? 'none' : 'unset' }}>|</span>
<span className="cpt-text-btn" style={{ display: data.projStatus == 'EXPIRED' || data.pay.payStatus == 'CORRECTION2_REFUND' ? 'none' : 'unset' }}>
<EyeOutlined />
<span className='text-btn'
onClick={() => {
window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank')
}}></span>
<EyeOutlined onClick={() => {
window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank')
}}/>
<span className='text-btn'
onClick={() => {
window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank')
}}></span>
</span>
</div>

View File

@ -109,7 +109,9 @@ export default function StepProjEdit(props: IStepProj) {
</div>
<div className='downBox'></div>
</div>
<div className="step-card" style={{ maxHeight: `${height }px` }}>
<div className="step-card" style={{ maxHeight: `${height }px`,
paddingBottom:props.step==4?'130px':0,boxSizing:'border-box'
}}>
{/* <div className="step-card" style={{ }}> */}
<div className="step-card-list">{props.children}</div>
</div>

View File

@ -547,7 +547,7 @@ export default function Index() {
// }
// })
const location = useLocation()
const [now, setNow] = useState<string>('首页-项目')
const [now, setNow] = useState<string>('首页 / 项目')
// 编辑项目路由名
// const [editname,setEditname] = useState('')
// 新建项目路由名字
@ -685,7 +685,7 @@ export default function Index() {
if (location.pathname.includes('/home')) {
// setCoupon(true)
getCoupon()
setNow('首页-项目')
setNow('首页 / 项目')
// setPathArray([{ title: '首页' }])
setShowSearchBox(true)
// setClickBelongpeople(true)
@ -701,7 +701,7 @@ export default function Index() {
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: '创建项目' }])
// /config-mod-list /config-menu-list /config-mod-show
} else if (location.pathname.includes('/proj-edit') && !location.pathname.includes('/config-mod-show') && !location.pathname.includes('/config-mod-edit') && !location.pathname.includes('/step') && !location.pathname.includes('/config-loginpage') && !location.pathname.includes('/config-mod-save') && !location.pathname.includes('/config-mod-list') && !location.pathname.includes('/config-menu-list')) {
setNow(`${projStatus}项目-${projName}`)
setNow(`${projStatus}项目 / ${projName}`)
setShowSearchBox(false)
setRrefunSearchBox(false)
setCorrectionSearchBox(false)
@ -717,7 +717,7 @@ export default function Index() {
// setNewname(location.pathname)
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '新建项目' }])
} else if (location.pathname.includes('/proj-efree')) {
setNow(`${projStatus}项目-${projName}`)
setNow(`${projStatus}项目 / ${projName}`)
setShowSearchBox(false)
setRrefunSearchBox(false)
setCorrectionSearchBox(false)
@ -725,7 +725,7 @@ export default function Index() {
// setNewname(location.pathname)
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: '编辑项目' }])
} else if (location.pathname.includes('/proj-eall')) {
setNow(`${projStatus}项目-${projName}`)
setNow(`${projStatus}项目 / ${projName}`)
setShowSearchBox(false)
setRrefunSearchBox(false)
setCorrectionSearchBox(false)
@ -837,7 +837,7 @@ export default function Index() {
// /config-mod-edit /product-release /transaction-order
} else if (location.pathname.includes('/refun')) {
setShowSearchBox(false)
setNow('首页-退款')
setNow('首页 / 退款')
// setClickBelongpeople(false)
setRrefunSearchBox(true)
setCorrectionSearchBox(false)
@ -846,7 +846,7 @@ export default function Index() {
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '软件功能特点' }])
} else if (location.pathname.includes('/correction')) {
setShowSearchBox(false)
setNow('首页-补正')
setNow('首页 / 补正')
// setClickBelongpeople(false)
setRrefunSearchBox(false)
setCorrectionSearchBox(true)
@ -858,7 +858,7 @@ export default function Index() {
setRrefunSearchBox(false)
setCorrectionSearchBox(false)
setContractSearchBox(true)
setNow('首页-合同下载')
setNow('首页 / 合同下载')
}
}, [location.pathname])
useEffect(() => {
@ -1236,7 +1236,7 @@ export default function Index() {
{/* {renderStatus()} */}
<div className='gps'>
<img src={gpsImg} alt="" />
<div className='gps-now'>:{now}</div>
<div className='gps-now'>{now}</div>
</div>
<div className='mediaLine'>
<div className='line' style={{

View File

@ -182,6 +182,7 @@
}
.index .right .top .gps {
/* background-color: pink; */
display: flex;
align-items: center;
font-size: 14px;
@ -190,6 +191,7 @@
.gps-now {
/* background-color: red; */
min-width: 122px;
margin-left: -10px;
}
.index .right .top .gps img {

View File

@ -315,13 +315,14 @@ export default function ProjEdit() {
// setAiHelperModalOpen(true)
// }
// 是否显示ai弹窗
const isModal = !data.projDesc || !data.projIntroduction || data.projModCount > 0
const isModal = !data.projDesc || !data.projIntroduction || data.projModCount >= 10
// const isModal = !data.projDesc || !data.projIntroduction || data.aiSetting.modsStatus == "GENERATING"
if (!isModal && data.generate.generateStatus == GenerateStatus.NONE) {
setAiHelperModalOpen(true)
}
// if (data.projModCount < 10) {
// setAiHelperModalOpen(true)
// }
if (data.aiSetting.settingStatus == 'GENERATING') {
setAiHelperModalOpen(true)
}
@ -410,10 +411,17 @@ export default function ProjEdit() {
// console.log('模块信息', data);
// setListMods(data)
const allSuccess = data.every(item => item.aiFieldStatus === 'SUCCESS');
if (data.length > 0 && allSuccess) {
if (data.length >= 10 && allSuccess) {
setAiHelperModalOpen(false);
} else {
messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
if (!allSuccess) {
messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
}
if (data.length < 10) {
messageApi.error('功能列表模块数量不能少于10,请点击AI继续生成功能列表');
}
// messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
}
},
@ -641,6 +649,17 @@ export default function ProjEdit() {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code/pdf/${pathParams.projId}`)
}}
/>
{/* <CardProjDownload title=""
desc="点击下载源代码"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code/${pathParams.projId}`)
}}
downPdf={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code/pdf/${pathParams.projId}`)
}}
/> */}
{/*<CardProjJump title="找代理"*/}
{/* desc="到软著代理完成软著申请"*/}
{/* handleJump={() => {*/}
@ -676,6 +695,7 @@ export default function ProjEdit() {
okText="确定"
cancelText="取消"
open={isGenerateModalOpen}
centered
onOk={() => {
setTimeout(() => {
window.location.reload();

View File

@ -764,6 +764,7 @@ export default function ProjEditAll() {
<Modal title="提示"
okText="确定"
cancelText="取消"
centered
open={isGenerateModalOpen}
onOk={() => {
setTimeout(() => {

View File

@ -166,10 +166,18 @@ export default function ProjEdit() {
const allSuccess = data.every(item => item.aiFieldStatus === 'SUCCESS');
// console.log('检测项目',allSuccess);
if (data.length > 0 && allSuccess) {
if (data.length >= 3 && allSuccess) {
setAiHelperModalOpen(false);
} else {
messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
// messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
// messageApi.error('功能列表模块数量不能少于3');
if (!allSuccess) {
messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
}
if (data.length < 3) {
messageApi.error('功能列表模块数量不能少于3,请点击AI继续生成功能列表');
}
}
},
@ -400,13 +408,16 @@ export default function ProjEdit() {
// setCanGenerate(true)
// }
// 根据状态判断是否显示ai弹窗
const isModal = !data.projDesc || !data.projIntroduction || data.projModCount > 0
const isModal = !data.projDesc || !data.projIntroduction || data.projModCount >= 3
// const isModal = !data.projDesc || !data.projIntroduction || data.aiSetting.modsStatus == "GENERATING"
if (!isModal && data.generate.generateStatus == GenerateStatus.NONE) {
setAiHelperModalOpen(true)
}
// if (data.projModCount < 3) {
// setAiHelperModalOpen(true)
// }
if (data.aiSetting.settingStatus == 'GENERATING') {
setAiHelperModalOpen(true)
}
@ -660,6 +671,7 @@ export default function ProjEdit() {
<Modal title="提示"
okText="确定"
cancelText="取消"
centered
open={isGenerateModalOpen}
onOk={() => {
setTimeout(() => {

View File

@ -1,6 +1,6 @@
import './proj-new.css';
import { useNavigate, useParams, useSearchParams } from "react-router-dom";
import { Button, Flex, Form, Input, message, Modal, Spin, Checkbox, DatePicker,Select } from "antd";
import { Button, Flex, Form, Input, message, Modal, Spin, Checkbox, DatePicker, Select } from "antd";
import { useContext, useEffect, useState } from "react";
import { get, post } from "../../util/AjaxUtils.ts";
// import {GlobalContext} from "../../context/GlobalContext.ts";
@ -225,9 +225,10 @@ export default function ProjNew() {
<Form
name="basic"
form={form}
initialValues={{ projVersion: 'v1.0',
backendCodeLang:'JAVA'
}} // 添加 initialValues 属性
initialValues={{
projVersion: 'v1.0',
backendCodeLang: 'JAVA'
}} // 添加 initialValues 属性
layout={'vertical'}
labelCol={{ span: 24 }}
wrapperCol={{ span: 24 }}
@ -240,7 +241,7 @@ export default function ProjNew() {
belongPeople: formData.belongPeople,
contacts: formData.contacts,
projDevCompleteDate: formData.projDevCompleteDate,
projVersion: formData.projVersion?formData.projVersion:'v1.0',
projVersion: formData.projVersion ? formData.projVersion : 'v1.0',
backendCodeLang: formData.backendCodeLang,
})
}}
@ -284,10 +285,10 @@ export default function ProjNew() {
<div className='formItem-title oneTitle'>*</div>
<Form.Item<ProjInfo>
name="projVersion"
>
<Input
style={{ background: '#eeeeee', width: '800px', height: '50px', fontSize: '16px' }} placeholder="请输入系统版本 (注默认版本为v1.0)" />
</Form.Item>
@ -302,7 +303,7 @@ export default function ProjNew() {
]}
>
<Select
style={{ width: '800px', height: '50px', fontSize: '16px'}}
style={{ width: '800px', height: '50px', fontSize: '16px' }}
placeholder="请选择系统语言"
className='langselect'
// defaultValue="JAVA"
@ -316,7 +317,7 @@ export default function ProjNew() {
</Select>
</Form.Item>
</div>
<div className='formItemOne' style={{ marginTop: 20, position: 'relative' }}>
<div className='formItem-title '>
*
@ -328,7 +329,12 @@ export default function ProjNew() {
<Input style={{ background: '#eeeeee', width: '800px', height: '50px', fontSize: '16px', color: '#3B3B3B' }} placeholder="请选择/创建知识产权所属者" disabled />
</Form.Item>
<div style={{ position: 'absolute', right: 23, fontSize: 16, color: " #1F79FF", cursor: 'pointer' }} onClick={() => {
<div style={{
position: 'absolute', right: 20, fontSize: 16, color: " #1F79FF", cursor: 'pointer',
// background:'pink',
width: 780,
textAlign: 'right',
}} onClick={() => {
setBelongModal(true)
}}></div>
</div>
@ -343,7 +349,12 @@ export default function ProjNew() {
<Input style={{ background: '#eeeeee', width: '800px', height: '50px', fontSize: '16px', color: '#3B3B3B' }} placeholder="请选择/创建知识产权联系人" disabled />
</Form.Item>
<div style={{ position: 'absolute', right: 23, fontSize: 16, color: " #1F79FF", cursor: 'pointer' }} onClick={() => {
<div style={{
position: 'absolute', right: 20, fontSize: 16, color: " #1F79FF", cursor: 'pointer',
width: 780,
textAlign: 'right',
}} onClick={() => {
setConcatModal(true)
}}></div>
</div>
@ -366,7 +377,7 @@ export default function ProjNew() {
/>
</Form.Item>
</div>
<div style={{ display: couponShow ? 'unset' : 'none' }}>
<div className='formItemOne' style={{ marginTop: 20, position: 'relative' }}>
<div className='formItem-title '>
@ -468,7 +479,7 @@ export default function ProjNew() {
projChargeType: pathParams.projChargeType,
listProjChargeAdditional: listProjChargeAdditional,
// dayjs(formInfo.getFieldValue('projDevCompleteDate')).format(dateFormat),
projDevCompleteDate:projInfo.projDevCompleteDate? dayjs(projInfo.projDevCompleteDate).format(dateFormat):'',
projDevCompleteDate: projInfo.projDevCompleteDate ? dayjs(projInfo.projDevCompleteDate).format(dateFormat) : '',
authorCrcAccount: belongPeopleInfo.authorCrcAccount,
authorId: belongPeopleInfo.authorId,
authorIdCard: belongPeopleInfo.authorIdCard,

View File

@ -22,8 +22,8 @@
background-color: var(--color-light);
}
.aiImg{
width: 100px;
height: 100px;
width: 200px;
height: 250px;
position: fixed;
right: 25px;
bottom: 20px;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 602 KiB

After

Width:  |  Height:  |  Size: 3.9 MiB

BIN
src/static/status/ai.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB