Browse Source

:fire: onLoad

visuddhinanda 1 year ago
parent
commit
ec89c03e9b
1 changed files with 11 additions and 36 deletions
  1. 11 36
      dashboard-v4/dashboard/src/components/task/ProjectTask.tsx

+ 11 - 36
dashboard-v4/dashboard/src/components/task/ProjectTask.tsx

@@ -1,6 +1,6 @@
 import { Tabs } from "antd";
 
-import TaskList from "../../components/task/TaskList";
+import TaskList, { treeToList } from "../../components/task/TaskList";
 import TaskTable from "../../components/task/TaskTable";
 import TaskRelation from "../../components/task/TaskRelation";
 import { useState } from "react";
@@ -10,15 +10,16 @@ interface IWidget {
   studioName?: string;
   projectId?: string;
   readonly?: boolean;
-  onData?: (data: ITaskData[]) => void;
+  onChange?: (data: ITaskData[]) => void;
 }
 const ProjectTask = ({
   studioName,
   projectId,
   readonly = false,
-  onData,
+  onChange,
 }: IWidget) => {
-  const [tasks, setTasks] = useState<ITaskData[]>();
+  const [tasks, setTasks] = useState<ITaskData[]>([]);
+  const [taskTree, setTaskTree] = useState<ITaskData[]>();
   return (
     <>
       <Tabs
@@ -32,38 +33,12 @@ const ProjectTask = ({
                 editable={!readonly}
                 studioName={studioName}
                 projectId={projectId}
-                onLoad={(data) => {
-                  setTasks(data);
-                  onData && onData(data);
-                }}
-                onChange={(data: ITaskData[]) => {
-                  let origin: ITaskData[] = JSON.parse(JSON.stringify(data));
-                  data.forEach((input) => {
-                    const old = origin?.find((value) => value.id === input.id);
-                    if (old) {
-                      //找到了更新旧的
-                      origin?.forEach(
-                        (
-                          value: ITaskData,
-                          index: number,
-                          array: ITaskData[]
-                        ) => {
-                          if (value.id === input.id) {
-                            array[index] = input;
-                          }
-                        }
-                      );
-                    } else {
-                      //没有找到就添加
-                      if (origin) {
-                        origin = [...origin, input];
-                      } else {
-                        origin = [input];
-                      }
-                    }
-                  });
-                  setTasks(origin);
-                  onData && onData(data);
+                taskTree={taskTree}
+                onChange={(treeData: ITaskData[]) => {
+                  setTaskTree(treeData);
+                  const listData = treeToList(treeData);
+                  setTasks(listData);
+                  onChange && onChange(listData);
                 }}
               />
             ),