diff --git a/src/app/@auth/(.)login/page.tsx b/src/app/@auth/(.)login/page.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index db6348d..61e1b2c 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,13 +1,15 @@
import type { Metadata } from "next";
-
-import "@/app/ui/globals.css";
-// import { inter } from '@/app/ui/fonts';
+import "@/ui/globals.css";
export const metadata: Metadata = {
- title: "Create Next App",
- description: "Generated by create next app",
+ title: "任务管理",
+ description: "任务管理小助手",
};
-
+/**
+ * Root Layout (Required)
+ * @param children
+ * @constructor
+ */
export default function RootLayout({
children,
}: Readonly<{
@@ -15,7 +17,6 @@ export default function RootLayout({
}>) {
return (
-
任务管理
{children}
);
diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/route.tsx b/src/app/route.tsx
new file mode 100644
index 0000000..de578a3
--- /dev/null
+++ b/src/app/route.tsx
@@ -0,0 +1,12 @@
+export const dynamic = 'force-dynamic' // defaults to auto
+
+export async function GET(request: Request) {
+ return new Response('Hello, Next.js!', {
+ status: 200,
+ headers: {
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
+ },
+ })
+}
diff --git a/src/app/task/four/layout.tsx b/src/app/task/four/layout.tsx
index 9c4bc05..1037b8a 100644
--- a/src/app/task/four/layout.tsx
+++ b/src/app/task/four/layout.tsx
@@ -1,11 +1,14 @@
+/**
+ * A layout is UI that is shared between multiple routes. On navigation, layouts preserve state, remain interactive, and do not re-render.
+ */
'use client'
-import TreeTable from "@/app/ui/task/four/TreeTable";
-import '@/app/ui/task/four/index.modules.css'
+import TreeTable from "@/ui/task/four/TreeTable";
+import '@/ui/task/four/index.modules.css'
import {useContext, useEffect, useState} from "react";
-import LocalContext from "@/app/ui/LocalContent";
+import LocalContext from "@/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";
+import {getTaskTreeResult, taskStateList} from "@/lib/task/project/data";
+import {DataType, ResponseVO, ResultPage} from "@/lib/definitions";
export default function Layout({children}: { children: React.ReactNode }) {
const [resultDataTypeList, setResultDataTypeList] = useState([]);
diff --git a/src/app/task/four/page.tsx b/src/app/task/four/page.tsx
index feb2238..887a836 100644
--- a/src/app/task/four/page.tsx
+++ b/src/app/task/four/page.tsx
@@ -1,3 +1,11 @@
+/**
+ * The .js, .jsx, or .tsx file extensions can be used for Pages.
+ * A page is always the leaf of the route subtree.
+ * A page.js file is required to make a route segment publicly accessible.
+ * Pages are Server Components by default, but can be set to a Client Component.
+ * Pages can fetch data. View the Data Fetching section for more information.
+ * @constructor
+ */
export default function Page() {
return Dashboard Page
;
-}
\ No newline at end of file
+}
diff --git a/src/app/task/layout.tsx b/src/app/task/layout.tsx
index 2080413..e4acc0d 100644
--- a/src/app/task/layout.tsx
+++ b/src/app/task/layout.tsx
@@ -1,7 +1,7 @@
'use client'
import React, {Fragment} from "react";
-import {TitleOperation} from "@/app/ui/task/TitleOperation";
-import LocalContext from "@/app/ui/LocalContent";
+import {TitleOperation} from "@/ui/task/TitleOperation";
+import LocalContext from "@/ui/LocalContent";
import dayjs from "dayjs";
import {ConfigProvider} from "antd";
diff --git a/src/app/task/project/page.tsx b/src/app/task/project/page.tsx
index 189c361..e567371 100644
--- a/src/app/task/project/page.tsx
+++ b/src/app/task/project/page.tsx
@@ -1,4 +1,4 @@
-import TreeTablePro from "@/app/ui/task/project/TreeTablePro";
+import TreeTablePro from "@/ui/task/project/TreeTablePro";
const Page: React.FC = () => {
return (
diff --git a/src/app/lib/constants.ts b/src/lib/constants.ts
similarity index 100%
rename from src/app/lib/constants.ts
rename to src/lib/constants.ts
diff --git a/src/app/lib/definitions.ts b/src/lib/definitions.ts
similarity index 100%
rename from src/app/lib/definitions.ts
rename to src/lib/definitions.ts
diff --git a/src/app/lib/placeholder-data.js b/src/lib/placeholder-data.js
similarity index 100%
rename from src/app/lib/placeholder-data.js
rename to src/lib/placeholder-data.js
diff --git a/src/app/lib/task/project/data.tsx b/src/lib/task/project/data.tsx
similarity index 98%
rename from src/app/lib/task/project/data.tsx
rename to src/lib/task/project/data.tsx
index d123e19..e00ba23 100644
--- a/src/app/lib/task/project/data.tsx
+++ b/src/lib/task/project/data.tsx
@@ -1,6 +1,7 @@
import {unstable_noStore as noStore} from 'next/cache';
import axios, {AxiosResponse} from "axios";
-import {DataType, DictType, ResponseVO, ResultPage} from "@/app/lib/definitions";
+import {DataType, DictType, ResponseVO, ResultPage} from "@/lib/definitions";
+import {message} from "antd";
export async function getTaskTreeResult(requestParam:string): Promise>> {
noStore();
try {
diff --git a/src/app/ui/LocalContent.tsx b/src/ui/LocalContent.tsx
similarity index 100%
rename from src/app/ui/LocalContent.tsx
rename to src/ui/LocalContent.tsx
diff --git a/src/app/ui/acme-logo.tsx b/src/ui/acme-logo.tsx
similarity index 87%
rename from src/app/ui/acme-logo.tsx
rename to src/ui/acme-logo.tsx
index fdfe0cb..b968f21 100644
--- a/src/app/ui/acme-logo.tsx
+++ b/src/ui/acme-logo.tsx
@@ -1,5 +1,4 @@
import { GlobeAltIcon } from '@heroicons/react/24/outline';
-// import { lusitana } from '@/app/ui/fonts';
export default function AcmeLogo() {
return (
diff --git a/src/app/ui/dashboard/nav-links.tsx b/src/ui/dashboard/nav-links.tsx
similarity index 100%
rename from src/app/ui/dashboard/nav-links.tsx
rename to src/ui/dashboard/nav-links.tsx
diff --git a/src/app/ui/dashboard/sidenav.tsx b/src/ui/dashboard/sidenav.tsx
similarity index 92%
rename from src/app/ui/dashboard/sidenav.tsx
rename to src/ui/dashboard/sidenav.tsx
index 1ac0be6..c0a9d8a 100644
--- a/src/app/ui/dashboard/sidenav.tsx
+++ b/src/ui/dashboard/sidenav.tsx
@@ -1,6 +1,6 @@
import Link from 'next/link';
-import NavLinks from '@/app/ui/dashboard/nav-links';
-import AcmeLogo from '@/app/ui/acme-logo';
+import NavLinks from '@/ui/dashboard/nav-links';
+import AcmeLogo from '@/ui/acme-logo';
import { PowerIcon } from '@heroicons/react/24/outline';
export default function SideNav() {
@@ -26,4 +26,4 @@ export default function SideNav() {
);
-}
\ No newline at end of file
+}
diff --git a/src/app/ui/fonts.ts b/src/ui/fonts.ts
similarity index 100%
rename from src/app/ui/fonts.ts
rename to src/ui/fonts.ts
diff --git a/src/app/ui/globals.css b/src/ui/globals.css
similarity index 100%
rename from src/app/ui/globals.css
rename to src/ui/globals.css
diff --git a/src/app/ui/task/AdvancedSearchForm.tsx b/src/ui/task/AdvancedSearchForm.tsx
similarity index 100%
rename from src/app/ui/task/AdvancedSearchForm.tsx
rename to src/ui/task/AdvancedSearchForm.tsx
diff --git a/src/app/ui/task/CustomSearchForm.module.css b/src/ui/task/CustomSearchForm.module.css
similarity index 100%
rename from src/app/ui/task/CustomSearchForm.module.css
rename to src/ui/task/CustomSearchForm.module.css
diff --git a/src/app/ui/task/CustomSearchForm.tsx b/src/ui/task/CustomSearchForm.tsx
similarity index 88%
rename from src/app/ui/task/CustomSearchForm.tsx
rename to src/ui/task/CustomSearchForm.tsx
index 12481be..da329aa 100644
--- a/src/app/ui/task/CustomSearchForm.tsx
+++ b/src/ui/task/CustomSearchForm.tsx
@@ -3,8 +3,8 @@ import {
ProFormText,
QueryFilter,
} from '@ant-design/pro-components';
-import '@/app/ui/task/CustomSearchForm.module.css'
-import {taskStateList} from "@/app/lib/task/project/data";
+import '@/ui/task/CustomSearchForm.module.css'
+import {taskStateList} from "@/lib/task/project/data";
const CustomSearchForm= () => {
return (
diff --git a/src/app/ui/task/OperationButton.tsx b/src/ui/task/OperationButton.tsx
similarity index 98%
rename from src/app/ui/task/OperationButton.tsx
rename to src/ui/task/OperationButton.tsx
index f8376e2..9cc05be 100644
--- a/src/app/ui/task/OperationButton.tsx
+++ b/src/ui/task/OperationButton.tsx
@@ -1,8 +1,8 @@
import React, {Fragment} from "react";
import {Button, Dropdown, MenuProps, message, Modal, Popconfirm, Space} from "antd";
import {DownOutlined, QuestionCircleOutlined} from "@ant-design/icons";
-import {DetailForm} from "@/app/ui/task/four/DetailForm";
-import {commonUpdate, deleteTask, OPERATION_BUTTON_TYPE} from "@/app/lib/task/project/data";
+import {DetailForm} from "@/ui/task/four/DetailForm";
+import {commonUpdate, deleteTask, OPERATION_BUTTON_TYPE} from "@/lib/task/project/data";
import Link from "next/link";
export interface OperationButtonProps {
diff --git a/src/app/ui/task/RequestDateType.tsx b/src/ui/task/RequestDateType.tsx
similarity index 100%
rename from src/app/ui/task/RequestDateType.tsx
rename to src/ui/task/RequestDateType.tsx
diff --git a/src/app/ui/task/TitleOperation.modules.css b/src/ui/task/TitleOperation.modules.css
similarity index 100%
rename from src/app/ui/task/TitleOperation.modules.css
rename to src/ui/task/TitleOperation.modules.css
diff --git a/src/app/ui/task/TitleOperation.tsx b/src/ui/task/TitleOperation.tsx
similarity index 93%
rename from src/app/ui/task/TitleOperation.tsx
rename to src/ui/task/TitleOperation.tsx
index 48fec81..10ef64e 100644
--- a/src/app/ui/task/TitleOperation.tsx
+++ b/src/ui/task/TitleOperation.tsx
@@ -1,11 +1,11 @@
import React, {useContext} from "react";
import {Button, DatePicker, 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 LocalContext from "@/app/ui/LocalContent";
-import {RequestDateType} from "@/app/ui/task/RequestDateType";
+import {DetailModelForm} from "@/ui/task/project/DetailModelForm";
+import {OPERATION_BUTTON_TYPE, taskStateList} from "@/lib/task/project/data";
+import '@/ui/task/TitleOperation.modules.css'
+import LocalContext from "@/ui/LocalContent";
+import {RequestDateType} from "@/ui/task/RequestDateType";
import dayjs, {Dayjs} from "dayjs";
interface TitleOperationProps {
diff --git a/src/app/ui/task/four/DetailForm.tsx b/src/ui/task/four/DetailForm.tsx
similarity index 99%
rename from src/app/ui/task/four/DetailForm.tsx
rename to src/ui/task/four/DetailForm.tsx
index b621975..9d57d8e 100644
--- a/src/app/ui/task/four/DetailForm.tsx
+++ b/src/ui/task/four/DetailForm.tsx
@@ -1,6 +1,6 @@
'use client'
import React, {useEffect, useState} from 'react';
-import '@/app/ui/task/four/detailForm.modules.css'
+import '@/ui/task/four/detailForm.modules.css'
import {
Button,
DatePicker,
@@ -19,8 +19,8 @@ import {
taskPriorityList,
taskStateList,
updateTask
-} from "@/app/lib/task/project/data";
-import {DataType} from "@/app/lib/definitions";
+} from "@/lib/task/project/data";
+import {DataType} from "@/lib/definitions";
export interface DetailFormProps {
itemId: number,
diff --git a/src/app/ui/task/four/TreeTable.tsx b/src/ui/task/four/TreeTable.tsx
similarity index 95%
rename from src/app/ui/task/four/TreeTable.tsx
rename to src/ui/task/four/TreeTable.tsx
index eb92670..ad71936 100644
--- a/src/app/ui/task/four/TreeTable.tsx
+++ b/src/ui/task/four/TreeTable.tsx
@@ -2,13 +2,13 @@
import React, {useContext, useEffect, useState} from 'react';
import {ConfigProvider, Table} from 'antd';
import type {TableColumnsType, TableProps} from 'antd';
-import {getTaskTreeResult, taskPriorityList, taskStateList, taskTreeResult} from "@/app/lib/task/project/data";
-import {DataType, ResponseVO, ResultPage} from "@/app/lib/definitions";
-import OperationButton from "@/app/ui/task/OperationButton";
-import "@/app/ui/task/four/detailForm.modules.css"
-import LocalContext from "@/app/ui/LocalContent";
+import {getTaskTreeResult, taskPriorityList, taskStateList, taskTreeResult} from "@/lib/task/project/data";
+import {DataType, ResponseVO, ResultPage} from "@/lib/definitions";
+import OperationButton from "@/ui/task/OperationButton";
+import "@/ui/task/four/detailForm.modules.css"
+import LocalContext from "@/ui/LocalContent";
import {useSearchParams} from "next/dist/client/components/navigation";
-import {RequestDateType} from "@/app/ui/task/RequestDateType";
+import {RequestDateType} from "@/ui/task/RequestDateType";
type TableRowSelection = TableProps['rowSelection'];
diff --git a/src/app/ui/task/four/detailForm.modules.css b/src/ui/task/four/detailForm.modules.css
similarity index 100%
rename from src/app/ui/task/four/detailForm.modules.css
rename to src/ui/task/four/detailForm.modules.css
diff --git a/src/app/ui/task/four/index.modules.css b/src/ui/task/four/index.modules.css
similarity index 100%
rename from src/app/ui/task/four/index.modules.css
rename to src/ui/task/four/index.modules.css
diff --git a/src/app/ui/task/project/DetailModelForm.tsx b/src/ui/task/project/DetailModelForm.tsx
similarity index 98%
rename from src/app/ui/task/project/DetailModelForm.tsx
rename to src/ui/task/project/DetailModelForm.tsx
index b388ac1..e60a4c4 100644
--- a/src/app/ui/task/project/DetailModelForm.tsx
+++ b/src/ui/task/project/DetailModelForm.tsx
@@ -14,8 +14,8 @@ import {
OPERATION_BUTTON_TYPE,
taskPriorityList,
taskStateList
-} from "@/app/lib/task/project/data";
-import {DataType} from "@/app/lib/definitions";
+} from "@/lib/task/project/data";
+import {DataType} from "@/lib/definitions";
import dayjs from "dayjs";
export type DetailModelFormProps={
diff --git a/src/app/ui/task/project/TreeTablePro.tsx b/src/ui/task/project/TreeTablePro.tsx
similarity index 97%
rename from src/app/ui/task/project/TreeTablePro.tsx
rename to src/ui/task/project/TreeTablePro.tsx
index 0f5c5fa..3279480 100644
--- a/src/app/ui/task/project/TreeTablePro.tsx
+++ b/src/ui/task/project/TreeTablePro.tsx
@@ -7,15 +7,15 @@ import type {ActionType, FormInstance, ProColumns, ProFormInstance} from '@ant-d
import {ProTable, TableDropdown} from '@ant-design/pro-components';
import {Button, DatePicker, Dropdown, Space, Switch, Tag, Tooltip} from 'antd';
import React, {useContext, useEffect, useRef} from 'react';
-import {DataType} from "@/app/lib/definitions";
+import {DataType} from "@/lib/definitions";
import {
getTaskTreeResult,
OPERATION_BUTTON_TYPE,
taskPriorityList,
taskStateList,
-} from "@/app/lib/task/project/data";
-import {DetailModelForm} from "@/app/ui/task/project/DetailModelForm";
-import OperationButton from "@/app/ui/task/OperationButton";
+} from "@/lib/task/project/data";
+import {DetailModelForm} from "@/ui/task/project/DetailModelForm";
+import OperationButton from "@/ui/task/OperationButton";
import dayjs from "dayjs";
const TreeTablePro: React.FC = () => {
@@ -217,6 +217,7 @@ const TreeTablePro: React.FC = () => {
}
}}
dateFormatter="string"
+ scroll={{y: 600}}
// headerTitle="任务管理"
toolBarRender={()=>toolBarRenderList}>