DCFronted/dist/assets/MapDetail-DWR_2AZj.js
2025-07-06 20:54:40 +08:00

2 lines
4.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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};