Files
Lucky_Wheel/apps/admin/dist/assets/CampaignFormView-COR08E-o.js
T
2026-09-10 22:37:29 +03:30

2 lines
17 KiB
JavaScript

import{d as q,o as b,a as v,F as P,x as V,c as l,w as o,D as E,b as n,t as k,f as C,q as U,h as I,r as p,e as A,R as K,G as Q,s as H,H as W,J as ee,_ as G,g as te,j as le,K as z,N as oe,m as B,O as ae,Q as ne,i as se,y as T}from"./index-Dx9ODHpC.js";import{U as j}from"./UploadOutlined-Byko1TmG.js";var L=(h=>(h.CLASSIC_CASINO="CLASSIC_CASINO",h.NEON_CYBER="NEON_CYBER",h.MINIMAL_FLAT="MINIMAL_FLAT",h.LUXURY_GOLD="LUXURY_GOLD",h.PLAYFUL_CARTOON="PLAYFUL_CARTOON",h))(L||{});const re={class:"wheel-picker-grid"},ie=["onClick"],de={class:"wheel-wrapper"},ce={class:"pointer-wrapper"},ue={width:"18",height:"22",viewBox:"0 0 18 22",fill:"none"},fe=["fill"],pe=["d","fill","stroke"],ge=["cx","cy"],_e=["fill","stroke"],be=["fill"],me={class:"stage-tools"},ve={class:"card-body"},he={class:"card-title-row"},Ce={class:"title-text"},xe={class:"card-desc"},ye={class:"modal-wheel-box"},we={class:"large-pointer"},ke={width:"28",height:"34",viewBox:"0 0 28 34",fill:"none"},Ae=["fill"],Me={class:"large-wheel-svg",viewBox:"0 0 260 260"},$e=["d","fill","stroke"],Le=["fill"],Ie={x:"130",y:"136","text-anchor":"middle",fill:"#fff","font-size":"14","font-weight":"bold"},Se={style:{"margin-top":"20px","text-align":"center"}},Re=q({__name:"WheelDesignPicker",props:{modelValue:{}},emits:["update:modelValue"],setup(h,{emit:O}){const S=O,w=I(!1),g=I(null),M=I(null),R=I({}),e=[{id:L.CLASSIC_CASINO,title:"کلاسیک کازینویی (Classic Casino)",badge:"جشنواره‌ها و قرعه‌کشی",badgeColor:"gold",desc:"طرح سنتی و مجلل با حباب‌های نور طلایی چشمک‌زن، اسلایس‌های قرمز و مشکی و ستاره برنجی",bg:"radial-gradient(circle, #2d0a0a 0%, #150505 100%)",accent:"#fbbf24",border:"#d97706",slices:["#b91c1c","#1e293b","#b91c1c","#1e293b","#b91c1c","#1e293b"],pointerColor:"#f59e0b",centerColor:"#fbbf24",centerText:"★"},{id:L.NEON_CYBER,title:"نئون سایبری (Neon Cyber)",badge:"مدرن و گیمینگ",badgeColor:"cyan",desc:"تم سایبرپانک تیره با درخشش نور فیروزه‌ای و سرخابی، نشانگر لیزری و پالس نوری آینده‌نگرانه",bg:"radial-gradient(circle, #100e26 0%, #060512 100%)",accent:"#00f0ff",border:"#ec4899",slices:["#111827","#1e1b4b","#111827","#1e1b4b","#111827","#1e1b4b"],pointerColor:"#00f0ff",centerColor:"#00f0ff",centerText:"⚡"},{id:L.MINIMAL_FLAT,title:"مینیمال تخت (Minimal Flat)",badge:"فین‌تک و B2B",badgeColor:"blue",desc:"طراحی مدرن، بدون حاشیه سنگین، فوق‌العاده خوانا، شارپ و متناسب با برندهای رسمی",bg:"radial-gradient(circle, #1e293b 0%, #0f172a 100%)",accent:"#38bdf8",border:"#3b82f6",slices:["#3b82f6","#6366f1","#3b82f6","#6366f1","#3b82f6","#6366f1"],pointerColor:"#38bdf8",centerColor:"#ffffff",centerText:"●"},{id:L.LUXURY_GOLD,title:"لوکس سلطنتی (Luxury Gold)",badge:"VIP و پرمیوم",badgeColor:"orange",desc:"پس‌زمینه مشکی ابسیدین با شیب‌های طلای متالیک، حاشیه اشرافی و مدالیون کریستالی",bg:"radial-gradient(circle, #241c0e 0%, #0d0a06 100%)",accent:"#facc15",border:"#ca8a04",slices:["#1c1917","#0c0a09","#1c1917","#0c0a09","#1c1917","#0c0a09"],pointerColor:"#eab308",centerColor:"#facc15",centerText:"VIP"},{id:L.PLAYFUL_CARTOON,title:"کارتونی فانتزی (Playful Cartoon)",badge:"خانواده و بازی",badgeColor:"magenta",desc:"رنگ‌های شاداب آب‌نباتی، بردر ضخیم و نرم، نشانگر جهنده و حس پویای بازی‌های موبایلی",bg:"radial-gradient(circle, #fef3c7 0%, #fde68a 100%)",accent:"#f43f5e",border:"#f59e0b",slices:["#f43f5e","#8b5cf6","#06b6d4","#10b981","#f59e0b","#ec4899"],pointerColor:"#ef4444",centerColor:"#facc15",centerText:"✨"}];function D(r){S("update:modelValue",r)}function Y(r,d){d.stopPropagation();const u=R.value[r]||0;R.value[r]=u+1440+Math.floor(Math.random()*360),M.value=r,setTimeout(()=>{M.value===r&&(M.value=null)},2500)}function F(r,d){d.stopPropagation(),g.value=r,w.value=!0}function x(r,d=6,u=46,i=50,s=50){const _=360/d,m=(r*_-90)*(Math.PI/180),y=((r+1)*_-90)*(Math.PI/180),a=i+u*Math.cos(m),f=s+u*Math.sin(m),$=i+u*Math.cos(y),N=s+u*Math.sin(y);return`M ${i} ${s} L ${a} ${f} A ${u} ${u} 0 0 1 ${$} ${N} Z`}function t(r,d=6,u=110,i=130,s=130){const _=360/d,m=(r*_-90)*(Math.PI/180),y=((r+1)*_-90)*(Math.PI/180),a=i+u*Math.cos(m),f=s+u*Math.sin(m),$=i+u*Math.cos(y),N=s+u*Math.sin(y);return`M ${i} ${s} L ${a} ${f} A ${u} ${u} 0 0 1 ${$} ${N} Z`}return(r,d)=>{var y;const u=p("a-tag"),i=p("a-button"),s=p("a-tooltip"),_=p("a-radio"),m=p("a-modal");return b(),v("div",re,[(b(),v(P,null,V(e,a=>n("div",{key:a.id,class:ee(["design-card",{"is-selected":h.modelValue===a.id}]),onClick:f=>D(a.id)},[n("div",{class:"preview-stage",style:E({background:a.bg})},[l(u,{color:a.badgeColor,class:"theme-tag"},{default:o(()=>[C(k(a.badge),1)]),_:2},1032,["color"]),n("div",de,[n("div",ce,[(b(),v("svg",ue,[n("path",{d:"M9 22L2 6C0.5 3 2.5 0 6 0H12C15.5 0 17.5 3 16 6L9 22Z",fill:a.pointerColor,stroke:"#ffffff","stroke-width":"1.2"},null,8,fe)]))]),(b(),v("svg",{class:"mini-wheel-svg",viewBox:"0 0 100 100",style:E({transform:`rotate(${R.value[a.id]||0}deg)`,transition:M.value===a.id?"transform 2.5s cubic-bezier(0.15, 0.9, 0.2, 1)":"none"})},[(b(!0),v(P,null,V(a.slices,(f,$)=>(b(),v("g",{key:$},[n("path",{d:x($,a.slices.length),fill:f,stroke:a.accent,"stroke-width":"0.8"},null,8,pe)]))),128)),a.id===A(L).CLASSIC_CASINO?(b(),v(P,{key:0},V(12,f=>n("circle",{key:f,cx:50+46*Math.cos((f*30-90)*(Math.PI/180)),cy:50+46*Math.sin((f*30-90)*(Math.PI/180)),r:"1.8",fill:"#fef08a"},null,8,ge)),64)):U("",!0),n("circle",{cx:"50",cy:"50",r:"13",fill:a.centerColor,stroke:a.border,"stroke-width":"1"},null,8,_e),d[2]||(d[2]=n("circle",{cx:"50",cy:"50",r:"8",fill:"#1e293b"},null,-1)),n("text",{x:"50",y:"53","text-anchor":"middle",fill:a.accent,"font-size":"6","font-weight":"bold"},k(a.centerText),9,be)],4))]),n("div",me,[l(s,{title:"تست چرخش آزمایشی"},{default:o(()=>[l(i,{size:"small",shape:"circle",class:"tool-btn",onClick:f=>Y(a.id,f)},{icon:o(()=>[l(A(K))]),_:1},8,["onClick"])]),_:2},1024),l(s,{title:"مشاهده پیش‌نمایش بزرگ"},{default:o(()=>[l(i,{size:"small",shape:"circle",class:"tool-btn",onClick:f=>F(a,f)},{icon:o(()=>[l(A(Q))]),_:1},8,["onClick"])]),_:2},1024)])],4),n("div",ve,[n("div",he,[l(_,{checked:h.modelValue===a.id},{default:o(()=>[n("span",Ce,k(a.title),1)]),_:2},1032,["checked"]),h.modelValue===a.id?(b(),H(A(W),{key:0,class:"selected-icon"})):U("",!0)]),n("p",xe,k(a.desc),1)])],10,ie)),64)),l(m,{open:w.value,"onUpdate:open":d[1]||(d[1]=a=>w.value=a),title:`پیش‌نمایش طرح: ${((y=g.value)==null?void 0:y.title)||""}`,footer:null,width:"420px",centered:""},{default:o(()=>[g.value?(b(),v("div",{key:0,class:"modal-preview-container",style:E({background:g.value.bg})},[n("div",ye,[n("div",we,[(b(),v("svg",ke,[n("path",{d:"M14 34L4 10C2 5 6 1 11 1H17C22 1 26 5 24 10L14 34Z",fill:g.value.pointerColor,stroke:"#fff","stroke-width":"1.5"},null,8,Ae)]))]),(b(),v("svg",Me,[(b(!0),v(P,null,V(g.value.slices,(a,f)=>(b(),v("g",{key:f},[n("path",{d:t(f,g.value.slices.length),fill:a,stroke:g.value.accent,"stroke-width":"1.5"},null,8,$e)]))),128)),n("circle",{cx:"130",cy:"130",r:"30",fill:g.value.centerColor,stroke:"#fff","stroke-width":"2"},null,8,Le),d[3]||(d[3]=n("circle",{cx:"130",cy:"130",r:"18",fill:"#0f172a"},null,-1)),n("text",Ie,k(g.value.centerText),1)]))]),n("div",Se,[l(i,{type:"primary",size:"large",onClick:d[0]||(d[0]=a=>{D(g.value.id),w.value=!1})},{default:o(()=>[...d[4]||(d[4]=[C(" انتخاب این طرح برای کمپین ",-1)])]),_:1})])],4)):U("",!0)]),_:1},8,["open","title"])])}}}),Te=G(Re,[["__scopeId","data-v-31298959"]]),Ne={style:{display:"flex","flex-direction":"column",gap:"8px"}},Ue={key:0,style:{position:"relative",width:"90px",height:"90px","border-radius":"12px",border:"1px solid #e2e8f0",overflow:"hidden",background:"#f8fafc",padding:"4px","box-shadow":"0 2px 6px rgba(0,0,0,0.05)"}},Oe=["src"],De={style:{display:"flex","flex-direction":"column",gap:"8px"}},Fe={key:0,style:{position:"relative",width:"160px",height:"90px","border-radius":"12px",border:"1px solid #e2e8f0",overflow:"hidden",background:"#f8fafc","box-shadow":"0 2px 6px rgba(0,0,0,0.05)"}},Pe=["src"],Ve={style:{"margin-top":"24px",display:"flex",gap:"12px"}},ze=q({__name:"CampaignFormView",setup(h){const O=oe(),S=se(),w=I(!1),g=I(null),M=I(!1),R=I(!1),e=te({title:"",slug:"",description:"",banner:"",logo:"",dateRange:[],status:"DRAFT",defaultChances:3,rules:"",ctaText:"بچرخون و برنده شو!",wheelDesign:L.CLASSIC_CASINO,primaryColor:"#FFD700",secondaryColor:"#B22222"});async function D(){if(g.value){M.value=!0;try{const t=(await B.get(`/admin/campaigns/${g.value}`)).data;e.title=t.title,e.slug=t.slug,e.description=t.description||"",e.banner=t.banner||"",e.logo=t.logo||"",e.status=t.status,e.defaultChances=t.defaultChances,e.rules=t.rules||"",e.ctaText=t.ctaText||"بچرخون و برنده شو!",e.wheelDesign=t.wheelDesign,e.dateRange=[z(t.startAt),z(t.endAt)],t.settings&&(e.primaryColor=t.settings.primaryColor||"#FFD700",e.secondaryColor=t.settings.secondaryColor||"#B22222")}finally{M.value=!1}}}async function Y(){var t,r,d,u,i;if(!e.title||!e.title.trim()){T.error("لطفاً عنوان کمپین را وارد کنید.");return}let x=(e.slug||"").trim().toLowerCase().replace(/\s+/g,"-");if(x||(x="campaign-"+Math.random().toString(36).substring(2,8)),e.slug=x,!/^[a-z0-9-]+$/.test(x)){T.error("شناسه URL (اسلاگ) باید فقط شامل حروف کوچک انگلیسی، اعداد و خط تیره (-) باشد.");return}if(!e.dateRange||e.dateRange.length<2){T.error("لطفاً بازه زمانی شروع و پایان کمپین را انتخاب کنید.");return}R.value=!0;try{const s={title:e.title.trim(),slug:e.slug.trim(),description:((t=e.description)==null?void 0:t.trim())||void 0,banner:e.banner?e.banner.trim():null,logo:e.logo?e.logo.trim():null,startAt:e.dateRange[0].toISOString(),endAt:e.dateRange[1].toISOString(),status:e.status,defaultChances:Number(e.defaultChances)||0,rules:((r=e.rules)==null?void 0:r.trim())||void 0,ctaText:e.ctaText||"بچرخون و برنده شو!",wheelDesign:e.wheelDesign,settings:{primaryColor:e.primaryColor,secondaryColor:e.secondaryColor}};if(w.value&&g.value)await B.patch(`/admin/campaigns/${g.value}`,s),T.success("کمپین با موفقیت به‌روزرسانی شد."),S.push("/campaigns");else{const _=await B.post("/admin/campaigns",s);T.success("کمپین با موفقیت ایجاد گردید.");const m=((d=_.data)==null?void 0:d.id)||_.id;m?S.push(`/campaigns/${m}/prizes`):S.push("/campaigns")}}catch(s){const _=((i=(u=s.response)==null?void 0:u.data)==null?void 0:i.message)||s.message||"خطایی در ثبت اطلاعات کمپین رخ داد.";T.error(Array.isArray(_)?_.join(" | "):_)}finally{R.value=!1}}async function F(x,t){const r=new FormData;r.append("file",x);try{const d=await B.post("/admin/uploads",r,{headers:{"Content-Type":"multipart/form-data"}});e[t]=d.data.url,T.success("تصویر با موفقیت آپلود شد.")}catch{}return!1}return le(()=>{O.params.id?(w.value=!0,g.value=O.params.id,D()):e.dateRange=[z(),z().add(1,"month")]}),(x,t)=>{const r=p("a-button"),d=p("a-space"),u=p("a-input"),i=p("a-form-item"),s=p("a-col"),_=p("a-range-picker"),m=p("a-select-option"),y=p("a-select"),a=p("a-input-number"),f=p("a-upload"),$=p("a-divider"),N=p("a-textarea"),Z=p("a-row"),X=p("a-form"),J=p("a-card");return b(),H(J,{bordered:!1,loading:M.value},{title:o(()=>[l(d,null,{default:o(()=>[l(r,{type:"text",onClick:t[0]||(t[0]=c=>A(S).push("/campaigns"))},{icon:o(()=>[l(A(ne))]),_:1}),n("span",null,k(w.value?"ویرایش اطلاعات کمپین":"تعریف کمپین جدید گردونه شانس"),1)]),_:1})]),default:o(()=>[l(X,{model:e,layout:"vertical",onSubmit:ae(Y,["prevent"])},{default:o(()=>[l(Z,{gutter:24},{default:o(()=>[l(s,{xs:24,md:12},{default:o(()=>[l(i,{label:"عنوان کمپین",name:"title",required:"",rules:[{required:!0,message:"عنوان کمپین الزامی است"}]},{default:o(()=>[l(u,{value:e.title,"onUpdate:value":t[1]||(t[1]=c=>e.title=c),placeholder:"مثال: جشنواره عیدانه گردونه شانس"},null,8,["value"])]),_:1})]),_:1}),l(s,{xs:24,md:12},{default:o(()=>[l(i,{label:"شناسه URL (اسلاگ)",name:"slug",required:"",extra:"فقط حروف کوچک انگلیسی، اعداد و خط تیره (-) مانند: norooz-1405",rules:[{required:!0,message:"اسلاگ الزامی است"}]},{default:o(()=>[l(u,{value:e.slug,"onUpdate:value":t[2]||(t[2]=c=>e.slug=c),placeholder:"eid-1405"},null,8,["value"])]),_:1})]),_:1}),l(s,{xs:24,md:12},{default:o(()=>[l(i,{label:"بازه زمانی اعتبار (شروع و پایان)",name:"dateRange",required:""},{default:o(()=>[l(_,{value:e.dateRange,"onUpdate:value":t[3]||(t[3]=c=>e.dateRange=c),"show-time":"",format:"YYYY/MM/DD HH:mm",style:{width:"100%"}},null,8,["value"])]),_:1})]),_:1}),l(s,{xs:24,md:6},{default:o(()=>[l(i,{label:"وضعیت کمپین"},{default:o(()=>[l(y,{value:e.status,"onUpdate:value":t[4]||(t[4]=c=>e.status=c)},{default:o(()=>[l(m,{value:"DRAFT"},{default:o(()=>[...t[13]||(t[13]=[C("پیش‌نویس",-1)])]),_:1}),l(m,{value:"ACTIVE"},{default:o(()=>[...t[14]||(t[14]=[C("فعال",-1)])]),_:1}),l(m,{value:"PAUSED"},{default:o(()=>[...t[15]||(t[15]=[C("متوقف",-1)])]),_:1}),l(m,{value:"FINISHED"},{default:o(()=>[...t[16]||(t[16]=[C("پایان‌یافته",-1)])]),_:1})]),_:1},8,["value"])]),_:1})]),_:1}),l(s,{xs:24,md:6},{default:o(()=>[l(i,{label:"تعداد شانس پیش‌فرض کاربران"},{default:o(()=>[l(a,{value:e.defaultChances,"onUpdate:value":t[5]||(t[5]=c=>e.defaultChances=c),min:0,style:{width:"100%"}},null,8,["value"])]),_:1})]),_:1}),l(s,{xs:24,md:12},{default:o(()=>[l(i,{label:"متن دکمه چرخاندن (CTA)"},{default:o(()=>[l(u,{value:e.ctaText,"onUpdate:value":t[6]||(t[6]=c=>e.ctaText=c),placeholder:"بچرخون و برنده شو!"},null,8,["value"])]),_:1})]),_:1}),l(s,{xs:24,md:6},{default:o(()=>[l(i,{label:"لوگوی کمپین"},{default:o(()=>[n("div",Ne,[e.logo?(b(),v("div",Ue,[n("img",{src:e.logo,alt:"لوگو",style:{width:"100%",height:"100%","object-fit":"contain"}},null,8,Oe),n("button",{type:"button",style:{position:"absolute",top:"4px",left:"4px",width:"20px",height:"20px","border-radius":"50%",background:"#ef4444",color:"#fff",border:"none","font-size":"11px",cursor:"pointer",display:"flex","justify-content":"center","line-height":"1"},title:"حذف لوگو",onClick:t[7]||(t[7]=c=>e.logo="")}," ✕ ")])):U("",!0),l(f,{"before-upload":c=>F(c,"logo"),"show-upload-list":!1},{default:o(()=>[l(r,null,{icon:o(()=>[l(A(j))]),default:o(()=>[C(" "+k(e.logo?"تغییر لوگو":"انتخاب فایل لوگو"),1)]),_:1})]),_:1},8,["before-upload"])])]),_:1})]),_:1}),l(s,{xs:24,md:6},{default:o(()=>[l(i,{label:"بنر کمپین"},{default:o(()=>[n("div",De,[e.banner?(b(),v("div",Fe,[n("img",{src:e.banner,alt:"بنر",style:{width:"100%",height:"100%","object-fit":"cover"}},null,8,Pe),n("button",{type:"button",style:{position:"absolute",top:"4px",left:"4px",width:"20px",height:"20px","border-radius":"50%",background:"#ef4444",color:"#fff",border:"none","font-size":"11px",cursor:"pointer",display:"flex","justify-content":"center","line-height":"1"},title:"حذف بنر",onClick:t[8]||(t[8]=c=>e.banner="")}," ✕ ")])):U("",!0),l(f,{"before-upload":c=>F(c,"banner"),"show-upload-list":!1},{default:o(()=>[l(r,null,{icon:o(()=>[l(A(j))]),default:o(()=>[C(" "+k(e.banner?"تغییر بنر":"انتخاب فایل بنر"),1)]),_:1})]),_:1},8,["before-upload"])])]),_:1})]),_:1}),l(s,{xs:24},{default:o(()=>[l($,null,{default:o(()=>[...t[17]||(t[17]=[C("طرح بصری گردونه شانس (انتخاب از بین ۵ طرح استاندار)",-1)])]),_:1}),l(i,null,{default:o(()=>[l(Te,{modelValue:e.wheelDesign,"onUpdate:modelValue":t[9]||(t[9]=c=>e.wheelDesign=c)},null,8,["modelValue"])]),_:1})]),_:1}),l(s,{xs:24,md:12},{default:o(()=>[l(i,{label:"توضیحات کوتاه کمپین"},{default:o(()=>[l(N,{value:e.description,"onUpdate:value":t[10]||(t[10]=c=>e.description=c),rows:3},null,8,["value"])]),_:1})]),_:1}),l(s,{xs:24,md:12},{default:o(()=>[l(i,{label:"قوانین و مقررات کمپین"},{default:o(()=>[l(N,{value:e.rules,"onUpdate:value":t[11]||(t[11]=c=>e.rules=c),rows:3},null,8,["value"])]),_:1})]),_:1})]),_:1}),n("div",Ve,[l(r,{type:"primary","html-type":"submit",size:"large",loading:R.value,class:"submit-btn"},{default:o(()=>[C(k(w.value?"ذخیره تغییرات":"ایجاد کمپین و ورود به تعریف جوایز"),1)]),_:1},8,["loading"]),l(r,{size:"large",onClick:t[12]||(t[12]=c=>A(S).push("/campaigns"))},{default:o(()=>[...t[18]||(t[18]=[C("انصراف",-1)])]),_:1})])]),_:1},8,["model"])]),_:1},8,["loading"])}}}),Ee=G(ze,[["__scopeId","data-v-c11ffb22"]]);export{Ee as default};