diff --git a/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py b/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py
index 4eeba6b..e22b9fe 100644
--- a/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py
+++ b/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py
@@ -108,7 +108,14 @@ class MetadataConfigDao:
db_sec = MetadataSec(**sec.model_dump())
db.add(db_sec)
await db.flush()
- return db_sec
+ return db_sec
+ @classmethod
+ async def get_by_sec_level_summary(cls, query_db: AsyncSession, sec_level_summary: str, exclude_onum: str = None):
+ stmt = select(MetadataSec).where(MetadataSec.sec_level_summary == sec_level_summary)
+ if exclude_onum:
+ stmt = stmt.where(MetadataSec.onum != exclude_onum)
+ result = await query_db.execute(stmt)
+ return result.scalars().first()
@classmethod
async def edit_metadata_sec_dao(cls, db: AsyncSession, onum: str, update_data: dict):
diff --git a/vue-fastapi-backend/module_admin/service/metadata_config_service.py b/vue-fastapi-backend/module_admin/service/metadata_config_service.py
index d015c55..1610175 100644
--- a/vue-fastapi-backend/module_admin/service/metadata_config_service.py
+++ b/vue-fastapi-backend/module_admin/service/metadata_config_service.py
@@ -7,7 +7,7 @@ SecuBizConfigQueryModel,SecuBizPermiConfigModel, SecuBizPermiConfigQueryModel,\
TaskBizConfigAddModel, TaskBizConfigQueryModel,TaskBizConfigModel,TaskBizConfigRelaModel
from utils.common_util import CamelCaseUtil
from module_admin.entity.do.metadata_config_do import SecuBizConfigRela,TaskBizConfigRela # ORM 类
-from exceptions.exception import ServiceException
+from exceptions.exception import ServiceException,ServiceWarning
import uuid
from module_admin.entity.vo.dataSource_vo import ProcessDefinition,ParmScheduleVo,ProcessInstancePage,ParmSchedule
from typing import List
@@ -121,14 +121,19 @@ class MetadataConfigService:
新增数据安全配置
"""
try:
- page_object.onum=str(uuid.uuid4())
+ # 校验 secLevelSummary 是否已存在
+ existing = await MetadataConfigDao.get_by_sec_level_summary( query_db, page_object.sec_level_summary,page_object.onum)
+ if existing:
+ raise ServiceWarning(message=page_object.sec_level_summary+"该等级简称已存在,不能重复")
+
+ page_object.onum = str(uuid.uuid4())
await MetadataConfigDao.add_metadata_sec_dao(query_db, page_object)
await query_db.commit()
return CrudResponseModel(is_success=True, message="新增成功")
except Exception as e:
await query_db.rollback()
raise e
-
+
@classmethod
async def edit_metadata_sec_services(cls, query_db: AsyncSession, page_object: MetadataSecModel):
"""
@@ -138,6 +143,11 @@ class MetadataConfigService:
info = await cls.get_metadata_sec_detail_services(query_db, page_object.onum)
if info.onum:
try:
+ # 校验 secLevelSummary 是否重复(排除当前记录)
+ existing = await MetadataConfigDao.get_by_sec_level_summary( query_db, page_object.sec_level_summary,page_object.onum)
+ if existing:
+ raise ServiceWarning(message=page_object.sec_level_summary+"该等级简称已存在,不能重复")
+
await MetadataConfigDao.edit_metadata_sec_dao(query_db, page_object.onum, edit_data)
await query_db.commit()
return CrudResponseModel(is_success=True, message="更新成功")
@@ -147,6 +157,7 @@ class MetadataConfigService:
else:
raise ServiceException(message="数据安全配置不存在")
+
@classmethod
async def delete_metadata_sec_services(cls, query_db: AsyncSession, onum_list: str):
"""
diff --git a/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue b/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue
index e9a5215..3bde4ec 100644
--- a/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue
+++ b/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue
@@ -507,6 +507,8 @@ onMounted(() => {
getList();
getDeptTree();
getRoleOrUserList();
+ changeMetaSecurityObj(form.value.objType);
+
});
watch(dbResoursName, (val) => {
if (val) {
diff --git a/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue b/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue
index 649ada6..98dcd2e 100644
--- a/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue
+++ b/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue
@@ -57,6 +57,7 @@
stripe
>
+
diff --git a/vue-fastapi-frontend/src/views/metadataConfig/sec/index.vue b/vue-fastapi-frontend/src/views/metadataConfig/sec/index.vue
index d5be39a..9b3bbb8 100644
--- a/vue-fastapi-frontend/src/views/metadataConfig/sec/index.vue
+++ b/vue-fastapi-frontend/src/views/metadataConfig/sec/index.vue
@@ -159,6 +159,7 @@ const form = reactive({
const rules = {
secEffFlag: [{ required: true, message: '请选择有效标志', trigger: 'change' }],
+ secLevelSummary: [{ required: true, message: '请输入等级简称', trigger: 'blur' }],
secLevelName: [{ required: true, message: '请输入等级名称', trigger: 'blur' }]
}
@@ -223,7 +224,7 @@ function submitForm() {
const submitData = { ...form }
delete submitData.updTime // updTime一般后端自动处理
- try {
+
if (title.value.includes('新增')) {
await addMetadataSec(submitData)
ElMessage.success('新增成功')
@@ -233,9 +234,7 @@ function submitForm() {
}
open.value = false
getList()
- } catch (error) {
- ElMessage.error('操作失败,请重试')
- }
+
})
}