update many things

This commit is contained in:
2026-05-04 20:02:10 +03:30
parent 797aecd489
commit ec452bca22
72 changed files with 1375 additions and 606 deletions
@@ -37,7 +37,7 @@ export const SUPER_ADMIN_MENU_ITEMS = [
routerLink: ['/super_admin/guilds'],
},
{
label: 'شناسه‌ی کالاها',
label: 'شناسه کالاها',
icon: 'pi pi-fw pi-good',
routerLink: [stockKeepingUnitsNamedRoutes.stockKeepingUnits.meta.pagePath!()],
},
@@ -25,7 +25,7 @@
name="license.starts_at"
hint="مدت زمان لایسنس‌ها ۱ ساله هستند."
/> -->
<!-- <uikit-datepicker label="تاریخ انقضای لایسنس" [control]="form.controls.license.controls.expires_at" name="license.expires_at" /> -->
<!-- <uikit-datepicker label="تاریخ انقضا لایسنس" [control]="form.controls.license.controls.expires_at" name="license.expires_at" /> -->
<!-- <app-partner-select label="شریک تجاری" [control]="form.controls.license.controls.partner_id" /> -->
}
@@ -13,7 +13,7 @@
name="starts_at"
hint="مدت زمان لایسنس‌ها ۱ ساله هستند."
/>
<!-- <uikit-datepicker label="تاریخ انقضای لایسنس" [control]="form.controls.expires_at" name="expires_at" /> -->
<!-- <uikit-datepicker label="تاریخ انقضا لایسنس" [control]="form.controls.expires_at" name="expires_at" /> -->
<app-partner-select label="شریک تجاری" [control]="form.controls.partner_id" [showClear]="true" />
<app-form-footer-actions [submitLabel]="'ذخیره'" [loading]="submitLoading()" (onCancel)="close()" />
</form>
@@ -37,7 +37,7 @@ export class ConsumersComponent extends AbstractList<IAdminConsumerResponse> {
},
// {
// field: 'license_expires_at',
// header: 'تاریخ انقضای لایسنس',
// header: 'تاریخ انقضا لایسنس',
// customDataModel(item) {
// if (item.license_info) {
// return formatJalali(item.license_info.expires_at);
@@ -1,5 +1,5 @@
<div class="flex flex-col gap-6">
<app-card-data cardTitle="اطلاعات پایانه‌ی فروش" [editable]="true" [(editMode)]="editMode">
<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" />
@@ -15,7 +15,7 @@
/>
}
<app-input label="عنوان" [control]="form.controls.name" name="name" />
<field-sku label="شناسه‌ی کالا" [control]="form.controls.sku_id" name="sku_id" />
<field-sku label="شناسه کالا" [control]="form.controls.sku_id" name="sku_id" />
<admin-guild-categories-select
[guildId]="guildId"
label="دسته‌بندی"
@@ -20,7 +20,7 @@ export class GuildGoodsListComponent extends AbstractList<IGuildGoodsResponse> {
@Input() header: IColumn[] = [
{ field: 'image_url', header: 'تصویر', type: 'thumbnail' },
{ field: 'name', header: 'عنوان' },
{ field: 'sku', header: 'شناسه‌ی کالا', type: 'nested', nestedOption: { path: 'sku.name' } },
{ field: 'sku', header: 'شناسه کالا', type: 'nested', nestedOption: { path: 'sku.name' } },
{
field: 'category',
header: 'دسته‌بندی',
@@ -1,5 +1,5 @@
<app-page-data-list
pageTitle="گزارش شارژ‌های ثبت شده‌ی کاربر"
pageTitle="لیست شارژ‌ کاربر"
[columns]="columns"
emptyPlaceholderTitle="تا به حال شارژ کاربری انجام نشده‌ است"
[items]="items()"
@@ -17,15 +17,16 @@ export class AdminPartnerChargeAccountListComponent extends AbstractList<IAdminP
override setColumns(): void {
this.columns = [
{ field: 'tracking_code', header: 'کد پیگیری' },
{ field: 'charged_license_count', header: 'تعداد شارژ کاربر' },
{ field: 'remained_license_count', header: 'شارژ باقی مانده' },
{ field: 'charged_license_count', header: 'تعداد شارژ کاربر', type: 'number' },
{ field: 'remained_license_count', header: 'شارژ باقی مانده', type: 'number' },
{
field: 'activation_count',
header: 'مقدار مصرف شده',
type: 'number',
},
{
field: 'activation_expires_at',
header: 'تاریخ انقضای فروش',
header: 'تاریخ انقضا فروش',
type: 'date',
dateOption: {
expiredMode: true,
@@ -1,5 +1,5 @@
<app-page-data-list
pageTitle="گزارش شارژ‌های ثبت شده‌ی لایسنس‌ها"
pageTitle="لیست شارژ‌ لایسنس‌"
[columns]="columns"
emptyPlaceholderTitle="تا به حال شارژ لایسنسی انجام نشده‌ است"
[items]="items()"
@@ -18,15 +18,16 @@ export class AdminPartnerChargeLicenseTransactionListComponent extends AbstractL
override setColumns(): void {
this.columns = [
{ field: 'tracking_code', header: 'کد پیگیری' },
{ field: 'charged_license_count', header: 'لایسنس‌های خریداری شده' },
{ field: 'remained_license_count', header: 'لایسنس‌های باقی‌مانده' },
{ field: 'charged_license_count', header: 'لایسنس خریداری شده', type: 'number' },
{ field: 'remained_license_count', header: 'لایسنس باقی‌مانده', type: 'number' },
{
field: 'activation_count',
header: 'لایسنس‌های فروخته شده',
header: 'لایسنس فروخته شده',
type: 'number',
},
{
field: 'activation_expires_at',
header: 'تاریخ انقضای فروش',
header: 'تاریخ انقضا فروش',
type: 'date',
dateOption: {
expiredMode: true,
@@ -1,5 +1,5 @@
<app-page-data-list
pageTitle="لیست لایسنس‌های فروخته شده"
pageTitle="لیست لایسنس فروخته شده"
[columns]="columns"
emptyPlaceholderTitle="تا به حال لایسنسی فروخته نشده‌ است"
[items]="items()"
@@ -27,11 +27,11 @@ export class AdminPartnerLicensesComponent extends AbstractList<IPartnerActivate
},
{
field: 'license',
header: 'تعداد کاربر قابل تعریف',
header: 'تعداد کاربر مجاز',
type: 'nested',
nestedOption: { path: 'license.accounts_limit' },
nestedOption: { path: 'license.accounts_limit', type: 'number' },
},
{ field: 'expires_at', header: 'تاریخ انقضای لایسنس', type: 'date' },
{ field: 'expires_at', header: 'تاریخ انقضا لایسنس', type: 'date' },
];
}
@@ -35,7 +35,7 @@ export class PartnersComponent extends AbstractList<IPartnerResponse> {
},
{
field: 'license_renew',
header: 'تعداد لایسنس‌های تمدیدی',
header: 'تعداد لایسنس تمدیدی',
customDataModel: this.licensesRenewStatus,
},
{ field: 'status', header: 'وضعیت' },
@@ -8,12 +8,52 @@
<div class="grid grid-cols-3 gap-4 items-center">
<app-key-value label="عنوان شریک تجاری" [value]="partner()?.name" />
<app-key-value label="کد شریک تجاری" [value]="partner()?.code" />
<div class="col-span-3 grid grid-cols-3 gap-4 mt-6">
<partner-license-info-template
title="لایسنس‌ها"
[total]="partner()?.licenses_status?.total || 0"
[expired]="partner()?.licenses_status?.expired || 0"
[activated]="partner()?.licenses_status?.used || 0"
[remained]="
(partner()?.licenses_status?.total || 0) -
(partner()?.licenses_status?.used || 0) -
(partner()?.licenses_status?.expired || 0)
"
/>
<partner-license-info-template
title="شارژ کاربران"
[total]="partner()?.account_quota_status?.total || 0"
[expired]="partner()?.account_quota_status?.expired || 0"
[activated]="partner()?.account_quota_status?.used || 0"
[remained]="
(partner()?.account_quota_status?.total || 0) -
(partner()?.account_quota_status?.used || 0) -
(partner()?.account_quota_status?.expired || 0)
"
/>
<partner-license-info-template
title="تمدید لایسنس‌ها"
[total]="partner()?.license_renew_status?.total || 0"
[expired]="partner()?.license_renew_status?.expired || 0"
[activated]="partner()?.license_renew_status?.used || 0"
[remained]="
(partner()?.license_renew_status?.total || 0) -
(partner()?.license_renew_status?.used || 0) -
(partner()?.license_renew_status?.expired || 0)
"
/>
</div>
<!--
<p-divider align="center" class="col-span-3">اطلاعات لایسنس‌ها</p-divider>
<app-key-value label="مجموع لایسنس‌های خریداری شده" [value]="partner()?.licenses_status?.total" />
<app-key-value label="مجموع لایسنس‌های منقضی شده" [value]="partner()?.licenses_status?.expired" />
<app-key-value label="مجموع لایسنس‌های فروخته شده" [value]="partner()?.licenses_status?.used" />
<app-key-value type="number" label="مجموع لایسنس خریداری شده" [value]="partner()?.licenses_status?.total" />
<app-key-value type="number" label="مجموع لایسنس منقضی شده" [value]="partner()?.licenses_status?.expired" />
<app-key-value type="number" label="مجموع لایسنس فروخته شده" [value]="partner()?.licenses_status?.used" />
<app-key-value
label="مجموع لایسنس‌های باقی‌مانده"
type="number"
label="مجموع لایسنس باقی‌مانده"
[value]="
(partner()?.licenses_status?.total || 0) -
(partner()?.licenses_status?.used || 0) -
@@ -21,10 +61,19 @@
"
/>
<p-divider align="center" class="col-span-3">اطلاعات شارژ کاربران</p-divider>
<app-key-value label="مجموع کاربران خریداری شده" [value]="partner()?.account_quota_status?.total" />
<app-key-value label="مجموع کاربران منقضی شده" [value]="partner()?.account_quota_status?.expired" />
<app-key-value label="مجموع کاربران فروخته شده" [value]="partner()?.account_quota_status?.used" />
<app-key-value
type="number"
label="مجموع کاربران خریداری شده"
[value]="partner()?.account_quota_status?.total"
/>
<app-key-value
type="number"
label="مجموع کاربران منقضی شده"
[value]="partner()?.account_quota_status?.expired"
/>
<app-key-value type="number" label="مجموع کاربران فروخته شده" [value]="partner()?.account_quota_status?.used" />
<app-key-value
type="number"
label="مجموع کاربران باقی‌مانده"
[value]="
(partner()?.account_quota_status?.total || 0) -
@@ -33,17 +82,18 @@
"
/>
<p-divider align="center" class="col-span-3">اطلاعات تمدید لایسنس‌ها</p-divider>
<app-key-value label="مجموع تمدید خریداری شده" [value]="partner()?.license_renew_status?.total" />
<app-key-value label="مجموع تمدید منقضی شده" [value]="partner()?.license_renew_status?.expired" />
<app-key-value label="مجموع تمدید فروخته شده" [value]="partner()?.license_renew_status?.used" />
<app-key-value type="number" label="مجموع تمدید خریداری شده" [value]="partner()?.license_renew_status?.total" />
<app-key-value type="number" label="مجموع تمدید منقضی شده" [value]="partner()?.license_renew_status?.expired" />
<app-key-value type="number" label="مجموع تمدید فروخته شده" [value]="partner()?.license_renew_status?.used" />
<app-key-value
type="number"
label="مجموع تمدید باقی‌مانده"
[value]="
(partner()?.license_renew_status?.total || 0) -
(partner()?.license_renew_status?.used || 0) -
(partner()?.license_renew_status?.expired || 0)
"
/>
/>-->
</div>
</div>
</app-card-data>
@@ -1,9 +1,9 @@
import { BreadcrumbService } from '@/core/services';
import { PartnerLicenseInfoTemplateComponent } from '@/domains/partner/modules/dashboard/components/licenseInfo/license-info-template.component';
import { AppCardComponent, KeyValueComponent } from '@/shared/components';
import { Component, computed, effect, inject, signal } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Button } from 'primeng/button';
import { Divider } from 'primeng/divider';
import { ConsumerAccountListComponent } from '../components/accounts/list.component';
import { PartnerChargeLicenseFormDialogComponent } from '../components/charge-license-form-dialog.component';
import { AdminPartnerChargeAccountFormDialogComponent } from '../components/chargeAccount/charge-account-form-dialog.component';
@@ -28,7 +28,7 @@ import { PartnerStore } from '../store/partner.store';
PartnerChargeLicenseFormDialogComponent,
AdminPartnerLicensesComponent,
AdminPartnerChargeLicenseTransactionListComponent,
Divider,
PartnerLicenseInfoTemplateComponent,
],
})
export class PartnerComponent {
@@ -1,10 +1,10 @@
<app-page-data-list
[pageTitle]="'مدیریت شناسه‌ی کالاها'"
[addNewCtaLabel]="'افزودن شناسه‌ی کالا'"
[pageTitle]="'مدیریت شناسه کالاها'"
[addNewCtaLabel]="'افزودن شناسه کالا'"
[columns]="columns"
[showAdd]="true"
emptyPlaceholderTitle="شناسه‌ی کالایی یافت نشد"
emptyPlaceholderDescription="برای افزودن شناسه‌ی کالا، روی دکمهٔ بالا کلیک کنید."
emptyPlaceholderTitle="شناسه کالایی یافت نشد"
emptyPlaceholderDescription="برای افزودن شناسه کالا، روی دکمهٔ بالا کلیک کنید."
[items]="items()"
[loading]="loading()"
[showDetails]="false"