v2: все базовые поля свободно вводимы (комбобокс), фикс кнопок
This commit is contained in:
parent
dd690fb40d
commit
c09efabc98
10
app.js
10
app.js
@ -264,10 +264,9 @@ function fieldInput(f, t){
|
||||
} else if(f.type==='textarea'){
|
||||
control = `<textarea class="input" name="${f.key}">${esc(val)}</textarea>`;
|
||||
} else if(f.type==='select'){
|
||||
control = `<select class="input" name="${f.key}">
|
||||
<option value="">— выберите —</option>
|
||||
${(f.options||[]).map(o=>`<option ${o===val?'selected':''}>${esc(o)}</option>`).join('')}
|
||||
</select>`;
|
||||
// Редактируемый комбобокс: можно выбрать из подсказок или ввести своё значение
|
||||
control = `<input class="input" list="dl_${f.key}" name="${f.key}" value="${esc(val)}" placeholder="выберите или введите своё значение">
|
||||
<datalist id="dl_${f.key}">${(f.options||[]).map(o=>`<option value="${esc(o)}">`).join('')}</datalist>`;
|
||||
} else if(f.type==='checkbox'){
|
||||
control = `<label class="check"><input type="checkbox" name="${f.key}" ${val===true||val==='true'?'checked':''}> Да</label>`;
|
||||
}
|
||||
@ -427,8 +426,7 @@ function renderReports(){
|
||||
function exportCSV(){
|
||||
if(state.teachers.length===0){ alert('Нет данных для экспорта'); return; }
|
||||
const fields = allFields();
|
||||
const header = ['ФИО','Дата рождения','Образование','Научная степень','Категория','Сертификат специалиста','Членство в ассоциациях','Клиническая база']
|
||||
.concat(state.customFields.map(f=>f.label));
|
||||
const header = fields.map(f=>f.label);
|
||||
const rows = state.teachers.map(t=>{
|
||||
return fields.map(f=>{
|
||||
let v = t[f.key] ?? '';
|
||||
|
||||
@ -64,7 +64,7 @@
|
||||
<label>Сгруппировать по:
|
||||
<select id="reportField" class="input"></select>
|
||||
</label>
|
||||
<button class="btn ghost" id="btnReportCsv">⤓ Скачать отчёт (CSV)</button>
|
||||
<button class="btn outline" id="btnReportCsv">⤓ Скачать отчёт (CSV)</button>
|
||||
</div>
|
||||
<div class="report-grid" id="reportGrid"></div>
|
||||
<div class="report-summary" id="reportSummary"></div>
|
||||
@ -80,7 +80,7 @@
|
||||
</div>
|
||||
<form id="editorForm" class="modal-body"></form>
|
||||
<div class="modal-foot">
|
||||
<button class="btn ghost" onclick="closeEditor()">Отмена</button>
|
||||
<button class="btn outline" onclick="closeEditor()">Отмена</button>
|
||||
<button class="btn danger" id="btnDelete" hidden>Удалить</button>
|
||||
<button class="btn primary" id="btnSave">Сохранить</button>
|
||||
</div>
|
||||
|
||||
@ -48,6 +48,8 @@ body{
|
||||
.btn.primary:hover{background:#0E7490}
|
||||
.btn.ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.18)}
|
||||
.btn.ghost:hover{background:rgba(255,255,255,.16)}
|
||||
.btn.outline{background:transparent;color:var(--ink);border:1px solid var(--border)}
|
||||
.btn.outline:hover{background:var(--gray-100)}
|
||||
.btn.danger{background:var(--red);color:#fff}
|
||||
.btn.danger:hover{background:#B91C1C}
|
||||
.btn.dark{background:var(--ink);color:#fff}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user