|
@@ -19,7 +19,7 @@ from io import BytesIO
|
|
|
from sqlalchemy import and_, asc, desc
|
|
from sqlalchemy import and_, asc, desc
|
|
|
from functools import partial
|
|
from functools import partial
|
|
|
from service.deal_image import DealImage
|
|
from service.deal_image import DealImage
|
|
|
-from databases import DeviceConfig, SysConfigs, SqlQuery, CRUD, select, DeviceConfigTabs
|
|
|
|
|
|
|
+from databases import DeviceConfig, SysConfigs, SqlQuery, CRUD, select, DeviceConfigTabs, CategoryLinks
|
|
|
from service.run_main import RunMain
|
|
from service.run_main import RunMain
|
|
|
import importlib
|
|
import importlib
|
|
|
from service.auto_deal_pics.upload_pic import UploadPic
|
|
from service.auto_deal_pics.upload_pic import UploadPic
|
|
@@ -1058,6 +1058,64 @@ def update_tab_name(params: DeviceConfigTabsReq):
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+@app.get("/get_category_links", description="获取分类关联列表")
|
|
|
|
|
+def get_category_links():
|
|
|
|
|
+ """查询所有分类与Tab配置的关联记录(category_links表)"""
|
|
|
|
|
+ session = SqlQuery()
|
|
|
|
|
+ linkModel = CRUD(CategoryLinks)
|
|
|
|
|
+ links = linkModel.read_all(session, order_by="id", ascending=True)
|
|
|
|
|
+ session.close()
|
|
|
|
|
+ return {"code": 0, "msg": "", "data": {"list": links}}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.post("/save_category_link", description="新增或修改分类关联")
|
|
|
|
|
+def save_category_link(params: CategoryLinksReq):
|
|
|
|
|
+ """新增或修改分类与Tab配置的关联,校验tab_id在device_config_tabs表中是否存在"""
|
|
|
|
|
+ category_name = (params.category_name or "").strip()
|
|
|
|
|
+ if category_name == "":
|
|
|
|
|
+ return {"code": 1, "msg": "分类名称不能为空", "data": None}
|
|
|
|
|
+ session = SqlQuery()
|
|
|
|
|
+ # 校验tab_id在device_config_tabs表中是否存在
|
|
|
|
|
+ tabsModel = CRUD(DeviceConfigTabs)
|
|
|
|
|
+ tab = tabsModel.read(session, conditions={"id": params.tab_id})
|
|
|
|
|
+ if tab == None:
|
|
|
|
|
+ session.close()
|
|
|
|
|
+ return {"code": 1, "msg": "关联的Tab配置不存在,请检查tab_id", "data": None}
|
|
|
|
|
+ linkModel = CRUD(CategoryLinks)
|
|
|
|
|
+ # 同步Tab最新名称,保证tab_name与device_config_tabs表中的mode_name一致
|
|
|
|
|
+ kwargs = {"category_name": category_name, "tab_id": tab.id, "tab_name": tab.mode_name}
|
|
|
|
|
+ if params.id == None or params.id == 0:
|
|
|
|
|
+ # 走新增逻辑,分类名称不允许重复
|
|
|
|
|
+ exist = linkModel.read(session, conditions={"category_name": category_name})
|
|
|
|
|
+ if exist != None:
|
|
|
|
|
+ session.close()
|
|
|
|
|
+ return {"code": 1, "msg": "该分类名称已存在,请勿重复添加", "data": None}
|
|
|
|
|
+ save_link = linkModel.create(session, obj_in=kwargs)
|
|
|
|
|
+ else:
|
|
|
|
|
+ # 走编辑逻辑,先校验记录是否存在
|
|
|
|
|
+ model = linkModel.read(session, conditions={"id": params.id})
|
|
|
|
|
+ if model == None:
|
|
|
|
|
+ session.close()
|
|
|
|
|
+ return {"code": 1, "msg": "数据不存在", "data": None}
|
|
|
|
|
+ save_link = linkModel.update(session, obj_id=params.id, **kwargs)
|
|
|
|
|
+ session.close()
|
|
|
|
|
+ return {"code": 0, "msg": "操作成功", "data": save_link}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.post("/delete_category_link", description="删除分类关联")
|
|
|
|
|
+def delete_category_link(params: ModelGetDeviceConfigDetail):
|
|
|
|
|
+ """根据id删除一条分类与Tab配置的关联记录"""
|
|
|
|
|
+ session = SqlQuery()
|
|
|
|
|
+ linkModel = CRUD(CategoryLinks)
|
|
|
|
|
+ model = linkModel.read(session, conditions={"id": params.id})
|
|
|
|
|
+ if model == None:
|
|
|
|
|
+ session.close()
|
|
|
|
|
+ return {"code": 1, "msg": "数据不存在", "data": None}
|
|
|
|
|
+ linkModel.delete(session, obj_id=params.id)
|
|
|
|
|
+ session.close()
|
|
|
|
|
+ return {"code": 0, "msg": "删除成功", "data": None}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
@app.post("/get_device_configs", description="获取可执行程序命令列表")
|
|
@app.post("/get_device_configs", description="获取可执行程序命令列表")
|
|
|
def get_device_configs(params: ModelGetDeviceConfig):
|
|
def get_device_configs(params: ModelGetDeviceConfig):
|
|
|
tab_id = params.tab_id
|
|
tab_id = params.tab_id
|