create consumer pos list page

This commit is contained in:
2026-04-14 15:56:32 +03:30
parent 9eb5c35285
commit 28575bd3d1
31 changed files with 502 additions and 32 deletions
@@ -1,9 +1,10 @@
// import { CatalogRolesComponent } from '@/shared/catalog/roles';
import { CONSUMER_COMPONENTS_CONST } from '@/domains/consumer/constants';
import { AbstractFormDialog } from '@/shared/abstractClasses';
import { InputComponent } from '@/shared/components';
import { FormFooterActionsComponent } from '@/shared/components/formFooterActions/form-footer-actions.component';
import { Component, inject, Input } from '@angular/core';
import { ReactiveFormsModule, Validators } from '@angular/forms';
import { ReactiveFormsModule } from '@angular/forms';
import { Dialog } from 'primeng/dialog';
import { IPosRequest, IPosResponse } from '../../models';
import { ConsumerPosesService } from '../../services/poses.service';
@@ -20,13 +21,9 @@ export class ConsumerPosFormComponent extends AbstractFormDialog<IPosRequest, IP
@Input({ required: true }) complexId!: string;
@Input({ required: true }) posId!: string;
initForm = () => {
const form = this.fb.group({
name: [this.initialValues?.name || '', [Validators.required]],
});
return form;
};
initForm() {
return CONSUMER_COMPONENTS_CONST.pos.initForm(this.fb, this.initialValues);
}
form = this.initForm();
@@ -1,4 +1,5 @@
// import { CatalogRoleTagComponent } from '@/shared/catalog/roles';
import { CONSUMER_COMPONENTS_CONST } from '@/domains/consumer/constants';
import { AbstractList } from '@/shared/abstractClasses/abstract-list';
import {
IColumn,
@@ -20,20 +21,7 @@ export class ConsumerPosesComponent extends AbstractList<IPosResponse> {
@Input({ required: true }) businessId!: string;
@Input({ required: true }) complexId!: string;
@Input() fullHeight?: boolean;
@Input() header: IColumn[] = [
{ field: 'id', header: 'شناسه', type: 'id' },
{ field: 'name', header: 'عنوان' },
{ field: 'serial', header: 'شماره سریال' },
{ field: 'device', header: 'دستگاه', type: 'nested', nestedPath: 'device.name' },
{ field: 'pos_type', header: 'نوع دستگاه' },
{ field: 'provider', header: 'ارایه‌دهنده', type: 'nested', nestedPath: 'provider.name' },
{ field: 'status', header: 'وضعیت' },
{
field: 'created_at',
header: 'تاریخ ایجاد',
type: 'date',
},
];
@Input() header: IColumn[] = CONSUMER_COMPONENTS_CONST.pos.columns;
private readonly service = inject(ConsumerPosesService);
private readonly router = inject(Router);
@@ -10,7 +10,7 @@ export const consumerPosesNamedRoutes: NamedRoutes<TPosesRouteNames> = {
poses: {
path: 'poses',
loadComponent: () =>
import('../../views/poses/list.component').then((m) => m.SuperAdminUserPosesComponent),
import('../../views/poses/list.component').then((m) => m.ConsumerPosListPageComponent),
// @ts-ignore
meta: {
title: 'پایانه‌های فروش',
@@ -20,7 +20,7 @@ export const consumerPosesNamedRoutes: NamedRoutes<TPosesRouteNames> = {
pos: {
path: 'poses/:posId',
loadComponent: () =>
import('../../views/poses/single.component').then((m) => m.SuperAdminUserPosComponent),
import('../../views/poses/single.component').then((m) => m.ConsumerComplexPosPageComponent),
// @ts-ignore
meta: {
title: 'پایانه‌ی فروش',
@@ -9,11 +9,11 @@ import { BusinessActivityStore } from '../../store/businessActivity.store';
import { ConsumerComplexStore } from '../../store/complex.store';
@Component({
selector: 'superAdmin-user-poses',
selector: 'consumer-complex-pos-list-page',
templateUrl: './list.component.html',
imports: [ConsumerPosesComponent],
})
export class SuperAdminUserPosesComponent {
export class ConsumerPosListPageComponent {
private readonly route = inject(ActivatedRoute);
private readonly breadcrumbService = inject(BreadcrumbService);
private readonly businessStore = inject(BusinessActivityStore);
@@ -13,7 +13,7 @@ import { ConsumerComplexStore } from '../../store/complex.store';
import { PosStore } from '../../store/pos.store';
@Component({
selector: 'superAdmin-user-pos',
selector: 'consumer--complex-pos-page',
templateUrl: './single.component.html',
imports: [
AppCardComponent,
@@ -23,7 +23,7 @@ import { PosStore } from '../../store/pos.store';
ConsumerSalesInvoicesComponent,
],
})
export class SuperAdminUserPosComponent {
export class ConsumerComplexPosPageComponent {
private readonly businessStore = inject(BusinessActivityStore);
private readonly complexStore = inject(ConsumerComplexStore);
private readonly store = inject(PosStore);