From 4dc2f1ad6cb05bb826915283f9034120faad5e9c Mon Sep 17 00:00:00 2001 From: shixiaohua Date: Fri, 10 May 2024 16:00:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BF=AE=E6=94=B9=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/@auth/(.)login/page.tsx | 0 src/app/layout.tsx | 15 ++++++++------- src/app/login/page.tsx | 0 src/app/route.tsx | 12 ++++++++++++ src/app/task/four/layout.tsx | 13 ++++++++----- src/app/task/four/page.tsx | 10 +++++++++- src/app/task/layout.tsx | 4 ++-- src/app/task/project/page.tsx | 2 +- src/{app => }/lib/constants.ts | 0 src/{app => }/lib/definitions.ts | 0 src/{app => }/lib/placeholder-data.js | 0 src/{app => }/lib/task/project/data.tsx | 3 ++- src/{app => }/ui/LocalContent.tsx | 0 src/{app => }/ui/acme-logo.tsx | 1 - src/{app => }/ui/dashboard/nav-links.tsx | 0 src/{app => }/ui/dashboard/sidenav.tsx | 6 +++--- src/{app => }/ui/fonts.ts | 0 src/{app => }/ui/globals.css | 0 src/{app => }/ui/task/AdvancedSearchForm.tsx | 0 src/{app => }/ui/task/CustomSearchForm.module.css | 0 src/{app => }/ui/task/CustomSearchForm.tsx | 4 ++-- src/{app => }/ui/task/OperationButton.tsx | 4 ++-- src/{app => }/ui/task/RequestDateType.tsx | 0 src/{app => }/ui/task/TitleOperation.modules.css | 0 src/{app => }/ui/task/TitleOperation.tsx | 10 +++++----- src/{app => }/ui/task/four/DetailForm.tsx | 6 +++--- src/{app => }/ui/task/four/TreeTable.tsx | 12 ++++++------ src/{app => }/ui/task/four/detailForm.modules.css | 0 src/{app => }/ui/task/four/index.modules.css | 0 src/{app => }/ui/task/project/DetailModelForm.tsx | 4 ++-- src/{app => }/ui/task/project/TreeTablePro.tsx | 9 +++++---- 31 files changed, 70 insertions(+), 45 deletions(-) create mode 100644 src/app/@auth/(.)login/page.tsx create mode 100644 src/app/login/page.tsx create mode 100644 src/app/route.tsx rename src/{app => }/lib/constants.ts (100%) rename src/{app => }/lib/definitions.ts (100%) rename src/{app => }/lib/placeholder-data.js (100%) rename src/{app => }/lib/task/project/data.tsx (98%) rename src/{app => }/ui/LocalContent.tsx (100%) rename src/{app => }/ui/acme-logo.tsx (87%) rename src/{app => }/ui/dashboard/nav-links.tsx (100%) rename src/{app => }/ui/dashboard/sidenav.tsx (92%) rename src/{app => }/ui/fonts.ts (100%) rename src/{app => }/ui/globals.css (100%) rename src/{app => }/ui/task/AdvancedSearchForm.tsx (100%) rename src/{app => }/ui/task/CustomSearchForm.module.css (100%) rename src/{app => }/ui/task/CustomSearchForm.tsx (88%) rename src/{app => }/ui/task/OperationButton.tsx (98%) rename src/{app => }/ui/task/RequestDateType.tsx (100%) rename src/{app => }/ui/task/TitleOperation.modules.css (100%) rename src/{app => }/ui/task/TitleOperation.tsx (93%) rename src/{app => }/ui/task/four/DetailForm.tsx (99%) rename src/{app => }/ui/task/four/TreeTable.tsx (95%) rename src/{app => }/ui/task/four/detailForm.modules.css (100%) rename src/{app => }/ui/task/four/index.modules.css (100%) rename src/{app => }/ui/task/project/DetailModelForm.tsx (98%) rename src/{app => }/ui/task/project/TreeTablePro.tsx (97%) 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}>