feat: 侧边栏分组图标与导航样式优化

- 分组支持 icon 字段,可按名称自动匹配或手动选择
- 左侧导航与总览卡片显示彩色 SVG 图标
- 优化侧栏链接圆角与选中态样式

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-05-30 18:06:42 +08:00
parent 11129cc3a0
commit f7ce6f1058
8 changed files with 250 additions and 24 deletions
+21
View File
@@ -24,6 +24,7 @@ class ServiceGroup(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(120), nullable=False)
icon = db.Column(db.String(16), nullable=False, default="", server_default="")
sort_order = db.Column(db.Integer, nullable=False, default=0)
services = db.relationship(
@@ -33,6 +34,26 @@ class ServiceGroup(db.Model):
cascade="all, delete-orphan",
)
def resolve_icon_key(self) -> str:
key = (self.icon or "").strip().lower()
if key:
return key
name = self.name or ""
lower = name.lower()
if "下单" in name:
return "order"
if "交易" in name:
return "trade"
if "复盘" in name:
return "review"
if "api" in lower:
return "api"
if "gate" in lower or "扫单" in name:
return "gate"
if "k线" in lower or "k 线" in name or "chart" in lower:
return "chart"
return "folder"
class Service(db.Model):
__tablename__ = "services"