mirror of
https://github.com/foxhui/WebAI2API.git
synced 2026-06-16 21:03:59 +08:00
2 lines
24 KiB
JavaScript
2 lines
24 KiB
JavaScript
import{c as a,I as Ne,_ as ht,k as _t,r as v,n as wt,G as he,o as kt,a as bt,j as u,d as n,w as l,g as i,e as M,f as _,F as b,p as q,h as c,u as h,H as xt,t as p,J as Ct,K as Te,C as $e,i as je,x as Ue,D as _e,b as x,R as Le,N as we,O as Mt,A as Dt,Q as Yt,m as y,M as Ie}from"./index.js";var Ot={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z"}}]},name:"play-circle",theme:"outlined"};function He(w){for(var r=1;r<arguments.length;r++){var g=arguments[r]!=null?Object(arguments[r]):{},k=Object.keys(g);typeof Object.getOwnPropertySymbols=="function"&&(k=k.concat(Object.getOwnPropertySymbols(g).filter(function(Y){return Object.getOwnPropertyDescriptor(g,Y).enumerable}))),k.forEach(function(Y){St(w,Y,g[Y])})}return w}function St(w,r,g){return r in w?Object.defineProperty(w,r,{value:g,enumerable:!0,configurable:!0,writable:!0}):w[r]=g,w}var Q=function(r,g){var k=He({},r,g.attrs);return a(Ne,He({},k,{icon:Ot}),null)};Q.displayName="PlayCircleOutlined";Q.inheritAttrs=!1;var zt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 01-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 01-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 00-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z"}}]},name:"redo",theme:"outlined"};function Ee(w){for(var r=1;r<arguments.length;r++){var g=arguments[r]!=null?Object(arguments[r]):{},k=Object.keys(g);typeof Object.getOwnPropertySymbols=="function"&&(k=k.concat(Object.getOwnPropertySymbols(g).filter(function(Y){return Object.getOwnPropertyDescriptor(g,Y).enumerable}))),k.forEach(function(Y){Pt(w,Y,g[Y])})}return w}function Pt(w,r,g){return r in w?Object.defineProperty(w,r,{value:g,enumerable:!0,configurable:!0,writable:!0}):w[r]=g,w}var ke=function(r,g){var k=Ee({},r,g.attrs);return a(Ne,Ee({},k,{icon:zt}),null)};ke.displayName="RedoOutlined";ke.inheritAttrs=!1;const Rt={style:{display:"flex",gap:"16px","flex-wrap":"wrap"}},Tt={style:{flex:"1","min-width":"280px"}},$t={style:{"margin-bottom":"12px"}},jt={style:{"margin-bottom":"12px"}},Ut={style:{display:"flex","align-items":"center",gap:"16px","flex-wrap":"wrap"}},Lt={key:0,class:"send-upload-area"},It={style:{"font-size":"12px",color:"#8c8c8c","margin-bottom":"4px"}},Ht={style:{margin:"0"}},Et={key:0,style:{"margin-top":"8px",display:"flex","flex-wrap":"wrap",gap:"4px"}},Nt={class:"stats-content"},Ft={class:"stats-numbers"},Bt={class:"stat-item neutral"},At={class:"stat-value"},Jt={class:"stat-item success"},Vt={class:"stat-value"},Gt={class:"stat-item error"},Wt={class:"stat-value"},qt={class:"stat-item neutral"},Qt={class:"stat-value"},Kt={class:"toolbar"},Xt={class:"toolbar-row"},Zt={class:"toolbar-row"},ea=["onClick"],ta=["onClick"],aa=["onClick"],la=["onClick"],sa=["src"],na={key:1,class:"thumb-video"},oa={key:1,class:"thumb-placeholder"},ia={key:2,class:"media-count"},ra={key:1,class:"no-media"},ua={class:"content-box"},da={class:"media-list"},ca={class:"content-box reasoning-box"},va={class:"media-gallery-large"},pa={class:"media-preview-large"},fa=["src"],ma=["src"],ga={key:1,class:"media-placeholder-large"},ya={class:"media-status"},ha={style:{display:"flex","align-items":"center",gap:"8px"}},_a={key:0,class:"preview-text-content"},wa={key:1,class:"preview-image-content"},ka=["src"],ba={key:2,class:"preview-video-content"},xa=["src"],Ca={__name:"request",setup(w){const r=_t(),g=v(!1),k=v([]),Y=v(0),N=v(1),K=v(50),m=v([]),z=v("all"),U=v(""),L=v(""),be=v([]),I=v([]),xe=v([]),F=v({total:0,success:0,failed:0,avgDuration:0}),oe=v(!1),d=v(null),ie=v(!1),T=v(!1),$=v(""),O=v("text"),X=v(""),Z=v("快速预览"),ee=v({}),V=v([]),S=v(""),H=v(""),D=v([]),re=v(!1),ue=v(!0);v(!1);const Fe=wt(()=>{if(!S.value)return!1;const t=V.value.find(e=>e.id===S.value);return t?t.image_policy!=="forbidden":!1});let G=null;const te=v(window.innerWidth<=768);let ae=null;const le={success:{color:"#52c41a",text:"成功",icon:$e},failed:{color:"#ff4d4f",text:"失败",icon:je},pending:{color:"#faad14",text:"处理中",icon:Ue}},j=async()=>{g.value=!0;try{const t=new URLSearchParams({page:N.value,pageSize:K.value});z.value&&z.value!=="all"&&t.append("status",z.value),U.value&&t.append("model",U.value),L.value&&t.append("search",L.value),m.value&&m.value.length===2&&(t.append("startDate",m.value[0].format("YYYY-MM-DD")),t.append("endDate",m.value[1].format("YYYY-MM-DD")));const e=await fetch(`/admin/history?${t.toString()}`,{headers:r.getHeaders()});if(e.ok){const o=await e.json();k.value=o.items||[],Y.value=o.total||0,Ce()}}catch{y.error("获取历史记录失败")}finally{g.value=!1}},Ce=async()=>{for(const t of k.value)if(t.responseMedia&&t.responseMedia.length>0){const e=t.responseMedia[0];e.localPath&&e.status==="downloaded"&&await de(e)}},se=async()=>{try{const t=new URLSearchParams;m.value&&m.value.length===2&&(t.append("startDate",m.value[0].format("YYYY-MM-DD")),t.append("endDate",m.value[1].format("YYYY-MM-DD")));const e=await fetch(`/admin/history/stats?${t.toString()}`,{headers:r.getHeaders()});e.ok&&(F.value=await e.json())}catch(t){console.error("获取统计失败",t)}},Me=async()=>{try{const t=await fetch("/admin/history/models",{headers:r.getHeaders()});t.ok&&(be.value=await t.json())}catch(t){console.error("获取模型列表失败",t)}},De=async t=>{oe.value=!0,ie.value=!0;try{const e=await fetch(`/admin/history/${t.id}`,{headers:r.getHeaders()});if(e.ok&&(d.value=await e.json(),d.value.responseMedia))for(const o of d.value.responseMedia)o.localPath&&o.status==="downloaded"&&await de(o)}catch{y.error("获取详情失败")}finally{ie.value=!1}},de=async t=>{if(!t.localPath)return null;const e=t.localPath.split("/").pop(),o=e;if(ee.value[o])return ee.value[o];try{const C=await fetch(`/admin/history/media/${e}`,{headers:r.getHeaders()});if(C.ok){const me=await C.blob(),W=URL.createObjectURL(me);return ee.value[o]=W,W}}catch(C){console.error("获取媒体失败",C)}return null},ne=t=>{if(!t||!t.localPath)return null;const e=t.localPath.split("/").pop();return ee.value[e]||null},Be=async(t,e)=>{try{const o=await fetch(`/admin/history/${t}/retry-media`,{method:"POST",headers:{...r.getHeaders(),"Content-Type":"application/json"},body:JSON.stringify({mediaIndex:e})});if(o.ok)y.success("下载成功"),j(),d.value&&d.value.id===t&&De(d.value);else{const C=await o.json();y.error(C.message||"下载失败")}}catch{y.error("请求失败")}},Ye=t=>{Ie.confirm({title:"确认删除",content:`确定要删除这 ${t.length} 条记录吗?关联的媒体文件也会被删除。`,okText:"删除",okType:"danger",cancelText:"取消",async onOk(){try{(await fetch("/admin/history",{method:"DELETE",headers:{...r.getHeaders(),"Content-Type":"application/json"},body:JSON.stringify({ids:t})})).ok?(y.success("删除成功"),fe(),j(),se()):y.error("删除失败")}catch{y.error("请求失败")}}})},Ae=()=>{if(!m.value||m.value.length!==2){y.warning("请先选择日期范围");return}Ie.confirm({title:"确认删除",content:`确定要删除 ${m.value[0].format("YYYY-MM-DD")} 至 ${m.value[1].format("YYYY-MM-DD")} 的所有记录吗?`,okText:"删除",okType:"danger",cancelText:"取消",async onOk(){try{const t=new URLSearchParams({startDate:m.value[0].format("YYYY-MM-DD"),endDate:m.value[1].format("YYYY-MM-DD")}),e=await fetch(`/admin/history?${t.toString()}`,{method:"DELETE",headers:r.getHeaders()});if(e.ok){const o=await e.json();y.success(`已删除 ${o.deleted} 条记录`),fe(),j(),se()}else y.error("删除失败")}catch{y.error("请求失败")}}})},Je=t=>t?new Date(t).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"-",ce=t=>t?t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`:"-",ve=(t,e=120)=>t?t.length>e?t.substring(0,e)+"...":t:"-",Oe=t=>t.responseMedia&&t.responseMedia.length>0,B=t=>Oe(t)?t.responseMedia[0]:null,Ve=[{title:"状态",dataIndex:"status",key:"status",width:70,align:"center"},{title:"Prompt",dataIndex:"prompt",key:"prompt",width:200},{title:"模型",dataIndex:"model_name",key:"model_name",width:150,ellipsis:!0},{title:"响应",key:"response",width:220},{title:"媒体",key:"media",width:180,align:"center"},{title:"时间",dataIndex:"created_at",key:"created_at",width:100,customRender:({value:t})=>Je(t)},{title:"耗时",dataIndex:"duration_ms",key:"duration_ms",width:60,align:"right",customRender:({value:t})=>ce(t)},{title:"",key:"action",width:100,align:"center",fixed:"right"}];he([z,U,m],()=>{N.value=1,j(),se()}),he(S,()=>{D.value=[]});let pe=null;he(L,()=>{pe&&clearTimeout(pe),pe=setTimeout(()=>{N.value=1,j()},300)});const Ge=t=>{N.value=t.current,K.value=t.pageSize,fe(),j()},We=()=>{j(),Me()},Se=async t=>{T.value=!0,O.value="text",Z.value="响应预览",t.status==="failed"?$.value=t.error_message||"未知错误":$.value=t.response_text||"无响应"},qe=t=>{T.value=!0,O.value="text",Z.value="Prompt 预览",$.value=t.prompt||"无内容"},Qe=async()=>{try{await navigator.clipboard.writeText($.value),y.success("已复制到剪贴板")}catch{y.error("复制失败")}},Ke=async t=>{const e=B(t);if(e){if(e.type==="image")O.value="image";else if(e.type==="video")O.value="video";else{O.value="text",$.value=e.originalUrl||"无预览",T.value=!0;return}if(e.status==="downloaded"){const o=await de(e);o?(X.value=o,T.value=!0):y.error("预览加载失败")}else $.value="媒体未下载或下载失败,请查看详情并重试下载",O.value="text",T.value=!0}},Xe=()=>{T.value=!1,$.value="",X.value="",O.value="text",Z.value="快速预览"},Ze=(t,e)=>{I.value=t,xe.value=e},et=()=>{if(I.value.length===0){y.warning("请先选择要删除的记录");return}Ye(I.value)},fe=()=>{I.value=[],xe.value=[]},tt=async()=>{try{const t=await fetch("/v1/models",{headers:r.getHeaders()});if(t.ok){const e=await t.json();V.value=e.data||[],V.value.length>0&&!S.value&&(S.value=V.value[0].id)}}catch(t){console.error("获取模型列表失败",t)}},at=t=>new Promise((e,o)=>{const C=new FileReader;C.readAsDataURL(t),C.onload=()=>e(C.result),C.onerror=o}),lt=t=>["image/png","image/jpeg","image/gif","image/webp"].includes(t.type)?(D.value.length>=10&&y.error("最多上传 10 张图片"),!1):(y.error("仅支持 PNG, JPEG, GIF, WebP 格式"),!1),st=async t=>{const e=t.file;if(e.status==="removed"){D.value=D.value.filter(o=>o.uid!==e.uid);return}try{const o=await at(e.originFileObj||e);D.value.push({uid:e.uid,name:e.name,base64:o})}catch{y.error("图片读取失败")}},ze=()=>{if(!S.value){y.warning("请选择模型");return}if(!H.value.trim()){y.warning("请输入提示词");return}let t;if(D.value.length>0){t=[{type:"text",text:H.value}];for(const o of D.value)t.push({type:"image_url",image_url:{url:o.base64}})}else t=H.value;const e={model:S.value,messages:[{role:"user",content:t}],stream:re.value};ue.value&&(e.reasoning=!0),fetch("/v1/chat/completions",{method:"POST",headers:{...r.getHeaders(),"Content-Type":"application/json"},body:JSON.stringify(e)}).catch(()=>{}),y.success("请求已发送"),H.value="",D.value=[],it(),setTimeout(()=>{Pe(),Re()},1e3)},nt=async t=>{try{await fetch("/admin/history",{method:"DELETE",headers:{...r.getHeaders(),"Content-Type":"application/json"},body:JSON.stringify({ids:[t]})})}catch{}},ot=t=>{const e=t.model_id||t.model_name;e&&(S.value=e),t.prompt&&(H.value=t.prompt),D.value=[];const o=t.status==="failed";ze(),o&&nt(t.id)},Pe=async()=>{try{const t=new URLSearchParams({page:N.value,pageSize:K.value});z.value&&z.value!=="all"&&t.append("status",z.value),U.value&&t.append("model",U.value),L.value&&t.append("search",L.value),m.value&&m.value.length===2&&(t.append("startDate",m.value[0].format("YYYY-MM-DD")),t.append("endDate",m.value[1].format("YYYY-MM-DD")));const e=await fetch(`/admin/history?${t.toString()}`,{headers:r.getHeaders()});if(e.ok){const o=await e.json();k.value=o.items||[],Y.value=o.total||0,Ce()}}catch{}},Re=async()=>{try{const t=new URLSearchParams;m.value&&m.value.length===2&&(t.append("startDate",m.value[0].format("YYYY-MM-DD")),t.append("endDate",m.value[1].format("YYYY-MM-DD")));const e=await fetch(`/admin/history/stats?${t.toString()}`,{headers:r.getHeaders()});e.ok&&(F.value=await e.json())}catch{}},it=()=>{G||(G=setInterval(()=>{Pe(),Re()},5e3))},rt=()=>{G&&(clearInterval(G),G=null)};return kt(()=>{ae=()=>{te.value=window.innerWidth<=768},window.addEventListener("resize",ae),j(),se(),Me(),tt()}),bt(()=>{rt(),ae&&window.removeEventListener("resize",ae)}),(t,e)=>{const o=_("a-select-option"),C=_("a-select"),me=_("a-textarea"),W=_("a-checkbox"),P=_("a-button"),ut=_("a-upload-dragger"),E=_("a-tag"),ge=_("a-card"),dt=_("a-range-picker"),A=_("a-divider"),ct=_("a-input-search"),ye=_("a-tooltip"),vt=_("a-space"),pt=_("a-table"),J=_("a-descriptions-item"),ft=_("a-descriptions"),mt=_("a-spin"),gt=_("a-drawer"),yt=_("a-modal");return n(),u(b,null,[a(ge,{title:"发送请求",bordered:!1,style:{"margin-bottom":"24px"}},{default:l(()=>[i("div",Rt,[i("div",Tt,[i("div",$t,[e[10]||(e[10]=i("div",{style:{"font-size":"12px",color:"#8c8c8c","margin-bottom":"4px"}},"模型",-1)),a(C,{value:S.value,"onUpdate:value":e[0]||(e[0]=s=>S.value=s),style:{width:"100%"},size:"small",placeholder:"选择模型","show-search":""},{default:l(()=>[(n(!0),u(b,null,q(V.value,s=>(n(),x(o,{key:s.id,value:s.id},{default:l(()=>[c(p(s.id),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),i("div",jt,[e[11]||(e[11]=i("div",{style:{"font-size":"12px",color:"#8c8c8c","margin-bottom":"4px"}},"提示词",-1)),a(me,{value:H.value,"onUpdate:value":e[1]||(e[1]=s=>H.value=s),placeholder:"输入提示词",rows:3,size:"small"},null,8,["value"])]),i("div",Ut,[a(W,{checked:re.value,"onUpdate:checked":e[2]||(e[2]=s=>re.value=s)},{default:l(()=>[...e[12]||(e[12]=[c("流式响应",-1)])]),_:1},8,["checked"]),a(W,{checked:ue.value,"onUpdate:checked":e[3]||(e[3]=s=>ue.value=s)},{default:l(()=>[...e[13]||(e[13]=[c("返回思考",-1)])]),_:1},8,["checked"]),a(P,{type:"primary",onClick:ze,disabled:!S.value},{icon:l(()=>[a(h(xt))]),default:l(()=>[e[14]||(e[14]=c(" 发送 ",-1))]),_:1},8,["disabled"])])]),Fe.value?(n(),u("div",Lt,[i("div",It," 附加图片 ("+p(D.value.length)+"/10) ",1),a(ut,{"file-list":[],multiple:!0,"before-upload":lt,onChange:st,accept:".png,.jpg,.jpeg,.gif,.webp","show-upload-list":!1},{default:l(()=>[i("p",Ht,[a(h(Ct),{style:{"font-size":"20px",color:"#1890ff"}})]),e[15]||(e[15]=i("p",{style:{"font-size":"12px",margin:"2px 0 0 0",color:"#8c8c8c"}}," 点击或拖拽上传图片 ",-1))]),_:1}),D.value.length>0?(n(),u("div",Et,[(n(!0),u(b,null,q(D.value,s=>(n(),x(E,{key:s.uid,closable:"",onClose:f=>D.value=D.value.filter(R=>R.uid!==s.uid)},{default:l(()=>[a(h(we)),c(" "+p(s.name.slice(0,15))+p(s.name.length>15?"...":""),1)]),_:2},1032,["onClose"]))),128))])):M("",!0)])):M("",!0)])]),_:1}),a(ge,{title:"请求记录",bordered:!1},{extra:l(()=>[a(P,{type:"link",danger:"",size:"small",onClick:Ae,disabled:!m.value||m.value.length!==2},{icon:l(()=>[a(h(_e))]),default:l(()=>[e[16]||(e[16]=c(" 删除所选范围 ",-1))]),_:1},8,["disabled"])]),default:l(()=>[i("div",Nt,[a(dt,{value:m.value,"onUpdate:value":e[4]||(e[4]=s=>m.value=s),format:"YYYY-MM-DD",placeholder:["开始日期","结束日期"],size:"small",class:"stats-date-picker"},null,8,["value"]),a(A,{type:"vertical",style:{height:"32px",margin:"0 16px"}}),i("div",Ft,[i("div",Bt,[a(h(Te)),i("span",At,p(F.value.total),1),e[17]||(e[17]=i("span",{class:"stat-label"},"总数",-1))]),i("div",Jt,[a(h($e)),i("span",Vt,p(F.value.success),1),e[18]||(e[18]=i("span",{class:"stat-label"},"成功",-1))]),i("div",Gt,[a(h(je)),i("span",Wt,p(F.value.failed),1),e[19]||(e[19]=i("span",{class:"stat-label"},"失败",-1))]),i("div",qt,[a(h(Ue)),i("span",Qt,p(ce(F.value.avgDuration)),1),e[20]||(e[20]=i("span",{class:"stat-label"},"平均耗时",-1))])])])]),_:1}),a(ge,{bordered:!1,style:{"margin-top":"24px"}},{default:l(()=>[i("div",Kt,[i("div",Xt,[a(C,{value:z.value,"onUpdate:value":e[5]||(e[5]=s=>z.value=s),class:"toolbar-status-select",size:"small",placeholder:"状态"},{default:l(()=>[a(o,{value:"all"},{default:l(()=>[...e[21]||(e[21]=[c("全部状态",-1)])]),_:1}),a(o,{value:"success"},{default:l(()=>[...e[22]||(e[22]=[c("成功",-1)])]),_:1}),a(o,{value:"failed"},{default:l(()=>[...e[23]||(e[23]=[c("失败",-1)])]),_:1}),a(o,{value:"pending"},{default:l(()=>[...e[24]||(e[24]=[c("处理中",-1)])]),_:1})]),_:1},8,["value"]),a(C,{value:U.value,"onUpdate:value":e[6]||(e[6]=s=>U.value=s),class:"toolbar-model-select",size:"small",placeholder:"全部模型","allow-clear":"","show-search":""},{default:l(()=>[(n(!0),u(b,null,q(be.value,s=>(n(),x(o,{key:s,value:s},{default:l(()=>[c(p(s),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(P,{size:"small",onClick:We},{icon:l(()=>[a(h(Le))]),_:1}),I.value.length>0?(n(),x(P,{key:0,type:"primary",danger:"",size:"small",onClick:et},{icon:l(()=>[a(h(_e))]),default:l(()=>[c(" 删除选中 ("+p(I.value.length)+") ",1)]),_:1})):M("",!0)]),i("div",Zt,[a(ct,{value:L.value,"onUpdate:value":e[7]||(e[7]=s=>L.value=s),placeholder:"搜索 Prompt 或响应内容",size:"small","allow-clear":"",style:{width:"100%"}},null,8,["value"])])]),a(pt,{columns:Ve,"data-source":k.value,loading:g.value,"row-selection":{selectedRowKeys:I.value,onChange:Ze,columnWidth:40},pagination:{current:N.value,pageSize:K.value,total:Y.value,showSizeChanger:!0,showQuickJumper:!0,showTotal:s=>`共 ${s} 条`,pageSizeOptions:["20","50","100","200"]},"row-key":"id",size:"small",scroll:{x:1e3},onChange:Ge},{bodyCell:l(({column:s,record:f})=>[s.key==="prompt"?(n(),u("div",{key:0,class:"multiline-text clickable",onClick:R=>qe(f),title:"点击查看完整内容"},p(ve(f.prompt,120)),9,ea)):s.key==="response"?(n(),u(b,{key:1},[f.status==="failed"?(n(),u("div",{key:0,class:"multiline-text error-text clickable",onClick:R=>Se(f),title:"点击查看完整内容"},p(ve(f.error_message,120)||"错误"),9,ta)):(n(),u("div",{key:1,class:"multiline-text response-text clickable",onClick:R=>Se(f),title:"点击查看完整内容"},p(ve(f.response_text,120)||"-"),9,aa))],64)):s.key==="media"?(n(),u(b,{key:2},[Oe(f)?(n(),u("div",{key:0,class:"media-thumb-cell",onClick:R=>Ke(f),title:"点击查看大图"},[B(f).status==="downloaded"?(n(),u(b,{key:0},[B(f).type==="image"?(n(),u("img",{key:0,src:ne(B(f)),class:"thumb-img",loading:"lazy"},null,8,sa)):B(f).type==="video"?(n(),u("div",na,[a(h(Q))])):M("",!0)],64)):(n(),u("div",oa,[B(f).type==="image"?(n(),x(h(we),{key:0})):(n(),x(h(Q),{key:1}))])),f.responseMedia.length>1?(n(),u("span",ia," +"+p(f.responseMedia.length-1),1)):M("",!0)],8,la)):(n(),u("span",ra,"-"))],64)):s.key==="status"?(n(),x(E,{key:3,color:le[f.status]?.color||"#8c8c8c",size:"small"},{default:l(()=>[c(p(le[f.status]?.text||f.status),1)]),_:2},1032,["color"])):s.key==="action"?(n(),x(vt,{key:4,size:0},{default:l(()=>[a(ye,{title:"重发"},{default:l(()=>[a(P,{type:"link",size:"small",onClick:R=>ot(f)},{icon:l(()=>[a(h(ke))]),_:1},8,["onClick"])]),_:2},1024),a(ye,{title:"详情"},{default:l(()=>[a(P,{type:"link",size:"small",onClick:R=>De(f)},{icon:l(()=>[a(h(Mt))]),_:1},8,["onClick"])]),_:2},1024),a(ye,{title:"删除"},{default:l(()=>[a(P,{type:"link",size:"small",danger:"",onClick:R=>Ye([f.id])},{icon:l(()=>[a(h(_e))]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1024)):M("",!0)]),_:1},8,["data-source","loading","row-selection","pagination"])]),_:1}),a(gt,{open:oe.value,"onUpdate:open":e[8]||(e[8]=s=>oe.value=s),title:"请求详情",placement:"right",width:te.value?"100%":700,"destroy-on-close":!0},{default:l(()=>[a(mt,{spinning:ie.value},{default:l(()=>[d.value?(n(),u(b,{key:0},[a(ft,{column:te.value?1:2,size:"small",bordered:""},{default:l(()=>[a(J,{label:"请求 ID",span:2},{default:l(()=>[i("code",null,p(d.value.id),1)]),_:1}),a(J,{label:"时间"},{default:l(()=>[c(p(new Date(d.value.created_at).toLocaleString("zh-CN")),1)]),_:1}),a(J,{label:"状态"},{default:l(()=>[a(E,{color:le[d.value.status]?.color},{default:l(()=>[c(p(le[d.value.status]?.text||d.value.status),1)]),_:1},8,["color"])]),_:1}),a(J,{label:"模型",span:2},{default:l(()=>[c(p(d.value.model_name||d.value.model_id||"-"),1)]),_:1}),a(J,{label:"耗时"},{default:l(()=>[c(p(ce(d.value.duration_ms)),1)]),_:1}),a(J,{label:"流式"},{default:l(()=>[c(p(d.value.isStreaming?"是":"否"),1)]),_:1})]),_:1},8,["column"]),a(A,{orientation:"left"},{default:l(()=>[...e[25]||(e[25]=[c("Prompt",-1)])]),_:1}),i("div",ua,p(d.value.prompt||"无"),1),d.value.inputImages&&d.value.inputImages.length>0?(n(),u(b,{key:0},[a(A,{orientation:"left"},{default:l(()=>[...e[26]||(e[26]=[c("输入图片",-1)])]),_:1}),i("div",da,[(n(!0),u(b,null,q(d.value.inputImages,(s,f)=>(n(),u("span",{key:f,class:"media-item"},[a(E,null,{default:l(()=>[c(p(s.split("/").pop()),1)]),_:2},1024)]))),128))])],64)):M("",!0),a(A,{orientation:"left"},{default:l(()=>[...e[27]||(e[27]=[c("响应内容",-1)])]),_:1}),i("div",{class:Dt(["content-box",{"error-box":d.value.status==="failed"}])},[d.value.status==="failed"?(n(),u(b,{key:0},[c(p(d.value.error_message||"未知错误"),1)],64)):(n(),u(b,{key:1},[c(p(d.value.response_text||"无响应"),1)],64))],2),d.value.reasoning_content?(n(),u(b,{key:1},[a(A,{orientation:"left"},{default:l(()=>[...e[28]||(e[28]=[c("思考过程",-1)])]),_:1}),i("div",ca,p(d.value.reasoning_content),1)],64)):M("",!0),d.value.responseMedia&&d.value.responseMedia.length>0?(n(),u(b,{key:2},[a(A,{orientation:"left"},{default:l(()=>[c("媒体内容 ("+p(d.value.responseMedia.length)+")",1)]),_:1}),i("div",va,[(n(!0),u(b,null,q(d.value.responseMedia,(s,f)=>(n(),u("div",{key:f,class:"media-card-large"},[i("div",pa,[s.status==="downloaded"&&ne(s)?(n(),u(b,{key:0},[s.type==="image"?(n(),u("img",{key:0,src:ne(s),alt:"生成图片"},null,8,fa)):s.type==="video"?(n(),u("video",{key:1,src:ne(s),controls:""},null,8,ma)):M("",!0)],64)):(n(),u("div",ga,[s.type==="image"?(n(),x(h(we),{key:0})):s.type==="video"?(n(),x(h(Q),{key:1})):(n(),x(h(Te),{key:2})),i("div",ya,[s.status==="failed"?(n(),x(E,{key:0,color:"red"},{default:l(()=>[...e[29]||(e[29]=[c("下载失败",-1)])]),_:1})):s.status==="external"?(n(),x(E,{key:1,color:"blue"},{default:l(()=>[...e[30]||(e[30]=[c("外部链接",-1)])]),_:1})):s.status==="pending"?(n(),x(E,{key:2,color:"orange"},{default:l(()=>[...e[31]||(e[31]=[c("待下载",-1)])]),_:1})):M("",!0)]),s.status==="failed"?(n(),x(P,{key:3,type:"primary",size:"small",onClick:R=>Be(d.value.id,f)},{icon:l(()=>[a(h(Le))]),default:l(()=>[e[32]||(e[32]=c(" 重试下载 ",-1))]),_:1},8,["onClick"])):M("",!0)]))])]))),128))])],64)):M("",!0)],64)):M("",!0)]),_:1},8,["spinning"])]),_:1},8,["open","width"]),a(yt,{open:T.value,"onUpdate:open":e[9]||(e[9]=s=>T.value=s),footer:null,width:te.value?"95%":O.value==="image"||O.value==="video"?"90%":"70%",centered:"",onCancel:Xe},{title:l(()=>[i("div",ha,[i("span",null,p(Z.value),1),O.value==="text"?(n(),x(P,{key:0,type:"text",size:"small",onClick:Qe},{icon:l(()=>[a(h(Yt))]),default:l(()=>[e[33]||(e[33]=c(" 复制全文 ",-1))]),_:1})):M("",!0)])]),default:l(()=>[O.value==="text"?(n(),u("div",_a,p($.value),1)):O.value==="image"?(n(),u("div",wa,[i("img",{src:X.value,alt:"预览图片"},null,8,ka)])):O.value==="video"?(n(),u("div",ba,[i("video",{src:X.value,controls:"",autoplay:""},null,8,xa)])):M("",!0)]),_:1},8,["open","width"])],64)}}},Da=ht(Ca,[["__scopeId","data-v-93a24eae"]]);export{Da as default};
|