game/nginx/admin/assets/ActivityAnalysisDrawer-C_7KPjWt.js
2026-04-20 16:07:22 +08:00

2 lines
6.9 KiB
JavaScript

import{d as t,r as a,c as e,h as s,e as l,w as i,N as r,b as o,i as n,f as c,v as u,q as d,g as v,p,b2 as m,T as y}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 */import{f as x}from"./operations-Cr4YfoRu.js";import{b,c as g}from"./activityEnums-zI8yOqFS.js";import{E as f,a as w}from"./index-BjuMygln.js";import{E as j}from"./index-ClDjAOOe.js";import{E as h}from"./index-B18-crhn.js";import{_}from"./_plugin-vue_export-helper-BCo6x5W8.js";import"./index-Cp4NEpJ7.js";import"./index-BMeOzN3u.js";import"./index-COyGylbk.js";import"./index-Bq8lawOo.js";import"./_initCloneObject-DRmC-q3t.js";import"./isArrayLikeObject-CFQi-X2M.js";import"./raf-DsHSIRfX.js";import"./_baseIteratee-CtIat01j.js";import"./castArray-nM8ho4U3.js";import"./debounce-DQl5eUwG.js";import"./index-D8nVJoNy.js";import"./index-CXORCV4U.js";import"./use-dialog-FwJ-QdmW.js";const C={class:"analysis-content"},z={key:0,class:"overview-cards"},D={class:"card-item"},k={class:"card-value text-primary"},P={class:"card-sub"},L={class:"font-medium"},A={class:"card-item"},F={class:"card-value text-danger"},Q={class:"card-sub"},E={class:"font-medium"},V={class:"card-item"},M={class:"card-sub"},N={class:"card-item"},T={class:"card-value text-info"},I={class:"card-sub"},O={class:"font-medium"},S={key:1,class:"prize-table-section mt-6"},U={class:"section-header mb-3 flex justify-between items-center"},q={class:"text-sm text-gray-500"},W={class:"flex items-center"},X={class:"font-medium"},B={class:"text-xs text-gray-500"},G={class:"font-medium"},H={class:"space-y-1"},J={class:"flex justify-between text-xs"},K={class:"text-gray-500"},R={class:"space-y-1"},Y={class:"flex justify-between text-xs"},Z={class:"text-xs"},$={class:"font-medium"},tt={key:2,class:"empty-state py-12 text-center text-gray-400"},at=_(t({__name:"ActivityAnalysisDrawer",setup(t,{expose:_}){const at=a(!1),et=a(!1),st=a(null),lt=e(()=>st.value?st.value.activity.priceDraw*st.value.activity.totalDraws/100:0),it=e(()=>{if(!st.value)return 0;return lt.value-st.value.summary.totalCost/100}),rt=e(()=>{if(!st.value)return 0;const t=lt.value;return t<=0?0:it.value/t*100}),ot=e(()=>st.value&&0!==st.value.activity.totalDraws?st.value.summary.totalCost/st.value.activity.totalDraws:0),nt=e(()=>st.value&&0!==st.value.activity.totalParticipants?(st.value.activity.totalDraws/st.value.activity.totalParticipants).toFixed(1):0),ct=e(()=>{var t;return(null==(t=st.value)?void 0:t.prizes)?[...st.value.prizes].sort((t,a)=>t.prizeLevel-a.prizeLevel):[]}),ut=t=>t.toLocaleString("zh-CN",{maximumFractionDigits:2}),dt=t=>g(t);return _({open:t=>{return a=this,e=null,s=function*(){at.value=!0,et.value=!0,st.value=null;try{const a=yield x(t);st.value=a}catch(a){y.error("获取分析数据失败")}finally{et.value=!1}},new Promise((t,l)=>{var i=t=>{try{o(s.next(t))}catch(a){l(a)}},r=t=>{try{o(s.throw(t))}catch(a){l(a)}},o=a=>a.done?t(a.value):Promise.resolve(a.value).then(i,r);o((s=s.apply(a,e)).next())});var a,e,s}}),(t,a)=>{const e=w,y=j,x=f,g=h,_=m;return l(),s(g,{modelValue:at.value,"onUpdate:modelValue":a[0]||(a[0]=t=>at.value=t),title:"活动数据分析",size:"80%","destroy-on-close":!0,class:"activity-analysis-drawer"},{default:i(()=>[r((l(),o("div",C,[st.value?(l(),o("div",z,[c("div",D,[a[2]||(a[2]=c("div",{class:"card-label"},"总营收 (元)",-1)),c("div",k,"¥"+u(ut(lt.value)),1),c("div",P,[a[1]||(a[1]=c("span",{class:"text-gray"},"总抽奖次数: ",-1)),c("span",L,u(ut(st.value.activity.totalDraws)),1)])]),c("div",A,[a[4]||(a[4]=c("div",{class:"card-label"},"总成本 (元)",-1)),c("div",F,"¥"+u(ut(st.value.summary.totalCost/100)),1),c("div",Q,[a[3]||(a[3]=c("span",{class:"text-gray"},"单次抽奖成本: ",-1)),c("span",E,"¥"+u(ut(ot.value/100)),1)])]),c("div",V,[a[6]||(a[6]=c("div",{class:"card-label"},"毛利润 (元)",-1)),c("div",{class:d(["card-value",it.value>=0?"text-success":"text-danger"])}," ¥"+u(ut(it.value)),3),c("div",M,[a[5]||(a[5]=c("span",{class:"text-gray"},"利润率: ",-1)),c("span",{class:d(["font-medium",rt.value>=0?"text-success":"text-danger"])},u(rt.value.toFixed(2))+"% ",3)])]),c("div",N,[a[8]||(a[8]=c("div",{class:"card-label"},"参与人数",-1)),c("div",T,u(ut(st.value.activity.totalParticipants)),1),c("div",I,[a[7]||(a[7]=c("span",{class:"text-gray"},"人均抽奖: ",-1)),c("span",O,u(nt.value)+" 次",1)])])])):n("",!0),st.value?(l(),o("div",S,[c("div",U,[a[9]||(a[9]=c("h3",{class:"text-lg font-medium"},"奖品出货分析",-1)),c("div",q," 统计时间: "+u((new Date).toLocaleString()),1)]),v(x,{data:ct.value,style:{width:"100%"},border:"",stripe:""},{default:i(()=>[v(e,{label:"奖品信息","min-width":"180"},{default:i(({row:t})=>{return[c("div",W,[c("span",{class:d(["level-badge mr-2",(a=t.prizeLevel,{1:"bg-pink-100 text-pink-600",2:"bg-red-100 text-red-600",3:"bg-orange-100 text-orange-600",4:"bg-yellow-100 text-yellow-600",5:"bg-green-100 text-green-600",6:"bg-cyan-100 text-cyan-600",7:"bg-blue-100 text-blue-600",8:"bg-indigo-100 text-indigo-600",9:"bg-gray-100 text-gray-600",11:"bg-purple-100 text-purple-600"}[a]||"bg-gray-100 text-gray-600")])},u(dt(t.prizeLevel)),3),c("div",null,[c("div",X,u(t.prizeName),1),c("div",B,u(p(b)(t.prizeType)),1)])])];var a}),_:1}),v(e,{label:"价值/成本",width:"120",align:"right"},{default:i(({row:t})=>[c("div",G,"¥"+u(ut(t.prizeValue/100)),1)]),_:1}),v(e,{label:"概率对比","min-width":"200"},{default:i(({row:t})=>{return[c("div",H,[c("div",J,[c("span",K,"配置: "+u(t.probability.toFixed(2))+"%",1),c("span",{class:d(["font-medium",(a=t.actualProbability,e=t.probability,Math.abs(a-e)<=.1?"text-success":a>e?"text-danger":"text-primary")])},"实际: "+u(t.actualProbability.toFixed(2))+"%",3)]),v(y,{percentage:Math.min(t.actualProbability/Math.max(t.probability,.01)*50,100),color:t.actualProbability>t.probability?"#F56C6C":"#67C23A","stroke-width":6,"show-text":!1},null,8,["percentage","color"])])];var a,e}),_:1}),v(e,{label:"发放进度","min-width":"180"},{default:i(({row:t})=>[c("div",R,[c("div",Y,[c("span",null,"已发: "+u(t.winCount),1),c("span",null,"总数: "+u(t.totalQuantity),1)]),v(y,{percentage:t.totalQuantity>0?t.winCount/t.totalQuantity*100:0,status:t.totalQuantity-t.winCount<10&&t.totalQuantity-t.winCount>0?"exception":"","stroke-width":6},{default:i(({percentage:a})=>[c("span",Z,u(t.totalQuantity-t.winCount)+" 剩余",1)]),_:2},1032,["percentage","status"])])]),_:1}),v(e,{label:"营收贡献",width:"150",align:"right"},{default:i(({row:t})=>[a[10]||(a[10]=c("div",{class:"text-xs text-gray-500"},"消耗库存价值",-1)),c("div",$,"¥"+u(ut(t.cost*t.winCount/100)),1)]),_:1})]),_:1},8,["data"])])):n("",!0),st.value||et.value?n("",!0):(l(),o("div",tt," 暂无数据 "))])),[[_,et.value]])]),_:1},8,["modelValue"])}}}),[["__scopeId","data-v-38548ddb"]]);export{at as default};