feat:初次打包成功。

This commit is contained in:
shixiaohua 2024-05-06 13:57:58 +08:00
parent d513ebee9e
commit e23407712f
6 changed files with 69 additions and 120 deletions

View File

@ -1,4 +1,6 @@
/** @type {import('next').NextConfig} */ /** @type {import('next').NextConfig} */
const nextConfig = {}; const nextConfig = {
output: 'export',
};
export default nextConfig; export default nextConfig;

View File

@ -15,7 +15,8 @@ export default function RootLayout({
}>) { }>) {
return ( return (
<html> <html>
<body style={{margin:0}}>{children}</body> <title></title>
<body style={{margin: 0}}>{children}</body>
</html> </html>
); );
} }

View File

@ -1,57 +1,11 @@
'use client' 'use client'
import AcmeLogo from '@/app/ui/acme-logo';
import { ArrowRightIcon } from '@heroicons/react/24/outline';
import Link from 'next/link';
import Image from 'next/image';
import {useRouter} from "next/navigation"; import {useRouter} from "next/navigation";
export default function Home() { export default function Home() {
const { replace } = useRouter(); const { replace } = useRouter();
replace("/task/project") replace("/task/four")
return ( return (
<main className="flex min-h-screen flex-col p-6"> <main className="flex min-h-screen flex-col p-6">
{/*<div className="flex h-20 shrink-0 items-end rounded-lg bg-blue-500 p-4 md:h-52">*/}
{/* <AcmeLogo/>*/}
{/*</div>*/}
{/*<div className="mt-4 flex grow flex-col gap-4 md:flex-row">*/}
{/* <div className="flex flex-col justify-center gap-6 rounded-lg bg-gray-50 px-6 py-10 md:w-2/5 md:px-20">*/}
{/* <p*/}
{/* className={`text-xl text-gray-800 md:text-3xl md:leading-normal`}*/}
{/* >*/}
{/* <strong>Welcome to Acme.</strong> This is the example for the{' '}*/}
{/* <a href="https://nextjs.org/learn/" className="text-blue-500">*/}
{/* Next.js Learn Course*/}
{/* </a>*/}
{/* , brought to you by Vercel.*/}
{/* </p>*/}
{/* <Link*/}
{/* href="/login"*/}
{/* className="flex items-center gap-5 self-start rounded-lg bg-blue-500 px-6 py-3 text-sm font-medium text-white transition-colors hover:bg-blue-400 md:text-base"*/}
{/* >*/}
{/* <span>Log in</span>*/}
{/* /!*<ArrowRightIcon className="w-5 md:w-6"/>*!/*/}
{/* </Link>*/}
{/* </div>*/}
{/* <div className="flex items-center justify-center p-6 md:w-3/5 md:px-28 md:py-12">*/}
{/* /!* Add Hero Images Here *!/*/}
{/* <Image*/}
{/* src="/hero-desktop.png"*/}
{/* width={1000}*/}
{/* height={760}*/}
{/* alt="Screenshots of the dashboard project showing desktop version"*/}
{/* className="hidden md:block"*/}
{/* />*/}
{/* <Image*/}
{/* src="/hero-mobile.png"*/}
{/* width={560}*/}
{/* height={620}*/}
{/* alt="Screenshot of the dashboard project showing mobile version"*/}
{/* className="block md:hidden"*/}
{/* />*/}
{/* </div>*/}
{/*</div>*/}
</main> </main>
); );
} }

View File

