mirror of
https://github.com/avecms/AVE.cms.git
synced 2026-08-06 02:35:45 +00:00
13 lines
7.8 KiB
Twig
13 lines
7.8 KiB
Twig
<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>
|