职级视图再修:技能节点补词表 level 分带(此前全部落中级带),带间距拉大、技能/岗位分行限排,宽高比 5.2→2.4
This commit is contained in:
+8
-1
@@ -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()})
|
||||
|
||||
Reference in New Issue
Block a user