import { Button, Divider, Input, message, Modal, Space, Steps, Tag, Typography, } from "antd"; import { useState } from "react"; import Workflow from "./Workflow"; import type { IProjectTreeInsertRequest, IProjectTreeResponse, IProjectUpdateRequest, ITaskData, ITaskGroupInsertData, ITaskGroupInsertRequest, ITaskGroupResponse, } from "../../api/task"; import { post } from "../../request"; import TaskBuilderProp, { type IParam, IProp } from "./TaskBuilderProp"; const { Paragraph, Text } = Typography; interface IBuildProjects { onChange?: (titles: string[]) => void; } const BuildProjects = ({ onChange }: IBuildProjects) => { const [projectsTitle, setProjectsTitle] = useState([]); const [projectTitle, setProjectTitle] = useState(""); const [projectTitlePerf, setProjectTitlePerf] = useState("01"); const [projectsCount, setProjectsCount] = useState(0); const buildTitles = (base: string, perf: string, count: number): string[] => { return Array.from(Array(count).keys()).map((item) => { const sn = parseInt(perf) + item; const extraZero = perf.length - sn.toString().length; let strSn: string = sn.toString(); if (extraZero > 0) { strSn = Array(extraZero).fill("0").join("") + sn.toString(); } return `${base}${strSn}`; }); }; return (
名称: { setProjectTitle(e.target.value); const projects = buildTitles( e.target.value, projectTitlePerf, projectsCount ); setProjectsTitle(projects); onChange && onChange(projects); }} />
后缀: { setProjectTitlePerf(e.target.value); const projects = buildTitles( projectTitle, e.target.value, projectsCount ); setProjectsTitle(projects); onChange && onChange(projects); }} />
数量: { setProjectsCount(parseInt(e.target.value)); const projects = buildTitles( projectTitle, projectTitlePerf, parseInt(e.target.value) ); setProjectsTitle(projects); onChange && onChange(projects); }} />
{projectsTitle.map((item, id) => { return ( {`${id + 1}`} {item} ); })}
); }; interface IModal { studioName?: string; parentId?: string; open?: boolean; onClose?: () => void; onDone?: () => void; } export const TaskBuilderProjectsModal = ({ studioName, parentId, open = false, onClose, onDone, }: IModal) => { return ( <> ); }; interface IWidget { studioName?: string; parentId?: string; style?: React.CSSProperties; onDone?: () => void; } const TaskBuilderProjects = ({ studioName, parentId, style, onDone, }: IWidget) => { const [current, setCurrent] = useState(0); const [workflow, setWorkflow] = useState(); const [projectsTitle, setProjectsTitle] = useState(); const [prop, setProp] = useState(); const [loading, setLoading] = useState(false); const [messages, setMessages] = useState([]); const steps = [ { title: "Projects", content: , }, { title: "工作流", content: ( setWorkflow(data)} /> ), }, { title: "参数设置", content: (
setProp(data)} />
), }, { title: "生成", content: (
title {projectsTitle}
新增任务组:{projectsTitle} 每个任务组任务数量:{workflow?.length} 点击生成按钮生成
{messages?.map((item, id) => { return
{item}
; })}
), }, ]; const next = () => { setCurrent(current + 1); }; const prev = () => { setCurrent(current - 1); }; const items = steps.map((item) => ({ key: item.title, title: item.title })); return (
{steps[current].content}
{current < steps.length - 1 && ( )} {current === steps.length - 1 && ( )}
); }; export default TaskBuilderProjects;