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

var e=Object.defineProperty,t=Object.defineProperties,a=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,s=(t,a,o)=>a in t?e(t,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[a]=o,r=(e,t)=>{for(var a in t||(t={}))n.call(t,a)&&s(e,a,t[a]);if(o)for(var a of o(t))l.call(t,a)&&s(e,a,t[a]);return e},i=(e,o)=>t(e,a(o)),u=(e,t,a)=>new Promise((o,n)=>{var l=e=>{try{r(a.next(e))}catch(t){n(t)}},s=e=>{try{r(a.throw(e))}catch(t){n(t)}},r=e=>e.done?o(e.value):Promise.resolve(e.value).then(l,s);r((a=a.apply(e,t)).next())});import{b2 as p,bU as d,aa as c,a2 as f,ak as m,am as v,ae as y,bO as b,bP as h,c as x,bV as g,a8 as w,d as S,bW as C,aY as k,X as z,aC as P,a as I,bK as E,bX as j,bY as O,ai as F,ah as $,w as B,n as N,o as V,ao as _,e as M,f as R,k as T,F as H,h as L,i as W,u as K,j as Y,y as A,z as U,au as Z,ab as X,Y as D,aG as G,bZ as q,m as J,g as Q,aZ as ee,ag as te,_ as ae,ap as oe}from"./index-ip5gDR6L.js";import{u as ne,d as le}from"./index-fnD_mPvE.js";import{U as se,I as re,C as ie}from"./index-CHAf6FpU.js";import{a as ue,b as pe}from"./use-form-item-BDb3ZgPk.js";import{u as de,b as ce}from"./use-form-common-props-BwBs_jod.js";import{a as fe,u as me}from"./index-D-10FtUD.js";let ve;const ye={height:"0",visibility:"hidden",overflow:d()?"":"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},be=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break"];function he(e,t=1,a){var o,n;ve||(ve=document.createElement("textarea"),(null!=(o=e.parentNode)?o:document.body).appendChild(ve));const{paddingSize:l,borderSize:s,boxSizing:r,contextStyle:i}=function(e){const t=window.getComputedStyle(e),a=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),n=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:be.map(e=>[e,t.getPropertyValue(e)]),paddingSize:o,borderSize:n,boxSizing:a}}(e);i.forEach(([e,t])=>null==ve?void 0:ve.style.setProperty(e,t)),Object.entries(ye).forEach(([e,t])=>null==ve?void 0:ve.style.setProperty(e,t,"important")),ve.value=e.value||e.placeholder||"";let u=ve.scrollHeight;const d={};"border-box"===r?u+=s:"content-box"===r&&(u-=l),ve.value="";const c=ve.scrollHeight-l;if(p(t)){let e=c*t;"border-box"===r&&(e=e+l+s),u=Math.max(e,u),d.minHeight=`${e}px`}if(p(a)){let e=c*a;"border-box"===r&&(e=e+l+s),u=Math.min(e,u)}return d.height=`${u}px`,null==(n=ve.parentNode)||n.removeChild(ve),ve=void 0,d}const xe=f(i(r({id:{type:String,default:void 0},size:h,disabled:Boolean,modelValue:{type:m([String,Number,Object]),default:""},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:m([Boolean,Object]),default:!1},autocomplete:{type:m(String),default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,clearIcon:{type:y,default:b},showPassword:Boolean,showWordLimit:Boolean,suffixIcon:{type:y},prefixIcon:{type:y},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:m([Object,Array,String]),default:()=>v({})},autofocus:Boolean,rows:{type:Number,default:2}},ne(["ariaLabel"])),{inputmode:{type:m(String),default:void 0},name:String})),ge={[se]:e=>c(e),input:e=>c(e),change:e=>c(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},we=["class","style"],Se=/^on[A-Z]/,Ce=(e={})=>{const{excludeListeners:t=!1,excludeKeys:a}=e,o=x(()=>((null==a?void 0:a.value)||[]).concat(we)),n=w();return x(n?()=>{var e;return g(Object.entries(null==(e=n.proxy)?void 0:e.$attrs).filter(([e])=>!(o.value.includes(e)||t&&Se.test(e))))}:()=>({}))};const ke=S({name:"ElInput",inheritAttrs:!1});const ze=oe(ae(S(i(r({},ke),{props:xe,emits:ge,setup(e,{expose:t,emit:a}){const o=e,n=C(),l=Ce(),s=k(),i=x(()=>["textarea"===o.type?b.b():y.b(),y.m(m.value),y.is("disabled",v.value),y.is("exceed",$e.value),{[y.b("group")]:s.prepend||s.append,[y.m("prefix")]:s.prefix||o.prefixIcon,[y.m("suffix")]:s.suffix||o.suffixIcon||o.clearable||o.showPassword,[y.bm("suffix","password-clear")]:Ee.value&&je.value,[y.b("hidden")]:"hidden"===o.type},n.class]),p=x(()=>[y.e("wrapper"),y.is("focus",ye.value)]),{form:d,formItem:c}=ue(),{inputId:f}=pe(o,{formItemContext:c}),m=de(),v=ce(),y=z("input"),b=z("textarea"),h=P(),g=P(),w=I(!1),S=I(!1),ae=I(),oe=P(o.inputStyle),ne=x(()=>h.value||g.value),{wrapperRef:ve,isFocused:ye,handleFocus:be,handleBlur:xe}=fe(ne,{disabled:v,afterBlur(){var e;o.validateEvent&&(null==(e=null==c?void 0:c.validate)||e.call(c,"blur").catch(e=>le()))}}),ge=x(()=>{var e;return null!=(e=null==d?void 0:d.statusIcon)&&e}),we=x(()=>(null==c?void 0:c.validateState)||""),Se=x(()=>we.value&&E[we.value]),ke=x(()=>S.value?j:O),ze=x(()=>[n.style]),Pe=x(()=>[o.inputStyle,oe.value,{resize:o.resize}]),Ie=x(()=>F(o.modelValue)?"":String(o.modelValue)),Ee=x(()=>o.clearable&&!v.value&&!o.readonly&&!!Ie.value&&(ye.value||w.value)),je=x(()=>o.showPassword&&!v.value&&!!Ie.value),Oe=x(()=>o.showWordLimit&&!!o.maxlength&&("text"===o.type||"textarea"===o.type)&&!v.value&&!o.readonly&&!o.showPassword),Fe=x(()=>Ie.value.length),$e=x(()=>!!Oe.value&&Fe.value>Number(o.maxlength)),Be=x(()=>!!s.suffix||!!o.suffixIcon||Ee.value||o.showPassword||Oe.value||!!we.value&&ge.value),[Ne,Ve]=function(e){let t;return[function(){if(null==e.value)return;const{selectionStart:a,selectionEnd:o,value:n}=e.value;if(null==a||null==o)return;const l=n.slice(0,Math.max(0,a)),s=n.slice(Math.max(0,o));t={selectionStart:a,selectionEnd:o,value:n,beforeTxt:l,afterTxt:s}},function(){if(null==e.value||null==t)return;const{value:a}=e.value,{beforeTxt:o,afterTxt:n,selectionStart:l}=t;if(null==o||null==n||null==l)return;let s=a.length;if(a.endsWith(n))s=a.length-n.length;else if(a.startsWith(o))s=o.length;else{const e=o[l-1],t=a.indexOf(e,l-1);-1!==t&&(s=t+1)}e.value.setSelectionRange(s,s)}]}(h);$(g,e=>{if(Me(),!Oe.value||"both"!==o.resize)return;const t=e[0],{width:a}=t.contentRect;ae.value={right:`calc(100% - ${a+15+6}px)`}});const _e=()=>{const{type:e,autosize:t}=o;if(ee&&"textarea"===e&&g.value)if(t){const e=te(t)?t.minRows:void 0,a=te(t)?t.maxRows:void 0,o=he(g.value,e,a);oe.value=r({overflowY:"hidden"},o),N(()=>{g.value.offsetHeight,oe.value=o})}else oe.value={minHeight:he(g.value).minHeight}},Me=(e=>{let t=!1;return()=>{var a;if(t||!o.autosize)return;null===(null==(a=g.value)?void 0:a.offsetParent)||(setTimeout(e),t=!0)}})(_e),Re=()=>{const e=ne.value,t=o.formatter?o.formatter(Ie.value):Ie.value;e&&e.value!==t&&(e.value=t)},Te=e=>u(this,null,function*(){Ne();let{value:t}=e.target;o.formatter&&o.parser&&(t=o.parser(t)),Le.value||(t!==Ie.value?(a(se,t),a(re,t),yield N(),Re(),Ve()):Re())}),He=e=>{let{value:t}=e.target;o.formatter&&o.parser&&(t=o.parser(t)),a(ie,t)},{isComposing:Le,handleCompositionStart:We,handleCompositionUpdate:Ke,handleCompositionEnd:Ye}=me({emit:a,afterComposition:Te}),Ae=()=>{Ne(),S.value=!S.value,setTimeout(Ve)},Ue=e=>{w.value=!1,a("mouseleave",e)},Ze=e=>{w.value=!0,a("mouseenter",e)},Xe=e=>{a("keydown",e)},De=()=>{a(se,""),a(ie,""),a("clear"),a(re,"")};return B(()=>o.modelValue,()=>{var e;N(()=>_e()),o.validateEvent&&(null==(e=null==c?void 0:c.validate)||e.call(c,"change").catch(e=>le()))}),B(Ie,()=>Re()),B(()=>o.type,()=>u(this,null,function*(){yield N(),Re(),_e()})),V(()=>{!o.formatter&&o.parser,Re(),N(_e)}),t({input:h,textarea:g,ref:ne,textareaStyle:Pe,autosize:_(o,"autosize"),isComposing:Le,focus:()=>{var e;return null==(e=ne.value)?void 0:e.focus()},blur:()=>{var e;return null==(e=ne.value)?void 0:e.blur()},select:()=>{var e;null==(e=ne.value)||e.select()},clear:De,resizeTextarea:_e}),(e,t)=>(R(),M("div",{class:W([K(i),{[K(y).bm("group","append")]:e.$slots.append,[K(y).bm("group","prepend")]:e.$slots.prepend}]),style:Q(K(ze)),onMouseenter:Ze,onMouseleave:Ue},[T(" input "),"textarea"!==e.type?(R(),M(H,{key:0},[T(" prepend slot "),e.$slots.prepend?(R(),M("div",{key:0,class:W(K(y).be("group","prepend"))},[Y(e.$slots,"prepend")],2)):T("v-if",!0),L("div",{ref_key:"wrapperRef",ref:ve,class:W(K(p))},[T(" prefix slot "),e.$slots.prefix||e.prefixIcon?(R(),M("span",{key:0,class:W(K(y).e("prefix"))},[L("span",{class:W(K(y).e("prefix-inner"))},[Y(e.$slots,"prefix"),e.prefixIcon?(R(),A(K(X),{key:0,class:W(K(y).e("icon"))},{default:U(()=>[(R(),A(Z(e.prefixIcon)))]),_:1},8,["class"])):T("v-if",!0)],2)],2)):T("v-if",!0),L("input",D({id:K(f),ref_key:"input",ref:h,class:K(y).e("inner")},K(l),{name:e.name,minlength:e.minlength,maxlength:e.maxlength,type:e.showPassword?S.value?"text":"password":e.type,disabled:K(v),readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.ariaLabel,placeholder:e.placeholder,style:e.inputStyle,form:e.form,autofocus:e.autofocus,role:e.containerRole,inputmode:e.inputmode,onCompositionstart:K(We),onCompositionupdate:K(Ke),onCompositionend:K(Ye),onInput:Te,onChange:He,onKeydown:Xe}),null,16,["id","name","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus","role","inputmode","onCompositionstart","onCompositionupdate","onCompositionend"]),T(" suffix slot "),K(Be)?(R(),M("span",{key:1,class:W(K(y).e("suffix"))},[L("span",{class:W(K(y).e("suffix-inner"))},[K(Ee)&&K(je)&&K(Oe)?T("v-if",!0):(R(),M(H,{key:0},[Y(e.$slots,"suffix"),e.suffixIcon?(R(),A(K(X),{key:0,class:W(K(y).e("icon"))},{default:U(()=>[(R(),A(Z(e.suffixIcon)))]),_:1},8,["class"])):T("v-if",!0)],64)),K(Ee)?(R(),A(K(X),{key:1,class:W([K(y).e("icon"),K(y).e("clear")]),onMousedown:G(K(q),["prevent"]),onClick:De},{default:U(()=>[(R(),A(Z(e.clearIcon)))]),_:1},8,["class","onMousedown"])):T("v-if",!0),K(je)?(R(),A(K(X),{key:2,class:W([K(y).e("icon"),K(y).e("password")]),onClick:Ae},{default:U(()=>[(R(),A(Z(K(ke))))]),_:1},8,["class"])):T("v-if",!0),K(Oe)?(R(),M("span",{key:3,class:W(K(y).e("count"))},[L("span",{class:W(K(y).e("count-inner"))},J(K(Fe))+" / "+J(e.maxlength),3)],2)):T("v-if",!0),K(we)&&K(Se)&&K(ge)?(R(),A(K(X),{key:4,class:W([K(y).e("icon"),K(y).e("validateIcon"),K(y).is("loading","validating"===K(we))])},{default:U(()=>[(R(),A(Z(K(Se))))]),_:1},8,["class"])):T("v-if",!0)],2)],2)):T("v-if",!0)],2),T(" append slot "),e.$slots.append?(R(),M("div",{key:1,class:W(K(y).be("group","append"))},[Y(e.$slots,"append")],2)):T("v-if",!0)],64)):(R(),M(H,{key:1},[T(" textarea "),L("textarea",D({id:K(f),ref_key:"textarea",ref:g,class:[K(b).e("inner"),K(y).is("focus",K(ye))]},K(l),{minlength:e.minlength,maxlength:e.maxlength,tabindex:e.tabindex,disabled:K(v),readonly:e.readonly,autocomplete:e.autocomplete,style:K(Pe),"aria-label":e.ariaLabel,placeholder:e.placeholder,form:e.form,autofocus:e.autofocus,rows:e.rows,role:e.containerRole,onCompositionstart:K(We),onCompositionupdate:K(Ke),onCompositionend:K(Ye),onInput:Te,onFocus:K(be),onBlur:K(xe),onChange:He,onKeydown:Xe}),null,16,["id","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus","rows","role","onCompositionstart","onCompositionupdate","onCompositionend","onFocus","onBlur"]),K(Oe)?(R(),M("span",{key:0,style:Q(ae.value),class:W(K(y).e("count"))},J(K(Fe))+" / "+J(e.maxlength),7)):T("v-if",!0)],64))],38))}})),[["__file","input.vue"]]));export{ze as E,Ce as u};