邹方成 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
7.8 KiB
JavaScript

var e=Object.defineProperty,o=Object.defineProperties,t=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,s=(o,t,r)=>t in o?e(o,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[t]=r,l=(e,o)=>{for(var t in o||(o={}))i.call(o,t)&&s(e,t,o[t]);if(r)for(var t of r(o))a.call(o,t)&&s(e,t,o[t]);return e},n=(e,r)=>o(e,t(r));import{x as p,aD as m,dy as d,s as u,d as c,c as j,e as f,f as g,y as h,k as _,u as b,z as v,p as x,F as y,G as k,h as w,g as O,m as C,a as P,E as S,J as V,ac as E,I as T,l as A,a9 as z,dz as D,O as B}from"./index-ip5gDR6L.js";/* empty css */import{_ as F}from"./index-C4WacTPc.js";import{_ as R}from"./index-BVNligJO.js";/* empty css *//* empty css */import{u as I}from"./useTable-BFClY0KQ.js";import{a as U,b as L,E as M}from"./el-dropdown-item-DEgPCg9g.js";/* empty css *//* empty css */import{_ as N}from"./index.vue_vue_type_script_setup_true_lang-CCGboj8m.js";import{_ as $}from"./index.vue_vue_type_script_setup_true_lang-CiA1dVDe.js";import{_ as G}from"./role-search.vue_vue_type_script_setup_true_lang-DOcQfS3d.js";import{_ as J}from"./role-edit-dialog.vue_vue_type_script_setup_true_lang-Br1Ynv4M.js";import{_ as W}from"./role-permission-dialog.vue_vue_type_script_setup_true_lang-DfT_l8Ne.js";/* empty css */import{E as X}from"./message-box-DnMmMCB0.js";/* empty css *//* empty css *//* empty css */import{E as Y}from"./index-BY5Lb5w1.js";import{E as Z}from"./index-opP5No9I.js";import{E as H}from"./index-BBSYL4g8.js";import{E as q}from"./index-D1xXI5gl.js";/* empty css *//* empty css *//* empty css *//* empty css *//* 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-Br3btmwp.js";import"./token-DWNpOE8r.js";import"./index-D-10FtUD.js";import"./scroll-ChxXkPhM.js";import"./debounce-B9s63_mG.js";import"./index-Jz5GfFad.js";import"./vnode-6FKeug3R.js";import"./index-KXWZe8V3.js";import"./index-D-iZIej9.js";import"./index-DfrOVkw6.js";import"./_plugin-vue_export-helper-BCo6x5W8.js";import"./el-popover-Do33geGb.js";/* empty css */import"./useTableColumns-C9X2IKmh.js";import"./refs-Cw5r5QN8.js";import"./index-C4Je2wdo.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./tree-select-CzJzgJx_.js";import"./index-B1PFnxt8.js";import"./cloneDeep-D8SNDfdC.js";import"./index-CxGOZAw2.js";import"./index-BMPM6CSe.js";import"./index-BbcTNOqF.js";import"./index-HtXsSizM.js";import"./index-D8-uSzHS.js";import"./index-DPYIWjrn.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index-Ca1H-sCf.js";import"./index-D5xppMej.js";import"./index-B1Z255S_.js";import"./validator-eDtn0zQf.js";/* empty css *//* empty css *//* empty css */import"./index-BpP4itD-.js";import"./index-D17cYxP7.js";import"./use-dialog-Cj8YneNA.js";import"./index-D6zsJoyl.js";const K=p(),Q=c(n(l({},{name:"ArtButtonMore"}),{__name:"index",props:{list:{},auth:{}},emits:["click"],setup(e,{emit:o}){const{hasAuth:t}=(()=>{var e,o;const t=m(),{isFrontendMode:r}=d(),{info:i}=u(K),a=null!=(o=null==(e=i.value)?void 0:e.buttons)?o:[],s=Array.isArray(t.meta.authList)?t.meta.authList:[];return{hasAuth:e=>r.value?a.includes(e):s.some(o=>(null==o?void 0:o.authMark)===e)}})(),r=e,i=j(()=>r.list.some(e=>!e.auth||t(e.auth))),a=o;return(o,r)=>{const s=$,l=N,n=L,p=U,m=M;return g(),f("div",null,[b(i)?(g(),h(m,{key:0},{dropdown:v(()=>[x(p,null,{default:v(()=>[(g(!0),f(y,null,k(e.list,e=>(g(),f(y,{key:e.key},[!e.auth||b(t)(e.auth)?(g(),h(n,{key:0,disabled:e.disabled,onClick:o=>(e=>{a("click",e)})(e)},{default:v(()=>[w("div",{class:"flex-c gap-2",style:O({color:e.color})},[e.icon?(g(),h(l,{key:0,icon:e.icon},null,8,["icon"])):_("",!0),w("span",null,C(e.label),1)],4)]),_:2},1032,["disabled","onClick"])):_("",!0)],64))),128))]),_:1})]),default:v(()=>[x(s,{icon:"ri:more-2-fill",class:"!size-8 bg-g-200 dark:bg-g-300/45 text-sm"})]),_:1})):_("",!0)])}}})),ee={class:"art-full-height"},oe=c(n(l({},{name:"Role"}),{__name:"index",setup(e){const o=P({roleName:void 0,roleCode:void 0,description:void 0,enabled:void 0,daterange:void 0}),t=P(!1),s=P(!1),p=P(!1),m=P(void 0),{columns:d,columnChecks:u,data:c,loading:j,pagination:_,getData:y,searchParams:k,resetSearchParams:w,handleSizeChange:C,handleCurrentChange:U,refreshData:L}=I({core:{apiFn:D,apiParams:{current:1,size:20},excludeParams:["daterange"],columnsFactory:()=>[{prop:"roleId",label:"角色ID",width:100},{prop:"roleName",label:"角色名称",minWidth:120},{prop:"roleCode",label:"角色编码",minWidth:120},{prop:"description",label:"角色描述",minWidth:150,showOverflowTooltip:!0},{prop:"enabled",label:"角色状态",width:100,formatter:e=>{const o=e.enabled?{type:"success",text:"启用"}:{type:"warning",text:"禁用"};return z(q,{type:o.type},()=>o.text)}},{prop:"createTime",label:"创建日期",width:180,sortable:!0},{prop:"operation",label:"操作",width:80,fixed:"right",formatter:e=>z("div",[z(Q,{list:[{key:"permission",label:"菜单权限",icon:"ri:user-3-line"},{key:"edit",label:"编辑角色",icon:"ri:edit-2-line"},{key:"delete",label:"删除角色",icon:"ri:delete-bin-4-line",color:"#f56c6c"}],onClick:o=>K(o,e)})])}]}}),M=P("add"),N=(e,o)=>{s.value=!0,M.value=e,m.value=o},$=e=>{const o=e,{daterange:t}=o,s=((e,o)=>{var t={};for(var s in e)i.call(e,s)&&o.indexOf(s)<0&&(t[s]=e[s]);if(null!=e&&r)for(var s of r(e))o.indexOf(s)<0&&a.call(e,s)&&(t[s]=e[s]);return t})(o,["daterange"]),[p,m]=Array.isArray(t)?t:[null,null],d=l({},k);Object.assign(d,n(l({},s),{startTime:p,endTime:m})),y(d)},K=(e,o)=>{switch(e.key){case"permission":oe(o);break;case"edit":N("edit",o);break;case"delete":te(o)}},oe=e=>{p.value=!0,m.value=e},te=e=>{X.confirm(`确定删除角色"${e.roleName}"吗?此操作不可恢复!`,"删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{B.success("删除成功"),L()}).catch(()=>{B.info("已取消删除")})};return(e,r)=>{const i=Z,a=Y,l=R,n=F,y=H,k=S("ripple");return g(),f("div",ee,[V(x(G,{modelValue:b(o),"onUpdate:modelValue":r[0]||(r[0]=e=>T(o)?o.value=e:null),onSearch:$,onReset:b(w)},null,8,["modelValue","onReset"]),[[E,b(t)]]),x(y,{class:"art-table-card",shadow:"never",style:O({"margin-top":b(t)?"12px":"0"})},{default:v(()=>[x(l,{columns:b(u),"onUpdate:columns":r[2]||(r[2]=e=>T(u)?u.value=e:null),showSearchBar:b(t),"onUpdate:showSearchBar":r[3]||(r[3]=e=>T(t)?t.value=e:null),loading:b(j),onRefresh:b(L)},{left:v(()=>[x(a,{wrap:""},{default:v(()=>[V((g(),h(i,{onClick:r[1]||(r[1]=e=>N("add"))},{default:v(()=>[...r[6]||(r[6]=[A("新增角色",-1)])]),_:1})),[[k]])]),_:1})]),_:1},8,["columns","showSearchBar","loading","onRefresh"]),x(n,{loading:b(j),data:b(c),columns:b(d),pagination:b(_),"onPagination:sizeChange":b(C),"onPagination:currentChange":b(U)},null,8,["loading","data","columns","pagination","onPagination:sizeChange","onPagination:currentChange"])]),_:1},8,["style"]),x(J,{modelValue:b(s),"onUpdate:modelValue":r[4]||(r[4]=e=>T(s)?s.value=e:null),"dialog-type":b(M),"role-data":b(m),onSuccess:b(L)},null,8,["modelValue","dialog-type","role-data","onSuccess"]),x(W,{modelValue:b(p),"onUpdate:modelValue":r[5]||(r[5]=e=>T(p)?p.value=e:null),"role-data":b(m),onSuccess:b(L)},null,8,["modelValue","role-data","onSuccess"])])}}}));export{oe as default};