@ -8,7 +8,22 @@ import {getTaskTreeResult, taskStateList} from "@/app/lib/task/project/data";
import {DataType, ResponseVO, ResultPage} from "@/app/lib/definitions"; import {DataType, ResponseVO, ResultPage} from "@/app/lib/definitions";
export default function Layout({children}: { children: React.ReactNode }) { export default function Layout({children}: { children: React.ReactNode }) {
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)
}
})
}
useEffect(() => { useEffect(() => {
// @ts-ignore // @ts-ignore
const divWidth = document.getElementById('tenUp').offsetWidth; const divWidth = document.getElementById('tenUp').offsetWidth;
@ -40,23 +55,6 @@ export default function Layout({children}: { children: React.ReactNode }) {
leftUp.push(...parse); leftUp.push(...parse);
} }
} }
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)
}
})
}
return ( return (
<div> <div>
<div className='firstRow' style={{display: 'flex'}}> <div className='firstRow' style={{display: 'flex'}}>

View File

@ -8,33 +8,39 @@ import {ConfigProvider} from "antd";
export default function Layout({children}: { children: React.ReactNode }) { export default function Layout({children}: { children: React.ReactNode }) {
const [taskState, setTaskState] = React.useState<string>('8,9') const [taskState, setTaskState] = React.useState<string>('8,9')
let expectStartTimeList=[]; let expectStartTimeList = [];
expectStartTimeList.push({'name':"expectedStartTime",'value':dayjs().subtract(7,'day'),'operateType':">="}); expectStartTimeList.push({'name': "expectedStartTime", 'value': dayjs().subtract(7, 'day'), 'operateType': ">="});
expectStartTimeList.push({'name':"expectedStartTime",'value':dayjs().add(7,'day'),'operateType':"<"}) expectStartTimeList.push({'name': "expectedStartTime", 'value': dayjs().add(7, 'day'), 'operateType': "<"})
const [expectedStartTime, setExpectedStartTime] = React.useState<string>(JSON.stringify(expectStartTimeList)) const [expectedStartTime, setExpectedStartTime] = React.useState<string>(JSON.stringify(expectStartTimeList))
const [refreshDataFlag, setRefreshDataFlag] = React.useState<boolean>(true) const [refreshDataFlag, setRefreshDataFlag] = React.useState<boolean>(true)
function refreshData() { function refreshData() {
setRefreshDataFlag(!refreshDataFlag) setRefreshDataFlag(!refreshDataFlag)
} }
console.log('taskState,expectedStartTime,refreshDataFlag',taskState,expectedStartTime,refreshDataFlag)
console.log('taskState,expectedStartTime,refreshDataFlag', taskState, expectedStartTime, refreshDataFlag)
return ( return (
<div> <div>
<ConfigProvider <ConfigProvider
theme={{ theme={{
components: { components: {
Table: { Table: {
rowHoverBg:'#4096ff' rowHoverBg: '#4096ff'
/* 这里是你的组件 token */ /* 这里是你的组件 token */
}, },
}, },
}} }}
> >
<LocalContext.Provider value={{'taskState':taskState,'expectedStartTime':expectedStartTime,'refreshData':refreshDataFlag}}> <LocalContext.Provider value={{
<TitleOperation setTaskState={setTaskState} setExpectedStartTime={setExpectedStartTime} refreshData={refreshData}/> 'taskState': taskState,
'expectedStartTime': expectedStartTime,
'refreshData': refreshDataFlag
}}>
<TitleOperation setTaskState={setTaskState} setExpectedStartTime={setExpectedStartTime}
refreshData={refreshData}/>
{children} {children}
</LocalContext.Provider> </LocalContext.Provider>
</ConfigProvider> </ConfigProvider>
</div> </div>
); );
} }

View File

@ -18,8 +18,6 @@ import {DetailModelForm} from "@/app/ui/task/project/DetailModelForm";
import OperationButton from "@/app/ui/task/OperationButton"; import OperationButton from "@/app/ui/task/OperationButton";
import dayjs from "dayjs"; import dayjs from "dayjs";
const TreeTablePro: React.FC = () => { const TreeTablePro: React.FC = () => {
const actionRef = useRef<ActionType>(); const actionRef = useRef<ActionType>();
const formRef = useRef<ProFormInstance>(); const formRef = useRef<ProFormInstance>();
@ -30,11 +28,13 @@ const TreeTablePro: React.FC = () => {
const { RangePicker } = DatePicker; const { RangePicker } = DatePicker;
const columns: ProColumns<DataType>[] = [ const columns: ProColumns<DataType>[] = [
{ {
key:'code',
title: '任务编码', title: '任务编码',
dataIndex: 'code', dataIndex: 'code',
width: '10%', width: '10%',
}, },
{ {
key: 'name',
title: '任务名称', title: '任务名称',
dataIndex: 'name', dataIndex: 'name',
width: '15%', width: '15%',
@ -51,10 +51,12 @@ const TreeTablePro: React.FC = () => {
}, },
}, },
{ {
key: 'description',
title: '任务描述', title: '任务描述',
dataIndex: 'description', dataIndex: 'description',
}, },
{ {
key: 'priority',
title: '任务优先级', title: '任务优先级',
dataIndex: 'priority', dataIndex: 'priority',
order:2, order:2,
@ -83,8 +85,8 @@ const TreeTablePro: React.FC = () => {
} }
</Space> </Space>
), ),
}, }, {
{ key: 'state',
title: '任务状态', title: '任务状态',
dataIndex: 'state', dataIndex: 'state',
valueType: 'select', valueType: 'select',
@ -95,47 +97,33 @@ const TreeTablePro: React.FC = () => {
mode:"tags", mode:"tags",
options: taskStateList.map(item => { options: taskStateList.map(item => {
return {label: item.name, value: item.code} return {label: item.name, value: item.code}
}) }),
}, },
// renderFormItem: (_, { defaultRender }) => { }, {
// return defaultRender(_); key: 'expectedStartTime',
// },
// render: (_, record) => (
// <Space>
// {
// <Tag color={taskStateList.find(item => item.code === record.state?.toString())?.color}
// key={taskStateList.find(item => item.code === record.state?.toString())?.code}>
// {taskStateList.find(item => item.code === record.state?.toString())?.name}
// </Tag>
// }
// </Space>
// ),
},
{
title: '期望开始时间', title: '期望开始时间',
dataIndex: 'expectedStartTime', dataIndex: 'expectedStartTime',
valueType: 'date', valueType: 'date',
order:1, order:1,
renderFormItem:()=><RangePicker allowEmpty={[true,true]}/> renderFormItem:()=><RangePicker allowEmpty={[true,true]}/>
}, }, {
{ key:'expectedEndTime',
title: '期望结束时间', title: '期望结束时间',
dataIndex: 'expectedEndTime', dataIndex: 'expectedEndTime',
valueType: 'date', valueType: 'date',
}, }, {
{ key: 'actualStartTime',
title: '实际开始时间', title: '实际开始时间',
dataIndex: 'actualStartTime', dataIndex: 'actualStartTime',
valueType: 'date', valueType: 'date',
}, }, {
{ key: 'actualEndTime',
title: '期望结束时间', title: '期望结束时间',
dataIndex: 'actualEndTime', dataIndex: 'actualEndTime',
valueType: 'date', valueType: 'date',
}, }, {
{
title: '操作',
key: 'option', key: 'option',
title: '操作',
valueType: 'option', valueType: 'option',
render: (_, record) => <OperationButton itemId={record.id} pid={record.pid} pPid={record.pPid} refreshDate={()=>{ render: (_, record) => <OperationButton itemId={record.id} pid={record.pid} pPid={record.pPid} refreshDate={()=>{
actionRef.current?.reload( false); actionRef.current?.reload( false);
@ -143,10 +131,10 @@ const TreeTablePro: React.FC = () => {
} }
]; ];
let toolBarRenderList = [ let toolBarRenderList = [
<DetailModelForm operationId={OPERATION_BUTTON_TYPE.ADD} description='添加主线任务' reloadData={()=>{ <DetailModelForm key={1} operationId={OPERATION_BUTTON_TYPE.ADD} description='添加主线任务' reloadData={()=>{
actionRef.current?.reload( false); actionRef.current?.reload( false);
}}/>, }}/>,
<Switch checkedChildren="树" unCheckedChildren="列表" checked={switchChecked} <Switch key={2} checkedChildren="树" unCheckedChildren="列表" checked={switchChecked}
onChange={(checked, event) => {setSwitchChecked(checked);actionRef.current?.reset?.();}} />, onChange={(checked, event) => {setSwitchChecked(checked);actionRef.current?.reset?.();}} />,
]; ];
if (switchChecked){ if (switchChecked){