OutlineNode.razor 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. @using FastReport.Utils;
  2. <div class="fr-webreport-outline-node">
  3. <div class="fr-webreport-outline-text">
  4. @if (HasChildren)
  5. {
  6. <img class="fr-webreport-outline-caret"
  7. src="_content/FastReport.Web/Resources/caret-@(Open ? "down" : "right").svg"
  8. @onclick="OpenChild"/>
  9. }
  10. else
  11. {
  12. <div class="fr-webreport-outline-caret-blank" />
  13. }
  14. <a @onclick="GotoPage">@Cortage.Text</a>
  15. </div>
  16. @if (Open && HasChildren)
  17. {
  18. <div style="width:100%" />
  19. <div class="fr-webreport-outline-children" style="display: block">
  20. <OutlineBase xml="Xml" Top="false" PageChanged="PageChanged" />
  21. </div>
  22. }
  23. </div>
  24. @code {
  25. [Parameter]
  26. public bool HasChildren { get; set; }
  27. [Parameter]
  28. public XmlItem Xml { get; set; }
  29. [Parameter]
  30. public (string Text, int Page, float offset) Cortage { get; set; }
  31. [Parameter]
  32. public bool Open { get; set; }
  33. [Parameter]
  34. public EventCallback<int> PageChanged { get; set; }
  35. private void OpenChild(MouseEventArgs e)
  36. {
  37. Open = !Open;
  38. }
  39. private void GotoPage(MouseEventArgs e)
  40. {
  41. PageChanged.InvokeAsync(Cortage.Page);
  42. }
  43. }