import{a8 as e,m as a,q as t,t as s,H as l,G as r,X as n,al as o,c as i,B as c,A as d,E as u,D as p,v as m,F as v,am as h,r as g,d as y,J as f,u as b,aj as x,w,an as k}from"./vue-vendor-GS00DpJy.js";import{u as S,a as _}from"./EmptyState.vue_vue_type_style_index_0_scoped_fb24dc77_lang-CriKEGZ4.js";import{_ as C,u as j}from"./index-XFdsC_4R.js";import{a1 as D,a2 as M,a3 as z,a4 as I,a5 as E,Q as F,o as O,a0 as R,M as B}from"./element-plus-CzySQqEG.js";import{H as P,u as A,i as N,a as L,b as H,c as T,d as U,e as $,f as q,g as G}from"./charts-DH_olTd-.js";import"./utils-UCiI1fAk.js";const V={class:"loading-container"},W={key:0,class:"product-card-skeleton"},J={class:"skeleton-header"},Q={class:"skeleton-title"},X={class:"skeleton-content"},K={class:"skeleton-footer"},Y={key:1,class:"table-skeleton"},Z={key:2,class:"chart-skeleton"},ee={class:"chart-placeholder"},ae={key:3,class:"list-skeleton"},te={class:"list-item-content"},se={key:4,class:"default-skeleton"};const le=C({name:"LoadingSkeleton",props:{type:{type:String,default:"default",validator:e=>["default","product-card","table","chart","list"].includes(e)},rows:{type:Number,default:5}}},[["render",function(o,i,c,d,u,p){const m=e("el-skeleton-item"),v=e("el-skeleton");return t(),a("div",V,["product-card"===c.type?(t(),a("div",W,[s("div",J,[l(m,{variant:"image",class:"skeleton-image"}),s("div",Q,[l(m,{variant:"h3",style:{width:"50%"}}),l(m,{variant:"text",style:{width:"30%","margin-top":"10px"}})])]),s("div",X,[l(m,{variant:"text",style:{width:"80%"}}),l(m,{variant:"text",style:{width:"60%"}}),l(m,{variant:"text",style:{width:"40%"}})]),s("div",K,[l(m,{variant:"button",style:{width:"80px",height:"32px"}}),l(m,{variant:"button",style:{width:"80px",height:"32px"}})])])):"table"===c.type?(t(),a("div",Y,[l(v,{rows:c.rows,animated:""},null,8,["rows"])])):"chart"===c.type?(t(),a("div",Z,[l(m,{variant:"h3",style:{width:"30%","margin-bottom":"20px"}}),s("div",ee,[l(m,{variant:"rect",style:{width:"100%",height:"300px"}})])])):"list"===c.type?(t(),a("div",ae,[(t(!0),a(r,null,n(c.rows,e=>(t(),a("div",{key:e,class:"list-item"},[l(m,{variant:"circle",style:{width:"40px",height:"40px"}}),s("div",te,[l(m,{variant:"h3",style:{width:"60%"}}),l(m,{variant:"text",style:{width:"80%"}})])]))),128))])):(t(),a("div",se,[l(v,{rows:c.rows,animated:""},null,8,["rows"])]))])}],["__scopeId","data-v-067b8c98"]]),re={class:"empty-state"},ne={class:"empty-container"},oe={class:"empty-icon"},ie={class:"empty-title"},ce={class:"empty-description"},de={class:"empty-actions"},ue=C({__name:"EmptyState",props:{type:{type:String,default:"data",validator:e=>["data","search","error","network","comparison"].includes(e)},title:{type:String,default:""},description:{type:String,default:""},showRefresh:{type:Boolean,default:!0},showBack:{type:Boolean,default:!1}},setup(r){const n=r,h=o(),g=i(()=>{switch(n.type){case"data":return E;case"search":return I;case"error":return z;case"network":return M;default:return D}}),y=i(()=>"comparison"===n.type?80:60),f=i(()=>{switch(n.type){case"error":return"#F56C6C";case"network":return"#E6A23C";default:return"#909399"}}),b=i(()=>{if(n.title)return n.title;switch(n.type){case"data":return"暂无数据";case"search":return"未找到相关结果";case"error":return"发生错误";case"network":return"网络连接失败";case"comparison":return"请选择要对比的产品";default:return"暂无内容"}}),x=i(()=>{if(n.description)return n.description;switch(n.type){case"data":return"当前没有可显示的数据";case"search":return"请尝试使用其他关键词搜索";case"error":return"应用遇到了一些问题,请稍后再试";case"network":return"请检查您的网络连接,然后重试";case"comparison":return"请在产品列表中选择2-4个产品进行对比";default:return"当前没有可显示的内容"}}),w=()=>{window.location.reload()},k=()=>{h.go(-1)};return(n,o)=>{const i=e("el-icon"),h=e("el-button");return t(),a("div",re,[s("div",ne,[s("div",oe,[l(i,{size:y.value,color:f.value},{default:c(()=>[(t(),d(u(g.value)))]),_:1},8,["size","color"])]),s("h3",ie,F(b.value),1),s("p",ce,F(x.value),1),s("div",de,[r.showRefresh?(t(),d(h,{key:0,type:"primary",onClick:w},{default:c(()=>[...o[0]||(o[0]=[v(" 刷新 ",-1)])]),_:1})):p("",!0),r.showBack?(t(),d(h,{key:1,onClick:k},{default:c(()=>[...o[1]||(o[1]=[v(" 返回 ",-1)])]),_:1})):p("",!0),m(n.$slots,"actions",{},void 0,!0)])])])}}},[["__scopeId","data-v-fb24dc77"]]);A([N,L,H,T,U,$,q,G]);const pe={name:"PerformanceCharts",components:{VChart:P},props:{product:{type:Object,required:!0},performanceHistory:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1}},setup:e=>({historyChartOption:i(()=>{if(!e.performanceHistory||0===e.performanceHistory.length)return{};const a=[],t=[];return e.performanceHistory.forEach(e=>{a.push(new Date(e.recordDate).toLocaleDateString()),t.push(e.score)}),{title:{text:`${e.product.name} 性能趋势`,left:"center"},tooltip:{trigger:"axis",formatter:function(e){return`${e[0].axisValue}
性能分数: ${e[0].value}`}},xAxis:{type:"category",data:a,axisLabel:{rotate:45}},yAxis:{type:"value",name:"性能分数"},series:[{name:"性能分数",type:"line",data:t,smooth:!0,symbolSize:8,lineStyle:{width:3,color:"#409EFF"},itemStyle:{color:"#409EFF"},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(64, 158, 255, 0.5)"},{offset:1,color:"rgba(64, 158, 255, 0.1)"}]}}}],grid:{left:"3%",right:"4%",bottom:"15%",containLabel:!0}}}),radarChartOption:i(()=>{if(!e.product||!e.product.performanceScores||0===e.product.performanceScores.length)return{};const a=[],t=[],s={"Geekbench Single-Core":3e3,"Geekbench Multi-Core":2e4,"3DMark Time Spy":2e4,"3DMark Fire Strike":3e4,AnTuTu:1e6,PCMark:8e3,"Cinebench R23":3e4,"Cinebench R20":8e3};return e.product.performanceScores.forEach(e=>{const l=e.benchmarkName,r=s[l]||100;a.push({name:l,max:r});const n=Math.min(100,e.score/r*100);t.push(n)}),{title:{text:`${e.product.name} 性能指标`,left:"center"},tooltip:{trigger:"item"},radar:{indicator:a,center:["50%","55%"],radius:"70%"},series:[{name:"性能指标",type:"radar",data:[{value:t,name:e.product.name,itemStyle:{color:"#409EFF"},areaStyle:{color:"rgba(64, 158, 255, 0.3)"}}]}]}})})},me={class:"performance-charts"},ve={class:"bg-white rounded-lg shadow-md p-6 mb-6"},he={key:0,class:"h-64 flex items-center justify-center bg-gray-50 rounded-lg"},ge={key:1,class:"h-80"},ye={class:"bg-white rounded-lg shadow-md p-6"},fe={key:0,class:"h-64 flex items-center justify-center bg-gray-50 rounded-lg"},be={key:1,class:"h-80"};const xe=C(pe,[["render",function(r,n,o,i,c,d){const u=e("v-chart");return t(),a("div",me,[s("div",ve,[n[1]||(n[1]=s("h2",{class:"text-lg font-semibold mb-4"},"性能历史趋势",-1)),o.performanceHistory&&0!==o.performanceHistory.length?(t(),a("div",ge,[l(u,{class:"h-full w-full",option:i.historyChartOption,loading:o.loading,autoresize:""},null,8,["option","loading"])])):(t(),a("div",he,[...n[0]||(n[0]=[s("p",{class:"text-gray-500"},"暂无历史数据",-1)])]))]),s("div",ye,[n[3]||(n[3]=s("h2",{class:"text-lg font-semibold mb-4"},"性能指标雷达图",-1)),o.product&&o.product.performanceScores&&0!==o.product.performanceScores.length?(t(),a("div",be,[l(u,{class:"h-full w-full",option:i.radarChartOption,loading:o.loading,autoresize:""},null,8,["option","loading"])])):(t(),a("div",fe,[...n[2]||(n[2]=[s("p",{class:"text-gray-500"},"暂无性能数据",-1)])]))])])}],["__scopeId","data-v-cd452c5b"]]),we=["src","alt"],ke=C({__name:"LazyImage",props:{src:{type:String,required:!0},alt:{type:String,default:""},placeholder:{type:String,default:"/placeholder.svg"},width:{type:String,default:"100%"},height:{type:String,default:"200px"},objectFit:{type:String,default:"cover"},placeholderSize:{type:Number,default:40},threshold:{type:Number,default:.1},useWebP:{type:Boolean,default:!0}},emits:["load","error"],setup(s,{emit:r}){h(e=>({dcb67c3a:s.width,edb6feac:s.height,v764b71ef:s.objectFit}));const n=s,o=r,d=g(null),u=g(!1),p=g(!1),m=g(!1),v=g(null),x=g(!1),w=i(()=>n.src?n.useWebP&&x.value?_(n.src):n.src:""),k=i(()=>["lazy-image",{"image-loaded":p.value,"image-error":m.value}]),S=i(()=>["image-placeholder",{"placeholder-error":m.value}]),_=e=>{if(e.includes(".webp"))return e;if(e.startsWith("http"))return e;const a=e.lastIndexOf(".");return a>-1?e.substring(0,a)+".webp":e},C=()=>{p.value=!0,o("load")},j=()=>{m.value=!0,o("error")};return y(()=>{x.value=(()=>{const e=document.createElement("canvas");return e.width=1,e.height=1,0===e.toDataURL("image/webp").indexOf("data:image/webp")})(),d.value&&(v.value=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(u.value=!0,v.value&&v.value.unobserve(e.target))})},{threshold:n.threshold}),v.value.observe(d.value))}),f(()=>{v.value&&v.value.disconnect()}),(r,n)=>{const o=e("el-icon");return t(),a("div",{class:"lazy-image-container",ref_key:"containerRef",ref:d},[p.value||u.value?(t(),a("img",{key:0,src:w.value,alt:s.alt,class:O(k.value),onLoad:C,onError:j},null,42,we)):(t(),a("div",{key:1,class:O(["image-placeholder",S.value])},[l(o,{class:"placeholder-icon",size:s.placeholderSize},{default:c(()=>[l(b(R))]),_:1},8,["size"])],2))],512)}}},[["__scopeId","data-v-1e18994f"]]),Se={class:"product-detail"},_e={key:2,class:"container mx-auto px-4 py-6"},Ce={class:"flex items-center mb-6 text-sm"},je={key:0,class:"text-gray-600"},De={class:"text-gray-900 font-medium"},Me={class:"bg-white rounded-lg shadow-md p-6 mb-6"},ze={class:"flex flex-col md:flex-row gap-6"},Ie={class:"w-full md:w-1/3"},Ee={class:"aspect-square bg-gray-100 rounded-lg overflow-hidden"},Fe={class:"w-full md:w-2/3"},Oe={class:"text-2xl font-bold text-gray-900 mb-2"},Re={class:"text-lg text-gray-600 mb-4"},Be={class:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-6"},Pe={class:"font-medium"},Ae={class:"font-medium"},Ne={class:"font-medium"},Le={class:"bg-white rounded-lg shadow-md p-6 mb-6"},He={key:0,class:"text-center py-8 text-gray-500"},Te={key:1,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"},Ue={class:"flex justify-between items-start mb-3"},$e={class:"font-semibold text-lg text-gray-800"},qe={class:"mb-4"},Ge={class:"flex items-baseline mb-2"},Ve={class:"relative"},We={class:"flex justify-between mt-1"},Je={class:"text-xs text-gray-400"},Qe={class:"text-sm text-gray-600 space-y-1 border-t pt-3"},Xe={class:"flex justify-between"},Ke={key:0,class:"flex justify-between"},Ye=["onClick"],Ze={class:"bg-white rounded-lg shadow-md p-6 mb-6"},ea={key:0,class:"text-center py-8 text-gray-500"},aa={key:1},ta={key:0,class:"font-medium"},sa={key:1,class:"text-gray-400"},la={class:"performance-charts"},ra={class:"bg-white rounded-lg shadow-md p-6 mt-6"},na={key:0,class:"text-center py-8 text-gray-500"},oa={key:1,class:"space-y-4"},ia={class:"font-medium"},ca={class:"text-sm text-gray-500"},da=["onClick"],ua=C({__name:"ProductDetail",props:{id:{type:String,required:!0}},setup(u){const m=u;x();const h=o(),y=S(),f=j(),b=_(),C=g(null),D=g(null),M=g(!1),z=g(null),I=g([]),E=g([]),R=g(!1),P=i(()=>{if(!C.value||!C.value.specifications||0===C.value.specifications.length)return{};const e={};C.value.specifications.forEach(a=>{let t="其他规格";a.name.includes("核心")||a.name.includes("线程")||a.name.includes("频率")||a.name.includes("缓存")||a.name.includes("架构")||a.name.includes("制程")?t="处理器规格":a.name.includes("显存")||a.name.includes("核心频率")||a.name.includes("显存频率")||a.name.includes("流处理器")||a.name.includes("CUDA")||a.name.includes("ROP")?t="图形规格":a.name.includes("功耗")||a.name.includes("TDP")||a.name.includes("电压")||a.name.includes("温度")?t="功耗与散热":a.name.includes("接口")||a.name.includes("插槽")||a.name.includes("连接")||a.name.includes("总线")?t="接口规格":a.name.includes("尺寸")||a.name.includes("重量")||a.name.includes("材质")||a.name.includes("颜色")?t="物理规格":(a.name.includes("内存")||a.name.includes("存储")||a.name.includes("硬盘")||a.name.includes("SSD"))&&(t="存储规格"),e[t]||(e[t]=[]),e[t].push(a)});const a=Object.keys(e);return a.length>0&&0===I.value.length&&(I.value=[a[0]]),e}),A=e=>e>=90?"顶级":e>=80?"高端":e>=70?"中高端":e>=60?"中端":e>=50?"入门级":"低端",N=e=>e>=90?"danger":e>=80?"warning":e>=70?"primary":e>=60?"success":e>=50?"info":"",L=e=>e>=90?"text-red-600":e>=80?"text-orange-600":e>=70?"text-blue-600":e>=60?"text-green-600":e>=50?"text-teal-600":"text-gray-600",H=e=>({"Geekbench Single-Core":3e3,"Geekbench Multi-Core":2e4,"3DMark Time Spy":2e4,"3DMark Fire Strike":3e4,AnTuTu:1e6,PCMark:8e3,"Cinebench R23":3e4,"Cinebench R20":8e3}[e]||100),T=(e,a)=>{const t=H(a);return Math.min(100,Math.round(e/t*100))},U=e=>e>=90?"#f56565":e>=80?"#ed8936":e>=70?"#4299e1":e>=60?"#48bb78":e>=50?"#38b2ac":"#718096",$=async()=>{M.value=!0,z.value=null;try{C.value=await y.fetchProductById(m.id),C.value&&C.value.categoryId&&(D.value=await f.getCategoryById(C.value.categoryId)),await q()}catch(e){z.value="获取产品详情失败"}finally{M.value=!1}},q=async()=>{R.value=!0;try{const e=[],a=new Date;for(let t=11;t>=0;t--){const s=new Date(a);s.setMonth(s.getMonth()-t);const l=C.value.performanceScore||1e3,r=200*Math.random()-100,n=Math.round(l+r);e.push({recordDate:s.toISOString(),score:n})}E.value=e}catch(e){}finally{R.value=!1}},G=e=>{if(!e)return"未知";return new Date(e).toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit"})},V=e=>{e&&window.open(e,"_blank")},W=()=>{if(C.value){b.addProduct(C.value)?B.success("已添加到对比列表"):B.warning(b.error||"添加失败")}},J=()=>{D.value?h.push(`/category/${D.value.id}`):h.push("/")};return w(()=>m.id,()=>{m.id&&$()},{immediate:!0}),(o,i)=>{const u=e("el-tag"),m=e("el-progress"),h=e("el-table-column"),g=e("el-table"),y=e("el-collapse-item"),f=e("el-collapse");return t(),a("div",Se,[M.value?(t(),d(le,{key:0})):z.value?(t(),d(ue,{key:1,message:z.value,onRetry:$},null,8,["message"])):C.value?(t(),a("div",_e,[s("div",Ce,[s("button",{onClick:J,class:"text-blue-600 hover:text-blue-800 flex items-center"},[...i[1]||(i[1]=[s("svg",{class:"w-4 h-4 mr-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[s("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),v(" 返回 ",-1)])]),i[2]||(i[2]=s("span",{class:"mx-2"},"/",-1)),D.value?(t(),a("span",je,F(D.value.name),1)):p("",!0),i[3]||(i[3]=s("span",{class:"mx-2"},"/",-1)),s("span",De,F(C.value.name),1)]),s("div",Me,[s("div",ze,[s("div",Ie,[s("div",Ee,[l(ke,{src:C.value.imageUrl||"/placeholder-product.png",alt:C.value.name,class:"w-full h-full object-cover"},null,8,["src","alt"])])]),s("div",Fe,[s("h1",Oe,F(C.value.name),1),s("p",Re,F(C.value.model),1),s("div",Be,[s("div",null,[i[4]||(i[4]=s("span",{class:"text-gray-500"},"制造商:",-1)),s("span",Pe,F(C.value.manufacturer),1)]),s("div",null,[i[5]||(i[5]=s("span",{class:"text-gray-500"},"发布日期:",-1)),s("span",Ae,F(G(C.value.releaseDate)),1)]),s("div",null,[i[6]||(i[6]=s("span",{class:"text-gray-500"},"当前排名:",-1)),s("span",Ne,"#"+F(C.value.currentRank||"N/A"),1)]),s("div",null,[i[7]||(i[7]=s("span",{class:"text-gray-500"},"性能分数:",-1)),s("span",{class:O(["font-medium text-lg",L(C.value.performanceScore)])},F(C.value.performanceScore),3),l(u,{type:N(C.value.performanceScore),size:"small",class:"ml-2"},{default:c(()=>[v(F(A(C.value.performanceScore)),1)]),_:1},8,["type"])])]),s("div",{class:"flex gap-3"},[s("button",{onClick:W,class:"px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors"}," 添加到对比 ")])])])]),s("div",Le,[i[12]||(i[12]=s("h2",{class:"text-xl font-semibold mb-4"},"性能测试分数",-1)),C.value.performanceScores&&0!==C.value.performanceScores.length?(t(),a("div",Te,[(t(!0),a(r,null,n(C.value.performanceScores,e=>(t(),a("div",{key:e.id,class:"border border-gray-200 rounded-lg p-5 hover:shadow-lg transition-all duration-300"},[s("div",Ue,[s("h3",$e,F(e.benchmarkName),1),l(u,{type:N(e.score),size:"small",effect:"plain"},{default:c(()=>[v(F(A(e.score)),1)]),_:2},1032,["type"])]),s("div",qe,[s("div",Ge,[s("span",{class:O(["text-3xl font-bold mr-2",L(e.score)])},F(e.score),3),i[8]||(i[8]=s("span",{class:"text-sm text-gray-500"},"分",-1))]),s("div",Ve,[l(m,{percentage:T(e.score,e.benchmarkName),color:U(e.score),"show-text":!1,"stroke-width":10,"define-back-color":"#f3f4f6"},null,8,["percentage","color"]),s("div",We,[i[9]||(i[9]=s("span",{class:"text-xs text-gray-400"},"0",-1)),s("span",Je,F(H(e.benchmarkName)),1)])])]),s("div",Qe,[s("div",Xe,[i[10]||(i[10]=s("span",null,"测试日期:",-1)),s("span",null,F(G(e.testDate)),1)]),e.dataSource?(t(),a("div",Ke,[i[11]||(i[11]=s("span",null,"数据来源:",-1)),s("span",{class:"text-blue-600 cursor-pointer hover:underline",onClick:a=>V(e.dataSourceUrl)},F(e.dataSource),9,Ye)])):p("",!0)])]))),128))])):(t(),a("div",He," 暂无性能测试数据 ")),i[13]||(i[13]=k('