diff --git a/src/components/card/CardProjDownload.tsx b/src/components/card/CardProjDownload.tsx
index ea201bf..5167df9 100644
--- a/src/components/card/CardProjDownload.tsx
+++ b/src/components/card/CardProjDownload.tsx
@@ -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 (
-
-
{props.title}
-
{props.desc}
-
- {
- props.canBtnClick ? (
-
{
- e.preventDefault();
- props.handleDownload();
- }}>下载
- ) : (
-
{
- e.preventDefault();
- }}>下载
- )
- }
+ //
+
)
diff --git a/src/components/card/CardProjJump.tsx b/src/components/card/CardProjJump.tsx
index ae01a4b..207e35e 100644
--- a/src/components/card/CardProjJump.tsx
+++ b/src/components/card/CardProjJump.tsx
@@ -15,6 +15,8 @@ export default function CardProjJump(props: IProjJump) {
{props.desc}
+
+
)
}
\ No newline at end of file
diff --git a/src/components/card/card-proj-agent.css b/src/components/card/card-proj-agent.css
index 0a64957..2d62498 100644
--- a/src/components/card/card-proj-agent.css
+++ b/src/components/card/card-proj-agent.css
@@ -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;
}
-
+ */
diff --git a/src/components/card/card-proj-download.css b/src/components/card/card-proj-download.css
index dfd6928..248ceec 100644
--- a/src/components/card/card-proj-download.css
+++ b/src/components/card/card-proj-download.css
@@ -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;
}
\ No newline at end of file
diff --git a/src/components/card/card-proj-edit.css b/src/components/card/card-proj-edit.css
index abaf0db..7f9b006 100644
--- a/src/components/card/card-proj-edit.css
+++ b/src/components/card/card-proj-edit.css
@@ -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;
diff --git a/src/components/card/card-proj-jump.css b/src/components/card/card-proj-jump.css
index 4e1fa57..8972d09 100644
--- a/src/components/card/card-proj-jump.css
+++ b/src/components/card/card-proj-jump.css
@@ -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;
}
\ No newline at end of file
diff --git a/src/components/card/card-proj-loading.css b/src/components/card/card-proj-loading.css
index a781f03..9640df2 100644
--- a/src/components/card/card-proj-loading.css
+++ b/src/components/card/card-proj-loading.css
@@ -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 {
diff --git a/src/components/card/card-proj-result.css b/src/components/card/card-proj-result.css
index c0d4c23..2d027bc 100644
--- a/src/components/card/card-proj-result.css
+++ b/src/components/card/card-proj-result.css
@@ -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;
}
diff --git a/src/components/list/ListProjAgent.tsx b/src/components/list/ListProjAgent.tsx
index ee3873e..9577575 100644
--- a/src/components/list/ListProjAgent.tsx
+++ b/src/components/list/ListProjAgent.tsx
@@ -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
([]);
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 代理:全部项目
- } else if (indexListContext.status == 'PROCESSING') {
- return 代理:进行中的
- } else if (indexListContext.status == 'COMPLETE') {
- return 代理:已完成的
- }
- return <>>
- }
+ // const renderStatus = () => {
+ // if (indexListContext.status == 'ALL') {
+ // return 代理:全部项目
+ // } else if (indexListContext.status == 'PROCESSING') {
+ // return 代理:进行中的
+ // } else if (indexListContext.status == 'COMPLETE') {
+ // return 代理:已完成的
+ // }
+ // return <>>
+ // }
const renderList = () => {
if(agents.length == 0) {
@@ -101,12 +103,12 @@ export default function ListProjAgent() {
return (
<>
-
+ {/*
{renderStatus()}
{
setKeywords(value)
}} style={{width: 200}}/>
-
+
*/}
{renderList()}
diff --git a/src/route/Home/Home.tsx b/src/route/Home/Home.tsx
index 20a25ad..2511cb3 100644
--- a/src/route/Home/Home.tsx
+++ b/src/route/Home/Home.tsx
@@ -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() {
diff --git a/src/route/proj/ProjEdit.tsx b/src/route/proj/ProjEdit.tsx
index a5f653d..5014c73 100644
--- a/src/route/proj/ProjEdit.tsx
+++ b/src/route/proj/ProjEdit.tsx
@@ -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({
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 (
{contextHolder}
@@ -247,19 +247,19 @@ export default function ProjEdit() {
{/*
*/}
+ descTitle="完善信息"
+ descDetail="完善项目的基本信息"
+ hasNext={true}>
{
editStepArray.map((item, index) => {
return
})
}
@@ -267,20 +267,20 @@ export default function ProjEdit() {
{/*trueisEditStepEdited*/}
+ process={!isEditStepEdited ? Process.PENDING : (isConfigEdited ? Process.COMPLETE : Process.PROCESSING)}
+ descTitle="功能设置"
+ descDetail="设置系统的菜单功能" hasNext={true}>
{
configArray.map((item, index) => {
return
})
@@ -288,62 +288,62 @@ export default function ProjEdit() {
{
isEditStepEdited && isConfigEdited ? (
{
- window.open(`${Axios.defaults?.baseURL}/${previewUrl}`, '_blank')
- }}
+ desc="点击查看预览系统"
+ canBtnClick={true}
+ handleJump={() => {
+ window.open(`${Axios.defaults?.baseURL}/${previewUrl}`, '_blank')
+ }}
/>
) : <>>
}
+ process={generateStatus == GenerateStatus.SUCCESS ? Process.COMPLETE : (canGenerate ? Process.PROCESSING : Process.PENDING)}
+ descTitle="资料生成"
+ hasNext={true}>
{
generateStatus == GenerateStatus.NONE || generateStatus == GenerateStatus.FAILED ? (
{
- 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 ? (
{
- setTimeout(() => {
- window.location.reload();
- }, 1000)
- }}
+ desc="资料正在排队"
+ duration={generateEmainingTime}
+ handleCountDownOver={() => {
+ setTimeout(() => {
+ window.location.reload();
+ }, 1000)
+ }}
/>
) : <>>
}
{
generateStatus == GenerateStatus.GENERATING ? (
{
- renderData();
- }}
- handleCountDownOver={() => {
- renderData();
- }}
+ desc="资料正在生成,点击刷新"
+ duration={generateEmainingTime}
+ handleClick={() => {
+ renderData();
+ }}
+ handleCountDownOver={() => {
+ renderData();
+ }}
/>
) : <>>
@@ -358,45 +358,45 @@ export default function ProjEdit() {
{
generateStatus == GenerateStatus.FAILED ? (
{
- setGenerateErrorModal(true);
- console.log('反馈')
- }}
+ isSuccess={false}
+ handleFeedback={() => {
+ setGenerateErrorModal(true);
+ console.log('反馈')
+ }}
/>
) : <>>
}
+ process={generateStatus == GenerateStatus.SUCCESS ? Process.PROCESSING : Process.PENDING}
+ descTitle="资料下载">
{
- 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}`)
+ }}
/>
{
- 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}`)
+ }}
/>
{
- 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}`)
+ }}
/>
{
- 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}`)
+ }}
/>
{/*
{setAiHelperModalOpen(true)}}
- description={AI}
+ onClick={() => { setAiHelperModalOpen(true) }}
+ description={AI}
>AI助手
{
- 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);
+ }}>
点击“确定按钮”后,项目便无法再次修改,建议通过预览查看系统,确认无误后点击“确定按钮”。
{
- setGenerateErrorModal(false)
- }}
+ title="出错信息"
+ okText="确定"
+ cancelText={false}
+ footer={false}
+ okButtonProps={{
+ style: {
+ backgroundColor: 'var(--color-primary)',
+ }
+ }}
+ onCancel={() => {
+ setGenerateErrorModal(false)
+ }}
>
- {generateErrorMsg}
+ {generateErrorMsg}
{
- setAiHelperModalOpen(false);
- renderData()
- }}
+ title="AI助手"
+ width={1200}
+ footer={false}
+ maskClosable={false}
+ destroyOnClose
+ onCancel={() => {
+ setAiHelperModalOpen(false);
+ renderData()
+ }}
>
})
diff --git a/src/route/proj/proj-edit.css b/src/route/proj/proj-edit.css
index b35caa4..dfd1580 100644
--- a/src/route/proj/proj-edit.css
+++ b/src/route/proj/proj-edit.css
@@ -15,5 +15,4 @@
padding: 5px 0 15px 0;
text-align: center;
background-color: var(--color-light);
-
}
diff --git a/src/util/AjaxUtils.ts b/src/util/AjaxUtils.ts
index ca00b06..6603500 100644
--- a/src/util/AjaxUtils.ts
+++ b/src/util/AjaxUtils.ts
@@ -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';