Merge branch 'feature/BETERAN-BACKEND-APP-BROWSER-init' of https://gitlab.loafle.net/bet/beteran-backend-app-browser into feature/BETERAN-BACKEND-APP-BROWSER-init
This commit is contained in:
commit
11e33e97b7
|
@ -0,0 +1,19 @@
|
||||||
|
<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"
|
||||||
|
>
|
||||||
|
<div class="text-lg font-medium tracking-tight leading-6 truncate">
|
||||||
|
검색
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col flex-auto mt-2 overflow-x-auto">
|
||||||
|
입금정보 테이블
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,106 @@
|
||||||
|
import {
|
||||||
|
AfterViewInit,
|
||||||
|
ChangeDetectionStrategy,
|
||||||
|
ChangeDetectorRef,
|
||||||
|
Component,
|
||||||
|
OnDestroy,
|
||||||
|
OnInit,
|
||||||
|
ViewChild,
|
||||||
|
ViewEncapsulation,
|
||||||
|
} from '@angular/core';
|
||||||
|
import { MatPaginator } from '@angular/material/paginator';
|
||||||
|
import { fuseAnimations } from '@fuse/animations';
|
||||||
|
import { Subject } from 'rxjs';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'deposit-history',
|
||||||
|
templateUrl: './deposit-history.component.html',
|
||||||
|
styles: [
|
||||||
|
/* language=SCSS */
|
||||||
|
`
|
||||||
|
.deposit-history-grid {
|
||||||
|
grid-template-columns: 60px auto 40px;
|
||||||
|
|
||||||
|
@screen sm {
|
||||||
|
grid-template-columns: 100px auto 60px 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@screen md {
|
||||||
|
grid-template-columns: 100px 100px auto 60px 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@screen lg {
|
||||||
|
grid-template-columns: 100px 100px 100px 60px 60px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
],
|
||||||
|
encapsulation: ViewEncapsulation.None,
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
|
animations: fuseAnimations,
|
||||||
|
})
|
||||||
|
export class DepositHistoryComponent
|
||||||
|
implements OnInit, AfterViewInit, OnDestroy
|
||||||
|
{
|
||||||
|
@ViewChild(MatPaginator) private _paginator!: MatPaginator;
|
||||||
|
|
||||||
|
private _unsubscribeAll: Subject<any> = new Subject<any>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
constructor(private _changeDetectorRef: ChangeDetectorRef) {}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Lifecycle hooks
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On init
|
||||||
|
*/
|
||||||
|
ngOnInit(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* After view init
|
||||||
|
*/
|
||||||
|
ngAfterViewInit(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On destroy
|
||||||
|
*/
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
// Unsubscribe from all subscriptions
|
||||||
|
this._unsubscribeAll.next(null);
|
||||||
|
this._unsubscribeAll.complete();
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Public methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Private methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create product
|
||||||
|
*/
|
||||||
|
__createProduct(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle product details
|
||||||
|
*
|
||||||
|
* @param productId
|
||||||
|
*/
|
||||||
|
__toggleDetails(productId: string): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Track by function for ngFor loops
|
||||||
|
*
|
||||||
|
* @param index
|
||||||
|
* @param item
|
||||||
|
*/
|
||||||
|
__trackByFn(index: number, item: any): any {
|
||||||
|
return item.id || index;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,15 @@
|
||||||
|
import { DepositHistoryComponent } from './deposit-history.component';
|
||||||
import { ListComponent } from './list.component';
|
import { ListComponent } from './list.component';
|
||||||
|
import { PartnerSignInHistoryComponent } from './partner-sign-in-history.component';
|
||||||
import { ViewComponent } from './view.component';
|
import { ViewComponent } from './view.component';
|
||||||
|
import { WebSignInHistoryComponent } from './web-sign-in-history.component';
|
||||||
|
import { WithdrawHistoryComponent } from './withdraw-history.component';
|
||||||
|
|
||||||
export const COMPONENTS = [ListComponent, ViewComponent];
|
export const COMPONENTS = [
|
||||||
|
ListComponent,
|
||||||
|
ViewComponent,
|
||||||
|
DepositHistoryComponent,
|
||||||
|
WithdrawHistoryComponent,
|
||||||
|
WebSignInHistoryComponent,
|
||||||
|
PartnerSignInHistoryComponent,
|
||||||
|
];
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
<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"
|
||||||
|
>
|
||||||
|
<div class="text-lg font-medium tracking-tight leading-6 truncate">
|
||||||
|
검색
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col flex-auto mt-2 overflow-x-auto">
|
||||||
|
파트너로그인내역 테이블
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,106 @@
|
||||||
|
import {
|
||||||
|
AfterViewInit,
|
||||||
|
ChangeDetectionStrategy,
|
||||||
|
ChangeDetectorRef,
|
||||||
|
Component,
|
||||||
|
OnDestroy,
|
||||||
|
OnInit,
|
||||||
|
ViewChild,
|
||||||
|
ViewEncapsulation,
|
||||||
|
} from '@angular/core';
|
||||||
|
import { MatPaginator } from '@angular/material/paginator';
|
||||||
|
import { fuseAnimations } from '@fuse/animations';
|
||||||
|
import { Subject } from 'rxjs';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'partner-sign-in-history',
|
||||||
|
templateUrl: './partner-sign-in-history.component.html',
|
||||||
|
styles: [
|
||||||
|
/* language=SCSS */
|
||||||
|
`
|
||||||
|
.partner-sign-in-history-grid {
|
||||||
|
grid-template-columns: 60px auto 40px;
|
||||||
|
|
||||||
|
@screen sm {
|
||||||
|
grid-template-columns: 100px auto 60px 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@screen md {
|
||||||
|
grid-template-columns: 100px 100px auto 60px 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@screen lg {
|
||||||
|
grid-template-columns: 100px 100px 100px 60px 60px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
],
|
||||||
|
encapsulation: ViewEncapsulation.None,
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
|
animations: fuseAnimations,
|
||||||
|
})
|
||||||
|
export class PartnerSignInHistoryComponent
|
||||||
|
implements OnInit, AfterViewInit, OnDestroy
|
||||||
|
{
|
||||||
|
@ViewChild(MatPaginator) private _paginator!: MatPaginator;
|
||||||
|
|
||||||
|
private _unsubscribeAll: Subject<any> = new Subject<any>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
constructor(private _changeDetectorRef: ChangeDetectorRef) {}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Lifecycle hooks
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On init
|
||||||
|
*/
|
||||||
|
ngOnInit(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* After view init
|
||||||
|
*/
|
||||||
|
ngAfterViewInit(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On destroy
|
||||||
|
*/
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
// Unsubscribe from all subscriptions
|
||||||
|
this._unsubscribeAll.next(null);
|
||||||
|
this._unsubscribeAll.complete();
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Public methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Private methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create product
|
||||||
|
*/
|
||||||
|
__createProduct(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle product details
|
||||||
|
*
|
||||||
|
* @param productId
|
||||||
|
*/
|
||||||
|
__toggleDetails(productId: string): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Track by function for ngFor loops
|
||||||
|
*
|
||||||
|
* @param index
|
||||||
|
* @param item
|
||||||
|
*/
|
||||||
|
__trackByFn(index: number, item: any): any {
|
||||||
|
return item.id || index;
|
||||||
|
}
|
||||||
|
}
|
|
@ -447,6 +447,7 @@
|
||||||
type="text"
|
type="text"
|
||||||
matInput
|
matInput
|
||||||
[formControlName]="'bacaraRate'"
|
[formControlName]="'bacaraRate'"
|
||||||
|
style="width: 40%"
|
||||||
/>
|
/>
|
||||||
<div class="mt-1 text-md text-hint">
|
<div class="mt-1 text-md text-hint">
|
||||||
%(최소 0 ~ 최대 0.2)
|
%(최소 0 ~ 최대 0.2)
|
||||||
|
@ -458,6 +459,7 @@
|
||||||
type="text"
|
type="text"
|
||||||
matInput
|
matInput
|
||||||
[formControlName]="'rulletRate'"
|
[formControlName]="'rulletRate'"
|
||||||
|
style="width: 40%"
|
||||||
/>
|
/>
|
||||||
<div class="mt-1 text-md text-hint">
|
<div class="mt-1 text-md text-hint">
|
||||||
%(최소 0 ~ 최대 0.2)
|
%(최소 0 ~ 최대 0.2)
|
||||||
|
@ -469,6 +471,7 @@
|
||||||
type="text"
|
type="text"
|
||||||
matInput
|
matInput
|
||||||
[formControlName]="'dragonRate'"
|
[formControlName]="'dragonRate'"
|
||||||
|
style="width: 40%"
|
||||||
/>
|
/>
|
||||||
<div class="mt-1 text-md text-hint">
|
<div class="mt-1 text-md text-hint">
|
||||||
%(최소 0 ~ 최대 0.2)
|
%(최소 0 ~ 최대 0.2)
|
||||||
|
@ -479,7 +482,12 @@
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<mat-form-field class="w-1/3 pr-2">
|
<mat-form-field class="w-1/3 pr-2">
|
||||||
<mat-label>기타 게임 요율</mat-label>
|
<mat-label>기타 게임 요율</mat-label>
|
||||||
<input type="text" matInput [formControlName]="'etcRate'" />
|
<input
|
||||||
|
type="text"
|
||||||
|
matInput
|
||||||
|
[formControlName]="'etcRate'"
|
||||||
|
style="width: 40%"
|
||||||
|
/>
|
||||||
<div class="mt-1 text-md text-hint">
|
<div class="mt-1 text-md text-hint">
|
||||||
%(최소 0 ~ 최대 0.2)
|
%(최소 0 ~ 최대 0.2)
|
||||||
</div>
|
</div>
|
||||||
|
@ -490,6 +498,7 @@
|
||||||
type="text"
|
type="text"
|
||||||
matInput
|
matInput
|
||||||
[formControlName]="'slotRate'"
|
[formControlName]="'slotRate'"
|
||||||
|
style="width: 40%"
|
||||||
/>
|
/>
|
||||||
<div class="mt-1 text-md text-hint">
|
<div class="mt-1 text-md text-hint">
|
||||||
%(최소 0 ~ 최대 0.2)
|
%(최소 0 ~ 최대 0.2)
|
||||||
|
@ -501,6 +510,7 @@
|
||||||
type="text"
|
type="text"
|
||||||
matInput
|
matInput
|
||||||
[formControlName]="'casinoRusingRate'"
|
[formControlName]="'casinoRusingRate'"
|
||||||
|
style="width: 40%"
|
||||||
/>
|
/>
|
||||||
<div class="mt-1 text-md text-hint">
|
<div class="mt-1 text-md text-hint">
|
||||||
%(최소 0 ~ 최대 0.2)
|
%(최소 0 ~ 최대 0.2)
|
||||||
|
@ -514,6 +524,7 @@
|
||||||
type="text"
|
type="text"
|
||||||
matInput
|
matInput
|
||||||
[formControlName]="'slotRusingRate'"
|
[formControlName]="'slotRusingRate'"
|
||||||
|
style="width: 40%"
|
||||||
/>
|
/>
|
||||||
<div class="mt-1 text-md text-hint">
|
<div class="mt-1 text-md text-hint">
|
||||||
%(최소 0 ~ 최대 0.2)
|
%(최소 0 ~ 최대 0.2)
|
||||||
|
@ -593,8 +604,45 @@
|
||||||
<ng-container *ngTemplateOutlet="commonButton"></ng-container>
|
<ng-container *ngTemplateOutlet="commonButton"></ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<!-- Notifications -->
|
<!-- Notifications -->
|
||||||
<ng-container *ngSwitchCase="'historyInfo'"
|
<ng-container *ngSwitchCase="'historyInfo'">
|
||||||
><div>내역</div>
|
<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>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -62,6 +62,11 @@ import { MemberBankAccountService } from 'app/modules/polyglot/member_bank_accou
|
||||||
import { ListBanksResponse } from 'app/modules/proto/c2se/bank_pb';
|
import { ListBanksResponse } from 'app/modules/proto/c2se/bank_pb';
|
||||||
import { ListMemberClassesResponse } from 'app/modules/proto/c2se/member_class_pb';
|
import { ListMemberClassesResponse } from 'app/modules/proto/c2se/member_class_pb';
|
||||||
import { ListSitesResponse } from 'app/modules/proto/c2se/site_pb';
|
import { ListSitesResponse } from 'app/modules/proto/c2se/site_pb';
|
||||||
|
import {
|
||||||
|
GetMemberSettlementSettingResponse,
|
||||||
|
ListMemberSettlementSettingsResponse,
|
||||||
|
} from 'app/modules/proto/c2se/member_settlement_setting_pb';
|
||||||
|
import { MemberSettlementSetting } from 'app/modules/proto/models/member_settlement_setting_pb';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'user-view',
|
selector: 'user-view',
|
||||||
|
@ -142,6 +147,8 @@ export class ViewComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||||
selectedPanel: string = 'accountInfo';
|
selectedPanel: string = 'accountInfo';
|
||||||
|
|
||||||
memberLevels!: MemberLevel[];
|
memberLevels!: MemberLevel[];
|
||||||
|
memberSettlement!: MemberSettlementSetting;
|
||||||
|
|
||||||
banks!: Bank[];
|
banks!: Bank[];
|
||||||
sites!: Site[];
|
sites!: Site[];
|
||||||
|
|
||||||
|
@ -306,6 +313,15 @@ export class ViewComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||||
|
|
||||||
let listSitesResult: ListSitesResponse.Result = data['listSites'];
|
let listSitesResult: ListSitesResponse.Result = data['listSites'];
|
||||||
this.sites = listSitesResult.getSitesList();
|
this.sites = listSitesResult.getSitesList();
|
||||||
|
/*
|
||||||
|
let memberSettlementResult: GetMemberSettlementSettingResponse.Result =
|
||||||
|
data['memberSettlement'];
|
||||||
|
const memberSettlement =
|
||||||
|
memberSettlementResult.getMemberSettlementSetting();
|
||||||
|
|
||||||
|
if (!!memberSettlement) {
|
||||||
|
this.memberSettlement = memberSettlement;
|
||||||
|
} */
|
||||||
|
|
||||||
this.memberDefaultForm.patchValue({
|
this.memberDefaultForm.patchValue({
|
||||||
username: this.currentMember?.getUsername(),
|
username: this.currentMember?.getUsername(),
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
<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"
|
||||||
|
>
|
||||||
|
<div class="text-lg font-medium tracking-tight leading-6 truncate">
|
||||||
|
검색
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col flex-auto mt-2 overflow-x-auto">
|
||||||
|
웹로그인내역 테이블
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,106 @@
|
||||||
|
import {
|
||||||
|
AfterViewInit,
|
||||||
|
ChangeDetectionStrategy,
|
||||||
|
ChangeDetectorRef,
|
||||||
|
Component,
|
||||||
|
OnDestroy,
|
||||||
|
OnInit,
|
||||||
|
ViewChild,
|
||||||
|
ViewEncapsulation,
|
||||||
|
} from '@angular/core';
|
||||||
|
import { MatPaginator } from '@angular/material/paginator';
|
||||||
|
import { fuseAnimations } from '@fuse/animations';
|
||||||
|
import { Subject } from 'rxjs';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'web-sign-in-history',
|
||||||
|
templateUrl: './web-sign-in-history.component.html',
|
||||||
|
styles: [
|
||||||
|
/* language=SCSS */
|
||||||
|
`
|
||||||
|
.web-sign-in-history-grid {
|
||||||
|
grid-template-columns: 60px auto 40px;
|
||||||
|
|
||||||
|
@screen sm {
|
||||||
|
grid-template-columns: 100px auto 60px 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@screen md {
|
||||||
|
grid-template-columns: 100px 100px auto 60px 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@screen lg {
|
||||||
|
grid-template-columns: 100px 100px 100px 60px 60px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
],
|
||||||
|
encapsulation: ViewEncapsulation.None,
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
|
animations: fuseAnimations,
|
||||||
|
})
|
||||||
|
export class WebSignInHistoryComponent
|
||||||
|
implements OnInit, AfterViewInit, OnDestroy
|
||||||
|
{
|
||||||
|
@ViewChild(MatPaginator) private _paginator!: MatPaginator;
|
||||||
|
|
||||||
|
private _unsubscribeAll: Subject<any> = new Subject<any>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
constructor(private _changeDetectorRef: ChangeDetectorRef) {}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Lifecycle hooks
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On init
|
||||||
|
*/
|
||||||
|
ngOnInit(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* After view init
|
||||||
|
*/
|
||||||
|
ngAfterViewInit(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On destroy
|
||||||
|
*/
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
// Unsubscribe from all subscriptions
|
||||||
|
this._unsubscribeAll.next(null);
|
||||||
|
this._unsubscribeAll.complete();
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Public methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Private methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create product
|
||||||
|
*/
|
||||||
|
__createProduct(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle product details
|
||||||
|
*
|
||||||
|
* @param productId
|
||||||
|
*/
|
||||||
|
__toggleDetails(productId: string): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Track by function for ngFor loops
|
||||||
|
*
|
||||||
|
* @param index
|
||||||
|
* @param item
|
||||||
|
*/
|
||||||
|
__trackByFn(index: number, item: any): any {
|
||||||
|
return item.id || index;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
<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"
|
||||||
|
>
|
||||||
|
<div class="text-lg font-medium tracking-tight leading-6 truncate">
|
||||||
|
검색
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col flex-auto mt-2 overflow-x-auto">
|
||||||
|
출금내역 테이블
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,106 @@
|
||||||
|
import {
|
||||||
|
AfterViewInit,
|
||||||
|
ChangeDetectionStrategy,
|
||||||
|
ChangeDetectorRef,
|
||||||
|
Component,
|
||||||
|
OnDestroy,
|
||||||
|
OnInit,
|
||||||
|
ViewChild,
|
||||||
|
ViewEncapsulation,
|
||||||
|
} from '@angular/core';
|
||||||
|
import { MatPaginator } from '@angular/material/paginator';
|
||||||
|
import { fuseAnimations } from '@fuse/animations';
|
||||||
|
import { Subject } from 'rxjs';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'withdraw-history',
|
||||||
|
templateUrl: './withdraw-history.component.html',
|
||||||
|
styles: [
|
||||||
|
/* language=SCSS */
|
||||||
|
`
|
||||||
|
.withdraw-history-grid {
|
||||||
|
grid-template-columns: 60px auto 40px;
|
||||||
|
|
||||||
|
@screen sm {
|
||||||
|
grid-template-columns: 100px auto 60px 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@screen md {
|
||||||
|
grid-template-columns: 100px 100px auto 60px 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@screen lg {
|
||||||
|
grid-template-columns: 100px 100px 100px 60px 60px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
],
|
||||||
|
encapsulation: ViewEncapsulation.None,
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
|
animations: fuseAnimations,
|
||||||
|
})
|
||||||
|
export class WithdrawHistoryComponent
|
||||||
|
implements OnInit, AfterViewInit, OnDestroy
|
||||||
|
{
|
||||||
|
@ViewChild(MatPaginator) private _paginator!: MatPaginator;
|
||||||
|
|
||||||
|
private _unsubscribeAll: Subject<any> = new Subject<any>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
constructor(private _changeDetectorRef: ChangeDetectorRef) {}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Lifecycle hooks
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On init
|
||||||
|
*/
|
||||||
|
ngOnInit(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* After view init
|
||||||
|
*/
|
||||||
|
ngAfterViewInit(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On destroy
|
||||||
|
*/
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
// Unsubscribe from all subscriptions
|
||||||
|
this._unsubscribeAll.next(null);
|
||||||
|
this._unsubscribeAll.complete();
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Public methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Private methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create product
|
||||||
|
*/
|
||||||
|
__createProduct(): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle product details
|
||||||
|
*
|
||||||
|
* @param productId
|
||||||
|
*/
|
||||||
|
__toggleDetails(productId: string): void {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Track by function for ngFor loops
|
||||||
|
*
|
||||||
|
* @param index
|
||||||
|
* @param item
|
||||||
|
*/
|
||||||
|
__trackByFn(index: number, item: any): any {
|
||||||
|
return item.id || index;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,86 @@
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import {
|
||||||
|
ActivatedRouteSnapshot,
|
||||||
|
Resolve,
|
||||||
|
Router,
|
||||||
|
RouterStateSnapshot,
|
||||||
|
} from '@angular/router';
|
||||||
|
import { MemberGameSettingService } from 'app/modules/polyglot/member_game_setting/services/member_game_setting.service';
|
||||||
|
import {
|
||||||
|
GetMemberGameSettingResponse,
|
||||||
|
ListMemberGameSettingsResponse,
|
||||||
|
} from 'app/modules/proto/c2se/member_game_setting_pb';
|
||||||
|
|
||||||
|
import { Observable } from 'rxjs';
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
|
export class ListMemberGameResolver implements Resolve<any> {
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
constructor(
|
||||||
|
private _router: Router,
|
||||||
|
private __memberGameSettingService: MemberGameSettingService
|
||||||
|
) {}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Public methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolver
|
||||||
|
*
|
||||||
|
* @param route
|
||||||
|
* @param state
|
||||||
|
*/
|
||||||
|
|
||||||
|
resolve(
|
||||||
|
route: ActivatedRouteSnapshot,
|
||||||
|
state: RouterStateSnapshot
|
||||||
|
):
|
||||||
|
| Observable<ListMemberGameSettingsResponse.Result>
|
||||||
|
| Promise<ListMemberGameSettingsResponse.Result>
|
||||||
|
| ListMemberGameSettingsResponse.Result {
|
||||||
|
return this.__memberGameSettingService.listMemberGameSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
|
export class MemberGameSettingResolver implements Resolve<any> {
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
constructor(
|
||||||
|
private _router: Router,
|
||||||
|
private __memberGameSettingService: MemberGameSettingService
|
||||||
|
) {}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Public methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolver
|
||||||
|
*
|
||||||
|
* @param route
|
||||||
|
* @param state
|
||||||
|
*/
|
||||||
|
|
||||||
|
resolve(
|
||||||
|
route: ActivatedRouteSnapshot,
|
||||||
|
state: RouterStateSnapshot
|
||||||
|
):
|
||||||
|
| Observable<GetMemberGameSettingResponse.Result>
|
||||||
|
| Promise<GetMemberGameSettingResponse.Result>
|
||||||
|
| GetMemberGameSettingResponse.Result {
|
||||||
|
let memberId = route.paramMap.get('id');
|
||||||
|
if (!memberId) {
|
||||||
|
console.error('user.resolver memberId is null');
|
||||||
|
}
|
||||||
|
return this.__memberGameSettingService.getMemberGameSetting(memberId!);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,87 @@
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import {
|
||||||
|
ActivatedRouteSnapshot,
|
||||||
|
Resolve,
|
||||||
|
Router,
|
||||||
|
RouterStateSnapshot,
|
||||||
|
} from '@angular/router';
|
||||||
|
import { MemberSettlementSettingService } from 'app/modules/polyglot/member_settlement_setting/services/member_settlement_setting.service';
|
||||||
|
import {
|
||||||
|
GetMemberSettlementSettingResponse,
|
||||||
|
ListMemberSettlementSettingsResponse,
|
||||||
|
} from 'app/modules/proto/c2se/member_settlement_setting_pb';
|
||||||
|
import { Observable } from 'rxjs';
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
|
export class ListMemberSettlementsResolver implements Resolve<any> {
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
constructor(
|
||||||
|
private _router: Router,
|
||||||
|
private __memberSettlementSettingService: MemberSettlementSettingService
|
||||||
|
) {}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Public methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolver
|
||||||
|
*
|
||||||
|
* @param route
|
||||||
|
* @param state
|
||||||
|
*/
|
||||||
|
|
||||||
|
resolve(
|
||||||
|
route: ActivatedRouteSnapshot,
|
||||||
|
state: RouterStateSnapshot
|
||||||
|
):
|
||||||
|
| Observable<ListMemberSettlementSettingsResponse.Result>
|
||||||
|
| Promise<ListMemberSettlementSettingsResponse.Result>
|
||||||
|
| ListMemberSettlementSettingsResponse.Result {
|
||||||
|
return this.__memberSettlementSettingService.listMemberSettlementSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root',
|
||||||
|
})
|
||||||
|
export class MemberSettlementResolver implements Resolve<any> {
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
constructor(
|
||||||
|
private _router: Router,
|
||||||
|
private __memberSettlementSettingService: MemberSettlementSettingService
|
||||||
|
) {}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Public methods
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolver
|
||||||
|
*
|
||||||
|
* @param route
|
||||||
|
* @param state
|
||||||
|
*/
|
||||||
|
|
||||||
|
resolve(
|
||||||
|
route: ActivatedRouteSnapshot,
|
||||||
|
state: RouterStateSnapshot
|
||||||
|
):
|
||||||
|
| Observable<GetMemberSettlementSettingResponse.Result>
|
||||||
|
| Promise<GetMemberSettlementSettingResponse.Result>
|
||||||
|
| GetMemberSettlementSettingResponse.Result {
|
||||||
|
let memberId = route.paramMap.get('id');
|
||||||
|
if (!memberId) {
|
||||||
|
console.error('user.resolver memberId is null');
|
||||||
|
}
|
||||||
|
return this.__memberSettlementSettingService.getMemberSettlementSetting(
|
||||||
|
memberId!
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,7 +5,9 @@ import { ViewComponent } from 'app/modules/admin/member/user/components/view.com
|
||||||
import { SiteResolver } from 'app/shared/resolvers/site.resolver';
|
import { SiteResolver } from 'app/shared/resolvers/site.resolver';
|
||||||
import { ListMemberBanksResolver } from './resolvers/member-bank.resolver';
|
import { ListMemberBanksResolver } from './resolvers/member-bank.resolver';
|
||||||
import { ListMemberClassesResolver } from './resolvers/member-class.resolver';
|
import { ListMemberClassesResolver } from './resolvers/member-class.resolver';
|
||||||
|
import { MemberGameSettingResolver } from './resolvers/member-game-setting.resolver';
|
||||||
import { ListMemberLevelsResolver } from './resolvers/member-level.resolver';
|
import { ListMemberLevelsResolver } from './resolvers/member-level.resolver';
|
||||||
|
import { MemberSettlementResolver } from './resolvers/member-settlement-setting.resolver';
|
||||||
|
|
||||||
import { MemberResolver, ListMemberResolver } from './resolvers/user.resolver';
|
import { MemberResolver, ListMemberResolver } from './resolvers/user.resolver';
|
||||||
|
|
||||||
|
@ -27,6 +29,8 @@ export const userRoutes: Route[] = [
|
||||||
listMemberLevels: ListMemberLevelsResolver,
|
listMemberLevels: ListMemberLevelsResolver,
|
||||||
listMemberBanks: ListMemberBanksResolver,
|
listMemberBanks: ListMemberBanksResolver,
|
||||||
listSites: SiteResolver,
|
listSites: SiteResolver,
|
||||||
|
// memberSettlement: MemberSettlementResolver,
|
||||||
|
// memberGame: MemberGameSettingResolver,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -87,10 +87,13 @@ export class MemberGameSettingService {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getMemberGameSetting(): Promise<GetMemberGameSettingResponse.Result> {
|
getMemberGameSetting(
|
||||||
|
id: string
|
||||||
|
): Promise<GetMemberGameSettingResponse.Result> {
|
||||||
return new Promise<GetMemberGameSettingResponse.Result>(
|
return new Promise<GetMemberGameSettingResponse.Result>(
|
||||||
(resolve, reject) => {
|
(resolve, reject) => {
|
||||||
let req = new GetMemberGameSettingRequest();
|
let req = new GetMemberGameSettingRequest();
|
||||||
|
req.setId(id);
|
||||||
|
|
||||||
this.__natsService
|
this.__natsService
|
||||||
.request<GetMemberGameSettingResponse.Result>(
|
.request<GetMemberGameSettingResponse.Result>(
|
||||||
|
|
|
@ -91,10 +91,13 @@ export class MemberSettlementSettingService {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getMemberSettlementSetting(): Promise<GetMemberSettlementSettingResponse.Result> {
|
getMemberSettlementSetting(
|
||||||
|
id: string
|
||||||
|
): Promise<GetMemberSettlementSettingResponse.Result> {
|
||||||
return new Promise<GetMemberSettlementSettingResponse.Result>(
|
return new Promise<GetMemberSettlementSettingResponse.Result>(
|
||||||
(resolve, reject) => {
|
(resolve, reject) => {
|
||||||
let req = new GetMemberSettlementSettingRequest();
|
let req = new GetMemberSettlementSettingRequest();
|
||||||
|
req.setId(id);
|
||||||
|
|
||||||
this.__natsService
|
this.__natsService
|
||||||
.request<GetMemberSettlementSettingResponse.Result>(
|
.request<GetMemberSettlementSettingResponse.Result>(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user