From f46b7212f5c563ff7591690ad5d27a7177281313 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Wed, 11 Jun 2025 17:00:18 +0800 Subject: [PATCH] refactor: preview head --- backend/apps/dashboard/api/dashboard_api.py | 2 +- .../apps/dashboard/crud/dashboard_service.py | 15 +- .../apps/dashboard/models/dashboard_model.py | 4 + frontend/package.json | 2 + frontend/src/stores/dashboard/dashboard.ts | 6 +- .../dashboard/common/DashboardDetailInfo.vue | 21 ++- .../dashboard/components/sq-tab/index.vue | 19 +- frontend/src/views/dashboard/editor/index.vue | 1 - .../dashboard/preview/SQComponentWrapper.vue | 73 ++++++++ .../src/views/dashboard/preview/SQPreview.vue | 163 +++++++++++++++++- .../views/dashboard/preview/SQPreviewHead.vue | 32 ++-- .../views/dashboard/preview/SQPreviewShow.vue | 45 ++--- .../src/views/dashboard/utils/canvasUtils.ts | 14 +- 13 files changed, 325 insertions(+), 72 deletions(-) create mode 100644 frontend/src/views/dashboard/preview/SQComponentWrapper.vue diff --git a/backend/apps/dashboard/api/dashboard_api.py b/backend/apps/dashboard/api/dashboard_api.py index 6ea7a416..f290d8d3 100644 --- a/backend/apps/dashboard/api/dashboard_api.py +++ b/backend/apps/dashboard/api/dashboard_api.py @@ -2,7 +2,7 @@ from fastapi import APIRouter, File, UploadFile, HTTPException from apps.dashboard.crud.dashboard_service import list_resource, load_resource, \ create_resource, create_canvas, validate_name, delete_resource, update_resource, update_canvas -from apps.dashboard.models.dashboard_model import CreateDashboard, BaseDashboard, QueryDashboard +from apps.dashboard.models.dashboard_model import CreateDashboard, BaseDashboard, QueryDashboard,DashboardResponse from common.core.deps import SessionDep, CurrentUser router = APIRouter(tags=["dashboard"], prefix="/dashboard") diff --git a/backend/apps/dashboard/crud/dashboard_service.py b/backend/apps/dashboard/crud/dashboard_service.py index 83064acd..8f6c6ceb 100644 --- a/backend/apps/dashboard/crud/dashboard_service.py +++ b/backend/apps/dashboard/crud/dashboard_service.py @@ -24,8 +24,19 @@ def list_resource(session: SessionDep, dashboard: QueryDashboard): return tree -def load_resource(session: SessionDep,dashboard: QueryDashboard): - return session.query(CoreDashboard).filter(CoreDashboard.id == dashboard.id).first() +def load_resource(session: SessionDep, dashboard: QueryDashboard): + sql = text(""" + SELECT cd.*, + creator.name AS create_name, + updator.name AS update_name + FROM core_dashboard cd + LEFT JOIN sys_user creator ON cd.create_by = creator.id::varchar + LEFT JOIN sys_user updator + ON cd.update_by = updator.id:: varchar + WHERE cd.id = :dashboard_id + """) + result = session.execute(sql, {"dashboard_id": dashboard.id}).mappings().first() + return result def get_create_base_info(user: CurrentUser, dashboard: CreateDashboard): diff --git a/backend/apps/dashboard/models/dashboard_model.py b/backend/apps/dashboard/models/dashboard_model.py index 20e14e4f..6104c7da 100644 --- a/backend/apps/dashboard/models/dashboard_model.py +++ b/backend/apps/dashboard/models/dashboard_model.py @@ -133,6 +133,10 @@ class DashboardBaseResponse(BaseModel): update_time: Optional[int] = None children: List['DashboardBaseResponse'] = [] +class DashboardResponse(CoreDashboard): + update_name: Optional[str] = None + create_name: Optional[str] = None + class BaseDashboard(BaseModel): id: str = '' name: str = '' diff --git a/frontend/package.json b/frontend/package.json index 032ddb4f..041a7350 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -16,6 +16,7 @@ "dayjs": "^1.11.13", "element-plus": "^2.10.1", "element-plus-secondary": "^1.0.0", + "element-resize-detector": "^1.2.4", "lodash": "^4.17.21", "lodash-es": "^4.17.21", "snowflake-id": "^1.1.0", @@ -28,6 +29,7 @@ "devDependencies": { "@element-plus/icons-vue": "^2.3.1", "@types/crypto-js": "^4.2.2", + "@types/element-resize-detector": "^1.1.6", "@types/node": "^22.14.1", "@vitejs/plugin-vue": "^5.2.2", "@vue/tsconfig": "^0.7.0", diff --git a/frontend/src/stores/dashboard/dashboard.ts b/frontend/src/stores/dashboard/dashboard.ts index 2bf9cb7d..a747a014 100644 --- a/frontend/src/stores/dashboard/dashboard.ts +++ b/frontend/src/stores/dashboard/dashboard.ts @@ -20,12 +20,12 @@ export const dashboardStore = defineStore('dashboard', { workspaceId: null, status: null, dataState: null, - type: null, - creatorName: null, + createName: null, updateName: null, createTime: null, updateTime: null, - contentId: null + contentId: null, + type: null } } }, diff --git a/frontend/src/views/dashboard/common/DashboardDetailInfo.vue b/frontend/src/views/dashboard/common/DashboardDetailInfo.vue index 5b82e301..5e3816f9 100644 --- a/frontend/src/views/dashboard/common/DashboardDetailInfo.vue +++ b/frontend/src/views/dashboard/common/DashboardDetailInfo.vue @@ -4,12 +4,12 @@ Dashboard ID