update superAdmin users business

This commit is contained in:
2026-03-14 16:26:22 +03:30
parent 9bfbef6f64
commit 20be653499
126 changed files with 2891 additions and 169 deletions
@@ -0,0 +1 @@
export * from './list.component';
@@ -0,0 +1 @@
<superAdmin-user-businessActivities-list [userId]="userId()" />
@@ -0,0 +1,43 @@
// import { CatalogRoleTagComponent } from '@/shared/catalog/roles';
import { BreadcrumbService } from '@/core/services';
import pageParamsUtils from '@/utils/page-params.utils';
import { Component, computed, inject, signal } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { UserBusinessActivitiesComponent } from '../../components/businessActivities/list.component';
import { usersNamedRoutes } from '../../constants';
import { superAdminUserBusinessActivitiesNamedRoutes } from '../../constants/routes/businessActivities';
import { UserStore } from '../../store/user.store';
@Component({
selector: 'superAdmin-user-businessActivities',
templateUrl: './list.component.html',
imports: [UserBusinessActivitiesComponent],
})
export class SuperAdminUserBusinessActivitiesComponent {
private readonly route = inject(ActivatedRoute);
private readonly breadcrumbService = inject(BreadcrumbService);
private readonly userStore = inject(UserStore);
pageParams = computed(() => pageParamsUtils(this.route));
userId = signal<string>(this.pageParams()['userId']);
ngOnInit() {
this.setBreadcrumb();
}
setBreadcrumb() {
this.breadcrumbService.setItems([
{
...usersNamedRoutes.users.meta,
routerLink: usersNamedRoutes.users.meta.pagePath!(),
},
{
title: this.userStore.entity()?.fullname,
routerLink: usersNamedRoutes.user.meta.pagePath!(this.userId()),
},
{
title: superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta.title,
},
]);
}
}
@@ -0,0 +1,21 @@
<div class="flex flex-col gap-6">
<app-card-data cardTitle="اطلاعات فعالیت اقتصادی" [editable]="true" [(editMode)]="editMode">
<div class="flex flex-col gap-4">
<div class="grid grid-cols-3 gap-4 items-center">
<app-key-value label="عنوان" [value]="businessActivity()?.name" />
<app-key-value label="صنف" [value]="businessActivity()?.guild?.name" />
</div>
</div>
</app-card-data>
<superAdmin-user-complexes-list [userId]="userId()" [businessId]="businessId()" />
<superAdmin-user-businessActivities-form
[(visible)]="editMode"
[editMode]="true"
[userId]="userId()"
[businessActivityId]="businessId()"
[initialValues]="businessActivity() || undefined"
(onSubmit)="getData()"
/>
</div>
@@ -0,0 +1,76 @@
import { BreadcrumbService } from '@/core/services';
import { AppCardComponent, KeyValueComponent } from '@/shared/components';
import pageParamsUtils from '@/utils/page-params.utils';
import { Component, computed, effect, inject, signal } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { UserBusinessActivitiesFormComponent } from '../../components/businessActivities/form.component';
import { UserComplexesComponent } from '../../components/complexes/list.component';
import { usersNamedRoutes } from '../../constants';
import { superAdminUserBusinessActivitiesNamedRoutes } from '../../constants/routes/businessActivities';
import { BusinessActivityStore } from '../../store/businessActivity.store';
import { UserStore } from '../../store/user.store';
@Component({
selector: 'superAdmin-user-businessActivity',
templateUrl: './single.component.html',
imports: [
AppCardComponent,
KeyValueComponent,
UserBusinessActivitiesFormComponent,
UserComplexesComponent,
],
})
export class SuperAdminUserBusinessActivityComponent {
private readonly route = inject(ActivatedRoute);
private readonly breadcrumbService = inject(BreadcrumbService);
private readonly store = inject(BusinessActivityStore);
private readonly userStore = inject(UserStore);
pageParams = computed(() => pageParamsUtils(this.route));
readonly userId = signal<string>(this.pageParams()['userId']!);
readonly businessId = signal<string>(this.pageParams()['businessActivityId']!);
editMode = signal<boolean>(false);
readonly loading = computed(() => this.store.loading());
readonly businessActivity = computed(() => this.store.entity());
constructor() {
effect(() => {
if (this.businessActivity()?.id) {
console.log(this.businessActivity()?.id);
this.setBreadcrumb();
}
});
}
getData() {
this.store.getData(this.userId(), this.businessId());
}
setBreadcrumb() {
this.breadcrumbService.setItems([
{
...usersNamedRoutes.users.meta,
routerLink: usersNamedRoutes.users.meta.pagePath!(),
},
{
title: this.userStore.entity()?.fullname,
routerLink: usersNamedRoutes.user.meta.pagePath!(this.userId()),
},
{
...superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta,
routerLink: superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta.pagePath!(
this.userId(),
),
},
{
title: this.businessActivity()?.name,
routerLink: superAdminUserBusinessActivitiesNamedRoutes.businessActivity.meta.pagePath!(
this.userId(),
this.businessId(),
),
},
]);
}
}
@@ -0,0 +1 @@
export * from './list.component';
@@ -0,0 +1 @@
<superAdmin-user-complexes-list [userId]="userId()" [businessId]="businessId()" />
@@ -0,0 +1,64 @@
// import { CatalogRoleTagComponent } from '@/shared/catalog/roles';
import { BreadcrumbService } from '@/core/services';
import pageParamsUtils from '@/utils/page-params.utils';
import { Component, computed, inject, signal } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { UserComplexesComponent } from '../../components/complexes/list.component';
import { usersNamedRoutes } from '../../constants';
import { superAdminUserBusinessActivitiesNamedRoutes } from '../../constants/routes/businessActivities';
import { superAdminUserComplexesNamedRoutes } from '../../constants/routes/complexes';
import { BusinessActivityStore } from '../../store/businessActivity.store';
import { UserStore } from '../../store/user.store';
@Component({
selector: 'superAdmin-user-complexes',
templateUrl: './list.component.html',
imports: [UserComplexesComponent],
})
export class SuperAdminUserComplexesComponent {
private readonly route = inject(ActivatedRoute);
private readonly breadcrumbService = inject(BreadcrumbService);
private readonly userStore = inject(UserStore);
private readonly businessStore = inject(BusinessActivityStore);
pageParams = computed(() => pageParamsUtils(this.route));
userId = signal<string>(this.pageParams()['userId']);
businessId = signal<string>(this.pageParams()['businessActivityId']);
ngAfterViewInit() {
this.setBreadcrumb();
}
setBreadcrumb() {
this.breadcrumbService.setItems([
{
...usersNamedRoutes.users.meta,
routerLink: usersNamedRoutes.users.meta.pagePath!(),
},
{
title: this.userStore.entity()?.fullname,
routerLink: usersNamedRoutes.user.meta.pagePath!(this.userId()),
},
{
title: superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta.title,
routerLink: superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta.pagePath!(
this.userId(),
),
},
{
title: this.businessStore.entity()?.name,
routerLink: superAdminUserBusinessActivitiesNamedRoutes.businessActivity.meta.pagePath!(
this.userId(),
this.businessId(),
),
},
{
title: superAdminUserComplexesNamedRoutes.complexes.meta.title,
routerLink: superAdminUserComplexesNamedRoutes.complexes.meta.pagePath!(
this.userId(),
this.businessId(),
),
},
]);
}
}
@@ -0,0 +1,23 @@
<div class="flex flex-col gap-6">
<app-card-data cardTitle="اطلاعات فروشگاه" [editable]="true" [(editMode)]="editMode">
<div class="flex flex-col gap-4">
<div class="grid grid-cols-3 gap-4 items-center">
<app-key-value label="عنوان" [value]="complex()?.name" />
<app-key-value label="کد مالیاتی" [value]="complex()?.tax_id" />
<app-key-value label="آدرس" [value]="complex()?.address" />
</div>
</div>
</app-card-data>
<superAdmin-user-poses-list [userId]="userId()" [businessId]="businessId()" [complexId]="complexId()" />
<superAdmin-user-complex-form
[(visible)]="editMode"
[editMode]="true"
[userId]="userId()"
[businessActivityId]="businessId()"
[complexId]="complexId()"
[initialValues]="complex() || undefined"
(onSubmit)="getData()"
/>
</div>
@@ -0,0 +1,90 @@
import { BreadcrumbService } from '@/core/services';
import { AppCardComponent, KeyValueComponent } from '@/shared/components';
import pageParamsUtils from '@/utils/page-params.utils';
import { Component, computed, effect, inject, signal } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { UserComplexFormComponent } from '../../components/complexes/form.component';
import { UserPosesComponent } from '../../components/poses/list.component';
import { usersNamedRoutes } from '../../constants';
import { superAdminUserBusinessActivitiesNamedRoutes } from '../../constants/routes/businessActivities';
import { superAdminUserComplexesNamedRoutes } from '../../constants/routes/complexes';
import { BusinessActivityStore } from '../../store/businessActivity.store';
import { ComplexStore } from '../../store/complex.store';
import { UserStore } from '../../store/user.store';
@Component({
selector: 'superAdmin-user-complex',
templateUrl: './single.component.html',
imports: [AppCardComponent, KeyValueComponent, UserComplexFormComponent, UserPosesComponent],
})
export class SuperAdminUserComplexComponent {
private readonly route = inject(ActivatedRoute);
private readonly breadcrumbService = inject(BreadcrumbService);
private readonly store = inject(ComplexStore);
private readonly userStore = inject(UserStore);
private readonly businessStore = inject(BusinessActivityStore);
pageParams = computed(() => pageParamsUtils(this.route));
readonly userId = signal<string>(this.pageParams()['userId']!);
readonly businessId = signal<string>(this.pageParams()['businessActivityId']!);
readonly complexId = signal<string>(this.pageParams()['complexId']!);
editMode = signal<boolean>(false);
readonly loading = computed(() => this.store.loading());
readonly complex = computed(() => this.store.entity());
constructor() {
effect(() => {
if (this.complex()?.id) {
this.setBreadcrumb();
}
});
}
getData() {
this.store.getData(this.userId(), this.businessId(), this.complexId());
}
setBreadcrumb() {
this.breadcrumbService.setItems([
{
...usersNamedRoutes.users.meta,
routerLink: usersNamedRoutes.users.meta.pagePath!(),
},
{
title: this.userStore.entity()?.fullname,
routerLink: usersNamedRoutes.user.meta.pagePath!(this.userId()),
},
{
...superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta,
routerLink: superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta.pagePath!(
this.userId(),
),
},
{
title: this.businessStore.entity()?.name,
routerLink: superAdminUserBusinessActivitiesNamedRoutes.businessActivity.meta.pagePath!(
this.userId(),
this.businessId(),
),
},
{
...superAdminUserComplexesNamedRoutes.complexes.meta,
routerLink: superAdminUserComplexesNamedRoutes.complexes.meta.pagePath!(
this.userId(),
this.businessId(),
),
},
{
title: this.complex()?.name,
routerLink: superAdminUserComplexesNamedRoutes.complex.meta.pagePath!(
this.userId(),
this.businessId(),
this.complexId(),
),
},
]);
}
}
@@ -0,0 +1 @@
export * from './list.component';
@@ -0,0 +1 @@
<superAdmin-user-poses-list [userId]="userId()" [businessId]="businessId()" [complexId]="complexId()" />
@@ -0,0 +1,86 @@
// import { CatalogRoleTagComponent } from '@/shared/catalog/roles';
import { BreadcrumbService } from '@/core/services';
import pageParamsUtils from '@/utils/page-params.utils';
import { Component, computed, inject, signal } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { UserPosesComponent } from '../../components/poses/list.component';
import { usersNamedRoutes } from '../../constants';
import { superAdminUserBusinessActivitiesNamedRoutes } from '../../constants/routes/businessActivities';
import { superAdminUserComplexesNamedRoutes } from '../../constants/routes/complexes';
import { superAdminUserPosesNamedRoutes } from '../../constants/routes/poses';
import { BusinessActivityStore } from '../../store/businessActivity.store';
import { ComplexStore } from '../../store/complex.store';
import { UserStore } from '../../store/user.store';
@Component({
selector: 'superAdmin-user-poses',
templateUrl: './list.component.html',
imports: [UserPosesComponent],
})
export class SuperAdminUserPosesComponent {
private readonly route = inject(ActivatedRoute);
private readonly breadcrumbService = inject(BreadcrumbService);
private readonly userStore = inject(UserStore);
private readonly businessStore = inject(BusinessActivityStore);
private readonly complexStore = inject(ComplexStore);
pageParams = computed(() => pageParamsUtils(this.route));
userId = signal<string>(this.pageParams()['userId']);
businessId = signal<string>(this.pageParams()['businessActivityId']);
complexId = signal<string>(this.pageParams()['complexId']);
ngOnInit() {
this.setBreadcrumb();
}
setBreadcrumb() {
this.breadcrumbService.setItems([
{
...usersNamedRoutes.users.meta,
routerLink: usersNamedRoutes.users.meta.pagePath!(),
},
{
title: this.userStore.entity()?.fullname,
routerLink: usersNamedRoutes.user.meta.pagePath!(this.userId()),
},
{
title: superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta.title,
routerLink: superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta.pagePath!(
this.userId(),
),
},
{
title: this.businessStore.entity()?.name,
routerLink: superAdminUserBusinessActivitiesNamedRoutes.businessActivity.meta.pagePath!(
this.userId(),
this.businessId(),
),
},
{
title: superAdminUserComplexesNamedRoutes.complexes.meta.title,
routerLink: superAdminUserComplexesNamedRoutes.complexes.meta.pagePath!(
this.userId(),
this.businessId(),
),
},
{
title: this.complexStore.entity()?.name,
routerLink: superAdminUserComplexesNamedRoutes.complex.meta.pagePath!(
this.userId(),
this.businessId(),
this.complexId(),
),
},
{
title: superAdminUserPosesNamedRoutes.poses.meta.title,
routerLink: superAdminUserPosesNamedRoutes.poses.meta.pagePath!(
this.userId(),
this.businessId(),
this.complexId(),
),
},
]);
}
}
@@ -0,0 +1,20 @@
<div class="flex flex-col gap-6">
<app-card-data cardTitle="اطلاعات پایانه‌ی فروش" [editable]="true" [(editMode)]="editMode">
<div class="flex flex-col gap-4">
<div class="grid grid-cols-3 gap-4 items-center">
<app-key-value label="عنوان" [value]="pos()?.name" />
</div>
</div>
</app-card-data>
<superAdmin-user-pos-form
[(visible)]="editMode"
[editMode]="true"
[userId]="userId()"
[businessActivityId]="businessId()"
[complexId]="complexId()"
[posId]="posId()"
[initialValues]="pos() || undefined"
(onSubmit)="getData()"
/>
</div>
@@ -0,0 +1,112 @@
import { BreadcrumbService } from '@/core/services';
import { AppCardComponent, KeyValueComponent } from '@/shared/components';
import pageParamsUtils from '@/utils/page-params.utils';
import { Component, computed, effect, inject, signal } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { UserPosFormComponent } from '../../components/poses/form.component';
import { usersNamedRoutes } from '../../constants';
import { superAdminUserBusinessActivitiesNamedRoutes } from '../../constants/routes/businessActivities';
import { superAdminUserComplexesNamedRoutes } from '../../constants/routes/complexes';
import { superAdminUserPosesNamedRoutes } from '../../constants/routes/poses';
import { BusinessActivityStore } from '../../store/businessActivity.store';
import { ComplexStore } from '../../store/complex.store';
import { PosStore } from '../../store/pos.store';
import { UserStore } from '../../store/user.store';
@Component({
selector: 'superAdmin-user-pos',
templateUrl: './single.component.html',
imports: [AppCardComponent, KeyValueComponent, UserPosFormComponent],
})
export class SuperAdminUserPosComponent {
private readonly userStore = inject(UserStore);
private readonly businessStore = inject(BusinessActivityStore);
private readonly complexStore = inject(ComplexStore);
private readonly store = inject(PosStore);
private readonly route = inject(ActivatedRoute);
private readonly breadcrumbService = inject(BreadcrumbService);
pageParams = computed(() => pageParamsUtils(this.route));
readonly userId = signal<string>(this.pageParams()['userId']!);
readonly businessId = signal<string>(this.pageParams()['businessActivityId']!);
readonly complexId = signal<string>(this.pageParams()['complexId']!);
readonly posId = signal<string>(this.pageParams()['posId']!);
editMode = signal<boolean>(false);
constructor() {
effect(() => {
if (this.pos()?.id) {
this.setBreadcrumb();
}
});
}
readonly loading = computed(() => this.store.loading());
readonly pos = computed(() => this.store.entity());
getData() {
this.store.getData(this.businessId(), this.complexId(), this.posId());
}
setBreadcrumb() {
this.breadcrumbService.setItems([
{
...usersNamedRoutes.users.meta,
routerLink: usersNamedRoutes.users.meta.pagePath!(),
},
{
title: this.userStore.entity()?.fullname,
routerLink: usersNamedRoutes.user.meta.pagePath!(this.userId()),
},
{
title: superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta.title,
routerLink: superAdminUserBusinessActivitiesNamedRoutes.businessActivities.meta.pagePath!(
this.userId(),
),
},
{
title: this.businessStore.entity()?.name,
routerLink: superAdminUserBusinessActivitiesNamedRoutes.businessActivity.meta.pagePath!(
this.userId(),
this.businessId(),
),
},
{
title: superAdminUserComplexesNamedRoutes.complexes.meta.title,
routerLink: superAdminUserComplexesNamedRoutes.complexes.meta.pagePath!(
this.userId(),
this.businessId(),
),
},
{
title: this.complexStore.entity()?.name,
routerLink: superAdminUserComplexesNamedRoutes.complex.meta.pagePath!(
this.userId(),
this.businessId(),
this.complexId(),
),
},
{
title: superAdminUserPosesNamedRoutes.poses.meta.title,
routerLink: superAdminUserPosesNamedRoutes.poses.meta.pagePath!(
this.userId(),
this.businessId(),
this.complexId(),
),
},
{
title: this.pos()?.name,
routerLink: superAdminUserPosesNamedRoutes.pos.meta.pagePath!(
this.userId(),
this.businessId(),
this.complexId(),
this.posId(),
),
},
]);
}
}
@@ -8,6 +8,7 @@
</div>
</app-card-data>
<superAdmin-user-businessActivities-list [userId]="userId()" />
<superAdmin-user-account-list [userId]="userId()" />
<superAdmin-user-form
@@ -3,6 +3,7 @@ import { AppCardComponent, KeyValueComponent } from '@/shared/components';
import { Component, computed, effect, inject, signal } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { UsersComponent } from '../components/accounts/list.component';
import { UserBusinessActivitiesComponent } from '../components/businessActivities/list.component';
import { UserAccountFormComponent } from '../components/form.component';
import { usersNamedRoutes } from '../constants';
import { UserStore } from '../store/user.store';
@@ -10,7 +11,13 @@ import { UserStore } from '../store/user.store';
@Component({
selector: 'superAdmin-user',
templateUrl: './single.component.html',
imports: [AppCardComponent, KeyValueComponent, UserAccountFormComponent, UsersComponent],
imports: [
AppCardComponent,
KeyValueComponent,
UserAccountFormComponent,
UsersComponent,
UserBusinessActivitiesComponent,
],
})
export class UserComponent {
private readonly store = inject(UserStore);
@@ -31,13 +38,8 @@ export class UserComponent {
});
}
async getData() {
await this.store.getData(this.userId());
this.setBreadcrumb();
}
ngOnInit() {
this.getData();
getData() {
this.store.getData(this.userId());
}
setBreadcrumb() {
@@ -48,6 +50,7 @@ export class UserComponent {
},
{
title: this.user()?.fullname,
routerLink: usersNamedRoutes.user.meta.pagePath!(this.userId()),
},
]);
}