assistant-todo/src/app/task/four/layout.tsx

91 lines
4.0 KiB
TypeScript
Raw Normal View History

2024-04-17 22:38:47 -04:00
'use client'
2024-04-24 01:54:59 -04:00
import TreeTable from "@/app/ui/task/four/TreeTable";
2024-04-17 22:38:47 -04:00
import '@/app/ui/task/four/index.modules.css'
2024-04-25 04:36:40 -04:00
import {useContext, useEffect, useState} from "react";
2024-04-23 01:19:26 -04:00
import LocalContext from "@/app/ui/LocalContent";
2024-04-25 04:36:40 -04:00
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";
2024-04-17 22:38:47 -04:00
export default function Layout({children}: { children: React.ReactNode }) {
2024-05-06 01:57:58 -04:00
const [resultDataTypeList, setResultDataTypeList] = useState<DataType[]>([]);
const refreshDate = (): void => {
getTaskTreeResult(JSON.stringify({
pageSize:1000,
pageNumber:1,
data: leftUp
})).then((result: ResponseVO<ResultPage<DataType>>) => {
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)
}
})
}
2024-04-17 22:38:47 -04:00
useEffect(() => {
// @ts-ignore
const divWidth = document.getElementById('tenUp').offsetWidth;
// @ts-ignore
document.getElementById('upUp').style.fontSize = divWidth + 'px';
// @ts-ignore
document.getElementById('upDown').style.fontSize = divWidth + 'px';
// @ts-ignore
const divHeight = document.getElementById('left').offsetHeight;
// @ts-ignore
document.getElementById('tenLeft').style.fontSize = divHeight/6*4 + 'px';
2024-04-25 04:36:40 -04:00
refreshDate()
}, [useContext(LocalContext)]);
2024-04-23 01:19:26 -04:00
const data = useContext(LocalContext);
2024-04-25 04:36:40 -04:00
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);
}
2024-04-23 01:19:26 -04:00
}
2024-04-12 06:43:55 -04:00
return (
2024-04-17 22:38:47 -04:00
<div>
<div className='firstRow' style={{display: 'flex'}}>
<div className='leftUp'>
2024-04-25 04:36:40 -04:00
<TreeTable refreshDate={refreshDate} priority='3' resultDataTypeList={resultDataTypeList}/>
2024-04-17 22:38:47 -04:00
</div>
<div id='tenUp' className='up'>
<span id='upUp'></span>
</div>
2024-04-19 05:44:44 -04:00
<div className='rightUp' >
2024-04-25 04:36:40 -04:00
<TreeTable refreshDate={refreshDate} priority='2' resultDataTypeList={resultDataTypeList}/>
2024-04-17 22:38:47 -04:00
</div>
</div>
<div id='left' className='left'>
<span id='tenLeft' style={{fontSize:'1vh'}}></span>
</div>
<div className='secondRow' style={{display: 'flex'}}>
<div className='leftDown'>
2024-04-25 04:36:40 -04:00
<TreeTable refreshDate={refreshDate} priority='1' resultDataTypeList={resultDataTypeList}/>
2024-04-17 22:38:47 -04:00
</div>
<div className='up'>
<span id='upDown'></span>
</div>
{/*<div style={{float:'left',width:'48%',height: '48vh',background:"gray"}}>{children}</div>*/}
<div className='rightDown'>
2024-04-25 04:36:40 -04:00
<TreeTable refreshDate={refreshDate} priority='0' resultDataTypeList={resultDataTypeList}/>
2024-04-17 22:38:47 -04:00
</div>
2024-04-12 06:43:55 -04:00
</div>
</div>
);
2024-04-17 22:38:47 -04:00
}