编辑页面完成

This commit is contained in:
xixi 2024-05-10 11:33:40 +08:00
parent e707975095
commit a20fd793aa
15 changed files with 355 additions and 211 deletions

View File

@ -1,8 +1,8 @@
import './card-proj-agent.css'
import {OrderedListOutlined, BarsOutlined, SearchOutlined} from "@ant-design/icons";
import {Badge, Tag} from 'antd';
import {IAgent} from "../../interfaces/agent/IAgent.ts";
import {useNavigate} from "react-router-dom";
import { OrderedListOutlined, BarsOutlined, SearchOutlined } from "@ant-design/icons";
import { Badge, Tag } from 'antd';
import { IAgent } from "../../interfaces/agent/IAgent.ts";
import { useNavigate } from "react-router-dom";
export default function CardProjAgent(props: IAgent) {
@ -55,7 +55,61 @@ export default function CardProjAgent(props: IAgent) {
return (
<div className="card-proj-agent">
<div className="title">
<div className='cardpro-agent-top'>
<div className='cardpro-agent-tlift'>
<a href="/#">{props.projName}</a>
</div>
<div className='cardpro-agent-tright'>
<span className="agent">{props.basicsName}</span>
<span className="orderNo">{props.orderNumber}</span>
</div>
</div>
<hr />
<div className='cardpro-agent-center'>
<div className='cardpro-agent-cTop'>
<div><span>{props.orderShoppingAmount / 100}</span></div>
<div><span>{props.gmtCreate}</span></div>
</div>
<div className='cardpro-agent-cBot'>
<div className='cardpro-agent-cBot-left'>
<span>
<OrderedListOutlined />
<Badge dot count={props.orderAgreementStatus == 'AWAIT_SURE' ? 1 : 0}>
<a href="/#" onClick={(e) => {
e.preventDefault();
nav(`/agent-agreement/${props.orderId}`);
}}></a>
</Badge>
</span>
<span style={{ marginLeft: '15px' }}>
<BarsOutlined />
<Badge size="small" count={props.isOver == 0 && props.materialAmendApplyCount ? props.materialAmendApplyCount : 0}>
<a href="/#" onClick={(e) => {
e.preventDefault();
nav(`/agent-correction/${props.orderId}`);
}}></a>
</Badge>
</span>
</div>
<div className='cardpro-agent-cBot-right'>
{
props.isResult ? (
<div >
<span>
<SearchOutlined />
<a href="/#" onClick={(e) => {
e.preventDefault();
nav(`/agent-result/${props.orderId}`);
}}></a>
</span>
</div>
) : <></>
}
</div>
</div>
</div>
{/* <div className="title">
<div className="left">
<a href="/#">{props.projName}</a>
</div>
@ -110,8 +164,8 @@ export default function CardProjAgent(props: IAgent) {
}
</div>
</div>
<hr/>
</div> */}
<hr />
<div className="tail">
<div className="tail-left">
<span className="status order-status">{renderTakeStatus()}</span>

View File

@ -1,25 +1,28 @@
import './card-proj-download.css';
import {IProjDownload} from "../../interfaces/card/ICardProj.ts";
import { IProjDownload } from "../../interfaces/card/ICardProj.ts";
export default function CardProjDownload(props: IProjDownload) {
return (
<div className="card-proj-download">
<div className="title">{props.title}</div>
<div className="desc">{props.desc}</div>
<div className="option">
{
props.canBtnClick ? (
<a href="/#" className="edit" onClick={(e) => {
e.preventDefault();
props.handleDownload();
}}></a>
) : (
<a href="/#" className="edit" style={{color: 'var(--color-border)'}} onClick={(e) => {
e.preventDefault();
}}></a>
)
}
// <div className="card-proj-download">
<div className={props.canBtnClick ? 'card-proj-download' : 'card-proj-nodownload'}>
<div className="cpDown-title">{props.title}</div>
<div className='cpDown-bot'>
<div className="cpDown-desc">{props.desc}</div>
<div className="cpDown-option">
{
props.canBtnClick ? (
<a href="/#" className="cpDown-edit" onClick={(e) => {
e.preventDefault();
props.handleDownload();
}}></a>
) : (
<a href="/#" className="cpDown-noedit" style={{ color: '#c2c2c2' }} onClick={(e) => {
e.preventDefault();
}}></a>
)
}
</div>
</div>
</div>
)

View File

@ -15,6 +15,8 @@ export default function CardProjJump(props: IProjJump) {
<ExportOutlined style={{color: 'var(--color-note)'}}/>
</div>
<div className="desc">{props.desc}</div>
<div className='downBoxx'></div>
</div>
)
}

View File

@ -2,8 +2,41 @@
background-color: var(--color-light);
padding: 5px 15px;
}
.orderNo{margin-left: 20px;}
.cardpro-agent-top{
display: flex;
justify-content: space-between;
}
.card-proj-agent .left {
.cardpro-agent-cTop{
display: flex;
justify-content: space-between;
}
.cardpro-agent-cBot{
display: flex;
justify-content: space-between;
}
.card-proj-agent .tail {
padding: 5px 0;
display: flex;
justify-content: space-between;
}
.card-proj-agent .tail .tail-left {
margin-right: 0;
}
hr {
border-color: var(--color-border);
border-style: dashed;
border-left: 0;
border-bottom: 0;
border-right: 0;
margin-block-start: 5px;
margin-block-end: 5px;
}
/* .card-proj-agent .left {
position: unset;
}
@ -82,4 +115,4 @@
.card-proj-agent .tail .tail-left {
margin-right: 0;
}
*/

View File

@ -1,25 +1,48 @@
.card-proj-download {
width: 224px;
padding: 10px 15px;
width: 309px;
padding: 20px 25px;
box-sizing: border-box;
background-color: #FFFBF5;
margin-bottom: 27px;
box-shadow: 0px 3px 0px 0px #EBDFD5;
border-radius: 4px;
}
.card-proj-download .title {
font-size: 18px;
.card-proj-nodownload{
width: 309px;
padding: 20px 25px;
box-sizing: border-box;
background-color: #f3f3f3;
margin-bottom: 27px;
border-radius: 4px;
}
.cpDown-bot{
display: flex;
justify-content: space-between;
/* background-color: aqua; */
margin-top: 16px;
}
.cpDown-title {
font-size: 16px;
font-weight: bold;
}
.card-proj-download .desc {
margin: 5px 0 10px 0;
max-height: 36px;
line-height: 18px;
color: var(--color-note);
.cpDown-desc {
font-weight: 300;
font-size: 14px;
color: #8B919D;
}
.card-proj-download .option {
.cpDown-option {
display: flex;
justify-content: space-between;
}
.card-proj-download .option .edit {
.cpDown-edit {
color: var(--color-blue);
text-decoration: underline;
}
.cpDown-noedit:hover{
cursor: not-allowed;
}

View File

@ -2,7 +2,6 @@
width: 309px;
padding: 20px 25px;
box-sizing: border-box;
background-color: pink;
margin-bottom: 27px;
display: flex;
justify-content: space-between;

View File

@ -1,11 +1,16 @@
.card-proj-jump {
width: 224px;
padding: 10px 15px;
width: 317px;
padding: 20px 25px;
box-sizing: border-box;
cursor: pointer;
background-color: #F5FEFA;
box-shadow:0px 3px 0px 0px rgba(55,215,138,0.18) ;
position: relative;
}
.card-proj-jump .title {
font-size: 18px;
font-size: 16px;
font-weight: bold;
display: flex;
justify-content: space-between;
@ -13,8 +18,13 @@
}
.card-proj-jump .desc {
margin: 15px 0 5px 0;
max-height: 36px;
line-height: 18px;
color: var(--color-note);
margin-top: 18px;
/* margin: 15px 0 5px 0; */
/* max-height: 36px; */
/* line-height: 18px; */
/* color: var(--color-note); */
color: #8B919D;
font-weight: 300;
font-size: 14px;
}

View File

@ -1,11 +1,15 @@
.card-proj-loading {
width: 224px;
padding: 10px 15px;
width: 317px;
padding: 20px 25px;
box-sizing: border-box;
background-color: #F5FAFE;
box-shadow:0px 3px 0px 0px rgba(55,144,215,0.18) ;
cursor: pointer;
}
.card-proj-loading .title {
font-size: 18px;
font-size: 16px;
font-weight: bold;
}
@ -14,10 +18,13 @@
}
.card-proj-loading .desc {
margin-top: 5px;
/* margin-top: 5px; */
max-height: 36px;
line-height: 18px;
color: var(--color-note);
/* color: var(--color-note); */
margin-top: 18px;
color: #8B919D;
}
.card-proj-loading .option {

View File

@ -1,10 +1,18 @@
.card-proj-result {
width: 224px;
padding: 10px 15px;
width: 317px;
min-height: 97px;
padding: 20px 25px;
box-sizing: border-box;
background-color: #F5FAFE;
box-shadow:0px 3px 0px 0px rgba(55,144,215,0.18) ;
display: flex;
flex-direction: column;
justify-content: center;
border-radius: 4px;
}
.card-proj-result .title {
font-size: 18px;
font-size: 16px;
font-weight: bold;
display: flex;
justify-content: space-between;
@ -57,4 +65,5 @@
.card-proj-result .option .edit {
color: var(--color-blue);
margin-top: 16px;
}

View File

@ -1,7 +1,8 @@
import './list-proj-agent.css';
import CardProjAgent from "../card/CardProjAgent.tsx";
import {useRef, MutableRefObject, useEffect, useState, useContext} from "react";
import {Image, Input, Pagination, Spin, Tag} from 'antd';
// import {Image, Pagination, Spin, Tag} from 'antd';
import {Image, Pagination, Spin} from 'antd';
import {get} from "../../util/AjaxUtils.ts";
import useMessage from "antd/es/message/useMessage";
import {IListPage} from "../../interfaces/listpage/IListPage.ts";
@ -9,7 +10,7 @@ import {IndexListContext} from "../../context/IndexListContext.ts";
import {IAgent} from "../../interfaces/agent/IAgent.ts";
import NoData from "../../assets/no-data.png";
const {Search} = Input;
// const {Search} = Input;
export default function ListProjAgent() {
const indexListContext = useContext(IndexListContext);
@ -24,6 +25,7 @@ export default function ListProjAgent() {
const [total, setTotal] = useState(0);
const [agents, setAgents] = useState<IAgent[]>([]);
const [isLoading, setIsLoading] = useState(false);
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [keywords, setKeywords] = useState('');
const domHeight = window.innerHeight - 280;
@ -53,16 +55,16 @@ export default function ListProjAgent() {
})
}, [indexListContext.status, keywords, page])
const renderStatus = () => {
if (indexListContext.status == 'ALL') {
return <Tag color="blue"></Tag>
} else if (indexListContext.status == 'PROCESSING') {
return <Tag color="blue"></Tag>
} else if (indexListContext.status == 'COMPLETE') {
return <Tag color="blue"></Tag>
}
return <></>
}
// const renderStatus = () => {
// if (indexListContext.status == 'ALL') {
// return <Tag color="blue">代理:全部项目</Tag>
// } else if (indexListContext.status == 'PROCESSING') {
// return <Tag color="blue">代理:进行中的</Tag>
// } else if (indexListContext.status == 'COMPLETE') {
// return <Tag color="blue">代理:已完成的</Tag>
// }
// return <></>
// }
const renderList = () => {
if(agents.length == 0) {
@ -101,12 +103,12 @@ export default function ListProjAgent() {
return (
<>
<div className="list-proj-agent" ref={listProjRef}>
<div className="top">
{/* <div className="top">
{renderStatus()}
<Search placeholder="按项目名搜索" onSearch={(value) => {
setKeywords(value)
}} style={{width: 200}}/>
</div>
</div> */}
<div className="body">
<Spin tip="加载中..." spinning={isLoading}>
<div className="list" ref={listRef} style={{height: `${domHeight}px`}}>{renderList()}</div>

View File

@ -2,7 +2,7 @@ import { useContext } from "react";
import { IndexListContext } from "../../context/IndexListContext.ts";
import ListProj from "../../components/list/ListProj.tsx";
import ListProjAgent from "../../components/list/ListProjAgent.tsx";
import { useLocation } from "react-router-dom";
// import { useLocation } from "react-router-dom";
// import { useLocation } from 'react-router-dom';
export default function Home() {

View File

@ -1,19 +1,19 @@
import './proj-edit.css';
// import {Link, useNavigate, useParams} from "react-router-dom";
import { useNavigate, useParams} from "react-router-dom";
import { Button, FloatButton, message, Modal} from "antd";
import { useNavigate, useParams } from "react-router-dom";
import { Button, FloatButton, message, Modal } from "antd";
import StepProjEdit from "../../components/step/StepProjEdit.tsx";
import CardProjEdit from "../../components/card/CardProjEdit.tsx";
import {Process} from "../../interfaces/step/IStepProj.ts";
import { Process } from "../../interfaces/step/IStepProj.ts";
import CardProjLoading from "../../components/card/CardProjLoading.tsx";
import CardProjResult from "../../components/card/CardProjResult.tsx";
import CardProjDownload from "../../components/card/CardProjDownload.tsx";
import CardProjJump from "../../components/card/CardProjJump.tsx";
import {useEffect, useState} from "react";
import {Axios, get, post} from "../../util/AjaxUtils.ts";
import {EditStepEnum, IProjEdit} from "../../interfaces/card/ICardProj.ts";
import {MIN_MOD_SIZE} from "./edit/ProjConfigModList.tsx";
import {GenerateStatus} from "../../interfaces/proj/IProj.ts";
import { useEffect, useState } from "react";
import { Axios, get, post } from "../../util/AjaxUtils.ts";
import { EditStepEnum, IProjEdit } from "../../interfaces/card/ICardProj.ts";
import { MIN_MOD_SIZE } from "./edit/ProjConfigModList.tsx";
import { GenerateStatus } from "../../interfaces/proj/IProj.ts";
import AiHelper from "../../components/ai/AiHelper.tsx";
type AiHelperType = {
@ -201,7 +201,7 @@ export default function ProjEdit() {
get<any>({
messageApi: messageApi,
url: `/api/proj/get/${pathParams.projId}`,
onSuccess({data}) {
onSuccess({ data }) {
const isEdited = data.editSteps[0].editStatus == EditStepEnum.EDITED
&& data.editSteps[1].editStatus == EditStepEnum.EDITED
&& data.editSteps[2].editStatus == EditStepEnum.EDITED
@ -233,7 +233,7 @@ export default function ProjEdit() {
useEffect(() => {
renderData();
}, [])
return (
<div className='proj-edit-box'>
{contextHolder}
@ -247,19 +247,19 @@ export default function ProjEdit() {
{/* <div className="proj-edit" style={{height: `${height}px`}}> */}
<div className="proj-edit" style={{}}>
<StepProjEdit step={1} process={isEditStepEdited ? Process.COMPLETE : Process.PROCESSING}
descTitle="完善信息"
descDetail="完善项目的基本信息"
hasNext={true}>
descTitle="完善信息"
descDetail="完善项目的基本信息"
hasNext={true}>
{
editStepArray.map((item, index) => {
return <CardProjEdit key={`editStep-${index}`}
title={item.title}
desc={item.desc}
status={item.status}
btnName={item.btnName}
handleEdit={item.handleEdit}
background = {item.status == EditStepEnum.EDITED?'#F5FAFE':'#f3f3f3'}
shadow = {item.status == EditStepEnum.EDITED?'0px 3px 0px 0px rgba(55,144,215,0.18)':''}
title={item.title}
desc={item.desc}
status={item.status}
btnName={item.btnName}
handleEdit={item.handleEdit}
background={item.status == EditStepEnum.EDITED ? '#F5FAFE' : '#f3f3f3'}
shadow={item.status == EditStepEnum.EDITED ? '0px 3px 0px 0px rgba(55,144,215,0.18)' : ''}
/>
})
}
@ -267,20 +267,20 @@ export default function ProjEdit() {
</StepProjEdit>
{/*trueisEditStepEdited*/}
<StepProjEdit step={2}
process={!isEditStepEdited ? Process.PENDING : (isConfigEdited ? Process.COMPLETE : Process.PROCESSING)}
descTitle="功能设置"
descDetail="设置系统的菜单功能" hasNext={true}>
process={!isEditStepEdited ? Process.PENDING : (isConfigEdited ? Process.COMPLETE : Process.PROCESSING)}
descTitle="功能设置"
descDetail="设置系统的菜单功能" hasNext={true}>
{
configArray.map((item, index) => {
return <CardProjEdit key={`config-${index}`}
title={item.title}
desc={item.desc}
btnName={item.btnName}
canBtnClick={item.status == EditStepEnum.EDITED}
status={item.status}
handleEdit={item.handleEdit}
background = {item.status == EditStepEnum.EDITED?'#F5FEFA':'#f3f3f3'}
shadow = {item.status == EditStepEnum.EDITED?' 0px 3px 0px 0px rgba(55,215,138,0.18)':''}
title={item.title}
desc={item.desc}
btnName={item.btnName}
canBtnClick={item.status == EditStepEnum.EDITED}
status={item.status}
handleEdit={item.handleEdit}
background={item.status == EditStepEnum.EDITED ? '#F5FEFA' : '#f3f3f3'}
shadow={item.status == EditStepEnum.EDITED ? ' 0px 3px 0px 0px rgba(55,215,138,0.18)' : ''}
/>
})
@ -288,62 +288,62 @@ export default function ProjEdit() {
{
isEditStepEdited && isConfigEdited ? (
<CardProjJump title="预览系统"
desc="点击查看预览系统"
canBtnClick={true}
handleJump={() => {
window.open(`${Axios.defaults?.baseURL}/${previewUrl}`, '_blank')
}}
desc="点击查看预览系统"
canBtnClick={true}
handleJump={() => {
window.open(`${Axios.defaults?.baseURL}/${previewUrl}`, '_blank')
}}
/>
) : <></>
}
</StepProjEdit>
<StepProjEdit step={3}
process={generateStatus == GenerateStatus.SUCCESS ? Process.COMPLETE : (canGenerate ? Process.PROCESSING : Process.PENDING)}
descTitle="资料生成"
hasNext={true}>
process={generateStatus == GenerateStatus.SUCCESS ? Process.COMPLETE : (canGenerate ? Process.PROCESSING : Process.PENDING)}
descTitle="资料生成"
hasNext={true}>
{
generateStatus == GenerateStatus.NONE || generateStatus == GenerateStatus.FAILED ? (
<CardProjEdit title="资料生成"
desc="生成软著所需要的资料,此操作后项目无法再次编辑"
btnName="生成"
status={EditStepEnum.UN_EDIT}
canBtnClick={canGenerate}
handleEdit={() => {
setIsGenerateModalOpen(true);
setTimeout(() => {
window.location.reload();
}, 1000)
}}
// background = {status == EditStepEnum.EDITED?'#F5FAFE':'#f3f3f3'}
// shadow = {status == EditStepEnum.EDITED?'0px 3px 0px 0px rgba(55,144,215,0.18)':''}
background = '#f3f3f3'
desc="生成软著所需要的资料,此操作后项目无法再次编辑"
btnName="生成"
status={EditStepEnum.UN_EDIT}
canBtnClick={canGenerate}
handleEdit={() => {
setIsGenerateModalOpen(true);
setTimeout(() => {
window.location.reload();
}, 1000)
}}
// background = {status == EditStepEnum.EDITED?'#F5FAFE':'#f3f3f3'}
// shadow = {status == EditStepEnum.EDITED?'0px 3px 0px 0px rgba(55,144,215,0.18)':''}
background='#f3f3f3'
/>
) : <></>
}
{
generateStatus == GenerateStatus.PENDING ? (
<CardProjLoading title="正在排队"
desc="资料正在排队"
duration={generateEmainingTime}
handleCountDownOver={() => {
setTimeout(() => {
window.location.reload();
}, 1000)
}}
desc="资料正在排队"
duration={generateEmainingTime}
handleCountDownOver={() => {
setTimeout(() => {
window.location.reload();
}, 1000)
}}
/>
) : <></>
}
{
generateStatus == GenerateStatus.GENERATING ? (
<CardProjLoading title="正在生成"
desc="资料正在生成,点击刷新"
duration={generateEmainingTime}
handleClick={() => {
renderData();
}}
handleCountDownOver={() => {
renderData();
}}
desc="资料正在生成,点击刷新"
duration={generateEmainingTime}
handleClick={() => {
renderData();
}}
handleCountDownOver={() => {
renderData();
}}
/>
) : <></>
@ -358,45 +358,45 @@ export default function ProjEdit() {
{
generateStatus == GenerateStatus.FAILED ? (
<CardProjResult title="生成失败"
isSuccess={false}
handleFeedback={() => {
setGenerateErrorModal(true);
console.log('反馈')
}}
isSuccess={false}
handleFeedback={() => {
setGenerateErrorModal(true);
console.log('反馈')
}}
/>
) : <></>
}
</StepProjEdit>
<StepProjEdit step={4}
process={generateStatus == GenerateStatus.SUCCESS ? Process.PROCESSING : Process.PENDING}
descTitle="资料下载">
process={generateStatus == GenerateStatus.SUCCESS ? Process.PROCESSING : Process.PENDING}
descTitle="资料下载">
<CardProjDownload title="申请表"
desc="点击下载申请表"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/apply/${pathParams.projId}`)
}}
desc="点击下载申请表"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/apply/${pathParams.projId}`)
}}
/>
<CardProjDownload title="操作手册"
desc="点击下载操作手册"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/manual/${pathParams.projId}`)
}}
desc="点击下载操作手册"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/manual/${pathParams.projId}`)
}}
/>
<CardProjDownload title="代码压缩包"
desc="点击下载代码压缩包"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code-zip/${pathParams.projId}`)
}}
desc="点击下载代码压缩包"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code-zip/${pathParams.projId}`)
}}
/>
<CardProjDownload title="代码文档"
desc="点击下载代码文档"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code/${pathParams.projId}`)
}}
desc="点击下载代码文档"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code/${pathParams.projId}`)
}}
/>
{/*<CardProjJump title="找代理"*/}
{/* desc="到软著代理完成软著申请"*/}
@ -409,67 +409,69 @@ export default function ProjEdit() {
<div className="btn-container">
<Button size="large" style={{
width: '200px',
fontSize: '14px',
backgroundColor: 'var(--color-primary)',
color: 'var(--color-light)'
height:'40px',
fontSize: '16px',
backgroundColor: '#e9e7e7',
color: '#A0A0A0',
border:'none',
}} onClick={() => {
nav(-1);
}}></Button>
</div>
<FloatButton.Group>
<FloatButton
onClick={() => {setAiHelperModalOpen(true)}}
description={<span style={{fontWeight: 'bold'}}>AI</span>}
onClick={() => { setAiHelperModalOpen(true) }}
description={<span style={{ fontWeight: 'bold' }}>AI</span>}
>AI助手</FloatButton>
</FloatButton.Group>
<Modal title="提示"
okText="确定"
cancelText="取消"
open={isGenerateModalOpen}
onOk={() => {
post({
messageApi,
url: `/api/proj/generate/proj-id/${pathParams.projId}`,
body: {},
onSuccess() {
messageApi.success('提交成功');
setIsGenerateModalOpen(false);
renderData();
}
})
}}
onCancel={() => {
setIsGenerateModalOpen(false);
}}>
okText="确定"
cancelText="取消"
open={isGenerateModalOpen}
onOk={() => {
post({
messageApi,
url: `/api/proj/generate/proj-id/${pathParams.projId}`,
body: {},
onSuccess() {
messageApi.success('提交成功');
setIsGenerateModalOpen(false);
renderData();
}
})
}}
onCancel={() => {
setIsGenerateModalOpen(false);
}}>
<div>便</div>
</Modal>
<Modal open={generateErrorModal}
title="出错信息"
okText="确定"
cancelText={false}
footer={false}
okButtonProps={{
style: {
backgroundColor: 'var(--color-primary)',
}
}}
onCancel={() => {
setGenerateErrorModal(false)
}}
title="出错信息"
okText="确定"
cancelText={false}
footer={false}
okButtonProps={{
style: {
backgroundColor: 'var(--color-primary)',
}
}}
onCancel={() => {
setGenerateErrorModal(false)
}}
>
<p style={{color: 'var(--color-red)'}}>{generateErrorMsg}</p>
<p style={{ color: 'var(--color-red)' }}>{generateErrorMsg}</p>
</Modal>
<Modal open={aiHelperModalOpen}
title="AI助手"
width={1200}
footer={false}
maskClosable={false}
destroyOnClose
onCancel={() => {
setAiHelperModalOpen(false);
renderData()
}}
title="AI助手"
width={1200}
footer={false}
maskClosable={false}
destroyOnClose
onCancel={() => {
setAiHelperModalOpen(false);
renderData()
}}
>
<AiHelper
projId={aiHelper.projId}

View File

@ -236,7 +236,7 @@ export default function ProjEdit() {
desc={item.desc}
btnName={item.btnName}
canBtnClick={isEditStepEdited}
status={item.status}
status={item.status}
handleEdit={item.handleEdit}
/>
})

View File

@ -15,5 +15,4 @@
padding: 5px 0 15px 0;
text-align: center;
background-color: var(--color-light);
}

View File

@ -3,7 +3,8 @@ import type {MessageInstance} from "antd/es/message/interface";
export const Axios = axios;
axios.defaults.baseURL = 'http://192.168.0.163:7025/copyright';
// axios.defaults.baseURL = 'http://192.168.0.163:7025/copyright';
axios.defaults.baseURL = 'http://192.168.0.15:7025/copyright';
// axios.defaults.baseURL = '/copyright';
export const WebSocketBaseUrl: string = 'ws://192.168.0.163:7025/copyright';
// export const WebSocketBaseUrl: string = '/copyright';