筛选高级权限修改,基础信息启用禁用修改
This commit is contained in:
@ -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),
|
||||
}
|
||||
@ -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
|
||||
Reference in New Issue
Block a user