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

var e=Object.defineProperty,a=Object.defineProperties,t=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,o=(a,t,s)=>t in a?e(a,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[t]=s,i=(e,a)=>{for(var t in a||(a={}))n.call(a,t)&&o(e,t,a[t]);if(s)for(var t of s(a))l.call(a,t)&&o(e,t,a[t]);return e},r=(e,s)=>a(e,t(s));import{bn as c,b2 as u,a2 as d,ak as f,am as v,_ as p,d as m,cE as b,dr as g,ds as k,bI as y,X as w,cl as x,a as h,dt as I,c as O,dq as C,aC as _,w as z,o as N,c4 as E,y as R,f as T,z as P,p as $,Z as j,h as A,g as S,i as L,u as Y,k as X,e as D,j as F,aG as M,ab as B,b4 as W,F as V,aJ as q,a5 as G,l as Z,m as H,du as J,dk as K,au as Q,dv as U,dw as ee,aW as ae,V as te,W as se,n as ne,ap as le}from"./index-ip5gDR6L.js";import{E as oe,b as ie}from"./index-CHAf6FpU.js";import{d as re}from"./debounce-B9s63_mG.js";function ce(e,a,t){var s=!0,n=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return c(t)&&(s="leading"in t?!!t.leading:s,n="trailing"in t?!!t.trailing:n),re(e,a,{leading:s,maxWait:a,trailing:n})}const ue=d({urlList:{type:f(Array),default:()=>v([])},zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},hideOnClickModal:Boolean,teleported:Boolean,closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{type:Number,default:1.2},scale:{type:Number,default:1},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7},showProgress:Boolean,crossorigin:{type:f(String)}}),de={close:()=>!0,error:e=>e instanceof Event,switch:e=>u(e),rotate:e=>u(e)},fe=m({name:"ElImageViewer"});const ve=le(p(m(r(i({},fe),{props:ue,emits:de,setup(e,{expose:a,emit:t}){var s;const n=e,l={CONTAIN:{name:"contain",icon:b(k)},ORIGINAL:{name:"original",icon:b(g)}};let o,c="";const{t:u}=y(),d=w("image-viewer"),{nextZIndex:f}=x(),v=h(),p=h(),m=I(),le=O(()=>{const{scale:e,minScale:a,maxScale:t}=n;return C(e,a,t)}),re=h(!0),ue=h(!1),de=h(n.initialIndex),fe=_(l.CONTAIN),ve=h({scale:le.value,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),pe=h(null!=(s=n.zIndex)?s:f()),me=O(()=>{const{urlList:e}=n;return e.length<=1}),be=O(()=>0===de.value),ge=O(()=>de.value===n.urlList.length-1),ke=O(()=>n.urlList[de.value]),ye=O(()=>[d.e("btn"),d.e("prev"),d.is("disabled",!n.infinite&&be.value)]),we=O(()=>[d.e("btn"),d.e("next"),d.is("disabled",!n.infinite&&ge.value)]),xe=O(()=>{const{scale:e,deg:a,offsetX:t,offsetY:s,enableTransition:n}=ve.value;let o=t/e,i=s/e;const r=a*Math.PI/180,c=Math.cos(r),u=Math.sin(r);o=o*c+i*u,i=i*c-t/e*u;const d={transform:`scale(${e}) rotate(${a}deg) translate(${o}px, ${i}px)`,transition:n?"transform .3s":""};return fe.value.name===l.CONTAIN.name&&(d.maxWidth=d.maxHeight="100%"),d}),he=O(()=>`${de.value+1} / ${n.urlList.length}`);function Ie(){m.stop(),null==o||o(),document.body.style.overflow=c,t("close")}function Oe(){re.value=!1}function Ce(e){ue.value=!0,re.value=!1,t("error",e),e.target.alt=u("el.image.error")}function _e(e){if(re.value||0!==e.button||!v.value)return;ve.value.enableTransition=!1;const{offsetX:a,offsetY:t}=ve.value,s=e.pageX,n=e.pageY,l=ce(e=>{ve.value=r(i({},ve.value),{offsetX:a+e.pageX-s,offsetY:t+e.pageY-n})}),o=E(document,"mousemove",l);E(document,"mouseup",()=>{o()}),e.preventDefault()}function ze(){ve.value={scale:le.value,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function Ne(){if(re.value||ue.value)return;const e=ae(l),a=Object.values(l),t=fe.value.name,s=(a.findIndex(e=>e.name===t)+1)%e.length;fe.value=l[e[s]],ze()}function Ee(e){ue.value=!1;const a=n.urlList.length;de.value=(e+a)%a}function Re(){be.value&&!n.infinite||Ee(de.value-1)}function Te(){ge.value&&!n.infinite||Ee(de.value+1)}function Pe(e,a={}){if(re.value||ue.value)return;const{minScale:s,maxScale:l}=n,{zoomRate:o,rotateDeg:r,enableTransition:c}=i({zoomRate:n.zoomRate,rotateDeg:90,enableTransition:!0},a);switch(e){case"zoomOut":ve.value.scale>s&&(ve.value.scale=Number.parseFloat((ve.value.scale/o).toFixed(3)));break;case"zoomIn":ve.value.scale<l&&(ve.value.scale=Number.parseFloat((ve.value.scale*o).toFixed(3)));break;case"clockwise":ve.value.deg+=r,t("rotate",ve.value.deg);break;case"anticlockwise":ve.value.deg-=r,t("rotate",ve.value.deg)}ve.value.enableTransition=c}function $e(e){var a;"pointer"===(null==(a=e.detail)?void 0:a.focusReason)&&e.preventDefault()}function je(){n.closeOnPressEscape&&Ie()}function Ae(e){if(e.ctrlKey)return e.deltaY<0||e.deltaY>0?(e.preventDefault(),!1):void 0}return z(()=>le.value,e=>{ve.value.scale=e}),z(ke,()=>{ne(()=>{const e=p.value;(null==e?void 0:e.complete)||(re.value=!0)})}),z(de,e=>{ze(),t("switch",e)}),N(()=>{!function(){const e=ce(e=>{switch(te(e)){case se.esc:n.closeOnPressEscape&&Ie();break;case se.space:Ne();break;case se.left:Re();break;case se.up:Pe("zoomIn");break;case se.right:Te();break;case se.down:Pe("zoomOut")}}),a=ce(e=>{Pe((e.deltaY||e.deltaX)<0?"zoomIn":"zoomOut",{zoomRate:n.zoomRate,enableTransition:!1})});m.run(()=>{E(document,"keydown",e),E(document,"wheel",a)})}(),o=E("wheel",Ae,{passive:!1}),c=document.body.style.overflow,document.body.style.overflow="hidden"}),a({setActiveItem:Ee}),(e,a)=>(T(),R(Y(ie),{to:"body",disabled:!e.teleported},{default:P(()=>[$(j,{name:"viewer-fade",appear:""},{default:P(()=>[A("div",{ref_key:"wrapper",ref:v,tabindex:-1,class:L(Y(d).e("wrapper")),style:S({zIndex:pe.value})},[$(Y(oe),{loop:"",trapped:"","focus-trap-el":v.value,"focus-start-el":"container",onFocusoutPrevented:$e,onReleaseRequested:je},{default:P(()=>[A("div",{class:L(Y(d).e("mask")),onClick:M(a=>e.hideOnClickModal&&Ie(),["self"])},null,10,["onClick"]),X(" CLOSE "),A("span",{class:L([Y(d).e("btn"),Y(d).e("close")]),onClick:Ie},[$(Y(B),null,{default:P(()=>[$(Y(W))]),_:1})],2),X(" ARROW "),Y(me)?X("v-if",!0):(T(),D(V,{key:0},[A("span",{class:L(Y(ye)),onClick:Re},[$(Y(B),null,{default:P(()=>[$(Y(q))]),_:1})],2),A("span",{class:L(Y(we)),onClick:Te},[$(Y(B),null,{default:P(()=>[$(Y(G))]),_:1})],2)],64)),e.$slots.progress||e.showProgress?(T(),D("div",{key:1,class:L([Y(d).e("btn"),Y(d).e("progress")])},[F(e.$slots,"progress",{activeIndex:de.value,total:e.urlList.length},()=>[Z(H(Y(he)),1)])],2)):X("v-if",!0),X(" ACTIONS "),A("div",{class:L([Y(d).e("btn"),Y(d).e("actions")])},[A("div",{class:L(Y(d).e("actions__inner"))},[F(e.$slots,"toolbar",{actions:Pe,prev:Re,next:Te,reset:Ne,activeIndex:de.value,setActiveItem:Ee},()=>[$(Y(B),{onClick:e=>Pe("zoomOut")},{default:P(()=>[$(Y(J))]),_:1},8,["onClick"]),$(Y(B),{onClick:e=>Pe("zoomIn")},{default:P(()=>[$(Y(K))]),_:1},8,["onClick"]),A("i",{class:L(Y(d).e("actions__divider"))},null,2),$(Y(B),{onClick:Ne},{default:P(()=>[(T(),R(Q(Y(fe).icon)))]),_:1}),A("i",{class:L(Y(d).e("actions__divider"))},null,2),$(Y(B),{onClick:e=>Pe("anticlockwise")},{default:P(()=>[$(Y(U))]),_:1},8,["onClick"]),$(Y(B),{onClick:e=>Pe("clockwise")},{default:P(()=>[$(Y(ee))]),_:1},8,["onClick"])])],2)],2),X(" CANVAS "),A("div",{class:L(Y(d).e("canvas"))},[ue.value&&e.$slots["viewer-error"]?F(e.$slots,"viewer-error",{key:0,activeIndex:de.value,src:Y(ke)}):(T(),D("img",{ref_key:"imgRef",ref:p,key:Y(ke),src:Y(ke),style:S(Y(xe)),class:L(Y(d).e("img")),crossorigin:e.crossorigin,onLoad:Oe,onError:Ce,onMousedown:_e},null,46,["src","crossorigin"]))],2),F(e.$slots,"default")]),_:3},8,["focus-trap-el"])],6)]),_:3})]),_:3},8,["disabled"]))}})),[["__file","image-viewer.vue"]]));export{ve as E};