i18n: localise Inbound/Outbound labels to Входящий/Исходящий
User-facing labels only — DB enum values inbound/outbound stay. - FilterBar chip labels: "Входящие" / "Исходящие" - LeadCardView meta line: "Входящий · создан ..." - LeadsTable Тип column: full word instead of "In"/"Out" - StatsView "Входящие vs Исходящие" heading and row label - StatsView sourceLabels: refreshed for scoring v2 enum (ad, content, demo-request added; n/a label renamed)
This commit is contained in:
parent
21ee17a831
commit
a49c8340fd
@ -19,8 +19,8 @@ const statuses: { value: LeadStatus | 'all'; label: string }[] = [
|
||||
|
||||
const types: { value: LeadType | 'all'; label: string }[] = [
|
||||
{ value: 'all', label: 'Все типы' },
|
||||
{ value: 'inbound', label: 'Inbound' },
|
||||
{ value: 'outbound', label: 'Outbound' },
|
||||
{ value: 'inbound', label: 'Входящие' },
|
||||
{ value: 'outbound', label: 'Исходящие' },
|
||||
];
|
||||
|
||||
const stages: { value: DealStage | 'all'; label: string }[] = [
|
||||
|
||||
@ -260,7 +260,7 @@ function exportCsv() {
|
||||
{{ formatDate(lead.next_action_date) }}
|
||||
</td>
|
||||
<td class="px-4 py-3 text-gray-500 text-xs uppercase tracking-wider">
|
||||
{{ lead.lead_type === 'inbound' ? 'In' : 'Out' }}
|
||||
{{ lead.lead_type === 'inbound' ? 'Входящий' : 'Исходящий' }}
|
||||
</td>
|
||||
<td class="px-4 py-3 text-gray-600 text-xs">{{ lead.created_by }}</td>
|
||||
<td class="px-4 py-3 text-right">
|
||||
|
||||
@ -260,7 +260,7 @@ onMounted(load);
|
||||
</p>
|
||||
</div>
|
||||
<p class="text-xs text-gray-500 mt-3">
|
||||
{{ lead.lead_type === 'inbound' ? 'Inbound' : 'Outbound' }} · создан
|
||||
{{ lead.lead_type === 'inbound' ? 'Входящий' : 'Исходящий' }} · создан
|
||||
{{ lead.created_by }} · {{ formatDateTime(lead.created_at) }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@ -86,10 +86,13 @@ const stageBg: Record<string, string> = {
|
||||
};
|
||||
|
||||
const sourceLabels: Record<string, string> = {
|
||||
cold: 'Холодный',
|
||||
referral: 'Реферал',
|
||||
website: 'Сайт',
|
||||
'n/a': 'Outbound',
|
||||
cold: 'Холодный список',
|
||||
ad: 'Реклама',
|
||||
content: 'Скачал материал',
|
||||
referral: 'Рекомендация',
|
||||
website: 'Сайт / форма',
|
||||
'demo-request': 'Запросил демо',
|
||||
'n/a': 'Исходящие',
|
||||
};
|
||||
|
||||
const funnelMax = computed(() =>
|
||||
@ -360,14 +363,14 @@ function tickX(date: string, i: number): { x: number; label: string } | null {
|
||||
<div class="card p-5">
|
||||
<div class="flex items-center justify-between">
|
||||
<h2 class="text-xs font-semibold text-gray-400 uppercase tracking-widest">
|
||||
Inbound vs Outbound
|
||||
Входящие vs Исходящие
|
||||
</h2>
|
||||
</div>
|
||||
<div v-if="types.length === 0" class="text-xs text-gray-400 mt-4">—</div>
|
||||
<div v-else class="mt-3 space-y-3">
|
||||
<div v-for="t in types" :key="t.lead_type" class="text-sm">
|
||||
<div class="flex items-center justify-between mb-1">
|
||||
<span class="font-medium capitalize">{{ t.lead_type }}</span>
|
||||
<span class="font-medium">{{ t.lead_type === 'inbound' ? 'Входящие' : 'Исходящие' }}</span>
|
||||
<span class="text-xs text-gray-500 tabular-nums">
|
||||
{{ t.total }} лидов · конв. {{ t.conversion_rate }}%
|
||||
</span>
|
||||
|
||||
Reference in New Issue
Block a user