Files
sbnews/server/public/mobile/assets/share-popup.jPxYxpem.js
T

2 lines
4.1 KiB
JavaScript

import{d as e,r as a,a3 as s,P as l,o as p,c as t,w as o,l as u,k as c,q as r,t as _,p as d,v as n,D as i,j as h,ax as v,_ as f}from"./index-DtAmsop1.js";import{g as m,c as y}from"./share.BMFrUMui.js";const k=f(e({__name:"share-popup",props:{show:{type:Boolean},pageType:{},pageId:{},path:{},title:{},description:{}},emits:["update:show"],setup(e,{emit:f}){const k=e,w=f,g=a(!1),b=a(""),x=a(""),C=a(""),I=a(""),q=a(""),j=a(""),z=a(""),T=a(!1);s(()=>k.show,e=>{g.value=e,e&&(async()=>{T.value=!0,x.value="",C.value="",b.value="",I.value="",q.value="",j.value="",z.value="";try{const e=await m(),a={page_type:k.pageType,invite_code:e.invite_code||"",path:k.path||"",title:k.title||"",description:k.description||""};k.pageId&&(a.page_id=k.pageId);const s=await y(a);b.value=s.short_url||"",I.value=s.code||"",x.value=s.poster_url||s.poster&&s.poster.poster_url||"",C.value=s.qrcode_url||"";const l=s.poster||{};q.value=l.poster_title||"",j.value=l.title||k.title||"",z.value=l.sharer&&l.sharer.nickname||""}catch(e){console.error("生成分享图失败",e),h({title:"生成失败,请重试",icon:"none"})}finally{T.value=!1}})()},{immediate:!0}),s(g,e=>{!e&&k.show&&w("update:show",!1)});const V=()=>{const e=x.value||C.value;if(!e)return void h({title:"图片生成中...",icon:"none"});const a=document.createElement("a");a.href=e,a.download=`share_${k.pageType}_${k.pageId||""}.png`,a.target="_blank",a.click(),h({title:"已下载",icon:"success"})},F=()=>{b.value?v({data:b.value,success:()=>{h({title:"链接已复制",icon:"success"})}}):h({title:"链接生成中...",icon:"none"})},$=()=>{I.value?v({data:I.value,success:()=>{h({title:"分享码已复制",icon:"success"})}}):h({title:"分享码生成中...",icon:"none"})};return(e,a)=>{const s=r,h=l("u-icon"),v=c,f=d,m=l("u-popup");return p(),t(m,{modelValue:g.value,"onUpdate:modelValue":a[1]||(a[1]=e=>g.value=e),mode:"center",round:"16",onClose:a[2]||(a[2]=e=>w("update:show",!1))},{default:o(()=>[u(v,{class:"share-popup"},{default:o(()=>[u(v,{class:"share-popup__header"},{default:o(()=>[u(s,{class:"share-popup__title"},{default:o(()=>[_("分享给朋友")]),_:1}),u(v,{class:"share-popup__close",onClick:a[0]||(a[0]=e=>w("update:show",!1))},{default:o(()=>[u(h,{name:"close",size:"20"})]),_:1})]),_:1}),T.value?(p(),t(v,{key:0,class:"share-popup__placeholder"},{default:o(()=>[u(s,{class:"share-popup__placeholder-text"},{default:o(()=>[_("生成中...")]),_:1})]),_:1})):x.value?(p(),t(v,{key:1,class:"share-popup__poster"},{default:o(()=>[u(f,{src:x.value,class:"share-popup__poster-img",mode:"widthFix"},null,8,["src"])]),_:1})):C.value?(p(),t(v,{key:2,class:"share-popup__card"},{default:o(()=>[u(v,{class:"share-popup__card-header"},{default:o(()=>[u(s,{class:"share-popup__card-appname"},{default:o(()=>[_(n(q.value),1)]),_:1}),z.value?(p(),t(s,{key:0,class:"share-popup__card-sharer"},{default:o(()=>[_("分享自 "+n(z.value),1)]),_:1})):i("",!0)]),_:1}),u(v,{class:"share-popup__card-qr-wrap"},{default:o(()=>[u(f,{src:C.value,class:"share-popup__card-qr",mode:"widthFix"},null,8,["src"])]),_:1}),j.value?(p(),t(s,{key:0,class:"share-popup__card-title"},{default:o(()=>[_(n(j.value),1)]),_:1})):i("",!0)]),_:1})):(p(),t(v,{key:3,class:"share-popup__placeholder"},{default:o(()=>[u(s,{class:"share-popup__placeholder-text"},{default:o(()=>[_("暂无图片")]),_:1})]),_:1})),I.value?(p(),t(v,{key:4,class:"share-popup__code"},{default:o(()=>[u(s,{class:"share-popup__code-label"},{default:o(()=>[_("分享码:")]),_:1}),u(s,{class:"share-popup__code-value"},{default:o(()=>[_(n(I.value),1)]),_:1}),u(s,{class:"share-popup__code-copy",onClick:$},{default:o(()=>[_("复制")]),_:1})]),_:1})):i("",!0),u(v,{class:"share-popup__actions"},{default:o(()=>[u(v,{class:"share-popup__btn share-popup__btn--save",onClick:V},{default:o(()=>[u(h,{name:"download",size:"18",color:"#fff"}),u(s,null,{default:o(()=>[_("保存图片")]),_:1})]),_:1}),u(v,{class:"share-popup__btn share-popup__btn--copy",onClick:F},{default:o(()=>[u(h,{name:"link",size:"18",color:"#fff"}),u(s,null,{default:o(()=>[_("复制链接")]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])}}}),[["__scopeId","data-v-687b4238"]]);export{k as S};