Quellcode durchsuchen

点击选择时onData

visuddhinanda vor 1 Jahr
Ursprung
Commit
5242371d7c
1 geänderte Dateien mit 21 neuen und 7 gelöschten Zeilen
  1. 21 7
      dashboard-v4/dashboard/src/components/task/Workflow.tsx

+ 21 - 7
dashboard-v4/dashboard/src/components/task/Workflow.tsx

@@ -1,5 +1,5 @@
 import React, { useState } from "react";
-import { IProjectData } from "../api/task";
+import { IProjectData, ITaskData } from "../api/task";
 import ProjectList from "./ProjectList";
 import ProjectTask from "./ProjectTask";
 import { Modal } from "antd";
@@ -8,15 +8,22 @@ interface IModal {
   tiger?: React.ReactNode;
   studioName?: string;
   onSelect?: (data: IProjectData) => void;
+  onData?: (data: ITaskData[]) => void;
 }
-export const WorkflowModal = ({ tiger, studioName, onSelect }: IModal) => {
+export const WorkflowModal = ({
+  tiger,
+  studioName,
+  onSelect,
+  onData,
+}: IModal) => {
   const [open, setOpen] = useState(false);
-
+  const [data, setData] = useState<ITaskData[]>();
   const showModal = () => {
     setOpen(true);
   };
 
   const handleOk = () => {
+    onData && data && onData(data);
     setOpen(false);
   };
 
@@ -28,13 +35,14 @@ export const WorkflowModal = ({ tiger, studioName, onSelect }: IModal) => {
       <div onClick={() => showModal()}>{tiger}</div>
       <Modal
         destroyOnClose={true}
-        width={700}
+        width={1200}
+        style={{ top: 10 }}
         title={""}
         open={open}
         onOk={handleOk}
         onCancel={handleCancel}
       >
-        <Workflow />
+        <Workflow onData={(data) => setData(data)} />
       </Modal>
     </>
   );
@@ -43,9 +51,10 @@ export const WorkflowModal = ({ tiger, studioName, onSelect }: IModal) => {
 interface IWidget {
   studioName?: string;
   onSelect?: (data: IProjectData) => void;
+  onData?: (data: ITaskData[]) => void;
 }
 
-const Workflow = ({ studioName, onSelect }: IWidget) => {
+const Workflow = ({ studioName, onSelect, onData }: IWidget) => {
   const [projectId, setProjectId] = useState<string>();
   return (
     <div style={{ display: "flex" }}>
@@ -53,11 +62,16 @@ const Workflow = ({ studioName, onSelect }: IWidget) => {
         <ProjectList
           studioName={studioName}
           type="workflow"
+          readonly
           onSelect={(data) => setProjectId(data.id)}
         />
       </div>
       <div style={{ flex: 3 }}>
-        <ProjectTask studioName={studioName} projectId={projectId} />
+        <ProjectTask
+          studioName={studioName}
+          projectId={projectId}
+          onData={onData}
+        />
       </div>
     </div>
   );