mirror of
https://github.com/wasrusgen/wasrusgen1-crm.git
synced 2026-06-03 16:44:46 +00:00
feat: Manager подключён к data.js — _MGR_IDENTITY, KPI-полоса на главной и в зарплате
This commit is contained in:
parent
09eae60c25
commit
bbf891190e
@ -238,6 +238,23 @@ body[data-theme="dark"]{--accent:#4338CA;--accent2:#6366F1;--bg:#111827;--card:#
|
||||
|
||||
<script src="data.js"></script>
|
||||
<script>
|
||||
// ── ИДЕНТИЧНОСТЬ КАБИНЕТА (из data.js._HIERARCHY) ────────────────────────────
|
||||
// Этот кабинет принадлежит менеджеру Анна К. (ak) · Салон Ленина
|
||||
var _MGR_ID = 'ak';
|
||||
var _MGR_IDENTITY = (function(){
|
||||
var mgr = _getMgr(_MGR_ID);
|
||||
var salon = _getSalon(mgr ? mgr.salon : 'lenina');
|
||||
return {
|
||||
mgrId: _MGR_ID,
|
||||
name: mgr ? mgr.name : 'Анна К.',
|
||||
short: mgr ? mgr.short : 'АК',
|
||||
color: mgr ? mgr.color : '#7C3AED',
|
||||
salon: salon ? salon.salon : 'Салон Ленина',
|
||||
salonId: salon ? salon.salonId : 'lenina',
|
||||
admin: salon ? salon.admin.name : 'Анна М.',
|
||||
};
|
||||
})();
|
||||
|
||||
// ── State ────────────────────────────────────────────────────────────────────
|
||||
window._managerOrders = window._managerOrders || [
|
||||
{ id:1,client:'Иванова А.С.',phone:'+7 912 345-67-89',
|
||||
@ -1599,11 +1616,26 @@ function screenSalary() {
|
||||
+'</div>';
|
||||
}).join('');
|
||||
|
||||
var kpi = _getMgrStats(_MGR_ID, 'Май');
|
||||
|
||||
return '<div class="page">'
|
||||
+'<div class="page-header"><h2>💵 Зарплата</h2>'
|
||||
+'<span style="font-size:12px;color:var(--muted);font-weight:500">'+month+'</span></div>'
|
||||
+'<div style="padding:16px">'
|
||||
|
||||
// KPI-контекст из data.js
|
||||
+(kpi.revenue ? '<div style="display:flex;gap:8px;margin-bottom:14px">'
|
||||
+'<div style="flex:1;background:#F0FDF4;border-radius:12px;padding:10px 12px;text-align:center">'
|
||||
+'<div style="font-size:15px;font-weight:800;color:var(--success)">'+Math.round(kpi.revenue/1000)+' тыс ₽</div>'
|
||||
+'<div style="font-size:9px;color:var(--muted);font-weight:600;margin-top:1px">моя выручка</div></div>'
|
||||
+'<div style="flex:1;background:#EEF2FF;border-radius:12px;padding:10px 12px;text-align:center">'
|
||||
+'<div style="font-size:15px;font-weight:800;color:#4338CA">'+kpi.deals+' сд.</div>'
|
||||
+'<div style="font-size:9px;color:var(--muted);font-weight:600;margin-top:1px">сделок</div></div>'
|
||||
+'<div style="flex:1;background:#FFFBEB;border-radius:12px;padding:10px 12px;text-align:center">'
|
||||
+'<div style="font-size:15px;font-weight:800;color:var(--warn)">★ '+kpi.rating+'</div>'
|
||||
+'<div style="font-size:9px;color:var(--muted);font-weight:600;margin-top:1px">рейтинг</div></div>'
|
||||
+'</div>' : '')
|
||||
|
||||
// Итого карточка
|
||||
+'<div style="background:linear-gradient(135deg,var(--accent) 0%,#1a5db0 100%);border-radius:18px;padding:20px;color:#fff;margin-bottom:16px">'
|
||||
+'<div style="font-size:12px;font-weight:600;opacity:.75;margin-bottom:4px">Итого за месяц</div>'
|
||||
@ -1856,11 +1888,39 @@ function screenHome() {
|
||||
];
|
||||
var _todaySlogan = _SLOGANS[new Date().getDate() % _SLOGANS.length];
|
||||
var nextAppt = todayAppts[0];
|
||||
var kpi = _getMgrStats(_MGR_ID, 'Май');
|
||||
var heroHtml =
|
||||
'<div style="background:var(--card);padding:16px 16px 14px;border-bottom:1px solid rgba(0,0,0,.06)">'
|
||||
+'<div style="font-size:12px;color:var(--muted);margin-bottom:2px">Чт, 22 мая 2026</div>'
|
||||
+'<div style="font-size:20px;font-weight:800;color:var(--ink);margin-bottom:5px">Добрый день, Анна 👋</div>'
|
||||
+'<div style="font-size:12px;color:var(--muted);font-style:italic;margin-bottom:13px;line-height:1.4">'+_todaySlogan+'</div>'
|
||||
+'<div style="display:flex;align-items:center;gap:8px;margin-bottom:6px">'
|
||||
+'<div style="width:32px;height:32px;border-radius:50%;background:'+_MGR_IDENTITY.color+';display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;flex-shrink:0">'+_MGR_IDENTITY.short+'</div>'
|
||||
+'<div>'
|
||||
+'<div style="font-size:11px;color:var(--muted);font-weight:600">'+_MGR_IDENTITY.salon+' · Администратор: '+_MGR_IDENTITY.admin+'</div>'
|
||||
+'<div style="font-size:10px;color:var(--muted)">Менеджер · Май 2026</div>'
|
||||
+'</div></div>'
|
||||
+'<div style="font-size:20px;font-weight:800;color:var(--ink);margin-bottom:4px">Добрый день, '+_MGR_IDENTITY.name.split(' ')[0]+' 👋</div>'
|
||||
+'<div style="font-size:12px;color:var(--muted);font-style:italic;margin-bottom:10px;line-height:1.4">'+_todaySlogan+'</div>'
|
||||
// KPI-полоса месяца
|
||||
+(kpi.visits ? '<div style="display:flex;gap:6px;margin-bottom:13px;padding:10px 12px;background:var(--bg);border-radius:12px">'
|
||||
+'<div style="flex:1;text-align:center">'
|
||||
+'<div style="font-size:16px;font-weight:800;color:var(--ink)">'+kpi.visits+'</div>'
|
||||
+'<div style="font-size:9px;color:var(--muted);font-weight:600">встреч</div></div>'
|
||||
+'<div style="width:1px;background:rgba(0,0,0,.08)"></div>'
|
||||
+'<div style="flex:1;text-align:center">'
|
||||
+'<div style="font-size:16px;font-weight:800;color:var(--success)">'+kpi.deals+'</div>'
|
||||
+'<div style="font-size:9px;color:var(--muted);font-weight:600">сделок</div></div>'
|
||||
+'<div style="width:1px;background:rgba(0,0,0,.08)"></div>'
|
||||
+'<div style="flex:1;text-align:center">'
|
||||
+'<div style="font-size:16px;font-weight:800;color:'+(kpi.conversion>=30?'var(--success)':'var(--warn)')+'">'+kpi.conversion+'%</div>'
|
||||
+'<div style="font-size:9px;color:var(--muted);font-weight:600">конверсия</div></div>'
|
||||
+'<div style="width:1px;background:rgba(0,0,0,.08)"></div>'
|
||||
+'<div style="flex:1;text-align:center">'
|
||||
+'<div style="font-size:14px;font-weight:800;color:var(--accent)">'+Math.round((kpi.revenue||0)/1000)+'</div>'
|
||||
+'<div style="font-size:9px;color:var(--muted);font-weight:600">тыс ₽</div></div>'
|
||||
+'<div style="width:1px;background:rgba(0,0,0,.08)"></div>'
|
||||
+'<div style="flex:1;text-align:center">'
|
||||
+'<div style="font-size:16px;font-weight:800;color:var(--warn)">★ '+(kpi.rating||'—')+'</div>'
|
||||
+'<div style="font-size:9px;color:var(--muted);font-weight:600">рейтинг</div></div>'
|
||||
+'</div>' : '')
|
||||
// Три плитки-счётчика
|
||||
+'<div style="display:flex;gap:8px;margin-bottom:'+(nextAppt?'12px':'0')+'">'
|
||||
+'<div onclick="_nav(\'manager_schedule\')" style="flex:1;background:#EEF2FF;border-radius:13px;padding:10px 12px;cursor:pointer;text-align:center">'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user