邹方成 00452cba59 feat: 添加用户统计功能及相关API接口
feat(admin): 新增管理后台前端资源文件

feat(api): 实现获取用户统计数据的API接口
- 添加获取用户道具卡数量、优惠券数量和积分余额的接口
- 实现设置默认地址和删除地址的接口

feat(service): 新增用户统计服务方法
- 实现GetUserStats方法查询用户统计数据
- 添加地址管理相关服务方法

fix(core): 修复静态资源路由问题
- 调整静态资源路由配置
- 优化404路由处理逻辑

chore: 更新前端构建配置
- 添加Windows平台构建命令
- 更新README构建说明
2025-11-15 03:08:53 +08:00

2 lines
10 KiB
JavaScript

var e=Object.defineProperty,l=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,t=(l,o,a)=>o in l?e(l,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):l[o]=a,i=(e,l,o)=>new Promise((a,t)=>{var i=e=>{try{u(o.next(e))}catch(l){t(l)}},r=e=>{try{u(o.throw(e))}catch(l){t(l)}},u=e=>e.done?a(e.value):Promise.resolve(e.value).then(i,r);u((o=o.apply(e,l)).next())});import{d as r,aD as u,a as s,c as n,aQ as d,o as p,e as m,f as c,h as b,p as f,z as v,l as _,u as y,I as j,m as V,k as g,F as h,G as w,y as x}from"./index-ip5gDR6L.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{_ as q}from"./index-C4WacTPc.js";import{_ as U}from"./index-BVNligJO.js";import{h as k,i as S,j as C,k as E}from"./adminActivities-d_jfLDps.js";import{f as M}from"./product-ti2LZz-w.js";import{E as O}from"./index-opP5No9I.js";import{E as B}from"./index-D1xXI5gl.js";import{E as P,a as A}from"./index-Br3btmwp.js";import{E as I}from"./index-HtXsSizM.js";import{E as F}from"./index-DfrOVkw6.js";import{E as N,a as R}from"./index-CxGOZAw2.js";import{E as W}from"./index-BpP4itD-.js";/* empty css */import"./el-tooltip-l0sNRNKZ.js";import"./index-DbRz3Zuu.js";import"./index-fnD_mPvE.js";import"./index-C9KXwj2c.js";import"./index-CHAf6FpU.js";import"./use-form-item-BDb3ZgPk.js";import"./use-form-common-props-BwBs_jod.js";import"./_initCloneObject-DwsgJamq.js";import"./isArrayLikeObject-OMLaZ5Za.js";import"./index-D-10FtUD.js";import"./debounce-B9s63_mG.js";import"./index-KXWZe8V3.js";import"./index-D-iZIej9.js";import"./index-Jz5GfFad.js";import"./_plugin-vue_export-helper-BCo6x5W8.js";import"./el-popover-Do33geGb.js";import"./el-dropdown-item-DEgPCg9g.js";import"./refs-Cw5r5QN8.js";import"./index.vue_vue_type_script_setup_true_lang-CCGboj8m.js";/* empty css */import"./token-DWNpOE8r.js";import"./scroll-ChxXkPhM.js";import"./vnode-6FKeug3R.js";import"./index-BbcTNOqF.js";import"./index-D17cYxP7.js";import"./use-dialog-Cj8YneNA.js";import"./index-D6zsJoyl.js";const $={class:"mb-3"},z={key:0,class:"mb-2"},L={key:1},Q={key:2},X=r({__name:"index",setup(e){const r=u(),X=Number(r.params.activityId),Y=Number(r.params.issueId),Z=s(!1),D=s([]),G=s([{prop:"name",label:"名称"},{prop:"weight",label:"权重"},{prop:"quantity",label:"数量"},{prop:"original_qty",label:"原始数量"},{prop:"product_id",label:"商品",useSlot:!0},{prop:"level",label:"等级",useSlot:!0},{prop:"sort",label:"排序"},{prop:"is_boss",label:"Boss",useSlot:!0},{prop:"actions",label:"操作",useSlot:!0}]),T=s(!1),H=n(()=>"create"===J.value?"新增奖励":"编辑奖励"),J=s("create"),K=s([]),ee=s(null),le=s([]),oe=s(),{width:ae}=d(),te=n(()=>`${Math.min(1100,Math.max(720,ae.value-120))}px`),ie=[{prop:"name",label:"名称",useSlot:!0,minWidth:260},{prop:"weight",label:"权重",useSlot:!0,width:120},{prop:"quantity",label:"数量",useSlot:!0,width:120},{prop:"original_qty",label:"原始数量",useSlot:!0,width:140},{prop:"level",label:"等级",useSlot:!0,width:120},{prop:"sort",label:"排序",useSlot:!0,width:120},{prop:"is_boss",label:"Boss",useSlot:!0,width:120},{prop:"product_id",label:"商品",useSlot:!0,minWidth:280},{prop:"actions",label:"删除",useSlot:!0,width:110}];function re(){J.value="create",K.value=[],T.value=!0}function ue(e){J.value="edit",ee.value=((e,i)=>{for(var r in i||(i={}))o.call(i,r)&&t(e,r,i[r]);if(l)for(var r of l(i))a.call(i,r)&&t(e,r,i[r]);return e})({},e),K.value=[ee.value],T.value=!0}function se(e){switch(e){case 1:return"S";case 2:return"A";case 3:return"B";case 4:return"C";default:return String(e)}}function ne(e){const l=le.value.find(l=>l.id===e);return l?l.name:e}function de(){K.value.push({name:"",weight:0,quantity:0,original_qty:0,level:1,sort:0,is_boss:0})}function pe(){K.value=[]}function me(){return i(this,null,function*(){var e,l;if("create"===J.value)yield k(X,Y,K.value);else if("edit"===J.value&&ee.value){if(!1!==(yield null==(l=(e=oe.value).validate)?void 0:l.call(e))){const e=ee.value;yield S(X,Y,e.id,{product_id:e.product_id,name:e.name,weight:e.weight,quantity:e.quantity,original_qty:e.original_qty,level:e.level,sort:e.sort,is_boss:e.is_boss})}}T.value=!1,yield ce()})}function ce(){return i(this,null,function*(){Z.value=!0;const e=yield C(X,Y);D.value=e.list,Z.value=!1})}return p(()=>{ce(),function(){i(this,null,function*(){const e=yield M({page:1,page_size:100});le.value=e.list.map(e=>({id:e.id,name:e.name}))})}()}),(e,l)=>{const o=O,a=B,t=F,r=I,u=A,s=P,n=R,d=N,p=W;return c(),m("div",null,[b("div",$,[f(o,{type:"primary",onClick:re},{default:v(()=>[...l[11]||(l[11]=[_("批量新增奖励",-1)])]),_:1})]),f(U,{columns:y(G),"onUpdate:columns":l[0]||(l[0]=e=>j(G)?G.value=e:null),loading:y(Z),onRefresh:ce},null,8,["columns","loading"]),f(q,{loading:y(Z),data:y(D),columns:y(G),stripe:!0,border:!0},{product_id:v(({row:e})=>[b("span",null,V(ne(e.product_id)),1)]),is_boss:v(({row:e})=>[f(a,{type:1===e.is_boss?"warning":"info"},{default:v(()=>[_(V(1===e.is_boss?"是":"否"),1)]),_:2},1032,["type"])]),level:v(({row:e})=>[b("span",null,V(se(e.level)),1)]),actions:v(({row:e})=>[f(o,{text:"",type:"primary",onClick:l=>ue(e)},{default:v(()=>[...l[12]||(l[12]=[_("编辑",-1)])]),_:1},8,["onClick"]),f(o,{text:"",type:"danger",class:"ml-2",onClick:l=>function(e){return i(this,null,function*(){yield E(X,Y,e.id),yield ce()})}(e)},{default:v(()=>[...l[13]||(l[13]=[_("删除",-1)])]),_:1},8,["onClick"])]),_:1},8,["loading","data","columns"]),f(p,{modelValue:y(T),"onUpdate:modelValue":l[10]||(l[10]=e=>j(T)?T.value=e:null),title:y(H),width:y(te)},{footer:v(()=>[f(o,{onClick:l[9]||(l[9]=e=>T.value=!1)},{default:v(()=>[...l[17]||(l[17]=[_("取消",-1)])]),_:1}),f(o,{type:"primary",onClick:me},{default:v(()=>[...l[18]||(l[18]=[_("提交",-1)])]),_:1})]),default:v(()=>["create"===y(J)?(c(),m("div",z,[f(o,{type:"primary",onClick:de},{default:v(()=>[...l[14]||(l[14]=[_("新增一行",-1)])]),_:1}),f(o,{class:"ml-2",onClick:pe},{default:v(()=>[...l[15]||(l[15]=[_("清空",-1)])]),_:1})])):g("",!0),"create"===y(J)?(c(),m("div",L,[f(q,{data:y(K),columns:ie,tableLayout:"auto",stripe:!0,border:!0},{name:v(({row:e})=>[f(t,{modelValue:e.name,"onUpdate:modelValue":l=>e.name=l},null,8,["modelValue","onUpdate:modelValue"])]),weight:v(({row:e})=>[f(r,{modelValue:e.weight,"onUpdate:modelValue":l=>e.weight=l,min:0,controls:!1,step:1},null,8,["modelValue","onUpdate:modelValue"])]),quantity:v(({row:e})=>[f(r,{modelValue:e.quantity,"onUpdate:modelValue":l=>e.quantity=l,min:0,controls:!1,step:1},null,8,["modelValue","onUpdate:modelValue"])]),original_qty:v(({row:e})=>[f(r,{modelValue:e.original_qty,"onUpdate:modelValue":l=>e.original_qty=l,min:0,controls:!1,step:1},null,8,["modelValue","onUpdate:modelValue"])]),level:v(({row:e})=>[f(s,{modelValue:e.level,"onUpdate:modelValue":l=>e.level=l,modelModifiers:{number:!0}},{default:v(()=>[f(u,{value:1,label:"S"}),f(u,{value:2,label:"A"}),f(u,{value:3,label:"B"}),f(u,{value:4,label:"C"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),sort:v(({row:e})=>[f(r,{modelValue:e.sort,"onUpdate:modelValue":l=>e.sort=l,min:0,controls:!1,step:1},null,8,["modelValue","onUpdate:modelValue"])]),is_boss:v(({row:e})=>[f(s,{modelValue:e.is_boss,"onUpdate:modelValue":l=>e.is_boss=l,modelModifiers:{number:!0}},{default:v(()=>[f(u,{value:0,label:"否"}),f(u,{value:1,label:"是"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),product_id:v(({row:e})=>[f(s,{modelValue:e.product_id,"onUpdate:modelValue":l=>e.product_id=l,modelModifiers:{number:!0},filterable:"",placeholder:"选择商品"},{default:v(()=>[(c(!0),m(h,null,w(y(le),e=>(c(),x(u,{key:e.id,value:e.id,label:e.name},null,8,["value","label"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue"])]),actions:v(({$index:e})=>[f(o,{text:"",type:"danger",onClick:l=>{return o=e,void K.value.splice(o,1);var o}},{default:v(()=>[...l[16]||(l[16]=[_("删除",-1)])]),_:1},8,["onClick"])]),_:1},8,["data"])])):(c(),m("div",Q,[f(d,{model:y(ee),ref_key:"editFormRef",ref:oe,"label-width":"100px"},{default:v(()=>[f(n,{label:"名称",prop:"name",rules:[{required:!0,message:"请输入名称"}]},{default:v(()=>[f(t,{modelValue:y(ee).name,"onUpdate:modelValue":l[1]||(l[1]=e=>y(ee).name=e)},null,8,["modelValue"])]),_:1}),f(n,{label:"商品",prop:"product_id"},{default:v(()=>[f(s,{modelValue:y(ee).product_id,"onUpdate:modelValue":l[2]||(l[2]=e=>y(ee).product_id=e),modelModifiers:{number:!0},filterable:"",placeholder:"选择商品"},{default:v(()=>[(c(!0),m(h,null,w(y(le),e=>(c(),x(u,{key:e.id,value:e.id,label:e.name},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),f(n,{label:"等级",prop:"level",rules:[{required:!0,message:"请选择等级"}]},{default:v(()=>[f(s,{modelValue:y(ee).level,"onUpdate:modelValue":l[3]||(l[3]=e=>y(ee).level=e),modelModifiers:{number:!0}},{default:v(()=>[f(u,{value:1,label:"S"}),f(u,{value:2,label:"A"}),f(u,{value:3,label:"B"}),f(u,{value:4,label:"C"})]),_:1},8,["modelValue"])]),_:1}),f(n,{label:"Boss",prop:"is_boss",rules:[{required:!0,message:"请选择"}]},{default:v(()=>[f(s,{modelValue:y(ee).is_boss,"onUpdate:modelValue":l[4]||(l[4]=e=>y(ee).is_boss=e),modelModifiers:{number:!0}},{default:v(()=>[f(u,{value:0,label:"否"}),f(u,{value:1,label:"是"})]),_:1},8,["modelValue"])]),_:1}),f(n,{label:"权重",prop:"weight",rules:[{required:!0,message:"请输入权重"}]},{default:v(()=>[f(r,{modelValue:y(ee).weight,"onUpdate:modelValue":l[5]||(l[5]=e=>y(ee).weight=e),min:0,controls:!1,step:1},null,8,["modelValue"])]),_:1}),f(n,{label:"数量",prop:"quantity",rules:[{required:!0,message:"请输入数量"}]},{default:v(()=>[f(r,{modelValue:y(ee).quantity,"onUpdate:modelValue":l[6]||(l[6]=e=>y(ee).quantity=e),min:0,controls:!1,step:1},null,8,["modelValue"])]),_:1}),f(n,{label:"原始数量",prop:"original_qty",rules:[{required:!0,message:"请输入原始数量"}]},{default:v(()=>[f(r,{modelValue:y(ee).original_qty,"onUpdate:modelValue":l[7]||(l[7]=e=>y(ee).original_qty=e),min:0,controls:!1,step:1},null,8,["modelValue"])]),_:1}),f(n,{label:"排序",prop:"sort"},{default:v(()=>[f(r,{modelValue:y(ee).sort,"onUpdate:modelValue":l[8]||(l[8]=e=>y(ee).sort=e),min:0,controls:!1,step:1},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]))]),_:1},8,["modelValue","title","width"])])}}});export{X as default};