PageSourceSearch

http://www.storexppen.my/_nuxt/C9Fs5Bac.js

js storexppen.my collected 2026-09-28 13:52:14 UTC 68,411 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./FZPLgXml.js","./Bdsq-2Hc.js","./dPmDwiAY.js","./CZHOnaNv.js","./Deie1YYH.js","./BHyX0zGx.js","./BFU_sm0N.js","./entry.qMaPnK2u.css","./DPjQhL7z.js","./CKbJSpm8.js","./index.BJDjTz-Q.css","./order.SGDB8GG3.css","./ZNc5PjZr.js","./D5xziSVP.js","./Dy7LalTF.js","./C5AY_amu.js","./CZ9w5ngk.js","./BuIU4M7K.js","./index.azlZmD2w.css","./Result.1QFFYf0n.css","./PaymentRiskControlFail.B64W-qGN.css","./StoreSiteSwitch.B9M_r6hg.css","./index.My_WA-NL.css","./assetSizeHints.BCC4ZQ6M.css","./CrOaKPzB.js","./Cc5aI8le.js","./ClEn5SkI.js","./NumberFieldInput.BdNI_USw.css","./PopoverTrigger.9j_shuQ-.css","./BHJ4LwWZ.js","./xqW-Rnb5.js","./FieldSegment.bUa1ZzO6.css","./DBN71Wh7.js","./DbAI-p98.js"])))=>i.map(i=>d[i]);
2var It=Object.defineProperty,$t=Object.defineProperties;var Ct=Object.getOwnPropertyDescriptors;var ze=Object.getOwnPropertySymbols;var St=Object.prototype.hasOwnProperty,At=Object.prototype.propertyIsEnumerable;var Ge=(e,o,t)=>o in e?It(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,Y=(e,o)=>{for(var t in o||(o={}))St.call(o,t)&&Ge(e,t,o[t]);if(ze)for(var t of ze(o))At.call(o,t)&&Ge(e,t,o[t]);return e},ae=(e,o)=>$t(e,Ct(o));var W=(e,o,t)=>new Promise((s,n)=>{var r=u=>{try{p(t.next(u))}catch(y){n(y)}},i=u=>{try{p(t.throw(u))}catch(y){n(y)}},p=u=>u.done?s(u.value):Promise.resolve(u.value).then(r,i);p((t=t.apply(e,o)).next())});import{m as P,u as Pt,ab as Mt,c as D,ap as Lt,e as Ft,ac as Bt,k as Tt,ad as re,aC as le,aD as de}from"./Deie1YYH.js";import{C as J,Y as w,J as M,O as A,R as a,N as I,u as c,S as E,F as ne,Z as se,L as F,I as Dt,a3 as G,K as h,r as oe,_ as ke,U as B,m as L,d as S,n as st,o as rt,f as X,M as Ot,q as Fe,j as Ae,W as ye,a6 as O,aq as Vt,a5 as Ut,a7 as Rt}from"./Bdsq-2Hc.js";import{h as it,e as q,b as Be,u as me,c as Nt,_ as _e,d as ue,l as U,a as he,n as te,m as jt,p as Ht,g as Je,v as Ye,r as Wt,q as qt,t as zt,w as Gt,x as Jt,o as Yt}from"./CrOaKPzB.js";import"./xqW-Rnb5.js";import{c as Xt,H as xe,b as Kt,i as Qt,d as z}from"./BHJ4LwWZ.js";import{T as Zt}from"./CZHOnaNv.js";import{P as eo}from"./CKbJSpm8.js";(function(){try{var e=typeof window!="undefined"?window:typeof global!="undefined"?global:typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:{};e.SENTRY_RELEASE={id:"90e6ae45135811f53903a6406dd98a720cc380a5"};var o=new e.Error().stack;o&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[o]="42492b2b-8444-44b5-ad78-e75db13f6c5e",e._sentryDebugIdIdentifier="sentry-dbid-42492b2b-8444-44b5-ad78-e75db13f6c5e")}catch(t){}})();const to=P("ArrowLeftIcon",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const oo=P("CopyIcon",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);const no=P("EyeOffIcon",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);const so=P("EyeIcon",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const ro=P("FlameIcon",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]);const io=P("GiftIcon",[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]]);const ao=P("GripVerticalIcon",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);
2const lo=P("ImageIcon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);const co=P("ImagesIcon",[["path",{d:"M18 22H4a2 2 0 0 1-2-2V6",key:"pblm9e"}],["path",{d:"m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18",key:"nf6bnh"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["rect",{width:"16",height:"16",x:"6",y:"2",rx:"2",key:"12espp"}]]);const Ie=P("LayoutGridIcon",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);const Xe=P("LayoutTemplateIcon",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]);const po=P("Link2Icon",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);const uo=P("MegaphoneIcon",[["path",{d:"m3 11 18-5v12L3 14v-3z",key:"n962bs"}],["path",{d:"M11.6 16.8a3 3 0 1 1-5.8-1.6",key:"1yl0tm"}]]);const mo=P("MonitorIcon",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);const ho=P("Rows3Icon",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 9H3",key:"1338ky"}],["path",{d:"M21 15H3",key:"9uk58r"}]]);const fo=P("ShoppingBagIcon",[["path",{d:"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z",key:"hou9p0"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}]]);const vo=P("SmartphoneIcon",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);const go=P("SparklesIcon",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);const yo=P("TabletIcon",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["line",{x1:"12",x2:"12.01",y1:"18",y2:"18",key:"1dp563"}]]);const bo=P("VideoIcon",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]),wo={class:"design-root relative flex h-screen flex-col overflow-hidden bg-[var(--design-bg-canvas)] text-[var(--design-text)]"},ko={class:"relative flex h-[56px] shrink-0 items-center justify-between gap-4 border-b border-[var(--design-border)] bg-white px-4"},_o={class:"flex min-w-0 flex-1 items-center gap-3"},xo=["disabled"],Eo={class:"min-w-0"},Io={class:"flex items-center gap-2"},$o={class:"truncate text-[14px] font-semibold leading-[22px]"},Co={key:0,class:"rounded-[4px] bg-[rgba(237,123,47,0.1)] px-1.5 py-0.5 text-[11px] text-[var(--design-warning)]"},So={key:1,class:"rounded-[4px] bg-[var(--design-bg-canvas)] px-1.5 py-0.5 text-[11px] text-[var(--design-text-tertiary)]"},Ao={class:"absolute left-1/2 top-1/2 hidden -translate-x-1/2 -translate-y-1/2 items-center gap-1 lg:flex"},Po=["title","disabled","onClick"],Mo={class:"flex shrink-0 items-center justify-end gap-2"},Lo=J({__name:"DesignShell",props:{name:{},version:{},publishStatus:{},dirty:{type:Boolean},readonly:{type:Boolean},previewMode:{type:Boolean},viewport:{},saving:{type:Boolean},publishing:{type:Boolean},showSchedule:{type:Boolean,default:!0},showSave:{type:Boolean,default:!0},showPublish:{type:Boolean,default:!0},storefrontPreviewLoading:{type:Boolean,default:!1},busy:{type:Boolean,default:!1}},emits:["back","schedule","preview","storefront-preview","save","publish","update:viewport"],setup(e){const o=[{value:"pc",label:"PC",icon:mo},{value:"tablet",label:"平板",icon:yo},{value:"mobile",label:"手机",icon:vo}];return(t,s)=>(h(),w("div",wo,[t.busy?(h(),M(it,{key:0,text:"正在处理..."})):A("",!0),a("header",ko,[a("div",_o,[a("button",{type:"button",class:"inline-flex h-8 items-center gap-1 rounded-[6px] px-2 text-[14px] text-[var(--design-text-secondary)] transition-colors duration-150 hover:bg-[var(--design-bg-hover)] hover:text-[var(--design-primary)] disabled:cursor-not-allowed disabled:opacity-50",disabled:t.busy,onClick:s[0]||(s[0]=n=>t.$emit("back"))},[I(c(to),{class:"h-4 w-4"}),s[6]||(s[6]=a("span",null,"返回",-1))],8,xo),s[7]||(s[7]=a("div",{class:"h-4 w-px bg-[var(--design-border)]"},null,-1)),a("div",Eo,[a("div",Io,[a("h1",$o,E(t.name||"首页模板编辑器"),1),t.dirty?(h(),w("span",Co,"未保存")):A("",!0),("readonly"in t?t.readonly:c(oe))?(h(),w("span",So,"只读")):A("",!0)])])]),a("div",Ao,[(h(),w(ne,null,se(o,n=>a("button",{key:n.value,type:"button",class:G(["inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-[6px] transition-colors duration-150",t.viewport===n.value?"bg-[var(--design-primary-light)] text-[var(--design-primary)]":"text-[var(--design-text-tertiary)] hover:bg-[var(--design-bg-hover)] hover:text-[var(--design-primary)]"]),title:n.label,disabled:t.busy,onClick:r=>t.$emit("update:viewport",n.value)},[(h(),M(ke(n.icon),{class:"block h-4 w-4"}))],10,Po)),64))]),a("div",Mo,[t.showSchedule?(h(),M(q,{key:0,class:"shrink-0 whitespace-nowrap",variant:"outline",disabled:t.busy||("readonly"in t?t.readonly:c(oe))||t.previewMode,onClick:s[1]||(s[1]=n=>t.$emit("schedule"))},{default:F(()=>s[8]||(s[8]=[B(" 生效设置 ")])),_:1},8,["disabled"])):A("",!0),t.showSave?(h(),M(q,{key:1,class:"shrink-0 whitespace-nowrap",variant:"outline",disabled:t.busy||("readonly"in t?t.readonly:c(oe))||t.previewMode,loading:t.saving,onClick:s[2]||(s[2]=n=>t.$emit("save"))},{default:F(()=>s[9]||(s[9]=[B(" 保存 ")])),_:1},8,["disabled","loading"])):A("",!0),I(q,{class:"shrink-0 whitespace-nowrap",variant:"outline",disabled:t.busy,onClick:s[3]||(s[3]=n=>t.$emit("preview"))},{default:F(()=>[B(E(t.previewMode?"退出预览":"预览"),1)]),_:1},8,["disabled"]),I(q,{class:"shrink-0 whitespace-nowrap",variant:"outline",disabled:t.busy,loading:t.storefrontPreviewLoading,onClick:s[4]||(s[4]=n=>t.$emit("storefront-preview"))},{default:F(()=>s[10]||(s[10]=[B(" 前台预览 ")])),_:1},8,["disabled","loading"]),t.showPublish?(h(),M(q,{key:2,class:"shrink-0 whitespace-nowrap",disabled:t.busy||("readonly"in t?t.readonly:c(oe))||t.previewMode,loading:t.publishing,onClick:s[5
2]||(s[5]=n=>t.$emit("publish"))},{default:F(()=>s[11]||(s[11]=[B(" 保存并发布 ")])),_:1},8,["disabled","loading"])):A("",!0)])]),a("div",{class:G(["relative flex min-h-0 flex-1 overflow-hidden",{"pointer-events-none":t.busy}])},[Dt(t.$slots,"default")],2)]))}}),Fo={class:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--design-bg-canvas,#F2F4F7)]"},Bo={class:"flex items-center justify-between px-4 py-2 lg:hidden"},To={class:"flex gap-1"},Do=["onClick"],Oo=["src"],Vo=J({__name:"HomeCanvas",props:{schema:{},selectedComponentId:{},viewport:{},previewMode:{type:Boolean},previewState:{}},emits:["update:viewport","node-click"],setup(e,{emit:o}){const t=e,s=o,n=L(),r=L(!1),i=S(()=>t.viewport==="pc"?void 0:Xt[t.viewport]),p=S(()=>i.value?{maxWidth:`${i.value}px`}:void 0),u=[{value:"pc",label:"PC"},{value:"tablet",label:"平板"},{value:"mobile",label:"手机"}],y=S(()=>{const m=Pt();return`${String(m.public.NUXT_BASE_URL||"/").replace(/\/?$/,"/")}design/home/canvas`}),b=m=>JSON.parse(JSON.stringify(m)),x=()=>W(this,null,function*(){var g;yield Fe();const m=(g=n.value)==null?void 0:g.contentWindow;!m||!r.value||(m.postMessage({type:"UPDATE_SCHEMA",schema:b(t.schema),previewMode:!!t.previewMode,previewState:t.previewState?JSON.parse(JSON.stringify(t.previewState)):void 0},"*"),m.postMessage({type:"SELECT",componentId:t.selectedComponentId},"*"))}),f=()=>{if(r.value){x();return}},l=m=>{var g,C,Q;if(m.source===((g=n.value)==null?void 0:g.contentWindow)){if(((C=m.data)==null?void 0:C.type)==="READY"){r.value=!0,x();return}((Q=m.data)==null?void 0:Q.type)!=="NODE_CLICK"||typeof m.data.componentId!="string"||t.previewMode||s("node-click",m.data.componentId)}};return st(()=>{window.addEventListener("message",l)}),rt(()=>{window.removeEventListener("message",l)}),X(()=>t.schema,x,{deep:!0}),X(()=>t.selectedComponentId,x),X(()=>t.viewport,x),X(()=>t.previewMode,x),X(()=>t.previewState,x,{deep:!0}),(m,g)=>(h(),w("section",Fo,[a("div",Bo,[a("div",To,[(h(),w(ne,null,se(u,C=>a("button",{key:C.value,type:"button",class:G(["rounded-[6px] px-2.5 py-1 text-[12px]",m.viewport===C.value?"bg-[var(--design-primary)] text-white":"bg-white text-[var(--design-text-secondary)]"]),onClick:Q=>m.$emit("update:viewport",C.value)},E(C.label),11,Do)),64))])]),a("div",{class:G(["flex min-h-0 flex-1 overflow-hidden",[m.previewMode?"p-0":"p-4",m.viewport!=="pc"&&"justify-center"]])},[a("iframe",{ref_key:"iframeRef",ref:n,title:"首页画布预览",class:G(["block h-full border-0 bg-white",[m.viewport==="pc"?"w-full":"w-full shadow-[var(--design-shadow-md)]"]]),style:Ot(p.value),src:y.value,onLoad:f},null,46,Oo)],2)]))}}),Uo={class:"max-h-[320px] overflow-auto rounded border border-[#E5E6EB]"},Ro={class:"min-w-full text-left text-sm"},No={class:"px-3 py-2"},jo={class:"px-3 py-2"},Ho={class:"px-3 py-2 text-xs text-[#4E5969]"},Wo={class:"mt-4 flex justify-end gap-2"},qo=J({__name:"ConflictConfirmDialog",props:{open:{type:Boolean},conflicts:{},loading:{type:Boolean}},emits:["update:open","confirm"],setup(e){const o=t=>me(t).replace("T"," ");return(t,s)=>(h(),M(Be,{open:t.open,class:"!max-w-2xl","onUpdate:open":s[2]||(s[2]=n=>t.$emit("update:open",n))},{default:F(()=>[s[6]||(s[6]=a("h3",{class:"mb-2 pr-8 text-base font-semibold text-[#1D2129]"},"排期冲突确认",-1)),s[7]||(s[7]=a("p",{class:"mb-4 text-sm text-[#4E5969]"}," 当前模板与以下已启用/待生效模板排期重叠。确认覆盖后,冲突模板将被覆盖处理。 ",-1)),a("div",Uo,[a("table",Ro,[s[3]||(s[3]=a("thead",{class:"bg-[#F7F8FA] text-[#86909C]"},[a("tr",null,[a("th",{class:"px-3 py-2 font-medium"},"名称"),a("th",{class:"px-3 py-2 font-medium"},"状态"),a("th",{class:"px-3 py-2 font-medium"},"排期")])],-1)),a("tbody",null,[(h(!0),w(ne,null,se(t.conflicts,n=>(h(),w("tr",{key:String(n.id),class:"border-t border-[#F2F3F5]"},[a("td",No,E(n.name),1),a("td",jo,E(n.enableStatus)+"/"+E(n.publishStatus),1),a("td",Ho,E(o(n.scheduleStartAt))+" ~ "+E(n.scheduleEndAt?o(n.scheduleEndAt):"不失效"),1)]))),128))])])]),a("div",Wo,[I(q,{variant:"outline",onClick:s[0]||(s[0]=n=>t.$emit("update:open",!1))},{default:F(()=>s[4]||(s[4]=[B("取消")])),_:1}),I(q,{loading:"loading"in t?t.loading:c(Mt),onClick:s[1]||(s[1]=n=>t.$emit("confirm"))},{default:F(()=>s[5]||(s[5]=[B("确认覆盖并发布")])),_:1},8,["loading"])])]),_:1},8,["open"]))}});function zo(e){const o={};if(!e)return o;const t=/(\w+)\[(\d+)\]/g;let s;for(;(s=t.exec(e))!==null;)o[s[1]]=Number(s[2]);return o}function Pe(e,o){return e===o?!0:new RegExp(`^${o.replace(/\[\*\]/g,"\\[\\d+\\]").replace(/\./g,"\\.")}$`).test(e)}function Me(e,o){if(e===o)return!0;const t=r=>r.replace(/\[\*\]/g,"[0]"),s=t(e),n=t(o);return s.startsWith(`${n}.`)||s.startsWith(`${n}[`)||n.startsWith(`${s}.`)||n.startsWith(`${s}[`)}function Le(e,o,t=""){if(e===o)return[];if(e===null||o===null||typeof e!="object"||typeof o!="object")return t?[t]:[];if(Array.isArray(e)&&Array.isArray(o)){const p=[],u=Math.max(e.length,o.length);for(let y=0;y<u;y++){const b=t?`${t}[${y}]`:`[${y}]`,x=Le(e[y],o[y],b);p.push(...x)}return p}const s=[],n=e,r=o,i=new Set([...Object.keys(n),...Object.keys(r)]);for(const p of i){const u=t?`${t}.${p}`:p,y=Le(n[p],r[p],u);s.push(...y)}return s}function Ke(e,o){return o.some(t=>Me(e,t)||Pe(e,t))}const K=e=>e==null||String(e).trim()==="",V=e=>e.props,at=e=>Array.isArray(e)?e.filter(o=>!K(o)):[],lt=e=>{if(K(e))return!1;const o=String(e).trim();if(/^\/[^/]/.test(o)||o.startsWith("#"))return!0;try{const t=new URL(o);return t.protocol==="http:"||t.protocol==="https:"}catch(t){return!1}},$=(e,o,t)=>({componentId:e.id,componentType:e.type,field:o,code:"INVALID_PARAM",message:t}),k=(e,o,t,s,n)=>{K(s)&&o.push($(e,t,n))},j=(e,o,t,s,n)=>{lt(s)||o.push($(e,t,n))},R=(e,o,t,s,n,r,i)=>{const p=Array.isArray(s)?s.length:0;(p<n||p>r)&&o.push($(e,t,i))},be=(e,o,t,s,n,r,i,p=!1)=>{const u=at(s).length;(u<n||u>r||p&&u%2!==0)&&o.push($(e,t,i))},Go=(e,o,t,s,n,r=!1)=>{const i=Number(s)>0,p=Number(n)>0;!i&&!p||(i||o.push($(e,`${t}.startAt`,"生效时间必填")),r&&!p&&o.push($(e,`${t}.endAt`,"失效时间必填")),i&&p&&Number(n)<=Number(s)&&o.push($(e,`${t}.endAt`,"失效时间必须晚于生效时间")))},$e=(e,o,t,s,n={})=>{const{requirePad:r=!1,requireMobile:i=!1}=n;k(e,o,`${t}.pcImage`,s==null?void 0:s.pcImage,"网页端 Banner 图片必填"),r&&k(e,o,`${t}.padImage`,s==null?void 0:s.padImage,"Pad 端 Banner 图片必填"),i?k(e,o,`${t}.mobileImage`,s==null?void 0:s.mobileImage,"手机端 Banner 图片必填"):K(s==null?void 0:s.pcImage)&&K(s==null?void 0:s.mobileImage)&&o.push($(e,`${t}.mobileImage`,"手机端 Banner 图片必填"))},Jo=(e,o,t,s)=>{s.showTitle&&k(e,o,`${t}.title`,s.title,"标题文案必填"),s.showSubtitle&&k(e,o,`${t}.subtitle`,s.subtitle,"副标题文案必填"),s.showButton?(k(e,o,`${t}.buttonText`,s.buttonText,"按钮文案必填"),j(e,o,`${t}.link`,s.link,"按钮跳转链接必须为站内路径或合法 URL")):K(s.link)||j(e,o,`${t}.link`,s.link,"Banner 跳转链接必须为站内路径或合法 URL"),(s.textBadges||[]).forEac
2h((n,r)=>k(e,o,`${t}.textBadges[${r}].text`,n.text,"文字角标文案必填")),Go(e,o,t,s.startAt,s.endAt)},Qe=(e,o,t,s)=>{s.showTitle&&k(e,o,`${t}.title`,s.title,"标题文案必填"),s.showSubtitle&&k(e,o,`${t}.subtitle`,s.subtitle,"副标题文案必填"),s.showButton&&k(e,o,`${t}.buttonText`,s.buttonText,"按钮文案必填"),K(s.link)||j(e,o,`${t}.link`,s.link,"跳转链接必须为站内路径或合法 URL"),(s.textBadges||[]).forEach((n,r)=>k(e,o,`${t}.textBadges[${r}].text`,n.text,"文字角标文案必填"))},Ze={title:"模块标题",subtitle:"模块副标题",bannerStyle:"Banner 尺寸",layoutWidth:"宽度",displayMode:"展示样式",categoryBannerMode:"Banner 展示形式","left.link":"左侧图片跳转链接","banner.link":"跳转链接",firework_content:"Firework 代码",firework_start_time:"生效时间",firework_end_time:"失效时间",productIds:"商品选择"};function Yo(e){return Ze[e]?Ze[e]:/^(items|right)\[/.test(e)&&e.endsWith(".link")||e.endsWith(".banner.link")?"跳转链接":e.endsWith(".name")?"名称":e.endsWith(".title")?"标题":e.endsWith(".subtitle")?"副标题":e.endsWith(".desc")?"说明":e.endsWith(".content")?"内容":e.endsWith(".padImage")?"Pad 端 Banner 图片":e.endsWith(".image")||e.endsWith(".pcImage")||e.endsWith(".mobileImage")?"图片":e.startsWith("groups[")?"商品组":e.startsWith("categories[")?"商品分类":e.startsWith("contacts[")?"联系信息":e}const Xo={banner:e=>{const o=V(e),t=[];return["large_image","short_horizontal"].includes(o.bannerStyle)||t.push($(e,"bannerStyle","Banner 尺寸必填")),["fullscreen","inset"].includes(o.layoutWidth)||t.push($(e,"layoutWidth","请选择宽度(留边/全屏)")),R(e,t,"items",o.items,1,10,"Banner 数量须在 1~10 张之间"),(o.items||[]).forEach((s,n)=>{const r=`items[${n}]`;$e(e,t,r,s,{requirePad:!0,requireMobile:!0}),Jo(e,t,r,s)}),t},quick_category:e=>{const o=V(e),t=[];return R(e,t,"items",o.items,1,Number.MAX_SAFE_INTEGER,"快捷分类至少配置 1 个分类"),(o.items||[]).forEach((s,n)=>{k(e,t,`items[${n}].name`,s.name,"分类名称必填"),k(e,t,`items[${n}].image`,s.image,"分类图片必填"),j(e,t,`items[${n}].link`,s.link,"分类链接必须为站内路径或合法 URL")}),t},image_text_carousel:e=>{const o=V(e),t=[];return["image","image_text","text"].includes(o.displayMode)||t.push($(e,"displayMode","展示样式必填")),R(e,t,"items",o.items,1,Number.MAX_SAFE_INTEGER,"图文轮播至少配置 1 项"),(o.items||[]).forEach((s,n)=>{const r=`items[${n}]`;o.displayMode!=="text"&&k(e,t,`${r}.image`,s.image,"图文轮播图片必填"),o.displayMode!=="image"&&(k(e,t,`${r}.title`,s.title,"图文轮播主标题必填"),k(e,t,`${r}.desc`,s.desc,"图文轮播副标题必填")),K(s.link)||j(e,t,`${r}.link`,s.link,"图文轮播链接必须为站内路径或合法 URL")}),t},product_list:e=>{var r;const o=V(e),t=[],s=o.displayMode==="products_only"||o.displayMode==="banner_and_products",n=o.displayMode==="banner_only"||o.displayMode==="banner_and_products";return["products_only","banner_only","banner_and_products"].includes(o.displayMode)||t.push($(e,"displayMode","展示内容必填")),n&&!["unified","per_category"].includes(o.categoryBannerMode)&&t.push($(e,"categoryBannerMode","Banner 展示形式必填")),(s||(r=o.categories)!=null&&r.length)&&(R(e,t,"categories",o.categories,1,8,"产品分类须配置 1~8 个"),(o.categories||[]).forEach((i,p)=>{const u=`categories[${p}]`;k(e,t,`${u}.name`,i.name,"分类名称必填"),be(e,t,`${u}.productIds`,i.productIds,1,12,"每个分类须选择 1~12 个商品"),n&&o.categoryBannerMode==="per_category"&&($e(e,t,`${u}.banner`,i.banner,{requirePad:!0,requireMobile:!0}),Qe(e,t,`${u}.banner`,i.banner||{}))})),n&&o.categoryBannerMode==="unified"&&($e(e,t,"banner",o.banner),Qe(e,t,"banner",o.banner||{})),t},product_recommend:e=>{const o=V(e),t=[];return be(e,t,"productIds",o.productIds,1,Number.MAX_SAFE_INTEGER,"请至少选择 1 个有效商品"),t},pro_content:e=>{var n,r;const o=V(e),t=[];k(e,t,"left.pcImage",(n=o.left)==null?void 0:n.pcImage,"专业内容左侧图片必填"),j(e,t,"left.link",(r=o.left)==null?void 0:r.link,"专业内容左侧链接必须为站内路径或合法 URL");const s=o.layout==="left1_right4"?4:o.layout==="left1_right3"?3:2;return R(e,t,"right",o.right,s,s,`专业内容须配置 ${s}
2 条右侧内容`),(o.right||[]).forEach((i,p)=>{const u=`right[${p}]`;k(e,t,`${u}.icon`,i.icon,"专业内容图标必填"),k(e,t,`${u}.title`,i.title,"专业内容标题必填"),k(e,t,`${u}.content`,i.content,"专业内容摘要必填"),j(e,t,`${u}.link`,i.link,"专业内容链接必须为站内路径或合法 URL")}),t},content_entry:e=>{const o=V(e),t=[];return R(e,t,"items",o.items,1,Number.MAX_SAFE_INTEGER,"内容入口至少配置 1 张卡片"),(o.items||[]).forEach((s,n)=>{const r=`items[${n}]`;k(e,t,`${r}.image`,s.image,"内容入口图片必填"),k(e,t,`${r}.title`,s.title,"内容入口标题必填"),k(e,t,`${r}.subtitle`,s.subtitle,"内容入口描述必填"),o.showButton&&(k(e,t,`${r}.buttonText`,s.buttonText,"按钮文案必填"),j(e,t,`${r}.link`,s.link,"按钮链接必须为站内路径或合法 URL"))}),t},video_content:e=>{const o=V(e),t=[];return R(e,t,"items",o.items,3,9,"视频数量须在 3~9 条之间"),(o.items||[]).forEach((s,n)=>{const r=s.source==="upload"?"uploadUrl":"embedCode";(s.source==="upload"?!lt(s.uploadUrl):K(s.embedCode))&&t.push($(e,`items[${n}].${r}`,"视频来源必填且格式有效")),o.showTitle&&k(e,t,`items[${n}].title`,s.title,"视频标题必填")}),t},firework_video:e=>{const o=V(e),t=[];return k(e,t,"firework_content",o.firework_content,"Firework 需填写 Embed 代码"),Number(o.firework_start_time)>0||t.push($(e,"firework_start_time","Firework 生效时间必填")),Number(o.firework_end_time)>0&&Number(o.firework_end_time)<=Number(o.firework_start_time)&&t.push($(e,"firework_end_time","Firework 失效时间必须晚于生效时间")),t},horizontal_product_card:e=>{const o=V(e),t=[];return be(e,t,"productIds",o.productIds,2,6,"横向商品卡片须选择 2~6 个且为偶数个有效商品",!0),t},triple_product_card:e=>{const o=V(e),t=[];return R(e,t,"groups",o.groups,1,4,"三联卡片须配置 1~4 组商品"),(o.groups||[]).forEach((s,n)=>be(e,t,`groups[${n}].productIds`,s.productIds,3,3,"每组须恰好选择 3 个有效商品")),t},image_link:e=>{const o=V(e),t=[];return R(e,t,"items",o.items,1,6,"图片入口须配置 1~6 项"),(o.items||[]).forEach((s,n)=>{k(e,t,`items[${n}].image`,s.image,"图片入口图片必填"),j(e,t,`items[${n}].link`,s.link,"图片入口链接必须为站内路径或合法 URL")}),t},advantage_card:e=>{const o=V(e),t=[];return[4,5].includes(Number(o.cardsPerRow))||t.push($(e,"cardsPerRow","每行卡片数必须为 4 或 5")),R(e,t,"items",o.items,1,10,"权益卡片须配置 1~10 张"),(o.items||[]).forEach((s,n)=>{const r=`items[${n}]`,i=at(s.icons).length;(i<1||i>3)&&t.push($(e,`${r}.icons`,"每张权益卡片须配置 1~3 个图标")),k(e,t,`${r}.title`,s.title,"权益卡片标题必填"),k(e,t,`${r}.desc`,s.desc,"权益卡片说明必填"),s.showViewMoreButton&&j(e,t,`${r}.link`,s.link,"查看更多链接必须为站内路径或合法 URL")}),t},service_card:e=>{const o=V(e),t=[];return["on_image","below_image"].includes(o.textPosition)||t.push($(e,"textPosition","文字展示形式必填")),R(e,t,"items",o.items,2,6,"图文卡片须 2~6 张"),(o.items||[]).forEach((s,n)=>{const r=`items[${n}]`;k(e,t,`${r}.backgroundImage`,s.backgroundImage,"图文卡片底图必填"),o.showButton&&j(e,t,`${r}.link`,s.link,"按钮链接必须为站内路径或合法 URL")}),t},notice_contact:e=>{const o=V(e),t=[],s=o.notices||[],n=o.contacts||[];return!s.length&&!n.length&&t.push($(e,"notices","公告或联系信息至少配置一类")),R(e,t,"notices",s,0,10,"公告最多配置 10 条"),R(e,t,"contacts",n,0,5,"联系信息最多配置 5 条"),s.length&&(k(e,t,"leftTitle",o.leftTitle,"存在公告时左侧区域标题必填"),s.forEach((r,i)=>{k(e,t,`notices[${i}].title`,r.title,"公告标题必填"),k(e,t,`notices[${i}].subtitle`,r.subtitle,"公告副标题必填"),j(e,t,`notices[${i}].link`,r.link,"公告链接必须为站内路径或合法 URL")})),n.length&&(k(e,t,"rightTitle",o.rightTitle,"存在联系信息时右侧区域标题必填"),n.forEach((r,i)=>{k(e,t,`contacts[${i}].title`,r.title,"联系标题必填")})),t}};function et(e){const o=[];for(const t of e.components||[]){if(t.hidden)continue;const s=Xo[t.type];s?o.push(...s(t)):o.push($(t,"type","该组件暂不支持发布校验,请联系管理员"))}return{valid:o.length===0,errors:o}}const Ce={items:(e,o)=>
2o==="banner"?`第 ${e+1} 个 Banner`:`第 ${e+1} 项`,categories:e=>`第 ${e+1} 个分类`,right:e=>`第 ${e+1} 条内容`,notices:e=>`第 ${e+1} 条公告`,contacts:e=>`第 ${e+1} 条联系项`,groups:e=>`第 ${e+1} 组`};function dt(e,o){var r,i;const t=zo(e),s=[];for(const[p,u]of Object.entries(t)){const y=(i=(r=Ce[p])==null?void 0:r.call(Ce,u,o==null?void 0:o.type))!=null?i:`第 ${u+1} 项`;s.push(y)}const n=Yo(e);return s.length?`${s.join(" · ")} · ${n}`:n}function Ko(e,o){return`${dt(e.field,o)}:${e.message}`}const Qo={class:"mb-4 text-sm text-[#4E5969]"},Zo={class:"max-h-[360px] space-y-3 overflow-auto rounded border border-[#E5E6EB] p-3"},en={class:"text-[13px] font-semibold text-[#1D2129]"},tn=["onClick"],on={class:"text-[#E34D59]"},nn={class:"mt-4 flex justify-end"},sn=J({__name:"PublishValidationDialog",props:{open:{type:Boolean},errors:{},components:{}},emits:["update:open","locate"],setup(e){const o=e,t=S(()=>{const r=new Map;for(const i of o.errors){const p=r.get(i.componentId)||[];p.push(i),r.set(i.componentId,p)}return[...r.entries()].map(([i,p])=>{const u=o.components.find(b=>b.id===i),y=u?xe[u.type]:"未知组件";return{componentId:i,label:y,items:p}})}),s=r=>o.components.find(i=>i.id===r),n=r=>dt(r.field,s(r.componentId));return(r,i)=>(h(),M(Be,{open:r.open,class:"!max-w-2xl","onUpdate:open":i[1]||(i[1]=p=>r.$emit("update:open",p))},{default:F(()=>[i[4]||(i[4]=a("h3",{class:"mb-2 pr-8 text-base font-semibold text-[#1D2129]"},"发布校验未通过",-1)),a("p",Qo," 共 "+E(r.errors.length)+" 处问题,请修复后重新发布 ",1),a("div",Zo,[(h(!0),w(ne,null,se(t.value,p=>(h(),w("section",{key:p.componentId,class:"space-y-1"},[a("h4",en,E(p.label),1),(h(!0),w(ne,null,se(p.items,u=>(h(),w("button",{key:`${u.componentId}-${u.field}-${u.message}`,type:"button","data-publish-error-item":"",class:"flex w-full rounded-[6px] px-2 py-2 text-left text-[13px] text-[#4E5969] transition-colors hover:bg-[#F2F3F5]",onClick:y=>r.$emit("locate",u)},[a("span",on,E(n(u)),1),i[2]||(i[2]=a("span",{class:"mx-1"},"·",-1)),a("span",null,E(u.message),1)],8,tn))),128))]))),128))]),a("div",nn,[I(q,{onClick:i[0]||(i[0]=p=>r.$emit("update:open",!1))},{default:F(()=>i[3]||(i[3]=[B("知道了")])),_:1})])]),_:1},8,["open"]))}}),rn={class:"space-y-4"},an={class:"flex items-start gap-4 text-[13px]"},ln={class:"flex-1"},dn={key:0,class:"mt-1 block text-xs text-[#f53f3f]"},cn={class:"flex items-start gap-4 text-[13px]"},pn={class:"flex-1"},un={key:0,class:"mt-1 block text-xs text-[#f53f3f]"},mn={class:"flex items-start gap-4 text-[13px]"},hn={class:"flex-1"},fn={key:0,class:"mt-1 block text-xs text-[#f53f3f]"},vn={class:"flex justify-end gap-2 pt-2"},gn=J({__name:"ScheduleSettingsDialog",props:{open:{type:Boolean},name:{},scheduleStartAt:{},scheduleEndAt:{},disabled:{type:Boolean}},emits:["update:open","confirm"],setup(e,{emit:o}){const t=e,s=o,n=Ae({name:"",startAt:"",endAt:""}),r=Ae({name:"",startAt:"",endAt:""}),i=()=>{r.name="",r.startAt="",r.endAt=""};X(()=>t.open,y=>{y&&(i(),n.name=t.name,n.startAt=me(t.scheduleStartAt),n.endAt=me(t.scheduleEndAt))});const p=()=>{i(),r.name=n.name.trim()?"":"请输入模板名称",r.startAt=n.startAt?"":"请选择生效时间";const y=ue(n.startAt),b=ue(n.endAt);return b&&b<=y&&(r.endAt="失效时间必须晚于生效时间"),!r.name&&!r.startAt&&!r.endAt},u=()=>{p()&&(s("confirm",{name:n.name.trim(),scheduleStartAt:ue(n.startAt),scheduleEndAt:ue(n.endAt)}),s("update:open",!1))};return(y,b)=>(h(),M(Be,{open:y.open,class:"!max-w-[480px]","onUpdate:open":b[4]||(b[4]=x=>y.$emit("update:open",x))},{default:F(()=>[b[11]||(b[11]=a("div",{class:"-mx-6 -mt-6 mb-5 flex items-center justify-between border-b border-[var(--design-border-light)] bg-[var(--design-primary-light)] px-6 py-4"},[a("h3",{class:"text-[16px] font-semibold text-[var(--design-text)]"},"首页生效时间设置")],-1)),a("div",rn,[a("div",an,[b[5]||(b[5]=a("span",{class:"w-20 shrink-0 pt-2 text-[var(--design-text-secondary)]"},[B(" 模板名称 "),a("em",{class:"text-[#f53f3f]"},"*")],-1)),a("div",ln,[I(Nt,{modelValue:n.name,"onUpdate:modelValue":b[0]||(b[0]=x=>n.name=x),class:"w-full",disabled:y.disabled},null,8,["modelValue","disabled"]),r.name?(h(),w("span",dn,E(r.name),1)):A("",!0)])]),a("div",cn,[b[6]||(b[6]=a("span",{class:"w-20 shrink-0 pt-2 text-[var(--design-text-secondary)]"},[B(" 生效时间 "),a("em",{class:"text-[#f53f3f]"},"*")],-1)),a("div",pn,[I(_e,{modelValue:n.startAt,"onUpdate:modelValue":b[1]||(b[1]=x=>n.startAt=x),placeholder:"请选择生效时间",disabled:y.disabled},null,8,["modelValue","disabled"]),r.startAt?(h(),w("span",un,E(r.startAt),1)):A("",!0)])]),a("div",mn,[b[7]||(b[7]=a("span",{class:"w-20 shrink-0 pt-2 text-[var(--design-text-secondary)]"},"失效时间",-1)),a("div",hn,[I(_e,{modelValue:n.endAt,"onUpdate:modelValue":b[2]||(b[2]=x=>n.endAt=x),placeholder:"空表示不失效",disabled:y.disabled}
2,null,8,["modelValue","disabled"]),r.endAt?(h(),w("span",fn,E(r.endAt),1)):A("",!0)])]),b[10]||(b[10]=a("p",{class:"text-[12px] leading-5 text-[var(--design-text-tertiary)]"}," 生效设置仅影响本模板排期;保存草稿不会改变线上状态,保存并发布后按排期生效。 ",-1)),a("div",vn,[I(q,{variant:"outline",onClick:b[3]||(b[3]=x=>y.$emit("update:open",!1))},{default:F(()=>b[8]||(b[8]=[B("取消")])),_:1}),I(q,{disabled:y.disabled,onClick:u},{default:F(()=>b[9]||(b[9]=[B("保存设置")])),_:1},8,["disabled"])])])]),_:1},8,["open"]))}}),yn={default:{backgroundColor:"#FBFCFD",borderColor:"#FBFCFD"},hover:{backgroundColor:"#F1F3F5",borderColor:"#DFE3E6"},active:{backgroundColor:"#ECEEF0",borderColor:"#D7DBDF"}},bn={default:{backgroundColor:"#1C2024",borderColor:"#1C2024"},hover:{backgroundColor:"rgba(0, 0, 0, 0.8)",borderColor:"#000000"},active:{backgroundColor:"#1C2024",borderColor:"#69727C"}},ct=e=>he(e==="white"?yn:bn),wn=()=>({id:U("bn"),pcImage:"",padImage:"",mobileImage:"",textBadges:[],badgeImage:"",showTitle:!1,title:"",showSubtitle:!1,subtitle:"",titleColor:"white",subtitleColor:"white",showButton:!1,buttonText:"",buttonBgColor:"white",buttonTextColor:"black",buttonStyle:ct("white"),link:"",startAt:0,endAt:0}),kn=()=>({id:U("qc"),name:"",image:"",link:""}),_n=()=>({id:U("itc"),image:"",title:"",desc:"",link:""}),pt=()=>({bannerStyle:"short_horizontal",pcImage:"",padImage:"",mobileImage:"",textBadges:[],badgeImage:"",showTitle:!1,title:"",showSubtitle:!1,subtitle:"",titleColor:"black",subtitleColor:"black",showButton:!1,buttonText:"",buttonBgColor:"black",buttonTextColor:"white",buttonStyle:ct("black"),link:"",startAt:0,endAt:0}),xn=()=>({id:U("plc"),name:"",productIds:[],customImages:{},productTextOverrides:{},banner:pt()}),tt=()=>({id:U("pr"),icon:"",title:"",content:"",link:""}),we=()=>({id:U("ce"),image:"",title:"",subtitle:"",buttonText:"",link:""}),Se=()=>({id:U("vd"),source:"external",uploadUrl:"",embedCode:"",cover:"",authorAvatar:"",title:""}),En=()=>({id:U("tpg"),productIds:[],customImages:{}}),In=()=>({id:U("il"),image:"",name:"",link:""}),$n=()=>({id:U("ac"),icons:[""],title:"",desc:"",showViewMoreButton:!1,link:""}),ot=()=>({id:U("sc"),backgroundImage:"",title:"",content:"",link:""}),Cn=()=>({id:U("nt"),title:"",subtitle:"",link:""}),Sn=()=>({id:U("ct"),image:"",title:"",subtitle:"",content:"",titleColor:"black",subtitleColor:"black",contentColor:"black"}),An=e=>he({banner:()=>({title:"",layoutWidth:"fullscreen",bannerStyle:"large_image",showDots:!0,items:[wn()]}),quick_category:()=>({title:"",items:[kn()]}),image_text_carousel:()=>({displayMode:"image_text",items:[_n()]}),product_list:()=>({title:"",displayMode:"banner_and_products",categoryBannerMode:"unified",banner:pt(),categories:[xn()],showBuyButton:!0,showReviewCount:!0,showRating:!0,showFaqIcon:!1,showBadgeImage:!1,badgeImageUrl:""}),product_recommend:()=>({title:"",productIds:[],customImages:{},showBuyButton:!0,showBadgeImage:!1,badgeImageUrl:""}),pro_content:()=>({title:"",layout:"left1_right2",left:{pcImage:"",mobileImage:"",link:""},right:[tt(),tt()]}),content_entry:()=>({title:"",showButton:!0,items:[we(),we(),we(),we()]}),video_content:()=>({title:"",showTitle:!0,showAuthor:!0,items:[Se(),Se(),Se()]}),firework_video:()=>({title:"",firework_content:"",firework_status:1,firework_start_time:0,firework_end_time:0,firework_position:2}),horizontal_product_card:()=>({title:"",productIds:[],customImages:{},productTextOverrides:{},backgroundImages:{},showBuyButton:!0}),triple_product_card:()=>({title:"",groups:[En()],showBuyButton:!0}),image_link:()=>({title:"",items:[In()]}),advantage_card:()=>({title:"",cardsPerRow:4,items:[$n()]}),service_card:()=>({title:"",showButton:!0,enableCarousel:!1,textPosition:"on_image",items:[ot(),ot()]}),notice_contact:()=>({title:"",leftTitle:"",notices:[Cn()],rightTitle:"",contacts:[Sn()]})}[e]()),ut=(e,o=0)=>({id:U("cmp"),type:e,hidden:!1,sort:o,props:An(e)}),Pn=Kt.map(e=>({type:e,label:xe[e],createEmpty:()=>ut(e)})),Mn={banner:co,quick_category:Ie,image_text_carousel:lo,product_list:fo,product_recommend:go,pro_content:Xe,content_entry:Ie,video_content:bo,firework_video:ro,horizontal_product_card:ho,triple_product_card:Ie,image_link:po,advantage_card:io,service_card:Xe,notice_contact:uo},Ln={class:"flex h-full min-h-0 w-[260px] shrink-0 flex-col border-r border-[var(--design-border)] bg-white"},Fn={class:"flex h-12 items-center justify-between border-b border-[var(--design-border-light)] px-4"},Bn={class:"text-[12px] text-[var(--design-text-tertiary)]"},Tn={key:0,class:"px-2 py-12 text-center text-[13px] text-[var(--design-text-tertiary)]"},Dn={key:1,class:"space-y-1"},On=["id","data-sd-type","onDragstart","onDrop","onClick"],Vn={class:"min-w-0 flex-1 truncate text-[14px] leading-[22px]"},Un={key:0,class:"ml-1 text-[12px] font-medium text-[var(--design-error)]"},Rn=["title","aria-label","onClick"],Nn=["onClick"],jn=["onClick"],Hn={class:"relative z-30 border-t border-[var(--design-border-light)] p-3"},Wn=["disabled"],qn={key:0,class:"absolute bottom-[calc(100%+4px)] left-3 z-20 grid w-[340px] grid-cols-2 gap-x-1 gap-y-0.5 rounded-[8px] border border-[var(--design-border)] bg-white p-2 shadow-[var(--design-shadow-md)]"},zn=["data-sd-type","onClick"],Gn=J({__name:"HomeComponentList",props:{components:{},selectedComponentId:{},readonly:{type:Boolean},errorComponentIds:{},errorCountByComponentId:{}},emits:["select","add","duplicate","remove","toggle-hidden","move"],setup(e,{emit:o}){const t=e,s=o,n=L(!1),r=L(""),i=L(null),p=S(()=>new Set(t.errorComponentIds||[]));X(()=>t.selectedComponentId,l=>W(this,null,function*(){var g;if(!l)return;yield Fe();const m=(g=i.value)==null?void 0:g.querySelector(`#component-list-item-${l}`);m==null||m.scrollIntoView({block:"nearest",behavior:"smooth"})}));const u=l=>{var m;return((m=t.errorCountByComponentId)==null?void 0:m[l])||0},y=Mn,b=l=>{s("add",l),n.value=!1},x=l=>
2{t.readonly||(r.value=l)},f=l=>{if(t.readonly||!r.value||r.value===l)return;const m=t.components.findIndex(C=>C.id===r.value),g=t.components.findIndex(C=>C.id===l);r.value="",!(m<0||g<0)&&s("move",m,g)};return(l,m)=>(h(),w("section",Ln,[a("div",Fn,[m[2]||(m[2]=a("h2",{class:"text-[14px] font-semibold leading-[22px] text-[var(--design-text)]"},"首页结构",-1)),a("span",Bn,E(l.components.length),1)]),a("div",{ref_key:"listScrollRef",ref:i,class:"min-h-0 flex-1 overflow-y-auto px-2 py-2"},[l.components.length===0?(h(),w("div",Tn," 暂无组件,点击下方添加模块 ")):(h(),w("ol",Dn,[(h(!0),w(ne,null,se(l.components,g=>(h(),w("li",{id:`component-list-item-${g.id}`,key:g.id,"data-sd-type":g.type,draggable:"true",class:G(["group flex cursor-pointer items-center gap-2 rounded-[6px] px-2 py-2.5 transition-colors duration-150",[l.selectedComponentId===g.id?"bg-[var(--design-bg-selected)] text-[var(--design-primary)]":"text-[var(--design-text)] hover:bg-[var(--design-bg-hover)]",g.hidden?"opacity-55":"",p.value.has(g.id)?"ring-1 ring-[var(--design-error)]":""]]),onDragstart:C=>x(g.id),onDragover:m[0]||(m[0]=ye(()=>{},["prevent"])),onDrop:C=>f(g.id),onClick:C=>l.$emit("select",g.id)},[I(c(ao),{class:"h-3.5 w-3.5 shrink-0 cursor-grab text-[var(--design-text-disabled)]"}),a("span",{class:G(["flex h-7 w-7 shrink-0 items-center justify-center rounded-[4px]",l.selectedComponentId===g.id?"bg-white text-[var(--design-primary)]":"bg-[var(--design-bg-canvas)] text-[var(--design-text-secondary)]"])},[(h(),M(ke(c(y)[g.type]),{class:"h-3.5 w-3.5"}))],2),a("span",Vn,[B(E(c(xe)[g.type])+" ",1),u(g.id)>0?(h(),w("span",Un,"· "+E(u(g.id)),1)):A("",!0)]),("readonly"in l?l.readonly:c(oe))?A("",!0):(h(),w("div",{key:0,class:G(["flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity duration-150 group-hover:opacity-100",l.selectedComponentId===g.id?"!opacity-100":""])},[a("button",{type:"button",class:"inline-flex h-6 w-6 items-center justify-center rounded-[4px] hover:bg-white",title:g.hidden?"显示":"隐藏","aria-label":g.hidden?"显示":"隐藏",onClick:ye(C=>l.$emit("toggle-hidden",g.id),["stop"])},[g.hidden?(h(),M(c(no),{key:0,class:"h-3.5 w-3.5"})):(h(),M(c(so),{key:1,class:"h-3.5 w-3.5"}))],8,Rn),a("button",{type:"button",class:"inline-flex h-6 w-6 items-center justify-center rounded-[4px] hover:bg-white",title:"复制","aria-label":"复制",onClick:ye(C=>l.$emit("duplicate",g.id),["stop"])},[I(c(oo),{class:"h-3.5 w-3.5"})],8,Nn),a("button",{type:"button",class:"inline-flex h-6 w-6 items-center justify-center rounded-[4px] text-[var(--design-error)] hover:bg-white",title:"删除","aria-label":"删除",onClick:ye(C=>l.$emit("remove",g.id),["stop"])},[I(c(Zt),{class:"h-3.5 w-3.5"})],8,jn)],2))],42,On))),128))]))],512),a("div",Hn,[a("button",{type:"button",class:"flex h-8 w-full items-center justify-center gap-1 rounded-[6px] border border-dashed border-[var(--design-primary)] text-[13px] text-[var(--design-primary)] transition-colors duration-150 hover:bg-[var(--design-primary-light)] disabled:cursor-not-allowed disabled:opacity-50",disabled:"readonly"in l?l.readonly:c(oe),onClick:m[1]||(m[1]=g=>n.value=!n.value)},[I(c(eo),{class:"h-3.5 w-3.5"}),m[3]||(m[3]=B(" 添加模块 "))],8,Wn),n.value&&!("readonly"in l?l.readonly:c(oe))?(h(),w("div",qn,[(h(!0),w(ne,null,se(c(Pn),g=>(h(),w("button",{key:g.type,type:"button","data-sd-type":g.type,class:"flex items-center gap-1.5 whitespace-nowrap rounded-[6px] px-2 py-2 text-left text-[12px] text-[var(--design-text-secondary)] transition-colors duration-150 hover:bg-[var(--design-bg-hover)] hover:text-[var(--design-primary)]",onClick:C=>b(g.type)},[(h(),M(ke(c(y)[g.type]),{class:"h-3.5 w-3.5 shrink-0"})),B(" "+E(g.label),1)],8,zn))),128))])):A("",!0)])]))}}),Jn={banner:O(()=>D(()=>import("./FZPLgXml.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]),import.meta.url)),quick_category:O(()=>D(()=>import("./dPmDwiAY.js").then(e=>e.Q),__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url)),image_text_carousel:O(()=>D(()=>import("./dPmDwiAY.js").then(e=>e.I),__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url)),product_list:O(()=>D(()=>import("./DbAI-p98.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]),import.meta.url)),product_recommend:O(()=>D(()=>import("./DBN71Wh7.js").then(e=>e.P),__vite__mapDeps([32,1,29,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,2,24,25,26,27,28,30,31]),import.meta.url)),pro_content:O(()=>D(()=>import("./dPmDwiAY.js").then(e=>e.P),__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url)),content_entry:O(()=>D(()=>import("./dPmDwiAY.js").then(e=>e.C),__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url)),video_content:O(()=>D(()=>import("./dPmDwiAY.js").then(e=>e.V),__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url)),firework_video:O(()=>D(()=>Promise.resolve().then(()=>Ls),void 0,import.meta.url)),horizontal_product_card:O(()=>D(()=>import("./DBN71Wh7.js").then(e=>e.H),__vite__mapDeps([32,1,29,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,2,24,25,26,27,28,30,31]),import.meta.url)),triple_product_card:O(()=>D(()=>import("./DBN71Wh7.js").then(e=>e.T),__vite__mapDeps([32,1,29,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,2,24,25,26,27,28,30,31]),import.meta.url)),image_link:O(()=>D(()=>import("./dPmDwiAY.js").then(e=>e.a),__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url)),advantage_card:O(()=>D(()=>import("./dPmDwiAY.js").then(e=>e.A),__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url)),service_card:O(()=>D(()=>import("./dPmDwiAY.js").then(e=>e.S),__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url)),notice_contact:O(()=>D(()=>import("./dPmDwiAY.js").then(e=>e.N),__vite__mapDeps([2,3,4,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url))},Yn={class:"flex h-full min-h-0 w-[360px] shrink-0 flex-col overflow-hidden border-l border-[var(--design-border)] bg-white"},Xn={class:"flex h-12 items-center border-b border-[var(--design-border-light)] px-4"},Kn={class:"flex w-full min-w-0 items-center justify-between gap-2"},Qn={class:"min-w-0 truncate text-[14px] font-semibold leading-[22px] text-[var(--design-text)]"}
2,Zn={key:0,class:"shrink-0 text-[12px] font-normal text-[var(--design-text-tertiary)]"},es={class:"flex h-10 items-center justify-between border-b border-[var(--design-border-light)] px-4"},ts={key:0,class:"flex items-center gap-1"},os={class:"text-[12px] text-[var(--design-text-tertiary)]"},ns={class:"min-h-0 flex-1 overflow-y-auto p-4"},ss={key:0,class:"py-16 text-center text-[13px] text-[var(--design-text-tertiary)]"},rs={key:1,class:"space-y-4"},is={key:0,class:"rounded-[8px] border border-[rgba(45,91,255,0.15)] bg-[rgba(45,91,255,0.05)] p-3 text-[12px] text-[var(--design-text-secondary)]"},as={key:1,class:"space-y-1 rounded-[8px] border border-[rgba(227,77,89,0.2)] bg-[rgba(227,77,89,0.05)] p-3"},ls=J({__name:"HomePropertyPanel",props:{selectedComponent:{},readonly:{type:Boolean},fieldErrors:{},activeFieldError:{},componentPreviewState:{}},emits:["update:props","uploaded","navigate-error","preview-change"],setup(e,{emit:o}){const t=e,s=o,n=Jn,r=S(()=>(t.fieldErrors||[]).filter(f=>{var l;return f.componentId===((l=t.selectedComponent)==null?void 0:l.id)})),i=S(()=>{var f;return((f=t.fieldErrors)==null?void 0:f.length)||0}),p=S(()=>{var l;if(!((l=t.fieldErrors)!=null&&l.length))return 0;if(!t.activeFieldError)return 1;const f=t.fieldErrors.findIndex(m=>m.componentId===t.activeFieldError.componentId&&m.field===t.activeFieldError.field);return f>=0?f+1:1}),u=S(()=>{const f=t.selectedComponent;return f?Qt(f.type,f.props):!1}),y=f=>{s("update:props",f)},b=f=>{s("preview-change",f)},x=f=>Ko(f,t.selectedComponent);return(f,l)=>{var m;return h(),w("aside",Yn,[a("div",Xn,[a("div",Kn,[a("h2",Qn,E(f.selectedComponent?`${c(xe)[f.selectedComponent.type]} 模块配置`:"模块配置"),1),f.selectedComponent?(h(),w("span",Zn,E(f.selectedComponent.type),1)):A("",!0)])]),a("div",es,[l[3]||(l[3]=a("span",{class:"border-b-2 border-[var(--design-primary)] px-1 pb-2 text-[13px] font-medium text-[var(--design-primary)]"},"内容",-1)),i.value>1?(h(),w("div",ts,[a("button",{type:"button",class:"rounded-[4px] px-2 py-1 text-[12px] text-[var(--design-text-secondary)] hover:bg-[var(--design-bg-hover)]",onClick:l[0]||(l[0]=g=>f.$emit("navigate-error","prev"))}," 上一处 "),a("span",os,E(p.value)+"/"+E(i.value),1),a("button",{type:"button",class:"rounded-[4px] px-2 py-1 text-[12px] text-[var(--design-text-secondary)] hover:bg-[var(--design-bg-hover)]",onClick:l[1]||(l[1]=g=>f.$emit("navigate-error","next"))}," 下一处 ")])):A("",!0)]),a("div",ns,[f.selectedComponent?(h(),w("div",rs,[u.value?(h(),w("div",is," 画布中显示为占位,配置内容后将自动预览 ")):A("",!0),r.value.length?(h(),w("div",as,[(h(!0),w(ne,null,se(r.value,g=>(h(),w("p",{key:`${g.field}-${g.message}`,class:"text-[12px] text-[var(--design-error)]"},E(x(g)),1))),128))])):A("",!0),(h(),M(ke(c(n)[f.selectedComponent.type]),{"model-value":f.selectedComponent.props,disabled:"readonly"in f?f.readonly:c(oe),"field-errors":f.fieldErrors,"active-field-error":f.activeFieldError,"component-id":f.selectedComponent.id,"preview-category-index":(m=f.componentPreviewState)==null?void 0:m.categoryIndex,"onUpdate:modelValue":y,onUploaded:l[2]||(l[2]=g=>f.$emit("uploaded",g)),onPreviewChange:b},null,40,["model-value","disabled","field-errors","active-field-error","component-id","preview-category-index"]))])):(h(),w("div",ss," 请选择左侧或画布中的组件 "))])])}}}),ds=Lt("homeDesign",{state:()=>({templateId:null,name:"",path:"/",version:0,enableStatus:"disabled",publishStatus:"draft",scheduleStartAt:0,scheduleEndAt:0,readonly:!1,hasUnpublishedChanges:!1,components:[],schemaVersion:1,selectedComponentId:null,viewport:"pc",dirty:!1,loading:!1,saving:!1,publishing:!1,previewMode:!1,loadError:"",fieldErrors:[],activeFieldError:null,pendingUploadUrls:[],componentPreviewState:{}}),getters:{canvasSchema(e){return{version:e.schemaVersion,components:te(e.components)}},previewSchema(e){return{version:e.schemaVersion,components:te(e.components.filter(o=>!o.hidden))}},selectedComponent(e){return e.selectedComponentId&&e.components.find(o=>o.id===e.selectedComponentId)||null},persistableSchema(){return Ht(this.canvasSchema)}},actions:{hydrateFromDetail(e){var o,t,s;this.templateId=e.id,this.name=e.name,this.path=e.path,this.version=e.version,this.enableStatus=e.enableStatus,this.publishStatus=e.publishStatus,this.scheduleStartAt=e.scheduleStartAt,this.scheduleEndAt=e.scheduleEndAt,this.readonly=e.readonly,this.hasUnpublishedChanges=e.hasUnpublishedChanges,this.schemaVersion=((o=e.draftSchema)==null?void 0:o.version)||1,this.components=te(he(((t=e.draftSchema)==null?void 0:t.components)||[])),this.selectedComponentId=((s=this.components[0])==null?void 0:s.id)||null,this.dirty=!1,this.loadError="",this.fieldErrors=[],this.previewMode=!1,this.componentPreviewState={}}
2,markDirty(){this.readonly||(this.dirty=!0)},setName(e){this.name=e,this.markDirty()},setSchedule(e,o){this.scheduleStartAt=e,this.scheduleEndAt=o,this.markDirty()},setViewport(e){this.viewport=e},selectComponent(e){this.selectedComponentId=e},setComponentPreviewState(e,o){this.componentPreviewState=ae(Y({},this.componentPreviewState),{[e]:Y(Y({},this.componentPreviewState[e]),o)})},addComponent(e){if(this.readonly)return null;const o=ut(e,this.components.length);return this.components.push(o),this.components=te(this.components),this.selectedComponentId=o.id,this.markDirty(),o},duplicateComponent(e){if(this.readonly)return null;const o=this.components.findIndex(s=>s.id===e);if(o<0)return null;const t=jt(this.components[o]);return this.components.splice(o+1,0,t),this.components=te(this.components),this.selectedComponentId=t.id,this.markDirty(),t},removeComponent(e){var t,s;if(this.readonly)return;const o=this.components.findIndex(n=>n.id===e);o<0||(this.components.splice(o,1),this.components=te(this.components),this.selectedComponentId===e&&(this.selectedComponentId=((t=this.components[o])==null?void 0:t.id)||((s=this.components[o-1])==null?void 0:s.id)||null),this.markDirty())},toggleHidden(e){if(this.readonly)return;const o=this.components.find(t=>t.id===e);o&&(o.hidden=!o.hidden,this.markDirty())},moveComponent(e,o){if(this.readonly||e===o||e<0||o<0||e>=this.components.length||o>=this.components.length)return;const[t]=this.components.splice(e,1);this.components.splice(o,0,t),this.components=te(this.components),this.markDirty()},updateComponent(e,o){if(this.readonly)return;const t=this.components.findIndex(n=>n.id===e);if(t<0)return;const s=this.components[t];this.components=te(this.components.map((n,r)=>r===t?ae(Y(Y({},n),o),{id:s.id,type:s.type}):n)),this.markDirty()},updateSelectedProps(e){if(!this.selectedComponentId)return;const o=this.components.find(s=>s.id===this.selectedComponentId),t=o?Le(o.props,e):[];this.updateComponent(this.selectedComponentId,{props:e}),t.length&&this.removeFieldErrorsMatching(this.selectedComponentId,t)},applyValidateErrors(e){this.fieldErrors=e.map(t=>({componentId:t.componentId,field:t.field,message:t.message,code:t.code}));const o=this.fieldErrors[0];o!=null&&o.componentId&&(this.selectedComponentId=o.componentId)},clearFieldErrors(){this.fieldErrors=[],this.activeFieldError=null},setActiveFieldError(e){this.activeFieldError=e},removeFieldErrorsMatching(e,o){o.length&&(this.fieldErrors=this.fieldErrors.filter(t=>t.componentId!==e||!Ke(t.field,o)),this.activeFieldError&&this.activeFieldError.componentId===e&&Ke(this.activeFieldError.field,o)&&(this.activeFieldError=null))},navigateFieldError(e){if(!this.fieldErrors.length)return null;const o=this.activeFieldError?this.fieldErrors.findIndex(r=>r.componentId===this.activeFieldError.componentId&&r.field===this.activeFieldError.field):-1,t=e==="next"?1:-1;let s=o<0?e==="next"?0:this.fieldErrors.length-1:o+t;s<0&&(s=this.fieldErrors.length-1),s>=this.fieldErrors.length&&(s=0);const n=this.fieldErrors[s];return this.selectedComponentId=n.componentId,this.activeFieldError=n,n},trackPendingUpload(e){!e||this.pendingUploadUrls.includes(e)||this.pendingUploadUrls.push(e)},applySaveSuccess(e){this.version=e.version,this.hasUnpublishedChanges=e.hasUnpublishedChanges,this.dirty=!1,this.pendingUploadUrls=[]},setPreviewMode(e){this.previewMode=e},reset(){this.$reset()}}}),cs={firework_video:{embedCode:"firework_content",startAt:"firework_start_time",endAt:"firework_end_time"}};function ps(e){return e.map(o=>{var n;const t=cs[o.componentType];if(!t||!o.field)return o;const s=(n=t[o.field])!=null?n:o.field;return s===o.field?o:ae(Y({},o),{field:s})})}function nt(t){return W(this,arguments,function*(e,o={}){if(!e||typeof document=="undefined")return!1;const{retries:s=3,behavior:n="smooth"}=o;for(let r=0;r<=s;r++){yield Fe();const i=document.querySelector(`[data-field-path="${e}"]`);if(i)return i.scrollIntoView({block:"nearest",behavior:n}),!0}return!1})}const us={key:1,class:"flex min-h-screen flex-col items-center justify-center gap-4 bg-[#F2F4F7]"},ms={class:"text-sm text-[#E34D59]"},hs=["disabled"],fs=J({__name:"[id]",setup(e){const o=Ft(),t=Bt(),{$message:s}=Tt(),n=ds(),r=L(!1),i=L(!1),p=L(!1),u=L(!1),y=L(!1),b=L(""),x=L(!1),f=L([]),l=L(""),m=S(()=>String(o.params.id)),g=S(()=>n.fieldErrors.map(d=>d.componentId)),C=S(()=>{const d={};for(const v of n.fieldErrors)d[v.componentId]=(d[v.componentId]||0)+1;return d}),Q=S({get:()=>n.viewport,set:d=>n.setViewport(d)}),mt=S(()=>
2{if(n.selectedComponentId)return n.componentPreviewState[n.selectedComponentId]}),Te=S(()=>n.loading||n.saving||n.publishing),fe=S(()=>{const d=!n.readonly;return{showSchedule:d,showSave:d,showPublish:d&&Gt(n.publishStatus)}}),ve=()=>W(this,null,function*(){n.loading=!0,n.loadError="";try{const d=yield re.detail({id:m.value});if(!le(d.code)||!d.data)throw new Error(d.message||d.msg||"模板加载失败");const v=Ye(d.data.draftSchema||{version:1,components:[]});if(!v.valid||!v.schema)throw new Error(v.message||"草稿 Schema 结构无效");const _={publishStatus:d.data.publishStatus,enableStatus:d.data.enableStatus},Z=Wt(_,d.data.readonly);if(Z==="denied"){s.warning("当前模板状态不支持打开编辑页,已返回列表"),yield t.replace("/design/home");return}const ee=qt(_,d.data.readonly);n.hydrateFromDetail(ae(Y({},d.data),{draftSchema:v.schema,readonly:ee})),zt(Z)?(n.setPreviewMode(!0),o.query.preview!=="1"&&(yield t.replace({path:o.path,query:ae(Y({},o.query),{preview:"1"})}))):ee&&s.warning("当前模板为只读状态,无法保存或发布")}catch(d){n.loadError=d instanceof Error?d.message:"模板加载失败"}finally{n.loading=!1}}),ht=d=>{n.updateSelectedProps(d)},ft=d=>{n.selectedComponentId&&n.setComponentPreviewState(n.selectedComponentId,{categoryIndex:d.categoryIndex})},vt=d=>{n.setName(d.name),n.setSchedule(d.scheduleStartAt,d.scheduleEndAt)},gt=()=>{if(n.readonly&&n.previewMode&&Jt(n.publishStatus)){s.info("当前模板仅支持预览查看");return}n.setPreviewMode(!n.previewMode)},yt=()=>W(this,null,function*(){if(!(Te.value||x.value)){if(n.dirty){s.warning("请先保存后再预览");return}x.value=!0;try{const d=yield Yt(m.value);d.ok||s.error(d.message)}finally{x.value=!1}}}),De=(d,v)=>{if(d instanceof de){if(d.code===z.VERSION_CONFLICT){s.error("版本冲突,请刷新后重试。本地未保存内容仍保留。");return}if(d.code===z.PUBLISH_VALIDATION_FAILED){s.error(d.message||"发布校验未通过");return}if(d.code===z.SCHEDULE_CONFLICT||d.code===z.CONFLICT_CHANGED||d.code===z.ENABLE_CONFLICT){s.warning(d.message||"存在排期冲突,请确认后重试");return}}s.error(d instanceof Error?d.message:v)},Oe=()=>W(this,null,function*(){var _,Z,ee;if(!n.templateId||n.readonly)return!1;const d=Ye(n.persistableSchema);if(!d.valid)return s.error(d.message),!1;const v=et(n.persistableSchema);if(!v.valid)return ce(v.errors,"保存"),!1;n.clearFieldErrors(),n.saving=!0;try{const T=yield re.save({id:n.templateId,version:n.version,name:n.name.trim(),scheduleStartAt:n.scheduleStartAt,scheduleEndAt:n.scheduleEndAt,draftSchema:n.persistableSchema});if(T.code===z.PUBLISH_VALIDATION_FAILED||((_=T.data)==null?void 0:_.valid)===!1)return ce((ee=(Z=T.data)==null?void 0:Z.errors)!=null?ee:[],"保存"),!1;if(!le(T.code))throw new de(T.message||T.msg||"保存失败",T.code);return n.applySaveSuccess({version:T.data.version,hasUnpublishedChanges:T.data.hasUnpublishedChanges}),s.success("草稿保存成功"),!0}catch(T){return De(T,"保存失败,请稍后重试"),!1}finally{n.saving=!1}}),ce=(d,v)=>{const _=ps(d);n.applyValidateErrors(_),p.value=!0,s.warning(`${v}校验未通过,请查看问题列表`)},bt=d=>W(this,null,function*(){n.selectComponent(d.componentId),n.setActiveFieldError(d),p.value=!1,yield nt(d.field)}),wt=d=>W(this,null,function*(){const v=n.navigateFieldError(d);v&&(yield nt(v.field))}),Ee=d=>JSON.stringify(d.map(v=>({id:v.id,start:v.scheduleStartAt,end:v.scheduleEndAt})).sort((v,_)=>String(v.id).localeCompare(String(_.id)))),Ve=(d=!1)=>W(this,null,function*(){var v,_,Z,ee,T,Re,Ne,je,He;if(!(!n.templateId||n.readonly)){n.publishing=!0;try{const pe=n.persistableSchema,We=et(pe);if(!We.valid){ce(We.errors,"发布");return}const ie=yield re.validatePublish({id:n.templateId,name:n.name.trim(),scheduleStartAt:n.scheduleStartAt,scheduleEndAt:n.scheduleEndAt,draftSchema:pe});if(ie.code===z.PUBLISH_VALIDATION_FAILED||((v=ie.data)==null?void 0:v.valid)===!1){ce((Z=(_=ie.data)==null?void 0:_.errors)!=null?Z:[],"发布");return}if(!le(ie.code))throw new de(ie.message||"发布校验失败",ie.code);
2if(n.clearFieldErrors(),d){const N=yield re.checkConflicts({id:n.templateId,scheduleStartAt:n.scheduleStartAt,scheduleEndAt:n.scheduleEndAt});if(le(N.code)&&((T=N.data)!=null&&T.hasConflict)){const qe=Ee(N.data.conflicts||[]);if(qe!==l.value){f.value=N.data.conflicts||[],l.value=qe,i.value=!0,s.warning("冲突列表已变化,请再次确认");return}}}else{const N=yield re.checkConflicts({id:n.templateId,scheduleStartAt:n.scheduleStartAt,scheduleEndAt:n.scheduleEndAt});if(!le(N.code))throw new de(N.message||"冲突检测失败",N.code);if((ee=N.data)!=null&&ee.hasConflict){f.value=N.data.conflicts||[],l.value=Ee(f.value),i.value=!0;return}}const H=yield re.publish({id:n.templateId,version:n.version,name:n.name.trim(),scheduleStartAt:n.scheduleStartAt,scheduleEndAt:n.scheduleEndAt,draftSchema:pe,confirmOverride:d});if(H.code===z.PUBLISH_VALIDATION_FAILED||((Re=H.data)==null?void 0:Re.valid)===!1){ce((je=(Ne=H.data)==null?void 0:Ne.errors)!=null?je:[],"发布");return}if(!le(H.code)){if(H.code===z.SCHEDULE_CONFLICT||H.code===z.CONFLICT_CHANGED){const N=yield re.checkConflicts({id:n.templateId,scheduleStartAt:n.scheduleStartAt,scheduleEndAt:n.scheduleEndAt});throw f.value=((He=N.data)==null?void 0:He.conflicts)||[],l.value=Ee(f.value),i.value=!0,new de(H.message||"排期冲突,请确认覆盖",H.code)}throw new de(H.message||H.msg||"发布失败",H.code)}i.value=!1,p.value=!1,s.success("保存并发布成功"),yield ve()}catch(pe){De(pe,"发布失败,请检查配置后重试")}finally{n.publishing=!1}}}),kt=d=>{b.value=d,y.value=!0},_t=()=>{n.removeComponent(b.value),y.value=!1},ge=(d=!1)=>{if(!d&&n.dirty){u.value=!0;return}n.reset(),t.push("/design/home")},xt=()=>ge(!1),Et=()=>W(this,null,function*(){(yield Oe())&&(u.value=!1,ge(!0))}),Ue=d=>{n.dirty&&(d.preventDefault(),d.returnValue="")};return X(m,ve),st(()=>{ve(),window.addEventListener("beforeunload",Ue)}),rt(()=>{window.removeEventListener("beforeunload",Ue)}),(d,v)=>(h(),w("div",null,[c(n).loading&&!c(n).templateId?(h(),M(it,{key:0,fullscreen:"",text:"正在加载模板..."})):c(n).loadError?(h(),w("div",us,[a("p",ms,E(c(n).loadError),1),I(q,{variant:"outline",onClick:ve},{default:F(()=>v[12]||(v[12]=[B("重新加载")])),_:1}),a("button",{type:"button",class:"text-sm text-[#2D5BFF]",onClick:v[0]||(v[0]=_=>ge(!0))},"返回列表")])):(h(),M(Lo,{key:2,viewport:Q.value,"onUpdate:viewport":v[2]||(v[2]=_=>Q.value=_),name:c(n).name,version:c(n).version,"publish-status":c(n).publishStatus,dirty:c(n).dirty,readonly:c(n).readonly,"preview-mode":c(n).previewMode,saving:c(n).saving,publishing:c(n).publishing,"show-schedule":fe.value.showSchedule,"show-save":fe.value.showSave,"show-publish":fe.value.showPublish,"storefront-preview-loading":x.value,busy:Te.value,onBack:xt,onSchedule:v[3]||(v[3]=_=>r.value=!0),onPreview:gt,onStorefrontPreview:yt,onSave:Oe,onPublish:v[4]||(v[4]=_=>Ve(!1))},{default:F(()=>[c(n).previewMode?A("",!0):(h(),M(Gn,{key:0,components:c(n).components,"selected-component-id":c(n).selectedComponentId,readonly:c(n).readonly,"error-component-ids":g.value,"error-count-by-component-id":C.value,onSelect:c(n).selectComponent,onAdd:c(n).addComponent,onDuplicate:c(n).duplicateComponent,onRemove:kt,onToggleHidden:c(n).toggleHidden,onMove:c(n).moveComponent},null,8,["components","selected-component-id","readonly","error-component-ids","error-count-by-component-id","onSelect","onAdd","onDuplicate","onToggleHidden","onMove"])),I(Vo,{viewport:Q.value,schema:c(n).previewMode?c(n).previewSchema:c(n).canvasSchema,"selected-component-id":c(n).previewMode?null:c(n).selectedComponentId,"preview-mode":c(n).previewMode,"preview-state":c(n).componentPreviewState,"onUpdate:viewport":v[1]||(v[1]=_=>Q.value=_),onNodeClick:c(n).selectComponent},null,8,["viewport","schema","selected-component-id","preview-mode","preview-state","onNodeClick"]),c(n).previewMode?A("",!0):(h(),M(ls,{key:1,"selected-component":c(n).selectedComponent,readonly:c(n).readonly,"field-errors":c(n).fieldErrors,"active-field-error":c(n).activeFieldError,"component-preview-state":mt.value,"onUpdate:props":ht,onUploaded:c(n).trackPendingUpload,onNavigateError:wt,onPreviewChange:ft},null,8,["selected-component","readonly","field-errors","active-field-error","component-preview-state","onUploaded"]))]),_:1},8,["viewport","name","version","publish-status","dirty","readonly","preview-mode","saving","publishing","show-schedule","show-save","show-publish","storefront-preview-loading","busy"])),I(gn,{open:r.value,"onUpdate:open":v[5]||(v[5]=_=>r.value=_),name:c(n).name,"schedule-start-at":c(n).scheduleStartAt,"schedule-end-at":c(n).scheduleEndAt,disabled:c(n).readonly,onConfirm:vt},null,8,["open","name","schedule-start-at","schedule-end-at","disabled"]),I(qo,{open:i.value,"onUpdate:open":v[6]||(v[6]=_=>i.value=_),conflicts:f.value,loading:c(n).publishing,onConfirm:v[7]||(v[7]=_=>Ve(!0))},null,8,["open","conflicts","loading"]),I(sn,{open:p.value,"onUpdate:open":v[8]||(v[8]=_=>p.value=_),errors:c(n).fieldErrors,components:c(n).components,onLocate:bt},null,8,["open","errors","components"]),I(Je,{open:u.value,"onUpdate:open":v[9]||(v[9]=_=>u.value=_),title:"有未保存的更改",subtitle:"离开前请确认",description:"可保存草稿后离开,或放弃更改直接返回列表。","confirm-text":"放弃离开","cancel-text":"取消",onConfirm:v[10]||(v[10]=_=>ge(!0))},Vt({_:2},[fe.value.showSave?{name:"footer-extra",fn:F(()=>[a("button",{type:"button",class:"mr-auto h-9 rounded-md border border-[#
2E5E6EB] px-4 text-sm text-[#2D5BFF] hover:border-[#2D5BFF]",disabled:c(n).saving,onClick:Et},E(c(n).saving?"保存中...":"保存并离开"),9,hs)]),key:"0"}:void 0]),1032,["open"]),I(Je,{open:y.value,"onUpdate:open":v[11]||(v[11]=_=>y.value=_),title:"删除组件",subtitle:"确认删除?",description:"删除后不可恢复,确认删除该组件吗?","confirm-text":"删除",onConfirm:_t},null,8,["open"])]))}}),js=Object.freeze(Object.defineProperty({__proto__:null,default:fs},Symbol.toStringTag,{value:"Module"})),vs={class:"block text-[13px]"},gs={class:"mb-2 block font-medium leading-5 text-[var(--design-text-secondary,#4E5969)]"},ys=["value","type","disabled","placeholder"],bs={key:0,class:"mt-1 text-[11px] leading-4 text-[var(--design-text-tertiary,#86909C)]"},ws={key:1,class:"mt-1 text-[11px] leading-4 text-[var(--design-error,#E34D59)]"},ks=J({__name:"FieldInput",props:{modelValue:{},label:{},type:{default:"text"},disabled:{type:Boolean,default:!1},placeholder:{default:""},hint:{default:""},error:{default:""}},emits:["update:modelValue"],setup(e){return(o,t)=>(h(),w("label",vs,[a("span",gs,E(o.label),1),a("input",{value:o.modelValue,type:o.type,disabled:o.disabled,placeholder:o.placeholder,class:G(["h-8 w-full rounded-[6px] border border-[var(--design-border,#E5E6EB)] bg-white px-3 text-[14px] leading-[22px] text-[var(--design-text,#1D2129)] outline-none transition-colors duration-150 placeholder:text-[var(--design-text-disabled,#C9CDD4)] focus:border-[var(--design-primary,#2D5BFF)] disabled:bg-[var(--design-bg-canvas,#F2F4F7)]",o.error?"border-[var(--design-error,#E34D59)]":""]),onInput:t[0]||(t[0]=s=>o.$emit("update:modelValue",s.target.value))},null,42,ys),o.hint&&!o.error?(h(),w("p",bs,E(o.hint),1)):A("",!0),o.error?(h(),w("p",ws,E(o.error),1)):A("",!0)]))}});function _s(e,o,t){const s=S(()=>(e.value||[]).filter(p=>p.componentId===o.value)),n=p=>{const u=s.value.find(y=>Me(y.field,p)||Pe(y.field,p));return(u==null?void 0:u.message)||""};return{componentErrors:s,getFieldError:n,hasFieldError:p=>!!n(p),isActiveField:p=>{const u=t==null?void 0:t.value;return!u||u.componentId!==o.value?!1:Me(u.field,p)||Pe(u.field,p)}}}const xs={class:"space-y-4"},Es={"data-field-path":"title"},Is={class:"block text-[13px]","data-field-path":"firework_content"},$s=["disabled"],Cs={key:0,class:"mt-1 text-[11px] leading-4 text-[var(--design-error)]"},Ss={key:1,class:"mt-1 text-[11px] leading-4 text-[var(--design-text-tertiary)]"},As={"data-field-path":"firework_start_time"},Ps={"data-field-path":"firework_end_time"},Ms=J({__name:"FireworkVideoPanel",props:{modelValue:{},disabled:{type:Boolean},fieldErrors:{},activeFieldError:{},componentId:{}},emits:["update:modelValue"],setup(e,{emit:o}){const t=e,s=o,n=S(()=>t.componentId),{getFieldError:r}=_s(S(()=>t.fieldErrors),n,S(()=>t.activeFieldError)),i=Ae({title:"",firework_content:"",firework_status:1,firework_start_time:0,firework_end_time:0}),p=L(""),u=L(""),y=()=>{var f,l;Object.assign(i,he(t.modelValue)),p.value=me((f=i.firework_start_time)!=null?f:0),u.value=me((l=i.firework_end_time)!=null?l:0)},b=()=>s("update:modelValue",he(i)),x=(f,l)=>{f==="firework_start_time"?p.value=l:u.value=l,i[f]=ue(l),b()};return X(()=>t.modelValue,y,{immediate:!0,deep:!0}),(f,l)=>(h(),w("div",xs,[a("div",Es,[I(ks,{modelValue:i.title,"onUpdate:modelValue":[l[0]||(l[0]=m=>i.title=m),b],label:"模块标题",disabled:f.disabled},null,8,["modelValue","disabled"])]),a("label",Is,[l[6]||(l[6]=a("span",{class:"mb-2 block font-medium text-[var(--design-text-secondary)]"},"Firework 代码",-1)),Ut(a("textarea",{"onUpdate:modelValue":l[1]||(l[1]=m=>i.firework_content=m),rows:"8",class:G(["w-full rounded-[6px] border px-3 py-2 font-mono text-[12px] outline-none focus:border-[var(--design-primary)]",c(r)("firework_content")?"border-[var(--design-error)]":"border-[var(--design-border)]"]),disabled:f.disabled,placeholder:'<fw-embed-feed channel="..." playlist="..."></fw-embed-feed>',onInput:b},null,42,$s),[[Rt,i.firework_content]]),c(r)("firework_content")?(h(),w("p",Cs,E(c(r)("firework_content")),1)):(h(),w("p",Ss,"粘贴 Firework 提供的 Embed Feed 完整代码"))]),a("div",As,[I(_e,{modelValue:p.value,"onUpdate:modelValue":[l[2]||(l[2]=m=>p.value=m),l[3]||(l[3]=m=>x("firework_start_time",m))],label:"生效时间",disabled:f.disabled,error:c(r)("firework_start_time")},null,8,["modelValue","disabled","error"])]),a("div",Ps,[I(_e,{modelValue:u.value,"onUpdate:modelValue":[l[4]||(l[4]=m=>u.value=m),l[5]||(l[5]=m=>x("firework_end_time",m))],label:"失效时间",disabled:f.disabled,error:c(r)("firework_end_time")},null,8,["modelValue","disabled","error"])])]))}}),Ls=Object.freeze(Object.defineProperty({__proto__:null,default:Ms},Symbol.toStringTag,{value:"Module"}));
2export{ao as G,ks as _,xn as a,pt as b,wn as c,kn as d,_n as e,tt as f,ct as g,we as h,Se as i,In as j,$n as k,ot as l,Cn as m,Sn as n,zo as o,En as p,js as q,_s as u};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.