Дизайн: /admin приведён к тёмной теме ВЕКТОРа
- Табы, кнопки «Пользователи·Аудит»/«Обновить»/«Открыть анализ», фильтр операций — dark (#161b22/#21262d/#30363d/#e6edf3), без белых инлайнов. - ClosedCases.css: светлая форма и чипы → dark-палитра (акцент #238636). - Аудит: РУ-лейблы case_closed/operation_complete.
This commit is contained in:
@@ -83,7 +83,7 @@ function OperationsTab() {
|
|||||||
<option value="">Все статусы</option>
|
<option value="">Все статусы</option>
|
||||||
{Object.entries(OP_STATUS_LABEL).map(([k, v]) => <option key={k} value={k}>{v}</option>)}
|
{Object.entries(OP_STATUS_LABEL).map(([k, v]) => <option key={k} value={k}>{v}</option>)}
|
||||||
</select>
|
</select>
|
||||||
<button type="button" onClick={load} style={{ padding: '6px 12px', fontSize: 13, cursor: 'pointer', fontFamily: 'inherit' }}>Обновить</button>
|
<button type="button" onClick={load} style={{ padding: '6px 12px', fontSize: 13, cursor: 'pointer', fontFamily: 'inherit', background: '#21262d', color: '#e6edf3', border: '1px solid #30363d', borderRadius: 6 }}>Обновить</button>
|
||||||
<span style={{ fontSize: 12, color: '#8b949e' }}>всего: {ops.length}</span>
|
<span style={{ fontSize: 12, color: '#8b949e' }}>всего: {ops.length}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ function OperationsTab() {
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => { window.location.href = `/analysis/${op.case_id}`; }}
|
onClick={() => { window.location.href = `/analysis/${op.case_id}`; }}
|
||||||
style={{ padding: '4px 10px', fontSize: 12, cursor: 'pointer', fontFamily: 'inherit' }}
|
style={{ padding: '4px 10px', fontSize: 12, cursor: 'pointer', fontFamily: 'inherit', background: '#21262d', color: '#58a6ff', border: '1px solid #30363d', borderRadius: 6 }}
|
||||||
>
|
>
|
||||||
Открыть анализ
|
Открыть анализ
|
||||||
</button>
|
</button>
|
||||||
@@ -442,7 +442,7 @@ function AdminDashboard() {
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => { window.location.href = '/users'; }}
|
onClick={() => { window.location.href = '/users'; }}
|
||||||
style={{ padding: '8px 14px', fontSize: 13, cursor: 'pointer', fontFamily: 'inherit' }}
|
style={{ padding: '8px 14px', fontSize: 13, cursor: 'pointer', fontFamily: 'inherit', background: '#21262d', color: '#e6edf3', border: '1px solid #30363d', borderRadius: 6 }}
|
||||||
>
|
>
|
||||||
Пользователи · Аудит
|
Пользователи · Аудит
|
||||||
</button>
|
</button>
|
||||||
@@ -463,9 +463,10 @@ function AdminDashboard() {
|
|||||||
padding: '6px 16px',
|
padding: '6px 16px',
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
border: '1px solid #c2cad4',
|
border: '1px solid #30363d',
|
||||||
borderBottom: activeTab === t.id ? 'none' : '1px solid #c2cad4',
|
borderBottom: activeTab === t.id ? 'none' : '1px solid #30363d',
|
||||||
background: activeTab === t.id ? '#fff' : '#eef2f7',
|
background: activeTab === t.id ? '#161b22' : 'transparent',
|
||||||
|
color: activeTab === t.id ? '#e6edf3' : '#8b949e',
|
||||||
fontWeight: activeTab === t.id ? 600 : 400,
|
fontWeight: activeTab === t.id ? 600 : 400,
|
||||||
fontFamily: 'inherit',
|
fontFamily: 'inherit',
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cc-panel {
|
.cc-panel {
|
||||||
background: #fff;
|
background: #161b22;
|
||||||
border: 1px solid #d5dbe3;
|
border: 1px solid #d5dbe3;
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
.cc-panel-header p {
|
.cc-panel-header p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #667;
|
color: #8b949e;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cc-form {
|
.cc-form {
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
margin: 14px 0 8px;
|
margin: 14px 0 8px;
|
||||||
padding-bottom: 4px;
|
padding-bottom: 4px;
|
||||||
border-bottom: 1px solid #e3e8ee;
|
border-bottom: 1px solid #e3e8ee;
|
||||||
color: #234;
|
color: #e6edf3;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 0.5px;
|
letter-spacing: 0.5px;
|
||||||
}
|
}
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cc-field span {
|
.cc-field span {
|
||||||
color: #456;
|
color: #8b949e;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
.cc-field select,
|
.cc-field select,
|
||||||
.cc-field textarea {
|
.cc-field textarea {
|
||||||
border: 1px solid #c2cad4;
|
border: 1px solid #c2cad4;
|
||||||
background: #fff;
|
background: #161b22;
|
||||||
padding: 5px 7px;
|
padding: 5px 7px;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
|
|
||||||
.cc-chip {
|
.cc-chip {
|
||||||
border: 1px solid #b8c2ce;
|
border: 1px solid #b8c2ce;
|
||||||
background: #f4f6f9;
|
background: #0d1117;
|
||||||
padding: 3px 10px;
|
padding: 3px 10px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -94,9 +94,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cc-chip-on {
|
.cc-chip-on {
|
||||||
background: #2b6cb0;
|
background: #238636;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
border-color: #2b6cb0;
|
border-color: #238636;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cc-actions {
|
.cc-actions {
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cc-primary-btn {
|
.cc-primary-btn {
|
||||||
background: #2b6cb0;
|
background: #238636;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
border: none;
|
border: none;
|
||||||
padding: 8px 18px;
|
padding: 8px 18px;
|
||||||
@@ -126,9 +126,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cc-alert-error {
|
.cc-alert-error {
|
||||||
background: #fde8e8;
|
background: rgba(248, 81, 73, 0.12);
|
||||||
border: 1px solid #e53e3e;
|
border: 1px solid #e53e3e;
|
||||||
color: #9b2c2c;
|
color: #ffb4b4;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Прогноз vs факт */
|
/* Прогноз vs факт */
|
||||||
@@ -147,20 +147,20 @@
|
|||||||
|
|
||||||
.cc-pred-item span {
|
.cc-pred-item span {
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
color: #567;
|
color: #8b949e;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 0.4px;
|
letter-spacing: 0.4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cc-pred-item strong {
|
.cc-pred-item strong {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
color: #1a365d;
|
color: #e6edf3;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cc-accuracy {
|
.cc-accuracy {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
padding: 8px 10px;
|
padding: 8px 10px;
|
||||||
background: #f0f5fb;
|
background: #0d1117;
|
||||||
border: 1px solid #b8d0ea;
|
border: 1px solid #b8d0ea;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
@@ -181,35 +181,35 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cc-table th {
|
.cc-table th {
|
||||||
background: #eef2f7;
|
background: #0d1117;
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 0.4px;
|
letter-spacing: 0.4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cc-table tbody tr:hover {
|
.cc-table tbody tr:hover {
|
||||||
background: #f7fafd;
|
background: #0d1117;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cc-hit {
|
.cc-hit {
|
||||||
color: #276749;
|
color: #3fb950;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cc-miss {
|
.cc-miss {
|
||||||
color: #c53030;
|
color: #f85149;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cc-link-btn {
|
.cc-link-btn {
|
||||||
border: none;
|
border: none;
|
||||||
background: none;
|
background: none;
|
||||||
color: #c53030;
|
color: #f85149;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cc-empty {
|
.cc-empty {
|
||||||
color: #678;
|
color: #8b949e;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
@@ -22,6 +22,8 @@ const STATUS_CLASS = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const EVENT_LABEL = {
|
const EVENT_LABEL = {
|
||||||
|
case_closed: 'Кейс закрыт',
|
||||||
|
operation_complete: 'Поиск завершён',
|
||||||
login: 'Вход',
|
login: 'Вход',
|
||||||
login_failed: 'Неудачный вход',
|
login_failed: 'Неудачный вход',
|
||||||
logout: 'Выход',
|
logout: 'Выход',
|
||||||
|
|||||||
Reference in New Issue
Block a user