筛选高级权限修改,基础信息启用禁用修改

This commit is contained in:
dxc
2026-03-03 17:29:21 +08:00
parent 35f602d308
commit e39c3fd030
7 changed files with 178 additions and 139 deletions

View File

@ -174,8 +174,10 @@ class MaterialBaseService:
if type_val is not None and type_val != '':
query = query.filter(MaterialBase.material_type.ilike(type_val.strip()))
# 【核心修改】:增强布尔值解析
if filters.get('isEnabled') is not None:
is_active = bool(int(filters['isEnabled']))
val_str = str(filters['isEnabled']).lower()
is_active = val_str in ['1', 'true', 'yes', 't']
query = query.filter_by(is_enabled=is_active)
# 3. 高级动态筛选
@ -363,6 +365,10 @@ class MaterialBaseService:
if exist:
raise ValueError(f"已存在相同名称和规格的数据 (ID: {exist.id})")
# 【核心修改】:兼容前端传来的布尔值
raw_enabled = data.get('isEnabled', True)
is_enabled_val = str(raw_enabled).lower() in ['1', 'true', 'yes', 't'] if raw_enabled is not None else True
new_material = MaterialBase(
company_name=data.get('companyName'),
name=data['name'],
@ -374,7 +380,7 @@ class MaterialBaseService:
visibility_level=data.get('visibilityLevel'),
manual_link=json.dumps(data.get('generalManual', [])),
product_image=json.dumps(data.get('generalImage', [])),
is_enabled=True if data.get('isEnabled', 1) == 1 else False
is_enabled=is_enabled_val
)
db.session.add(new_material)
@ -408,8 +414,10 @@ class MaterialBaseService:
if 'generalImage' in data:
material.product_image = json.dumps(data['generalImage'])
# 【核心修改】:兼容前端传来的布尔值
if 'isEnabled' in data:
material.is_enabled = bool(int(data['isEnabled']))
raw_enabled = data['isEnabled']
material.is_enabled = str(raw_enabled).lower() in ['1', 'true', 'yes', 't']
db.session.commit()
return material
@ -482,8 +490,11 @@ class MaterialBaseService:
type_val = filters.get('type')
if type_val is not None and type_val != '':
filter_conditions.append(MaterialBase.material_type.ilike(type_val.strip()))
# 【核心修改】:增强布尔值解析
if filters.get('isEnabled') is not None:
is_active = bool(int(filters['isEnabled']))
val_str = str(filters['isEnabled']).lower()
is_active = val_str in ['1', 'true', 'yes', 't']
filter_conditions.append(MaterialBase.is_enabled == is_active)
# 2. 分别查询三个库存表,并 Join MaterialBase 进行筛选
@ -806,4 +817,4 @@ class MaterialBaseService:
except Exception as e:
traceback.print_exc()
raise e
raise e