From 91666db1d7ba3334a1634316f23e8b593cb08a16 Mon Sep 17 00:00:00 2001 From: Clas Wen Date: Sat, 24 May 2025 01:14:46 +0800 Subject: [PATCH] init --- Dockerfile | 2 +- package.json | 1 + pnpm-lock.yaml | 23 ++ src/components/header/RepairHeader.astro | 29 +- src/pages/repair/EventDetail.tsx | 18 +- src/pages/repair/RepairAdmin.tsx | 465 +++++++++++++++++++++++ src/pages/repair/TicketForm.tsx | 5 +- src/pages/repair/admin.astro | 12 + src/pages/repair/index.astro | 3 + src/pages/repair/ticket-detail.astro | 2 +- 10 files changed, 543 insertions(+), 17 deletions(-) create mode 100644 src/pages/repair/RepairAdmin.tsx create mode 100644 src/pages/repair/admin.astro diff --git a/Dockerfile b/Dockerfile index 77084ec..aaa0d16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,6 @@ FROM base AS build RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile RUN pnpm run build -FROM nginx:alpine as deploy +FROM nginx:alpine AS deploy COPY nginx.conf /etc/nginx/nginx.conf COPY --from=build /app/dist /usr/share/nginx/html diff --git a/package.json b/package.json index 1f11ac5..98815e3 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@headlessui/vue": "^1.7.23", "@heroui/react": "2.7.6", "@logto/browser": "^2.2.18", + "@react-stately/data": "^3.13.0", "@stylistic/eslint-plugin": "^2.13.0", "astro": "^4.16.18", "dayjs": "^1.11.13", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 456a3bb..2a1d1f2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,6 +41,9 @@ importers: '@logto/browser': specifier: ^2.2.18 version: 2.2.18 + '@react-stately/data': + specifier: ^3.13.0 + version: 3.13.0(react@18.3.1) '@stylistic/eslint-plugin': specifier: ^2.13.0 version: 2.13.0(eslint@8.57.1)(typescript@5.8.3) @@ -1866,6 +1869,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/data@3.13.0': + resolution: {integrity: sha512-7LYPxVbWB6tvmLYKO19H5G5YtXV6eKCSXisOUiL9fVnOcGOPDK5z310sj9TP5vaX7zVPtwy0lDBUrZuRfhvQIQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/datepicker@3.13.0': resolution: {integrity: sha512-I0Y/aQraQyRLMWnh5tBZMiZ0xlmvPjFErXnQaeD7SdOYUHNtQS4BAQsMByQrMfg8uhOqUTKlIh7xEZusuqYWOA==} peerDependencies: @@ -2140,6 +2148,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/shared@3.29.1': + resolution: {integrity: sha512-KtM+cDf2CXoUX439rfEhbnEdAgFZX20UP2A35ypNIawR7/PFFPjQDWyA2EnClCcW/dLWJDEPX2U8+EJff8xqmQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/slider@3.7.10': resolution: {integrity: sha512-Yb8wbpu2gS7AwvJUuz0IdZBRi6eIBZq32BSss4UHX0StA8dtR1/K4JeTsArxwiA3P0BA6t0gbR6wzxCvVA9fRw==} peerDependencies: @@ -8143,6 +8156,12 @@ snapshots: '@swc/helpers': 0.5.17 react: 18.3.1 + '@react-stately/data@3.13.0(react@18.3.1)': + dependencies: + '@react-types/shared': 3.29.1(react@18.3.1) + '@swc/helpers': 0.5.17 + react: 18.3.1 + '@react-stately/datepicker@3.13.0(react@18.3.1)': dependencies: '@internationalized/date': 3.7.0 @@ -8505,6 +8524,10 @@ snapshots: dependencies: react: 18.3.1 + '@react-types/shared@3.29.1(react@18.3.1)': + dependencies: + react: 18.3.1 + '@react-types/slider@3.7.10(react@18.3.1)': dependencies: '@react-types/shared': 3.29.0(react@18.3.1) diff --git a/src/components/header/RepairHeader.astro b/src/components/header/RepairHeader.astro index f6ae41d..b1b4121 100644 --- a/src/components/header/RepairHeader.astro +++ b/src/components/header/RepairHeader.astro @@ -3,15 +3,34 @@ import NavigationUser from "./NavigationUser.vue" ---
维修 - +
+ + +
diff --git a/src/pages/repair/EventDetail.tsx b/src/pages/repair/EventDetail.tsx index 829f82b..de2a6d3 100644 --- a/src/pages/repair/EventDetail.tsx +++ b/src/pages/repair/EventDetail.tsx @@ -46,20 +46,22 @@ function EventLogItem(props: { ) } -function EventStatusChip(props: { +export function EventStatusChip(props: { + size?: "sm" | "md" | "lg" status: string }) { + const size = props.size || "md" switch (props.status) { case EventStatus.open: - return 未开始 + return 未开始 case EventStatus.accepted: - return 维修中 + return 维修中 case EventStatus.committed: - return 维修中 + return 维修中 case EventStatus.closed: - return 已完成 + return 已完成 case EventStatus.cancelled: - return 已取消 + return 已取消 } } @@ -121,7 +123,7 @@ export default function EventDetail(props: { event ? (
-
+

维修详情

@@ -130,7 +132,7 @@ export default function EventDetail(props: {
-
+