2 lines
11 KiB
JavaScript
2 lines
11 KiB
JavaScript
import{t as T}from"./farsi-number-stB7JMN0.js";import{d as ct,l as mt,c as y,a as m,b as e,w as a,n as I,r as d,h as k,g as J,o as p,f as r,e as f,R as ft,$ as yt,S as gt,F as K,y as _t,t as g,x as b,G as vt,M as Ct,E as kt,U as xt,s as L,C as bt,i as wt,z as D,_ as Et}from"./index-C4s_T2hP.js";const Tt={class:"winner-list-page"},It={class:"page-header-title"},Dt={class:"table-header"},zt={class:"filters"},St=["onClick"],At={key:1,class:"user-name"},Ot={key:2,class:"campaign-cell"},Rt={key:3,class:"prize-text"},Lt=["onClick"],Nt={key:1,class:"text-muted"},Ut={key:7,class:"date-cell"},$t={class:"dropdown-action-item"},Vt={class:"dropdown-action-item"},Mt={class:"dropdown-action-item"},Ft=ct({__name:"WinnerListView",setup(Wt){const N=wt(),w=k(!1),z=k(!1),U=k([]),$=k(0),V=k([]),l=J({page:1,pageSize:10,campaignId:void 0,status:void 0,search:""}),E=k(!1),S=k(!1),c=J({id:"",winnerMobile:"",prizeTitle:"",status:"CONTACTED",note:""});async function Y(){var n;try{const t=await I.get("/admin/campaigns",{params:{pageSize:100}});V.value=Array.isArray(t.data)?t.data:((n=t.data)==null?void 0:n.data)||[]}catch{}}async function _(){var n,t,i,x;w.value=!0;try{const v=await I.get("/admin/user-prizes",{params:{page:l.page,pageSize:l.pageSize,campaignId:l.campaignId||void 0,status:l.status||void 0,search:l.search||void 0}}),u=Array.isArray(v.data)?v.data:((n=v.data)==null?void 0:n.data)||[];U.value=u,$.value=((t=v.meta)==null?void 0:t.total)||((x=(i=v.data)==null?void 0:i.meta)==null?void 0:x.total)||u.length}finally{w.value=!1}}function Z(n){var t,i;c.id=n.id,c.winnerMobile=((t=n.user)==null?void 0:t.mobile)||"",c.prizeTitle=((i=n.prize)==null?void 0:i.title)||"",c.status=n.status||"CONTACTED",c.note=n.note||"",E.value=!0}async function Q(){S.value=!0;try{await I.patch(`/admin/user-prizes/${c.id}/status`,{status:c.status,note:c.note||void 0}),D.success("وضعیت جایزه برنده با موفقیت بهروزرسانی شد."),E.value=!1,_()}catch{}finally{S.value=!1}}async function tt(){z.value=!0;try{const n=await I.get("/admin/user-prizes/export",{params:{campaignId:l.campaignId||void 0,status:l.status||void 0,search:l.search||void 0},responseType:"blob"}),t=window.URL.createObjectURL(new Blob([n.data])),i=document.createElement("a");i.href=t,i.setAttribute("download",`winners-${Date.now()}.xlsx`),document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(t),D.success("فایل اکسل برندگان با موفقیت دانلود شد.")}catch{D.error("خطا در دریافت فایل اکسل برندگان")}finally{z.value=!1}}function M(n,t){navigator.clipboard.writeText(n),D.success(`${t} با موفقیت کپی شد.`)}const et={PHYSICAL:{text:"کالای فیزیکی",color:"blue"},DISCOUNT_CODE:{text:"کد تخفیف",color:"green"},DISCOUNT:{text:"کد تخفیف",color:"green"},CREDIT:{text:"شارژ کیف پول",color:"purple"},WALLET_CREDIT:{text:"شارژ کیف پول",color:"purple"},CASH:{text:"جایزه نقدی",color:"gold"},NO_PRIZE:{text:"پوچ",color:"default"},OTHER:{text:"شانس مجدد",color:"cyan"},FREE_CHANCE:{text:"شانس مجدد",color:"cyan"},DIGITAL_CODE:{text:"کد دیجیتال",color:"green"}};function F(n){return n?et[n]||{text:n,color:"blue"}:{text:"—",color:"default"}}function at(n){if(!n)return"—";try{const t=new Date(n);if(isNaN(t.getTime()))return"—";const i=t.toLocaleDateString("fa-IR",{year:"numeric",month:"2-digit",day:"2-digit"}),x=t.toLocaleTimeString("fa-IR",{hour:"2-digit",minute:"2-digit"});return T(`${i} - ${x}`)}catch{return"—"}}const ot=[{title:"شماره همراه",dataIndex:["user","mobile"],key:"mobile"},{title:"نام کاربر",dataIndex:["user","name"],key:"name"},{title:"کمپین",dataIndex:["campaign","title"],key:"campaign"},{title:"عنوان جایزه",dataIndex:["prize","title"],key:"prizeTitle"},{title:"نوع جایزه",key:"prizeType"},{title:"کد دیجیتال / پیگیری",dataIndex:"code",key:"code"},{title:"وضعیت پیگیری",dataIndex:"status",key:"status"},{title:"تاریخ و ساعت برد",key:"wonAt"},{title:"عملیات",key:"actions",width:70,align:"center"}];function A(n){switch(n){case"NEW":return{text:"جدید",color:"blue",dotColor:"#3b82f6"};case"CONTACTED":return{text:"تماس گرفته شده",color:"orange",dotColor:"#f59e0b"};case"DELIVERED":return{text:"تحویل داده شده",color:"green",dotColor:"#10b981"};case"ACTIVE_CODE":return{text:"کد فعال",color:"cyan",dotColor:"#06b6d4"};case"USED":return{text:"مصرف شده",color:"purple",dotColor:"#8b5cf6"};case"EXPIRED":return{text:"منقضی شده",color:"red",dotColor:"#ef4444"};default:return{text:n,color:"default",dotColor:"#94a3b8"}}}return mt(()=>{Y(),_()}),(n,t)=>{const i=d("a-button"),x=d("a-space"),v=d("a-input-search"),u=d("a-select-option"),O=d("a-select"),W=d("a-tag"),R=d("a-menu-item"),nt=d("a-menu"),st=d("a-dropdown"),lt=d("a-table"),it=d("a-alert"),P=d("a-form-item"),rt=d("a-textarea"),ut=d("a-form"),dt=d("a-modal"),pt=d("a-card");return p(),y("div",Tt,[m("div",It,[t[11]||(t[11]=m("div",null,[m("h1",{class:"title"},"مدیریت برندگان"),m("p",{class:"subtitle"},"پیگیری، تأیید و تغییر وضعیت اهدای جوایز به برندگان")],-1)),e(x,null,{default:a(()=>[e(i,{onClick:_,loading:w.value},{icon:a(()=>[e(f(ft))]),default:a(()=>[t[9]||(t[9]=r(" بهروزرسانی ",-1))]),_:1},8,["loading"]),e(i,{type:"primary",loading:z.value,onClick:tt},{icon:a(()=>[e(f(yt))]),default:a(()=>[t[10]||(t[10]=r(" خروجی اکسل برندگان ",-1))]),_:1},8,["loading"])]),_:1})]),e(pt,{bordered:!1,class:"main-card"},{default:a(()=>[m("div",Dt,[m("div",zt,[e(v,{value:l.search,"onUpdate:value":t[0]||(t[0]=o=>l.search=o),placeholder:"جستجوی موبایل یا نام...",style:{width:"240px"},allowClear:"",onSearch:t[1]||(t[1]=()=>{l.page=1,_()})},{prefix:a(()=>[e(f(gt),{style:{color:"#94a3b8","margin-left":"4px"}})]),_:1},8,["value"]),e(O,{value:l.campaignId,"onUpdate:value":t[2]||(t[2]=o=>l.campaignId=o),placeholder:"فیلتر کمپین",allowClear:"",style:{width:"180px"},onChange:t[3]||(t[3]=()=>{l.page=1,_()})},{default:a(()=>[(p(!0),y(K,null,_t(V.value,o=>(p(),b(u,{key:o.id,value:o.id},{default:a(()=>[r(g(o.title),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),e(O,{value:l.status,"onUpdate:value":t[4]||(t[4]=o=>l.status=o),placeholder:"فیلتر وضعیت",allowClear:"",style:{width:"160px"},onChange:t[5]||(t[5]=()=>{l.page=1,_()})},{default:a(()=>[e(u,{value:"NEW"},{default:a(()=>[...t[12]||(t[12]=[r("جدید",-1)])]),_:1}),e(u,{value:"CONTACTED"},{default:a(()=>[...t[13]||(t[13]=[r("تماس گرفته شده",-1)])]),_:1}),e(u,{value:"DELIVERED"},{default:a(()=>[...t[14]||(t[14]=[r("تحویل شده",-1)])]),_:1}),e(u,{value:"ACTIVE_CODE"},{default:a(()=>[...t[15]||(t[15]=[r("کد فعال",-1)])]),_:1}),e(u,{value:"USED"},{default:a(()=>[...t[16]||(t[16]=[r("مصرف شده",-1)])]),_:1}),e(u,{value:"EXPIRED"},{default:a(()=>[...t[17]||(t[17]=[r("منقضی شده",-1)])]),_:1})]),_:1},8,["value"])])]),e(lt,{dataSource:U.value,columns:ot,loading:w.value,rowKey:"id",size:"middle",pagination:{current:l.page,pageSize:l.pageSize,total:$.value,showTotal:o=>`مجموع: ${f(T)(o)} برنده`,onChange:o=>{l.page=o,_()}}},{bodyCell:a(({column:o,record:s})=>{var h,B,H,X,j;return[o.key==="mobile"?(p(),y("span",{key:0,class:"mobile-cell user-link",onClick:C=>s.userId?f(N).push(`/users/${s.userId}`):null},g(f(T)((h=s.user)==null?void 0:h.mobile)),9,St)):o.key==="name"?(p(),y("span",At,g(((B=s.user)==null?void 0:B.name)||"—"),1)):o.key==="campaign"?(p(),y("span",Ot,g(((H=s.campaign)==null?void 0:H.title)||"—"),1)):o.key==="prizeTitle"?(p(),y("span",Rt,g((X=s.prize)==null?void 0:X.title),1)):o.key==="prizeType"?(p(),b(W,{key:4,color:F(((j=s.prize)==null?void 0:j.type)||s.prizeType).color,style:{"border-radius":"4px"}},{default:a(()=>{var C;return[r(g(F(((C=s.prize)==null?void 0:C.type)||s.prizeType).text),1)]}),_:2},1032,["color"])):o.key==="code"?(p(),y(K,{key:5},[s.code?(p(),y("code",{key:0,class:"code-badge clickable-code",title:"برای کپی کلیک کنید",onClick:C=>M(s.code,"کد جایزه")},g(s.code),9,Lt)):(p(),y("span",Nt,"—"))],64)):o.key==="status"?(p(),b(W,{key:6,color:A(s.status).color,class:"status-tag"},{default:a(()=>[m("span",{class:"status-dot",style:vt({backgroundColor:A(s.status).dotColor})},null,4),r(" "+g(A(s.status).text),1)]),_:2},1032,["color"])):o.key==="wonAt"||o.key==="createdAt"?(p(),y("span",Ut,g(s.wonAtFormatted?f(T)(s.wonAtFormatted):at(s.wonAt||s.createdAt)),1)):o.key==="actions"?(p(),b(st,{key:8,trigger:["click"],placement:"bottomLeft"},{overlay:a(()=>[e(nt,{class:"action-dropdown-menu"},{default:a(()=>{var C;return[e(R,{key:"status",onClick:G=>Z(s)},{default:a(()=>[m("div",$t,[e(f(kt),{class:"dropdown-item-icon"}),t[18]||(t[18]=m("span",null,"تغییر وضعیت پیگیری",-1))])]),_:1},8,["onClick"]),s.userId||(C=s.user)!=null&&C.id?(p(),b(R,{key:"user",onClick:G=>{var q;return f(N).push(`/users/${s.userId||((q=s.user)==null?void 0:q.id)}`)}},{default:a(()=>[m("div",Vt,[e(f(xt),{class:"dropdown-item-icon"}),t[19]||(t[19]=m("span",null,"پروفایل کاربر",-1))])]),_:1},8,["onClick"])):L("",!0),s.code?(p(),b(R,{key:"copy",onClick:G=>M(s.code,"کد جایزه")},{default:a(()=>[m("div",Mt,[e(f(bt),{class:"dropdown-item-icon"}),t[20]||(t[20]=m("span",null,"کپی کد دیجیتال",-1))])]),_:1},8,["onClick"])):L("",!0)]}),_:2},1024)]),default:a(()=>[e(i,{type:"text",shape:"circle",class:"action-more-btn",title:"عملیات"},{default:a(()=>[e(f(Ct),{style:{"font-size":"18px"}})]),_:1})]),_:2},1024)):L("",!0)]}),_:1},8,["dataSource","loading","pagination"]),e(dt,{open:E.value,"onUpdate:open":t[8]||(t[8]=o=>E.value=o),title:"تغییر وضعیت پیگیری جایزه برنده",confirmLoading:S.value,okText:"ثبت تغییر وضعیت",cancelText:"انصراف",onOk:Q},{default:a(()=>[e(ut,{layout:"vertical"},{default:a(()=>[e(it,{message:`برنده: ${c.winnerMobile} | جایزه: ${c.prizeTitle}`,type:"info","show-icon":"",style:{"margin-bottom":"16px"}},null,8,["message"]),e(P,{label:"وضعیت جدید",required:""},{default:a(()=>[e(O,{value:c.status,"onUpdate:value":t[6]||(t[6]=o=>c.status=o)},{default:a(()=>[e(u,{value:"NEW"},{default:a(()=>[...t[21]||(t[21]=[r("جدید",-1)])]),_:1}),e(u,{value:"CONTACTED"},{default:a(()=>[...t[22]||(t[22]=[r("تماس گرفته شده (هماهنگی آدرس)",-1)])]),_:1}),e(u,{value:"DELIVERED"},{default:a(()=>[...t[23]||(t[23]=[r("ارسال و تحویل شد",-1)])]),_:1}),e(u,{value:"ACTIVE_CODE"},{default:a(()=>[...t[24]||(t[24]=[r("کد دیجیتال فعال",-1)])]),_:1}),e(u,{value:"USED"},{default:a(()=>[...t[25]||(t[25]=[r("کد مصرف شد",-1)])]),_:1}),e(u,{value:"EXPIRED"},{default:a(()=>[...t[26]||(t[26]=[r("منقضی شد",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),e(P,{label:"یادداشت و توضیحات پیگیری"},{default:a(()=>[e(rt,{value:c.note,"onUpdate:value":t[7]||(t[7]=o=>c.note=o),rows:"3",placeholder:"مثال: کد رهگیری پست: 123456789 یا هماهنگی با کاربر"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirmLoading"])]),_:1})])}}}),Bt=Et(Ft,[["__scopeId","data-v-4e0bbbf1"]]);export{Bt as default};
|