2022-08-25 09:40:16 +00:00

667 lines
26 KiB
HTML

<div
class="flex flex-col w-full min-w-0 sm:absolute sm:inset-0 sm:overflow-hidden"
>
<mat-drawer-container class="flex-auto sm:h-full">
<!-- Drawer -->
<mat-drawer
class="sm:w-96 dark:bg-gray-900"
[autoFocus]="false"
[mode]="drawerMode"
[opened]="drawerOpened"
#drawer
>
<!-- Header -->
<div class="flex items-center justify-between m-8 mr-6 sm:my-10">
<!-- Title -->
<div class="text font-extrabold tracking-tight leading-none">
<div class="flex flex-col flex-auto order-2 md:order-1">
<div class="text font-semibold leading-tight">사용자</div>
<div class="mt-6">
<div class="flex flex-wrap items-center text-secondary my-1">
<span>카테고리</span>
<span class="mx-2">&bull;</span>
<!-- <span class="whitespace-nowrap"
>on00, on01, on02</span
> -->
<mat-chip-list aria-label="Fish selection">
<mat-chip color="accent">on00</mat-chip>
<mat-chip color="accent">on01</mat-chip>
<mat-chip color="accent" selected>on02</mat-chip>
<mat-chip color="accent" selected>on03</mat-chip>
</mat-chip-list>
</div>
<div class="flex items-center text-secondary my-1">
<span>사이트명</span>
<span class="mx-2">&bull;</span>
<span>test.com</span>
</div>
<div class="flex items-center text-secondary my-1">
<span>가입일자</span>
<span class="mx-2">&bull;</span>
<span>{{
currentMember?.getCreatedAt() | date: "yyyy/MM/dd HH:mm"
}}</span>
</div>
<div class="flex items-center text-secondary my-1">
<span>하부회원수</span>
<span class="mx-2">&bull;</span>
<span>0명</span>
</div>
<div class="flex items-center text-secondary my-1">
<span>총입금</span>
<span class="mx-2">&bull;</span>
<span>2,000</span>
</div>
<div class="flex items-center text-secondary my-1">
<span>총출금</span>
<span class="mx-2">&bull;</span>
<span>2,000</span>
</div>
<div class="flex items-center text-secondary my-1">
<span>총입금-총출금</span>
<span class="mx-2">&bull;</span>
<span>2,000</span>
</div>
<div class="flex items-center text-secondary my-1">
<span>최근30일 배팅금액</span>
<span class="mx-2">&bull;</span>
<span>200,000</span>
</div>
<div class="flex items-center text-secondary my-1">
<span>당첨금액</span>
<span class="mx-2">&bull;</span>
<span>200,000</span>
</div>
<div class="flex items-center text-secondary my-1">
<span>수수료</span>
<span class="mx-2">&bull;</span>
<span>0</span>
</div>
</div>
</div>
</div>
<!-- Close button -->
<div class="lg:hidden">
<button mat-icon-button (click)="drawer.close()">
<mat-icon [svgIcon]="'heroicons_outline:x'"></mat-icon>
</button>
</div>
</div>
<!-- Panel links -->
<div class="flex flex-col divide-y border-t border-b">
<ng-container *ngFor="let panel of panels; trackBy: trackByFn">
<div
class="flex px-8 py-5 cursor-pointer"
[ngClass]="{
'hover:bg-gray-100 dark:hover:bg-hover':
!selectedPanel || selectedPanel !== panel.id,
'bg-primary-50 dark:bg-hover':
selectedPanel && selectedPanel === panel.id
}"
(click)="goToPanel(panel.id)"
>
<mat-icon
[ngClass]="{
'text-hint': !selectedPanel || selectedPanel !== panel.id,
'text-primary dark:text-primary-500':
selectedPanel && selectedPanel === panel.id
}"
[svgIcon]="panel.icon"
></mat-icon>
<div class="ml-3">
<div
class="font-medium leading-6"
[ngClass]="{
'text-primary dark:text-primary-500':
selectedPanel && selectedPanel === panel.id
}"
>
{{ panel.title }}
</div>
<div class="mt-0.5 text-secondary">
{{ panel.description }}
</div>
</div>
</div>
</ng-container>
</div>
</mat-drawer>
<!-- Drawer content -->
<mat-drawer-content class="flex flex-col">
<!-- Main -->
<div class="flex-auto px-6 pt-9 pb-12 md:p-8 md:pb-12 lg:p-12">
<!-- Panel header -->
<div class="flex items-center">
<!-- Drawer toggle -->
<button
class="lg:hidden -ml-2"
mat-icon-button
(click)="drawer.toggle()"
>
<mat-icon [svgIcon]="'heroicons_outline:menu'"></mat-icon>
</button>
<!-- Panel title -->
<div
class="ml-2 lg:ml-0 text-3xl font-bold tracking-tight leading-none"
>
{{ getPanelInfo(selectedPanel).title }}
</div>
<fuse-alert
class="ml-8 pl-8"
*ngIf="changePasswordResultShowAlert"
[appearance]="'outline'"
[showIcon]="false"
[type]="alertConfig.type"
[@shake]="alertConfig.type === 'error'"
>
{{ alertConfig.message }}
</fuse-alert>
</div>
<!-- Load settings panel -->
<div class="mt-8">
<ng-container [ngSwitch]="selectedPanel">
<!-- Account -->
<ng-container *ngSwitchCase="'accountInfo'">
<form
class="flex flex-col w-full"
[formGroup]="memberDefaultForm"
>
<div class="flex">
<mat-form-field class="w-1/3 pr-2">
<mat-label>아이디</mat-label>
<input
id="username"
matInput
[formControlName]="'username'"
/>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>닉네임</mat-label>
<input
id="nickname"
matInput
[formControlName]="'nickname'"
/>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>핸드폰</mat-label>
<input
id="mobilePhoneNumber"
matInput
[formControlName]="'mobilePhoneNumber'"
/>
</mat-form-field>
</div>
<div class="flex">
<mat-form-field class="w-1/3 pr-2">
<mat-label>비밀번호</mat-label>
<input
id="signinPw"
matInput
[formControlName]="'signinPw'"
/>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>비밀번호 확인</mat-label>
<input
id="signinPwConfirm"
matInput
[formControlName]="'signinPwConfirm'"
/>
</mat-form-field>
<div class="w-1/3 pr-2 mt-8">
<button
mat-flat-button
[color]="'primary'"
(click)="__changePassword()"
>
비밀번호 수정
</button>
</div>
</div>
<div class="flex">
<mat-form-field class="w-1/3 pr-2">
<mat-label>레벨</mat-label>
<mat-select
[formControlName]="'levelName'"
placeholder="레벨 선택"
>
<mat-option
*ngFor="let level of memberLevels"
[value]="level.getName()"
>
{{ level.getName() }}
</mat-option>
<!-- <mat-option [value]="'0'"> 국민은행 </mat-option> -->
</mat-select>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>상태</mat-label>
<mat-select
id="state"
[formControlName]="'state'"
(selectionChange)="onSelectionChangeLanguage($event)"
>
<ng-container *ngFor="let info of memberStateOptions">
<mat-option [value]="info.value">
{{ info.label }}
</mat-option>
</ng-container>
</mat-select>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>환전금지</mat-label>
<mat-select [formControlName]="'isExcahngeMoney'">
<!-- <ng-container *ngFor="let vendor of vendors"> -->
<mat-option value="vendor.id"> vendor option </mat-option>
<!-- </ng-container> -->
</mat-select>
</mat-form-field>
</div>
<div class="flex">
<mat-form-field class="w-1/3 pr-2">
<mat-label>보유머니</mat-label>
<input
id="ownCash"
matInput
[formControlName]="'ownCash'"
/>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>콤프</mat-label>
<input
id="ownComp"
type="text"
matInput
[formControlName]="'comp'"
/>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>쿠폰</mat-label>
<input
id="ownCoupon"
type="text"
matInput
[formControlName]="'coupon'"
/>
</mat-form-field>
</div>
<div class="flex">
<mat-form-field class="w-1/3 pr-2">
<mat-label>추천인</mat-label>
<input
type="text"
matInput
[formControlName]="'recommender'"
/>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>사이트변경</mat-label>
<mat-select
[formControlName]="'siteUrl'"
placeholder="사이트 선택"
>
<mat-option
*ngFor="let site of sites"
[value]="site.getUrl()"
>
{{ site.getUrl() }}
</mat-option>
</mat-select>
<!-- <mat-error *ngIf="composeForm.get('siteId')?.hasError('required')">
사이트명은 필수 입력입니다.
</mat-error> -->
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>추천횟수</mat-label>
<input
type="text"
matInput
[formControlName]="'recommendCount'"
/>
</mat-form-field>
</div>
<div class="flex flex-col flex-auto w-full p-8 text-center">
<mat-form-field class="">
<mat-label>게임중머니</mat-label>
<input
type="text"
matInput
[formControlName]="'hodingGameMoney'"
/>
</mat-form-field>
</div>
<!-- Email & Phone -->
<div class="flex items-center w-full border-t divide-x">
<button class="-ml-4" mat-button [color]="'warn'">
게임머니회수
</button>
<button mat-flat-button [color]="'primary'">
게임머니확인
</button>
</div>
<ng-container *ngTemplateOutlet="commonButton"></ng-container>
</form>
</ng-container>
<ng-container *ngSwitchCase="'bankInfo'">
<form class="flex flex-col w-full" [formGroup]="memberBankForm">
<div class="flex">
<mat-form-field class="w-1/3 pr-2">
<mat-label>환전 비밀번호</mat-label>
<input
id="exchangePw"
matInput
[formControlName]="'exchangePw'"
/>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>환전 비밀번호 확인</mat-label>
<input
id="exchangePwConfirm"
matInput
[formControlName]="'exchangePwConfirm'"
/>
</mat-form-field>
<div class="w-1/3 pr-2 mt-8">
<button
mat-flat-button
[color]="'primary'"
(click)="__changeExcahngePassword()"
>
비밀번호 수정
</button>
</div>
</div>
<div class="flex">
<mat-form-field class="w-1/3 pr-2">
<mat-label>은행명</mat-label>
<mat-select
[formControlName]="'bankName'"
placeholder="은행 선택"
>
<mat-option
*ngFor="let bank of banks"
[value]="bank.getName()"
>
{{ bank.getName() }}
</mat-option>
<!-- <mat-option [value]="'0'"> 국민은행 </mat-option> -->
</mat-select>
<!-- <mat-error
*ngIf="
composeForm.get('bankId')?.hasError('required')
"
>
은행명은 필수 입력입니다.
</mat-error> -->
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>계좌번호</mat-label>
<input
type="text"
matInput
[formControlName]="'accountNumber'"
/>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>예금주</mat-label>
<input
id="accountHolder"
type="text"
matInput
[formControlName]="'accountHolder'"
/>
</mat-form-field>
</div>
<mat-form-field class="w-full fuse-mat-textarea">
<mat-label>메모</mat-label>
<textarea
matInput
name="memo"
[formControlName]="'description'"
row="5"
></textarea>
</mat-form-field>
<ng-container *ngTemplateOutlet="commonButton"></ng-container>
</form>
</ng-container>
<!-- Security -->
<ng-container *ngSwitchCase="'settleInfo'">
<form class="flex flex-col w-full" [formGroup]="memberSettleForm">
<div class="flex">
<mat-form-field class="w-1/3 pr-2">
<mat-label>바카라 요율</mat-label>
<input
type="text"
matInput
[formControlName]="'bacaraRate'"
style="width: 40%"
/>
<div class="mt-1 text-md text-hint">
%(최소 0 ~ 최대 0.2)
</div>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>룰렛 요율</mat-label>
<input
type="text"
matInput
[formControlName]="'rulletRate'"
style="width: 40%"
/>
<div class="mt-1 text-md text-hint">
%(최소 0 ~ 최대 0.2)
</div>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>드래곤타이거 요율</mat-label>
<input
type="text"
matInput
[formControlName]="'dragonRate'"
style="width: 40%"
/>
<div class="mt-1 text-md text-hint">
%(최소 0 ~ 최대 0.2)
</div>
</mat-form-field>
</div>
<div class="flex">
<mat-form-field class="w-1/3 pr-2">
<mat-label>기타 게임 요율</mat-label>
<input
type="text"
matInput
[formControlName]="'etcRate'"
style="width: 40%"
/>
<div class="mt-1 text-md text-hint">
%(최소 0 ~ 최대 0.2)
</div>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>슬롯게임요율</mat-label>
<input
type="text"
matInput
[formControlName]="'slotRate'"
style="width: 40%"
/>
<div class="mt-1 text-md text-hint">
%(최소 0 ~ 최대 0.2)
</div>
</mat-form-field>
<mat-form-field class="w-1/3 pr-2">
<mat-label>카지노 루징요율</mat-label>
<input
type="text"
matInput
[formControlName]="'casinoRusingRate'"
style="width: 40%"
/>
<div class="mt-1 text-md text-hint">
%(최소 0 ~ 최대 0.2)
</div>
</mat-form-field>
</div>
<div class="flex">
<mat-form-field class="w-1/3 pr-2">
<mat-label>슬롯게임 루징요율</mat-label>
<input
type="text"
matInput
[formControlName]="'slotRusingRate'"
style="width: 40%"
/>
<div class="mt-1 text-md text-hint">
%(최소 0 ~ 최대 0.2)
</div>
</mat-form-field>
<span class="w-1/3 pr-2">
<mat-slide-toggle [color]="'primary'">
첫충콤프
</mat-slide-toggle>
</span>
<span class="w-1/3 pr-2">
<mat-slide-toggle [color]="'primary'">
매충콤프
</mat-slide-toggle>
</span>
</div>
<div class="flex">
<span class="font-semibold mb-2">파트너수동지급</span>
<mat-radio-group
class="flex flex-col w-1/3 pr-2"
[color]="'primary'"
[value]="'just-good'"
>
<mat-radio-button class="mb-2" [value]="'everything'">
하부파트너전체
</mat-radio-button>
<mat-radio-button class="mb-2" [value]="'just-good'">
직속파트너만
</mat-radio-button>
<mat-radio-button [value]="'no-push'">
사용안함
</mat-radio-button>
</mat-radio-group>
</div>
</form>
<ng-container *ngTemplateOutlet="commonButton"></ng-container>
</ng-container>
<!-- Plan & Billing -->
<ng-container *ngSwitchCase="'gameInfo'">
<form
class="flex flex-col w-full"
[formGroup]="memberGameSettingForm"
>
<div class="flex">
<span class="w-1/3 pr-2">
<mat-slide-toggle [color]="'primary'">
파워볼베팅
</mat-slide-toggle>
</span>
<span class="w-1/3 pr-2">
<mat-slide-toggle [color]="'primary'">
카지노 베팅
</mat-slide-toggle>
</span>
<span class="w-1/3 pr-2">
<mat-slide-toggle [color]="'primary'">
슬롯베팅
</mat-slide-toggle>
</span>
</div>
<div class="flex">
<span class="w-1/3 pr-2">
<mat-label>등급: </mat-label>
<mat-label>유저</mat-label>
</span>
<span class="w-1/3 pr-2">
<mat-label>정산종류: </mat-label>
<mat-label>롤링</mat-label>
</span>
<span class="w-1/3 pr-2">
<mat-label>금일 입금/ 출금액: </mat-label>
<mat-label>0원(이전일: 0원)</mat-label>
<mat-label>/ 0원(이전일: 0원)</mat-label>
</span>
</div>
</form>
<ng-container *ngTemplateOutlet="commonButton"></ng-container>
</ng-container>
<!-- Notifications -->
<ng-container *ngSwitchCase="'historyInfo'">
<div class="flex flex-col flex-auto min-w-0">
<div class="flex-auto border-t -mt-px pt-4 sm:pt-6">
<div class="w-full max-w-screen-xl mx-auto">
<div
class="grid grid-cols-1 sm:grid-cols-6 gap-6 w-full min-w-0"
>
<!-- Budget distribution -->
<div
class="sm:col-span-6 flex flex-col flex-auto p-6 bg-card shadow rounded-2xl overflow-hidden"
>
<mat-tab-group [animationDuration]="'0ms'">
<mat-tab label="충전내역" class="bg-gray-200">
<ng-template matTabContent>
<deposit-history></deposit-history>
</ng-template>
</mat-tab>
<mat-tab label="환전내역">
<ng-template matTabContent>
<withdraw-history></withdraw-history>
</ng-template>
</mat-tab>
<mat-tab label="웹로그인정보">
<ng-template matTabContent>
<web-sign-in-history></web-sign-in-history>
</ng-template>
</mat-tab>
<mat-tab label="파트너로그인정보">
<ng-template matTabContent>
<partner-sign-in-history></partner-sign-in-history>
</ng-template>
</mat-tab>
</mat-tab-group>
</div>
</div>
</div>
</div>
</div>
</ng-container>
</ng-container>
</div>
</div>
</mat-drawer-content>
</mat-drawer-container>
</div>
<ng-template #commonButton>
<div class="flex items-center w-full border-t divide-x">
<button
class="-ml-4"
mat-flat-button
[color]="'primary'"
(click)="__modifyMember()"
>
수정
</button>
<button class="-ml-4" mat-flat-button [color]="'primary'">목록으로</button>
</div>
</ng-template>