From 7f5a6f3e3f4cf2ec510a495c6e22cbf8cbd43733 Mon Sep 17 00:00:00 2001 From: junjun Date: Thu, 5 Jun 2025 10:12:36 +0800 Subject: [PATCH] feat(datasource): datasource api --- backend/apps/datasource/api/datasource.py | 14 ++++++++++++-- backend/apps/datasource/crud/datasource.py | 8 ++++++++ frontend/src/views/ds/DatasourceItemCard.vue | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/backend/apps/datasource/api/datasource.py b/backend/apps/datasource/api/datasource.py index 52b515b7..bec379b5 100644 --- a/backend/apps/datasource/api/datasource.py +++ b/backend/apps/datasource/api/datasource.py @@ -9,10 +9,10 @@ from fastapi import APIRouter, File, UploadFile, HTTPException from apps.db.engine import create_table, get_data_engine, insert_data from common.core.deps import SessionDep, CurrentUser from ..crud.datasource import get_datasource_list, check_status, create_ds, update_ds, delete_ds, getTables, getFields, \ - execSql, update_table_and_fields, getTablesByDs, chooseTables, preview + execSql, update_table_and_fields, getTablesByDs, chooseTables, preview, updateTable, updateField from ..crud.field import get_fields_by_table_id from ..crud.table import get_tables_by_ds_id -from ..models.datasource import CoreDatasource, CreateDatasource, TableObj, CoreTable +from ..models.datasource import CoreDatasource, CreateDatasource, TableObj, CoreTable, CoreField router = APIRouter(tags=["datasource"], prefix="/datasource") path = "/opt/sqlbot/data/excel" @@ -83,6 +83,16 @@ async def edit_local(session: SessionDep, data: TableObj): update_table_and_fields(session, data) +@router.post("/editTable") +async def edit_table(session: SessionDep, table: CoreTable): + updateTable(session, table) + + +@router.post("/editField") +async def edit_field(session: SessionDep, field: CoreField): + updateField(session, field) + + @router.post("/previewData/{id}") async def edit_local(session: SessionDep, id: int, data: TableObj): return preview(session, id, data) diff --git a/backend/apps/datasource/crud/datasource.py b/backend/apps/datasource/crud/datasource.py index 1ca5b222..37d83a27 100644 --- a/backend/apps/datasource/crud/datasource.py +++ b/backend/apps/datasource/crud/datasource.py @@ -192,6 +192,14 @@ def update_table_and_fields(session: SessionDep, data: TableObj): update_field(session, field) +def updateTable(session: SessionDep, table: CoreTable): + update_table(session, table) + + +def updateField(session: SessionDep, field: CoreField): + update_field(session, field) + + def preview(session: SessionDep, id: int, data: TableObj): ds = session.query(CoreDatasource).filter(CoreDatasource.id == id).first() conf = DatasourceConf(**json.loads(aes_decrypt(ds.configuration))) if ds.type != "excel" else get_engine_config() diff --git a/frontend/src/views/ds/DatasourceItemCard.vue b/frontend/src/views/ds/DatasourceItemCard.vue index 5cd48d9c..c3709a79 100644 --- a/frontend/src/views/ds/DatasourceItemCard.vue +++ b/frontend/src/views/ds/DatasourceItemCard.vue @@ -44,7 +44,7 @@ const getStatus = (status: string) => {
{{ ds.description }}
{{ datetimeFormat(ds.create_time) }}
-
{{ ds.status }}
+