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

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

@ -12,7 +12,6 @@ class MaterialBase(db.Model):
# 1. 基础字段
id = db.Column(db.Integer, primary_key=True)
# [修改] 所属公司,去除了 default='IRIS'
company_name = db.Column(db.String(255), comment='所属公司')
name = db.Column(db.String(255), nullable=False, comment='名称')
@ -77,5 +76,6 @@ class MaterialBase(db.Model):
'visibilityLevel': self.visibility_level,
'generalManual': parse_list(self.manual_link),
'generalImage': parse_list(self.product_image),
'isEnabled': 1 if self.is_enabled else 0,
# 【核心修改】:直接返回布尔值,不再转成 1 或 0
'isEnabled': bool(self.is_enabled),
}

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