diff --git a/inventory-backend/app/models/base.py b/inventory-backend/app/models/base.py index 21e5210..afb5ceb 100644 --- a/inventory-backend/app/models/base.py +++ b/inventory-backend/app/models/base.py @@ -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), } \ No newline at end of file diff --git a/inventory-backend/app/services/inbound/base_service.py b/inventory-backend/app/services/inbound/base_service.py index ebed5ba..a759821 100644 --- a/inventory-backend/app/services/inbound/base_service.py +++ b/inventory-backend/app/services/inbound/base_service.py @@ -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 \ No newline at end of file diff --git a/inventory-web/package.json b/inventory-web/package.json index 89922c3..e702802 100644 --- a/inventory-web/package.json +++ b/inventory-web/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@types/node": "^24.10.1", - "@vitejs/plugin-basic-ssl": "^1.1.0", + "@vitejs/plugin-basic-ssl": "^1.2.0", "@vitejs/plugin-vue": "^6.0.1", "@vue/tsconfig": "^0.8.1", "typescript": "~5.9.3", @@ -35,4 +35,4 @@ "overrides": { "vite": "npm:rolldown-vite@7.2.5" } -} \ No newline at end of file +} diff --git a/inventory-web/src/views/material/list.vue b/inventory-web/src/views/material/list.vue index d1a1742..8a29c79 100644 --- a/inventory-web/src/views/material/list.vue +++ b/inventory-web/src/views/material/list.vue @@ -58,8 +58,8 @@ style="width: 100px; margin-right: 10px;" @change="handleQuery" > - - + + 搜索 @@ -70,26 +70,26 @@ title="高级筛选" width="600" trigger="manual"> - -
-
- - - - - - - - 删除 -
-
- 添加条件 - 应用筛选 - 重置 -
+ +
+
+ + + + + + + + 删除
+
+ 添加条件 + 应用筛选 + 重置 +
+
@@ -117,7 +117,7 @@ - + @@ -125,18 +125,18 @@
列展示设置
- - - - - - - - - - - - + + + + + + + + + + + +
@@ -235,8 +235,8 @@