@sugarat/easypicker2-client 2.7.1 → 2.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{data-analysis-B61f8OZD.js → data-analysis-Bnq_VWU8.js} +2 -2
- package/dist/assets/{data-analysis-B61f8OZD.js.map → data-analysis-Bnq_VWU8.js.map} +1 -1
- package/dist/assets/{data-analysis-legacy-sXkPNcPD.js → data-analysis-legacy-_KcR253K.js} +2 -2
- package/dist/assets/{data-analysis-legacy-sXkPNcPD.js.map → data-analysis-legacy-_KcR253K.js.map} +1 -1
- package/dist/assets/{data-board-BIN3HXKE.js → data-board-L3s5ouKd.js} +2 -2
- package/dist/assets/{data-board-BIN3HXKE.js.map → data-board-L3s5ouKd.js.map} +1 -1
- package/dist/assets/{data-board-legacy-mqcredpF.js → data-board-legacy-BFxWeFnQ.js} +2 -2
- package/dist/assets/{data-board-legacy-mqcredpF.js.map → data-board-legacy-BFxWeFnQ.js.map} +1 -1
- package/dist/assets/{el-date-picker-legacy-CACCtxzL.js → el-date-picker-legacy-Uk9x97L5.js} +2 -2
- package/dist/assets/{el-date-picker-legacy-CACCtxzL.js.map → el-date-picker-legacy-Uk9x97L5.js.map} +1 -1
- package/dist/assets/{el-date-picker-B-cvGosU.js → el-date-picker-mhY2RJMG.js} +2 -2
- package/dist/assets/{el-date-picker-B-cvGosU.js.map → el-date-picker-mhY2RJMG.js.map} +1 -1
- package/dist/assets/{el-dialog-C9wNxcPt.js → el-dialog-PRccau6N.js} +2 -2
- package/dist/assets/{el-dialog-C9wNxcPt.js.map → el-dialog-PRccau6N.js.map} +1 -1
- package/dist/assets/{el-dialog-legacy-CX7a77_4.js → el-dialog-legacy-BRLM43ZY.js} +2 -2
- package/dist/assets/{el-dialog-legacy-CX7a77_4.js.map → el-dialog-legacy-BRLM43ZY.js.map} +1 -1
- package/dist/assets/{el-dropdown-item-jbdZL0Yj.js → el-dropdown-item-Cr71teRg.js} +2 -2
- package/dist/assets/{el-dropdown-item-jbdZL0Yj.js.map → el-dropdown-item-Cr71teRg.js.map} +1 -1
- package/dist/assets/{el-dropdown-item-legacy-ChoB2YAN.js → el-dropdown-item-legacy-B0ufpHvy.js} +2 -2
- package/dist/assets/{el-dropdown-item-legacy-ChoB2YAN.js.map → el-dropdown-item-legacy-B0ufpHvy.js.map} +1 -1
- package/dist/assets/{el-form-item-BhAyaXPT.js → el-form-item-DOwM4Mv8.js} +2 -2
- package/dist/assets/{el-form-item-BhAyaXPT.js.map → el-form-item-DOwM4Mv8.js.map} +1 -1
- package/dist/assets/{el-form-item-legacy-DNwgpXzk.js → el-form-item-legacy-CvQy7syv.js} +2 -2
- package/dist/assets/{el-form-item-legacy-DNwgpXzk.js.map → el-form-item-legacy-CvQy7syv.js.map} +1 -1
- package/dist/assets/{el-loading-D5D_2rI_.js → el-loading-DNzUD85e.js} +2 -2
- package/dist/assets/{el-loading-D5D_2rI_.js.map → el-loading-DNzUD85e.js.map} +1 -1
- package/dist/assets/{el-loading-legacy-CCDpn-BT.js → el-loading-legacy-B3RLcjwN.js} +2 -2
- package/dist/assets/{el-loading-legacy-CCDpn-BT.js.map → el-loading-legacy-B3RLcjwN.js.map} +1 -1
- package/dist/assets/{el-pagination-DRV4WevC.js → el-pagination-iCicJonH.js} +2 -2
- package/dist/assets/{el-pagination-DRV4WevC.js.map → el-pagination-iCicJonH.js.map} +1 -1
- package/dist/assets/{el-pagination-legacy-CAxn6D5y.js → el-pagination-legacy-Bf-Bzx7n.js} +2 -2
- package/dist/assets/{el-pagination-legacy-CAxn6D5y.js.map → el-pagination-legacy-Bf-Bzx7n.js.map} +1 -1
- package/dist/assets/{el-progress-GDfl1hgb.js → el-progress-1hLO5hs0.js} +2 -2
- package/dist/assets/{el-progress-GDfl1hgb.js.map → el-progress-1hLO5hs0.js.map} +1 -1
- package/dist/assets/{el-progress-legacy-C5K3FqLs.js → el-progress-legacy-QmxDezwR.js} +2 -2
- package/dist/assets/{el-progress-legacy-C5K3FqLs.js.map → el-progress-legacy-QmxDezwR.js.map} +1 -1
- package/dist/assets/{el-select-B9z8VvNb.js → el-select-CVjQdC39.js} +2 -2
- package/dist/assets/{el-select-B9z8VvNb.js.map → el-select-CVjQdC39.js.map} +1 -1
- package/dist/assets/{el-select-legacy-BI1YK9Jv.js → el-select-legacy-DSGgSQYX.js} +2 -2
- package/dist/assets/{el-select-legacy-BI1YK9Jv.js.map → el-select-legacy-DSGgSQYX.js.map} +1 -1
- package/dist/assets/{el-switch-oOC_byJv.js → el-switch-B76QvbJN.js} +2 -2
- package/dist/assets/{el-switch-oOC_byJv.js.map → el-switch-B76QvbJN.js.map} +1 -1
- package/dist/assets/{el-switch-legacy-CG_sT4XS.js → el-switch-legacy-CHkEgavQ.js} +2 -2
- package/dist/assets/{el-switch-legacy-CG_sT4XS.js.map → el-switch-legacy-CHkEgavQ.js.map} +1 -1
- package/dist/assets/{el-tab-pane-NvGl_NI0.js → el-tab-pane-BhVByOfe.js} +2 -2
- package/dist/assets/{el-tab-pane-NvGl_NI0.js.map → el-tab-pane-BhVByOfe.js.map} +1 -1
- package/dist/assets/{el-tab-pane-legacy-usarmKVQ.js → el-tab-pane-legacy-DMdhUCHY.js} +2 -2
- package/dist/assets/{el-tab-pane-legacy-usarmKVQ.js.map → el-tab-pane-legacy-DMdhUCHY.js.map} +1 -1
- package/dist/assets/{el-table-column-legacy-BWpnrxZl.js → el-table-column-legacy-N_oU_-0P.js} +2 -2
- package/dist/assets/{el-table-column-legacy-BWpnrxZl.js.map → el-table-column-legacy-N_oU_-0P.js.map} +1 -1
- package/dist/assets/{el-table-column-JBAymLKS.js → el-table-column-tkbtgrcD.js} +2 -2
- package/dist/assets/{el-table-column-JBAymLKS.js.map → el-table-column-tkbtgrcD.js.map} +1 -1
- package/dist/assets/{index-Dj5caLYF.js → index-3yen43So.js} +2 -2
- package/dist/assets/{index-Dj5caLYF.js.map → index-3yen43So.js.map} +1 -1
- package/dist/assets/{index-CHIrZkSk.js → index-9zuSLjpa.js} +2 -2
- package/dist/assets/{index-CHIrZkSk.js.map → index-9zuSLjpa.js.map} +1 -1
- package/dist/assets/{index-MTuc20rr.js → index-B-6zRvEX.js} +2 -2
- package/dist/assets/{index-MTuc20rr.js.map → index-B-6zRvEX.js.map} +1 -1
- package/dist/assets/{index-DCwrZmag.js → index-BN1f1UM3.js} +2 -2
- package/dist/assets/{index-DCwrZmag.js.map → index-BN1f1UM3.js.map} +1 -1
- package/dist/assets/{index-Byzqqd86.js → index-BUmkgniE.js} +2 -2
- package/dist/assets/{index-Byzqqd86.js.map → index-BUmkgniE.js.map} +1 -1
- package/dist/assets/index-BbfnoqK6.js +2 -0
- package/dist/assets/index-BbfnoqK6.js.map +1 -0
- package/dist/assets/index-C3IckGNL.js +2 -0
- package/dist/assets/index-C3IckGNL.js.map +1 -0
- package/dist/assets/index-CYAf_OTx.js +40 -0
- package/dist/assets/index-CYAf_OTx.js.map +1 -0
- package/dist/assets/{index-B0mV367i.js → index-Cb6-p2hG.js} +2 -2
- package/dist/assets/{index-B0mV367i.js.map → index-Cb6-p2hG.js.map} +1 -1
- package/dist/assets/index-Cfg2jkVw.css +1 -0
- package/dist/assets/{index-BOep9MOB.css → index-CkMvb3wF.css} +1 -1
- package/dist/assets/{index-CKIiHmIf.js → index-Cl4G6EQO.js} +2 -2
- package/dist/assets/{index-CKIiHmIf.js.map → index-Cl4G6EQO.js.map} +1 -1
- package/dist/assets/index-CnbFxlpi.css +1 -0
- package/dist/assets/{index-C0niS8Vv.js → index-Cyb1OjRN.js} +2 -2
- package/dist/assets/{index-C0niS8Vv.js.map → index-Cyb1OjRN.js.map} +1 -1
- package/dist/assets/{index-Dxy6ycv8.js → index-D7aZxhM6.js} +2 -2
- package/dist/assets/{index-Dxy6ycv8.js.map → index-D7aZxhM6.js.map} +1 -1
- package/dist/assets/{index-DDGYm9L-.js → index-DI41wbky.js} +2 -2
- package/dist/assets/{index-DDGYm9L-.js.map → index-DI41wbky.js.map} +1 -1
- package/dist/assets/{index-Cno4i6lg.js → index-DcOjlpKI.js} +2 -2
- package/dist/assets/{index-Cno4i6lg.js.map → index-DcOjlpKI.js.map} +1 -1
- package/dist/assets/{index-bD-fr3vy.js → index-DjO-nUIS.js} +2 -2
- package/dist/assets/{index-bD-fr3vy.js.map → index-DjO-nUIS.js.map} +1 -1
- package/dist/assets/index-DnxF29eG.css +1 -0
- package/dist/assets/{index-BUF8Xxid.js → index-DrKX0cCg.js} +2 -2
- package/dist/assets/{index-BUF8Xxid.js.map → index-DrKX0cCg.js.map} +1 -1
- package/dist/assets/index-F3S0vKOW.js +2 -0
- package/dist/assets/{index-DEiWe2Bk.js.map → index-F3S0vKOW.js.map} +1 -1
- package/dist/assets/{index-DRHl9KU8.js → index-I78Ur1Md.js} +2 -2
- package/dist/assets/{index-DRHl9KU8.js.map → index-I78Ur1Md.js.map} +1 -1
- package/dist/assets/{index-fb67TYJ8.js → index-L0LtrfyP.js} +2 -2
- package/dist/assets/{index-fb67TYJ8.js.map → index-L0LtrfyP.js.map} +1 -1
- package/dist/assets/index-lTmxAqnX.js +2 -0
- package/dist/assets/index-lTmxAqnX.js.map +1 -0
- package/dist/assets/{index-legacy-2G5G7SiF.js → index-legacy-BJNK4MqF.js} +2 -2
- package/dist/assets/index-legacy-BJNK4MqF.js.map +1 -0
- package/dist/assets/{index-legacy-DC5-MYgp.js → index-legacy-BLlk8iq-.js} +13 -8
- package/dist/assets/index-legacy-BLlk8iq-.js.map +1 -0
- package/dist/assets/{index-legacy-DV-KwU0c.js → index-legacy-BmWYm3m_.js} +2 -2
- package/dist/assets/{index-legacy-DV-KwU0c.js.map → index-legacy-BmWYm3m_.js.map} +1 -1
- package/dist/assets/index-legacy-Bnp7569A.js +2 -0
- package/dist/assets/{index-legacy-DM_G6GXF.js.map → index-legacy-Bnp7569A.js.map} +1 -1
- package/dist/assets/{index-legacy-DmJc-LaA.js → index-legacy-CQ24Si-w.js} +2 -2
- package/dist/assets/{index-legacy-DmJc-LaA.js.map → index-legacy-CQ24Si-w.js.map} +1 -1
- package/dist/assets/{index-legacy-l7TP3X8w.js → index-legacy-CT1nF7s9.js} +2 -2
- package/dist/assets/{index-legacy-l7TP3X8w.js.map → index-legacy-CT1nF7s9.js.map} +1 -1
- package/dist/assets/{index-legacy-K0GPuvtR.js → index-legacy-CeVzo60P.js} +2 -2
- package/dist/assets/{index-legacy-K0GPuvtR.js.map → index-legacy-CeVzo60P.js.map} +1 -1
- package/dist/assets/index-legacy-Cf0w_PNA.js +2 -0
- package/dist/assets/index-legacy-Cf0w_PNA.js.map +1 -0
- package/dist/assets/{index-legacy-B1WwgC0S.js → index-legacy-DZSQUiaj.js} +2 -2
- package/dist/assets/{index-legacy-B1WwgC0S.js.map → index-legacy-DZSQUiaj.js.map} +1 -1
- package/dist/assets/{index-legacy-Dmi-DBK0.js → index-legacy-D_K0eXFb.js} +2 -2
- package/dist/assets/{index-legacy-Dmi-DBK0.js.map → index-legacy-D_K0eXFb.js.map} +1 -1
- package/dist/assets/{index-legacy-DUrsbgNe.js → index-legacy-Da3YyHW_.js} +2 -2
- package/dist/assets/{index-legacy-DUrsbgNe.js.map → index-legacy-Da3YyHW_.js.map} +1 -1
- package/dist/assets/{index-legacy-DiNZXmUs.js → index-legacy-Da4s_D85.js} +2 -2
- package/dist/assets/{index-legacy-DiNZXmUs.js.map → index-legacy-Da4s_D85.js.map} +1 -1
- package/dist/assets/{index-legacy-DP3Q6cDA.js → index-legacy-DhNaKknk.js} +2 -2
- package/dist/assets/{index-legacy-DP3Q6cDA.js.map → index-legacy-DhNaKknk.js.map} +1 -1
- package/dist/assets/{index-legacy-BN-W2P7-.js → index-legacy-Dm1CXog1.js} +2 -2
- package/dist/assets/{index-legacy-BN-W2P7-.js.map → index-legacy-Dm1CXog1.js.map} +1 -1
- package/dist/assets/{index-legacy-gQf30T09.js → index-legacy-DpNNn-Dy.js} +2 -2
- package/dist/assets/index-legacy-DpNNn-Dy.js.map +1 -0
- package/dist/assets/{index-legacy-BwpR0DP9.js → index-legacy-PkF4cKK9.js} +2 -2
- package/dist/assets/{index-legacy-BwpR0DP9.js.map → index-legacy-PkF4cKK9.js.map} +1 -1
- package/dist/assets/{index-legacy-BdJHr4yN.js → index-legacy-QHDmYAB8.js} +2 -2
- package/dist/assets/{index-legacy-BdJHr4yN.js.map → index-legacy-QHDmYAB8.js.map} +1 -1
- package/dist/assets/{index-legacy-BZb5uhBF.js → index-legacy-_M1-0586.js} +2 -2
- package/dist/assets/{index-legacy-BZb5uhBF.js.map → index-legacy-_M1-0586.js.map} +1 -1
- package/dist/assets/{index-legacy-Cbyz8WHA.js → index-legacy-m0dvnwGi.js} +2 -2
- package/dist/assets/{index-legacy-Cbyz8WHA.js.map → index-legacy-m0dvnwGi.js.map} +1 -1
- package/dist/assets/{index-legacy-Qibh5ehq.js → index-legacy-vRS79jKS.js} +2 -2
- package/dist/assets/{index-legacy-Qibh5ehq.js.map → index-legacy-vRS79jKS.js.map} +1 -1
- package/dist/assets/{isEqual-pN6Ih18F.js → isEqual-BHpVKj_X.js} +2 -2
- package/dist/assets/{isEqual-pN6Ih18F.js.map → isEqual-BHpVKj_X.js.map} +1 -1
- package/dist/assets/{isEqual-legacy-DVLZyo95.js → isEqual-legacy-BWUPR8bV.js} +2 -2
- package/dist/assets/{isEqual-legacy-DVLZyo95.js.map → isEqual-legacy-BWUPR8bV.js.map} +1 -1
- package/dist/assets/{refresh-BTQLK-UW.js → refresh-DPuuDO9h.js} +2 -2
- package/dist/assets/{refresh-BTQLK-UW.js.map → refresh-DPuuDO9h.js.map} +1 -1
- package/dist/assets/{refresh-legacy-Cv7RM_sm.js → refresh-legacy-DOts-8Wc.js} +2 -2
- package/dist/assets/{refresh-legacy-Cv7RM_sm.js.map → refresh-legacy-DOts-8Wc.js.map} +1 -1
- package/dist/assets/{tip-DQo-E_Pu.js → tip-CH7nBVXc.js} +2 -2
- package/dist/assets/{tip-DQo-E_Pu.js.map → tip-CH7nBVXc.js.map} +1 -1
- package/dist/assets/{tip-legacy-Ci60OMi9.js → tip-legacy-DiCk_qP1.js} +2 -2
- package/dist/assets/{tip-legacy-Ci60OMi9.js.map → tip-legacy-DiCk_qP1.js.map} +1 -1
- package/dist/assets/validator-BMr-jeUB.js +2 -0
- package/dist/assets/{validator-CZlzBDi2.js.map → validator-BMr-jeUB.js.map} +1 -1
- package/dist/assets/validator-legacy-CacjPWoF.js +2 -0
- package/dist/assets/{validator-legacy-D-pC1hkO.js.map → validator-legacy-CacjPWoF.js.map} +1 -1
- package/dist/index.html +2 -2
- package/package.json +3 -4
- package/dist/assets/index-1eHw6sEI.css +0 -1
- package/dist/assets/index-BG1GuMIu.css +0 -1
- package/dist/assets/index-BxsJs6HZ.js +0 -2
- package/dist/assets/index-BxsJs6HZ.js.map +0 -1
- package/dist/assets/index-ChQZKkse.css +0 -1
- package/dist/assets/index-D80lTVeV.js +0 -36
- package/dist/assets/index-D80lTVeV.js.map +0 -1
- package/dist/assets/index-DEiWe2Bk.js +0 -2
- package/dist/assets/index-DJnltRnr.js +0 -2
- package/dist/assets/index-DJnltRnr.js.map +0 -1
- package/dist/assets/index-DMIqQLOE.js +0 -2
- package/dist/assets/index-DMIqQLOE.js.map +0 -1
- package/dist/assets/index-legacy-2G5G7SiF.js.map +0 -1
- package/dist/assets/index-legacy-Chw6iyCz.js +0 -2
- package/dist/assets/index-legacy-Chw6iyCz.js.map +0 -1
- package/dist/assets/index-legacy-DC5-MYgp.js.map +0 -1
- package/dist/assets/index-legacy-DM_G6GXF.js +0 -2
- package/dist/assets/index-legacy-gQf30T09.js.map +0 -1
- package/dist/assets/validator-CZlzBDi2.js +0 -2
- package/dist/assets/validator-legacy-D-pC1hkO.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as U,d as $,a as b,c as k,b as o,r as u,h as A,u as M,i as S,j as t,w as d,k as v,l as q,e as h,t as H,m as g,n as N,q as V,E as n,P as I,U as j,s as F,v as L,x as R,y as G,z as J,A as K,_ as O}from"./index-
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{g as U,d as $,a as b,c as k,b as o,r as u,h as A,u as M,i as S,j as t,w as d,k as v,l as q,e as h,t as H,m as g,n as N,q as V,E as n,P as I,U as j,s as F,v as L,x as R,y as G,z as J,A as K,_ as O}from"./index-CYAf_OTx.js";const Q=$({name:"ChatDotSquare"}),W={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},X=o("path",{fill:"currentColor",d:"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z"},null,-1),Y=o("path",{fill:"currentColor",d:"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z"},null,-1),Z=[X,Y];function ee(C,l,i,r,p,x){return b(),k("svg",W,Z)}var ae=U(Q,[["render",ee]]);const te={class:"login"},oe={class:"inputArea"},ne={class:"tc"},le={class:"links"},se=$({__name:"index",setup(C){const l=u(""),i=u(""),r=u(""),p=u(""),x=A(),y=M(),D=()=>{y.replace({name:"dashboard"})},T=()=>V.test(l.value)?J.test(r.value)?r.value!==p.value?(n.warning("两次输入的密码不一致"),!1):K.test(i.value)?!0:(n.warning("验证码不正确(4位 数字)"),!1):(n.warning("密码格式不正确(6-16位 支持字母/数字/下划线)"),!1):(n.warning("手机号格式不正确"),!1),f=u("获取验证码"),c=u(0),w=()=>{if(c.value===0){f.value="获取验证码";return}f.value="".concat(c.value,"s"),c.value-=1,setTimeout(w,1e3)},z=()=>{if(!V.test(l.value)){n.warning("手机号格式不正确");return}I.getCode(l.value).then(()=>{c.value=120,w(),n.success("获取成功,请注意查看手机短信")})},B=()=>{T()&&j.resetPwd(l.value,i.value,r.value).then(m=>{n.success("密码重置成功");const{token:e}=m.data;x.commit("user/setToken",e),D()}).catch(m=>{const{code:e,data:a}=m,_={1008:"该手机号未绑定任何账号",1003:"验证码不正确",1004:"密码格式不正确",1010:"账号已被封禁,有疑问请联系管理员",1009:"账号已被冻结,解冻时间".concat((a==null?void 0:a.openTime)&&F(new Date(a.openTime)))};n.error(_[e]||"重置失败,未知错误")})};return(m,e)=>{const a=L,_=R,E=G,P=S("router-link");return b(),k("div",te,[t(N,null,{default:d(()=>[o("div",oe,[o("div",null,[t(a,{maxlength:"11",placeholder:"手机号","prefix-icon":v(q),modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=s=>l.value=s),clearable:""},null,8,["prefix-icon","modelValue"])]),o("div",null,[t(a,{maxlength:"4",type:"number",placeholder:"请输入验证码","prefix-icon":v(ae),modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=s=>i.value=s),clearable:""},{append:d(()=>[t(_,{disabled:c.value!==0,onClick:z},{default:d(()=>[h(H(f.value),1)]),_:1},8,["disabled"])]),_:1},8,["prefix-icon","modelValue"])]),o("div",null,[t(a,{maxlength:"16",minlength:"6",type:"password",placeholder:"请输入新密码","prefix-icon":v(g),modelValue:r.value,"onUpdate:modelValue":e[2]||(e[2]=s=>r.value=s),"show-password":"",clearable:""},null,8,["prefix-icon","modelValue"])]),o("div",null,[t(a,{maxlength:"16",minlength:"6",type:"password",placeholder:"请再次输入新密码","prefix-icon":v(g),modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=s=>p.value=s),"show-password":"",clearable:""},null,8,["prefix-icon","modelValue"])]),o("div",ne,[t(_,{onClick:B,type:"primary",class:"fw-w100"},{default:d(()=>[h("确认重置")]),_:1})]),t(E),o("div",le,[t(P,{to:"/login"},{default:d(()=>[h("去登陆")]),_:1})])])]),_:1})])}}}),ue=O(se,[["__scopeId","data-v-4e645608"]]);export{ue as default};
|
|
2
|
+
//# sourceMappingURL=index-Cb6-p2hG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-Cb6-p2hG.js","sources":["../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/chat-dot-square.mjs","../../src/pages/reset/index.vue"],"sourcesContent":["import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"ChatDotSquare\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z\"\n}, null, -1);\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_4);\n}\nvar chatDotSquare = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { chatDotSquare as default };\n","<template>\n <div class=\"login\">\n <login-panel>\n <!-- 表单输入区域 -->\n <div class=\"inputArea\">\n <div>\n <el-input\n maxlength=\"11\"\n placeholder=\"手机号\"\n :prefix-icon=\"Phone\"\n v-model=\"account\"\n clearable\n ></el-input>\n </div>\n <div>\n <el-input\n maxlength=\"4\"\n type=\"number\"\n placeholder=\"请输入验证码\"\n :prefix-icon=\"ChatDotSquare\"\n v-model=\"code\"\n clearable\n >\n <template #append>\n <!-- 获取验证码 -->\n <el-button :disabled=\"time !== 0\" @click=\"getCode\">{{ codeText }}</el-button>\n </template>\n </el-input>\n </div>\n <div>\n <el-input\n maxlength=\"16\"\n minlength=\"6\"\n type=\"password\"\n placeholder=\"请输入新密码\"\n :prefix-icon=\"Lock\"\n v-model=\"pwd1\"\n show-password\n clearable\n ></el-input>\n </div>\n <div>\n <el-input\n maxlength=\"16\"\n minlength=\"6\"\n type=\"password\"\n placeholder=\"请再次输入新密码\"\n :prefix-icon=\"Lock\"\n v-model=\"pwd2\"\n show-password\n clearable\n ></el-input>\n </div>\n <div class=\"tc\">\n <el-button @click=\"reset\" type=\"primary\" class=\"fw-w100\">确认重置</el-button>\n </div>\n <el-divider></el-divider>\n <div class=\"links\">\n <router-link to=\"/login\">去登陆</router-link>\n </div>\n </div>\n </login-panel>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport {\n Lock, Phone, ChatDotSquare,\n} from '@element-plus/icons-vue'\nimport {\n ref,\n} from 'vue'\nimport { useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\nimport loginPanel from '@components/loginPanel.vue'\nimport { PublicApi, UserApi } from '@/apis'\nimport {\n rMobilePhone, rPassword, rVerCode,\n} from '@/utils/regExp'\nimport { formatDate } from '@/utils/stringUtil'\n\nconst account = ref('')\nconst code = ref('')\nconst pwd1 = ref('')\nconst pwd2 = ref('')\nconst $store = useStore()\nconst $router = useRouter()\nconst redirectDashBoard = () => {\n $router.replace({\n name: 'dashboard',\n })\n}\nconst checkForm = () => {\n if (!rMobilePhone.test(account.value)) {\n ElMessage.warning('手机号格式不正确')\n return false\n }\n\n if (!rPassword.test(pwd1.value)) {\n ElMessage.warning('密码格式不正确(6-16位 支持字母/数字/下划线)')\n return false\n }\n if (pwd1.value !== pwd2.value) {\n ElMessage.warning('两次输入的密码不一致')\n return false\n }\n\n if (!rVerCode.test(code.value)) {\n ElMessage.warning('验证码不正确(4位 数字)')\n return false\n }\n return true\n}\nconst codeText = ref('获取验证码')\nconst time = ref(0)\nconst refreshCodeText = () => {\n if (time.value === 0) {\n codeText.value = '获取验证码'\n return\n }\n codeText.value = `${time.value}s`\n time.value -= 1\n setTimeout(refreshCodeText, 1000)\n}\nconst getCode = () => {\n if (!rMobilePhone.test(account.value)) {\n ElMessage.warning('手机号格式不正确')\n return\n }\n PublicApi.getCode(account.value).then(() => {\n time.value = 120\n refreshCodeText()\n ElMessage.success('获取成功,请注意查看手机短信')\n })\n}\nconst reset = () => {\n if (!checkForm()) {\n return\n }\n UserApi\n .resetPwd(account.value, code.value, pwd1.value)\n .then((res) => {\n ElMessage.success('密码重置成功')\n const { token } = res.data\n $store.commit('user/setToken', token)\n redirectDashBoard()\n })\n .catch((err) => {\n const { code: c, data } = err\n const options: any = {\n 1008: '该手机号未绑定任何账号',\n 1003: '验证码不正确',\n 1004: '密码格式不正确',\n 1010: '账号已被封禁,有疑问请联系管理员',\n 1009: `账号已被冻结,解冻时间${data?.openTime && formatDate(new Date(data.openTime))}`,\n }\n ElMessage.error(options[c] || '重置失败,未知错误')\n })\n}\n\n</script>\n\n<style scoped lang=\"scss\">\n.login {\n background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);\n min-height: 100vh;\n}\n\n.inputArea {\n // padding: 1rem;\n margin: 0 auto;\n max-width: 320px;\n div {\n margin-top: 10px;\n }\n}\n// 登录按钮下方链接\n.links {\n display: flex;\n justify-content: center;\n a {\n color: #409eff;\n margin-left: 10px;\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","chatDotSquare","_export_sfc","account","ref","code","pwd1","pwd2","$store","useStore","$router","useRouter","redirectDashBoard","checkForm","rMobilePhone","rPassword","ElMessage","rVerCode","codeText","time","refreshCodeText","getCode","PublicApi","reset","UserApi","res","token","err","c","data","options","formatDate"],"mappings":"qOAGA,MAAMA,EAAYC,EAAgB,CAChC,KAAM,eACR,CAAC,EACKC,EAAa,CACjB,QAAS,gBACT,MAAO,4BACT,EACMC,EAA6BC,EAAmB,OAAQ,CAC5D,KAAM,eACN,EAAG,mOACL,EAAG,KAAM,EAAE,EACLC,EAA6BD,EAAmB,OAAQ,CAC5D,KAAM,eACN,EAAG,4KACL,EAAG,KAAM,EAAE,EACLE,EAAa,CACjBH,EACAE,CACF,EACA,SAASE,GAAYC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOC,EAAW,EAAEC,EAAmB,MAAOb,EAAYI,CAAU,CACtE,CACA,IAAIU,GAAgCC,EAAYjB,EAAW,CAAC,CAAC,SAAUO,EAAW,CAAC,CAAC,mHCwD9E,MAAAW,EAAUC,EAAI,EAAE,EAChBC,EAAOD,EAAI,EAAE,EACbE,EAAOF,EAAI,EAAE,EACbG,EAAOH,EAAI,EAAE,EACbI,EAASC,IACTC,EAAUC,IACVC,EAAoB,IAAM,CAC9BF,EAAQ,QAAQ,CACd,KAAM,WAAA,CACP,CAAA,EAEGG,EAAY,IACXC,EAAa,KAAKX,EAAQ,KAAK,EAK/BY,EAAU,KAAKT,EAAK,KAAK,EAI1BA,EAAK,QAAUC,EAAK,OACtBS,EAAU,QAAQ,YAAY,EACvB,IAGJC,EAAS,KAAKZ,EAAK,KAAK,EAItB,IAHLW,EAAU,QAAQ,eAAe,EAC1B,KAVPA,EAAU,QAAQ,4BAA4B,EACvC,KANPA,EAAU,QAAQ,UAAU,EACrB,IAkBLE,EAAWd,EAAI,OAAO,EACtBe,EAAOf,EAAI,CAAC,EACZgB,EAAkB,IAAM,CACxB,GAAAD,EAAK,QAAU,EAAG,CACpBD,EAAS,MAAQ,QACjB,MACF,CACSA,EAAA,MAAQ,GAAG,OAAAC,EAAK,MAAK,KAC9BA,EAAK,OAAS,EACd,WAAWC,EAAiB,GAAI,CAAA,EAE5BC,EAAU,IAAM,CACpB,GAAI,CAACP,EAAa,KAAKX,EAAQ,KAAK,EAAG,CACrCa,EAAU,QAAQ,UAAU,EAC5B,MACF,CACAM,EAAU,QAAQnB,EAAQ,KAAK,EAAE,KAAK,IAAM,CAC1CgB,EAAK,MAAQ,IACGC,IAChBJ,EAAU,QAAQ,gBAAgB,CAAA,CACnC,CAAA,EAEGO,EAAQ,IAAM,CACbV,KAIFW,EAAA,SAASrB,EAAQ,MAAOE,EAAK,MAAOC,EAAK,KAAK,EAC9C,KAAMmB,GAAQ,CACbT,EAAU,QAAQ,QAAQ,EACpB,KAAA,CAAE,MAAAU,CAAM,EAAID,EAAI,KACfjB,EAAA,OAAO,gBAAiBkB,CAAK,EAClBd,GAAA,CACnB,EACA,MAAOe,GAAQ,CACd,KAAM,CAAE,KAAMC,EAAG,KAAAC,CAAA,EAASF,EACpBG,EAAe,CACnB,KAAM,cACN,KAAM,SACN,KAAM,UACN,KAAM,mBACN,KAAM,cAAc,QAAAD,GAAA,YAAAA,EAAM,WAAYE,EAAW,IAAI,KAAKF,EAAK,QAAQ,CAAC,EAAC,EAE3Eb,EAAU,MAAMc,EAAQF,CAAC,GAAK,WAAW,CAAA,CAC1C,CAAA","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@media screen and (max-width: 700px){.card-list[data-v-0ac70f66]{margin-top:40px}.card[data-v-0ac70f66]{min-width:300px}.log-filter[data-v-0ac70f66]{justify-content:center}}.overview[data-v-0ac70f66]{margin:0 auto}.card-list[data-v-0ac70f66]{display:flex;margin-top:20px;justify-content:center;flex-wrap:wrap}.card[data-v-0ac70f66]{margin:10px;cursor:pointer;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05);min-width:300px}.card .logo[data-v-0ac70f66]{float:left;margin:4px 10px 0;-webkit-transition:all .38s ease-out;transition:all .38s ease-out;border-radius:6px;font-size:48px}.card .logo i[data-v-0ac70f66]{padding:10px}.card .content[data-v-0ac70f66]{float:right;font-weight:700;margin:10px 10px 10px 0}.card .content .title[data-v-0ac70f66]{line-height:18px;color:rgba(0,0,0,.45);font-size:14px;text-align:right}.card .content .text[data-v-0ac70f66]{font-size:16px;text-align:right}.card .content .supplement[data-v-0ac70f66]{font-size:12px;font-weight:lighter;text-align:right}.panel[data-v-0ac70f66]{max-width:1024px;padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.log-filter[data-v-0ac70f66]{display:flex;flex-wrap:wrap}.log-filter .item[data-v-0ac70f66]{margin-right:10px;margin-bottom:10px}.log-filter .item .label[data-v-0ac70f66]{margin-right:10px;font-size:12px}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.el-tag[data-v-89760030]{margin-left:10px;margin-bottom:10px;cursor:pointer}.new-tag-wrap[data-v-89760030]{display:flex;align-items:center}.button-new-tag[data-v-89760030]{margin-left:10px;height:32px;line-height:30px;padding-top:0;padding-bottom:0}.input-new-tag[data-v-89760030]{width:120px;padding:0;margin-left:10px;margin-bottom:10px;vertical-align:bottom}.panel[data-v-89760030]{padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.btn-area[data-v-89760030]{display:flex;justify-content:center}.list-tip[data-v-89760030]{margin-right:10px;flex:1;text-align:right}.tag-wrap[data-v-89760030]{width:100%;height:150px}.tag-list[data-v-89760030]{height:150px;overflow-x:hidden;overflow-y:scroll;display:flex;flex-wrap:wrap}.tag-list[data-v-89760030] .el-tag{width:140px}.tag-list[data-v-89760030] .el-tag__content{width:100px;text-align:center;text-overflow:ellipsis;word-break:keep-all;overflow:hidden}.btn-area[data-v-74937fc2]{display:flex;justify-content:center}.input-container[data-v-74937fc2]{margin:15px auto;max-width:600px;background-color:#fff;display:flex;justify-content:space-around}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.task-item[data-v-15cc9632]{min-width:400px;margin-top:1em}.task-item .header[data-v-15cc9632]{overflow:hidden;display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap}.task-item .header .actions[data-v-15cc9632]{min-width:200px;padding:3px 0;margin-left:20px}.task-item .body[data-v-15cc9632]{min-height:30px}.task-item .body .empty[data-v-15cc9632]{text-align:center;font-size:12px;color:gray}.task-item .body ul[data-v-15cc9632]{font-size:12px;color:gray;list-style:none}.task-item .body ul .time[data-v-15cc9632]{margin-right:10px}@media screen and (max-width: 700px){.task-item[data-v-15cc9632]{min-width:100%}}.check-files[data-v-15cc9632]{display:flex;justify-content:space-between;align-items:center}.check-files a[data-v-15cc9632]{color:#409eff}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.upload-people[data-v-3822224c]{padding:10px}.import-people-wrapper[data-v-3822224c]{padding:10px 0}.submit-ok[data-v-3822224c]{color:#67c23a}.submit-fail[data-v-3822224c]{color:#f56c6c}.nav[data-v-3822224c]{display:flex;flex-wrap:wrap;justify-content:center;padding-bottom:5px}.nav .item[data-v-3822224c]{margin-left:10px;margin-top:5px}.info-panel[data-v-3822224c] .el-form-item__label{flex:var(--2d24e53a)}.info-panel[data-v-3822224c] .el-upload-list__item-name,.info-panel[data-v-77b4c9c1] .el-upload-list__item-name{justify-content:center}.auto-format[data-v-cb300958]{display:flex;justify-content:center}[data-v-cb300958] .el-form-item__label{display:flex;justify-content:center;align-items:flex-start}.num-wrapper[data-v-cb300958]{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:50%;border:2px solid #000;text-align:center;font-size:14px}.info-panel[data-v-cb300958] .el-form-item__label{flex:var(--2cde0e12);justify-content:flex-end}.form-wrapper[data-v-cb300958]{max-width:380px;margin:0 auto}.form-wrapper[data-v-cb300958] .el-input-group__append{background-color:transparent;border:none;box-shadow:none;padding:0}.form-item-wrapper[data-v-cb300958]{width:50px;display:flex;justify-content:center;align-items:center}.form-item-type[data-v-cb300958]{margin-left:10px;font-size:12px;width:48px;text-align:left}.radio-list[data-v-cb300958]{padding-top:10px}.radio-list[data-v-cb300958] .el-input{width:80%}.el-input-number{position:relative;display:inline-block;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.type[data-v-491fae6b]{margin:10px}.split-line[data-v-491fae6b]{margin-top:10px}.title[data-v-491fae6b]{color:#000;font-weight:700}.tasks[data-v-0fda6585]{max-width:1024px;margin:0 auto;padding-bottom:2em}.tasks[data-v-0fda6585] .el-dialog__body{padding-top:10px}.panel[data-v-0fda6585]{padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.task-list[data-v-0fda6585]{display:flex;flex-wrap:wrap;justify-content:space-around}@media screen and (max-width: 700px){.categorys-area[data-v-0fda6585]{margin-top:20px}[data-v-0fda6585] .el-tabs__nav-scroll{overflow-x:scroll}[data-v-0fda6585] .el-tabs__nav-scroll::-webkit-scrollbar{display:none}}
|
|
1
|
+
.el-tag[data-v-89760030]{margin-left:10px;margin-bottom:10px;cursor:pointer}.new-tag-wrap[data-v-89760030]{display:flex;align-items:center}.button-new-tag[data-v-89760030]{margin-left:10px;height:32px;line-height:30px;padding-top:0;padding-bottom:0}.input-new-tag[data-v-89760030]{width:120px;padding:0;margin-left:10px;margin-bottom:10px;vertical-align:bottom}.panel[data-v-89760030]{padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.btn-area[data-v-89760030]{display:flex;justify-content:center}.list-tip[data-v-89760030]{margin-right:10px;flex:1;text-align:right}.tag-wrap[data-v-89760030]{width:100%;height:150px}.tag-list[data-v-89760030]{height:150px;overflow-x:hidden;overflow-y:scroll;display:flex;flex-wrap:wrap}.tag-list[data-v-89760030] .el-tag{width:140px}.tag-list[data-v-89760030] .el-tag__content{width:100px;text-align:center;text-overflow:ellipsis;word-break:keep-all;overflow:hidden}.btn-area[data-v-74937fc2]{display:flex;justify-content:center}.input-container[data-v-74937fc2]{margin:15px auto;max-width:600px;background-color:#fff;display:flex;justify-content:space-around}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.task-item[data-v-15cc9632]{min-width:400px;margin-top:1em}.task-item .header[data-v-15cc9632]{overflow:hidden;display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap}.task-item .header .actions[data-v-15cc9632]{min-width:200px;padding:3px 0;margin-left:20px}.task-item .body[data-v-15cc9632]{min-height:30px}.task-item .body .empty[data-v-15cc9632]{text-align:center;font-size:12px;color:gray}.task-item .body ul[data-v-15cc9632]{font-size:12px;color:gray;list-style:none}.task-item .body ul .time[data-v-15cc9632]{margin-right:10px}@media screen and (max-width: 700px){.task-item[data-v-15cc9632]{min-width:100%}}.check-files[data-v-15cc9632]{display:flex;justify-content:space-between;align-items:center}.check-files a[data-v-15cc9632]{color:#409eff}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.upload-people[data-v-862ab3c1]{padding:10px}.import-people-wrapper[data-v-862ab3c1]{padding:10px 0}.submit-ok[data-v-862ab3c1]{color:#67c23a}.submit-fail[data-v-862ab3c1]{color:#f56c6c}.nav[data-v-862ab3c1]{display:flex;flex-wrap:wrap;justify-content:center;padding-bottom:5px}.nav .item[data-v-862ab3c1]{margin-left:10px;margin-top:5px}.info-panel[data-v-862ab3c1] .el-form-item__label{flex:var(--36e866fb)}.info-panel[data-v-862ab3c1] .el-upload-list__item-name,.info-panel[data-v-77b4c9c1] .el-upload-list__item-name{justify-content:center}.auto-format[data-v-cb300958]{display:flex;justify-content:center}[data-v-cb300958] .el-form-item__label{display:flex;justify-content:center;align-items:flex-start}.num-wrapper[data-v-cb300958]{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:50%;border:2px solid #000;text-align:center;font-size:14px}.info-panel[data-v-cb300958] .el-form-item__label{flex:var(--2cde0e12);justify-content:flex-end}.form-wrapper[data-v-cb300958]{max-width:380px;margin:0 auto}.form-wrapper[data-v-cb300958] .el-input-group__append{background-color:transparent;border:none;box-shadow:none;padding:0}.form-item-wrapper[data-v-cb300958]{width:50px;display:flex;justify-content:center;align-items:center}.form-item-type[data-v-cb300958]{margin-left:10px;font-size:12px;width:48px;text-align:left}.radio-list[data-v-cb300958]{padding-top:10px}.radio-list[data-v-cb300958] .el-input{width:80%}.el-input-number{position:relative;display:inline-block;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.type[data-v-491fae6b]{margin:10px}.split-line[data-v-491fae6b]{margin-top:10px}.title[data-v-491fae6b]{color:#000;font-weight:700}.tasks[data-v-ca061009]{max-width:1024px;margin:0 auto;padding-bottom:2em}.tasks[data-v-ca061009] .el-dialog__body{padding-top:10px}.panel[data-v-ca061009]{padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.task-list[data-v-ca061009]{display:flex;flex-wrap:wrap;justify-content:space-around}@media screen and (max-width: 700px){.categorys-area[data-v-ca061009]{margin-top:20px}[data-v-ca061009] .el-tabs__nav-scroll{overflow-x:scroll}[data-v-ca061009] .el-tabs__nav-scroll::-webkit-scrollbar{display:none}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as Se,d as ge,a as f,c as z,b as a,r as p,Z as O,bt as ne,O as ve,o as ol,a6 as al,j as t,w as o,F as se,C as ue,D as S,k as u,bu as _e,e as s,t as i,s as T,a5 as k,S as H,H as nl,a0 as V,E as d,q as $e,P as xe,v as sl,x as ul,p as il,f as rl,z as dl,A as cl,_ as ml}from"./index-D80lTVeV.js";import{E as pl,a as fl}from"./el-form-item-BhAyaXPT.js";import{d as he,E as vl}from"./el-date-picker-B-cvGosU.js";import{u as _l,E as hl}from"./el-dialog-C9wNxcPt.js";import{s as wl,E as gl}from"./el-pagination-DRV4WevC.js";import{E as bl,a as Cl}from"./el-select-B9z8VvNb.js";import{E as Vl,a as yl}from"./el-table-column-JBAymLKS.js";import{T as kl}from"./tip-DQo-E_Pu.js";import{U as I}from"./index-BrOLxzFM.js";import{r as zl}from"./refresh-BTQLK-UW.js";import{E as we}from"./index-Byzqqd86.js";import"./isEqual-pN6Ih18F.js";import"./index-BUF8Xxid.js";import"./validator-CZlzBDi2.js";import"./aria-nkjrUMQ-.js";const $l=ge({name:"Message"}),xl={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Sl=a("path",{fill:"currentColor",d:"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224H128zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64z"},null,-1),Tl=a("path",{fill:"currentColor",d:"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224h784zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224H205.056z"},null,-1),Ul=[Sl,Tl];function El(U,X,E,y,$,M){return f(),z("svg",xl,Ul)}var Ml=Se($l,[["render",El]]);const Pl=ge({name:"Money"}),Ll={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Bl=a("path",{fill:"currentColor",d:"M256 640v192h640V384H768v-64h150.976c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H233.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096c-2.688-5.184-4.224-10.368-4.224-24.576V640h64z"},null,-1),Dl=a("path",{fill:"currentColor",d:"M768 192H128v448h640V192zm64-22.976v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H105.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096C65.536 682.432 64 677.248 64 663.04V169.024c0-14.272 1.472-19.456 4.288-24.64a29.056 29.056 0 0 1 12.096-12.16C85.568 129.536 90.752 128 104.96 128h685.952c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64z"},null,-1),Fl=a("path",{fill:"currentColor",d:"M448 576a160 160 0 1 1 0-320 160 160 0 0 1 0 320zm0-64a96 96 0 1 0 0-192 96 96 0 0 0 0 192z"},null,-1),Rl=[Bl,Dl,Fl];function Ol(U,X,E,y,$,M){return f(),z("svg",Ll,Rl)}var Hl=Se(Pl,[["render",Ol]]);const h=U=>(il("data-v-5fb60ef4"),U=U(),rl(),U),Il={class:"user"},Al={class:"panel"},Nl={class:"p10 log-filter"},Wl={class:"item"},jl=h(()=>a("span",{class:"label"},"状态",-1)),Zl={class:"item"},ql=h(()=>a("span",{class:"label"},"排序",-1)),Gl={class:"item"},Jl={class:"item"},Kl={class:"item"},Ql=h(()=>a("br",null,null,-1)),Xl=h(()=>a("br",null,null,-1)),Yl=h(()=>a("br",null,null,-1)),et=h(()=>a("br",null,null,-1)),lt=h(()=>a("br",null,null,-1)),tt=h(()=>a("br",null,null,-1)),ot=h(()=>a("br",null,null,-1)),at=h(()=>a("br",null,null,-1)),nt=h(()=>a("br",null,null,-1)),st=h(()=>a("br",null,null,-1)),ut=h(()=>a("br",null,null,-1)),it={class:"text-btn-list"},rt={class:"flex fc p10"},dt={class:"tc"},ct={class:"dialog-footer"},mt={class:"tc"},pt={key:0,style:{"margin-top":"10px"},class:"tc"},ft={class:"dialog-footer"},vt={class:"tc"},_t={class:"dialog-footer"},ht={class:"tc"},wt={class:"dialog-footer"},gt={class:"tc"},bt={class:"dialog-footer"},Ct={class:"tc"},Vt={class:"dialog-footer"},yt=ge({__name:"index",setup(U){const X=p(""),E=O([]);function y(){V.getUserList().then(n=>{E.splice(0,E.length,...n.data.list),X.value=n.data.sumCost,d.success("列表数据刷新成功")})}const $=ne("userStatusType",I.NORMAL),M=p(""),be=O([{label:"正常",type:I.NORMAL},{label:"冻结",type:I.FREEZE},{label:"封禁",type:I.BAN}]),x=ne("userListSortType","id"),Te=[{label:"ID",value:"id"},{label:"累计上传数量",value:"fileCount"},{label:"累计占用空间",value:"originFileSize"},{label:"OSS文件数量",value:"ossCount"},{label:"最后登录时间",value:"lastLoginTime"},{label:"登录次数",value:"login_count"},{label:"容量大小",value:"size"},{label:"占用空间",value:"usage"},{label:"限制使用",value:"limitUpload"},{label:"下载次数",value:"downloadCount"},{label:"累计下载大小",value:"downloadSize"},{label:"累计费用",value:"cost"}],Y=ne("userListSortOrder","desc"),Ue=[{label:"升序",value:"asc"},{label:"降序",value:"desc"}],ie=ve(()=>{const n=[...E];return n.sort((l,c)=>Y.value==="asc"?l[x.value]-c[x.value]:c[x.value]-l[x.value]),n.filter(l=>l.status===$.value).filter(l=>{const{id:c,account:w,phone:g,joinTime:r,loginCount:C,loginTime:ce,openTime:me}=l;return M.value.length===0?!0:"".concat(c," ").concat(w," ").concat(g," ").concat(ce," ").concat(T(me)," ").concat(T(C)," ").concat(T(r)).includes(M.value)})}),A=ne("userListPageSize",10);function Ee(n){A.value=n}const Me=ve(()=>Math.ceil(ie.value.length/A.value)),ee=p(1),Pe=ve(()=>{const n=(ee.value-1)*A.value,l=ee.value*A.value;return ie.value.slice(n,l)});function Le(n){ee.value=n}const N=p(!1),_=p(0),P=p(I.NORMAL),Be=be,W=p("");function De(n,l,c){_.value=n,P.value=l,W.value=c,N.value=!0}function Fe(){const n=E.find(l=>l.id===_.value);if(P.value===I.FREEZE){if(!W.value){d.warning("请设置解冻时间");return}n.openTime=W.value}else n.openTime="";n.status=P.value,N.value=!1,V.updateUserStatus(n.id,n.status,n.openTime).then(()=>{d.success("修改成功")})}const j=p(!1),b=O({pwd1:"",pwd2:""});function Re(n){_.value=n,j.value=!0,b.pwd1="",b.pwd2=""}function Oe(){return dl.test(b.pwd1)?b.pwd1!==b.pwd2?(d.warning("两次输入的密码不一致"),!1):!0:(d.warning("密码格式不正确(6-16位 支持字母/数字/下划线)"),!1)}function He(){Oe()&&we.confirm("此操作不可逆,请谨慎操作","确定要重置用户的密码吗?",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{V.resetPassword(_.value,b.pwd1).then(()=>{d.success("重置成功"),j.value=!1})}).catch(()=>{})}const Z=p(!1),L=O({size:2});function Ie(n,l){_.value=n,L.size=l,Z.value=!0}async function Ae(){if(+L.size<0){d.warning("空间上限不能小于0");return}await V.resetLimitSpace(_.value,+L.size),d.success("修改成功"),Z.value=!1,y()}const q=p(!1),B=O({money:2});function Ne(n,l){_.value=n,B.money=l,q.value=!0}async function We(){if(+B.money<0){d.warning("余额不能小于0");return}await V.updateWallet(_.value,+B.money),d.success("修改成功"),q.value=!1,y()}const G=p(!1),v=O({phone:"",code:""}),re=p("获取验证码"),J=p(0);function Ce(){if(J.value===0){re.value="获取验证码";return}re.value="".concat(J.value,"s"),J.value-=1,setTimeout(Ce,1e3)}function je(){if(!$e.test(v.phone)){d.warning("手机号格式不正确");return}xe.checkPhone(v.phone).then(()=>{xe.getCode(v.phone).then(()=>{J.value=120,Ce(),d.success("获取成功,请注意查看手机短信")})}).catch(n=>{const{code:l}=n,c="注册失败,未知错误",w={1002:"手机号已被注册",1006:"手机号格式不正确"};d.error(w[l]||c)})}function Ze(){return $e.test(v.phone)?cl.test(v.code)?!0:(d.warning("验证码格式不正确"),!1):(d.warning("手机号格式不正确"),!1)}function qe(n){_.value=n,G.value=!0}async function Ge(){Ze()&&V.resetPhone(_.value,v.phone,v.code).then(()=>{d.success("绑定成功"),G.value=!1,v.code="",v.phone="",y()}).catch(n=>{const{code:l}=n,c="绑定失败,未知错误",w={1002:"手机号已被注册",1003:"验证码不正确"};d.error(w[l]||c)})}function de(n,l){const c={month:"一个月前",quarter:"三个月前",half:"半年前"};_.value=n,we.confirm("移除后这些文件将无法恢复,请谨慎操作","删除前确认?",{confirmButtonText:"确认删除 ".concat(c[l],"文件")}).then(()=>{V.clearOssFile(n,l).then(()=>{d.success("清理成功")})}).catch(()=>{})}const Ve=p(1),K=p(!1),le=p("");function ye(n,l=1){_.value=n,Ve.value=l,K.value=!0}function Je(){V.sendMessage(le.value,Ve.value,_.value).then(()=>{d.success("推送成功"),le.value="",K.value=!1})}function Ke(n){V.logout(n).then(()=>{d.success("下线成功 ".concat(n)),y()})}ol(()=>{y()});const D=_l(),{moneyStartDay:Qe}=al();function Xe(n){const{backhaulTrafficPrice:l,cdnPrice:c,compressPrice:w,ossPrice:g}=n;we.confirm("存储:".concat(g,", 下载:").concat(c,",压缩:").concat(w,",回源:").concat(l),{showCancelButton:!1})}return(n,l)=>{const c=bl,w=Cl,g=sl,r=ul,C=Vl,ce=yl,me=gl,F=hl,Ye=vl,R=pl,te=fl;return f(),z("div",Il,[a("div",Al,[a("div",Nl,[a("span",Wl,[jl,t(w,{modelValue:u($),"onUpdate:modelValue":l[0]||(l[0]=e=>_e($)?$.value=e:null),size:"default",class:"w100"},{default:o(()=>[(f(!0),z(se,null,ue(be,(e,m)=>(f(),S(c,{key:m,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),a("span",Zl,[ql,t(w,{modelValue:u(x),"onUpdate:modelValue":l[1]||(l[1]=e=>_e(x)?x.value=e:null),size:"default",class:"w100"},{default:o(()=>[(f(),z(se,null,ue(Te,(e,m)=>t(c,{key:m,label:e.label,value:e.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),t(w,{modelValue:u(Y),"onUpdate:modelValue":l[2]||(l[2]=e=>_e(Y)?Y.value=e:null),size:"default",class:"w100"},{default:o(()=>[(f(),z(se,null,ue(Ue,(e,m)=>t(c,{key:m,label:e.label,value:e.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),a("span",Gl,[t(g,{modelValue:M.value,"onUpdate:modelValue":l[3]||(l[3]=e=>M.value=e),size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":u(wl)},null,8,["modelValue","prefix-icon"])]),a("span",Jl,[t(r,{size:"default",icon:u(zl),onClick:y},{default:o(()=>[s("刷新")]),_:1},8,["icon"])]),a("span",Kl,[t(r,{size:"warning",icon:u(Ml),onClick:l[4]||(l[4]=e=>ye(null,0))},{default:o(()=>[s("推送全局消息")]),_:1},8,["icon"])])]),t(kl,null,{default:o(()=>[s(" 预估费用:"+i(X.value)+"¥, 计费起始时间:"+i(u(T)(u(Qe))),1)]),_:1}),t(ce,{height:"550",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},data:Pe.value,style:{width:"100%"}},{default:o(()=>[t(C,{prop:"id",label:"ID",width:"60"}),t(C,{prop:"account",label:"账号",width:"130"}),t(C,{prop:"phone",label:"手机号",width:"80"}),t(C,{label:"统计",width:"190"},{default:o(e=>[s(" 最后登录:"+i(e.row.loginTime&&u(T)(new Date(e.row.loginTime))),1),Ql,s(" 注册时间:"+i(u(T)(new Date(e.row.joinTime))),1),Xl,s(" 登录次数:"+i(e.row.loginCount),1),Yl,s(" token: "+i(e.row.onlineCount),1),et]),_:1}),t(C,{prop:"downloadCount",label:"累计下载"},{default:o(({row:{downloadCount:e,downloadSize:m,oneFile:oe,compressFile:Q,templateFile:ae}})=>[s(i(e)+" / "+i(u(k)(m)),1),lt,s(" 单文件:"+i(oe.count)+" / "+i(u(k)(oe.size)),1),tt,s(" 归档:"+i(Q.count)+" / "+i(u(k)(Q.size)),1),ot,s(" 模板:"+i(ae.count)+" / "+i(u(k)(ae.size)),1)]),_:1}),u($)===1?(f(),S(C,{key:0,prop:"openTime",label:"解封时间"},{default:o(e=>[s(i(e.row.openTime&&u(T)(new Date(e.row.openTime))),1)]),_:1})):H("",!0),t(C,{prop:"fileCount",label:"文件"},{default:o(e=>[s(" 累计:"+i(e.row.fileCount)+"/"+i(u(k)(e.row.originFileSize)),1),at,s(" OSS:"+i(e.row.ossCount)+"/"+i(u(k)(e.row.usage)),1),nt,s(" 平均:"+i(e.row.originFileSize&&e.row.fileCount&&u(k)(Math.round(e.row.originFileSize/e.row.fileCount))),1),st,s(" 平均:"+i(e.row.usage&&e.row.ossCount&&u(k)(Math.round(e.row.usage/e.row.ossCount))),1),ut]),_:1}),t(C,{label:"云空间",width:"240"},{default:o(({row:{wallet:e,price:m,balance:oe,resources:Q,monthAgoSize:ae,quarterAgoSize:ke,halfYearSize:ze,id:pe,limitSize:el,limitUpload:ll,percentage:tl}})=>[a("ul",{class:nl(["user-oss-info",{disabled:ll}])},[a("li",null,[s(" ¥:"+i(m.total)+" / "+i(e)+" = "+i(oe)+" ",1),t(r,{icon:u(Hl),circle:"",size:"small",onClick:fe=>Xe(m)},null,8,["icon","onClick"])]),a("li",null,i(tl)+"% "+i(Q)+"/"+i(el),1),a("li",null,[s(" 一月前:"+i(ae),1),Q!=="0B"?(f(),S(r,{key:0,class:"clear-btn",icon:u(he),circle:"",size:"small",onClick:fe=>de(pe,"month")},null,8,["icon","onClick"])):H("",!0)]),a("li",null,[s(" 三月前:"+i(ke),1),ke!=="0B"?(f(),S(r,{key:0,class:"clear-btn",icon:u(he),circle:"",size:"small",onClick:fe=>de(pe,"quarter")},null,8,["icon","onClick"])):H("",!0)]),a("li",null,[s(" 半年前:"+i(ze),1),ze!=="0B"?(f(),S(r,{key:0,class:"clear-btn",icon:u(he),circle:"",size:"small",onClick:fe=>de(pe,"half")},null,8,["icon","onClick"])):H("",!0)])],2)]),_:1}),t(C,{fixed:"right",label:"操作",width:"100"},{default:o(e=>[a("div",it,[t(r,{type:"primary",text:"",size:"small",onClick:m=>De(e.row.id,e.row.status,e.row.openTime)},{default:o(()=>[s(" 修改状态 ")]),_:2},1032,["onClick"]),t(r,{type:"primary",text:"",size:"small",onClick:m=>Re(e.row.id)},{default:o(()=>[s(" 重置密码 ")]),_:2},1032,["onClick"]),t(r,{type:"primary",text:"",size:"small",onClick:m=>qe(e.row.id)},{default:o(()=>[s(" 绑定手机号 ")]),_:2},1032,["onClick"]),t(r,{type:"warning",text:"",size:"small",onClick:m=>ye(e.row.id)},{default:o(()=>[s(" 发送消息 ")]),_:2},1032,["onClick"]),t(r,{type:"danger",text:"",size:"small",onClick:m=>Ie(e.row.id,e.row.size)},{default:o(()=>[s(" 修改上限 ")]),_:2},1032,["onClick"]),t(r,{type:"danger",text:"",size:"small",onClick:m=>Ne(e.row.id,e.row.wallet)},{default:o(()=>[s(" 修改余额 ")]),_:2},1032,["onClick"]),e.row.onlineCount!==0?(f(),S(r,{key:0,type:"danger",text:"",size:"small",onClick:m=>Ke(e.row.account)},{default:o(()=>[s(" 一键下线 ")]),_:2},1032,["onClick"])):H("",!0)])]),_:1})]),_:1},8,["data"]),a("div",rt,[t(me,{"current-page":ee.value,background:"","page-count":Me.value,"page-sizes":[10,50,100,200],"page-size":u(A),total:ie.value.length,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:Le,onSizeChange:Ee},null,8,["current-page","page-count","page-size","total"])])]),t(F,{modelValue:K.value,"onUpdate:modelValue":l[7]||(l[7]=e=>K.value=e),fullscreen:u(D),center:"",title:"消息推送"},{footer:o(()=>[a("span",ct,[t(r,{onClick:l[6]||(l[6]=e=>K.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:Je},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",dt,[t(g,{modelValue:le.value,"onUpdate:modelValue":l[5]||(l[5]=e=>le.value=e),autosize:{minRows:6,maxRows:20},type:"textarea",placeholder:"输入要推送的消息,支持HTML内容(推荐使用mdnice 转 markdown 转html)"},null,8,["modelValue"])])]),_:1},8,["modelValue","fullscreen"]),t(F,{modelValue:N.value,"onUpdate:modelValue":l[11]||(l[11]=e=>N.value=e),fullscreen:u(D),center:"",title:"状态修改"},{footer:o(()=>[a("span",ft,[t(r,{onClick:l[10]||(l[10]=e=>N.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:Fe},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",mt,[t(w,{modelValue:P.value,"onUpdate:modelValue":l[8]||(l[8]=e=>P.value=e),placeholder:"请选择新分类"},{default:o(()=>[(f(!0),z(se,null,ue(u(Be),e=>(f(),S(c,{key:e.type,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),P.value===1?(f(),z("div",pt,[t(Ye,{modelValue:W.value,"onUpdate:modelValue":l[9]||(l[9]=e=>W.value=e),editable:!1,type:"datetime",placeholder:"点击设置解封日期"},null,8,["modelValue"])])):H("",!0)]),_:1},8,["modelValue","fullscreen"]),t(F,{modelValue:j.value,"onUpdate:modelValue":l[15]||(l[15]=e=>j.value=e),fullscreen:u(D),center:"",title:"密码重置"},{footer:o(()=>[a("span",_t,[t(r,{onClick:l[14]||(l[14]=e=>j.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:He},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",vt,[t(te,{model:b,"label-width":"80px"},{default:o(()=>[t(R,{label:"新密码"},{default:o(()=>[t(g,{modelValue:b.pwd1,"onUpdate:modelValue":l[12]||(l[12]=e=>b.pwd1=e),"show-word-limit":"",clearable:"",placeholder:"请输入新密码",maxlength:"16",minlength:"6"},null,8,["modelValue"])]),_:1}),t(R,null,{default:o(()=>[t(g,{modelValue:b.pwd2,"onUpdate:modelValue":l[13]||(l[13]=e=>b.pwd2=e),"show-word-limit":"",clearable:"",placeholder:"请再次输入",maxlength:"16",minlength:"6"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue","fullscreen"]),t(F,{modelValue:G.value,"onUpdate:modelValue":l[19]||(l[19]=e=>G.value=e),fullscreen:u(D),center:"",title:"绑定手机号"},{footer:o(()=>[a("span",wt,[t(r,{onClick:l[18]||(l[18]=e=>G.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:Ge},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",ht,[t(te,{model:v,"label-width":"60px"},{default:o(()=>[t(R,{label:"手机号"},{default:o(()=>[t(g,{modelValue:v.phone,"onUpdate:modelValue":l[16]||(l[16]=e=>v.phone=e),"show-word-limit":"",clearable:"",placeholder:"请输入手机号",maxlength:"11"},{append:o(()=>[t(r,{disabled:J.value!==0,onClick:je},{default:o(()=>[s(i(re.value),1)]),_:1},8,["disabled"])]),_:1},8,["modelValue"])]),_:1}),t(R,null,{default:o(()=>[t(g,{modelValue:v.code,"onUpdate:modelValue":l[17]||(l[17]=e=>v.code=e),"show-word-limit":"",clearable:"",placeholder:"请输入验证码",maxlength:"4"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue","fullscreen"]),t(F,{modelValue:Z.value,"onUpdate:modelValue":l[22]||(l[22]=e=>Z.value=e),fullscreen:u(D),center:"",title:"修改空间上限"},{footer:o(()=>[a("span",bt,[t(r,{onClick:l[21]||(l[21]=e=>Z.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:Ae},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",gt,[t(te,{model:L,"label-width":"60px"},{default:o(()=>[t(R,{label:"大小"},{default:o(()=>[t(g,{modelValue:L.size,"onUpdate:modelValue":l[20]||(l[20]=e=>L.size=e),"show-word-limit":"",clearable:"",placeholder:"请输入空间上限",maxlength:"4",type:"number"},{append:o(()=>[s(" GB ")]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue","fullscreen"]),t(F,{modelValue:q.value,"onUpdate:modelValue":l[25]||(l[25]=e=>q.value=e),fullscreen:u(D),center:"",title:"修改空间上限"},{footer:o(()=>[a("span",Vt,[t(r,{onClick:l[24]||(l[24]=e=>q.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:We},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",Ct,[t(te,{model:B,"label-width":"60px"},{default:o(()=>[t(R,{label:"余额"},{default:o(()=>[t(g,{modelValue:B.money,"onUpdate:modelValue":l[23]||(l[23]=e=>B.money=e),"show-word-limit":"",clearable:"",placeholder:"请输入新的余额",maxlength:"4",type:"number"},{append:o(()=>[s(" ¥ ")]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue","fullscreen"])])}}}),Ot=ml(yt,[["__scopeId","data-v-5fb60ef4"]]);export{Ot as default};
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{g as Se,d as ge,a as f,c as z,b as a,r as p,Z as O,bt as ne,O as ve,o as ol,a6 as al,j as t,w as o,F as se,C as ue,D as S,k as u,bu as _e,e as s,t as i,s as T,a5 as k,S as H,H as nl,a0 as V,E as d,q as $e,P as xe,v as sl,x as ul,p as il,f as rl,z as dl,A as cl,_ as ml}from"./index-CYAf_OTx.js";import{E as pl,a as fl}from"./el-form-item-DOwM4Mv8.js";import{d as he,E as vl}from"./el-date-picker-mhY2RJMG.js";import{u as _l,E as hl}from"./el-dialog-PRccau6N.js";import{s as wl,E as gl}from"./el-pagination-iCicJonH.js";import{E as bl,a as Cl}from"./el-select-CVjQdC39.js";import{E as Vl,a as yl}from"./el-table-column-tkbtgrcD.js";import{T as kl}from"./tip-CH7nBVXc.js";import{U as I}from"./index-BrOLxzFM.js";import{r as zl}from"./refresh-DPuuDO9h.js";import{E as we}from"./index-BUmkgniE.js";import"./isEqual-BHpVKj_X.js";import"./index-DrKX0cCg.js";import"./validator-BMr-jeUB.js";import"./aria-nkjrUMQ-.js";const $l=ge({name:"Message"}),xl={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Sl=a("path",{fill:"currentColor",d:"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224H128zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64z"},null,-1),Tl=a("path",{fill:"currentColor",d:"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224h784zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224H205.056z"},null,-1),Ul=[Sl,Tl];function El(U,X,E,y,$,M){return f(),z("svg",xl,Ul)}var Ml=Se($l,[["render",El]]);const Pl=ge({name:"Money"}),Ll={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Bl=a("path",{fill:"currentColor",d:"M256 640v192h640V384H768v-64h150.976c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H233.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096c-2.688-5.184-4.224-10.368-4.224-24.576V640h64z"},null,-1),Dl=a("path",{fill:"currentColor",d:"M768 192H128v448h640V192zm64-22.976v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H105.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096C65.536 682.432 64 677.248 64 663.04V169.024c0-14.272 1.472-19.456 4.288-24.64a29.056 29.056 0 0 1 12.096-12.16C85.568 129.536 90.752 128 104.96 128h685.952c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64z"},null,-1),Fl=a("path",{fill:"currentColor",d:"M448 576a160 160 0 1 1 0-320 160 160 0 0 1 0 320zm0-64a96 96 0 1 0 0-192 96 96 0 0 0 0 192z"},null,-1),Rl=[Bl,Dl,Fl];function Ol(U,X,E,y,$,M){return f(),z("svg",Ll,Rl)}var Hl=Se(Pl,[["render",Ol]]);const h=U=>(il("data-v-5fb60ef4"),U=U(),rl(),U),Il={class:"user"},Al={class:"panel"},Nl={class:"p10 log-filter"},Wl={class:"item"},jl=h(()=>a("span",{class:"label"},"状态",-1)),Zl={class:"item"},ql=h(()=>a("span",{class:"label"},"排序",-1)),Gl={class:"item"},Jl={class:"item"},Kl={class:"item"},Ql=h(()=>a("br",null,null,-1)),Xl=h(()=>a("br",null,null,-1)),Yl=h(()=>a("br",null,null,-1)),et=h(()=>a("br",null,null,-1)),lt=h(()=>a("br",null,null,-1)),tt=h(()=>a("br",null,null,-1)),ot=h(()=>a("br",null,null,-1)),at=h(()=>a("br",null,null,-1)),nt=h(()=>a("br",null,null,-1)),st=h(()=>a("br",null,null,-1)),ut=h(()=>a("br",null,null,-1)),it={class:"text-btn-list"},rt={class:"flex fc p10"},dt={class:"tc"},ct={class:"dialog-footer"},mt={class:"tc"},pt={key:0,style:{"margin-top":"10px"},class:"tc"},ft={class:"dialog-footer"},vt={class:"tc"},_t={class:"dialog-footer"},ht={class:"tc"},wt={class:"dialog-footer"},gt={class:"tc"},bt={class:"dialog-footer"},Ct={class:"tc"},Vt={class:"dialog-footer"},yt=ge({__name:"index",setup(U){const X=p(""),E=O([]);function y(){V.getUserList().then(n=>{E.splice(0,E.length,...n.data.list),X.value=n.data.sumCost,d.success("列表数据刷新成功")})}const $=ne("userStatusType",I.NORMAL),M=p(""),be=O([{label:"正常",type:I.NORMAL},{label:"冻结",type:I.FREEZE},{label:"封禁",type:I.BAN}]),x=ne("userListSortType","id"),Te=[{label:"ID",value:"id"},{label:"累计上传数量",value:"fileCount"},{label:"累计占用空间",value:"originFileSize"},{label:"OSS文件数量",value:"ossCount"},{label:"最后登录时间",value:"lastLoginTime"},{label:"登录次数",value:"login_count"},{label:"容量大小",value:"size"},{label:"占用空间",value:"usage"},{label:"限制使用",value:"limitUpload"},{label:"下载次数",value:"downloadCount"},{label:"累计下载大小",value:"downloadSize"},{label:"累计费用",value:"cost"}],Y=ne("userListSortOrder","desc"),Ue=[{label:"升序",value:"asc"},{label:"降序",value:"desc"}],ie=ve(()=>{const n=[...E];return n.sort((l,c)=>Y.value==="asc"?l[x.value]-c[x.value]:c[x.value]-l[x.value]),n.filter(l=>l.status===$.value).filter(l=>{const{id:c,account:w,phone:g,joinTime:r,loginCount:C,loginTime:ce,openTime:me}=l;return M.value.length===0?!0:"".concat(c," ").concat(w," ").concat(g," ").concat(ce," ").concat(T(me)," ").concat(T(C)," ").concat(T(r)).includes(M.value)})}),A=ne("userListPageSize",10);function Ee(n){A.value=n}const Me=ve(()=>Math.ceil(ie.value.length/A.value)),ee=p(1),Pe=ve(()=>{const n=(ee.value-1)*A.value,l=ee.value*A.value;return ie.value.slice(n,l)});function Le(n){ee.value=n}const N=p(!1),_=p(0),P=p(I.NORMAL),Be=be,W=p("");function De(n,l,c){_.value=n,P.value=l,W.value=c,N.value=!0}function Fe(){const n=E.find(l=>l.id===_.value);if(P.value===I.FREEZE){if(!W.value){d.warning("请设置解冻时间");return}n.openTime=W.value}else n.openTime="";n.status=P.value,N.value=!1,V.updateUserStatus(n.id,n.status,n.openTime).then(()=>{d.success("修改成功")})}const j=p(!1),b=O({pwd1:"",pwd2:""});function Re(n){_.value=n,j.value=!0,b.pwd1="",b.pwd2=""}function Oe(){return dl.test(b.pwd1)?b.pwd1!==b.pwd2?(d.warning("两次输入的密码不一致"),!1):!0:(d.warning("密码格式不正确(6-16位 支持字母/数字/下划线)"),!1)}function He(){Oe()&&we.confirm("此操作不可逆,请谨慎操作","确定要重置用户的密码吗?",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{V.resetPassword(_.value,b.pwd1).then(()=>{d.success("重置成功"),j.value=!1})}).catch(()=>{})}const Z=p(!1),L=O({size:2});function Ie(n,l){_.value=n,L.size=l,Z.value=!0}async function Ae(){if(+L.size<0){d.warning("空间上限不能小于0");return}await V.resetLimitSpace(_.value,+L.size),d.success("修改成功"),Z.value=!1,y()}const q=p(!1),B=O({money:2});function Ne(n,l){_.value=n,B.money=l,q.value=!0}async function We(){if(+B.money<0){d.warning("余额不能小于0");return}await V.updateWallet(_.value,+B.money),d.success("修改成功"),q.value=!1,y()}const G=p(!1),v=O({phone:"",code:""}),re=p("获取验证码"),J=p(0);function Ce(){if(J.value===0){re.value="获取验证码";return}re.value="".concat(J.value,"s"),J.value-=1,setTimeout(Ce,1e3)}function je(){if(!$e.test(v.phone)){d.warning("手机号格式不正确");return}xe.checkPhone(v.phone).then(()=>{xe.getCode(v.phone).then(()=>{J.value=120,Ce(),d.success("获取成功,请注意查看手机短信")})}).catch(n=>{const{code:l}=n,c="注册失败,未知错误",w={1002:"手机号已被注册",1006:"手机号格式不正确"};d.error(w[l]||c)})}function Ze(){return $e.test(v.phone)?cl.test(v.code)?!0:(d.warning("验证码格式不正确"),!1):(d.warning("手机号格式不正确"),!1)}function qe(n){_.value=n,G.value=!0}async function Ge(){Ze()&&V.resetPhone(_.value,v.phone,v.code).then(()=>{d.success("绑定成功"),G.value=!1,v.code="",v.phone="",y()}).catch(n=>{const{code:l}=n,c="绑定失败,未知错误",w={1002:"手机号已被注册",1003:"验证码不正确"};d.error(w[l]||c)})}function de(n,l){const c={month:"一个月前",quarter:"三个月前",half:"半年前"};_.value=n,we.confirm("移除后这些文件将无法恢复,请谨慎操作","删除前确认?",{confirmButtonText:"确认删除 ".concat(c[l],"文件")}).then(()=>{V.clearOssFile(n,l).then(()=>{d.success("清理成功")})}).catch(()=>{})}const Ve=p(1),K=p(!1),le=p("");function ye(n,l=1){_.value=n,Ve.value=l,K.value=!0}function Je(){V.sendMessage(le.value,Ve.value,_.value).then(()=>{d.success("推送成功"),le.value="",K.value=!1})}function Ke(n){V.logout(n).then(()=>{d.success("下线成功 ".concat(n)),y()})}ol(()=>{y()});const D=_l(),{moneyStartDay:Qe}=al();function Xe(n){const{backhaulTrafficPrice:l,cdnPrice:c,compressPrice:w,ossPrice:g}=n;we.confirm("存储:".concat(g,", 下载:").concat(c,",压缩:").concat(w,",回源:").concat(l),{showCancelButton:!1})}return(n,l)=>{const c=bl,w=Cl,g=sl,r=ul,C=Vl,ce=yl,me=gl,F=hl,Ye=vl,R=pl,te=fl;return f(),z("div",Il,[a("div",Al,[a("div",Nl,[a("span",Wl,[jl,t(w,{modelValue:u($),"onUpdate:modelValue":l[0]||(l[0]=e=>_e($)?$.value=e:null),size:"default",class:"w100"},{default:o(()=>[(f(!0),z(se,null,ue(be,(e,m)=>(f(),S(c,{key:m,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),a("span",Zl,[ql,t(w,{modelValue:u(x),"onUpdate:modelValue":l[1]||(l[1]=e=>_e(x)?x.value=e:null),size:"default",class:"w100"},{default:o(()=>[(f(),z(se,null,ue(Te,(e,m)=>t(c,{key:m,label:e.label,value:e.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),t(w,{modelValue:u(Y),"onUpdate:modelValue":l[2]||(l[2]=e=>_e(Y)?Y.value=e:null),size:"default",class:"w100"},{default:o(()=>[(f(),z(se,null,ue(Ue,(e,m)=>t(c,{key:m,label:e.label,value:e.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),a("span",Gl,[t(g,{modelValue:M.value,"onUpdate:modelValue":l[3]||(l[3]=e=>M.value=e),size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":u(wl)},null,8,["modelValue","prefix-icon"])]),a("span",Jl,[t(r,{size:"default",icon:u(zl),onClick:y},{default:o(()=>[s("刷新")]),_:1},8,["icon"])]),a("span",Kl,[t(r,{size:"warning",icon:u(Ml),onClick:l[4]||(l[4]=e=>ye(null,0))},{default:o(()=>[s("推送全局消息")]),_:1},8,["icon"])])]),t(kl,null,{default:o(()=>[s(" 预估费用:"+i(X.value)+"¥, 计费起始时间:"+i(u(T)(u(Qe))),1)]),_:1}),t(ce,{height:"550",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},data:Pe.value,style:{width:"100%"}},{default:o(()=>[t(C,{prop:"id",label:"ID",width:"60"}),t(C,{prop:"account",label:"账号",width:"130"}),t(C,{prop:"phone",label:"手机号",width:"80"}),t(C,{label:"统计",width:"190"},{default:o(e=>[s(" 最后登录:"+i(e.row.loginTime&&u(T)(new Date(e.row.loginTime))),1),Ql,s(" 注册时间:"+i(u(T)(new Date(e.row.joinTime))),1),Xl,s(" 登录次数:"+i(e.row.loginCount),1),Yl,s(" token: "+i(e.row.onlineCount),1),et]),_:1}),t(C,{prop:"downloadCount",label:"累计下载"},{default:o(({row:{downloadCount:e,downloadSize:m,oneFile:oe,compressFile:Q,templateFile:ae}})=>[s(i(e)+" / "+i(u(k)(m)),1),lt,s(" 单文件:"+i(oe.count)+" / "+i(u(k)(oe.size)),1),tt,s(" 归档:"+i(Q.count)+" / "+i(u(k)(Q.size)),1),ot,s(" 模板:"+i(ae.count)+" / "+i(u(k)(ae.size)),1)]),_:1}),u($)===1?(f(),S(C,{key:0,prop:"openTime",label:"解封时间"},{default:o(e=>[s(i(e.row.openTime&&u(T)(new Date(e.row.openTime))),1)]),_:1})):H("",!0),t(C,{prop:"fileCount",label:"文件"},{default:o(e=>[s(" 累计:"+i(e.row.fileCount)+"/"+i(u(k)(e.row.originFileSize)),1),at,s(" OSS:"+i(e.row.ossCount)+"/"+i(u(k)(e.row.usage)),1),nt,s(" 平均:"+i(e.row.originFileSize&&e.row.fileCount&&u(k)(Math.round(e.row.originFileSize/e.row.fileCount))),1),st,s(" 平均:"+i(e.row.usage&&e.row.ossCount&&u(k)(Math.round(e.row.usage/e.row.ossCount))),1),ut]),_:1}),t(C,{label:"云空间",width:"240"},{default:o(({row:{wallet:e,price:m,balance:oe,resources:Q,monthAgoSize:ae,quarterAgoSize:ke,halfYearSize:ze,id:pe,limitSize:el,limitUpload:ll,percentage:tl}})=>[a("ul",{class:nl(["user-oss-info",{disabled:ll}])},[a("li",null,[s(" ¥:"+i(m.total)+" / "+i(e)+" = "+i(oe)+" ",1),t(r,{icon:u(Hl),circle:"",size:"small",onClick:fe=>Xe(m)},null,8,["icon","onClick"])]),a("li",null,i(tl)+"% "+i(Q)+"/"+i(el),1),a("li",null,[s(" 一月前:"+i(ae),1),Q!=="0B"?(f(),S(r,{key:0,class:"clear-btn",icon:u(he),circle:"",size:"small",onClick:fe=>de(pe,"month")},null,8,["icon","onClick"])):H("",!0)]),a("li",null,[s(" 三月前:"+i(ke),1),ke!=="0B"?(f(),S(r,{key:0,class:"clear-btn",icon:u(he),circle:"",size:"small",onClick:fe=>de(pe,"quarter")},null,8,["icon","onClick"])):H("",!0)]),a("li",null,[s(" 半年前:"+i(ze),1),ze!=="0B"?(f(),S(r,{key:0,class:"clear-btn",icon:u(he),circle:"",size:"small",onClick:fe=>de(pe,"half")},null,8,["icon","onClick"])):H("",!0)])],2)]),_:1}),t(C,{fixed:"right",label:"操作",width:"100"},{default:o(e=>[a("div",it,[t(r,{type:"primary",text:"",size:"small",onClick:m=>De(e.row.id,e.row.status,e.row.openTime)},{default:o(()=>[s(" 修改状态 ")]),_:2},1032,["onClick"]),t(r,{type:"primary",text:"",size:"small",onClick:m=>Re(e.row.id)},{default:o(()=>[s(" 重置密码 ")]),_:2},1032,["onClick"]),t(r,{type:"primary",text:"",size:"small",onClick:m=>qe(e.row.id)},{default:o(()=>[s(" 绑定手机号 ")]),_:2},1032,["onClick"]),t(r,{type:"warning",text:"",size:"small",onClick:m=>ye(e.row.id)},{default:o(()=>[s(" 发送消息 ")]),_:2},1032,["onClick"]),t(r,{type:"danger",text:"",size:"small",onClick:m=>Ie(e.row.id,e.row.size)},{default:o(()=>[s(" 修改上限 ")]),_:2},1032,["onClick"]),t(r,{type:"danger",text:"",size:"small",onClick:m=>Ne(e.row.id,e.row.wallet)},{default:o(()=>[s(" 修改余额 ")]),_:2},1032,["onClick"]),e.row.onlineCount!==0?(f(),S(r,{key:0,type:"danger",text:"",size:"small",onClick:m=>Ke(e.row.account)},{default:o(()=>[s(" 一键下线 ")]),_:2},1032,["onClick"])):H("",!0)])]),_:1})]),_:1},8,["data"]),a("div",rt,[t(me,{"current-page":ee.value,background:"","page-count":Me.value,"page-sizes":[10,50,100,200],"page-size":u(A),total:ie.value.length,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:Le,onSizeChange:Ee},null,8,["current-page","page-count","page-size","total"])])]),t(F,{modelValue:K.value,"onUpdate:modelValue":l[7]||(l[7]=e=>K.value=e),fullscreen:u(D),center:"",title:"消息推送"},{footer:o(()=>[a("span",ct,[t(r,{onClick:l[6]||(l[6]=e=>K.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:Je},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",dt,[t(g,{modelValue:le.value,"onUpdate:modelValue":l[5]||(l[5]=e=>le.value=e),autosize:{minRows:6,maxRows:20},type:"textarea",placeholder:"输入要推送的消息,支持HTML内容(推荐使用mdnice 转 markdown 转html)"},null,8,["modelValue"])])]),_:1},8,["modelValue","fullscreen"]),t(F,{modelValue:N.value,"onUpdate:modelValue":l[11]||(l[11]=e=>N.value=e),fullscreen:u(D),center:"",title:"状态修改"},{footer:o(()=>[a("span",ft,[t(r,{onClick:l[10]||(l[10]=e=>N.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:Fe},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",mt,[t(w,{modelValue:P.value,"onUpdate:modelValue":l[8]||(l[8]=e=>P.value=e),placeholder:"请选择新分类"},{default:o(()=>[(f(!0),z(se,null,ue(u(Be),e=>(f(),S(c,{key:e.type,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),P.value===1?(f(),z("div",pt,[t(Ye,{modelValue:W.value,"onUpdate:modelValue":l[9]||(l[9]=e=>W.value=e),editable:!1,type:"datetime",placeholder:"点击设置解封日期"},null,8,["modelValue"])])):H("",!0)]),_:1},8,["modelValue","fullscreen"]),t(F,{modelValue:j.value,"onUpdate:modelValue":l[15]||(l[15]=e=>j.value=e),fullscreen:u(D),center:"",title:"密码重置"},{footer:o(()=>[a("span",_t,[t(r,{onClick:l[14]||(l[14]=e=>j.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:He},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",vt,[t(te,{model:b,"label-width":"80px"},{default:o(()=>[t(R,{label:"新密码"},{default:o(()=>[t(g,{modelValue:b.pwd1,"onUpdate:modelValue":l[12]||(l[12]=e=>b.pwd1=e),"show-word-limit":"",clearable:"",placeholder:"请输入新密码",maxlength:"16",minlength:"6"},null,8,["modelValue"])]),_:1}),t(R,null,{default:o(()=>[t(g,{modelValue:b.pwd2,"onUpdate:modelValue":l[13]||(l[13]=e=>b.pwd2=e),"show-word-limit":"",clearable:"",placeholder:"请再次输入",maxlength:"16",minlength:"6"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue","fullscreen"]),t(F,{modelValue:G.value,"onUpdate:modelValue":l[19]||(l[19]=e=>G.value=e),fullscreen:u(D),center:"",title:"绑定手机号"},{footer:o(()=>[a("span",wt,[t(r,{onClick:l[18]||(l[18]=e=>G.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:Ge},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",ht,[t(te,{model:v,"label-width":"60px"},{default:o(()=>[t(R,{label:"手机号"},{default:o(()=>[t(g,{modelValue:v.phone,"onUpdate:modelValue":l[16]||(l[16]=e=>v.phone=e),"show-word-limit":"",clearable:"",placeholder:"请输入手机号",maxlength:"11"},{append:o(()=>[t(r,{disabled:J.value!==0,onClick:je},{default:o(()=>[s(i(re.value),1)]),_:1},8,["disabled"])]),_:1},8,["modelValue"])]),_:1}),t(R,null,{default:o(()=>[t(g,{modelValue:v.code,"onUpdate:modelValue":l[17]||(l[17]=e=>v.code=e),"show-word-limit":"",clearable:"",placeholder:"请输入验证码",maxlength:"4"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue","fullscreen"]),t(F,{modelValue:Z.value,"onUpdate:modelValue":l[22]||(l[22]=e=>Z.value=e),fullscreen:u(D),center:"",title:"修改空间上限"},{footer:o(()=>[a("span",bt,[t(r,{onClick:l[21]||(l[21]=e=>Z.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:Ae},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",gt,[t(te,{model:L,"label-width":"60px"},{default:o(()=>[t(R,{label:"大小"},{default:o(()=>[t(g,{modelValue:L.size,"onUpdate:modelValue":l[20]||(l[20]=e=>L.size=e),"show-word-limit":"",clearable:"",placeholder:"请输入空间上限",maxlength:"4",type:"number"},{append:o(()=>[s(" GB ")]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue","fullscreen"]),t(F,{modelValue:q.value,"onUpdate:modelValue":l[25]||(l[25]=e=>q.value=e),fullscreen:u(D),center:"",title:"修改空间上限"},{footer:o(()=>[a("span",Vt,[t(r,{onClick:l[24]||(l[24]=e=>q.value=!1)},{default:o(()=>[s("取 消")]),_:1}),t(r,{type:"primary",onClick:We},{default:o(()=>[s("确 定")]),_:1})])]),default:o(()=>[a("div",Ct,[t(te,{model:B,"label-width":"60px"},{default:o(()=>[t(R,{label:"余额"},{default:o(()=>[t(g,{modelValue:B.money,"onUpdate:modelValue":l[23]||(l[23]=e=>B.money=e),"show-word-limit":"",clearable:"",placeholder:"请输入新的余额",maxlength:"4",type:"number"},{append:o(()=>[s(" ¥ ")]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue","fullscreen"])])}}}),Ot=ml(yt,[["__scopeId","data-v-5fb60ef4"]]);export{Ot as default};
|
|
2
|
+
//# sourceMappingURL=index-Cl4G6EQO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-CKIiHmIf.js","sources":["../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/message.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/money.mjs","../../src/pages/dashboard/manage/user/index.vue"],"sourcesContent":["import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Message\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224H128zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224h784zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224H205.056z\"\n}, null, -1);\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_4);\n}\nvar message = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { message as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Money\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M256 640v192h640V384H768v-64h150.976c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H233.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096c-2.688-5.184-4.224-10.368-4.224-24.576V640h64z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M768 192H128v448h640V192zm64-22.976v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H105.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096C65.536 682.432 64 677.248 64 663.04V169.024c0-14.272 1.472-19.456 4.288-24.64a29.056 29.056 0 0 1 12.096-12.16C85.568 129.536 90.752 128 104.96 128h685.952c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64z\"\n}, null, -1);\nconst _hoisted_4 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M448 576a160 160 0 1 1 0-320 160 160 0 0 1 0 320zm0-64a96 96 0 1 0 0-192 96 96 0 0 0 0 192z\"\n}, null, -1);\nconst _hoisted_5 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_5);\n}\nvar money = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { money as default };\n","<script lang=\"ts\" setup>\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { DeleteFilled, Message, Money, Refresh, Search } from '@element-plus/icons-vue'\nimport { useLocalStorage } from '@vueuse/core'\nimport Tip from '../../tasks/components/infoPanel/tip.vue'\nimport { PublicApi, SuperUserApi } from '@/apis'\nimport { USER_STATUS } from '@/constants'\nimport { formatDate, formatSize } from '@/utils/stringUtil'\nimport { rMobilePhone, rPassword, rVerCode } from '@/utils/regExp'\n\nimport { useIsMobile, useSiteConfig } from '@/composables'\n\nconst sumCost = ref('')\n// 用户\nconst users = reactive<SuperUserApiTypes.UserItem[]>([])\nfunction refreshUsers() {\n SuperUserApi.getUserList().then((res) => {\n users.splice(0, users.length, ...res.data.list)\n sumCost.value = res.data.sumCost\n ElMessage.success('列表数据刷新成功')\n })\n}\n\n// 筛选用户状态\nconst userStatusType = useLocalStorage('userStatusType', USER_STATUS.NORMAL)\nconst searchWord = ref('')\nconst statusTypeList = reactive([\n {\n label: '正常',\n type: USER_STATUS.NORMAL,\n },\n {\n label: '冻结',\n type: USER_STATUS.FREEZE,\n },\n {\n label: '封禁',\n type: USER_STATUS.BAN,\n },\n])\nconst sortType = useLocalStorage('userListSortType', 'id')\nconst sortTypeList = [\n {\n label: 'ID',\n value: 'id',\n },\n {\n label: '累计上传数量',\n value: 'fileCount',\n },\n {\n label: '累计占用空间',\n value: 'originFileSize',\n },\n {\n label: 'OSS文件数量',\n value: 'ossCount',\n },\n {\n label: '最后登录时间',\n value: 'lastLoginTime',\n },\n {\n label: '登录次数',\n value: 'login_count',\n },\n {\n label: '容量大小',\n value: 'size',\n },\n {\n label: '占用空间',\n value: 'usage',\n },\n {\n label: '限制使用',\n value: 'limitUpload',\n },\n {\n label: '下载次数',\n value: 'downloadCount',\n },\n {\n label: '累计下载大小',\n value: 'downloadSize',\n },\n {\n label: '累计费用',\n value: 'cost',\n },\n]\n\n// 升降序\nconst sortOrder = useLocalStorage('userListSortOrder', 'desc')\nconst sortOrderList = [\n {\n label: '升序',\n value: 'asc',\n },\n {\n label: '降序',\n value: 'desc',\n },\n]\nconst filterUsers = computed(() => {\n const copyUsers = [...users]\n copyUsers.sort((a, b) => {\n return sortOrder.value === 'asc'\n ? a[sortType.value] - b[sortType.value]\n : b[sortType.value] - a[sortType.value]\n })\n return copyUsers\n .filter(v => v.status === userStatusType.value)\n .filter((v) => {\n const {\n id,\n account,\n phone,\n joinTime,\n loginCount,\n loginTime,\n openTime,\n } = v\n if (searchWord.value.length === 0)\n return true\n return `${id} ${account} ${phone} ${loginTime} ${formatDate(\n openTime,\n )} ${formatDate(loginCount)} ${formatDate(joinTime)}`.includes(\n searchWord.value,\n )\n })\n})\n\n// 分页\nconst pageSize = useLocalStorage<number>('userListPageSize', 10)\nfunction handleSizeChange(v: number) {\n pageSize.value = v\n}\nconst pageCount = computed(() => {\n const t = Math.ceil(filterUsers.value.length / pageSize.value)\n return t\n})\nconst pageCurrent = ref(1)\nconst pageUsers = computed(() => {\n const start = (pageCurrent.value - 1) * pageSize.value\n const end = pageCurrent.value * pageSize.value\n return filterUsers.value.slice(start, end)\n})\nfunction handlePageChange(idx: number) {\n pageCurrent.value = idx\n}\n\n// 状态修改\nconst showUserStatusDialog = ref(false)\nconst selectUserId = ref(0)\nconst selectStatus = ref(USER_STATUS.NORMAL)\nconst userStatusList = statusTypeList\nconst openTime = ref('')\nfunction handleChangeStatus(userId: number, status: USER_STATUS, oTime: string) {\n selectUserId.value = userId\n selectStatus.value = status\n openTime.value = oTime\n showUserStatusDialog.value = true\n}\nfunction handleSaveStatus() {\n const user = users.find(u => u.id === selectUserId.value)\n if (selectStatus.value === USER_STATUS.FREEZE) {\n if (!openTime.value) {\n ElMessage.warning('请设置解冻时间')\n return\n }\n user.openTime = openTime.value\n }\n else {\n user.openTime = ''\n }\n user.status = selectStatus.value\n showUserStatusDialog.value = false\n SuperUserApi.updateUserStatus(user.id, user.status, user.openTime).then(\n () => {\n ElMessage.success('修改成功')\n },\n )\n}\n\n// 重置密码\nconst showResetPasswordDialog = ref(false)\nconst pwdForm = reactive({\n pwd1: '',\n pwd2: '',\n})\nfunction handleResetPassword(userId: number) {\n selectUserId.value = userId\n showResetPasswordDialog.value = true\n pwdForm.pwd1 = ''\n pwdForm.pwd2 = ''\n}\n\nfunction checkPwdForm() {\n if (!rPassword.test(pwdForm.pwd1)) {\n ElMessage.warning('密码格式不正确(6-16位 支持字母/数字/下划线)')\n return false\n }\n if (pwdForm.pwd1 !== pwdForm.pwd2) {\n ElMessage.warning('两次输入的密码不一致')\n return false\n }\n\n return true\n}\n\nfunction handleSavePassword() {\n if (!checkPwdForm())\n return\n ElMessageBox.confirm('此操作不可逆,请谨慎操作', '确定要重置用户的密码吗?', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning',\n })\n .then(() => {\n SuperUserApi.resetPassword(selectUserId.value, pwdForm.pwd1).then(() => {\n ElMessage.success('重置成功')\n showResetPasswordDialog.value = false\n })\n })\n .catch(() => {\n //\n })\n}\n\n// 限制空间大小\nconst showLimitSizeDialog = ref(false)\nconst limitSizeForm = reactive({\n size: 2,\n})\nfunction handleRewriteSize(id: number, size: number) {\n selectUserId.value = id\n limitSizeForm.size = size\n showLimitSizeDialog.value = true\n}\nasync function handleSaveSize() {\n if (+limitSizeForm.size < 0) {\n ElMessage.warning('空间上限不能小于0')\n return\n }\n await SuperUserApi.resetLimitSpace(selectUserId.value, +limitSizeForm.size)\n // 接口调用修改\n ElMessage.success('修改成功')\n showLimitSizeDialog.value = false\n refreshUsers()\n}\n// TODO: 重复代码优化\n// 修改余额\nconst showWalletDialog = ref(false)\nconst walletForm = reactive({\n money: 2,\n})\nfunction handleRewriteWallet(id: number, money: number) {\n selectUserId.value = id\n walletForm.money = money\n showWalletDialog.value = true\n}\nasync function handleSaveWallet() {\n if (+walletForm.money < 0) {\n ElMessage.warning('余额不能小于0')\n return\n }\n await SuperUserApi.updateWallet(selectUserId.value, +walletForm.money)\n // 接口调用修改\n ElMessage.success('修改成功')\n showWalletDialog.value = false\n refreshUsers()\n}\n\n// 绑定手机号\nconst showPhoneDialog = ref(false)\nconst phoneForm = reactive({\n phone: '',\n code: '',\n})\nconst codeText = ref('获取验证码')\nconst time = ref(0)\nfunction refreshCodeText() {\n if (time.value === 0) {\n codeText.value = '获取验证码'\n return\n }\n codeText.value = `${time.value}s`\n time.value -= 1\n setTimeout(refreshCodeText, 1000)\n}\nfunction getCode() {\n if (!rMobilePhone.test(phoneForm.phone)) {\n ElMessage.warning('手机号格式不正确')\n return\n }\n // check是否可用\n PublicApi.checkPhone(phoneForm.phone)\n .then(() => {\n PublicApi.getCode(phoneForm.phone).then(() => {\n time.value = 120\n refreshCodeText()\n ElMessage.success('获取成功,请注意查看手机短信')\n })\n })\n .catch((err) => {\n const { code: c } = err\n const msg = '注册失败,未知错误'\n const options: any = {\n 1002: '手机号已被注册',\n 1006: '手机号格式不正确',\n }\n ElMessage.error(options[c] || msg)\n })\n}\nfunction checkPhoneForm() {\n if (!rMobilePhone.test(phoneForm.phone)) {\n ElMessage.warning('手机号格式不正确')\n return false\n }\n if (!rVerCode.test(phoneForm.code)) {\n ElMessage.warning('验证码格式不正确')\n return false\n }\n\n return true\n}\nfunction handleBindPhone(id: number) {\n selectUserId.value = id\n showPhoneDialog.value = true\n}\nasync function handleSavePhone() {\n if (!checkPhoneForm()) {\n return\n }\n // 调用API更新,验证码 不正确判断\n SuperUserApi.resetPhone(selectUserId.value, phoneForm.phone, phoneForm.code)\n .then(() => {\n ElMessage.success('绑定成功')\n showPhoneDialog.value = false\n phoneForm.code = ''\n phoneForm.phone = ''\n refreshUsers()\n })\n .catch((err) => {\n const { code: c } = err\n const msg = '绑定失败,未知错误'\n const options: any = {\n 1002: '手机号已被注册',\n 1003: '验证码不正确',\n }\n ElMessage.error(options[c] || msg)\n })\n}\n\nfunction handleClearFiles(userId: number, type: 'month' | 'quarter' | 'half') {\n const tipWords = {\n month: '一个月前',\n quarter: '三个月前',\n half: '半年前',\n }\n selectUserId.value = userId\n ElMessageBox.confirm('移除后这些文件将无法恢复,请谨慎操作', '删除前确认?', {\n confirmButtonText: `确认删除 ${tipWords[type]}文件`,\n })\n .then(() => {\n SuperUserApi.clearOssFile(userId, type).then(() => {\n ElMessage.success('清理成功')\n })\n })\n .catch(() => {})\n}\n\n// TODO: 0 global 1 user_push\nconst pushMessageType = ref(1)\nconst showMessageDialog = ref(false)\nconst pushMessageText = ref('')\nfunction sendMessage(id: number, type = 1) {\n selectUserId.value = id\n pushMessageType.value = type\n showMessageDialog.value = true\n}\n\nfunction sureSendMessage() {\n SuperUserApi.sendMessage(\n pushMessageText.value,\n pushMessageType.value,\n selectUserId.value,\n ).then(() => {\n ElMessage.success('推送成功')\n // 推送成功\n pushMessageText.value = ''\n showMessageDialog.value = false\n })\n}\nfunction logout(account: string) {\n SuperUserApi.logout(account).then(() => {\n ElMessage.success(`下线成功 ${account}`)\n refreshUsers()\n })\n}\n\nonMounted(() => {\n refreshUsers()\n})\n\nconst isMobile = useIsMobile()\n\nconst { moneyStartDay } = useSiteConfig()\n\nfunction handleCheckDetail(price) {\n const { backhaulTrafficPrice, cdnPrice, compressPrice, ossPrice } = price\n ElMessageBox.confirm(`存储:${ossPrice}, 下载:${cdnPrice},压缩:${compressPrice},回源:${backhaulTrafficPrice}`, {\n showCancelButton: false,\n })\n}\n</script>\n\n<template>\n <div class=\"user\">\n <div class=\"panel\">\n <div class=\"p10 log-filter\">\n <span class=\"item\">\n <span class=\"label\">状态</span>\n <el-select\n v-model=\"userStatusType\"\n size=\"default\"\n class=\"w100\"\n >\n <el-option\n v-for=\"(item, idx) in statusTypeList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.type\"\n />\n </el-select>\n </span>\n <span class=\"item\">\n <span class=\"label\">排序</span>\n <el-select\n v-model=\"sortType\"\n size=\"default\"\n class=\"w100\"\n >\n <el-option\n v-for=\"(item, idx) in sortTypeList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.value\"\n />\n </el-select>\n <el-select\n v-model=\"sortOrder\"\n size=\"default\"\n class=\"w100\"\n >\n <el-option\n v-for=\"(item, idx) in sortOrderList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.value\"\n />\n </el-select>\n </span>\n <span class=\"item\">\n <el-input\n v-model=\"searchWord\"\n size=\"default\"\n clearable\n placeholder=\"请输入要检索的内容\"\n :prefix-icon=\"Search\"\n />\n </span>\n <span class=\"item\">\n <el-button size=\"default\" :icon=\"Refresh\" @click=\"refreshUsers\">刷新</el-button>\n </span>\n <span class=\"item\">\n <el-button\n size=\"warning\"\n :icon=\"Message\"\n @click=\"sendMessage(null, 0)\"\n >推送全局消息</el-button>\n </span>\n </div>\n <Tip>\n 预估费用:{{ sumCost }}¥,\n 计费起始时间:{{ formatDate(moneyStartDay) }}\n </Tip>\n <el-table\n height=\"550\"\n stripe\n border\n :default-sort=\"{ prop: 'date', order: 'descending' }\"\n :data=\"pageUsers\"\n style=\"width: 100%\"\n >\n <el-table-column prop=\"id\" label=\"ID\" width=\"60\" />\n <el-table-column\n prop=\"account\"\n label=\"账号\"\n width=\"130\"\n />\n <el-table-column\n prop=\"phone\"\n label=\"手机号\"\n width=\"80\"\n />\n <el-table-column\n label=\"统计\"\n width=\"190\"\n >\n <template #default=\"scope\">\n 最后登录:{{\n scope.row.loginTime && formatDate(new Date(scope.row.loginTime))\n }}<br>\n 注册时间:{{ formatDate(new Date(scope.row.joinTime)) }}<br>\n 登录次数:{{ scope.row.loginCount }}<br>\n token: {{ scope.row.onlineCount }}<br>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"downloadCount\"\n label=\"累计下载\"\n >\n <template #default=\"{ row: { downloadCount, downloadSize, oneFile, compressFile, templateFile } }\">\n {{ downloadCount }} / {{ formatSize(downloadSize) }}<br>\n 单文件:{{ oneFile.count }} / {{ formatSize(oneFile.size) }}<br>\n 归档:{{ compressFile.count }} / {{ formatSize(compressFile.size) }}<br>\n 模板:{{ templateFile.count }} / {{ formatSize(templateFile.size) }}\n </template>\n </el-table-column>\n <el-table-column\n v-if=\"userStatusType === 1\"\n prop=\"openTime\"\n label=\"解封时间\"\n >\n <template #default=\"scope\">\n {{\n scope.row.openTime && formatDate(new Date(scope.row.openTime))\n }}\n </template>\n </el-table-column>\n <el-table-column\n prop=\"fileCount\"\n label=\"文件\"\n >\n <template #default=\"scope\">\n 累计:{{ scope.row.fileCount }}/{{ formatSize(scope.row.originFileSize) }}<br>\n OSS:{{ scope.row.ossCount }}/{{ formatSize(scope.row.usage) }}<br>\n 平均:{{ scope.row.originFileSize && scope.row.fileCount && formatSize(Math.round(scope.row.originFileSize / scope.row.fileCount)) }}<br>\n 平均:{{ scope.row.usage && scope.row.ossCount && formatSize(Math.round(scope.row.usage / scope.row.ossCount)) }}<br>\n </template>\n </el-table-column>\n <el-table-column label=\"云空间\" width=\"240\">\n <template\n #default=\"{\n row: { wallet, price, balance, resources, monthAgoSize, quarterAgoSize, halfYearSize, id, limitSize, limitUpload, percentage },\n }\"\n >\n <ul class=\"user-oss-info\" :class=\"{ disabled: limitUpload }\">\n <li>\n ¥:{{ price.total }} / {{ wallet }} = {{ balance }} <el-button\n :icon=\"Money\"\n circle\n size=\"small\"\n @click=\"handleCheckDetail(price)\"\n />\n </li>\n <li>{{ percentage }}% {{ resources }}/{{ limitSize }}</li>\n <li>\n 一月前:{{ monthAgoSize\n }}<el-button\n v-if=\"resources !== '0B'\"\n class=\"clear-btn\"\n :icon=\"DeleteFilled\"\n circle\n size=\"small\"\n @click=\"handleClearFiles(id, 'month')\"\n />\n </li>\n <li>\n 三月前:{{ quarterAgoSize\n }}<el-button\n v-if=\"quarterAgoSize !== '0B'\"\n class=\"clear-btn\"\n :icon=\"DeleteFilled\"\n circle\n size=\"small\"\n @click=\"handleClearFiles(id, 'quarter')\"\n />\n </li>\n <li>\n 半年前:{{ halfYearSize\n }}<el-button\n v-if=\"halfYearSize !== '0B'\"\n class=\"clear-btn\"\n :icon=\"DeleteFilled\"\n circle\n size=\"small\"\n @click=\"handleClearFiles(id, 'half')\"\n />\n </li>\n </ul>\n </template>\n </el-table-column>\n <el-table-column fixed=\"right\" label=\"操作\" width=\"100\">\n <template #default=\"scope\">\n <div class=\"text-btn-list\">\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"\n handleChangeStatus(\n scope.row.id,\n scope.row.status,\n scope.row.openTime,\n )\n \"\n >\n 修改状态\n </el-button>\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"handleResetPassword(scope.row.id)\"\n >\n 重置密码\n </el-button>\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"handleBindPhone(scope.row.id)\"\n >\n 绑定手机号\n </el-button>\n <el-button\n type=\"warning\"\n text\n size=\"small\"\n @click=\"sendMessage(scope.row.id)\"\n >\n 发送消息\n </el-button>\n <el-button\n type=\"danger\"\n text\n size=\"small\"\n @click=\"handleRewriteSize(scope.row.id, scope.row.size)\"\n >\n 修改上限\n </el-button>\n <el-button\n type=\"danger\"\n text\n size=\"small\"\n @click=\"handleRewriteWallet(scope.row.id, scope.row.wallet)\"\n >\n 修改余额\n </el-button>\n <el-button\n v-if=\"scope.row.onlineCount !== 0\"\n type=\"danger\"\n text\n size=\"small\"\n @click=\"logout(scope.row.account)\"\n >\n 一键下线\n </el-button>\n </div>\n </template>\n </el-table-column>\n </el-table>\n <div class=\"flex fc p10\">\n <el-pagination\n :current-page=\"pageCurrent\"\n background\n :page-count=\"pageCount\"\n :page-sizes=\"[10, 50, 100, 200]\"\n :page-size=\"pageSize\"\n :total=\"filterUsers.length\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n @current-change=\"handlePageChange\"\n @size-change=\"handleSizeChange\"\n />\n </div>\n </div>\n <!-- 消息推送弹窗 -->\n <el-dialog\n v-model=\"showMessageDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"消息推送\"\n >\n <div class=\"tc\">\n <el-input\n v-model=\"pushMessageText\"\n :autosize=\"{ minRows: 6, maxRows: 20 }\"\n type=\"textarea\"\n placeholder=\"输入要推送的消息,支持HTML内容(推荐使用mdnice 转 markdown 转html)\"\n />\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showMessageDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"sureSendMessage\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 用户状态修改弹窗 -->\n <el-dialog\n v-model=\"showUserStatusDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"状态修改\"\n >\n <div class=\"tc\">\n <el-select v-model=\"selectStatus\" placeholder=\"请选择新分类\">\n <el-option\n v-for=\"s in userStatusList\"\n :key=\"s.type\"\n :label=\"s.label\"\n :value=\"s.type\"\n />\n </el-select>\n </div>\n <div v-if=\"selectStatus === 1\" style=\"margin-top: 10px\" class=\"tc\">\n <el-date-picker\n v-model=\"openTime\"\n :editable=\"false\"\n type=\"datetime\"\n placeholder=\"点击设置解封日期\"\n />\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showUserStatusDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSaveStatus\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n\n <!-- 重置密码 -->\n <el-dialog\n v-model=\"showResetPasswordDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"密码重置\"\n >\n <div class=\"tc\">\n <el-form :model=\"pwdForm\" label-width=\"80px\">\n <el-form-item label=\"新密码\">\n <el-input\n v-model=\"pwdForm.pwd1\"\n show-word-limit\n clearable\n placeholder=\"请输入新密码\"\n maxlength=\"16\"\n minlength=\"6\"\n />\n </el-form-item>\n <el-form-item>\n <el-input\n v-model=\"pwdForm.pwd2\"\n show-word-limit\n clearable\n placeholder=\"请再次输入\"\n maxlength=\"16\"\n minlength=\"6\"\n />\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showResetPasswordDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSavePassword\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 重绑定手机号 -->\n <el-dialog\n v-model=\"showPhoneDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"绑定手机号\"\n >\n <div class=\"tc\">\n <el-form :model=\"phoneForm\" label-width=\"60px\">\n <el-form-item label=\"手机号\">\n <el-input\n v-model=\"phoneForm.phone\"\n show-word-limit\n clearable\n placeholder=\"请输入手机号\"\n maxlength=\"11\"\n >\n <template #append>\n <!-- 获取验证码 -->\n <el-button :disabled=\"time !== 0\" @click=\"getCode\">\n {{\n codeText\n }}\n </el-button>\n </template>\n </el-input>\n </el-form-item>\n <el-form-item>\n <el-input\n v-model=\"phoneForm.code\"\n show-word-limit\n clearable\n placeholder=\"请输入验证码\"\n maxlength=\"4\"\n />\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showPhoneDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSavePhone\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 修改空间上限 -->\n <el-dialog\n v-model=\"showLimitSizeDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"修改空间上限\"\n >\n <div class=\"tc\">\n <el-form :model=\"limitSizeForm\" label-width=\"60px\">\n <el-form-item label=\"大小\">\n <el-input\n v-model=\"limitSizeForm.size\"\n show-word-limit\n clearable\n placeholder=\"请输入空间上限\"\n maxlength=\"4\"\n type=\"number\"\n >\n <template #append>\n GB\n </template>\n </el-input>\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showLimitSizeDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSaveSize\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 修改余额 -->\n <el-dialog\n v-model=\"showWalletDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"修改空间上限\"\n >\n <div class=\"tc\">\n <el-form :model=\"walletForm\" label-width=\"60px\">\n <el-form-item label=\"余额\">\n <el-input\n v-model=\"walletForm.money\"\n show-word-limit\n clearable\n placeholder=\"请输入新的余额\"\n maxlength=\"4\"\n type=\"number\"\n >\n <template #append>\n ¥\n </template>\n </el-input>\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showWalletDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSaveWallet\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n\n .log-filter {\n justify-content: center;\n }\n}\n.w100 {\n width: 100px;\n}\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\n.log-filter {\n display: flex;\n flex-wrap: wrap;\n\n .item {\n margin-right: 10px;\n margin-bottom: 10px;\n .label {\n margin-right: 10px;\n font-size: 12px;\n }\n }\n}\n\n.text-btn-list {\n display: flex;\n flex-wrap: wrap;\n\n button {\n margin-left: 0;\n }\n}\n\n.user-oss-info {\n list-style: none;\n li {\n margin-bottom: 10px;\n }\n .clear-btn {\n margin-left: 10px;\n }\n &.disabled {\n background-color: rgb(245 108 108 / 30%);\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","message","_export_sfc","_hoisted_5","money","sumCost","ref","users","reactive","refreshUsers","SuperUserApi","res","ElMessage","userStatusType","useLocalStorage","USER_STATUS","searchWord","statusTypeList","sortType","sortTypeList","sortOrder","sortOrderList","filterUsers","computed","copyUsers","a","b","v","id","account","phone","joinTime","loginCount","loginTime","openTime","formatDate","pageSize","handleSizeChange","pageCount","pageCurrent","pageUsers","start","end","handlePageChange","idx","showUserStatusDialog","selectUserId","selectStatus","userStatusList","handleChangeStatus","userId","status","oTime","handleSaveStatus","user","u","showResetPasswordDialog","pwdForm","handleResetPassword","checkPwdForm","rPassword","handleSavePassword","ElMessageBox","showLimitSizeDialog","limitSizeForm","handleRewriteSize","size","handleSaveSize","showWalletDialog","walletForm","handleRewriteWallet","handleSaveWallet","showPhoneDialog","phoneForm","codeText","time","refreshCodeText","getCode","rMobilePhone","PublicApi","err","c","msg","options","checkPhoneForm","rVerCode","handleBindPhone","handleSavePhone","handleClearFiles","type","tipWords","pushMessageType","showMessageDialog","pushMessageText","sendMessage","sureSendMessage","logout","onMounted","isMobile","useIsMobile","moneyStartDay","useSiteConfig","handleCheckDetail","price","backhaulTrafficPrice","cdnPrice","compressPrice","ossPrice"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"index-Cl4G6EQO.js","sources":["../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/message.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/money.mjs","../../src/pages/dashboard/manage/user/index.vue"],"sourcesContent":["import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Message\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224H128zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224h784zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224H205.056z\"\n}, null, -1);\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_4);\n}\nvar message = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { message as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Money\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M256 640v192h640V384H768v-64h150.976c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H233.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096c-2.688-5.184-4.224-10.368-4.224-24.576V640h64z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M768 192H128v448h640V192zm64-22.976v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H105.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096C65.536 682.432 64 677.248 64 663.04V169.024c0-14.272 1.472-19.456 4.288-24.64a29.056 29.056 0 0 1 12.096-12.16C85.568 129.536 90.752 128 104.96 128h685.952c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64z\"\n}, null, -1);\nconst _hoisted_4 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M448 576a160 160 0 1 1 0-320 160 160 0 0 1 0 320zm0-64a96 96 0 1 0 0-192 96 96 0 0 0 0 192z\"\n}, null, -1);\nconst _hoisted_5 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_5);\n}\nvar money = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { money as default };\n","<script lang=\"ts\" setup>\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { DeleteFilled, Message, Money, Refresh, Search } from '@element-plus/icons-vue'\nimport { useLocalStorage } from '@vueuse/core'\nimport Tip from '../../tasks/components/infoPanel/tip.vue'\nimport { PublicApi, SuperUserApi } from '@/apis'\nimport { USER_STATUS } from '@/constants'\nimport { formatDate, formatSize } from '@/utils/stringUtil'\nimport { rMobilePhone, rPassword, rVerCode } from '@/utils/regExp'\n\nimport { useIsMobile, useSiteConfig } from '@/composables'\n\nconst sumCost = ref('')\n// 用户\nconst users = reactive<SuperUserApiTypes.UserItem[]>([])\nfunction refreshUsers() {\n SuperUserApi.getUserList().then((res) => {\n users.splice(0, users.length, ...res.data.list)\n sumCost.value = res.data.sumCost\n ElMessage.success('列表数据刷新成功')\n })\n}\n\n// 筛选用户状态\nconst userStatusType = useLocalStorage('userStatusType', USER_STATUS.NORMAL)\nconst searchWord = ref('')\nconst statusTypeList = reactive([\n {\n label: '正常',\n type: USER_STATUS.NORMAL,\n },\n {\n label: '冻结',\n type: USER_STATUS.FREEZE,\n },\n {\n label: '封禁',\n type: USER_STATUS.BAN,\n },\n])\nconst sortType = useLocalStorage('userListSortType', 'id')\nconst sortTypeList = [\n {\n label: 'ID',\n value: 'id',\n },\n {\n label: '累计上传数量',\n value: 'fileCount',\n },\n {\n label: '累计占用空间',\n value: 'originFileSize',\n },\n {\n label: 'OSS文件数量',\n value: 'ossCount',\n },\n {\n label: '最后登录时间',\n value: 'lastLoginTime',\n },\n {\n label: '登录次数',\n value: 'login_count',\n },\n {\n label: '容量大小',\n value: 'size',\n },\n {\n label: '占用空间',\n value: 'usage',\n },\n {\n label: '限制使用',\n value: 'limitUpload',\n },\n {\n label: '下载次数',\n value: 'downloadCount',\n },\n {\n label: '累计下载大小',\n value: 'downloadSize',\n },\n {\n label: '累计费用',\n value: 'cost',\n },\n]\n\n// 升降序\nconst sortOrder = useLocalStorage('userListSortOrder', 'desc')\nconst sortOrderList = [\n {\n label: '升序',\n value: 'asc',\n },\n {\n label: '降序',\n value: 'desc',\n },\n]\nconst filterUsers = computed(() => {\n const copyUsers = [...users]\n copyUsers.sort((a, b) => {\n return sortOrder.value === 'asc'\n ? a[sortType.value] - b[sortType.value]\n : b[sortType.value] - a[sortType.value]\n })\n return copyUsers\n .filter(v => v.status === userStatusType.value)\n .filter((v) => {\n const {\n id,\n account,\n phone,\n joinTime,\n loginCount,\n loginTime,\n openTime,\n } = v\n if (searchWord.value.length === 0)\n return true\n return `${id} ${account} ${phone} ${loginTime} ${formatDate(\n openTime,\n )} ${formatDate(loginCount)} ${formatDate(joinTime)}`.includes(\n searchWord.value,\n )\n })\n})\n\n// 分页\nconst pageSize = useLocalStorage<number>('userListPageSize', 10)\nfunction handleSizeChange(v: number) {\n pageSize.value = v\n}\nconst pageCount = computed(() => {\n const t = Math.ceil(filterUsers.value.length / pageSize.value)\n return t\n})\nconst pageCurrent = ref(1)\nconst pageUsers = computed(() => {\n const start = (pageCurrent.value - 1) * pageSize.value\n const end = pageCurrent.value * pageSize.value\n return filterUsers.value.slice(start, end)\n})\nfunction handlePageChange(idx: number) {\n pageCurrent.value = idx\n}\n\n// 状态修改\nconst showUserStatusDialog = ref(false)\nconst selectUserId = ref(0)\nconst selectStatus = ref(USER_STATUS.NORMAL)\nconst userStatusList = statusTypeList\nconst openTime = ref('')\nfunction handleChangeStatus(userId: number, status: USER_STATUS, oTime: string) {\n selectUserId.value = userId\n selectStatus.value = status\n openTime.value = oTime\n showUserStatusDialog.value = true\n}\nfunction handleSaveStatus() {\n const user = users.find(u => u.id === selectUserId.value)\n if (selectStatus.value === USER_STATUS.FREEZE) {\n if (!openTime.value) {\n ElMessage.warning('请设置解冻时间')\n return\n }\n user.openTime = openTime.value\n }\n else {\n user.openTime = ''\n }\n user.status = selectStatus.value\n showUserStatusDialog.value = false\n SuperUserApi.updateUserStatus(user.id, user.status, user.openTime).then(\n () => {\n ElMessage.success('修改成功')\n },\n )\n}\n\n// 重置密码\nconst showResetPasswordDialog = ref(false)\nconst pwdForm = reactive({\n pwd1: '',\n pwd2: '',\n})\nfunction handleResetPassword(userId: number) {\n selectUserId.value = userId\n showResetPasswordDialog.value = true\n pwdForm.pwd1 = ''\n pwdForm.pwd2 = ''\n}\n\nfunction checkPwdForm() {\n if (!rPassword.test(pwdForm.pwd1)) {\n ElMessage.warning('密码格式不正确(6-16位 支持字母/数字/下划线)')\n return false\n }\n if (pwdForm.pwd1 !== pwdForm.pwd2) {\n ElMessage.warning('两次输入的密码不一致')\n return false\n }\n\n return true\n}\n\nfunction handleSavePassword() {\n if (!checkPwdForm())\n return\n ElMessageBox.confirm('此操作不可逆,请谨慎操作', '确定要重置用户的密码吗?', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning',\n })\n .then(() => {\n SuperUserApi.resetPassword(selectUserId.value, pwdForm.pwd1).then(() => {\n ElMessage.success('重置成功')\n showResetPasswordDialog.value = false\n })\n })\n .catch(() => {\n //\n })\n}\n\n// 限制空间大小\nconst showLimitSizeDialog = ref(false)\nconst limitSizeForm = reactive({\n size: 2,\n})\nfunction handleRewriteSize(id: number, size: number) {\n selectUserId.value = id\n limitSizeForm.size = size\n showLimitSizeDialog.value = true\n}\nasync function handleSaveSize() {\n if (+limitSizeForm.size < 0) {\n ElMessage.warning('空间上限不能小于0')\n return\n }\n await SuperUserApi.resetLimitSpace(selectUserId.value, +limitSizeForm.size)\n // 接口调用修改\n ElMessage.success('修改成功')\n showLimitSizeDialog.value = false\n refreshUsers()\n}\n// TODO: 重复代码优化\n// 修改余额\nconst showWalletDialog = ref(false)\nconst walletForm = reactive({\n money: 2,\n})\nfunction handleRewriteWallet(id: number, money: number) {\n selectUserId.value = id\n walletForm.money = money\n showWalletDialog.value = true\n}\nasync function handleSaveWallet() {\n if (+walletForm.money < 0) {\n ElMessage.warning('余额不能小于0')\n return\n }\n await SuperUserApi.updateWallet(selectUserId.value, +walletForm.money)\n // 接口调用修改\n ElMessage.success('修改成功')\n showWalletDialog.value = false\n refreshUsers()\n}\n\n// 绑定手机号\nconst showPhoneDialog = ref(false)\nconst phoneForm = reactive({\n phone: '',\n code: '',\n})\nconst codeText = ref('获取验证码')\nconst time = ref(0)\nfunction refreshCodeText() {\n if (time.value === 0) {\n codeText.value = '获取验证码'\n return\n }\n codeText.value = `${time.value}s`\n time.value -= 1\n setTimeout(refreshCodeText, 1000)\n}\nfunction getCode() {\n if (!rMobilePhone.test(phoneForm.phone)) {\n ElMessage.warning('手机号格式不正确')\n return\n }\n // check是否可用\n PublicApi.checkPhone(phoneForm.phone)\n .then(() => {\n PublicApi.getCode(phoneForm.phone).then(() => {\n time.value = 120\n refreshCodeText()\n ElMessage.success('获取成功,请注意查看手机短信')\n })\n })\n .catch((err) => {\n const { code: c } = err\n const msg = '注册失败,未知错误'\n const options: any = {\n 1002: '手机号已被注册',\n 1006: '手机号格式不正确',\n }\n ElMessage.error(options[c] || msg)\n })\n}\nfunction checkPhoneForm() {\n if (!rMobilePhone.test(phoneForm.phone)) {\n ElMessage.warning('手机号格式不正确')\n return false\n }\n if (!rVerCode.test(phoneForm.code)) {\n ElMessage.warning('验证码格式不正确')\n return false\n }\n\n return true\n}\nfunction handleBindPhone(id: number) {\n selectUserId.value = id\n showPhoneDialog.value = true\n}\nasync function handleSavePhone() {\n if (!checkPhoneForm()) {\n return\n }\n // 调用API更新,验证码 不正确判断\n SuperUserApi.resetPhone(selectUserId.value, phoneForm.phone, phoneForm.code)\n .then(() => {\n ElMessage.success('绑定成功')\n showPhoneDialog.value = false\n phoneForm.code = ''\n phoneForm.phone = ''\n refreshUsers()\n })\n .catch((err) => {\n const { code: c } = err\n const msg = '绑定失败,未知错误'\n const options: any = {\n 1002: '手机号已被注册',\n 1003: '验证码不正确',\n }\n ElMessage.error(options[c] || msg)\n })\n}\n\nfunction handleClearFiles(userId: number, type: 'month' | 'quarter' | 'half') {\n const tipWords = {\n month: '一个月前',\n quarter: '三个月前',\n half: '半年前',\n }\n selectUserId.value = userId\n ElMessageBox.confirm('移除后这些文件将无法恢复,请谨慎操作', '删除前确认?', {\n confirmButtonText: `确认删除 ${tipWords[type]}文件`,\n })\n .then(() => {\n SuperUserApi.clearOssFile(userId, type).then(() => {\n ElMessage.success('清理成功')\n })\n })\n .catch(() => {})\n}\n\n// TODO: 0 global 1 user_push\nconst pushMessageType = ref(1)\nconst showMessageDialog = ref(false)\nconst pushMessageText = ref('')\nfunction sendMessage(id: number, type = 1) {\n selectUserId.value = id\n pushMessageType.value = type\n showMessageDialog.value = true\n}\n\nfunction sureSendMessage() {\n SuperUserApi.sendMessage(\n pushMessageText.value,\n pushMessageType.value,\n selectUserId.value,\n ).then(() => {\n ElMessage.success('推送成功')\n // 推送成功\n pushMessageText.value = ''\n showMessageDialog.value = false\n })\n}\nfunction logout(account: string) {\n SuperUserApi.logout(account).then(() => {\n ElMessage.success(`下线成功 ${account}`)\n refreshUsers()\n })\n}\n\nonMounted(() => {\n refreshUsers()\n})\n\nconst isMobile = useIsMobile()\n\nconst { moneyStartDay } = useSiteConfig()\n\nfunction handleCheckDetail(price) {\n const { backhaulTrafficPrice, cdnPrice, compressPrice, ossPrice } = price\n ElMessageBox.confirm(`存储:${ossPrice}, 下载:${cdnPrice},压缩:${compressPrice},回源:${backhaulTrafficPrice}`, {\n showCancelButton: false,\n })\n}\n</script>\n\n<template>\n <div class=\"user\">\n <div class=\"panel\">\n <div class=\"p10 log-filter\">\n <span class=\"item\">\n <span class=\"label\">状态</span>\n <el-select\n v-model=\"userStatusType\"\n size=\"default\"\n class=\"w100\"\n >\n <el-option\n v-for=\"(item, idx) in statusTypeList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.type\"\n />\n </el-select>\n </span>\n <span class=\"item\">\n <span class=\"label\">排序</span>\n <el-select\n v-model=\"sortType\"\n size=\"default\"\n class=\"w100\"\n >\n <el-option\n v-for=\"(item, idx) in sortTypeList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.value\"\n />\n </el-select>\n <el-select\n v-model=\"sortOrder\"\n size=\"default\"\n class=\"w100\"\n >\n <el-option\n v-for=\"(item, idx) in sortOrderList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.value\"\n />\n </el-select>\n </span>\n <span class=\"item\">\n <el-input\n v-model=\"searchWord\"\n size=\"default\"\n clearable\n placeholder=\"请输入要检索的内容\"\n :prefix-icon=\"Search\"\n />\n </span>\n <span class=\"item\">\n <el-button size=\"default\" :icon=\"Refresh\" @click=\"refreshUsers\">刷新</el-button>\n </span>\n <span class=\"item\">\n <el-button\n size=\"warning\"\n :icon=\"Message\"\n @click=\"sendMessage(null, 0)\"\n >推送全局消息</el-button>\n </span>\n </div>\n <Tip>\n 预估费用:{{ sumCost }}¥,\n 计费起始时间:{{ formatDate(moneyStartDay) }}\n </Tip>\n <el-table\n height=\"550\"\n stripe\n border\n :default-sort=\"{ prop: 'date', order: 'descending' }\"\n :data=\"pageUsers\"\n style=\"width: 100%\"\n >\n <el-table-column prop=\"id\" label=\"ID\" width=\"60\" />\n <el-table-column\n prop=\"account\"\n label=\"账号\"\n width=\"130\"\n />\n <el-table-column\n prop=\"phone\"\n label=\"手机号\"\n width=\"80\"\n />\n <el-table-column\n label=\"统计\"\n width=\"190\"\n >\n <template #default=\"scope\">\n 最后登录:{{\n scope.row.loginTime && formatDate(new Date(scope.row.loginTime))\n }}<br>\n 注册时间:{{ formatDate(new Date(scope.row.joinTime)) }}<br>\n 登录次数:{{ scope.row.loginCount }}<br>\n token: {{ scope.row.onlineCount }}<br>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"downloadCount\"\n label=\"累计下载\"\n >\n <template #default=\"{ row: { downloadCount, downloadSize, oneFile, compressFile, templateFile } }\">\n {{ downloadCount }} / {{ formatSize(downloadSize) }}<br>\n 单文件:{{ oneFile.count }} / {{ formatSize(oneFile.size) }}<br>\n 归档:{{ compressFile.count }} / {{ formatSize(compressFile.size) }}<br>\n 模板:{{ templateFile.count }} / {{ formatSize(templateFile.size) }}\n </template>\n </el-table-column>\n <el-table-column\n v-if=\"userStatusType === 1\"\n prop=\"openTime\"\n label=\"解封时间\"\n >\n <template #default=\"scope\">\n {{\n scope.row.openTime && formatDate(new Date(scope.row.openTime))\n }}\n </template>\n </el-table-column>\n <el-table-column\n prop=\"fileCount\"\n label=\"文件\"\n >\n <template #default=\"scope\">\n 累计:{{ scope.row.fileCount }}/{{ formatSize(scope.row.originFileSize) }}<br>\n OSS:{{ scope.row.ossCount }}/{{ formatSize(scope.row.usage) }}<br>\n 平均:{{ scope.row.originFileSize && scope.row.fileCount && formatSize(Math.round(scope.row.originFileSize / scope.row.fileCount)) }}<br>\n 平均:{{ scope.row.usage && scope.row.ossCount && formatSize(Math.round(scope.row.usage / scope.row.ossCount)) }}<br>\n </template>\n </el-table-column>\n <el-table-column label=\"云空间\" width=\"240\">\n <template\n #default=\"{\n row: { wallet, price, balance, resources, monthAgoSize, quarterAgoSize, halfYearSize, id, limitSize, limitUpload, percentage },\n }\"\n >\n <ul class=\"user-oss-info\" :class=\"{ disabled: limitUpload }\">\n <li>\n ¥:{{ price.total }} / {{ wallet }} = {{ balance }} <el-button\n :icon=\"Money\"\n circle\n size=\"small\"\n @click=\"handleCheckDetail(price)\"\n />\n </li>\n <li>{{ percentage }}% {{ resources }}/{{ limitSize }}</li>\n <li>\n 一月前:{{ monthAgoSize\n }}<el-button\n v-if=\"resources !== '0B'\"\n class=\"clear-btn\"\n :icon=\"DeleteFilled\"\n circle\n size=\"small\"\n @click=\"handleClearFiles(id, 'month')\"\n />\n </li>\n <li>\n 三月前:{{ quarterAgoSize\n }}<el-button\n v-if=\"quarterAgoSize !== '0B'\"\n class=\"clear-btn\"\n :icon=\"DeleteFilled\"\n circle\n size=\"small\"\n @click=\"handleClearFiles(id, 'quarter')\"\n />\n </li>\n <li>\n 半年前:{{ halfYearSize\n }}<el-button\n v-if=\"halfYearSize !== '0B'\"\n class=\"clear-btn\"\n :icon=\"DeleteFilled\"\n circle\n size=\"small\"\n @click=\"handleClearFiles(id, 'half')\"\n />\n </li>\n </ul>\n </template>\n </el-table-column>\n <el-table-column fixed=\"right\" label=\"操作\" width=\"100\">\n <template #default=\"scope\">\n <div class=\"text-btn-list\">\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"\n handleChangeStatus(\n scope.row.id,\n scope.row.status,\n scope.row.openTime,\n )\n \"\n >\n 修改状态\n </el-button>\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"handleResetPassword(scope.row.id)\"\n >\n 重置密码\n </el-button>\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"handleBindPhone(scope.row.id)\"\n >\n 绑定手机号\n </el-button>\n <el-button\n type=\"warning\"\n text\n size=\"small\"\n @click=\"sendMessage(scope.row.id)\"\n >\n 发送消息\n </el-button>\n <el-button\n type=\"danger\"\n text\n size=\"small\"\n @click=\"handleRewriteSize(scope.row.id, scope.row.size)\"\n >\n 修改上限\n </el-button>\n <el-button\n type=\"danger\"\n text\n size=\"small\"\n @click=\"handleRewriteWallet(scope.row.id, scope.row.wallet)\"\n >\n 修改余额\n </el-button>\n <el-button\n v-if=\"scope.row.onlineCount !== 0\"\n type=\"danger\"\n text\n size=\"small\"\n @click=\"logout(scope.row.account)\"\n >\n 一键下线\n </el-button>\n </div>\n </template>\n </el-table-column>\n </el-table>\n <div class=\"flex fc p10\">\n <el-pagination\n :current-page=\"pageCurrent\"\n background\n :page-count=\"pageCount\"\n :page-sizes=\"[10, 50, 100, 200]\"\n :page-size=\"pageSize\"\n :total=\"filterUsers.length\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n @current-change=\"handlePageChange\"\n @size-change=\"handleSizeChange\"\n />\n </div>\n </div>\n <!-- 消息推送弹窗 -->\n <el-dialog\n v-model=\"showMessageDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"消息推送\"\n >\n <div class=\"tc\">\n <el-input\n v-model=\"pushMessageText\"\n :autosize=\"{ minRows: 6, maxRows: 20 }\"\n type=\"textarea\"\n placeholder=\"输入要推送的消息,支持HTML内容(推荐使用mdnice 转 markdown 转html)\"\n />\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showMessageDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"sureSendMessage\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 用户状态修改弹窗 -->\n <el-dialog\n v-model=\"showUserStatusDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"状态修改\"\n >\n <div class=\"tc\">\n <el-select v-model=\"selectStatus\" placeholder=\"请选择新分类\">\n <el-option\n v-for=\"s in userStatusList\"\n :key=\"s.type\"\n :label=\"s.label\"\n :value=\"s.type\"\n />\n </el-select>\n </div>\n <div v-if=\"selectStatus === 1\" style=\"margin-top: 10px\" class=\"tc\">\n <el-date-picker\n v-model=\"openTime\"\n :editable=\"false\"\n type=\"datetime\"\n placeholder=\"点击设置解封日期\"\n />\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showUserStatusDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSaveStatus\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n\n <!-- 重置密码 -->\n <el-dialog\n v-model=\"showResetPasswordDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"密码重置\"\n >\n <div class=\"tc\">\n <el-form :model=\"pwdForm\" label-width=\"80px\">\n <el-form-item label=\"新密码\">\n <el-input\n v-model=\"pwdForm.pwd1\"\n show-word-limit\n clearable\n placeholder=\"请输入新密码\"\n maxlength=\"16\"\n minlength=\"6\"\n />\n </el-form-item>\n <el-form-item>\n <el-input\n v-model=\"pwdForm.pwd2\"\n show-word-limit\n clearable\n placeholder=\"请再次输入\"\n maxlength=\"16\"\n minlength=\"6\"\n />\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showResetPasswordDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSavePassword\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 重绑定手机号 -->\n <el-dialog\n v-model=\"showPhoneDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"绑定手机号\"\n >\n <div class=\"tc\">\n <el-form :model=\"phoneForm\" label-width=\"60px\">\n <el-form-item label=\"手机号\">\n <el-input\n v-model=\"phoneForm.phone\"\n show-word-limit\n clearable\n placeholder=\"请输入手机号\"\n maxlength=\"11\"\n >\n <template #append>\n <!-- 获取验证码 -->\n <el-button :disabled=\"time !== 0\" @click=\"getCode\">\n {{\n codeText\n }}\n </el-button>\n </template>\n </el-input>\n </el-form-item>\n <el-form-item>\n <el-input\n v-model=\"phoneForm.code\"\n show-word-limit\n clearable\n placeholder=\"请输入验证码\"\n maxlength=\"4\"\n />\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showPhoneDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSavePhone\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 修改空间上限 -->\n <el-dialog\n v-model=\"showLimitSizeDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"修改空间上限\"\n >\n <div class=\"tc\">\n <el-form :model=\"limitSizeForm\" label-width=\"60px\">\n <el-form-item label=\"大小\">\n <el-input\n v-model=\"limitSizeForm.size\"\n show-word-limit\n clearable\n placeholder=\"请输入空间上限\"\n maxlength=\"4\"\n type=\"number\"\n >\n <template #append>\n GB\n </template>\n </el-input>\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showLimitSizeDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSaveSize\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 修改余额 -->\n <el-dialog\n v-model=\"showWalletDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"修改空间上限\"\n >\n <div class=\"tc\">\n <el-form :model=\"walletForm\" label-width=\"60px\">\n <el-form-item label=\"余额\">\n <el-input\n v-model=\"walletForm.money\"\n show-word-limit\n clearable\n placeholder=\"请输入新的余额\"\n maxlength=\"4\"\n type=\"number\"\n >\n <template #append>\n ¥\n </template>\n </el-input>\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showWalletDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSaveWallet\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n\n .log-filter {\n justify-content: center;\n }\n}\n.w100 {\n width: 100px;\n}\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\n.log-filter {\n display: flex;\n flex-wrap: wrap;\n\n .item {\n margin-right: 10px;\n margin-bottom: 10px;\n .label {\n margin-right: 10px;\n font-size: 12px;\n }\n }\n}\n\n.text-btn-list {\n display: flex;\n flex-wrap: wrap;\n\n button {\n margin-left: 0;\n }\n}\n\n.user-oss-info {\n list-style: none;\n li {\n margin-bottom: 10px;\n }\n .clear-btn {\n margin-left: 10px;\n }\n &.disabled {\n background-color: rgb(245 108 108 / 30%);\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","message","_export_sfc","_hoisted_5","money","sumCost","ref","users","reactive","refreshUsers","SuperUserApi","res","ElMessage","userStatusType","useLocalStorage","USER_STATUS","searchWord","statusTypeList","sortType","sortTypeList","sortOrder","sortOrderList","filterUsers","computed","copyUsers","a","b","v","id","account","phone","joinTime","loginCount","loginTime","openTime","formatDate","pageSize","handleSizeChange","pageCount","pageCurrent","pageUsers","start","end","handlePageChange","idx","showUserStatusDialog","selectUserId","selectStatus","userStatusList","handleChangeStatus","userId","status","oTime","handleSaveStatus","user","u","showResetPasswordDialog","pwdForm","handleResetPassword","checkPwdForm","rPassword","handleSavePassword","ElMessageBox","showLimitSizeDialog","limitSizeForm","handleRewriteSize","size","handleSaveSize","showWalletDialog","walletForm","handleRewriteWallet","handleSaveWallet","showPhoneDialog","phoneForm","codeText","time","refreshCodeText","getCode","rMobilePhone","PublicApi","err","c","msg","options","checkPhoneForm","rVerCode","handleBindPhone","handleSavePhone","handleClearFiles","type","tipWords","pushMessageType","showMessageDialog","pushMessageText","sendMessage","sureSendMessage","logout","onMounted","isMobile","useIsMobile","moneyStartDay","useSiteConfig","handleCheckDetail","price","backhaulTrafficPrice","cdnPrice","compressPrice","ossPrice"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.warnColor[data-v-a37d47b6]{color:#f56c6c}.files[data-v-a37d47b6]{max-width:1024px;margin:0 auto;padding-bottom:2em}@media screen and (max-width: 700px){.files[data-v-a37d47b6]{margin-top:70px}.text-btns[data-v-a37d47b6]{display:flex;flex-direction:column}.text-btns[data-v-a37d47b6] .el-button{margin-left:0;margin-bottom:0}.header[data-v-a37d47b6]{justify-content:center}.export-btns[data-v-a37d47b6]{display:flex;flex-wrap:wrap;justify-content:space-around}}.panel[data-v-a37d47b6]{padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px;z-index:1}.panel .label[data-v-a37d47b6]{font-size:12px;margin-right:10px}.header[data-v-a37d47b6]{display:flex;flex-wrap:wrap}.header .item[data-v-a37d47b6]{margin-right:10px;margin-bottom:10px}.el-button[data-v-a37d47b6]{margin-left:10px;margin-bottom:10px}.control-item[data-v-a37d47b6]{margin-left:10px;margin-bottom:10px;font-size:14px}.imageLoading[data-v-a37d47b6]{display:flex;align-items:center;justify-content:center;height:100%}.imageDes[data-v-a37d47b6]{position:absolute;bottom:80px;color:#fff;left:50%;transform:translate(-50%)}.progress-list[data-v-a37d47b6]{margin-top:10px}.progress-list .progress-item[data-v-a37d47b6]{margin-bottom:10px;text-align:center}.progress-list .progress-item .progress[data-v-a37d47b6]{display:flex;justify-content:center;align-items:center;margin-bottom:6px}.progress-list .progress-item .progress .el-progress--line[data-v-a37d47b6]{min-width:200px;width:260px}.progress-list .progress-item .progress .el-button[data-v-a37d47b6]{margin:0 6px}.progress-list .progress-item .des[data-v-a37d47b6]{font-size:12px}.progress-list .progress-item .des .filename[data-v-a37d47b6]{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;margin-right:10px}.progress-list .progress-item .des .mimeType[data-v-a37d47b6]{width:60px;color:#409eff}.money-detail[data-v-a37d47b6]{color:#409eff;cursor:pointer}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as R,u as V,O as J,Z as B,r as y,c_ as j,o as z,bs as g,i as $,a as s,c as r,b as o,j as i,w as u,e as c,F as b,C as A,t as v,D as f,k as F,E as m,y as I,x as M,v as L,_ as T}from"./index-
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{d as R,u as V,O as J,Z as B,r as y,c_ as j,o as z,bs as g,i as $,a as s,c as r,b as o,j as i,w as u,e as c,F as b,C as A,t as v,D as f,k as F,E as m,y as I,x as M,v as L,_ as T}from"./index-CYAf_OTx.js";import{E as U}from"./el-switch-B76QvbJN.js";import"./validator-BMr-jeUB.js";const Z={class:"user"},q={class:"panel"},G={class:"routes"},H={class:"title"},K={class:"path"},P={class:"config-btn"},Q={class:"config-panel"},W=R({__name:"index",setup(X){const w=V(),C=J(()=>w.options.routes.filter(e=>{var t;return(t=e.meta)==null?void 0:t.allowDisabled})),h=B([]);function k(e){g.addDisabledRoute(e.path,!e.disabled).then(()=>{e.disabled=!e.disabled,m.success("切换成功")})}const n=y(!1),{value:p,updateValue:x}=j(),d=y("");function S(){n.value=!0,d.value=JSON.stringify(p.value,null,2)}async function E(){try{const e=JSON.parse(d.value);p.value=e,await x(),n.value=!1,m.success("保存成功")}catch(e){return m.error("JSON 格式错误")}}return z(()=>{for(const e of C.value)g.checkDisabledRoute(e.path).then(t=>{var l;h.push({path:e.path,name:e.name.toString(),title:e.meta.title,disabled:!!((l=t.data)!=null&&l.status)})})}),(e,t)=>{const l=I,D=U,_=M,N=$("json-viewer"),O=L;return s(),r("div",Z,[o("div",q,[i(l,null,{default:u(()=>[c("禁用路由管理")]),_:1}),o("ul",G,[(s(!0),r(b,null,A(h,a=>(s(),r("li",{key:a.name},[i(D,{"model-value":!a.disabled,style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"},onChange:Y=>k(a)},null,8,["model-value","onChange"]),o("span",H,v(a.title),1),o("span",K,v(a.path)+v(a.path==="/register"?" 关闭后将同时禁用注册功能":""),1)]))),128))]),i(l,null,{default:u(()=>[c("全局配置管理(JSON)")]),_:1}),o("div",P,[n.value?(s(),r(b,{key:1},[i(_,{size:"small",type:"danger",onClick:t[0]||(t[0]=a=>n.value=!1)},{default:u(()=>[c(" 取消 ")]),_:1}),i(_,{size:"small",type:"success",onClick:E},{default:u(()=>[c(" 保存 ")]),_:1})],64)):(s(),f(_,{key:0,size:"small",type:"primary",onClick:S},{default:u(()=>[c(" 更新 ")]),_:1}))]),o("div",Q,[n.value?(s(),f(O,{key:1,modelValue:d.value,"onUpdate:modelValue":t[1]||(t[1]=a=>d.value=a),autosize:{minRows:2,maxRows:30},type:"textarea"},null,8,["modelValue"])):(s(),f(N,{key:0,value:F(p),"expand-depth":5,copyable:"",boxed:"",sort:""},null,8,["value"]))])])])}}}),se=T(W,[["__scopeId","data-v-1e07da88"]]);export{se as default};
|
|
2
|
+
//# sourceMappingURL=index-Cyb1OjRN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-Cyb1OjRN.js","sources":["../../src/pages/dashboard/manage/config/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { SuperOverviewApi } from '@/apis'\nimport { useSiteAllConfig } from '@/composables'\n\nconst $router = useRouter()\nconst routes = computed(() =>\n $router.options.routes.filter(v => v.meta?.allowDisabled),\n)\nconst showRoutes = reactive<\n {\n path: string\n name: string\n title: string\n disabled: boolean\n }[]\n>([])\n\nfunction handleChangeRoute(r: (typeof showRoutes)[0]) {\n SuperOverviewApi.addDisabledRoute(r.path, !r.disabled).then(() => {\n r.disabled = !r.disabled\n ElMessage.success('切换成功')\n })\n}\n\nconst editConfig = ref(false)\nconst { value: jsonData, updateValue: updateJsonData } = useSiteAllConfig()\n\nconst editJSON = ref('')\n\nfunction handleEditConfig() {\n editConfig.value = true\n editJSON.value = JSON.stringify(jsonData.value, null, 2)\n}\nasync function handleSaveConfig() {\n try {\n const data = JSON.parse(editJSON.value)\n jsonData.value = data\n await updateJsonData()\n editConfig.value = false\n ElMessage.success('保存成功')\n }\n catch (e) {\n return ElMessage.error('JSON 格式错误')\n }\n}\nonMounted(() => {\n for (const r of routes.value) {\n SuperOverviewApi.checkDisabledRoute(r.path).then((v) => {\n showRoutes.push({\n path: r.path,\n name: r.name.toString(),\n title: r.meta.title,\n disabled: !!v.data?.status,\n })\n })\n }\n})\n</script>\n\n<template>\n <div class=\"user\">\n <div class=\"panel\">\n <el-divider>禁用路由管理</el-divider>\n <ul class=\"routes\">\n <li v-for=\"r in showRoutes\" :key=\"r.name\">\n <el-switch\n :model-value=\"!r.disabled\" style=\"\n --el-switch-on-color: #13ce66;\n --el-switch-off-color: #ff4949;\n \" @change=\"handleChangeRoute(r)\"\n />\n <span class=\"title\">{{ r.title }}</span>\n <span class=\"path\">{{ r.path }}{{ r.path === '/register' ? ' 关闭后将同时禁用注册功能' : '' }}</span>\n </li>\n </ul>\n <el-divider>全局配置管理(JSON)</el-divider>\n <div class=\"config-btn\">\n <el-button v-if=\"!editConfig\" size=\"small\" type=\"primary\" @click=\"handleEditConfig\">\n 更新\n </el-button>\n <template v-else>\n <el-button size=\"small\" type=\"danger\" @click=\"editConfig = false\">\n 取消\n </el-button>\n <el-button size=\"small\" type=\"success\" @click=\"handleSaveConfig\">\n 保存\n </el-button>\n </template>\n </div>\n <div class=\"config-panel\">\n <json-viewer\n v-if=\"!editConfig\"\n :value=\"jsonData\"\n :expand-depth=\"5\"\n copyable\n boxed\n sort\n />\n <!-- TODO: JSON editor -->\n <el-input\n v-else\n v-model=\"editJSON\"\n :autosize=\"{ minRows: 2, maxRows: 30 }\"\n type=\"textarea\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n}\n\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\n.routes {\n max-width: 500px;\n margin: 0 auto;\n\n li {\n display: flex;\n padding: 20px;\n align-items: center;\n\n .title {\n font-weight: bold;\n margin: 0 10px;\n }\n }\n}\n.config-btn {\n text-align: center;\n}\n.config-panel {\n max-width: 500px;\n margin: 0 auto;\n}\n</style>\n"],"names":["$router","useRouter","routes","computed","v","_a","showRoutes","reactive","handleChangeRoute","r","SuperOverviewApi","ElMessage","editConfig","ref","jsonData","updateJsonData","useSiteAllConfig","editJSON","handleEditConfig","handleSaveConfig","data","onMounted"],"mappings":"0cAOA,MAAMA,EAAUC,IACVC,EAASC,EAAS,IACtBH,EAAQ,QAAQ,OAAO,OAAYI,GAAA,OAAA,OAAAC,EAAAD,EAAE,OAAF,YAAAC,EAAQ,cAAa,CAAA,EAEpDC,EAAaC,EAOjB,CAAA,CAAE,EAEJ,SAASC,EAAkBC,EAA2B,CACnCC,EAAA,iBAAiBD,EAAE,KAAM,CAACA,EAAE,QAAQ,EAAE,KAAK,IAAM,CAC9DA,EAAA,SAAW,CAACA,EAAE,SAChBE,EAAU,QAAQ,MAAM,CAAA,CACzB,CACH,CAEM,MAAAC,EAAaC,EAAI,EAAK,EACtB,CAAE,MAAOC,EAAU,YAAaC,CAAA,EAAmBC,IAEnDC,EAAWJ,EAAI,EAAE,EAEvB,SAASK,GAAmB,CAC1BN,EAAW,MAAQ,GACnBK,EAAS,MAAQ,KAAK,UAAUH,EAAS,MAAO,KAAM,CAAC,CACzD,CACA,eAAeK,GAAmB,CAC5B,GAAA,CACF,MAAMC,EAAO,KAAK,MAAMH,EAAS,KAAK,EACtCH,EAAS,MAAQM,EACjB,MAAML,EAAe,EACrBH,EAAW,MAAQ,GACnBD,EAAU,QAAQ,MAAM,QAEnB,EAAG,CACD,OAAAA,EAAU,MAAM,WAAW,CACpC,CACF,CACA,OAAAU,EAAU,IAAM,CACH,UAAAZ,KAAKP,EAAO,MACrBQ,EAAiB,mBAAmBD,EAAE,IAAI,EAAE,KAAML,GAAM,OACtDE,EAAW,KAAK,CACd,KAAMG,EAAE,KACR,KAAMA,EAAE,KAAK,SAAS,EACtB,MAAOA,EAAE,KAAK,MACd,SAAU,CAAC,GAACJ,EAAAD,EAAE,OAAF,MAAAC,EAAQ,OAAA,CACrB,CAAA,CACF,CACH,CACD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a4 as D,d as se,Z as $,r as d,O as T,o as oe,a as y,c as U,b as u,j as l,w as s,F,C as N,D as R,k as E,e as r,t as O,s as j,E as P,v as ne,x as ue,p as ie,f as de,_ as re}from"./index-
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
import{a4 as D,d as se,Z as $,r as d,O as T,o as oe,a as y,c as U,b as u,j as l,w as s,F,C as N,D as R,k as E,e as r,t as O,s as j,E as P,v as ne,x as ue,p as ie,f as de,_ as re}from"./index-CYAf_OTx.js";import{E as pe,a as ce}from"./el-form-item-DOwM4Mv8.js";import{u as fe,E as me}from"./el-dialog-PRccau6N.js";import{s as _e,E as ve}from"./el-pagination-iCicJonH.js";import{E as he,a as be}from"./el-select-CVjQdC39.js";import{E as ge,a as we}from"./el-table-column-tkbtgrcD.js";import{W as _}from"./index-BrOLxzFM.js";import"./isEqual-BHpVKj_X.js";import"./index-DrKX0cCg.js";import"./validator-BMr-jeUB.js";function Ve(n){return D.post("/wish/add",n)}function ye(){return D.get("/wish/all")}function Ee(n,i){return D.put("/wish/update",{id:n,status:i})}function Ce(n,i,k){return D.put("/wish/update/".concat(n),{title:i,des:k})}const L={addWish:Ve,findAllWish:ye,updateWishStatus:Ee,updateWishDes:Ce},We=n=>(ie("data-v-fb1cf9f1"),n=n(),de(),n),Se={class:"user"},xe={class:"panel"},De={class:"p10 log-filter"},ke={class:"item"},ze=We(()=>u("span",{class:"label"},"状态",-1)),Ie={class:"item"},$e={class:"text-btn-list"},Te={class:"flex fc p10"},Ue={class:"tc"},Le={class:"dialog-footer"},Ae={class:"dialog-footer"},Z="80px",Be=se({__name:"index",setup(n){const i=$([]);function k(){L.findAllWish().then(a=>{i.splice(0,i.length,...a.data)})}const C=d(-1),W=d(""),z=$([{label:"待审核",type:_.REVIEW},{label:"待开始",type:_.WAIT},{label:"关闭",type:_.CLOSE},{label:"已上线",type:_.END},{label:"开发中",type:_.START}]),I=T(()=>i.filter(a=>a.status===C.value||C.value===-1).filter(a=>{const{createDate:t,title:p,des:x,contact:w}=a;return W.value.length===0?!0:"".concat(j(new Date(t))," ").concat(p," ").concat(x," ").concat(w).includes(W.value)})),v=d(10);function q(a){v.value=a}const G=T(()=>Math.ceil(I.value.length/v.value)),S=d(1),H=T(()=>{const a=(S.value-1)*v.value,t=S.value*v.value;return I.value.slice(a,t)});function J(a){S.value=a}const h=d(!1),c=d(""),b=d(_.REVIEW),K=z;function Q(a,t){c.value=a,b.value=t,h.value=!0}function X(){const a=i.find(t=>t.id===c.value);a.status=b.value,h.value=!1,L.updateWishStatus(c.value,b.value).then(()=>{P.success("修改成功")})}const g=d(!1),o=$({title:"",des:""});function Y(a,t,p){c.value=a,o.title=t,o.des=p,g.value=!0}function ee(){const a=i.find(t=>t.id===c.value);L.updateWishDes(c.value,o.title,o.des).then(()=>{g.value=!1,a.title=o.title,a.des=o.des,P.success("修改成功")})}oe(()=>{k()});const A=fe();return(a,t)=>{const p=he,x=be,w=ne,f=ge,m=ue,te=we,le=ve,B=me,M=pe,ae=ce;return y(),U("div",Se,[u("div",xe,[u("div",De,[u("span",ke,[ze,l(x,{modelValue:C.value,"onUpdate:modelValue":t[0]||(t[0]=e=>C.value=e),size:"default",placeholder:"请选择筛选状态"},{default:s(()=>[l(p,{label:"全部",value:-1}),(y(!0),U(F,null,N(z,(e,V)=>(y(),R(p,{key:V,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),u("span",Ie,[l(w,{modelValue:W.value,"onUpdate:modelValue":t[1]||(t[1]=e=>W.value=e),size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":E(_e)},null,8,["modelValue","prefix-icon"])])]),l(te,{height:"550",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},data:H.value,style:{width:"100%"}},{default:s(()=>[l(f,{sortable:"",prop:"createDate",label:"提交时间",width:"190"},{default:s(e=>[r(O(e.row.createDate&&E(j)(new Date(e.row.createDate))),1)]),_:1}),l(f,{prop:"title",label:"标题",width:"120"}),l(f,{prop:"des",label:"详细描述"}),l(f,{prop:"contact",label:"联系方式"}),l(f,{prop:"status",label:"状态"},{default:s(e=>[r(O(z.find(V=>V.type===e.row.status).label),1)]),_:1}),l(f,{fixed:"right",label:"操作",width:"100"},{default:s(e=>[u("div",$e,[l(m,{type:"primary",text:"",size:"small",onClick:V=>Q(e.row.id,e.row.status)},{default:s(()=>[r(" 修改状态 ")]),_:2},1032,["onClick"]),l(m,{type:"primary",text:"",size:"small",onClick:V=>Y(e.row.id,e.row.title,e.row.des)},{default:s(()=>[r(" 修改描述 ")]),_:2},1032,["onClick"])])]),_:1})]),_:1},8,["data"]),u("div",Te,[l(le,{"current-page":S.value,background:"","page-count":G.value,"page-sizes":[10,50,100,200],"page-size":v.value,total:I.value.length,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:J,onSizeChange:q},null,8,["current-page","page-count","page-size","total"])])]),l(B,{modelValue:h.value,"onUpdate:modelValue":t[4]||(t[4]=e=>h.value=e),fullscreen:E(A),center:"",title:"状态修改"},{footer:s(()=>[u("span",Le,[l(m,{onClick:t[3]||(t[3]=e=>h.value=!1)},{default:s(()=>[r("取 消")]),_:1}),l(m,{type:"primary",onClick:X},{default:s(()=>[r("确 定")]),_:1})])]),default:s(()=>[u("div",Ue,[l(x,{modelValue:b.value,"onUpdate:modelValue":t[2]||(t[2]=e=>b.value=e),placeholder:"请选择新状态"},{default:s(()=>[(y(!0),U(F,null,N(E(K),e=>(y(),R(p,{key:e.type,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])]),_:1},8,["modelValue","fullscreen"]),l(B,{modelValue:g.value,"onUpdate:modelValue":t[8]||(t[8]=e=>g.value=e),title:"需求信息",fullscreen:E(A)},{footer:s(()=>[u("span",Ae,[l(m,{onClick:t[7]||(t[7]=e=>g.value=!1)},{default:s(()=>[r("取 消")]),_:1}),l(m,{type:"primary",onClick:ee},{default:s(()=>[r("确 定")]),_:1})])]),default:s(()=>[l(ae,{model:o},{default:s(()=>[l(M,{label:"需求","label-width":Z},{default:s(()=>[l(w,{modelValue:o.title,"onUpdate:modelValue":t[5]||(t[5]=e=>o.title=e),placeholder:"一句简单明了的话概括一下"},null,8,["modelValue"])]),_:1}),l(M,{label:"详细描述","label-width":Z},{default:s(()=>[l(w,{modelValue:o.des,"onUpdate:modelValue":t[6]||(t[6]=e=>o.des=e),placeholder:"用朴素的话语进一步描述你的需求",type:"textarea"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","fullscreen"])])}}}),He=re(Be,[["__scopeId","data-v-fb1cf9f1"]]);export{He as default};
|
|
2
|
+
//# sourceMappingURL=index-D7aZxhM6.js.map
|