Skip to content

Commit a1c2d05

Browse files
authored
feat(tabbar): add activeIcon property (#139)
1 parent ba9ccd7 commit a1c2d05

File tree

4 files changed

+47
-32
lines changed

4 files changed

+47
-32
lines changed

components/tab/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ module: TabModule
1212
heading | 选项卡名称 | `string` | -
1313
disabled | 是否禁用 | `boolean` | -
1414
icon | icon图标,支持HTML | `string` | -
15+
activeIcon | 激活时icon图标,支持HTML | `string` | -
1516
badge | 徽章内容,支持数字或圆点 | `number,'dot'` | -
1617
active | 是否激活 | `boolean` | -
1718
select | 当tab激活时触发 | `EventEmitter<TabDirective>` | -

components/tab/tab.directive.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,20 @@ import {
55
Output,
66
EventEmitter,
77
OnDestroy,
8+
OnChanges,
89
} from '@angular/core';
910
import { BarComponent } from './bar.component';
1011

1112
@Directive({ selector: 'weui-tab, [weui-tab]' })
12-
export class TabDirective implements OnDestroy {
13+
export class TabDirective implements OnDestroy, OnChanges {
1314
/** 选项卡名称 */
1415
@Input() heading: string;
1516
/** 是否禁用 */
1617
@Input() disabled: boolean;
1718
/** icon图标,支持HTML */
1819
@Input() icon: string;
20+
/** 激活时icon图标,支持HTML */
21+
@Input() activeIcon: string;
1922
/** 徽章内容,支持数字或圆点 */
2023
@Input() badge: number | 'dot';
2124

@@ -56,6 +59,12 @@ export class TabDirective implements OnDestroy {
5659
this._tabComp.add(this);
5760
}
5861

62+
ngOnChanges(): void {
63+
if (!this.activeIcon) {
64+
this.activeIcon = this.icon;
65+
}
66+
}
67+
5968
ngOnDestroy(): void {
6069
this._tabComp.remove(this);
6170
}

components/tab/tabbar.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { BarComponent } from './bar.component';
1212
<div class="weui-tabbar__item" [ngClass]="{'weui-bar__item_on': item.active}"
1313
*ngFor="let item of tabs" (click)="setActive(item)">
1414
<div style="display: inline-block;position: relative;">
15-
<div class="weui-tabbar__icon" [innerHTML]="item.icon"></div>
15+
<div class="weui-tabbar__icon" [innerHTML]="item.active ? item.activeIcon : item.icon"></div>
1616
<span class="weui-badge" style="position: absolute;top: -2px;right: -13px;" *ngIf="item.badge && item.badge !== 'dot'">{{item.badge}}</span>
1717
<span class="weui-badge weui-badge_dot" style="position: absolute;top: 0;right: -6px;" *ngIf="item.badge && item.badge === 'dot'"></span>
1818
</div>
Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,37 @@
11
<weui-tabbar>
2-
<weui-tab heading="微信" [badge]="8" [icon]="'<img src=./assets/images/icon_tabbar.png>'">
3-
<weui-infiniteloader (loadmore)="onLoadMore($event)">
4-
<article class="weui-article">
5-
<h1>微信</h1>
6-
<div class="weui-cells__title">List with 50 Max</div>
7-
<div class="weui-cells">
8-
<a *ngFor="let i of items" class="weui-cell weui-cell_access" href="javascript:;">
9-
<div class="weui-cell__bd">{{i}}</div>
10-
<div class="weui-cell__ft"></div>
11-
</a>
12-
</div>
13-
</article>
14-
</weui-infiniteloader>
15-
</weui-tab>
16-
<weui-tab heading="通讯录" [icon]="'<img src=./assets/images/icon_tabbar.png>'" (select)="onSelect()">
17-
<article class="weui-article">
18-
<h1>通讯录</h1>
19-
<p>Select Time: {{time}}</p>
20-
</article>
21-
</weui-tab>
22-
<weui-tab heading="发现" [badge]="'dot'" [icon]="'<img src=./assets/images/icon_tabbar.png>'">
23-
<article class="weui-article">
24-
<h1>发现</h1>
25-
</article>
26-
</weui-tab>
27-
<weui-tab heading="" [icon]="'<img src=./assets/images/icon_tabbar.png>'">
28-
<article class="weui-article">
29-
<h1></h1>
30-
</article>
31-
</weui-tab>
2+
<weui-tab heading="微信" [badge]="8" [icon]="'<img src=./assets/images/icon_tabbar.png>'">
3+
<weui-infiniteloader (loadmore)="onLoadMore($event)">
4+
<article class="weui-article">
5+
<h1>微信</h1>
6+
<div class="weui-cells__title">List with 50 Max</div>
7+
<div class="weui-cells">
8+
<a *ngFor="let i of items" class="weui-cell weui-cell_access" href="javascript:;">
9+
<div class="weui-cell__bd">{{ i }}</div>
10+
<div class="weui-cell__ft"></div>
11+
</a>
12+
</div>
13+
</article>
14+
</weui-infiniteloader>
15+
</weui-tab>
16+
<weui-tab
17+
heading="通讯录"
18+
[icon]="'<img src=./assets/images/icon_tabbar.png>'"
19+
[activeIcon]="'<img src=./assets/images/momentloader.png>'"
20+
(select)="onSelect()"
21+
>
22+
<article class="weui-article">
23+
<h1>通讯录</h1>
24+
<p>Select Time: {{ time }}</p>
25+
</article>
26+
</weui-tab>
27+
<weui-tab heading="发现" [badge]="'dot'" [icon]="'<img src=./assets/images/icon_tabbar.png>'">
28+
<article class="weui-article">
29+
<h1>发现</h1>
30+
</article>
31+
</weui-tab>
32+
<weui-tab heading="" [icon]="'<img src=./assets/images/icon_tabbar.png>'">
33+
<article class="weui-article">
34+
<h1></h1>
35+
</article>
36+
</weui-tab>
3237
</weui-tabbar>

0 commit comments

Comments
 (0)