|
|
@@ -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);
|
|
|
}}
|
|
|
/>
|
|
|
),
|