Przeglądaj źródła

药品列表分页

liuchengsen 1 miesiąc temu
rodzic
commit
3b6f5b7444
1 zmienionych plików z 20 dodań i 9 usunięć
  1. 20 9
      static/index.html

+ 20 - 9
static/index.html

@@ -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>