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: ,
},
+ {
+ path: "/logger",
+ element: ,
+ },
],
},
- // {
- // path: "/list",
- // element: ,
- // title: "管理员",
- // },
- // {
- // path: "/upload",
- // element: ,
- // title: "管理员",
- // },
],
/**
* 标注
diff --git a/apps/services/alg/app.py b/apps/services/alg/app.py
new file mode 100644
index 0000000..b89a40d
--- /dev/null
+++ b/apps/services/alg/app.py
@@ -0,0 +1,22 @@
+from flask import Flask, request, jsonify
+import nats.aio.client
+import asyncio
+
+app = Flask(__name__)
+nc = nats.aio.client.Client()
+
+@app.route('/send_to_nats', methods=['POST'])
+def send_to_nats():
+ loop = asyncio.new_event_loop()
+ asyncio.set_event_loop(loop)
+ loop.run_until_complete(send_message(request.json))
+ print("1")
+ return 111
+
+async def send_message(message):
+ await nc.connect(servers=["nats://localhost:4222"])
+ await nc.publish(jsonify({"cmd": "alg.test"}), str(message).encode())
+ await nc.close()
+
+if __name__ == "__main__":
+ app.run(debug=True)
diff --git a/apps/services/alg/requirements.txt b/apps/services/alg/requirements.txt
new file mode 100644
index 0000000..515b920
--- /dev/null
+++ b/apps/services/alg/requirements.txt
@@ -0,0 +1,2 @@
+flask
+asyncio-nats-client
\ No newline at end of file
diff --git a/apps/services/cert/authorize/src/rbac/rbac.service.ts b/apps/services/cert/authorize/src/rbac/rbac.service.ts
index c146989..564c0c7 100644
--- a/apps/services/cert/authorize/src/rbac/rbac.service.ts
+++ b/apps/services/cert/authorize/src/rbac/rbac.service.ts
@@ -94,6 +94,7 @@ export class RbacService {
* 2. 更新最新的permissions
*/
async initPermission(permissions: PermissionItem[]) {
+ console.log('初始化permission表');
const records = permissions.map((i) => ({
...i,
name: i.name,
diff --git a/apps/services/logger/src/app.controller.ts b/apps/services/logger/src/app.controller.ts
index ca0b9b3..7dc357e 100644
--- a/apps/services/logger/src/app.controller.ts
+++ b/apps/services/logger/src/app.controller.ts
@@ -29,4 +29,9 @@ export class AppController {
async saveLogger(payload: UserSignLoggerDto) {
return 'ok';
}
+
+ @EventPattern({ cmd: 'alg.test' })
+ async algTest(payload) {
+ return 'ok';
+ }
}
diff --git a/architecture.drawio b/architecture.drawio
new file mode 100644
index 0000000..e69de29