Files
ave-cms/adminx/modules/Customers/view/customer-center.twig
T
2026-08-05 21:40:21 +03:00

20 lines
6.4 KiB
Twig
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div class="section-header ax-panel-header customers-center-head"><div class="section-icon"><i class="ti ti-users-group"></i></div><div><div class="section-eyebrow">Работа с покупателями</div><h2>Центр покупателей</h2><p class="section-desc">Аккаунт, покупки, обращения и интересы человека собраны в одной карточке.</p></div><div class="section-header-right"><form class="customers-filter" action="{{ ADMINX_BASE }}/system/customers" data-customers-center-filter><input type="hidden" name="tab" value="center"><input type="hidden" name="segment" value="{{ segment|e }}"><div class="input-wrap"><i class="ti ti-search"></i><input class="input" type="search" name="q" value="{{ q|e }}" placeholder="Имя, email, телефон или ID"></div><button class="btn btn-secondary"><i class="ti ti-search"></i>Найти</button></form>{% set saved_views_form = '[data-customers-center-filter]' %}{% set saved_views_save_url = ADMINX_BASE ~ '/system/customers/saved-views' %}{% set saved_views_delete_url = ADMINX_BASE ~ '/system/customers/saved-views/__ID__/delete' %}{% set saved_views_fields = ['q','segment'] %}{% include '@adminx/_saved_views.twig' %}</div></div>
<div class="customers-center-kpis">
<div class="card stat-tile"><div class="stat-ico"><i class="ti ti-users"></i></div><div><div class="stat-val">{{ center_stats.total|default(0) }}</div><div class="stat-label">Аккаунтов</div></div></div>
<div class="card stat-tile"><div class="stat-ico is-green"><i class="ti ti-shopping-bag"></i></div><div><div class="stat-val">{{ center_stats.buyers|default(0) }}</div><div class="stat-label">Покупателей</div></div></div>
<div class="card stat-tile"><div class="stat-ico is-blue"><i class="ti ti-repeat"></i></div><div><div class="stat-val">{{ center_stats.repeat|default(0) }}</div><div class="stat-label">Повторных</div></div></div>
<div class="card stat-tile"><div class="stat-ico is-violet"><i class="ti ti-user-question"></i></div><div><div class="stat-val">{{ center_stats.duplicates|default(0) }}</div><div class="stat-label">Групп дублей</div></div></div>
</div>
<nav class="customers-segments" aria-label="Сегменты покупателей">{% for code,label in center_segments %}<a class="{{ segment==code?'is-active':'' }}" href="{{ ADMINX_BASE }}/system/customers?tab=center&segment={{ code }}{% if q %}&q={{ q|url_encode }}{% endif %}">{{ label }}</a>{% endfor %}</nav>
{% if duplicate_groups %}<details class="alert alert-warning customers-duplicates"><summary><span><i class="ti ti-users-minus"></i><b>Найдены возможные дубли</b></span><span>{{ duplicate_groups|length }}</span></summary><div>{% for group in duplicate_groups %}<article><span><b>{{ group.kind=='email'?'Одинаковый email':'Одинаковый телефон' }}</b><small>{{ group.value }}</small></span><span class="mono">{% for id in group.ids %}#{{ id }}{% if not loop.last %}, {% endif %}{% endfor %}</span>{% if can_manage %}{% for id in group.ids %}{% if id!=group.target_id %}<button class="btn btn-secondary btn-sm" type="button" data-customer-merge data-target-id="{{ group.target_id }}" data-source-id="{{ id }}"><i class="ti ti-arrows-join"></i>Объединить #{{ id }} с #{{ group.target_id }}</button>{% endif %}{% endfor %}{% endif %}</article>{% endfor %}</div></details>{% endif %}
<section class="card ax-list-card customers-center-list">
<div class="ax-list-head"><div class="ax-list-title"><span class="icon-tile" style="--tile-bg:var(--blue-100);--tile-fg:var(--blue-600)"><i class="ti ti-address-book"></i></span><div><h2>Покупатели</h2><p class="text-secondary">Откройте карточку, чтобы увидеть всю историю взаимодействия.</p></div></div><span class="badge badge-blue">{{ center_customers|length }}</span></div>
<div class="table-scroll"><table class="table customers-center-table"><thead><tr><th>Покупатель</th><th>Заказы</th><th>Активность</th><th>Сегменты</th><th class="customers-actions-col">Действия</th></tr></thead><tbody>{% for customer in center_customers %}<tr data-customer-center-open data-url="{{ ADMINX_BASE }}/system/customers/center/{{ customer.id }}"><td><div class="customers-center-person"><span>{{ (customer.firstname|first ~ customer.lastname|first)|upper ?: '#' }}</span><div><b>{{ (customer.firstname ~ ' ' ~ customer.lastname)|trim ?: customer.user_name }}</b><small>{{ customer.email ?: customer.phone }} · #{{ customer.id }}</small></div></div></td><td><b>{{ customer.orders_count }} заказов</b><small>{{ customer.orders_total|number_format(0,'.',' ') }} ₽</small></td><td><b>{{ customer.last_order_at ? customer.last_order_at|date('d.m.Y') : 'Покупок нет' }}</b><small>Вход: {{ customer.last_visit ? customer.last_visit|date('d.m.Y') : 'не входил' }}</small></td><td><div class="customers-center-segment-list">{% for code in customer.segment_codes %}<span class="badge {{ code=='vip'?'badge-violet':(code=='repeat'?'badge-green':(code=='inactive'?'badge-gray':'badge-blue')) }}">{{ center_segments[code] }}</span>{% endfor %}</div></td><td><button class="btn btn-icon btn-ghost ax-act ax-act-view" type="button" data-tooltip="Открыть карточку" aria-label="Открыть карточку"><i class="ti ti-eye"></i></button></td></tr>{% else %}<tr><td colspan="5"><div class="empty-state"><i class="ti ti-user-search"></i><b>Покупатели не найдены</b><span>Измените поисковый запрос или сегмент.</span></div></td></tr>{% endfor %}</tbody></table></div>
</section>
<aside class="drawer drawer-right customer-center-drawer" id="customerCenterDrawer" role="dialog" aria-modal="true" aria-labelledby="customerCenterDrawerTitle" hidden><div class="drawer-header"><div><h3 id="customerCenterDrawerTitle">Карточка покупателя</h3><p class="text-secondary text-sm">Профиль и история взаимодействия</p></div><button class="btn btn-ghost btn-icon" type="button" data-close-drawer aria-label="Закрыть"><i class="ti ti-x"></i></button></div><div class="drawer-body customers-center-detail" data-customer-center-detail><div class="skeleton" style="height:160px"></div></div><div class="drawer-footer"><button class="btn btn-ghost" type="button" data-close-drawer>Закрыть</button></div></aside>