diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..0265489 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,19 @@ +{ + "sqltools.connections": [ + { + "mysqlOptions": { + "authProtocol": "default", + "enableSsl": "Disabled" + }, + "previewLimit": 50, + "server": "localhost", + "port": 3306, + "driver": "MySQL", + "name": "tavi-universe", + "group": "local", + "username": "root", + "password": "root", + "database": "rbac" + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 59f7dc4..800b23e 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -5,17 +5,17 @@ "label": "start-all-tasks", "dependsOn": [ "build:pkg", - "cert-authorize", - "cert-authenticate", - "cert-gateway", "cert-web", "aorta-web", - "aorta-gateway", - "dmp-archive", "dmp-web", - "dmp-gateway", + "logger", + "cert-authorize", + "cert-authenticate", + "dmp-archive", "dicom", - "logger" + "dmp-gateway", + "aorta-gateway", + "cert-gateway", ] }, { @@ -27,6 +27,14 @@ "for package in @tavi/util @tavi/oss @tavi/i18n; do (pnpm run --filter $package build); done && echo 'build:pkg completed'" ] }, + { + "label": "logger", + "type": "shell", + "command": "pnpm", + "args": [ + "dev:logger", + ], + }, { "label": "aorta-web", "type": "shell", @@ -39,33 +47,11 @@ ] }, { - "label": "aorta-gateway", + "label": "cert-web", "type": "shell", "command": "pnpm", "args": [ - "dev:aorta-gateway", - ], - "dependsOn": [ - "build:pkg" - ] - }, - { - "label": "dmp-archive", - "type": "shell", - "command": "pnpm", - "args": [ - "dev:dmp-archive", - ], - "dependsOn": [ - "build:pkg" - ] - }, - { - "label": "dmp-gateway", - "type": "shell", - "command": "pnpm", - "args": [ - "dev:dmp-gateway", + "dev:cert-web" ], "dependsOn": [ "build:pkg" @@ -83,15 +69,13 @@ ] }, { - "label": "logger", + "label": "dmp-archive", "type": "shell", "command": "pnpm", "args": [ - "dev:logger", + "dev:dmp-archive", ], - "dependsOn": [ - "build:pkg" - ] + "dependsOrder": "sequence", }, { "label": "dicom", @@ -100,9 +84,7 @@ "args": [ "dev:dicom", ], - "dependsOn": [ - "build:pkg" - ] + "dependsOrder": "sequence", }, { "label": "cert-authorize", @@ -111,9 +93,7 @@ "args": [ "dev:authorize", ], - "dependsOn": [ - "build:pkg" - ] + "dependsOrder": "sequence", }, { "label": "cert-authenticate", @@ -122,9 +102,7 @@ "args": [ "dev:authenticate" ], - "dependsOn": [ - "build:pkg" - ] + "dependsOrder": "sequence", }, { "label": "cert-gateway", @@ -133,20 +111,25 @@ "args": [ "dev:cert-gateway" ], - "dependsOn": [ - "build:pkg" - ] + "dependsOrder": "sequence", }, { - "label": "cert-web", + "label": "dmp-gateway", "type": "shell", "command": "pnpm", "args": [ - "dev:cert-web" + "dev:dmp-gateway", ], - "dependsOn": [ - "build:pkg" - ] + "dependsOrder": "sequence", + }, + { + "label": "aorta-gateway", + "type": "shell", + "command": "pnpm", + "args": [ + "dev:aorta-gateway", + ], + "dependsOrder": "sequence", }, ] } \ No newline at end of file diff --git a/apps/dmp/src/modules/Admin/Label/index.less b/apps/dmp/src/modules/Admin/Label/index.less new file mode 100644 index 0000000..7e61553 --- /dev/null +++ b/apps/dmp/src/modules/Admin/Label/index.less @@ -0,0 +1,10 @@ +.label-container { + display: grid; + grid-template-columns: 1fr 4fr; + height: 100%; + + aside { + padding: 20px 20px 0 20px; + border-right: 1px solid rgba(5, 5, 5, 0.06); + } +} \ No newline at end of file diff --git a/apps/dmp/src/modules/Admin/Label/index.tsx b/apps/dmp/src/modules/Admin/Label/index.tsx index 43b3268..7994ab3 100644 --- a/apps/dmp/src/modules/Admin/Label/index.tsx +++ b/apps/dmp/src/modules/Admin/Label/index.tsx @@ -1,7 +1,59 @@ +import { CSSProperties } from "react"; +import "./index.less"; +import { Collapse, CollapseProps, theme } from "antd"; +import { CaretRightOutlined } from "@ant-design/icons"; + interface LabelProps { children?: JSX.Element; } +const content = ( + +); +const getItems: (panelStyle: CSSProperties) => CollapseProps["items"] = ( + panelStyle +) => [ + { + key: "1", + label: "影像质量", + children: content, + style: panelStyle, + }, + { + key: "2", + label: "其他", + children:

1

, + style: panelStyle, + }, +]; + export const Label = (props: LabelProps) => { - return
Label
-} + const { token } = theme.useToken(); + + const panelStyle: React.CSSProperties = { + marginBottom: 12, + background: token.colorFillAlter, + borderRadius: token.borderRadiusLG, + border: "none", + }; + + return ( +
+ +
标签相关数据
+
+ ); +}; diff --git a/apps/dmp/src/modules/Admin/Logger/index.tsx b/apps/dmp/src/modules/Admin/Logger/index.tsx new file mode 100644 index 0000000..224881e --- /dev/null +++ b/apps/dmp/src/modules/Admin/Logger/index.tsx @@ -0,0 +1,7 @@ +interface LoggerProps { + children?: JSX.Element; +} + +export const Logger = (props: LoggerProps) => { + return
Logger
; +}; diff --git a/apps/dmp/src/modules/Admin/index.tsx b/apps/dmp/src/modules/Admin/index.tsx index 416ee0f..5cc13d7 100644 --- a/apps/dmp/src/modules/Admin/index.tsx +++ b/apps/dmp/src/modules/Admin/index.tsx @@ -5,6 +5,7 @@ import { DatabaseOutlined, TagsOutlined, UnorderedListOutlined, + ProfileOutlined } from "@ant-design/icons"; import { Outlet } from "react-router"; import { MenuProps } from "antd"; @@ -18,9 +19,10 @@ export type MenuItem = Required["items"][number]; const adminMenuItems: MenuItem[] = [ getItem("影像", "dicom", , [ getItem("上传", "/upload", ), - getItem("列表", "/list", ), + getItem("全部", "/list", ), ]), getItem("标签", "/label", ), + getItem("日志", "/logger", ), ]; export const AdminDashboard = (props: AdminDashboardProps) => { diff --git a/apps/dmp/src/router/roleRoutes.tsx b/apps/dmp/src/router/roleRoutes.tsx index 13fd624..578935f 100644 --- a/apps/dmp/src/router/roleRoutes.tsx +++ b/apps/dmp/src/router/roleRoutes.tsx @@ -7,6 +7,7 @@ import { ROLE_NAME } from "@/constant"; import { AdminDashboard } from "@/modules/Admin"; import { AnnotatorDashBoard } from "@/modules/Annotator"; import { Label } from "@/modules/Admin/Label"; +import { Logger } from "@/modules/Admin/Logger"; export const roleRoutes: Record = { @@ -34,18 +35,12 @@ export const roleRoutes: Record = path: "/label", element: