수정 :: 대화 > 대화리스트에 프로필 사진 적용.

This commit is contained in:
leejh 2019-10-21 15:03:27 +09:00
parent 22431e598c
commit 27b9bb599a
8 changed files with 67 additions and 13 deletions

View File

@ -1,7 +1,5 @@
<div fxLayout="row-reverse" class="right"> <div fxLayout="row-reverse" class="right">
<div class="slide-menu" > <div class="slide-menu">
</div>
<div class="slide-box">
slide dashboard slide dashboard
</div> </div>
</div> </div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -6,6 +6,7 @@
<mat-expansion-panel <mat-expansion-panel
*ngIf="favoritBuddyList.length > 0 && !checkable" *ngIf="favoritBuddyList.length > 0 && !checkable"
[togglePosition]="'before'" [togglePosition]="'before'"
class="groupExpansionPanel"
> >
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title> 즐겨찾기 </mat-panel-title> <mat-panel-title> 즐겨찾기 </mat-panel-title>

View File

@ -1,14 +1,20 @@
<div class="list-item"> <div class="list-item">
<dl class="item-default"> <dl class="item-default">
<dt> <dt>
<img class="thumbnail" /> <!-- <img class="thumbnail" /> -->
<ucap-ui-imaage
[imageClass]="'thumbnail'"
[base]="sessionVerinfo.profileRoot"
[path]="imagePath"
[default]="defaultPath"
></ucap-ui-imaage>
</dt> </dt>
<dd class="info"> <dd class="info">
<div class="detail"> <div class="detail">
<div class="room-name"> <div class="room-name">
<div class="name">{{ getRoomName(roomInfo) }}</div> <div class="name">{{ getRoomName(roomInfo) }}</div>
<div class="num" *ngIf="roomInfo.noReadCnt > 0"> <div class="num" *ngIf="roomInfo.roomType === RoomType.Multi">
noReadCnt : {{ roomInfo.noReadCnt }} {{ roomInfo.joinUserCount }}명
</div> </div>
</div> </div>
<div class="room-msg">{{ finalEventMessage }}</div> <div class="room-msg">{{ finalEventMessage }}</div>
@ -17,5 +23,15 @@
<div class="date">{{ roomInfo.finalEventDate }}</div> <div class="date">{{ roomInfo.finalEventDate }}</div>
</dd> </dd>
</dl> </dl>
<span class="noti">1</span> <!-- <span class="noti">1</span> -->
<span
class="notiBadge"
*ngIf="roomInfo.noReadCnt > 0"
[matBadgeHidden]="roomInfo.noReadCnt === 0"
[matBadge]="roomInfo.noReadCnt"
matBadgeOverlap="true"
matBadgeColor="accent"
matBadgePosition="below after"
>
</span>
</div> </div>

View File

@ -18,7 +18,7 @@
.profile-name { .profile-name {
font-size: 16px; font-size: 16px;
@include ellipsis(1) @include ellipsis(1);
} }
.profile-last-message { .profile-last-message {
@ -93,6 +93,7 @@
font-size: 12px; font-size: 12px;
color: $font-mid; color: $font-mid;
margin-top: 4px; margin-top: 4px;
@include ellipsis(1);
} }
} }
.date { .date {
@ -126,3 +127,9 @@
@include ellipsis(1); @include ellipsis(1);
@include border-radius(100px); @include border-radius(100px);
} }
.notiBadge {
position: absolute !important;
right: 22px;
bottom: 22px;
}

View File

@ -23,15 +23,17 @@ import {
export class ListItemComponent implements OnInit { export class ListItemComponent implements OnInit {
@Input() @Input()
loginRes: LoginResponse; loginRes: LoginResponse;
@Input() @Input()
roomInfo: RoomInfo; roomInfo: RoomInfo;
@Input() @Input()
roomUserInfo: RoomUserInfo[] | UserInfoShort[]; roomUserInfo: (RoomUserInfo | UserInfoShort)[];
@Input() @Input()
sessionVerinfo: VersionInfo2Response; sessionVerinfo: VersionInfo2Response;
imagePath: string;
defaultPath = 'assets/images/img_nophoto_50.png';
finalEventMessage: string; finalEventMessage: string;
RoomType = RoomType;
constructor(private logger: NGXLogger) {} constructor(private logger: NGXLogger) {}
@ -41,6 +43,30 @@ export class ListItemComponent implements OnInit {
} else { } else {
this.finalEventMessage = this.roomInfo.finalEventMessage; this.finalEventMessage = this.roomInfo.finalEventMessage;
} }
switch (this.roomInfo.roomType) {
case RoomType.Multi:
this.defaultPath = 'assets/images/img_groupphoto_80.png';
break;
case RoomType.Mytalk:
const me = this.roomUserInfo.filter(
v => v.seq === this.loginRes.userSeq
);
if (!!me && me.length > 0) {
this.imagePath = me[0].profileImageFile;
}
break;
case RoomType.Single:
case RoomType.Bot:
case RoomType.Allim:
const others = this.roomUserInfo.filter(
v => v.seq !== this.loginRes.userSeq
);
if (!!others && others.length > 0) {
this.imagePath = others[0].profileImageFile;
}
break;
}
} }
getRoomName(roomInfo: RoomInfo): string { getRoomName(roomInfo: RoomInfo): string {

View File

@ -8,6 +8,9 @@ import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input'; import { MatInputModule } from '@angular/material/input';
import { ListItemComponent } from './components/list-item.component'; import { ListItemComponent } from './components/list-item.component';
import { MatBadgeModule } from '@angular/material';
import { UCapUiModule } from '@ucap-webmessenger/ui';
const COMPONENTS = [ListItemComponent]; const COMPONENTS = [ListItemComponent];
const DIRECTIVES = []; const DIRECTIVES = [];
@ -21,7 +24,10 @@ const SERVICES = [];
FlexLayoutModule, FlexLayoutModule,
MatFormFieldModule, MatFormFieldModule,
MatIconModule, MatIconModule,
MatInputModule MatInputModule,
MatBadgeModule,
UCapUiModule
], ],
exports: [...COMPONENTS, ...DIRECTIVES], exports: [...COMPONENTS, ...DIRECTIVES],
declarations: [...COMPONENTS, ...DIRECTIVES] declarations: [...COMPONENTS, ...DIRECTIVES]