Files
Lucky_Wheel/apps/admin/dist/assets/WinnerListView-FE9kM-NV.js
T
2026-09-10 22:37:29 +03:30

2 lines
10 KiB
JavaScript

import{t as L}from"./farsi-number-stB7JMN0.js";import{d as ue,j as re,a as v,b as m,c as t,w as a,m as I,r as u,h as k,g as q,o as r,f as i,e as f,R as pe,Y as ce,S as me,F as Y,x as fe,t as y,s as b,D as ve,E as ye,U as _e,q as R,C as ge,i as Ce,y as z,_ as ke}from"./index-Dx9ODHpC.js";import{M as be}from"./MoreOutlined-BVlNw6dC.js";const we={class:"winner-list-page"},xe={class:"page-header-title"},Ee={class:"table-header"},Te={class:"filters"},Ie=["onClick"],ze={key:1,class:"user-name"},De={key:2,class:"campaign-cell"},Se={key:3,class:"prize-text"},Ae=["onClick"],Oe={key:1,class:"text-muted"},Ue={key:7,class:"date-cell"},Le={class:"dropdown-action-item"},Re={class:"dropdown-action-item"},Ne={class:"dropdown-action-item"},Ve=ue({__name:"WinnerListView",setup($e){const N=Ce(),x=k(!1),D=k(!1),V=k([]),$=k(0),M=k([]),l=q({page:1,pageSize:10,campaignId:void 0,status:void 0,search:""}),E=k(!1),S=k(!1),c=q({id:"",winnerMobile:"",prizeTitle:"",status:"CONTACTED",note:""});async function G(){var n;try{const e=await I.get("/admin/campaigns",{params:{pageSize:100}});M.value=Array.isArray(e.data)?e.data:((n=e.data)==null?void 0:n.data)||[]}catch{}}async function _(){var n,e,p,T;x.value=!0;try{const g=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}}),d=Array.isArray(g.data)?g.data:((n=g.data)==null?void 0:n.data)||[];V.value=d,$.value=((e=g.meta)==null?void 0:e.total)||((T=(p=g.data)==null?void 0:p.meta)==null?void 0:T.total)||d.length}finally{x.value=!1}}function K(n){var e,p;c.id=n.id,c.winnerMobile=((e=n.user)==null?void 0:e.mobile)||"",c.prizeTitle=((p=n.prize)==null?void 0:p.title)||"",c.status=n.status||"CONTACTED",c.note=n.note||"",E.value=!0}async function J(){S.value=!0;try{await I.patch(`/admin/user-prizes/${c.id}/status`,{status:c.status,note:c.note||void 0}),z.success("وضعیت جایزه برنده با موفقیت به‌روزرسانی شد."),E.value=!1,_()}catch{}finally{S.value=!1}}async function Q(){D.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"}),e=window.URL.createObjectURL(new Blob([n.data])),p=document.createElement("a");p.href=e,p.setAttribute("download",`winners-${Date.now()}.xlsx`),document.body.appendChild(p),p.click(),document.body.removeChild(p),window.URL.revokeObjectURL(e),z.success("فایل اکسل برندگان با موفقیت دانلود شد.")}catch{z.error("خطا در دریافت فایل اکسل برندگان")}finally{D.value=!1}}function W(n,e){navigator.clipboard.writeText(n),z.success(`${e} با موفقیت کپی شد.`)}const Z={DIGITAL_CODE:"کد دیجیتال",PHYSICAL:"کالای فیزیکی",DISCOUNT:"کد تخفیف",CASH:"جایزه نقدی",FREE_CHANCE:"شانس مجدد",CUSTOM:"سفارشی"},ee=[{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:"نوع جایزه",dataIndex:["prize","prizeType"],key:"prizeType"},{title:"کد دیجیتال / پیگیری",dataIndex:"code",key:"code"},{title:"وضعیت پیگیری",dataIndex:"status",key:"status"},{title:"تاریخ برنده شدن",dataIndex:"createdAt",key:"createdAt"},{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 re(()=>{G(),_()}),(n,e)=>{const p=u("a-button"),T=u("a-space"),g=u("a-input-search"),d=u("a-select-option"),O=u("a-select"),B=u("a-tag"),U=u("a-menu-item"),te=u("a-menu"),ae=u("a-dropdown"),oe=u("a-table"),se=u("a-alert"),F=u("a-form-item"),ne=u("a-textarea"),le=u("a-form"),ie=u("a-modal"),de=u("a-card");return r(),v("div",we,[m("div",xe,[e[11]||(e[11]=m("div",null,[m("h1",{class:"title"},"مدیریت برندگان"),m("p",{class:"subtitle"},"پیگیری، تأیید و تغییر وضعیت اهدای جوایز به برندگان")],-1)),t(T,null,{default:a(()=>[t(p,{onClick:_,loading:x.value},{icon:a(()=>[t(f(pe))]),default:a(()=>[e[9]||(e[9]=i(" به‌روزرسانی ",-1))]),_:1},8,["loading"]),t(p,{type:"primary",loading:D.value,onClick:Q},{icon:a(()=>[t(f(ce))]),default:a(()=>[e[10]||(e[10]=i(" خروجی اکسل برندگان ",-1))]),_:1},8,["loading"])]),_:1})]),t(de,{bordered:!1,class:"main-card"},{default:a(()=>[m("div",Ee,[m("div",Te,[t(g,{value:l.search,"onUpdate:value":e[0]||(e[0]=o=>l.search=o),placeholder:"جستجوی موبایل یا نام...",style:{width:"240px"},allowClear:"",onSearch:e[1]||(e[1]=()=>{l.page=1,_()})},{prefix:a(()=>[t(f(me),{style:{color:"#94a3b8","margin-left":"4px"}})]),_:1},8,["value"]),t(O,{value:l.campaignId,"onUpdate:value":e[2]||(e[2]=o=>l.campaignId=o),placeholder:"فیلتر کمپین",allowClear:"",style:{width:"180px"},onChange:e[3]||(e[3]=()=>{l.page=1,_()})},{default:a(()=>[(r(!0),v(Y,null,fe(M.value,o=>(r(),b(d,{key:o.id,value:o.id},{default:a(()=>[i(y(o.title),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),t(O,{value:l.status,"onUpdate:value":e[4]||(e[4]=o=>l.status=o),placeholder:"فیلتر وضعیت",allowClear:"",style:{width:"160px"},onChange:e[5]||(e[5]=()=>{l.page=1,_()})},{default:a(()=>[t(d,{value:"NEW"},{default:a(()=>[...e[12]||(e[12]=[i("جدید",-1)])]),_:1}),t(d,{value:"CONTACTED"},{default:a(()=>[...e[13]||(e[13]=[i("تماس گرفته شده",-1)])]),_:1}),t(d,{value:"DELIVERED"},{default:a(()=>[...e[14]||(e[14]=[i("تحویل شده",-1)])]),_:1}),t(d,{value:"ACTIVE_CODE"},{default:a(()=>[...e[15]||(e[15]=[i("کد فعال",-1)])]),_:1}),t(d,{value:"USED"},{default:a(()=>[...e[16]||(e[16]=[i("مصرف شده",-1)])]),_:1}),t(d,{value:"EXPIRED"},{default:a(()=>[...e[17]||(e[17]=[i("منقضی شده",-1)])]),_:1})]),_:1},8,["value"])])]),t(oe,{dataSource:V.value,columns:ee,loading:x.value,rowKey:"id",size:"middle",pagination:{current:l.page,pageSize:l.pageSize,total:$.value,showTotal:o=>`مجموع: ${f(L)(o)} برنده`,onChange:o=>{l.page=o,_()}}},{bodyCell:a(({column:o,record:s})=>{var P,j,H,X;return[o.key==="mobile"?(r(),v("span",{key:0,class:"mobile-cell user-link",onClick:C=>s.userId?f(N).push(`/users/${s.userId}`):null},y(f(L)((P=s.user)==null?void 0:P.mobile)),9,Ie)):o.key==="name"?(r(),v("span",ze,y(((j=s.user)==null?void 0:j.name)||"—"),1)):o.key==="campaign"?(r(),v("span",De,y(((H=s.campaign)==null?void 0:H.title)||"—"),1)):o.key==="prizeTitle"?(r(),v("span",Se,y((X=s.prize)==null?void 0:X.title),1)):o.key==="prizeType"?(r(),b(B,{key:4},{default:a(()=>{var C,w;return[i(y(Z[(C=s.prize)==null?void 0:C.prizeType]||((w=s.prize)==null?void 0:w.prizeType)||"—"),1)]}),_:2},1024)):o.key==="code"?(r(),v(Y,{key:5},[s.code?(r(),v("code",{key:0,class:"code-badge clickable-code",title:"برای کپی کلیک کنید",onClick:C=>W(s.code,"کد جایزه")},y(s.code),9,Ae)):(r(),v("span",Oe,"—"))],64)):o.key==="status"?(r(),b(B,{key:6,color:A(s.status).color,class:"status-tag"},{default:a(()=>[m("span",{class:"status-dot",style:ve({backgroundColor:A(s.status).dotColor})},null,4),i(" "+y(A(s.status).text),1)]),_:2},1032,["color"])):o.key==="createdAt"?(r(),v("span",Ue,y(f(L)(new Date(s.createdAt).toLocaleString("fa-IR"))),1)):o.key==="actions"?(r(),b(ae,{key:8,trigger:["click"],placement:"bottomLeft"},{overlay:a(()=>[t(te,{class:"action-dropdown-menu"},{default:a(()=>{var C;return[t(U,{key:"status",onClick:w=>K(s)},{default:a(()=>[m("div",Le,[t(f(ye),{class:"dropdown-item-icon"}),e[18]||(e[18]=m("span",null,"تغییر وضعیت پیگیری",-1))])]),_:1},8,["onClick"]),s.userId||(C=s.user)!=null&&C.id?(r(),b(U,{key:"user",onClick:w=>{var h;return f(N).push(`/users/${s.userId||((h=s.user)==null?void 0:h.id)}`)}},{default:a(()=>[m("div",Re,[t(f(_e),{class:"dropdown-item-icon"}),e[19]||(e[19]=m("span",null,"پروفایل کاربر",-1))])]),_:1},8,["onClick"])):R("",!0),s.code?(r(),b(U,{key:"copy",onClick:w=>W(s.code,"کد جایزه")},{default:a(()=>[m("div",Ne,[t(f(ge),{class:"dropdown-item-icon"}),e[20]||(e[20]=m("span",null,"کپی کد دیجیتال",-1))])]),_:1},8,["onClick"])):R("",!0)]}),_:2},1024)]),default:a(()=>[t(p,{type:"text",shape:"circle",class:"action-more-btn",title:"عملیات"},{default:a(()=>[t(f(be),{style:{"font-size":"18px"}})]),_:1})]),_:2},1024)):R("",!0)]}),_:1},8,["dataSource","loading","pagination"]),t(ie,{open:E.value,"onUpdate:open":e[8]||(e[8]=o=>E.value=o),title:"تغییر وضعیت پیگیری جایزه برنده",confirmLoading:S.value,okText:"ثبت تغییر وضعیت",cancelText:"انصراف",onOk:J},{default:a(()=>[t(le,{layout:"vertical"},{default:a(()=>[t(se,{message:`برنده: ${c.winnerMobile} | جایزه: ${c.prizeTitle}`,type:"info","show-icon":"",style:{"margin-bottom":"16px"}},null,8,["message"]),t(F,{label:"وضعیت جدید",required:""},{default:a(()=>[t(O,{value:c.status,"onUpdate:value":e[6]||(e[6]=o=>c.status=o)},{default:a(()=>[t(d,{value:"NEW"},{default:a(()=>[...e[21]||(e[21]=[i("جدید",-1)])]),_:1}),t(d,{value:"CONTACTED"},{default:a(()=>[...e[22]||(e[22]=[i("تماس گرفته شده (هماهنگی آدرس)",-1)])]),_:1}),t(d,{value:"DELIVERED"},{default:a(()=>[...e[23]||(e[23]=[i("ارسال و تحویل شد",-1)])]),_:1}),t(d,{value:"ACTIVE_CODE"},{default:a(()=>[...e[24]||(e[24]=[i("کد دیجیتال فعال",-1)])]),_:1}),t(d,{value:"USED"},{default:a(()=>[...e[25]||(e[25]=[i("کد مصرف شد",-1)])]),_:1}),t(d,{value:"EXPIRED"},{default:a(()=>[...e[26]||(e[26]=[i("منقضی شد",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),t(F,{label:"یادداشت و توضیحات پیگیری"},{default:a(()=>[t(ne,{value:c.note,"onUpdate:value":e[7]||(e[7]=o=>c.note=o),rows:"3",placeholder:"مثال: کد رهگیری پست: 123456789 یا هماهنگی با کاربر"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirmLoading"])]),_:1})])}}}),Fe=ke(Ve,[["__scopeId","data-v-b623e0ea"]]);export{Fe as default};