6 lines
22 KiB
JavaScript
6 lines
22 KiB
JavaScript
import{b as d,d as p,e as n,t as g,k as r,l as U,x as Ee,p as Le,h as $e,i as Ae,q as a,y as s,D as Me,z as m,r as A,A as ze,u as H,E as k,F as w,f as E,n as D,G as Ie,C as L,H as te}from"./index-J-2DY0cU.js";import{_ as Ne,B as Te,b as je}from"./_plugin-vue_export-helper-CCxXhY90.js";const qe=["src"],Re={key:1,class:"w-full h-full flex flex-col items-center justify-center text-[#a88c6b]/70 gap-1"},Be={class:"text-[10px]"},Fe={class:"absolute inset-0 bg-black/35 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center text-white text-[10px]"},Oe={key:2,class:"absolute left-1 bottom-1 bg-white/80 text-[#a88c6b] text-[9px] px-1 rounded"},M={__name:"ImageField",props:{modelValue:{type:String,default:""},label:{type:String,default:""},uploading:{type:Boolean,default:!1},placeholder:{type:String,default:"上传"}},emits:["pick","update:modelValue"],setup(C){return(z,h)=>(d(),p("div",{class:"relative w-[96px] h-[96px] rounded-xl border border-dashed border-[#a88c6b]/40 bg-[#Fdfbf7] overflow-hidden cursor-pointer hover:border-[#a88c6b] transition-colors group",onClick:h[0]||(h[0]=N=>z.$emit("pick"))},[C.modelValue?(d(),p("img",{key:0,src:C.modelValue,class:"w-full h-full object-cover"},null,8,qe)):(d(),p("div",Re,[h[1]||(h[1]=n("i",{class:"fa-solid fa-image text-lg"},null,-1)),n("span",Be,g(C.placeholder),1)])),n("div",Fe,[h[2]||(h[2]=n("i",{class:"fa-solid fa-cloud-arrow-up mr-1"},null,-1)),r(g(C.uploading?"上传中":"点击上传"),1)]),C.label?(d(),p("div",Oe,g(C.label),1)):U("",!0)]))}},He={class:"min-h-screen bg-[#f6f4ef] text-[#2c2c2c]"},De={class:"sticky top-0 z-30 bg-white/90 backdrop-blur border-b border-[#a88c6b]/15 px-6 py-3 flex items-center justify-between"},Je={class:"flex items-center gap-2"},Ke={class:"max-w-[960px] mx-auto px-4 py-6"},Ge={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6"},We={class:"grid grid-cols-1 md:grid-cols-3 gap-4"},Ye={class:"flex items-center gap-3 flex-wrap"},Qe={class:"text-[10px] text-[#8A8680] flex-1 min-w-[140px] truncate"},Xe=["src"],Ze={class:"flex justify-between items-center mb-3"},et={class:"text-[12px] text-[#8A8680]"},tt={class:"flex justify-between items-center mb-3"},lt={class:"text-[#a88c6b] text-sm"},at={class:"flex gap-1"},st={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6"},ot={class:"flex gap-2 items-center"},nt={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6 items-start"},it={class:"flex items-center gap-3"},ut={class:"w-[70px] h-[88px] shrink-0"},dt={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6"},rt={class:"flex flex-wrap gap-3 mt-2"},ct=["onClick"],mt=["onClick"],ft={class:"flex justify-between items-center mb-3"},pt={class:"text-[12px] text-[#8A8680]"},vt={class:"flex items-end gap-3 flex-wrap"},gt={class:"flex-1 min-w-[120px]"},bt={class:"flex-1 min-w-[140px]"},_t={class:"flex-1 min-w-[140px]"},ht={__name:"AdminEditor",setup(C){const z=ze(),h=Ee(),N=A("basic"),T=A(!1),x=A(!1),j=A(!1),J=A([]),o=Le(le());function le(){return{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",musicList:[{url:"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3",name:"背景音乐 1"}],activeMusicUrl:"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3",scrollMode:"snap",petalEnabled:!0,bubbleEnabled:!0,introEnabled:!0,photoPages:[{type:"single",title:"初遇",subtitle:"FIRST MET",desc:`世界那么大,还是遇见了你。
|
||
于千万人之中,没有早一步也没有晚一步。`,img1:"https://images.unsplash.com/photo-1606800052052-a08af7148866?auto=format&fit=crop&w=600&q=80",height:"100vh",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",height:"100vh",borderStyle:"mat"},{type:"one-large-five-small",title:"相恋",subtitle:"ROMANCE",desc:`星光坠入眼眸,晚风轻抚过裙摆。
|
||
浪漫不止于此,还有无数个明天。`,images:K(6),height:"100vh",borderStyle:"mat"},{type:"nine-grid",title:"相守",subtitle:"FOREVER",desc:"往后余生,风雪是你,平淡是你。",images:K(9),height:"100vh",borderStyle:"mat"}],schedule:[{time:"16:00",event:"签到迎宾",desc:"Welcome"},{time:"17:08",event:"仪式开始",desc:"Ceremony"},{time:"18:00",event:"敬备喜宴",desc:"Banquet"}]}}function K(t){return Array.from({length:t},()=>"https://images.unsplash.com/photo-1511285560929-80b456fea0bc?auto=format&fit=crop&w=400&q=80")}const G=[{label:"满屏(整屏)",value:"100vh"},{label:"大屏(80%)",value:"80vh"},{label:"半屏(60%)",value:"60vh"},{label:"自适应(内容高度)",value:"auto"},{label:"自定义",value:"__custom__"}];function W(t){const e=G.find(u=>u.value===t.height);return e?e.value:"__custom__"}function ae(t,e){e!=="__custom__"&&(t.height=e)}function se(t){const e=/^([\d.]+)vh$/.exec(t.height||"");return e?Number(e[1]):100}function oe(t,e){t.height=(e||100)+"vh"}function q(t){if(t.type==="single")t.img1=t.img1||"",delete t.img2,delete t.images;else if(t.type==="overlap")t.img1=t.img1||"",t.img2=t.img2||"",delete t.images;else{const u={"one-large-five-small":6,"nine-grid":9,masonry:6,carousel:5,polaroid:6}[t.type]||6;if(t.images=Array.isArray(t.images)?t.images:[],t.images.length===0)for(;t.images.length<u;)t.images.push("");else if(["one-large-five-small","nine-grid"].includes(t.type)){for(;t.images.length<u;)t.images.push("");t.images.length>u&&(t.images.length=u)}delete t.img1,delete t.img2}return t.title=t.title||"",t.subtitle=t.subtitle||"",t.desc=t.desc||"",t.height=t.height||"100vh",t.borderStyle=t.borderStyle||"mat",t}function Y(t){return["masonry","carousel","polaroid"].includes(t)}function ne(t){Array.isArray(t.images)||(t.images=[]),t.images.push("")}function ie(t,e){t.images.length>1&&t.images.splice(e,1)}function ue(){o.photoPages.push(q({type:"single",title:"新页面",subtitle:"NEW",desc:"",img1:""}))}function de(t){o.photoPages.splice(t,1)}function Q(t,e){const u=t+e;if(u<0||u>=o.photoPages.length)return;const _=o.photoPages[t];o.photoPages[t]=o.photoPages[u],o.photoPages[u]=_}function re(){o.schedule.push({time:"",event:"",desc:""})}function ce(t){o.schedule.splice(t,1)}function $(t){const e=document.createElement("input");e.type="file",e.accept="image/*",e.onchange=async u=>{const _=u.target.files[0];if(_){x.value=!0;try{const P=await te(_);t(P.url),L.success("上传成功")}catch{L.error("上传失败")}finally{x.value=!1,u.target.value=""}}},e.click()}function me(){const t=document.createElement("input");t.type="file",t.accept="audio/*",t.onchange=async e=>{const u=e.target.files[0];if(u){x.value=!0;try{const _=await te(u),P=u.name.replace(/\.[^.]+$/,"")||"背景音乐",I=_.url;o.musicList||(o.musicList=[]),o.musicList.push({url:I,name:P}),o.activeMusicUrl||(o.activeMusicUrl=I),L.success("音乐上传成功")}catch{L.error("上传失败")}finally{x.value=!1,e.target.value=""}}},t.click()}function fe(t){o.activeMusicUrl=t}function pe(t){var e,u;o.musicList.splice(t,1),o.activeMusicUrl===((e=o.musicList[t])==null?void 0:e.url)&&(o.activeMusicUrl=((u=o.musicList[0])==null?void 0:u.url)||"")}function ve(t){if(!t)return"";const e=t.split("/");return e[e.length-1]||t}async function ge(){var t,e;T.value=!0;try{await Ie(JSON.parse(JSON.stringify(o))),L.success("配置已保存")}catch(u){const _=((t=u==null?void 0:u.response)==null?void 0:t.status)===401?"登录已失效,请重新登录":(u==null?void 0:u.message)||"保存失败";L.error(_),((e=u==null?void 0:u.response)==null?void 0:e.status)===401&&z.replace({name:"Login",query:{redirect:"/admin"}})}finally{T.value=!1}}function be(){window.open("/","_blank")}function _e(){h.logout(),z.replace({name:"Login",query:{redirect:"/admin"}})}const he=[{title:"姓名",dataIndex:"name",key:"name"},{title:"出席",dataIndex:"guest_count",key:"guest_count"},{title:"祝福",dataIndex:"wishes",key:"wishes",ellipsis:!0},{title:"提交时间",dataIndex:"created_at",key:"created_at"}],xe=t=>({1:"1 人出席",2:"2 人出席",3:"3 人及以上",0:"遗憾缺席"})[t]||t;function ye(t){if(!t)return"";const e=new Date(t);return isNaN(e)?t:e.toLocaleString("zh-CN",{hour12:!1})}async function ke(){j.value=!0;try{const t=await Me();J.value=t.data||[]}catch{}finally{j.value=!1}}return $e(async()=>{try{const t=await Ae();if(t.data&&t.data!=="{}"){const e=typeof t.data=="string"?JSON.parse(t.data):t.data;e.musicUrl&&!(e.musicList&&e.musicList.length)&&(e.musicList=[{url:e.musicUrl,name:"背景音乐"}],e.activeMusicUrl=e.musicUrl),Object.assign(o,e),o.photoPages=(o.photoPages||[]).map(q)}}catch{}h.isAdmin&&ke()}),(t,e)=>{const u=m("a-button"),_=m("a-menu-item"),P=m("a-menu"),I=m("a-dropdown"),v=m("a-input"),c=m("a-form-item"),X=m("a-textarea"),R=m("a-form"),S=m("a-card"),V=m("a-tab-pane"),Z=m("a-radio"),we=m("a-radio-group"),B=m("a-switch"),ee=m("a-empty"),y=m("a-select-option"),F=m("a-select"),Ue=m("a-input-number"),Ce=m("a-tag"),Se=m("a-table"),Ve=m("a-tabs");return d(),p("div",He,[n("header",De,[e[19]||(e[19]=n("div",{class:"flex items-center gap-3"},[n("span",{class:"text-xl text-[#a88c6b] font-serif"},"❀"),n("div",null,[n("div",{class:"text-sm tracking-[0.2em] font-light"},"婚礼纪 · 内容编辑后台"),n("div",{class:"text-[10px] text-[#8A8680] tracking-[0.3em] uppercase"},"Invitation Admin")])],-1)),n("div",Je,[a(u,{size:"small",onClick:be},{default:s(()=>[...e[15]||(e[15]=[n("i",{class:"fa-solid fa-eye mr-1 text-[#a88c6b]"},null,-1),r("预览请柬 ",-1)])]),_:1}),a(u,{type:"primary",size:"small",loading:T.value,onClick:ge,class:"!bg-[#a88c6b] hover:!bg-[#967b5c] !border-[#a88c6b]"},{default:s(()=>[...e[16]||(e[16]=[n("i",{class:"fa-solid fa-floppy-disk mr-1"},null,-1),r("保存配置 ",-1)])]),_:1},8,["loading"]),a(I,null,{overlay:s(()=>[a(P,null,{default:s(()=>[a(_,{key:"logout",onClick:_e},{default:s(()=>[...e[18]||(e[18]=[n("i",{class:"fa-solid fa-right-from-bracket mr-2"},null,-1),r("退出登录",-1)])]),_:1})]),_:1})]),default:s(()=>[a(u,{size:"small"},{default:s(()=>{var l;return[r(g(((l=H(h).user)==null?void 0:l.account)||"管理员"),1),e[17]||(e[17]=n("i",{class:"fa-solid fa-chevron-down ml-1 text-[10px]"},null,-1))]}),_:1})]),_:1})])]),n("div",Ke,[a(Ve,{activeKey:N.value,"onUpdate:activeKey":e[14]||(e[14]=l=>N.value=l),type:"card",class:"admin-tabs"},{default:s(()=>[a(V,{key:"basic",tab:"基础信息"},{default:s(()=>[a(S,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[a(R,{layout:"vertical"},{default:s(()=>[n("div",Ge,[a(c,{label:"新郎"},{default:s(()=>[a(v,{value:o.groom,"onUpdate:value":e[0]||(e[0]=l=>o.groom=l),placeholder:"新郎姓名"},null,8,["value"])]),_:1}),a(c,{label:"新娘"},{default:s(()=>[a(v,{value:o.bride,"onUpdate:value":e[1]||(e[1]=l=>o.bride=l),placeholder:"新娘姓名"},null,8,["value"])]),_:1}),a(c,{label:"公历日期"},{default:s(()=>[a(v,{value:o.date,"onUpdate:value":e[2]||(e[2]=l=>o.date=l),placeholder:"如 2026-05-20"},null,8,["value"])]),_:1}),a(c,{label:"农历 / 星期"},{default:s(()=>[a(v,{value:o.lunar,"onUpdate:value":e[3]||(e[3]=l=>o.lunar=l),placeholder:"如 农历四月初四 星期三"},null,8,["value"])]),_:1}),a(c,{label:"酒店名称"},{default:s(()=>[a(v,{value:o.hotel,"onUpdate:value":e[4]||(e[4]=l=>o.hotel=l),placeholder:"宴会酒店"},null,8,["value"])]),_:1}),a(c,{label:"详细地址"},{default:s(()=>[a(X,{value:o.address,"onUpdate:value":e[5]||(e[5]=l=>o.address=l),rows:2,placeholder:"可换行"},null,8,["value"])]),_:1})]),a(c,{label:"封面 / 尾页主图"},{default:s(()=>[a(M,{modelValue:o.heroImg,"onUpdate:modelValue":e[6]||(e[6]=l=>o.heroImg=l),onPick:e[7]||(e[7]=l=>$(f=>o.heroImg=f)),uploading:x.value},null,8,["modelValue","uploading"])]),_:1})]),_:1})]),_:1})]),_:1}),a(V,{key:"copy",tab:"邀请文案"},{default:s(()=>[a(S,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[a(R,{layout:"vertical"},{default:s(()=>[a(c,{label:"竖排文案 · 上联"},{default:s(()=>[a(v,{value:o.formalText1,"onUpdate:value":e[8]||(e[8]=l=>o.formalText1=l),placeholder:"如 两姓联姻 一堂缔约"},null,8,["value"])]),_:1}),a(c,{label:"竖排文案 · 下联"},{default:s(()=>[a(v,{value:o.formalText2,"onUpdate:value":e[9]||(e[9]=l=>o.formalText2=l),placeholder:"如 良缘永结 匹配同称"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1}),a(V,{key:"visual",tab:"视觉与动效"},{default:s(()=>[a(S,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[a(R,{layout:"vertical"},{default:s(()=>[a(c,{label:"背景音乐"},{default:s(()=>[...e[20]||(e[20]=[n("div",{class:"text-[12px] text-[#8A8680] leading-relaxed"},[r("多首背景音乐的上传、试听与「设为播放」请在 "),n("span",{class:"text-[#a88c6b]"},"背景音乐"),r(" 标签页管理。")],-1)])]),_:1}),a(c,{label:"滚动方式"},{default:s(()=>[a(we,{value:o.scrollMode,"onUpdate:value":e[10]||(e[10]=l=>o.scrollMode=l)},{default:s(()=>[a(Z,{value:"snap"},{default:s(()=>[...e[21]||(e[21]=[r("整页 / 分屏吸附滚动",-1)])]),_:1}),a(Z,{value:"free"},{default:s(()=>[...e[22]||(e[22]=[r("自由滚动",-1)])]),_:1})]),_:1},8,["value"]),e[23]||(e[23]=n("div",{class:"text-[11px] text-[#8A8680] mt-1"},"整页模式会带来更有仪式感的逐屏切换效果。",-1))]),_:1}),n("div",We,[a(c,{label:"飘落花瓣"},{default:s(()=>[a(B,{checked:o.petalEnabled,"onUpdate:checked":e[11]||(e[11]=l=>o.petalEnabled=l)},null,8,["checked"])]),_:1}),a(c,{label:"漂浮爱心"},{default:s(()=>[a(B,{checked:o.bubbleEnabled,"onUpdate:checked":e[12]||(e[12]=l=>o.bubbleEnabled=l)},null,8,["checked"])]),_:1}),a(c,{label:"入场揭幕"},{default:s(()=>[a(B,{checked:o.introEnabled,"onUpdate:checked":e[13]||(e[13]=l=>o.introEnabled=l)},null,8,["checked"])]),_:1})])]),_:1})]),_:1})]),_:1}),a(V,{key:"music",tab:"背景音乐"},{default:s(()=>[a(S,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[e[26]||(e[26]=n("div",{class:"text-[12px] text-[#8A8680] leading-relaxed mb-4"}," 上传多首背景音乐(支持 mp3 等格式),访客首次交互后自动播放当前曲目,可在前台随时切换或暂停。 ",-1)),o.musicList.length?U("",!0):(d(),k(ee,{key:0,description:"尚未上传音乐"})),(d(!0),p(w,null,E(o.musicList,(l,f)=>(d(),k(S,{key:f,bordered:!1,class:D(["!shadow-sm mb-3 !border",l.url===o.activeMusicUrl?"!border-[#a88c6b]":"!border-[#a88c6b]/15"])},{default:s(()=>[n("div",Ye,[a(v,{value:l.name,"onUpdate:value":i=>l.name=i,placeholder:"曲目名称",class:"flex-1 min-w-[140px]"},null,8,["value","onUpdate:value"]),n("span",Qe,g(ve(l.url)),1),a(u,{size:"small",type:l.url===o.activeMusicUrl?"primary":"default",class:D(l.url===o.activeMusicUrl?"!bg-[#a88c6b] !border-[#a88c6b]":""),onClick:i=>fe(l.url)},{default:s(()=>[r(g(l.url===o.activeMusicUrl?"播放中":"设为播放"),1)]),_:2},1032,["type","class","onClick"]),a(u,{size:"small",danger:"",onClick:i=>pe(f)},{default:s(()=>[...e[24]||(e[24]=[n("i",{class:"fa-solid fa-trash"},null,-1)])]),_:1},8,["onClick"])]),l.url?(d(),p("audio",{key:0,src:l.url,controls:"",class:"w-full mt-3",style:{height:"36px"}},null,8,Xe)):U("",!0)]),_:2},1032,["class"]))),128)),a(u,{class:"mt-1",onClick:me},{default:s(()=>[...e[25]||(e[25]=[n("i",{class:"fa-solid fa-upload mr-1 text-[#a88c6b]"},null,-1),r("上传音乐 ",-1)])]),_:1})]),_:1})]),_:1}),a(V,{key:"photos",tab:"相册页管理"},{default:s(()=>[n("div",Ze,[n("span",et,"共 "+g(o.photoPages.length)+" 个相册页",1),a(u,{size:"small",onClick:ue},{default:s(()=>[...e[27]||(e[27]=[n("i",{class:"fa-solid fa-plus mr-1 text-[#a88c6b]"},null,-1),r("新增相册页",-1)])]),_:1})]),o.photoPages.length?U("",!0):(d(),k(ee,{key:0,description:"暂无相册页"})),(d(!0),p(w,null,E(o.photoPages,(l,f)=>(d(),k(S,{key:f,bordered:!1,class:"!shadow-sm mb-4"},{default:s(()=>[n("div",tt,[n("span",lt,"第 "+g(f+1)+" 页",1),n("div",at,[a(u,{size:"small",disabled:f===0,onClick:i=>Q(f,-1)},{default:s(()=>[...e[28]||(e[28]=[n("i",{class:"fa-solid fa-arrow-up"},null,-1)])]),_:1},8,["disabled","onClick"]),a(u,{size:"small",disabled:f===o.photoPages.length-1,onClick:i=>Q(f,1)},{default:s(()=>[...e[29]||(e[29]=[n("i",{class:"fa-solid fa-arrow-down"},null,-1)])]),_:1},8,["disabled","onClick"]),a(u,{size:"small",danger:"",onClick:i=>de(f)},{default:s(()=>[...e[30]||(e[30]=[n("i",{class:"fa-solid fa-trash"},null,-1)])]),_:1},8,["onClick"])])]),n("div",st,[a(c,{label:"版式"},{default:s(()=>[a(F,{value:l.type,"onUpdate:value":i=>l.type=i,onChange:()=>q(l)},{default:s(()=>[a(y,{value:"single"},{default:s(()=>[...e[31]||(e[31]=[r("单图",-1)])]),_:1}),a(y,{value:"overlap"},{default:s(()=>[...e[32]||(e[32]=[r("错落双图",-1)])]),_:1}),a(y,{value:"one-large-five-small"},{default:s(()=>[...e[33]||(e[33]=[r("一大五小",-1)])]),_:1}),a(y,{value:"nine-grid"},{default:s(()=>[...e[34]||(e[34]=[r("九宫格",-1)])]),_:1}),a(y,{value:"masonry"},{default:s(()=>[...e[35]||(e[35]=[r("瀑布流",-1)])]),_:1}),a(y,{value:"carousel"},{default:s(()=>[...e[36]||(e[36]=[r("轮播滑动",-1)])]),_:1}),a(y,{value:"polaroid"},{default:s(()=>[...e[37]||(e[37]=[r("拍立得拼贴",-1)])]),_:1})]),_:1},8,["value","onUpdate:value","onChange"])]),_:2},1024),a(c,{label:"页面高度"},{default:s(()=>[n("div",ot,[a(F,{value:W(l),onChange:i=>ae(l,i),class:"flex-1"},{default:s(()=>[(d(),p(w,null,E(G,i=>a(y,{key:i.value,value:i.value},{default:s(()=>[r(g(i.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value","onChange"]),W(l)==="__custom__"?(d(),k(Ue,{key:0,value:se(l),onChange:i=>oe(l,i),min:20,max:200,"addon-after":"vh",class:"w-[150px]"},null,8,["value","onChange"])):U("",!0)])]),_:2},1024)]),n("div",nt,[a(c,{label:"边框样式"},{default:s(()=>[a(F,{value:l.borderStyle,"onUpdate:value":i=>l.borderStyle=i},{default:s(()=>[(d(!0),p(w,null,E(H(Te),i=>(d(),k(y,{key:i.value,value:i.value},{default:s(()=>[r(g(i.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","onUpdate:value"])]),_:2},1024),n("div",it,[e[39]||(e[39]=n("span",{class:"text-[11px] text-[#a88c6b]"},"预览",-1)),n("div",ut,[n("div",{class:D(H(je)(l.borderStyle)),style:{width:"100%",height:"100%"}},[...e[38]||(e[38]=[n("img",{src:"https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=200&q=80"},null,-1)])],2)])])]),n("div",dt,[a(c,{label:"小标题 (英文)"},{default:s(()=>[a(v,{value:l.subtitle,"onUpdate:value":i=>l.subtitle=i},null,8,["value","onUpdate:value"])]),_:2},1024),a(c,{label:"标题"},{default:s(()=>[a(v,{value:l.title,"onUpdate:value":i=>l.title=i},null,8,["value","onUpdate:value"])]),_:2},1024)]),a(c,{label:"描述"},{default:s(()=>[a(X,{value:l.desc,"onUpdate:value":i=>l.desc=i,rows:2},null,8,["value","onUpdate:value"])]),_:2},1024),n("div",rt,[l.type==="single"?(d(),k(M,{key:0,modelValue:l.img1,"onUpdate:modelValue":i=>l.img1=i,onPick:i=>$(b=>l.img1=b),uploading:x.value},null,8,["modelValue","onUpdate:modelValue","onPick","uploading"])):l.type==="overlap"?(d(),p(w,{key:1},[a(M,{modelValue:l.img1,"onUpdate:modelValue":i=>l.img1=i,label:"图一",onPick:i=>$(b=>l.img1=b),uploading:x.value},null,8,["modelValue","onUpdate:modelValue","onPick","uploading"]),a(M,{modelValue:l.img2,"onUpdate:modelValue":i=>l.img2=i,label:"图二",onPick:i=>$(b=>l.img2=b),uploading:x.value},null,8,["modelValue","onUpdate:modelValue","onPick","uploading"])],64)):(d(),p(w,{key:2},[(d(!0),p(w,null,E(l.images,(i,b)=>(d(),p("div",{key:b,class:"relative"},[a(M,{modelValue:l.images[b],"onUpdate:modelValue":O=>l.images[b]=O,label:`图${b+1}`,onPick:O=>$(Pe=>l.images[b]=Pe),uploading:x.value},null,8,["modelValue","onUpdate:modelValue","label","onPick","uploading"]),Y(l.type)&&l.images.length>1?(d(),p("button",{key:0,class:"absolute -top-2 -right-2 w-5 h-5 rounded-full bg-[#a88c6b] text-white text-[10px] leading-none flex items-center justify-center shadow",onClick:O=>ie(l,b),title:"移除该图"},"✕",8,ct)):U("",!0)]))),128)),Y(l.type)?(d(),p("button",{key:0,class:"w-[96px] h-[96px] rounded-xl border border-dashed border-[#a88c6b]/40 text-[#a88c6b] text-[11px] flex items-center justify-center hover:border-[#a88c6b] transition-colors",onClick:i=>ne(l)},"+ 添加图片",8,mt)):U("",!0)],64))])]),_:2},1024))),128))]),_:1}),a(V,{key:"schedule",tab:"婚礼流程"},{default:s(()=>[n("div",ft,[n("span",pt,"共 "+g(o.schedule.length)+" 个环节",1),a(u,{size:"small",onClick:re},{default:s(()=>[...e[40]||(e[40]=[n("i",{class:"fa-solid fa-plus mr-1 text-[#a88c6b]"},null,-1),r("新增环节",-1)])]),_:1})]),(d(!0),p(w,null,E(o.schedule,(l,f)=>(d(),k(S,{key:f,bordered:!1,class:"!shadow-sm mb-3"},{default:s(()=>[n("div",vt,[n("div",gt,[e[41]||(e[41]=n("div",{class:"text-[11px] text-[#a88c6b] mb-1"},"时间",-1)),a(v,{value:l.time,"onUpdate:value":i=>l.time=i,placeholder:"如 17:08"},null,8,["value","onUpdate:value"])]),n("div",bt,[e[42]||(e[42]=n("div",{class:"text-[11px] text-[#a88c6b] mb-1"},"环节",-1)),a(v,{value:l.event,"onUpdate:value":i=>l.event=i,placeholder:"如 仪式开始"},null,8,["value","onUpdate:value"])]),n("div",_t,[e[43]||(e[43]=n("div",{class:"text-[11px] text-[#a88c6b] mb-1"},"英文副标题",-1)),a(v,{value:l.desc,"onUpdate:value":i=>l.desc=i,placeholder:"如 Ceremony"},null,8,["value","onUpdate:value"])]),a(u,{danger:"",size:"small",onClick:i=>ce(f)},{default:s(()=>[...e[44]||(e[44]=[n("i",{class:"fa-solid fa-trash"},null,-1)])]),_:1},8,["onClick"])])]),_:2},1024))),128))]),_:1}),a(V,{key:"rsvp",tab:"出席回执"},{default:s(()=>[a(Se,{columns:he,"data-source":J.value,loading:j.value,"row-key":"id",size:"small",pagination:{pageSize:8}},{bodyCell:s(({column:l,record:f})=>[l.key==="guest_count"?(d(),k(Ce,{key:0,color:f.guest_count==="0"?"default":"pink"},{default:s(()=>[r(g(xe(f.guest_count)),1)]),_:2},1032,["color"])):l.key==="created_at"?(d(),p(w,{key:1},[r(g(ye(f.created_at)),1)],64)):U("",!0)]),_:1},8,["data-source","loading"])]),_:1})]),_:1},8,["activeKey"])])])}}},kt=Ne(ht,[["__scopeId","data-v-8b21252d"]]);export{kt as default};
|