Bläddra i källkod

修复页面无法删除多个属性bug

mqk 3 månader sedan
förälder
incheckning
6719515a02

+ 11 - 4
ruoyi_admin/controller/system/sys_compo_conf.py

@@ -1,8 +1,13 @@
 # -*- coding: utf-8 -*-
 # @Author  : YY
 
+from typing import List
+from typing_extensions import Annotated
+from pydantic import BeforeValidator
+
 from ruoyi_common.constant import UserConstants
 from ruoyi_common.base.model import AjaxResponse, TableResponse
+from ruoyi_common.base.transformer import ids_to_str_list
 # from ruoyi_common.domain.entity import SysCompoConf
 from ruoyi_common.domain.entity import SysCompoConf
 from ruoyi_common.domain.enum import BusinessType
@@ -79,12 +84,14 @@ def system_compoinfo_conf_update(dto:SysCompoConf):
     return AjaxResponse.from_success() if flag else AjaxResponse.from_error()
 
 
-@reg.api.route("/system/moduleConf/compoConf/<string:id>", methods=["DELETE"])
+@reg.api.route("/system/moduleConf/compoConf/<ids>", methods=["DELETE"])
 @PathValidator()
 @PreAuthorize(HasPerm("moduleConf:compoConf:remove"))
 @Log(title="套餐配置管理",business_type=BusinessType.DELETE)
 @JsonSerializer()
-def system_compoinfo_conf_delete(id:str):
+def system_compoinfo_conf_delete(
+    ids: Annotated[List[str], BeforeValidator(ids_to_str_list)]
+):
     '''
         删除套餐配置
     '''
@@ -93,6 +100,6 @@ def system_compoinfo_conf_delete(id:str):
     # if SysModuleCompoinfoConfService.check_compoinfo_conf_exist_user(id):
     #     return AjaxResponse.from_error("该套餐配置存在用户,不允许删除")
     # SysModuleCompoinfoConfService.check_compoinfo_conf_data_scope(id)
-    flag = SysModuleCompoinfoConfService.delete_compoinfo_conf_by_id(id)
-    return AjaxResponse.from_success() if flag else AjaxResponse.from_error()
+    flag = SysModuleCompoinfoConfService.delete_compoinfo_conf_by_id(ids)
+    return AjaxResponse.from_success() if flag > 0 else AjaxResponse.from_error()
 

+ 11 - 4
ruoyi_admin/controller/system/sys_price_conf.py

@@ -1,8 +1,13 @@
 # -*- coding: utf-8 -*-
 # @Author  : YY
 
+from typing import List
+from typing_extensions import Annotated
+from pydantic import BeforeValidator
+
 from ruoyi_common.constant import UserConstants
 from ruoyi_common.base.model import AjaxResponse, TableResponse
+from ruoyi_common.base.transformer import ids_to_list
 # from ruoyi_common.domain.entity import SysPriceConf
 from ruoyi_common.domain.entity import SysPriceConf
 from ruoyi_common.domain.enum import BusinessType
@@ -79,12 +84,14 @@ def system_priceinfo_conf_update(dto:SysPriceConf):
     return AjaxResponse.from_success() if flag else AjaxResponse.from_error()
 
 
-@reg.api.route("/system/moduleConf/priceConf/<int:id>", methods=["DELETE"])
+@reg.api.route("/system/moduleConf/priceConf/<ids>", methods=["DELETE"])
 @PathValidator()
 @PreAuthorize(HasPerm("moduleConf:priceConf:remove"))
 @Log(title="价目配置管理",business_type=BusinessType.DELETE)
 @JsonSerializer()
-def system_priceinfo_conf_delete(id:int):
+def system_priceinfo_conf_delete(
+    ids: Annotated[List[int], BeforeValidator(ids_to_list)]
+):
     '''
         删除价目配置
     '''
@@ -93,6 +100,6 @@ def system_priceinfo_conf_delete(id:int):
     # if SysModulePriceinfoConfService.check_priceinfo_conf_exist_user(id):
     #     return AjaxResponse.from_error("该价目配置存在用户,不允许删除")
     # SysModulePriceinfoConfService.check_priceinfo_conf_data_scope(id)
-    flag = SysModulePriceinfoConfService.delete_priceinfo_conf_by_id(id)
-    return AjaxResponse.from_success() if flag else AjaxResponse.from_error()
+    flag = SysModulePriceinfoConfService.delete_priceinfo_conf_by_id(ids)
+    return AjaxResponse.from_success() if flag > 0 else AjaxResponse.from_error()
 

+ 11 - 4
ruoyi_admin/controller/system/sys_product_conf.py

@@ -1,8 +1,13 @@
 # -*- coding: utf-8 -*-
 # @Author  : YY
 
+from typing import List
+from typing_extensions import Annotated
+from pydantic import BeforeValidator
+
 from ruoyi_common.constant import UserConstants
 from ruoyi_common.base.model import AjaxResponse, TableResponse
