0522 sync
This commit is contained in:
parent
344a105583
commit
886d545ccb
|
@ -5,21 +5,7 @@
|
||||||
<ng-container *ngIf="isMe; then isMine; else other"></ng-container>
|
<ng-container *ngIf="isMe; then isMine; else other"></ng-container>
|
||||||
<ng-template #isMine>
|
<ng-template #isMine>
|
||||||
<div class="user-profile-info">
|
<div class="user-profile-info">
|
||||||
<!--[[ 대화상대 프로필-->
|
|
||||||
<!-- 모바일이 온라인일 경우 + mobile-ing -->
|
|
||||||
<!--
|
|
||||||
<div class="user-profile-thumb mobile-ing">
|
|
||||||
<span class="presence">온라인</span>
|
|
||||||
<div class="profileImage">
|
|
||||||
<img
|
|
||||||
src="https://material.angular.io/assets/img/examples/shiba2.jpg"
|
|
||||||
style="width: 122px; height: 122px;"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>-->
|
|
||||||
<!--]]-->
|
|
||||||
|
|
||||||
<!--[[ 내프로필-->
|
|
||||||
<div class="user-profile-thumb">
|
<div class="user-profile-thumb">
|
||||||
<span class="presence">온라인</span>
|
<span class="presence">온라인</span>
|
||||||
<div class="profileImage">
|
<div class="profileImage">
|
||||||
|
@ -34,7 +20,6 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--]]-->
|
|
||||||
|
|
||||||
<div class="userInfo">
|
<div class="userInfo">
|
||||||
<div class="user-n-g">
|
<div class="user-n-g">
|
||||||
|
@ -81,24 +66,10 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<!-- + 대회상대 프로필-->
|
|
||||||
<ng-template #other>
|
<ng-template #other>
|
||||||
<div class="user-profile-info">
|
<div class="user-profile-info">
|
||||||
<!--[[ 대화상대 프로필-->
|
|
||||||
<!-- 모바일이 온라인일 경우 + mobile-ing -->
|
|
||||||
<!--
|
|
||||||
<div class="user-profile-thumb mobile-ing">
|
|
||||||
<span class="presence">온라인</span>
|
|
||||||
<div class="profileImage">
|
|
||||||
<img
|
|
||||||
src="https://material.angular.io/assets/img/examples/shiba2.jpg"
|
|
||||||
style="width: 122px; height: 122px;"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>-->
|
|
||||||
<!--]]-->
|
|
||||||
|
|
||||||
<!--[[ 내프로필-->
|
|
||||||
<div class="user-profile-thumb">
|
<div class="user-profile-thumb">
|
||||||
<span class="presence">온라인</span>
|
<span class="presence">온라인</span>
|
||||||
<div class="profileImage">
|
<div class="profileImage">
|
||||||
|
@ -108,7 +79,7 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--]]-->
|
|
||||||
|
|
||||||
<div class="userInfo">
|
<div class="userInfo">
|
||||||
<div class="user-n-g">
|
<div class="user-n-g">
|
||||||
|
@ -116,8 +87,6 @@
|
||||||
<div class="grade">{{ userInfo?.grade }}</div>
|
<div class="grade">{{ userInfo?.grade }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="deptName">({{ userInfo?.nameEn }})</div>
|
<div class="deptName">({{ userInfo?.nameEn }})</div>
|
||||||
<!-- + 대화상대 프로필 추가 -->
|
|
||||||
<!-- -->
|
|
||||||
|
|
||||||
<div class="nickName">
|
<div class="nickName">
|
||||||
<div class="nickName-info">닉네임 미설정</div>
|
<div class="nickName-info">닉네임 미설정</div>
|
||||||
|
|
24
documents/업무/5월/3째주/0518.txt
Normal file
24
documents/업무/5월/3째주/0518.txt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
프로필 메뉴
|
||||||
|
|
||||||
|
|
||||||
|
전체보기
|
||||||
|
bulkinfo 연동
|
||||||
|
접속된 동료만 보기
|
||||||
|
온/오프라인 보기
|
||||||
|
|
||||||
|
infoUser$ = createEffect(() =>
|
||||||
|
this.actions$.pipe(
|
||||||
|
ofType(infoUser),
|
||||||
|
map((action) => action.req),
|
||||||
|
exhaustMap((req) =>
|
||||||
|
this.infoProtocolService.user(req).pipe(
|
||||||
|
map((res: UserResponse) => {
|
||||||
|
return infoUserSuccess({
|
||||||
|
res
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
catchError((error) => of(infoUserFailure({ error })))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
23
documents/업무/5월/3째주/0519.txt
Normal file
23
documents/업무/5월/3째주/0519.txt
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
groups
|
||||||
|
SENDER_SEQ: "770074"
|
||||||
|
SSVC_TYPE: 5
|
||||||
|
SVC_TYPE: 82
|
||||||
|
isActive: true
|
||||||
|
name: "testsssss"
|
||||||
|
seq: 16
|
||||||
|
|
||||||
|
userSeqs: [737239, 737243],
|
||||||
|
SENDER_SEQ: "770074"
|
||||||
|
SSVC_TYPE: 5
|
||||||
|
SVC_TYPE: 82
|
||||||
|
isActive: true
|
||||||
|
name: "그룹생성테스트수ㅡ정"
|
||||||
|
seq: 24
|
||||||
|
userSeqs: (2) [677713, 737237],
|
||||||
|
SENDER_SEQ: "770074"
|
||||||
|
SSVC_TYPE: 5
|
||||||
|
SVC_TYPE: 82
|
||||||
|
isActive: true
|
||||||
|
name: "그룹테스트2"
|
||||||
|
seq: 23
|
||||||
|
userSeqs: (3) [701307, 677714, 3627]
|
113
documents/업무/5월/3째주/0520.txt
Normal file
113
documents/업무/5월/3째주/0520.txt
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
677713
|
||||||
|
737237
|
||||||
|
|
||||||
|
|
||||||
|
*ngIf="
|
||||||
|
!editablGroup ||
|
||||||
|
(!!editablGroup && editablGroup.seq !== node.groupDetail.seq)
|
||||||
|
"
|
||||||
|
|
||||||
|
<span
|
||||||
|
*ngIf="
|
||||||
|
!editablGroup ||
|
||||||
|
(!!editablGroup && editablGroup.seq !== node.groupDetail.seq)
|
||||||
|
"
|
||||||
|
class="header-buddy"
|
||||||
|
>
|
||||||
|
<span>{{ node.groupDetail.name }}</span>
|
||||||
|
<span>
|
||||||
|
{{ node.children?.length }}
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="header-buddy"
|
||||||
|
*ngIf="!!editablGroup && editablGroup.seq === node.groupDetail.seq"
|
||||||
|
(click)="$event.stopPropagation()"
|
||||||
|
>
|
||||||
|
<mat-form-field>
|
||||||
|
<input
|
||||||
|
matInput
|
||||||
|
#groupInput
|
||||||
|
placeholder=""
|
||||||
|
[value]="node.groupDetail.name"
|
||||||
|
/>
|
||||||
|
<button
|
||||||
|
mat-button
|
||||||
|
matSuffix
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="Clear"
|
||||||
|
(click)="groupInput.value = ''"
|
||||||
|
>
|
||||||
|
<mat-icon>close</mat-icon>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="Done"
|
||||||
|
(click)="onEditGroupName(groupInput.value, node.groupDetail)"
|
||||||
|
>
|
||||||
|
<mat-icon>done</mat-icon>
|
||||||
|
</button>
|
||||||
|
</mat-form-field>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- 13:10분 그룹이름 수정 코드 -->
|
||||||
|
<span
|
||||||
|
*ngIf="
|
||||||
|
!editablGroup ||
|
||||||
|
(!!editablGroup && editablGroup.seq !== node.groupDetail.seq)
|
||||||
|
"
|
||||||
|
class="header-buddy"
|
||||||
|
>
|
||||||
|
<span>{{ node.groupDetail.name }}</span>
|
||||||
|
<span> ({{ node.children?.length }}) </span>
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="header-buddy"
|
||||||
|
*ngIf="!!editablGroup && editablGroup.seq === node.groupDetail.seq"
|
||||||
|
(click)="$event.stopPropagation()"
|
||||||
|
>
|
||||||
|
<ucap-inline-edit-input
|
||||||
|
[initialMode]="true"
|
||||||
|
(apply)="
|
||||||
|
$event.stopPropagation();
|
||||||
|
onApplyEditGroupName(editGroupInput.value, node.groupDetail)
|
||||||
|
"
|
||||||
|
(edit)="$event.stopPropagation()"
|
||||||
|
(cancel)="
|
||||||
|
$event.stopPropagation();
|
||||||
|
editGroupInput.value = node.groupDetail.name;
|
||||||
|
editablGroup = null
|
||||||
|
"
|
||||||
|
class="form-eidt"
|
||||||
|
>
|
||||||
|
<span ucapInlineEditInput="view">{{ node.groupDetail.name }}</span>
|
||||||
|
<span ucapInlineEditInput="edit"
|
||||||
|
><input
|
||||||
|
matInput
|
||||||
|
#editGroupInput
|
||||||
|
type="text"
|
||||||
|
[value]="node.groupDetail.name"
|
||||||
|
(click)="$event.stopPropagation()"
|
||||||
|
/></span>
|
||||||
|
</ucap-inline-edit-input>
|
||||||
|
</span>
|
||||||
|
<!-- 13:10분 그룹이름 수정 코드 -->
|
||||||
|
|
||||||
|
150 + 60
|
||||||
|
150 + 120
|
||||||
|
150 + 180
|
||||||
|
|
||||||
|
241 - 150 = 91 - 30 = 61
|
||||||
|
304 - 150 = 154 - 30 = 124
|
||||||
|
366 - 150 = 216 - 30 = 186
|
||||||
|
0:
|
||||||
|
srcTop = 210
|
||||||
|
dstTop = 241
|
||||||
|
1:
|
||||||
|
srcTop = 270
|
||||||
|
dstTop = 304
|
||||||
|
2:
|
||||||
|
srcTop = 330
|
||||||
|
dstTop = 366
|
||||||
|
|
45
documents/업무/5월/3째주/0522.txt
Normal file
45
documents/업무/5월/3째주/0522.txt
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
nickname action added : complete
|
||||||
|
nickname action dispatch test: complete
|
||||||
|
buddy nickname change confirm: complete
|
||||||
|
edit inline dialog component
|
||||||
|
- positionX, positionY, title,
|
||||||
|
- text, confirm
|
||||||
|
-
|
||||||
|
|
||||||
|
buddy manage dialog
|
||||||
|
profile list item
|
||||||
|
- data
|
||||||
|
- check box
|
||||||
|
- select list : userInfo
|
||||||
|
|
||||||
|
- action
|
||||||
|
- all checkbox
|
||||||
|
- remove dispatch
|
||||||
|
- copy dispatch
|
||||||
|
- 새그룹명 입력
|
||||||
|
- 이동할 그룹
|
||||||
|
- 선택된 유저 리스트
|
||||||
|
- move dispatch
|
||||||
|
- 새그룹명 입력
|
||||||
|
- 이동할 그룹
|
||||||
|
- 선택된 유저 리스트
|
||||||
|
- select user dialog
|
||||||
|
- 기존 유저 선택
|
||||||
|
|
||||||
|
|
||||||
|
ng-container
|
||||||
|
idx stepper move
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
profile list item mouseover button event bug fix
|
||||||
|
|
||||||
|
1. group buddy remove
|
||||||
|
|
||||||
|
const userSeq = 737237 as any;
|
||||||
|
|
||||||
|
const idx = buddies.findIndex((b) => b.seq === userSeq);
|
||||||
|
|
||||||
|
const userSeq = '737237' as any;
|
||||||
|
|
||||||
|
const idx = buddies.findIndex((b) => b.seq === Number(userSeq));
|
470
documents/업무/5월/3째주/Untitled-1.html
Normal file
470
documents/업무/5월/3째주/Untitled-1.html
Normal file
|
@ -0,0 +1,470 @@
|
||||||
|
<div fxFlexFill class="profile-container">
|
||||||
|
<!-- <ucap-organization-profile-01
|
||||||
|
[authRes]="authRes"
|
||||||
|
[userInfo]="userInfo"
|
||||||
|
[profileImageRoot]="versionInfo2Res?.profileRoot"
|
||||||
|
[isMe]="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq === String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
</ucap-organization-profile-01> -->
|
||||||
|
<div class="ucap-organization-profile-01-container">
|
||||||
|
<!--Profile -->
|
||||||
|
<div class="profile-card-box">
|
||||||
|
<ng-container
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq === String(loginRes.userInfo?.seq);
|
||||||
|
then mineProfile;
|
||||||
|
else otherProfile
|
||||||
|
"
|
||||||
|
></ng-container>
|
||||||
|
|
||||||
|
<ng-template #otherProfile>
|
||||||
|
<div class="user-profile-info">
|
||||||
|
<div class="user-profile-thumb">
|
||||||
|
<span
|
||||||
|
class="presence"
|
||||||
|
[ngClass]="getPresence(PresenceType.PC)"
|
||||||
|
[matTooltip]="getPresenceMsg()"
|
||||||
|
matTooltipPosition="after"
|
||||||
|
></span>
|
||||||
|
<div class="profileImage">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/img_nophoto.svg"
|
||||||
|
style="width: 122px; height: 122px;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="userInfo">
|
||||||
|
<div class="user-n-g">
|
||||||
|
<div class="name">{{ userInfo?.name }}</div>
|
||||||
|
<div class="grade">{{ userInfo?.grade }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="deptName">({{ userInfo?.nameEn }})</div>
|
||||||
|
|
||||||
|
<div class="nickName">
|
||||||
|
<div class="nickName-info">
|
||||||
|
<mat-form-field
|
||||||
|
class="example-full-width my-in-input"
|
||||||
|
appearance="none"
|
||||||
|
>
|
||||||
|
<mat-label></mat-label>
|
||||||
|
<input
|
||||||
|
#nicknameInput
|
||||||
|
matInput
|
||||||
|
placeholder="닉네임 미설정"
|
||||||
|
value=""
|
||||||
|
/>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="icon create"
|
||||||
|
class="color-white"
|
||||||
|
(click)="onProfileIntro(nicknameInput.value)"
|
||||||
|
>
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="address-txt">
|
||||||
|
{{ userInfo?.intro }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-profile-add">
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
[ngClass]="[isFavorite ? 'on' : '']"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
*ngIf="!isFavorite"
|
||||||
|
(click)="onToggleFavorit()"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_favorite_w24_s.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
*ngIf="!isBuddy"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_group_add_w24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn-partner-set">
|
||||||
|
<button mat-icon-button aria-label="chat">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_lise_chat_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="message">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_message_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="mobile">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_mobile_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="call">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_call_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="vc">
|
||||||
|
<img src="../../../assets/images/ico/btn_list_vc-a24.<div fxFlexFill class="profile-container">
|
||||||
|
<div class="ucap-organization-profile-01-container">
|
||||||
|
<!--Profile -->
|
||||||
|
<div class="profile-card-box">
|
||||||
|
<div class="user-profile-info">
|
||||||
|
<!--[[ 대화상대 프로필-->
|
||||||
|
<!-- 모바일이 온라인일 경우 + mobile-ing -->
|
||||||
|
<div class="user-profile-thumb">
|
||||||
|
<span
|
||||||
|
class="presence"
|
||||||
|
[ngClass]="getPresence(PresenceType.PC)"
|
||||||
|
[matTooltip]="getPresenceMsg()"
|
||||||
|
matTooltipPosition="after"
|
||||||
|
></span>
|
||||||
|
<div class="profileImage" (click)="onProfileImageView()">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/img_nophoto.svg"
|
||||||
|
style="width: 122px; height: 122px;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<!--[[ 내프로필-->
|
||||||
|
<div
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq === String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
class="btn-profile-ctrl"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
mat-mini-fab
|
||||||
|
color="primary"
|
||||||
|
class="mat-mini36-fab"
|
||||||
|
(click)="profileImageFileInput.click()"
|
||||||
|
>
|
||||||
|
<mat-icon class="material-icons-outlined">camera_alt</mat-icon>
|
||||||
|
</button>
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
#profileImageFileInput
|
||||||
|
style="display: none;"
|
||||||
|
(change)="onChangeFileInput()"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<!--]]-->
|
||||||
|
</div>
|
||||||
|
<!--]]-->
|
||||||
|
<div class="userInfo">
|
||||||
|
<div class="user-n-g">
|
||||||
|
<div class="name">{{ userInfo?.name }}</div>
|
||||||
|
<div class="grade">{{ userInfo?.grade }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="deptName">({{ userInfo?.nameEn }})</div>
|
||||||
|
|
||||||
|
<ng-container
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq !== String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<!-- + 대화상대 프로필 추가 -->
|
||||||
|
<div class="nickName">
|
||||||
|
<div class="nickName-info">
|
||||||
|
<mat-form-field
|
||||||
|
class="example-full-width my-in-input"
|
||||||
|
appearance="none"
|
||||||
|
>
|
||||||
|
<mat-label></mat-label>
|
||||||
|
<input
|
||||||
|
#nicknameInput
|
||||||
|
matInput
|
||||||
|
placeholder="닉네임 미설정"
|
||||||
|
value=""
|
||||||
|
/>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="icon create"
|
||||||
|
class="color-white"
|
||||||
|
(click)="onChangeNickname(nicknameInput.value)"
|
||||||
|
>
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<!--]]-->
|
||||||
|
</ng-container>
|
||||||
|
<ng-container
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq === String(loginRes.userInfo?.seq);
|
||||||
|
then mineProfileIntro;
|
||||||
|
else otherProfileIntro
|
||||||
|
"
|
||||||
|
>
|
||||||
|
</ng-container>
|
||||||
|
<ng-template #otherProfileIntro>
|
||||||
|
<div class="address-txt">
|
||||||
|
{{ userInfo?.intro }}
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template #mineProfileIntro>
|
||||||
|
<div class="my-input inputtype">
|
||||||
|
<mat-form-field
|
||||||
|
class="example-full-width my-in-input"
|
||||||
|
appearance="none"
|
||||||
|
>
|
||||||
|
<mat-label></mat-label>
|
||||||
|
<input
|
||||||
|
#myProfileIntro
|
||||||
|
matInput
|
||||||
|
placeholder=""
|
||||||
|
value="{{ userInfo?.intro }}"
|
||||||
|
/>
|
||||||
|
</mat-form-field>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="icon create"
|
||||||
|
class="color-white"
|
||||||
|
(click)="onChangeIntro(myProfileIntro.value)"
|
||||||
|
>
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq !== String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
class="btn-profile-add"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
*ngIf="isBuddy"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_favorite_w24_s.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_group_add_w24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_group_add_w24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq !== String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
class="btn-partner-set"
|
||||||
|
>
|
||||||
|
<button mat-icon-button aria-label="chat">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_lise_chat_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="message">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_message_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="mobile"
|
||||||
|
(click)="onSendCall('MOBILE')"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_mobile_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="call"
|
||||||
|
(click)="onSendCall('LINE')"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_call_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="vc">
|
||||||
|
<img src="../../../assets/images/ico/btn_list_vc-a24.svg" alt="" />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="user-profile-info-list">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.company' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.companyName }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.department' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.deptName }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.email' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.email }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.linePhoneNumber' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.lineNumber }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.mobilePhoneNumber' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.hpNumber }}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //Profile-->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
svg" alt="" />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template #mineProfile>
|
||||||
|
<div class="user-profile-info">
|
||||||
|
<div class="user-profile-thumb">
|
||||||
|
<span
|
||||||
|
class="presence"
|
||||||
|
[ngClass]="getPresence(PresenceType.PC)"
|
||||||
|
[matTooltip]="getPresenceMsg()"
|
||||||
|
matTooltipPosition="after"
|
||||||
|
>온라인</span
|
||||||
|
>
|
||||||
|
<div class="profileImage">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/img_nophoto.svg"
|
||||||
|
style="width: 122px; height: 122px;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="btn-profile-ctrl">
|
||||||
|
<button
|
||||||
|
mat-mini-fab
|
||||||
|
color="primary"
|
||||||
|
class="mat-mini36-fab"
|
||||||
|
(click)="profileImageFileInput.click()"
|
||||||
|
>
|
||||||
|
<mat-icon class="material-icons-outlined">camera_alt</mat-icon>
|
||||||
|
</button>
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
#profileImageFileInput
|
||||||
|
style="display: none;"
|
||||||
|
(change)="onChangeFileInput()"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="userInfo">
|
||||||
|
<div class="user-n-g">
|
||||||
|
<div class="name">{{ userInfo?.name }}</div>
|
||||||
|
<div class="grade">{{ userInfo?.grade }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="deptName">({{ userInfo?.nameEn }})</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="my-input inputtype">
|
||||||
|
<mat-form-field
|
||||||
|
class="example-full-width my-in-input"
|
||||||
|
appearance="none"
|
||||||
|
>
|
||||||
|
<mat-label></mat-label>
|
||||||
|
<input
|
||||||
|
#myProfileIntro
|
||||||
|
matInput
|
||||||
|
placeholder=""
|
||||||
|
value="마곡 사이언스 파크 E14동 9층"
|
||||||
|
/>
|
||||||
|
</mat-form-field>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="icon create"
|
||||||
|
class="color-white"
|
||||||
|
(click)="onProfileIntro(myProfileIntro.value)"
|
||||||
|
>
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
|
||||||
|
<div class="user-profile-info-list">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.company' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.companyName }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.department' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.deptName }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.email' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.email }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.linePhoneNumber' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.lineNumber }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.mobilePhoneNumber' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.hpNumber }}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //Profile-->
|
||||||
|
</div>
|
||||||
|
</div>
|
218
documents/업무/5월/3째주/Untitled-2.html
Normal file
218
documents/업무/5월/3째주/Untitled-2.html
Normal file
|
@ -0,0 +1,218 @@
|
||||||
|
<div class="ucap-organization-profile-01-container">
|
||||||
|
<!--Profile -->
|
||||||
|
<div class="profile-card-box">
|
||||||
|
<div class="user-profile-info">
|
||||||
|
<div class="user-profile-thumb">
|
||||||
|
<span
|
||||||
|
class="presence"
|
||||||
|
[ngClass]="getPresence(PresenceType.PC)"
|
||||||
|
[matTooltip]="getPresenceMsg()"
|
||||||
|
matTooltipPosition="after"
|
||||||
|
></span>
|
||||||
|
<div class="profileImage">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/img_nophoto.svg"
|
||||||
|
style="width: 122px; height: 122px;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq === String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
class="btn-profile-ctrl"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
mat-mini-fab
|
||||||
|
color="primary"
|
||||||
|
class="mat-mini36-fab"
|
||||||
|
(click)="profileImageFileInput.click()"
|
||||||
|
>
|
||||||
|
<mat-icon class="material-icons-outlined">camera_alt</mat-icon>
|
||||||
|
</button>
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
#profileImageFileInput
|
||||||
|
style="display: none;"
|
||||||
|
(change)="onChangeFileInput()"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="userInfo">
|
||||||
|
<div class="user-n-g">
|
||||||
|
<div class="name">{{ userInfo?.name }}</div>
|
||||||
|
<div class="grade">{{ userInfo?.grade }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="deptName">({{ userInfo?.nameEn }})</div>
|
||||||
|
|
||||||
|
<ng-container
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq !== String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<div class="nickName">
|
||||||
|
<div class="nickName-info">
|
||||||
|
<mat-form-field
|
||||||
|
class="example-full-width my-in-input"
|
||||||
|
appearance="none"
|
||||||
|
>
|
||||||
|
<mat-label></mat-label>
|
||||||
|
<input
|
||||||
|
#nicknameInput
|
||||||
|
matInput
|
||||||
|
placeholder="닉네임 미설정"
|
||||||
|
value=""
|
||||||
|
/>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="icon create"
|
||||||
|
class="color-white"
|
||||||
|
(click)="onProfileIntro(nicknameInput.value)"
|
||||||
|
>
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq === String(loginRes.userInfo?.seq);
|
||||||
|
then mineProfileIntro;
|
||||||
|
else otherProfileIntro
|
||||||
|
"
|
||||||
|
>
|
||||||
|
</ng-container>
|
||||||
|
<ng-template #otherProfileIntro>
|
||||||
|
<div class="address-txt">
|
||||||
|
{{ userInfo?.intro }}
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template #mineProfileIntro>
|
||||||
|
<div class="my-input inputtype">
|
||||||
|
<mat-form-field
|
||||||
|
class="example-full-width my-in-input"
|
||||||
|
appearance="none"
|
||||||
|
>
|
||||||
|
<mat-label></mat-label>
|
||||||
|
<input
|
||||||
|
#myProfileIntro
|
||||||
|
matInput
|
||||||
|
placeholder=""
|
||||||
|
value="{{ userInfo?.intro }}"
|
||||||
|
/>
|
||||||
|
</mat-form-field>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="icon create"
|
||||||
|
class="color-white"
|
||||||
|
(click)="onProfileIntro(myProfileIntro.value)"
|
||||||
|
>
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq !== String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
class="btn-profile-add"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
[ngClass]="[isFavorite ? 'on' : '']"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
*ngIf="!isFavorite"
|
||||||
|
(click)="onToggleFavorit()"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_favorite_w24_s.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
*ngIf="!isBuddy"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_group_add_w24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq !== String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
class="btn-partner-set"
|
||||||
|
>
|
||||||
|
<button mat-icon-button aria-label="chat">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_lise_chat_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="message">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_message_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="mobile">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_mobile_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="call">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_call_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="vc">
|
||||||
|
<img src="../../../assets/images/ico/btn_list_vc-a24.svg" alt="" />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="user-profile-info-list">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.company' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.companyName }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.department' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.deptName }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.email' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.email }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.linePhoneNumber' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.lineNumber }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.mobilePhoneNumber' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.hpNumber }}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //Profile-->
|
||||||
|
</div>
|
||||||
|
</div>
|
242
documents/업무/5월/3째주/Untitled-3.html
Normal file
242
documents/업무/5월/3째주/Untitled-3.html
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
<div fxFlexFill class="profile-container">
|
||||||
|
<div class="ucap-organization-profile-01-container">
|
||||||
|
<!--Profile -->
|
||||||
|
<div class="profile-card-box">
|
||||||
|
<div class="user-profile-info">
|
||||||
|
<!--[[ 대화상대 프로필-->
|
||||||
|
<!-- 모바일이 온라인일 경우 + mobile-ing -->
|
||||||
|
<div class="user-profile-thumb">
|
||||||
|
<span
|
||||||
|
class="presence"
|
||||||
|
[ngClass]="getPresence(PresenceType.PC)"
|
||||||
|
[matTooltip]="getPresenceMsg()"
|
||||||
|
matTooltipPosition="after"
|
||||||
|
></span>
|
||||||
|
<div class="profileImage" (click)="onProfileImageView()">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/img_nophoto.svg"
|
||||||
|
style="width: 122px; height: 122px;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<!--[[ 내프로필-->
|
||||||
|
<div
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq === String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
class="btn-profile-ctrl"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
mat-mini-fab
|
||||||
|
color="primary"
|
||||||
|
class="mat-mini36-fab"
|
||||||
|
(click)="profileImageFileInput.click()"
|
||||||
|
>
|
||||||
|
<mat-icon class="material-icons-outlined">camera_alt</mat-icon>
|
||||||
|
</button>
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
#profileImageFileInput
|
||||||
|
style="display: none;"
|
||||||
|
(change)="onChangeFileInput()"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<!--]]-->
|
||||||
|
</div>
|
||||||
|
<!--]]-->
|
||||||
|
<div class="userInfo">
|
||||||
|
<div class="user-n-g">
|
||||||
|
<div class="name">{{ userInfo?.name }}</div>
|
||||||
|
<div class="grade">{{ userInfo?.grade }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="deptName">({{ userInfo?.nameEn }})</div>
|
||||||
|
|
||||||
|
<ng-container
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq !== String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<!-- + 대화상대 프로필 추가 -->
|
||||||
|
<div class="nickName">
|
||||||
|
<div class="nickName-info">
|
||||||
|
<mat-form-field
|
||||||
|
class="example-full-width my-in-input"
|
||||||
|
appearance="none"
|
||||||
|
>
|
||||||
|
<mat-label></mat-label>
|
||||||
|
<input
|
||||||
|
#nicknameInput
|
||||||
|
matInput
|
||||||
|
placeholder="닉네임 미설정"
|
||||||
|
value=""
|
||||||
|
/>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="icon create"
|
||||||
|
class="color-white"
|
||||||
|
(click)="onChangeNickname(nicknameInput.value)"
|
||||||
|
>
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<!--]]-->
|
||||||
|
</ng-container>
|
||||||
|
<ng-container
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq === String(loginRes.userInfo?.seq);
|
||||||
|
then mineProfileIntro;
|
||||||
|
else otherProfileIntro
|
||||||
|
"
|
||||||
|
>
|
||||||
|
</ng-container>
|
||||||
|
<ng-template #otherProfileIntro>
|
||||||
|
<div class="address-txt">
|
||||||
|
{{ userInfo?.intro }}
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template #mineProfileIntro>
|
||||||
|
<div class="my-input inputtype">
|
||||||
|
<mat-form-field
|
||||||
|
class="example-full-width my-in-input"
|
||||||
|
appearance="none"
|
||||||
|
>
|
||||||
|
<mat-label></mat-label>
|
||||||
|
<input
|
||||||
|
#myProfileIntro
|
||||||
|
matInput
|
||||||
|
placeholder=""
|
||||||
|
value="{{ userInfo?.intro }}"
|
||||||
|
/>
|
||||||
|
</mat-form-field>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="icon create"
|
||||||
|
class="color-white"
|
||||||
|
(click)="onChangeIntro(myProfileIntro.value)"
|
||||||
|
>
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq !== String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
class="btn-profile-add"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
*ngIf="isBuddy"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_favorite_w24_s.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_group_add_w24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_group_add_w24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
*ngIf="
|
||||||
|
!!userInfo &&
|
||||||
|
!!loginRes &&
|
||||||
|
userInfo.seq !== String(loginRes.userInfo?.seq)
|
||||||
|
"
|
||||||
|
class="btn-partner-set"
|
||||||
|
>
|
||||||
|
<button mat-icon-button aria-label="chat">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_lise_chat_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="message">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_message_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="mobile"
|
||||||
|
(click)="onSendCall('MOBILE')"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_mobile_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="call"
|
||||||
|
(click)="onSendCall('LINE')"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_call_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="vc">
|
||||||
|
<img src="../../../assets/images/ico/btn_list_vc-a24.svg" alt="" />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="user-profile-info-list">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.company' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.companyName }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.department' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.deptName }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.email' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.email }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.linePhoneNumber' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.lineNumber }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.mobilePhoneNumber' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.hpNumber }}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //Profile-->
|
||||||
|
</div>
|
||||||
|
</div>
|
153
documents/업무/5월/3째주/angular-prj-profile-01.component.html
Normal file
153
documents/업무/5월/3째주/angular-prj-profile-01.component.html
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
<div class="ucap-organization-profile-01-container">
|
||||||
|
<!--Profile -->
|
||||||
|
<div class="profile-card-box">
|
||||||
|
<div class="user-profile-info">
|
||||||
|
<ng-container
|
||||||
|
*ngIf="isMe; then mineProfile; else otherProfile"
|
||||||
|
></ng-container>
|
||||||
|
<ng-template #otherProfile>
|
||||||
|
<!--[[ 대화상대 프로필-->
|
||||||
|
<!-- 모바일이 온라인일 경우 + mobile-ing -->
|
||||||
|
<div class="user-profile-thumb mobile-ing">
|
||||||
|
<span class="presence">온라인</span>
|
||||||
|
<div class="profileImage">
|
||||||
|
<img
|
||||||
|
src="https://material.angular.io/assets/img/examples/shiba2.jpg"
|
||||||
|
style="width: 122px; height: 122px;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--]]-->
|
||||||
|
</ng-template>
|
||||||
|
<ng-template #mineProfile>
|
||||||
|
<!--[[ 내프로필-->
|
||||||
|
<div class="user-profile-thumb">
|
||||||
|
<span class="presence">온라인</span>
|
||||||
|
<div class="profileImage">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/img_nophoto.svg"
|
||||||
|
style="width: 122px; height: 122px;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="btn-profile-ctrl">
|
||||||
|
<button mat-mini-fab color="primary" class="mat-mini36-fab">
|
||||||
|
<mat-icon class="material-icons-outlined">camera_alt</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--]]-->
|
||||||
|
</ng-template>
|
||||||
|
|
||||||
|
<div class="userInfo">
|
||||||
|
<div class="user-n-g">
|
||||||
|
<div class="name">{{ userInfo?.name }}</div>
|
||||||
|
<div class="grade">{{ userInfo?.grade }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="deptName">({{ userInfo?.nameEn }})</div>
|
||||||
|
<!-- + 대화상대 프로필 추가 -->
|
||||||
|
<!--
|
||||||
|
<div class="nickName">
|
||||||
|
<div class="nickName-info">닉네임 미설정</div>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
aria-label="icon create"
|
||||||
|
class="color-white"
|
||||||
|
>
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="address-txt">
|
||||||
|
마곡 사이언스 파크 E14동 9층
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
</div>
|
||||||
|
<div class="btn-profile-add">
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
>
|
||||||
|
<img src="../../../assets/images/ico/btn_favorite_w24_s.svg" alt="" />
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-icon-button
|
||||||
|
class="btn-star-add"
|
||||||
|
aria-label="Example icon-button with a heart icon"
|
||||||
|
>
|
||||||
|
<img src="../../../assets/images/ico/btn_group_add_w24.svg" alt="" />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- + 대회상대 프로필-->
|
||||||
|
<!--
|
||||||
|
<div class="btn-partner-set">
|
||||||
|
<button mat-icon-button aria-label="chat">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_lise_chat_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="message">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_message_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="mobile">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_mobile_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="call">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_call_a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button aria-label="vc">
|
||||||
|
<img
|
||||||
|
src="../../../assets/images/ico/btn_list_vc-a24.svg"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
<!-- + 내프로필 -->
|
||||||
|
<div class="my-input inputtype">
|
||||||
|
<mat-form-field class="example-full-width my-in-input" appearance="none">
|
||||||
|
<mat-label></mat-label>
|
||||||
|
<input matInput placeholder="" value="마곡 사이언스 파크 E14동 9층" />
|
||||||
|
</mat-form-field>
|
||||||
|
<button mat-icon-button aria-label="icon create" class="color-white">
|
||||||
|
<mat-icon>create</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="user-profile-info-list">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.company' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.companyName }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.department' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.deptName }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.email' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.email }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.linePhoneNumber' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.lineNumber }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span>{{ 'profile.labels.mobilePhoneNumber' | ucapI18n }}</span>
|
||||||
|
{{ userInfo?.hpNumber }}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //Profile-->
|
||||||
|
</div>
|
BIN
documents/업무/5월/3째주/backup-prj/ucap-angular.zip
Normal file
BIN
documents/업무/5월/3째주/backup-prj/ucap-angular.zip
Normal file
Binary file not shown.
BIN
documents/업무/5월/3째주/backup-prj/ucap-lg-web.zip
Normal file
BIN
documents/업무/5월/3째주/backup-prj/ucap-lg-web.zip
Normal file
Binary file not shown.
BIN
documents/업무/5월/3째주/backup-prj/ucap.zip
Normal file
BIN
documents/업무/5월/3째주/backup-prj/ucap.zip
Normal file
Binary file not shown.
|
@ -0,0 +1,27 @@
|
||||||
|
<div class="dialog-container">
|
||||||
|
<!-- <app-layouts-default-dialog [disableClose]="true" (closed)="onClosed($event)">
|
||||||
|
<div class="dialog-body" appLayoutsDefaultDialog="body">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</app-layouts-default-dialog> -->
|
||||||
|
|
||||||
|
<ucap-inline-edit-input
|
||||||
|
[initialMode]="true"
|
||||||
|
(apply)="
|
||||||
|
$event.stopPropagation(); onApplyEditGroupName(editGroupInput.value)
|
||||||
|
"
|
||||||
|
(edit)="$event.stopPropagation()"
|
||||||
|
(cancel)="onClosed($event)"
|
||||||
|
class="form-eidt"
|
||||||
|
>
|
||||||
|
<span ucapInlineEditInput="view">{{ data.group.name }}</span>
|
||||||
|
<span ucapInlineEditInput="edit"
|
||||||
|
><input
|
||||||
|
matInput
|
||||||
|
#editGroupInput
|
||||||
|
type="text"
|
||||||
|
[value]="data.group.name"
|
||||||
|
(click)="$event.stopPropagation()"
|
||||||
|
/></span>
|
||||||
|
</ucap-inline-edit-input>
|
||||||
|
</div>
|
|
@ -0,0 +1,14 @@
|
||||||
|
.dialog-container {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
.ng-star-inserted {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
mat-dialog-container {
|
||||||
|
padding: 0px !important;
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
.ucap-edit-group-name-dialog {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { EditNameDialogComponent } from './edit-name.dialog.component';
|
||||||
|
|
||||||
|
describe('ucap::ui-organization::CreateChatDialogComponent', () => {
|
||||||
|
let component: EditNameDialogComponent;
|
||||||
|
let fixture: ComponentFixture<EditNameDialogComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [EditNameDialogComponent]
|
||||||
|
}).compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(EditNameDialogComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,130 @@
|
||||||
|
import { Subject, of } from 'rxjs';
|
||||||
|
|
||||||
|
import {
|
||||||
|
Component,
|
||||||
|
OnInit,
|
||||||
|
OnDestroy,
|
||||||
|
ChangeDetectionStrategy,
|
||||||
|
Inject
|
||||||
|
} from '@angular/core';
|
||||||
|
|
||||||
|
import { Store } from '@ngrx/store';
|
||||||
|
|
||||||
|
import {
|
||||||
|
MatDialogRef,
|
||||||
|
MAT_DIALOG_DATA,
|
||||||
|
MatDialog,
|
||||||
|
MatDialogConfig
|
||||||
|
} from '@angular/material/dialog';
|
||||||
|
|
||||||
|
import { UserInfo, GroupDetailData } from '@ucap/protocol-sync';
|
||||||
|
import { UserInfoSS, UserInfoF, UserInfoDN } from '@ucap/protocol-query';
|
||||||
|
import { UserInfo as RoomUserInfo } from '@ucap/protocol-room';
|
||||||
|
import { I18nService } from '@ucap/ng-i18n';
|
||||||
|
|
||||||
|
import {
|
||||||
|
AlertDialogComponent,
|
||||||
|
AlertDialogData,
|
||||||
|
AlertDialogResult
|
||||||
|
} from '@ucap/ng-ui';
|
||||||
|
import { take, map, catchError } from 'rxjs/operators';
|
||||||
|
import { GroupActions } from '@ucap/ng-store-group';
|
||||||
|
|
||||||
|
export type UserInfoTypes =
|
||||||
|
| UserInfo
|
||||||
|
| UserInfoSS
|
||||||
|
| UserInfoF
|
||||||
|
| UserInfoDN
|
||||||
|
| RoomUserInfo;
|
||||||
|
|
||||||
|
export interface EditNameDialogData {
|
||||||
|
title: string;
|
||||||
|
group: GroupDetailData;
|
||||||
|
left: number;
|
||||||
|
top: number;
|
||||||
|
idx: number;
|
||||||
|
}
|
||||||
|
export interface EditNameDialogResult {}
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-dialog-group-edit-name',
|
||||||
|
templateUrl: './edit-name.dialog.component.html',
|
||||||
|
styleUrls: ['./edit-name.dialog.component.scss'],
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush
|
||||||
|
})
|
||||||
|
export class EditNameDialogComponent implements OnInit, OnDestroy {
|
||||||
|
constructor(
|
||||||
|
public dialogRef: MatDialogRef<EditNameDialogData, EditNameDialogResult>,
|
||||||
|
@Inject(MAT_DIALOG_DATA) public data: EditNameDialogData,
|
||||||
|
|
||||||
|
private store: Store<any>,
|
||||||
|
private i18nService: I18nService,
|
||||||
|
public dialog: MatDialog
|
||||||
|
) {}
|
||||||
|
|
||||||
|
private ngOnDestroySubject: Subject<void>;
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
const matDialogConfig: MatDialogConfig = new MatDialogConfig();
|
||||||
|
|
||||||
|
matDialogConfig.position = {
|
||||||
|
left: `${this.data.left}px`,
|
||||||
|
top: `${this.data.top + 50}px`
|
||||||
|
};
|
||||||
|
|
||||||
|
this.dialogRef.updatePosition(matDialogConfig.position);
|
||||||
|
|
||||||
|
this.ngOnDestroySubject = new Subject();
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
if (!!this.ngOnDestroySubject) {
|
||||||
|
this.ngOnDestroySubject.complete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onClosed(event: MouseEvent): void {
|
||||||
|
this.dialogRef.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
onApplyEditGroupName(groupName: string) {
|
||||||
|
if (groupName.localeCompare(this.data.group.name) === 0) {
|
||||||
|
this.dialogRef.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (groupName.localeCompare('') === 0) {
|
||||||
|
const dialogRef = this.dialog.open<
|
||||||
|
AlertDialogComponent,
|
||||||
|
AlertDialogData,
|
||||||
|
AlertDialogResult
|
||||||
|
>(AlertDialogComponent, {
|
||||||
|
data: {
|
||||||
|
title: this.i18nService.t('moreMenu.error.label'),
|
||||||
|
html: this.i18nService.t('moreMenu.error.requireName')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
dialogRef
|
||||||
|
.afterClosed()
|
||||||
|
.pipe(
|
||||||
|
take(1),
|
||||||
|
map((result) => {}),
|
||||||
|
catchError((err) => {
|
||||||
|
return of(err);
|
||||||
|
})
|
||||||
|
)
|
||||||
|
.subscribe();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.store.dispatch(
|
||||||
|
GroupActions.update({
|
||||||
|
req: {
|
||||||
|
groupSeq: this.data.group.seq,
|
||||||
|
groupName,
|
||||||
|
userSeqs: this.data.group.userSeqs
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
this.dialogRef.close();
|
||||||
|
}
|
||||||
|
onCompleteConfirm() {}
|
||||||
|
}
|
42
documents/업무/5월/3째주/lgweb-group-backup/temp.txt
Normal file
42
documents/업무/5월/3째주/lgweb-group-backup/temp.txt
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
private async inlineDialog(curValue: string, left: number, top: number): Promise<string> {
|
||||||
|
const target = this.elementRef.nativeElement.querySelector(
|
||||||
|
'.mat-tree-node'
|
||||||
|
);
|
||||||
|
const rect = target.getBoundingClientRect();
|
||||||
|
|
||||||
|
const clickEventY = this.groupMenuEvent.clientY;
|
||||||
|
const tartgetY = Math.floor((clickEventY - 150) * 0.1) * 10;
|
||||||
|
|
||||||
|
const dialogRef = this.dialog.open(EditInlineInputDialogComponent, {
|
||||||
|
width: rect.width,
|
||||||
|
height: rect.height,
|
||||||
|
panelClass: 'ucap-edit-group-name-dialog',
|
||||||
|
data: {
|
||||||
|
curValue,
|
||||||
|
left,
|
||||||
|
top
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
dialogRef
|
||||||
|
.afterClosed()
|
||||||
|
.pipe(
|
||||||
|
take(1),
|
||||||
|
map((result) => {
|
||||||
|
|
||||||
|
if (
|
||||||
|
!!result &&
|
||||||
|
result.choice &&
|
||||||
|
result.curValue.localeCompare(curValue) !== 0
|
||||||
|
) {
|
||||||
|
|
||||||
|
return result.curValue;
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}),
|
||||||
|
catchError((err) => {
|
||||||
|
return of(err);
|
||||||
|
})
|
||||||
|
)
|
||||||
|
.subscribe();
|
||||||
|
}
|
BIN
weekly-report/5월/주간보고_박병은_2020.0522.pptx
Normal file
BIN
weekly-report/5월/주간보고_박병은_2020.0522.pptx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user