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

13 lines
7.8 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.
<section class="customers-center-profile"><div class="customers-center-avatar">{{ (customer.user.firstname|first ~ customer.user.lastname|first)|upper ?: '#' }}</div><div><span class="section-eyebrow">Профиль #{{ customer.user.id }}</span><h2>{{ (customer.user.firstname ~ ' ' ~ customer.user.lastname)|trim ?: customer.user.user_name }}</h2><p>{{ customer.user.email ?: 'Email не указан' }}{% if customer.user.phone %} · {{ customer.user.phone }}{% endif %}</p><div class="customers-center-segment-list">{% set labels={'new':'Новый','buyers':'С заказами','repeat':'Повторный','vip':'От 100 000 ₽','inactive':'Неактивный','without_orders':'Без заказов'} %}{% for code in customer.segments %}<span class="badge {{ code=='vip'?'badge-violet':(code=='repeat'?'badge-green':(code=='inactive'?'badge-gray':'badge-blue')) }}">{{ labels[code] }}</span>{% endfor %}</div></div><a class="btn btn-secondary btn-sm" href="{{ ADMINX_BASE }}/system/customers?tab=customers&q={{ customer.user.id }}"><i class="ti ti-pencil"></i>Редактировать аккаунт</a></section>
<div class="customers-center-detail-kpis"><span><i class="ti ti-shopping-bag"></i><b>{{ customer.summary.orders_count }}</b><small>заказов</small></span><span><i class="ti ti-currency-rubel"></i><b>{{ customer.summary.orders_total|number_format(0,'.',' ') }} ₽</b><small>общая сумма</small></span><span><i class="ti ti-heart"></i><b>{{ customer.engagement.favorites|length }}</b><small>в избранном</small></span><span><i class="ti ti-history"></i><b>{{ customer.engagement.viewed|length }}</b><small>просмотрено</small></span></div>
<div class="customers-center-detail-grid">
<section class="card ax-list-card"><div class="ax-list-head"><div class="ax-list-title"><span class="icon-tile"><i class="ti ti-shopping-bag"></i></span><div><h3>Заказы</h3><p>Последние покупки пользователя</p></div></div>{% if customer.summary.guest_count %}<span class="badge badge-amber" data-tooltip="Оформлены без входа, найдены по email или телефону">Гостевых: {{ customer.summary.guest_count }}</span>{% endif %}</div><div class="customers-center-order-list">{% for order in customer.orders %}<a href="{{ ADMINX_BASE }}/shop/orders?tab=orders&q={{ order.order_id }}"><span><b>#{{ order.order_id }}</b><small>{{ order.order_published|date('d.m.Y H:i') }}{% if order.matched_by == 'contact' %} · <i class="ti ti-user-question"></i> гостевой{% endif %}</small></span><strong>{{ order.order_total|number_format(0,'.',' ') }} ₽</strong></a>{% else %}<div class="empty-state">Заказов пока нет</div>{% endfor %}</div></section>
<section class="card ax-list-card"><div class="ax-list-head"><div class="ax-list-title"><span class="icon-tile" style="--tile-bg:var(--cyan-100);--tile-fg:var(--cyan-600)"><i class="ti ti-login"></i></span><div><h3>Способы входа</h3><p>Связанные аккаунты и подтверждения</p></div></div></div><div class="customers-center-identities"><article><i class="ti ti-{{ customer.user.email_verified_at?'mail-check':'mail' }}"></i><span><b>Email</b><small>{{ customer.user.email_verified_at?'подтверждён':'не подтверждён' }}</small></span></article>{% if customer.user.phone %}<article><i class="ti ti-{{ customer.user.phone_verified_at?'phone-check':'phone' }}"></i><span><b>Телефон</b><small>{{ customer.user.phone_verified_at?'подтверждён':'не подтверждён' }}</small></span></article>{% endif %}{% for identity in customer.identities %}<article><i class="ti {{ identity.provider=='yandex'?'ti-brand-yandex':(identity.provider=='vk'?'ti-brand-vk':'ti-key') }}"></i><span><b>{{ identity.provider|upper }}</b><small>последний вход {{ identity.last_login_at?identity.last_login_at|date('d.m.Y'):'—' }}</small></span></article>{% endfor %}</div></section>
<section class="card ax-list-card"><div class="ax-list-head"><div class="ax-list-title"><span class="icon-tile" style="--tile-bg:var(--amber-100);--tile-fg:var(--amber-600)"><i class="ti ti-message"></i></span><div><h3>Обращения</h3><p>Сообщения контактных форм по email</p></div></div></div><div class="customers-center-contact-list">{% for item in customer.contacts %}<article><span><b>{{ item.subject ?: 'Обращение #' ~ item.id }}</b><small>{{ item.date|date('d.m.Y H:i') }}</small></span><span class="badge {{ item.status=='new'?'badge-amber':(item.status=='replied'?'badge-green':'badge-gray') }}">{{ item.status=='new'?'Новое':(item.status=='replied'?'Отвечено':'Просмотрено') }}</span></article>{% else %}<div class="empty-state">Обращений не найдено</div>{% endfor %}</div></section>
{% if customer.popup_leads %}<section class="card ax-list-card"><div class="ax-list-head"><div class="ax-list-title"><span class="icon-tile" style="--tile-bg:var(--green-100);--tile-fg:var(--green-600)"><i class="ti ti-user-plus"></i></span><div><h3>Заявки из поп-апов</h3><p>Сопоставлены по email или телефону</p></div></div></div><div class="customers-center-contact-list">{% for item in customer.popup_leads %}<article><span><b>{{ item.campaign_title ?: 'Заявка #' ~ item.id }}</b><small>{{ item.created_at|date('d.m.Y H:i') }}{% if item.phone %} · {{ item.phone }}{% endif %}</small></span><span class="badge {{ item.status=='new'?'badge-amber':(item.status=='spam'?'badge-red':'badge-green') }}">{{ item.status=='new'?'Новая':(item.status=='spam'?'Спам':'Обработана') }}</span></article>{% endfor %}</div></section>{% endif %}
{% if customer.quiz_leads %}<section class="card ax-list-card"><div class="ax-list-head"><div class="ax-list-title"><span class="icon-tile" style="--tile-bg:var(--cyan-100);--tile-fg:var(--cyan-600)"><i class="ti ti-list-check"></i></span><div><h3>Заявки из подбора</h3><p>Сопоставлены по email или телефону</p></div></div></div><div class="customers-center-contact-list">{% for item in customer.quiz_leads %}<article><span><b>{{ item.quiz_title }}</b><small>{{ item.created_label }} · ответов {{ item.answers_count }} · подошло {{ item.matches_count }}</small></span><span class="badge {{ item.lead_status=='new'?'badge-amber':(item.lead_status=='spam'?'badge-red':'badge-green') }}">{{ item.lead_status=='new'?'Новая':(item.lead_status=='spam'?'Спам':'Обработана') }}</span></article>{% endfor %}</div></section>{% endif %}
<section class="card ax-list-card"><div class="ax-list-head"><div class="ax-list-title"><span class="icon-tile" style="--tile-bg:var(--violet-100);--tile-fg:var(--violet-600)"><i class="ti ti-note"></i></span><div><h3>Заметки менеджеров</h3><p>Внутренняя информация, покупатель её не видит</p></div></div></div><div class="customers-center-notes">{% for note in customer.notes %}<article><p>{{ note.note }}</p><small>{{ note.author_name ?: 'Система' }} · {{ note.created_at|date('d.m.Y H:i') }}</small></article>{% else %}<div class="empty-state">Заметок пока нет</div>{% endfor %}</div>{% if can_manage %}<form class="customers-center-note-form" action="{{ ADMINX_BASE }}/system/customers/center/{{ customer.user.id }}/notes" data-customer-note data-refresh-url="{{ ADMINX_BASE }}/system/customers/center/{{ customer.user.id }}"><input type="hidden" name="_csrf" value="{{ csrf_token }}"><label class="field"><span class="field-label">Новая заметка</span><textarea class="textarea" name="note" rows="3" maxlength="4000" required></textarea></label><button class="btn btn-primary btn-sm" type="submit"><i class="ti ti-plus"></i>Добавить</button></form>{% endif %}</section>
</div>