|
@@ -1,4 +1,4 @@
|
|
-import React, { useImperativeHandle, forwardRef } from "react";
|
|
|
|
|
|
+import React, { useImperativeHandle, forwardRef, useState, useEffect } from "react";
|
|
import { DownOutlined, PlusOutlined, DeleteOutlined } from "@ant-design/icons";
|
|
import { DownOutlined, PlusOutlined, DeleteOutlined } from "@ant-design/icons";
|
|
import type { MenuProps } from "antd";
|
|
import type { MenuProps } from "antd";
|
|
import {
|
|
import {
|
|
@@ -22,6 +22,12 @@ const TodoDrawer = forwardRef((props: {}, ref) => {
|
|
const { project, setProject } = useModel("erModel");
|
|
const { project, setProject } = useModel("erModel");
|
|
const [activeKey, setActiveKey] = React.useState("");
|
|
const [activeKey, setActiveKey] = React.useState("");
|
|
|
|
|
|
|
|
+ const [todoList, setTodoList] = useState<TodoItem[]>(project.todos);
|
|
|
|
+
|
|
|
|
+ useEffect(() => {
|
|
|
|
+ setTodoList(project.todos);
|
|
|
|
+ }, [project.todos]);
|
|
|
|
+
|
|
useImperativeHandle(ref, () => ({
|
|
useImperativeHandle(ref, () => ({
|
|
open: () => setOpen(true),
|
|
open: () => setOpen(true),
|
|
close: () => setOpen(false),
|
|
close: () => setOpen(false),
|
|
@@ -62,11 +68,12 @@ const TodoDrawer = forwardRef((props: {}, ref) => {
|
|
};
|
|
};
|
|
|
|
|
|
const handleChange = (index: number, key: string, value: any) => {
|
|
const handleChange = (index: number, key: string, value: any) => {
|
|
- const newTodos = [...project.todos];
|
|
|
|
|
|
+ const newTodos = [...todoList];
|
|
newTodos[index] = {
|
|
newTodos[index] = {
|
|
...newTodos[index],
|
|
...newTodos[index],
|
|
[key]: value,
|
|
[key]: value,
|
|
};
|
|
};
|
|
|
|
+ setTodoList(newTodos);
|
|
setProject(
|
|
setProject(
|
|
{
|
|
{
|
|
...project,
|
|
...project,
|
|
@@ -83,7 +90,7 @@ const TodoDrawer = forwardRef((props: {}, ref) => {
|
|
{
|
|
{
|
|
...project,
|
|
...project,
|
|
todos: [
|
|
todos: [
|
|
- ...project.todos,
|
|
|
|
|
|
+ ...todoList,
|
|
{
|
|
{
|
|
id: uuid(),
|
|
id: uuid(),
|
|
dataModelId: project.id,
|
|
dataModelId: project.id,
|
|
@@ -101,7 +108,7 @@ const TodoDrawer = forwardRef((props: {}, ref) => {
|
|
};
|
|
};
|
|
|
|
|
|
const handleDelete = (index: number) => {
|
|
const handleDelete = (index: number) => {
|
|
- const newTodos = [...project.todos];
|
|
|
|
|
|
+ const newTodos = [...todoList];
|
|
newTodos.splice(index, 1);
|
|
newTodos.splice(index, 1);
|
|
setProject(
|
|
setProject(
|
|
{
|
|
{
|
|
@@ -133,7 +140,7 @@ const TodoDrawer = forwardRef((props: {}, ref) => {
|
|
新建待办
|
|
新建待办
|
|
</Button>
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
- {project.todos.map((todo: TodoItem, index: number) => (
|
|
|
|
|
|
+ {todoList.map((todo: TodoItem, index: number) => (
|
|
<div
|
|
<div
|
|
className="todo-item flex border-b-1 border-b-solid border-#eee p-b-12px m-b-12px"
|
|
className="todo-item flex border-b-1 border-b-solid border-#eee p-b-12px m-b-12px"
|
|
key={todo.id}
|
|
key={todo.id}
|