This commit is contained in:
2026-07-15 12:51:05 +03:30
parent e83daaf28b
commit 87b60a17d0
12 changed files with 623 additions and 258 deletions
@@ -115,7 +115,7 @@ export const SYSTEM_SETTING_GROUPS: SettingGroupDef[] = [
title: 'عمومی و برند',
icon: 'vuesax-linear:home-2',
match: (k) =>
/^(name_fa|name_en|app_url|admin_url|apk_download_link|banner_enabled|bace_url|server_url|logo_|title_pwa|title_fav|metal_type|main_metal|unit$|open_register|auto_active_customer|store_status|key$|is_store|group_sms|has_page_earn_money|sms_panel)/.test(
/^(name_fa|name_en|app_url|admin_url|apk_download_link|banner_enabled|permision__enabled|bace_url|server_url|logo_|title_pwa|title_fav|metal_type|main_metal|unit$|open_register|auto_active_customer|store_status|key$|is_store|group_sms|has_page_earn_money|sms_panel)/.test(
k
)
},
@@ -53,7 +53,16 @@ export type SupportMessengerEntryDraft = {
id: string
}
const SUPPORT_MESSENGER_TYPES = ['bale', 'telegram', 'whatsapp', 'rubika', 'eitaa', 'soroush'] as const
const SUPPORT_MESSENGER_TYPES = [
'bale',
'telegram',
'whatsapp',
'rubika',
'eitaa',
'soroush',
'call',
'sms',
] as const
export function isSupportMessengerType(value: string | undefined | null): boolean {
const type = (value ?? '').trim().toLowerCase()
@@ -158,6 +167,9 @@ export function supportMessengerIdPlaceholder(messenger?: string): string {
case 'eitaa':
case 'soroush':
return 'یوزرنیم یا آیدی'
case 'call':
case 'sms':
return 'شماره موبایل، مثلاً 09123456789'
default:
return 'شناسه / یوزرنیم / شماره'
}
@@ -256,6 +268,7 @@ const KEY_TYPE_FALLBACK: Record<string, SettingFieldType> = {
external_order_api_enabled: 'switch',
is_store: 'switch',
banner_enabled: 'switch',
permision__enabled: 'switch',
apk_download_link: 'text',
node_client_id: 'text',
node_shared_secret: 'text',
@@ -307,7 +320,9 @@ const SELECT_LABELS_BY_KEY: Record<string, Record<string, string>> = {
whatsapp: 'واتساپ',
rubika: 'روبیکا',
eitaa: 'ایتا',
soroush: 'سروش'
soroush: 'سروش',
call: 'تماس تلفنی',
sms: 'پیامک',
},
price_channel_messengers: {
bale: 'بله',
@@ -321,7 +336,7 @@ const SELECT_OPTIONS_BY_KEY: Record<string, string> = {
price_provider: 'montzar,zaarbox,main_product',
payping_gateway_name: 'sepal,',
unit: 'گرم,کیلوگرم',
support_messenger: 'bale,telegram,whatsapp,rubika,eitaa,soroush',
support_messenger: 'bale,telegram,whatsapp,rubika,eitaa,soroush,call,sms',
price_channel_messengers: 'bale,telegram,rubika'
}
@@ -484,6 +499,8 @@ const KEY_HELP_FALLBACK: Record<string, string> = {
'نام فارسی برند که در پیامک‌ها، عنوان صفحات و بخش‌های عمومی اپ به مشتری نشان داده می‌شود.',
banner_enabled:
'روشن: منوی «بنرها» در تنظیمات فعال می‌شود و می‌توانید اسلایدر بالای صفحهٔ اصلی اپ را مدیریت کنید. خاموش: بنرها در اپ نشان داده نمی‌شوند.',
permision__enabled:
'روشن: آیتم «مجوز ها» در منوی تنظیمات اپ خانگی (تم جدید) نمایش داده می‌شود. خاموش: مخفی است.',
open_register:
'روشن: کاربران جدید می‌توانند ثبت‌نام کنند. خاموش: فقط ورود کاربران قبلی مجاز است.',
sms_panel:
@@ -571,7 +588,7 @@ const KEY_HELP_FALLBACK: Record<string, string> = {
node_shared_secret:
'کلید مشترک امضای درخواست‌ها به سرویس سفارش خارجی. محرمانه نگه دارید.',
support_messengers:
'لیست پیام‌رسان‌های پشتیبانی. اگر چند مورد باشد، با کلیک دکمه شناور منوی انتخاب باز می‌شود؛ اگر یک مورد باشد مستقیم باز می‌شود. تماس تلفنی جداگانه از «شماره تماس پشتیبانی» است.',
'فقط مواردی که در این لیست ثبت شوند در منوی شناور پشتیبانی اپ مشتری نمایش داده می‌شوند. برای تماس تلفنی یا پیامک، نوع «تماس تلفنی» / «پیامک» را با شماره اضافه کنید.',
tracking_systems:
'لیست JSON سامانه‌های ردیابی/آنالیتیکس در اپ مشتری. هر مورد: type (gtag، gtm، clarity، custom)، id (کد اندازه‌گیری یا شناسه پروژه)، enabled (روشن/خاموش). فقط از صفحه دیپلوی قابل ویرایش است.',
tracking_systems_enabled:
@@ -583,7 +600,7 @@ const KEY_HELP_FALLBACK: Record<string, string> = {
support_messenger_text:
'متن راهنمای واریز در مودال شارژ حساب. متن را بنویسید و متغیرها (نام صاحب حساب، شماره کارت، شبا) را با کلیک اضافه کنید؛ پیش‌نمایش نتیجه را با مقادیر نمونه نشان می‌دهد. خالی = متن پیش‌فرض اپ.',
deposit_support_message_text:
'متن پیام هنگام کلیک «پیام به پشتیبانی» در مودال واریز (SMS و پیام‌رسان). متن را بنویسید و متغیر «نام مشتری» را با کلیک اضافه کنید؛ پیش‌نمایش نتیجه را نشان می‌دهد. خالی = متن پیش‌فرض اپ.',
'متن پیش‌نویس فقط وقتی کاربر از مودال راهنمای واریز روی «پیام به پشتیبانی» یا SMS می‌زند. منوی شناور پشتیبانی این متن را نمی‌گذارد. خالی = متن پیش‌فرض اپ.',
deposit_account_holder:
'نام صاحب حساب واریز — در متن راهنمای واریز با ٪نام یا %نام جایگزین می‌شود. در پیام پشتیبانی فقط وقتی نام مشتری موجود نباشد استفاده می‌شود.',
deposit_card_number:
@@ -591,7 +608,7 @@ const KEY_HELP_FALLBACK: Record<string, string> = {
deposit_sheba:
'شماره شبا واریز — در متن‌ها با ٪شبا یا %شبا جایگزین می‌شود.',
deposit_sms_support_number:
'شماره تماس پشتیبانی؛ با کلیک روی «تماس با پشتیبانی» در اپ، تماس تلفنی برقرار می‌شود. در صفحه واریز، درباره ما و قوانین هم نمایش داده می‌شود.',
'شماره تماس پشتیبانی برای راهنمای واریز و دکمه پیامک داخل مودال شارژ. برای نمایش در منوی شناور، باید «تماس تلفنی» یا «پیامک» را جداگانه در لیست پیام‌رسان‌های پشتیبانی اضافه کنید.',
charge_notif:
'روشن: پس از شارژ کیف توسط ادمین، پیامک به مشتری ارسال می‌شود. خاموش: پیامکی پس از شارژ ارسال نمی‌شود.',
group_sms:
@@ -728,6 +745,7 @@ export const KEY_LABEL_FALLBACK: Record<string, string> = {
support_messengers: 'پیام‌رسان‌های پشتیبانی',
tracking_systems: 'سامانه‌های ردیابی',
tracking_systems_enabled: 'نمایش سامانه‌های ردیابی',
permision__enabled: 'نمایش منوی مجوزها',
support_messenger: 'پیام‌رسان پشتیبانی',
support_messenger_id: 'شناسه پشتیبانی',
support_messenger_text: 'متن راهنمای واریز',
@@ -773,6 +791,7 @@ export const SETTING_LOCKED_KEYS = new Set([
'payping_fin_customer_id', 'payping_fin_sync_enabled', 'payping_fin_token', 'payping_fin_url',
'payping_gateway_items', 'payping_gateway_name',
'payping_round_toman', 'payping_start_url', 'payping_strict_failed_withdraw', 'payping_verify_url',
'permision__enabled',
'price_extreme_date', 'price_provider', 'profit_gold_api_enabled',
'send_to_tahesab', 'send_to_pargar', 'accounting_provider', 'service_charge_percentage',
'sse_path',