+from ruoyi_common.base.transformer import ids_to_str_list
 # from ruoyi_common.domain.entity import SysProductConf
 from ruoyi_common.domain.entity import SysProductConf
 from ruoyi_common.domain.enum import BusinessType
@@ -79,12 +84,14 @@ def system_productinfo_conf_update(dto:SysProductConf):
     return AjaxResponse.from_success() if flag else AjaxResponse.from_error()
 
 
-@reg.api.route("/system/moduleConf/productConf/<string:id>", methods=["DELETE"])
+@reg.api.route("/system/moduleConf/productConf/<ids>", methods=["DELETE"])
 @PathValidator()
 @PreAuthorize(HasPerm("moduleConf:productConf:remove"))
 @Log(title="单品配置管理",business_type=BusinessType.DELETE)
 @JsonSerializer()
-def system_productinfo_conf_delete(id:str):
+def system_productinfo_conf_delete(
+    ids: Annotated[List[str], BeforeValidator(ids_to_str_list)]
+):
     '''
         删除单品配置
     '''
@@ -93,6 +100,6 @@ def system_productinfo_conf_delete(id:str):
     # if SysModuleProductinfoConfService.check_productinfo_conf_exist_user(id):
     #     return AjaxResponse.from_error("该单品配置存在用户,不允许删除")
     # SysModuleProductinfoConfService.check_productinfo_conf_data_scope(id)
-    flag = SysModuleProductinfoConfService.delete_productinfo_conf_by_id(id)
-    return AjaxResponse.from_success() if flag else AjaxResponse.from_error()
+    flag = SysModuleProductinfoConfService.delete_productinfo_conf_by_id(ids)
+    return AjaxResponse.from_success() if flag > 0 else AjaxResponse.from_error()
 

+ 11 - 4
ruoyi_admin/controller/system/sys_stuff_info_conf.py

@@ -1,8 +1,13 @@
 # -*- coding: utf-8 -*-
 # @Author  : YY
 
+from typing import List
+from typing_extensions import Annotated
+from pydantic import BeforeValidator
+
 from ruoyi_common.constant import UserConstants
 from ruoyi_common.base.model import AjaxResponse, TableResponse
+from ruoyi_common.base.transformer import ids_to_list
 # from ruoyi_common.domain.entity import SysStuffInfoConf
 from ruoyi_common.domain.entity import SysStuffInfoConf
 from ruoyi_common.domain.enum import BusinessType
@@ -78,12 +83,14 @@ def system_stuffinfo_conf_update(dto:SysStuffInfoConf):
     return AjaxResponse.from_success() if flag else AjaxResponse.from_error()
 
 
-@reg.api.route("/system/moduleConf/stuffInfoConf/<int:id>", methods=["DELETE"])
+@reg.api.route("/system/moduleConf/stuffInfoConf/<ids>", methods=["DELETE"])
 @PathValidator()
 @PreAuthorize(HasPerm("moduleConf:stuffInfoConf:remove"))
 @Log(title="员工配置管理",business_type=BusinessType.DELETE)
 @JsonSerializer()
-def system_stuffinfo_conf_delete(id:int):
+def system_stuffinfo_conf_delete(
+    ids: Annotated[List[int], BeforeValidator(ids_to_list)]
+):
     '''
         删除员工配置
     '''
@@ -92,5 +99,5 @@ def system_stuffinfo_conf_delete(id:int):
     # if SysModuleStuffinfoConfService.check_stuffinfo_conf_exist_user(id):
     #     return AjaxResponse.from_error("该员工配置存在用户,不允许删除")
     # SysModuleStuffinfoConfService.check_stuffinfo_conf_data_scope(id)
-    flag = SysModuleStuffinfoConfService.delete_stuffinfo_conf_by_id(id)
-    return AjaxResponse.from_success() if flag else AjaxResponse.from_error()
+    flag = SysModuleStuffinfoConfService.delete_stuffinfo_conf_by_id(ids)
+    return AjaxResponse.from_success() if flag > 0 else AjaxResponse.from_error()

+ 14 - 1
ruoyi_common/base/transformer.py

@@ -9,6 +9,19 @@ from ruoyi_common.utils.base import DateUtil
 
 def ids_to_list(value: str) -> Optional[List[int]]:
     """
+    验证ids转换为整数列表
+
+    Args:
+        value (str | NoneType): 传入参数
+
+    Returns:
+        Optional[List[int]]: 列表
+    """
+    return [int(i) for i in value.split(',')]
+
+
+def ids_to_str_list(value: str) -> Optional[List[str]]:
+    """
     验证ids转换为字符串列表
 
     Args:
@@ -17,7 +30,7 @@ def ids_to_list(value: str) -> Optional[List[int]]:
     Returns:
         Optional[List[str]]: 列表
     """
-    return [int(i) for i in value.split(',')]
+    return [i.strip() for i in value.split(',') if i.strip()]
 
 
 def to_datetime(format=None) -> Callable[[str | NoneType, ValidationInfo], datetime | NoneType]: