6 lines
21 KiB
JavaScript
6 lines
21 KiB
JavaScript
import{b as d,d as p,e as n,t as b,j as r,k as U,y as Ee,s as Le,h as $e,i as Se,l as a,m as s,C as Me,q as c,r as S,z as Ae,u as ze,D as k,F as w,f as M,n as Z,E as Ie,B as L,G as ee}from"./index-BLDegpD4.js";import{_ as Ne}from"./_plugin-vue_export-helper-DlAUqK2U.js";const Te=["src"],je={key:1,class:"w-full h-full flex flex-col items-center justify-center text-[#a88c6b]/70 gap-1"},qe={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]"},Re={key:2,class:"absolute left-1 bottom-1 bg-white/80 text-[#a88c6b] text-[9px] px-1 rounded"},A={__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,Te)):(d(),p("div",je,[h[1]||(h[1]=n("i",{class:"fa-solid fa-image text-lg"},null,-1)),n("span",qe,b(C.placeholder),1)])),n("div",Fe,[h[2]||(h[2]=n("i",{class:"fa-solid fa-cloud-arrow-up mr-1"},null,-1)),r(b(C.uploading?"上传中":"点击上传"),1)]),C.label?(d(),p("div",Re,b(C.label),1)):U("",!0)]))}},Be={class:"min-h-screen bg-[#f6f4ef] text-[#2c2c2c]"},Oe={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"},He={class:"flex items-center gap-2"},De={class:"max-w-[960px] mx-auto px-4 py-6"},Je={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6"},Ke={class:"grid grid-cols-1 md:grid-cols-3 gap-4"},Ge={class:"flex items-center gap-3 flex-wrap"},We={class:"text-[10px] text-[#8A8680] flex-1 min-w-[140px] truncate"},Qe=["src"],Xe={class:"flex justify-between items-center mb-3"},Ye={class:"text-[12px] text-[#8A8680]"},Ze={class:"flex justify-between items-center mb-3"},et={class:"text-[#a88c6b] text-sm"},tt={class:"flex gap-1"},lt={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6"},at={class:"flex gap-2 items-center"},st={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6"},ot={class:"flex flex-wrap gap-3 mt-2"},nt=["onClick"],it=["onClick"],ut={class:"flex justify-between items-center mb-3"},dt={class:"text-[12px] text-[#8A8680]"},rt={class:"flex items-end gap-3 flex-wrap"},ct={class:"flex-1 min-w-[120px]"},mt={class:"flex-1 min-w-[140px]"},ft={class:"flex-1 min-w-[140px]"},pt={__name:"AdminEditor",setup(C){const z=Ae(),h=Ee(),N=S("basic"),T=S(!1),x=S(!1),j=S(!1),O=S([]),o=Le(te());function te(){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"},{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"},{type:"one-large-five-small",title:"相恋",subtitle:"ROMANCE",desc:`星光坠入眼眸,晚风轻抚过裙摆。
|
||
浪漫不止于此,还有无数个明天。`,images:H(6),height:"100vh"},{type:"nine-grid",title:"相守",subtitle:"FOREVER",desc:"往后余生,风雪是你,平淡是你。",images:H(9),height:"100vh"}],schedule:[{time:"16:00",event:"签到迎宾",desc:"Welcome"},{time:"17:08",event:"仪式开始",desc:"Ceremony"},{time:"18:00",event:"敬备喜宴",desc:"Banquet"}]}}function H(t){return Array.from({length:t},()=>"https://images.unsplash.com/photo-1511285560929-80b456fea0bc?auto=format&fit=crop&w=400&q=80")}const D=[{label:"满屏(整屏)",value:"100vh"},{label:"大屏(80%)",value:"80vh"},{label:"半屏(60%)",value:"60vh"},{label:"自适应(内容高度)",value:"auto"},{label:"自定义",value:"__custom__"}];function J(t){const e=D.find(i=>i.value===t.height);return e?e.value:"__custom__"}function le(t,e){e!=="__custom__"&&(t.height=e)}function ae(t){const e=/^([\d.]+)vh$/.exec(t.height||"");return e?Number(e[1]):100}function se(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 i={"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<i;)t.images.push("");else if(["one-large-five-small","nine-grid"].includes(t.type)){for(;t.images.length<i;)t.images.push("");t.images.length>i&&(t.images.length=i)}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}function K(t){return["masonry","carousel","polaroid"].includes(t)}function oe(t){Array.isArray(t.images)||(t.images=[]),t.images.push("")}function ne(t,e){t.images.length>1&&t.images.splice(e,1)}function ie(){o.photoPages.push(q({type:"single",title:"新页面",subtitle:"NEW",desc:"",img1:""}))}function ue(t){o.photoPages.splice(t,1)}function G(t,e){const i=t+e;if(i<0||i>=o.photoPages.length)return;const _=o.photoPages[t];o.photoPages[t]=o.photoPages[i],o.photoPages[i]=_}function de(){o.schedule.push({time:"",event:"",desc:""})}function re(t){o.schedule.splice(t,1)}function $(t){const e=document.createElement("input");e.type="file",e.accept="image/*",e.onchange=async i=>{const _=i.target.files[0];if(_){x.value=!0;try{const E=await ee(_);t(E.url),L.success("上传成功")}catch{L.error("上传失败")}finally{x.value=!1,i.target.value=""}}},e.click()}function ce(){const t=document.createElement("input");t.type="file",t.accept="audio/*",t.onchange=async e=>{const i=e.target.files[0];if(i){x.value=!0;try{const _=await ee(i),E=i.name.replace(/\.[^.]+$/,"")||"背景音乐",I=_.url;o.musicList||(o.musicList=[]),o.musicList.push({url:I,name:E}),o.activeMusicUrl||(o.activeMusicUrl=I),L.success("音乐上传成功")}catch{L.error("上传失败")}finally{x.value=!1,e.target.value=""}}},t.click()}function me(t){o.activeMusicUrl=t}function fe(t){var e,i;o.musicList.splice(t,1),o.activeMusicUrl===((e=o.musicList[t])==null?void 0:e.url)&&(o.activeMusicUrl=((i=o.musicList[0])==null?void 0:i.url)||"")}function pe(t){if(!t)return"";const e=t.split("/");return e[e.length-1]||t}async function ve(){var t,e;T.value=!0;try{await Ie(JSON.parse(JSON.stringify(o))),L.success("配置已保存")}catch(i){const _=((t=i==null?void 0:i.response)==null?void 0:t.status)===401?"登录已失效,请重新登录":(i==null?void 0:i.message)||"保存失败";L.error(_),((e=i==null?void 0:i.response)==null?void 0:e.status)===401&&z.replace({name:"Login",query:{redirect:"/admin"}})}finally{T.value=!1}}function ge(){window.open("/","_blank")}function be(){h.logout(),z.replace({name:"Login",query:{redirect:"/admin"}})}const _e=[{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"}],he=t=>({1:"1 人出席",2:"2 人出席",3:"3 人及以上",0:"遗憾缺席"})[t]||t;function xe(t){if(!t)return"";const e=new Date(t);return isNaN(e)?t:e.toLocaleString("zh-CN",{hour12:!1})}async function ye(){j.value=!0;try{const t=await Me();O.value=t.data||[]}catch{}finally{j.value=!1}}return $e(async()=>{try{const t=await Se();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&&ye()}),(t,e)=>{const i=c("a-button"),_=c("a-menu-item"),E=c("a-menu"),I=c("a-dropdown"),v=c("a-input"),m=c("a-form-item"),W=c("a-textarea"),F=c("a-form"),V=c("a-card"),P=c("a-tab-pane"),Q=c("a-radio"),ke=c("a-radio-group"),R=c("a-switch"),X=c("a-empty"),y=c("a-select-option"),Y=c("a-select"),we=c("a-input-number"),Ue=c("a-tag"),Ce=c("a-table"),Ve=c("a-tabs");return d(),p("div",Be,[n("header",Oe,[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",He,[a(i,{size:"small",onClick:ge},{default:s(()=>[...e[15]||(e[15]=[n("i",{class:"fa-solid fa-eye mr-1 text-[#a88c6b]"},null,-1),r("预览请柬 ",-1)])]),_:1}),a(i,{type:"primary",size:"small",loading:T.value,onClick:ve,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(E,null,{default:s(()=>[a(_,{key:"logout",onClick:be},{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(i,{size:"small"},{default:s(()=>{var l;return[r(b(((l=ze(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",De,[a(Ve,{activeKey:N.value,"onUpdate:activeKey":e[14]||(e[14]=l=>N.value=l),type:"card",class:"admin-tabs"},{default:s(()=>[a(P,{key:"basic",tab:"基础信息"},{default:s(()=>[a(V,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[a(F,{layout:"vertical"},{default:s(()=>[n("div",Je,[a(m,{label:"新郎"},{default:s(()=>[a(v,{value:o.groom,"onUpdate:value":e[0]||(e[0]=l=>o.groom=l),placeholder:"新郎姓名"},null,8,["value"])]),_:1}),a(m,{label:"新娘"},{default:s(()=>[a(v,{value:o.bride,"onUpdate:value":e[1]||(e[1]=l=>o.bride=l),placeholder:"新娘姓名"},null,8,["value"])]),_:1}),a(m,{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(m,{label:"农历 / 星期"},{default:s(()=>[a(v,{value:o.lunar,"onUpdate:value":e[3]||(e[3]=l=>o.lunar=l),placeholder:"如 农历四月初四 星期三"},null,8,["value"])]),_:1}),a(m,{label:"酒店名称"},{default:s(()=>[a(v,{value:o.hotel,"onUpdate:value":e[4]||(e[4]=l=>o.hotel=l),placeholder:"宴会酒店"},null,8,["value"])]),_:1}),a(m,{label:"详细地址"},{default:s(()=>[a(W,{value:o.address,"onUpdate:value":e[5]||(e[5]=l=>o.address=l),rows:2,placeholder:"可换行"},null,8,["value"])]),_:1})]),a(m,{label:"封面 / 尾页主图"},{default:s(()=>[a(A,{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(P,{key:"copy",tab:"邀请文案"},{default:s(()=>[a(V,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[a(F,{layout:"vertical"},{default:s(()=>[a(m,{label:"竖排文案 · 上联"},{default:s(()=>[a(v,{value:o.formalText1,"onUpdate:value":e[8]||(e[8]=l=>o.formalText1=l),placeholder:"如 两姓联姻 一堂缔约"},null,8,["value"])]),_:1}),a(m,{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(P,{key:"visual",tab:"视觉与动效"},{default:s(()=>[a(V,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[a(F,{layout:"vertical"},{default:s(()=>[a(m,{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(m,{label:"滚动方式"},{default:s(()=>[a(ke,{value:o.scrollMode,"onUpdate:value":e[10]||(e[10]=l=>o.scrollMode=l)},{default:s(()=>[a(Q,{value:"snap"},{default:s(()=>[...e[21]||(e[21]=[r("整页 / 分屏吸附滚动",-1)])]),_:1}),a(Q,{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",Ke,[a(m,{label:"飘落花瓣"},{default:s(()=>[a(R,{checked:o.petalEnabled,"onUpdate:checked":e[11]||(e[11]=l=>o.petalEnabled=l)},null,8,["checked"])]),_:1}),a(m,{label:"漂浮爱心"},{default:s(()=>[a(R,{checked:o.bubbleEnabled,"onUpdate:checked":e[12]||(e[12]=l=>o.bubbleEnabled=l)},null,8,["checked"])]),_:1}),a(m,{label:"入场揭幕"},{default:s(()=>[a(R,{checked:o.introEnabled,"onUpdate:checked":e[13]||(e[13]=l=>o.introEnabled=l)},null,8,["checked"])]),_:1})])]),_:1})]),_:1})]),_:1}),a(P,{key:"music",tab:"背景音乐"},{default:s(()=>[a(V,{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(X,{key:0,description:"尚未上传音乐"})),(d(!0),p(w,null,M(o.musicList,(l,f)=>(d(),k(V,{key:f,bordered:!1,class:Z(["!shadow-sm mb-3 !border",l.url===o.activeMusicUrl?"!border-[#a88c6b]":"!border-[#a88c6b]/15"])},{default:s(()=>[n("div",Ge,[a(v,{value:l.name,"onUpdate:value":u=>l.name=u,placeholder:"曲目名称",class:"flex-1 min-w-[140px]"},null,8,["value","onUpdate:value"]),n("span",We,b(pe(l.url)),1),a(i,{size:"small",type:l.url===o.activeMusicUrl?"primary":"default",class:Z(l.url===o.activeMusicUrl?"!bg-[#a88c6b] !border-[#a88c6b]":""),onClick:u=>me(l.url)},{default:s(()=>[r(b(l.url===o.activeMusicUrl?"播放中":"设为播放"),1)]),_:2},1032,["type","class","onClick"]),a(i,{size:"small",danger:"",onClick:u=>fe(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,Qe)):U("",!0)]),_:2},1032,["class"]))),128)),a(i,{class:"mt-1",onClick:ce},{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(P,{key:"photos",tab:"相册页管理"},{default:s(()=>[n("div",Xe,[n("span",Ye,"共 "+b(o.photoPages.length)+" 个相册页",1),a(i,{size:"small",onClick:ie},{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(X,{key:0,description:"暂无相册页"})),(d(!0),p(w,null,M(o.photoPages,(l,f)=>(d(),k(V,{key:f,bordered:!1,class:"!shadow-sm mb-4"},{default:s(()=>[n("div",Ze,[n("span",et,"第 "+b(f+1)+" 页",1),n("div",tt,[a(i,{size:"small",disabled:f===0,onClick:u=>G(f,-1)},{default:s(()=>[...e[28]||(e[28]=[n("i",{class:"fa-solid fa-arrow-up"},null,-1)])]),_:1},8,["disabled","onClick"]),a(i,{size:"small",disabled:f===o.photoPages.length-1,onClick:u=>G(f,1)},{default:s(()=>[...e[29]||(e[29]=[n("i",{class:"fa-solid fa-arrow-down"},null,-1)])]),_:1},8,["disabled","onClick"]),a(i,{size:"small",danger:"",onClick:u=>ue(f)},{default:s(()=>[...e[30]||(e[30]=[n("i",{class:"fa-solid fa-trash"},null,-1)])]),_:1},8,["onClick"])])]),n("div",lt,[a(m,{label:"版式"},{default:s(()=>[a(Y,{value:l.type,"onUpdate:value":u=>l.type=u,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(m,{label:"页面高度"},{default:s(()=>[n("div",at,[a(Y,{value:J(l),onChange:u=>le(l,u),class:"flex-1"},{default:s(()=>[(d(),p(w,null,M(D,u=>a(y,{key:u.value,value:u.value},{default:s(()=>[r(b(u.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value","onChange"]),J(l)==="__custom__"?(d(),k(we,{key:0,value:ae(l),onChange:u=>se(l,u),min:20,max:200,"addon-after":"vh",class:"w-[150px]"},null,8,["value","onChange"])):U("",!0)])]),_:2},1024)]),n("div",st,[a(m,{label:"小标题 (英文)"},{default:s(()=>[a(v,{value:l.subtitle,"onUpdate:value":u=>l.subtitle=u},null,8,["value","onUpdate:value"])]),_:2},1024),a(m,{label:"标题"},{default:s(()=>[a(v,{value:l.title,"onUpdate:value":u=>l.title=u},null,8,["value","onUpdate:value"])]),_:2},1024)]),a(m,{label:"描述"},{default:s(()=>[a(W,{value:l.desc,"onUpdate:value":u=>l.desc=u,rows:2},null,8,["value","onUpdate:value"])]),_:2},1024),n("div",ot,[l.type==="single"?(d(),k(A,{key:0,modelValue:l.img1,"onUpdate:modelValue":u=>l.img1=u,onPick:u=>$(g=>l.img1=g),uploading:x.value},null,8,["modelValue","onUpdate:modelValue","onPick","uploading"])):l.type==="overlap"?(d(),p(w,{key:1},[a(A,{modelValue:l.img1,"onUpdate:modelValue":u=>l.img1=u,label:"图一",onPick:u=>$(g=>l.img1=g),uploading:x.value},null,8,["modelValue","onUpdate:modelValue","onPick","uploading"]),a(A,{modelValue:l.img2,"onUpdate:modelValue":u=>l.img2=u,label:"图二",onPick:u=>$(g=>l.img2=g),uploading:x.value},null,8,["modelValue","onUpdate:modelValue","onPick","uploading"])],64)):(d(),p(w,{key:2},[(d(!0),p(w,null,M(l.images,(u,g)=>(d(),p("div",{key:g,class:"relative"},[a(A,{modelValue:l.images[g],"onUpdate:modelValue":B=>l.images[g]=B,label:`图${g+1}`,onPick:B=>$(Pe=>l.images[g]=Pe),uploading:x.value},null,8,["modelValue","onUpdate:modelValue","label","onPick","uploading"]),K(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:B=>ne(l,g),title:"移除该图"},"✕",8,nt)):U("",!0)]))),128)),K(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:u=>oe(l)},"+ 添加图片",8,it)):U("",!0)],64))])]),_:2},1024))),128))]),_:1}),a(P,{key:"schedule",tab:"婚礼流程"},{default:s(()=>[n("div",ut,[n("span",dt,"共 "+b(o.schedule.length)+" 个环节",1),a(i,{size:"small",onClick:de},{default:s(()=>[...e[38]||(e[38]=[n("i",{class:"fa-solid fa-plus mr-1 text-[#a88c6b]"},null,-1),r("新增环节",-1)])]),_:1})]),(d(!0),p(w,null,M(o.schedule,(l,f)=>(d(),k(V,{key:f,bordered:!1,class:"!shadow-sm mb-3"},{default:s(()=>[n("div",rt,[n("div",ct,[e[39]||(e[39]=n("div",{class:"text-[11px] text-[#a88c6b] mb-1"},"时间",-1)),a(v,{value:l.time,"onUpdate:value":u=>l.time=u,placeholder:"如 17:08"},null,8,["value","onUpdate:value"])]),n("div",mt,[e[40]||(e[40]=n("div",{class:"text-[11px] text-[#a88c6b] mb-1"},"环节",-1)),a(v,{value:l.event,"onUpdate:value":u=>l.event=u,placeholder:"如 仪式开始"},null,8,["value","onUpdate:value"])]),n("div",ft,[e[41]||(e[41]=n("div",{class:"text-[11px] text-[#a88c6b] mb-1"},"英文副标题",-1)),a(v,{value:l.desc,"onUpdate:value":u=>l.desc=u,placeholder:"如 Ceremony"},null,8,["value","onUpdate:value"])]),a(i,{danger:"",size:"small",onClick:u=>re(f)},{default:s(()=>[...e[42]||(e[42]=[n("i",{class:"fa-solid fa-trash"},null,-1)])]),_:1},8,["onClick"])])]),_:2},1024))),128))]),_:1}),a(P,{key:"rsvp",tab:"出席回执"},{default:s(()=>[a(Ce,{columns:_e,"data-source":O.value,loading:j.value,"row-key":"id",size:"small",pagination:{pageSize:8}},{bodyCell:s(({column:l,record:f})=>[l.key==="guest_count"?(d(),k(Ue,{key:0,color:f.guest_count==="0"?"default":"pink"},{default:s(()=>[r(b(he(f.guest_count)),1)]),_:2},1032,["color"])):l.key==="created_at"?(d(),p(w,{key:1},[r(b(xe(f.created_at)),1)],64)):U("",!0)]),_:1},8,["data-source","loading"])]),_:1})]),_:1},8,["activeKey"])])])}}},bt=Ne(pt,[["__scopeId","data-v-0b99ae25"]]);export{bt as default};
|