update ux writing

This commit is contained in:
2026-05-04 21:30:05 +03:30
parent ec452bca22
commit d130a83bd4
44 changed files with 66 additions and 73 deletions
@@ -1,7 +1,7 @@
<div class="flex flex-col gap-6">
<app-card-data cardTitle="اطلاعات کاربری" [editable]="false" [(editMode)]="editMode">
<div class="flex flex-col gap-4">
<div class="grid grid-cols-3 gap-4 items-center">
<div class="listKeyValue">
<app-key-value label="نام کاربری" [value]="account()?.account?.username" />
<app-key-value label="نقش" [value]="account()?.role" />
<app-key-value label="وضعیت" [value]="account()?.account?.status" />
@@ -25,10 +25,10 @@ export class ConsumerAccountListComponent extends AbstractList<IConsumerAccountR
type: 'nested',
nestedOption: { path: 'account.username' },
},
{ field: 'role', header: 'نوع حساب' },
{ field: 'role', header: 'نوع حساب', type: 'nested', nestedOption: { path: 'role.translate' } },
{
field: 'pos',
header: 'پایانه‌ی مرتبط',
header: 'پایانه‌',
customDataModel(item: IConsumerAccountResponse) {
if (item.pos) {
return `${item.pos.name} (${item.pos.complex.name} - ${item.pos.complex.business_activity.name})`;
@@ -40,7 +40,7 @@ export class ConsumerAccountListComponent extends AbstractList<IConsumerAccountR
field: 'status',
header: 'وضعیت',
type: 'nested',
nestedOption: { path: 'account.status' },
nestedOption: { path: 'account.status.translate' },
},
// {
// field: 'created_at',
@@ -25,7 +25,6 @@ export class ConsumerBusinessActivitiesComponent extends AbstractList<IBusinessA
@Input({ required: true }) consumerId!: string;
@Input() fullHeight?: boolean;
@Input() header: IColumn[] = [
{ field: 'id', header: 'شناسه', type: 'id' },
{ field: 'name', header: 'عنوان' },
{ field: 'guild', header: 'صنف', type: 'nested', nestedOption: { path: 'guild.name' } },
{ field: 'economic_code', header: 'کد اقتصادی' },
@@ -42,15 +41,10 @@ export class ConsumerBusinessActivitiesComponent extends AbstractList<IBusinessA
},
{
field: 'license_info',
header: 'انقضای مجوز',
header: 'انقضا مجوز',
type: 'nested',
nestedOption: { path: 'license_info.expires_at', type: 'date' },
},
{
field: 'created_at',
header: 'تاریخ ایجاد',
type: 'date',
},
];
private readonly service = inject(PartnerConsumerBusinessActivitiesService);
@@ -10,7 +10,7 @@ export const partnerConsumersNamedRoutes: NamedRoutes<TConsumersRouteNames> = {
path: 'consumers',
loadComponent: () => import('../../views/list.component').then((m) => m.ConsumersComponent),
meta: {
title: 'مشتریان',
title: 'مشتریها',
pagePath: () => '/partner/consumers',
},
},
@@ -1,10 +1,10 @@
<div class="flex flex-col gap-6">
<app-card-data cardTitle="اطلاعات فعالیت اقتصادی" [editable]="true" [(editMode)]="editMode">
<ng-template #moreActions>
<button pButton outlined (click)="showAccountsChargeDialog()">افزایش محدودیت کاربر</button>
<button pButton outlined (click)="showAccountsChargeDialog()">شارژ کاربر</button>
</ng-template>
<div class="flex flex-col gap-4">
<div class="grid grid-cols-3 gap-4 items-center">
<div class="listKeyValue">
<app-key-value label="عنوان" [value]="businessActivity()?.name" />
<app-key-value label="کد اقتصادی" [value]="businessActivity()?.economic_code" />
<app-key-value label="صنف" [value]="businessActivity()?.guild?.name" />
@@ -1,7 +1,7 @@
<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">
<div class="listKeyValue">
<app-key-value label="عنوان" [value]="complex()?.name" />
<app-key-value label="کد شعبه" [value]="complex()?.branch_code" />
<app-key-value label="آدرس" [value]="complex()?.address" />
@@ -1,5 +1,5 @@
<app-page-data-list
pageTitle="مدیریت مشتریان"
pageTitle="لیست مشتریها"
[addNewCtaLabel]="'افزودن مشتری جدید'"
[columns]="columns"
[showAdd]="true"
@@ -12,11 +12,7 @@ import { ConsumersService } from '../services/main.service';
@Component({
selector: 'partner-consumers',
templateUrl: './list.component.html',
imports: [
PageDataListComponent,
ConsumerUserFormDialogComponent,
CreateConsumerWrapperComponent,
],
imports: [PageDataListComponent, ConsumerUserFormDialogComponent, CreateConsumerWrapperComponent],
})
export class ConsumersComponent extends AbstractList<IPartnerConsumerResponse> {
private readonly service = inject(ConsumersService);
@@ -25,9 +21,9 @@ export class ConsumersComponent extends AbstractList<IPartnerConsumerResponse> {
override setColumns(): void {
this.columns = [
{ field: 'id', header: 'شناسه', type: 'id' },
{ field: 'name', header: 'نام' },
{ field: 'business_counts', header: 'تعداد فعالیت‌های اقتصادی فعال' },
{ field: 'type', header: 'نوع', type: 'nested', nestedOption: { path: 'type.translate' } },
{ field: 'business_counts', header: 'تعداد فعالیت‌ اقتصادی فعال' },
{
field: 'created_at',
@@ -1,7 +1,7 @@
<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">
<div class="listKeyValue">
<app-key-value label="عنوان" [value]="pos()?.name" />
</div>
</div>
@@ -2,23 +2,22 @@
<app-card-data cardTitle="اطلاعات مشتری" [editable]="true" [(editMode)]="editMode">
<ng-template #moreActions> </ng-template>
<div class="flex flex-col gap-4">
<div class="grid grid-cols-3 gap-4 items-center">
<div class="listKeyValue">
<app-key-value label="نام مشتری" [value]="consumer()?.name" />
<app-key-value label="وضعیت" [value]="consumer()?.status?.translate" />
<app-key-value label="نوع مشتری" [value]="consumer()?.type?.translate" />
@if (consumer()?.type?.value === "LEGAL") {
<app-key-value label="شناسه ملی" [value]="consumer()?.legal?.registration_code" />
} @else {
<app-key-value label="شماره موبایل" [value]="consumer()?.individual?.mobile_number" />
<app-key-value label="کد ملی" [value]="consumer()?.individual?.national_code" />
}
<app-key-value label="وضعیت" [value]="consumer()?.status?.translate" />
</div>
</div>
</app-card-data>
<partner-consumer-account-list [consumerId]="consumerId()" />
<partner-consumer-businessActivities-list [consumerId]="consumerId()" />
<partner-consumer-account-list [consumerId]="consumerId()" />
<partner-consumer-form
[(visible)]="editMode"
@@ -1,5 +1,5 @@
<app-page-data-list
[pageTitle]="'لیست مشتریان'"
[pageTitle]="'لیست مشتریها'"
[columns]="columns"
emptyPlaceholderTitle="مشتری‌ای یافت نشد"
[items]="items()"
@@ -9,7 +9,7 @@ export const partnerCustomersNamedRoutes: NamedRoutes<TPartnerCustomersRouteName
loadComponent: () =>
import('../../views/list.component').then((m) => m.PartnerCustomersComponent),
meta: {
title: 'مشتریان',
title: 'مشتریها',
pagePath: () => 'partner/customers',
},
},
@@ -1,7 +1,7 @@
<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">
<div class="listKeyValue">
<app-key-value label="عنوان" [value]="customer()?.first_name" />
</div>
</div>
@@ -1,6 +1,7 @@
<p-card class="border border-surface-border bg-surface-card rounded-2xl p-4 text-text-color">
<div class="text-center w-full flex items-center justify-center gap-1">
<div class="w-full flex items-center justify-between gap-1">
<span class="text-xl font-semibold">وضعیت {{ title }}</span>
<p-badge [value]="`تعداد کل: ${total}`" severity="secondary" size="large"></p-badge>
</div>
<hr class="mb-6!" />
<div class="grid grid-cols-3 gap-2">
@@ -1,10 +1,11 @@
import { Component, Input } from '@angular/core';
import { Badge } from 'primeng/badge';
import { Card } from 'primeng/card';
@Component({
selector: 'partner-license-info-template',
templateUrl: './license-info-template.component.html',
imports: [Card],
imports: [Card, Badge],
})
export class PartnerLicenseInfoTemplateComponent {
@Input({ required: true }) title!: string;
@@ -1,5 +1,5 @@
<app-page-data-list
[pageTitle]="'مدیریت لایسنس‌ها'"
[pageTitle]="'لیست لایسنس‌ها'"
[columns]="columns"
emptyPlaceholderTitle="تا به حال لایسنسی نفروخته‌اید."
[currentPage]="responseMetaData()?.page"