From 94d3198c1ad43ab38057b321fcc1df9310223d7c Mon Sep 17 00:00:00 2001 From: WenC <450292408@qq.com> Date: Fri, 12 Apr 2024 18:18:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/card/CardProj.tsx | 24 +- src/components/card/CardProjJump.tsx | 5 +- src/components/card/card-proj-jump.css | 2 +- src/components/modfield/ModField.tsx | 8 +- src/context/GlobalContext.ts | 1 - src/interfaces/card/ICardProj.ts | 1 + src/route/agent/AgentSelect.tsx | 2 +- src/route/proj/ProjEditAll.tsx | 222 +----------- src/route/proj/ProjEditFree.tsx | 315 ++++++++++++++++++ src/route/proj/ProjNew.tsx | 8 +- src/route/proj/edit/ProjConfigLoginpage.tsx | 2 +- .../proj/edit/ProjConfigLoginpageShow.tsx | 5 +- src/route/proj/edit/ProjConfigMenuList.tsx | 7 +- .../proj/edit/ProjConfigMenuListShow.tsx | 6 +- src/route/proj/edit/ProjConfigModEdit.tsx | 27 +- src/route/proj/edit/ProjConfigModList.tsx | 43 ++- src/route/proj/edit/ProjConfigModListShow.tsx | 4 +- src/route/proj/edit/ProjConfigModSave.tsx | 44 ++- src/route/proj/edit/ProjConfigModShow.tsx | 27 +- src/route/proj/edit/ProjEditStep1.tsx | 5 +- src/route/proj/edit/ProjEditStep1Show.tsx | 5 +- src/route/proj/edit/ProjEditStep2.tsx | 2 +- src/route/proj/edit/ProjEditStep2Show.tsx | 5 +- src/route/proj/edit/ProjEditStep3.tsx | 2 +- src/route/proj/edit/ProjEditStep3Show.tsx | 5 +- src/route/proj/edit/ProjEditStep4.tsx | 2 +- src/route/proj/edit/ProjEditStep4Show.tsx | 5 +- src/route/proj/edit/ProjEditStep5.tsx | 2 +- src/route/proj/edit/ProjEditStep5Show.tsx | 5 +- src/route/proj/edit/ProjEditStep6.tsx | 2 +- src/route/proj/edit/ProjEditStep6Show.tsx | 5 +- src/route/router.tsx | 28 +- src/util/AjaxUtils.ts | 4 +- src/util/CommonUtil.ts | 30 +- 34 files changed, 569 insertions(+), 291 deletions(-) create mode 100644 src/route/proj/ProjEditFree.tsx diff --git a/src/components/card/CardProj.tsx b/src/components/card/CardProj.tsx index b2f8478..731a02f 100644 --- a/src/components/card/CardProj.tsx +++ b/src/components/card/CardProj.tsx @@ -26,6 +26,7 @@ export default function CardProj(props: { item: IProj }) { const [messageApi, messageContext] = useMessage(); const [projCategoryId, setProjCategoryId] = useState(data.projCategoryId); const [projCategoryName, setProjCategoryName] = useState(data.projCategoryName); + const [charge, setCharge] = useState(''); const [payCharge, setPayCharge] = useState(''); const indexListContext = useContext(IndexListContext); @@ -109,6 +110,16 @@ export default function CardProj(props: { item: IProj }) { ) } + const goEdit = () => { + if(charge == ProjChargeType.ALL) { + nav(`/proj-eall/${data.projId}`); + } else if(charge == ProjChargeType.FREE) { + nav(`/proj-efree/${data.projId}`); + } else { + nav(`/proj-edit/${data.projId}`); + } + } + useEffect(() => { const charge = props.item.pay.charge.split(':')[0]; let chargeName = ''; @@ -123,6 +134,7 @@ export default function CardProj(props: { item: IProj }) { } else { chargeName = '免费试用'; } + setCharge(charge) setPayCharge(chargeName); }, []) @@ -131,9 +143,7 @@ export default function CardProj(props: { item: IProj }) {
- { - nav(`/proj-edit/${data.projId}`) - }}>{data.projName} + {data.projName}
上下文:{data.projContext} @@ -153,16 +163,12 @@ export default function CardProj(props: { item: IProj }) { data.generate.generateStatus == GenerateStatus.SUCCESS ? ( - { - nav(`/proj-edit/${data.projId}`) - }}>查看 + 查看 ) : ( - { - nav(`/proj-edit/${data.projId}`) - }}>编辑 + 编辑 ) } diff --git a/src/components/card/CardProjJump.tsx b/src/components/card/CardProjJump.tsx index 4a1b73e..ae01a4b 100644 --- a/src/components/card/CardProjJump.tsx +++ b/src/components/card/CardProjJump.tsx @@ -5,11 +5,14 @@ import {IProjJump} from "../../interfaces/card/ICardProj.ts"; export default function CardProjJump(props: IProjJump) { return (
{ + if(!props.canBtnClick) { + return; + } props.handleJump(); }}>
{props.title} - +
{props.desc}
diff --git a/src/components/card/card-proj-jump.css b/src/components/card/card-proj-jump.css index a3bea68..4e1fa57 100644 --- a/src/components/card/card-proj-jump.css +++ b/src/components/card/card-proj-jump.css @@ -13,7 +13,7 @@ } .card-proj-jump .desc { - margin: 5px 0 10px 0; + margin: 15px 0 5px 0; max-height: 36px; line-height: 18px; color: var(--color-note); diff --git a/src/components/modfield/ModField.tsx b/src/components/modfield/ModField.tsx index e91e059..afd084c 100644 --- a/src/components/modfield/ModField.tsx +++ b/src/components/modfield/ModField.tsx @@ -3,6 +3,7 @@ import {Alert, Button, Input, message, Table, TableProps} from "antd"; import {useEffect, useState} from "react"; import {DeleteOutlined, PlusOutlined} from "@ant-design/icons"; import {pinyin} from "pinyin-pro"; +import {uuid} from "../../util/CommonUtil.ts"; export interface IModField { projModFieldId: string; @@ -15,6 +16,7 @@ interface PropsType { scrollHeight?: number; modFiledArray?: IModField[]; isEdit?: boolean; + isFree?: boolean; handleChange?(modFieldArray: undefined | IModField[]): void; } @@ -119,10 +121,14 @@ export default function ModField(props: PropsType) { props.isEdit ? (
- { - post({ - messageApi, - url: `/api/proj/generate/proj-id/${pathParams.projId}`, - body: {}, - onSuccess() { - messageApi.success('提交成功'); - setIsGenerateModalOpen(false); - renderData(); - } - }) - }} - onCancel={() => { - setIsGenerateModalOpen(false); - }}> -
点击“确定按钮”后,项目便无法再次修改,建议通过预览查看系统,确认无误后点击“确定按钮”。
-
) } \ No newline at end of file diff --git a/src/route/proj/ProjEditFree.tsx b/src/route/proj/ProjEditFree.tsx new file mode 100644 index 0000000..19a346b --- /dev/null +++ b/src/route/proj/ProjEditFree.tsx @@ -0,0 +1,315 @@ +import './proj-edit.css'; +import {Link, useNavigate, useParams} from "react-router-dom"; +import {Breadcrumb, Button, message} from "antd"; +import StepProjEdit from "../../components/step/StepProjEdit.tsx"; +import CardProjEdit from "../../components/card/CardProjEdit.tsx"; +import {Process} from "../../interfaces/step/IStepProj.ts"; +import CardProjDownload from "../../components/card/CardProjDownload.tsx"; +import CardProjJump from "../../components/card/CardProjJump.tsx"; +import {useEffect, useState} from "react"; +import {Axios, get} from "../../util/AjaxUtils.ts"; +import {EditStepEnum, IProjEdit} from "../../interfaces/card/ICardProj.ts"; +import {MAX_MOD_SIZE_FREE} from "./edit/ProjConfigModList.tsx"; +import {GenerateStatus} from "../../interfaces/proj/IProj.ts"; + +export default function ProjEdit() { + const nav = useNavigate(); + const pathParams = useParams(); + + const [messageApi, contextHolder] = message.useMessage(); + const [editStepArray, setEditStepArray] = useState([]); + const [configArray, setConfigArray] = useState([]); + const [isEditStepEdited, setIsEditStepEdited] = useState(false); + const [isConfigEdited, setIsConfigEdited] = useState(false); + const [canGenerate, setCanGenerate] = useState(false); + const [generateStatus, setGenerateStatus] = useState(GenerateStatus.NONE); + const [previewUrl, setPreviewUrl] = useState(''); + + const height = window.innerHeight - 240; + + const renderEditStep = (editSteps: any[], isEdited: boolean, isGenerateSuccess: boolean) => { + const editStepArray: IProjEdit[] = []; + editStepArray.push( + { + title: '标题简介', + desc: '完善代码、样式类型和详细介绍等内容', + step: 1, + btnName: !isGenerateSuccess ? '设置' : '查看', + status: editSteps[0].editStatus, + handleEdit() { + if (!isGenerateSuccess) { + nav(`/proj-edit/step1/${pathParams.projId}`) + } else { + nav(`/proj-edit/step1-show/${pathParams.projId}`) + } + } + }, + { + title: '基本信息', + desc: '完善项目简介、编程语言、版本、公司等内容', + step: 2, + btnName: !isGenerateSuccess ? '设置' : '查看', + status: editSteps[1].editStatus, + canBtnClick: false, + handleEdit() { + if (generateStatus != GenerateStatus.SUCCESS) { + nav(`/proj-edit/step2/${pathParams.projId}`) + } else { + nav(`/proj-edit/step2-show/${pathParams.projId}`) + } + } + }, + { + title: '软件功能特点', + desc: '请完善软件功能特点', + step: 3, + btnName: !isGenerateSuccess ? '设置' : '查看', + status: editSteps[2].editStatus, + canBtnClick: false, + handleEdit() { + if (!isGenerateSuccess) { + nav(`/proj-edit/step3/${pathParams.projId}`) + } else { + nav(`/proj-edit/step3-show/${pathParams.projId}`) + } + } + }, + { + title: '著作人信息', + desc: '请完善著作人相关信息', + step: 4, + btnName: !isGenerateSuccess ? '设置' : '查看', + status: editSteps[3].editStatus, + canBtnClick: false, + handleEdit() { + if (!isGenerateSuccess) { + nav(`/proj-edit/step4/${pathParams.projId}`) + } else { + nav(`/proj-edit/step4-show/${pathParams.projId}`) + } + } + }, + { + title: '申请人信息', + desc: '请完善申请人信息', + step: 5, + btnName: !isGenerateSuccess ? '设置' : '查看', + status: editSteps[4].editStatus, + canBtnClick: false, + handleEdit() { + if (!isGenerateSuccess) { + nav(`/proj-edit/step5/${pathParams.projId}`) + } else { + nav(`/proj-edit/step5-show/${pathParams.projId}`) + } + } + }, + { + title: '选择登录页面', + desc: '选择软件的登录页面模板', + step: 6, + btnName: !isGenerateSuccess ? '设置' : '查看', + status: editSteps[5].editStatus, + handleEdit() { + if (!isGenerateSuccess) { + nav(`/proj-edit/step6/${pathParams.projId}`) + } else { + nav(`/proj-edit/step6-show/${pathParams.projId}`) + } + } + } + ) + setEditStepArray(editStepArray); + setIsEditStepEdited(isEdited); + } + + const renderSetting = (data: any, isConfig: boolean, isGenerateSuccess: boolean) => { + const configArray: IProjEdit[] = []; + configArray.push( + { + title: '登录界面设置', + desc: '请对登录界面完成个性化设置', + step: 1, + btnName: !isGenerateSuccess ? '设置' : '查看', + status: data.loginpage.loginpageId ? EditStepEnum.EDITED : EditStepEnum.UN_EDIT, + handleEdit() { + if (!isGenerateSuccess) { + nav(`/proj-edit/config-loginpage/${pathParams.projId}`) + } else { + nav(`/proj-edit/config-loginpage-show/${pathParams.projId}`) + } + } + }, + { + title: '系统菜单管理', + desc: '请对系统菜单进行设置', + step: 2, + btnName: !isGenerateSuccess ? '设置' : '查看', + status: data.projModCount > MAX_MOD_SIZE_FREE ? EditStepEnum.EDITED : EditStepEnum.UN_EDIT, + handleEdit() { + if (!isGenerateSuccess) { + nav(`/proj-edit/config-mod-flist/${pathParams.projId}`) + } else { + nav(`/proj-edit/config-mod-flist-show/${pathParams.projId}`) + } + } + }, + { + title: '菜单顺序', + desc: '调整菜单顺序', + step: 3, + btnName: !isGenerateSuccess ? '设置' : '查看', + status: data.projModCount > MAX_MOD_SIZE_FREE ? EditStepEnum.EDITED : EditStepEnum.UN_EDIT, + handleEdit() { + if (!isGenerateSuccess) { + nav(`/proj-edit/config-menu-list/${pathParams.projId}`) + } else { + nav(`/proj-edit/config-menu-list-show/${pathParams.projId}`) + } + } + } + ) + setConfigArray(configArray); + setIsConfigEdited(isConfig); + } + + const renderData = () => { + get({ + messageApi: messageApi, + url: `/api/proj/get/${pathParams.projId}`, + onSuccess({data}) { + const isEdited = data.editSteps[0].editStatus == EditStepEnum.EDITED + && data.editSteps[5].editStatus == EditStepEnum.EDITED; + const isConfig = data.loginpage.loginpageId && data.projModCount > MAX_MOD_SIZE_FREE; + const isGenerate = isEdited && isConfig; + const isGenerateSuccess: boolean = data.generate.generateStatus == GenerateStatus.SUCCESS; + renderEditStep(data.editSteps, isEdited, isGenerateSuccess); + renderSetting(data, isConfig, isGenerateSuccess); + setCanGenerate(isGenerate); + setGenerateStatus(data.generate.generateStatus); + setPreviewUrl(data.previewUrl); + } + }) + } + + useEffect(() => { + renderData(); + }, []) + + return ( + <> + {contextHolder} + 首页}, + {title: 创建项目}, + {title: '编辑项目'}, + ]} + /> +
+ + { + editStepArray.map((item, index) => { + return + }) + } + + + + { + configArray.map((item, index) => { + return + }) + } + { + isEditStepEdited && isConfigEdited ? ( + { + window.open(`${Axios.defaults?.baseURL}/${previewUrl}`, '_blank') + }} + /> + ) : <> + } + + + { + generateStatus == GenerateStatus.NONE || generateStatus == GenerateStatus.FAILED ? ( + {}} + /> + ) : <> + } + + + + + {}} + /> + {}} + /> + {}} + /> + {}} + /> + {}} + /> + +
+
+ +
+ + ) +} \ No newline at end of file diff --git a/src/route/proj/ProjNew.tsx b/src/route/proj/ProjNew.tsx index 9d6118d..e34dd71 100644 --- a/src/route/proj/ProjNew.tsx +++ b/src/route/proj/ProjNew.tsx @@ -176,7 +176,13 @@ export default function ProjNew() { cancelText="取消" open={isEditModalOpen} onOk={() => { - nav(`/proj-edit/${createProjId}`); + if(pathParams.projChargeType == ProjChargeType.ALL) { + nav(`/proj-eall/${createProjId}`); + } else if(pathParams.projChargeType == ProjChargeType.FREE) { + nav(`/proj-efree/${createProjId}`); + } else { + nav(`/proj-edit/${createProjId}`); + } }} onCancel={() => { setIsEditModalOpen(false); diff --git a/src/route/proj/edit/ProjConfigLoginpage.tsx b/src/route/proj/edit/ProjConfigLoginpage.tsx index 4c59285..1f0e98c 100644 --- a/src/route/proj/edit/ProjConfigLoginpage.tsx +++ b/src/route/proj/edit/ProjConfigLoginpage.tsx @@ -121,7 +121,7 @@ export default function ProjConfigLoginpage() { items={[ {title: 首页}, {title: 创建项目}, - {title: 编辑项目}, + {title: {nav(-1)}}>编辑项目}, {title: '登录界面设置'}, ]} /> diff --git a/src/route/proj/edit/ProjConfigLoginpageShow.tsx b/src/route/proj/edit/ProjConfigLoginpageShow.tsx index af71773..15117f3 100644 --- a/src/route/proj/edit/ProjConfigLoginpageShow.tsx +++ b/src/route/proj/edit/ProjConfigLoginpageShow.tsx @@ -13,7 +13,7 @@ import { UploadFile, UploadProps } from "antd"; -import {Link, useParams} from "react-router-dom"; +import {Link, useNavigate, useParams} from "react-router-dom"; import {useEffect, useState} from "react"; import {DevUserId, downloadUrl, get, post, uploadImageUrl} from "../../../util/AjaxUtils.ts"; @@ -31,6 +31,7 @@ type FormFieldType = { type FileType = Parameters>[0]; export default function ProjConfigLoginpageShow() { + const nav = useNavigate(); const pathParams = useParams(); const [messageApi, contextHolder] = message.useMessage(); const [form] = Form.useForm(); @@ -116,7 +117,7 @@ export default function ProjConfigLoginpageShow() { items={[ {title: 首页}, {title: 创建项目}, - {title: 编辑项目}, + {title: {nav(-1)}}>编辑项目}, {title: '登录界面设置'}, ]} /> diff --git a/src/route/proj/edit/ProjConfigMenuList.tsx b/src/route/proj/edit/ProjConfigMenuList.tsx index d37e5eb..be90f8f 100644 --- a/src/route/proj/edit/ProjConfigMenuList.tsx +++ b/src/route/proj/edit/ProjConfigMenuList.tsx @@ -5,10 +5,9 @@ import { message, Table, TableProps, } from "antd"; -import {Link, useParams} from "react-router-dom"; +import {Link, useNavigate, useParams} from "react-router-dom"; import {useEffect, useState} from "react"; import {get, put} from "../../../util/AjaxUtils.ts"; -export const MAX_MOD_SIZE = 2; interface DataType { projModId: string; @@ -21,7 +20,7 @@ interface DataType { } export default function ProjConfigMenuList() { - + const nav = useNavigate(); const pathParams = useParams(); const [messageApi, contextHolder] = message.useMessage(); const [dataArray, setDataArray] = useState(); @@ -91,7 +90,7 @@ export default function ProjConfigMenuList() { items={[ {title: 首页}, {title: 创建项目}, - {title: 编辑项目}, + {title: {nav(-1)}}>编辑项目}, {title: '系统菜单顺序'}, ]} /> diff --git a/src/route/proj/edit/ProjConfigMenuListShow.tsx b/src/route/proj/edit/ProjConfigMenuListShow.tsx index 028dac3..64725cc 100644 --- a/src/route/proj/edit/ProjConfigMenuListShow.tsx +++ b/src/route/proj/edit/ProjConfigMenuListShow.tsx @@ -1,6 +1,6 @@ import './proj-config-list-mod.css'; import {Alert, Breadcrumb, message, Table, TableProps,} from "antd"; -import {Link, useParams} from "react-router-dom"; +import {Link, useNavigate, useParams} from "react-router-dom"; import {useEffect, useState} from "react"; import {get} from "../../../util/AjaxUtils.ts"; @@ -17,7 +17,7 @@ interface DataType { } export default function ProjConfigMenuListShow() { - + const nav = useNavigate(); const pathParams = useParams(); const [messageApi, contextHolder] = message.useMessage(); const [dataArray, setDataArray] = useState(); @@ -70,7 +70,7 @@ export default function ProjConfigMenuListShow() { items={[ {title: 首页}, {title: 创建项目}, - {title: 编辑项目}, + {title: {nav(-1)}}>编辑项目}, {title: '系统菜单顺序'}, ]} /> diff --git a/src/route/proj/edit/ProjConfigModEdit.tsx b/src/route/proj/edit/ProjConfigModEdit.tsx index 3da5c71..e7dbcef 100644 --- a/src/route/proj/edit/ProjConfigModEdit.tsx +++ b/src/route/proj/edit/ProjConfigModEdit.tsx @@ -9,6 +9,7 @@ import {useEffect, useState} from "react"; import FaiconSelect from "../../../components/faicon/FaIconSelect.tsx"; import ModField, {IModField} from "../../../components/modfield/ModField.tsx"; import {get, put} from "../../../util/AjaxUtils.ts"; +import {MAX_MOD_SIZE, MAX_MOD_SIZE_FREE, MIN_MOD_SIZE, MIN_MOD_SIZE_FREE} from "./ProjConfigModList.tsx"; type FormFieldType = { projId: string; @@ -18,7 +19,11 @@ type FormFieldType = { fields: IModField[]; } -export default function ProjConfigModEdit() { +type PropsType = { + isFree?: boolean; +} + +export default function ProjConfigModEdit(props: PropsType) { const nav = useNavigate(); const pathParams = useParams(); const [messageApi, contextHolder] = message.useMessage(); @@ -28,6 +33,8 @@ export default function ProjConfigModEdit() { const [isEditModalOpen, setIsEditModalOpen] = useState(false); const [selectedModIcon, setSelectedModIcon] = useState('fa fa-list'); const [fields, setFields] = useState([]); + const minSize = props.isFree ? MIN_MOD_SIZE_FREE : MIN_MOD_SIZE; + const maxSize = props.isFree ? MAX_MOD_SIZE_FREE : MAX_MOD_SIZE; const height = window.innerHeight - 180; @@ -56,13 +63,25 @@ export default function ProjConfigModEdit() { items={[ {title: 首页}, {title: 创建项目}, - {title: 编辑项目}, - {title: 系统菜单管理}, + { + title: { + if(props.isFree) { + nav(`/proj-efree/${pathParams.projId}`) + } else { + `/proj-edit/${pathParams.projId}` + } + }}>编辑项目 + }, + { + title: { + nav(-1); + }}>系统菜单管理 + }, {title: '编辑菜单'}, ]} />
- +
(); const [modSize, setModSize] = useState(0); + const minSize = props.isFree ? MIN_MOD_SIZE_FREE : MIN_MOD_SIZE; + const maxSize = props.isFree ? MAX_MOD_SIZE_FREE : MAX_MOD_SIZE; const height = window.innerHeight - 165; @@ -88,11 +97,15 @@ export default function ProjConfigModList() { return ( <> { - modSize < MAX_MOD_SIZE ? ( + modSize < maxSize ? ( @@ -100,7 +113,11 @@ export default function ProjConfigModList() { @@ -136,18 +153,26 @@ export default function ProjConfigModList() { items={[ {title: 首页}, {title: 创建项目}, - {title: 编辑项目}, + { + title: { + nav(-1) + }}>编辑项目 + }, {title: '系统菜单管理'}, ]} />
- +
{ - modSize < MAX_MOD_SIZE ? ( + modSize < maxSize ? ( ) : <> } diff --git a/src/route/proj/edit/ProjConfigModListShow.tsx b/src/route/proj/edit/ProjConfigModListShow.tsx index 69e0874..7245885 100644 --- a/src/route/proj/edit/ProjConfigModListShow.tsx +++ b/src/route/proj/edit/ProjConfigModListShow.tsx @@ -10,8 +10,6 @@ import {useEffect, useState} from "react"; import {SearchOutlined} from "@ant-design/icons"; import {get} from "../../../util/AjaxUtils.ts"; -export const MAX_MOD_SIZE = 15; - interface DataType { projModId: string; projId: string; @@ -109,7 +107,7 @@ export default function ProjConfigModListShow() { items={[ {title: 首页}, {title: 创建项目}, - {title: 编辑项目}, + {title: {nav(-1)}}>编辑项目}, {title: '系统菜单查看'}, ]} /> diff --git a/src/route/proj/edit/ProjConfigModSave.tsx b/src/route/proj/edit/ProjConfigModSave.tsx index f4b457d..aa4abb0 100644 --- a/src/route/proj/edit/ProjConfigModSave.tsx +++ b/src/route/proj/edit/ProjConfigModSave.tsx @@ -9,6 +9,7 @@ import {useEffect, useState} from "react"; import FaiconSelect from "../../../components/faicon/FaIconSelect.tsx"; import ModField, {IModField} from "../../../components/modfield/ModField.tsx"; import {post} from "../../../util/AjaxUtils.ts"; +import {MAX_MOD_SIZE, MAX_MOD_SIZE_FREE, MIN_MOD_SIZE, MIN_MOD_SIZE_FREE} from "./ProjConfigModList.tsx"; type FormFieldType = { modName: string; @@ -17,7 +18,11 @@ type FormFieldType = { fields: IModField[]; } -export default function ProjConfigModSave() { +type PropsType = { + isFree?: boolean; +} + +export default function ProjConfigModSave(props: PropsType) { const nav = useNavigate(); const pathParams = useParams(); const [messageApi, contextHolder] = message.useMessage(); @@ -26,6 +31,8 @@ export default function ProjConfigModSave() { const [isModIconModalOpen, setIsModIconModalOpen] = useState(false); const [isEditModalOpen, setIsEditModalOpen] = useState(false); const [selectedModIcon, setSelectedModIcon] = useState('fa fa-list'); + const minSize = props.isFree ? MIN_MOD_SIZE_FREE : MIN_MOD_SIZE; + const maxSize = props.isFree ? MAX_MOD_SIZE_FREE : MAX_MOD_SIZE; const height = window.innerHeight - 180; @@ -42,13 +49,25 @@ export default function ProjConfigModSave() { items={[ {title: 首页}, {title: 创建项目}, - {title: 编辑项目}, - {title: 系统菜单管理}, + { + title: { + if(props.isFree) { + nav(`/proj-efree/${pathParams.projId}`) + } else { + `/proj-edit/${pathParams.projId}` + } + }}>编辑项目 + }, + { + title: { + nav(-1); + }}>系统菜单管理 + }, {title: '添加菜单'}, ]} />
- +
{ - if (!dataArray) { - return; - } - form.setFieldValue('fields', dataArray); - }}/> + isEdit={true} + isFree={props.isFree} + scrollHeight={height - 380} + handleChange={(dataArray) => { + if (!dataArray) { + return; + } + form.setFieldValue('fields', dataArray); + }}/> diff --git a/src/route/proj/edit/ProjConfigModShow.tsx b/src/route/proj/edit/ProjConfigModShow.tsx index 6c3646d..ae7171b 100644 --- a/src/route/proj/edit/ProjConfigModShow.tsx +++ b/src/route/proj/edit/ProjConfigModShow.tsx @@ -8,6 +8,7 @@ import {Link, useNavigate, useParams} from "react-router-dom"; import {useEffect, useState} from "react"; import ModField, {IModField} from "../../../components/modfield/ModField.tsx"; import {get} from "../../../util/AjaxUtils.ts"; +import {MAX_MOD_SIZE, MAX_MOD_SIZE_FREE, MIN_MOD_SIZE, MIN_MOD_SIZE_FREE} from "./ProjConfigModList.tsx"; type FormFieldType = { projId: string; @@ -17,13 +18,19 @@ type FormFieldType = { fields: IModField[]; } -export default function ProjConfigModShow() { +type PropsType = { + isFree?: boolean; +} + +export default function ProjConfigModShow(props: PropsType) { const nav = useNavigate(); const pathParams = useParams(); const [messageApi, contextHolder] = message.useMessage(); const [form] = Form.useForm(); const [selectedModIcon, setSelectedModIcon] = useState('fa fa-list'); const [fields, setFields] = useState([]); + const minSize = props.isFree ? MIN_MOD_SIZE_FREE : MIN_MOD_SIZE; + const maxSize = props.isFree ? MAX_MOD_SIZE_FREE : MAX_MOD_SIZE; const height = window.innerHeight - 180; @@ -52,13 +59,25 @@ export default function ProjConfigModShow() { items={[ {title: 首页}, {title: 创建项目}, - {title: 编辑项目}, - {title: 系统菜单管理}, + { + title: { + if(props.isFree) { + nav(`/proj-efree/${pathParams.projId}`) + } else { + `/proj-edit/${pathParams.projId}` + } + }}>编辑项目 + }, + { + title: { + nav(-1); + }}>系统菜单管理 + }, {title: '查看菜单'}, ]} />
- +
首页}, {title: 创建项目}, - {title: 编辑项目}, + {title: {nav(-1)}}>编辑项目}, {title: '标题简介'}, ]} /> @@ -143,7 +143,8 @@ export default function ProjEditStep1() {