6 lines
24 KiB
JavaScript
6 lines
24 KiB
JavaScript
import{b as d,d as p,e as n,t as g,k as r,l as y,x as Le,p as Ae,h as Ie,i as $e,q as a,y as s,D as Me,z as m,r as I,A as ze,u as W,E as h,F as U,g as E,f as H,G as Ne,C as L,H as se}from"./index-CZ-hSlJt.js";import{_ as Re,B as Te,b as je}from"./_plugin-vue_export-helper-CdZ5VnM5.js";const De=["src"],qe={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"},$={__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(S){return(M,_)=>(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:_[0]||(_[0]=T=>M.$emit("pick"))},[S.modelValue?(d(),p("img",{key:0,src:S.modelValue,class:"w-full h-full object-cover"},null,8,De)):(d(),p("div",qe,[_[1]||(_[1]=n("i",{class:"fa-solid fa-image text-lg"},null,-1)),n("span",Be,g(S.placeholder),1)])),n("div",Fe,[_[2]||(_[2]=n("i",{class:"fa-solid fa-cloud-arrow-up mr-1"},null,-1)),r(g(S.uploading?"上传中":"点击上传"),1)]),S.label?(d(),p("div",Oe,g(S.label),1)):y("",!0)]))}},Ke={class:"min-h-screen bg-[#f6f4ef] text-[#2c2c2c]"},We={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"},Je={class:"max-w-[960px] mx-auto px-4 py-6"},Ge={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6"},Ye={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6"},Qe={class:"flex gap-3 items-center"},Xe={class:"flex gap-3 items-center"},Ze={class:"grid grid-cols-1 md:grid-cols-3 gap-4"},el={class:"flex items-center gap-3 flex-wrap"},ll={class:"text-[10px] text-[#8A8680] flex-1 min-w-[140px] truncate"},tl=["src"],al={class:"flex justify-between items-center mb-3"},sl={class:"text-[12px] text-[#8A8680]"},ol={class:"flex justify-between items-center mb-3"},nl={class:"text-[#a88c6b] text-sm"},il={class:"flex gap-1"},ul={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6"},dl={class:"flex gap-2 items-center"},rl={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6 items-start"},cl={class:"flex items-center gap-3"},ml={class:"w-[70px] h-[88px] shrink-0"},fl={key:0,class:"grid grid-cols-1 md:grid-cols-2 gap-x-6 items-start"},pl={class:"grid grid-cols-1 md:grid-cols-2 gap-x-6"},vl={class:"flex flex-wrap gap-3 mt-2"},gl=["onClick"],bl=["onClick"],xl={class:"flex justify-between items-center mb-3"},_l={class:"text-[12px] text-[#8A8680]"},hl={class:"flex items-end gap-3 flex-wrap"},yl={class:"flex-1 min-w-[120px]"},kl={class:"flex-1 min-w-[140px]"},wl={class:"flex-1 min-w-[140px]"},Ul={__name:"AdminEditor",setup(S){const M=ze(),_=Le(),T=I("basic"),j=I(!1),k=I(!1),D=I(!1),J=I([]),o=Ae(oe());function oe(){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,freeScrollInterval:50,pageSwitchDuration:800,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:G(6),height:"100vh",borderStyle:"mat"},{type:"nine-grid",title:"相守",subtitle:"FOREVER",desc:"往后余生,风雪是你,平淡是你。",images:G(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 G(l){return Array.from({length:l},()=>"https://images.unsplash.com/photo-1511285560929-80b456fea0bc?auto=format&fit=crop&w=400&q=80")}const Y=[{label:"满屏(整屏)",value:"100vh"},{label:"大屏(80%)",value:"80vh"},{label:"半屏(60%)",value:"60vh"},{label:"自适应(内容高度)",value:"auto"},{label:"自定义",value:"__custom__"}];function Q(l){const e=Y.find(u=>u.value===l.height);return e?e.value:"__custom__"}function ne(l,e){e!=="__custom__"&&(l.height=e)}function ie(l){const e=/^([\d.]+)vh$/.exec(l.height||"");return e?Number(e[1]):100}function ue(l,e){l.height=(e||100)+"vh"}function q(l){if(l.type==="single")l.img1=l.img1||"",delete l.img2,delete l.images;else if(l.type==="overlap")l.img1=l.img1||"",l.img2=l.img2||"",delete l.images;else{const u={"one-large-five-small":6,"nine-grid":9,masonry:6,carousel:5,polaroid:6}[l.type]||6;if(l.images=Array.isArray(l.images)?l.images:[],l.images.length===0)for(;l.images.length<u;)l.images.push("");else if(["one-large-five-small","nine-grid"].includes(l.type)){for(;l.images.length<u;)l.images.push("");l.images.length>u&&(l.images.length=u)}delete l.img1,delete l.img2}return l.title=l.title||"",l.subtitle=l.subtitle||"",l.desc=l.desc||"",l.height=l.height||"100vh",l.borderStyle=l.borderStyle||"mat",l.singleWidth=l.singleWidth==="full"?"full":"default",typeof l.singleKeepRatio!="boolean"&&(l.singleKeepRatio=!0),l}function X(l){return["masonry","carousel","polaroid"].includes(l)}function de(l){Array.isArray(l.images)||(l.images=[]),l.images.push("")}function re(l,e){l.images.length>1&&l.images.splice(e,1)}function ce(){o.photoPages.push(q({type:"single",title:"新页面",subtitle:"NEW",desc:"",img1:""}))}function me(l){o.photoPages.splice(l,1)}function Z(l,e){const u=l+e;if(u<0||u>=o.photoPages.length)return;const x=o.photoPages[l];o.photoPages[l]=o.photoPages[u],o.photoPages[u]=x}function fe(){o.schedule.push({time:"",event:"",desc:""})}function pe(l){o.schedule.splice(l,1)}function A(l){const e=document.createElement("input");e.type="file",e.accept="image/*",e.onchange=async u=>{const x=u.target.files[0];if(x){k.value=!0;try{const P=await se(x);l(P.url),L.success("上传成功")}catch{L.error("上传失败")}finally{k.value=!1,u.target.value=""}}},e.click()}function ve(){const l=document.createElement("input");l.type="file",l.accept="audio/*",l.onchange=async e=>{const u=e.target.files[0];if(u){k.value=!0;try{const x=await se(u),P=u.name.replace(/\.[^.]+$/,"")||"背景音乐",z=x.url;o.musicList||(o.musicList=[]),o.musicList.push({url:z,name:P}),o.activeMusicUrl||(o.activeMusicUrl=z),L.success("音乐上传成功")}catch{L.error("上传失败")}finally{k.value=!1,e.target.value=""}}},l.click()}function ge(l){o.activeMusicUrl=l}function be(l){var e,u;o.musicList.splice(l,1),o.activeMusicUrl===((e=o.musicList[l])==null?void 0:e.url)&&(o.activeMusicUrl=((u=o.musicList[0])==null?void 0:u.url)||"")}function xe(l){if(!l)return"";const e=l.split("/");return e[e.length-1]||l}async function _e(){var l,e;j.value=!0;try{await Ne(JSON.parse(JSON.stringify(o))),L.success("配置已保存")}catch(u){const x=((l=u==null?void 0:u.response)==null?void 0:l.status)===401?"登录已失效,请重新登录":(u==null?void 0:u.message)||"保存失败";L.error(x),((e=u==null?void 0:u.response)==null?void 0:e.status)===401&&M.replace({name:"Login",query:{redirect:"/admin"}})}finally{j.value=!1}}function he(){window.open("/","_blank")}function ye(){_.logout(),M.replace({name:"Login",query:{redirect:"/admin"}})}const ke=[{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"}],we=l=>({1:"1 人出席",2:"2 人出席",3:"3 人及以上",0:"遗憾缺席"})[l]||l;function Ue(l){if(!l)return"";const e=new Date(l);return isNaN(e)?l:e.toLocaleString("zh-CN",{hour12:!1})}async function Se(){D.value=!0;try{const l=await Me();J.value=l.data||[]}catch{}finally{D.value=!1}}return Ie(async()=>{try{const l=await $e();if(l.data&&l.data!=="{}"){const e=typeof l.data=="string"?JSON.parse(l.data):l.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),o.freeScrollInterval=Number(o.freeScrollInterval)||50,o.pageSwitchDuration=Number(o.pageSwitchDuration)||800}}catch{}_.isAdmin&&Se()}),(l,e)=>{const u=m("a-button"),x=m("a-menu-item"),P=m("a-menu"),z=m("a-dropdown"),v=m("a-input"),c=m("a-form-item"),ee=m("a-textarea"),B=m("a-form"),C=m("a-card"),V=m("a-tab-pane"),N=m("a-radio"),le=m("a-radio-group"),te=m("a-slider"),F=m("a-input-number"),R=m("a-switch"),ae=m("a-empty"),w=m("a-select-option"),O=m("a-select"),Ce=m("a-tag"),Ve=m("a-table"),Pe=m("a-tabs");return d(),p("div",Ke,[n("header",We,[e[23]||(e[23]=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(u,{size:"small",onClick:he},{default:s(()=>[...e[19]||(e[19]=[n("i",{class:"fa-solid fa-eye mr-1 text-[#a88c6b]"},null,-1),r("预览请柬 ",-1)])]),_:1}),a(u,{type:"primary",size:"small",loading:j.value,onClick:_e,class:"!bg-[#a88c6b] hover:!bg-[#967b5c] !border-[#a88c6b]"},{default:s(()=>[...e[20]||(e[20]=[n("i",{class:"fa-solid fa-floppy-disk mr-1"},null,-1),r("保存配置 ",-1)])]),_:1},8,["loading"]),a(z,null,{overlay:s(()=>[a(P,null,{default:s(()=>[a(x,{key:"logout",onClick:ye},{default:s(()=>[...e[22]||(e[22]=[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 t;return[r(g(((t=W(_).user)==null?void 0:t.account)||"管理员"),1),e[21]||(e[21]=n("i",{class:"fa-solid fa-chevron-down ml-1 text-[10px]"},null,-1))]}),_:1})]),_:1})])]),n("div",Je,[a(Pe,{activeKey:T.value,"onUpdate:activeKey":e[18]||(e[18]=t=>T.value=t),type:"card",class:"admin-tabs"},{default:s(()=>[a(V,{key:"basic",tab:"基础信息"},{default:s(()=>[a(C,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[a(B,{layout:"vertical"},{default:s(()=>[n("div",Ge,[a(c,{label:"新郎"},{default:s(()=>[a(v,{value:o.groom,"onUpdate:value":e[0]||(e[0]=t=>o.groom=t),placeholder:"新郎姓名"},null,8,["value"])]),_:1}),a(c,{label:"新娘"},{default:s(()=>[a(v,{value:o.bride,"onUpdate:value":e[1]||(e[1]=t=>o.bride=t),placeholder:"新娘姓名"},null,8,["value"])]),_:1}),a(c,{label:"公历日期"},{default:s(()=>[a(v,{value:o.date,"onUpdate:value":e[2]||(e[2]=t=>o.date=t),placeholder:"如 2026-05-20"},null,8,["value"])]),_:1}),a(c,{label:"农历 / 星期"},{default:s(()=>[a(v,{value:o.lunar,"onUpdate:value":e[3]||(e[3]=t=>o.lunar=t),placeholder:"如 农历四月初四 星期三"},null,8,["value"])]),_:1}),a(c,{label:"酒店名称"},{default:s(()=>[a(v,{value:o.hotel,"onUpdate:value":e[4]||(e[4]=t=>o.hotel=t),placeholder:"宴会酒店"},null,8,["value"])]),_:1}),a(c,{label:"详细地址"},{default:s(()=>[a(ee,{value:o.address,"onUpdate:value":e[5]||(e[5]=t=>o.address=t),rows:2,placeholder:"可换行"},null,8,["value"])]),_:1})]),a(c,{label:"封面 / 尾页主图"},{default:s(()=>[a($,{modelValue:o.heroImg,"onUpdate:modelValue":e[6]||(e[6]=t=>o.heroImg=t),onPick:e[7]||(e[7]=t=>A(f=>o.heroImg=f)),uploading:k.value},null,8,["modelValue","uploading"])]),_:1})]),_:1})]),_:1})]),_:1}),a(V,{key:"copy",tab:"邀请文案"},{default:s(()=>[a(C,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[a(B,{layout:"vertical"},{default:s(()=>[a(c,{label:"竖排文案 · 上联"},{default:s(()=>[a(v,{value:o.formalText1,"onUpdate:value":e[8]||(e[8]=t=>o.formalText1=t),placeholder:"如 两姓联姻 一堂缔约"},null,8,["value"])]),_:1}),a(c,{label:"竖排文案 · 下联"},{default:s(()=>[a(v,{value:o.formalText2,"onUpdate:value":e[9]||(e[9]=t=>o.formalText2=t),placeholder:"如 良缘永结 匹配同称"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1}),a(V,{key:"visual",tab:"视觉与动效"},{default:s(()=>[a(C,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[a(B,{layout:"vertical"},{default:s(()=>[a(c,{label:"背景音乐"},{default:s(()=>[...e[24]||(e[24]=[n("div",{class:"text-[12px] text-[#8A8680] leading-relaxed"},[r("多首背景音乐的上传、试听与「设为播放」请在 "),n("span",{class:"text-[#a88c6b]"},"背景音乐"),r(" 标签页管理。")],-1)])]),_:1}),a(c,{label:"滚动方式"},{default:s(()=>[a(le,{value:o.scrollMode,"onUpdate:value":e[10]||(e[10]=t=>o.scrollMode=t)},{default:s(()=>[a(N,{value:"snap"},{default:s(()=>[...e[25]||(e[25]=[r("整页 / 分屏吸附滚动",-1)])]),_:1}),a(N,{value:"free"},{default:s(()=>[...e[26]||(e[26]=[r("自由滚动",-1)])]),_:1})]),_:1},8,["value"]),e[27]||(e[27]=n("div",{class:"text-[11px] text-[#8A8680] mt-1"},"整页模式会带来更有仪式感的逐屏切换效果。",-1))]),_:1}),n("div",Ye,[a(c,{label:"自由滚动速度(滚动间隔)"},{default:s(()=>[n("div",Qe,[a(te,{value:o.freeScrollInterval,"onUpdate:value":e[11]||(e[11]=t=>o.freeScrollInterval=t),min:10,max:500,class:"flex-1"},null,8,["value"]),a(F,{value:o.freeScrollInterval,"onUpdate:value":e[12]||(e[12]=t=>o.freeScrollInterval=t),min:10,max:500,"addon-after":"ms",class:"w-[120px]"},null,8,["value"])]),e[28]||(e[28]=n("div",{class:"text-[11px] text-[#8A8680] mt-1"},"间隔越小滚动越快,默认 50ms。仅在「自由滚动」模式下生效。",-1))]),_:1}),a(c,{label:"页面切换速度(动画时长)"},{default:s(()=>[n("div",Xe,[a(te,{value:o.pageSwitchDuration,"onUpdate:value":e[13]||(e[13]=t=>o.pageSwitchDuration=t),min:200,max:3e3,step:100,class:"flex-1"},null,8,["value"]),a(F,{value:o.pageSwitchDuration,"onUpdate:value":e[14]||(e[14]=t=>o.pageSwitchDuration=t),min:200,max:3e3,step:100,"addon-after":"ms",class:"w-[120px]"},null,8,["value"])]),e[29]||(e[29]=n("div",{class:"text-[11px] text-[#8A8680] mt-1"},"整页/分屏模式下自动翻页的动画时长,默认 800ms。",-1))]),_:1})]),n("div",Ze,[a(c,{label:"飘落花瓣"},{default:s(()=>[a(R,{checked:o.petalEnabled,"onUpdate:checked":e[15]||(e[15]=t=>o.petalEnabled=t)},null,8,["checked"])]),_:1}),a(c,{label:"漂浮爱心"},{default:s(()=>[a(R,{checked:o.bubbleEnabled,"onUpdate:checked":e[16]||(e[16]=t=>o.bubbleEnabled=t)},null,8,["checked"])]),_:1}),a(c,{label:"入场揭幕"},{default:s(()=>[a(R,{checked:o.introEnabled,"onUpdate:checked":e[17]||(e[17]=t=>o.introEnabled=t)},null,8,["checked"])]),_:1})])]),_:1})]),_:1})]),_:1}),a(V,{key:"music",tab:"背景音乐"},{default:s(()=>[a(C,{bordered:!1,class:"!shadow-sm"},{default:s(()=>[e[32]||(e[32]=n("div",{class:"text-[12px] text-[#8A8680] leading-relaxed mb-4"}," 上传多首背景音乐(支持 mp3 等格式),访客首次交互后自动播放当前曲目,可在前台随时切换或暂停。 ",-1)),o.musicList.length?y("",!0):(d(),h(ae,{key:0,description:"尚未上传音乐"})),(d(!0),p(U,null,E(o.musicList,(t,f)=>(d(),h(C,{key:f,bordered:!1,class:H(["!shadow-sm mb-3 !border",t.url===o.activeMusicUrl?"!border-[#a88c6b]":"!border-[#a88c6b]/15"])},{default:s(()=>[n("div",el,[a(v,{value:t.name,"onUpdate:value":i=>t.name=i,placeholder:"曲目名称",class:"flex-1 min-w-[140px]"},null,8,["value","onUpdate:value"]),n("span",ll,g(xe(t.url)),1),a(u,{size:"small",type:t.url===o.activeMusicUrl?"primary":"default",class:H(t.url===o.activeMusicUrl?"!bg-[#a88c6b] !border-[#a88c6b]":""),onClick:i=>ge(t.url)},{default:s(()=>[r(g(t.url===o.activeMusicUrl?"播放中":"设为播放"),1)]),_:2},1032,["type","class","onClick"]),a(u,{size:"small",danger:"",onClick:i=>be(f)},{default:s(()=>[...e[30]||(e[30]=[n("i",{class:"fa-solid fa-trash"},null,-1)])]),_:1},8,["onClick"])]),t.url?(d(),p("audio",{key:0,src:t.url,controls:"",class:"w-full mt-3",style:{height:"36px"}},null,8,tl)):y("",!0)]),_:2},1032,["class"]))),128)),a(u,{class:"mt-1",onClick:ve},{default:s(()=>[...e[31]||(e[31]=[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",al,[n("span",sl,"共 "+g(o.photoPages.length)+" 个相册页",1),a(u,{size:"small",onClick:ce},{default:s(()=>[...e[33]||(e[33]=[n("i",{class:"fa-solid fa-plus mr-1 text-[#a88c6b]"},null,-1),r("新增相册页",-1)])]),_:1})]),o.photoPages.length?y("",!0):(d(),h(ae,{key:0,description:"暂无相册页"})),(d(!0),p(U,null,E(o.photoPages,(t,f)=>(d(),h(C,{key:f,bordered:!1,class:"!shadow-sm mb-4"},{default:s(()=>[n("div",ol,[n("span",nl,"第 "+g(f+1)+" 页",1),n("div",il,[a(u,{size:"small",disabled:f===0,onClick:i=>Z(f,-1)},{default:s(()=>[...e[34]||(e[34]=[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=>Z(f,1)},{default:s(()=>[...e[35]||(e[35]=[n("i",{class:"fa-solid fa-arrow-down"},null,-1)])]),_:1},8,["disabled","onClick"]),a(u,{size:"small",danger:"",onClick:i=>me(f)},{default:s(()=>[...e[36]||(e[36]=[n("i",{class:"fa-solid fa-trash"},null,-1)])]),_:1},8,["onClick"])])]),n("div",ul,[a(c,{label:"版式"},{default:s(()=>[a(O,{value:t.type,"onUpdate:value":i=>t.type=i,onChange:()=>q(t)},{default:s(()=>[a(w,{value:"single"},{default:s(()=>[...e[37]||(e[37]=[r("单图",-1)])]),_:1}),a(w,{value:"overlap"},{default:s(()=>[...e[38]||(e[38]=[r("错落双图",-1)])]),_:1}),a(w,{value:"one-large-five-small"},{default:s(()=>[...e[39]||(e[39]=[r("一大五小",-1)])]),_:1}),a(w,{value:"nine-grid"},{default:s(()=>[...e[40]||(e[40]=[r("九宫格",-1)])]),_:1}),a(w,{value:"masonry"},{default:s(()=>[...e[41]||(e[41]=[r("瀑布流",-1)])]),_:1}),a(w,{value:"carousel"},{default:s(()=>[...e[42]||(e[42]=[r("轮播滑动",-1)])]),_:1}),a(w,{value:"polaroid"},{default:s(()=>[...e[43]||(e[43]=[r("拍立得拼贴",-1)])]),_:1})]),_:1},8,["value","onUpdate:value","onChange"])]),_:2},1024),a(c,{label:"页面高度"},{default:s(()=>[n("div",dl,[a(O,{value:Q(t),onChange:i=>ne(t,i),class:"flex-1"},{default:s(()=>[(d(),p(U,null,E(Y,i=>a(w,{key:i.value,value:i.value},{default:s(()=>[r(g(i.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value","onChange"]),Q(t)==="__custom__"?(d(),h(F,{key:0,value:ie(t),onChange:i=>ue(t,i),min:20,max:200,"addon-after":"vh",class:"w-[150px]"},null,8,["value","onChange"])):y("",!0)])]),_:2},1024)]),n("div",rl,[a(c,{label:"边框样式"},{default:s(()=>[a(O,{value:t.borderStyle,"onUpdate:value":i=>t.borderStyle=i},{default:s(()=>[(d(!0),p(U,null,E(W(Te),i=>(d(),h(w,{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",cl,[e[45]||(e[45]=n("span",{class:"text-[11px] text-[#a88c6b]"},"预览",-1)),n("div",ml,[n("div",{class:H(W(je)(t.borderStyle)),style:{width:"100%",height:"100%"}},[...e[44]||(e[44]=[n("img",{src:"https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=200&q=80"},null,-1)])],2)])])]),t.type==="single"?(d(),p("div",fl,[a(c,{label:"图片宽度"},{default:s(()=>[a(le,{value:t.singleWidth,"onUpdate:value":i=>t.singleWidth=i},{default:s(()=>[a(N,{value:"default"},{default:s(()=>[...e[46]||(e[46]=[r("默认(居中卡幅)",-1)])]),_:1}),a(N,{value:"full"},{default:s(()=>[...e[47]||(e[47]=[r("宽度铺满",-1)])]),_:1})]),_:1},8,["value","onUpdate:value"])]),_:2},1024),t.singleWidth==="full"?(d(),h(c,{key:0,label:"保持原始宽高比"},{default:s(()=>[a(R,{checked:t.singleKeepRatio,"onUpdate:checked":i=>t.singleKeepRatio=i},null,8,["checked","onUpdate:checked"]),e[48]||(e[48]=n("div",{class:"text-[11px] text-[#8A8680] mt-1"},"开启:按图片原始比例显示;关闭:固定 4:5 比例裁切铺满。",-1))]),_:2},1024)):y("",!0)])):y("",!0),n("div",pl,[a(c,{label:"小标题 (英文)"},{default:s(()=>[a(v,{value:t.subtitle,"onUpdate:value":i=>t.subtitle=i},null,8,["value","onUpdate:value"])]),_:2},1024),a(c,{label:"标题"},{default:s(()=>[a(v,{value:t.title,"onUpdate:value":i=>t.title=i},null,8,["value","onUpdate:value"])]),_:2},1024)]),a(c,{label:"描述"},{default:s(()=>[a(ee,{value:t.desc,"onUpdate:value":i=>t.desc=i,rows:2},null,8,["value","onUpdate:value"])]),_:2},1024),n("div",vl,[t.type==="single"?(d(),h($,{key:0,modelValue:t.img1,"onUpdate:modelValue":i=>t.img1=i,onPick:i=>A(b=>t.img1=b),uploading:k.value},null,8,["modelValue","onUpdate:modelValue","onPick","uploading"])):t.type==="overlap"?(d(),p(U,{key:1},[a($,{modelValue:t.img1,"onUpdate:modelValue":i=>t.img1=i,label:"图一",onPick:i=>A(b=>t.img1=b),uploading:k.value},null,8,["modelValue","onUpdate:modelValue","onPick","uploading"]),a($,{modelValue:t.img2,"onUpdate:modelValue":i=>t.img2=i,label:"图二",onPick:i=>A(b=>t.img2=b),uploading:k.value},null,8,["modelValue","onUpdate:modelValue","onPick","uploading"])],64)):(d(),p(U,{key:2},[(d(!0),p(U,null,E(t.images,(i,b)=>(d(),p("div",{key:b,class:"relative"},[a($,{modelValue:t.images[b],"onUpdate:modelValue":K=>t.images[b]=K,label:`图${b+1}`,onPick:K=>A(Ee=>t.images[b]=Ee),uploading:k.value},null,8,["modelValue","onUpdate:modelValue","label","onPick","uploading"]),X(t.type)&&t.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:K=>re(t,b),title:"移除该图"},"✕",8,gl)):y("",!0)]))),128)),X(t.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=>de(t)},"+ 添加图片",8,bl)):y("",!0)],64))])]),_:2},1024))),128))]),_:1}),a(V,{key:"schedule",tab:"婚礼流程"},{default:s(()=>[n("div",xl,[n("span",_l,"共 "+g(o.schedule.length)+" 个环节",1),a(u,{size:"small",onClick:fe},{default:s(()=>[...e[49]||(e[49]=[n("i",{class:"fa-solid fa-plus mr-1 text-[#a88c6b]"},null,-1),r("新增环节",-1)])]),_:1})]),(d(!0),p(U,null,E(o.schedule,(t,f)=>(d(),h(C,{key:f,bordered:!1,class:"!shadow-sm mb-3"},{default:s(()=>[n("div",hl,[n("div",yl,[e[50]||(e[50]=n("div",{class:"text-[11px] text-[#a88c6b] mb-1"},"时间",-1)),a(v,{value:t.time,"onUpdate:value":i=>t.time=i,placeholder:"如 17:08"},null,8,["value","onUpdate:value"])]),n("div",kl,[e[51]||(e[51]=n("div",{class:"text-[11px] text-[#a88c6b] mb-1"},"环节",-1)),a(v,{value:t.event,"onUpdate:value":i=>t.event=i,placeholder:"如 仪式开始"},null,8,["value","onUpdate:value"])]),n("div",wl,[e[52]||(e[52]=n("div",{class:"text-[11px] text-[#a88c6b] mb-1"},"英文副标题",-1)),a(v,{value:t.desc,"onUpdate:value":i=>t.desc=i,placeholder:"如 Ceremony"},null,8,["value","onUpdate:value"])]),a(u,{danger:"",size:"small",onClick:i=>pe(f)},{default:s(()=>[...e[53]||(e[53]=[n("i",{class:"fa-solid fa-trash"},null,-1)])]),_:1},8,["onClick"])])]),_:2},1024))),128))]),_:1}),a(V,{key:"rsvp",tab:"出席回执"},{default:s(()=>[a(Ve,{columns:ke,"data-source":J.value,loading:D.value,"row-key":"id",size:"small",pagination:{pageSize:8}},{bodyCell:s(({column:t,record:f})=>[t.key==="guest_count"?(d(),h(Ce,{key:0,color:f.guest_count==="0"?"default":"pink"},{default:s(()=>[r(g(we(f.guest_count)),1)]),_:2},1032,["color"])):t.key==="created_at"?(d(),p(U,{key:1},[r(g(Ue(f.created_at)),1)],64)):y("",!0)]),_:1},8,["data-source","loading"])]),_:1})]),_:1},8,["activeKey"])])])}}},Vl=Re(Ul,[["__scopeId","data-v-2abef6e9"]]);export{Vl as default};
|