game/nginx/admin/assets/activity-profit-loss-QBBuvhKV.js
2026-04-20 16:07:22 +08:00

2 lines
13 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var e=(e,t,a)=>new Promise((l,s)=>{var i=e=>{try{r(a.next(e))}catch(t){s(t)}},o=e=>{try{r(a.throw(e))}catch(t){s(t)}},r=e=>e.done?l(e.value):Promise.resolve(e.value).then(i,o);r((a=a.apply(e,t)).next())});import{d as t,r as a,k as l,o as s,b as i,e as o,f as r,g as n,N as d,i as p,K as u,P as c,w as m,E as f,j as x,b2 as v,I as _,J as g,v as y,h as b,q as j,T as h}from"./index-BoIUJTA2.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{E as w}from"./el-empty-CV-PB2A2.js";/* empty css */import{f as k,a as z}from"./dashboard-Csmn9wla.js";import{E as V,a as C}from"./index-D2gD5Tn5.js";import{E as F}from"./index-C1haaLtB.js";import{E}from"./index-CjpBlozU.js";import{E as U,a as I}from"./index-BjuMygln.js";import{E as K}from"./index-DvejFoOw.js";import{E as P}from"./index-BjQJlHTd.js";import{E as q}from"./index-ZsMdSUVI.js";import{_ as A}from"./_plugin-vue_export-helper-BCo6x5W8.js";import"./index-BMeOzN3u.js";import"./index-COyGylbk.js";import"./index-Bq8lawOo.js";import"./index-Cp4NEpJ7.js";import"./token-DWNpOE8r.js";import"./castArray-nM8ho4U3.js";import"./debounce-DQl5eUwG.js";import"./_baseIteratee-CtIat01j.js";import"./index-CXORCV4U.js";import"./use-dialog-FwJ-QdmW.js";import"./refs-Cw5r5QN8.js";import"./_initCloneObject-DRmC-q3t.js";import"./isArrayLikeObject-CFQi-X2M.js";import"./raf-DsHSIRfX.js";import"./index-D8nVJoNy.js";import"./index-1OHUSGeP.js";const D={class:"activity-profit-loss"},T={class:"art-card h-auto min-h-[450px] p-5 max-sm:mb-4 relative z-0"},O={class:"art-card-header"},S={class:"extra flex items-center gap-4"},B={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mt-4"},J=["onClick"],L={class:"flex justify-between items-start mb-4"},N={class:"flex-1"},Q={class:"flex items-center gap-2 mb-1"},X={class:"text-xs text-g-400"},$={class:"text-base font-bold text-g-800 line-clamp-1 group-hover:text-primary transition-colors"},G={class:"text-right"},H={class:"grid grid-cols-2 gap-3 mb-4"},M={class:"stat-item flex-1"},R={class:"text-lg font-black font-mono text-g-900"},W={class:"flex gap-2 mt-1 text-[10px] transform scale-95 origin-left"},Y={key:0,class:"text-green-600 bg-green-50 px-1 rounded",title:"现金/优惠券抽奖"},Z={key:1,class:"text-blue-600 bg-blue-50 px-1 rounded",title:"次卡抽奖"},ee={key:2,class:"text-red-500 bg-red-50 px-1 rounded",title:"退款/取消"},te={class:"stat-item"},ae={class:"text-lg font-black font-mono text-g-900"},le={class:"space-y-2"},se={class:"flex justify-between items-center text-sm"},ie={class:"font-bold font-mono text-g-900"},oe={key:0,class:"flex justify-between items-center text-sm"},re={class:"font-bold font-mono text-orange-500"},ne={key:1,class:"flex justify-between items-center text-sm"},de={class:"font-bold font-mono text-blue-500"},pe={class:"flex justify-between items-center text-sm"},ue={class:"font-bold font-mono text-g-700"},ce={class:"flex justify-between items-center pt-2 border-t border-dashed border-g-200"},me={key:0,class:"py-20 text-center"},fe={class:"mt-6 flex justify-end"},xe={class:"detail-filter-row"},ve={class:"text-xs text-g-500"},_e={class:"flex items-center"},ge={class:"text-sm font-bold"},ye={class:"text-[10px] text-g-400 ml-1"},be={class:"text-xs text-g-500 font-mono"},je={class:"flex items-center"},he={class:"text-sm mr-2"},we={class:"flex flex-col gap-1"},ke={class:"flex items-center gap-2"},ze={class:"font-mono font-bold text-base"},Ve={class:"flex items-center gap-1 flex-wrap"},Ce={class:"font-mono text-g-500"},Fe={class:"flex justify-end mt-4"},Ee=A(t({__name:"activity-profit-loss",setup(t){const A=a(!1),Ee=a([]),Ue=a(0),Ie=l({page:1,page_size:9,name:"",status:0,sort_by:""}),Ke=()=>{Ie.page=1,Pe()},Pe=()=>e(this,null,function*(){A.value=!0;try{const e=yield k(Ie);Ee.value=e.list||[],Ue.value=e.total}catch(e){h.error("获取活动盈亏数据失败: "+(e.message||"未知错误"))}finally{A.value=!1}}),qe=a(!1),Ae=a(!1),De=a(null),Te=a([]),Oe=a(1),Se=a(10),Be=a(0),Je=a(""),Le=a(""),Ne=()=>e(this,null,function*(){if(De.value){Ae.value=!0;try{const e=yield z(De.value.activity_id,Oe.value,Se.value,void 0,{playerKeyword:Je.value,prizeKeyword:Le.value});Te.value=e.list||[],Be.value=e.total}catch(e){h.error("获取抽奖详情失败")}finally{Ae.value=!1}}}),Qe=()=>{Oe.value=1,Ne()},Xe=()=>{Je.value="",Le.value="",Oe.value=1,Ne()};return s(()=>{Pe()}),(e,t)=>{var a;const l=u,s=C,h=V,k=f,z=q,$e=w,Ge=F,He=I,Me=K,Re=P,We=U,Ye=E,Ze=v;return o(),i("div",D,[r("div",T,[r("div",O,[t[11]||(t[11]=r("div",{class:"title"},[r("h4",null,"活动盈亏分析"),r("p",null,"分析各活动营收、成本及盈利表现")],-1)),r("div",S,[n(l,{modelValue:Ie.name,"onUpdate:modelValue":t[0]||(t[0]=e=>Ie.name=e),placeholder:"搜索活动名称",clearable:"",size:"small",style:{width:"180px"},onKeyup:c(Ke,["enter"])},{prefix:m(()=>[...t[9]||(t[9]=[r("i",{class:"ri-search-line"},null,-1)])]),_:1},8,["modelValue"]),n(h,{modelValue:Ie.status,"onUpdate:modelValue":t[1]||(t[1]=e=>Ie.status=e),placeholder:"属性",clearable:"",size:"small",style:{width:"100px"},onChange:Ke},{default:m(()=>[n(s,{label:"全部状态",value:0}),n(s,{label:"进行中",value:1}),n(s,{label:"已结束",value:2})]),_:1},8,["modelValue"]),n(h,{modelValue:Ie.sort_by,"onUpdate:modelValue":t[2]||(t[2]=e=>Ie.sort_by=e),placeholder:"排序",size:"small",style:{width:"120px"},onChange:Ke},{default:m(()=>[n(s,{label:"默认排序",value:""}),n(s,{label:"盈利最高",value:"profit"}),n(s,{label:"亏损最多",value:"profit_asc"}),n(s,{label:"盈利率",value:"profit_rate"}),n(s,{label:"抽奖次数",value:"draw_count"})]),_:1},8,["modelValue"]),n(k,{type:"primary",size:"small",onClick:Ke},{default:m(()=>[...t[10]||(t[10]=[r("i",{class:"ri-refresh-line mr-1"},null,-1),x(" 刷新 ",-1)])]),_:1})])]),d((o(),i("div",B,[(o(!0),i(_,null,g(Ee.value,e=>(o(),i("div",{key:e.activity_id,class:"profit-card cursor-pointer",onClick:t=>(e=>{De.value=e,Oe.value=1,Je.value="",Le.value="",qe.value=!0,Ne()})(e)},[r("div",L,[r("div",N,[r("div",Q,[n(z,{type:1===e.status?"success":"info",size:"small",effect:"dark"},{default:m(()=>[x(y(1===e.status?"进行中":"已结束"),1)]),_:2},1032,["type"]),r("span",X,"ID: "+y(e.activity_id),1)]),r("h5",$,y(e.activity_name),1)]),r("div",G,[r("div",{class:j(["text-2xl font-black font-mono tracking-tighter",e.profit>0?"text-red-500":e.profit<0?"text-green-500":"text-g-500"])},y(e.profit>0?"+":"")+y(((e.profit||0)/100).toFixed(2)),3),t[12]||(t[12]=r("div",{class:"text-[10px] uppercase font-bold text-g-400 mt-1"},"净盈亏 (元)",-1))])]),r("div",H,[r("div",M,[t[13]||(t[13]=r("div",{class:"text-xs text-g-500 mb-1"},"抽奖次数",-1)),r("div",R,y(e.draw_count),1),r("div",W,[e.payment_count>0?(o(),i("span",Y," 钱"+y(e.payment_count),1)):p("",!0),e.game_pass_count>0?(o(),i("span",Z," 卡"+y(e.game_pass_count),1)):p("",!0),e.refund_count>0?(o(),i("span",ee," 退"+y(e.refund_count),1)):p("",!0)])]),r("div",te,[t[14]||(t[14]=r("div",{class:"text-xs text-g-500 mb-1"},"参与人数",-1)),r("div",ae,y(e.player_count),1)])]),r("div",le,[r("div",se,[t[15]||(t[15]=r("span",{class:"text-g-500"},"现金收入",-1)),r("span",ie,"¥"+y(((e.total_revenue||0)/100).toFixed(2)),1)]),e.total_discount>0?(o(),i("div",oe,[t[16]||(t[16]=r("span",{class:"text-g-500"},"优惠券抵扣",-1)),r("span",re,"¥"+y(((e.total_discount||0)/100).toFixed(2)),1)])):p("",!0),e.total_game_pass_value>0?(o(),i("div",ne,[t[17]||(t[17]=r("span",{class:"text-g-500"},"次卡价值",-1)),r("span",de,"¥"+y(((e.total_game_pass_value||0)/100).toFixed(2)),1)])):p("",!0),r("div",pe,[t[18]||(t[18]=r("span",{class:"text-g-500"},"产出成本",-1)),r("span",ue,"¥"+y(((e.total_cost||0)/100).toFixed(2)),1)]),r("div",ce,[t[19]||(t[19]=r("span",{class:"text-g-500 font-medium"},"盈利率",-1)),r("span",{class:j(["font-black text-sm",e.profit_rate>0?"text-red-500":e.profit_rate<0?"text-green-500":"text-g-500"])},y((100*e.profit_rate).toFixed(2))+"% ",3)])])],8,J))),128))])),[[Ze,A.value]]),0!==Ee.value.length||A.value?p("",!0):(o(),i("div",me,[n($e,{description:"暂无活动数据"})])),r("div",fe,[n(Ge,{"current-page":Ie.page,"onUpdate:currentPage":t[3]||(t[3]=e=>Ie.page=e),"page-size":Ie.page_size,"onUpdate:pageSize":t[4]||(t[4]=e=>Ie.page_size=e),total:Ue.value,layout:"total, prev, pager, next",background:"",onCurrentChange:Pe},null,8,["current-page","page-size","total"])])]),n(Ye,{modelValue:qe.value,"onUpdate:modelValue":t[8]||(t[8]=e=>qe.value=e),title:`抽奖记录 - ${null==(a=De.value)?void 0:a.activity_name}`,width:"80%","destroy-on-close":""},{default:m(()=>[d((o(),i("div",null,[r("div",xe,[n(l,{modelValue:Je.value,"onUpdate:modelValue":t[5]||(t[5]=e=>Je.value=e),placeholder:"搜索玩家(昵称 / ID / 手机号)",clearable:"",size:"small",class:"filter-input",onKeyup:c(Qe,["enter"])},null,8,["modelValue"]),n(l,{modelValue:Le.value,"onUpdate:modelValue":t[6]||(t[6]=e=>Le.value=e),placeholder:"搜索奖品(名称 / ID",clearable:"",size:"small",class:"filter-input",onKeyup:c(Qe,["enter"])},null,8,["modelValue"]),n(k,{type:"primary",size:"small",onClick:Qe},{default:m(()=>[...t[20]||(t[20]=[x("查询",-1)])]),_:1}),n(k,{size:"small",onClick:Xe},{default:m(()=>[...t[21]||(t[21]=[x("重置",-1)])]),_:1})]),n(We,{data:Te.value,style:{width:"100%"},height:"500px"},{default:m(()=>[n(He,{label:"抽奖时间",width:"170"},{default:m(({row:e})=>{return[r("span",ve,y((t=e.created_at,t?t.replace("T"," ").replace(/\.\d+/,"").slice(0,19):"-")),1)];var t}),_:1}),n(He,{label:"玩家","min-width":"150"},{default:m(({row:e})=>[r("div",_e,[n(Me,{size:24,src:e.avatar,class:"mr-2"},null,8,["src"]),r("span",ge,y(e.nickname),1),r("span",ye,"("+y(e.user_id)+")",1)])]),_:1}),n(He,{label:"订单号","min-width":"140"},{default:m(({row:e})=>[r("span",be,y(e.order_no||"-"),1)]),_:1}),n(He,{label:"中奖产品","min-width":"250"},{default:m(({row:e})=>[r("div",je,[n(Re,{src:e.product_image,class:"w-8 h-8 rounded mr-2",fit:"cover"},null,8,["src"]),r("span",he,y(e.product_name),1),n(z,{size:"small",type:(e.product_quantity||1)>1?"primary":"info",effect:"plain",class:"font-bold"},{default:m(()=>[x(" x"+y(e.product_quantity||1),1)]),_:2},1032,["type"])])]),_:1}),n(He,{label:"支付详情","min-width":"300"},{default:m(({row:e})=>{var a,l,s,i,n;return[r("div",we,[r("div",ke,[r("span",ze,"¥"+y((e.order_amount/100).toFixed(2)),1),4===e.order_status?(o(),b(z,{key:0,type:"danger",size:"small",effect:"dark"},{default:m(()=>[...t[22]||(t[22]=[x("已退款",-1)])]),_:1})):3===e.order_status?(o(),b(z,{key:1,type:"info",size:"small",effect:"dark"},{default:m(()=>[...t[23]||(t[23]=[x("已取消",-1)])]),_:1})):p("",!0)]),r("div",Ve,[e.order_amount>0&&!(null==(a=e.payment_details)?void 0:a.game_pass_used)?(o(),b(z,{key:0,type:"success",size:"small",effect:"plain"},{default:m(()=>[t[24]||(t[24]=r("i",{class:"ri-money-cny-circle-line mr-1"},null,-1)),x("现金 ¥"+y((e.order_amount/100).toFixed(2)),1)]),_:2},1024)):p("",!0),(null==(l=e.payment_details)?void 0:l.coupon_used)?(o(),b(z,{key:1,type:"warning",size:"small",effect:"plain"},{default:m(()=>[t[25]||(t[25]=r("i",{class:"ri-coupon-3-line mr-1"},null,-1)),x(y(e.payment_details.coupon_name||"优惠券")+" -¥"+y((e.payment_details.coupon_discount/100).toFixed(2)),1)]),_:2},1024)):p("",!0),(null==(s=e.payment_details)?void 0:s.item_card_used)?(o(),b(z,{key:2,type:"primary",size:"small",effect:"plain"},{default:m(()=>[t[26]||(t[26]=r("i",{class:"ri-vip-crown-line mr-1"},null,-1)),x(y(e.payment_details.item_card_name||"道具卡"),1)]),_:2},1024)):p("",!0),(null==(i=e.payment_details)?void 0:i.game_pass_used)?(o(),b(z,{key:3,size:"small",effect:"plain"},{default:m(()=>[t[27]||(t[27]=r("i",{class:"ri-ticket-2-line mr-1"},null,-1)),x(y(e.payment_details.game_pass_info||"次数卡"),1)]),_:2},1024)):p("",!0),(null==(n=e.payment_details)?void 0:n.points_used)?(o(),b(z,{key:4,type:"success",size:"small",effect:"plain"},{default:m(()=>[t[28]||(t[28]=r("i",{class:"ri-coin-line mr-1"},null,-1)),x("积分 -¥"+y((e.payment_details.points_discount/100).toFixed(2)),1)]),_:2},1024)):p("",!0)])])]}),_:1}),n(He,{label:"产品成本",width:"120",align:"right"},{default:m(({row:e})=>[r("span",Ce,"¥"+y((e.product_price/100).toFixed(2)),1)]),_:1}),n(He,{label:"本单盈亏",width:"120",align:"right"},{default:m(({row:e})=>[r("span",{class:j(["font-mono font-bold",e.profit>0?"text-red-500":e.profit<0?"text-green-500":"text-g-500"])},y(e.profit>0?"+":"")+y((e.profit/100).toFixed(2)),3)]),_:1})]),_:1},8,["data"]),r("div",Fe,[n(Ge,{"current-page":Oe.value,"onUpdate:currentPage":t[7]||(t[7]=e=>Oe.value=e),"page-size":Se.value,total:Be.value,layout:"prev, pager, next",onCurrentChange:Ne},null,8,["current-page","page-size","total"])])])),[[Ze,Ae.value]])]),_:1},8,["modelValue","title"])])}}}),[["__scopeId","data-v-4afd189b"]]);export{Ee as default};