@sugarat/easypicker2-client 2.7.2 → 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-B9140nBj.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-hCmX88pc.js → data-analysis-legacy-DjCCKm5W.js} +2 -2
- package/dist/assets/data-analysis-legacy-DjCCKm5W.js.map +1 -0
- package/dist/assets/{data-board-D3o_ZTM6.js → data-board-BGj6fORD.js} +2 -2
- package/dist/assets/data-board-BGj6fORD.js.map +1 -0
- package/dist/assets/{data-board-legacy-B3GeXOqc.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-BzK_8zqi.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-CDSRCQdO.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-B2R1FOoB.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-BA55HwKz.js → refresh-BnOQ8sKt.js} +2 -2
- package/dist/assets/refresh-BnOQ8sKt.js.map +1 -0
- package/dist/assets/{refresh-legacy-CpA05Fzr.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 -35
- package/README.md +0 -86
- package/dist/assets/data-analysis-B9140nBj.js.map +0 -1
- package/dist/assets/data-analysis-legacy-hCmX88pc.js.map +0 -1
- package/dist/assets/data-board-D3o_ZTM6.js.map +0 -1
- package/dist/assets/data-board-legacy-B3GeXOqc.js.map +0 -1
- package/dist/assets/el-date-picker-DLwRZtue.js +0 -2
- package/dist/assets/el-date-picker-DLwRZtue.js.map +0 -1
- package/dist/assets/el-date-picker-legacy-D8g_iKhG.js +0 -2
- package/dist/assets/el-date-picker-legacy-D8g_iKhG.js.map +0 -1
- package/dist/assets/el-dialog-Cu2jwelC.css +0 -1
- package/dist/assets/el-dialog-Dq3XmL6w.js +0 -2
- package/dist/assets/el-dialog-Dq3XmL6w.js.map +0 -1
- package/dist/assets/el-dialog-legacy-DCFOVWEQ.js +0 -2
- package/dist/assets/el-dialog-legacy-DCFOVWEQ.js.map +0 -1
- package/dist/assets/el-dropdown-item-C3aOY1Nr.js +0 -2
- package/dist/assets/el-dropdown-item-C3aOY1Nr.js.map +0 -1
- package/dist/assets/el-dropdown-item-legacy-QQu1PUxO.js +0 -2
- package/dist/assets/el-dropdown-item-legacy-QQu1PUxO.js.map +0 -1
- package/dist/assets/el-form-item-Cc9R0dZ1.css +0 -1
- package/dist/assets/el-form-item-CtSEmj9z.js +0 -2
- package/dist/assets/el-form-item-CtSEmj9z.js.map +0 -1
- package/dist/assets/el-form-item-legacy-BS5eT84Y.js +0 -2
- package/dist/assets/el-form-item-legacy-BS5eT84Y.js.map +0 -1
- package/dist/assets/el-loading-BzK_8zqi.js.map +0 -1
- package/dist/assets/el-loading-legacy-DWfn3F3x.js +0 -2
- package/dist/assets/el-loading-legacy-DWfn3F3x.js.map +0 -1
- package/dist/assets/el-pagination-Qx_lnumK.js +0 -2
- package/dist/assets/el-pagination-Qx_lnumK.js.map +0 -1
- package/dist/assets/el-pagination-legacy-DqLvzT2t.js +0 -2
- package/dist/assets/el-pagination-legacy-DqLvzT2t.js.map +0 -1
- package/dist/assets/el-progress-CeLYmjYA.js +0 -2
- package/dist/assets/el-progress-CeLYmjYA.js.map +0 -1
- package/dist/assets/el-progress-legacy-CwFO38du.js +0 -2
- package/dist/assets/el-progress-legacy-CwFO38du.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-HG63LP3Z.js +0 -2
- package/dist/assets/el-select-HG63LP3Z.js.map +0 -1
- package/dist/assets/el-select-legacy-fKvGMZFT.js +0 -2
- package/dist/assets/el-select-legacy-fKvGMZFT.js.map +0 -1
- package/dist/assets/el-switch-FjmuXBNe.js +0 -2
- package/dist/assets/el-switch-FjmuXBNe.js.map +0 -1
- package/dist/assets/el-switch-legacy-CU4cCeO5.js +0 -2
- package/dist/assets/el-switch-legacy-CU4cCeO5.js.map +0 -1
- package/dist/assets/el-tab-pane-CuYcnzTM.js +0 -2
- package/dist/assets/el-tab-pane-CuYcnzTM.js.map +0 -1
- package/dist/assets/el-tab-pane-legacy-CDSRCQdO.js.map +0 -1
- package/dist/assets/el-table-column-B2R1FOoB.js.map +0 -1
- package/dist/assets/el-table-column-legacy-DDZdwCAr.js +0 -24
- package/dist/assets/el-table-column-legacy-DDZdwCAr.js.map +0 -1
- package/dist/assets/index-0SN-qZs5.js +0 -2
- package/dist/assets/index-0SN-qZs5.js.map +0 -1
- package/dist/assets/index-4ToTyeX6.css +0 -1
- package/dist/assets/index-5sS3uHi0.css +0 -1
- package/dist/assets/index-B5tZv3FB.css +0 -1
- package/dist/assets/index-BMhqAx1_.js +0 -2
- package/dist/assets/index-BMhqAx1_.js.map +0 -1
- package/dist/assets/index-BghihfR3.css +0 -1
- package/dist/assets/index-BjPgOd_H.js +0 -2
- package/dist/assets/index-BjPgOd_H.js.map +0 -1
- package/dist/assets/index-BjdYG4YE.js +0 -2
- package/dist/assets/index-BjdYG4YE.js.map +0 -1
- package/dist/assets/index-BkLqrfrW.js +0 -2
- package/dist/assets/index-BkLqrfrW.js.map +0 -1
- package/dist/assets/index-BvTJrWND.js +0 -2
- package/dist/assets/index-BvTJrWND.js.map +0 -1
- package/dist/assets/index-BxLy8VN3.js +0 -2
- package/dist/assets/index-BxLy8VN3.js.map +0 -1
- package/dist/assets/index-C0ZXXBCX.js +0 -40
- package/dist/assets/index-C0ZXXBCX.js.map +0 -1
- package/dist/assets/index-CbkKWoQA.css +0 -1
- package/dist/assets/index-CeWnhlkq.css +0 -1
- package/dist/assets/index-ChQZKkse.css +0 -1
- package/dist/assets/index-Cs-E_cyt.js +0 -2
- package/dist/assets/index-Cs-E_cyt.js.map +0 -1
- package/dist/assets/index-CsvxKrFP.js +0 -2
- package/dist/assets/index-CsvxKrFP.js.map +0 -1
- package/dist/assets/index-D2p3cWtM.css +0 -1
- package/dist/assets/index-DABL-KOd.js +0 -2
- package/dist/assets/index-DABL-KOd.js.map +0 -1
- package/dist/assets/index-DFVlBjXp.js +0 -2
- package/dist/assets/index-DFVlBjXp.js.map +0 -1
- package/dist/assets/index-DIlzTatU.js +0 -2
- package/dist/assets/index-DIlzTatU.js.map +0 -1
- package/dist/assets/index-DREZLSQi.js +0 -2
- package/dist/assets/index-DREZLSQi.js.map +0 -1
- package/dist/assets/index-DaSb9EV4.css +0 -1
- package/dist/assets/index-DclP3Kg-.js +0 -2
- package/dist/assets/index-DclP3Kg-.js.map +0 -1
- package/dist/assets/index-DlyJUJ0j.js +0 -2
- package/dist/assets/index-DlyJUJ0j.js.map +0 -1
- package/dist/assets/index-DnxF29eG.css +0 -1
- package/dist/assets/index-GC0X-O3Y.js +0 -2
- package/dist/assets/index-GC0X-O3Y.js.map +0 -1
- package/dist/assets/index-HzWmB96f.js +0 -2
- package/dist/assets/index-HzWmB96f.js.map +0 -1
- package/dist/assets/index-I0Y2y6h5.css +0 -1
- package/dist/assets/index-U2z5KAu0.js +0 -2
- package/dist/assets/index-U2z5KAu0.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-legacy-B4IHsyj2.js +0 -42
- package/dist/assets/index-legacy-B4IHsyj2.js.map +0 -1
- package/dist/assets/index-legacy-BKxszgZW.js +0 -2
- package/dist/assets/index-legacy-BKxszgZW.js.map +0 -1
- package/dist/assets/index-legacy-BO3hAqA9.js +0 -2
- package/dist/assets/index-legacy-BO3hAqA9.js.map +0 -1
- package/dist/assets/index-legacy-BSXJnLod.js +0 -2
- package/dist/assets/index-legacy-BSXJnLod.js.map +0 -1
- package/dist/assets/index-legacy-BSv-V3Il.js +0 -2
- package/dist/assets/index-legacy-BSv-V3Il.js.map +0 -1
- package/dist/assets/index-legacy-CCqMKGqS.js +0 -2
- package/dist/assets/index-legacy-CCqMKGqS.js.map +0 -1
- package/dist/assets/index-legacy-CphqUnR0.js +0 -2
- package/dist/assets/index-legacy-CphqUnR0.js.map +0 -1
- package/dist/assets/index-legacy-D13WKbpb.js +0 -2
- package/dist/assets/index-legacy-D13WKbpb.js.map +0 -1
- package/dist/assets/index-legacy-D6IvG9Dt.js +0 -2
- package/dist/assets/index-legacy-D6IvG9Dt.js.map +0 -1
- package/dist/assets/index-legacy-DCezoU0z.js +0 -2
- package/dist/assets/index-legacy-DCezoU0z.js.map +0 -1
- package/dist/assets/index-legacy-DIwVyUHd.js +0 -2
- package/dist/assets/index-legacy-DIwVyUHd.js.map +0 -1
- package/dist/assets/index-legacy-DO2MADPO.js +0 -2
- package/dist/assets/index-legacy-DO2MADPO.js.map +0 -1
- package/dist/assets/index-legacy-DcFvM5kb.js +0 -2
- package/dist/assets/index-legacy-DcFvM5kb.js.map +0 -1
- package/dist/assets/index-legacy-Df_9F2Oo.js +0 -2
- package/dist/assets/index-legacy-Df_9F2Oo.js.map +0 -1
- package/dist/assets/index-legacy-Dhs-OKEx.js +0 -2
- package/dist/assets/index-legacy-Dhs-OKEx.js.map +0 -1
- package/dist/assets/index-legacy-DjWDlkzN.js +0 -2
- package/dist/assets/index-legacy-DjWDlkzN.js.map +0 -1
- package/dist/assets/index-legacy-DxQA53Qy.js +0 -2
- package/dist/assets/index-legacy-DxQA53Qy.js.map +0 -1
- package/dist/assets/index-legacy-GbLWntci.js +0 -2
- package/dist/assets/index-legacy-GbLWntci.js.map +0 -1
- package/dist/assets/index-legacy-I4qT4Thb.js +0 -2
- package/dist/assets/index-legacy-I4qT4Thb.js.map +0 -1
- package/dist/assets/index-legacy-quXi4jhF.js +0 -2
- package/dist/assets/index-legacy-quXi4jhF.js.map +0 -1
- package/dist/assets/index-tyMcidBi.js +0 -2
- package/dist/assets/index-tyMcidBi.js.map +0 -1
- package/dist/assets/index-ypHH_Z_A.css +0 -1
- package/dist/assets/isEqual-Cecwc716.js +0 -2
- package/dist/assets/isEqual-Cecwc716.js.map +0 -1
- package/dist/assets/isEqual-legacy-dqS7X02N.js +0 -2
- package/dist/assets/isEqual-legacy-dqS7X02N.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-BA55HwKz.js.map +0 -1
- package/dist/assets/refresh-legacy-CpA05Fzr.js.map +0 -1
- package/dist/assets/tip-CrU2GCmD.js +0 -2
- package/dist/assets/tip-CrU2GCmD.js.map +0 -1
- package/dist/assets/tip-legacy-B05oHh9-.js +0 -2
- package/dist/assets/tip-legacy-B05oHh9-.js.map +0 -1
- package/dist/assets/validator-Ca0QsRid.js +0 -2
- package/dist/assets/validator-Ca0QsRid.js.map +0 -1
- package/dist/assets/validator-legacy-D0GLFVMZ.js +0 -2
- package/dist/assets/validator-legacy-D0GLFVMZ.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 @@
|
|
|
1
|
+
{"version":3,"file":"index-CuGN8YoJ.js","sources":["../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/utils/submenu.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/utils/menu-item.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/utils/menu-bar.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/menu-collapse-transition.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/use-menu.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/use-menu-color.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/use-menu-css-var.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/sub-menu.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/menu.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/menu-item.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/menu-item2.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/menu-item-group.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/src/menu-item-group2.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/menu/index.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/setting.mjs","../../src/pages/dashboard/manage/index.vue"],"sourcesContent":["import '../../../../utils/index.mjs';\nimport '../../../../constants/index.mjs';\nimport { EVENT_CODE } from '../../../../constants/aria.mjs';\nimport { triggerEvent } from '../../../../utils/dom/aria.mjs';\n\nclass SubMenu {\n constructor(parent, domNode) {\n this.parent = parent;\n this.domNode = domNode;\n this.subIndex = 0;\n this.subIndex = 0;\n this.init();\n }\n init() {\n this.subMenuItems = this.domNode.querySelectorAll(\"li\");\n this.addListeners();\n }\n gotoSubIndex(idx) {\n if (idx === this.subMenuItems.length) {\n idx = 0;\n } else if (idx < 0) {\n idx = this.subMenuItems.length - 1;\n }\n ;\n this.subMenuItems[idx].focus();\n this.subIndex = idx;\n }\n addListeners() {\n const parentNode = this.parent.domNode;\n Array.prototype.forEach.call(this.subMenuItems, (el) => {\n el.addEventListener(\"keydown\", (event) => {\n let prevDef = false;\n switch (event.code) {\n case EVENT_CODE.down: {\n this.gotoSubIndex(this.subIndex + 1);\n prevDef = true;\n break;\n }\n case EVENT_CODE.up: {\n this.gotoSubIndex(this.subIndex - 1);\n prevDef = true;\n break;\n }\n case EVENT_CODE.tab: {\n triggerEvent(parentNode, \"mouseleave\");\n break;\n }\n case EVENT_CODE.enter:\n case EVENT_CODE.space: {\n prevDef = true;\n event.currentTarget.click();\n break;\n }\n }\n if (prevDef) {\n event.preventDefault();\n event.stopPropagation();\n }\n return false;\n });\n });\n }\n}\n\nexport { SubMenu as default };\n//# sourceMappingURL=submenu.mjs.map\n","import '../../../../utils/index.mjs';\nimport '../../../../constants/index.mjs';\nimport SubMenu from './submenu.mjs';\nimport { EVENT_CODE } from '../../../../constants/aria.mjs';\nimport { triggerEvent } from '../../../../utils/dom/aria.mjs';\n\nclass MenuItem {\n constructor(domNode, namespace) {\n this.domNode = domNode;\n this.submenu = null;\n this.submenu = null;\n this.init(namespace);\n }\n init(namespace) {\n this.domNode.setAttribute(\"tabindex\", \"0\");\n const menuChild = this.domNode.querySelector(`.${namespace}-menu`);\n if (menuChild) {\n this.submenu = new SubMenu(this, menuChild);\n }\n this.addListeners();\n }\n addListeners() {\n this.domNode.addEventListener(\"keydown\", (event) => {\n let prevDef = false;\n switch (event.code) {\n case EVENT_CODE.down: {\n triggerEvent(event.currentTarget, \"mouseenter\");\n this.submenu && this.submenu.gotoSubIndex(0);\n prevDef = true;\n break;\n }\n case EVENT_CODE.up: {\n triggerEvent(event.currentTarget, \"mouseenter\");\n this.submenu && this.submenu.gotoSubIndex(this.submenu.subMenuItems.length - 1);\n prevDef = true;\n break;\n }\n case EVENT_CODE.tab: {\n triggerEvent(event.currentTarget, \"mouseleave\");\n break;\n }\n case EVENT_CODE.enter:\n case EVENT_CODE.space: {\n prevDef = true;\n event.currentTarget.click();\n break;\n }\n }\n if (prevDef) {\n event.preventDefault();\n }\n });\n }\n}\n\nexport { MenuItem as default };\n//# sourceMappingURL=menu-item.mjs.map\n","import MenuItem from './menu-item.mjs';\n\nclass Menu {\n constructor(domNode, namespace) {\n this.domNode = domNode;\n this.init(namespace);\n }\n init(namespace) {\n const menuChildren = this.domNode.childNodes;\n Array.from(menuChildren).forEach((child) => {\n if (child.nodeType === 1) {\n new MenuItem(child, namespace);\n }\n });\n }\n}\n\nexport { Menu as default };\n//# sourceMappingURL=menu-bar.mjs.map\n","import { defineComponent, openBlock, createBlock, Transition, mergeProps, withCtx, renderSlot } from 'vue';\nimport '../../../hooks/index.mjs';\nimport '../../../utils/index.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { addClass, removeClass, hasClass } from '../../../utils/dom/style.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"ElMenuCollapseTransition\",\n setup() {\n const ns = useNamespace(\"menu\");\n const listeners = {\n onBeforeEnter: (el) => el.style.opacity = \"0.2\",\n onEnter(el, done) {\n addClass(el, `${ns.namespace.value}-opacity-transition`);\n el.style.opacity = \"1\";\n done();\n },\n onAfterEnter(el) {\n removeClass(el, `${ns.namespace.value}-opacity-transition`);\n el.style.opacity = \"\";\n },\n onBeforeLeave(el) {\n if (!el.dataset) {\n ;\n el.dataset = {};\n }\n if (hasClass(el, ns.m(\"collapse\"))) {\n removeClass(el, ns.m(\"collapse\"));\n el.dataset.oldOverflow = el.style.overflow;\n el.dataset.scrollWidth = el.clientWidth.toString();\n addClass(el, ns.m(\"collapse\"));\n } else {\n addClass(el, ns.m(\"collapse\"));\n el.dataset.oldOverflow = el.style.overflow;\n el.dataset.scrollWidth = el.clientWidth.toString();\n removeClass(el, ns.m(\"collapse\"));\n }\n el.style.width = `${el.scrollWidth}px`;\n el.style.overflow = \"hidden\";\n },\n onLeave(el) {\n addClass(el, \"horizontal-collapse-transition\");\n el.style.width = `${el.dataset.scrollWidth}px`;\n }\n };\n return {\n listeners\n };\n }\n});\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, mergeProps({ mode: \"out-in\" }, _ctx.listeners), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16);\n}\nvar ElMenuCollapseTransition = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue\"]]);\n\nexport { ElMenuCollapseTransition as default };\n//# sourceMappingURL=menu-collapse-transition.mjs.map\n","import { computed } from 'vue';\n\nfunction useMenu(instance, currentIndex) {\n const indexPath = computed(() => {\n let parent = instance.parent;\n const path = [currentIndex.value];\n while (parent.type.name !== \"ElMenu\") {\n if (parent.props.index) {\n path.unshift(parent.props.index);\n }\n parent = parent.parent;\n }\n return path;\n });\n const parentMenu = computed(() => {\n let parent = instance.parent;\n while (parent && ![\"ElMenu\", \"ElSubMenu\"].includes(parent.type.name)) {\n parent = parent.parent;\n }\n return parent;\n });\n return {\n parentMenu,\n indexPath\n };\n}\n\nexport { useMenu as default };\n//# sourceMappingURL=use-menu.mjs.map\n","import { computed } from 'vue';\nimport { TinyColor } from '@ctrl/tinycolor';\n\nfunction useMenuColor(props) {\n const menuBarColor = computed(() => {\n const color = props.backgroundColor;\n if (!color) {\n return \"\";\n } else {\n return new TinyColor(color).shade(20).toString();\n }\n });\n return menuBarColor;\n}\n\nexport { useMenuColor as default };\n//# sourceMappingURL=use-menu-color.mjs.map\n","import { computed } from 'vue';\nimport '../../../hooks/index.mjs';\nimport useMenuColor from './use-menu-color.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\n\nconst useMenuCssVar = (props, level) => {\n const ns = useNamespace(\"menu\");\n return computed(() => {\n return ns.cssVarBlock({\n \"text-color\": props.textColor || \"\",\n \"hover-text-color\": props.textColor || \"\",\n \"bg-color\": props.backgroundColor || \"\",\n \"hover-bg-color\": useMenuColor(props).value || \"\",\n \"active-color\": props.activeTextColor || \"\",\n level: `${level}`\n });\n });\n};\n\nexport { useMenuCssVar };\n//# sourceMappingURL=use-menu-css-var.mjs.map\n","import { defineComponent, getCurrentInstance, computed, inject, ref, reactive, watch, provide, onMounted, onBeforeUnmount, h, Fragment, withDirectives, vShow } from 'vue';\nimport { useTimeoutFn } from '@vueuse/core';\nimport _CollapseTransition from '../../collapse-transition/index.mjs';\nimport { ElTooltip } from '../../tooltip/index.mjs';\nimport '../../../utils/index.mjs';\nimport '../../../hooks/index.mjs';\nimport { ArrowDown, ArrowRight } from '@element-plus/icons-vue';\nimport { ElIcon } from '../../icon/index.mjs';\nimport useMenu from './use-menu.mjs';\nimport { useMenuCssVar } from './use-menu-css-var.mjs';\nimport { buildProps } from '../../../utils/vue/props/runtime.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { throwError } from '../../../utils/error.mjs';\n\nconst subMenuProps = buildProps({\n index: {\n type: String,\n required: true\n },\n showTimeout: {\n type: Number,\n default: 300\n },\n hideTimeout: {\n type: Number,\n default: 300\n },\n popperClass: String,\n disabled: Boolean,\n popperAppendToBody: {\n type: Boolean,\n default: void 0\n },\n popperOffset: {\n type: Number,\n default: 6\n }\n});\nconst COMPONENT_NAME = \"ElSubMenu\";\nvar SubMenu = defineComponent({\n name: COMPONENT_NAME,\n props: subMenuProps,\n setup(props, { slots, expose }) {\n const instance = getCurrentInstance();\n const { indexPath, parentMenu } = useMenu(instance, computed(() => props.index));\n const nsMenu = useNamespace(\"menu\");\n const nsSubMenu = useNamespace(\"sub-menu\");\n const rootMenu = inject(\"rootMenu\");\n if (!rootMenu)\n throwError(COMPONENT_NAME, \"can not inject root menu\");\n const subMenu = inject(`subMenu:${parentMenu.value.uid}`);\n if (!subMenu)\n throwError(COMPONENT_NAME, \"can not inject sub menu\");\n const items = ref({});\n const subMenus = ref({});\n let timeout;\n const mouseInChild = ref(false);\n const verticalTitleRef = ref();\n const vPopper = ref(null);\n const currentPlacement = computed(() => mode.value === \"horizontal\" && isFirstLevel.value ? \"bottom-start\" : \"right-start\");\n const subMenuTitleIcon = computed(() => {\n return mode.value === \"horizontal\" && isFirstLevel.value || mode.value === \"vertical\" && !rootMenu.props.collapse ? ArrowDown : ArrowRight;\n });\n const isFirstLevel = computed(() => {\n return subMenu.level === 0;\n });\n const appendToBody = computed(() => {\n return props.popperAppendToBody === void 0 ? isFirstLevel.value : Boolean(props.popperAppendToBody);\n });\n const menuTransitionName = computed(() => rootMenu.props.collapse ? `${nsMenu.namespace.value}-zoom-in-left` : `${nsMenu.namespace.value}-zoom-in-top`);\n const fallbackPlacements = computed(() => mode.value === \"horizontal\" && isFirstLevel.value ? [\n \"bottom-start\",\n \"bottom-end\",\n \"top-start\",\n \"top-end\",\n \"right-start\",\n \"left-start\"\n ] : [\n \"right-start\",\n \"left-start\",\n \"bottom-start\",\n \"bottom-end\",\n \"top-start\",\n \"top-end\"\n ]);\n const opened = computed(() => rootMenu.openedMenus.includes(props.index));\n const active = computed(() => {\n let isActive = false;\n Object.values(items.value).forEach((item2) => {\n if (item2.active) {\n isActive = true;\n }\n });\n Object.values(subMenus.value).forEach((subItem) => {\n if (subItem.active) {\n isActive = true;\n }\n });\n return isActive;\n });\n const backgroundColor = computed(() => rootMenu.props.backgroundColor || \"\");\n const activeTextColor = computed(() => rootMenu.props.activeTextColor || \"\");\n const textColor = computed(() => rootMenu.props.textColor || \"\");\n const mode = computed(() => rootMenu.props.mode);\n const item = reactive({\n index: props.index,\n indexPath,\n active\n });\n const titleStyle = computed(() => {\n if (mode.value !== \"horizontal\") {\n return {\n color: textColor.value\n };\n }\n return {\n borderBottomColor: active.value ? rootMenu.props.activeTextColor ? activeTextColor.value : \"\" : \"transparent\",\n color: active.value ? activeTextColor.value : textColor.value\n };\n });\n const doDestroy = () => {\n var _a, _b, _c;\n return (_c = (_b = (_a = vPopper.value) == null ? void 0 : _a.popperRef) == null ? void 0 : _b.popperInstanceRef) == null ? void 0 : _c.destroy();\n };\n const handleCollapseToggle = (value) => {\n if (!value) {\n doDestroy();\n }\n };\n const handleClick = () => {\n if (rootMenu.props.menuTrigger === \"hover\" && rootMenu.props.mode === \"horizontal\" || rootMenu.props.collapse && rootMenu.props.mode === \"vertical\" || props.disabled)\n return;\n rootMenu.handleSubMenuClick({\n index: props.index,\n indexPath: indexPath.value,\n active: active.value\n });\n };\n const handleMouseenter = (event, showTimeout = props.showTimeout) => {\n var _a;\n if (event.type === \"focus\") {\n return;\n }\n if (rootMenu.props.menuTrigger === \"click\" && rootMenu.props.mode === \"horizontal\" || !rootMenu.props.collapse && rootMenu.props.mode === \"vertical\" || props.disabled) {\n return;\n }\n subMenu.mouseInChild.value = true;\n timeout == null ? void 0 : timeout();\n ({ stop: timeout } = useTimeoutFn(() => {\n rootMenu.openMenu(props.index, indexPath.value);\n }, showTimeout));\n if (appendToBody.value) {\n (_a = parentMenu.value.vnode.el) == null ? void 0 : _a.dispatchEvent(new MouseEvent(\"mouseenter\"));\n }\n };\n const handleMouseleave = (deepDispatch = false) => {\n var _a, _b;\n if (rootMenu.props.menuTrigger === \"click\" && rootMenu.props.mode === \"horizontal\" || !rootMenu.props.collapse && rootMenu.props.mode === \"vertical\") {\n return;\n }\n timeout == null ? void 0 : timeout();\n subMenu.mouseInChild.value = false;\n ({ stop: timeout } = useTimeoutFn(() => !mouseInChild.value && rootMenu.closeMenu(props.index, indexPath.value), props.hideTimeout));\n if (appendToBody.value && deepDispatch) {\n if (((_a = instance.parent) == null ? void 0 : _a.type.name) === \"ElSubMenu\") {\n (_b = subMenu.handleMouseleave) == null ? void 0 : _b.call(subMenu, true);\n }\n }\n };\n watch(() => rootMenu.props.collapse, (value) => handleCollapseToggle(Boolean(value)));\n {\n const addSubMenu = (item2) => {\n subMenus.value[item2.index] = item2;\n };\n const removeSubMenu = (item2) => {\n delete subMenus.value[item2.index];\n };\n provide(`subMenu:${instance.uid}`, {\n addSubMenu,\n removeSubMenu,\n handleMouseleave,\n mouseInChild,\n level: subMenu.level + 1\n });\n }\n expose({\n opened\n });\n onMounted(() => {\n rootMenu.addSubMenu(item);\n subMenu.addSubMenu(item);\n });\n onBeforeUnmount(() => {\n subMenu.removeSubMenu(item);\n rootMenu.removeSubMenu(item);\n });\n return () => {\n var _a;\n const titleTag = [\n (_a = slots.title) == null ? void 0 : _a.call(slots),\n h(ElIcon, {\n class: nsSubMenu.e(\"icon-arrow\")\n }, { default: () => h(subMenuTitleIcon.value) })\n ];\n const ulStyle = useMenuCssVar(rootMenu.props, subMenu.level + 1);\n const child = rootMenu.isMenuPopup ? h(ElTooltip, {\n ref: vPopper,\n visible: opened.value,\n effect: \"light\",\n pure: true,\n offset: props.popperOffset,\n showArrow: false,\n persistent: true,\n popperClass: props.popperClass,\n placement: currentPlacement.value,\n teleported: appendToBody.value,\n fallbackPlacements: fallbackPlacements.value,\n transition: menuTransitionName.value,\n gpuAcceleration: false\n }, {\n content: () => {\n var _a2;\n return h(\"div\", {\n class: [\n nsMenu.m(mode.value),\n nsMenu.m(\"popup-container\"),\n props.popperClass\n ],\n onMouseenter: (evt) => handleMouseenter(evt, 100),\n onMouseleave: () => handleMouseleave(true),\n onFocus: (evt) => handleMouseenter(evt, 100)\n }, [\n h(\"ul\", {\n class: [\n nsMenu.b(),\n nsMenu.m(\"popup\"),\n nsMenu.m(`popup-${currentPlacement.value}`)\n ],\n style: ulStyle.value\n }, [(_a2 = slots.default) == null ? void 0 : _a2.call(slots)])\n ]);\n },\n default: () => h(\"div\", {\n class: nsSubMenu.e(\"title\"),\n style: [\n titleStyle.value,\n { backgroundColor: backgroundColor.value }\n ],\n onClick: handleClick\n }, titleTag)\n }) : h(Fragment, {}, [\n h(\"div\", {\n class: nsSubMenu.e(\"title\"),\n style: [\n titleStyle.value,\n { backgroundColor: backgroundColor.value }\n ],\n ref: verticalTitleRef,\n onClick: handleClick\n }, titleTag),\n h(_CollapseTransition, {}, {\n default: () => {\n var _a2;\n return withDirectives(h(\"ul\", {\n role: \"menu\",\n class: [nsMenu.b(), nsMenu.m(\"inline\")],\n style: ulStyle.value\n }, [(_a2 = slots.default) == null ? void 0 : _a2.call(slots)]), [[vShow, opened.value]]);\n }\n })\n ]);\n return h(\"li\", {\n class: [\n nsSubMenu.b(),\n nsSubMenu.is(\"active\", active.value),\n nsSubMenu.is(\"opened\", opened.value),\n nsSubMenu.is(\"disabled\", props.disabled)\n ],\n role: \"menuitem\",\n ariaHaspopup: true,\n ariaExpanded: opened.value,\n onMouseenter: handleMouseenter,\n onMouseleave: () => handleMouseleave(true),\n onFocus: handleMouseenter\n }, [child]);\n };\n }\n});\n\nexport { SubMenu as default, subMenuProps };\n//# sourceMappingURL=sub-menu.mjs.map\n","import { defineComponent, getCurrentInstance, ref, computed, nextTick, watch, watchEffect, provide, reactive, onMounted, h } from 'vue';\nimport { useResizeObserver } from '@vueuse/core';\nimport { ElIcon } from '../../icon/index.mjs';\nimport { More } from '@element-plus/icons-vue';\nimport '../../../utils/index.mjs';\nimport '../../../hooks/index.mjs';\nimport Menu$1 from './utils/menu-bar.mjs';\nimport ElMenuCollapseTransition from './menu-collapse-transition.mjs';\nimport SubMenu from './sub-menu.mjs';\nimport { useMenuCssVar } from './use-menu-css-var.mjs';\nimport { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';\nimport { mutable } from '../../../utils/typescript.mjs';\nimport { isString, isObject } from '@vue/shared';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\n\nconst menuProps = buildProps({\n mode: {\n type: String,\n values: [\"horizontal\", \"vertical\"],\n default: \"vertical\"\n },\n defaultActive: {\n type: String,\n default: \"\"\n },\n defaultOpeneds: {\n type: definePropType(Array),\n default: () => mutable([])\n },\n uniqueOpened: Boolean,\n router: Boolean,\n menuTrigger: {\n type: String,\n values: [\"hover\", \"click\"],\n default: \"hover\"\n },\n collapse: Boolean,\n backgroundColor: String,\n textColor: String,\n activeTextColor: String,\n collapseTransition: {\n type: Boolean,\n default: true\n },\n ellipsis: {\n type: Boolean,\n default: true\n }\n});\nconst checkIndexPath = (indexPath) => Array.isArray(indexPath) && indexPath.every((path) => isString(path));\nconst menuEmits = {\n close: (index, indexPath) => isString(index) && checkIndexPath(indexPath),\n open: (index, indexPath) => isString(index) && checkIndexPath(indexPath),\n select: (index, indexPath, item, routerResult) => isString(index) && checkIndexPath(indexPath) && isObject(item) && (routerResult === void 0 || routerResult instanceof Promise)\n};\nvar Menu = defineComponent({\n name: \"ElMenu\",\n props: menuProps,\n emits: menuEmits,\n setup(props, { emit, slots, expose }) {\n const instance = getCurrentInstance();\n const router = instance.appContext.config.globalProperties.$router;\n const menu = ref();\n const nsMenu = useNamespace(\"menu\");\n const nsSubMenu = useNamespace(\"sub-menu\");\n const openedMenus = ref(props.defaultOpeneds && !props.collapse ? props.defaultOpeneds.slice(0) : []);\n const activeIndex = ref(props.defaultActive);\n const items = ref({});\n const subMenus = ref({});\n const isMenuPopup = computed(() => {\n return props.mode === \"horizontal\" || props.mode === \"vertical\" && props.collapse;\n });\n const initMenu = () => {\n const activeItem = activeIndex.value && items.value[activeIndex.value];\n if (!activeItem || props.mode === \"horizontal\" || props.collapse)\n return;\n const indexPath = activeItem.indexPath;\n indexPath.forEach((index) => {\n const subMenu = subMenus.value[index];\n subMenu && openMenu(index, subMenu.indexPath);\n });\n };\n const openMenu = (index, indexPath) => {\n if (openedMenus.value.includes(index))\n return;\n if (props.uniqueOpened) {\n openedMenus.value = openedMenus.value.filter((index2) => indexPath.includes(index2));\n }\n openedMenus.value.push(index);\n emit(\"open\", index, indexPath);\n };\n const closeMenu = (index, indexPath) => {\n const i = openedMenus.value.indexOf(index);\n if (i !== -1) {\n openedMenus.value.splice(i, 1);\n }\n emit(\"close\", index, indexPath);\n };\n const handleSubMenuClick = ({\n index,\n indexPath\n }) => {\n const isOpened = openedMenus.value.includes(index);\n if (isOpened) {\n closeMenu(index, indexPath);\n } else {\n openMenu(index, indexPath);\n }\n };\n const handleMenuItemClick = (menuItem) => {\n if (props.mode === \"horizontal\" || props.collapse) {\n openedMenus.value = [];\n }\n const { index, indexPath } = menuItem;\n if (index === void 0 || indexPath === void 0)\n return;\n if (props.router && router) {\n const route = menuItem.route || index;\n const routerResult = router.push(route).then((res) => {\n if (!res)\n activeIndex.value = index;\n return res;\n });\n emit(\"select\", index, indexPath, { index, indexPath, route }, routerResult);\n } else {\n activeIndex.value = index;\n emit(\"select\", index, indexPath, { index, indexPath });\n }\n };\n const updateActiveIndex = (val) => {\n const itemsInData = items.value;\n const item = itemsInData[val] || activeIndex.value && itemsInData[activeIndex.value] || itemsInData[props.defaultActive];\n if (item) {\n activeIndex.value = item.index;\n } else {\n activeIndex.value = val;\n }\n };\n const handleResize = () => {\n nextTick(() => instance.proxy.$forceUpdate());\n };\n watch(() => props.defaultActive, (currentActive) => {\n if (!items.value[currentActive]) {\n activeIndex.value = \"\";\n }\n updateActiveIndex(currentActive);\n });\n watch(() => props.collapse, (value) => {\n if (value)\n openedMenus.value = [];\n });\n watch(items.value, initMenu);\n let resizeStopper;\n watchEffect(() => {\n if (props.mode === \"horizontal\" && props.ellipsis)\n resizeStopper = useResizeObserver(menu, handleResize).stop;\n else\n resizeStopper == null ? void 0 : resizeStopper();\n });\n {\n const addSubMenu = (item) => {\n subMenus.value[item.index] = item;\n };\n const removeSubMenu = (item) => {\n delete subMenus.value[item.index];\n };\n const addMenuItem = (item) => {\n items.value[item.index] = item;\n };\n const removeMenuItem = (item) => {\n delete items.value[item.index];\n };\n provide(\"rootMenu\", reactive({\n props,\n openedMenus,\n items,\n subMenus,\n activeIndex,\n isMenuPopup,\n addMenuItem,\n removeMenuItem,\n addSubMenu,\n removeSubMenu,\n openMenu,\n closeMenu,\n handleMenuItemClick,\n handleSubMenuClick\n }));\n provide(`subMenu:${instance.uid}`, {\n addSubMenu,\n removeSubMenu,\n mouseInChild: ref(false),\n level: 0\n });\n }\n onMounted(() => {\n if (props.mode === \"horizontal\") {\n new Menu$1(instance.vnode.el, nsMenu.namespace.value);\n }\n });\n {\n const open = (index) => {\n const { indexPath } = subMenus.value[index];\n indexPath.forEach((i) => openMenu(i, indexPath));\n };\n expose({\n open,\n close: closeMenu,\n handleResize\n });\n }\n const flattedChildren = (children) => {\n const vnodes = Array.isArray(children) ? children : [children];\n const result = [];\n vnodes.forEach((child) => {\n if (Array.isArray(child.children)) {\n result.push(...flattedChildren(child.children));\n } else {\n result.push(child);\n }\n });\n return result;\n };\n return () => {\n var _a, _b, _c, _d;\n let slot = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) != null ? _b : [];\n const vShowMore = [];\n if (props.mode === \"horizontal\" && menu.value) {\n const items2 = Array.from((_d = (_c = menu.value) == null ? void 0 : _c.childNodes) != null ? _d : []).filter((item) => item.nodeName !== \"#text\" || item.nodeValue);\n const originalSlot = flattedChildren(slot);\n const moreItemWidth = 64;\n const paddingLeft = Number.parseInt(getComputedStyle(menu.value).paddingLeft, 10);\n const paddingRight = Number.parseInt(getComputedStyle(menu.value).paddingRight, 10);\n const menuWidth = menu.value.clientWidth - paddingLeft - paddingRight;\n let calcWidth = 0;\n let sliceIndex = 0;\n items2.forEach((item, index) => {\n calcWidth += item.offsetWidth || 0;\n if (calcWidth <= menuWidth - moreItemWidth) {\n sliceIndex = index + 1;\n }\n });\n const slotDefault = originalSlot.slice(0, sliceIndex);\n const slotMore = originalSlot.slice(sliceIndex);\n if ((slotMore == null ? void 0 : slotMore.length) && props.ellipsis) {\n slot = slotDefault;\n vShowMore.push(h(SubMenu, {\n index: \"sub-menu-more\",\n class: nsSubMenu.e(\"hide-arrow\")\n }, {\n title: () => h(ElIcon, {\n class: nsSubMenu.e(\"icon-more\")\n }, { default: () => h(More) }),\n default: () => slotMore\n }));\n }\n }\n const ulStyle = useMenuCssVar(props, 0);\n const vMenu = h(\"ul\", {\n key: String(props.collapse),\n role: \"menubar\",\n ref: menu,\n style: ulStyle.value,\n class: {\n [nsMenu.b()]: true,\n [nsMenu.m(props.mode)]: true,\n [nsMenu.m(\"collapse\")]: props.collapse\n }\n }, [...slot, ...vShowMore]);\n if (props.collapseTransition && props.mode === \"vertical\") {\n return h(ElMenuCollapseTransition, () => vMenu);\n }\n return vMenu;\n };\n }\n});\n\nexport { Menu as default, menuEmits, menuProps };\n//# sourceMappingURL=menu.mjs.map\n","import '../../../utils/index.mjs';\nimport { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';\nimport { isString } from '@vue/shared';\n\nconst menuItemProps = buildProps({\n index: {\n type: definePropType([String, null]),\n default: null\n },\n route: {\n type: definePropType([String, Object])\n },\n disabled: Boolean\n});\nconst menuItemEmits = {\n click: (item) => isString(item.index) && Array.isArray(item.indexPath)\n};\n\nexport { menuItemEmits, menuItemProps };\n//# sourceMappingURL=menu-item.mjs.map\n","import { defineComponent, getCurrentInstance, inject, toRef, computed, reactive, onMounted, onBeforeUnmount, resolveComponent, openBlock, createElementBlock, normalizeClass, createBlock, withCtx, renderSlot, createElementVNode, Fragment } from 'vue';\nimport { ElTooltip } from '../../tooltip/index.mjs';\nimport '../../popper/index.mjs';\nimport '../../../utils/index.mjs';\nimport '../../../hooks/index.mjs';\nimport useMenu from './use-menu.mjs';\nimport { menuItemProps, menuItemEmits } from './menu-item.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { throwError } from '../../../utils/error.mjs';\nimport { Effect } from '../../popper/src/popper.mjs';\n\nconst COMPONENT_NAME = \"ElMenuItem\";\nconst _sfc_main = defineComponent({\n name: COMPONENT_NAME,\n components: {\n ElTooltip\n },\n props: menuItemProps,\n emits: menuItemEmits,\n setup(props, { emit }) {\n const instance = getCurrentInstance();\n const rootMenu = inject(\"rootMenu\");\n const nsMenu = useNamespace(\"menu\");\n const nsMenuItem = useNamespace(\"menu-item\");\n if (!rootMenu)\n throwError(COMPONENT_NAME, \"can not inject root menu\");\n const { parentMenu, indexPath } = useMenu(instance, toRef(props, \"index\"));\n const subMenu = inject(`subMenu:${parentMenu.value.uid}`);\n if (!subMenu)\n throwError(COMPONENT_NAME, \"can not inject sub menu\");\n const active = computed(() => props.index === rootMenu.activeIndex);\n const item = reactive({\n index: props.index,\n indexPath,\n active\n });\n const handleClick = () => {\n if (!props.disabled) {\n rootMenu.handleMenuItemClick({\n index: props.index,\n indexPath: indexPath.value,\n route: props.route\n });\n emit(\"click\", item);\n }\n };\n onMounted(() => {\n subMenu.addSubMenu(item);\n rootMenu.addMenuItem(item);\n });\n onBeforeUnmount(() => {\n subMenu.removeSubMenu(item);\n rootMenu.removeMenuItem(item);\n });\n return {\n Effect,\n parentMenu,\n rootMenu,\n active,\n nsMenu,\n nsMenuItem,\n handleClick\n };\n }\n});\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_tooltip = resolveComponent(\"el-tooltip\");\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass([\n _ctx.nsMenuItem.b(),\n _ctx.nsMenuItem.is(\"active\", _ctx.active),\n _ctx.nsMenuItem.is(\"disabled\", _ctx.disabled)\n ]),\n role: \"menuitem\",\n tabindex: \"-1\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.handleClick && _ctx.handleClick(...args))\n }, [\n _ctx.parentMenu.type.name === \"ElMenu\" && _ctx.rootMenu.props.collapse && _ctx.$slots.title ? (openBlock(), createBlock(_component_el_tooltip, {\n key: 0,\n effect: _ctx.Effect.DARK,\n placement: \"right\",\n \"fallback-placements\": [\"left\"],\n persistent: \"\"\n }, {\n content: withCtx(() => [\n renderSlot(_ctx.$slots, \"title\")\n ]),\n default: withCtx(() => [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.nsMenu.be(\"tooltip\", \"trigger\"))\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ]),\n _: 3\n }, 8, [\"effect\"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n renderSlot(_ctx.$slots, \"default\"),\n renderSlot(_ctx.$slots, \"title\")\n ], 64))\n ], 2);\n}\nvar MenuItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue\"]]);\n\nexport { MenuItem as default };\n//# sourceMappingURL=menu-item2.mjs.map\n","const menuItemGroupProps = {\n title: String\n};\n\nexport { menuItemGroupProps };\n//# sourceMappingURL=menu-item-group.mjs.map\n","import { defineComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, Fragment, createTextVNode, toDisplayString, renderSlot } from 'vue';\nimport '../../../hooks/index.mjs';\nimport { menuItemGroupProps } from './menu-item-group.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\n\nconst COMPONENT_NAME = \"ElMenuItemGroup\";\nconst _sfc_main = defineComponent({\n name: COMPONENT_NAME,\n props: menuItemGroupProps,\n setup() {\n const ns = useNamespace(\"menu-item-group\");\n return {\n ns\n };\n }\n});\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: normalizeClass(_ctx.ns.b())\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(_ctx.ns.e(\"title\"))\n }, [\n !_ctx.$slots.title ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n createTextVNode(toDisplayString(_ctx.title), 1)\n ], 64)) : renderSlot(_ctx.$slots, \"title\", { key: 1 })\n ], 2),\n createElementVNode(\"ul\", null, [\n renderSlot(_ctx.$slots, \"default\")\n ])\n ], 2);\n}\nvar MenuItemGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue\"]]);\n\nexport { MenuItemGroup as default };\n//# sourceMappingURL=menu-item-group2.mjs.map\n","import '../../utils/index.mjs';\nimport Menu from './src/menu.mjs';\nexport { menuEmits, menuProps } from './src/menu.mjs';\nimport MenuItem from './src/menu-item2.mjs';\nimport MenuItemGroup from './src/menu-item-group2.mjs';\nimport SubMenu from './src/sub-menu.mjs';\nexport { subMenuProps } from './src/sub-menu.mjs';\nexport { menuItemEmits, menuItemProps } from './src/menu-item.mjs';\nexport { menuItemGroupProps } from './src/menu-item-group.mjs';\nimport './src/types.mjs';\nimport { withInstall, withNoopInstall } from '../../utils/vue/install.mjs';\n\nconst ElMenu = withInstall(Menu, {\n MenuItem,\n MenuItemGroup,\n SubMenu\n});\nconst ElMenuItem = withNoopInstall(MenuItem);\nconst ElMenuItemGroup = withNoopInstall(MenuItemGroup);\nconst ElSubMenu = withNoopInstall(SubMenu);\n\nexport { ElMenu, ElMenuItem, ElMenuItemGroup, ElSubMenu, ElMenu as default };\n//# sourceMappingURL=index.mjs.map\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: \"Setting\"\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: \"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357.12 357.12 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a351.616 351.616 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357.12 357.12 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294.113 294.113 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293.12 293.12 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294.113 294.113 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288.282 288.282 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293.12 293.12 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a287.616 287.616 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384zm0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256z\"\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 setting = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { setting as default };\n","<script lang=\"ts\" setup>\nimport { DataAnalysis, DataBoard, Setting, User } from '@element-plus/icons-vue'\nimport { onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n\nconst defaultActive = ref('overview')\nconst isCollapse = ref(false)\nconst $router = useRouter()\nconst $route = useRoute()\nfunction handleSelect(path: string) {\n if ($route.path.endsWith(path)) {\n return\n }\n $router.replace({\n path,\n })\n}\nonMounted(() => {\n const value = $route.path.split('/').slice(-1)[0]\n defaultActive.value = value\n})\n</script>\n\n<template>\n <div class=\"monitor\">\n <div class=\"navs\">\n <el-menu\n :default-active=\"defaultActive\"\n class=\"el-menu-nav\"\n :collapse=\"isCollapse\"\n @select=\"handleSelect\"\n >\n <el-menu-item index=\"overview\">\n <el-icon>\n <DataAnalysis />\n </el-icon>\n <template #title>\n 概况\n </template>\n </el-menu-item>\n <el-menu-item index=\"user\">\n <el-icon>\n <User />\n </el-icon>\n <template #title>\n 用户\n </template>\n </el-menu-item>\n <el-menu-item index=\"wish\">\n <el-icon>\n <DataBoard />\n </el-icon>\n <template #title>\n 需求\n </template>\n </el-menu-item>\n <el-menu-item index=\"config\">\n <el-icon>\n <Setting />\n </el-icon>\n <template #title>\n 配置\n </template>\n </el-menu-item>\n </el-menu>\n </div>\n <div class=\"container\">\n <router-view />\n </div>\n </div>\n</template>\n\n<style scoped>\n.monitor {\n width: 96%;\n /* min-height: 100vh; */\n padding: 10px;\n overflow: hidden;\n display: flex;\n}\n.navs {\n min-width: 140px;\n}\n.container {\n padding-left: 20px;\n flex-grow: 1;\n width: calc(100% - 150px);\n}\n\n@media screen and (max-width: 700px) {\n .monitor {\n margin-top: 70px;\n padding: 10px 0 0;\n width: 100%;\n display: block;\n overflow: visible;\n }\n\n .navs {\n width: 100%;\n min-width: 0;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n box-sizing: border-box;\n }\n\n .el-radio-group {\n display: none;\n }\n\n .el-menu-nav {\n display: inline-flex;\n min-width: max-content;\n border-right: 0;\n border-bottom: solid 1px var(--el-menu-border-color);\n }\n\n .el-menu-nav :deep(.el-menu-item) {\n flex-shrink: 0;\n height: 44px;\n line-height: 44px;\n padding: 0 14px;\n }\n\n .container {\n padding-left: 0;\n margin-top: 12px;\n width: 100%;\n }\n}\n</style>\n"],"names":["SubMenu$1","parent","domNode","idx","parentNode","el","event","prevDef","EVENT_CODE","triggerEvent","MenuItem$1","namespace","menuChild","SubMenu","Menu$1","menuChildren","child","MenuItem","_sfc_main","defineComponent","ns","useNamespace","done","addClass","removeClass","hasClass","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createBlock","Transition","mergeProps","withCtx","renderSlot","ElMenuCollapseTransition","_export_sfc","useMenu","instance","currentIndex","indexPath","computed","path","useMenuColor","props","color","TinyColor","useMenuCssVar","level","subMenuProps","buildProps","COMPONENT_NAME","slots","expose","getCurrentInstance","parentMenu","nsMenu","nsSubMenu","rootMenu","inject","throwError","subMenu","items","ref","subMenus","timeout","mouseInChild","verticalTitleRef","vPopper","currentPlacement","mode","isFirstLevel","subMenuTitleIcon","ArrowDown","ArrowRight","appendToBody","menuTransitionName","fallbackPlacements","opened","active","isActive","item2","subItem","backgroundColor","activeTextColor","textColor","item","reactive","titleStyle","doDestroy","_a","_b","_c","handleCollapseToggle","value","handleClick","handleMouseenter","showTimeout","useTimeoutFn","handleMouseleave","deepDispatch","watch","addSubMenu","removeSubMenu","provide","onMounted","onBeforeUnmount","titleTag","h","ElIcon","ulStyle","ElTooltip","_a2","evt","Fragment","_CollapseTransition","withDirectives","vShow","menuProps","definePropType","mutable","checkIndexPath","isString","menuEmits","index","routerResult","isObject","Menu","emit","router","menu","openedMenus","activeIndex","isMenuPopup","initMenu","activeItem","openMenu","index2","closeMenu","i","handleSubMenuClick","handleMenuItemClick","menuItem","route","res","updateActiveIndex","val","itemsInData","handleResize","nextTick","currentActive","resizeStopper","watchEffect","useResizeObserver","flattedChildren","children","vnodes","result","_d","slot","vShowMore","items2","originalSlot","moreItemWidth","paddingLeft","paddingRight","menuWidth","calcWidth","sliceIndex","slotDefault","slotMore","More","vMenu","menuItemProps","menuItemEmits","nsMenuItem","toRef","Effect","_component_el_tooltip","resolveComponent","createElementBlock","normalizeClass","args","createElementVNode","menuItemGroupProps","createTextVNode","toDisplayString","MenuItemGroup","ElMenu","withInstall","ElMenuItem","withNoopInstall","_hoisted_1","_hoisted_2","_hoisted_3","setting","defaultActive","isCollapse","$router","useRouter","$route","useRoute","handleSelect"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.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}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@media screen and (max-width: 700px){.card-list[data-v-44329b7c]{margin-top:40px}.card[data-v-44329b7c]{min-width:300px}.log-filter[data-v-44329b7c]{justify-content:center}}.overview[data-v-44329b7c]{margin:0 auto}.card-list[data-v-44329b7c]{display:flex;margin-top:20px;justify-content:center;flex-wrap:wrap}.card[data-v-44329b7c]{margin:10px;cursor:pointer;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05);min-width:300px}.card .logo[data-v-44329b7c]{float:left;margin:4px 10px 0;-webkit-transition:all .38s ease-out;transition:all .38s ease-out;border-radius:6px;font-size:48px}.card .logo i[data-v-44329b7c]{padding:10px}.card .content[data-v-44329b7c]{float:right;font-weight:700;margin:10px 10px 10px 0}.card .content .title[data-v-44329b7c]{line-height:18px;color:rgba(0,0,0,.45);font-size:14px;text-align:right}.card .content .text[data-v-44329b7c]{font-size:16px;text-align:right}.card .content .supplement[data-v-44329b7c]{font-size:12px;font-weight:lighter;text-align:right}.panel[data-v-44329b7c]{max-width:1024px;padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.log-filter[data-v-44329b7c]{display:flex;flex-wrap:wrap}.log-filter .item[data-v-44329b7c]{margin-right:10px;margin-bottom:10px}.log-filter .item .label[data-v-44329b7c]{margin-right:10px;font-size:12px}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f as z,d as $,a as b,c as k,b as a,r as u,g as M,u as A,h as S,i as o,w as c,j as v,p as q,e as h,t as H,l as g,k as N,m as V,E as n,P as I,U as j,n as F,q as L,s as R,v as G,x as J,y as K,_ as O}from"./index-uNaj-154.js";const Q=$({name:"ChatDotSquare"}),W={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},X=a("path",{fill:"currentColor",d:"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z"},null,-1),Y=a("path",{fill:"currentColor",d:"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z"},null,-1),Z=[X,Y];function ee(C,l,i,r,p,x){return b(),k("svg",W,Z)}var te=z(Q,[["render",ee]]);const oe={class:"login"},ae={class:"inputArea"},ne={class:"tc"},le={class:"links"},se=$({__name:"index",setup(C){const l=u(""),i=u(""),r=u(""),p=u(""),x=M(),y=A();function D(){y.replace({name:"dashboard"})}function T(){return V.test(l.value)?J.test(r.value)?r.value!==p.value?(n.warning("两次输入的密码不一致"),!1):K.test(i.value)?!0:(n.warning("验证码不正确(4位 数字)"),!1):(n.warning("密码格式不正确(6-16位 支持字母/数字/下划线)"),!1):(n.warning("手机号格式不正确"),!1)}const _=u("获取验证码"),d=u(0);function w(){if(d.value===0){_.value="获取验证码";return}_.value="".concat(d.value,"s"),d.value-=1,setTimeout(w,1e3)}function B(){if(!V.test(l.value)){n.warning("手机号格式不正确");return}I.getCode(l.value).then(()=>{d.value=120,w(),n.success("获取成功,请注意查看手机短信")})}function E(){T()&&j.resetPwd(l.value,i.value,r.value).then(f=>{n.success("密码重置成功");const{token:e}=f.data;x.commit("user/setToken",e),D()}).catch(f=>{const{code:e,data:t}=f,m={1008:"该手机号未绑定任何账号",1003:"验证码不正确",1004:"密码格式不正确",1010:"账号已被封禁,有疑问请联系管理员",1009:"账号已被冻结,解冻时间".concat((t==null?void 0:t.openTime)&&F(new Date(t.openTime)))};n.error(m[e]||"重置失败,未知错误")})}return(f,e)=>{const t=L,m=R,P=G,U=S("router-link");return b(),k("div",oe,[o(N,null,{default:c(()=>[a("div",ae,[a("div",null,[o(t,{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=s=>l.value=s),maxlength:"11",placeholder:"手机号","prefix-icon":v(q),clearable:""},null,8,["modelValue","prefix-icon"])]),a("div",null,[o(t,{modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=s=>i.value=s),maxlength:"4",type:"number",placeholder:"请输入验证码","prefix-icon":v(te),clearable:""},{append:c(()=>[o(m,{disabled:d.value!==0,onClick:B},{default:c(()=>[h(H(_.value),1)]),_:1},8,["disabled"])]),_:1},8,["modelValue","prefix-icon"])]),a("div",null,[o(t,{modelValue:r.value,"onUpdate:modelValue":e[2]||(e[2]=s=>r.value=s),maxlength:"16",minlength:"6",type:"password",placeholder:"请输入新密码","prefix-icon":v(g),"show-password":"",clearable:""},null,8,["modelValue","prefix-icon"])]),a("div",null,[o(t,{modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=s=>p.value=s),maxlength:"16",minlength:"6",type:"password",placeholder:"请再次输入新密码","prefix-icon":v(g),"show-password":"",clearable:""},null,8,["modelValue","prefix-icon"])]),a("div",ne,[o(m,{type:"primary",class:"fw-w100",onClick:E},{default:c(()=>e[4]||(e[4]=[h(" 确认重置 ")])),_:1})]),o(P),a("div",le,[o(U,{to:"/login"},{default:c(()=>e[5]||(e[5]=[h(" 去登陆 ")])),_:1})])])]),_:1})])}}}),ue=O(se,[["__scopeId","data-v-8321af51"]]);export{ue as default};
|
|
2
|
+
//# sourceMappingURL=index-DRKBIvKP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DRKBIvKP.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/chat-dot-square.mjs","../../src/pages/reset/index.vue"],"sourcesContent":["import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"ChatDotSquare\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z\"\n}, null, -1);\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_4);\n}\nvar chatDotSquare = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { chatDotSquare as default };\n","<script lang=\"ts\" setup>\nimport loginPanel from '@components/loginPanel.vue'\nimport {\n ChatDotSquare,\n Lock,\n Phone,\n} from '@element-plus/icons-vue'\nimport { ElMessage } from 'element-plus'\nimport {\n ref,\n} from 'vue'\nimport { useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\nimport { PublicApi, UserApi } from '@/apis'\nimport {\n rMobilePhone,\n rPassword,\n rVerCode,\n} from '@/utils/regExp'\nimport { formatDate } from '@/utils/stringUtil'\n\nconst account = ref('')\nconst code = ref('')\nconst pwd1 = ref('')\nconst pwd2 = ref('')\nconst $store = useStore()\nconst $router = useRouter()\nfunction redirectDashBoard() {\n $router.replace({\n name: 'dashboard',\n })\n}\nfunction checkForm() {\n if (!rMobilePhone.test(account.value)) {\n ElMessage.warning('手机号格式不正确')\n return false\n }\n\n if (!rPassword.test(pwd1.value)) {\n ElMessage.warning('密码格式不正确(6-16位 支持字母/数字/下划线)')\n return false\n }\n if (pwd1.value !== pwd2.value) {\n ElMessage.warning('两次输入的密码不一致')\n return false\n }\n\n if (!rVerCode.test(code.value)) {\n ElMessage.warning('验证码不正确(4位 数字)')\n return false\n }\n return true\n}\nconst codeText = ref('获取验证码')\nconst time = ref(0)\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(account.value)) {\n ElMessage.warning('手机号格式不正确')\n return\n }\n PublicApi.getCode(account.value).then(() => {\n time.value = 120\n refreshCodeText()\n ElMessage.success('获取成功,请注意查看手机短信')\n })\n}\nfunction reset() {\n if (!checkForm()) {\n return\n }\n UserApi\n .resetPwd(account.value, code.value, pwd1.value)\n .then((res) => {\n ElMessage.success('密码重置成功')\n const { token } = res.data\n $store.commit('user/setToken', token)\n redirectDashBoard()\n })\n .catch((err) => {\n const { code: c, data } = err\n const options: any = {\n 1008: '该手机号未绑定任何账号',\n 1003: '验证码不正确',\n 1004: '密码格式不正确',\n 1010: '账号已被封禁,有疑问请联系管理员',\n 1009: `账号已被冻结,解冻时间${data?.openTime && formatDate(new Date(data.openTime))}`,\n }\n ElMessage.error(options[c] || '重置失败,未知错误')\n })\n}\n</script>\n\n<template>\n <div class=\"login\">\n <login-panel>\n <!-- 表单输入区域 -->\n <div class=\"inputArea\">\n <div>\n <el-input\n v-model=\"account\"\n maxlength=\"11\"\n placeholder=\"手机号\"\n :prefix-icon=\"Phone\"\n clearable\n />\n </div>\n <div>\n <el-input\n v-model=\"code\"\n maxlength=\"4\"\n type=\"number\"\n placeholder=\"请输入验证码\"\n :prefix-icon=\"ChatDotSquare\"\n clearable\n >\n <template #append>\n <!-- 获取验证码 -->\n <el-button :disabled=\"time !== 0\" @click=\"getCode\">\n {{ codeText }}\n </el-button>\n </template>\n </el-input>\n </div>\n <div>\n <el-input\n v-model=\"pwd1\"\n maxlength=\"16\"\n minlength=\"6\"\n type=\"password\"\n placeholder=\"请输入新密码\"\n :prefix-icon=\"Lock\"\n show-password\n clearable\n />\n </div>\n <div>\n <el-input\n v-model=\"pwd2\"\n maxlength=\"16\"\n minlength=\"6\"\n type=\"password\"\n placeholder=\"请再次输入新密码\"\n :prefix-icon=\"Lock\"\n show-password\n clearable\n />\n </div>\n <div class=\"tc\">\n <el-button type=\"primary\" class=\"fw-w100\" @click=\"reset\">\n 确认重置\n </el-button>\n </div>\n <el-divider />\n <div class=\"links\">\n <router-link to=\"/login\">\n 去登陆\n </router-link>\n </div>\n </div>\n </login-panel>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n.login {\n background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);\n min-height: 100vh;\n}\n\n.inputArea {\n // padding: 1rem;\n margin: 0 auto;\n max-width: 320px;\n div {\n margin-top: 10px;\n }\n}\n// 登录按钮下方链接\n.links {\n display: flex;\n justify-content: center;\n a {\n color: #409eff;\n margin-left: 10px;\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","chatDotSquare","_export_sfc","account","ref","code","pwd1","pwd2","$store","useStore","$router","useRouter","redirectDashBoard","checkForm","rMobilePhone","rPassword","ElMessage","rVerCode","codeText","time","refreshCodeText","getCode","PublicApi","reset","UserApi","res","token","err","c","data","options","formatDate"],"mappings":"qOAGA,MAAMA,EAAYC,EAAgB,CAChC,KAAM,eACR,CAAC,EACKC,EAAa,CACjB,QAAS,gBACT,MAAO,4BACT,EACMC,EAA6BC,EAAmB,OAAQ,CAC5D,KAAM,eACN,EAAG,mOACL,EAAG,KAAM,EAAE,EACLC,EAA6BD,EAAmB,OAAQ,CAC5D,KAAM,eACN,EAAG,4KACL,EAAG,KAAM,EAAE,EACLE,EAAa,CACjBH,EACAE,CACF,EACA,SAASE,GAAYC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOC,EAAW,EAAEC,EAAmB,MAAOb,EAAYI,CAAU,CACtE,CACA,IAAIU,GAAgCC,EAAYjB,EAAW,CAAC,CAAC,SAAUO,EAAW,CAAC,CAAC,mHCJ9E,MAAAW,EAAUC,EAAI,EAAE,EAChBC,EAAOD,EAAI,EAAE,EACbE,EAAOF,EAAI,EAAE,EACbG,EAAOH,EAAI,EAAE,EACbI,EAASC,IACTC,EAAUC,IAChB,SAASC,GAAoB,CAC3BF,EAAQ,QAAQ,CACd,KAAM,WAAA,CACP,CACH,CACA,SAASG,GAAY,CACnB,OAAKC,EAAa,KAAKX,EAAQ,KAAK,EAK/BY,EAAU,KAAKT,EAAK,KAAK,EAI1BA,EAAK,QAAUC,EAAK,OACtBS,EAAU,QAAQ,YAAY,EACvB,IAGJC,EAAS,KAAKZ,EAAK,KAAK,EAItB,IAHLW,EAAU,QAAQ,eAAe,EAC1B,KAVPA,EAAU,QAAQ,4BAA4B,EACvC,KANPA,EAAU,QAAQ,UAAU,EACrB,GAiBX,CACM,MAAAE,EAAWd,EAAI,OAAO,EACtBe,EAAOf,EAAI,CAAC,EAClB,SAASgB,GAAkB,CACrB,GAAAD,EAAK,QAAU,EAAG,CACpBD,EAAS,MAAQ,QACjB,MACF,CACSA,EAAA,MAAQ,GAAG,OAAAC,EAAK,MAAK,KAC9BA,EAAK,OAAS,EACd,WAAWC,EAAiB,GAAI,CAClC,CACA,SAASC,GAAU,CACjB,GAAI,CAACP,EAAa,KAAKX,EAAQ,KAAK,EAAG,CACrCa,EAAU,QAAQ,UAAU,EAC5B,MACF,CACAM,EAAU,QAAQnB,EAAQ,KAAK,EAAE,KAAK,IAAM,CAC1CgB,EAAK,MAAQ,IACGC,IAChBJ,EAAU,QAAQ,gBAAgB,CAAA,CACnC,CACH,CACA,SAASO,GAAQ,CACVV,KAIFW,EAAA,SAASrB,EAAQ,MAAOE,EAAK,MAAOC,EAAK,KAAK,EAC9C,KAAMmB,GAAQ,CACbT,EAAU,QAAQ,QAAQ,EACpB,KAAA,CAAE,MAAAU,CAAM,EAAID,EAAI,KACfjB,EAAA,OAAO,gBAAiBkB,CAAK,EAClBd,GAAA,CACnB,EACA,MAAOe,GAAQ,CACd,KAAM,CAAE,KAAMC,EAAG,KAAAC,CAAA,EAASF,EACpBG,EAAe,CACnB,KAAM,cACN,KAAM,SACN,KAAM,UACN,KAAM,mBACN,KAAM,cAAc,QAAAD,GAAA,YAAAA,EAAM,WAAYE,EAAW,IAAI,KAAKF,EAAK,QAAQ,CAAC,EAAC,EAE3Eb,EAAU,MAAMc,EAAQF,CAAC,GAAK,WAAW,CAAA,CAC1C,CACL","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a4 as St,f as tt,d as He,a as d,c as _,b as o,X as Y,M as p,a5 as N,o as lt,U as zt,a6 as $t,g as Vt,a1 as Et,r as g,a7 as Tt,Y as Le,Z as Pt,e as i,t as u,j as s,Q as C,i as t,w as a,F as De,A as Ie,B as V,a8 as j,a9 as Ne,n as H,aa as Me,ab as Ft,D as Ye,ac as O,E as f,ad as Lt,ae as Dt,s as It,q as Nt,G as Mt,af as Ut,a0 as At,ag as Ht,ah as Ot,ai as Bt,aj as Rt,_ as Wt}from"./index-uNaj-154.js";import{v as jt}from"./el-loading-DqRoOOxo.js";import{T as re,E as qt}from"./tip-CyB8omfw.js";import{I as Kt,E as Jt}from"./index-X0ZxbeZs.js";import{s as Qt,E as Xt}from"./el-pagination-DVClk9XJ.js";import"./el-tag-CR8VXqUN.js";import{E as Gt,a as Yt}from"./el-select-C5BnfITI.js";import"./el-scrollbar-B_rEcSsQ.js";import{E as Zt,a as el}from"./el-table-column-cVnV9Qdi.js";import{E as tl}from"./el-switch-BUjvki0a.js";import{a as Ze,E as ll,b as al,c as ol}from"./el-dropdown-item-C_iGHfk5.js";import{L as nl}from"./linkDialog-vYdu1-Ul.js";import{F as sl}from"./index-BxcfgZqH.js";import{A as et,D as E,f as Ue}from"./index-BrOLxzFM.js";import{r as il}from"./refresh-BnOQ8sKt.js";import{d as rl}from"./data-analysis-B8jQ_UrC.js";import{E as Ae}from"./index-BOFlLnYl.js";import"./index-DWi4klmy.js";import"./aria-nkjrUMQ-.js";function ul(m,c,M=[]){return St.post("/action/download/list",{pageSize:m,pageIndex:c,extraIds:M})}const dl={getDownloadActions:ul},pl=He({name:"Download"}),cl={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},fl=o("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),ml=[fl];function gl(m,c,M,q,K,J){return d(),_("svg",cl,ml)}var vl=tt(pl,[["render",gl]]);const wl=He({name:"Picture"}),_l={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},yl=o("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),hl=o("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),kl=[yl,hl];function xl(m,c,M,q,K,J){return d(),_("svg",_l,kl)}var bl=tt(wl,[["render",xl]]);function Cl(){const m=Y({size:0,usage:0,limitUpload:!1,wallet:"0:00",cost:"0.00",limitSpace:!1,limitWallet:!1,price:{storage:"0:00",download:"0:00"}}),c=p(()=>m.usage),M=p(()=>m.size),q=p(()=>m.wallet),K=p(()=>m.cost),J=p(()=>m.size?+(m.usage/m.size*100).toFixed(2):0),ue=p(()=>+m.wallet?+(+m.cost/+m.wallet*100).toFixed(2):0),de=p(()=>"".concat(J.value.toFixed(2),"%")),pe=p(()=>"".concat(ue.value.toFixed(2),"%")),Se=p(()=>m.limitUpload),ce=p(()=>m.limitSpace),ze=p(()=>m.limitWallet),Z=p(()=>"空间 ".concat(de.value,": ").concat(N(m.usage)," / ").concat(N(m.size))),fe=p(()=>"钱包 ".concat(pe.value,": ").concat(m.cost," / ").concat(m.wallet,"¥")),me=p(()=>"存储 ".concat(m.price.storage,"¥ + 下载 ").concat(m.price.download,"¥"));return lt(()=>{zt.usage().then($e=>{Object.assign(m,$e.data)})}),{usage:c,size:M,wallet:q,cost:K,percentageValue:J,walletPercentageValue:ue,percentage:de,walletPercentage:pe,limitDownload:Se,limitSpace:ce,limitWallet:ze,spaceUsageText:Z,moneyUsageText:fe,priceText:me}}const Sl={class:"files"},zl={key:0,class:"top-notice"},$l={class:"top-notice-main"},Vl=["href"],El=["href"],Tl={key:0,class:"top-notice-detail"},Pl=["href"],Fl=["href"],Ll={class:"panel header"},Dl={class:"item"},Il={class:"item"},Nl={class:"item"},Ml={class:"item search-item"},Ul={class:"panel"},Al={class:"export-btns flex fac"},Hl={class:"control-item"},Ol={class:"control-item"},Bl={class:"control-item"},Rl={class:"control-item"},Wl={class:"panel"},jl={"element-loading-text":"...",style:{"--el-loading-spinner-size":"20px"}},ql={class:"panel"},Kl={key:0},Jl={key:1},Ql={key:2},Xl={key:0},Gl={key:1},Yl={key:2},Zl={key:3},ea={class:"flex fc"},ta={class:"panel"},la={class:"stats-dashboard"},aa={class:"stat-card"},oa={class:"stat-card"},na={class:"imageDes"},sa={class:"imageLoading"},ia={class:"text-btns"},ra={class:"panel flex fc"},ua=He({__name:"index",setup(m){const{value:c}=$t(),M=p(()=>c.value.openPraise),q=p(()=>c.value.limitSpace),K=p(()=>c.value.limitWallet),J=p(()=>M.value&&(q.value||K.value)),{usage:ue,size:de,wallet:pe,cost:Se,percentageValue:ce,walletPercentageValue:ze,limitDownload:Z,limitSpace:fe,limitWallet:me,priceText:$e}=Cl(),ge=Vt(),Oe=Et(),ee=g(!1),ve=g(""),te=g(localStorage.getItem("ep-show-images")!=="false"),le=g(!0),ae=g(!1),we=g(!1),h=Y({actions:[],pageSize:3,pageCount:0,pageCurrent:1,pageTotal:0,compressTask:[]});function Q(){const n=JSON.parse(localStorage.getItem("ep_compress_task")||"[]");h.compressTask=n,dl.getDownloadActions(h.pageSize,h.pageCurrent,n.map(e=>e.id)).then(e=>{const{actions:r,sum:b}=e.data,v=r.some(w=>w.status===E.ARCHIVE);r.filter(w=>w.type===et.Compress).forEach(w=>{const z=n.findIndex(P=>P.id===w.id);w.status===E.SUCCESS&&z!==-1&&(ve.value=w.url,ee.value=!0,Me(w.url),n.splice(z,1)),w.status===E.ARCHIVE&&z===-1&&n.push(w),w.status===E.FAIL&&z!==-1&&n.splice(z,1)}),h.compressTask=n,localStorage.setItem("ep_compress_task",JSON.stringify(n)),v&&setTimeout(Q,1e3),h.pageTotal=b,h.actions=r,h.pageCount=Math.ceil(b/h.pageSize)})}function at(n){h.pageCurrent=n,Q()}const ot=p(()=>ge.state.category.categoryList),B=g("all"),_e=p(()=>ge.state.task.taskList),T=g("all"),Be=p(()=>B.value==="all"?_e.value:(T.value="all",_e.value.filter(n=>n.category===B.value))),Ve=p(()=>{const n=Be.value.find(e=>e.key===T.value);return n==null?void 0:n.name});Tt(()=>{_e.value.length&&_e.value.some(n=>n.key===Oe.query.task)&&(T.value="".concat(Oe.query.task))});function Re(n,e){if(n.length===0){f.warning("表格中没有可导出的内容");return}const r=["提交时间","任务","文件名","大小"];ae.value&&r.push("原文件名"),le.value&&r.push("姓名");const b=r.map(x=>({value:x,row:2})),v=n.reduce((x,U)=>{try{JSON.parse(U.info).forEach(F=>{x.includes(F.text)||x.push(F.text)})}catch(F){f.error({message:"数据异常".concat(U.name,",可联系平台管理员处理"),duration:5e3}),console.warn(U)}return x},[]);b.push({value:"提交信息",col:v.length});const w=n.map(x=>{const{date:U,task_name:F,name:y,size:D,people:xe}=x;try{const ie=JSON.parse(x.info).reduce((W,I)=>(W[I.text]="".concat(I.value),W),{}),be=v.map(W=>{var I;return(I=ie[W])!=null?I:"-"}),G=[H(new Date(U)),F,y,N(D)];return ae.value&&G.push(x.origin_name||"-"),le.value&&G.push(xe||"-"),G.push(...be),G}catch(ie){f.error({message:"数据异常".concat(x.name,",可联系平台管理员处理"),duration:5e3}),console.warn(x)}return[]}).filter(x=>!!x.length);w.unshift(v);const z=e||"数据导出_".concat(H(new Date,"yyyy年MM月dd日hh时mm分ss秒"),".xlsx"),P=Ve.value?"".concat(Bt(Ve.value),"_").concat(z):z;Rt(b,w,P),f.success("导出成功")}const ye=g(!1),L=Y([]),oe=g(""),he=g(6),$=g(1),ne=g(0),We=g(0),je=g(0),qe=g(0);let Ee=0;function R(){const n=++Ee;ye.value=!0,L.splice(0,L.length),O.getFilePage({pageIndex:$.value,pageSize:he.value,categoryKey:B.value,taskKey:T.value,keyword:oe.value}).then(e=>{if(n!==Ee)return;const{data:r}=e;L.push(...r.files),ne.value=r.total,We.value=r.pageCount,je.value=r.totalSize,qe.value=r.filterSize}).finally(()=>{n===Ee&&(ye.value=!1)})}async function nt(){const n=[];let e=1,r=1;do{const{data:b}=await O.getFilePage({pageIndex:e,pageSize:100,categoryKey:B.value,taskKey:T.value,keyword:oe.value});n.push(...b.files),r=b.pageCount,e+=1}while(e<=r);return n}async function st(){const n=await nt();Re(n,"筛选数据导出_".concat(H(new Date,"yyyy年MM月dd日hh时mm分ss秒"),".xlsx"))}const Te=g(),Pe=p(()=>L);function it(){Te.value.clearSelection()}const S=Y([]);function Ke(n){S.splice(0,S.length),S.push(...n)}const X=g(!1);function Je(n){const e=S.map(r=>r.id);switch(n){case"download":if(Z.value){f.error("下载功能已被限制,请联系管理员扩容,或自行删除历史无用文件");return}if(S.length===0){f.warning("没有选中需要下载的内容");return}if(X.value){f.warning("已经有批量下载任务正在进行,请稍后再试");return}O.batchDownload(e,"批量下载_".concat(H(new Date,"yyyy年MM月dd日hh时mm分ss秒"))).then(()=>{Q()}).catch(()=>{f.error("所选文件均已从服务器上移除"),X.value=!1}),f.info("开始归档选中的文件,请赖心等待");break;case"delete":if(S.length===0){f.warning("没有选中需要删除的内容");return}Ae.confirm("删除后无法恢复,是否删除","数据无价,请谨慎操作").then(()=>{O.batchDel(e).then(()=>{if(f.success("删除成功"),L.length===e.length&&$.value>1){$.value-=1;return}R()})}).catch(()=>{f.info("取消")});break;case"excel":if(S.length===0){f.warning("没有选中需要导出的内容");return}Re(S,"批量导出_".concat(H(new Date,"yyyy年MM月dd日hh时mm分ss秒"),".xlsx")),f.success("导出成功");break}it()}const Fe=g(!1),ke=Y([]);function rt(n){ke.splice(0,ke.length),ke.push(...Lt(n.info)),Fe.value=!0}const se=g(!1),k=Y({oldName:"",newName:"",suffix:"",id:-1});function ut(n){const{id:e,name:r}=n,b=Dt(r);k.oldName=r,k.suffix=b,k.id=e,se.value=!0}function dt(){if(Ue.test(k.newName)){f.error("文件名不能包含".concat(Ue.source,"等字符")),Ue.lastIndex=0;return}O.updateFilename(k.id,"".concat(k.newName).concat(k.suffix)).then(()=>{f.success("修改成功");const n=L.find(e=>e.id===k.id);n&&(n.name="".concat(k.newName).concat(k.suffix))}).catch(()=>{f.error("修改失败")}).finally(()=>{se.value=!1})}function pt(n){if(Z.value){f.error("下载功能已被限制,请联系管理员扩容,或自行删除历史无用文件");return}const{id:e,name:r}=n;O.getOneFileUrl(e).then(b=>{const{link:v}=b.data;ee.value=!0,ve.value=v,Me(v,r),Q(),setTimeout(()=>{R()},1e3)}).catch(()=>{f.error("文件已从服务器上移除")})}function ct(n){const e=L.findIndex(r=>r===n);Ae.confirm("确认删除此文件吗?","数据无价,请谨慎操作").then(()=>{O.deleteOneFile(n.id).then(()=>{if(f.success("删除成功"),L.splice(e,1),ne.value-=1,L.length===0&&$.value>1){$.value-=1;return}R()})}).catch(()=>{f.info("取消删除")})}function ft(n){he.value=n,$.value=1}const mt=p(()=>N(qe.value)),gt=p(()=>N(je.value)),vt=p(()=>Math.min(100,ce.value)),wt=p(()=>Math.min(100,ze.value));function _t(n){$.value=n}function yt(){f.success({message:"刷新成功"}),R()}function ht(){if(ne.value===0){f.warning("该任务中没有数据");return}if(X.value){f.warning("已经有批量下载任务正在进行,请稍后再试");return}X.value=!0,O.batchDownloadByQuery({taskKey:T.value,zipName:Ve.value}).then(()=>{Q()}).catch(()=>{f.error("所选任务中的文件均已从服务器上移除")}).finally(()=>{setTimeout(()=>{X.value=!1},1e3)}),f.info("开始归档选中的文件,请赖心等待")}const Qe=g(""),kt=p(()=>Pe.value.map(n=>n.preview||""));function Xe(n){Qe.value=Pe.value[n].name}function xt(){if($.value===1){R();return}$.value=1}Le([B,T,oe],xt),Le([$,he],R),Le(te,()=>{window.localStorage.setItem("ep-show-images","".concat(te.value))}),lt(()=>{R(),Q(),ge.dispatch("category/getCategory"),ge.dispatch("task/getTask")});const Ge=Pt();function bt(){Ae.confirm($e.value)}return(n,e)=>{const r=Gt,b=Yt,v=It,w=Nt,z=Mt,P=ll,x=al,U=ol,F=tl,y=Zt,D=Ut,xe=el,ie=Xt,be=Jt,G=qt,W=At,I=Ht,Ct=Ot,Ce=jt;return d(),_("div",Sl,[M.value?(d(),_("div",zl,[o("div",$l,[o("strong",null,[i(u(s(c).filePagePraiseText),1),o("a",{href:s(c).filePagePraiseLink,target:"_blank",rel:"noopener noreferrer"},u(s(c).filePagePraiseLinkText),9,Vl)]),o("strong",null,[i(u(s(c).filePageContactText),1),o("a",{href:s(c).filePageContactLink,target:"_blank",rel:"noopener noreferrer"},u(s(c).filePageContactLinkText),9,El)])]),J.value?(d(),_("div",Tl,[o("span",null,u(s(c).filePageLimitText),1),o("span",null,[i(u(s(c).filePageSponsorText),1),o("a",{href:s(c).filePageSponsorLink,target:"_blank",rel:"noopener noreferrer"},u(s(c).filePageSponsorLinkText),9,Pl),i(u(s(c).filePageSponsorSuffix),1)]),o("span",null,[o("a",{href:s(c).filePageSelfHostLink,target:"_blank",rel:"noopener noreferrer"},u(s(c).filePageSelfHostLinkText),9,Fl)])])):C("",!0)])):C("",!0),o("div",Ll,[o("div",Dl,[e[13]||(e[13]=o("span",{class:"label"},"分类",-1)),t(b,{modelValue:B.value,"onUpdate:modelValue":e[0]||(e[0]=l=>B.value=l),size:"default",filterable:"",placeholder:"请选择"},{default:a(()=>[t(r,{label:"全部",value:"all"}),t(r,{label:"默认",value:"default"}),(d(!0),_(De,null,Ie(ot.value,l=>(d(),V(r,{key:l.k,label:l.name,value:l.k},null,8,["label","value"]))),128)),t(r,{label:"无关联任务",value:"no-task"}),t(r,{label:"♻️回收站♻️",value:"trash"})]),_:1},8,["modelValue"])]),o("div",Il,[e[14]||(e[14]=o("span",{class:"label"},"任务",-1)),t(b,{modelValue:T.value,"onUpdate:modelValue":e[1]||(e[1]=l=>T.value=l),size:"default",filterable:"",placeholder:"请选择"},{default:a(()=>[t(r,{label:"全部",value:"all"}),(d(!0),_(De,null,Ie(Be.value,l=>(d(),V(r,{key:l.key,label:l.name,value:l.key},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),o("div",Nl,[t(v,{loading:X.value,disabled:T.value==="all",type:"primary",size:"default",icon:s(vl),onClick:ht},{default:a(()=>e[15]||(e[15]=[i(" 下载任务中的文件 ")])),_:1},8,["loading","disabled","icon"])]),o("div",Ml,[t(w,{modelValue:oe.value,"onUpdate:modelValue":e[2]||(e[2]=l=>oe.value=l),size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":s(Qt)},null,8,["modelValue","prefix-icon"]),e[16]||(e[16]=o("div",{class:"search-tip"}," 可搜索:文件名、任务名、提交人姓名、原文件名、提交信息 ",-1))])]),o("div",Ul,[o("div",Al,[t(U,{trigger:"click",onCommand:Je},{dropdown:a(()=>[t(x,null,{default:a(()=>[t(P,{disabled:S.length===0,command:"download"},{default:a(()=>e[18]||(e[18]=[i(" 下载 ")])),_:1},8,["disabled"]),t(P,{disabled:S.length===0,command:"delete"},{default:a(()=>e[19]||(e[19]=[i(" 删除 ")])),_:1},8,["disabled"]),t(P,{disabled:S.length===0,command:"excel"},{default:a(()=>e[20]||(e[20]=[i(" 导出记录 ")])),_:1},8,["disabled"])]),_:1})]),default:a(()=>[t(v,{type:"primary",size:"default"},{default:a(()=>[e[17]||(e[17]=i(" 批量操作")),t(z,{class:"el-icon--right"},{default:a(()=>[t(s(Ze))]),_:1})]),_:1})]),_:1}),j(o("div",null,[t(U,{trigger:"click",onCommand:Je},{dropdown:a(()=>[t(x,null,{default:a(()=>[t(P,{command:"download"},{default:a(()=>e[22]||(e[22]=[i(" 下载 ")])),_:1}),t(P,{command:"delete"},{default:a(()=>e[23]||(e[23]=[i(" 删除 ")])),_:1}),t(P,{command:"excel"},{default:a(()=>e[24]||(e[24]=[i(" 导出记录 ")])),_:1})]),_:1})]),default:a(()=>[t(v,{type:"primary",disabled:S.length===0,size:"default"},{default:a(()=>[e[21]||(e[21]=i(" 批量操作 ")),t(z,null,{default:a(()=>[t(s(Ze))]),_:1})]),_:1},8,["disabled"])]),_:1})],512),[[Ne,!1]]),t(v,{size:"default",icon:s(il),onClick:yt},{default:a(()=>e[25]||(e[25]=[i(" 刷新 ")])),_:1},8,["icon"]),t(v,{title:"导出当前筛选条件下的所有数据",type:"success",size:"default",icon:s(rl),disabled:ne.value===0,onClick:st},{default:a(()=>e[26]||(e[26]=[i(" 导出记录 ")])),_:1},8,["icon","disabled"]),o("div",Hl,[e[27]||(e[27]=i(" 显示图片 ")),t(F,{modelValue:te.value,"onUpdate:modelValue":e[3]||(e[3]=l=>te.value=l),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),o("div",Ol,[e[28]||(e[28]=i(" 展示原文件名 ")),t(F,{modelValue:ae.value,"onUpdate:modelValue":e[4]||(e[4]=l=>ae.value=l),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),o("div",Bl,[e[29]||(e[29]=i(" 显示提交人姓名 ")),t(F,{modelValue:le.value,"onUpdate:modelValue":e[5]||(e[5]=l=>le.value=l),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),o("div",Rl,[e[30]||(e[30]=i(" ⏰ 查看下载历史 ")),t(F,{modelValue:we.value,"onUpdate:modelValue":e[6]||(e[6]=l=>we.value=l),style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"}},null,8,["modelValue"])])])]),j(o("div",Wl,[t(re,{style:{"font-size":"16px"}},{default:a(()=>[i(" 正在进行归档的任务 "+u(h.compressTask.length)+"个 ",1)]),_:1}),t(re,null,{default:a(()=>e[31]||(e[31]=[i("详细归档记录点击右上角 “⏰查看下载历史”")])),_:1}),(d(!0),_(De,null,Ie(h.compressTask,(l,A)=>(d(),_("p",{key:l.id,class:"tc",style:{"margin-top":"10px"}},[i(u(A+1)+". "+u(l.tip)+" ",1),j(o("span",jl,null,512),[[Ce,!0]])]))),128))],512),[[Ne,h.compressTask.length&&!we.value]]),j(o("div",ql,[t(re,{style:{"font-size":"16px"}},{default:a(()=>e[32]||(e[32]=[i(" ”❤️下面展示历史的下载记录与归档任务完成情况❤️“ ")])),_:1}),t(re,null,{default:a(()=>e[33]||(e[33]=[i("”再也不需要在页面停留等待归档完成“")])),_:1}),o("div",null,[j((d(),V(xe,{ref_key:"multipleTable",ref:Te,"element-loading-text":"Loading...","tooltip-effect":"dark","multiple-table":"",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},"max-height":666,data:h.actions,style:{width:"100%"},onSelectionChange:Ke},{default:a(()=>[t(y,{prop:"date",label:"触发时间",width:"200"},{default:a(l=>[i(u(s(H)(new Date(l.row.date))),1)]),_:1}),t(y,{prop:"tip",label:"文件名"}),t(y,{prop:"type",label:"类型"},{default:a(l=>[l.row.type===s(et).Compress?(d(),V(D,{key:0,type:"primary"},{default:a(()=>e[34]||(e[34]=[i(" 归档下载 ")])),_:1})):(d(),V(D,{key:1,type:"default"},{default:a(()=>e[35]||(e[35]=[i(" 普通下载 ")])),_:1}))]),_:1}),t(y,{prop:"size",label:"大小",width:"100"},{default:a(l=>[l.row.status===s(E).ARCHIVE?(d(),_("span",Kl,[t(D,{type:"danger"},{default:a(()=>e[36]||(e[36]=[i("归档中...")])),_:1})])):l.row.status!==s(E).FAIL?(d(),_("span",Jl,u(l.row.size?s(N)(l.row.size):"未知大小"),1)):C("",!0),l.row.status===s(E).FAIL?(d(),_("span",Ql,[t(D,{type:"danger"},{default:a(()=>e[37]||(e[37]=[i("归档失败")])),_:1})])):C("",!0)]),_:1}),t(y,{fixed:"right",label:"操作",width:"140"},{default:a(l=>[l.row.status===s(E).ARCHIVE?j((d(),_("div",Xl,e[38]||(e[38]=[i(" 归档中... ")]))),[[Ce,!0]]):C("",!0),l.row.status===s(E).EXPIRED?(d(),_("div",Gl," 链接已失效 ")):C("",!0),l.row.status===s(E).FAIL?(d(),_("div",Yl," 联系开发者,提供错误信息:"+u(l.row.error),1)):C("",!0),l.row.status===s(E).SUCCESS?(d(),_("div",Zl,[t(D,{type:"primary",onClick:A=>s(Me)(l.row.url)},{default:a(()=>e[39]||(e[39]=[i(" 下载 ")])),_:2},1032,["onClick"]),t(D,{type:"success",style:{"margin-left":"10px"},onClick:A=>s(Ft)(l.row.url)},{default:a(()=>e[40]||(e[40]=[i(" 链接 ")])),_:2},1032,["onClick"]),t(D,{type:"warning",style:{"margin-left":"10px"},onClick:()=>{ee.value=!0,ve.value=l.row.url}},{default:a(()=>e[41]||(e[41]=[i(" 二维码 ")])),_:2},1032,["onClick"])])):C("",!0)]),_:1})]),_:1},8,["data"])),[[Ce,ye.value]]),o("div",ea,[t(ie,{small:"","current-page":h.pageCurrent,"page-count":h.pageCount,total:h.pageTotal,layout:"total, prev, pager, next",onCurrentChange:at},null,8,["current-page","page-count","total"])])])],512),[[Ne,we.value]]),o("div",ta,[o("div",la,[o("div",aa,[e[42]||(e[42]=o("span",{class:"stat-label"},"全部文件",-1)),o("strong",null,u(gt.value),1),e[43]||(e[43]=o("small",null,"当前账号提交文件总大小",-1))]),o("div",oa,[e[44]||(e[44]=o("span",{class:"stat-label"},"当前筛选",-1)),o("strong",null,u(mt.value),1),e[45]||(e[45]=o("small",null,"当前筛选条件下文件大小",-1))]),q.value?(d(),_("div",{key:0,class:Ye(["stat-card",{warning:s(fe)}])},[e[46]||(e[46]=o("span",{class:"stat-label"},"存储空间",-1)),o("strong",null,u(s(N)(s(ue)))+" / "+u(s(N)(s(de))),1),t(be,{percentage:vt.value,status:s(fe)?"exception":void 0},null,8,["percentage","status"]),o("small",null,u(s(ce).toFixed(2))+"% 已使用",1)],2)):C("",!0),K.value?(d(),_("div",{key:1,class:Ye(["stat-card",{warning:s(me)}])},[e[47]||(e[47]=o("span",{class:"stat-label"},"钱包消耗",-1)),o("strong",null,u(s(Se))+" / "+u(s(pe))+"¥",1),t(be,{percentage:wt.value,status:s(me)?"exception":void 0},null,8,["percentage","status"]),o("small",null,"统计时间:"+u(s(H)(s(c).moneyStartDay,"yyyy-MM-dd"))+" - 至今",1),o("button",{class:"stat-link",type:"button",onClick:bt}," 查看费用明细 ")],2)):C("",!0)]),s(Z)?(d(),V(re,{key:0},{default:a(()=>e[48]||(e[48]=[o("h2",{style:{color:"#f56c6c"}}," 空间超限将无法上传/下载文件,如需要使用,请联系管理员扩容,或自行删除无关文件 ",-1)])),_:1})):C("",!0),j((d(),V(xe,{ref_key:"multipleTable",ref:Te,"element-loading-text":"Loading...","tooltip-effect":"dark","multiple-table":"",stripe:"",border:"","max-height":666,data:Pe.value,style:{width:"100%"},onSelectionChange:Ke},{default:a(()=>[t(y,{type:"selection",width:"55"}),t(y,{prop:"date",label:"提交时间",width:"160"},{default:a(l=>[i(u(s(H)(new Date(l.row.date))),1)]),_:1}),t(y,{prop:"task_name",label:"任务",width:"150"}),t(y,{prop:"name",label:"文件名",width:"200"}),ae.value?(d(),V(y,{key:0,prop:"origin_name",label:"原文件名",width:"200"},{default:a(l=>[i(u(l.row.origin_name||"-"),1)]),_:1})):C("",!0),t(y,{prop:"size",label:"大小"},{default:a(l=>[i(u(l.row.size===0?"未知大小":s(N)(l.row.size)),1)]),_:1}),t(y,{prop:"downloadCount",width:"90",label:"下载次数"}),te.value?(d(),V(y,{key:1,label:"缩略图",width:"120"},{default:a(l=>[t(G,{"preview-teleported":"","preview-src-list":kt.value,"initial-index":l.$index,lazy:"",style:{width:"100px",height:"100px"},src:l.row.cover,fit:"cover",onSwitch:Xe,onClick:A=>Xe(l.$index)},{viewer:a(()=>[o("div",na,u(Qe.value),1)]),placeholder:a(()=>e[49]||(e[49]=[o("div",{class:"imageLoading"}," Loading... ",-1)])),error:a(()=>[o("div",sa,[e[50]||(e[50]=i(" 不支持 ")),t(z,null,{default:a(()=>[t(s(bl))]),_:1})])]),_:2},1032,["preview-src-list","initial-index","src","onClick"])]),_:1})):C("",!0),le.value?(d(),V(y,{key:2,prop:"people",width:"100",label:"限制名单"},{default:a(l=>[i(u(l.row.people||"-"),1)]),_:1})):C("",!0),t(y,{fixed:"right",label:"操作",width:"140"},{default:a(l=>[o("div",ia,[t(v,{type:"primary",text:"",size:"small",onClick:A=>rt(l.row)},{default:a(()=>e[51]||(e[51]=[i(" 查看提交信息 ")])),_:2},1032,["onClick"]),t(v,{type:"primary",text:"",size:"small",onClick:A=>ut(l.row)},{default:a(()=>e[52]||(e[52]=[i(" 修改文件名 ")])),_:2},1032,["onClick"]),t(v,{type:"primary",text:"",size:"small",onClick:A=>pt(l.row)},{default:a(()=>e[53]||(e[53]=[i(" 下载 ")])),_:2},1032,["onClick"]),t(v,{type:"primary",text:"",size:"small",onClick:A=>ct(l.row)},{default:a(()=>e[54]||(e[54]=[i(" 删除 ")])),_:2},1032,["onClick"])])]),_:1})]),_:1},8,["data"])),[[Ce,ye.value]])]),o("div",ra,[t(ie,{"current-page":$.value,background:"","page-count":We.value,"page-sizes":[6,10,50,100],"page-size":he.value,total:ne.value,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:_t,onSizeChange:ft},null,8,["current-page","page-count","page-size","total"])]),t(W,{modelValue:Fe.value,"onUpdate:modelValue":e[7]||(e[7]=l=>Fe.value=l),fullscreen:s(Ge),title:"提交填写的信息"},{default:a(()=>[t(Kt,{infos:ke,disabled:!0},null,8,["infos"])]),_:1},8,["modelValue","fullscreen"]),t(nl,{value:ee.value,"onUpdate:value":e[8]||(e[8]=l=>ee.value=l),title:"下载链接",link:ve.value},null,8,["value","link"]),s(c).filePageFloatingContactEnabled&&s(c).filePageContactLink?(d(),V(sl,{key:1,href:s(c).filePageContactLink,text:s(c).filePageContactLinkText||"联系客服"},null,8,["href","text"])):C("",!0),t(W,{modelValue:se.value,"onUpdate:modelValue":e[12]||(e[12]=l=>se.value=l),fullscreen:s(Ge),title:"修改文件名"},{default:a(()=>[o("div",null,[t(Ct,{"label-width":"100px",model:k},{default:a(()=>[t(I,{label:"原文件名",prop:"newName"},{default:a(()=>[t(w,{modelValue:k.oldName,"onUpdate:modelValue":e[9]||(e[9]=l=>k.oldName=l),disabled:""},null,8,["modelValue"])]),_:1}),t(I,{label:"新文件名",prop:"newName"},{default:a(()=>[t(w,{modelValue:k.newName,"onUpdate:modelValue":e[10]||(e[10]=l=>k.newName=l),placeholder:"请输入新文件名"},{append:a(()=>[i(u(k.suffix),1)]),_:1},8,["modelValue"])]),_:1}),t(I,null,{default:a(()=>[t(v,{type:"success",onClick:dt},{default:a(()=>e[55]||(e[55]=[i(" 保存 ")])),_:1}),t(v,{onClick:e[11]||(e[11]=l=>se.value=!1)},{default:a(()=>e[56]||(e[56]=[i(" 取消 ")])),_:1})]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue","fullscreen"])])}}}),Ea=Wt(ua,[["__scopeId","data-v-4101c199"]]);export{Ea as default};
|
|
2
|
+
//# sourceMappingURL=index-DTRiT4Ia.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DTRiT4Ia.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/composables/user.ts","../../src/pages/dashboard/files/index.vue"],"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","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","<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"],"names":["getDownloadActions","pageSize","pageIndex","extraIds","ajax","ActionServiceAPI","_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","download","_export_sfc","_hoisted_4","picture","useSpaceUsage","usageData","reactive","usage","computed","size","wallet","cost","percentageValue","walletPercentageValue","percentage","walletPercentage","limitDownload","limitSpace","limitWallet","spaceUsageText","formatSize","moneyUsageText","priceText","onMounted","UserApi","res","siteConfig","useSiteConfig","isOpenPraise","showStorageLimit","showWalletLimit","showResourceLimitNotice","$store","useStore","$route","useRoute","showLinkModel","ref","downloadUrl","showImg","showPeople","showOriginName","showHistoryPanel","historyDownloadRecord","loadActions","compressTask","v","actions","sum","haveArchive","DownloadStatus","ActionType","action","existIndex","downLoadByUrl","handleHistoryActionPageChange","categories","selectCategory","tasks","selectTask","filterTasks","t","selectTaskName","watchEffect","handleExportExcel","files","filename","ElMessage","baseHeaders","headers","infosHeader","pre","value","i","e","body","date","taskName","name","people","infoObj","info","_a","rows","formatDate","_filename","resFileName","normalizeFileName","tableToExcel","isLoadingData","searchWord","pageCurrent","fileTotal","filePageCount","fileListTotalSize","filterFileTotalSize","loadFilesId","loadFiles","currentLoadId","FileApi","data","loadFilesForExport","exportFiles","pageCount","handleExportFilterFiles","multipleTable","showFilterFiles","clearSelection","selectItem","handleSelectionChange","batchDownStart","handleDropdownClick","ids","ElMessageBox","showInfoDialog","infos","checkInfo","parseInfo","showRenameDialog","renameForm","rewriteFilename","id","suffix","getFileSuffix","handleSaveNewName","filenamePattern","file","downloadOne","link","handleDelete","idx","handleSizeChange","filterFileSize","fileListSize","storageProgressPercentage","walletProgressPercentage","handlePageChange","handleRefresh","handleDownloadTask","viewImageFilename","previewImages","handleSwitchImage","reloadFirstPage","watch","isMobile","useIsMobile","handleShowDetail"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f as I,d as k,a as i,c,b as o,Z as ue,r,X as N,bh as ce,M as R,Y as U,o as de,h as pe,a8 as F,F as G,A as K,i as a,w as n,B,C as ve,t as V,j as y,e as h,n as A,bj as L,E as W,ab as me,aj as _e,G as fe,q as he,s as ge,a0 as $e,_ as we}from"./index-uNaj-154.js";import{v as ye}from"./el-loading-DqRoOOxo.js";import{s as be,E as xe}from"./el-pagination-DVClk9XJ.js";import"./el-tag-CR8VXqUN.js";import{E as Ce,a as ze}from"./el-select-C5BnfITI.js";import"./el-scrollbar-B_rEcSsQ.js";import{E as Ve,a as ke}from"./el-table-column-cVnV9Qdi.js";import{d as Ee}from"./other-BiIe9Z0L.js";import{d as De}from"./data-board-BGj6fORD.js";import{r as Me}from"./refresh-BnOQ8sKt.js";import{d as He}from"./data-analysis-B8jQ_UrC.js";import"./index-DWi4klmy.js";const Se=k({name:"Coin"}),Be={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Le=o("path",{fill:"currentColor",d:"m161.92 580.736 29.888 58.88C171.328 659.776 160 681.728 160 704c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 615.808 928 657.664 928 704c0 129.728-188.544 224-416 224S96 833.728 96 704c0-46.592 24.32-88.576 65.92-123.264z"},null,-1),Ie=o("path",{fill:"currentColor",d:"m161.92 388.736 29.888 58.88C171.328 467.84 160 489.792 160 512c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 423.808 928 465.664 928 512c0 129.728-188.544 224-416 224S96 641.728 96 512c0-46.592 24.32-88.576 65.92-123.264z"},null,-1),Te=o("path",{fill:"currentColor",d:"M512 544c-227.456 0-416-94.272-416-224S284.544 96 512 96s416 94.272 416 224-188.544 224-416 224zm0-64c196.672 0 352-77.696 352-160S708.672 160 512 160s-352 77.696-352 160 155.328 160 352 160z"},null,-1),je=[Le,Ie,Te];function Pe(E,b,f,l,g,d){return i(),c("svg",Be,je)}var Oe=I(Se,[["render",Pe]]);const Ne=k({name:"Document"}),Ue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Fe=o("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h160v64H320v-64zm0 384h384v64H320v-64z"},null,-1),Ae=[Fe];function qe(E,b,f,l,g,d){return i(),c("svg",Ue,Ae)}var Je=I(Ne,[["render",qe]]);const Re=k({name:"TakeawayBox"}),Ge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ke=o("path",{fill:"currentColor",d:"M832 384H192v448h640V384zM96 320h832V128H96v192zm800 64v480a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V384H64a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h896a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32h-64zM416 512h192a32 32 0 0 1 0 64H416a32 32 0 0 1 0-64z"},null,-1),We=[Ke];function Xe(E,b,f,l,g,d){return i(),c("svg",Ge,We)}var Ye=I(Re,[["render",Xe]]);const Ze=k({name:"Tickets"}),Qe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},et=o("path",{fill:"currentColor",d:"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h192v64H320v-64zm0 384h384v64H320v-64z"},null,-1),tt=[et];function ot(E,b,f,l,g,d){return i(),c("svg",Qe,tt)}var st=I(Ze,[["render",ot]]);const at={class:"overview"},lt={class:"card-list","element-loading-text":"Loading..."},nt={class:"logo"},it={class:"content"},rt={class:"title"},ut={class:"text"},ct={class:"supplement"},dt={class:"panel"},pt={class:"p10 log-filter"},vt={class:"item"},mt={class:"item"},_t={class:"item"},ft={class:"item"},ht={class:"item"},gt={class:"item"},$t={class:"flex fc p10"},wt={class:"dialog-footer"},yt=k({__name:"index",setup(E){const b=ue(),f=r(!1),l=N([{type:"user",title:"用户数量",value:"0",supplement:"较昨日 +0",icon:ce,color:"#40c9c6"},{type:"file",title:"记录/OSS",value:"0",supplement:"记录较昨日 +0",icon:Je,color:"#36a3f7"},{type:"log",title:"日志数量",value:"0",supplement:"较昨日 +0",icon:st,color:"#f4516c"},{type:"pv",title:"PV/UV",value:"0/0",supplement:"",icon:De,color:"#34bfa3"},{type:"compress",title:"归档&无效文件",value:"0/0KB",supplement:"已失效0个",icon:Oe,color:"#e38013"}]);function g(){f.value=!0,L.getCount().then(s=>{const{user:e,file:m,log:$,pv:_,compress:u}=s.data;l[0].value="".concat(e.sum),l[0].supplement="较昨日 +".concat(e.recent),l[1].value="".concat(m.server.sum,"/").concat(m.oss.sum," (").concat(m.oss.size,")"),l[1].supplement="记录较昨日 +".concat(m.server.recent),l[2].value="".concat($.sum),l[2].supplement="较昨日 +".concat($.recent),l[3].value="".concat(_.today.sum,"/").concat(_.today.uv),l[3].supplement="历史: ".concat(_.all.sum,"/").concat(_.all.uv),l[4].value="".concat(u.all.sum,"/").concat(u.all.size),l[4].supplement="已失效 ".concat(u.expired.sum,"/").concat(u.expired.size),f.value=!1})}const d=r(!1);function X(){d.value=!0,L.clearExpiredCompressFile().then(()=>{setTimeout(()=>{W.success("清理成功,数据同步可能有延迟"),d.value=!1,g()},2e3)})}const p=N([]),D=r("behavior"),x=r(""),C=r(""),Y=N([{label:"用户行为",type:"behavior"},{label:"网络请求",type:"request"},{label:"服务端错误",type:"error"},{label:"页面访问",type:"pv"}]),z=r(10);function Z(s){z.value=s}const T=r(0),Q=R(()=>Math.ceil(T.value/z.value)),v=r(1);function ee(s){v.value=s}const j=r(!1);function M(){j.value=!0,L.getLogMsg(z.value,v.value,D.value,x.value,C.value).then(s=>{p.splice(0,p.length),p.push(...s.data.logs),T.value=s.data.sum}).finally(()=>{j.value=!1})}const q=Ee(()=>{v.value!==1?v.value=1:M()},380);U([v,z,D],(s,e)=>{if(e!==void 0&&s[2]!==e[2]){x.value="",C.value="",v.value!==1?v.value=1:M();return}M()},{immediate:!0}),U(x,()=>{q()}),U(C,()=>{q()});const H=r(!1),P=r("");function te(s){L.getLogMsgDetail(s).then(e=>{H.value=!0,P.value=JSON.stringify(e.data,null,2)})}const oe=R(()=>{try{return JSON.parse(P.value)}catch(s){return{}}});function se(){me(P.value)}function ae(){if(p.length===0)return;const s=["日期","IP","内容"],e=p.map(m=>{const{date:$,ip:_,msg:u}=m;return[A(new Date($)),_,u]});_e(s,e,"导出日志_".concat(p.length,"条").concat(A(new Date,"yyyy年MM月dd日hh时mm分ss秒"),".xlsx")),W.success("导出成功")}return de(()=>{g()}),(s,e)=>{const m=fe,$=Ce,_=ze,u=he,w=ge,S=Ve,le=ke,ne=xe,ie=pe("json-viewer"),re=$e,O=ye;return i(),c("div",at,[F((i(),c("div",lt,[(i(!0),c(G,null,K(l,t=>(i(),c("div",{key:t.type,class:"card"},[o("div",nt,[a(m,{color:t.color},{default:n(()=>[(i(),B(ve(t.icon)))]),_:2},1032,["color"])]),o("div",it,[o("div",rt,V(t.title),1),o("div",ut,V(t.value),1),o("div",ct,V(t.supplement),1)])]))),128))])),[[O,f.value]]),o("div",dt,[o("div",pt,[o("span",vt,[e[5]||(e[5]=o("span",{class:"label"},"类型",-1)),a(_,{modelValue:D.value,"onUpdate:modelValue":e[0]||(e[0]=t=>D.value=t),size:"default",placeholder:"请选择日志类型"},{default:n(()=>[(i(!0),c(G,null,K(Y,(t,J)=>(i(),B($,{key:J,label:t.label,value:t.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),o("span",mt,[a(u,{modelValue:x.value,"onUpdate:modelValue":e[1]||(e[1]=t=>x.value=t),size:"default",clearable:"",placeholder:"关键词(文案 / 路径 / 请求等,不含 IP)","prefix-icon":y(be)},null,8,["modelValue","prefix-icon"])]),o("span",_t,[a(u,{modelValue:C.value,"onUpdate:modelValue":e[2]||(e[2]=t=>C.value=t),size:"default",clearable:"",placeholder:"IP(可选)"},null,8,["modelValue"])]),o("span",ft,[a(w,{size:"default",icon:y(Me),onClick:M},{default:n(()=>e[6]||(e[6]=[h("刷新")])),_:1},8,["icon"])]),o("span",ht,[a(w,{size:"default",type:"primary",icon:y(He),onClick:ae},{default:n(()=>[h("导出日志 "+V(p.length)+" 条",1)]),_:1},8,["icon"])]),o("span",gt,[F((i(),B(w,{size:"default",type:"danger",icon:y(Ye),disabled:d.value,onClick:X},{default:n(()=>e[7]||(e[7]=[h("清理无效文件")])),_:1},8,["icon","disabled"])),[[O,d.value]])])]),F((i(),B(le,{"element-loading-text":"正在加载日志…","tooltip-effect":"dark",height:"400",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},data:p,style:{width:"100%"}},{default:n(()=>[a(S,{sortable:"",prop:"date",label:"日期",width:"180"},{default:n(t=>[h(V(y(A)(new Date(t.row.date))),1)]),_:1}),a(S,{sortable:"",prop:"ip",label:"IP",width:"100"}),a(S,{"min-width":"160",prop:"msg",label:"内容"}),a(S,{fixed:"right",label:"操作",width:"100"},{default:n(t=>[a(w,{type:"primary",text:"",size:"small",onClick:J=>te(t.row.id)},{default:n(()=>e[8]||(e[8]=[h(" 查看详情 ")])),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])),[[O,j.value]]),o("div",$t,[a(ne,{"current-page":v.value,background:"","page-count":Q.value,"page-sizes":[10,50,100,200,500,1e3],"page-size":z.value,total:T.value,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:ee,onSizeChange:Z},null,8,["current-page","page-count","page-size","total"])])]),a(re,{modelValue:H.value,"onUpdate:modelValue":e[4]||(e[4]=t=>H.value=t),title:"详细信息",width:"50%",center:"",fullscreen:y(b)},{footer:n(()=>[o("span",wt,[a(w,{type:"default",onClick:se},{default:n(()=>e[9]||(e[9]=[h("复制")])),_:1}),a(w,{type:"primary",onClick:e[3]||(e[3]=t=>H.value=!1)},{default:n(()=>e[10]||(e[10]=[h("确定")])),_:1})])]),default:n(()=>[a(ie,{value:oe.value,"expand-depth":5,copyable:"",boxed:"",sort:""},null,8,["value"])]),_:1},8,["modelValue","fullscreen"])])}}}),Lt=we(yt,[["__scopeId","data-v-44329b7c"]]);export{Lt as default};
|
|
2
|
+
//# sourceMappingURL=index-DVSUcRaY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DVSUcRaY.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/coin.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/document.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/takeaway-box.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/tickets.mjs","../../src/pages/dashboard/manage/overview/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: \"Coin\"\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: \"m161.92 580.736 29.888 58.88C171.328 659.776 160 681.728 160 704c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 615.808 928 657.664 928 704c0 129.728-188.544 224-416 224S96 833.728 96 704c0-46.592 24.32-88.576 65.92-123.264z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"m161.92 388.736 29.888 58.88C171.328 467.84 160 489.792 160 512c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 423.808 928 465.664 928 512c0 129.728-188.544 224-416 224S96 641.728 96 512c0-46.592 24.32-88.576 65.92-123.264z\"\n}, null, -1);\nconst _hoisted_4 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M512 544c-227.456 0-416-94.272-416-224S284.544 96 512 96s416 94.272 416 224-188.544 224-416 224zm0-64c196.672 0 352-77.696 352-160S708.672 160 512 160s-352 77.696-352 160 155.328 160 352 160z\"\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 coin = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { coin 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: \"Document\"\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: \"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h160v64H320v-64zm0 384h384v64H320v-64z\"\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 document = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { document 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: \"TakeawayBox\"\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: \"M832 384H192v448h640V384zM96 320h832V128H96v192zm800 64v480a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V384H64a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h896a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32h-64zM416 512h192a32 32 0 0 1 0 64H416a32 32 0 0 1 0-64z\"\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 takeawayBox = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { takeawayBox 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: \"Tickets\"\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: \"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h192v64H320v-64zm0 384h384v64H320v-64z\"\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 tickets = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { tickets as default };\n","<script lang=\"ts\" setup>\nimport {\n Coin,\n DataAnalysis,\n DataBoard,\n Document,\n Refresh,\n Search,\n TakeawayBox,\n Tickets,\n User,\n} from '@element-plus/icons-vue'\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, reactive, ref, watch } from 'vue'\nimport { SuperOverviewApi } from '@/apis'\nimport { useIsMobile } from '@/composables'\nimport { tableToExcel } from '@/utils/networkUtil'\nimport { debounce } from '@/utils/other'\nimport { copyRes, formatDate } from '@/utils/stringUtil'\n\nconst isMobile = useIsMobile()\n\nconst isLoadingOverview = ref(false)\nconst cardList = reactive([\n {\n type: 'user',\n title: '用户数量',\n value: '0',\n supplement: '较昨日 +0',\n icon: User,\n color: '#40c9c6',\n },\n {\n type: 'file',\n title: '记录/OSS',\n value: '0',\n supplement: '记录较昨日 +0',\n icon: Document,\n color: '#36a3f7',\n },\n {\n type: 'log',\n title: '日志数量',\n value: '0',\n supplement: '较昨日 +0',\n icon: Tickets,\n color: '#f4516c',\n },\n {\n type: 'pv',\n title: 'PV/UV',\n value: '0/0',\n supplement: '',\n icon: DataBoard,\n color: '#34bfa3',\n },\n {\n type: 'compress',\n title: '归档&无效文件',\n value: '0/0KB',\n supplement: '已失效0个',\n icon: Coin,\n color: '#e38013',\n },\n])\n// 刷新记录条数\nfunction refreshCount() {\n isLoadingOverview.value = true\n SuperOverviewApi.getCount().then((res) => {\n const { user, file, log, pv, compress } = res.data\n cardList[0].value = `${user.sum}`\n cardList[0].supplement = `较昨日 +${user.recent}`\n cardList[1].value = `${file.server.sum}/${file.oss.sum} (${file.oss.size})`\n cardList[1].supplement = `记录较昨日 +${file.server.recent}`\n cardList[2].value = `${log.sum}`\n cardList[2].supplement = `较昨日 +${log.recent}`\n cardList[3].value = `${pv.today.sum}/${pv.today.uv}`\n cardList[3].supplement = `历史: ${pv.all.sum}/${pv.all.uv}`\n cardList[4].value = `${compress.all.sum}/${compress.all.size}`\n cardList[4].supplement = `已失效 ${compress.expired.sum}/${compress.expired.size}`\n isLoadingOverview.value = false\n })\n}\n\nconst disableDelete = ref(false)\nfunction clearExpiredCompressFile() {\n disableDelete.value = true\n SuperOverviewApi.clearExpiredCompressFile().then(() => {\n setTimeout(() => {\n ElMessage.success('清理成功,数据同步可能有延迟')\n disableDelete.value = false\n refreshCount()\n }, 2000)\n })\n}\n\n// 日志\nconst logs: any[] = reactive([])\n\n// function getLogsTypeText(type: string) {\n// const logsTypeText: any = {\n// request: '网络请求',\n// behavior: '用户行为',\n// error: '错误',\n// pv: '页面访问',\n// }\n// return logsTypeText[type]\n// }\n// 筛选的日志\nconst filterLogType = ref('behavior')\nconst searchWord = ref('')\n/** 单独按 IP 筛选,与关键词互不干扰 */\nconst searchIp = ref('')\nconst logTypeList = reactive([\n {\n label: '用户行为',\n type: 'behavior',\n },\n {\n label: '网络请求',\n type: 'request',\n },\n {\n label: '服务端错误',\n type: 'error',\n },\n {\n label: '页面访问',\n type: 'pv',\n },\n])\n\n// 分页\n// 页大小\nconst pageSize = ref(10)\nfunction handleSizeChange(v: number) {\n pageSize.value = v\n}\n// 总条数\nconst logSumCount = ref(0)\nconst pageCount = computed(() => {\n const t = Math.ceil(logSumCount.value / pageSize.value)\n return t\n})\nconst pageCurrent = ref(1)\nfunction handlePageChange(idx: number) {\n pageCurrent.value = idx\n}\n\nconst isLoadingLogs = ref(false)\n\nfunction loadLogs() {\n isLoadingLogs.value = true\n SuperOverviewApi.getLogMsg(\n pageSize.value,\n pageCurrent.value,\n filterLogType.value,\n searchWord.value,\n searchIp.value,\n )\n .then((res) => {\n logs.splice(0, logs.length)\n logs.push(...res.data.logs)\n logSumCount.value = res.data.sum\n })\n .finally(() => {\n isLoadingLogs.value = false\n })\n}\n\n/** 搜索输入防抖;换页、改每页条数、改类型仍立即请求 */\nconst debouncedSearchRefresh = debounce(() => {\n if (pageCurrent.value !== 1) {\n pageCurrent.value = 1\n }\n else {\n loadLogs()\n }\n}, 380)\n\nwatch(\n [pageCurrent, pageSize, filterLogType],\n (newVal, oldVal) => {\n if (oldVal !== undefined && newVal[2] !== oldVal[2]) {\n searchWord.value = ''\n searchIp.value = ''\n if (pageCurrent.value !== 1) {\n pageCurrent.value = 1\n }\n else {\n loadLogs()\n }\n return\n }\n loadLogs()\n },\n { immediate: true },\n)\n\nwatch(searchWord, () => {\n debouncedSearchRefresh()\n})\n\nwatch(searchIp, () => {\n debouncedSearchRefresh()\n})\n\nconst showDetail = ref(false)\nconst showData = ref('')\nfunction handleDetail(id) {\n SuperOverviewApi.getLogMsgDetail(id).then((res) => {\n showDetail.value = true\n showData.value = JSON.stringify(res.data, null, 2)\n })\n}\nconst jsonData = computed(() => {\n try {\n return JSON.parse(showData.value)\n }\n catch {\n return {}\n }\n})\nfunction handleCopyDetail() {\n copyRes(showData.value)\n}\n\nfunction exportLogData() {\n if (logs.length === 0) {\n return\n }\n const headers = ['日期', 'IP', '内容']\n const body = logs.map((v) => {\n const { date, ip, msg } = v\n return [formatDate(new Date(date)), ip, msg]\n })\n tableToExcel(\n headers,\n body,\n `导出日志_${logs.length}条${formatDate(\n new Date(),\n 'yyyy年MM月dd日hh时mm分ss秒',\n )}.xlsx`,\n )\n ElMessage.success('导出成功')\n}\nonMounted(() => {\n refreshCount()\n})\n</script>\n\n<template>\n <div class=\"overview\">\n <div\n v-loading=\"isLoadingOverview\"\n class=\"card-list\"\n element-loading-text=\"Loading...\"\n >\n <div v-for=\"c in cardList\" :key=\"c.type\" class=\"card\">\n <div class=\"logo\">\n <el-icon :color=\"c.color\">\n <component :is=\"c.icon\" />\n </el-icon>\n </div>\n <div class=\"content\">\n <div class=\"title\">\n {{ c.title }}\n </div>\n <div class=\"text\">\n {{ c.value }}\n </div>\n <div class=\"supplement\">\n {{ c.supplement }}\n </div>\n </div>\n </div>\n </div>\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=\"filterLogType\"\n size=\"default\"\n placeholder=\"请选择日志类型\"\n >\n <el-option\n v-for=\"(item, idx) in logTypeList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.type\"\n />\n </el-select>\n </span>\n <span class=\"item\">\n <el-input\n v-model=\"searchWord\"\n size=\"default\"\n clearable\n placeholder=\"关键词(文案 / 路径 / 请求等,不含 IP)\"\n :prefix-icon=\"Search\"\n />\n </span>\n <span class=\"item\">\n <el-input\n v-model=\"searchIp\"\n size=\"default\"\n clearable\n placeholder=\"IP(可选)\"\n />\n </span>\n <span class=\"item\">\n <el-button size=\"default\" :icon=\"Refresh\" @click=\"loadLogs\">刷新</el-button>\n </span>\n <span class=\"item\">\n <el-button\n size=\"default\"\n type=\"primary\"\n :icon=\"DataAnalysis\"\n @click=\"exportLogData\"\n >导出日志 {{ logs.length }} 条</el-button>\n </span>\n <span class=\"item\">\n <el-button\n v-loading=\"disableDelete\"\n size=\"default\"\n type=\"danger\"\n :icon=\"TakeawayBox\"\n :disabled=\"disableDelete\"\n @click=\"clearExpiredCompressFile\"\n >清理无效文件</el-button>\n </span>\n </div>\n <el-table\n v-loading=\"isLoadingLogs\"\n element-loading-text=\"正在加载日志…\"\n tooltip-effect=\"dark\"\n height=\"400\"\n stripe\n border\n :default-sort=\"{ prop: 'date', order: 'descending' }\"\n :data=\"logs\"\n style=\"width: 100%\"\n >\n <el-table-column sortable prop=\"date\" label=\"日期\" width=\"180\">\n <template #default=\"scope\">\n {{\n formatDate(new Date(scope.row.date))\n }}\n </template>\n </el-table-column>\n <!-- <el-table-column prop=\"type\" label=\"类型\" width=\"100\">\n <template #default=\"scope\">{{ getLogsTypeText(scope.row.type) }}</template>\n </el-table-column> -->\n <el-table-column\n sortable\n prop=\"ip\"\n label=\"IP\"\n width=\"100\"\n />\n <el-table-column\n min-width=\"160\"\n prop=\"msg\"\n label=\"内容\"\n />\n <el-table-column fixed=\"right\" label=\"操作\" width=\"100\">\n <template #default=\"scope\">\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"handleDetail(scope.row.id)\"\n >\n 查看详情\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n\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, 500, 1000]\"\n :page-size=\"pageSize\"\n :total=\"logSumCount\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n @current-change=\"handlePageChange\"\n @size-change=\"handleSizeChange\"\n />\n </div>\n </div>\n <el-dialog\n v-model=\"showDetail\"\n title=\"详细信息\"\n width=\"50%\"\n center\n :fullscreen=\"isMobile\"\n >\n <json-viewer\n :value=\"jsonData\"\n :expand-depth=\"5\"\n copyable\n boxed\n sort\n />\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button type=\"default\" @click=\"handleCopyDetail\">复制</el-button>\n <el-button type=\"primary\" @click=\"showDetail = false\">确定</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 .card-list {\n margin-top: 40px;\n }\n\n .card {\n min-width: 300px;\n }\n\n .log-filter {\n justify-content: center;\n }\n}\n\n.overview {\n margin: 0 auto;\n}\n\n.card-list {\n display: flex;\n margin-top: 20px;\n justify-content: center;\n flex-wrap: wrap;\n}\n\n.card {\n margin: 10px;\n cursor: pointer;\n font-size: 12px;\n position: relative;\n overflow: hidden;\n color: #666;\n background: #fff;\n box-shadow: 4px 4px 40px rgb(0 0 0 / 5%);\n border-color: rgba(0, 0, 0, 0.05);\n min-width: 300px;\n\n .logo {\n float: left;\n margin: 4px 10px 0 10px;\n -webkit-transition: all 0.38s ease-out;\n transition: all 0.38s ease-out;\n border-radius: 6px;\n font-size: 48px;\n\n i {\n padding: 10px;\n }\n }\n\n .content {\n float: right;\n font-weight: 700;\n margin: 10px;\n margin-left: 0;\n\n .title {\n line-height: 18px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n text-align: right;\n }\n\n .text {\n font-size: 16px;\n text-align: right;\n }\n\n .supplement {\n font-size: 12px;\n font-weight: lighter;\n text-align: right;\n }\n }\n}\n\n.panel {\n max-width: 1024px;\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\n .label {\n margin-right: 10px;\n font-size: 12px;\n }\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","coin","_export_sfc","document","takeawayBox","tickets","isMobile","useIsMobile","isLoadingOverview","ref","cardList","reactive","User","Document","Tickets","DataBoard","Coin","refreshCount","SuperOverviewApi","res","user","file","log","pv","compress","disableDelete","clearExpiredCompressFile","ElMessage","logs","filterLogType","searchWord","searchIp","logTypeList","pageSize","handleSizeChange","v","logSumCount","pageCount","computed","pageCurrent","handlePageChange","idx","isLoadingLogs","loadLogs","debouncedSearchRefresh","debounce","watch","newVal","oldVal","showDetail","showData","handleDetail","id","jsonData","e","handleCopyDetail","copyRes","exportLogData","headers","body","date","ip","msg","formatDate","tableToExcel","onMounted"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as le,X as D,r as u,M as z,o as ae,Z as se,a as y,c as I,b as n,i as l,w as s,F as L,A as M,B as A,j as w,e as i,t as F,n as N,bs as T,E as R,q as oe,s as ne,a0 as ue,ag as ie,ah as de,_ as re}from"./index-uNaj-154.js";import{s as pe,E as ce}from"./el-pagination-DVClk9XJ.js";import"./el-tag-CR8VXqUN.js";import{E as fe,a as me}from"./el-select-C5BnfITI.js";import"./el-scrollbar-B_rEcSsQ.js";import{E as ve,a as _e}from"./el-table-column-cVnV9Qdi.js";import{W as f}from"./index-BrOLxzFM.js";import"./index-DWi4klmy.js";const be={class:"user"},ge={class:"panel"},he={class:"p10 log-filter"},Ve={class:"item"},ye={class:"item"},we={class:"text-btn-list"},Ee={class:"flex fc p10"},Ce={class:"tc"},xe={class:"dialog-footer"},We={class:"dialog-footer"},j="80px",Se=le({__name:"index",setup(ke){const m=D([]);function O(){T.findAllWish().then(a=>{m.splice(0,m.length,...a.data)})}const E=u(-1),C=u(""),S=D([{label:"待审核",type:f.REVIEW},{label:"待开始",type:f.WAIT},{label:"关闭",type:f.CLOSE},{label:"已上线",type:f.END},{label:"开发中",type:f.START}]),k=z(()=>m.filter(a=>a.status===E.value||E.value===-1).filter(a=>{const{createDate:e,title:d,des:W,contact:h}=a;return C.value.length===0?!0:"".concat(N(new Date(e))," ").concat(d," ").concat(W," ").concat(h).includes(C.value)})),v=u(10);function P(a){v.value=a}const q=z(()=>Math.ceil(k.value.length/v.value)),x=u(1),X=z(()=>{const a=(x.value-1)*v.value,e=x.value*v.value;return k.value.slice(a,e)});function Z(a){x.value=a}const _=u(!1),r=u(""),b=u(f.REVIEW),G=S;function H(a,e){r.value=a,b.value=e,_.value=!0}function J(){const a=m.find(e=>e.id===r.value);a.status=b.value,_.value=!1,T.updateWishStatus(r.value,b.value).then(()=>{R.success("修改成功")})}const g=u(!1),o=D({title:"",des:""});function K(a,e,d){r.value=a,o.title=e,o.des=d,g.value=!0}function Q(){const a=m.find(e=>e.id===r.value);T.updateWishDes(r.value,o.title,o.des).then(()=>{g.value=!1,a.title=o.title,a.des=o.des,R.success("修改成功")})}ae(()=>{O()});const U=se();return(a,e)=>{const d=fe,W=me,h=oe,p=ve,c=ne,Y=_e,ee=ce,$=ue,B=ie,te=de;return y(),I("div",be,[n("div",ge,[n("div",he,[n("span",Ve,[e[9]||(e[9]=n("span",{class:"label"},"状态",-1)),l(W,{modelValue:E.value,"onUpdate:modelValue":e[0]||(e[0]=t=>E.value=t),size:"default",placeholder:"请选择筛选状态"},{default:s(()=>[l(d,{label:"全部",value:-1}),(y(!0),I(L,null,M(S,(t,V)=>(y(),A(d,{key:V,label:t.label,value:t.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),n("span",ye,[l(h,{modelValue:C.value,"onUpdate:modelValue":e[1]||(e[1]=t=>C.value=t),size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":w(pe)},null,8,["modelValue","prefix-icon"])])]),l(Y,{height:"550",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},data:X.value,style:{width:"100%"}},{default:s(()=>[l(p,{sortable:"",prop:"createDate",label:"提交时间",width:"190"},{default:s(t=>[i(F(t.row.createDate&&w(N)(new Date(t.row.createDate))),1)]),_:1}),l(p,{prop:"title",label:"标题",width:"120"}),l(p,{prop:"des",label:"详细描述"}),l(p,{prop:"contact",label:"联系方式"}),l(p,{prop:"status",label:"状态"},{default:s(t=>[i(F(S.find(V=>V.type===t.row.status).label),1)]),_:1}),l(p,{fixed:"right",label:"操作",width:"100"},{default:s(t=>[n("div",we,[l(c,{type:"primary",text:"",size:"small",onClick:V=>H(t.row.id,t.row.status)},{default:s(()=>e[10]||(e[10]=[i(" 修改状态 ")])),_:2},1032,["onClick"]),l(c,{type:"primary",text:"",size:"small",onClick:V=>K(t.row.id,t.row.title,t.row.des)},{default:s(()=>e[11]||(e[11]=[i(" 修改描述 ")])),_:2},1032,["onClick"])])]),_:1})]),_:1},8,["data"]),n("div",Ee,[l(ee,{"current-page":x.value,background:"","page-count":q.value,"page-sizes":[10,50,100,200],"page-size":v.value,total:k.value.length,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:Z,onSizeChange:P},null,8,["current-page","page-count","page-size","total"])])]),l($,{modelValue:_.value,"onUpdate:modelValue":e[4]||(e[4]=t=>_.value=t),fullscreen:w(U),center:"",title:"状态修改"},{footer:s(()=>[n("span",xe,[l(c,{onClick:e[3]||(e[3]=t=>_.value=!1)},{default:s(()=>e[12]||(e[12]=[i("取 消")])),_:1}),l(c,{type:"primary",onClick:J},{default:s(()=>e[13]||(e[13]=[i("确 定")])),_:1})])]),default:s(()=>[n("div",Ce,[l(W,{modelValue:b.value,"onUpdate:modelValue":e[2]||(e[2]=t=>b.value=t),placeholder:"请选择新状态"},{default:s(()=>[(y(!0),I(L,null,M(w(G),t=>(y(),A(d,{key:t.type,label:t.label,value:t.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])]),_:1},8,["modelValue","fullscreen"]),l($,{modelValue:g.value,"onUpdate:modelValue":e[8]||(e[8]=t=>g.value=t),title:"需求信息",fullscreen:w(U)},{footer:s(()=>[n("span",We,[l(c,{onClick:e[7]||(e[7]=t=>g.value=!1)},{default:s(()=>e[14]||(e[14]=[i("取 消")])),_:1}),l(c,{type:"primary",onClick:Q},{default:s(()=>e[15]||(e[15]=[i("确 定")])),_:1})])]),default:s(()=>[l(te,{model:o},{default:s(()=>[l(B,{label:"需求","label-width":j},{default:s(()=>[l(h,{modelValue:o.title,"onUpdate:modelValue":e[5]||(e[5]=t=>o.title=t),placeholder:"一句简单明了的话概括一下"},null,8,["modelValue"])]),_:1}),l(B,{label:"详细描述","label-width":j},{default:s(()=>[l(h,{modelValue:o.des,"onUpdate:modelValue":e[6]||(e[6]=t=>o.des=t),placeholder:"用朴素的话语进一步描述你的需求",type:"textarea"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","fullscreen"])])}}}),Me=re(Se,[["__scopeId","data-v-9d0301c0"]]);export{Me as default};
|
|
2
|
+
//# sourceMappingURL=index-DWOXO9QK.js.map
|