liuchengsen 1 hónapja
szülő
commit
9f2ecddaf4
3 módosított fájl, 23 hozzáadás és 5 törlés
  1. 6 0
      deploy/nginx-pharmacopoeia.conf
  2. 1 0
      static/H6mMYlyS21.txt
  3. 16 5
      static/index.html

+ 6 - 0
deploy/nginx-pharmacopoeia.conf

@@ -42,6 +42,12 @@ server {
         access_log off;
     }
 
+    # 微信公众号域名验证文件
+    location = /H6mMYlyS21.txt {
+        root /opt/pharmacopoeia-ai/static;
+        access_log off;
+    }
+
     # 前端静态页面
     location / {
         root /opt/pharmacopoeia-ai/static;

+ 1 - 0
static/H6mMYlyS21.txt

@@ -0,0 +1 @@
+a0304d3b01aa84ae11a07af6254c65ed

+ 16 - 5
static/index.html

@@ -109,6 +109,7 @@
     .login-modal-btn+.login-modal-btn{border-left:1px solid #eee}
     .login-modal-btn:focus-visible{outline:2px solid var(--bk);outline-offset:-3px}
     .login-modal-btn-primary{color:var(--bk);font-weight:600}
+@media(max-width:400px){.input-area{padding:8px 6px;gap:4px}.input-area input{padding:8px 10px;font-size:13px;min-height:40px}.btn{padding:6px 10px;font-size:12px;min-height:40px}.media-btn{min-width:40px;padding:4px 6px;font-size:20px;border-radius:10px}.media-label{font-size:9px}.tags{padding:6px 8px 8px;gap:4px}.tag-btn{font-size:11px;padding:4px 10px}.chat{padding:10px 8px}.msg{max-width:90%}.header h1{font-size:15px}.header .sub{font-size:10px}.drug-list{padding:10px 8px}.drug-detail{padding:14px 10px}.search-box{padding:8px 10px}.drug-pager{padding:6px 8px}.pager button,.pager select{padding:4px 6px;font-size:11px}}
   </style>
 </head>
 <body>
@@ -388,6 +389,7 @@
     try{
       var ctrl=streamAbort?streamAbort:new AbortController();
       var r=await fetch(endpoint,{method:'POST',headers:authHeaders(),body:body,signal:ctrl.signal});
+      if(r.status===401){showLoginModal();aiDiv.classList.remove('streaming');STREAMING=false;resetSendBtn();contentDiv.innerHTML=md2html('请先登录后再提问');return}
       if(!r.ok){contentDiv.innerHTML=md2html('请求失败: HTTP '+r.status);aiDiv.classList.remove('streaming');STREAMING=false;resetSendBtn();return}
       sourcesData=[];
       var reader=r.body.getReader(),decoder=new TextDecoder(),buffer='',fullText='',eventType='';
@@ -480,7 +482,6 @@
   });
 
   window.send=function(){
-    if(!TOKEN){showLoginModal();return}
     var input=document.getElementById('userInput'),text=input.value.trim();
     var hasMedia=!!pendingMedia;
     if(!text&&!hasMedia)return;input.value='';if(STREAMING)return;
@@ -541,7 +542,8 @@
 
   window.loadDrugDetailBySrc=async function(drugName){
     try{
-      var r=await fetch(API_BASE+'/api/v1/drug/search?keyword='+encodeURIComponent(drugName)+'&page_size=10',{headers:authHeaders()});
+      var r=await fetch(API_BASE+'/api/v1/drug/search?keyword='+encodeURIComponent(drugName)+'&pageSize=10',{headers:authHeaders()});
+      if(r.status===401){showLoginModal();return}
       var d=await r.json();var items=d.items||d.data||[];
       // 2025年版优先,再精确匹配
       items.sort(function(a,b){
@@ -559,9 +561,11 @@
   var ALL_DRUGS=[],drugPage=1,drugTotalPages=1,drugPageSize=20,drugKeyword='';
   async function loadDrugList(page){
     page=page||1;drugPage=page;
-    var url=API_BASE+'/api/v1/drug/search?page='+page+'&page_size='+drugPageSize;
+    var url=API_BASE+'/api/v1/drug/search?page='+page+'&pageSize='+drugPageSize;
     if(drugKeyword) url+='&keyword='+encodeURIComponent(drugKeyword);
-    try{var r=await fetch(url,{headers:authHeaders()});var d=await r.json();
+    try{var r=await fetch(url,{headers:authHeaders()});
+      if(r.status===401){showLoginModal();return}
+      var d=await r.json();
       ALL_DRUGS=d.items||d.data||[];drugTotalPages=d.total_pages||1;
       renderDrugCards(ALL_DRUGS);
     }catch(e){ALL_DRUGS=[];renderDrugCards([])}
@@ -601,6 +605,7 @@
   window.loadDrugDetail=async function(drugId){
     try{
       var r=await fetch(API_BASE+'/api/v1/drug/'+encodeURIComponent(drugId),{headers:authHeaders()});
+      if(r.status===401){showLoginModal();return}
       var d=await r.json();var drug=d.data||d;
       var dd=document.getElementById('tabDrugs');
       var topBar='<div style="display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e0e0e0">';
@@ -635,7 +640,13 @@
     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('tabDrugs').classList.toggle('hidden',tab!=='drugs');
-    if(tab==='drugs'){drugKeyword='';drugPage=1;document.getElementById('drugList').innerHTML='<div class="welcome"><div class="icon">⏳</div><p>加载中...</p></div>';document.getElementById('drugPager').innerHTML='';loadDrugList(1)}
+    if(tab==='drugs'){
+    drugKeyword='';drugPage=1;
+    showDrugList();
+    document.getElementById('drugList').innerHTML='<div class="welcome"><div class="icon">⏳</div><p>加载中...</p></div>';
+    document.getElementById('drugPager').innerHTML='';
+    loadDrugList(1);
+  }
   };
   // 初始化:打开本地数据库 → 恢复对话 → 预加载药品列表
       (async function init(){