full-report-overlay.component.html 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. @if (visible) {
  2. <div class="overlay">
  3. <div class="report-container" (click)="$event.stopPropagation()">
  4. <div class="report-header">
  5. <h2>完整分析报告</h2>
  6. <button class="close-btn" (click)="onClose()">关闭</button>
  7. </div>
  8. <div class="report-body">
  9. <!-- 颜色分析 -->
  10. @if (colorResult) {
  11. <section class="section">
  12. <h3>颜色分析</h3>
  13. <div class="color-grid">
  14. @for (c of colorResult.colors; track c.hex) {
  15. <div class="color-item">
  16. <div class="swatch" [style.background-color]="c.hex"></div>
  17. <div class="meta">
  18. <span class="hex">{{ c.hex }}</span>
  19. <span class="pct">{{ c.percentage }}%</span>
  20. </div>
  21. </div>
  22. }
  23. </div>
  24. </section>
  25. }
  26. <!-- CAD洞察 -->
  27. @if (cadResult) {
  28. <section class="section">
  29. <h3>CAD结构与空间洞察</h3>
  30. <div class="subsection">
  31. <h4>结构要素</h4>
  32. <ul>
  33. @for (el of cadResult.structuralElements; track el.type + el.position) {
  34. <li>{{ el.type }} · 位置:{{ el.position }} · {{ el.changeable ? '可调整' : '不可调整' }}</li>
  35. }
  36. </ul>
  37. </div>
  38. <div class="subsection">
  39. <h4>空间指标</h4>
  40. <ul>
  41. @for (m of cadResult.spaceMetrics; track m.room) {
  42. <li>{{ m.room }} · 比例:{{ m.ratio }} · 通道宽:{{ m.width }}</li>
  43. }
  44. </ul>
  45. </div>
  46. <div class="subsection">
  47. <h4>动线与规范</h4>
  48. <ul>
  49. @for (f of cadResult.flowMetrics; track f.area) {
  50. <li>{{ f.area }} · 宽度:{{ f.width }} · {{ f.compliance ? '符合规范' : '需优化' }}</li>
  51. }
  52. </ul>
  53. </div>
  54. </section>
  55. }
  56. </div>
  57. </div>
  58. </div>
  59. }