layout-nav.component.html 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <ng-template #icon let-i>
  2. <ng-container *ngIf="i" [ngSwitch]="i.type">
  3. <i
  4. *ngSwitchCase="'icon'"
  5. class="sidebar-nav__item-icon"
  6. nz-icon
  7. [nzType]="i.value"
  8. [nzTheme]="i.theme"
  9. [nzSpin]="i.spin"
  10. [nzTwotoneColor]="i.twoToneColor"
  11. [nzIconfont]="i.iconfont"
  12. [nzRotate]="i.rotate"
  13. ></i>
  14. <i *ngSwitchCase="'iconfont'" class="sidebar-nav__item-icon" nz-icon [nzIconfont]="i.iconfont"></i>
  15. <img *ngSwitchCase="'img'" [src]="i.value" class="sidebar-nav__item-icon sidebar-nav__item-img" />
  16. <span *ngSwitchCase="'svg'" class="sidebar-nav__item-icon sidebar-nav__item-svg" [innerHTML]="i.value"></span>
  17. <i *ngSwitchDefault class="sidebar-nav__item-icon {{ i.value }}"></i>
  18. </ng-container>
  19. </ng-template>
  20. <ng-template #tree let-ls>
  21. <ng-container *ngFor="let i of ls">
  22. <li
  23. *ngIf="i._hidden !== true"
  24. class="sidebar-nav__item"
  25. [class.sidebar-nav__selected]="i._selected"
  26. [class.sidebar-nav__open]="i._open"
  27. >
  28. <!-- link -->
  29. <a
  30. *ngIf="i.children.length === 0"
  31. (click)="to(i)"
  32. [attr.data-id]="i._id"
  33. class="sidebar-nav__item-link"
  34. [ngClass]="{ 'sidebar-nav__item-disabled': i.disabled }"
  35. (mouseenter)="closeSubMenu()"
  36. >
  37. <ng-container *ngIf="i._needIcon">
  38. <ng-container *ngIf="!collapsed">
  39. <ng-template [ngTemplateOutlet]="icon" [ngTemplateOutletContext]="{ $implicit: i.icon }"></ng-template>
  40. </ng-container>
  41. <span *ngIf="collapsed" nz-tooltip nzTooltipPlacement="right" [nzTooltipTitle]="i.text">
  42. <ng-template [ngTemplateOutlet]="icon" [ngTemplateOutletContext]="{ $implicit: i.icon }"></ng-template>
  43. </span>
  44. </ng-container>
  45. <span class="sidebar-nav__item-text" [innerHTML]="i._text" [attr.title]="i.text"></span>
  46. </a>
  47. <!-- has children link -->
  48. <a *ngIf="i.children.length > 0" (click)="toggleOpen(i)" (mouseenter)="showSubMenu($event, i)" class="sidebar-nav__item-link">
  49. <ng-template [ngTemplateOutlet]="icon" [ngTemplateOutletContext]="{ $implicit: i.icon }"></ng-template>
  50. <span class="sidebar-nav__item-text" [innerHTML]="i._text" [attr.title]="i.text"></span>
  51. <i class="sidebar-nav__sub-arrow"></i>
  52. </a>
  53. <!-- badge -->
  54. <nz-badge *ngIf="i.badge" [nzCount]="i.badge" [nzDot]="i.badgeDot" nzStandalone [nzOverflowCount]="9"></nz-badge>
  55. <ul *ngIf="i.children.length > 0" class="sidebar-nav sidebar-nav__sub sidebar-nav__depth{{ i._depth }}">
  56. <ng-template [ngTemplateOutlet]="tree" [ngTemplateOutletContext]="{ $implicit: i.children }"></ng-template>
  57. </ul>
  58. </li>
  59. </ng-container>
  60. </ng-template>
  61. <ul class="sidebar-nav">
  62. <ng-container *ngFor="let group of list">
  63. <li class="sidebar-nav__item sidebar-nav__group-title" *ngIf="group.group"> <span [innerHTML]="group._text"></span> </li>
  64. <ng-template [ngTemplateOutlet]="tree" [ngTemplateOutletContext]="{ $implicit: group.children }"></ng-template>
  65. </ng-container>
  66. <li>
  67. <div class="alain-default__nav-item alain-default__nav-item--collapse alain-default__nav-item_collapsed" (click)="toggleCollapsed()">
  68. <i nz-icon [nzType]="collapsedIcon"></i>
  69. </div>
  70. </li>
  71. </ul>