|
@@ -309,21 +309,32 @@ function doSend(text,media){
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 药品库
|
|
// 药品库
|
|
|
-var ALL_DRUGS=[];
|
|
|
|
|
-async function loadDrugList(){
|
|
|
|
|
|
|
+var ALL_DRUGS=[],drugPage=1,drugTotalPages=1,drugPageSize=20,drugKeyword='';
|
|
|
|
|
+async function loadDrugList(page){
|
|
|
if(!TOKEN) await getToken();
|
|
if(!TOKEN) await getToken();
|
|
|
- try{var r=await fetch(API_BASE+'/api/v1/drug/search?page_size=200',{headers:authHeaders()});var d=await r.json();ALL_DRUGS=d.items||d.data||[];renderDrugCards(ALL_DRUGS)}catch(e){console.log('drug load err',e);ALL_DRUGS=[];renderDrugCards([])}
|
|
|
|
|
|
|
+ page=page||1;drugPage=page;
|
|
|
|
|
+ var url=API_BASE+'/api/v1/drug/search?page='+page+'&page_size='+drugPageSize;
|
|
|
|
|
+ if(drugKeyword) url+='&keyword='+encodeURIComponent(drugKeyword);
|
|
|
|
|
+ try{var r=await fetch(url,{headers:authHeaders()});var d=await r.json();
|
|
|
|
|
+ ALL_DRUGS=d.items||d.data||[];drugTotalPages=d.total_pages||1;
|
|
|
|
|
+ renderDrugCards(ALL_DRUGS);
|
|
|
|
|
+ }catch(e){ALL_DRUGS=[];renderDrugCards([])}
|
|
|
}
|
|
}
|
|
|
window.searchDrugs=function(){
|
|
window.searchDrugs=function(){
|
|
|
- var kw=(document.getElementById('drugSearchInput').value||'').trim().toLowerCase();
|
|
|
|
|
- if(!kw){renderDrugCards(ALL_DRUGS);return}
|
|
|
|
|
- var filtered=ALL_DRUGS.filter(function(d){return(d.name||'').includes(kw)||(d.pinyin||'').toLowerCase().includes(kw)||(d.name_en||'').toLowerCase().includes(kw)||(d.category||'').includes(kw)});
|
|
|
|
|
- renderDrugCards(filtered);
|
|
|
|
|
|
|
+ drugKeyword=(document.getElementById('drugSearchInput').value||'').trim();
|
|
|
|
|
+ loadDrugList(1);
|
|
|
|
|
+ return false;
|
|
|
};
|
|
};
|
|
|
function renderDrugCards(items){
|
|
function renderDrugCards(items){
|
|
|
var h='';
|
|
var h='';
|
|
|
if(!items.length){document.getElementById('drugList').innerHTML='<div class="welcome"><div class="icon">📭</div><p>未找到,尝试其他关键词</p></div>';return}
|
|
if(!items.length){document.getElementById('drugList').innerHTML='<div class="welcome"><div class="icon">📭</div><p>未找到,尝试其他关键词</p></div>';return}
|
|
|
for(var i=0;i<items.length;i++){var d=items[i];h+='<div class="drug-card" onclick="loadDrugDetail(\''+escAttr(d.drug_id)+'\')"><h3>'+esc(d.name)+'</h3><div class="meta">'+(d.category||'')+' · '+(d.source_version||'')+'</div></div>'}
|
|
for(var i=0;i<items.length;i++){var d=items[i];h+='<div class="drug-card" onclick="loadDrugDetail(\''+escAttr(d.drug_id)+'\')"><h3>'+esc(d.name)+'</h3><div class="meta">'+(d.category||'')+' · '+(d.source_version||'')+'</div></div>'}
|
|
|
|
|
+ // 分页控制
|
|
|
|
|
+ h+='<div style="display:flex;justify-content:center;gap:12px;padding:16px;align-items:center">';
|
|
|
|
|
+ h+='<button class="btn btn-secondary" style="min-height:36px;padding:6px 16px;font-size:12px" onclick="loadDrugList('+(drugPage-1)+')" '+(drugPage<=1?'disabled':'')+'>← 上一页</button>';
|
|
|
|
|
+ h+='<span style="font-size:13px;color:var(--sub)">'+drugPage+' / '+drugTotalPages+'</span>';
|
|
|
|
|
+ h+='<button class="btn btn-secondary" style="min-height:36px;padding:6px 16px;font-size:12px" onclick="loadDrugList('+(drugPage+1)+')" '+(drugPage>=drugTotalPages?'disabled':'')+'>下一页 →</button>';
|
|
|
|
|
+ h+='</div>';
|
|
|
document.getElementById('drugList').innerHTML=h;
|
|
document.getElementById('drugList').innerHTML=h;
|
|
|
}
|
|
}
|
|
|
window.loadDrugDetail=async function(drugId){
|
|
window.loadDrugDetail=async function(drugId){
|
|
@@ -341,14 +352,14 @@ window.loadDrugDetail=async function(drugId){
|
|
|
}catch(e){document.getElementById('tabDrugs').innerHTML='<div class="welcome"><p>加载失败</p></div>'}
|
|
}catch(e){document.getElementById('tabDrugs').innerHTML='<div class="welcome"><p>加载失败</p></div>'}
|
|
|
};
|
|
};
|
|
|
window.showDrugList=function(){
|
|
window.showDrugList=function(){
|
|
|
- document.getElementById('tabDrugs').innerHTML='<div class="search-box"><input id="drugSearchInput" placeholder="搜索药品名称..." oninput="searchDrugs()"></div><div class="drug-list" id="drugList"></div>';
|
|
|
|
|
|
|
+ document.getElementById('tabDrugs').innerHTML='<div class="search-box"><input id="drugSearchInput" placeholder="搜索药品名称..." oninput="searchDrugs()" value="'+escAttr(drugKeyword)+'"></div><div class="drug-list" id="drugList"></div>';
|
|
|
renderDrugCards(ALL_DRUGS);
|
|
renderDrugCards(ALL_DRUGS);
|
|
|
};
|
|
};
|
|
|
window.switchTab=function(tab){
|
|
window.switchTab=function(tab){
|
|
|
document.querySelectorAll('.nav-btn').forEach(function(b){b.classList.toggle('active',b.dataset.tab===tab)});
|
|
document.querySelectorAll('.nav-btn').forEach(function(b){b.classList.toggle('active',b.dataset.tab===tab)});
|
|
|
document.getElementById('tabChat').classList.toggle('hidden',tab!=='chat');
|
|
document.getElementById('tabChat').classList.toggle('hidden',tab!=='chat');
|
|
|
document.getElementById('tabDrugs').classList.toggle('hidden',tab!=='drugs');
|
|
document.getElementById('tabDrugs').classList.toggle('hidden',tab!=='drugs');
|
|
|
- if(tab==='drugs'){document.getElementById('drugList').innerHTML='<div class="welcome"><div class="icon">⏳</div><p>加载中...</p></div>';loadDrugList()}
|
|
|
|
|
|
|
+ if(tab==='drugs'){drugKeyword='';drugPage=1;document.getElementById('drugList').innerHTML='<div class="welcome"><div class="icon">⏳</div><p>加载中...</p></div>';loadDrugList(1)}
|
|
|
};
|
|
};
|
|
|
loadDrugList();
|
|
loadDrugList();
|
|
|
</script>
|
|
</script>
|