6 lines
25 KiB
JavaScript
6 lines
25 KiB
JavaScript
import{o as Z,c as I,r as x,a as Q,b as s,d as a,w as f,e,t as b,n as S,f as p,F as z,g as $,h as xe,i as he,v as ye,j as we,k as H,u as M,l as R,m as J,p as ke,s as _e,q as Ae}from"./index-B7Bp0mE9.js";import{_ as X,b as Te}from"./_plugin-vue_export-helper-CdZ5VnM5.js";function Me(){const i=x(!1),_=x(!1),n=x([]),d=x("");let c=null,k=null;const T=I(()=>{const r=n.value.find(w=>w.url===d.value);return(r==null?void 0:r.name)||"背景音乐"}),C=()=>c||(c=new Audio,c.loop=!0,c.volume=.5,c.preload="auto",c.addEventListener("canplay",()=>_.value=!0),c.addEventListener("play",()=>i.value=!0),c.addEventListener("pause",()=>i.value=!1),c),y=async r=>{if(!r)return;const w=C();w.src!==r&&(w.src=r),d.value=r;try{await w.play(),i.value=!0}catch{i.value=!1}},q=(r,w)=>{var j;n.value=Array.isArray(r)?r.slice().filter(E=>E&&E.url):[];const N=((j=n.value[0])==null?void 0:j.url)||"",U=w&&n.value.some(E=>E.url===w)?w:N;d.value=U,c&&i.value&&U&&y(U)},L=r=>{n.value.some(w=>w.url===r)&&(i.value?y(r):d.value=r)},F=()=>y(d.value),D=async()=>{if(!d.value)return!1;try{return await y(d.value),i.value}catch{return!1}},m=()=>{c&&c.pause(),i.value=!1},h=()=>{i.value?m():F()},u=()=>{const r=()=>{F(),v()};k=r,window.addEventListener("pointerdown",r,{once:!0}),window.addEventListener("keydown",r,{once:!0})},v=()=>{k&&(window.removeEventListener("pointerdown",k),window.removeEventListener("keydown",k),k=null)};return Z(()=>{m(),v(),c&&(c.src="",c=null)}),{isPlaying:i,isReady:_,tracks:n,activeUrl:d,currentName:T,setTracks:q,setActive:L,play:F,pause:m,toggle:h,attemptAutoplay:D,armAutoplay:u}}const ze={class:"gallery"},$e={class:"text-center mb-5 px-4"},Se={class:"text-xl text-[#a88c6b] tracking-[0.3em] font-light block mb-2"},Ce={class:"text-[9px] text-[#8A8680] uppercase tracking-[0.4em] block mb-4"},Fe={class:"text-[12px] text-[#6b6863] font-light leading-relaxed mx-auto max-w-[280px] tracking-widest block whitespace-pre-wrap"},Ee=["src"],Ie={key:1,class:"overlap-wrap relative w-full mt-2"},Le=["src"],De=["src"],Ue={key:2,class:"relative w-full aspect-square mt-6 grid grid-cols-3 grid-rows-3 gap-1.5 z-20"},Re=["src"],qe=["src"],Ne={key:3,class:"grid grid-cols-3 gap-1.5 px-4 mt-6"},je=["src"],We={key:4,class:"g-masonry mt-6 px-1"},Oe=["src"],He={key:5,class:"relative mt-6"},Ve=["src"],Pe={class:"g-dots"},Be=["onClick"],Ye={key:6,class:"g-polaroid mt-6"},Ge=["src"],Ke={key:7,class:"text-center text-[#8A8680] text-[12px] mt-6"},Je={__name:"PhotoGallery",props:{page:{type:Object,required:!0}},setup(i){const _=i,n=I(()=>Te(_.page.borderStyle)),d=I(()=>_.page.singleWidth==="full"?"max-w-none":"max-w-[300px]"),c=I(()=>{if(_.page.singleWidth==="full"){const m={width:"calc(100% + 48px)",marginLeft:"-24px",marginRight:"-24px"};return _.page.singleKeepRatio?m:{...m,aspectRatio:"4 / 5"}}return{aspectRatio:"4 / 5"}}),k=I(()=>n.value+(_.page.singleWidth==="full"&&_.page.singleKeepRatio?" gf-natural":"")),T=x(0),C=x(null);function y(m){var v;const h=((v=_.page.images)==null?void 0:v.length)||0;if(!h)return;T.value=(m+h)%h;const u=C.value;u&&u.scrollTo({left:T.value*u.clientWidth,behavior:"smooth"})}function q(){const m=C.value;if(!m)return;const h=Math.round(m.scrollLeft/m.clientWidth);h!==T.value&&(T.value=h)}const L=[-5,4,-3,6,-4,3,-2,5],F=[0,10,-8,6,-10,8,4,-6];function D(m){const h=L[m%L.length],u=F[m%F.length];return`rotate(${h}deg) translateY(${u}px)`}return(m,h)=>{const u=Q("reveal");return s(),a("div",ze,[f((s(),a("div",$e,[e("span",Se,b(i.page.title),1),e("span",Ce,b(i.page.subtitle),1),e("span",Fe,b(i.page.desc),1)])),[[u,"up"]]),i.page.type==="single"?f((s(),a("div",{key:0,class:p(["w-full mx-auto mt-6",d.value]),style:S(c.value)},[e("div",{class:p(k.value)},[e("img",{src:i.page.img1},null,8,Ee)],2)],6)),[[u,{variant:"scale",delay:100}]]):i.page.type==="overlap"?(s(),a("div",Ie,[f((s(),a("div",{class:p(["absolute left-0 top-0 w-[72%] h-[78%] z-10 -rotate-2",n.value])},[e("img",{src:i.page.img1},null,8,Le)],2)),[[u,{variant:"left",delay:100}]]),f((s(),a("div",{class:p(["absolute right-0 bottom-0 w-[56%] h-[62%] z-20 rotate-3",n.value])},[e("img",{src:i.page.img2},null,8,De)],2)),[[u,{variant:"right",delay:300}]])])):i.page.type==="one-large-five-small"?(s(),a("div",Ue,[f((s(),a("div",{class:p(["col-span-2 row-span-2 relative",n.value])},[e("img",{src:i.page.images[0],class:"hover:scale-105 transition-transform duration-1000"},null,8,Re)],2)),[[u,{variant:"scale",delay:100}]]),(s(),a(z,null,$([1,2,3,4,5],v=>f(e("div",{key:v,class:p(["relative",n.value])},[e("img",{src:i.page.images[v]},null,8,qe)],2),[[u,{variant:"up",delay:v*80}]])),64))])):i.page.type==="nine-grid"?(s(),a("div",Ne,[(s(!0),a(z,null,$(i.page.images,(v,r)=>f((s(),a("div",{key:r,class:p(["aspect-square relative",n.value])},[e("img",{src:v,class:"hover:scale-105 transition-transform duration-700"},null,8,je)],2)),[[u,{variant:"scale",delay:r*60}]])),128))])):i.page.type==="masonry"?(s(),a("div",We,[(s(!0),a(z,null,$(i.page.images,(v,r)=>f((s(),a("div",{key:r,class:p(["g-masonry-item",n.value])},[e("img",{src:v},null,8,Oe)],2)),[[u,{variant:"up",delay:r*50}]])),128))])):i.page.type==="carousel"?(s(),a("div",He,[e("div",{ref_key:"trackRef",ref:C,class:"g-carousel-track no-scrollbar",onScroll:q},[(s(!0),a(z,null,$(i.page.images,(v,r)=>(s(),a("div",{key:r,class:p(["g-carousel-slide",n.value])},[e("img",{src:v},null,8,Ve)],2))),128))],544),e("button",{class:"g-arrow g-prev",onClick:h[0]||(h[0]=v=>y(T.value-1)),"aria-label":"上一张"},"‹"),e("button",{class:"g-arrow g-next",onClick:h[1]||(h[1]=v=>y(T.value+1)),"aria-label":"下一张"},"›"),e("div",Pe,[(s(!0),a(z,null,$(i.page.images,(v,r)=>(s(),a("button",{key:r,class:p(["g-dot",{active:r===T.value}]),onClick:w=>y(r)},null,10,Be))),128))])])):i.page.type==="polaroid"?(s(),a("div",Ye,[(s(!0),a(z,null,$(i.page.images,(v,r)=>f((s(),a("div",{key:r,class:"g-polaroid-item",style:S({transform:D(r)})},[e("img",{src:v},null,8,Ge)],4)),[[u,{variant:"scale",delay:r*70}]])),128))])):(s(),a("div",Ke,"未识别的版式:"+b(i.page.type),1))])}}},Ze=X(Je,[["__scopeId","data-v-7bc05578"]]),Qe={class:"wrapper relative w-full h-[100vh] bg-[#Fdfbf7] overflow-hidden text-[#2c2c2c]"},Xe={class:"curtain-emblem"},et={class:"emblem-inner"},tt={class:"emblem-names"},lt={class:"emblem-date"},st={key:0,class:"absolute inset-0 pointer-events-none overflow-hidden z-[1]"},at=["fill"],ot={key:1,class:"absolute inset-0 pointer-events-none overflow-hidden z-[1]"},nt={class:"absolute top-6 right-5 z-50 flex flex-col items-end gap-4"},rt={class:"music-wrap"},it={class:"flex flex-col gap-3 items-end"},ct={key:0,src:"https://api.iconify.design/lucide:music.svg?color=%23a88c6b",class:"w-4 h-4"},ut={key:1,src:"https://api.iconify.design/lucide:volume-x.svg?color=%23a88c6b",class:"w-4 h-4"},dt={key:0,class:"track-pop"},pt=["onClick"],vt={key:0,class:"eq"},mt={class:"tname"},ft={key:1,class:"tcheck"},gt={key:0,src:"https://api.iconify.design/lucide:pause.svg?color=%23a88c6b",class:"w-4 h-4"},bt={key:1,src:"https://api.iconify.design/lucide:play.svg?color=%23a88c6b",class:"w-4 h-4 ml-0.5"},xt={class:"flex flex-col items-center justify-between py-12 h-full w-full relative border-[0.5px] border-[#a88c6b]/20 bg-white/40"},ht={class:"text-center mt-6 z-10"},yt={class:"w-full max-w-[260px] aspect-[3/4] relative z-10"},wt={class:"relative w-full h-full z-10 bg-[#F7F6F2] shadow-md overflow-hidden"},kt=["src"],_t={class:"text-center z-10 mb-10 space-y-4 px-4"},At={class:"flex items-end justify-center gap-6 text-3xl font-light tracking-[0.2em]"},Tt={class:"flex flex-col items-center text-[11px] text-[#8A8680] tracking-[0.2em] mt-4 uppercase"},Mt={class:"flex flex-col items-center w-full"},zt={class:"flex justify-center gap-10 h-72 text-[#3A3A3A] text-lg leading-loose font-light"},$t={class:"vertical-text"},St={class:"vertical-text",style:{"padding-top":"3rem"}},Ct={class:"w-full h-full flex flex-col justify-center py-6 relative z-10"},Ft={class:"text-center mb-14"},Et={class:"relative w-full px-2 max-w-[340px] mx-auto"},It={class:"text-xl font-serif text-[#a88c6b] mb-1 font-light tracking-wider"},Lt={class:"text-[13px] tracking-[0.2em] text-[#3a3a3a] font-medium mb-1"},Dt={class:"text-[9px] tracking-[0.1em] text-[#8A8680] font-sans uppercase"},Ut={class:"w-full flex flex-col items-center z-10 relative py-10"},Rt={class:"w-full max-w-[200px] aspect-[3/4] rounded-t-full overflow-hidden mb-10 shadow-lg border-[4px] border-white relative"},qt=["src"],Nt={class:"text-center space-y-2 mb-10 px-4"},jt={class:"text-[14px] text-[#3A3A3A] tracking-widest font-medium block"},Wt={class:"text-[11px] text-[#8A8680] font-light tracking-[0.1em] leading-loose block max-w-[240px] mx-auto whitespace-pre-wrap"},Ot={class:"flex flex-col gap-4 w-full px-8 max-w-[280px]"},Ht={key:0,class:"space-y-6"},Vt={class:"flex flex-wrap gap-2"},Pt=["onClick"],Bt={key:1,class:"text-center py-10 flex flex-col items-center animate-fade-up"},Yt={__name:"index",setup(i){const _={scrollMode:"snap",petalEnabled:!0,bubbleEnabled:!0,introEnabled:!0,musicList:[],activeMusicUrl:"",freeScrollInterval:50,pageSwitchDuration:800},n=x({groom:"李明",bride:"王华",date:"2026-05-20",lunar:"农历四月初四 星期三",hotel:"杭州星光万丽大酒店",address:`杭州市西湖区星光大道88号
|
||
3楼大宴会厅`,formalText1:"两姓联姻 一堂缔约",formalText2:"良缘永结 匹配同称",heroImg:"https://images.unsplash.com/photo-1583939003579-730e3918a45a?auto=format&fit=crop&w=800&q=80",photoPages:[{type:"single",title:"初遇",subtitle:"FIRST MET",desc:`世界那么大,还是遇见了你。
|
||
于千万人之中,没有早一步也没有晚一步。`,img1:"https://images.unsplash.com/photo-1606800052052-a08af7148866?auto=format&fit=crop&w=600&q=80",borderStyle:"mat"},{type:"overlap",title:"相知",subtitle:"FALL IN LOVE",desc:`纵然万劫不复,纵然相思入骨。
|
||
我也待你眉眼如初,岁月如故。`,img1:"https://images.unsplash.com/photo-1532712938310-34cb3982ef74?auto=format&fit=crop&w=600&q=80",img2:"https://images.unsplash.com/photo-1511285560929-80b456fea0bc?auto=format&fit=crop&w=600&q=80",borderStyle:"mat"},{type:"one-large-five-small",title:"相恋",subtitle:"ROMANCE",desc:`星光坠入眼眸,晚风轻抚过裙摆。
|
||
浪漫不止于此,还有无数个明天。`,images:Array.from({length:6},()=>"https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=600&q=80"),borderStyle:"mat"},{type:"nine-grid",title:"相守",subtitle:"FOREVER",desc:"往后余生,风雪是你,平淡是你。",images:Array.from({length:9},()=>"https://images.unsplash.com/photo-1511285560929-80b456fea0bc?auto=format&fit=crop&w=400&q=80"),borderStyle:"mat"}],schedule:[{time:"16:00",event:"签到迎宾",desc:"Welcome"},{time:"17:08",event:"仪式开始",desc:"Ceremony"},{time:"18:00",event:"敬备喜宴",desc:"Banquet"}],..._}),d=Me(),c=x(!0),k=x(!1),T=x(!1),C=x(!1),y=x(null),q=x(0),L=x(0),F=x(!1),D=x(!1),m=x(!1),h=x(!1),u=ke({name:"",guest_count:"1",wishes:""}),v=[{value:"1",label:"1 人出席"},{value:"2",label:"2 人出席"},{value:"3",label:"3 人及以上"},{value:"0",label:"遗憾缺席"}];let r=null,w=null,N=null,U=null,j=null,E=null;const ee=I(()=>{const l=Number(n.value.freeScrollInterval);return l>=10&&l<=1e3?l:50}),te=I(()=>{const l=Number(n.value.pageSwitchDuration);return l>=0&&l<=5e3?l:800}),V=["#c9b08a","#e2b3c0","#d4af37","#e8c9d2"],P=["#f7dce3","#fbeee3","#f3c9d6","#efdcc8","#f9e7d6"],le=[{n:5,size:[10,13],opacity:[.1,.16],blur:1.6,dur:[20,26]},{n:4,size:[14,17],opacity:[.16,.24],blur:.7,dur:[16,21]},{n:3,size:[18,22],opacity:[.24,.32],blur:0,dur:[13,17]}];let se=0;const ae=le.flatMap(l=>Array.from({length:l.n}).map(()=>{const t=se++;return{id:t,left:Math.random()*100+"%",top:Math.random()*100+"%",color:V[t%V.length],size:l.size[0]+Math.random()*(l.size[1]-l.size[0]),opacity:+(l.opacity[0]+Math.random()*(l.opacity[1]-l.opacity[0])).toFixed(2),filter:l.blur?`blur(${l.blur}px)`:"none",floatDuration:(l.dur[0]+Math.random()*(l.dur[1]-l.dur[0])).toFixed(1)+"s",swayDuration:(4.5+Math.random()*2.5).toFixed(1)+"s",delay:"-"+(Math.random()*20).toFixed(1)+"s"}})),oe=Array.from({length:16}).map((l,t)=>{const g=t%3===0;return{id:t,left:Math.random()*100+"%",size:g?8+Math.random()*7:13+Math.random()*11,opacity:g?.3+Math.random()*.15:.42+Math.random()*.3,color:P[t%P.length],filter:g?"blur(1.2px) drop-shadow(0 2px 3px rgba(150,110,90,0.08))":"drop-shadow(0 2px 3px rgba(150,110,90,0.12))",duration:(g?13:9)+Math.random()*8+"s",delay:Math.random()*10+"s",sway:4+Math.random()*4+"s"}}),ne=I(()=>({backgroundImage:`url(${n.value.heroImg})`})),re=l=>{const t=l.height||"100vh";return t==="auto"?{minHeight:"auto"}:{minHeight:t}},B=()=>{k.value=!1},Y=()=>{const l=y.value;if(!l)return;const t=l.scrollHeight-l.clientHeight;q.value=t>0?l.scrollTop/t:0,L.value=l.scrollTop*.25},O=()=>{C.value=!0,cancelAnimationFrame(E),clearTimeout(N),N=setTimeout(()=>C.value=!1,3e3)},ie=()=>{var l;return Array.from(((l=y.value)==null?void 0:l.querySelectorAll(".page-section"))||[])},ce=(l,t,g)=>{cancelAnimationFrame(E);const o=l.scrollTop,A=t-o;if(!A)return;if(g<=0){l.scrollTop=t;return}const fe=performance.now(),K=ge=>{const W=Math.min(1,(ge-fe)/g),be=W<.5?2*W*W:1-Math.pow(-2*W+2,2)/2;l.scrollTop=o+A*be,W<1&&(E=requestAnimationFrame(K))};E=requestAnimationFrame(K)},ue=()=>{const l=y.value;if(!l)return;const t=l.scrollTop,g=ie().find(o=>o.offsetTop>t+12);ce(l,g?g.offsetTop:0,te.value)},de=()=>{n.value.scrollMode==="snap"?w=setInterval(()=>{c.value&&!C.value&&!k.value&&ue()},4500):j=setInterval(()=>{const l=y.value;l&&c.value&&!C.value&&!k.value&&(l.scrollTop+=1.2,l.scrollTop>=l.scrollHeight-l.clientHeight-5&&(l.scrollTop=0))},ee.value)},pe=()=>{c.value=!c.value;const l=y.value;c.value&&l&&l.scrollTop>=l.scrollHeight-l.clientHeight-10&&(l.scrollTop=0)},G=()=>{D.value||(D.value=!0,U=setTimeout(()=>{F.value=!1},1e3),n.value.musicList.length&&d.play())},ve=l=>{d.setActive(l),m.value=!1},me=async()=>{if(!u.name.trim())return alert("请填写姓名");try{const l=await _e(u);l.code===200?T.value=!0:alert(l.error||"提交失败")}catch{alert("提交失败,请检查后端运行状态")}};return xe(async()=>{try{const l=await he();if(l.data&&l.data!=="{}"){const t=typeof l.data=="string"?JSON.parse(l.data):l.data;t.musicUrl&&!(t.musicList&&t.musicList.length)&&(t.musicList=[{url:t.musicUrl,name:"背景音乐"}],t.activeMusicUrl=t.musicUrl),n.value={...n.value,..._,...t}}}catch{}d.setTracks(n.value.musicList,n.value.activeMusicUrl),n.value.musicList.length&&(await d.attemptAutoplay()||(h.value=!0)),n.value.introEnabled&&(F.value=!0,U=setTimeout(()=>G(),3600)),de(),Y()}),Z(()=>{cancelAnimationFrame(r),cancelAnimationFrame(E),clearInterval(w),clearInterval(j),clearTimeout(N),clearTimeout(U)}),(l,t)=>{const g=Q("reveal");return s(),a("div",Qe,[f(e("div",{class:p(["curtain-root",{"is-opening":D.value}]),onClick:G},[e("div",{class:"curtain-bg",style:S(ne.value)},null,4),t[10]||(t[10]=we('<div class="curtain-veil" data-v-d3dc844f></div><div class="curtain-door curtain-door-left" data-v-d3dc844f><span class="door-sheen" data-v-d3dc844f></span></div><div class="curtain-door curtain-door-right" data-v-d3dc844f><span class="door-sheen" data-v-d3dc844f></span></div>',3)),e("div",Xe,[e("div",et,[t[6]||(t[6]=e("span",{class:"emblem-floral"},"❀",-1)),t[7]||(t[7]=e("span",{class:"emblem-kicker"},"WEDDING INVITATION",-1)),e("div",tt,[H(b(n.value.groom),1),t[5]||(t[5]=e("span",{class:"amp"},"&",-1)),H(b(n.value.bride),1)]),t[8]||(t[8]=e("div",{class:"emblem-rule"},null,-1)),e("div",lt,b(n.value.date),1),t[9]||(t[9]=e("div",{class:"emblem-hint"},[e("span",{class:"dot"}),H("轻触开启请柬")],-1))])])],2),[[ye,F.value]]),t[38]||(t[38]=e("div",{class:"bg-glow","aria-hidden":"true"},[e("i",{class:"g1"}),e("i",{class:"g2"}),e("i",{class:"g3"})],-1)),n.value.petalEnabled?(s(),a("div",st,[(s(!0),a(z,null,$(M(oe),o=>(s(),a("div",{key:"p"+o.id,class:"petal",style:S({left:o.left,width:o.size+"px",height:o.size+"px",opacity:o.opacity,animationDelay:o.delay,"--p-dur":o.duration})},[(s(),a("svg",{viewBox:"0 0 100 100",class:"petal-inner",style:S({"--p-sway":o.sway,filter:o.filter})},[e("path",{d:"M50 3 C28 26 20 62 50 97 C80 62 72 26 50 3 Z",fill:o.color,opacity:"0.9"},null,8,at),t[11]||(t[11]=e("path",{d:"M50 9 C50 36 50 70 50 91",stroke:"rgba(255,255,255,0.55)","stroke-width":"1.4",fill:"none",opacity:"0.5"},null,-1))],4))],4))),128))])):R("",!0),n.value.bubbleEnabled?(s(),a("div",ot,[(s(!0),a(z,null,$(M(ae),o=>(s(),a("div",{key:"b"+o.id,class:"heart-bubble flex items-center justify-center",style:S({left:o.left,top:o.top,color:o.color,fontSize:o.size+"px",animationDelay:o.delay,"--float-duration":o.floatDuration,"--h-opacity":o.opacity})},[e("span",{class:"heart-inner",style:S({"--sway-duration":o.swayDuration,filter:o.filter})},"♥",4)],4))),128))])):R("",!0),e("div",{class:"absolute top-0 left-0 h-[2px] bg-[#a88c6b] z-[55] transition-[width] duration-150",style:S({width:q.value*100+"%"})},null,4),e("div",nt,[e("div",rt,[e("div",it,[e("div",{onClick:t[0]||(t[0]=o=>M(d).toggle()),class:p(["control-btn cursor-pointer",{"rotate-spin":M(d).isPlaying.value}])},[M(d).isPlaying.value?(s(),a("img",ct)):(s(),a("img",ut))],2),M(d).tracks.value.length>1?(s(),a("div",{key:0,onClick:t[1]||(t[1]=o=>m.value=!m.value),class:"control-btn cursor-pointer"},[...t[12]||(t[12]=[e("img",{src:"https://api.iconify.design/lucide:list-music.svg?color=%23a88c6b",class:"w-4 h-4"},null,-1)])])):R("",!0)]),m.value&&M(d).tracks.value.length?(s(),a("div",dt,[t[14]||(t[14]=e("div",{class:"track-pop-title"},"选择曲目",-1)),(s(!0),a(z,null,$(M(d).tracks.value,o=>(s(),a("div",{key:o.url,class:p(["track-item",{active:o.url===M(d).activeUrl.value}]),onClick:A=>ve(o.url)},[o.url===M(d).activeUrl.value&&M(d).isPlaying.value?(s(),a("span",vt,[...t[13]||(t[13]=[e("i",null,null,-1),e("i",null,null,-1),e("i",null,null,-1)])])):R("",!0),e("span",mt,b(o.name),1),o.url===M(d).activeUrl.value?(s(),a("span",ft,"✓")):R("",!0)],10,pt))),128))])):R("",!0)]),e("div",{onClick:pe,class:p(["control-btn cursor-pointer transition-all duration-300",c.value?"bg-[#a88c6b]/15 !border-[#a88c6b]/60 shadow-sm":"bg-white/60 shadow-sm border-[#a88c6b]/30"])},[c.value?(s(),a("img",gt)):(s(),a("img",bt))],2)]),e("div",{ref_key:"scrollContainerRef",ref:y,class:p(["w-full h-full overflow-y-auto no-scrollbar relative",n.value.scrollMode==="snap"?"snap-y snap-mandatory":""]),onScroll:Y,onTouchstart:O,onTouchmove:O,onWheel:O,onMousedown:O},[e("div",{class:p(["page-section",n.value.scrollMode==="snap"?"snap-start":""])},[e("div",xt,[f((s(),a("div",ht,[...t[15]||(t[15]=[e("span",{class:"text-[10px] tracking-[0.5em] uppercase text-[#a88c6b] font-light block"},"Wedding Invitation",-1),e("div",{class:"w-6 h-[0.5px] bg-[#a88c6b] mx-auto opacity-50 mt-4"},null,-1)])])),[[g,"down"]]),f((s(),a("div",yt,[t[16]||(t[16]=e("div",{class:"absolute inset-0 border border-[#a88c6b] translate-x-3 translate-y-3 opacity-30"},null,-1)),e("div",wt,[e("img",{src:n.value.heroImg,class:"w-full h-full object-cover will-change-transform",style:S({transform:`translateY(${L.value}px) scale(1.12)`})},null,12,kt)])])),[[g,{variant:"scale",delay:120}]]),f((s(),a("div",_t,[e("div",At,[e("span",null,b(n.value.groom),1),t[17]||(t[17]=e("span",{class:"text-[#a88c6b] text-xl pb-1 italic font-serif"},"&",-1)),e("span",null,b(n.value.bride),1)]),e("div",Tt,[e("span",null,b(n.value.date),1),t[18]||(t[18]=e("div",{class:"w-4 h-[0.5px] bg-[#a88c6b]/40 my-2"},null,-1)),e("span",null,b(n.value.lunar),1)])])),[[g,{variant:"up",delay:200}]])])],2),e("div",{class:p(["page-section bg-[#F7F6F2] items-center px-8 relative justify-center",n.value.scrollMode==="snap"?"snap-start":""])},[t[21]||(t[21]=e("div",{class:"absolute top-0 left-0 w-32 h-32 border-l-[0.5px] border-t-[0.5px] border-[#a88c6b]/30 m-6"},null,-1)),t[22]||(t[22]=e("div",{class:"absolute bottom-0 right-0 w-32 h-32 border-r-[0.5px] border-b-[0.5px] border-[#a88c6b]/30 m-6"},null,-1)),f((s(),a("div",Mt,[t[20]||(t[20]=e("div",{class:"text-3xl opacity-60 mb-14 text-[#a88c6b] font-serif float-soft"},"❀",-1)),e("div",zt,[e("span",$t,b(n.value.formalText1),1),e("span",St,b(n.value.formalText2),1),t[19]||(t[19]=e("span",{class:"vertical-text text-[#8A8680] text-[12px] ml-4 border-l-[0.5px] border-[#a88c6b]/30 pl-6 h-56 mt-8 tracking-[0.3em]"},"诚挚邀请您见证我们的幸福",-1))])])),[[g,"blur"]])],2),(s(!0),a(z,null,$(n.value.photoPages,(o,A)=>(s(),a("div",{key:A,class:p(["page-section p-6 relative",n.value.scrollMode==="snap"?"snap-start":""]),style:S(re(o))},[t[23]||(t[23]=e("div",{class:"absolute inset-0 bg-white/40 backdrop-blur-[2px] -z-10"},null,-1)),t[24]||(t[24]=e("div",{class:"absolute top-0 left-0 w-24 h-24 border-l-[0.5px] border-t-[0.5px] border-[#a88c6b]/30 m-6 pointer-events-none z-0"},null,-1)),t[25]||(t[25]=e("div",{class:"absolute bottom-0 right-0 w-24 h-24 border-r-[0.5px] border-b-[0.5px] border-[#a88c6b]/30 m-6 pointer-events-none z-0"},null,-1)),e("div",Ct,[Ae(Ze,{page:o},null,8,["page"])])],6))),128)),e("div",{class:p(["page-section bg-transparent px-6 z-10 justify-center relative",n.value.scrollMode==="snap"?"snap-start":""])},[t[28]||(t[28]=e("div",{class:"absolute inset-0 bg-[#Fdfbf7]/60 backdrop-blur-[2px] -z-10"},null,-1)),f((s(),a("div",Ft,[...t[26]||(t[26]=[e("span",{class:"text-2xl text-[#a88c6b] tracking-[0.3em] font-light block"},"婚礼流程",-1),e("span",{class:"text-[10px] text-[#8A8680] font-sans uppercase tracking-[0.4em] mt-3 block"},"Wedding Schedule",-1)])])),[[g,"up"]]),e("div",Et,[t[27]||(t[27]=e("div",{class:"absolute left-1/2 top-2 bottom-4 w-[0.5px] bg-[#a88c6b]/40 -translate-x-1/2"},null,-1)),(s(!0),a(z,null,$(n.value.schedule,(o,A)=>(s(),a("div",{key:A,class:p(["flex w-full mb-10 relative z-10",A%2===0?"justify-start":"justify-end"])},[f((s(),a("div",{class:p(["w-[45%] flex flex-col relative bg-white/60 p-4 rounded-xl shadow-sm border-[0.5px] border-[#a88c6b]/10",A%2===0?"text-right items-end":"text-left items-start"])},[e("div",{class:p(["absolute top-[22px] w-2 h-2 rounded-full bg-[#a88c6b] shadow-[0_0_0_4px_rgba(168,140,107,0.15)]",A%2===0?"-right-[28px]":"-left-[28px]"])},null,2),e("span",It,b(o.time),1),e("span",Lt,b(o.event),1),e("span",Dt,b(o.desc),1)],2)),[[g,{variant:A%2===0?"left":"right",delay:A*120}]])],2))),128))])],2),e("div",{class:p(["page-section p-6 flex flex-col items-center justify-center relative",n.value.scrollMode==="snap"?"snap-start":""])},[t[31]||(t[31]=e("div",{class:"absolute top-10 bottom-10 left-6 right-6 border-[0.5px] border-[#a88c6b]/40 rounded-t-[10rem] z-0 bg-[#Fdfbf7]/30"},null,-1)),e("div",Ut,[f((s(),a("div",Rt,[e("img",{src:n.value.heroImg,class:"w-full h-full bg-[#F7F6F2] object-cover"},null,8,qt)])),[[g,{variant:"scale",delay:100}]]),f((s(),a("div",Nt,[t[29]||(t[29]=e("span",{class:"text-xl text-[#a88c6b] tracking-[0.3em] font-light block mb-4"},"期待您的光临",-1)),e("span",jt,b(n.value.hotel),1),e("span",Wt,b(n.value.address),1)])),[[g,{variant:"up",delay:200}]]),f((s(),a("div",Ot,[e("button",{class:"rsvp-cta",onClick:t[2]||(t[2]=o=>k.value=!0)},[...t[30]||(t[30]=[e("span",{class:"rsvp-cta-deco"},"❀",-1),e("span",{class:"rsvp-cta-text"},"填写出席回执",-1),e("span",{class:"rsvp-cta-line"},null,-1)])])])),[[g,{variant:"up",delay:300}]])])],2)],34),k.value?(s(),a("div",{key:2,class:"absolute inset-0 z-[60] bg-black/40 backdrop-blur-sm transition-opacity duration-500",onClick:B})):R("",!0),e("div",{class:"absolute bottom-0 left-0 w-full bg-white rounded-t-[2.5rem] shadow-2xl transition-transform duration-500 z-[70] p-10 flex flex-col",style:S({transform:k.value?"translateY(0)":"translateY(100%)"})},[e("div",{onClick:B,class:"absolute top-6 right-6 p-2 text-[#a88c6b] cursor-pointer hover:text-[#2c2c2c] transition-colors text-xl"},"✕"),t[36]||(t[36]=e("span",{class:"text-xl text-center text-[#a88c6b] mb-1 tracking-[0.3em] font-light mt-2"},"出席回执",-1)),t[37]||(t[37]=e("span",{class:"text-center text-[10px] text-[#8A8680] mb-10 tracking-[0.4em]"},"敬 请 回 复",-1)),T.value?(s(),a("div",Bt,[...t[35]||(t[35]=[e("span",{class:"text-3xl text-[#a88c6b] mb-6 animate-pulse-heart"},"♥",-1),e("span",{class:"text-lg text-[#2c2c2c] mb-3 tracking-[0.2em] font-light"},"感恩您的祝福",-1),e("span",{class:"text-[13px] text-[#8A8680] leading-loose tracking-widest font-light"},"回执已妥投,期待与您共享喜悦",-1)])])):(s(),a("div",Ht,[e("div",null,[t[32]||(t[32]=e("span",{class:"block text-[10px] text-[#a88c6b] mb-1.5 tracking-widest pl-1"},"姓名",-1)),f(e("input",{"onUpdate:modelValue":t[3]||(t[3]=o=>u.name=o),placeholder:"您的姓名",class:"w-full bg-[#Fdfbf7] border-[0.5px] border-[#a88c6b]/30 rounded-xl px-5 py-4 text-[13px] focus:outline-none focus:border-[#a88c6b] shadow-[inset_0_2px_4px_rgba(0,0,0,0.02)]"},null,512),[[J,u.name]])]),e("div",null,[t[33]||(t[33]=e("span",{class:"block text-[10px] text-[#a88c6b] mb-2 tracking-widest pl-1"},"出席情况",-1)),e("div",Vt,[(s(),a(z,null,$(v,o=>e("button",{key:o.value,type:"button",class:p(["rsvp-tag",{active:u.guest_count===o.value}]),onClick:A=>u.guest_count=o.value},b(o.label),11,Pt)),64))])]),e("div",null,[t[34]||(t[34]=e("span",{class:"block text-[10px] text-[#a88c6b] mb-1.5 tracking-widest pl-1"},"祝福语",-1)),f(e("textarea",{"onUpdate:modelValue":t[4]||(t[4]=o=>u.wishes=o),placeholder:"写下您的祝福...",class:"w-full bg-[#Fdfbf7] border-[0.5px] border-[#a88c6b]/30 rounded-xl px-5 py-4 text-[13px] h-24 focus:outline-none resize-none shadow-[inset_0_2px_4px_rgba(0,0,0,0.02)]"},null,512),[[J,u.wishes]])]),e("div",{onClick:me,class:"w-full bg-[#a88c6b] text-white py-4 rounded-full text-center tracking-[0.3em] text-[12px] cursor-pointer hover:bg-[#967b5c] transition-all shadow-md"},"确认发送")]))],4)])}}},Jt=X(Yt,[["__scopeId","data-v-d3dc844f"]]);export{Jt as default};
|