diff --git a/src/app/task/four/layout.tsx b/src/app/task/four/layout.tsx
index 70f2896..c1f3371 100644
--- a/src/app/task/four/layout.tsx
+++ b/src/app/task/four/layout.tsx
@@ -1,26 +1,13 @@
'use client'
-import SideNav from '@/app/ui/dashboard/sidenav';
import TreeTable from "@/app/ui/task/four/TreeTable";
import '@/app/ui/task/four/index.modules.css'
-import {useContext, useEffect} from "react";
+import {useContext, useEffect, useState} from "react";
import LocalContext from "@/app/ui/LocalContent";
+import {useSearchParams} from "next/dist/client/components/navigation";
+import {getTaskTreeResult, taskStateList} from "@/app/lib/task/project/data";
+import {DataType, ResponseVO, ResultPage} from "@/app/lib/definitions";
export default function Layout({children}: { children: React.ReactNode }) {
- // useEffect(() => {
- // // @ts-ignore
- // const divWidth = document.getElementById('myDiv').offsetWidth;
- // // @ts-ignore
- // document.getElementById('mySpan').style.fontSize = divWidth + 'px';
- // }, []); // 这里的空数组表示只在组件挂载时执行一次
- //
- // return (
- // <>
- //
- // Content
- //
- // Content
- // >
- // )
useEffect(() => {
// @ts-ignore
@@ -33,31 +20,48 @@ export default function Layout({children}: { children: React.ReactNode }) {
const divHeight = document.getElementById('left').offsetHeight;
// @ts-ignore
document.getElementById('tenLeft').style.fontSize = divHeight/6*4 + 'px';
- }, []);
+ refreshDate()
+ }, [useContext(LocalContext)]);
const data = useContext(LocalContext);
- console.log('data-data.taskState',data.taskState,);
- const leftUp = [{name:"priority",value:"3",operateType:"="}];
- const rightUp =[{name:"priority",value:"2",operateType:"="}];
- const leftDown = [{name:"priority",value:"1",operateType:"="}];
- const rightDown = [{name:"priority",value:"0",operateType:"="}];
- if (data.taskState.length>0){
- leftUp.push({name:"state",value:data.taskState,operateType:"IN"});
- rightUp.push({name:"state",value:data.taskState,operateType:"IN"});
- leftDown.push({name:"state",value:data.taskState,operateType:"IN"});
- rightDown.push({name:"state",value:data.taskState,operateType:"IN"});
+ const leftUp:{name:string,operateType:string,value:string|number|boolean}[] = []
+ var pid = useSearchParams().get('pid');
+ // 如果有pid,在前端过滤(防止中间数据不满足条件,导致子数据丢失),
+ // 无pid在后端过滤(防止数据量过大)。
+ console.log('data',data);
+ console.log('pid!=null',pid!=null);
+ if (pid!=null) {
+ leftUp.push({name:"pid",value:pid,operateType:"="},{name:'TREE',value:"false",operateType: "TREE"});
+ }else {
+ if (data.taskState.length>0){
+ leftUp.push({name:"state",value:data.taskState,operateType:"IN"});
+ }
+ if (data.expectedStartTime.length>0){
+ const parse = JSON.parse(data.expectedStartTime);
+ leftUp.push(...parse);
+ }
}
- if (data.expectedStartTime.length>0){
- const parse = JSON.parse(data.expectedStartTime);
- leftUp.push(...parse);
- rightUp.push(...parse);
- leftDown.push(...parse);
- rightDown.push(...parse);
+
+ const [resultDataTypeList, setResultDataTypeList] = useState([]);
+ const refreshDate = (): void => {
+ getTaskTreeResult(JSON.stringify({
+ pageSize:1000,
+ pageNumber:1,
+ data: leftUp
+ })).then((result: ResponseVO>) => {
+ if (result.status.success) {
+ // recursionActionChild(result.data.content);
+ result.data.content.forEach(dataType=>{
+ dataType.state=taskStateList.find(taskState=>taskState.code===dataType.state+'')?.name
+ })
+ setResultDataTypeList(result.data.content)
+ }
+ })
}
return (
-
+
@@ -65,7 +69,7 @@ export default function Layout({children}: { children: React.ReactNode }) {
-
+
@@ -73,14 +77,14 @@ export default function Layout({children}: { children: React.ReactNode }) {
-
+
向上重要
{/*
{children}
*/}
-
+
diff --git a/src/app/task/layout.tsx b/src/app/task/layout.tsx
index 03e5a41..7627050 100644
--- a/src/app/task/layout.tsx
+++ b/src/app/task/layout.tsx
@@ -10,12 +10,18 @@ export default function Layout({children}: { children: React.ReactNode }) {
expectStartTimeList.push({'name':"expectedStartTime",'value':dayjs().subtract(7,'day'),'operateType':">="});
expectStartTimeList.push({'name':"expectedStartTime",'value':dayjs().add(7,'day'),'operateType':"<"})
const [expectedStartTime, setExpectedStartTime] = React.useState(JSON.stringify(expectStartTimeList))
+ const [refreshDataFlag, setRefreshDataFlag] = React.useState(true)
+ function refreshData() {
+ setRefreshDataFlag(!refreshDataFlag)
+ }
+ console.log('taskState,expectedStartTime,refreshDataFlag',taskState,expectedStartTime,refreshDataFlag)
return (
-
-
+
+
+
{children}
-
+
);
}
diff --git a/src/app/task/project/page.tsx b/src/app/task/project/page.tsx
index ba15d26..189c361 100644
--- a/src/app/task/project/page.tsx
+++ b/src/app/task/project/page.tsx
@@ -1,11 +1,9 @@
-import TreeTable from "@/app/ui/task/four/TreeTable";
import TreeTablePro from "@/app/ui/task/project/TreeTablePro";
const Page: React.FC = () => {
return (
<>
- {/**/}
>
);
};
diff --git a/src/app/ui/LocalContent.tsx b/src/app/ui/LocalContent.tsx
index 3ea2f10..fba12a4 100644
--- a/src/app/ui/LocalContent.tsx
+++ b/src/app/ui/LocalContent.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-const LocalContext = React.createContext({'taskState':'','expectedStartTime':''});
+const LocalContext = React.createContext({'taskState':'','expectedStartTime':'','refreshData':true});
export default LocalContext;
diff --git a/src/app/ui/task/OperationButton.tsx b/src/app/ui/task/OperationButton.tsx
index e061828..f8c5f5d 100644
--- a/src/app/ui/task/OperationButton.tsx
+++ b/src/app/ui/task/OperationButton.tsx
@@ -10,12 +10,12 @@ export interface OperationButtonProps {
pid: number,
pPid: number,
operationId?: string,
- refreshDate?: () => void
+ refreshDate?: () => void,
}
interface OperationModelProps {
operationId: number | undefined,
- pPid:number,
+ pPid: number,
pid: number,
openModal: boolean
}
@@ -60,8 +60,7 @@ class OperationButton extends React.Component {
this.setState({openModal: true, operationId: OPERATION_BUTTON_TYPE.UPDATE})
}}>修改任务,
- }
- ,
+ },
{
key: OPERATION_BUTTON_TYPE.DELETE,
label: 四象限显示子任务,
+ label: 四象限显示子任务,
}
];
return
diff --git a/src/app/ui/task/RequestDateType.tsx b/src/app/ui/task/RequestDateType.tsx
new file mode 100644
index 0000000..78ceda4
--- /dev/null
+++ b/src/app/ui/task/RequestDateType.tsx
@@ -0,0 +1,5 @@
+export interface RequestDateType {
+ name:string,
+ value:string|number|boolean,
+ operateType:string
+}
diff --git a/src/app/ui/task/TitleOperation.tsx b/src/app/ui/task/TitleOperation.tsx
index 07db0e2..834ede2 100644
--- a/src/app/ui/task/TitleOperation.tsx
+++ b/src/app/ui/task/TitleOperation.tsx
@@ -1,36 +1,47 @@
-import React from "react";
+import React, {useContext} from "react";
import {Button, DatePicker, Flex, Select, Space} from "antd";
import {usePathname, useRouter} from "next/navigation";
import {DetailModelForm} from "@/app/ui/task/project/DetailModelForm";
import {OPERATION_BUTTON_TYPE, taskStateList} from "@/app/lib/task/project/data";
import '@/app/ui/task/TitleOperation.modules.css'
-import dayjs from "dayjs";
+import LocalContext from "@/app/ui/LocalContent";
+import {RequestDateType} from "@/app/ui/task/RequestDateType";
+import dayjs, {Dayjs} from "dayjs";
+import {element} from "prop-types";
interface TitleOperationProps {
setTaskState: (value: string) => void;
setExpectedStartTime: (value: string) => void;
+ refreshData: () => void;
}
-
export const TitleOperation: React.FC = ({
setTaskState,
- setExpectedStartTime
+ setExpectedStartTime,
+ refreshData
}: TitleOperationProps) => {
const {replace} = useRouter();
- const [currentPath, setCurrentPath] = React.useState(usePathname());
+ console.log('usePathname()', usePathname());
+ const data = useContext(LocalContext);
const {RangePicker} = DatePicker;
+ const expectStartTimeParseResult:RequestDateType[] = data.expectedStartTime.length>0?JSON.parse(data.expectedStartTime):[undefined,undefined]
+ expectStartTimeParseResult.map(item => item&&item.value ? dayjs(item.value.toString()) : undefined)
+ const defaultExpectStartTime:[start: Dayjs | null | undefined, end: Dayjs | null | undefined] = [
+ expectStartTimeParseResult[0]&&expectStartTimeParseResult[0].value ? dayjs(expectStartTimeParseResult[0].value.toString()) : undefined,
+ expectStartTimeParseResult[1]&&expectStartTimeParseResult[1].value ? dayjs(expectStartTimeParseResult[1].value.toString()) : undefined
+ ];
return
-
- {currentPath.startsWith("/task/project") ?
+
+ {usePathname().startsWith("/task/project") ?
<>
> : <>
任务状态: