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:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user