diff --git a/app/globals.css b/app/globals.css
index e76a859..78101a4 100644
--- a/app/globals.css
+++ b/app/globals.css
@@ -25,3 +25,12 @@ body {
:-webkit-full-screen::backdrop {
background: var(--mantine-color-body);
}
+
+.mantine-datatable-page-size-selector-active {
+ background: var(--mantine-primary-color-filled) !important;
+ color: var(--mantine-color-white) !important;
+}
+
+.mantine-datatable-page-size-selector-active .mantine-Text-root {
+ color: inherit !important;
+}
diff --git a/app/layout.tsx b/app/layout.tsx
index fb37f14..15176bc 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -19,9 +19,19 @@ import { ModalsProvider } from "@mantine/modals"
import { Notifications } from "@mantine/notifications"
import { Suspense } from "react"
import "./globals.css"
+import settingClasses from "@/components/setting/PageSurface.module.css"
import { theme } from "./theme"
const GLOBAL_NOTICE_Z_INDEX = 4000
+const sharedModalProps = {
+ centered: true,
+ classNames: {
+ content: settingClasses.modalContent,
+ header: settingClasses.modalHeader,
+ title: settingClasses.modalTitle,
+ body: settingClasses.modalBody,
+ },
+}
export default function RootLayout({
children,
@@ -61,7 +71,7 @@ export default function RootLayout({
-
+
>}>{children}
diff --git a/app/person/report/page.module.css b/app/person/report/page.module.css
index 554873d..82fd884 100644
--- a/app/person/report/page.module.css
+++ b/app/person/report/page.module.css
@@ -96,7 +96,7 @@
padding: 0;
background: transparent;
color: #1874ff;
- font-size: 12px;
+ font-size: 13px;
line-height: 20px;
cursor: pointer;
transition:
diff --git a/app/theme.ts b/app/theme.ts
index dfebec0..6c9aa11 100644
--- a/app/theme.ts
+++ b/app/theme.ts
@@ -1,5 +1,5 @@
// theme.ts
-import { Button, createTheme, MantineColorsTuple } from "@mantine/core"
+import { Button, Menu, createTheme, MantineColorsTuple } from "@mantine/core"
/* -------- 1. 自定义颜色(可删/可改) -------- */
const brandColors: MantineColorsTuple = [
@@ -151,5 +151,34 @@ export const theme = createTheme({
}
},
}),
+ Menu: Menu.extend({
+ defaultProps: {
+ radius: "sm",
+ shadow: "sm",
+ },
+ styles() {
+ return {
+ dropdown: {
+ border: "1px solid #E5E6EB",
+ borderRadius: "4px",
+ background: "#FFFFFF",
+ boxShadow: "0 8px 20px rgba(15, 23, 42, 0.08)",
+ padding: "4px",
+ },
+ item: {
+ minHeight: "28px",
+ borderRadius: "4px",
+ padding: "4px 8px",
+ fontSize: "12px",
+ lineHeight: "20px",
+ color: "#4E5969",
+ },
+ arrow: {
+ borderColor: "#E5E6EB",
+ background: "#FFFFFF",
+ },
+ }
+ },
+ }),
},
})
diff --git a/components/label/components/TaskStatusTag.module.css b/components/label/components/TaskStatusTag.module.css
index bb1474e..c00a807 100644
--- a/components/label/components/TaskStatusTag.module.css
+++ b/components/label/components/TaskStatusTag.module.css
@@ -42,9 +42,9 @@
}
.statusWaiting {
- border-color: #e7d2a7;
- background: #fbf7ee;
- color: #92641e;
+ border-color: #ffdba5;
+ background: #fff7e8;
+ color: #d46b08;
}
.statusActive {
@@ -68,9 +68,9 @@
.rejectedPill {
min-height: 20px;
padding: 0 7px;
- border-color: #e8c98a;
- background: #fff8ed;
- color: #a46b12;
+ border-color: #ffc987;
+ background: #fff3e0;
+ color: #c65d0e;
font-size: 11px;
font-weight: 500;
line-height: 16px;
diff --git a/components/layout/AppLayout.module.css b/components/layout/AppLayout.module.css
index 1eb0175..18881be 100644
--- a/components/layout/AppLayout.module.css
+++ b/components/layout/AppLayout.module.css
@@ -57,16 +57,56 @@
padding: 8px 8px 0;
}
+.navbarIconLink {
+ display: flex;
+ width: 100%;
+ min-height: 40px;
+ align-items: center;
+ justify-content: center;
+ border-radius: 4px;
+ color: #4e5969;
+ transition:
+ background-color 0.2s ease,
+ color 0.2s ease;
+}
+
+.navbarIconLink:hover {
+ background: #eef4ff;
+ color: #1874ff;
+}
+
+.navbarIconLinkActive {
+ background: #e7efff;
+ color: #1874ff;
+}
+
.navbarFooter {
border-top: 1px solid #e5e6eb;
- padding: 6px 0 0;
+ padding: 4px 8px;
+}
+
+.navbarToggleIcon {
+ display: inline-flex;
+ width: 36px;
+ height: 36px;
+ align-items: center;
+ justify-content: center;
+ border-radius: 4px;
+ color: #4e5969;
+ transition:
+ background-color 0.2s ease,
+ color 0.2s ease;
+}
+
+.navbarToggleIcon:hover {
+ background: #f2f3f5;
+ color: #1874ff;
}
.main {
background: #f7f8fa;
}
-
.userName {
color: #1d2129;
font-size: 14px;
@@ -78,4 +118,4 @@
color: #86909c;
font-size: 12px;
line-height: 14px;
-}
\ No newline at end of file
+}
diff --git a/components/layout/AppLayout.tsx b/components/layout/AppLayout.tsx
index 17d82fd..e057157 100644
--- a/components/layout/AppLayout.tsx
+++ b/components/layout/AppLayout.tsx
@@ -22,6 +22,8 @@ import Avvvatars from "avvvatars-react"
import { useDisclosure, useMediaQuery } from "@mantine/hooks"
import {
IconChevronDown,
+ IconChevronLeft,
+ IconChevronRight,
IconLogout,
IconMoon,
IconSun,
@@ -372,6 +374,10 @@ export default function AppLayout({
/>
)
} else {
+ const isGroupActive = pathname.startsWith(
+ `/${activeHeaderMenu.url}/${item.url}`
+ )
+
return (