feat(admin): 新增管理后台前端资源文件 feat(api): 实现获取用户统计数据的API接口 - 添加获取用户道具卡数量、优惠券数量和积分余额的接口 - 实现设置默认地址和删除地址的接口 feat(service): 新增用户统计服务方法 - 实现GetUserStats方法查询用户统计数据 - 添加地址管理相关服务方法 fix(core): 修复静态资源路由问题 - 调整静态资源路由配置 - 优化404路由处理逻辑 chore: 更新前端构建配置 - 添加Windows平台构建命令 - 更新README构建说明
2 lines
23 KiB
JavaScript
2 lines
23 KiB
JavaScript
var e=Object.defineProperty,t=Object.defineProperties,s=Object.getOwnPropertyDescriptors,a=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,r=(t,s,a)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[s]=a,n=(e,t)=>{for(var s in t||(t={}))l.call(t,s)&&r(e,s,t[s]);if(a)for(var s of a(t))i.call(t,s)&&r(e,s,t[s]);return e},o=(e,a)=>t(e,s(a));import{d as u,by as d,X as c,J as p,a9 as m,ai as v,a3 as y,a2 as f,ak as g,_ as b,e as _,u as x,f as h,h as k,F as w,G as j,y as $,p as C,bP as S,aY as z,c as I,k as D,i as E,j as N,l as A,m as O,a7 as P,ap as B,aq as W,b5 as q,E as M,z as V,g as F,a as G,r as J,w as L,aV as R,O as U}from"./index-ip5gDR6L.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{_ as Y}from"./index.vue_vue_type_script_setup_true_lang-CCGboj8m.js";import{E as K}from"./index-DbRz3Zuu.js";import{E as T}from"./index-opP5No9I.js";import{E as X}from"./index-BBSYL4g8.js";import{g as H,f as Q}from"./vnode-6FKeug3R.js";import{u as Z}from"./use-form-common-props-BwBs_jod.js";import{E as ee}from"./index-CGPOeeHR.js";import{E as te}from"./index-D1xXI5gl.js";import{E as se}from"./index-Ca1H-sCf.js";import{E as ae}from"./index-D5xppMej.js";import{a as le,E as ie}from"./index-B1PFnxt8.js";import{E as re}from"./index-DQ5yxWeA.js";import{_ as ne}from"./_plugin-vue_export-helper-BCo6x5W8.js";const oe=Symbol("elDescriptions");var ue=u({name:"ElDescriptionsCell",props:{cell:{type:Object},tag:{type:String,default:"td"},type:{type:String}},setup:()=>({descriptions:y(oe,{})}),render(){var e;const t=H(this.cell),s=((null==(e=this.cell)?void 0:e.dirs)||[]).map(e=>{const{dir:t,arg:s,modifiers:a,value:l}=e;return[t,l,s,a]}),{border:a,direction:l}=this.descriptions,i="vertical"===l,r=()=>{var e,s,a;return(null==(a=null==(s=null==(e=this.cell)?void 0:e.children)?void 0:s.label)?void 0:a.call(s))||t.label},n=()=>{var e,t,s;return null==(s=null==(t=null==(e=this.cell)?void 0:e.children)?void 0:t.default)?void 0:s.call(t)},o=t.span,u=t.rowspan,y=t.align?`is-${t.align}`:"",f=t.labelAlign?`is-${t.labelAlign}`:y,g=t.className,b=t.labelClassName,_="label"===this.type&&(t.labelWidth||this.descriptions.labelWidth)||t.width,x={width:d(_),minWidth:d(t.minWidth)},h=c("descriptions");switch(this.type){case"label":return p(m(this.tag,{style:x,class:[h.e("cell"),h.e("label"),h.is("bordered-label",a),h.is("vertical-label",i),f,b],colSpan:i?o:1,rowspan:i?1:u},r()),s);case"content":return p(m(this.tag,{style:x,class:[h.e("cell"),h.e("content"),h.is("bordered-content",a),h.is("vertical-content",i),y,g],colSpan:i?o:2*o-1,rowspan:i?2*u-1:u},n()),s);default:{const e=r(),a={},l=d(t.labelWidth||this.descriptions.labelWidth);return l&&(a.width=l,a.display="inline-block"),p(m("td",{style:x,class:[h.e("cell"),y],colSpan:o,rowspan:u},[v(e)?void 0:m("span",{style:a,class:[h.e("label"),b]},e),m("span",{class:[h.e("content"),g]},n())]),s)}}}});const de=f({row:{type:g(Array),default:()=>[]}}),ce=u({name:"ElDescriptionsRow"});var pe=b(u(o(n({},ce),{props:de,setup(e){const t=y(oe,{});return(e,s)=>"vertical"===x(t).direction?(h(),_(w,{key:0},[k("tr",null,[(h(!0),_(w,null,j(e.row,(e,t)=>(h(),$(x(ue),{key:`tr1-${t}`,cell:e,tag:"th",type:"label"},null,8,["cell"]))),128))]),k("tr",null,[(h(!0),_(w,null,j(e.row,(e,t)=>(h(),$(x(ue),{key:`tr2-${t}`,cell:e,tag:"td",type:"content"},null,8,["cell"]))),128))])],64)):(h(),_("tr",{key:1},[(h(!0),_(w,null,j(e.row,(e,s)=>(h(),_(w,{key:`tr3-${s}`},[x(t).border?(h(),_(w,{key:0},[C(x(ue),{cell:e,tag:"td",type:"label"},null,8,["cell"]),C(x(ue),{cell:e,tag:"td",type:"content"},null,8,["cell"])],64)):(h(),$(x(ue),{key:1,cell:e,tag:"td",type:"both"},null,8,["cell"]))],64))),128))]))}})),[["__file","descriptions-row.vue"]]);const me=f({border:Boolean,column:{type:Number,default:3},direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},size:S,title:{type:String,default:""},extra:{type:String,default:""},labelWidth:{type:[String,Number],default:""}}),ve="ElDescriptionsItem",ye=u({name:"ElDescriptions"});var fe=b(u(o(n({},ye),{props:me,setup(e){const t=e,s=c("descriptions"),a=Z(),l=z();P(oe,t);const i=I(()=>[s.b(),s.m(a.value)]),r=(e,t,s,a=!1)=>(e.props||(e.props={}),t>s&&(e.props.span=s),a&&(e.props.span=t),e),n=()=>{if(!l.default)return[];const e=Q(l.default()).filter(e=>{var t;return(null==(t=null==e?void 0:e.type)?void 0:t.name)===ve}),s=[];let a=[],i=t.column,n=0;const o=[];return e.forEach((l,u)=>{var d,c,p;const m=(null==(d=l.props)?void 0:d.span)||1,v=(null==(c=l.props)?void 0:c.rowspan)||1,y=s.length;if(o[y]||(o[y]=0),v>1)for(let e=1;e<v;e++)o[p=y+e]||(o[p]=0),o[y+e]++,n++;if(o[y]>0&&(i-=o[y],o[y]=0),u<e.length-1&&(n+=m>i?i:m),u===e.length-1){const e=t.column-n%t.column;return a.push(r(l,e,i,!0)),void s.push(a)}m<i?(i-=m,a.push(l)):(a.push(r(l,m,i)),s.push(a),i=t.column,a=[])}),s};return(e,t)=>(h(),_("div",{class:E(x(i))},[e.title||e.extra||e.$slots.title||e.$slots.extra?(h(),_("div",{key:0,class:E(x(s).e("header"))},[k("div",{class:E(x(s).e("title"))},[N(e.$slots,"title",{},()=>[A(O(e.title),1)])],2),k("div",{class:E(x(s).e("extra"))},[N(e.$slots,"extra",{},()=>[A(O(e.extra),1)])],2)],2)):D("v-if",!0),k("div",{class:E(x(s).e("body"))},[k("table",{class:E([x(s).e("table"),x(s).is("bordered",e.border)])},[k("tbody",null,[(h(!0),_(w,null,j(n(),(e,t)=>(h(),$(pe,{key:t,row:e},null,8,["row"]))),128))])],2)],2)],2))}})),[["__file","description.vue"]]);const ge=["left","center","right"],be=f({label:{type:String,default:""},span:{type:Number,default:1},rowspan:{type:Number,default:1},width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},labelWidth:{type:[String,Number],default:""},align:{type:String,values:ge,default:"left"},labelAlign:{type:String,values:ge},className:{type:String,default:""},labelClassName:{type:String,default:""}}),_e=u({name:ve,props:be}),xe=B(fe,{DescriptionsItem:_e}),he=W(_e);function ke(e){return q.get({url:"admin/users",params:e})}function we(e,t){return q.get({url:`admin/users/${e}/orders`,params:t})}function je(e,t){return q.get({url:`admin/users/${e}/coupons`,params:t})}function $e(e,t){return q.get({url:`admin/users/${e}/points`,params:t})}function Ce(e,t){return q.get({url:`admin/users/${e}/inventory`,params:t})}function Se(e,t){return q.get({url:`admin/users/${e}/item_cards`,params:t})}function ze(e,t){return q.post({url:`admin/users/${e}/points/add`,data:t})}function Ie(e,t){return q.post({url:`admin/users/${e}/coupons/add`,data:t})}function De(e,t){return q.post({url:`admin/users/${e}/rewards/grant`,data:t})}const Ee={class:"art-card p-5"},Ne={class:"pb-3.5"},Ae={class:"text-lg font-medium"},Oe={class:"text-sm text-g-600"},Pe={class:"flex-1 min-w-0"},Be={class:"flex items-center justify-between mb-1"},We={class:"text-sm font-medium text-gray-900 truncate"},qe={class:"ml-2 flex-shrink-0"},Me={class:"text-xs text-g-500 mb-1"},Ve={key:0,class:"text-xs text-g-600 mb-1 line-clamp-2"},Fe={key:1,class:"text-xs text-g-500 mt-0.5"},Ge={key:0},Je={class:"flex items-center justify-between mt-1"},Le={class:"text-xs text-g-400"},Re={key:0,class:"ml-2 flex-shrink-0"},Ue=["src"],Ye=u(o(n({},{name:"ArtDataListCard"}),{__name:"index",props:{list:{},title:{},subtitle:{},maxCount:{default:5},showMoreButton:{type:Boolean}},emits:["more"],setup(e,{emit:t}){const s=e,a=I(()=>66*s.maxCount+"px"),l=I(()=>{const e=s.list;if(Array.isArray(e))return e;const t=e&&"object"==typeof e&&"value"in e?e.value:e;return Array.isArray(t)?t:[]}),i=t,r=()=>i("more");return(t,s)=>{const i=Y,n=K,o=T,u=M("ripple");return h(),_("div",Ee,[k("div",Ne,[k("p",Ae,O(e.title),1),k("p",Oe,O(e.subtitle),1)]),C(n,{style:F({height:x(a)})},{default:V(()=>[(h(!0),_(w,null,j(x(l),(e,t)=>{return h(),_("div",{key:t,class:"flex-c py-3 border-b border-gray-100 last:border-b-0"},[e.icon?(h(),_("div",{key:0,class:E(["flex-cc mr-3 size-10 rounded-lg flex-shrink-0",e.class])},[C(i,{icon:e.icon,class:"text-xl"},null,8,["icon"])],2)):D("",!0),k("div",Pe,[k("div",Be,[k("div",We,O(e.title),1),k("div",qe,[e.tags&&e.tags.length?(h(),_("span",{key:0,class:E(["inline-flex items-center px-2 py-0.5 rounded text-xs font-medium",(s=e.tags[0].type,{success:"bg-green-100 text-green-800",danger:"bg-red-100 text-red-800",info:"bg-blue-100 text-blue-800",warning:"bg-yellow-100 text-yellow-800"}[s]||"bg-gray-100 text-gray-800")])},O(e.tags[0].text),3)):D("",!0)])]),k("div",Me,O(e.status),1),e.description?(h(),_("div",Ve,O(e.description),1)):D("",!0),e.items&&e.items.length?(h(),_("div",Fe,[A(O(e.items.slice(0,3).join("、")),1),e.items.length>3?(h(),_("span",Ge," 等"+O(e.items.length)+"件",1)):D("",!0)])):D("",!0),k("div",Je,[k("div",Le,O(e.time),1),e.image?(h(),_("div",Re,[k("img",{src:e.image,alt:"",class:"w-8 h-8 rounded object-cover"},null,8,Ue)])):D("",!0)])])]);var s}),128))]),_:1},8,["style"]),e.showMoreButton?p((h(),$(o,{key:0,class:"mt-[25px] w-full text-center",onClick:r},{default:V(()=>[...s[0]||(s[0]=[A("查看更多",-1)])]),_:1})),[[u]]):D("",!0)])}}})),Ke={invite_reward:"邀请奖励",manual_add:"手工加积分",signin:"签到奖励",order_deduct:"订单抵扣",refund_restore:"退款恢复",manual:"手工操作",consume:"积分消费",recharge:"积分充值",activity:"活动奖励",system:"系统操作"},Te={user_invites:"邀请关系",user_points:"积分记录",orders:"订单",payment_refund:"支付退款"};function Xe(e){return Ke[e]||e}function He(e){return Te[e]||e}const Qe={key:0,class:"player-detail"},Ze={key:0,class:"flex items-center space-x-2"},et={key:1,class:"text-gray-400"},tt={class:"stat-item"},st={class:"stat-value"},at={class:"stat-item"},lt={class:"stat-value"},it={class:"stat-item"},rt={class:"stat-value"},nt={class:"stat-item"},ot={class:"stat-value"},ut={class:"flex justify-between items-center"},dt={class:"tab-content"},ct={key:0},pt={class:"flex justify-between items-center"},mt={class:"flex items-center space-x-3"},vt={class:"font-medium text-g-700"},yt={class:"text-g-400 text-sm"},ft={class:"text-g-400 text-sm mt-2 flex justify-between"},gt={key:1,class:"empty-text"},bt={key:3,class:"empty-text"},_t={key:4},xt={class:"flex justify-between items-center"},ht={class:"flex items-center space-x-2"},kt={class:"text-g-600"},wt={class:"text-g-400 text-sm"},jt={class:"text-g-400 text-sm mt-1"},$t={class:"text-g-400 text-sm"},Ct={key:5,class:"empty-text"},St={key:6},zt={class:"flex justify-between items-center"},It={class:"flex items-center gap-2"},Dt={class:"text-g-700"},Et={class:"text-g-400 text-sm mt-1"},Nt={class:"text-g-400 text-sm"},At={class:"text-g-400 text-sm"},Ot={key:7,class:"empty-text"},Pt={key:9,class:"empty-text"},Bt={key:10},Wt={key:0},qt={class:"flex justify-between items-center"},Mt={class:"flex items-center gap-2"},Vt={class:"text-g-700"},Ft={class:"text-g-400 text-sm mt-1"},Gt={class:"text-g-400 text-sm mt-1"},Jt={key:0,class:"text-g-400 text-sm mt-1"},Lt={class:"text-g-400 text-sm"},Rt={key:1,class:"empty-text"},Ut=ne(u({__name:"player-detail-drawer",props:{visible:{type:Boolean},playerId:{},playerData:{}},emits:["update:visible","closed"],setup(e,{emit:t}){const s=e,a=t,l=G(null),i=G("invites"),r=G(!1),n=J({orderCount:0,pointsBalance:0,couponCount:0,itemCardCount:0}),o=J({invites:[],orders:[],points:[],coupons:[],assets:[],itemCards:[]});L([()=>s.visible,()=>s.playerId],([e,t])=>{e&&t&&S()});const u=e=>({1:"未使用",2:"已使用",3:"已过期"}[e]||"未知"),d=(e,t)=>1===e?`¥${y(t)}`:2===e?`满减¥${y(t)}`:3===e?`${t}‰`:String(t),c=e=>({1:"全局",2:"活动分类",3:"活动",4:"期次"}[e]||"未知"),m=e=>({1:"奖励倍增",2:"概率提升",3:"保底"}[e]||"未知"),v=e=>{if(!e)return"";try{return new Date(e).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch(t){return e||""}},y=e=>"number"!=typeof e||isNaN(e)?"0.00":(e/100).toFixed(2),f=I(()=>o.orders.map(e=>{let t="ri:shopping-bag-line",s="bg-blue-100 text-blue-600",a="商城订单";switch(e.source_type){case 1:t="ri:shopping-bag-line",s="bg-blue-100 text-blue-600",a="商城订单";break;case 2:t="ri:lucky-line",s="bg-purple-100 text-purple-600",a="抽奖订单";break;case 3:t="ri:gift-line",s="bg-orange-100 text-orange-600",a="系统发放";break;default:t="ri:shopping-bag-line",s="bg-gray-100 text-gray-600",a="其他订单"}e.status;let l="";switch(e.status){case 1:l="待处理";break;case 2:l="已支付";break;case 3:l="已发货";break;case 4:l="已完成";break;case 5:l="已取消";break;default:l="未知状态"}const i=(()=>{const t=[];if(!e.items||0===e.items.length)return t;const s={};for(const a of e.items){const e="string"==typeof a.title&&a.title.trim()?a.title.trim():"string"==typeof a.product_name&&a.product_name.trim()?a.product_name.trim():"number"==typeof a.product_id?`商品#${a.product_id}`:"未知商品",t=e;s[t]||(s[t]={name:e,count:0}),s[t].count+="number"==typeof a.quantity&&a.quantity>0?a.quantity:1}for(const e in s){const a=s[e];t.push(a.count>1?`${a.name} x${a.count}`:a.name)}return t})(),r=y(e.actual_amount);let n=`${l} | ${"0.00"===r?"免费":`¥${r}`}`;return{title:`${a} #${e.order_no.slice(-6)}`,status:n,time:v(e.created_at),class:s,icon:t,items:i}})),g=I(()=>o.assets.map(e=>{const t="string"==typeof e.product_name&&e.product_name.trim()?e.product_name.trim():"number"==typeof e.product_id?`商品#${e.product_id}`:"未知商品",s=(e=>{if(!e)return"";try{const t=JSON.parse(e);return Array.isArray(t)&&t.length>0?t[0]:""}catch(t){return""}})(e.product_images||e.ProductImages);let a="ri:archive-line",l="bg-blue-100 text-blue-600";switch(e.status){case 1:a="ri:archive-line",l="bg-green-100 text-green-600";break;case 2:a="ri:close-circle-line",l="bg-red-100 text-red-600";break;case 3:a="ri:check-circle-line",l="bg-gray-100 text-gray-600"}const i=(e=>({1:"持有",2:"作废",3:"已使用/发货"}[e]||"未知"))(e.status),r=[];e.id&&r.push(`资产ID: ${e.id}`),e.product_id&&r.push(`商品ID: ${e.product_id}`),e.order_id&&r.push(`来源订单: #${e.order_id}`),e.activity_id&&r.push(`来源活动: #${e.activity_id}`),e.reward_id&&r.push(`来源奖励: #${e.reward_id}`),e.remark&&r.push(`备注: ${e.remark}`),e.updated_at&&r.push(`更新时间: ${v(e.updated_at)}`);const n=v(e.created_at),o=1===e.status?"success":2===e.status?"danger":"info";return{title:t,status:i,time:n,class:l,icon:a,image:s,description:r.join(" | "),tags:[{text:i,type:o}]}})),b=()=>{},S=()=>{return e=this,t=null,a=function*(){if(s.playerId){r.value=!0;try{s.playerData?l.value=s.playerData:l.value={id:s.playerId,nickname:"玩家"+s.playerId,invite_code:"",inviter_id:null,inviter_nickname:null,created_at:""};const a=yield Promise.allSettled([(e=s.playerId,t={page:1,page_size:10},q.get({url:`admin/users/${e}/invites`,params:t})),we(s.playerId,{page:1,page_size:10}),$e(s.playerId,{page:1,page_size:10}),je(s.playerId,{page:1,page_size:10}),Ce(s.playerId,{page:1,page_size:10}),Se(s.playerId,{page:1,page_size:10})]),i="fulfilled"===a[0].status?a[0].value:{list:[],total:0},r="fulfilled"===a[1].status?a[1].value:{list:[],total:0},u="fulfilled"===a[2].status?a[2].value:{list:[],total:0},d="fulfilled"===a[3].status?a[3].value:{list:[],total:0},c="fulfilled"===a[4].status?a[4].value:{list:[],total:0},p="fulfilled"===a[5].status?a[5].value:{list:[],total:0};o.invites=i.list||[],o.orders=r.list||[],o.points=u.list||[],o.coupons=d.list||[],o.assets=c.list||[],o.itemCards=p.list||[],n.orderCount=r.total||0,n.couponCount=d.total||0,n.itemCardCount=p.total||0,n.pointsBalance=o.points.length>0?o.points.reduce((e,t)=>e+t.points,0):0}catch(a){U.warning("部分数据加载失败,已为您展示可用内容")}finally{r.value=!1}var e,t}},new Promise((s,l)=>{var i=e=>{try{n(a.next(e))}catch(t){l(t)}},r=e=>{try{n(a.throw(e))}catch(t){l(t)}},n=e=>e.done?s(e.value):Promise.resolve(e.value).then(i,r);n((a=a.apply(e,t)).next())});var e,t,a},z=()=>{a("update:visible",!1)},E=()=>{l.value=null,o.invites=[],o.orders=[],o.points=[],o.coupons=[],o.assets=[],n.orderCount=0,n.pointsBalance=0,n.couponCount=0,i.value="invites",a("closed")};return(t,s)=>{var S;const I=R;return h(),$(x(re),{"model-value":e.visible,title:`用户详情 - ${(null==(S=l.value)?void 0:S.nickname)||""}`,direction:"rtl",size:"50%","close-on-click-modal":!1,"onUpdate:modelValue":s[1]||(s[1]=e=>a("update:visible",e)),onClosed:E},{footer:V(()=>[C(x(T),{onClick:z},{default:V(()=>[...s[18]||(s[18]=[A("关闭",-1)])]),_:1})]),default:V(()=>[l.value?(h(),_("div",Qe,[C(x(X),{class:"mb-4",shadow:"hover"},{header:V(()=>[...s[2]||(s[2]=[k("span",null,"基本信息",-1)])]),default:V(()=>[C(x(xe),{column:2,border:""},{default:V(()=>[C(x(he),{label:"用户ID"},{default:V(()=>[A(O(l.value.id),1)]),_:1}),C(x(he),{label:"昵称"},{default:V(()=>[A(O(l.value.nickname),1)]),_:1}),C(x(he),{label:"邀请码"},{default:V(()=>[A(O(l.value.invite_code),1)]),_:1}),C(x(he),{label:"邀请人"},{default:V(()=>[l.value.inviter_id?(h(),_("div",Ze,[C(x(ee),{size:24,class:"bg-blue-100 text-blue-600"},{default:V(()=>{var e;return[A(O((null==(e=l.value.inviter_nickname)?void 0:e.charAt(0))||"?"),1)]}),_:1}),k("span",null,O(l.value.inviter_nickname)+" (ID: "+O(l.value.inviter_id)+")",1)])):(h(),_("span",et,"无"))]),_:1}),C(x(he),{label:"注册时间"},{default:V(()=>[A(O(v(l.value.created_at)),1)]),_:1}),C(x(he),{label:"状态"},{default:V(()=>[C(x(te),{type:"success"},{default:V(()=>[...s[3]||(s[3]=[A("正常",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),C(x(se),{gutter:20,class:"mb-4"},{default:V(()=>[C(x(ae),{span:6},{default:V(()=>[C(x(X),{shadow:"hover"},{default:V(()=>[k("div",tt,[s[4]||(s[4]=k("div",{class:"stat-label"},"订单数量",-1)),k("div",st,O(n.orderCount||0),1)])]),_:1})]),_:1}),C(x(ae),{span:6},{default:V(()=>[C(x(X),{shadow:"hover"},{default:V(()=>[k("div",at,[s[5]||(s[5]=k("div",{class:"stat-label"},"积分余额",-1)),k("div",lt,O(n.pointsBalance||0),1)])]),_:1})]),_:1}),C(x(ae),{span:6},{default:V(()=>[C(x(X),{shadow:"hover"},{default:V(()=>[k("div",it,[s[6]||(s[6]=k("div",{class:"stat-label"},"优惠券数量",-1)),k("div",rt,O(n.couponCount||0),1)])]),_:1})]),_:1}),C(x(ae),{span:6},{default:V(()=>[C(x(X),{shadow:"hover"},{default:V(()=>[k("div",nt,[s[7]||(s[7]=k("div",{class:"stat-label"},"道具卡数量",-1)),k("div",ot,O(n.itemCardCount||0),1)])]),_:1})]),_:1})]),_:1}),p((h(),$(x(X),{shadow:"hover"},{header:V(()=>[k("div",ut,[s[14]||(s[14]=k("span",null,"操作记录",-1)),C(x(le),{modelValue:i.value,"onUpdate:modelValue":s[0]||(s[0]=e=>i.value=e),size:"small"},{default:V(()=>[C(x(ie),{label:"invites"},{default:V(()=>[...s[8]||(s[8]=[A("邀请记录",-1)])]),_:1}),C(x(ie),{label:"orders"},{default:V(()=>[...s[9]||(s[9]=[A("订单记录",-1)])]),_:1}),C(x(ie),{label:"points"},{default:V(()=>[...s[10]||(s[10]=[A("积分记录",-1)])]),_:1}),C(x(ie),{label:"coupons"},{default:V(()=>[...s[11]||(s[11]=[A("优惠券",-1)])]),_:1}),C(x(ie),{label:"assets"},{default:V(()=>[...s[12]||(s[12]=[A("资产",-1)])]),_:1}),C(x(ie),{label:"item_cards"},{default:V(()=>[...s[13]||(s[13]=[A("道具卡",-1)])]),_:1})]),_:1},8,["modelValue"])])]),default:V(()=>[k("div",dt,["invites"===i.value&&o.invites&&o.invites.length>0?(h(),_("div",ct,[(h(!0),_(w,null,j(o.invites,e=>(h(),_("div",{key:e.id,class:"record-item"},[k("div",pt,[k("div",mt,[C(x(ee),{src:e.avatar,size:32,class:"bg-g-200"},{default:V(()=>{var t;return[A(O((null==(t=e.nickname)?void 0:t.charAt(0))||"?"),1)]}),_:2},1032,["src"]),k("div",null,[k("div",vt,O(e.nickname),1),k("div",yt,"ID: "+O(e.id),1)])]),C(x(te),{type:"success",size:"small"},{default:V(()=>[...s[15]||(s[15]=[A(" 邀请成功 ",-1)])]),_:1})]),k("div",ft,[k("span",null,"邀请码: "+O(e.invite_code),1),k("span",null,"邀请时间: "+O(v(e.created_at)),1)])]))),128))])):D("",!0),"invites"!==i.value||o.invites&&0!==o.invites.length?D("",!0):(h(),_("div",gt,"暂无邀请记录")),"orders"===i.value&&o.orders&&o.orders.length>0?(h(),$(Ye,{key:2,title:"订单记录",subtitle:`共 ${o.orders.length} 笔订单`,list:f.value,"max-count":10,onMore:b},null,8,["subtitle","list"])):D("",!0),"orders"!==i.value||o.orders&&0!==o.orders.length?D("",!0):(h(),_("div",bt,"暂无订单记录")),"points"===i.value&&o.points&&o.points.length>0?(h(),_("div",_t,[(h(!0),_(w,null,j(o.points,e=>(h(),_("div",{key:e.id,class:"record-item"},[k("div",xt,[k("div",ht,[C(x(te),{type:e.points>0?"success":"danger",size:"small"},{default:V(()=>[A(O(e.points>0?"+":"")+O(e.points),1)]),_:2},1032,["type"]),k("span",kt,O(x(Xe)(e.action)||e.kind),1)]),k("span",wt,O(x(He)(e.ref_table))+":"+O(e.ref_id),1)]),k("div",jt," 备注: "+O(x(Xe)(e.remark)||e.remark||"无"),1),k("div",$t," 创建时间: "+O(v(e.created_at)),1)]))),128))])):D("",!0),"points"!==i.value||o.points&&0!==o.points.length?D("",!0):(h(),_("div",Ct,"暂无积分记录")),"coupons"===i.value&&o.coupons&&o.coupons.length>0?(h(),_("div",St,[(h(!0),_(w,null,j(o.coupons,e=>{return h(),_("div",{key:e.id,class:"record-item"},[k("div",zt,[k("div",It,[C(x(te),{type:"primary",size:"small"},{default:V(()=>{return[A(O((t=e.scope_type,{1:"通用券",2:"活动券",3:"商品券"}[t]||"未知")),1)];var t}),_:2},1024),k("span",Dt,O(e.name||`优惠券 #${e.coupon_id}`),1)]),C(x(te),{type:(s=e.status,{1:"info",2:"success",3:"danger"}[s]||"info"),size:"small"},{default:V(()=>[A(O(u(e.status)),1)]),_:2},1032,["type"])]),k("div",Et," 优惠券ID: "+O(e.coupon_id)+" | 类型: "+O((t=e.discount_type,{1:"直减",2:"满减",3:"折扣"}[t]||"未知"))+" | 面值: "+O(d(e.discount_type,e.discount_value)),1),k("div",Nt," 门槛: "+O(e.min_spend?`满¥${y(e.min_spend)}`:"无门槛"),1),k("div",At," 有效期: "+O(v(e.valid_start))+" ~ "+O(v(e.valid_end)),1)]);var t,s}),128))])):D("",!0),"coupons"!==i.value||o.coupons&&0!==o.coupons.length?D("",!0):(h(),_("div",Ot,"暂无优惠券")),"assets"===i.value&&o.assets&&o.assets.length>0?(h(),$(Ye,{key:8,title:"资产记录",subtitle:`共 ${o.assets.length} 件资产`,list:g.value,"max-count":10},null,8,["subtitle","list"])):D("",!0),"assets"!==i.value||o.assets&&0!==o.assets.length?D("",!0):(h(),_("div",Pt,"暂无资产记录")),"item_cards"===i.value?(h(),_("div",Bt,[o.itemCards&&o.itemCards.length>0?(h(),_("div",Wt,[(h(!0),_(w,null,j(o.itemCards,e=>{return h(),_("div",{key:e.id,class:"record-item"},[k("div",qt,[k("div",Mt,[C(x(te),{type:"primary",size:"small"},{default:V(()=>[...s[16]||(s[16]=[A("道具卡",-1)])]),_:1}),k("span",Vt,O(e.name||`道具卡 #${e.card_id||e.id}`),1)]),C(x(te),{type:"success",size:"small"},{default:V(()=>[...s[17]||(s[17]=[A("持有",-1)])]),_:1})]),k("div",Ft,"数量: "+O(e.quantity||1),1),k("div",Gt,"类型: "+O((t=e.card_type,{1:"抽奖卡",2:"加成卡",3:"保底卡"}[t]||"未知"))+" | 范围: "+O(c(e.scope_type))+" | 效果: "+O(m(e.effect_type)),1),e.remark?(h(),_("div",Jt,"备注: "+O(e.remark),1)):D("",!0),k("div",Lt,"更新时间: "+O(v(e.updated_at)),1)]);var t}),128))])):(h(),_("div",Rt,"暂无道具卡记录"))])):D("",!0)])]),_:1})),[[I,r.value]])])):D("",!0)]),_:1},8,["model-value","title"])}}}),[["__scopeId","data-v-7312deab"]]),Yt=Object.freeze(Object.defineProperty({__proto__:null,default:Ut},Symbol.toStringTag,{value:"Module"}));export{Ut as P,Ie as a,De as b,ke as c,ze as f,Yt as p};
|