职级视图再修:技能节点补词表 level 分带(此前全部落中级带),带间距拉大、技能/岗位分行限排,宽高比 5.2→2.4

This commit is contained in:
RoyirinRosmontis
2026-08-20 12:25:13 +08:00
parent ed1b1777b5
commit beccaa4b6b
2 changed files with 16 additions and 9 deletions
+8 -1
View File
@@ -327,9 +327,16 @@ def restart_service() -> dict:
@app.get("/api/graph")
def graph() -> dict:
"""返回节点与边(含时间区间)与演化事件,供前端渲染全景图谱。"""
"""返回节点与边(含时间区间)与演化事件,供前端渲染全景图谱。
技能节点附带词表 level(L1/L2/L3),前端职级演进视图按此分带。
"""
kg = _get_kg()
nodes = [{"id": n, **d} for n, d in kg.g.nodes(data=True)]
skill_lv = {s["name"]: s.get("level") for s in load_lexicon(resolve(_cfg, "lexicon_path"))["skills"]}
for n in nodes:
if n.get("type") == "Skill" and not n.get("level"):
n["level"] = skill_lv.get(n["id"], "L2")
edges = [{"source": u, "target": v, **d} for u, v, d in kg.g.edges(data=True)]
events = sorted((e.model_dump() for e in kg.events), key=lambda e: e["window"])
return _ok({"nodes": nodes, "edges": edges, "events": events, "stats": kg.stats()})