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

var e=Object.defineProperty,t=Object.defineProperties,r=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,a=(t,r,o)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[r]=o,n=(e,t)=>{for(var r in t||(t={}))l.call(t,r)&&a(e,r,t[r]);if(o)for(var r of o(t))i.call(t,r)&&a(e,r,t[r]);return e},s=(e,t,r)=>new Promise((o,l)=>{var i=e=>{try{n(r.next(e))}catch(t){l(t)}},a=e=>{try{n(r.throw(e))}catch(t){l(t)}},n=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,a);n((r=r.apply(e,t)).next())});import{d as u,a as p,r as m,c as d,o as c,dx as v,E as j,e as h,f,p as y,u as b,I as x,z as g,J as _,y as k,l as w,m as O,aI as C,n as E,a9 as L,O as B}from"./index-ip5gDR6L.js";/* empty css */import{_ as P}from"./index-C4WacTPc.js";import{_ as T}from"./index-BVNligJO.js";/* empty css */import{_ as A}from"./index-C4Je2wdo.js";import{_ as M}from"./index.vue_vue_type_script_setup_true_lang-CK7Y-5lS.js";import{u as D}from"./useTableColumns-C9X2IKmh.js";import{_ as R}from"./menu-dialog.vue_vue_type_script_setup_true_lang-r8uslu6M.js";/* empty css */import{E as $}from"./message-box-DnMmMCB0.js";/* empty css *//* empty css *//* empty css */import{E as I}from"./index-opP5No9I.js";import{E as S}from"./index-BBSYL4g8.js";import{E as U}from"./index-D1xXI5gl.js";/* empty css *//* empty css *//* 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";import"./el-dropdown-item-DEgPCg9g.js";import"./refs-Cw5r5QN8.js";import"./index.vue_vue_type_script_setup_true_lang-CCGboj8m.js";/* empty css *//* 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 *//* empty css */import"./index-BpP4itD-.js";import"./index-D17cYxP7.js";import"./use-dialog-Cj8YneNA.js";import"./index-D6zsJoyl.js";const V={class:"menu-page art-full-height"},J=u((Z=n({},{name:"Menus"}),t(Z,r({__name:"index",setup(e){const t=p(!1),r=p(!1),o=p(),l=p(!1),i=p("menu"),a=p(null),u=p(!1),J={name:"",route:""},Z=m(n({},J)),F=m(n({},J)),G=d(()=>[{label:"菜单名称",key:"name",type:"input",props:{clearable:!0}},{label:"路由地址",key:"route",type:"input",props:{clearable:!0}}]);c(()=>{K()});const K=()=>s(this,null,function*(){t.value=!0;try{const e=yield v();q.value=e}catch(e){throw e instanceof Error?e:new Error("获取菜单失败")}finally{t.value=!1}}),W=e=>{var t,r,o,l,i;return(null==(t=e.meta)?void 0:t.isAuthButton)?"danger":(null==(r=e.children)?void 0:r.length)?"info":(null==(o=e.meta)?void 0:o.link)&&(null==(l=e.meta)?void 0:l.isIframe)?"success":e.path?"primary":(null==(i=e.meta)?void 0:i.link)?"warning":"info"},{columnChecks:X,columns:Y}=D(()=>[{prop:"meta.title",label:"菜单名称",minWidth:120,formatter:e=>{var t;return C(null==(t=e.meta)?void 0:t.title)}},{prop:"type",label:"菜单类型",formatter:e=>L(U,{type:W(e)},()=>(e=>{var t,r,o,l,i;return(null==(t=e.meta)?void 0:t.isAuthButton)?"按钮":(null==(r=e.children)?void 0:r.length)?"目录":(null==(o=e.meta)?void 0:o.link)&&(null==(l=e.meta)?void 0:l.isIframe)?"内嵌":e.path?"菜单":(null==(i=e.meta)?void 0:i.link)?"外链":"未知"})(e))},{prop:"path",label:"路由",formatter:e=>{var t,r;return(null==(t=e.meta)?void 0:t.isAuthButton)?"":(null==(r=e.meta)?void 0:r.link)||e.path||""}},{prop:"meta.authList",label:"权限标识",formatter:e=>{var t,r,o,l;return(null==(t=e.meta)?void 0:t.isAuthButton)?(null==(r=e.meta)?void 0:r.authMark)||"":(null==(l=null==(o=e.meta)?void 0:o.authList)?void 0:l.length)?`${e.meta.authList.length} 个权限标识`:""}},{prop:"date",label:"编辑时间",formatter:()=>"2022-3-12 12:00:00"},{prop:"status",label:"状态",formatter:()=>L(U,{type:"success"},()=>"启用")},{prop:"operation",label:"操作",width:180,align:"right",formatter:e=>{var t;const r={style:"text-align: right"};return(null==(t=e.meta)?void 0:t.isAuthButton)?L("div",r,[L(M,{type:"edit",onClick:()=>ae(e)}),L(M,{type:"delete",onClick:()=>ue()})]):L("div",r,[L(M,{type:"add",onClick:()=>le(),title:"新增权限"}),L(M,{type:"edit",onClick:()=>ie(e)}),L(M,{type:"delete",onClick:()=>se()})])}}]),q=p([]),z=()=>{Object.assign(Z,n({},J)),Object.assign(F,n({},J)),K()},H=()=>{Object.assign(F,n({},Z)),K()},N=()=>{K()},Q=e=>{if(null===e||"object"!=typeof e)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>Q(e));const t={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=Q(e[r]));return t},ee=e=>e.map(e=>{var t,r,o,l;const i=Q(e);if((null==(t=i.children)?void 0:t.length)&&(i.children=ee(i.children)),null==(o=null==(r=e.meta)?void 0:r.authList)?void 0:o.length){const t=e.meta.authList.map(t=>({path:`${e.path}_auth_${t.authMark}`,name:`${String(e.name)}_auth_${t.authMark}`,meta:{title:t.title,authMark:t.authMark,isAuthButton:!0,parentPath:e.path}}));i.children=(null==(l=i.children)?void 0:l.length)?[...i.children,...t]:t}return i}),te=e=>{var t,r,o,l;const i=[];for(const a of e){const e=(null==(t=F.name)?void 0:t.toLowerCase().trim())||"",n=(null==(r=F.route)?void 0:r.toLowerCase().trim())||"",s=C((null==(o=a.meta)?void 0:o.title)||"").toLowerCase(),u=(a.path||"").toLowerCase(),p=!e||s.includes(e),m=!n||u.includes(n);if(null==(l=a.children)?void 0:l.length){const e=te(a.children);if(e.length>0){const t=Q(a);t.children=e,i.push(t);continue}}p&&m&&i.push(Q(a))}return i},re=d(()=>{const e=te(q.value);return ee(e)}),oe=()=>{i.value="menu",a.value=null,u.value=!0,l.value=!0},le=()=>{i.value="menu",a.value=null,u.value=!1,l.value=!0},ie=e=>{i.value="menu",a.value=e,u.value=!0,l.value=!0},ae=e=>{var t,r;i.value="button",a.value={title:null==(t=e.meta)?void 0:t.title,authMark:null==(r=e.meta)?void 0:r.authMark},u.value=!1,l.value=!0},ne=e=>{K()},se=()=>s(this,null,function*(){try{yield $.confirm("确定要删除该菜单吗?删除后无法恢复","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),B.success("删除成功"),K()}catch(e){"cancel"!==e&&B.error("删除失败")}}),ue=()=>s(this,null,function*(){try{yield $.confirm("确定要删除该权限吗?删除后无法恢复","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),B.success("删除成功"),K()}catch(e){"cancel"!==e&&B.error("删除失败")}}),pe=()=>{r.value=!r.value,E(()=>{var e;if((null==(e=o.value)?void 0:e.elTableRef)&&re.value){const e=t=>{t.forEach(t=>{var l;(null==(l=t.children)?void 0:l.length)&&(o.value.elTableRef.toggleRowExpansion(t,r.value),e(t.children))})};e(re.value)}})};return(e,n)=>{const s=A,p=I,m=T,d=P,c=S,v=j("auth"),C=j("ripple");return f(),h("div",V,[y(s,{modelValue:b(Z),"onUpdate:modelValue":n[0]||(n[0]=e=>x(Z)?Z.value=e:null),items:b(G),showExpand:!1,onReset:z,onSearch:H},null,8,["modelValue","items"]),y(c,{class:"art-table-card",shadow:"never"},{default:g(()=>[y(m,{showZebra:!1,loading:b(t),columns:b(X),"onUpdate:columns":n[1]||(n[1]=e=>x(X)?X.value=e:null),onRefresh:N},{left:g(()=>[_((f(),k(p,{onClick:oe},{default:g(()=>[...n[3]||(n[3]=[w(" 添加菜单 ",-1)])]),_:1})),[[v,"add"],[C]]),_((f(),k(p,{onClick:pe},{default:g(()=>[w(O(b(r)?"收起":"展开"),1)]),_:1})),[[C]])]),_:1},8,["loading","columns"]),y(d,{ref_key:"tableRef",ref:o,rowKey:"path",loading:b(t),columns:b(Y),data:b(re),stripe:!1,"tree-props":{children:"children",hasChildren:"hasChildren"},"default-expand-all":!1},null,8,["loading","columns","data"]),y(R,{visible:b(l),"onUpdate:visible":n[2]||(n[2]=e=>x(l)?l.value=e:null),type:b(i),editData:b(a),lockType:b(u),onSubmit:ne},null,8,["visible","type","editData","lockType"])]),_:1})])}}}))));var Z;export{J as default};