mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
refactor: dashboard preview
This commit is contained in:
@@ -2,12 +2,13 @@
|
||||
from fastapi import APIRouter, File, UploadFile, HTTPException
|
||||
|
||||
from apps.dashboard.crud.dashboard_service import get_dashboard_list, preview_with_id,create_dashboard
|
||||
from apps.dashboard.models.dashboard_model import CreateDashboard
|
||||
from apps.dashboard.models.dashboard_model import CreateDashboard, DashboardResponse
|
||||
from common.core.deps import SessionDep, CurrentUser
|
||||
from typing import List
|
||||
|
||||
router = APIRouter(tags=["dashboard"], prefix="/dashboard")
|
||||
|
||||
@router.get("/list")
|
||||
@router.post("/list", response_model=List[DashboardResponse])
|
||||
async def datasource_list(session: SessionDep):
|
||||
return get_dashboard_list(session=session)
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
from select import select
|
||||
from sqlalchemy import select
|
||||
from apps.dashboard.models.dashboard_model import CoreDashboard, CreateDashboard
|
||||
from common.core.deps import SessionDep, CurrentUser
|
||||
import uuid
|
||||
def get_dashboard_list(session: SessionDep):
|
||||
statement = select(CoreDashboard).order_by(CoreDashboard.create_time.desc())
|
||||
statement = select(CoreDashboard)
|
||||
dashboard_list = session.exec(statement).fetchall()
|
||||
return dashboard_list
|
||||
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
from sqlmodel import SQLModel, Field
|
||||
from sqlalchemy import String, Column, Text, SmallInteger, BigInteger, Integer,DateTime
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class CoreDashboard(SQLModel, table=True):
|
||||
__tablename__ = "core_dashboard"
|
||||
|
||||
id: str = Field(
|
||||
sa_column=Column(String(50), nullable=False, primary_key=True)
|
||||
)
|
||||
@@ -124,6 +122,37 @@ class CoreDashboard(SQLModel, table=True):
|
||||
sa_column=Column(String(50), nullable=True)
|
||||
)
|
||||
|
||||
class DashboardResponse(BaseModel):
|
||||
id: Optional[str] = None
|
||||
name: Optional[str] = None
|
||||
pid: Optional[str] = None
|
||||
workspace_id: Optional[str] = None
|
||||
org_id: Optional[str] = None
|
||||
level: Optional[int] = None
|
||||
node_type: Optional[str] = None
|
||||
type: Optional[str] = None
|
||||
canvas_style_data: Optional[str] = None
|
||||
component_data: Optional[str] = None
|
||||
mobile_layout: Optional[int] = None
|
||||
status: Optional[int] = None
|
||||
self_watermark_status: Optional[int] = None
|
||||
sort: Optional[int] = None
|
||||
create_time: Optional[int] = None # 或者用 datetime 类型
|
||||
create_by: Optional[str] = None
|
||||
update_time: Optional[int] = None # 或者用 datetime 类型
|
||||
update_by: Optional[str] = None
|
||||
remark: Optional[str] = None
|
||||
source: Optional[str] = None
|
||||
delete_flag: Optional[int] = None
|
||||
delete_time: Optional[int] = None
|
||||
delete_by: Optional[str] = None
|
||||
version: Optional[int] = None
|
||||
content_id: Optional[str] = None
|
||||
check_version: Optional[str] = None
|
||||
|
||||
class Config:
|
||||
orm_mode = True # 允许从 ORM 对象加载
|
||||
|
||||
# dashboard create obj
|
||||
class CreateDashboard(BaseModel):
|
||||
id: str = ''
|
||||
|
||||
@@ -33,7 +33,7 @@ dependencies = [
|
||||
"openpyxl (>=3.1.5,<4.0.0)",
|
||||
"psycopg2-binary (>=2.9.10,<3.0.0)",
|
||||
"oracledb (>=3.1.1,<4.0.0)",
|
||||
"pyyaml (>=6.0.2,<7.0.0)"
|
||||
"pyyaml (>=6.0.2,<7.0.0)",
|
||||
]
|
||||
[[tool.uv.index]]
|
||||
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { request } from '@/utils/request'
|
||||
|
||||
export const dashboardApi = {
|
||||
list: () => request.get('/dashboard/list'),
|
||||
list: (params: any) => request.post('/dashboard/list',params),
|
||||
getDashboardInfo: (params:any) => request.post(`/dashboard/get_dashboard/${params.id}`,params),
|
||||
sqNameCheck: (data: any) => request.post('/dashboard/name_check',data),
|
||||
moveResource: (data: any) => request.post('/dashboard/move',data),
|
||||
|
||||
@@ -16,6 +16,7 @@ import router from '@/router'
|
||||
import {dashboardStoreWithOut} from "@/stores/dashboard/dashboard.ts";
|
||||
import HandleMore from "@/views/dashboard/common/HandleMore.vue";
|
||||
import ResourceGroupOpt from "@/views/dashboard/common/ResourceGroupOpt.vue";
|
||||
import {dashboardApi} from "@/api/dashboard.ts";
|
||||
|
||||
const dashboardStore = dashboardStoreWithOut()
|
||||
const resourceGroupOptRef = ref(null)
|
||||
@@ -115,7 +116,11 @@ const nodeClick = (data: SQTreeNode, node: any) => {
|
||||
|
||||
const getTree = async () => {
|
||||
state.originResourceTree = []
|
||||
afterTreeInit()
|
||||
const params = {}
|
||||
dashboardApi.list(params).then((res: SQTreeNode[]) => {
|
||||
state.originResourceTree = res?.data || []
|
||||
afterTreeInit()
|
||||
})
|
||||
}
|
||||
// @ts-ignore
|
||||
const flattedTree = computed<SQTreeNode[]>(() => {
|
||||
|
||||
Reference in New Issue
Block a user