From 44f788e4c5e3034bdcb0528beb66986312558b44 Mon Sep 17 00:00:00 2001 From: siyaqi Date: Tue, 16 Dec 2025 19:15:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module_admin/dao/datasec_config_dao.py | 20 +- .../service/datasec_config_service.py | 10 +- .../datastd/main/components/AddEditForm.vue | 395 ++++++++---------- .../meta/metasercurity/MetaSecurityCol.vue | 7 +- .../meta/metasercurity/MetaSecurityRow.vue | 10 +- .../src/views/system/flow/dataStdDictAppr.vue | 21 +- 6 files changed, 217 insertions(+), 246 deletions(-) diff --git a/vue-fastapi-backend/module_admin/dao/datasec_config_dao.py b/vue-fastapi-backend/module_admin/dao/datasec_config_dao.py index 1f346c9..5e6471e 100644 --- a/vue-fastapi-backend/module_admin/dao/datasec_config_dao.py +++ b/vue-fastapi-backend/module_admin/dao/datasec_config_dao.py @@ -75,15 +75,25 @@ class DatasecConfigDao: """ await db.execute(delete(DatasecConfig).where(DatasecConfig.onum.in_([metatask.onum]))) @classmethod - async def check_name_or_param_exist(cls, db: AsyncSession, metatask_name: str, metatask_param: str, exclude_onum: int = None): + async def check_name_or_param_exist(cls, db: AsyncSession, metatask_name: str = None, metatask_param: str = None, exclude_onum: int = None): """ - 检查是否存在相同的任务名称或参数字段,排除指定 onum(用于编辑) + 检查是否存在指定任务名称和参数字段(同时匹配非空的字段),排除指定 onum(用于编辑) """ - stmt = select(DatasecConfig).where( - (DatasecConfig.metatask_name == metatask_name) | (DatasecConfig.metatask_param == metatask_param) - ) + conditions = [] + + if metatask_name: # 不为空才加条件 + conditions.append(DatasecConfig.metatask_name == metatask_name) + + + + if not conditions: # 两个都为空,直接返回 False + return False + + stmt = select(DatasecConfig).where(*conditions) + if exclude_onum: stmt = stmt.where(DatasecConfig.onum != exclude_onum) result = await db.execute(stmt) return result.scalars().first() is not None + diff --git a/vue-fastapi-backend/module_admin/service/datasec_config_service.py b/vue-fastapi-backend/module_admin/service/datasec_config_service.py index 8c94c3d..b3cdbe0 100644 --- a/vue-fastapi-backend/module_admin/service/datasec_config_service.py +++ b/vue-fastapi-backend/module_admin/service/datasec_config_service.py @@ -37,7 +37,7 @@ class DatasecConfigService: # 检查任务名称或参数是否已存在 exists = await DatasecConfigDao.check_name_or_param_exist(db, page_object.metatask_name, page_object.metatask_param) if exists: - raise ServiceException(message="任务名称或参数字段已存在") + raise ServiceException(message="任务名称已存在") # 获取流程配置 processconfig = MetaprocessconfigQueryModel() @@ -79,7 +79,13 @@ class DatasecConfigService: code_list = data["data"] str_list = list(map(str, code_list)) for config in processConfigList: - modified_json_str = config.taskDefinitionJson.replace("18093081592672", str_list[0]).replace("sh /home/xx/code/remote_python_sec.sh", "sh /home/xx/code/remote_python_sec.sh "+page_object.metatask_param) + # 原来的字符串替换 + modified_json_str = config.taskDefinitionJson.replace("18093081592672", str_list[0]) + # 拼接命令时先判断 metatask_param 是否为空 + cmd = "sh /home/xx/code/remote_python_sec.sh" + if page_object.metatask_param: # 只有非空才加参数 + cmd += f" {page_object.metatask_param}" + modified_json_str = modified_json_str.replace("sh /home/xx/code/remote_python_sec.sh", cmd) modified_json_str2=config.taskRelationJson.replace("18093081592672", str_list[0]) modified_json_str3=config.locations.replace("18093081592672", str_list[0]) metaprocessconfig_dict = MetaprocessconfigModel(taskDefinitionJson=modified_json_str,# 替换taskDefinitionJson diff --git a/vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue b/vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue index 6e9b2bd..21ca94e 100644 --- a/vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue +++ b/vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue @@ -1,243 +1,186 @@