Initialize three instructed search tabs

This commit is contained in:
KrivovDE
2026-09-09 16:54:46 +03:00
parent 34d4ad979a
commit 3abf54cfc7

View File

@@ -1262,6 +1262,7 @@ const syncSearchAddButton=panel=>{
const getSearchRows=panel=>{ const getSearchRows=panel=>{
const registryChecked=[...panel.querySelectorAll('.filter-check')].some(label=>label.textContent.includes('Входящие в Реестр ОПК')&&label.querySelector('input')?.checked); const registryChecked=[...panel.querySelectorAll('.filter-check')].some(label=>label.textContent.includes('Входящие в Реестр ОПК')&&label.querySelector('input')?.checked);
const systemformingChecked=[...panel.querySelectorAll('.filter-check')].some(label=>label.textContent.includes('Системообразующие организации')&&label.querySelector('input')?.checked); const systemformingChecked=[...panel.querySelectorAll('.filter-check')].some(label=>label.textContent.includes('Системообразующие организации')&&label.querySelector('input')?.checked);
const strategicChecked=[...panel.querySelectorAll('.filter-check')].some(label=>label.textContent.includes('Стратегические')&&label.querySelector('input')?.checked);
const isUlyanovskQuery=panel.querySelector('[name="region"]')?.value==='Ульяновская обл.'&&registryChecked&&systemformingChecked; const isUlyanovskQuery=panel.querySelector('[name="region"]')?.value==='Ульяновская обл.'&&registryChecked&&systemformingChecked;
const manager=panel.querySelector('[name="manager"]')?.value.trim().toLocaleLowerCase('ru-RU')||''; const manager=panel.querySelector('[name="manager"]')?.value.trim().toLocaleLowerCase('ru-RU')||'';
const ministry=panel.querySelector('[name="ministry"]')?.value||''; const ministry=panel.querySelector('[name="ministry"]')?.value||'';
@@ -1275,7 +1276,7 @@ const getSearchRows=panel=>{
const isSaturnQuery=identifier.includes('7610052644')||( const isSaturnQuery=identifier.includes('7610052644')||(
panel.querySelector('[name="region"]')?.value==='Ярославская обл.'&& panel.querySelector('[name="region"]')?.value==='Ярославская обл.'&&
(activity==='Производство с наукой'||industry==='Производство с наукой')&& (activity==='Производство с наукой'||industry==='Производство с наукой')&&
ministry.includes('промышленности и торговли')&&registryChecked ministry.includes('промышленности и торговли')&&registryChecked&&strategicChecked
); );
return isRksQuery||isRoscosmosQuery?[ return isRksQuery||isRoscosmosQuery?[
...(isRoscosmosQuery?[['Государственная корпорация по космической деятельности «Роскосмос»','7702388027','Москва г.','Ракетно-космическая промышленность','okb-roscosmos']]:[]), ...(isRoscosmosQuery?[['Государственная корпорация по космической деятельности «Роскосмос»','7702388027','Москва г.','Ракетно-космическая промышленность','okb-roscosmos']]:[]),
@@ -1738,6 +1739,57 @@ const initializeFilterPanel=panel=>{
getFilterPanels().forEach(initializeFilterPanel); getFilterPanels().forEach(initializeFilterPanel);
document.addEventListener('click',()=>closeCustomSelects()); document.addEventListener('click',()=>closeCustomSelects());
renumberFilterTabs(); renumberFilterTabs();
const defaultSearchPresets=[
{
fields:{region:'Ульяновская обл.'},
checks:['Входящие в Реестр ОПК','Системообразующие организации']
},
{
fields:{
manager:'Емельянов Константин Владимирович',
ministry:'Государственная корпорация по космической деятельности «Роскосмос»'
},
checks:['Входящие в Реестр ОПК']
},
{
fields:{
activity:'Производство с наукой',
region:'Ярославская обл.',
ministry:'Министерство промышленности и торговли Российской Федерации'
},
checks:['Входящие в Реестр ОПК','Стратегические (расп.№1226)']
}
];
const applyDefaultSearchPreset=(panel,preset)=>{
Object.entries(preset.fields).forEach(([name,value])=>{
const control=panel.querySelector(`[name="${name}"]`);
if(!control)return;
control.value=value;
control.dispatchEvent(new Event('input',{bubbles:true}));
control.dispatchEvent(new Event('change',{bubbles:true}));
});
preset.checks.forEach(labelText=>{
const check=[...panel.querySelectorAll('.filter-check')].find(label=>normalizeFilterText(label.querySelector(':scope > span')?.textContent)===labelText);
const checkbox=check?.querySelector('input[type="checkbox"]');
if(!checkbox)return;
checkbox.checked=true;
checkbox.dispatchEvent(new Event('change',{bubbles:true}));
});
};
const initializeDefaultSearchTabs=()=>{
defaultSearchPresets.forEach((preset,index)=>{
const panelName=index===0?'primary':`primary${index+1}`;
if(index>0){
filterPanelSequence=index+1;
createFilterTab(panelName);
}
const panel=document.getElementById(`filterPanel${panelName[0].toUpperCase()}${panelName.slice(1)}`);
applyDefaultSearchPreset(panel,preset);
updateSearchResults(panel);
});
setFilterPanel('primary');
};
initializeDefaultSearchTabs();
searchResults.addEventListener('click',event=>openSearchResult(event.target)); searchResults.addEventListener('click',event=>openSearchResult(event.target));
searchResults.addEventListener('keydown',event=>{ searchResults.addEventListener('keydown',event=>{
if(event.key==='Enter'||event.key===' '){ if(event.key==='Enter'||event.key===' '){