Skip to content

Commit

Permalink
feat(module: menu): add routerLink property
Browse files Browse the repository at this point in the history
  • Loading branch information
ng-nest-moon committed Sep 21, 2020
1 parent 0ec7f00 commit 1996084
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 7 deletions.
1 change: 1 addition & 0 deletions lib/ng-nest/ui/menu/menu-node.component.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- <a *ngIf="node.routerLink && node.collapse" [routerLink]="node.routerLink"> -->
<x-icon class="x-menu-icon" *ngIf="node.icon" [type]="node.icon"></x-icon>
<span class="x-menu-text" *ngIf="node.label">{{ node.label }}</span>
<x-icon class="x-menu-arrow" *ngIf="node.leaf" [class.is-open]="node.open" type="fto-chevron-down"></x-icon>
70 changes: 64 additions & 6 deletions lib/ng-nest/ui/menu/menu.component.spec.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,29 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { XMenuComponent } from './menu.component';
import { Component, DebugElement, ChangeDetectorRef } from '@angular/core';
import { Component, DebugElement, ChangeDetectorRef, NgModule } from '@angular/core';
import { By } from '@angular/platform-browser';
import { XMenuModule } from '@ng-nest/ui/menu';
import { XButtonModule } from '@ng-nest/ui/button';
import { XMenuPrefix, XMenuNode } from './menu.property';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { XThemeModule } from '@ng-nest/ui/theme';
import { RouterModule, Routes } from '@angular/router';
import { APP_BASE_HREF } from '@angular/common';

describe(XMenuPrefix, () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [BrowserAnimationsModule, XThemeModule, XMenuModule, XButtonModule],
declarations: [TestXMenuComponent, TestXMenuExpandedComponent, TestXMenuCollapsedComponent]
imports: [BrowserAnimationsModule, XThemeModule, XMenuModule, XButtonModule, TestMenuRoutesModule],
declarations: [
TestXMenuComponent,
TestXMenuExpandedComponent,
TestXMenuCollapsedComponent,
TestXMenuTestOneCollapsedComponent,
TestXMenuTestTwoCollapsedComponent,
TestXMenuTestThreeCollapsedComponent
],
providers: [{ provide: APP_BASE_HREF, useValue: '/' }]
}).compileComponents();
}));
describe(`default.`, () => {
Expand Down Expand Up @@ -216,6 +226,7 @@ class TestXMenuExpandedComponent {
<x-button (click)="onCollapsed()" icon="fto-list" type="primary"></x-button>
<x-menu [data]="dataLeaf" layout="column" [collapsed]="collapsed"> </x-menu>
</div>
<router-outlet> </router-outlet>
`,
styles: [
`
Expand All @@ -235,9 +246,9 @@ class TestXMenuExpandedComponent {
})
class TestXMenuCollapsedComponent {
dataLeaf: XMenuNode[] = [
{ id: 1, label: '最新活动', icon: 'fto-gift' },
{ id: 2, label: '产品', icon: 'fto-package' },
{ id: 3, label: '解决方案', icon: 'fto-layers' },
{ id: 1, label: '最新活动', icon: 'fto-gift', routerLink: '/test-one' },
{ id: 2, label: '产品', icon: 'fto-package', routerLink: '/test-two' },
{ id: 3, label: '解决方案', icon: 'fto-layers', routerLink: '/test-three' },
{ id: 4, label: '帮助和支持', icon: 'fto-phone' },
{ id: 5, pid: 2, label: '云基础' },
{ id: 6, pid: 2, label: '智能大数据' },
Expand All @@ -264,3 +275,50 @@ class TestXMenuCollapsedComponent {
this.cdr.detectChanges();
}
}

@Component({
template: ` <h1>test-one</h1> `
})
class TestXMenuTestOneCollapsedComponent {
constructor() {}
}

@Component({
template: ` <h1>test-two</h1> `
})
class TestXMenuTestTwoCollapsedComponent {
constructor() {}
}

@Component({
template: ` <h1>test-three</h1> `
})
class TestXMenuTestThreeCollapsedComponent {
constructor() {}
}

const mainRoutes: Routes = [
{ path: '', redirectTo: 'test-one', pathMatch: 'full' },
{
path: 'test-one',
component: TestXMenuTestOneCollapsedComponent
},
{
path: 'test-two',
component: TestXMenuTestTwoCollapsedComponent
},
{
path: 'test-three',
component: TestXMenuTestThreeCollapsedComponent
}
];

@NgModule({
imports: [
RouterModule.forRoot(mainRoutes, {
enableTracing: false
})
],
exports: [RouterModule]
})
export class TestMenuRoutesModule {}
3 changes: 2 additions & 1 deletion lib/ng-nest/ui/menu/menu.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ import { XDropdownModule } from '@ng-nest/ui/dropdown';
import { XSliderModule } from '@ng-nest/ui/slider';
import { XIconModule } from '@ng-nest/ui/icon';
import { XMenuProperty, XMenuNodeProperty } from './menu.property';
import { RouterModule } from '@angular/router';

@NgModule({
declarations: [XMenuComponent, XMenuNodeComponent, XMenuProperty, XMenuNodeProperty],
exports: [XMenuComponent, XMenuNodeComponent],
imports: [CommonModule, XDropdownModule, XSliderModule, XIconModule]
imports: [CommonModule, RouterModule, XDropdownModule, XSliderModule, XIconModule]
})
export class XMenuModule {}
5 changes: 5 additions & 0 deletions lib/ng-nest/ui/menu/menu.property.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,11 @@ export interface XMenuNode extends XParentIdentityProperty<XMenuNode> {
* @en_US Check for updates
*/
change?: Function;
/**
* @zh_CN 路由
* @en_US Router
*/
routerLink?: string | any[];
}

/**
Expand Down

0 comments on commit 1996084

Please sign in to comment.