Fix empty type filter dropdown in raw material library

- Modified load_sub_categories() to show all subcategories when "全部类目" is selected
- Fixed category creation logic to support all major categories, not just "布料"
- Improved subcategory filtering to work properly with existing data

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-21 23:49:04 +08:00
parent 50a70ff59f
commit e5c6865318

View File

@@ -474,22 +474,30 @@ class RawMaterialLibraryDialog(QDialog):
self.sub_combo.blockSignals(True) self.sub_combo.blockSignals(True)
self.sub_combo.clear() self.sub_combo.clear()
self.sub_combo.addItem("全部类型") self.sub_combo.addItem("全部类型")
if major in ("全部类目", ""):
self.sub_combo.blockSignals(False)
self.load_table()
return
try: try:
with self.get_conn() as conn: with self.get_conn() as conn:
cursor = conn.execute("SELECT category FROM fabrics WHERE category LIKE ? OR category = ?", (major + "-%", major)) if major in ("全部类目", ""):
subs = set() # 如果选择"全部类目",显示所有子类型
for row in cursor.fetchall(): cursor = conn.execute("SELECT DISTINCT category FROM fabrics WHERE category LIKE '%-%'")
cat = row[0] subs = set()
if '-' in cat: for row in cursor.fetchall():
subs.add(cat.split('-', 1)[1]) cat = row[0]
self.sub_combo.addItems(sorted(subs)) if '-' in cat:
subs.add(cat.split('-', 1)[1])
self.sub_combo.addItems(sorted(subs))
else:
# 显示特定主类目下的子类型
cursor = conn.execute("SELECT category FROM fabrics WHERE category LIKE ? OR category = ?", (major + "-%", major))
subs = set()
for row in cursor.fetchall():
cat = row[0]
if '-' in cat:
subs.add(cat.split('-', 1)[1])
self.sub_combo.addItems(sorted(subs))
except: except:
pass pass
self.sub_combo.blockSignals(False) self.sub_combo.blockSignals(False)
self.load_table() self.load_table()
@@ -659,7 +667,10 @@ class RawMaterialLibraryDialog(QDialog):
if "胸杯" in sub: if "胸杯" in sub:
major = "辅料" major = "辅料"
category = "布料-" + sub if major == "布料" and sub else (sub or major) if major and sub:
category = major + "-" + sub
else:
category = sub or major
supplier = self.add_supplier.currentText().strip() supplier = self.add_supplier.currentText().strip()
color = self.add_color.text().strip() color = self.add_color.text().strip()