From dfdf2400c1a51b4d6b377dbb2eb030b1854dabba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=B4=C3=B3=C2=B8=C3=A7?= Date: Thu, 26 Feb 2026 16:55:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/login.ts | 26 ++- src/assets/icons/chat-compose.svg | 3 + src/assets/icons/download.svg | 3 + src/assets/icons/edit.svg | 3 + src/assets/icons/expand-lg.svg | 3 + src/components/Canvas/CanvasTest.vue | 4 +- .../FlowCanvas/components/cards/index.vue | 1 + .../components/cards/scene-composition.vue | 2 + .../components/cards/to-real-style.vue | 2 + .../components/result/result-image.vue | 207 ++++++++++++++++-- .../tools/pixel-ratio-selection.vue | 2 + .../Canvas/FlowCanvas/flow-canvas.vue | 32 +-- .../Canvas/FlowCanvas/manager/NodeManager.ts | 11 + src/stores/userInfo.ts | 14 +- src/utils/request.ts | 13 +- src/views/home/index.vue | 6 +- src/views/login/retrieve-password.vue | 10 +- 17 files changed, 287 insertions(+), 55 deletions(-) create mode 100644 src/assets/icons/chat-compose.svg create mode 100644 src/assets/icons/download.svg create mode 100644 src/assets/icons/edit.svg create mode 100644 src/assets/icons/expand-lg.svg create mode 100644 src/components/Canvas/FlowCanvas/manager/NodeManager.ts diff --git a/src/api/login.ts b/src/api/login.ts index 9669560..3ce467f 100644 --- a/src/api/login.ts +++ b/src/api/login.ts @@ -51,11 +51,23 @@ export const Login = (data) => { data }) } +/** + * 退出登录 + * @returns 退出登录成功的响应 +*/ +export const Logout = () => { + return request({ + url: '/api/user/logout', + method: 'post', + loading: true, + }) +} + /** * 忘记密码 * @param data 忘记密码的参数 * @param data.email 邮箱 - * @param data.password 密码 + * @param data.newPassword 新密码 * @param data.verificationCode 验证码 * @returns 忘记密码成功后的token */ @@ -67,3 +79,15 @@ export const ForgetPassword = (data) => { data }) } + +/** + * 获取用户信息 + * @returns 用户信息 +*/ +export const GetUserInfo = () => { + return request({ + url: '/api/user/info', + method: 'get', + loading: true, + }) +} diff --git a/src/assets/icons/chat-compose.svg b/src/assets/icons/chat-compose.svg new file mode 100644 index 0000000..c26df55 --- /dev/null +++ b/src/assets/icons/chat-compose.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/download.svg b/src/assets/icons/download.svg new file mode 100644 index 0000000..ec2a1ae --- /dev/null +++ b/src/assets/icons/download.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/edit.svg b/src/assets/icons/edit.svg new file mode 100644 index 0000000..5cacda0 --- /dev/null +++ b/src/assets/icons/edit.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/expand-lg.svg b/src/assets/icons/expand-lg.svg new file mode 100644 index 0000000..1a150dc --- /dev/null +++ b/src/assets/icons/expand-lg.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Canvas/CanvasTest.vue b/src/components/Canvas/CanvasTest.vue index 4967af9..58f9ae5 100644 --- a/src/components/Canvas/CanvasTest.vue +++ b/src/components/Canvas/CanvasTest.vue @@ -11,7 +11,7 @@ > - + @@ -36,7 +36,7 @@ scale: 1 }) const onMouseDown = (e: MouseEvent) => { - if (e.button !== 1) return + // if (e.button !== 1) return const ox = data.x const oy = data.y const X = e.clientX diff --git a/src/components/Canvas/FlowCanvas/components/cards/index.vue b/src/components/Canvas/FlowCanvas/components/cards/index.vue index 89cdc12..4b7efe2 100644 --- a/src/components/Canvas/FlowCanvas/components/cards/index.vue +++ b/src/components/Canvas/FlowCanvas/components/cards/index.vue @@ -135,6 +135,7 @@ align-items: center; padding-left: 16px; position: relative; + user-select: none; > .c-svg { width: auto; height: auto; diff --git a/src/components/Canvas/FlowCanvas/components/cards/scene-composition.vue b/src/components/Canvas/FlowCanvas/components/cards/scene-composition.vue index 86e1718..8bcf29c 100644 --- a/src/components/Canvas/FlowCanvas/components/cards/scene-composition.vue +++ b/src/components/Canvas/FlowCanvas/components/cards/scene-composition.vue @@ -65,7 +65,9 @@ display: flex; flex-wrap: wrap; gap: 8.29px 5.5px; + user-select: none; > .item { + cursor: pointer; display: flex; align-items: center; justify-content: center; diff --git a/src/components/Canvas/FlowCanvas/components/cards/to-real-style.vue b/src/components/Canvas/FlowCanvas/components/cards/to-real-style.vue index 0747d5f..b61f2b6 100644 --- a/src/components/Canvas/FlowCanvas/components/cards/to-real-style.vue +++ b/src/components/Canvas/FlowCanvas/components/cards/to-real-style.vue @@ -66,6 +66,7 @@ display: flex; flex-wrap: wrap; gap: 10px 4px; + user-select: none; > .item { display: flex; align-items: center; @@ -75,6 +76,7 @@ font-size: 10px; border: 1px solid #e4e4e7; background: #f0f0f0; + cursor: pointer; } } } diff --git a/src/components/Canvas/FlowCanvas/components/result/result-image.vue b/src/components/Canvas/FlowCanvas/components/result/result-image.vue index c711139..c67e034 100644 --- a/src/components/Canvas/FlowCanvas/components/result/result-image.vue +++ b/src/components/Canvas/FlowCanvas/components/result/result-image.vue @@ -1,32 +1,207 @@