diff --git a/backend/apps/dashboard/api/dashboard_api.py b/backend/apps/dashboard/api/dashboard_api.py index 21fb58f1..17de0030 100644 --- a/backend/apps/dashboard/api/dashboard_api.py +++ b/backend/apps/dashboard/api/dashboard_api.py @@ -44,5 +44,5 @@ async def update_canvas_api(session: SessionDep, user: CurrentUser, dashboard: C @router.post("/check_name") -async def check_name_api(session: SessionDep, dashboard: QueryDashboard): - return validate_name(session, dashboard) +async def check_name_api(session: SessionDep, user: CurrentUser, dashboard: QueryDashboard): + return validate_name(session, user, dashboard) diff --git a/backend/apps/dashboard/crud/dashboard_service.py b/backend/apps/dashboard/crud/dashboard_service.py index 1613e51e..6abc5df4 100644 --- a/backend/apps/dashboard/crud/dashboard_service.py +++ b/backend/apps/dashboard/crud/dashboard_service.py @@ -99,19 +99,18 @@ def update_canvas(session: SessionDep, user: CurrentUser, dashboard: CreateDashb return record -def validate_name(session: SessionDep, dashboard: QueryDashboard) -> bool: - if not dashboard.workspace_id: - raise ValueError("workspace_id is required") - if not dashboard.pid: - raise ValueError("pid is required") +def validate_name(session: SessionDep,user: CurrentUser, dashboard: QueryDashboard) -> bool: if not dashboard.opt: raise ValueError("opt is required") + oid = str(user.oid if user.oid is not None else 1) + uid = str(user.id) + if dashboard.opt in ('newLeaf', 'newFolder'): query = session.query(CoreDashboard).filter( and_( - CoreDashboard.workspace_id == dashboard.workspace_id, - CoreDashboard.pid == dashboard.pid, + CoreDashboard.workspace_id == oid, + CoreDashboard.create_by == uid, CoreDashboard.name == dashboard.name ) ) @@ -120,8 +119,8 @@ def validate_name(session: SessionDep, dashboard: QueryDashboard) -> bool: raise ValueError("id is required for update operation") query = session.query(CoreDashboard).filter( and_( - CoreDashboard.workspace_id == dashboard.workspace_id, - CoreDashboard.pid == dashboard.pid, + CoreDashboard.workspace_id == oid, + CoreDashboard.create_by == uid, CoreDashboard.name == dashboard.name, CoreDashboard.id != dashboard.id ) diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index 83491765..197e303e 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -32,6 +32,8 @@ "password_reset_successful": "Password reset successful" }, "dashboard": { + "name_repeat": "Name Repeat", + "rich_text_tips": "Double-click to enter text content", "exit_preview": "Exit preview", "no_chat": "No conversations", "today": "Today", @@ -471,4 +473,4 @@ "back_community": "Restore to Community Edition", "confirm_tips": "Are you sure to restore to Community Edition?" } -} \ No newline at end of file +} diff --git a/frontend/src/i18n/zh-CN.json b/frontend/src/i18n/zh-CN.json index aa4dca7e..a97339a7 100644 --- a/frontend/src/i18n/zh-CN.json +++ b/frontend/src/i18n/zh-CN.json @@ -34,6 +34,8 @@ "password_reset_successful": "重置密码成功" }, "dashboard": { + "name_repeat": "仪表板名称已被使用", + "rich_text_tips": "双击输入文本内容", "exit_preview": "退出预览", "no_chat": "暂无对话", "today": "今日", @@ -483,4 +485,4 @@ "back_community": "还原至社区版", "confirm_tips": "确定还原至社区版?" } -} \ No newline at end of file +} diff --git a/frontend/src/views/dashboard/canvas/ResizeHandle.vue b/frontend/src/views/dashboard/canvas/ResizeHandle.vue index 00ddef36..92913f0a 100644 --- a/frontend/src/views/dashboard/canvas/ResizeHandle.vue +++ b/frontend/src/views/dashboard/canvas/ResizeHandle.vue @@ -28,8 +28,8 @@ function getPointStyle(point: string) { // Points at the four corners if (point.length === 2) { - newLeft = hasL ? '0px' : '100%' - newTop = hasT ? '0px' : '100%' + newLeft = hasL ? '3px' : 'calc(100% - 3px)' + newTop = hasT ? '3px' : 'calc(100% - 3px)' } else { // The point between the upper and lower points, with a width centered if (hasT || hasB) { diff --git a/frontend/src/views/dashboard/components/component-list.ts b/frontend/src/views/dashboard/components/component-list.ts index f287d0c7..24e29e10 100644 --- a/frontend/src/views/dashboard/components/component-list.ts +++ b/frontend/src/views/dashboard/components/component-list.ts @@ -49,7 +49,7 @@ const COMPONENT_LIST = [ component: 'SQText', name: 'new text', locked: false, - propValue: 'Double click to edit text', + propValue: null, editing: false, x: 1, y: 1, diff --git a/frontend/src/views/dashboard/components/sq-text/index.vue b/frontend/src/views/dashboard/components/sq-text/index.vue index 64e4d116..5ad3fcb1 100644 --- a/frontend/src/views/dashboard/components/sq-text/index.vue +++ b/frontend/src/views/dashboard/components/sq-text/index.vue @@ -1,7 +1,17 @@