@sugarat/easypicker2-client 2.7.3 → 2.8.0
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/aria-legacy-B70JmEZA.js.map +1 -1
- package/dist/assets/aria-nkjrUMQ-.js.map +1 -1
- package/dist/assets/config-CnEgj70a.css +1 -0
- package/dist/assets/config-DR4Jo6x0.js +2 -0
- package/dist/assets/config-DR4Jo6x0.js.map +1 -0
- package/dist/assets/config-legacy-Frhed9Ou.js +2 -0
- package/dist/assets/config-legacy-Frhed9Ou.js.map +1 -0
- package/dist/assets/{data-analysis-Bnq_VWU8.js → data-analysis-B8jQ_UrC.js} +2 -2
- package/dist/assets/data-analysis-B8jQ_UrC.js.map +1 -0
- package/dist/assets/{data-analysis-legacy-_KcR253K.js → data-analysis-legacy-DjCCKm5W.js} +2 -2
- package/dist/assets/data-analysis-legacy-DjCCKm5W.js.map +1 -0
- package/dist/assets/{data-board-L3s5ouKd.js → data-board-BGj6fORD.js} +2 -2
- package/dist/assets/data-board-BGj6fORD.js.map +1 -0
- package/dist/assets/{data-board-legacy-BFxWeFnQ.js → data-board-legacy-D0aBtKuE.js} +2 -2
- package/dist/assets/data-board-legacy-D0aBtKuE.js.map +1 -0
- package/dist/assets/delete-filled-B3KAHg4C.js +2 -0
- package/dist/assets/delete-filled-B3KAHg4C.js.map +1 -0
- package/dist/assets/delete-filled-legacy-IwQ4U_-h.js +2 -0
- package/dist/assets/delete-filled-legacy-IwQ4U_-h.js.map +1 -0
- package/dist/assets/el-date-picker-2VHUEHRN.js +2 -0
- package/dist/assets/el-date-picker-2VHUEHRN.js.map +1 -0
- package/dist/assets/el-date-picker-legacy-6LjuTLvj.js +2 -0
- package/dist/assets/el-date-picker-legacy-6LjuTLvj.js.map +1 -0
- package/dist/assets/el-dropdown-item-C_iGHfk5.js +2 -0
- package/dist/assets/el-dropdown-item-C_iGHfk5.js.map +1 -0
- package/dist/assets/el-dropdown-item-legacy-Dd1a85un.js +2 -0
- package/dist/assets/el-dropdown-item-legacy-Dd1a85un.js.map +1 -0
- package/dist/assets/el-empty-C2yupmrg.css +1 -0
- package/dist/assets/el-empty-DM1AJWOT.js +2 -0
- package/dist/assets/el-empty-DM1AJWOT.js.map +1 -0
- package/dist/assets/el-empty-legacy-ZCYPIt_S.js +2 -0
- package/dist/assets/el-empty-legacy-ZCYPIt_S.js.map +1 -0
- package/dist/assets/el-input-number-CU7OpiYS.css +1 -0
- package/dist/assets/el-input-number-CgyrHNcj.js +2 -0
- package/dist/assets/el-input-number-CgyrHNcj.js.map +1 -0
- package/dist/assets/el-input-number-legacy-Bh6hK4h_.js +2 -0
- package/dist/assets/el-input-number-legacy-Bh6hK4h_.js.map +1 -0
- package/dist/assets/{el-loading-DNzUD85e.js → el-loading-DqRoOOxo.js} +2 -2
- package/dist/assets/el-loading-DqRoOOxo.js.map +1 -0
- package/dist/assets/el-loading-legacy-CFNL_MoE.js +2 -0
- package/dist/assets/el-loading-legacy-CFNL_MoE.js.map +1 -0
- package/dist/assets/el-pagination-DVClk9XJ.js +2 -0
- package/dist/assets/el-pagination-DVClk9XJ.js.map +1 -0
- package/dist/assets/el-pagination-legacy-DwnhLxcB.js +2 -0
- package/dist/assets/el-pagination-legacy-DwnhLxcB.js.map +1 -0
- package/dist/assets/el-scrollbar-B_rEcSsQ.js +2 -0
- package/dist/assets/el-scrollbar-B_rEcSsQ.js.map +1 -0
- package/dist/assets/el-scrollbar-DFu7lMno.css +1 -0
- package/dist/assets/el-scrollbar-legacy-DVIFmrwk.js +2 -0
- package/dist/assets/el-scrollbar-legacy-DVIFmrwk.js.map +1 -0
- package/dist/assets/el-select-C5BnfITI.js +2 -0
- package/dist/assets/el-select-C5BnfITI.js.map +1 -0
- package/dist/assets/el-select-Dm4tLYz8.css +1 -0
- package/dist/assets/el-select-legacy-yKcmdaqh.js +2 -0
- package/dist/assets/el-select-legacy-yKcmdaqh.js.map +1 -0
- package/dist/assets/el-switch-BUjvki0a.js +2 -0
- package/dist/assets/el-switch-BUjvki0a.js.map +1 -0
- package/dist/assets/el-switch-legacy-CeDo4e_6.js +2 -0
- package/dist/assets/el-switch-legacy-CeDo4e_6.js.map +1 -0
- package/dist/assets/el-tab-pane-DKrBN9bA.js +2 -0
- package/dist/assets/el-tab-pane-DKrBN9bA.js.map +1 -0
- package/dist/assets/{el-tab-pane-legacy-DMdhUCHY.js → el-tab-pane-legacy-Ct9rYze8.js} +2 -2
- package/dist/assets/el-tab-pane-legacy-Ct9rYze8.js.map +1 -0
- package/dist/assets/{el-table-column-tkbtgrcD.js → el-table-column-cVnV9Qdi.js} +3 -3
- package/dist/assets/el-table-column-cVnV9Qdi.js.map +1 -0
- package/dist/assets/el-table-column-legacy-D2UbUqx0.js +24 -0
- package/dist/assets/el-table-column-legacy-D2UbUqx0.js.map +1 -0
- package/dist/assets/el-tag-Bgje3_SF.css +1 -0
- package/dist/assets/el-tag-CR8VXqUN.js +2 -0
- package/dist/assets/el-tag-CR8VXqUN.js.map +1 -0
- package/dist/assets/el-tag-legacy-diNMtlkE.js +2 -0
- package/dist/assets/el-tag-legacy-diNMtlkE.js.map +1 -0
- package/dist/assets/el-upload-B2Zxm6X5.css +1 -0
- package/dist/assets/el-upload-DRWHzvzW.js +2 -0
- package/dist/assets/el-upload-DRWHzvzW.js.map +1 -0
- package/dist/assets/el-upload-legacy-C7Y6h5AK.js +2 -0
- package/dist/assets/el-upload-legacy-C7Y6h5AK.js.map +1 -0
- package/dist/assets/index-8vfFTV-B.css +1 -0
- package/dist/assets/index-B2PHCM63.js +23 -0
- package/dist/assets/index-B2PHCM63.js.map +1 -0
- package/dist/assets/{index-C4H-Ptjt.css → index-BDkChTag.css} +1 -1
- package/dist/assets/index-BDsN2eKB.js +2 -0
- package/dist/assets/index-BDsN2eKB.js.map +1 -0
- package/dist/assets/index-BIKx9Xnn.js +2 -0
- package/dist/assets/index-BIKx9Xnn.js.map +1 -0
- package/dist/assets/index-BOFlLnYl.js +2 -0
- package/dist/assets/index-BOFlLnYl.js.map +1 -0
- package/dist/assets/index-BSMNPGJ5.css +1 -0
- package/dist/assets/index-BVp20vyj.css +1 -0
- package/dist/assets/index-BWExpeba.js +2 -0
- package/dist/assets/index-BWExpeba.js.map +1 -0
- package/dist/assets/index-B_7cUQcW.js +2 -0
- package/dist/assets/index-B_7cUQcW.js.map +1 -0
- package/dist/assets/index-BcJxc1ki.css +1 -0
- package/dist/assets/index-BgihxBmj.css +1 -0
- package/dist/assets/index-BjSgvXxj.css +1 -0
- package/dist/assets/index-BrOLxzFM.js.map +1 -1
- package/dist/assets/index-Bx68sw-c.js +2 -0
- package/dist/assets/index-Bx68sw-c.js.map +1 -0
- package/dist/assets/index-BxcfgZqH.js +2 -0
- package/dist/assets/index-BxcfgZqH.js.map +1 -0
- package/dist/assets/{index-ehQnwCE_.css → index-Bxvzu7zF.css} +1 -1
- package/dist/assets/index-BzQdnJY9.js +2 -0
- package/dist/assets/index-BzQdnJY9.js.map +1 -0
- package/dist/assets/index-CFpIdG49.css +1 -0
- package/dist/assets/index-CQjXznXy.js +2 -0
- package/dist/assets/index-CQjXznXy.js.map +1 -0
- package/dist/assets/index-CQud0ONT.css +1 -0
- package/dist/assets/index-CkyNID7q.css +1 -0
- package/dist/assets/index-CsfbnGni.css +1 -0
- package/dist/assets/index-CuGN8YoJ.js +2 -0
- package/dist/assets/index-CuGN8YoJ.js.map +1 -0
- package/dist/assets/index-D94P-51I.css +1 -0
- package/dist/assets/index-DLuR61Hw.css +1 -0
- package/dist/assets/index-DRKBIvKP.js +2 -0
- package/dist/assets/index-DRKBIvKP.js.map +1 -0
- package/dist/assets/index-DTRiT4Ia.js +2 -0
- package/dist/assets/index-DTRiT4Ia.js.map +1 -0
- package/dist/assets/index-DVSUcRaY.js +2 -0
- package/dist/assets/index-DVSUcRaY.js.map +1 -0
- package/dist/assets/index-DWOXO9QK.js +2 -0
- package/dist/assets/index-DWOXO9QK.js.map +1 -0
- package/dist/assets/index-DWi4klmy.js +2 -0
- package/dist/assets/index-DWi4klmy.js.map +1 -0
- package/dist/assets/index-DcUtl6Nq.css +1 -0
- package/dist/assets/index-Diw0ScGB.js +2 -0
- package/dist/assets/index-Diw0ScGB.js.map +1 -0
- package/dist/assets/index-Dk60yOI9.js +2 -0
- package/dist/assets/index-Dk60yOI9.js.map +1 -0
- package/dist/assets/index-FISBGs_l.css +1 -0
- package/dist/assets/index-LKJh-8oZ.css +1 -0
- package/dist/assets/index-MRZ7DYIX.js +2 -0
- package/dist/assets/index-MRZ7DYIX.js.map +1 -0
- package/dist/assets/index-Q8b92C8V.css +1 -0
- package/dist/assets/index-X0ZxbeZs.js +2 -0
- package/dist/assets/index-X0ZxbeZs.js.map +1 -0
- package/dist/assets/index-fz1mWSN_.js +2 -0
- package/dist/assets/index-fz1mWSN_.js.map +1 -0
- package/dist/assets/index-legacy-B5_Eg4NO.js +2 -0
- package/dist/assets/index-legacy-B5_Eg4NO.js.map +1 -0
- package/dist/assets/index-legacy-B71iq4Jg.js +2 -0
- package/dist/assets/index-legacy-B71iq4Jg.js.map +1 -0
- package/dist/assets/index-legacy-B7MgTgVj.js +2 -0
- package/dist/assets/index-legacy-B7MgTgVj.js.map +1 -0
- package/dist/assets/index-legacy-BLCMV_4m.js +2 -0
- package/dist/assets/index-legacy-BLCMV_4m.js.map +1 -0
- package/dist/assets/index-legacy-BLu3Mu8j.js +2 -0
- package/dist/assets/index-legacy-BLu3Mu8j.js.map +1 -0
- package/dist/assets/index-legacy-BSmhgZ-n.js +2 -0
- package/dist/assets/index-legacy-BSmhgZ-n.js.map +1 -0
- package/dist/assets/index-legacy-BTvagK_v.js +2 -0
- package/dist/assets/index-legacy-BTvagK_v.js.map +1 -0
- package/dist/assets/index-legacy-C-gHf8SN.js.map +1 -1
- package/dist/assets/index-legacy-C2bwTRoT.js +2 -0
- package/dist/assets/index-legacy-C2bwTRoT.js.map +1 -0
- package/dist/assets/index-legacy-CM7bG2hM.js +2 -0
- package/dist/assets/index-legacy-CM7bG2hM.js.map +1 -0
- package/dist/assets/index-legacy-CRa6h-UF.js +2 -0
- package/dist/assets/index-legacy-CRa6h-UF.js.map +1 -0
- package/dist/assets/index-legacy-CkcZHDIb.js +54 -0
- package/dist/assets/index-legacy-CkcZHDIb.js.map +1 -0
- package/dist/assets/index-legacy-Cp4ut576.js +2 -0
- package/dist/assets/index-legacy-Cp4ut576.js.map +1 -0
- package/dist/assets/index-legacy-CvW_2XYj.js +2 -0
- package/dist/assets/index-legacy-CvW_2XYj.js.map +1 -0
- package/dist/assets/index-legacy-CwUt8UiU.js +2 -0
- package/dist/assets/index-legacy-CwUt8UiU.js.map +1 -0
- package/dist/assets/index-legacy-CzoivdRy.js +2 -0
- package/dist/assets/index-legacy-CzoivdRy.js.map +1 -0
- package/dist/assets/index-legacy-D-mrc8ns.js +2 -0
- package/dist/assets/index-legacy-D-mrc8ns.js.map +1 -0
- package/dist/assets/index-legacy-D2hV5N51.js +2 -0
- package/dist/assets/index-legacy-D2hV5N51.js.map +1 -0
- package/dist/assets/index-legacy-D6Zqa9lw.js +2 -0
- package/dist/assets/index-legacy-D6Zqa9lw.js.map +1 -0
- package/dist/assets/index-legacy-DrA0B2e4.js +2 -0
- package/dist/assets/index-legacy-DrA0B2e4.js.map +1 -0
- package/dist/assets/index-legacy-DysxAWeo.js +2 -0
- package/dist/assets/index-legacy-DysxAWeo.js.map +1 -0
- package/dist/assets/index-legacy-TKeSN56S.js +16 -0
- package/dist/assets/index-legacy-TKeSN56S.js.map +1 -0
- package/dist/assets/index-legacy-erTEdV9o.js +2 -0
- package/dist/assets/index-legacy-erTEdV9o.js.map +1 -0
- package/dist/assets/index-legacy-pHu03Ans.js +2 -0
- package/dist/assets/index-legacy-pHu03Ans.js.map +1 -0
- package/dist/assets/index-legacy-w1mXHpIQ.js +2 -0
- package/dist/assets/index-legacy-w1mXHpIQ.js.map +1 -0
- package/dist/assets/index-mtfctTgx.css +1 -0
- package/dist/assets/index-sRZE1X3H.js +2 -0
- package/dist/assets/index-sRZE1X3H.js.map +1 -0
- package/dist/assets/index-uNaj-154.js +40 -0
- package/dist/assets/index-uNaj-154.js.map +1 -0
- package/dist/assets/index-vo_ird7L.js +2 -0
- package/dist/assets/index-vo_ird7L.js.map +1 -0
- package/dist/assets/linkDialog-Dida934t.css +1 -0
- package/dist/assets/linkDialog-legacy-0_j99SG_.js +2 -0
- package/dist/assets/linkDialog-legacy-0_j99SG_.js.map +1 -0
- package/dist/assets/linkDialog-vYdu1-Ul.js +2 -0
- package/dist/assets/linkDialog-vYdu1-Ul.js.map +1 -0
- package/dist/assets/other-BiIe9Z0L.js +2 -0
- package/dist/assets/other-BiIe9Z0L.js.map +1 -0
- package/dist/assets/other-legacy-Bfm4KL87.js +2 -0
- package/dist/assets/other-legacy-Bfm4KL87.js.map +1 -0
- package/dist/assets/polyfills-legacy-DqO_DCwg.js +1 -0
- package/dist/assets/{refresh-DPuuDO9h.js → refresh-BnOQ8sKt.js} +2 -2
- package/dist/assets/refresh-BnOQ8sKt.js.map +1 -0
- package/dist/assets/{refresh-legacy-DOts-8Wc.js → refresh-legacy-D7NGa5wN.js} +2 -2
- package/dist/assets/refresh-legacy-D7NGa5wN.js.map +1 -0
- package/dist/assets/tip-CyB8omfw.js +2 -0
- package/dist/assets/tip-CyB8omfw.js.map +1 -0
- package/dist/assets/tip-legacy-DXZHLiK7.js +2 -0
- package/dist/assets/tip-legacy-DXZHLiK7.js.map +1 -0
- package/dist/assets/tipInfo-0FQ2unt4.js +2 -0
- package/dist/assets/tipInfo-0FQ2unt4.js.map +1 -0
- package/dist/assets/tipInfo-BPHCIpRm.css +1 -0
- package/dist/assets/tipInfo-legacy-cRqTuiqx.js +2 -0
- package/dist/assets/tipInfo-legacy-cRqTuiqx.js.map +1 -0
- package/dist/index.html +105 -128
- package/package.json +13 -34
- package/README.md +0 -86
- package/dist/assets/data-analysis-Bnq_VWU8.js.map +0 -1
- package/dist/assets/data-analysis-legacy-_KcR253K.js.map +0 -1
- package/dist/assets/data-board-L3s5ouKd.js.map +0 -1
- package/dist/assets/data-board-legacy-BFxWeFnQ.js.map +0 -1
- package/dist/assets/el-date-picker-legacy-Uk9x97L5.js +0 -2
- package/dist/assets/el-date-picker-legacy-Uk9x97L5.js.map +0 -1
- package/dist/assets/el-date-picker-mhY2RJMG.js +0 -2
- package/dist/assets/el-date-picker-mhY2RJMG.js.map +0 -1
- package/dist/assets/el-dialog-Cu2jwelC.css +0 -1
- package/dist/assets/el-dialog-PRccau6N.js +0 -2
- package/dist/assets/el-dialog-PRccau6N.js.map +0 -1
- package/dist/assets/el-dialog-legacy-BRLM43ZY.js +0 -2
- package/dist/assets/el-dialog-legacy-BRLM43ZY.js.map +0 -1
- package/dist/assets/el-dropdown-item-Cr71teRg.js +0 -2
- package/dist/assets/el-dropdown-item-Cr71teRg.js.map +0 -1
- package/dist/assets/el-dropdown-item-legacy-B0ufpHvy.js +0 -2
- package/dist/assets/el-dropdown-item-legacy-B0ufpHvy.js.map +0 -1
- package/dist/assets/el-form-item-Cc9R0dZ1.css +0 -1
- package/dist/assets/el-form-item-DOwM4Mv8.js +0 -2
- package/dist/assets/el-form-item-DOwM4Mv8.js.map +0 -1
- package/dist/assets/el-form-item-legacy-CvQy7syv.js +0 -2
- package/dist/assets/el-form-item-legacy-CvQy7syv.js.map +0 -1
- package/dist/assets/el-loading-DNzUD85e.js.map +0 -1
- package/dist/assets/el-loading-legacy-B3RLcjwN.js +0 -2
- package/dist/assets/el-loading-legacy-B3RLcjwN.js.map +0 -1
- package/dist/assets/el-pagination-iCicJonH.js +0 -2
- package/dist/assets/el-pagination-iCicJonH.js.map +0 -1
- package/dist/assets/el-pagination-legacy-Bf-Bzx7n.js +0 -2
- package/dist/assets/el-pagination-legacy-Bf-Bzx7n.js.map +0 -1
- package/dist/assets/el-progress-1hLO5hs0.js +0 -2
- package/dist/assets/el-progress-1hLO5hs0.js.map +0 -1
- package/dist/assets/el-progress-legacy-QmxDezwR.js +0 -2
- package/dist/assets/el-progress-legacy-QmxDezwR.js.map +0 -1
- package/dist/assets/el-progress-njCW9-w4.css +0 -1
- package/dist/assets/el-select-BSO0hXRI.css +0 -1
- package/dist/assets/el-select-CVjQdC39.js +0 -2
- package/dist/assets/el-select-CVjQdC39.js.map +0 -1
- package/dist/assets/el-select-legacy-DSGgSQYX.js +0 -2
- package/dist/assets/el-select-legacy-DSGgSQYX.js.map +0 -1
- package/dist/assets/el-switch-B76QvbJN.js +0 -2
- package/dist/assets/el-switch-B76QvbJN.js.map +0 -1
- package/dist/assets/el-switch-legacy-CHkEgavQ.js +0 -2
- package/dist/assets/el-switch-legacy-CHkEgavQ.js.map +0 -1
- package/dist/assets/el-tab-pane-BhVByOfe.js +0 -2
- package/dist/assets/el-tab-pane-BhVByOfe.js.map +0 -1
- package/dist/assets/el-tab-pane-legacy-DMdhUCHY.js.map +0 -1
- package/dist/assets/el-table-column-legacy-N_oU_-0P.js +0 -24
- package/dist/assets/el-table-column-legacy-N_oU_-0P.js.map +0 -1
- package/dist/assets/el-table-column-tkbtgrcD.js.map +0 -1
- package/dist/assets/index-3yen43So.js +0 -2
- package/dist/assets/index-3yen43So.js.map +0 -1
- package/dist/assets/index-5sS3uHi0.css +0 -1
- package/dist/assets/index-9zuSLjpa.js +0 -2
- package/dist/assets/index-9zuSLjpa.js.map +0 -1
- package/dist/assets/index-B-6zRvEX.js +0 -2
- package/dist/assets/index-B-6zRvEX.js.map +0 -1
- package/dist/assets/index-B5tZv3FB.css +0 -1
- package/dist/assets/index-BN1f1UM3.js +0 -2
- package/dist/assets/index-BN1f1UM3.js.map +0 -1
- package/dist/assets/index-BUmkgniE.js +0 -2
- package/dist/assets/index-BUmkgniE.js.map +0 -1
- package/dist/assets/index-BbfnoqK6.js +0 -2
- package/dist/assets/index-BbfnoqK6.js.map +0 -1
- package/dist/assets/index-BghihfR3.css +0 -1
- package/dist/assets/index-C3IckGNL.js +0 -2
- package/dist/assets/index-C3IckGNL.js.map +0 -1
- package/dist/assets/index-CYAf_OTx.js +0 -40
- package/dist/assets/index-CYAf_OTx.js.map +0 -1
- package/dist/assets/index-Cb6-p2hG.js +0 -2
- package/dist/assets/index-Cb6-p2hG.js.map +0 -1
- package/dist/assets/index-CbkKWoQA.css +0 -1
- package/dist/assets/index-CeWnhlkq.css +0 -1
- package/dist/assets/index-Cfg2jkVw.css +0 -1
- package/dist/assets/index-CkMvb3wF.css +0 -1
- package/dist/assets/index-Cl4G6EQO.js +0 -2
- package/dist/assets/index-Cl4G6EQO.js.map +0 -1
- package/dist/assets/index-CnbFxlpi.css +0 -1
- package/dist/assets/index-Cyb1OjRN.js +0 -2
- package/dist/assets/index-Cyb1OjRN.js.map +0 -1
- package/dist/assets/index-D2p3cWtM.css +0 -1
- package/dist/assets/index-D7aZxhM6.js +0 -2
- package/dist/assets/index-D7aZxhM6.js.map +0 -1
- package/dist/assets/index-DI41wbky.js +0 -2
- package/dist/assets/index-DI41wbky.js.map +0 -1
- package/dist/assets/index-DaSb9EV4.css +0 -1
- package/dist/assets/index-DcOjlpKI.js +0 -2
- package/dist/assets/index-DcOjlpKI.js.map +0 -1
- package/dist/assets/index-DjO-nUIS.js +0 -2
- package/dist/assets/index-DjO-nUIS.js.map +0 -1
- package/dist/assets/index-DnxF29eG.css +0 -1
- package/dist/assets/index-DrKX0cCg.js +0 -2
- package/dist/assets/index-DrKX0cCg.js.map +0 -1
- package/dist/assets/index-F3S0vKOW.js +0 -2
- package/dist/assets/index-F3S0vKOW.js.map +0 -1
- package/dist/assets/index-I78Ur1Md.js +0 -2
- package/dist/assets/index-I78Ur1Md.js.map +0 -1
- package/dist/assets/index-L0LtrfyP.js +0 -2
- package/dist/assets/index-L0LtrfyP.js.map +0 -1
- package/dist/assets/index-XNFQHmLL.css +0 -1
- package/dist/assets/index-dEAnfrhp.css +0 -1
- package/dist/assets/index-hhTdfxnD.css +0 -1
- package/dist/assets/index-lTmxAqnX.js +0 -2
- package/dist/assets/index-lTmxAqnX.js.map +0 -1
- package/dist/assets/index-legacy-BJNK4MqF.js +0 -2
- package/dist/assets/index-legacy-BJNK4MqF.js.map +0 -1
- package/dist/assets/index-legacy-BLlk8iq-.js +0 -42
- package/dist/assets/index-legacy-BLlk8iq-.js.map +0 -1
- package/dist/assets/index-legacy-BmWYm3m_.js +0 -2
- package/dist/assets/index-legacy-BmWYm3m_.js.map +0 -1
- package/dist/assets/index-legacy-Bnp7569A.js +0 -2
- package/dist/assets/index-legacy-Bnp7569A.js.map +0 -1
- package/dist/assets/index-legacy-CQ24Si-w.js +0 -2
- package/dist/assets/index-legacy-CQ24Si-w.js.map +0 -1
- package/dist/assets/index-legacy-CT1nF7s9.js +0 -2
- package/dist/assets/index-legacy-CT1nF7s9.js.map +0 -1
- package/dist/assets/index-legacy-CeVzo60P.js +0 -2
- package/dist/assets/index-legacy-CeVzo60P.js.map +0 -1
- package/dist/assets/index-legacy-Cf0w_PNA.js +0 -2
- package/dist/assets/index-legacy-Cf0w_PNA.js.map +0 -1
- package/dist/assets/index-legacy-DZSQUiaj.js +0 -2
- package/dist/assets/index-legacy-DZSQUiaj.js.map +0 -1
- package/dist/assets/index-legacy-D_K0eXFb.js +0 -2
- package/dist/assets/index-legacy-D_K0eXFb.js.map +0 -1
- package/dist/assets/index-legacy-Da3YyHW_.js +0 -2
- package/dist/assets/index-legacy-Da3YyHW_.js.map +0 -1
- package/dist/assets/index-legacy-Da4s_D85.js +0 -2
- package/dist/assets/index-legacy-Da4s_D85.js.map +0 -1
- package/dist/assets/index-legacy-DhNaKknk.js +0 -2
- package/dist/assets/index-legacy-DhNaKknk.js.map +0 -1
- package/dist/assets/index-legacy-Dm1CXog1.js +0 -2
- package/dist/assets/index-legacy-Dm1CXog1.js.map +0 -1
- package/dist/assets/index-legacy-DpNNn-Dy.js +0 -2
- package/dist/assets/index-legacy-DpNNn-Dy.js.map +0 -1
- package/dist/assets/index-legacy-PkF4cKK9.js +0 -2
- package/dist/assets/index-legacy-PkF4cKK9.js.map +0 -1
- package/dist/assets/index-legacy-QHDmYAB8.js +0 -2
- package/dist/assets/index-legacy-QHDmYAB8.js.map +0 -1
- package/dist/assets/index-legacy-_M1-0586.js +0 -2
- package/dist/assets/index-legacy-_M1-0586.js.map +0 -1
- package/dist/assets/index-legacy-m0dvnwGi.js +0 -2
- package/dist/assets/index-legacy-m0dvnwGi.js.map +0 -1
- package/dist/assets/index-legacy-vRS79jKS.js +0 -2
- package/dist/assets/index-legacy-vRS79jKS.js.map +0 -1
- package/dist/assets/index-ypHH_Z_A.css +0 -1
- package/dist/assets/isEqual-BHpVKj_X.js +0 -2
- package/dist/assets/isEqual-BHpVKj_X.js.map +0 -1
- package/dist/assets/isEqual-legacy-BWUPR8bV.js +0 -2
- package/dist/assets/isEqual-legacy-BWUPR8bV.js.map +0 -1
- package/dist/assets/other-legacy-DjiCmSH4.js +0 -2
- package/dist/assets/other-legacy-DjiCmSH4.js.map +0 -1
- package/dist/assets/other-yMAyytYx.js +0 -2
- package/dist/assets/other-yMAyytYx.js.map +0 -1
- package/dist/assets/polyfills-legacy-CPmsgIAF.js +0 -4
- package/dist/assets/refresh-DPuuDO9h.js.map +0 -1
- package/dist/assets/refresh-legacy-DOts-8Wc.js.map +0 -1
- package/dist/assets/tip-CH7nBVXc.js +0 -2
- package/dist/assets/tip-CH7nBVXc.js.map +0 -1
- package/dist/assets/tip-legacy-DiCk_qP1.js +0 -2
- package/dist/assets/tip-legacy-DiCk_qP1.js.map +0 -1
- package/dist/assets/validator-BMr-jeUB.js +0 -2
- package/dist/assets/validator-BMr-jeUB.js.map +0 -1
- package/dist/assets/validator-legacy-CacjPWoF.js +0 -2
- package/dist/assets/validator-legacy-CacjPWoF.js.map +0 -1
- /package/dist/assets/{el-date-picker-NjWHL2Br.css → el-date-picker-C36c2CGO.css} +0 -0
- /package/dist/assets/{el-dropdown-item-CUgTpiu6.css → el-dropdown-item-5b6bMUQF.css} +0 -0
- /package/dist/assets/{el-loading-Uv12lkco.css → el-loading-BPl8mdQ3.css} +0 -0
- /package/dist/assets/{el-pagination-MvCAleW2.css → el-pagination-DMHBWKFj.css} +0 -0
- /package/dist/assets/{el-switch-D6dVIPlw.css → el-switch-CH9HekZJ.css} +0 -0
- /package/dist/assets/{el-tab-pane-kUw7IczA.css → el-tab-pane-CO1C5qCV.css} +0 -0
- /package/dist/assets/{el-table-column-DMXHP8sd.css → el-table-column-x3grTP_N.css} +0 -0
- /package/dist/assets/{tip-ovQu2XSt.css → tip-rRSL6nZ2.css} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
System.register(["./index-legacy-CkcZHDIb.js"],(function(e,t){"use strict";var n,r,u,c;return{setters:[e=>{n=e._,r=e.a,u=e.c,c=e.b}],execute:function(){e("default",n({},[["render",function(e,t){return r(),u("div",null,t[0]||(t[0]=[c("h1",null,"反馈页",-1)]))}]]))}}}));
|
|
2
|
+
//# sourceMappingURL=index-legacy-erTEdV9o.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-legacy-erTEdV9o.js","sources":["../../src/pages/feedback/index.vue"],"sourcesContent":["<template>\n <div>\n <h1>反馈页</h1>\n </div>\n</template>\n"],"names":["_cache","_openBlock","_createElementBlock"],"mappings":"+LAGQA,GADJ,OAAAC,IAAYC,EAAL,MAAA,KAAAF,EAAA,KAAAA,EAAA,GAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
System.register(["./index-legacy-CkcZHDIb.js","./el-date-picker-legacy-6LjuTLvj.js","./el-scrollbar-legacy-DVIFmrwk.js","./el-pagination-legacy-DwnhLxcB.js","./el-tag-legacy-diNMtlkE.js","./el-select-legacy-yKcmdaqh.js","./el-table-column-legacy-D2UbUqx0.js","./index-legacy-C-gHf8SN.js","./tip-legacy-DXZHLiK7.js","./refresh-legacy-D7NGa5wN.js","./delete-filled-legacy-IwQ4U_-h.js","./index-legacy-B71iq4Jg.js","./index-legacy-BTvagK_v.js","./index-legacy-Cp4ut576.js","./aria-legacy-B70JmEZA.js"],(function(e,l){"use strict";var a,t,n,o,u,i,s,r,c,d,p,m,v,f,w,g,h,b,y,C,x,V,_,z,k,U,S,T,j,$,M,E,B,L,F,A,H,P,D,O,R,q,N,I,Z,G,J,Q,W;return{setters:[e=>{a=e.f,t=e.d,n=e.a,o=e.c,u=e.b,i=e.r,s=e.X,r=e.bq,c=e.M,d=e.o,p=e.Z,m=e.a6,v=e.i,f=e.w,w=e.F,g=e.A,h=e.B,b=e.j,y=e.br,C=e.e,x=e.t,V=e.n,_=e.a5,z=e.Q,k=e.D,U=e.$,S=e.E,T=e.m,j=e.P,$=e.q,M=e.s,E=e.a0,B=e.ag,L=e.ah,F=e.x,A=e.y,H=e._},e=>{P=e.E},null,e=>{D=e.s,O=e.E},null,e=>{R=e.E,q=e.a},e=>{N=e.E,I=e.a},e=>{Z=e.U},e=>{G=e.T},e=>{J=e.r},e=>{Q=e.d},e=>{W=e.E},null,null,null],execute:function(){var l=document.createElement("style");l.textContent="@media screen and (max-width: 700px){.user[data-v-6f3c0a46]{margin-top:40px!important}.log-filter[data-v-6f3c0a46]{justify-content:center}}.w100[data-v-6f3c0a46]{width:100px}.user[data-v-6f3c0a46]{margin:0 auto}.panel[data-v-6f3c0a46]{max-width:1256px;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-6f3c0a46]{display:flex;flex-wrap:wrap}.log-filter .item[data-v-6f3c0a46]{margin-right:10px;margin-bottom:10px}.log-filter .item .label[data-v-6f3c0a46]{margin-right:10px;font-size:12px}.text-btn-list[data-v-6f3c0a46]{display:flex;flex-wrap:wrap}.text-btn-list button[data-v-6f3c0a46]{margin-left:0}.user-oss-info[data-v-6f3c0a46]{list-style:none}.user-oss-info li[data-v-6f3c0a46]{margin-bottom:10px}.user-oss-info .clear-btn[data-v-6f3c0a46]{margin-left:10px}.user-oss-info.disabled[data-v-6f3c0a46]{background-color:rgba(245,108,108,.3)}\n/*$vite$:1*/",document.head.appendChild(l);const X=t({name:"Message"}),Y={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},K=[u("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),u("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)];var ee=a(X,[["render",function(e,l,a,t,u,i){return n(),o("svg",Y,K)}]]);const le=t({name:"Money"}),ae={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},te=[u("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),u("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),u("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)];var ne=a(le,[["render",function(e,l,a,t,u,i){return n(),o("svg",ae,te)}]]);const oe={class:"user"},ue={class:"panel"},ie={class:"p10 log-filter"},se={class:"item"},re={class:"item"},ce={class:"item"},de={class:"item"},pe={class:"item"},me={class:"text-btn-list"},ve={class:"flex fc p10"},fe={class:"tc"},we={class:"dialog-footer"},ge={class:"tc"},he={key:0,style:{"margin-top":"10px"},class:"tc"},be={class:"dialog-footer"},ye={class:"tc"},Ce={class:"dialog-footer"},xe={class:"tc"},Ve={class:"dialog-footer"},_e={class:"tc"},ze={class:"dialog-footer"},ke={class:"tc"},Ue={class:"dialog-footer"},Se=t({__name:"index",setup(e){const l=i(""),a=s([]);function t(){U.getUserList().then((e=>{a.splice(0,a.length,...e.data.list),l.value=e.data.sumCost,S.success("列表数据刷新成功")}))}const H=r("userStatusType",Z.NORMAL),X=i(""),Y=s([{label:"正常",type:Z.NORMAL},{label:"冻结",type:Z.FREEZE},{label:"封禁",type:Z.BAN}]),K=r("userListSortType","id"),le=[{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"}],ae=r("userListSortOrder","desc"),te=[{label:"升序",value:"asc"},{label:"降序",value:"desc"}],Se=c((()=>{const e=[...a];return e.sort(((e,l)=>"asc"===ae.value?e[K.value]-l[K.value]:l[K.value]-e[K.value])),e.filter((e=>e.status===H.value)).filter((e=>{const{id:l,account:a,phone:t,joinTime:n,loginCount:o,loginTime:u,openTime:i}=e;return 0===X.value.length||`${l} ${a} ${t} ${u} ${V(i)} ${V(o)} ${V(n)}`.includes(X.value)}))})),Te=r("userListPageSize",10);function je(e){Te.value=e}const $e=c((()=>Math.ceil(Se.value.length/Te.value))),Me=i(1),Ee=c((()=>{const e=(Me.value-1)*Te.value,l=Me.value*Te.value;return Se.value.slice(e,l)}));function Be(e){Me.value=e}const Le=i(!1),Fe=i(0),Ae=i(Z.NORMAL),He=Y,Pe=i("");function De(){const e=a.find((e=>e.id===Fe.value));if(Ae.value===Z.FREEZE){if(!Pe.value)return void S.warning("请设置解冻时间");e.openTime=Pe.value}else e.openTime="";e.status=Ae.value,Le.value=!1,U.updateUserStatus(e.id,e.status,e.openTime).then((()=>{S.success("修改成功")}))}const Oe=i(!1),Re=s({pwd1:"",pwd2:""});function qe(){(F.test(Re.pwd1)?Re.pwd1===Re.pwd2||(S.warning("两次输入的密码不一致"),0):(S.warning("密码格式不正确(6-16位 支持字母/数字/下划线)"),0))&&W.confirm("此操作不可逆,请谨慎操作","确定要重置用户的密码吗?",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((()=>{U.resetPassword(Fe.value,Re.pwd1).then((()=>{S.success("重置成功"),Oe.value=!1}))})).catch((()=>{}))}const Ne=i(!1),Ie=s({size:2});async function Ze(){+Ie.size<0?S.warning("空间上限不能小于0"):(await U.resetLimitSpace(Fe.value,+Ie.size),S.success("修改成功"),Ne.value=!1,t())}const Ge=i(!1),Je=s({money:2});async function Qe(){+Je.money<0?S.warning("余额不能小于0"):(await U.updateWallet(Fe.value,+Je.money),S.success("修改成功"),Ge.value=!1,t())}const We=i(!1),Xe=s({phone:"",code:""}),Ye=i("获取验证码"),Ke=i(0);function el(){0!==Ke.value?(Ye.value=`${Ke.value}s`,Ke.value-=1,setTimeout(el,1e3)):Ye.value="获取验证码"}function ll(){T.test(Xe.phone)?j.checkPhone(Xe.phone).then((()=>{j.getCode(Xe.phone).then((()=>{Ke.value=120,el(),S.success("获取成功,请注意查看手机短信")}))})).catch((e=>{const{code:l}=e;S.error({1002:"手机号已被注册",1006:"手机号格式不正确"}[l]||"注册失败,未知错误")})):S.warning("手机号格式不正确")}async function al(){(T.test(Xe.phone)?A.test(Xe.code)||(S.warning("验证码格式不正确"),0):(S.warning("手机号格式不正确"),0))&&U.resetPhone(Fe.value,Xe.phone,Xe.code).then((()=>{S.success("绑定成功"),We.value=!1,Xe.code="",Xe.phone="",t()})).catch((e=>{const{code:l}=e;S.error({1002:"手机号已被注册",1003:"验证码不正确"}[l]||"绑定失败,未知错误")}))}function tl(e,l){Fe.value=e,W.confirm("移除后这些文件将无法恢复,请谨慎操作","删除前确认?",{confirmButtonText:`确认删除 ${{month:"一个月前",quarter:"三个月前",half:"半年前"}[l]}文件`}).then((()=>{U.clearOssFile(e,l).then((()=>{S.success("清理成功")}))})).catch((()=>{}))}const nl=i(1),ol=i(!1),ul=i("");function il(e,l=1){Fe.value=e,nl.value=l,ol.value=!0}function sl(){U.sendMessage(ul.value,nl.value,Fe.value).then((()=>{S.success("推送成功"),ul.value="",ol.value=!1}))}d((()=>{t()}));const rl=p(),{moneyStartDay:cl}=m();return(e,a)=>{const i=R,s=q,r=$,c=M,d=N,p=I,m=O,T=E,j=P,F=B,A=L;return n(),o("div",oe,[u("div",ue,[u("div",ie,[u("span",se,[a[26]||(a[26]=u("span",{class:"label"},"状态",-1)),v(s,{modelValue:b(H),"onUpdate:modelValue":a[0]||(a[0]=e=>y(H)?H.value=e:null),size:"default",class:"w100"},{default:f((()=>[(n(!0),o(w,null,g(Y,((e,l)=>(n(),h(i,{key:l,label:e.label,value:e.type},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])]),u("span",re,[a[27]||(a[27]=u("span",{class:"label"},"排序",-1)),v(s,{modelValue:b(K),"onUpdate:modelValue":a[1]||(a[1]=e=>y(K)?K.value=e:null),size:"default",class:"w100"},{default:f((()=>[(n(),o(w,null,g(le,((e,l)=>v(i,{key:l,label:e.label,value:e.value},null,8,["label","value"]))),64))])),_:1},8,["modelValue"]),v(s,{modelValue:b(ae),"onUpdate:modelValue":a[2]||(a[2]=e=>y(ae)?ae.value=e:null),size:"default",class:"w100"},{default:f((()=>[(n(),o(w,null,g(te,((e,l)=>v(i,{key:l,label:e.label,value:e.value},null,8,["label","value"]))),64))])),_:1},8,["modelValue"])]),u("span",ce,[v(r,{modelValue:X.value,"onUpdate:modelValue":a[3]||(a[3]=e=>X.value=e),size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":b(D)},null,8,["modelValue","prefix-icon"])]),u("span",de,[v(c,{size:"default",icon:b(J),onClick:t},{default:f((()=>a[28]||(a[28]=[C("刷新")]))),_:1},8,["icon"])]),u("span",pe,[v(c,{size:"warning",icon:b(ee),onClick:a[4]||(a[4]=e=>il(null,0))},{default:f((()=>a[29]||(a[29]=[C("推送全局消息")]))),_:1},8,["icon"])])]),v(G,null,{default:f((()=>[C(" 预估费用:"+x(l.value)+"¥, 计费起始时间:"+x(b(V)(b(cl))),1)])),_:1}),v(p,{height:"550",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},data:Ee.value,style:{width:"100%"}},{default:f((()=>[v(d,{prop:"id",label:"ID",width:"60"}),v(d,{prop:"account",label:"账号",width:"130"}),v(d,{prop:"phone",label:"手机号",width:"80"}),v(d,{label:"统计",width:"190"},{default:f((e=>[C(" 最后登录:"+x(e.row.loginTime&&b(V)(new Date(e.row.loginTime))),1),a[30]||(a[30]=u("br",null,null,-1)),C(" 注册时间:"+x(b(V)(new Date(e.row.joinTime))),1),a[31]||(a[31]=u("br",null,null,-1)),C(" 登录次数:"+x(e.row.loginCount),1),a[32]||(a[32]=u("br",null,null,-1)),C(" token: "+x(e.row.onlineCount),1),a[33]||(a[33]=u("br",null,null,-1))])),_:1}),v(d,{prop:"downloadCount",label:"累计下载"},{default:f((({row:{downloadCount:e,downloadSize:l,oneFile:t,compressFile:n,templateFile:o}})=>[C(x(e)+" / "+x(b(_)(l)),1),a[34]||(a[34]=u("br",null,null,-1)),C(" 单文件:"+x(t.count)+" / "+x(b(_)(t.size)),1),a[35]||(a[35]=u("br",null,null,-1)),C(" 归档:"+x(n.count)+" / "+x(b(_)(n.size)),1),a[36]||(a[36]=u("br",null,null,-1)),C(" 模板:"+x(o.count)+" / "+x(b(_)(o.size)),1)])),_:1}),1===b(H)?(n(),h(d,{key:0,prop:"openTime",label:"解封时间"},{default:f((e=>[C(x(e.row.openTime&&b(V)(new Date(e.row.openTime))),1)])),_:1})):z("",!0),v(d,{prop:"fileCount",label:"文件"},{default:f((e=>[C(" 累计:"+x(e.row.fileCount)+"/"+x(b(_)(e.row.originFileSize)),1),a[37]||(a[37]=u("br",null,null,-1)),C(" OSS:"+x(e.row.ossCount)+"/"+x(b(_)(e.row.usage)),1),a[38]||(a[38]=u("br",null,null,-1)),C(" 平均:"+x(e.row.originFileSize&&e.row.fileCount&&b(_)(Math.round(e.row.originFileSize/e.row.fileCount))),1),a[39]||(a[39]=u("br",null,null,-1)),C(" 平均:"+x(e.row.usage&&e.row.ossCount&&b(_)(Math.round(e.row.usage/e.row.ossCount))),1),a[40]||(a[40]=u("br",null,null,-1))])),_:1}),v(d,{label:"云空间",width:"240"},{default:f((({row:{wallet:e,price:l,balance:a,resources:t,monthAgoSize:o,quarterAgoSize:i,halfYearSize:s,id:r,limitSize:d,limitUpload:p,percentage:m}})=>[u("ul",{class:k(["user-oss-info",{disabled:p}])},[u("li",null,[C(" ¥:"+x(l.total)+" / "+x(e)+" = "+x(a)+" ",1),v(c,{icon:b(ne),circle:"",size:"small",onClick:e=>function(e){const{backhaulTrafficPrice:l,cdnPrice:a,compressPrice:t,ossPrice:n}=e;W.confirm(`存储:${n}, 下载:${a},压缩:${t},回源:${l}`,{showCancelButton:!1})}(l)},null,8,["icon","onClick"])]),u("li",null,x(m)+"% "+x(t)+"/"+x(d),1),u("li",null,[C(" 一月前:"+x(o),1),"0B"!==t?(n(),h(c,{key:0,class:"clear-btn",icon:b(Q),circle:"",size:"small",onClick:e=>tl(r,"month")},null,8,["icon","onClick"])):z("",!0)]),u("li",null,[C(" 三月前:"+x(i),1),"0B"!==i?(n(),h(c,{key:0,class:"clear-btn",icon:b(Q),circle:"",size:"small",onClick:e=>tl(r,"quarter")},null,8,["icon","onClick"])):z("",!0)]),u("li",null,[C(" 半年前:"+x(s),1),"0B"!==s?(n(),h(c,{key:0,class:"clear-btn",icon:b(Q),circle:"",size:"small",onClick:e=>tl(r,"half")},null,8,["icon","onClick"])):z("",!0)])],2)])),_:1}),v(d,{fixed:"right",label:"操作",width:"100"},{default:f((e=>[u("div",me,[v(c,{type:"primary",text:"",size:"small",onClick:l=>{return a=e.row.id,t=e.row.status,n=e.row.openTime,Fe.value=a,Ae.value=t,Pe.value=n,void(Le.value=!0);var a,t,n}},{default:f((()=>a[41]||(a[41]=[C(" 修改状态 ")]))),_:2},1032,["onClick"]),v(c,{type:"primary",text:"",size:"small",onClick:l=>{return a=e.row.id,Fe.value=a,Oe.value=!0,Re.pwd1="",void(Re.pwd2="");var a}},{default:f((()=>a[42]||(a[42]=[C(" 重置密码 ")]))),_:2},1032,["onClick"]),v(c,{type:"primary",text:"",size:"small",onClick:l=>{return a=e.row.id,Fe.value=a,void(We.value=!0);var a}},{default:f((()=>a[43]||(a[43]=[C(" 绑定手机号 ")]))),_:2},1032,["onClick"]),v(c,{type:"warning",text:"",size:"small",onClick:l=>il(e.row.id)},{default:f((()=>a[44]||(a[44]=[C(" 发送消息 ")]))),_:2},1032,["onClick"]),v(c,{type:"danger",text:"",size:"small",onClick:l=>{return a=e.row.id,t=e.row.size,Fe.value=a,Ie.size=t,void(Ne.value=!0);var a,t}},{default:f((()=>a[45]||(a[45]=[C(" 修改上限 ")]))),_:2},1032,["onClick"]),v(c,{type:"danger",text:"",size:"small",onClick:l=>function(e,l){Fe.value=e,Je.money=l,Ge.value=!0}(e.row.id,e.row.wallet)},{default:f((()=>a[46]||(a[46]=[C(" 修改余额 ")]))),_:2},1032,["onClick"]),0!==e.row.onlineCount?(n(),h(c,{key:0,type:"danger",text:"",size:"small",onClick:l=>{return a=e.row.account,void U.logout(a).then((()=>{S.success(`下线成功 ${a}`),t()}));var a}},{default:f((()=>a[47]||(a[47]=[C(" 一键下线 ")]))),_:2},1032,["onClick"])):z("",!0)])])),_:1})])),_:1},8,["data"]),u("div",ve,[v(m,{"current-page":Me.value,background:"","page-count":$e.value,"page-sizes":[10,50,100,200],"page-size":b(Te),total:Se.value.length,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:Be,onSizeChange:je},null,8,["current-page","page-count","page-size","total"])])]),v(T,{modelValue:ol.value,"onUpdate:modelValue":a[7]||(a[7]=e=>ol.value=e),fullscreen:b(rl),center:"",title:"消息推送"},{footer:f((()=>[u("span",we,[v(c,{onClick:a[6]||(a[6]=e=>ol.value=!1)},{default:f((()=>a[48]||(a[48]=[C("取 消")]))),_:1}),v(c,{type:"primary",onClick:sl},{default:f((()=>a[49]||(a[49]=[C("确 定")]))),_:1})])])),default:f((()=>[u("div",fe,[v(r,{modelValue:ul.value,"onUpdate:modelValue":a[5]||(a[5]=e=>ul.value=e),autosize:{minRows:6,maxRows:20},type:"textarea",placeholder:"输入要推送的消息,支持HTML内容(推荐使用mdnice 转 markdown 转html)"},null,8,["modelValue"])])])),_:1},8,["modelValue","fullscreen"]),v(T,{modelValue:Le.value,"onUpdate:modelValue":a[11]||(a[11]=e=>Le.value=e),fullscreen:b(rl),center:"",title:"状态修改"},{footer:f((()=>[u("span",be,[v(c,{onClick:a[10]||(a[10]=e=>Le.value=!1)},{default:f((()=>a[50]||(a[50]=[C("取 消")]))),_:1}),v(c,{type:"primary",onClick:De},{default:f((()=>a[51]||(a[51]=[C("确 定")]))),_:1})])])),default:f((()=>[u("div",ge,[v(s,{modelValue:Ae.value,"onUpdate:modelValue":a[8]||(a[8]=e=>Ae.value=e),placeholder:"请选择新分类"},{default:f((()=>[(n(!0),o(w,null,g(b(He),(e=>(n(),h(i,{key:e.type,label:e.label,value:e.type},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])]),1===Ae.value?(n(),o("div",he,[v(j,{modelValue:Pe.value,"onUpdate:modelValue":a[9]||(a[9]=e=>Pe.value=e),editable:!1,type:"datetime",placeholder:"点击设置解封日期"},null,8,["modelValue"])])):z("",!0)])),_:1},8,["modelValue","fullscreen"]),v(T,{modelValue:Oe.value,"onUpdate:modelValue":a[15]||(a[15]=e=>Oe.value=e),fullscreen:b(rl),center:"",title:"密码重置"},{footer:f((()=>[u("span",Ce,[v(c,{onClick:a[14]||(a[14]=e=>Oe.value=!1)},{default:f((()=>a[52]||(a[52]=[C("取 消")]))),_:1}),v(c,{type:"primary",onClick:qe},{default:f((()=>a[53]||(a[53]=[C("确 定")]))),_:1})])])),default:f((()=>[u("div",ye,[v(A,{model:Re,"label-width":"80px"},{default:f((()=>[v(F,{label:"新密码"},{default:f((()=>[v(r,{modelValue:Re.pwd1,"onUpdate:modelValue":a[12]||(a[12]=e=>Re.pwd1=e),"show-word-limit":"",clearable:"",placeholder:"请输入新密码",maxlength:"16",minlength:"6"},null,8,["modelValue"])])),_:1}),v(F,null,{default:f((()=>[v(r,{modelValue:Re.pwd2,"onUpdate:modelValue":a[13]||(a[13]=e=>Re.pwd2=e),"show-word-limit":"",clearable:"",placeholder:"请再次输入",maxlength:"16",minlength:"6"},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])])),_:1},8,["modelValue","fullscreen"]),v(T,{modelValue:We.value,"onUpdate:modelValue":a[19]||(a[19]=e=>We.value=e),fullscreen:b(rl),center:"",title:"绑定手机号"},{footer:f((()=>[u("span",Ve,[v(c,{onClick:a[18]||(a[18]=e=>We.value=!1)},{default:f((()=>a[54]||(a[54]=[C("取 消")]))),_:1}),v(c,{type:"primary",onClick:al},{default:f((()=>a[55]||(a[55]=[C("确 定")]))),_:1})])])),default:f((()=>[u("div",xe,[v(A,{model:Xe,"label-width":"60px"},{default:f((()=>[v(F,{label:"手机号"},{default:f((()=>[v(r,{modelValue:Xe.phone,"onUpdate:modelValue":a[16]||(a[16]=e=>Xe.phone=e),"show-word-limit":"",clearable:"",placeholder:"请输入手机号",maxlength:"11"},{append:f((()=>[v(c,{disabled:0!==Ke.value,onClick:ll},{default:f((()=>[C(x(Ye.value),1)])),_:1},8,["disabled"])])),_:1},8,["modelValue"])])),_:1}),v(F,null,{default:f((()=>[v(r,{modelValue:Xe.code,"onUpdate:modelValue":a[17]||(a[17]=e=>Xe.code=e),"show-word-limit":"",clearable:"",placeholder:"请输入验证码",maxlength:"4"},null,8,["modelValue"])])),_:1})])),_:1},8,["model"])])])),_:1},8,["modelValue","fullscreen"]),v(T,{modelValue:Ne.value,"onUpdate:modelValue":a[22]||(a[22]=e=>Ne.value=e),fullscreen:b(rl),center:"",title:"修改空间上限"},{footer:f((()=>[u("span",ze,[v(c,{onClick:a[21]||(a[21]=e=>Ne.value=!1)},{default:f((()=>a[57]||(a[57]=[C("取 消")]))),_:1}),v(c,{type:"primary",onClick:Ze},{default:f((()=>a[58]||(a[58]=[C("确 定")]))),_:1})])])),default:f((()=>[u("div",_e,[v(A,{model:Ie,"label-width":"60px"},{default:f((()=>[v(F,{label:"大小"},{default:f((()=>[v(r,{modelValue:Ie.size,"onUpdate:modelValue":a[20]||(a[20]=e=>Ie.size=e),"show-word-limit":"",clearable:"",placeholder:"请输入空间上限",maxlength:"4",type:"number"},{append:f((()=>a[56]||(a[56]=[C(" GB ")]))),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])])),_:1},8,["modelValue","fullscreen"]),v(T,{modelValue:Ge.value,"onUpdate:modelValue":a[25]||(a[25]=e=>Ge.value=e),fullscreen:b(rl),center:"",title:"修改空间上限"},{footer:f((()=>[u("span",Ue,[v(c,{onClick:a[24]||(a[24]=e=>Ge.value=!1)},{default:f((()=>a[60]||(a[60]=[C("取 消")]))),_:1}),v(c,{type:"primary",onClick:Qe},{default:f((()=>a[61]||(a[61]=[C("确 定")]))),_:1})])])),default:f((()=>[u("div",ke,[v(A,{model:Je,"label-width":"60px"},{default:f((()=>[v(F,{label:"余额"},{default:f((()=>[v(r,{modelValue:Je.money,"onUpdate:modelValue":a[23]||(a[23]=e=>Je.money=e),"show-word-limit":"",clearable:"",placeholder:"请输入新的余额",maxlength:"4",type:"number"},{append:f((()=>a[59]||(a[59]=[C(" ¥ ")]))),_:1},8,["modelValue"])])),_:1})])),_:1},8,["model"])])])),_:1},8,["modelValue","fullscreen"])])}}});e("default",H(Se,[["__scopeId","data-v-6f3c0a46"]]))}}}));
|
|
2
|
+
//# sourceMappingURL=index-legacy-pHu03Ans.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-legacy-pHu03Ans.js","sources":["../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_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.5.12_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 { DeleteFilled, Message, Money, Refresh, Search } from '@element-plus/icons-vue'\nimport { useLocalStorage } from '@vueuse/core'\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { PublicApi, SuperUserApi } from '@/apis'\nimport { useIsMobile, useSiteConfig } from '@/composables'\nimport { USER_STATUS } from '@/constants'\nimport { rMobilePhone, rPassword, rVerCode } from '@/utils/regExp'\nimport { formatDate, formatSize } from '@/utils/stringUtil'\n\nimport Tip from '../../tasks/components/infoPanel/tip.vue'\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","name","_hoisted_1","viewBox","xmlns","_hoisted_4","createElementVNode","fill","d","message","_export_sfc","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","_hoisted_5","money","sumCost","ref","users","reactive","refreshUsers","SuperUserApi","getUserList","then","res","splice","length","data","list","value","ElMessage","success","userStatusType","useLocalStorage","USER_STATUS","NORMAL","searchWord","statusTypeList","label","type","FREEZE","BAN","sortType","sortTypeList","sortOrder","sortOrderList","filterUsers","computed","copyUsers","sort","a","b","filter","v","status","id","account","phone","joinTime","loginCount","loginTime","openTime","formatDate","includes","pageSize","handleSizeChange","pageCount","Math","ceil","pageCurrent","pageUsers","start","end","slice","handlePageChange","idx","showUserStatusDialog","selectUserId","selectStatus","userStatusList","handleSaveStatus","user","find","u","warning","updateUserStatus","showResetPasswordDialog","pwdForm","pwd1","pwd2","handleSavePassword","rPassword","test","ElMessageBox","confirm","confirmButtonText","cancelButtonText","resetPassword","catch","showLimitSizeDialog","limitSizeForm","size","async","handleSaveSize","resetLimitSpace","showWalletDialog","walletForm","handleSaveWallet","updateWallet","showPhoneDialog","phoneForm","code","codeText","time","refreshCodeText","setTimeout","getCode","rMobilePhone","PublicApi","checkPhone","err","c","error","handleSavePhone","rVerCode","resetPhone","handleClearFiles","userId","month","quarter","half","clearOssFile","pushMessageType","showMessageDialog","pushMessageText","sendMessage","sureSendMessage","onMounted","isMobile","useIsMobile","moneyStartDay","useSiteConfig","price","backhaulTrafficPrice","cdnPrice","compressPrice","ossPrice","showCancelButton","oTime","logout"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
System.register(["./index-legacy-CkcZHDIb.js","./el-loading-legacy-CFNL_MoE.js","./tip-legacy-DXZHLiK7.js","./index-legacy-D2hV5N51.js","./el-pagination-legacy-DwnhLxcB.js","./el-tag-legacy-diNMtlkE.js","./el-select-legacy-yKcmdaqh.js","./el-scrollbar-legacy-DVIFmrwk.js","./el-table-column-legacy-D2UbUqx0.js","./el-switch-legacy-CeDo4e_6.js","./el-dropdown-item-legacy-Dd1a85un.js","./linkDialog-legacy-0_j99SG_.js","./index-legacy-BLCMV_4m.js","./index-legacy-C-gHf8SN.js","./refresh-legacy-D7NGa5wN.js","./data-analysis-legacy-DjCCKm5W.js","./index-legacy-B71iq4Jg.js","./index-legacy-Cp4ut576.js","./aria-legacy-B70JmEZA.js"],(function(e,a){"use strict";var l,t,n,i,o,s,r,d,u,c,p,g,f,m,v,x,h,y,w,b,k,_,C,z,V,S,T,$,L,P,j,D,I,E,U,M,F,N,A,H,O,q,B,K,R,W,J,Q,X,G,Y,Z,ee,ae,le,te,ne,ie,oe,se,re,de,ue,ce,pe,ge,fe,me,ve,xe,he;return{setters:[e=>{l=e.a4,t=e.f,n=e.d,i=e.a,o=e.c,s=e.b,r=e.X,d=e.M,u=e.a5,c=e.o,p=e.U,g=e.a6,f=e.g,m=e.a1,v=e.r,x=e.a7,h=e.Y,y=e.Z,w=e.e,b=e.t,k=e.j,_=e.Q,C=e.i,z=e.w,V=e.F,S=e.A,T=e.B,$=e.a8,L=e.a9,P=e.n,j=e.aa,D=e.ab,I=e.D,E=e.ac,U=e.E,M=e.ad,F=e.ae,N=e.s,A=e.q,H=e.G,O=e.af,q=e.a0,B=e.ag,K=e.ah,R=e.ai,W=e.aj,J=e._},e=>{Q=e.v},e=>{X=e.T,G=e.E},e=>{Y=e.I,Z=e.E},e=>{ee=e.s,ae=e.E},null,e=>{le=e.E,te=e.a},null,e=>{ne=e.E,ie=e.a},e=>{oe=e.E},e=>{se=e.a,re=e.E,de=e.b,ue=e.c},e=>{ce=e.L},e=>{pe=e.F},e=>{ge=e.A,fe=e.D,me=e.f},e=>{ve=e.r},e=>{xe=e.d},e=>{he=e.E},null,null],execute:function(){var a=document.createElement("style");a.textContent=".files[data-v-4101c199]{width:min(1440px,100vw - 48px);max-width:1440px;margin:0 auto;padding-bottom:2em}.top-notice[data-v-4101c199]{padding:14px 18px;border:1px solid rgba(64,158,255,.18);border-radius:14px;margin:10px auto;background:radial-gradient(circle at 96% 12%,rgba(64,158,255,.16),transparent 24%),linear-gradient(135deg,#fff,#f7faff);box-shadow:0 8px 22px rgba(31,41,55,.06);color:#334155;font-size:14px;line-height:1.7}.top-notice a[data-v-4101c199]{color:#409eff}.top-notice-detail[data-v-4101c199]{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:4px;color:#f56c6c;font-weight:700}@media screen and (max-width: 700px){.files[data-v-4101c199]{margin-top:70px}.text-btns[data-v-4101c199]{display:flex;flex-direction:column}.text-btns[data-v-4101c199] .el-button{margin-left:0;margin-bottom:0}.header[data-v-4101c199]{justify-content:center}.export-btns[data-v-4101c199]{display:flex;flex-wrap:wrap;justify-content:space-around}}.panel[data-v-4101c199]{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-4101c199]{font-size:12px;margin-right:10px}.header[data-v-4101c199]{display:flex;flex-wrap:wrap}.header .item[data-v-4101c199]{margin-right:10px;margin-bottom:10px}.el-button[data-v-4101c199]{margin-left:10px;margin-bottom:10px}.control-item[data-v-4101c199]{margin-left:10px;margin-bottom:10px;font-size:14px}.search-item[data-v-4101c199]{min-width:260px}.search-tip[data-v-4101c199]{margin-top:4px;color:#909399;font-size:12px;line-height:1.4}.stats-dashboard[data-v-4101c199]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:16px}.stat-card[data-v-4101c199]{display:flex;flex-direction:column;min-height:120px;padding:16px;border:1px solid #edf0f5;border-radius:14px;background:radial-gradient(circle at 90% 16%,rgba(64,158,255,.14),transparent 28%),linear-gradient(135deg,#fff,#f7faff);box-shadow:0 8px 22px rgba(31,41,55,.06);box-sizing:border-box}.stat-card.warning[data-v-4101c199]{border-color:rgba(245,108,108,.38);background:radial-gradient(circle at 90% 16%,rgba(245,108,108,.14),transparent 28%),linear-gradient(135deg,#fff,#fff8f8)}.stat-card strong[data-v-4101c199]{margin:8px 0 6px;color:#1f2937;font-size:22px;line-height:1.25}.stat-card small[data-v-4101c199]{color:#8a94a6;line-height:1.5}.stat-card[data-v-4101c199] .el-progress{margin:4px 0 2px}.stat-label[data-v-4101c199]{color:#409eff;font-size:13px;font-weight:700}.stat-link[data-v-4101c199]{align-self:flex-start;padding:0;border:0;margin-top:8px;background:transparent;color:#409eff;cursor:pointer;font-size:13px}.imageLoading[data-v-4101c199]{display:flex;align-items:center;justify-content:center;height:100%}.imageDes[data-v-4101c199]{position:absolute;bottom:80px;color:#fff;left:50%;transform:translate(-50%)}.progress-list[data-v-4101c199]{margin-top:10px}.progress-list .progress-item[data-v-4101c199]{margin-bottom:10px}.progress-list .progress-item .progress[data-v-4101c199]{display:flex;justify-content:center;align-items:center;margin-bottom:6px}.progress-list .progress-item .progress .el-progress--line[data-v-4101c199]{min-width:200px;width:260px}.progress-list .progress-item .progress .el-button[data-v-4101c199]{margin:0 6px}.progress-list .progress-item .des[data-v-4101c199]{font-size:12px}.progress-list .progress-item .des .filename[data-v-4101c199]{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-4101c199]{width:60px;color:#409eff}.progress-list .progress-item[data-v-4101c199]{text-align:center}\n/*$vite$:1*/",document.head.appendChild(a);const ye={getDownloadActions:function(e,a,t=[]){return l.post("/action/download/list",{pageSize:e,pageIndex:a,extraIds:t})}},we=n({name:"Download"}),be={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ke=[s("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64v450.304z"},null,-1)];var _e=t(we,[["render",function(e,a,l,t,n,s){return i(),o("svg",be,ke)}]]);const Ce=n({name:"Picture"}),ze={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ve=[s("path",{fill:"currentColor",d:"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z"},null,-1),s("path",{fill:"currentColor",d:"M384 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952L185.408 876.992z"},null,-1)];var Se=t(Ce,[["render",function(e,a,l,t,n,s){return i(),o("svg",ze,Ve)}]]);const Te={class:"files"},$e={key:0,class:"top-notice"},Le={class:"top-notice-main"},Pe=["href"],je=["href"],De={key:0,class:"top-notice-detail"},Ie=["href"],Ee=["href"],Ue={class:"panel header"},Me={class:"item"},Fe={class:"item"},Ne={class:"item"},Ae={class:"item search-item"},He={class:"panel"},Oe={class:"export-btns flex fac"},qe={class:"control-item"},Be={class:"control-item"},Ke={class:"control-item"},Re={class:"control-item"},We={class:"panel"},Je={"element-loading-text":"...",style:{"--el-loading-spinner-size":"20px"}},Qe={class:"panel"},Xe={key:0},Ge={key:1},Ye={key:2},Ze={key:0},ea={key:1},aa={key:2},la={key:3},ta={class:"flex fc"},na={class:"panel"},ia={class:"stats-dashboard"},oa={class:"stat-card"},sa={class:"stat-card"},ra={class:"imageDes"},da={class:"imageLoading"},ua={class:"text-btns"},ca={class:"panel flex fc"};e("default",J(n({__name:"index",setup(e){const{value:a}=g(),l=d((()=>a.value.openPraise)),t=d((()=>a.value.limitSpace)),n=d((()=>a.value.limitWallet)),J=d((()=>l.value&&(t.value||n.value))),{usage:we,size:be,wallet:ke,cost:Ce,percentageValue:ze,walletPercentageValue:Ve,limitDownload:pa,limitSpace:ga,limitWallet:fa,priceText:ma}=function(){const e=r({size:0,usage:0,limitUpload:!1,wallet:"0:00",cost:"0.00",limitSpace:!1,limitWallet:!1,price:{storage:"0:00",download:"0:00"}}),a=d((()=>e.usage)),l=d((()=>e.size)),t=d((()=>e.wallet)),n=d((()=>e.cost)),i=d((()=>e.size?+(e.usage/e.size*100).toFixed(2):0)),o=d((()=>+e.wallet?+(+e.cost/+e.wallet*100).toFixed(2):0)),s=d((()=>`${i.value.toFixed(2)}%`)),g=d((()=>`${o.value.toFixed(2)}%`)),f=d((()=>e.limitUpload)),m=d((()=>e.limitSpace)),v=d((()=>e.limitWallet)),x=d((()=>`空间 ${s.value}: ${u(e.usage)} / ${u(e.size)}`)),h=d((()=>`钱包 ${g.value}: ${e.cost} / ${e.wallet}¥`)),y=d((()=>`存储 ${e.price.storage}¥ + 下载 ${e.price.download}¥`));return c((()=>{p.usage().then((a=>{Object.assign(e,a.data)}))})),{usage:a,size:l,wallet:t,cost:n,percentageValue:i,walletPercentageValue:o,percentage:s,walletPercentage:g,limitDownload:f,limitSpace:m,limitWallet:v,spaceUsageText:x,moneyUsageText:h,priceText:y}}(),va=f(),xa=m(),ha=v(!1),ya=v(""),wa=v("false"!==localStorage.getItem("ep-show-images")),ba=v(!0),ka=v(!1),_a=v(!1),Ca=r({actions:[],pageSize:3,pageCount:0,pageCurrent:1,pageTotal:0,compressTask:[]});function za(){const e=JSON.parse(localStorage.getItem("ep_compress_task")||"[]");Ca.compressTask=e,ye.getDownloadActions(Ca.pageSize,Ca.pageCurrent,e.map((e=>e.id))).then((a=>{const{actions:l,sum:t}=a.data,n=l.some((e=>e.status===fe.ARCHIVE));l.filter((e=>e.type===ge.Compress)).forEach((a=>{const l=e.findIndex((e=>e.id===a.id));a.status===fe.SUCCESS&&-1!==l&&(ya.value=a.url,ha.value=!0,j(a.url),e.splice(l,1)),a.status===fe.ARCHIVE&&-1===l&&e.push(a),a.status===fe.FAIL&&-1!==l&&e.splice(l,1)})),Ca.compressTask=e,localStorage.setItem("ep_compress_task",JSON.stringify(e)),n&&setTimeout(za,1e3),Ca.pageTotal=t,Ca.actions=l,Ca.pageCount=Math.ceil(t/Ca.pageSize)}))}function Va(e){Ca.pageCurrent=e,za()}const Sa=d((()=>va.state.category.categoryList)),Ta=v("all"),$a=d((()=>va.state.task.taskList)),La=v("all"),Pa=d((()=>"all"===Ta.value?$a.value:(La.value="all",$a.value.filter((e=>e.category===Ta.value))))),ja=d((()=>{const e=Pa.value.find((e=>e.key===La.value));return e?.name}));function Da(e,a){if(0===e.length)return void U.warning("表格中没有可导出的内容");const l=["提交时间","任务","文件名","大小"];ka.value&&l.push("原文件名"),ba.value&&l.push("姓名");const t=l.map((e=>({value:e,row:2}))),n=e.reduce(((e,a)=>{try{JSON.parse(a.info).forEach((a=>{e.includes(a.text)||e.push(a.text)}))}catch{U.error({message:`数据异常${a.name},可联系平台管理员处理`,duration:5e3}),console.warn(a)}return e}),[]);t.push({value:"提交信息",col:n.length});const i=e.map((e=>{const{date:a,task_name:l,name:t,size:i,people:o}=e;try{const s=JSON.parse(e.info).reduce(((e,a)=>(e[a.text]=`${a.value}`,e)),{}),r=n.map((e=>s[e]??"-")),d=[P(new Date(a)),l,t,u(i)];return ka.value&&d.push(e.origin_name||"-"),ba.value&&d.push(o||"-"),d.push(...r),d}catch{U.error({message:`数据异常${e.name},可联系平台管理员处理`,duration:5e3}),console.warn(e)}return[]})).filter((e=>!!e.length));i.unshift(n);const o=a||`数据导出_${P(new Date,"yyyy年MM月dd日hh时mm分ss秒")}.xlsx`,s=ja.value?`${R(ja.value)}_${o}`:o;W(t,i,s),U.success("导出成功")}x((()=>{$a.value.length&&$a.value.some((e=>e.key===xa.query.task))&&(La.value=`${xa.query.task}`)}));const Ia=v(!1),Ea=r([]),Ua=v(""),Ma=v(6),Fa=v(1),Na=v(0),Aa=v(0),Ha=v(0),Oa=v(0);let qa=0;function Ba(){const e=++qa;Ia.value=!0,Ea.splice(0,Ea.length),E.getFilePage({pageIndex:Fa.value,pageSize:Ma.value,categoryKey:Ta.value,taskKey:La.value,keyword:Ua.value}).then((a=>{if(e!==qa)return;const{data:l}=a;Ea.push(...l.files),Na.value=l.total,Aa.value=l.pageCount,Ha.value=l.totalSize,Oa.value=l.filterSize})).finally((()=>{e===qa&&(Ia.value=!1)}))}async function Ka(){Da(await async function(){const e=[];let a=1,l=1;do{const{data:t}=await E.getFilePage({pageIndex:a,pageSize:100,categoryKey:Ta.value,taskKey:La.value,keyword:Ua.value});e.push(...t.files),l=t.pageCount,a+=1}while(a<=l);return e}(),`筛选数据导出_${P(new Date,"yyyy年MM月dd日hh时mm分ss秒")}.xlsx`)}const Ra=v(),Wa=d((()=>Ea)),Ja=r([]);function Qa(e){Ja.splice(0,Ja.length),Ja.push(...e)}const Xa=v(!1);function Ga(e){const a=Ja.map((e=>e.id));switch(e){case"download":if(pa.value)return void U.error("下载功能已被限制,请联系管理员扩容,或自行删除历史无用文件");if(0===Ja.length)return void U.warning("没有选中需要下载的内容");if(Xa.value)return void U.warning("已经有批量下载任务正在进行,请稍后再试");E.batchDownload(a,`批量下载_${P(new Date,"yyyy年MM月dd日hh时mm分ss秒")}`).then((()=>{za()})).catch((()=>{U.error("所选文件均已从服务器上移除"),Xa.value=!1})),U.info("开始归档选中的文件,请赖心等待");break;case"delete":if(0===Ja.length)return void U.warning("没有选中需要删除的内容");he.confirm("删除后无法恢复,是否删除","数据无价,请谨慎操作").then((()=>{E.batchDel(a).then((()=>{U.success("删除成功"),Ea.length===a.length&&Fa.value>1?Fa.value-=1:Ba()}))})).catch((()=>{U.info("取消")}));break;case"excel":if(0===Ja.length)return void U.warning("没有选中需要导出的内容");Da(Ja,`批量导出_${P(new Date,"yyyy年MM月dd日hh时mm分ss秒")}.xlsx`),U.success("导出成功")}Ra.value.clearSelection()}const Ya=v(!1),Za=r([]),el=v(!1),al=r({oldName:"",newName:"",suffix:"",id:-1});function ll(){if(me.test(al.newName))return U.error(`文件名不能包含${me.source}等字符`),void(me.lastIndex=0);E.updateFilename(al.id,`${al.newName}${al.suffix}`).then((()=>{U.success("修改成功");const e=Ea.find((e=>e.id===al.id));e&&(e.name=`${al.newName}${al.suffix}`)})).catch((()=>{U.error("修改失败")})).finally((()=>{el.value=!1}))}function tl(e){Ma.value=e,Fa.value=1}const nl=d((()=>u(Oa.value))),il=d((()=>u(Ha.value))),ol=d((()=>Math.min(100,ze.value))),sl=d((()=>Math.min(100,Ve.value)));function rl(e){Fa.value=e}function dl(){U.success({message:"刷新成功"}),Ba()}function ul(){0!==Na.value?Xa.value?U.warning("已经有批量下载任务正在进行,请稍后再试"):(Xa.value=!0,E.batchDownloadByQuery({taskKey:La.value,zipName:ja.value}).then((()=>{za()})).catch((()=>{U.error("所选任务中的文件均已从服务器上移除")})).finally((()=>{setTimeout((()=>{Xa.value=!1}),1e3)})),U.info("开始归档选中的文件,请赖心等待")):U.warning("该任务中没有数据")}const cl=v(""),pl=d((()=>Wa.value.map((e=>e.preview||""))));function gl(e){cl.value=Wa.value[e].name}h([Ta,La,Ua],(function(){1!==Fa.value?Fa.value=1:Ba()})),h([Fa,Ma],Ba),h(wa,(()=>{window.localStorage.setItem("ep-show-images",`${wa.value}`)})),c((()=>{Ba(),za(),va.dispatch("category/getCategory"),va.dispatch("task/getTask")}));const fl=y();function ml(){he.confirm(ma.value)}return(e,r)=>{const d=le,c=te,p=N,g=A,f=H,m=re,v=de,x=ue,h=oe,y=ne,R=O,W=ie,me=ae,ye=Z,Ve=G,ma=q,va=B,xa=K,$a=Q;return i(),o("div",Te,[l.value?(i(),o("div",$e,[s("div",Le,[s("strong",null,[w(b(k(a).filePagePraiseText),1),s("a",{href:k(a).filePagePraiseLink,target:"_blank",rel:"noopener noreferrer"},b(k(a).filePagePraiseLinkText),9,Pe)]),s("strong",null,[w(b(k(a).filePageContactText),1),s("a",{href:k(a).filePageContactLink,target:"_blank",rel:"noopener noreferrer"},b(k(a).filePageContactLinkText),9,je)])]),J.value?(i(),o("div",De,[s("span",null,b(k(a).filePageLimitText),1),s("span",null,[w(b(k(a).filePageSponsorText),1),s("a",{href:k(a).filePageSponsorLink,target:"_blank",rel:"noopener noreferrer"},b(k(a).filePageSponsorLinkText),9,Ie),w(b(k(a).filePageSponsorSuffix),1)]),s("span",null,[s("a",{href:k(a).filePageSelfHostLink,target:"_blank",rel:"noopener noreferrer"},b(k(a).filePageSelfHostLinkText),9,Ee)])])):_("",!0)])):_("",!0),s("div",Ue,[s("div",Me,[r[13]||(r[13]=s("span",{class:"label"},"分类",-1)),C(c,{modelValue:Ta.value,"onUpdate:modelValue":r[0]||(r[0]=e=>Ta.value=e),size:"default",filterable:"",placeholder:"请选择"},{default:z((()=>[C(d,{label:"全部",value:"all"}),C(d,{label:"默认",value:"default"}),(i(!0),o(V,null,S(Sa.value,(e=>(i(),T(d,{key:e.k,label:e.name,value:e.k},null,8,["label","value"])))),128)),C(d,{label:"无关联任务",value:"no-task"}),C(d,{label:"♻️回收站♻️",value:"trash"})])),_:1},8,["modelValue"])]),s("div",Fe,[r[14]||(r[14]=s("span",{class:"label"},"任务",-1)),C(c,{modelValue:La.value,"onUpdate:modelValue":r[1]||(r[1]=e=>La.value=e),size:"default",filterable:"",placeholder:"请选择"},{default:z((()=>[C(d,{label:"全部",value:"all"}),(i(!0),o(V,null,S(Pa.value,(e=>(i(),T(d,{key:e.key,label:e.name,value:e.key},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])]),s("div",Ne,[C(p,{loading:Xa.value,disabled:"all"===La.value,type:"primary",size:"default",icon:k(_e),onClick:ul},{default:z((()=>r[15]||(r[15]=[w(" 下载任务中的文件 ")]))),_:1},8,["loading","disabled","icon"])]),s("div",Ae,[C(g,{modelValue:Ua.value,"onUpdate:modelValue":r[2]||(r[2]=e=>Ua.value=e),size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":k(ee)},null,8,["modelValue","prefix-icon"]),r[16]||(r[16]=s("div",{class:"search-tip"}," 可搜索:文件名、任务名、提交人姓名、原文件名、提交信息 ",-1))])]),s("div",He,[s("div",Oe,[C(x,{trigger:"click",onCommand:Ga},{dropdown:z((()=>[C(v,null,{default:z((()=>[C(m,{disabled:0===Ja.length,command:"download"},{default:z((()=>r[18]||(r[18]=[w(" 下载 ")]))),_:1},8,["disabled"]),C(m,{disabled:0===Ja.length,command:"delete"},{default:z((()=>r[19]||(r[19]=[w(" 删除 ")]))),_:1},8,["disabled"]),C(m,{disabled:0===Ja.length,command:"excel"},{default:z((()=>r[20]||(r[20]=[w(" 导出记录 ")]))),_:1},8,["disabled"])])),_:1})])),default:z((()=>[C(p,{type:"primary",size:"default"},{default:z((()=>[r[17]||(r[17]=w(" 批量操作")),C(f,{class:"el-icon--right"},{default:z((()=>[C(k(se))])),_:1})])),_:1})])),_:1}),$(s("div",null,[C(x,{trigger:"click",onCommand:Ga},{dropdown:z((()=>[C(v,null,{default:z((()=>[C(m,{command:"download"},{default:z((()=>r[22]||(r[22]=[w(" 下载 ")]))),_:1}),C(m,{command:"delete"},{default:z((()=>r[23]||(r[23]=[w(" 删除 ")]))),_:1}),C(m,{command:"excel"},{default:z((()=>r[24]||(r[24]=[w(" 导出记录 ")]))),_:1})])),_:1})])),default:z((()=>[C(p,{type:"primary",disabled:0===Ja.length,size:"default"},{default:z((()=>[r[21]||(r[21]=w(" 批量操作 ")),C(f,null,{default:z((()=>[C(k(se))])),_:1})])),_:1},8,["disabled"])])),_:1})],512),[[L,!1]]),C(p,{size:"default",icon:k(ve),onClick:dl},{default:z((()=>r[25]||(r[25]=[w(" 刷新 ")]))),_:1},8,["icon"]),C(p,{title:"导出当前筛选条件下的所有数据",type:"success",size:"default",icon:k(xe),disabled:0===Na.value,onClick:Ka},{default:z((()=>r[26]||(r[26]=[w(" 导出记录 ")]))),_:1},8,["icon","disabled"]),s("div",qe,[r[27]||(r[27]=w(" 显示图片 ")),C(h,{modelValue:wa.value,"onUpdate:modelValue":r[3]||(r[3]=e=>wa.value=e),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",Be,[r[28]||(r[28]=w(" 展示原文件名 ")),C(h,{modelValue:ka.value,"onUpdate:modelValue":r[4]||(r[4]=e=>ka.value=e),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",Ke,[r[29]||(r[29]=w(" 显示提交人姓名 ")),C(h,{modelValue:ba.value,"onUpdate:modelValue":r[5]||(r[5]=e=>ba.value=e),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",Re,[r[30]||(r[30]=w(" ⏰ 查看下载历史 ")),C(h,{modelValue:_a.value,"onUpdate:modelValue":r[6]||(r[6]=e=>_a.value=e),style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"}},null,8,["modelValue"])])])]),$(s("div",We,[C(X,{style:{"font-size":"16px"}},{default:z((()=>[w(" 正在进行归档的任务 "+b(Ca.compressTask.length)+"个 ",1)])),_:1}),C(X,null,{default:z((()=>r[31]||(r[31]=[w("详细归档记录点击右上角 “⏰查看下载历史”")]))),_:1}),(i(!0),o(V,null,S(Ca.compressTask,((e,a)=>(i(),o("p",{key:e.id,class:"tc",style:{"margin-top":"10px"}},[w(b(a+1)+". "+b(e.tip)+" ",1),$(s("span",Je,null,512),[[$a,!0]])])))),128))],512),[[L,Ca.compressTask.length&&!_a.value]]),$(s("div",Qe,[C(X,{style:{"font-size":"16px"}},{default:z((()=>r[32]||(r[32]=[w(" ”❤️下面展示历史的下载记录与归档任务完成情况❤️“ ")]))),_:1}),C(X,null,{default:z((()=>r[33]||(r[33]=[w("”再也不需要在页面停留等待归档完成“")]))),_:1}),s("div",null,[$((i(),T(W,{ref_key:"multipleTable",ref:Ra,"element-loading-text":"Loading...","tooltip-effect":"dark","multiple-table":"",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},"max-height":666,data:Ca.actions,style:{width:"100%"},onSelectionChange:Qa},{default:z((()=>[C(y,{prop:"date",label:"触发时间",width:"200"},{default:z((e=>[w(b(k(P)(new Date(e.row.date))),1)])),_:1}),C(y,{prop:"tip",label:"文件名"}),C(y,{prop:"type",label:"类型"},{default:z((e=>[e.row.type===k(ge).Compress?(i(),T(R,{key:0,type:"primary"},{default:z((()=>r[34]||(r[34]=[w(" 归档下载 ")]))),_:1})):(i(),T(R,{key:1,type:"default"},{default:z((()=>r[35]||(r[35]=[w(" 普通下载 ")]))),_:1}))])),_:1}),C(y,{prop:"size",label:"大小",width:"100"},{default:z((e=>[e.row.status===k(fe).ARCHIVE?(i(),o("span",Xe,[C(R,{type:"danger"},{default:z((()=>r[36]||(r[36]=[w("归档中...")]))),_:1})])):e.row.status!==k(fe).FAIL?(i(),o("span",Ge,b(e.row.size?k(u)(e.row.size):"未知大小"),1)):_("",!0),e.row.status===k(fe).FAIL?(i(),o("span",Ye,[C(R,{type:"danger"},{default:z((()=>r[37]||(r[37]=[w("归档失败")]))),_:1})])):_("",!0)])),_:1}),C(y,{fixed:"right",label:"操作",width:"140"},{default:z((e=>[e.row.status===k(fe).ARCHIVE?$((i(),o("div",Ze,r[38]||(r[38]=[w(" 归档中... ")]))),[[$a,!0]]):_("",!0),e.row.status===k(fe).EXPIRED?(i(),o("div",ea," 链接已失效 ")):_("",!0),e.row.status===k(fe).FAIL?(i(),o("div",aa," 联系开发者,提供错误信息:"+b(e.row.error),1)):_("",!0),e.row.status===k(fe).SUCCESS?(i(),o("div",la,[C(R,{type:"primary",onClick:a=>k(j)(e.row.url)},{default:z((()=>r[39]||(r[39]=[w(" 下载 ")]))),_:2},1032,["onClick"]),C(R,{type:"success",style:{"margin-left":"10px"},onClick:a=>k(D)(e.row.url)},{default:z((()=>r[40]||(r[40]=[w(" 链接 ")]))),_:2},1032,["onClick"]),C(R,{type:"warning",style:{"margin-left":"10px"},onClick:()=>{ha.value=!0,ya.value=e.row.url}},{default:z((()=>r[41]||(r[41]=[w(" 二维码 ")]))),_:2},1032,["onClick"])])):_("",!0)])),_:1})])),_:1},8,["data"])),[[$a,Ia.value]]),s("div",ta,[C(me,{small:"","current-page":Ca.pageCurrent,"page-count":Ca.pageCount,total:Ca.pageTotal,layout:"total, prev, pager, next",onCurrentChange:Va},null,8,["current-page","page-count","total"])])])],512),[[L,_a.value]]),s("div",na,[s("div",ia,[s("div",oa,[r[42]||(r[42]=s("span",{class:"stat-label"},"全部文件",-1)),s("strong",null,b(il.value),1),r[43]||(r[43]=s("small",null,"当前账号提交文件总大小",-1))]),s("div",sa,[r[44]||(r[44]=s("span",{class:"stat-label"},"当前筛选",-1)),s("strong",null,b(nl.value),1),r[45]||(r[45]=s("small",null,"当前筛选条件下文件大小",-1))]),t.value?(i(),o("div",{key:0,class:I(["stat-card",{warning:k(ga)}])},[r[46]||(r[46]=s("span",{class:"stat-label"},"存储空间",-1)),s("strong",null,b(k(u)(k(we)))+" / "+b(k(u)(k(be))),1),C(ye,{percentage:ol.value,status:k(ga)?"exception":void 0},null,8,["percentage","status"]),s("small",null,b(k(ze).toFixed(2))+"% 已使用",1)],2)):_("",!0),n.value?(i(),o("div",{key:1,class:I(["stat-card",{warning:k(fa)}])},[r[47]||(r[47]=s("span",{class:"stat-label"},"钱包消耗",-1)),s("strong",null,b(k(Ce))+" / "+b(k(ke))+"¥",1),C(ye,{percentage:sl.value,status:k(fa)?"exception":void 0},null,8,["percentage","status"]),s("small",null,"统计时间:"+b(k(P)(k(a).moneyStartDay,"yyyy-MM-dd"))+" - 至今",1),s("button",{class:"stat-link",type:"button",onClick:ml}," 查看费用明细 ")],2)):_("",!0)]),k(pa)?(i(),T(X,{key:0},{default:z((()=>r[48]||(r[48]=[s("h2",{style:{color:"#f56c6c"}}," 空间超限将无法上传/下载文件,如需要使用,请联系管理员扩容,或自行删除无关文件 ",-1)]))),_:1})):_("",!0),$((i(),T(W,{ref_key:"multipleTable",ref:Ra,"element-loading-text":"Loading...","tooltip-effect":"dark","multiple-table":"",stripe:"",border:"","max-height":666,data:Wa.value,style:{width:"100%"},onSelectionChange:Qa},{default:z((()=>[C(y,{type:"selection",width:"55"}),C(y,{prop:"date",label:"提交时间",width:"160"},{default:z((e=>[w(b(k(P)(new Date(e.row.date))),1)])),_:1}),C(y,{prop:"task_name",label:"任务",width:"150"}),C(y,{prop:"name",label:"文件名",width:"200"}),ka.value?(i(),T(y,{key:0,prop:"origin_name",label:"原文件名",width:"200"},{default:z((e=>[w(b(e.row.origin_name||"-"),1)])),_:1})):_("",!0),C(y,{prop:"size",label:"大小"},{default:z((e=>[w(b(0===e.row.size?"未知大小":k(u)(e.row.size)),1)])),_:1}),C(y,{prop:"downloadCount",width:"90",label:"下载次数"}),wa.value?(i(),T(y,{key:1,label:"缩略图",width:"120"},{default:z((e=>[C(Ve,{"preview-teleported":"","preview-src-list":pl.value,"initial-index":e.$index,lazy:"",style:{width:"100px",height:"100px"},src:e.row.cover,fit:"cover",onSwitch:gl,onClick:a=>gl(e.$index)},{viewer:z((()=>[s("div",ra,b(cl.value),1)])),placeholder:z((()=>r[49]||(r[49]=[s("div",{class:"imageLoading"}," Loading... ",-1)]))),error:z((()=>[s("div",da,[r[50]||(r[50]=w(" 不支持 ")),C(f,null,{default:z((()=>[C(k(Se))])),_:1})])])),_:2},1032,["preview-src-list","initial-index","src","onClick"])])),_:1})):_("",!0),ba.value?(i(),T(y,{key:2,prop:"people",width:"100",label:"限制名单"},{default:z((e=>[w(b(e.row.people||"-"),1)])),_:1})):_("",!0),C(y,{fixed:"right",label:"操作",width:"140"},{default:z((e=>[s("div",ua,[C(p,{type:"primary",text:"",size:"small",onClick:a=>{return l=e.row,Za.splice(0,Za.length),Za.push(...M(l.info)),void(Ya.value=!0);var l}},{default:z((()=>r[51]||(r[51]=[w(" 查看提交信息 ")]))),_:2},1032,["onClick"]),C(p,{type:"primary",text:"",size:"small",onClick:a=>function(e){const{id:a,name:l}=e,t=F(l);al.oldName=l,al.suffix=t,al.id=a,el.value=!0}(e.row)},{default:z((()=>r[52]||(r[52]=[w(" 修改文件名 ")]))),_:2},1032,["onClick"]),C(p,{type:"primary",text:"",size:"small",onClick:a=>function(e){if(pa.value)return void U.error("下载功能已被限制,请联系管理员扩容,或自行删除历史无用文件");const{id:a,name:l}=e;E.getOneFileUrl(a).then((e=>{const{link:a}=e.data;ha.value=!0,ya.value=a,j(a,l),za(),setTimeout((()=>{Ba()}),1e3)})).catch((()=>{U.error("文件已从服务器上移除")}))}(e.row)},{default:z((()=>r[53]||(r[53]=[w(" 下载 ")]))),_:2},1032,["onClick"]),C(p,{type:"primary",text:"",size:"small",onClick:a=>function(e){const a=Ea.findIndex((a=>a===e));he.confirm("确认删除此文件吗?","数据无价,请谨慎操作").then((()=>{E.deleteOneFile(e.id).then((()=>{U.success("删除成功"),Ea.splice(a,1),Na.value-=1,0===Ea.length&&Fa.value>1?Fa.value-=1:Ba()}))})).catch((()=>{U.info("取消删除")}))}(e.row)},{default:z((()=>r[54]||(r[54]=[w(" 删除 ")]))),_:2},1032,["onClick"])])])),_:1})])),_:1},8,["data"])),[[$a,Ia.value]])]),s("div",ca,[C(me,{"current-page":Fa.value,background:"","page-count":Aa.value,"page-sizes":[6,10,50,100],"page-size":Ma.value,total:Na.value,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:rl,onSizeChange:tl},null,8,["current-page","page-count","page-size","total"])]),C(ma,{modelValue:Ya.value,"onUpdate:modelValue":r[7]||(r[7]=e=>Ya.value=e),fullscreen:k(fl),title:"提交填写的信息"},{default:z((()=>[C(Y,{infos:Za,disabled:!0},null,8,["infos"])])),_:1},8,["modelValue","fullscreen"]),C(ce,{value:ha.value,"onUpdate:value":r[8]||(r[8]=e=>ha.value=e),title:"下载链接",link:ya.value},null,8,["value","link"]),k(a).filePageFloatingContactEnabled&&k(a).filePageContactLink?(i(),T(pe,{key:1,href:k(a).filePageContactLink,text:k(a).filePageContactLinkText||"联系客服"},null,8,["href","text"])):_("",!0),C(ma,{modelValue:el.value,"onUpdate:modelValue":r[12]||(r[12]=e=>el.value=e),fullscreen:k(fl),title:"修改文件名"},{default:z((()=>[s("div",null,[C(xa,{"label-width":"100px",model:al},{default:z((()=>[C(va,{label:"原文件名",prop:"newName"},{default:z((()=>[C(g,{modelValue:al.oldName,"onUpdate:modelValue":r[9]||(r[9]=e=>al.oldName=e),disabled:""},null,8,["modelValue"])])),_:1}),C(va,{label:"新文件名",prop:"newName"},{default:z((()=>[C(g,{modelValue:al.newName,"onUpdate:modelValue":r[10]||(r[10]=e=>al.newName=e),placeholder:"请输入新文件名"},{append:z((()=>[w(b(al.suffix),1)])),_:1},8,["modelValue"])])),_:1}),C(va,null,{default:z((()=>[C(p,{type:"success",onClick:ll},{default:z((()=>r[55]||(r[55]=[w(" 保存 ")]))),_:1}),C(p,{onClick:r[11]||(r[11]=e=>el.value=!1)},{default:z((()=>r[56]||(r[56]=[w(" 取消 ")]))),_:1})])),_:1})])),_:1},8,["model"])])])),_:1},8,["modelValue","fullscreen"])])}}}),[["__scopeId","data-v-4101c199"]]))}}}));
|
|
2
|
+
//# sourceMappingURL=index-legacy-w1mXHpIQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-legacy-w1mXHpIQ.js","sources":["../../src/apis/modules/action.ts","../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/download.mjs","../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/picture.mjs","../../src/pages/dashboard/files/index.vue","../../src/composables/user.ts"],"sourcesContent":["import ajax from '../ajax'\n\nfunction getDownloadActions(\n pageSize: number,\n pageIndex: number,\n extraIds: string[] = [],\n): ActionApiTypes.getDownloadActions {\n return ajax.post('/action/download/list', {\n pageSize,\n pageIndex,\n extraIds,\n })\n}\n\nexport default {\n getDownloadActions,\n}\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: \"Download\"\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: \"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64v450.304z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar download = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { download 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: \"Picture\"\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: \"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M384 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952L185.408 876.992z\"\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 picture = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { picture as default };\n","<script lang=\"ts\" setup>\nimport type { tableItem } from '@/utils/networkUtil'\nimport LinkDialog from '@components/linkDialog.vue'\nimport {\n ArrowDown,\n DataAnalysis,\n Download,\n Picture,\n Refresh,\n Search,\n} from '@element-plus/icons-vue'\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport { computed, onMounted, reactive, ref, watch, watchEffect } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { useStore } from 'vuex'\nimport { ActionServiceAPI, FileApi } from '@/apis'\nimport FloatingContact from '@/components/FloatingContact/index.vue'\nimport InfosForm from '@/components/InfosForm/index.vue'\nimport { useIsMobile, useSiteConfig, useSpaceUsage } from '@/composables'\nimport { ActionType, DownloadStatus, filenamePattern } from '@/constants'\nimport { downLoadByUrl, tableToExcel } from '@/utils/networkUtil'\nimport {\n copyRes,\n formatDate,\n formatSize,\n getFileSuffix,\n normalizeFileName,\n parseInfo,\n} from '@/utils/stringUtil'\nimport Tip from '../tasks/components/infoPanel/tip.vue'\n\nconst { value: siteConfig } = useSiteConfig()\nconst isOpenPraise = computed(() => siteConfig.value.openPraise)\nconst showStorageLimit = computed(() => siteConfig.value.limitSpace)\nconst showWalletLimit = computed(() => siteConfig.value.limitWallet)\nconst showResourceLimitNotice = computed(\n () => isOpenPraise.value && (showStorageLimit.value || showWalletLimit.value),\n)\n\nconst {\n usage,\n size,\n wallet,\n cost,\n percentageValue,\n walletPercentageValue,\n limitDownload,\n limitSpace,\n limitWallet,\n priceText,\n} = useSpaceUsage()\n\nconst $store = useStore()\nconst $route = useRoute()\nconst showLinkModel = ref(false)\nconst downloadUrl = ref('')\nconst showImg = ref(localStorage.getItem('ep-show-images') !== 'false')\nconst showPeople = ref(true)\nconst showOriginName = ref(false)\nconst showHistoryPanel = ref(false)\nconst historyDownloadRecord = reactive({\n actions: [],\n pageSize: 3,\n /**\n * 总页数\n */\n pageCount: 0,\n pageCurrent: 1,\n pageTotal: 0,\n compressTask: [],\n})\n\nfunction loadActions() {\n // 已记录的task\n const compressTask: ActionApiTypes.DownloadActionData[] = JSON.parse(\n localStorage.getItem('ep_compress_task') || '[]',\n )\n historyDownloadRecord.compressTask = compressTask\n\n ActionServiceAPI.getDownloadActions(\n historyDownloadRecord.pageSize,\n historyDownloadRecord.pageCurrent,\n compressTask.map(v => v.id),\n ).then((v) => {\n const { actions, sum } = v.data\n const haveArchive = actions.some(v => v.status === DownloadStatus.ARCHIVE)\n\n actions\n .filter(v => v.type === ActionType.Compress)\n .forEach((action) => {\n const existIndex = compressTask.findIndex(v => v.id === action.id)\n // 判断状态\n // SUCCESS\n // 存在,触发下载,从compressTask移除\n if (action.status === DownloadStatus.SUCCESS && existIndex !== -1) {\n // 展示弹窗\n downloadUrl.value = action.url\n showLinkModel.value = true\n downLoadByUrl(action.url)\n // ElMessage.success(`自动下载归档任务 ${action.tip}`)\n compressTask.splice(existIndex, 1)\n }\n // Archive\n // 不存在,push进compressTask\n if (action.status === DownloadStatus.ARCHIVE && existIndex === -1) {\n compressTask.push(action)\n }\n\n // ERROR\n if (action.status === DownloadStatus.FAIL && existIndex !== -1) {\n compressTask.splice(existIndex, 1)\n }\n })\n // TODO:之后根据反馈优化\n historyDownloadRecord.compressTask = compressTask\n localStorage.setItem('ep_compress_task', JSON.stringify(compressTask))\n if (haveArchive) {\n // 递归查询\n setTimeout(loadActions, 1000)\n }\n historyDownloadRecord.pageTotal = sum\n historyDownloadRecord.actions = actions\n historyDownloadRecord.pageCount = Math.ceil(\n sum / historyDownloadRecord.pageSize,\n )\n })\n}\nfunction handleHistoryActionPageChange(v) {\n historyDownloadRecord.pageCurrent = v\n loadActions()\n}\n\n// 分类相关\nconst categories = computed(() => $store.state.category.categoryList)\nconst selectCategory = ref('all')\n// 任务相关\nconst tasks = computed<TaskApiTypes.TaskItem[]>(\n () => $store.state.task.taskList,\n)\nconst selectTask = ref('all')\nconst filterTasks = computed(() => {\n if (selectCategory.value === 'all') {\n return tasks.value\n }\n // eslint-disable-next-line vue/no-side-effects-in-computed-properties\n selectTask.value = 'all'\n return tasks.value.filter(t => t.category === selectCategory.value)\n})\nconst selectTaskName = computed(() => {\n const t = filterTasks.value.find(v => v.key === selectTask.value)\n return t?.name\n})\n\nwatchEffect(() => {\n if (\n tasks.value.length\n && tasks.value.some(v => v.key === $route.query.task)\n ) {\n selectTask.value = `${$route.query.task}`\n }\n})\n\n// 记录导出\nfunction handleExportExcel(files: FileApiTypes.File[], filename?: string) {\n if (files.length === 0) {\n ElMessage.warning('表格中没有可导出的内容')\n return\n }\n const baseHeaders = ['提交时间', '任务', '文件名', '大小']\n if (showOriginName.value) {\n baseHeaders.push('原文件名')\n }\n if (showPeople.value) {\n baseHeaders.push('姓名')\n }\n const headers: (string | tableItem)[] = baseHeaders.map(v => ({\n value: v,\n row: 2,\n }))\n\n const infosHeader = files.reduce((pre, value) => {\n try {\n JSON.parse(value.info).forEach((i: any) => {\n if (!pre.includes(i.text)) {\n pre.push(i.text)\n }\n })\n }\n catch {\n ElMessage.error({\n message: `数据异常${value.name},可联系平台管理员处理`,\n duration: 5000,\n })\n console.warn(value)\n }\n return pre\n }, [])\n headers.push({\n value: '提交信息',\n col: infosHeader.length,\n })\n\n const body = files.map((v) => {\n const { date, task_name: taskName, name, size, people } = v\n try {\n const infoObj = JSON.parse(v.info).reduce((pre, v) => {\n pre[v.text] = `${v.value}`\n return pre\n }, {})\n const info = infosHeader.map(v => infoObj[v] ?? '-')\n const rows = [formatDate(new Date(date)), taskName, name, formatSize(size)]\n if (showOriginName.value) {\n rows.push(v.origin_name || '-')\n }\n if (showPeople.value) {\n rows.push(people || '-')\n }\n rows.push(...info)\n return rows\n }\n catch {\n ElMessage.error({\n message: `数据异常${v.name},可联系平台管理员处理`,\n duration: 5000,\n })\n console.warn(v)\n }\n return []\n }).filter(v => !!v.length)\n body.unshift(infosHeader)\n\n const _filename = filename || `数据导出_${formatDate(new Date(), 'yyyy年MM月dd日hh时mm分ss秒')}.xlsx`\n const resFileName = selectTaskName.value ? `${normalizeFileName(selectTaskName.value)}_${_filename}` : _filename\n\n tableToExcel(\n headers,\n body,\n resFileName,\n )\n ElMessage.success('导出成功')\n}\n\nconst isLoadingData = ref(false)\n// 提交的所有文件\nconst files: FileApiTypes.File[] = reactive([])\nconst searchWord = ref('')\n// 分页\nconst pageSize = ref(6)\n// 当前页\nconst pageCurrent = ref(1)\nconst fileTotal = ref(0)\nconst filePageCount = ref(0)\nconst fileListTotalSize = ref(0)\nconst filterFileTotalSize = ref(0)\nlet loadFilesId = 0\nfunction loadFiles() {\n const currentLoadId = ++loadFilesId\n isLoadingData.value = true\n files.splice(0, files.length)\n FileApi.getFilePage({\n pageIndex: pageCurrent.value,\n pageSize: pageSize.value,\n categoryKey: selectCategory.value,\n taskKey: selectTask.value,\n keyword: searchWord.value,\n })\n .then((res) => {\n if (currentLoadId !== loadFilesId) {\n return\n }\n const { data } = res\n files.push(...data.files)\n fileTotal.value = data.total\n filePageCount.value = data.pageCount\n fileListTotalSize.value = data.totalSize\n filterFileTotalSize.value = data.filterSize\n })\n .finally(() => {\n if (currentLoadId === loadFilesId) {\n isLoadingData.value = false\n }\n })\n}\nasync function loadFilesForExport() {\n const exportFiles: FileApiTypes.File[] = []\n let pageIndex = 1\n let pageCount = 1\n do {\n const { data } = await FileApi.getFilePage({\n pageIndex,\n pageSize: 100,\n categoryKey: selectCategory.value,\n taskKey: selectTask.value,\n keyword: searchWord.value,\n })\n exportFiles.push(...data.files)\n pageCount = data.pageCount\n pageIndex += 1\n } while (pageIndex <= pageCount)\n return exportFiles\n}\nasync function handleExportFilterFiles() {\n const exportFiles = await loadFilesForExport()\n handleExportExcel(\n exportFiles,\n `筛选数据导出_${formatDate(\n new Date(),\n 'yyyy年MM月dd日hh时mm分ss秒',\n )}.xlsx`,\n )\n}\nconst multipleTable: any = ref()\n\nconst showFilterFiles = computed(() => files)\n\n/**\n * 清空所有选项\n */\nfunction clearSelection() {\n multipleTable.value.clearSelection()\n}\n// 多选选中的项\nconst selectItem: any[] = reactive([])\nfunction handleSelectionChange(e: any) {\n selectItem.splice(0, selectItem.length)\n selectItem.push(...e)\n}\nconst batchDownStart = ref(false)\nfunction handleDropdownClick(e: string) {\n const ids: number[] = selectItem.map(v => v.id)\n switch (e) {\n case 'download':\n if (limitDownload.value) {\n ElMessage.error('下载功能已被限制,请联系管理员扩容,或自行删除历史无用文件')\n return\n }\n if (selectItem.length === 0) {\n ElMessage.warning('没有选中需要下载的内容')\n return\n }\n if (batchDownStart.value) {\n ElMessage.warning('已经有批量下载任务正在进行,请稍后再试')\n return\n }\n FileApi.batchDownload(\n ids,\n `批量下载_${formatDate(new Date(), 'yyyy年MM月dd日hh时mm分ss秒')}`,\n )\n .then(() => {\n loadActions()\n })\n .catch(() => {\n ElMessage.error('所选文件均已从服务器上移除')\n batchDownStart.value = false\n })\n ElMessage.info('开始归档选中的文件,请赖心等待')\n break\n case 'delete':\n if (selectItem.length === 0) {\n ElMessage.warning('没有选中需要删除的内容')\n return\n }\n ElMessageBox.confirm('删除后无法恢复,是否删除', '数据无价,请谨慎操作')\n .then(() => {\n FileApi.batchDel(ids).then(() => {\n ElMessage.success('删除成功')\n if (files.length === ids.length && pageCurrent.value > 1) {\n pageCurrent.value -= 1\n return\n }\n loadFiles()\n })\n })\n .catch(() => {\n ElMessage.info('取消')\n })\n break\n case 'excel':\n if (selectItem.length === 0) {\n ElMessage.warning('没有选中需要导出的内容')\n return\n }\n handleExportExcel(\n selectItem,\n `批量导出_${formatDate(new Date(), 'yyyy年MM月dd日hh时mm分ss秒')}.xlsx`,\n )\n ElMessage.success('导出成功')\n break\n default:\n break\n }\n clearSelection()\n}\nconst showInfoDialog = ref(false)\nconst infos: any[] = reactive([])\nfunction checkInfo(e: any) {\n infos.splice(0, infos.length)\n infos.push(...parseInfo(e.info))\n showInfoDialog.value = true\n}\n\nconst showRenameDialog = ref(false)\nconst renameForm = reactive({\n oldName: '',\n newName: '',\n suffix: '',\n id: -1,\n})\nfunction rewriteFilename(e: any) {\n const { id, name } = e\n const suffix = getFileSuffix(name)\n renameForm.oldName = name\n renameForm.suffix = suffix\n renameForm.id = id\n showRenameDialog.value = true\n}\n\nfunction handleSaveNewName() {\n // 文件名校验,不能有系统不支持的字符\n if (filenamePattern.test(renameForm.newName)) {\n ElMessage.error(`文件名不能包含${filenamePattern.source}等字符`)\n filenamePattern.lastIndex = 0\n return\n }\n FileApi.updateFilename(\n renameForm.id,\n `${renameForm.newName}${renameForm.suffix}`,\n )\n .then(() => {\n ElMessage.success('修改成功')\n const file = files.find(v => v.id === renameForm.id)\n if (file) {\n file.name = `${renameForm.newName}${renameForm.suffix}`\n }\n })\n .catch(() => {\n ElMessage.error('修改失败')\n })\n .finally(() => {\n showRenameDialog.value = false\n })\n}\n\nfunction downloadOne(e: any) {\n if (limitDownload.value) {\n ElMessage.error('下载功能已被限制,请联系管理员扩容,或自行删除历史无用文件')\n return\n }\n const { id, name } = e\n FileApi.getOneFileUrl(id)\n .then((res) => {\n const { link } = res.data\n showLinkModel.value = true\n downloadUrl.value = link\n downLoadByUrl(link, name)\n // 刷新\n loadActions()\n // 刷新次数\n setTimeout(() => {\n loadFiles()\n }, 1000)\n })\n .catch(() => {\n ElMessage.error('文件已从服务器上移除')\n })\n}\nfunction handleDelete(e: any) {\n const idx = files.findIndex(v => v === e)\n ElMessageBox.confirm('确认删除此文件吗?', '数据无价,请谨慎操作')\n .then(() => {\n FileApi.deleteOneFile(e.id).then(() => {\n ElMessage.success('删除成功')\n files.splice(idx, 1)\n fileTotal.value -= 1\n if (files.length === 0 && pageCurrent.value > 1) {\n pageCurrent.value -= 1\n return\n }\n loadFiles()\n })\n })\n .catch(() => {\n ElMessage.info('取消删除')\n })\n}\n\nfunction handleSizeChange(v: number) {\n pageSize.value = v\n pageCurrent.value = 1\n}\n\nconst filterFileSize = computed(() =>\n formatSize(filterFileTotalSize.value),\n)\nconst fileListSize = computed(() =>\n formatSize(fileListTotalSize.value),\n)\nconst storageProgressPercentage = computed(() => Math.min(100, percentageValue.value))\nconst walletProgressPercentage = computed(() => Math.min(100, walletPercentageValue.value))\nfunction handlePageChange(idx: number) {\n pageCurrent.value = idx\n}\n\n// 刷新文件列表\n\nfunction handleRefresh() {\n ElMessage.success({\n message: '刷新成功',\n })\n loadFiles()\n}\nfunction handleDownloadTask() {\n if (fileTotal.value === 0) {\n ElMessage.warning('该任务中没有数据')\n return\n }\n if (batchDownStart.value) {\n ElMessage.warning('已经有批量下载任务正在进行,请稍后再试')\n return\n }\n batchDownStart.value = true\n FileApi.batchDownloadByQuery({\n taskKey: selectTask.value,\n zipName: selectTaskName.value,\n })\n .then(() => {\n loadActions()\n })\n .catch(() => {\n ElMessage.error('所选任务中的文件均已从服务器上移除')\n })\n .finally(() => {\n setTimeout(() => {\n batchDownStart.value = false\n }, 1000)\n })\n ElMessage.info('开始归档选中的文件,请赖心等待')\n}\n\nconst viewImageFilename = ref('')\n\nconst previewImages = computed(() => {\n return showFilterFiles.value.map(v => v.preview || '')\n})\n\nfunction handleSwitchImage(idx: number) {\n viewImageFilename.value = showFilterFiles.value[idx].name\n}\n\nfunction reloadFirstPage() {\n if (pageCurrent.value === 1) {\n loadFiles()\n return\n }\n pageCurrent.value = 1\n}\n\nwatch([selectCategory, selectTask, searchWord], reloadFirstPage)\nwatch([pageCurrent, pageSize], loadFiles)\nwatch(showImg, () => {\n window.localStorage.setItem('ep-show-images', `${showImg.value}`)\n})\n\nonMounted(() => {\n loadFiles()\n loadActions()\n $store.dispatch('category/getCategory')\n $store.dispatch('task/getTask')\n})\n\nconst isMobile = useIsMobile()\nfunction handleShowDetail() {\n ElMessageBox.confirm(priceText.value)\n}\n</script>\n\n<template>\n <div class=\"files\">\n <div v-if=\"isOpenPraise\" class=\"top-notice\">\n <div class=\"top-notice-main\">\n <strong>{{ siteConfig.filePagePraiseText }}<a\n :href=\"siteConfig.filePagePraiseLink\" target=\"_blank\"\n rel=\"noopener noreferrer\"\n >{{ siteConfig.filePagePraiseLinkText }}</a></strong>\n <strong>{{ siteConfig.filePageContactText }}<a\n :href=\"siteConfig.filePageContactLink\" target=\"_blank\"\n rel=\"noopener noreferrer\"\n >{{ siteConfig.filePageContactLinkText }}</a></strong>\n </div>\n <div v-if=\"showResourceLimitNotice\" class=\"top-notice-detail\">\n <span>{{ siteConfig.filePageLimitText }}</span>\n <span>{{ siteConfig.filePageSponsorText }}<a\n :href=\"siteConfig.filePageSponsorLink\" target=\"_blank\"\n rel=\"noopener noreferrer\"\n >{{ siteConfig.filePageSponsorLinkText }}</a>{{ siteConfig.filePageSponsorSuffix }}</span>\n <span>\n <a\n :href=\"siteConfig.filePageSelfHostLink\" target=\"_blank\"\n rel=\"noopener noreferrer\"\n >{{ siteConfig.filePageSelfHostLinkText }}</a>\n </span>\n </div>\n </div>\n <!-- 筛选框 -->\n <div class=\"panel header\">\n <div class=\"item\">\n <span class=\"label\">分类</span>\n <!-- TODO: multiple 多选待评估 -->\n <el-select v-model=\"selectCategory\" size=\"default\" filterable placeholder=\"请选择\">\n <el-option label=\"全部\" value=\"all\" />\n <el-option label=\"默认\" value=\"default\" />\n <el-option v-for=\"item in categories\" :key=\"item.k\" :label=\"item.name\" :value=\"item.k\" />\n <el-option label=\"无关联任务\" value=\"no-task\" />\n <el-option label=\"♻️回收站♻️\" value=\"trash\" />\n </el-select>\n </div>\n <div class=\"item\">\n <span class=\"label\">任务</span>\n <el-select v-model=\"selectTask\" size=\"default\" filterable placeholder=\"请选择\">\n <el-option label=\"全部\" value=\"all\" />\n <el-option v-for=\"item in filterTasks\" :key=\"item.key\" :label=\"item.name\" :value=\"item.key\" />\n </el-select>\n </div>\n <div class=\"item\">\n <el-button\n :loading=\"batchDownStart\" :disabled=\"selectTask === 'all'\" type=\"primary\" size=\"default\"\n :icon=\"Download\" @click=\"handleDownloadTask\"\n >\n 下载任务中的文件\n </el-button>\n </div>\n <div class=\"item search-item\">\n <el-input v-model=\"searchWord\" size=\"default\" clearable placeholder=\"请输入要检索的内容\" :prefix-icon=\"Search\" />\n <div class=\"search-tip\">\n 可搜索:文件名、任务名、提交人姓名、原文件名、提交信息\n </div>\n </div>\n </div>\n <div class=\"panel\">\n <div class=\"export-btns flex fac\">\n <el-dropdown trigger=\"click\" @command=\"handleDropdownClick\">\n <el-button type=\"primary\" size=\"default\">\n 批量操作<el-icon class=\"el-icon--right\">\n <ArrowDown />\n </el-icon>\n </el-button>\n <template #dropdown>\n <el-dropdown-menu>\n <el-dropdown-item :disabled=\"selectItem.length === 0\" command=\"download\">\n 下载\n </el-dropdown-item>\n <el-dropdown-item :disabled=\"selectItem.length === 0\" command=\"delete\">\n 删除\n </el-dropdown-item>\n <el-dropdown-item :disabled=\"selectItem.length === 0\" command=\"excel\">\n 导出记录\n </el-dropdown-item>\n </el-dropdown-menu>\n </template>\n </el-dropdown>\n <div v-show=\"false\">\n <!-- 迷惑的解决bug的手段 -->\n <el-dropdown trigger=\"click\" @command=\"handleDropdownClick\">\n <el-button type=\"primary\" :disabled=\"selectItem.length === 0\" size=\"default\">\n 批量操作\n <el-icon>\n <ArrowDown />\n </el-icon>\n </el-button>\n <template #dropdown>\n <el-dropdown-menu>\n <el-dropdown-item command=\"download\">\n 下载\n </el-dropdown-item>\n <el-dropdown-item command=\"delete\">\n 删除\n </el-dropdown-item>\n <el-dropdown-item command=\"excel\">\n 导出记录\n </el-dropdown-item>\n </el-dropdown-menu>\n </template>\n </el-dropdown>\n </div>\n <el-button size=\"default\" :icon=\"Refresh\" @click=\"handleRefresh\">\n 刷新\n </el-button>\n <el-button\n title=\"导出当前筛选条件下的所有数据\" type=\"success\" size=\"default\" :icon=\"DataAnalysis\"\n :disabled=\"fileTotal === 0\" @click=\"handleExportFilterFiles\"\n >\n 导出记录\n </el-button>\n <div class=\"control-item\">\n 显示图片\n <el-switch\n v-model=\"showImg\" inline-prompt active-color=\"#13ce66\" inactive-color=\"#ff4949\" active-text=\"是\"\n inactive-text=\"否\"\n />\n </div>\n <div class=\"control-item\">\n 展示原文件名\n <el-switch\n v-model=\"showOriginName\" inline-prompt active-color=\"#13ce66\" inactive-color=\"#ff4949\"\n active-text=\"是\" inactive-text=\"否\"\n />\n </div>\n <div class=\"control-item\">\n 显示提交人姓名\n <el-switch\n v-model=\"showPeople\" inline-prompt active-color=\"#13ce66\" inactive-color=\"#ff4949\" active-text=\"是\"\n inactive-text=\"否\"\n />\n </div>\n <div class=\"control-item\">\n ⏰ 查看下载历史\n <el-switch\n v-model=\"showHistoryPanel\" style=\"\n --el-switch-on-color: #13ce66;\n --el-switch-off-color: #ff4949;\n \"\n />\n </div>\n </div>\n </div>\n <div v-show=\"historyDownloadRecord.compressTask.length && !showHistoryPanel\" class=\"panel\">\n <Tip style=\"font-size: 16px\">\n 正在进行归档的任务\n {{ historyDownloadRecord.compressTask.length }}个\n </Tip>\n <Tip>详细归档记录点击右上角 “⏰查看下载历史”</Tip>\n <p\n v-for=\"(record, idx) in historyDownloadRecord.compressTask\" :key=\"record.id\" class=\"tc\"\n style=\"margin-top: 10px\"\n >\n {{ idx + 1 }}. {{ record.tip }}\n <span v-loading=\"true\" element-loading-text=\"...\" style=\"--el-loading-spinner-size: 20px\" />\n </p>\n </div>\n <div v-show=\"showHistoryPanel\" class=\"panel\">\n <Tip style=\"font-size: 16px\">\n ”❤️下面展示历史的下载记录与归档任务完成情况❤️“\n </Tip>\n <Tip>”再也不需要在页面停留等待归档完成“</Tip>\n <div>\n <el-table\n ref=\"multipleTable\" v-loading=\"isLoadingData\" element-loading-text=\"Loading...\" tooltip-effect=\"dark\"\n multiple-table stripe border :default-sort=\"{ prop: 'date', order: 'descending' }\"\n :max-height=\"666\" :data=\"historyDownloadRecord.actions\" style=\"width: 100%\"\n @selection-change=\"handleSelectionChange\"\n >\n <el-table-column prop=\"date\" label=\"触发时间\" width=\"200\">\n <template #default=\"scope\">\n {{\n formatDate(new Date(scope.row.date))\n }}\n </template>\n </el-table-column>\n <el-table-column prop=\"tip\" label=\"文件名\" />\n <el-table-column prop=\"type\" label=\"类型\">\n <template #default=\"scope\">\n <el-link v-if=\"scope.row.type === ActionType.Compress\" type=\"primary\">\n 归档下载\n </el-link>\n <el-link v-else type=\"default\">\n 普通下载\n </el-link>\n </template>\n </el-table-column>\n <el-table-column prop=\"size\" label=\"大小\" width=\"100\">\n <template #default=\"scope\">\n <span v-if=\"scope.row.status === DownloadStatus.ARCHIVE\"><el-link type=\"danger\">归档中...</el-link></span>\n <span v-else-if=\"scope.row.status !== DownloadStatus.FAIL\">{{\n !scope.row.size ? '未知大小' : formatSize(scope.row.size)\n }}</span>\n <span v-if=\"scope.row.status === DownloadStatus.FAIL\"><el-link type=\"danger\">归档失败</el-link></span>\n </template>\n </el-table-column>\n <el-table-column fixed=\"right\" label=\"操作\" width=\"140\">\n <template #default=\"scope\">\n <div v-if=\"scope.row.status === DownloadStatus.ARCHIVE\" v-loading=\"true\">\n 归档中...\n </div>\n <div v-if=\"scope.row.status === DownloadStatus.EXPIRED\">\n 链接已失效\n </div>\n <div v-if=\"scope.row.status === DownloadStatus.FAIL\">\n 联系开发者,提供错误信息:{{ scope.row.error }}\n </div>\n <div v-if=\"scope.row.status === DownloadStatus.SUCCESS\">\n <el-link type=\"primary\" @click=\"downLoadByUrl(scope.row.url)\">\n 下载\n </el-link>\n <el-link type=\"success\" style=\"margin-left: 10px\" @click=\"copyRes(scope.row.url)\">\n 链接\n </el-link>\n <el-link\n type=\"warning\" style=\"margin-left: 10px\" @click=\"() => {\n showLinkModel = true\n downloadUrl = scope.row.url\n }\n \"\n >\n 二维码\n </el-link>\n </div>\n </template>\n </el-table-column>\n </el-table>\n <div class=\"flex fc\">\n <el-pagination\n small :current-page=\"historyDownloadRecord.pageCurrent\"\n :page-count=\"historyDownloadRecord.pageCount\" :total=\"historyDownloadRecord.pageTotal\"\n layout=\"total, prev, pager, next\" @current-change=\"handleHistoryActionPageChange\"\n />\n </div>\n </div>\n </div>\n <!-- 主体内容 -->\n <div class=\"panel\">\n <div class=\"stats-dashboard\">\n <div class=\"stat-card\">\n <span class=\"stat-label\">全部文件</span>\n <strong>{{ fileListSize }}</strong>\n <small>当前账号提交文件总大小</small>\n </div>\n <div class=\"stat-card\">\n <span class=\"stat-label\">当前筛选</span>\n <strong>{{ filterFileSize }}</strong>\n <small>当前筛选条件下文件大小</small>\n </div>\n <div v-if=\"showStorageLimit\" class=\"stat-card\" :class=\"{ warning: limitSpace }\">\n <span class=\"stat-label\">存储空间</span>\n <strong>{{ formatSize(usage) }} / {{ formatSize(size) }}</strong>\n <el-progress :percentage=\"storageProgressPercentage\" :status=\"limitSpace ? 'exception' : undefined\" />\n <small>{{ percentageValue.toFixed(2) }}% 已使用</small>\n </div>\n <div v-if=\"showWalletLimit\" class=\"stat-card\" :class=\"{ warning: limitWallet }\">\n <span class=\"stat-label\">钱包消耗</span>\n <strong>{{ cost }} / {{ wallet }}¥</strong>\n <el-progress :percentage=\"walletProgressPercentage\" :status=\"limitWallet ? 'exception' : undefined\" />\n <small>统计时间:{{ formatDate(siteConfig.moneyStartDay, 'yyyy-MM-dd') }} - 至今</small>\n <button class=\"stat-link\" type=\"button\" @click=\"handleShowDetail\">\n 查看费用明细\n </button>\n </div>\n </div>\n <Tip v-if=\"limitDownload\">\n <h2 style=\"color:#f56c6c\">\n 空间超限将无法上传/下载文件,如需要使用,请联系管理员扩容,或自行删除无关文件\n </h2>\n </Tip>\n <el-table\n ref=\"multipleTable\" v-loading=\"isLoadingData\" element-loading-text=\"Loading...\" tooltip-effect=\"dark\"\n multiple-table stripe border :max-height=\"666\" :data=\"showFilterFiles\"\n style=\"width: 100%\" @selection-change=\"handleSelectionChange\"\n >\n <el-table-column type=\"selection\" width=\"55\" />\n <el-table-column prop=\"date\" label=\"提交时间\" width=\"160\">\n <template #default=\"scope\">\n {{\n formatDate(new Date(scope.row.date))\n }}\n </template>\n </el-table-column>\n <el-table-column prop=\"task_name\" label=\"任务\" width=\"150\" />\n <el-table-column prop=\"name\" label=\"文件名\" width=\"200\" />\n <template v-if=\"showOriginName\">\n <el-table-column prop=\"origin_name\" label=\"原文件名\" width=\"200\">\n <template #default=\"scope\">\n {{ scope.row.origin_name || '-' }}\n </template>\n </el-table-column>\n </template>\n <el-table-column prop=\"size\" label=\"大小\">\n <template #default=\"scope\">\n {{\n scope.row.size === 0 ? '未知大小' : formatSize(scope.row.size)\n }}\n </template>\n </el-table-column>\n <el-table-column prop=\"downloadCount\" width=\"90\" label=\"下载次数\" />\n <template v-if=\"showImg\">\n <el-table-column label=\"缩略图\" width=\"120\">\n <template #default=\"scope\">\n <el-image\n preview-teleported :preview-src-list=\"previewImages\" :initial-index=\"scope.$index\"\n lazy style=\"width: 100px; height: 100px\" :src=\"scope.row.cover\" fit=\"cover\"\n @switch=\"handleSwitchImage\" @click=\"handleSwitchImage(scope.$index)\"\n >\n <template #viewer>\n <div class=\"imageDes\">\n {{ viewImageFilename }}\n </div>\n </template>\n <template #placeholder>\n <div class=\"imageLoading\">\n Loading...\n </div>\n </template>\n <template #error>\n <div class=\"imageLoading\">\n 不支持\n <el-icon>\n <Picture />\n </el-icon>\n </div>\n </template>\n </el-image>\n </template>\n </el-table-column>\n </template>\n <template v-if=\"showPeople\">\n <el-table-column prop=\"people\" width=\"100\" label=\"限制名单\">\n <template #default=\"scope\">\n {{ scope.row.people || '-' }}\n </template>\n </el-table-column>\n </template>\n <el-table-column fixed=\"right\" label=\"操作\" width=\"140\">\n <template #default=\"scope\">\n <div class=\"text-btns\">\n <el-button type=\"primary\" text size=\"small\" @click=\"checkInfo(scope.row)\">\n 查看提交信息\n </el-button>\n <el-button type=\"primary\" text size=\"small\" @click=\"rewriteFilename(scope.row)\">\n 修改文件名\n </el-button>\n <el-button type=\"primary\" text size=\"small\" @click=\"downloadOne(scope.row)\">\n 下载\n </el-button>\n <el-button type=\"primary\" text size=\"small\" @click=\"handleDelete(scope.row)\">\n 删除\n </el-button>\n </div>\n </template>\n </el-table-column>\n </el-table>\n </div>\n <!-- 分页 -->\n <div class=\"panel flex fc\">\n <el-pagination\n :current-page=\"pageCurrent\" background :page-count=\"filePageCount\" :page-sizes=\"[6, 10, 50, 100]\"\n :page-size=\"pageSize\" :total=\"fileTotal\" layout=\"total, sizes, prev, pager, next, jumper\" @current-change=\"handlePageChange\"\n @size-change=\"handleSizeChange\"\n />\n </div>\n <!-- 信息弹窗 -->\n <el-dialog v-model=\"showInfoDialog\" :fullscreen=\"isMobile\" title=\"提交填写的信息\">\n <InfosForm :infos=\"infos\" :disabled=\"true\" />\n </el-dialog>\n <LinkDialog v-model:value=\"showLinkModel\" title=\"下载链接\" :link=\"downloadUrl\" />\n <FloatingContact\n v-if=\"siteConfig.filePageFloatingContactEnabled && siteConfig.filePageContactLink\"\n :href=\"siteConfig.filePageContactLink\"\n :text=\"siteConfig.filePageContactLinkText || '联系客服'\"\n />\n <el-dialog v-model=\"showRenameDialog\" :fullscreen=\"isMobile\" title=\"修改文件名\">\n <div>\n <el-form label-width=\"100px\" :model=\"renameForm\">\n <el-form-item label=\"原文件名\" prop=\"newName\">\n <el-input v-model=\"renameForm.oldName\" disabled />\n </el-form-item>\n <el-form-item label=\"新文件名\" prop=\"newName\">\n <el-input v-model=\"renameForm.newName\" placeholder=\"请输入新文件名\">\n <template #append>\n {{ renameForm.suffix }}\n </template>\n </el-input>\n </el-form-item>\n <el-form-item>\n <el-button type=\"success\" @click=\"handleSaveNewName\">\n 保存\n </el-button>\n <el-button @click=\"showRenameDialog = false\">\n 取消\n </el-button>\n </el-form-item>\n </el-form>\n </div>\n </el-dialog>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n.files {\n width: min(1440px, calc(100vw - 48px));\n max-width: 1440px;\n margin: 0 auto;\n padding-bottom: 2em;\n}\n\n.top-notice {\n padding: 14px 18px;\n border: 1px solid rgb(64 158 255 / 18%);\n border-radius: 14px;\n margin: 10px auto;\n background:\n radial-gradient(circle at 96% 12%, rgb(64 158 255 / 16%), transparent 24%),\n linear-gradient(135deg, #fff 0%, #f7faff 100%);\n box-shadow: 0 8px 22px rgb(31 41 55 / 6%);\n color: #334155;\n font-size: 14px;\n line-height: 1.7;\n\n a {\n color: #409eff;\n }\n}\n\n.top-notice-detail {\n display: flex;\n flex-wrap: wrap;\n gap: 4px 8px;\n margin-top: 4px;\n color: #f56c6c;\n font-weight: 700;\n}\n\n@media screen and (max-width: 700px) {\n .files {\n margin-top: 70px;\n }\n\n .text-btns {\n display: flex;\n flex-direction: column;\n\n :deep(.el-button) {\n margin-left: 0px;\n margin-bottom: 0px;\n }\n }\n\n .header {\n justify-content: center;\n }\n\n .export-btns {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n }\n}\n\n.panel {\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n z-index: 1;\n\n .label {\n font-size: 12px;\n margin-right: 10px;\n }\n}\n\n.header {\n display: flex;\n flex-wrap: wrap;\n\n .item {\n margin-right: 10px;\n margin-bottom: 10px;\n }\n}\n\n.el-button {\n margin-left: 10px;\n margin-bottom: 10px;\n}\n\n.control-item {\n margin-left: 10px;\n margin-bottom: 10px;\n font-size: 14px;\n}\n\n.search-item {\n min-width: 260px;\n}\n\n.search-tip {\n margin-top: 4px;\n color: #909399;\n font-size: 12px;\n line-height: 1.4;\n}\n\n.stats-dashboard {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 14px;\n margin-bottom: 16px;\n}\n\n.stat-card {\n display: flex;\n flex-direction: column;\n min-height: 120px;\n padding: 16px;\n border: 1px solid #edf0f5;\n border-radius: 14px;\n background:\n radial-gradient(circle at 90% 16%, rgb(64 158 255 / 14%), transparent 28%),\n linear-gradient(135deg, #fff 0%, #f7faff 100%);\n box-shadow: 0 8px 22px rgb(31 41 55 / 6%);\n box-sizing: border-box;\n\n &.warning {\n border-color: rgb(245 108 108 / 38%);\n background:\n radial-gradient(circle at 90% 16%, rgb(245 108 108 / 14%), transparent 28%),\n linear-gradient(135deg, #fff 0%, #fff8f8 100%);\n }\n\n strong {\n margin: 8px 0 6px;\n color: #1f2937;\n font-size: 22px;\n line-height: 1.25;\n }\n\n small {\n color: #8a94a6;\n line-height: 1.5;\n }\n\n :deep(.el-progress) {\n margin: 4px 0 2px;\n }\n}\n\n.stat-label {\n color: #409eff;\n font-size: 13px;\n font-weight: 700;\n}\n\n.stat-link {\n align-self: flex-start;\n padding: 0;\n border: 0;\n margin-top: 8px;\n background: transparent;\n color: #409eff;\n cursor: pointer;\n font-size: 13px;\n}\n\n.imageLoading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.imageDes {\n position: absolute;\n bottom: 80px;\n color: #fff;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.progress-list {\n margin-top: 10px;\n\n .progress-item {\n margin-bottom: 10px;\n\n .progress {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 6px;\n\n .el-progress--line {\n min-width: 200px;\n width: 260px;\n }\n\n .el-button {\n margin: 0 6px;\n }\n }\n\n .des {\n font-size: 12px;\n\n .filename {\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n word-break: keep-all;\n margin-right: 10px;\n }\n\n .mimeType {\n width: 60px;\n color: #409eff;\n }\n }\n\n text-align: center;\n }\n}\n</style>\n","import { computed, onMounted, reactive } from 'vue'\nimport { UserApi } from '@/apis'\nimport { formatSize } from '@/utils/stringUtil'\n\nexport function useSpaceUsage() {\n const usageData = reactive({\n size: 0,\n usage: 0,\n limitUpload: false,\n wallet: '0:00',\n cost: '0.00',\n limitSpace: false,\n limitWallet: false,\n price: {\n storage: '0:00',\n download: '0:00',\n },\n })\n const usage = computed(() => usageData.usage)\n const size = computed(() => usageData.size)\n const wallet = computed(() => usageData.wallet)\n const cost = computed(() => usageData.cost)\n const percentageValue = computed(() => usageData.size ? +(usageData.usage / usageData.size * 100).toFixed(2) : 0)\n const walletPercentageValue = computed(() => +usageData.wallet ? +(+usageData.cost / +usageData.wallet * 100).toFixed(2) : 0)\n const percentage = computed(() => `${percentageValue.value.toFixed(2)}%`)\n const walletPercentage = computed(() => `${walletPercentageValue.value.toFixed(2)}%`)\n const limitDownload = computed(() => usageData.limitUpload)\n const limitSpace = computed(() => usageData.limitSpace)\n const limitWallet = computed(() => usageData.limitWallet)\n const spaceUsageText = computed(() => {\n return `空间 ${percentage.value}: ${formatSize(usageData.usage)} / ${formatSize(usageData.size)}`\n })\n const moneyUsageText = computed(() => {\n return `钱包 ${walletPercentage.value}: ${usageData.cost} / ${usageData.wallet}¥`\n })\n const priceText = computed(() => {\n return `存储 ${usageData.price.storage}¥ + 下载 ${usageData.price.download}¥`\n })\n\n onMounted(() => {\n UserApi.usage().then((res) => {\n Object.assign(usageData, res.data)\n })\n })\n return {\n usage,\n size,\n wallet,\n cost,\n percentageValue,\n walletPercentageValue,\n percentage,\n walletPercentage,\n limitDownload,\n limitSpace,\n limitWallet,\n spaceUsageText,\n moneyUsageText,\n priceText,\n }\n}\n"],"names":["ActionServiceAPI","getDownloadActions","pageSize","pageIndex","extraIds","ajax","post","_sfc_main","defineComponent","name","_hoisted_1","viewBox","xmlns","_hoisted_3","createElementVNode","fill","d","download","_export_sfc","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","_hoisted_4","picture","value","siteConfig","useSiteConfig","isOpenPraise","computed","openPraise","showStorageLimit","limitSpace","showWalletLimit","limitWallet","showResourceLimitNotice","usage","size","wallet","cost","percentageValue","walletPercentageValue","limitDownload","priceText","usageData","reactive","limitUpload","price","storage","toFixed","percentage","walletPercentage","spaceUsageText","formatSize","moneyUsageText","onMounted","UserApi","then","res","Object","assign","data","useSpaceUsage","$store","useStore","$route","useRoute","showLinkModel","ref","downloadUrl","showImg","localStorage","getItem","showPeople","showOriginName","showHistoryPanel","historyDownloadRecord","actions","pageCount","pageCurrent","pageTotal","compressTask","loadActions","JSON","parse","map","v","id","sum","haveArchive","some","status","DownloadStatus","ARCHIVE","filter","type","ActionType","Compress","forEach","action","existIndex","findIndex","SUCCESS","url","downLoadByUrl","splice","push","FAIL","setItem","stringify","setTimeout","Math","ceil","handleHistoryActionPageChange","categories","state","category","categoryList","selectCategory","tasks","task","taskList","selectTask","filterTasks","t","selectTaskName","find","key","handleExportExcel","files","filename","length","ElMessage","warning","baseHeaders","headers","row","infosHeader","reduce","pre","info","i","includes","text","error","message","duration","console","warn","col","body","date","task_name","taskName","people","infoObj","rows","formatDate","Date","origin_name","unshift","_filename","resFileName","normalizeFileName","tableToExcel","success","watchEffect","query","isLoadingData","searchWord","fileTotal","filePageCount","fileListTotalSize","filterFileTotalSize","loadFilesId","loadFiles","currentLoadId","FileApi","getFilePage","categoryKey","taskKey","keyword","total","totalSize","filterSize","finally","async","handleExportFilterFiles","exportFiles","loadFilesForExport","multipleTable","showFilterFiles","selectItem","handleSelectionChange","e","batchDownStart","handleDropdownClick","ids","batchDownload","catch","ElMessageBox","confirm","batchDel","clearSelection","showInfoDialog","infos","showRenameDialog","renameForm","oldName","newName","suffix","handleSaveNewName","filenamePattern","test","source","lastIndex","updateFilename","file","handleSizeChange","filterFileSize","fileListSize","storageProgressPercentage","min","walletProgressPercentage","handlePageChange","idx","handleRefresh","handleDownloadTask","batchDownloadByQuery","zipName","viewImageFilename","previewImages","preview","handleSwitchImage","watch","window","dispatch","isMobile","useIsMobile","handleShowDetail","parseInfo","getFileSuffix","getOneFileUrl","link","deleteOneFile"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.message-list[data-v-1aac0ffc]{list-style:none;max-height:500px;overflow-y:scroll}.message-list li[data-v-1aac0ffc]{border-bottom:1px solid #ddd;padding:10px;cursor:pointer}.message-list li.read[data-v-1aac0ffc]{opacity:.5}.message-list li.read[data-v-1aac0ffc]:hover{opacity:.9}.message-list li[data-v-1aac0ffc]:last-child{border-bottom:none}.message-list li p.text[data-v-1aac0ffc]{font-size:16px;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.message-list li p.date[data-v-1aac0ffc]{font-size:14px;margin-top:4px}.empty[data-v-1aac0ffc]{text-align:center;padding:10px}.dialog-date[data-v-1aac0ffc]{font-size:14px;text-align:right;padding:10px;color:gray}.message-text{overflow-y:scroll;max-height:500px}.message-text ul,.message-text ol{list-style:none}.message-panel[data-v-9fb03fce]{margin-right:10px}.dashboard[data-v-5bc955ff]{background-color:#fafafa}.pc-nav[data-v-5bc955ff]{background-color:#fff;display:flex;padding:10px;justify-content:space-between;align-items:center}.pc-nav .exit[data-v-5bc955ff]{cursor:pointer;display:flex;align-items:center}.pc-nav .exit .exit-info[data-v-5bc955ff]{display:flex;justify-content:center;align-items:center}.pc-nav .exit .exit-info>span[data-v-5bc955ff]{margin-right:5px;display:block;max-width:70px}.pc-nav .nav[data-v-5bc955ff]{display:flex}.pc-nav .nav nav[data-v-5bc955ff]{display:flex;align-items:center}.pc-nav .nav nav .nav-item[data-v-5bc955ff]{font-size:1rem;color:#595959;padding:10px;cursor:pointer;display:flex;align-items:center;justify-content:center}.pc-nav .nav nav .nav-item.active[data-v-5bc955ff]{color:#409eff!important;font-weight:600}.pc-nav .nav .exit[data-v-5bc955ff]{color:#595959}.pc-nav .logo[data-v-5bc955ff]{width:180px;margin:0 10px}.pc-nav .logo img[data-v-5bc955ff]{height:40px}#navActive[data-v-5bc955ff]{display:none;opacity:0}#navMenu[data-v-5bc955ff]{display:none}.mobile-message-bell[data-v-5bc955ff]{display:none;position:fixed;right:0;top:0}@media screen and (max-width: 700px){#navActive[data-v-5bc955ff]{display:block;position:fixed;left:0;top:0}.mobile-message-bell[data-v-5bc955ff]{display:block}#navMenu[data-v-5bc955ff]{cursor:pointer;display:block;position:absolute;left:10px;top:5px;font-size:2rem}.pc-nav[data-v-5bc955ff]{position:fixed;left:0;right:0;top:0;z-index:6}.pc-nav .nav[data-v-5bc955ff]{flex-wrap:wrap;width:100%}.pc-nav .nav .logo[data-v-5bc955ff]{width:100%;text-align:center}.pc-nav #navActive+nav[data-v-5bc955ff]{display:none}.pc-nav #navActive:checked+nav[data-v-5bc955ff]{display:flex;flex-direction:column;width:100%;position:absolute;z-index:1;background:#fff;left:0;top:50px}.pc-nav #navActive:checked+nav+.mask[data-v-5bc955ff]{display:block;position:fixed;left:0;right:0;bottom:0;top:50px;background-color:rgba(0,0,0,.5)}.pc-nav .exit[data-v-5bc955ff]{position:absolute;right:10px;top:20px}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f as x,d as c,a as n,c as o,b as t,h as v,F as m,A as p,i as u,w as g,B as $,C as w,D as T,t as h,e as k,G as z,_ as N}from"./index-uNaj-154.js";const C=c({name:"Promotion"}),M={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},B=t("path",{fill:"currentColor",d:"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472 64 448zm256 512V657.024L512 768 320 960z"},null,-1),E=[B];function I(_,a,i,d,s,l){return n(),o("svg",M,E)}var O=x(C,[["render",I]]);const Q=c({name:"UserFilled"}),b={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},y=t("path",{fill:"currentColor",d:"M288 320a224 224 0 1 0 448 0 224 224 0 1 0-448 0zm544 608H160a32 32 0 0 1-32-32v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 0 1-32 32z"},null,-1),Y=[y];function D(_,a,i,d,s,l){return n(),o("svg",b,Y)}var F=x(Q,[["render",D]]);const V={class:"callme"},j={class:"panel"},A={class:"baseinfo"},L=["href"],q={class:"qq-wechat"},G={class:"title"},H={class:"content"},P=["src"],S={class:"links"},U=c({__name:"index",setup(_){const a=[{icon:F,text:"粥里有勺糖",href:"https://sugarat.top"},{icon:O,text:"engineerzjl@foxmail.com",href:"mailto:engineerzjl@foxmail.com"}],i=[{text:"微信",img:"https://img.cdn.sugarat.top/mdImg/MTYxOTE1NTk3MTkyNA==619155971925"},{text:"公众号",img:"https://img.cdn.sugarat.top/mdImg/MTYxOTE1NTYwNzQ5MQ==619155607491"},{text:"QQ",img:"https://img.cdn.sugarat.top/mdImg/MTYxOTE1NjQ5ODczOQ==619156498739"},{text:"交流群",img:"https://img.cdn.sugarat.top/mdImg/MTY0Nzc2MTE2MTE2NA==ep-group.png"}];return(d,s)=>{const l=z,f=v("router-link");return n(),o("div",V,[t("main",null,[t("div",j,[s[1]||(s[1]=t("h1",null,"联系作者",-1)),t("div",A,[(n(),o(m,null,p(a,(e,r)=>t("span",{key:r,class:"info-item"},[u(l,null,{default:g(()=>[(n(),$(w(e.icon)))]),_:2},1024),t("i",{class:T(e.icon)},null,2),t("a",{target:"_blank",href:e.href},h(e.text),9,L)])),64))]),s[2]||(s[2]=t("hr",null,null,-1)),t("div",q,[t("ul",null,[(n(),o(m,null,p(i,(e,r)=>t("li",{key:r},[t("div",G,h(e.text),1),t("div",H,[t("img",{src:e.img},null,8,P)])])),64))])]),s[3]||(s[3]=t("div",{class:"description"},[t("p",null,"如遇无法解决的账号/使用问题,欢迎小窗联系我")],-1)),t("div",S,[u(f,{to:"/"},{default:g(()=>s[0]||(s[0]=[k(" 回到首页 ")])),_:1})])])])])}}}),K=N(U,[["__scopeId","data-v-b3208120"]]);export{K as default};
|
|
2
|
+
//# sourceMappingURL=index-sRZE1X3H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-sRZE1X3H.js","sources":["../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/promotion.mjs","../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/user-filled.mjs","../../src/pages/callme/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: \"Promotion\"\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: \"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472 64 448zm256 512V657.024L512 768 320 960z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar promotion = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { promotion 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: \"UserFilled\"\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: \"M288 320a224 224 0 1 0 448 0 224 224 0 1 0-448 0zm544 608H160a32 32 0 0 1-32-32v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 0 1-32 32z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar userFilled = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { userFilled as default };\n","<script lang=\"ts\" setup>\nimport { Promotion, UserFilled } from '@element-plus/icons-vue'\n\nconst baseInfo = [\n {\n icon: UserFilled,\n text: '粥里有勺糖',\n href: 'https://sugarat.top',\n },\n {\n icon: Promotion,\n text: 'engineerzjl@foxmail.com',\n href: 'mailto:engineerzjl@foxmail.com',\n },\n]\n\nconst qrCOdes = [\n {\n text: '微信',\n img: 'https://img.cdn.sugarat.top/mdImg/MTYxOTE1NTk3MTkyNA==619155971925',\n },\n {\n text: '公众号',\n img: 'https://img.cdn.sugarat.top/mdImg/MTYxOTE1NTYwNzQ5MQ==619155607491',\n },\n {\n text: 'QQ',\n img: 'https://img.cdn.sugarat.top/mdImg/MTYxOTE1NjQ5ODczOQ==619156498739',\n },\n {\n text: '交流群',\n img: 'https://img.cdn.sugarat.top/mdImg/MTY0Nzc2MTE2MTE2NA==ep-group.png',\n },\n]\n</script>\n\n<template>\n <div class=\"callme\">\n <main>\n <div class=\"panel\">\n <h1>联系作者</h1>\n <!-- 基本信息 -->\n <div class=\"baseinfo\">\n <span v-for=\"(info, idx) in baseInfo\" :key=\"idx\" class=\"info-item\">\n <el-icon>\n <component :is=\"info.icon\" />\n </el-icon>\n <i :class=\"info.icon\" />\n <a target=\"_blank\" :href=\"info.href\">{{ info.text }}</a>\n </span>\n </div>\n <hr>\n <!-- 一堆二维码 -->\n <div class=\"qq-wechat\">\n <ul>\n <li v-for=\"(qrcode, idx) in qrCOdes\" :key=\"idx\">\n <div class=\"title\">\n {{ qrcode.text }}\n </div>\n <div class=\"content\">\n <img :src=\"qrcode.img\">\n </div>\n </li>\n </ul>\n </div>\n <div class=\"description\">\n <p>如遇无法解决的账号/使用问题,欢迎小窗联系我</p>\n </div>\n <div class=\"links\">\n <router-link to=\"/\">\n 回到首页\n </router-link>\n </div>\n </div>\n </main>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\nh1,\nh2,\nh3,\nh4 {\n font-weight: 500;\n}\n.callme {\n background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);\n min-height: 100vh;\n}\nmain {\n max-width: 860px;\n margin: 0 auto;\n padding: 20px;\n .panel {\n position: relative;\n margin: 0 auto 20px;\n padding: 16px 20px;\n width: 100%;\n overflow: hidden;\n border-radius: 0.25rem;\n box-shadow: #eee;\n box-sizing: border-box;\n transition: all 0.3s;\n background-color: #fff;\n }\n h1 {\n font-size: 1.6rem;\n font-weight: 500;\n margin-bottom: 10px;\n }\n .baseinfo {\n color: #7f7f7f;\n font-size: 1rem;\n display: flex;\n flex-wrap: wrap;\n a {\n color: #7f7f7f;\n font-size: 1rem;\n margin-left: 10px;\n }\n .info-item {\n margin-right: 20px;\n }\n margin-bottom: 10px;\n }\n hr {\n margin-bottom: 10px;\n }\n .qq-wechat ul {\n list-style: none;\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 10px;\n li {\n text-align: center;\n .title {\n font-weight: 600;\n }\n .content {\n padding: 0.5em;\n }\n img {\n width: 150px;\n }\n }\n }\n .description {\n color: #242424;\n font-size: 15px;\n margin-bottom: 10px;\n text-align: center;\n }\n .links {\n text-align: center;\n a {\n color: #409eff;\n }\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","promotion","_export_sfc","userFilled","baseInfo","UserFilled","Promotion","qrCOdes"],"mappings":"wJAGA,MAAMA,EAAYC,EAAgB,CAChC,KAAM,WACR,CAAC,EACKC,EAAa,CACjB,QAAS,gBACT,MAAO,4BACT,EACMC,EAA6BC,EAAmB,OAAQ,CAC5D,KAAM,eACN,EAAG,yGACL,EAAG,KAAM,EAAE,EACLC,EAAa,CACjBF,CACF,EACA,SAASG,EAAYC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOC,EAAW,EAAEC,EAAmB,MAAOZ,EAAYG,CAAU,CACtE,CACA,IAAIU,EAA4BC,EAAYhB,EAAW,CAAC,CAAC,SAAUM,CAAW,CAAC,CAAC,ECjBhF,MAAMN,EAAYC,EAAgB,CAChC,KAAM,YACR,CAAC,EACKC,EAAa,CACjB,QAAS,gBACT,MAAO,4BACT,EACMC,EAA6BC,EAAmB,OAAQ,CAC5D,KAAM,eACN,EAAG,2JACL,EAAG,KAAM,EAAE,EACLC,EAAa,CACjBF,CACF,EACA,SAASG,EAAYC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOC,EAAW,EAAEC,EAAmB,MAAOZ,EAAYG,CAAU,CACtE,CACA,IAAIY,EAA6BD,EAAYhB,EAAW,CAAC,CAAC,SAAUM,CAAW,CAAC,CAAC,kMCjBjF,MAAMY,EAAW,CACf,CACE,KAAMC,EACN,KAAM,QACN,KAAM,qBACR,EACA,CACE,KAAMC,EACN,KAAM,0BACN,KAAM,gCACR,CAAA,EAGIC,EAAU,CACd,CACE,KAAM,KACN,IAAK,oEACP,EACA,CACE,KAAM,MACN,IAAK,oEACP,EACA,CACE,KAAM,KACN,IAAK,oEACP,EACA,CACE,KAAM,MACN,IAAK,oEACP,CAAA","x_google_ignoreList":[0,1]}
|