@php $point = $knowledgePoint ?? null; $phaseParam = request()->query('phase'); @endphp @if($point)

{{ $point['cn_name'] }}

{{ $point['kp_code'] }}

{{ $point['category'] ?? '未分类' }} {{ $point['phase'] ?? '未知学段' }} @if($point['grade']) {{ $point['grade'] }}年级 @endif
@if(!empty($point['edge_summary']))

图谱统计

{{ $point['depth'] ?? 0 }}

图谱层数

{{ count($point['prerequisite_kps'] ?? []) }}

前置必修

{{ count($point['post_kps'] ?? []) }}

可进阶

{{ count($point['related_kps'] ?? []) }}

平行关联

@endif

知识关系图谱

💡 点击节点查看技能详情,支持拖拽和缩放

前置必修
当前知识点
可进阶
平行关联
@php $parentNodes = $point['parent_nodes'] ?? []; $childNodes = $point['child_nodes'] ?? []; @endphp @if(!empty($parentNodes) || !empty($childNodes))

前置必修

这些知识点是进入当前节点的基础

{{ count($parentNodes) }} 个
@forelse($parentNodes as $parent)

{{ $parent['cn_name'] ?? $parent['kp_code'] ?? '未命名父节点' }}

{{ $parent['kp_code'] ?? '未知编号' }}

@if(!empty($parent['phase'])) {{ $parent['phase'] }} @endif @if(!empty($parent['grade'])) {{ $parent['grade'] }}年级 @endif @if(!empty($parent['category'])) {{ $parent['category'] }} @endif
@if(!empty($parent['kp_code'])) 查看 @endif
@if(!empty($parent['description']))

{{ Str::limit($parent['description'], 110) }}

@endif
@empty

暂无前置必修,可能是一级知识点。

@endforelse

可进阶

掌握当前节点后可继续学习的内容

{{ count($childNodes) }} 个
@forelse($childNodes as $child)

{{ $child['cn_name'] ?? $child['kp_code'] ?? '未命名子节点' }}

{{ $child['kp_code'] ?? '未知编号' }}

@if(!empty($child['phase'])) {{ $child['phase'] }} @endif @if(!empty($child['grade'])) {{ $child['grade'] }}年级 @endif @if(!empty($child['category'])) {{ $child['category'] }} @endif
@if(!empty($child['kp_code'])) 查看 @endif
@if(!empty($child['description']))

{{ Str::limit($child['description'], 110) }}

@endif
@empty

暂无可进阶知识点。

@endforelse
@endif
@if(!empty($point['prerequisite_kps']))

前置必修

{{ count($point['prerequisite_kps']) }} 项
@foreach($point['prerequisite_kps'] as $item)

{{ $item['cn_name'] ?? '' }}

{{ $item['kp_code'] ?? '' }}

@if(isset($item['distance'])) 距 {{ $item['distance'] }} 层 @endif
@if(!empty($item['skills']))
技能: {{ count($item['skills']) }} 项
@endif
@endforeach
@endif @if(!empty($point['related_kps']))

平行关联

{{ count($point['related_kps']) }} 项
@foreach($point['related_kps'] as $item)

{{ $item['cn_name'] ?? '' }}

{{ $item['kp_code'] ?? '' }}

@if(isset($item['edge']['relation_type'])) {{ $item['edge']['relation_type'] }} @endif
@if(!empty($item['skills']))
技能: {{ count($item['skills']) }} 项
@endif
@endforeach
@endif @if(!empty($point['post_kps']))

可进阶

{{ count($point['post_kps']) }} 项
@foreach($point['post_kps'] as $item)

{{ $item['cn_name'] ?? '' }}

{{ $item['kp_code'] ?? '' }}

@if(isset($item['distance'])) 距 {{ $item['distance'] }} 层 @endif
@if(!empty($item['skills']))
技能: {{ count($item['skills']) }} 项
@endif
@endforeach
@endif

知识点技能关系网

💡 使用紧凑树状布局展示知识点与技能的关联强弱,权重越高越靠近中心。

知识点
技能节点

当前知识点技能 ({{ count($point['skills']) }} 项)

列表按原始顺序展示,可与上方关系网互相对照。

@if(!empty($point['skills']))
@foreach($point['skills'] as $skill)

{{ $skill['skill_name'] }}

{{ $skill['skill_type'] }}
权重 {{ number_format(($skill['weight'] ?? 0) * 100, 1) }}%
@if(!empty($skill['description']))

{{ Str::limit($skill['description'], 100) }}

@endif
@endforeach
@else

该知识点暂无技能配置

@endif
@else

未找到指定的知识点

@endif @push('scripts') @endpush