From 0f0063844f9e569c69d0bc4ccbeb4950202a5996 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Thu, 14 Jul 2022 13:15:27 +0000 Subject: [PATCH 01/18] =?UTF-8?q?=EA=B3=A0=EA=B0=9D=EC=84=BC=ED=84=B0?= =?UTF-8?q?=ED=85=9C=ED=94=8C=EB=A6=BF=20page=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app.routing.ts | 7 + .../apps/board/customer-template/api.ts | 225 +++++++++++ .../apps/board/customer-template/data.ts | 33 ++ src/app/mock-api/common/navigation/data.ts | 7 + src/app/mock-api/index.ts | 2 + .../customer-template/components/index.ts | 3 + .../components/list.component.html | 363 ++++++++++++++++++ .../components/list.component.ts | 198 ++++++++++ .../customer-template.module.ts | 50 +++ .../customer-template.routing.ts | 24 ++ .../models/ customer-template.ts | 29 ++ .../models/customer-template-pagination.ts | 8 + .../resolvers/customer-template.resolver.ts | 89 +++++ .../services/customer-template.service.ts | 164 ++++++++ .../board/popup copy/components/index.ts | 3 + .../popup copy/components/list.component.html | 353 +++++++++++++++++ .../popup copy/components/list.component.ts | 198 ++++++++++ .../popup copy/models/popup-pagination.ts | 8 + .../admin/board/popup copy/models/popup.ts | 29 ++ .../admin/board/popup copy/popup.module.ts | 50 +++ .../admin/board/popup copy/popup.routing.ts | 24 ++ .../popup copy/resolvers/popup.resolver.ts | 84 ++++ .../popup copy/services/popup.service.ts | 151 ++++++++ src/assets/i18n/en.json | 3 +- src/assets/i18n/ko.json | 3 +- 25 files changed, 2106 insertions(+), 2 deletions(-) create mode 100644 src/app/mock-api/apps/board/customer-template/api.ts create mode 100644 src/app/mock-api/apps/board/customer-template/data.ts create mode 100644 src/app/modules/admin/board/customer-template/components/index.ts create mode 100644 src/app/modules/admin/board/customer-template/components/list.component.html create mode 100644 src/app/modules/admin/board/customer-template/components/list.component.ts create mode 100644 src/app/modules/admin/board/customer-template/customer-template.module.ts create mode 100644 src/app/modules/admin/board/customer-template/customer-template.routing.ts create mode 100644 src/app/modules/admin/board/customer-template/models/ customer-template.ts create mode 100644 src/app/modules/admin/board/customer-template/models/customer-template-pagination.ts create mode 100644 src/app/modules/admin/board/customer-template/resolvers/customer-template.resolver.ts create mode 100644 src/app/modules/admin/board/customer-template/services/customer-template.service.ts create mode 100644 src/app/modules/admin/board/popup copy/components/index.ts create mode 100644 src/app/modules/admin/board/popup copy/components/list.component.html create mode 100644 src/app/modules/admin/board/popup copy/components/list.component.ts create mode 100644 src/app/modules/admin/board/popup copy/models/popup-pagination.ts create mode 100644 src/app/modules/admin/board/popup copy/models/popup.ts create mode 100644 src/app/modules/admin/board/popup copy/popup.module.ts create mode 100644 src/app/modules/admin/board/popup copy/popup.routing.ts create mode 100644 src/app/modules/admin/board/popup copy/resolvers/popup.resolver.ts create mode 100644 src/app/modules/admin/board/popup copy/services/popup.service.ts diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts index d527406..283e846 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routing.ts @@ -497,6 +497,13 @@ export const appRoutes: Route[] = [ (m: any) => m.ServiceModule ), }, + { + path: 'customer-template', + loadChildren: () => + import( + 'app/modules/admin/board/customer-template/customer-template.module' + ).then((m: any) => m.CustomerTemplateModule), + }, ], }, ], diff --git a/src/app/mock-api/apps/board/customer-template/api.ts b/src/app/mock-api/apps/board/customer-template/api.ts new file mode 100644 index 0000000..86e02da --- /dev/null +++ b/src/app/mock-api/apps/board/customer-template/api.ts @@ -0,0 +1,225 @@ +import { Injectable } from '@angular/core'; +import { assign, cloneDeep } from 'lodash-es'; +import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; +import { customerTemplates as customerTemplatesData } from './data'; + +@Injectable({ + providedIn: 'root', +}) +export class BoardCustomerTemplateMockApi { + private _customerTemplates: any[] = customerTemplatesData; + + /** + * Constructor + */ + constructor(private _fuseMockApiService: FuseMockApiService) { + // Register Mock API handlers + this.registerHandlers(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Register Mock API handlers + */ + registerHandlers(): void { + // ----------------------------------------------------------------------------------------------------- + // @ CustomerTemplates - GET + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onGet('api/apps/board/customer-template/customer-templates', 300) + .reply(({ request }) => { + // Get available queries + const search = request.params.get('search'); + const sort = request.params.get('sort') || 'name'; + const order = request.params.get('order') || 'asc'; + const page = parseInt(request.params.get('page') ?? '1', 10); + const size = parseInt(request.params.get('size') ?? '10', 10); + + // Clone the customerTemplates + let customerTemplates: any[] | null = cloneDeep( + this._customerTemplates + ); + + // Sort the customerTemplates + if (sort === 'sku' || sort === 'name' || sort === 'active') { + customerTemplates.sort((a, b) => { + const fieldA = a[sort].toString().toUpperCase(); + const fieldB = b[sort].toString().toUpperCase(); + return order === 'asc' + ? fieldA.localeCompare(fieldB) + : fieldB.localeCompare(fieldA); + }); + } else { + customerTemplates.sort((a, b) => + order === 'asc' ? a[sort] - b[sort] : b[sort] - a[sort] + ); + } + + // If search exists... + if (search) { + // Filter the customerTemplates + customerTemplates = customerTemplates.filter( + (contact: any) => + contact.name && + contact.name.toLowerCase().includes(search.toLowerCase()) + ); + } + + // Paginate - Start + const customerTemplatesLength = customerTemplates.length; + + // Calculate pagination details + const begin = page * size; + const end = Math.min(size * (page + 1), customerTemplatesLength); + const lastPage = Math.max(Math.ceil(customerTemplatesLength / size), 1); + + // Prepare the pagination object + let pagination = {}; + + // If the requested page number is bigger than + // the last possible page number, return null for + // customerTemplates but also send the last possible page so + // the app can navigate to there + if (page > lastPage) { + customerTemplates = null; + pagination = { + lastPage, + }; + } else { + // Paginate the results by size + customerTemplates = customerTemplates.slice(begin, end); + + // Prepare the pagination mock-api + pagination = { + length: customerTemplatesLength, + size: size, + page: page, + lastPage: lastPage, + startIndex: begin, + endIndex: end - 1, + }; + } + + // Return the response + return [ + 200, + { + customerTemplates, + pagination, + }, + ]; + }); + + // ----------------------------------------------------------------------------------------------------- + // @ CustomerTemplate - GET + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onGet('api/apps/board/customer-template/customer-template') + .reply(({ request }) => { + // Get the id from the params + const id = request.params.get('id'); + + // Clone the customerTemplates + const customerTemplates = cloneDeep(this._customerTemplates); + + // Find the customerTemplate + const customerTemplate = customerTemplates.find( + (item: any) => item.id === id + ); + + // Return the response + return [200, customerTemplate]; + }); + + // ----------------------------------------------------------------------------------------------------- + // @ CustomerTemplate - POST + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onPost('api/apps/board/customer-template/customer-template') + .reply(() => { + // Generate a new customerTemplate + const newCustomerTemplate = { + id: FuseMockApiUtils.guid(), + category: '', + name: 'A New User', + description: '', + tags: [], + sku: '', + barcode: '', + brand: '', + vendor: '', + stock: '', + reserved: '', + cost: '', + basePrice: '', + taxPercent: '', + price: '', + weight: '', + thumbnail: '', + images: [], + active: false, + }; + + // Unshift the new customerTemplate + this._customerTemplates.unshift(newCustomerTemplate); + + // Return the response + return [200, newCustomerTemplate]; + }); + + // ----------------------------------------------------------------------------------------------------- + // @ CustomerTemplate - PATCH + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onPatch('api/apps/board/customer-template/customer-template') + .reply(({ request }) => { + // Get the id and customerTemplate + const id = request.body.id; + const customerTemplate = cloneDeep(request.body.customerTemplate); + + // Prepare the updated customerTemplate + let updatedCustomerTemplate = null; + + // Find the customerTemplate and update it + this._customerTemplates.forEach((item, index, customerTemplates) => { + if (item.id === id) { + // Update the customerTemplate + customerTemplates[index] = assign( + {}, + customerTemplates[index], + customerTemplate + ); + + // Store the updated CustomerTemplate + updatedCustomerTemplate = customerTemplates[index]; + } + }); + + // Return the response + return [200, updatedCustomerTemplate]; + }); + + // ----------------------------------------------------------------------------------------------------- + // @ CustomerTemplate - DELETE + // ----------------------------------------------------------------------------------------------------- + this._fuseMockApiService + .onDelete('api/apps/board/customer-template/customer-template') + .reply(({ request }) => { + // Get the id + const id = request.params.get('id'); + + // Find the customerTemplate and delete it + this._customerTemplates.forEach((item, index) => { + if (item.id === id) { + this._customerTemplates.splice(index, 1); + } + }); + + // Return the response + return [200, true]; + }); + } +} diff --git a/src/app/mock-api/apps/board/customer-template/data.ts b/src/app/mock-api/apps/board/customer-template/data.ts new file mode 100644 index 0000000..32bd342 --- /dev/null +++ b/src/app/mock-api/apps/board/customer-template/data.ts @@ -0,0 +1,33 @@ +/* eslint-disable */ + +export const customerTemplates = [ + { + id: 'on00', + totalPartnerCount: '5', + totalHoldingMoney: 303675, + totalComp: 108933, + total: 412608, + branchCount: 1, + divisionCount: 1, + officeCount: 1, + storeCount: 1, + memberCount: 1, + nickname: 'on00', + accountHolder: '11', + phoneNumber: '010-1111-1111', + calculateType: '롤링', + ownCash: 50000, + ownComp: 1711, + ownCoupon: 50000, + gameMoney: 0, + todayComp: 0, + totalDeposit: 0, + totalWithdraw: 0, + balance: 0, + registDate: '2022-06-12 15:38', + finalSigninDate: '', + ip: '', + state: '정상', + note: '', + }, +]; diff --git a/src/app/mock-api/common/navigation/data.ts b/src/app/mock-api/common/navigation/data.ts index 25b1596..7b32b42 100644 --- a/src/app/mock-api/common/navigation/data.ts +++ b/src/app/mock-api/common/navigation/data.ts @@ -363,6 +363,13 @@ export const defaultNavigation: FuseNavigationItem[] = [ icon: 'heroicons_outline:academic-cap', link: '/board/service', }, + { + id: 'board.customer-template', + title: 'Customer Template', + type: 'basic', + icon: 'heroicons_outline:academic-cap', + link: '/board/customer-template', + }, ], }, { diff --git a/src/app/mock-api/index.ts b/src/app/mock-api/index.ts index 041a816..24871c7 100644 --- a/src/app/mock-api/index.ts +++ b/src/app/mock-api/index.ts @@ -68,6 +68,7 @@ import { BoardNoticeOnelineMockApi } from './apps/board/notice-oneline/api'; import { BoardPopupMockApi } from './apps/board/popup/api'; import { BoardMessageMockApi } from './apps/board/message/api'; import { BoardServiceMockApi } from './apps/board/service/api'; +import { BoardCustomerTemplateMockApi } from './apps/board/customer-template/api'; export const mockApiServices = [ AcademyMockApi, @@ -140,4 +141,5 @@ export const mockApiServices = [ BoardPopupMockApi, BoardMessageMockApi, BoardServiceMockApi, + BoardCustomerTemplateMockApi, ]; diff --git a/src/app/modules/admin/board/customer-template/components/index.ts b/src/app/modules/admin/board/customer-template/components/index.ts new file mode 100644 index 0000000..04759eb --- /dev/null +++ b/src/app/modules/admin/board/customer-template/components/index.ts @@ -0,0 +1,3 @@ +import { ListComponent } from './list.component'; + +export const COMPONENTS = [ListComponent]; diff --git a/src/app/modules/admin/board/customer-template/components/list.component.html b/src/app/modules/admin/board/customer-template/components/list.component.html new file mode 100644 index 0000000..9b79375 --- /dev/null +++ b/src/app/modules/admin/board/customer-template/components/list.component.html @@ -0,0 +1,363 @@ +
+ +
+ +
+ +
+ +
고객센터 템플릿
+ +
+ + + + + + + 40 + 60 + 80 + 100 + + + + + LV.1 + LV.2 + LV.3 + LV.4 + + + + + 정상 + 대기 + 탈퇴 + 휴면 + 블랙 + 정지 + + + + + 카지노제한 + 슬롯제한 + + + + + 계좌입금 + + + + + 카지노콤프 + 슬롯콤프 + 배팅콤프 + 첫충콤프 + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + +
+
+ + +
+ There are no customerTemplates! +
+
+
+
+
diff --git a/src/app/modules/admin/board/customer-template/components/list.component.ts b/src/app/modules/admin/board/customer-template/components/list.component.ts new file mode 100644 index 0000000..40d8746 --- /dev/null +++ b/src/app/modules/admin/board/customer-template/components/list.component.ts @@ -0,0 +1,198 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from '../../../member/user/models/user'; +import { CustomerTemplate } from '../models/ customer-template'; +import { CustomerTemplatePagination } from '../models/customer-template-pagination'; +import { CustomerTemplateService } from '../services/customer-template.service'; +import { Router } from '@angular/router'; + +@Component({ + selector: 'customer-template-list', + templateUrl: './list.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 60px auto 40px; + + @screen sm { + grid-template-columns: 60px 60px 60px 60px 60px 60px auto 60px; + } + + @screen md { + grid-template-columns: 60px 60px 60px 60px 60px 60px auto 60px 60px; + } + + @screen lg { + grid-template-columns: 60px 70px 70px 70px 70px 100px 60px 60px auto 60px 60px 60px 60px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ListComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + customerTemplates$!: Observable; + users$!: Observable; + + isLoading = false; + searchInputControl = new FormControl(); + selectedCustomerTemplate?: CustomerTemplate; + pagination?: CustomerTemplatePagination; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _customerTemplateService: CustomerTemplateService, + private router: Router + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + // Get the pagination + this._customerTemplateService.pagination$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((pagination: CustomerTemplatePagination | undefined) => { + // Update the pagination + this.pagination = pagination; + + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + // Get the products + this.customerTemplates$ = this._customerTemplateService.customerTemplates$; + } + + /** + * After view init + */ + ngAfterViewInit(): void { + if (this._sort && this._paginator) { + // Set the initial sort + this._sort.sort({ + id: 'name', + start: 'asc', + disableClear: true, + }); + + // Mark for check + this._changeDetectorRef.markForCheck(); + + // If the customerTemplate changes the sort order... + this._sort.sortChange + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe(() => { + // Reset back to the first page + this._paginator.pageIndex = 0; + }); + + // Get products if sort or page changes + merge(this._sort.sortChange, this._paginator.page) + .pipe( + switchMap(() => { + this.isLoading = true; + return this._customerTemplateService.getCustomerTemplates( + this._paginator.pageIndex, + this._paginator.pageSize, + this._sort.active, + this._sort.direction + ); + }), + map(() => { + this.isLoading = false; + }) + ) + .subscribe(); + } + } + + /** + * On destroy + */ + ngOnDestroy(): void { + // Unsubscribe from all subscriptions + this._unsubscribeAll.next(null); + this._unsubscribeAll.complete(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + viewUserDetail(id: string): void { + let url: string = 'member/user/' + id; + this.router.navigateByUrl(url); + } + // ----------------------------------------------------------------------------------------------------- + // @ 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; + } +} diff --git a/src/app/modules/admin/board/customer-template/customer-template.module.ts b/src/app/modules/admin/board/customer-template/customer-template.module.ts new file mode 100644 index 0000000..0eb5b57 --- /dev/null +++ b/src/app/modules/admin/board/customer-template/customer-template.module.ts @@ -0,0 +1,50 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatRippleModule } from '@angular/material/core'; +import { MatSortModule } from '@angular/material/sort'; +import { MatSelectModule } from '@angular/material/select'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatGridListModule } from '@angular/material/grid-list'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; +import { MatRadioModule } from '@angular/material/radio'; +import { MatCheckboxModule } from '@angular/material/checkbox'; + +import { TranslocoModule } from '@ngneat/transloco'; + +import { SharedModule } from 'app/shared/shared.module'; + +import { COMPONENTS } from './components'; + +import { customerTemplateRoutes } from './customer-template.routing'; + +@NgModule({ + declarations: [COMPONENTS], + imports: [ + TranslocoModule, + SharedModule, + RouterModule.forChild(customerTemplateRoutes), + + MatButtonModule, + MatFormFieldModule, + MatIconModule, + MatInputModule, + MatPaginatorModule, + MatProgressBarModule, + MatRippleModule, + MatSortModule, + MatSelectModule, + MatTooltipModule, + MatGridListModule, + MatSlideToggleModule, + MatRadioModule, + MatCheckboxModule, + ], +}) +export class CustomerTemplateModule {} diff --git a/src/app/modules/admin/board/customer-template/customer-template.routing.ts b/src/app/modules/admin/board/customer-template/customer-template.routing.ts new file mode 100644 index 0000000..8586b95 --- /dev/null +++ b/src/app/modules/admin/board/customer-template/customer-template.routing.ts @@ -0,0 +1,24 @@ +import { Route } from '@angular/router'; + +import { ListComponent } from './components/list.component'; +import { ViewComponent } from '../../member/user/components/view.component'; + +import { CustomerTemplatesResolver } from './resolvers/customer-template.resolver'; +import { UserResolver } from '../../member/user/resolvers/user.resolver'; + +export const customerTemplateRoutes: Route[] = [ + { + path: '', + component: ListComponent, + resolve: { + customerTemplates: CustomerTemplatesResolver, + }, + }, + { + path: ':id', + component: ViewComponent, + resolve: { + users: UserResolver, + }, + }, +]; diff --git a/src/app/modules/admin/board/customer-template/models/ customer-template.ts b/src/app/modules/admin/board/customer-template/models/ customer-template.ts new file mode 100644 index 0000000..18acbad --- /dev/null +++ b/src/app/modules/admin/board/customer-template/models/ customer-template.ts @@ -0,0 +1,29 @@ +export interface CustomerTemplate { + id?: string; + totalPartnerCount?: number; + totalHoldingMoney?: number; + totalComp?: number; + total?: number; + branchCount?: number; + divisionCount?: number; + officeCount?: number; + storeCount?: number; + memberCount?: number; + nickname?: string; + accountHolder?: string; + phoneNumber?: string; + calculateType?: string; + ownCash?: number; + ownComp?: number; + ownCoupon?: number; + gameMoney?: number; + todayComp?: number; + totalDeposit?: number; + totalWithdraw?: number; + balance?: number; + registDate?: string; + finalSigninDate?: string; + ip?: string; + state?: string; + note?: string; +} diff --git a/src/app/modules/admin/board/customer-template/models/customer-template-pagination.ts b/src/app/modules/admin/board/customer-template/models/customer-template-pagination.ts new file mode 100644 index 0000000..c53bebd --- /dev/null +++ b/src/app/modules/admin/board/customer-template/models/customer-template-pagination.ts @@ -0,0 +1,8 @@ +export interface CustomerTemplatePagination { + length: number; + size: number; + page: number; + lastPage: number; + startIndex: number; + endIndex: number; +} diff --git a/src/app/modules/admin/board/customer-template/resolvers/customer-template.resolver.ts b/src/app/modules/admin/board/customer-template/resolvers/customer-template.resolver.ts new file mode 100644 index 0000000..d462dd7 --- /dev/null +++ b/src/app/modules/admin/board/customer-template/resolvers/customer-template.resolver.ts @@ -0,0 +1,89 @@ +import { Injectable } from '@angular/core'; +import { + ActivatedRouteSnapshot, + Resolve, + Router, + RouterStateSnapshot, +} from '@angular/router'; +import { catchError, Observable, throwError } from 'rxjs'; + +import { CustomerTemplate } from '../models/ customer-template'; +import { CustomerTemplatePagination } from '../models/customer-template-pagination'; +import { CustomerTemplateService } from '../services/customer-template.service'; + +@Injectable({ + providedIn: 'root', +}) +export class CustomerTemplateResolver implements Resolve { + /** + * Constructor + */ + constructor( + private _customerTemplateService: CustomerTemplateService, + private _router: Router + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Resolver + * + * @param route + * @param state + */ + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable { + return this._customerTemplateService + .getCustomerTemplateById(route.paramMap.get('id')) + .pipe( + // Error here means the requested product is not available + catchError((error) => { + // Log the error + console.error(error); + + // Get the parent url + const parentUrl = state.url.split('/').slice(0, -1).join('/'); + + // Navigate to there + this._router.navigateByUrl(parentUrl); + + // Throw an error + return throwError(error); + }) + ); + } +} + +@Injectable({ + providedIn: 'root', +}) +export class CustomerTemplatesResolver implements Resolve { + /** + * Constructor + */ + constructor(private _customerTemplateService: CustomerTemplateService) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Resolver + * + * @param route + * @param state + */ + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<{ + pagination: CustomerTemplatePagination; + customerTemplates: CustomerTemplate[]; + }> { + return this._customerTemplateService.getCustomerTemplates(); + } +} diff --git a/src/app/modules/admin/board/customer-template/services/customer-template.service.ts b/src/app/modules/admin/board/customer-template/services/customer-template.service.ts new file mode 100644 index 0000000..41964d3 --- /dev/null +++ b/src/app/modules/admin/board/customer-template/services/customer-template.service.ts @@ -0,0 +1,164 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { + BehaviorSubject, + filter, + map, + Observable, + of, + switchMap, + take, + tap, + throwError, +} from 'rxjs'; + +import { CustomerTemplate } from '../models/ customer-template'; +import { CustomerTemplatePagination } from '../models/customer-template-pagination'; + +@Injectable({ + providedIn: 'root', +}) +export class CustomerTemplateService { + // Private + private __pagination = new BehaviorSubject< + CustomerTemplatePagination | undefined + >(undefined); + private __customerTemplate = new BehaviorSubject< + CustomerTemplate | undefined + >(undefined); + private __customerTemplates = new BehaviorSubject< + CustomerTemplate[] | undefined + >(undefined); + + /** + * Constructor + */ + constructor(private _httpClient: HttpClient) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Accessors + // ----------------------------------------------------------------------------------------------------- + + /** + * Getter for pagination + */ + get pagination$(): Observable { + return this.__pagination.asObservable(); + } + + /** + * Getter for customerTemplate + */ + get customerTemplate$(): Observable { + return this.__customerTemplate.asObservable(); + } + + /** + * Getter for customerTemplates + */ + get customerTemplates$(): Observable { + return this.__customerTemplates.asObservable(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Get CustomerTemplates + * + * + * @param page + * @param size + * @param sort + * @param order + * @param search + */ + getCustomerTemplates( + page: number = 0, + size: number = 10, + sort: string = 'name', + order: 'asc' | 'desc' | '' = 'asc', + search: string = '' + ): Observable<{ + pagination: CustomerTemplatePagination; + customerTemplates: CustomerTemplate[]; + }> { + return this._httpClient + .get<{ + pagination: CustomerTemplatePagination; + customerTemplates: CustomerTemplate[]; + }>('api/apps/board/customer-template/customer-templates', { + params: { + page: '' + page, + size: '' + size, + sort, + order, + search, + }, + }) + .pipe( + tap((response) => { + this.__pagination.next(response.pagination); + this.__customerTemplates.next(response.customerTemplates); + }) + ); + } + + /** + * Get product by id + */ + getCustomerTemplateById(id: string | null): Observable { + return this.__customerTemplates.pipe( + take(1), + map((customerTemplates) => { + // Find the product + const customerTemplate = + customerTemplates?.find((item) => item.id === id) || undefined; + + // Update the product + this.__customerTemplate.next(customerTemplate); + + // Return the product + return customerTemplate; + }), + switchMap((product) => { + if (!product) { + return throwError('Could not found product with id of ' + id + '!'); + } + + return of(product); + }) + ); + } + + /** + * Create product + */ + createCustomerTemplate(): Observable { + return this.customerTemplates$.pipe( + take(1), + switchMap((customerTemplates) => + this._httpClient + .post( + 'api/apps/board/customer-template/product', + {} + ) + .pipe( + map((newCustomerTemplate) => { + // Update the customerTemplates with the new product + if (!!customerTemplates) { + this.__customerTemplates.next([ + newCustomerTemplate, + ...customerTemplates, + ]); + } + + // Return the new product + return newCustomerTemplate; + }) + ) + ) + ); + } +} diff --git a/src/app/modules/admin/board/popup copy/components/index.ts b/src/app/modules/admin/board/popup copy/components/index.ts new file mode 100644 index 0000000..04759eb --- /dev/null +++ b/src/app/modules/admin/board/popup copy/components/index.ts @@ -0,0 +1,3 @@ +import { ListComponent } from './list.component'; + +export const COMPONENTS = [ListComponent]; diff --git a/src/app/modules/admin/board/popup copy/components/list.component.html b/src/app/modules/admin/board/popup copy/components/list.component.html new file mode 100644 index 0000000..68c5687 --- /dev/null +++ b/src/app/modules/admin/board/popup copy/components/list.component.html @@ -0,0 +1,353 @@ +
+ +
+ +
+ +
+ +
팝업
+ +
+ + + + + + + 40 + 60 + 80 + 100 + + + + + LV.1 + LV.2 + LV.3 + LV.4 + + + + + 정상 + 대기 + 탈퇴 + 휴면 + 블랙 + 정지 + + + + + 카지노제한 + 슬롯제한 + + + + + 계좌입금 + + + + + 카지노콤프 + 슬롯콤프 + 배팅콤프 + 첫충콤프 + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + +
+
+ + +
+ There are no popups! +
+
+
+
+
diff --git a/src/app/modules/admin/board/popup copy/components/list.component.ts b/src/app/modules/admin/board/popup copy/components/list.component.ts new file mode 100644 index 0000000..9effff6 --- /dev/null +++ b/src/app/modules/admin/board/popup copy/components/list.component.ts @@ -0,0 +1,198 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from '../../../member/user/models/user'; +import { Popup } from '../models/popup'; +import { PopupPagination } from '../models/popup-pagination'; +import { PopupService } from '../services/popup.service'; +import { Router } from '@angular/router'; + +@Component({ + selector: 'popup-list', + templateUrl: './list.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 60px auto 40px; + + @screen sm { + grid-template-columns: 60px 60px 60px 60px 60px 60px auto 60px; + } + + @screen md { + grid-template-columns: 60px 60px 60px 60px 60px 60px auto 60px 60px; + } + + @screen lg { + grid-template-columns: 60px 70px 70px 70px 70px 100px 60px 60px auto 60px 60px 60px 60px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ListComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + popups$!: Observable; + users$!: Observable; + + isLoading = false; + searchInputControl = new FormControl(); + selectedPopup?: Popup; + pagination?: PopupPagination; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _popupService: PopupService, + private router: Router + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + // Get the pagination + this._popupService.pagination$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((pagination: PopupPagination | undefined) => { + // Update the pagination + this.pagination = pagination; + + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + // Get the products + this.popups$ = this._popupService.popups$; + } + + /** + * After view init + */ + ngAfterViewInit(): void { + if (this._sort && this._paginator) { + // Set the initial sort + this._sort.sort({ + id: 'name', + start: 'asc', + disableClear: true, + }); + + // Mark for check + this._changeDetectorRef.markForCheck(); + + // If the popup changes the sort order... + this._sort.sortChange + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe(() => { + // Reset back to the first page + this._paginator.pageIndex = 0; + }); + + // Get products if sort or page changes + merge(this._sort.sortChange, this._paginator.page) + .pipe( + switchMap(() => { + this.isLoading = true; + return this._popupService.getPopups( + this._paginator.pageIndex, + this._paginator.pageSize, + this._sort.active, + this._sort.direction + ); + }), + map(() => { + this.isLoading = false; + }) + ) + .subscribe(); + } + } + + /** + * On destroy + */ + ngOnDestroy(): void { + // Unsubscribe from all subscriptions + this._unsubscribeAll.next(null); + this._unsubscribeAll.complete(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + viewUserDetail(id: string): void { + let url: string = 'member/user/' + id; + this.router.navigateByUrl(url); + } + // ----------------------------------------------------------------------------------------------------- + // @ 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; + } +} diff --git a/src/app/modules/admin/board/popup copy/models/popup-pagination.ts b/src/app/modules/admin/board/popup copy/models/popup-pagination.ts new file mode 100644 index 0000000..64182c5 --- /dev/null +++ b/src/app/modules/admin/board/popup copy/models/popup-pagination.ts @@ -0,0 +1,8 @@ +export interface PopupPagination { + length: number; + size: number; + page: number; + lastPage: number; + startIndex: number; + endIndex: number; +} diff --git a/src/app/modules/admin/board/popup copy/models/popup.ts b/src/app/modules/admin/board/popup copy/models/popup.ts new file mode 100644 index 0000000..533f1bf --- /dev/null +++ b/src/app/modules/admin/board/popup copy/models/popup.ts @@ -0,0 +1,29 @@ +export interface Popup { + id?: string; + totalPartnerCount?: number; + totalHoldingMoney?: number; + totalComp?: number; + total?: number; + branchCount?: number; + divisionCount?: number; + officeCount?: number; + storeCount?: number; + memberCount?: number; + nickname?: string; + accountHolder?: string; + phoneNumber?: string; + calculateType?: string; + ownCash?: number; + ownComp?: number; + ownCoupon?: number; + gameMoney?: number; + todayComp?: number; + totalDeposit?: number; + totalWithdraw?: number; + balance?: number; + registDate?: string; + finalSigninDate?: string; + ip?: string; + state?: string; + note?: string; +} diff --git a/src/app/modules/admin/board/popup copy/popup.module.ts b/src/app/modules/admin/board/popup copy/popup.module.ts new file mode 100644 index 0000000..0691ccc --- /dev/null +++ b/src/app/modules/admin/board/popup copy/popup.module.ts @@ -0,0 +1,50 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatRippleModule } from '@angular/material/core'; +import { MatSortModule } from '@angular/material/sort'; +import { MatSelectModule } from '@angular/material/select'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatGridListModule } from '@angular/material/grid-list'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; +import { MatRadioModule } from '@angular/material/radio'; +import { MatCheckboxModule } from '@angular/material/checkbox'; + +import { TranslocoModule } from '@ngneat/transloco'; + +import { SharedModule } from 'app/shared/shared.module'; + +import { COMPONENTS } from './components'; + +import { popupRoutes } from './popup.routing'; + +@NgModule({ + declarations: [COMPONENTS], + imports: [ + TranslocoModule, + SharedModule, + RouterModule.forChild(popupRoutes), + + MatButtonModule, + MatFormFieldModule, + MatIconModule, + MatInputModule, + MatPaginatorModule, + MatProgressBarModule, + MatRippleModule, + MatSortModule, + MatSelectModule, + MatTooltipModule, + MatGridListModule, + MatSlideToggleModule, + MatRadioModule, + MatCheckboxModule, + ], +}) +export class PopupModule {} diff --git a/src/app/modules/admin/board/popup copy/popup.routing.ts b/src/app/modules/admin/board/popup copy/popup.routing.ts new file mode 100644 index 0000000..4a53e31 --- /dev/null +++ b/src/app/modules/admin/board/popup copy/popup.routing.ts @@ -0,0 +1,24 @@ +import { Route } from '@angular/router'; + +import { ListComponent } from './components/list.component'; +import { ViewComponent } from '../../member/user/components/view.component'; + +import { PopupsResolver } from './resolvers/popup.resolver'; +import { UserResolver } from '../../member/user/resolvers/user.resolver'; + +export const popupRoutes: Route[] = [ + { + path: '', + component: ListComponent, + resolve: { + popups: PopupsResolver, + }, + }, + { + path: ':id', + component: ViewComponent, + resolve: { + users: UserResolver, + }, + }, +]; diff --git a/src/app/modules/admin/board/popup copy/resolvers/popup.resolver.ts b/src/app/modules/admin/board/popup copy/resolvers/popup.resolver.ts new file mode 100644 index 0000000..ebd8222 --- /dev/null +++ b/src/app/modules/admin/board/popup copy/resolvers/popup.resolver.ts @@ -0,0 +1,84 @@ +import { Injectable } from '@angular/core'; +import { + ActivatedRouteSnapshot, + Resolve, + Router, + RouterStateSnapshot, +} from '@angular/router'; +import { catchError, Observable, throwError } from 'rxjs'; + +import { Popup } from '../models/popup'; +import { PopupPagination } from '../models/popup-pagination'; +import { PopupService } from '../services/popup.service'; + +@Injectable({ + providedIn: 'root', +}) +export class PopupResolver implements Resolve { + /** + * Constructor + */ + constructor(private _popupService: PopupService, private _router: Router) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Resolver + * + * @param route + * @param state + */ + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable { + return this._popupService.getPopupById(route.paramMap.get('id')).pipe( + // Error here means the requested product is not available + catchError((error) => { + // Log the error + console.error(error); + + // Get the parent url + const parentUrl = state.url.split('/').slice(0, -1).join('/'); + + // Navigate to there + this._router.navigateByUrl(parentUrl); + + // Throw an error + return throwError(error); + }) + ); + } +} + +@Injectable({ + providedIn: 'root', +}) +export class PopupsResolver implements Resolve { + /** + * Constructor + */ + constructor(private _popupService: PopupService) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Resolver + * + * @param route + * @param state + */ + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<{ + pagination: PopupPagination; + popups: Popup[]; + }> { + return this._popupService.getPopups(); + } +} diff --git a/src/app/modules/admin/board/popup copy/services/popup.service.ts b/src/app/modules/admin/board/popup copy/services/popup.service.ts new file mode 100644 index 0000000..b228337 --- /dev/null +++ b/src/app/modules/admin/board/popup copy/services/popup.service.ts @@ -0,0 +1,151 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { + BehaviorSubject, + filter, + map, + Observable, + of, + switchMap, + take, + tap, + throwError, +} from 'rxjs'; + +import { Popup } from '../models/popup'; +import { PopupPagination } from '../models/popup-pagination'; + +@Injectable({ + providedIn: 'root', +}) +export class PopupService { + // Private + private __pagination = new BehaviorSubject( + undefined + ); + private __popup = new BehaviorSubject(undefined); + private __popups = new BehaviorSubject(undefined); + + /** + * Constructor + */ + constructor(private _httpClient: HttpClient) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Accessors + // ----------------------------------------------------------------------------------------------------- + + /** + * Getter for pagination + */ + get pagination$(): Observable { + return this.__pagination.asObservable(); + } + + /** + * Getter for popup + */ + get popup$(): Observable { + return this.__popup.asObservable(); + } + + /** + * Getter for popups + */ + get popups$(): Observable { + return this.__popups.asObservable(); + } + + // ----------------------------------------------------------------------------------------------------- + // @ Public methods + // ----------------------------------------------------------------------------------------------------- + + /** + * Get Popups + * + * + * @param page + * @param size + * @param sort + * @param order + * @param search + */ + getPopups( + page: number = 0, + size: number = 10, + sort: string = 'name', + order: 'asc' | 'desc' | '' = 'asc', + search: string = '' + ): Observable<{ + pagination: PopupPagination; + popups: Popup[]; + }> { + return this._httpClient + .get<{ + pagination: PopupPagination; + popups: Popup[]; + }>('api/apps/board/popup/popups', { + params: { + page: '' + page, + size: '' + size, + sort, + order, + search, + }, + }) + .pipe( + tap((response) => { + this.__pagination.next(response.pagination); + this.__popups.next(response.popups); + }) + ); + } + + /** + * Get product by id + */ + getPopupById(id: string | null): Observable { + return this.__popups.pipe( + take(1), + map((popups) => { + // Find the product + const popup = popups?.find((item) => item.id === id) || undefined; + + // Update the product + this.__popup.next(popup); + + // Return the product + return popup; + }), + switchMap((product) => { + if (!product) { + return throwError('Could not found product with id of ' + id + '!'); + } + + return of(product); + }) + ); + } + + /** + * Create product + */ + createPopup(): Observable { + return this.popups$.pipe( + take(1), + switchMap((popups) => + this._httpClient.post('api/apps/board/popup/product', {}).pipe( + map((newPopup) => { + // Update the popups with the new product + if (!!popups) { + this.__popups.next([newPopup, ...popups]); + } + + // Return the new product + return newPopup; + }) + ) + ) + ); + } +} diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 3ae9aff..f56af24 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -44,5 +44,6 @@ "Notice Oneline": "Notice Oneline", "Popup": "Pop Up", "Message": "Message", - "Service": "Service Center" + "Service": "Service Center", + "Customer Template": "Custoner Template" } diff --git a/src/assets/i18n/ko.json b/src/assets/i18n/ko.json index 1c3901e..b318dc8 100644 --- a/src/assets/i18n/ko.json +++ b/src/assets/i18n/ko.json @@ -50,5 +50,6 @@ "Notice Oneline": "한줄공지", "Popup": "팝업", "Message": "쪽지함", - "Service": "고객센터" + "Service": "고객센터", + "Customer Template": "고객센터템플릿" } From 4fc5f9f9f0ecd297ecf8d1fd77ec44c2945d67e7 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Thu, 14 Jul 2022 18:17:04 +0000 Subject: [PATCH 02/18] =?UTF-8?q?=EA=B3=A0=EA=B0=9D=EC=84=BC=ED=84=B0=20pa?= =?UTF-8?q?ge=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app.routing.ts | 6 +- .../apps/board/{service => customer}/api.ts | 104 +++++++++--------- .../apps/board/{service => customer}/data.ts | 2 +- src/app/mock-api/common/navigation/data.ts | 6 +- src/app/mock-api/index.ts | 4 +- .../{service => customer}/components/index.ts | 0 .../components/list.component.html | 70 ++++++------ .../components/list.component.ts | 26 ++--- .../customer.module.ts} | 6 +- .../customer.routing.ts} | 6 +- .../models/customer-pagination.ts} | 2 +- .../models/customer.ts} | 2 +- .../resolvers/customer.resolver.ts} | 24 ++-- .../services/customer.service.ts} | 72 ++++++------ .../board/notice/components/list.component.ts | 2 +- .../board/notice/resolvers/notice.resolver.ts | 2 +- .../{services => service}/notice.service.ts | 0 src/assets/i18n/en.json | 2 +- src/assets/i18n/ko.json | 2 +- 19 files changed, 169 insertions(+), 169 deletions(-) rename src/app/mock-api/apps/board/{service => customer}/api.ts (68%) rename src/app/mock-api/apps/board/{service => customer}/data.ts (95%) rename src/app/modules/admin/board/{service => customer}/components/index.ts (100%) rename src/app/modules/admin/board/{service => customer}/components/list.component.html (87%) rename src/app/modules/admin/board/{service => customer}/components/list.component.ts (87%) rename src/app/modules/admin/board/{service/service.module.ts => customer/customer.module.ts} (92%) rename src/app/modules/admin/board/{service/service.routing.ts => customer/customer.routing.ts} (75%) rename src/app/modules/admin/board/{service/models/service-pagination.ts => customer/models/customer-pagination.ts} (75%) rename src/app/modules/admin/board/{service/models/service.ts => customer/models/customer.ts} (95%) rename src/app/modules/admin/board/{service/resolvers/service.resolver.ts => customer/resolvers/customer.resolver.ts} (71%) rename src/app/modules/admin/board/{service/services/service.service.ts => customer/services/customer.service.ts} (55%) rename src/app/modules/admin/board/notice/{services => service}/notice.service.ts (100%) diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts index 283e846..b8e54f8 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routing.ts @@ -491,10 +491,10 @@ export const appRoutes: Route[] = [ ), }, { - path: 'service', + path: 'customer', loadChildren: () => - import('app/modules/admin/board/service/service.module').then( - (m: any) => m.ServiceModule + import('app/modules/admin/board/customer/customer.module').then( + (m: any) => m.CustomerModule ), }, { diff --git a/src/app/mock-api/apps/board/service/api.ts b/src/app/mock-api/apps/board/customer/api.ts similarity index 68% rename from src/app/mock-api/apps/board/service/api.ts rename to src/app/mock-api/apps/board/customer/api.ts index 59b0f09..e155d0d 100644 --- a/src/app/mock-api/apps/board/service/api.ts +++ b/src/app/mock-api/apps/board/customer/api.ts @@ -1,13 +1,13 @@ import { Injectable } from '@angular/core'; import { assign, cloneDeep } from 'lodash-es'; import { FuseMockApiService, FuseMockApiUtils } from '@fuse/lib/mock-api'; -import { services as servicesData } from './data'; +import { customers as customersData } from './data'; @Injectable({ providedIn: 'root', }) -export class BoardServiceMockApi { - private _services: any[] = servicesData; +export class BoardCustomerMockApi { + private _customers: any[] = customersData; /** * Constructor @@ -26,10 +26,10 @@ export class BoardServiceMockApi { */ registerHandlers(): void { // ----------------------------------------------------------------------------------------------------- - // @ Services - GET + // @ Customers - GET // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService - .onGet('api/apps/board/service/services', 300) + .onGet('api/apps/board/customer/customers', 300) .reply(({ request }) => { // Get available queries const search = request.params.get('search'); @@ -38,12 +38,12 @@ export class BoardServiceMockApi { const page = parseInt(request.params.get('page') ?? '1', 10); const size = parseInt(request.params.get('size') ?? '10', 10); - // Clone the services - let services: any[] | null = cloneDeep(this._services); + // Clone the customers + let customers: any[] | null = cloneDeep(this._customers); - // Sort the services + // Sort the customers if (sort === 'sku' || sort === 'name' || sort === 'active') { - services.sort((a, b) => { + customers.sort((a, b) => { const fieldA = a[sort].toString().toUpperCase(); const fieldB = b[sort].toString().toUpperCase(); return order === 'asc' @@ -51,15 +51,15 @@ export class BoardServiceMockApi { : fieldB.localeCompare(fieldA); }); } else { - services.sort((a, b) => + customers.sort((a, b) => order === 'asc' ? a[sort] - b[sort] : b[sort] - a[sort] ); } // If search exists... if (search) { - // Filter the services - services = services.filter( + // Filter the customers + customers = customers.filter( (contact: any) => contact.name && contact.name.toLowerCase().includes(search.toLowerCase()) @@ -67,32 +67,32 @@ export class BoardServiceMockApi { } // Paginate - Start - const servicesLength = services.length; + const customersLength = customers.length; // Calculate pagination details const begin = page * size; - const end = Math.min(size * (page + 1), servicesLength); - const lastPage = Math.max(Math.ceil(servicesLength / size), 1); + const end = Math.min(size * (page + 1), customersLength); + const lastPage = Math.max(Math.ceil(customersLength / size), 1); // Prepare the pagination object let pagination = {}; // If the requested page number is bigger than // the last possible page number, return null for - // services but also send the last possible page so + // customers but also send the last possible page so // the app can navigate to there if (page > lastPage) { - services = null; + customers = null; pagination = { lastPage, }; } else { // Paginate the results by size - services = services.slice(begin, end); + customers = customers.slice(begin, end); // Prepare the pagination mock-api pagination = { - length: servicesLength, + length: customersLength, size: size, page: page, lastPage: lastPage, @@ -105,39 +105,39 @@ export class BoardServiceMockApi { return [ 200, { - services, + customers, pagination, }, ]; }); // ----------------------------------------------------------------------------------------------------- - // @ Service - GET + // @ Customer - GET // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService - .onGet('api/apps/board/service/service') + .onGet('api/apps/board/customer/customer') .reply(({ request }) => { // Get the id from the params const id = request.params.get('id'); - // Clone the services - const services = cloneDeep(this._services); + // Clone the customers + const customers = cloneDeep(this._customers); - // Find the service - const service = services.find((item: any) => item.id === id); + // Find the customer + const customer = customers.find((item: any) => item.id === id); // Return the response - return [200, service]; + return [200, customer]; }); // ----------------------------------------------------------------------------------------------------- - // @ Service - POST + // @ Customer - POST // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService - .onPost('api/apps/board/service/service') + .onPost('api/apps/board/customer/customer') .reply(() => { - // Generate a new service - const newService = { + // Generate a new customer + const newCustomer = { id: FuseMockApiUtils.guid(), category: '', name: 'A New User', @@ -159,54 +159,54 @@ export class BoardServiceMockApi { active: false, }; - // Unshift the new service - this._services.unshift(newService); + // Unshift the new customer + this._customers.unshift(newCustomer); // Return the response - return [200, newService]; + return [200, newCustomer]; }); // ----------------------------------------------------------------------------------------------------- - // @ Service - PATCH + // @ Customer - PATCH // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService - .onPatch('api/apps/board/service/service') + .onPatch('api/apps/board/customer/customer') .reply(({ request }) => { - // Get the id and service + // Get the id and customer const id = request.body.id; - const service = cloneDeep(request.body.service); + const customer = cloneDeep(request.body.customer); - // Prepare the updated service - let updatedService = null; + // Prepare the updated customer + let updatedCustomer = null; - // Find the service and update it - this._services.forEach((item, index, services) => { + // Find the customer and update it + this._customers.forEach((item, index, customers) => { if (item.id === id) { - // Update the service - services[index] = assign({}, services[index], service); + // Update the customer + customers[index] = assign({}, customers[index], customer); - // Store the updated service - updatedService = services[index]; + // Store the updated customer + updatedCustomer = customers[index]; } }); // Return the response - return [200, updatedService]; + return [200, updatedCustomer]; }); // ----------------------------------------------------------------------------------------------------- - // @ Service - DELETE + // @ Customer - DELETE // ----------------------------------------------------------------------------------------------------- this._fuseMockApiService - .onDelete('api/apps/board/service/service') + .onDelete('api/apps/board/customer/customer') .reply(({ request }) => { // Get the id const id = request.params.get('id'); - // Find the service and delete it - this._services.forEach((item, index) => { + // Find the customer and delete it + this._customers.forEach((item, index) => { if (item.id === id) { - this._services.splice(index, 1); + this._customers.splice(index, 1); } }); diff --git a/src/app/mock-api/apps/board/service/data.ts b/src/app/mock-api/apps/board/customer/data.ts similarity index 95% rename from src/app/mock-api/apps/board/service/data.ts rename to src/app/mock-api/apps/board/customer/data.ts index 8f22976..b647df7 100644 --- a/src/app/mock-api/apps/board/service/data.ts +++ b/src/app/mock-api/apps/board/customer/data.ts @@ -1,6 +1,6 @@ /* eslint-disable */ -export const services = [ +export const customers = [ { id: 'on00', totalPartnerCount: '5', diff --git a/src/app/mock-api/common/navigation/data.ts b/src/app/mock-api/common/navigation/data.ts index 7b32b42..e15461e 100644 --- a/src/app/mock-api/common/navigation/data.ts +++ b/src/app/mock-api/common/navigation/data.ts @@ -357,11 +357,11 @@ export const defaultNavigation: FuseNavigationItem[] = [ link: '/board/message', }, { - id: 'board.service', - title: 'Service', + id: 'board.customer', + title: 'Customer', type: 'basic', icon: 'heroicons_outline:academic-cap', - link: '/board/service', + link: '/board/customer', }, { id: 'board.customer-template', diff --git a/src/app/mock-api/index.ts b/src/app/mock-api/index.ts index 24871c7..3e59ba9 100644 --- a/src/app/mock-api/index.ts +++ b/src/app/mock-api/index.ts @@ -67,7 +67,7 @@ import { BoardNoticeMockApi } from './apps/board/notice/api'; import { BoardNoticeOnelineMockApi } from './apps/board/notice-oneline/api'; import { BoardPopupMockApi } from './apps/board/popup/api'; import { BoardMessageMockApi } from './apps/board/message/api'; -import { BoardServiceMockApi } from './apps/board/service/api'; +import { BoardCustomerMockApi } from './apps/board/customer/api'; import { BoardCustomerTemplateMockApi } from './apps/board/customer-template/api'; export const mockApiServices = [ @@ -140,6 +140,6 @@ export const mockApiServices = [ BoardNoticeOnelineMockApi, BoardPopupMockApi, BoardMessageMockApi, - BoardServiceMockApi, + BoardCustomerMockApi, BoardCustomerTemplateMockApi, ]; diff --git a/src/app/modules/admin/board/service/components/index.ts b/src/app/modules/admin/board/customer/components/index.ts similarity index 100% rename from src/app/modules/admin/board/service/components/index.ts rename to src/app/modules/admin/board/customer/components/index.ts diff --git a/src/app/modules/admin/board/service/components/list.component.html b/src/app/modules/admin/board/customer/components/list.component.html similarity index 87% rename from src/app/modules/admin/board/service/components/list.component.html rename to src/app/modules/admin/board/customer/components/list.component.html index 2536cbe..5e4b3b1 100644 --- a/src/app/modules/admin/board/service/components/list.component.html +++ b/src/app/modules/admin/board/customer/components/list.component.html @@ -15,19 +15,19 @@
- +
@@ -255,35 +255,35 @@ class="hidden sm:block truncate" (click)="viewUserDetail(user.id!)" > - {{ service.id }} + {{ customer.id }}
@@ -343,11 +343,11 @@
- +
- There are no services! + There are no customers!
diff --git a/src/app/modules/admin/board/service/components/list.component.ts b/src/app/modules/admin/board/customer/components/list.component.ts similarity index 87% rename from src/app/modules/admin/board/service/components/list.component.ts rename to src/app/modules/admin/board/customer/components/list.component.ts index 486a0bb..962846b 100644 --- a/src/app/modules/admin/board/service/components/list.component.ts +++ b/src/app/modules/admin/board/customer/components/list.component.ts @@ -30,13 +30,13 @@ import { fuseAnimations } from '@fuse/animations'; import { FuseConfirmationService } from '@fuse/services/confirmation'; import { User } from '../../../member/user/models/user'; -import { Service } from '../models/service'; -import { ServicePagination } from '../models/service-pagination'; -import { ServiceService } from '../services/service.service'; +import { Customer } from '../models/customer'; +import { CustomerPagination } from '../models/customer-pagination'; +import { CustomerService } from '../services/customer.service'; import { Router } from '@angular/router'; @Component({ - selector: 'service-list', + selector: 'customer-list', templateUrl: './list.component.html', styles: [ /* language=SCSS */ @@ -66,13 +66,13 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild(MatPaginator) private _paginator!: MatPaginator; @ViewChild(MatSort) private _sort!: MatSort; - services$!: Observable; + customers$!: Observable; users$!: Observable; isLoading = false; searchInputControl = new FormControl(); - selectedService?: Service; - pagination?: ServicePagination; + selectedCustomer?: Customer; + pagination?: CustomerPagination; private _unsubscribeAll: Subject = new Subject(); @@ -83,7 +83,7 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { private _changeDetectorRef: ChangeDetectorRef, private _fuseConfirmationService: FuseConfirmationService, private _formBuilder: FormBuilder, - private _serviceService: ServiceService, + private _customerService: CustomerService, private router: Router ) {} @@ -96,9 +96,9 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { */ ngOnInit(): void { // Get the pagination - this._serviceService.pagination$ + this._customerService.pagination$ .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((pagination: ServicePagination | undefined) => { + .subscribe((pagination: CustomerPagination | undefined) => { // Update the pagination this.pagination = pagination; @@ -107,7 +107,7 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { }); // Get the products - this.services$ = this._serviceService.services$; + this.customers$ = this._customerService.customers$; } /** @@ -125,7 +125,7 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { // Mark for check this._changeDetectorRef.markForCheck(); - // If the service changes the sort order... + // If the customer changes the sort order... this._sort.sortChange .pipe(takeUntil(this._unsubscribeAll)) .subscribe(() => { @@ -138,7 +138,7 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { .pipe( switchMap(() => { this.isLoading = true; - return this._serviceService.getServices( + return this._customerService.getCustomers( this._paginator.pageIndex, this._paginator.pageSize, this._sort.active, diff --git a/src/app/modules/admin/board/service/service.module.ts b/src/app/modules/admin/board/customer/customer.module.ts similarity index 92% rename from src/app/modules/admin/board/service/service.module.ts rename to src/app/modules/admin/board/customer/customer.module.ts index 56d9c0b..61391c1 100644 --- a/src/app/modules/admin/board/service/service.module.ts +++ b/src/app/modules/admin/board/customer/customer.module.ts @@ -22,14 +22,14 @@ import { SharedModule } from 'app/shared/shared.module'; import { COMPONENTS } from './components'; -import { serviceRoutes } from './service.routing'; +import { customerRoutes } from './customer.routing'; @NgModule({ declarations: [COMPONENTS], imports: [ TranslocoModule, SharedModule, - RouterModule.forChild(serviceRoutes), + RouterModule.forChild(customerRoutes), MatButtonModule, MatFormFieldModule, @@ -47,4 +47,4 @@ import { serviceRoutes } from './service.routing'; MatCheckboxModule, ], }) -export class ServiceModule {} +export class CustomerModule {} diff --git a/src/app/modules/admin/board/service/service.routing.ts b/src/app/modules/admin/board/customer/customer.routing.ts similarity index 75% rename from src/app/modules/admin/board/service/service.routing.ts rename to src/app/modules/admin/board/customer/customer.routing.ts index 4be9d06..05425e5 100644 --- a/src/app/modules/admin/board/service/service.routing.ts +++ b/src/app/modules/admin/board/customer/customer.routing.ts @@ -3,15 +3,15 @@ import { Route } from '@angular/router'; import { ListComponent } from './components/list.component'; import { ViewComponent } from '../../member/user/components/view.component'; -import { ServicesResolver } from './resolvers/service.resolver'; +import { CustomersResolver } from './resolvers/customer.resolver'; import { UserResolver } from '../../member/user/resolvers/user.resolver'; -export const serviceRoutes: Route[] = [ +export const customerRoutes: Route[] = [ { path: '', component: ListComponent, resolve: { - services: ServicesResolver, + customers: CustomersResolver, }, }, { diff --git a/src/app/modules/admin/board/service/models/service-pagination.ts b/src/app/modules/admin/board/customer/models/customer-pagination.ts similarity index 75% rename from src/app/modules/admin/board/service/models/service-pagination.ts rename to src/app/modules/admin/board/customer/models/customer-pagination.ts index e50e908..7554469 100644 --- a/src/app/modules/admin/board/service/models/service-pagination.ts +++ b/src/app/modules/admin/board/customer/models/customer-pagination.ts @@ -1,4 +1,4 @@ -export interface ServicePagination { +export interface CustomerPagination { length: number; size: number; page: number; diff --git a/src/app/modules/admin/board/service/models/service.ts b/src/app/modules/admin/board/customer/models/customer.ts similarity index 95% rename from src/app/modules/admin/board/service/models/service.ts rename to src/app/modules/admin/board/customer/models/customer.ts index b935e0b..6e6af0f 100644 --- a/src/app/modules/admin/board/service/models/service.ts +++ b/src/app/modules/admin/board/customer/models/customer.ts @@ -1,4 +1,4 @@ -export interface Service { +export interface Customer { id?: string; totalPartnerCount?: number; totalHoldingMoney?: number; diff --git a/src/app/modules/admin/board/service/resolvers/service.resolver.ts b/src/app/modules/admin/board/customer/resolvers/customer.resolver.ts similarity index 71% rename from src/app/modules/admin/board/service/resolvers/service.resolver.ts rename to src/app/modules/admin/board/customer/resolvers/customer.resolver.ts index e2f3cd5..7e73d8c 100644 --- a/src/app/modules/admin/board/service/resolvers/service.resolver.ts +++ b/src/app/modules/admin/board/customer/resolvers/customer.resolver.ts @@ -7,19 +7,19 @@ import { } from '@angular/router'; import { catchError, Observable, throwError } from 'rxjs'; -import { Service } from '../models/service'; -import { ServicePagination } from '../models/service-pagination'; -import { ServiceService } from '../services/service.service'; +import { Customer } from '../models/customer'; +import { CustomerPagination } from '../models/customer-pagination'; +import { CustomerService } from '../services/customer.service'; @Injectable({ providedIn: 'root', }) -export class ServiceResolver implements Resolve { +export class CustomerResolver implements Resolve { /** * Constructor */ constructor( - private _serviceService: ServiceService, + private _customerService: CustomerService, private _router: Router ) {} @@ -36,8 +36,8 @@ export class ServiceResolver implements Resolve { resolve( route: ActivatedRouteSnapshot, state: RouterStateSnapshot - ): Observable { - return this._serviceService.getServiceById(route.paramMap.get('id')).pipe( + ): Observable { + return this._customerService.getCustomerById(route.paramMap.get('id')).pipe( // Error here means the requested product is not available catchError((error) => { // Log the error @@ -59,11 +59,11 @@ export class ServiceResolver implements Resolve { @Injectable({ providedIn: 'root', }) -export class ServicesResolver implements Resolve { +export class CustomersResolver implements Resolve { /** * Constructor */ - constructor(private _serviceService: ServiceService) {} + constructor(private _customerService: CustomerService) {} // ----------------------------------------------------------------------------------------------------- // @ Public methods @@ -79,9 +79,9 @@ export class ServicesResolver implements Resolve { route: ActivatedRouteSnapshot, state: RouterStateSnapshot ): Observable<{ - pagination: ServicePagination; - services: Service[]; + pagination: CustomerPagination; + customers: Customer[]; }> { - return this._serviceService.getServices(); + return this._customerService.getCustomers(); } } diff --git a/src/app/modules/admin/board/service/services/service.service.ts b/src/app/modules/admin/board/customer/services/customer.service.ts similarity index 55% rename from src/app/modules/admin/board/service/services/service.service.ts rename to src/app/modules/admin/board/customer/services/customer.service.ts index e8950af..bae7017 100644 --- a/src/app/modules/admin/board/service/services/service.service.ts +++ b/src/app/modules/admin/board/customer/services/customer.service.ts @@ -12,19 +12,19 @@ import { throwError, } from 'rxjs'; -import { Service } from '../models/service'; -import { ServicePagination } from '../models/service-pagination'; +import { Customer } from '../models/customer'; +import { CustomerPagination } from '../models/customer-pagination'; @Injectable({ providedIn: 'root', }) -export class ServiceService { +export class CustomerService { // Private - private __pagination = new BehaviorSubject( + private __pagination = new BehaviorSubject( undefined ); - private __service = new BehaviorSubject(undefined); - private __services = new BehaviorSubject(undefined); + private __customer = new BehaviorSubject(undefined); + private __customers = new BehaviorSubject(undefined); /** * Constructor @@ -38,22 +38,22 @@ export class ServiceService { /** * Getter for pagination */ - get pagination$(): Observable { + get pagination$(): Observable { return this.__pagination.asObservable(); } /** - * Getter for service + * Getter for customer */ - get service$(): Observable { - return this.__service.asObservable(); + get customer$(): Observable { + return this.__customer.asObservable(); } /** - * Getter for services + * Getter for customers */ - get services$(): Observable { - return this.__services.asObservable(); + get customers$(): Observable { + return this.__customers.asObservable(); } // ----------------------------------------------------------------------------------------------------- @@ -61,7 +61,7 @@ export class ServiceService { // ----------------------------------------------------------------------------------------------------- /** - * Get Services + * Get customers * * * @param page @@ -70,21 +70,21 @@ export class ServiceService { * @param order * @param search */ - getServices( + getCustomers( page: number = 0, size: number = 10, sort: string = 'name', order: 'asc' | 'desc' | '' = 'asc', search: string = '' ): Observable<{ - pagination: ServicePagination; - services: Service[]; + pagination: CustomerPagination; + customers: Customer[]; }> { return this._httpClient .get<{ - pagination: ServicePagination; - services: Service[]; - }>('api/apps/board/service/services', { + pagination: CustomerPagination; + customers: Customer[]; + }>('api/apps/board/customer/customers', { params: { page: '' + page, size: '' + size, @@ -96,7 +96,7 @@ export class ServiceService { .pipe( tap((response) => { this.__pagination.next(response.pagination); - this.__services.next(response.services); + this.__customers.next(response.customers); }) ); } @@ -104,18 +104,18 @@ export class ServiceService { /** * Get product by id */ - getServiceById(id: string | null): Observable { - return this.__services.pipe( + getCustomerById(id: string | null): Observable { + return this.__customers.pipe( take(1), - map((services) => { + map((customers) => { // Find the product - const service = services?.find((item) => item.id === id) || undefined; + const customer = customers?.find((item) => item.id === id) || undefined; // Update the product - this.__service.next(service); + this.__customer.next(customer); // Return the product - return service; + return customer; }), switchMap((product) => { if (!product) { @@ -130,21 +130,21 @@ export class ServiceService { /** * Create product */ - createService(): Observable { - return this.services$.pipe( + createCustomer(): Observable { + return this.customers$.pipe( take(1), - switchMap((services) => + switchMap((customers) => this._httpClient - .post('api/apps/board/service/product', {}) + .post('api/apps/board/customer/product', {}) .pipe( - map((newService) => { - // Update the services with the new product - if (!!services) { - this.__services.next([newService, ...services]); + map((newCustomer) => { + // Update the customers with the new product + if (!!customers) { + this.__customers.next([newCustomer, ...customers]); } // Return the new product - return newService; + return newCustomer; }) ) ) diff --git a/src/app/modules/admin/board/notice/components/list.component.ts b/src/app/modules/admin/board/notice/components/list.component.ts index 812f993..017ac03 100644 --- a/src/app/modules/admin/board/notice/components/list.component.ts +++ b/src/app/modules/admin/board/notice/components/list.component.ts @@ -32,7 +32,7 @@ import { FuseConfirmationService } from '@fuse/services/confirmation'; import { User } from '../../../member/user/models/user'; import { Notice } from '../models/notice'; import { NoticePagination } from '../models/notice-pagination'; -import { NoticeService } from '../services/notice.service'; +import { NoticeService } from '../service/notice.service'; import { Router } from '@angular/router'; @Component({ diff --git a/src/app/modules/admin/board/notice/resolvers/notice.resolver.ts b/src/app/modules/admin/board/notice/resolvers/notice.resolver.ts index fb5b3b5..ec3dbc5 100644 --- a/src/app/modules/admin/board/notice/resolvers/notice.resolver.ts +++ b/src/app/modules/admin/board/notice/resolvers/notice.resolver.ts @@ -9,7 +9,7 @@ import { catchError, Observable, throwError } from 'rxjs'; import { Notice } from '../models/notice'; import { NoticePagination } from '../models/notice-pagination'; -import { NoticeService } from '../services/notice.service'; +import { NoticeService } from '../service/notice.service'; @Injectable({ providedIn: 'root', diff --git a/src/app/modules/admin/board/notice/services/notice.service.ts b/src/app/modules/admin/board/notice/service/notice.service.ts similarity index 100% rename from src/app/modules/admin/board/notice/services/notice.service.ts rename to src/app/modules/admin/board/notice/service/notice.service.ts diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index f56af24..8fe3898 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -44,6 +44,6 @@ "Notice Oneline": "Notice Oneline", "Popup": "Pop Up", "Message": "Message", - "Service": "Service Center", + "Customer": "Customer", "Customer Template": "Custoner Template" } diff --git a/src/assets/i18n/ko.json b/src/assets/i18n/ko.json index b318dc8..5829a61 100644 --- a/src/assets/i18n/ko.json +++ b/src/assets/i18n/ko.json @@ -50,6 +50,6 @@ "Notice Oneline": "한줄공지", "Popup": "팝업", "Message": "쪽지함", - "Service": "고객센터", + "Customer": "고객센터", "Customer Template": "고객센터템플릿" } From 62f2557ced7df2e93fb914ceb53ea819f58fe544 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 03:27:40 +0000 Subject: [PATCH 03/18] =?UTF-8?q?=EA=B3=B5=EC=A7=80=EC=82=AC=ED=95=AD=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=20page,=20=EA=B3=A0=EA=B0=9D=EC=84=BC?= =?UTF-8?q?=ED=84=B0=ED=85=9C=ED=94=8C=EB=A6=BF=20=EB=93=B1=EB=A1=9D=20pag?= =?UTF-8?q?e=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/registration.component.html | 2 + .../components/registration.component.ts} | 125 +++---- .../components/registration.component.html | 2 + .../components/registration.component.ts | 183 +++++++++ .../board/popup copy/components/index.ts | 3 - .../popup copy/components/list.component.html | 353 ------------------ .../popup copy/models/popup-pagination.ts | 8 - .../admin/board/popup copy/models/popup.ts | 29 -- .../admin/board/popup copy/popup.module.ts | 50 --- .../admin/board/popup copy/popup.routing.ts | 24 -- .../popup copy/resolvers/popup.resolver.ts | 84 ----- .../popup copy/services/popup.service.ts | 151 -------- 12 files changed, 242 insertions(+), 772 deletions(-) create mode 100644 src/app/modules/admin/board/customer-template/components/registration.component.html rename src/app/modules/admin/board/{popup copy/components/list.component.ts => customer-template/components/registration.component.ts} (55%) create mode 100644 src/app/modules/admin/board/notice/components/registration.component.html create mode 100644 src/app/modules/admin/board/notice/components/registration.component.ts delete mode 100644 src/app/modules/admin/board/popup copy/components/index.ts delete mode 100644 src/app/modules/admin/board/popup copy/components/list.component.html delete mode 100644 src/app/modules/admin/board/popup copy/models/popup-pagination.ts delete mode 100644 src/app/modules/admin/board/popup copy/models/popup.ts delete mode 100644 src/app/modules/admin/board/popup copy/popup.module.ts delete mode 100644 src/app/modules/admin/board/popup copy/popup.routing.ts delete mode 100644 src/app/modules/admin/board/popup copy/resolvers/popup.resolver.ts delete mode 100644 src/app/modules/admin/board/popup copy/services/popup.service.ts diff --git a/src/app/modules/admin/board/customer-template/components/registration.component.html b/src/app/modules/admin/board/customer-template/components/registration.component.html new file mode 100644 index 0000000..49fa156 --- /dev/null +++ b/src/app/modules/admin/board/customer-template/components/registration.component.html @@ -0,0 +1,2 @@ + +
고객센터 템플릿 등록
diff --git a/src/app/modules/admin/board/popup copy/components/list.component.ts b/src/app/modules/admin/board/customer-template/components/registration.component.ts similarity index 55% rename from src/app/modules/admin/board/popup copy/components/list.component.ts rename to src/app/modules/admin/board/customer-template/components/registration.component.ts index 9effff6..645b6d8 100644 --- a/src/app/modules/admin/board/popup copy/components/list.component.ts +++ b/src/app/modules/admin/board/customer-template/components/registration.component.ts @@ -29,31 +29,28 @@ import { import { fuseAnimations } from '@fuse/animations'; import { FuseConfirmationService } from '@fuse/services/confirmation'; -import { User } from '../../../member/user/models/user'; -import { Popup } from '../models/popup'; -import { PopupPagination } from '../models/popup-pagination'; -import { PopupService } from '../services/popup.service'; -import { Router } from '@angular/router'; +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; @Component({ - selector: 'popup-list', - templateUrl: './list.component.html', + selector: 'customer-template-registration', + templateUrl: './registration.component.html', styles: [ /* language=SCSS */ ` .inventory-grid { - grid-template-columns: 60px auto 40px; + grid-template-columns: 48px auto 40px; @screen sm { - grid-template-columns: 60px 60px 60px 60px 60px 60px auto 60px; + grid-template-columns: 48px auto 112px 72px; } @screen md { - grid-template-columns: 60px 60px 60px 60px 60px 60px auto 60px 60px; + grid-template-columns: 48px 112px auto 112px 72px; } @screen lg { - grid-template-columns: 60px 70px 70px 70px 70px 100px 60px 60px auto 60px 60px 60px 60px; + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; } } `, @@ -62,17 +59,14 @@ import { Router } from '@angular/router'; changeDetection: ChangeDetectionStrategy.OnPush, animations: fuseAnimations, }) -export class ListComponent implements OnInit, AfterViewInit, OnDestroy { +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild(MatPaginator) private _paginator!: MatPaginator; @ViewChild(MatSort) private _sort!: MatSort; - popups$!: Observable; - users$!: Observable; - isLoading = false; searchInputControl = new FormControl(); - selectedPopup?: Popup; - pagination?: PopupPagination; + selectedProductForm!: FormGroup; + selectedUser?: User; private _unsubscribeAll: Subject = new Subject(); @@ -83,8 +77,7 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { private _changeDetectorRef: ChangeDetectorRef, private _fuseConfirmationService: FuseConfirmationService, private _formBuilder: FormBuilder, - private _popupService: PopupService, - private router: Router + private _userService: UserService ) {} // ----------------------------------------------------------------------------------------------------- @@ -95,63 +88,59 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { * On init */ ngOnInit(): void { - // Get the pagination - this._popupService.pagination$ - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((pagination: PopupPagination | undefined) => { - // Update the pagination - this.pagination = pagination; + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); // Mark for check this._changeDetectorRef.markForCheck(); }); - // Get the products - this.popups$ = this._popupService.popups$; + /* this.user$ = this._userService.user$; */ } /** * After view init */ - ngAfterViewInit(): void { - if (this._sort && this._paginator) { - // Set the initial sort - this._sort.sort({ - id: 'name', - start: 'asc', - disableClear: true, - }); - - // Mark for check - this._changeDetectorRef.markForCheck(); - - // If the popup changes the sort order... - this._sort.sortChange - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe(() => { - // Reset back to the first page - this._paginator.pageIndex = 0; - }); - - // Get products if sort or page changes - merge(this._sort.sortChange, this._paginator.page) - .pipe( - switchMap(() => { - this.isLoading = true; - return this._popupService.getPopups( - this._paginator.pageIndex, - this._paginator.pageSize, - this._sort.active, - this._sort.direction - ); - }), - map(() => { - this.isLoading = false; - }) - ) - .subscribe(); - } - } + ngAfterViewInit(): void {} /** * On destroy @@ -166,10 +155,6 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { // @ Public methods // ----------------------------------------------------------------------------------------------------- - viewUserDetail(id: string): void { - let url: string = 'member/user/' + id; - this.router.navigateByUrl(url); - } // ----------------------------------------------------------------------------------------------------- // @ Private methods // ----------------------------------------------------------------------------------------------------- diff --git a/src/app/modules/admin/board/notice/components/registration.component.html b/src/app/modules/admin/board/notice/components/registration.component.html new file mode 100644 index 0000000..e13f190 --- /dev/null +++ b/src/app/modules/admin/board/notice/components/registration.component.html @@ -0,0 +1,2 @@ + +
공지사항 등록
diff --git a/src/app/modules/admin/board/notice/components/registration.component.ts b/src/app/modules/admin/board/notice/components/registration.component.ts new file mode 100644 index 0000000..a6c0c0c --- /dev/null +++ b/src/app/modules/admin/board/notice/components/registration.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'notice-registration', + templateUrl: './registration.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} diff --git a/src/app/modules/admin/board/popup copy/components/index.ts b/src/app/modules/admin/board/popup copy/components/index.ts deleted file mode 100644 index 04759eb..0000000 --- a/src/app/modules/admin/board/popup copy/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { ListComponent } from './list.component'; - -export const COMPONENTS = [ListComponent]; diff --git a/src/app/modules/admin/board/popup copy/components/list.component.html b/src/app/modules/admin/board/popup copy/components/list.component.html deleted file mode 100644 index 68c5687..0000000 --- a/src/app/modules/admin/board/popup copy/components/list.component.html +++ /dev/null @@ -1,353 +0,0 @@ -
- -
- -
- -
- -
팝업
- -
- - - - - - - 40 - 60 - 80 - 100 - - - - - LV.1 - LV.2 - LV.3 - LV.4 - - - - - 정상 - 대기 - 탈퇴 - 휴면 - 블랙 - 정지 - - - - - 카지노제한 - 슬롯제한 - - - - - 계좌입금 - - - - - 카지노콤프 - 슬롯콤프 - 배팅콤프 - 첫충콤프 - - - - - - - - - - - - -
-
- - -
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- - -
-
- - -
- There are no popups! -
-
-
-
-
diff --git a/src/app/modules/admin/board/popup copy/models/popup-pagination.ts b/src/app/modules/admin/board/popup copy/models/popup-pagination.ts deleted file mode 100644 index 64182c5..0000000 --- a/src/app/modules/admin/board/popup copy/models/popup-pagination.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface PopupPagination { - length: number; - size: number; - page: number; - lastPage: number; - startIndex: number; - endIndex: number; -} diff --git a/src/app/modules/admin/board/popup copy/models/popup.ts b/src/app/modules/admin/board/popup copy/models/popup.ts deleted file mode 100644 index 533f1bf..0000000 --- a/src/app/modules/admin/board/popup copy/models/popup.ts +++ /dev/null @@ -1,29 +0,0 @@ -export interface Popup { - id?: string; - totalPartnerCount?: number; - totalHoldingMoney?: number; - totalComp?: number; - total?: number; - branchCount?: number; - divisionCount?: number; - officeCount?: number; - storeCount?: number; - memberCount?: number; - nickname?: string; - accountHolder?: string; - phoneNumber?: string; - calculateType?: string; - ownCash?: number; - ownComp?: number; - ownCoupon?: number; - gameMoney?: number; - todayComp?: number; - totalDeposit?: number; - totalWithdraw?: number; - balance?: number; - registDate?: string; - finalSigninDate?: string; - ip?: string; - state?: string; - note?: string; -} diff --git a/src/app/modules/admin/board/popup copy/popup.module.ts b/src/app/modules/admin/board/popup copy/popup.module.ts deleted file mode 100644 index 0691ccc..0000000 --- a/src/app/modules/admin/board/popup copy/popup.module.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; - -import { MatButtonModule } from '@angular/material/button'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatPaginatorModule } from '@angular/material/paginator'; -import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { MatRippleModule } from '@angular/material/core'; -import { MatSortModule } from '@angular/material/sort'; -import { MatSelectModule } from '@angular/material/select'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { MatGridListModule } from '@angular/material/grid-list'; -import { MatSlideToggleModule } from '@angular/material/slide-toggle'; -import { MatRadioModule } from '@angular/material/radio'; -import { MatCheckboxModule } from '@angular/material/checkbox'; - -import { TranslocoModule } from '@ngneat/transloco'; - -import { SharedModule } from 'app/shared/shared.module'; - -import { COMPONENTS } from './components'; - -import { popupRoutes } from './popup.routing'; - -@NgModule({ - declarations: [COMPONENTS], - imports: [ - TranslocoModule, - SharedModule, - RouterModule.forChild(popupRoutes), - - MatButtonModule, - MatFormFieldModule, - MatIconModule, - MatInputModule, - MatPaginatorModule, - MatProgressBarModule, - MatRippleModule, - MatSortModule, - MatSelectModule, - MatTooltipModule, - MatGridListModule, - MatSlideToggleModule, - MatRadioModule, - MatCheckboxModule, - ], -}) -export class PopupModule {} diff --git a/src/app/modules/admin/board/popup copy/popup.routing.ts b/src/app/modules/admin/board/popup copy/popup.routing.ts deleted file mode 100644 index 4a53e31..0000000 --- a/src/app/modules/admin/board/popup copy/popup.routing.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Route } from '@angular/router'; - -import { ListComponent } from './components/list.component'; -import { ViewComponent } from '../../member/user/components/view.component'; - -import { PopupsResolver } from './resolvers/popup.resolver'; -import { UserResolver } from '../../member/user/resolvers/user.resolver'; - -export const popupRoutes: Route[] = [ - { - path: '', - component: ListComponent, - resolve: { - popups: PopupsResolver, - }, - }, - { - path: ':id', - component: ViewComponent, - resolve: { - users: UserResolver, - }, - }, -]; diff --git a/src/app/modules/admin/board/popup copy/resolvers/popup.resolver.ts b/src/app/modules/admin/board/popup copy/resolvers/popup.resolver.ts deleted file mode 100644 index ebd8222..0000000 --- a/src/app/modules/admin/board/popup copy/resolvers/popup.resolver.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Injectable } from '@angular/core'; -import { - ActivatedRouteSnapshot, - Resolve, - Router, - RouterStateSnapshot, -} from '@angular/router'; -import { catchError, Observable, throwError } from 'rxjs'; - -import { Popup } from '../models/popup'; -import { PopupPagination } from '../models/popup-pagination'; -import { PopupService } from '../services/popup.service'; - -@Injectable({ - providedIn: 'root', -}) -export class PopupResolver implements Resolve { - /** - * Constructor - */ - constructor(private _popupService: PopupService, private _router: Router) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve( - route: ActivatedRouteSnapshot, - state: RouterStateSnapshot - ): Observable { - return this._popupService.getPopupById(route.paramMap.get('id')).pipe( - // Error here means the requested product is not available - catchError((error) => { - // Log the error - console.error(error); - - // Get the parent url - const parentUrl = state.url.split('/').slice(0, -1).join('/'); - - // Navigate to there - this._router.navigateByUrl(parentUrl); - - // Throw an error - return throwError(error); - }) - ); - } -} - -@Injectable({ - providedIn: 'root', -}) -export class PopupsResolver implements Resolve { - /** - * Constructor - */ - constructor(private _popupService: PopupService) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Resolver - * - * @param route - * @param state - */ - resolve( - route: ActivatedRouteSnapshot, - state: RouterStateSnapshot - ): Observable<{ - pagination: PopupPagination; - popups: Popup[]; - }> { - return this._popupService.getPopups(); - } -} diff --git a/src/app/modules/admin/board/popup copy/services/popup.service.ts b/src/app/modules/admin/board/popup copy/services/popup.service.ts deleted file mode 100644 index b228337..0000000 --- a/src/app/modules/admin/board/popup copy/services/popup.service.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { - BehaviorSubject, - filter, - map, - Observable, - of, - switchMap, - take, - tap, - throwError, -} from 'rxjs'; - -import { Popup } from '../models/popup'; -import { PopupPagination } from '../models/popup-pagination'; - -@Injectable({ - providedIn: 'root', -}) -export class PopupService { - // Private - private __pagination = new BehaviorSubject( - undefined - ); - private __popup = new BehaviorSubject(undefined); - private __popups = new BehaviorSubject(undefined); - - /** - * Constructor - */ - constructor(private _httpClient: HttpClient) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Accessors - // ----------------------------------------------------------------------------------------------------- - - /** - * Getter for pagination - */ - get pagination$(): Observable { - return this.__pagination.asObservable(); - } - - /** - * Getter for popup - */ - get popup$(): Observable { - return this.__popup.asObservable(); - } - - /** - * Getter for popups - */ - get popups$(): Observable { - return this.__popups.asObservable(); - } - - // ----------------------------------------------------------------------------------------------------- - // @ Public methods - // ----------------------------------------------------------------------------------------------------- - - /** - * Get Popups - * - * - * @param page - * @param size - * @param sort - * @param order - * @param search - */ - getPopups( - page: number = 0, - size: number = 10, - sort: string = 'name', - order: 'asc' | 'desc' | '' = 'asc', - search: string = '' - ): Observable<{ - pagination: PopupPagination; - popups: Popup[]; - }> { - return this._httpClient - .get<{ - pagination: PopupPagination; - popups: Popup[]; - }>('api/apps/board/popup/popups', { - params: { - page: '' + page, - size: '' + size, - sort, - order, - search, - }, - }) - .pipe( - tap((response) => { - this.__pagination.next(response.pagination); - this.__popups.next(response.popups); - }) - ); - } - - /** - * Get product by id - */ - getPopupById(id: string | null): Observable { - return this.__popups.pipe( - take(1), - map((popups) => { - // Find the product - const popup = popups?.find((item) => item.id === id) || undefined; - - // Update the product - this.__popup.next(popup); - - // Return the product - return popup; - }), - switchMap((product) => { - if (!product) { - return throwError('Could not found product with id of ' + id + '!'); - } - - return of(product); - }) - ); - } - - /** - * Create product - */ - createPopup(): Observable { - return this.popups$.pipe( - take(1), - switchMap((popups) => - this._httpClient.post('api/apps/board/popup/product', {}).pipe( - map((newPopup) => { - // Update the popups with the new product - if (!!popups) { - this.__popups.next([newPopup, ...popups]); - } - - // Return the new product - return newPopup; - }) - ) - ) - ); - } -} From 73d7ada50e35450ed08af9b697ad34001e969ca5 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 03:29:41 +0000 Subject: [PATCH 04/18] =?UTF-8?q?=ED=95=9C=EC=A4=84=EA=B3=B5=EC=A7=80=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=20page=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/registration.component.html | 2 + .../components/registration.component.ts | 183 ++++++++++++++++++ 2 files changed, 185 insertions(+) create mode 100644 src/app/modules/admin/board/notice-oneline/components/registration.component.html create mode 100644 src/app/modules/admin/board/notice-oneline/components/registration.component.ts diff --git a/src/app/modules/admin/board/notice-oneline/components/registration.component.html b/src/app/modules/admin/board/notice-oneline/components/registration.component.html new file mode 100644 index 0000000..cccc15f --- /dev/null +++ b/src/app/modules/admin/board/notice-oneline/components/registration.component.html @@ -0,0 +1,2 @@ + +
한줄공지 등록
diff --git a/src/app/modules/admin/board/notice-oneline/components/registration.component.ts b/src/app/modules/admin/board/notice-oneline/components/registration.component.ts new file mode 100644 index 0000000..be1797c --- /dev/null +++ b/src/app/modules/admin/board/notice-oneline/components/registration.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'notice-oneline-registration', + templateUrl: './registration.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} From aa3ff329137cc38f47eb970445c526c91ddf5174 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 03:32:00 +0000 Subject: [PATCH 05/18] =?UTF-8?q?=ED=8C=9D=EC=97=85=EC=B0=BD=EB=A7=8C?= =?UTF-8?q?=EB=93=A4=EA=B8=B0=20page=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/registration.component.html | 2 + .../components/registration.component.ts | 183 ++++++++++++++++++ 2 files changed, 185 insertions(+) create mode 100644 src/app/modules/admin/board/popup/components/registration.component.html create mode 100644 src/app/modules/admin/board/popup/components/registration.component.ts diff --git a/src/app/modules/admin/board/popup/components/registration.component.html b/src/app/modules/admin/board/popup/components/registration.component.html new file mode 100644 index 0000000..cef0a5d --- /dev/null +++ b/src/app/modules/admin/board/popup/components/registration.component.html @@ -0,0 +1,2 @@ + +
팝업창 만들기
diff --git a/src/app/modules/admin/board/popup/components/registration.component.ts b/src/app/modules/admin/board/popup/components/registration.component.ts new file mode 100644 index 0000000..a6c0c0c --- /dev/null +++ b/src/app/modules/admin/board/popup/components/registration.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'notice-registration', + templateUrl: './registration.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} From 3b537dfde49e7543b0fd0cb8b3b5951ab5b5d3a8 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 04:31:35 +0000 Subject: [PATCH 06/18] =?UTF-8?q?=EA=B3=B5=EC=A7=80=EC=82=AC=ED=95=AD=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=EB=A1=9C=EA=B7=B8=EC=9D=B8=20page=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/duplicate.component.html | 2 + .../notice/components/duplicate.component.ts | 183 ++++++++++++++++++ .../components/registration.component.html | 4 +- 3 files changed, 188 insertions(+), 1 deletion(-) create mode 100644 src/app/modules/admin/board/notice/components/duplicate.component.html create mode 100644 src/app/modules/admin/board/notice/components/duplicate.component.ts diff --git a/src/app/modules/admin/board/notice/components/duplicate.component.html b/src/app/modules/admin/board/notice/components/duplicate.component.html new file mode 100644 index 0000000..e13f190 --- /dev/null +++ b/src/app/modules/admin/board/notice/components/duplicate.component.html @@ -0,0 +1,2 @@ + +
공지사항 등록
diff --git a/src/app/modules/admin/board/notice/components/duplicate.component.ts b/src/app/modules/admin/board/notice/components/duplicate.component.ts new file mode 100644 index 0000000..a6c0c0c --- /dev/null +++ b/src/app/modules/admin/board/notice/components/duplicate.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'notice-registration', + templateUrl: './registration.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} diff --git a/src/app/modules/admin/board/popup/components/registration.component.html b/src/app/modules/admin/board/popup/components/registration.component.html index cef0a5d..220f924 100644 --- a/src/app/modules/admin/board/popup/components/registration.component.html +++ b/src/app/modules/admin/board/popup/components/registration.component.html @@ -1,2 +1,4 @@ -
팝업창 만들기
+
+ 고객센터-중복로그인버튼클릭 page +
From 7a2976939122ca06f45b7b993b443fa26dec5968 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 04:41:02 +0000 Subject: [PATCH 07/18] =?UTF-8?q?=EA=B3=B5=EC=A7=80=EC=82=AC=ED=95=AD?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=EB=A1=9C=EA=B7=B8=EC=9D=B8=20page=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{duplicate.component.html => loginlistbyid.component.html} | 0 .../{duplicate.component.ts => loginlistbyid.component.ts} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/app/modules/admin/board/notice/components/{duplicate.component.html => loginlistbyid.component.html} (100%) rename src/app/modules/admin/board/notice/components/{duplicate.component.ts => loginlistbyid.component.ts} (100%) diff --git a/src/app/modules/admin/board/notice/components/duplicate.component.html b/src/app/modules/admin/board/notice/components/loginlistbyid.component.html similarity index 100% rename from src/app/modules/admin/board/notice/components/duplicate.component.html rename to src/app/modules/admin/board/notice/components/loginlistbyid.component.html diff --git a/src/app/modules/admin/board/notice/components/duplicate.component.ts b/src/app/modules/admin/board/notice/components/loginlistbyid.component.ts similarity index 100% rename from src/app/modules/admin/board/notice/components/duplicate.component.ts rename to src/app/modules/admin/board/notice/components/loginlistbyid.component.ts From 623dca08fc7805ef6177f7985ef55c437aac3b53 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 04:45:11 +0000 Subject: [PATCH 08/18] =?UTF-8?q?=EA=B3=A0=EA=B0=9D=EC=84=BC=ED=84=B0?= =?UTF-8?q?=ED=85=9C=ED=94=8C=EB=A6=BF=20=EC=83=81=EC=84=B8=20page=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/view.component.html | 2 + .../components/view.component.ts | 183 ++++++++++++++++++ .../components/loginlistbyid.component.ts | 2 +- 3 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 src/app/modules/admin/board/customer-template/components/view.component.html create mode 100644 src/app/modules/admin/board/customer-template/components/view.component.ts diff --git a/src/app/modules/admin/board/customer-template/components/view.component.html b/src/app/modules/admin/board/customer-template/components/view.component.html new file mode 100644 index 0000000..49fa156 --- /dev/null +++ b/src/app/modules/admin/board/customer-template/components/view.component.html @@ -0,0 +1,2 @@ + +
고객센터 템플릿 등록
diff --git a/src/app/modules/admin/board/customer-template/components/view.component.ts b/src/app/modules/admin/board/customer-template/components/view.component.ts new file mode 100644 index 0000000..645b6d8 --- /dev/null +++ b/src/app/modules/admin/board/customer-template/components/view.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'customer-template-registration', + templateUrl: './registration.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} diff --git a/src/app/modules/admin/board/notice/components/loginlistbyid.component.ts b/src/app/modules/admin/board/notice/components/loginlistbyid.component.ts index a6c0c0c..a65cd6f 100644 --- a/src/app/modules/admin/board/notice/components/loginlistbyid.component.ts +++ b/src/app/modules/admin/board/notice/components/loginlistbyid.component.ts @@ -33,7 +33,7 @@ import { User } from 'app/modules/admin/member/user/models/user'; import { UserService } from 'app/modules/admin/member/user/services/user.service'; @Component({ - selector: 'notice-registration', + selector: 'notice-view', templateUrl: './registration.component.html', styles: [ /* language=SCSS */ From 8eacb24d1a43f892c62deef40786e91c2f68070f Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 04:48:42 +0000 Subject: [PATCH 09/18] =?UTF-8?q?=EA=B3=A0=EA=B0=9D=EC=84=BC=ED=84=B0=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20page=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customer/components/view.component.html | 2 + .../customer/components/view.component.ts | 183 ++++++++++++++++++ 2 files changed, 185 insertions(+) create mode 100644 src/app/modules/admin/board/customer/components/view.component.html create mode 100644 src/app/modules/admin/board/customer/components/view.component.ts diff --git a/src/app/modules/admin/board/customer/components/view.component.html b/src/app/modules/admin/board/customer/components/view.component.html new file mode 100644 index 0000000..07b309a --- /dev/null +++ b/src/app/modules/admin/board/customer/components/view.component.html @@ -0,0 +1,2 @@ + +
고객센터-상세page
diff --git a/src/app/modules/admin/board/customer/components/view.component.ts b/src/app/modules/admin/board/customer/components/view.component.ts new file mode 100644 index 0000000..82c933b --- /dev/null +++ b/src/app/modules/admin/board/customer/components/view.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'customer-view', + templateUrl: './view.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} From 879fa3ea758976e338d9c3ff5555da677dfb95ba Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 04:50:24 +0000 Subject: [PATCH 10/18] =?UTF-8?q?=EA=B3=A0=EA=B0=9D=EC=84=BC=ED=84=B0?= =?UTF-8?q?=ED=85=9C=ED=94=8C=EB=A6=BF=20=EC=83=81=EC=84=B8=20page=20?= =?UTF-8?q?=EC=98=A4=ED=83=80=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../board/customer-template/components/view.component.html | 4 +++- .../board/customer-template/components/view.component.ts | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/app/modules/admin/board/customer-template/components/view.component.html b/src/app/modules/admin/board/customer-template/components/view.component.html index 49fa156..17da861 100644 --- a/src/app/modules/admin/board/customer-template/components/view.component.html +++ b/src/app/modules/admin/board/customer-template/components/view.component.html @@ -1,2 +1,4 @@ -
고객센터 템플릿 등록
+
+ 고객센터템플릿-상세페이지 +
diff --git a/src/app/modules/admin/board/customer-template/components/view.component.ts b/src/app/modules/admin/board/customer-template/components/view.component.ts index 645b6d8..c5563d4 100644 --- a/src/app/modules/admin/board/customer-template/components/view.component.ts +++ b/src/app/modules/admin/board/customer-template/components/view.component.ts @@ -33,8 +33,8 @@ import { User } from 'app/modules/admin/member/user/models/user'; import { UserService } from 'app/modules/admin/member/user/services/user.service'; @Component({ - selector: 'customer-template-registration', - templateUrl: './registration.component.html', + selector: 'customer-template-view', + templateUrl: './view.component.html', styles: [ /* language=SCSS */ ` From 214ef9482c89f7bcebc8d14b9bc06338c3dbf721 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 04:52:49 +0000 Subject: [PATCH 11/18] =?UTF-8?q?=EA=B3=A0=EA=B0=9D=EC=84=BC=ED=84=B0?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=EB=A1=9C=EA=B7=B8=EC=9D=B8=20page=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/loginlistbyid.component.html | 0 .../components/loginlistbyid.component.ts | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/app/modules/admin/board/{notice => customer}/components/loginlistbyid.component.html (100%) rename src/app/modules/admin/board/{notice => customer}/components/loginlistbyid.component.ts (98%) diff --git a/src/app/modules/admin/board/notice/components/loginlistbyid.component.html b/src/app/modules/admin/board/customer/components/loginlistbyid.component.html similarity index 100% rename from src/app/modules/admin/board/notice/components/loginlistbyid.component.html rename to src/app/modules/admin/board/customer/components/loginlistbyid.component.html diff --git a/src/app/modules/admin/board/notice/components/loginlistbyid.component.ts b/src/app/modules/admin/board/customer/components/loginlistbyid.component.ts similarity index 98% rename from src/app/modules/admin/board/notice/components/loginlistbyid.component.ts rename to src/app/modules/admin/board/customer/components/loginlistbyid.component.ts index a65cd6f..a2742f2 100644 --- a/src/app/modules/admin/board/notice/components/loginlistbyid.component.ts +++ b/src/app/modules/admin/board/customer/components/loginlistbyid.component.ts @@ -33,8 +33,8 @@ import { User } from 'app/modules/admin/member/user/models/user'; import { UserService } from 'app/modules/admin/member/user/services/user.service'; @Component({ - selector: 'notice-view', - templateUrl: './registration.component.html', + selector: 'customer-loginlistbyid', + templateUrl: './loginlistbyid.component.html', styles: [ /* language=SCSS */ ` From 825f8092454d8ff5e79b64ddd095a4078f0c763f Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 05:05:23 +0000 Subject: [PATCH 12/18] =?UTF-8?q?=EC=AA=BD=EC=A7=80=ED=95=A8=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20page=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../message/components/view.component.html | 2 + .../message/components/view.component.ts | 183 ++++++++++++++++++ 2 files changed, 185 insertions(+) create mode 100644 src/app/modules/admin/board/message/components/view.component.html create mode 100644 src/app/modules/admin/board/message/components/view.component.ts diff --git a/src/app/modules/admin/board/message/components/view.component.html b/src/app/modules/admin/board/message/components/view.component.html new file mode 100644 index 0000000..284e4d5 --- /dev/null +++ b/src/app/modules/admin/board/message/components/view.component.html @@ -0,0 +1,2 @@ + +
쪽지함-상세page
diff --git a/src/app/modules/admin/board/message/components/view.component.ts b/src/app/modules/admin/board/message/components/view.component.ts new file mode 100644 index 0000000..74327ac --- /dev/null +++ b/src/app/modules/admin/board/message/components/view.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'message-view', + templateUrl: './view.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} From 9c71427265e2d14d468fb3737fe4acc762404a3b Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 05:32:54 +0000 Subject: [PATCH 13/18] =?UTF-8?q?=ED=8C=9D=EC=97=85=20=EC=83=81=EC=84=B8?= =?UTF-8?q?=20page,=20=ED=8C=9D=EC=97=85=20=EC=88=98=EC=A0=95=20page=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../popup/components/edit.component.html | 2 + .../board/popup/components/edit.component.ts | 183 ++++++++++++++++++ .../components/registration.component.html | 4 +- .../popup/components/view.component.html | 2 + .../board/popup/components/view.component.ts | 183 ++++++++++++++++++ 5 files changed, 371 insertions(+), 3 deletions(-) create mode 100644 src/app/modules/admin/board/popup/components/edit.component.html create mode 100644 src/app/modules/admin/board/popup/components/edit.component.ts create mode 100644 src/app/modules/admin/board/popup/components/view.component.html create mode 100644 src/app/modules/admin/board/popup/components/view.component.ts diff --git a/src/app/modules/admin/board/popup/components/edit.component.html b/src/app/modules/admin/board/popup/components/edit.component.html new file mode 100644 index 0000000..2f11788 --- /dev/null +++ b/src/app/modules/admin/board/popup/components/edit.component.html @@ -0,0 +1,2 @@ + +
팝업 수정
diff --git a/src/app/modules/admin/board/popup/components/edit.component.ts b/src/app/modules/admin/board/popup/components/edit.component.ts new file mode 100644 index 0000000..22434a3 --- /dev/null +++ b/src/app/modules/admin/board/popup/components/edit.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'popup-edit', + templateUrl: './edit.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} diff --git a/src/app/modules/admin/board/popup/components/registration.component.html b/src/app/modules/admin/board/popup/components/registration.component.html index 220f924..b489bd2 100644 --- a/src/app/modules/admin/board/popup/components/registration.component.html +++ b/src/app/modules/admin/board/popup/components/registration.component.html @@ -1,4 +1,2 @@ -
- 고객센터-중복로그인버튼클릭 page -
+
팝업-등록 page
diff --git a/src/app/modules/admin/board/popup/components/view.component.html b/src/app/modules/admin/board/popup/components/view.component.html new file mode 100644 index 0000000..4e4f148 --- /dev/null +++ b/src/app/modules/admin/board/popup/components/view.component.html @@ -0,0 +1,2 @@ + +
팝업-상세page
diff --git a/src/app/modules/admin/board/popup/components/view.component.ts b/src/app/modules/admin/board/popup/components/view.component.ts new file mode 100644 index 0000000..53a6e2d --- /dev/null +++ b/src/app/modules/admin/board/popup/components/view.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'popup-view', + templateUrl: './view.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} From 0b6a91aadfed61da7eb6bb0b35eff67e613becd0 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 05:36:59 +0000 Subject: [PATCH 14/18] =?UTF-8?q?=ED=95=9C=EC=A4=84=EA=B3=B5=EC=A7=80=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20page=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/loginlistbyid.component.html | 4 +- .../components/view.component.html | 2 + .../components/view.component.ts | 183 ++++++++++++++++++ .../components/registration.component.ts | 2 +- 4 files changed, 189 insertions(+), 2 deletions(-) create mode 100644 src/app/modules/admin/board/notice-oneline/components/view.component.html create mode 100644 src/app/modules/admin/board/notice-oneline/components/view.component.ts diff --git a/src/app/modules/admin/board/customer/components/loginlistbyid.component.html b/src/app/modules/admin/board/customer/components/loginlistbyid.component.html index e13f190..ae7ddaa 100644 --- a/src/app/modules/admin/board/customer/components/loginlistbyid.component.html +++ b/src/app/modules/admin/board/customer/components/loginlistbyid.component.html @@ -1,2 +1,4 @@ -
공지사항 등록
+
+ 고객센터-중복로그인 page +
diff --git a/src/app/modules/admin/board/notice-oneline/components/view.component.html b/src/app/modules/admin/board/notice-oneline/components/view.component.html new file mode 100644 index 0000000..79fed21 --- /dev/null +++ b/src/app/modules/admin/board/notice-oneline/components/view.component.html @@ -0,0 +1,2 @@ + +
한줄공지-상세page
diff --git a/src/app/modules/admin/board/notice-oneline/components/view.component.ts b/src/app/modules/admin/board/notice-oneline/components/view.component.ts new file mode 100644 index 0000000..d7f1a89 --- /dev/null +++ b/src/app/modules/admin/board/notice-oneline/components/view.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'notice-oneline-view', + templateUrl: './view.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} diff --git a/src/app/modules/admin/board/popup/components/registration.component.ts b/src/app/modules/admin/board/popup/components/registration.component.ts index a6c0c0c..27b49c9 100644 --- a/src/app/modules/admin/board/popup/components/registration.component.ts +++ b/src/app/modules/admin/board/popup/components/registration.component.ts @@ -33,7 +33,7 @@ import { User } from 'app/modules/admin/member/user/models/user'; import { UserService } from 'app/modules/admin/member/user/services/user.service'; @Component({ - selector: 'notice-registration', + selector: 'popup-registration', templateUrl: './registration.component.html', styles: [ /* language=SCSS */ From 7f9beccc2847e11c349c64be463e07359b7a4867 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 05:38:15 +0000 Subject: [PATCH 15/18] =?UTF-8?q?=EA=B3=B5=EC=A7=80=EC=82=AC=ED=95=AD=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20page=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../notice/components/view.component.html | 2 + .../board/notice/components/view.component.ts | 183 ++++++++++++++++++ .../popup/components/view.component.html | 2 +- 3 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 src/app/modules/admin/board/notice/components/view.component.html create mode 100644 src/app/modules/admin/board/notice/components/view.component.ts diff --git a/src/app/modules/admin/board/notice/components/view.component.html b/src/app/modules/admin/board/notice/components/view.component.html new file mode 100644 index 0000000..4e4f148 --- /dev/null +++ b/src/app/modules/admin/board/notice/components/view.component.html @@ -0,0 +1,2 @@ + +
팝업-상세page
diff --git a/src/app/modules/admin/board/notice/components/view.component.ts b/src/app/modules/admin/board/notice/components/view.component.ts new file mode 100644 index 0000000..67e7c80 --- /dev/null +++ b/src/app/modules/admin/board/notice/components/view.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'notice-view', + templateUrl: './view.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} diff --git a/src/app/modules/admin/board/popup/components/view.component.html b/src/app/modules/admin/board/popup/components/view.component.html index 4e4f148..ce1fb8b 100644 --- a/src/app/modules/admin/board/popup/components/view.component.html +++ b/src/app/modules/admin/board/popup/components/view.component.html @@ -1,2 +1,2 @@ -
팝업-상세page
+
공지사항-상세page
From d3070a0dbaaf6f1ca9d0b1e4aedc41e5bca27ec6 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 05:41:27 +0000 Subject: [PATCH 16/18] =?UTF-8?q?=EC=BD=A4=ED=94=84=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8-=EA=B4=80=EB=A6=AC=EC=9E=90=EC=A7=80?= =?UTF-8?q?=EA=B8=89=ED=9A=8C=EC=88=98=20page=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/pointlist.component.html | 4 + .../components/pointlist.component.ts | 183 ++++++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 src/app/modules/admin/report/comp-log/components/pointlist.component.html create mode 100644 src/app/modules/admin/report/comp-log/components/pointlist.component.ts diff --git a/src/app/modules/admin/report/comp-log/components/pointlist.component.html b/src/app/modules/admin/report/comp-log/components/pointlist.component.html new file mode 100644 index 0000000..35ac5db --- /dev/null +++ b/src/app/modules/admin/report/comp-log/components/pointlist.component.html @@ -0,0 +1,4 @@ + +
+ 콤프사용로그-관리자지급회수버튼-page +
diff --git a/src/app/modules/admin/report/comp-log/components/pointlist.component.ts b/src/app/modules/admin/report/comp-log/components/pointlist.component.ts new file mode 100644 index 0000000..0595cc0 --- /dev/null +++ b/src/app/modules/admin/report/comp-log/components/pointlist.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'comp-log-pointlist', + templateUrl: './pointlist.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} From 3a9d18c11ca2d9d18da52a5346566908ee3e223d Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 05:48:02 +0000 Subject: [PATCH 17/18] =?UTF-8?q?=EB=A8=B8=EB=8B=88=ED=99=9C=EB=8F=99?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8-=EA=B4=80=EB=A6=AC=EC=9E=90&=ED=8C=8C?= =?UTF-8?q?=ED=8A=B8=EB=84=88=EC=A7=80=EA=B8=89=ED=9A=8C=EC=88=98=20page?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/moneyaddsub.component.html | 7 + .../components/moneyaddsub.component.ts | 183 ++++++++++++++++++ 2 files changed, 190 insertions(+) create mode 100644 src/app/modules/admin/report/money-log/components/moneyaddsub.component.html create mode 100644 src/app/modules/admin/report/money-log/components/moneyaddsub.component.ts diff --git a/src/app/modules/admin/report/money-log/components/moneyaddsub.component.html b/src/app/modules/admin/report/money-log/components/moneyaddsub.component.html new file mode 100644 index 0000000..678b526 --- /dev/null +++ b/src/app/modules/admin/report/money-log/components/moneyaddsub.component.html @@ -0,0 +1,7 @@ + +
+ 머니활동로그-관리자지급회수버튼-page +
+
+ 머니활동로그-파트너지급회수버튼-page +
diff --git a/src/app/modules/admin/report/money-log/components/moneyaddsub.component.ts b/src/app/modules/admin/report/money-log/components/moneyaddsub.component.ts new file mode 100644 index 0000000..094b0aa --- /dev/null +++ b/src/app/modules/admin/report/money-log/components/moneyaddsub.component.ts @@ -0,0 +1,183 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, + OnInit, + ViewChild, + ViewEncapsulation, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { + debounceTime, + map, + merge, + Observable, + Subject, + switchMap, + takeUntil, +} from 'rxjs'; +import { fuseAnimations } from '@fuse/animations'; +import { FuseConfirmationService } from '@fuse/services/confirmation'; + +import { User } from 'app/modules/admin/member/user/models/user'; +import { UserService } from 'app/modules/admin/member/user/services/user.service'; + +@Component({ + selector: 'money-log-moneyaddsub', + templateUrl: './moneyaddsub.component.html', + styles: [ + /* language=SCSS */ + ` + .inventory-grid { + grid-template-columns: 48px auto 40px; + + @screen sm { + grid-template-columns: 48px auto 112px 72px; + } + + @screen md { + grid-template-columns: 48px 112px auto 112px 72px; + } + + @screen lg { + grid-template-columns: 48px 112px auto 112px 96px 96px 72px; + } + } + `, + ], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, + animations: fuseAnimations, +}) +export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { + @ViewChild(MatPaginator) private _paginator!: MatPaginator; + @ViewChild(MatSort) private _sort!: MatSort; + + isLoading = false; + searchInputControl = new FormControl(); + selectedProductForm!: FormGroup; + selectedUser?: User; + + private _unsubscribeAll: Subject = new Subject(); + + /** + * Constructor + */ + constructor( + private _changeDetectorRef: ChangeDetectorRef, + private _fuseConfirmationService: FuseConfirmationService, + private _formBuilder: FormBuilder, + private _userService: UserService + ) {} + + // ----------------------------------------------------------------------------------------------------- + // @ Lifecycle hooks + // ----------------------------------------------------------------------------------------------------- + + /** + * On init + */ + ngOnInit(): void { + this.selectedProductForm = this._formBuilder.group({ + id: [''], + signinId: [{ value: '', disabled: true }], + signinPw: [{ value: '' }], + exchangePw: [''], + description: [''], + tags: [[]], + nickname: [{ value: '', disabled: true }], + ownCash: [''], + phoneNumber: [''], + level: [''], + status: [''], + isExcahngeMoney: [''], + bankname: [''], + accountNumber: [''], + accountHolder: [''], + comp: [''], + coupon: [''], + recommender: [{ value: '', disabled: true }], + changeSite: [''], + recommendCount: [''], + hodingGameMoney: [{ value: '0', disabled: true }], + memo: [''], + bacaraRate: [], + rulletRate: [], + dragonRate: [], + etcRate: [], + slotRate: [], + casinoRusingRate: [], + slotRusingRate: [], + }); + + // Get the User + this._userService.user$ + .pipe(takeUntil(this._unsubscribeAll)) + .subscribe((user: User | undefined) => { + if (!user) { + return; + } + this.selectedUser = user; + + this.selectedProductForm.patchValue(user); + // Mark for check + this._changeDetectorRef.markForCheck(); + }); + + /* this.user$ = this._userService.user$; */ + } + + /** + * 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; + } +} From d92ec12e38350558144d3f2614fe868cb8d79ef4 Mon Sep 17 00:00:00 2001 From: JUNG YI DAM Date: Fri, 15 Jul 2022 06:32:06 +0000 Subject: [PATCH 18/18] =?UTF-8?q?page=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/pointlist.component.html | 4 - .../components/pointlist.component.ts | 183 ------------------ .../components/moneyaddsub.component.html | 0 .../components/moneyaddsub.component.ts | 0 4 files changed, 187 deletions(-) delete mode 100644 src/app/modules/admin/report/comp-log/components/pointlist.component.html delete mode 100644 src/app/modules/admin/report/comp-log/components/pointlist.component.ts rename src/app/modules/admin/report/{money-log => daily-partner}/components/moneyaddsub.component.html (100%) rename src/app/modules/admin/report/{money-log => daily-partner}/components/moneyaddsub.component.ts (100%) diff --git a/src/app/modules/admin/report/comp-log/components/pointlist.component.html b/src/app/modules/admin/report/comp-log/components/pointlist.component.html deleted file mode 100644 index 35ac5db..0000000 --- a/src/app/modules/admin/report/comp-log/components/pointlist.component.html +++ /dev/null @@ -1,4 +0,0 @@ - -
- 콤프사용로그-관리자지급회수버튼-page -
diff --git a/src/app/modules/admin/report/comp-log/components/pointlist.component.ts b/src/app/modules/admin/report/comp-log/components/pointlist.component.ts deleted file mode 100644 index 0595cc0..0000000 --- a/src/app/modules/admin/report/comp-log/components/pointlist.component.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { - AfterViewInit, - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - OnDestroy, - OnInit, - ViewChild, - ViewEncapsulation, -} from '@angular/core'; -import { - FormBuilder, - FormControl, - FormGroup, - Validators, -} from '@angular/forms'; -import { MatCheckboxChange } from '@angular/material/checkbox'; -import { MatPaginator } from '@angular/material/paginator'; -import { MatSort } from '@angular/material/sort'; -import { - debounceTime, - map, - merge, - Observable, - Subject, - switchMap, - takeUntil, -} from 'rxjs'; -import { fuseAnimations } from '@fuse/animations'; -import { FuseConfirmationService } from '@fuse/services/confirmation'; - -import { User } from 'app/modules/admin/member/user/models/user'; -import { UserService } from 'app/modules/admin/member/user/services/user.service'; - -@Component({ - selector: 'comp-log-pointlist', - templateUrl: './pointlist.component.html', - styles: [ - /* language=SCSS */ - ` - .inventory-grid { - grid-template-columns: 48px auto 40px; - - @screen sm { - grid-template-columns: 48px auto 112px 72px; - } - - @screen md { - grid-template-columns: 48px 112px auto 112px 72px; - } - - @screen lg { - grid-template-columns: 48px 112px auto 112px 96px 96px 72px; - } - } - `, - ], - encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush, - animations: fuseAnimations, -}) -export class ViewComponent implements OnInit, AfterViewInit, OnDestroy { - @ViewChild(MatPaginator) private _paginator!: MatPaginator; - @ViewChild(MatSort) private _sort!: MatSort; - - isLoading = false; - searchInputControl = new FormControl(); - selectedProductForm!: FormGroup; - selectedUser?: User; - - private _unsubscribeAll: Subject = new Subject(); - - /** - * Constructor - */ - constructor( - private _changeDetectorRef: ChangeDetectorRef, - private _fuseConfirmationService: FuseConfirmationService, - private _formBuilder: FormBuilder, - private _userService: UserService - ) {} - - // ----------------------------------------------------------------------------------------------------- - // @ Lifecycle hooks - // ----------------------------------------------------------------------------------------------------- - - /** - * On init - */ - ngOnInit(): void { - this.selectedProductForm = this._formBuilder.group({ - id: [''], - signinId: [{ value: '', disabled: true }], - signinPw: [{ value: '' }], - exchangePw: [''], - description: [''], - tags: [[]], - nickname: [{ value: '', disabled: true }], - ownCash: [''], - phoneNumber: [''], - level: [''], - status: [''], - isExcahngeMoney: [''], - bankname: [''], - accountNumber: [''], - accountHolder: [''], - comp: [''], - coupon: [''], - recommender: [{ value: '', disabled: true }], - changeSite: [''], - recommendCount: [''], - hodingGameMoney: [{ value: '0', disabled: true }], - memo: [''], - bacaraRate: [], - rulletRate: [], - dragonRate: [], - etcRate: [], - slotRate: [], - casinoRusingRate: [], - slotRusingRate: [], - }); - - // Get the User - this._userService.user$ - .pipe(takeUntil(this._unsubscribeAll)) - .subscribe((user: User | undefined) => { - if (!user) { - return; - } - this.selectedUser = user; - - this.selectedProductForm.patchValue(user); - // Mark for check - this._changeDetectorRef.markForCheck(); - }); - - /* this.user$ = this._userService.user$; */ - } - - /** - * 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; - } -} diff --git a/src/app/modules/admin/report/money-log/components/moneyaddsub.component.html b/src/app/modules/admin/report/daily-partner/components/moneyaddsub.component.html similarity index 100% rename from src/app/modules/admin/report/money-log/components/moneyaddsub.component.html rename to src/app/modules/admin/report/daily-partner/components/moneyaddsub.component.html diff --git a/src/app/modules/admin/report/money-log/components/moneyaddsub.component.ts b/src/app/modules/admin/report/daily-partner/components/moneyaddsub.component.ts similarity index 100% rename from src/app/modules/admin/report/money-log/components/moneyaddsub.component.ts rename to src/app/modules/admin/report/daily-partner/components/moneyaddsub.component.ts