feat: change zinc theme

This commit is contained in:
mozzie 2024-09-02 15:05:38 +08:00
parent 49e73308f6
commit 57fd8def59
4 changed files with 114 additions and 42 deletions

9
README.md Normal file
View File

@ -0,0 +1,9 @@
# 分析失败处理机制
- 分割阶段
- 测量阶段
# 解剖结构 - 模型的关系 1:1 or 1:n
- 换版本重新测量
-

View File

@ -29,7 +29,7 @@ process.env.VITE_PUBLIC = VITE_DEV_SERVER_URL
let win: BrowserWindow | null;
let tray: Tray | null = null;
let pythonManager: PythonManager | null;
const theme: "dark" | "light" = "dark";
const theme: "dark" | "light" = "light";
const themeTitleBarStyles = {
dark: { color: "rgb(32,32,32)", symbolColor: "#fff" },

View File

@ -11,6 +11,7 @@ import {
getSortedRowModel,
useReactTable,
} from "@tanstack/react-table";
import { ArrowUpDown, ChevronDown, MoreHorizontal } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Checkbox } from "@/components/ui/checkbox";
@ -18,6 +19,9 @@ import {
DropdownMenu,
DropdownMenuCheckboxItem,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { Input } from "@/components/ui/input";
@ -44,6 +48,16 @@ export type Series = {
filePaths: string[];
};
const columnsAlias: { [K in keyof Partial<Series>]: string } = {
PatientName: "姓名",
PatientAge: "年龄",
PatientSex: "性别",
SeriesInstanceUID: "序列UID",
filePaths: "层数",
createTime: "创建时间",
updateTime: "修改时间",
};
export const columns: ColumnDef<Series>[] = [
{
id: "select",
@ -68,36 +82,41 @@ export const columns: ColumnDef<Series>[] = [
enableHiding: false,
},
{
id: "PatientName",
accessorKey: "PatientName",
header: "姓名",
header: columnsAlias["PatientName"],
cell: ({ row }) => (
<div className="capitalize">{row.getValue("PatientName")}</div>
),
},
{
id: "PatientAge",
accessorKey: "PatientAge",
header: "年龄",
header: columnsAlias["PatientAge"],
cell: ({ row }) => (
<div className="capitalize">{row.getValue("PatientAge")}</div>
),
},
{
id: "PatientSex",
accessorKey: "PatientSex",
header: "性别",
header: columnsAlias["PatientSex"],
cell: ({ row }) => (
<div className="capitalize">{row.getValue("PatientSex")}</div>
),
},
{
id: "SeriesInstanceUID",
accessorKey: "SeriesInstanceUID",
header: "序列UID",
header: columnsAlias["SeriesInstanceUID"],
cell: ({ row }) => (
<div className="capitalize">{row.getValue("SeriesInstanceUID")}</div>
),
},
{
id: "filePaths",
accessorKey: "filePaths",
header: "层数",
header: columnsAlias["filePaths"],
cell: ({ row }) => (
<div className="capitalize">
{(row.getValue("filePaths") as string[]).length}
@ -105,8 +124,19 @@ export const columns: ColumnDef<Series>[] = [
),
},
{
id: "createTime",
accessorKey: "createTime",
header: "创建时间",
header: ({ column }) => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === "asc")}
>
{columnsAlias["createTime"]}
<ArrowUpDown className="ml-2 h-4 w-4" />
</Button>
);
},
cell: ({ row }) => (
<div className="capitalize">
{new Date(row.getValue("createTime")).toLocaleString()}
@ -114,14 +144,45 @@ export const columns: ColumnDef<Series>[] = [
),
},
{
id: "updateTime",
accessorKey: "updateTime",
header: "修改时间",
header: columnsAlias["updateTime"],
cell: ({ row }) => (
<div className="capitalize">
{new Date(row.getValue("updateTime")).toLocaleString()}
</div>
),
},
{
id: "actions",
header: "操作",
enableHiding: false,
cell: ({ row }) => {
const payment = row.original;
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button variant="ghost" className="h-8 w-8 p-0">
<span className="sr-only">Open menu</span>
<MoreHorizontal className="h-4 w-4" />
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuLabel>Actions</DropdownMenuLabel>
<DropdownMenuItem
onClick={() => navigator.clipboard.writeText(payment.id)}
>
Copy payment ID
</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem>View customer</DropdownMenuItem>
<DropdownMenuItem>View payment details</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
);
},
},
];
export function SeriesTable() {
@ -197,7 +258,7 @@ export function SeriesTable() {
column.toggleVisibility(!!value)
}
>
{column.columnDef.header}
{columnsAlias[column.id]}
</DropdownMenuCheckboxItem>
);
})}

View File

@ -12,27 +12,28 @@ body,
@layer base {
:root {
--background: 0 0% 100%;
--foreground: 240 10% 3.9%;
--foreground: 222.2 84% 4.9%;
--card: 0 0% 100%;
--card-foreground: 240 10% 3.9%;
--card-foreground: 222.2 84% 4.9%;
--popover: 0 0% 100%;
--popover-foreground: 240 10% 3.9%;
--primary: 142.1 76.2% 36.3%;
--primary-foreground: 355.7 100% 97.3%;
--secondary: 240 4.8% 95.9%;
--secondary-foreground: 240 5.9% 10%;
--muted: 240 4.8% 95.9%;
--muted-foreground: 240 3.8% 46.1%;
--accent: 240 4.8% 95.9%;
--accent-foreground: 240 5.9% 10%;
--popover-foreground: 222.2 84% 4.9%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 0 0% 98%;
--border: 240 5.9% 90%;
--input: 240 5.9% 90%;
--ring: 142.1 76.2% 36.3%;
--destructive-foreground: 210 40% 98%;
--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--ring: 222.2 84% 4.9%;
--radius: 0.5rem;
--chart-1: 12 76% 61%;
--chart-2: 173 58% 39%;
@ -42,25 +43,25 @@ body,
}
.dark {
--background: 20 14.3% 4.1%;
--foreground: 0 0% 95%;
--card: 24 9.8% 10%;
--card-foreground: 0 0% 95%;
--popover: 0 0% 9%;
--popover-foreground: 0 0% 95%;
--primary: 142.1 70.6% 45.3%;
--primary-foreground: 144.9 80.4% 10%;
--secondary: 240 3.7% 15.9%;
--secondary-foreground: 0 0% 98%;
--muted: 0 0% 15%;
--muted-foreground: 240 5% 64.9%;
--accent: 12 6.5% 15.1%;
--accent-foreground: 0 0% 98%;
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;
--card: 222.2 84% 4.9%;
--card-foreground: 210 40% 98%;
--popover: 222.2 84% 4.9%;
--popover-foreground: 210 40% 98%;
--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 11.2%;
--secondary: 217.2 32.6% 17.5%;
--secondary-foreground: 210 40% 98%;
--muted: 217.2 32.6% 17.5%;
--muted-foreground: 215 20.2% 65.1%;
--accent: 217.2 32.6% 17.5%;
--accent-foreground: 210 40% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 0 85.7% 97.3%;
--border: 240 3.7% 15.9%;
--input: 240 3.7% 15.9%;
--ring: 142.4 71.8% 29.2%;
--destructive-foreground: 210 40% 98%;
--border: 217.2 32.6% 17.5%;
--input: 217.2 32.6% 17.5%;
--ring: 212.7 26.8% 83.9;
--chart-1: 220 70% 50%;
--chart-2: 160 60% 45%;
--chart-3: 30 80% 55%;
@ -70,6 +71,7 @@ body,
}
@layer base {
* {
@apply border-border;