import{_ as $,r as l,o as F,b as d,i as C,d as s,f as P,q as T,t as n,F as D,B as M,n as I,H as U,u as q,I as R,z as v}from"./index-DGJ6dnLh.js";import{c as A}from"./maps-oN-j_GQV.js";import{u as L,s as H,g as j,a as G}from"./centre_maps-BJ03iu7g.js";import J from"./ErrorDialog-COuvC4wX.js";const K={key:0,class:"map-detail"},O={class:"map-header"},Q={class:"author"},W={class:"map-content"},X={class:"map-image"},Y=["src","alt"],Z={class:"map-info"},ss={class:"info-grid"},as={class:"info-item"},es={class:"info-value"},os={class:"info-item"},ts={class:"info-value"},ls={class:"info-item"},ns={class:"info-value"},is={class:"info-item"},rs={class:"info-value"},cs={class:"info-value"},us={class:"tags"},ds={class:"tag-list"},vs={class:"actions"},_s=["href"],ps={key:0,class:"score-dialog"},fs={class:"dialog-content"},ms={class:"dialog-header"},hs={class:"dialog-body"},gs={class:"score-section"},bs={class:"rating"},ws=["onClick"],ks={class:"dialog-footer"},ys={__name:"MapDetail",setup(Cs){const g=U(),b=q(),e=l(null),f=l(null),m=l(!1),w=l(""),k=l(""),_=l(null),r=(o,a="",t=null)=>{k.value=o,w.value=a,m.value=!0,_.value=t},S=()=>{m.value=!1,_.value&&(_.value(),_.value=null)},c=l(!1),u=l(0),p=l(!1),i=l(null),y=async()=>{try{const o=await G(e.value.name);f.value=o.rewards}catch(o){console.error("获取地图评分失败:",o)}},x=async()=>{try{await L(e.value.name),p.value=!0,await h()}catch(o){console.error("更新下载信息失败:",o),p.value=!0}},h=async()=>{if(R())try{i.value=await j(e.value.name),p.value=i.value.is_download}catch(o){console.error("获取用户地图信息失败:",o)}},B=()=>{if(!(i.value&&i.value.is_rewarded)){if(!R()){r("请先登录后再进行评分","",()=>{b.push({path:"/backend/login",query:{redirect:g.fullPath}})});return}if(!p.value){r("请先下载地图后再进行评分");return}c.value=!0}},E=async()=>{try{e.value=await A(g.params.id),await Promise.all([h(),y()])}catch(o){console.error("获取地图详情失败:",o),r("获取地图详情失败,请稍后重试")}},N=()=>{b.back()},V=o=>new Date(o).toLocaleDateString("zh-CN"),z=async()=>{if(u.value===0){r("请为地图进行评分");return}try{await H(e.value.name,u.value),c.value=!1,u.value=0,await Promise.all([h(),y()]),r("评分成功!")}catch(o){console.error("评分失败:",o),r("评分失败,请稍后重试")}};return F(()=>{E()}),(o,a)=>e.value?(v(),d("div",K,[s("div",{class:"back-button"},[s("button",{onClick:N,class:"back-btn"},a[3]||(a[3]=[s("span",{class:"back-icon"},"←",-1),T(" 返回列表 ")]))]),s("div",O,[s("h1",null,n(e.value.chinese_name),1),s("p",Q,"作者: "+n(e.value.user),1)]),s("div",W,[s("div",X,[s("img",{src:e.value.img_file,alt:e.value.chinese_name},null,8,Y)]),s("div",Z,[s("div",ss,[s("div",as,[a[4]||(a[4]=s("span",{class:"info-label"},"下载次数",-1)),s("span",es,n(e.value.download_count),1)]),s("div",os,[a[5]||(a[5]=s("span",{class:"info-label"},"收藏次数",-1)),s("span",ts,n(e.value.favourite_count),1)]),s("div",ls,[a[6]||(a[6]=s("span",{class:"info-label"},"玩家数量",-1)),s("span",ns,n(e.value.player_count),1)]),s("div",is,[a[7]||(a[7]=s("span",{class:"info-label"},"创建时间",-1)),s("span",rs,n(V(e.value.create_time)),1)]),s("div",null,[a[8]||(a[8]=s("span",{class:"info-label"},"地图评分",-1)),s("span",cs,n(f.value?f.value.toFixed(1):"暂无评分"),1)])]),s("div",us,[a[9]||(a[9]=s("h3",null,"标签",-1)),s("div",ds,[(v(!0),d(D,null,M(e.value.tags,t=>(v(),d("span",{key:t,class:"tag"},n(t),1))),128))])]),s("div",vs,[s("a",{href:e.value.zip_file,class:"download-btn",download:"",onClick:x},"下载地图",8,_s),s("a",{class:I(["score-btn",{disabled:i.value&&i.value.is_rewarded}]),onClick:B},n(i.value&&i.value.is_rewarded?"已评分":"地图评分"),3)])])]),c.value?(v(),d("div",ps,[s("div",{class:"dialog-overlay",onClick:a[0]||(a[0]=t=>c.value=!1)}),s("div",fs,[s("div",ms,[a[10]||(a[10]=s("h2",null,"评分",-1)),s("button",{class:"close-btn",onClick:a[1]||(a[1]=t=>c.value=!1)},"×")]),s("div",hs,[s("div",gs,[a[11]||(a[11]=s("h3",null,"地图评分",-1)),s("div",bs,[(v(),d(D,null,M(5,t=>s("span",{key:"map-"+t,class:I(["star",{active:t<=u.value}]),onClick:Ds=>u.value=t},"★",10,ws)),64))])])]),s("div",ks,[s("button",{class:"cancel-btn",onClick:a[2]||(a[2]=t=>c.value=!1)},"取消"),s("button",{class:"submit-btn",onClick:z},"提交评分")])])])):C("",!0),P(J,{visible:m.value,title:w.value,message:k.value,onClose:S},null,8,["visible","title","message"])])):C("",!0)}},xs=$(ys,[["__scopeId","data-v-d8aed9e1"]]);export{xs as default};