@sugarat/easypicker2-client 2.6.1-beta.0 → 2.7.0-beta.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.af0825d3.js → aria-legacy-B70JmEZA.js} +1 -1
- package/dist/assets/aria-legacy-B70JmEZA.js.map +1 -0
- package/dist/assets/{aria-bc8e8b0f.js → aria-nkjrUMQ-.js} +1 -1
- package/dist/assets/aria-nkjrUMQ-.js.map +1 -0
- package/dist/assets/{data-analysis-632af70e.js → data-analysis-c8lgg0AB.js} +2 -2
- package/dist/assets/data-analysis-c8lgg0AB.js.map +1 -0
- package/dist/assets/{data-analysis-legacy.297ff95d.js → data-analysis-legacy-CW8BY_nY.js} +2 -2
- package/dist/assets/data-analysis-legacy-CW8BY_nY.js.map +1 -0
- package/dist/assets/data-board-CfWZjPIl.js +2 -0
- package/dist/assets/data-board-CfWZjPIl.js.map +1 -0
- package/dist/assets/{data-board-legacy.b3bf2f61.js → data-board-legacy-DDytbRz4.js} +2 -2
- package/dist/assets/data-board-legacy-DDytbRz4.js.map +1 -0
- package/dist/assets/{el-date-picker-b3398f8f.js → el-date-picker-CI8bdk_f.js} +2 -2
- package/dist/assets/el-date-picker-CI8bdk_f.js.map +1 -0
- package/dist/assets/{el-date-picker-legacy.fd044c30.js → el-date-picker-legacy-CSDTG-yp.js} +2 -2
- package/dist/assets/el-date-picker-legacy-CSDTG-yp.js.map +1 -0
- package/dist/assets/el-dialog-C8bI9VGw.js +2 -0
- package/dist/assets/el-dialog-C8bI9VGw.js.map +1 -0
- package/dist/assets/el-dialog-legacy-DfEb6k1B.js +2 -0
- package/dist/assets/el-dialog-legacy-DfEb6k1B.js.map +1 -0
- package/dist/assets/{el-dropdown-item-3eb29c67.js → el-dropdown-item-febUKGk9.js} +2 -2
- package/dist/assets/el-dropdown-item-febUKGk9.js.map +1 -0
- package/dist/assets/{el-dropdown-item-legacy.60575f42.js → el-dropdown-item-legacy-Bi1TbzqG.js} +2 -2
- package/dist/assets/el-dropdown-item-legacy-Bi1TbzqG.js.map +1 -0
- package/dist/assets/el-form-item-SCs-OERV.js +2 -0
- package/dist/assets/el-form-item-SCs-OERV.js.map +1 -0
- package/dist/assets/el-form-item-legacy-CNxAgkUf.js +2 -0
- package/dist/assets/el-form-item-legacy-CNxAgkUf.js.map +1 -0
- package/dist/assets/el-loading-DSlXrliU.js +2 -0
- package/dist/assets/el-loading-DSlXrliU.js.map +1 -0
- package/dist/assets/{el-loading-legacy.8045609e.js → el-loading-legacy-CbNNE-qk.js} +2 -2
- package/dist/assets/el-loading-legacy-CbNNE-qk.js.map +1 -0
- package/dist/assets/{el-pagination-legacy.02ed0149.js → el-pagination-legacy-CeTPKkkI.js} +2 -2
- package/dist/assets/el-pagination-legacy-CeTPKkkI.js.map +1 -0
- package/dist/assets/{el-pagination-85149e11.js → el-pagination-nfYZbPTI.js} +2 -2
- package/dist/assets/el-pagination-nfYZbPTI.js.map +1 -0
- package/dist/assets/el-progress-BRTU4m5q.js +2 -0
- package/dist/assets/el-progress-BRTU4m5q.js.map +1 -0
- package/dist/assets/{el-progress-legacy.1165db46.js → el-progress-legacy-B6EwNV6c.js} +2 -2
- package/dist/assets/el-progress-legacy-B6EwNV6c.js.map +1 -0
- package/dist/assets/{el-select-legacy.5ccdd9a4.js → el-select-legacy-BFhy033s.js} +2 -2
- package/dist/assets/el-select-legacy-BFhy033s.js.map +1 -0
- package/dist/assets/{el-select-2a16e5df.js → el-select-uDoCZCn5.js} +2 -2
- package/dist/assets/el-select-uDoCZCn5.js.map +1 -0
- package/dist/assets/el-switch-B8IyK6ZR.js +2 -0
- package/dist/assets/el-switch-B8IyK6ZR.js.map +1 -0
- package/dist/assets/{el-switch-legacy.96786863.js → el-switch-legacy-LBGoMV4l.js} +2 -2
- package/dist/assets/{el-switch-abdd5a33.js.map → el-switch-legacy-LBGoMV4l.js.map} +1 -1
- package/dist/assets/el-tab-pane-fWqYc0uG.js +2 -0
- package/dist/assets/el-tab-pane-fWqYc0uG.js.map +1 -0
- package/dist/assets/{el-tab-pane-legacy.143cbc33.js → el-tab-pane-legacy-ChZdms4s.js} +2 -2
- package/dist/assets/el-tab-pane-legacy-ChZdms4s.js.map +1 -0
- package/dist/assets/{el-table-column-19feeab8.js → el-table-column-C3qC7HsW.js} +3 -3
- package/dist/assets/el-table-column-C3qC7HsW.js.map +1 -0
- package/dist/assets/{el-table-column-legacy.afba06f3.js → el-table-column-legacy-Wp8N0Zxv.js} +4 -4
- package/dist/assets/el-table-column-legacy-Wp8N0Zxv.js.map +1 -0
- package/dist/assets/{index-3f82ab7a.css → index-1eHw6sEI.css} +1 -1
- package/dist/assets/index-5sS3uHi0.css +1 -0
- package/dist/assets/index-AYz8tt3l.js +2 -0
- package/dist/assets/index-AYz8tt3l.js.map +1 -0
- package/dist/assets/index-B5tZv3FB.css +1 -0
- package/dist/assets/index-B621FN6u.js +2 -0
- package/dist/assets/index-B621FN6u.js.map +1 -0
- package/dist/assets/{index-68448dbd.js → index-BAFXwCno.js} +2 -2
- package/dist/assets/index-BAFXwCno.js.map +1 -0
- package/dist/assets/index-BN8Mg9Y5.js +2 -0
- package/dist/assets/index-BN8Mg9Y5.js.map +1 -0
- package/dist/assets/index-BYEN2QaU.css +1 -0
- package/dist/assets/index-BghihfR3.css +1 -0
- package/dist/assets/index-Bp9D-Hzs.js +2 -0
- package/dist/assets/index-Bp9D-Hzs.js.map +1 -0
- package/dist/assets/{index-9e6bd406.js → index-BrOLxzFM.js} +1 -1
- package/dist/assets/{index-9e6bd406.js.map → index-BrOLxzFM.js.map} +1 -1
- package/dist/assets/index-C0TTJR9g.js +2 -0
- package/dist/assets/index-C0TTJR9g.js.map +1 -0
- package/dist/assets/index-C1FTaXL2.js +2 -0
- package/dist/assets/index-C1FTaXL2.js.map +1 -0
- package/dist/assets/index-CAbIiez7.js +2 -0
- package/dist/assets/{index-51740dfd.js.map → index-CAbIiez7.js.map} +1 -1
- package/dist/assets/index-CYU98hsF.js +2 -0
- package/dist/assets/index-CYU98hsF.js.map +1 -0
- package/dist/assets/index-Cbj5Qf1k.js +2 -0
- package/dist/assets/index-Cbj5Qf1k.js.map +1 -0
- package/dist/assets/index-CbkKWoQA.css +1 -0
- package/dist/assets/index-CcPY3ZJk.js +2 -0
- package/dist/assets/index-CcPY3ZJk.js.map +1 -0
- package/dist/assets/index-CeWnhlkq.css +1 -0
- package/dist/assets/index-ChQZKkse.css +1 -0
- package/dist/assets/index-CvlaXQXr.js +40 -0
- package/dist/assets/index-CvlaXQXr.js.map +1 -0
- package/dist/assets/index-CwmiY_sv.css +1 -0
- package/dist/assets/{index-78a8b3c7.js → index-D2jrbKvI.js} +2 -2
- package/dist/assets/index-D2jrbKvI.js.map +1 -0
- package/dist/assets/index-D2p3cWtM.css +1 -0
- package/dist/assets/index-DIARiZcJ.js +2 -0
- package/dist/assets/index-DIARiZcJ.js.map +1 -0
- package/dist/assets/index-DVHa0g7s.js +2 -0
- package/dist/assets/{index-f74b7eb6.js.map → index-DVHa0g7s.js.map} +1 -1
- package/dist/assets/index-DaSb9EV4.css +1 -0
- package/dist/assets/index-DvM_o_Iw.js +2 -0
- package/dist/assets/index-DvM_o_Iw.js.map +1 -0
- package/dist/assets/index-E_UelRIx.js +2 -0
- package/dist/assets/index-E_UelRIx.js.map +1 -0
- package/dist/assets/index-Lsr6KH3b.js +2 -0
- package/dist/assets/index-Lsr6KH3b.js.map +1 -0
- package/dist/assets/{index-82a6b493.css → index-ShzTlShR.css} +1 -1
- package/dist/assets/{index-b8357360.js → index-UJqXhonq.js} +2 -2
- package/dist/assets/index-UJqXhonq.js.map +1 -0
- package/dist/assets/index-WblpVXQj.js +2 -0
- package/dist/assets/{index-16b096cf.js.map → index-WblpVXQj.js.map} +1 -1
- package/dist/assets/index-dEAnfrhp.css +1 -0
- package/dist/assets/index-ehQnwCE_.css +1 -0
- package/dist/assets/index-hhTdfxnD.css +1 -0
- package/dist/assets/{index-legacy.1796b3ef.js → index-legacy-3jO8hk9z.js} +2 -2
- package/dist/assets/index-legacy-3jO8hk9z.js.map +1 -0
- package/dist/assets/index-legacy-8ekXefFL.js +2 -0
- package/dist/assets/index-legacy-8ekXefFL.js.map +1 -0
- package/dist/assets/index-legacy-B865ACt-.js +2 -0
- package/dist/assets/index-legacy-B865ACt-.js.map +1 -0
- package/dist/assets/index-legacy-B8pZsXYp.js +2 -0
- package/dist/assets/index-legacy-B8pZsXYp.js.map +1 -0
- package/dist/assets/index-legacy-BA8TBope.js +2 -0
- package/dist/assets/index-legacy-BA8TBope.js.map +1 -0
- package/dist/assets/index-legacy-BWGaTIeh.js +2 -0
- package/dist/assets/index-legacy-BWGaTIeh.js.map +1 -0
- package/dist/assets/index-legacy-BaUX-zxP.js +42 -0
- package/dist/assets/index-legacy-BaUX-zxP.js.map +1 -0
- package/dist/assets/index-legacy-Bwwm9nit.js +2 -0
- package/dist/assets/index-legacy-Bwwm9nit.js.map +1 -0
- package/dist/assets/index-legacy-BzCDv5Tg.js +2 -0
- package/dist/assets/index-legacy-BzCDv5Tg.js.map +1 -0
- package/dist/assets/{index-legacy.7a041259.js → index-legacy-Bziat01y.js} +2 -2
- package/dist/assets/{index-68448dbd.js.map → index-legacy-Bziat01y.js.map} +1 -1
- package/dist/assets/{index-legacy.f84efe08.js → index-legacy-C-gHf8SN.js} +1 -1
- package/dist/assets/index-legacy-C-gHf8SN.js.map +1 -0
- package/dist/assets/index-legacy-D-yT7UP7.js +2 -0
- package/dist/assets/index-legacy-D-yT7UP7.js.map +1 -0
- package/dist/assets/{index-legacy.ec490514.js → index-legacy-D14E8pOh.js} +2 -2
- package/dist/assets/index-legacy-D14E8pOh.js.map +1 -0
- package/dist/assets/index-legacy-D8QuGa98.js +2 -0
- package/dist/assets/index-legacy-D8QuGa98.js.map +1 -0
- package/dist/assets/index-legacy-D93ANJJU.js +2 -0
- package/dist/assets/index-legacy-D93ANJJU.js.map +1 -0
- package/dist/assets/index-legacy-DTtXpYbD.js +2 -0
- package/dist/assets/index-legacy-DTtXpYbD.js.map +1 -0
- package/dist/assets/index-legacy-DZC-JuD-.js +2 -0
- package/dist/assets/index-legacy-DZC-JuD-.js.map +1 -0
- package/dist/assets/index-legacy-DiTQKLfl.js +2 -0
- package/dist/assets/index-legacy-DiTQKLfl.js.map +1 -0
- package/dist/assets/index-legacy-DqLKrBdr.js +2 -0
- package/dist/assets/index-legacy-DqLKrBdr.js.map +1 -0
- package/dist/assets/index-legacy-GmcnXr6o.js +2 -0
- package/dist/assets/index-legacy-GmcnXr6o.js.map +1 -0
- package/dist/assets/index-legacy-z4MDfS45.js +2 -0
- package/dist/assets/index-legacy-z4MDfS45.js.map +1 -0
- package/dist/assets/index-ypHH_Z_A.css +1 -0
- package/dist/assets/isEqual-a1R5cOCU.js +2 -0
- package/dist/assets/{isEqual-95d6c129.js.map → isEqual-a1R5cOCU.js.map} +1 -1
- package/dist/assets/isEqual-legacy-D_cb03Zv.js +2 -0
- package/dist/assets/isEqual-legacy-D_cb03Zv.js.map +1 -0
- package/dist/assets/{other-legacy.39078796.js → other-legacy-DjiCmSH4.js} +1 -1
- package/dist/assets/other-legacy-DjiCmSH4.js.map +1 -0
- package/dist/assets/{other-8d7ba6a0.js → other-yMAyytYx.js} +1 -1
- package/dist/assets/{other-8d7ba6a0.js.map → other-yMAyytYx.js.map} +1 -1
- package/dist/assets/polyfills-legacy-CPmsgIAF.js +4 -0
- package/dist/assets/{refresh-be31af7a.js → refresh-Bz5ULfz9.js} +2 -2
- package/dist/assets/refresh-Bz5ULfz9.js.map +1 -0
- package/dist/assets/{refresh-legacy.600c5af4.js → refresh-legacy-NT5iEzmI.js} +2 -2
- package/dist/assets/refresh-legacy-NT5iEzmI.js.map +1 -0
- package/dist/assets/tip-BCCd4P_x.js +2 -0
- package/dist/assets/tip-BCCd4P_x.js.map +1 -0
- package/dist/assets/{tip-legacy.b6d754fd.js → tip-legacy-Cm2JPa4-.js} +2 -2
- package/dist/assets/tip-legacy-Cm2JPa4-.js.map +1 -0
- package/dist/assets/{tip-9cb18ee8.css → tip-ovQu2XSt.css} +1 -1
- package/dist/assets/validator-BESrcCvQ.js +2 -0
- package/dist/assets/validator-BESrcCvQ.js.map +1 -0
- package/dist/assets/validator-legacy-xarmcLjs.js +2 -0
- package/dist/assets/validator-legacy-xarmcLjs.js.map +1 -0
- package/dist/index.html +6 -7
- package/package.json +30 -24
- package/dist/assets/aria-bc8e8b0f.js.map +0 -1
- package/dist/assets/data-analysis-632af70e.js.map +0 -1
- package/dist/assets/data-board-4290cade.js +0 -2
- package/dist/assets/data-board-4290cade.js.map +0 -1
- package/dist/assets/el-date-picker-b3398f8f.js.map +0 -1
- package/dist/assets/el-dialog-c11c4af2.js +0 -2
- package/dist/assets/el-dialog-c11c4af2.js.map +0 -1
- package/dist/assets/el-dialog-legacy.d2229175.js +0 -2
- package/dist/assets/el-dropdown-item-3eb29c67.js.map +0 -1
- package/dist/assets/el-form-item-fb230be3.js +0 -2
- package/dist/assets/el-form-item-fb230be3.js.map +0 -1
- package/dist/assets/el-form-item-legacy.237ed4b6.js +0 -2
- package/dist/assets/el-loading-e9365e7e.js +0 -2
- package/dist/assets/el-loading-e9365e7e.js.map +0 -1
- package/dist/assets/el-pagination-85149e11.js.map +0 -1
- package/dist/assets/el-progress-b98becda.js +0 -2
- package/dist/assets/el-progress-b98becda.js.map +0 -1
- package/dist/assets/el-select-2a16e5df.js.map +0 -1
- package/dist/assets/el-switch-abdd5a33.js +0 -2
- package/dist/assets/el-tab-pane-db271c8d.js +0 -2
- package/dist/assets/el-tab-pane-db271c8d.js.map +0 -1
- package/dist/assets/el-table-column-19feeab8.js.map +0 -1
- package/dist/assets/index-01e33329.css +0 -1
- package/dist/assets/index-0f83ff96.css +0 -1
- package/dist/assets/index-0fbe23b2.js +0 -2
- package/dist/assets/index-0fbe23b2.js.map +0 -1
- package/dist/assets/index-14d600a5.js +0 -2
- package/dist/assets/index-14d600a5.js.map +0 -1
- package/dist/assets/index-1639ad54.js +0 -15
- package/dist/assets/index-1639ad54.js.map +0 -1
- package/dist/assets/index-16b096cf.js +0 -2
- package/dist/assets/index-1bd2cd2e.js +0 -2
- package/dist/assets/index-1bd2cd2e.js.map +0 -1
- package/dist/assets/index-2c76567d.js +0 -2
- package/dist/assets/index-2c76567d.js.map +0 -1
- package/dist/assets/index-3091894a.css +0 -1
- package/dist/assets/index-34fd4f9f.css +0 -1
- package/dist/assets/index-37e15bc6.css +0 -1
- package/dist/assets/index-43d1d27e.js +0 -2
- package/dist/assets/index-43d1d27e.js.map +0 -1
- package/dist/assets/index-488b0f9e.js +0 -2
- package/dist/assets/index-488b0f9e.js.map +0 -1
- package/dist/assets/index-4b1f55ea.js +0 -2
- package/dist/assets/index-4b1f55ea.js.map +0 -1
- package/dist/assets/index-4c81cf78.css +0 -1
- package/dist/assets/index-51740dfd.js +0 -2
- package/dist/assets/index-5281fad0.js +0 -2
- package/dist/assets/index-5281fad0.js.map +0 -1
- package/dist/assets/index-74330c06.js +0 -2
- package/dist/assets/index-74330c06.js.map +0 -1
- package/dist/assets/index-76f31e30.css +0 -1
- package/dist/assets/index-76ff9b9b.css +0 -1
- package/dist/assets/index-78a8b3c7.js.map +0 -1
- package/dist/assets/index-98b55468.css +0 -1
- package/dist/assets/index-9e6a9bcf.js +0 -2
- package/dist/assets/index-9e6a9bcf.js.map +0 -1
- package/dist/assets/index-ac06071b.js +0 -2
- package/dist/assets/index-ac06071b.js.map +0 -1
- package/dist/assets/index-adc1b681.js +0 -2
- package/dist/assets/index-adc1b681.js.map +0 -1
- package/dist/assets/index-b8357360.js.map +0 -1
- package/dist/assets/index-d09329eb.js +0 -2
- package/dist/assets/index-d09329eb.js.map +0 -1
- package/dist/assets/index-d3ae2239.css +0 -1
- package/dist/assets/index-da51da36.css +0 -1
- package/dist/assets/index-e7d8a83e.css +0 -1
- package/dist/assets/index-eb08e7b7.css +0 -1
- package/dist/assets/index-f31c9ba4.css +0 -1
- package/dist/assets/index-f74b7eb6.js +0 -2
- package/dist/assets/index-legacy.082ccf5b.js +0 -2
- package/dist/assets/index-legacy.12de1889.js +0 -2
- package/dist/assets/index-legacy.227978b5.js +0 -2
- package/dist/assets/index-legacy.296716c3.js +0 -2
- package/dist/assets/index-legacy.36482c14.js +0 -2
- package/dist/assets/index-legacy.41d8801d.js +0 -2
- package/dist/assets/index-legacy.4b2923ee.js +0 -2
- package/dist/assets/index-legacy.4c1d6eb3.js +0 -2
- package/dist/assets/index-legacy.820f4ba0.js +0 -2
- package/dist/assets/index-legacy.8311ba4a.js +0 -2
- package/dist/assets/index-legacy.9eb93981.js +0 -18
- package/dist/assets/index-legacy.a19ed25e.js +0 -2
- package/dist/assets/index-legacy.b8de0bf4.js +0 -2
- package/dist/assets/index-legacy.e932a3d4.js +0 -2
- package/dist/assets/index-legacy.e96fb189.js +0 -2
- package/dist/assets/index-legacy.ed2883a1.js +0 -2
- package/dist/assets/index-legacy.f16524a6.js +0 -2
- package/dist/assets/isEqual-95d6c129.js +0 -2
- package/dist/assets/isEqual-legacy.83836994.js +0 -2
- package/dist/assets/polyfills-legacy.99e38685.js +0 -4
- package/dist/assets/refresh-be31af7a.js.map +0 -1
- package/dist/assets/tip-822b05b7.js +0 -2
- package/dist/assets/tip-822b05b7.js.map +0 -1
- package/dist/assets/validator-5c60ab85.js +0 -2
- package/dist/assets/validator-5c60ab85.js.map +0 -1
- package/dist/assets/validator-legacy.86b93c0e.js +0 -2
- /package/dist/assets/{el-date-picker-cf2e83b6.css → el-date-picker-NjWHL2Br.css} +0 -0
- /package/dist/assets/{el-dialog-25bd2fb8.css → el-dialog-Cu2jwelC.css} +0 -0
- /package/dist/assets/{el-dropdown-item-0c6ddabc.css → el-dropdown-item-CUgTpiu6.css} +0 -0
- /package/dist/assets/{el-form-item-3aad794a.css → el-form-item-Cc9R0dZ1.css} +0 -0
- /package/dist/assets/{el-loading-d0f2d079.css → el-loading-Uv12lkco.css} +0 -0
- /package/dist/assets/{el-pagination-bf7c736d.css → el-pagination-MvCAleW2.css} +0 -0
- /package/dist/assets/{el-progress-63aabe3a.css → el-progress-njCW9-w4.css} +0 -0
- /package/dist/assets/{el-select-6be23320.css → el-select-BSO0hXRI.css} +0 -0
- /package/dist/assets/{el-switch-aeab2c6b.css → el-switch-D6dVIPlw.css} +0 -0
- /package/dist/assets/{el-tab-pane-4a1bb4c7.css → el-tab-pane-kUw7IczA.css} +0 -0
- /package/dist/assets/{el-table-column-6c2089f9.css → el-table-column-DMXHP8sd.css} +0 -0
- /package/dist/assets/{index-93c733b3.css → index-C4H-Ptjt.css} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-78a8b3c7.js","sources":["../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/collapse-transition/src/collapse-transition.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/collapse-transition/index.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/utils/submenu.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/utils/menu-item.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/utils/menu-bar.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/menu-collapse-transition.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/use-menu.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/use-menu-color.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/use-menu-css-var.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/sub-menu.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/menu.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/menu-item.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/menu-item2.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/menu-item-group.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/src/menu-item-group2.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/menu/index.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/setting.mjs","../../src/pages/dashboard/manage/index.vue"],"sourcesContent":["import { defineComponent, openBlock, createBlock, Transition, mergeProps, unref, toHandlers, withCtx, renderSlot } from 'vue';\nimport '../../../hooks/index.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\n\nconst __default__ = {\n name: \"ElCollapseTransition\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n setup(__props) {\n const ns = useNamespace(\"collapse-transition\");\n const on = {\n beforeEnter(el) {\n if (!el.dataset)\n el.dataset = {};\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n el.style.maxHeight = 0;\n el.style.paddingTop = 0;\n el.style.paddingBottom = 0;\n },\n enter(el) {\n el.dataset.oldOverflow = el.style.overflow;\n if (el.scrollHeight !== 0) {\n el.style.maxHeight = `${el.scrollHeight}px`;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n } else {\n el.style.maxHeight = 0;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n }\n el.style.overflow = \"hidden\";\n },\n afterEnter(el) {\n el.style.maxHeight = \"\";\n el.style.overflow = el.dataset.oldOverflow;\n },\n beforeLeave(el) {\n if (!el.dataset)\n el.dataset = {};\n el.dataset.oldPaddingTop = el.style.paddingTop;\n el.dataset.oldPaddingBottom = el.style.paddingBottom;\n el.dataset.oldOverflow = el.style.overflow;\n el.style.maxHeight = `${el.scrollHeight}px`;\n el.style.overflow = \"hidden\";\n },\n leave(el) {\n if (el.scrollHeight !== 0) {\n el.style.maxHeight = 0;\n el.style.paddingTop = 0;\n el.style.paddingBottom = 0;\n }\n },\n afterLeave(el) {\n el.style.maxHeight = \"\";\n el.style.overflow = el.dataset.oldOverflow;\n el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n }\n };\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Transition, mergeProps({\n name: unref(ns).b()\n }, toHandlers(on)), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"name\"]);\n };\n }\n});\nvar CollapseTransition = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue\"]]);\n\nexport { CollapseTransition as default };\n//# sourceMappingURL=collapse-transition.mjs.map\n","import CollapseTransition from './src/collapse-transition.mjs';\n\nCollapseTransition.install = (app) => {\n app.component(CollapseTransition.name, CollapseTransition);\n};\nconst _CollapseTransition = CollapseTransition;\nconst ElCollapseTransition = _CollapseTransition;\n\nexport { ElCollapseTransition, _CollapseTransition as default };\n//# sourceMappingURL=index.mjs.map\n","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","<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>概况</template>\n </el-menu-item>\n <el-menu-item index=\"user\">\n <el-icon>\n <User />\n </el-icon>\n <template #title>用户</template>\n </el-menu-item>\n <el-menu-item index=\"wish\">\n <el-icon>\n <DataBoard />\n </el-icon>\n <template #title>需求</template>\n </el-menu-item>\n <el-menu-item index=\"config\">\n <el-icon>\n <Setting />\n </el-icon>\n <template #title>配置</template>\n </el-menu-item>\n </el-menu>\n </div>\n <div class=\"container\">\n <router-view></router-view>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { User, DataBoard, DataAnalysis, Setting } from '@element-plus/icons-vue'\n\nconst defaultActive = ref('overview')\nconst isCollapse = ref(false)\nconst $router = useRouter()\nconst $route = useRoute()\nconst 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<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;\n width: 100%;\n }\n .navs {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .el-radio-group {\n display: none;\n }\n .el-menu-nav {\n display: flex;\n }\n .container {\n padding-left: 0;\n margin-top: 30px;\n width: 100%;\n }\n}\n</style>\n"],"names":["__default__","_sfc_main","defineComponent","__props","ns","useNamespace","on","el","_ctx","_cache","openBlock","createBlock","Transition","mergeProps","unref","toHandlers","withCtx","renderSlot","CollapseTransition","_export_sfc","app","_CollapseTransition","SubMenu$1","parent","domNode","idx","parentNode","event","prevDef","EVENT_CODE","triggerEvent","MenuItem$1","namespace","menuChild","SubMenu","Menu$1","menuChildren","child","MenuItem","done","addClass","removeClass","hasClass","_sfc_render","$props","$setup","$data","$options","ElMenuCollapseTransition","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","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,15,16]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@media screen and (max-width: 700px){.user[data-v-8f592632]{margin-top:40px!important}.log-filter[data-v-8f592632]{justify-content:center}}.user[data-v-8f592632]{margin:0 auto}.panel[data-v-8f592632]{max-width:1256px;padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.log-filter[data-v-8f592632]{display:flex;flex-wrap:wrap}.log-filter .item[data-v-8f592632]{margin-right:10px;margin-bottom:10px}.log-filter .item .label[data-v-8f592632]{margin-right:10px;font-size:12px}.text-btn-list[data-v-8f592632]{display:flex;flex-wrap:wrap}.text-btn-list button[data-v-8f592632]{margin-left:0}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a4 as $,g as V,d as S,f as s,c as o,a as e,Z as Q,h as j,r as N,O as T,o as q,j as r,w as n,H as U,a6 as O,a7 as D,F as y,C as k,E as L,I as H,p as P,e as R,k as E,b as _,t as f,D as m,S as Z,x as G,v as J,_ as K}from"./index-1639ad54.js";import{E as W,a as X}from"./el-form-item-fb230be3.js";import{T as M}from"./tip-822b05b7.js";import{r as ee}from"./refresh-be31af7a.js";import"./isEqual-95d6c129.js";import"./index-68448dbd.js";function te(){return $.get("/config/service/overview")}function se(){return $.get("/config/service/config")}function oe(c){return $.put("/config/service/config",c)}const b={getServiceOverview:te,getServiceConfig:se,updateCfg:oe},ae=S({name:"CloseBold"}),ne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},le=e("path",{fill:"currentColor",d:"M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504 738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512 828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496 285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512 195.2 285.696a64 64 0 0 1 0-90.496z"},null,-1),re=[le];function ce(c,p,x,i,h,g){return s(),o("svg",ne,re)}var ie=V(ae,[["render",ce]]);const de=S({name:"Select"}),ue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},_e=e("path",{fill:"currentColor",d:"M77.248 415.04a64 64 0 0 1 90.496 0l226.304 226.304L846.528 188.8a64 64 0 1 1 90.56 90.496l-543.04 543.04-316.8-316.8a64 64 0 0 1 0-90.496z"},null,-1),pe=[_e];function ge(c,p,x,i,h,g){return s(),o("svg",ue,pe)}var fe=V(de,[["render",ge]]);const B=c=>(P("data-v-72be12a2"),c=c(),R(),c),me={class:"user"},he={class:"panel"},ve=B(()=>e("span",null,"服务概况",-1)),ye={class:"service-list"},ke=["src","alt"],Me={key:2},xe={class:"error-panel"},we=B(()=>e("h1",null,"错误信息",-1)),Ce={class:"error"},Ee=B(()=>e("h1",null,"服务相关配置",-1)),be={href:"https://docs.ep.sugarat.top/deploy/online-new.html#_5-%E6%9C%80%E5%90%8E%E6%9B%B4%E6%96%B0%E9%85%8D%E7%BD%AE"},$e={class:"config-container"},Se={class:"flex",style:{flex:"1"}},Be=S({__name:"index",setup(c){const p=Q([{name:"MySQL",key:"mysql",logo:"https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTAyMjIwNA==657359022204",status:!1,des:"存储用户数据",errMsg:""},{name:"七牛云",key:"qiniu",logo:"https://img.cdn.sugarat.top/mdImg/MTY1NzM1ODcyODM0Mg==657358728342",status:!1,des:"文件存储"},{name:"MongoDB",key:"mongodb",logo:"https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTA4OTc3Nw==657359089777",status:!1,des:"用户数据与日志"},{name:"Redis",key:"redis",logo:"https://img.cdn.sugarat.top/mdImg/MTY1NzM1ODgyNzM1MA==657358827350",status:!1,des:"持久化缓存数据",error:"确保安装redis,且监听端口6379"},{name:"腾讯云",key:"tx",logo:"https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTE1MzQzOQ==657359153439",status:!1,des:"短信服务"}]),x=j(),i=N(!1),h=T(()=>p.filter(a=>a.errMsg)),g=()=>{i.value||(i.value=!0,b.getServiceOverview().then(a=>{const{data:v}=a;p.forEach(d=>{const{status:u,errMsg:w}=v[d.key];d.status=u,d.errMsg=w}),L.success("服务状态刷新完成"),i.value=!1}))},z=N([]),A=()=>{b.getServiceConfig().then(a=>{a.data.forEach(v=>{v.data.forEach(d=>{d.disabled=!0})}),z.value=a.data})},I=a=>{b.updateCfg(a).then(()=>{a.disabled=!0,L.success("更新成功"),g()})};return q(()=>{g(),A()}),T(()=>x.getters["public/isMobile"]),(a,v)=>{const d=H,u=G,w=J,Y=W,F=X;return s(),o("div",me,[e("div",he,[e("div",null,[e("h1",null,[ve,r(d,{class:U({loading:i.value}),onClick:g,style:{cursor:"pointer","margin-left":"10px"}},{default:n(()=>[r(E(ee))]),_:1},8,["class"]),O(e("span",null,"数据加载中...",512),[[D,i.value]])]),r(M,null,{default:n(()=>[_("查看各个服务的运行情况")]),_:1}),e("div",ye,[(s(!0),o(y,null,k(p,t=>(s(),o("div",{key:t.key,class:"service-item"},[e("img",{src:t.logo,alt:t.name},null,8,ke),e("p",null,[r(M,null,{default:n(()=>[_(f(t.des),1)]),_:2},1024)]),t.status?(s(),m(u,{key:0,type:"success",size:"small",icon:E(fe),circle:""},null,8,["icon"])):(s(),m(u,{key:1,type:"danger",size:"small",icon:E(ie),circle:""},null,8,["icon"])),!t.status&&t.error?(s(),o("p",Me,[r(M,null,{default:n(()=>[_(f(t.error),1)]),_:2},1024)])):Z("",!0)]))),128))])]),O(e("div",xe,[we,(s(!0),o(y,null,k(h.value,t=>(s(),o("p",{key:t.key},[e("strong",null,f(t.name)+":",1),e("span",Ce,f(t.errMsg),1)]))),128))],512),[[D,h.value.length]]),e("div",null,[Ee,r(M,null,{default:n(()=>[_(" 在此面板,配置服务器运行相关参数 "),e("a",be,[r(u,{type:"primary",link:""},{default:n(()=>[_("配置手册?")]),_:1})])]),_:1})]),e("div",$e,[(s(!0),o(y,null,k(z.value,t=>(s(),o("div",{class:"config-panel",key:t.title},[e("h2",null,f(t.title),1),r(F,{"label-position":"right","label-width":"100px",style:{"max-width":"400px",margin:"0 auto"}},{default:n(()=>[(s(!0),o(y,null,k(t.data,l=>(s(),m(Y,{"label-width":"auto",label:l.label||l.key,key:l.key},{default:n(()=>[e("div",Se,[r(w,{disabled:l.disabled,modelValue:l.value,"onUpdate:modelValue":C=>l.value=C},null,8,["disabled","modelValue","onUpdate:modelValue"]),l.disabled?(s(),m(u,{key:0,onClick:C=>l.disabled=!1,type:"primary",text:""},{default:n(()=>[_("更新")]),_:2},1032,["onClick"])):(s(),m(u,{key:1,onClick:C=>I(l),type:"success",text:""},{default:n(()=>[_("完成")]),_:2},1032,["onClick"]))])]),_:2},1032,["label"]))),128))]),_:2},1024)]))),128))])])])}}});const Ve=K(Be,[["__scopeId","data-v-72be12a2"]]);export{Ve as default};
|
|
2
|
-
//# sourceMappingURL=index-9e6a9bcf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-9e6a9bcf.js","sources":["../../src/apis/modules/config.ts","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/close-bold.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/select.mjs","../../src/pages/dashboard/config/index.vue"],"sourcesContent":["import ajax from '../ajax'\n\nfunction getServiceOverview(): ConfigServiceAPITypes.getServiceOverview {\n return ajax.get('/config/service/overview')\n}\n\nfunction getServiceConfig(): ConfigServiceAPITypes.getServiceConfig {\n return ajax.get('/config/service/config')\n}\n\nfunction updateCfg(data: ConfigServiceAPITypes.ServiceConfigItem) {\n return ajax.put('/config/service/config', data)\n}\n\nexport default {\n getServiceOverview,\n getServiceConfig,\n updateCfg\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: \"CloseBold\"\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: \"M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504 738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512 828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496 285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512 195.2 285.696a64 64 0 0 1 0-90.496z\"\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 closeBold = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { closeBold 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: \"Select\"\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: \"M77.248 415.04a64 64 0 0 1 90.496 0l226.304 226.304L846.528 188.8a64 64 0 1 1 90.56 90.496l-543.04 543.04-316.8-316.8a64 64 0 0 1 0-90.496z\"\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 select = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { select as default };\n","<template>\n <div class=\"user\">\n <div class=\"panel\">\n <!-- 服务概况 -->\n <div>\n <h1>\n <span>服务概况</span>\n <el-icon\n :class=\"{\n loading\n }\"\n @click=\"refreshStatus\"\n style=\"cursor: pointer; margin-left: 10px\"\n >\n <Refresh />\n </el-icon>\n <span v-show=\"loading\">数据加载中...</span>\n </h1>\n <Tip>查看各个服务的运行情况</Tip>\n <div class=\"service-list\">\n <div\n v-for=\"service in serviceList\"\n :key=\"service.key\"\n class=\"service-item\"\n >\n <img :src=\"service.logo\" :alt=\"service.name\" />\n <!-- <p>{{ service.name }}</p> -->\n <p>\n <Tip>{{ service.des }}</Tip>\n </p>\n <el-button\n v-if=\"service.status\"\n type=\"success\"\n size=\"small\"\n :icon=\"Select\"\n circle\n />\n <el-button\n v-else\n type=\"danger\"\n size=\"small\"\n :icon=\"CloseBold\"\n circle\n />\n <p v-if=\"!service.status && service.error\">\n <Tip>{{ service.error }}</Tip>\n </p>\n </div>\n </div>\n </div>\n <div v-show=\"showErrorList.length\" class=\"error-panel\">\n <h1>错误信息</h1>\n <p v-for=\"err in showErrorList\" :key=\"err.key\">\n <strong>{{ err.name }}:</strong>\n <span class=\"error\">{{ err.errMsg }}</span>\n </p>\n </div>\n <div>\n <h1>服务相关配置</h1>\n <Tip>\n 在此面板,配置服务器运行相关参数\n <a\n href=\"https://docs.ep.sugarat.top/deploy/online-new.html#_5-%E6%9C%80%E5%90%8E%E6%9B%B4%E6%96%B0%E9%85%8D%E7%BD%AE\"\n >\n <el-button type=\"primary\" link>配置手册?</el-button></a\n >\n </Tip>\n </div>\n <div class=\"config-container\">\n <div\n class=\"config-panel\"\n v-for=\"serverItem in serverConfig\"\n :key=\"serverItem.title\"\n >\n <h2>\n {{ serverItem.title }}\n </h2>\n <el-form\n :label-position=\"'right'\"\n label-width=\"100px\"\n style=\"max-width: 400px; margin: 0 auto\"\n >\n <el-form-item\n :label-width=\"'auto'\"\n v-for=\"cfgItem in serverItem.data\"\n :label=\"cfgItem.label || cfgItem.key\"\n :key=\"cfgItem.key\"\n >\n <div class=\"flex\" style=\"flex: 1\">\n <el-input\n :disabled=\"cfgItem.disabled\"\n v-model=\"cfgItem.value\"\n />\n <el-button\n v-if=\"cfgItem.disabled\"\n @click=\"cfgItem.disabled = false\"\n type=\"primary\"\n text\n >更新</el-button\n >\n <el-button\n v-else\n @click=\"updateCfg(cfgItem)\"\n type=\"success\"\n text\n >完成</el-button\n >\n </div>\n </el-form-item>\n </el-form>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { useStore } from 'vuex'\nimport { Select, CloseBold, Refresh } from '@element-plus/icons-vue'\nimport { ConfigServiceAPI } from '@/apis'\nimport Tip from '../tasks/components/infoPanel/tip.vue'\n\nconst serviceList = reactive([\n {\n name: 'MySQL',\n key: 'mysql',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTAyMjIwNA==657359022204',\n status: false,\n des: '存储用户数据',\n errMsg: ''\n },\n {\n name: '七牛云',\n key: 'qiniu',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1ODcyODM0Mg==657358728342',\n status: false,\n des: '文件存储'\n },\n {\n name: 'MongoDB',\n key: 'mongodb',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTA4OTc3Nw==657359089777',\n status: false,\n des: '用户数据与日志'\n },\n {\n name: 'Redis',\n key: 'redis',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1ODgyNzM1MA==657358827350',\n status: false,\n des: '持久化缓存数据',\n error: '确保安装redis,且监听端口6379'\n },\n {\n name: '腾讯云',\n key: 'tx',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTE1MzQzOQ==657359153439',\n status: false,\n des: '短信服务'\n }\n])\nconst $store = useStore()\nconst loading = ref(false)\nconst showErrorList = computed(() => serviceList.filter((item) => item.errMsg))\nconst refreshStatus = () => {\n if (loading.value) return\n loading.value = true\n ConfigServiceAPI.getServiceOverview().then((v) => {\n const { data } = v\n serviceList.forEach((item) => {\n const { status, errMsg } = data[item.key]\n item.status = status\n item.errMsg = errMsg\n })\n ElMessage.success('服务状态刷新完成')\n loading.value = false\n })\n}\n\nconst serverConfig = ref([])\nconst getServiceConfig = () => {\n ConfigServiceAPI.getServiceConfig().then((v) => {\n // console.log(v.data)\n v.data.forEach((v) => {\n v.data.forEach((v) => {\n v.disabled = true\n })\n })\n serverConfig.value = v.data\n })\n}\nconst updateCfg = (item: ConfigServiceAPITypes.ServiceConfigItem) => {\n ConfigServiceAPI.updateCfg(item).then(() => {\n item.disabled = true\n ElMessage.success('更新成功')\n refreshStatus()\n })\n}\nonMounted(() => {\n refreshStatus()\n getServiceConfig()\n})\nconst isMobile = computed(() => $store.getters['public/isMobile'])\n</script>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n}\n\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\nh1 {\n margin: 0;\n padding: 10px 0;\n font-size: 20px;\n font-weight: bold;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.service-list {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n\n.service-item {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin: 10px;\n min-width: 120px;\n\n img {\n width: 80px;\n }\n\n p {\n text-align: center;\n padding-top: 10px;\n font-size: 14px;\n }\n}\n\n@keyframes rotate {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.loading {\n margin-left: 10px;\n animation: rotate 1s linear infinite;\n}\n\n.error-panel {\n padding: 0 20px;\n\n p {\n .error {\n color: red;\n }\n\n margin-bottom: 10px;\n }\n}\n\n.config-container {\n display: flex;\n justify-content: space-around;\n flex-wrap: wrap;\n}\n\n.config-panel {\n h2 {\n text-align: center;\n font-size: 16px;\n margin-bottom: 10px;\n }\n}\n</style>\n"],"names":["getServiceOverview","ajax","getServiceConfig","updateCfg","data","ConfigServiceAPI","_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","closeBold","_export_sfc","select","serviceList","reactive","$store","useStore","loading","ref","showErrorList","computed","item","refreshStatus","v","status","errMsg","ElMessage","serverConfig","v2","v3","onMounted"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a4 as lt,g as Ae,d as Ce,f as r,c as y,a as s,h as at,a1 as ot,r as _,Z as H,O as C,a5 as Ne,o as nt,j as e,w as o,k as u,a6 as P,b as n,a7 as we,F as ye,C as ke,D as $,a8 as xe,E as c,s as F,a9 as K,aa as st,ab as L,x as it,v as rt,p as dt,e as ut,t as w,S as I,ac as ct,ad as pt,ae as mt,I as ft,af as _t,_ as vt}from"./index-1639ad54.js";import{v as ht}from"./el-loading-e9365e7e.js";import{E as gt,a as wt}from"./el-form-item-fb230be3.js";import{E as yt}from"./el-dialog-c11c4af2.js";import{T as R,E as kt}from"./tip-822b05b7.js";import{E as xt,s as bt}from"./el-pagination-85149e11.js";import{E as Ct,a as zt}from"./el-select-2a16e5df.js";import{E as Et,a as St}from"./el-table-column-19feeab8.js";import{E as Vt}from"./el-switch-abdd5a33.js";import{E as $t,a as Fe,b as It,c as Dt}from"./el-dropdown-item-3eb29c67.js";import{L as Tt,I as Nt}from"./index-74330c06.js";import{D as z,A as Le,f as be}from"./index-9e6bd406.js";import{E as Me}from"./index-b8357360.js";import{r as Ft}from"./refresh-be31af7a.js";import{d as Lt}from"./data-analysis-632af70e.js";import"./isEqual-95d6c129.js";import"./index-68448dbd.js";import"./validator-5c60ab85.js";import"./aria-bc8e8b0f.js";function Mt(D,E,B=[]){return lt.post("/action/download/list",{pageSize:D,pageIndex:E,extraIds:B})}const At={getDownloadActions:Mt},Ut=Ce({name:"Download"}),Ot={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ht=s("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64v450.304z"},null,-1),Pt=[Ht];function Rt(D,E,B,M,J,A){return r(),y("svg",Ot,Pt)}var Bt=Ae(Ut,[["render",Rt]]);const Jt=Ce({name:"Picture"}),qt={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},jt=s("path",{fill:"currentColor",d:"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z"},null,-1),Wt=s("path",{fill:"currentColor",d:"M384 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952L185.408 876.992z"},null,-1),Xt=[jt,Wt];function Zt(D,E,B,M,J,A){return r(),y("svg",qt,Xt)}var Gt=Ae(Jt,[["render",Zt]]);const fe=D=>(dt("data-v-7d8411d6"),D=D(),ut(),D),Kt={class:"files"},Qt={class:"panel header"},Yt={class:"item"},el=fe(()=>s("span",{class:"label"},"分类",-1)),tl={class:"item"},ll=fe(()=>s("span",{class:"label"},"任务",-1)),al={class:"item"},ol={class:"item"},nl={class:"panel"},sl={class:"export-btns flex fac"},il={class:"control-item"},rl={class:"control-item"},dl={class:"control-item"},ul={class:"control-item"},cl={class:"panel"},pl={"element-loading-text":"...",style:{"--el-loading-spinner-size":"20px"}},ml={class:"panel"},fl={key:0},_l={key:1},vl={key:2},hl={key:0},gl={key:1},wl={key:2},yl={key:3},kl={class:"flex fc"},xl={class:"panel"},bl=fe(()=>s("strong",null,[n("如果你觉得应用不错,"),s("a",{style:{color:"#409eff"},href:"http://docs.ep.sugarat.top/praise/index.html",target:"_blank",rel:"noopener noreferrer"},"请作者喝茶 🍵")],-1)),Cl={class:"imageDes"},zl=fe(()=>s("div",{class:"imageLoading"},"Loading...",-1)),El={class:"imageLoading"},Sl={class:"text-btns"},Vl={class:"panel flex fc"},$l=Ce({__name:"index",setup(D){const E=at(),B=ot(),M=_(!1),J=_(""),A=_(localStorage.getItem("ep-show-images")==="true"),Q=_(!0),Y=_(!1),se=_(!1),v=H({actions:[],pageSize:3,pageCount:0,pageCurrent:1,pageTotal:0,compressTask:[]}),q=()=>{const t=JSON.parse(localStorage.getItem("ep_compress_task")||"[]");v.compressTask=t,At.getDownloadActions(v.pageSize,v.pageCurrent,t.map(a=>a.id)).then(a=>{const{actions:i,sum:f}=a.data,d=!!i.find(p=>p.status===z.ARCHIVE);i.filter(p=>p.type===Le.Compress).forEach(p=>{const m=t.findIndex(b=>b.id===p.id);p.status===z.SUCCESS&&m!==-1&&(J.value=p.url,M.value=!0,xe(p.url),t.splice(m,1)),p.status===z.ARCHIVE&&m===-1&&t.push(p),p.status===z.FAIL&&m!==-1&&t.splice(m,1)}),v.compressTask=t,localStorage.setItem("ep_compress_task",JSON.stringify(t)),d&&setTimeout(q,1e3),v.pageTotal=f,v.actions=i,v.pageCount=Math.ceil(f/v.pageSize)})},Ue=t=>{v.pageCurrent=t,q()},ze=(t,a)=>{if(t.length===0){c.warning("表格中没有可导出的内容");return}const i=["提交时间","任务","文件名","大小"];Y.value&&i.push("原文件名"),Q.value&&i.push("姓名");const f=i.map(m=>({value:m,row:2})),d=t.reduce((m,b)=>(JSON.parse(b.info).forEach(U=>{m.includes(U.text)||m.push(U.text)}),m),[]);f.push({value:"提交信息",col:d.length});const p=t.map(m=>{const{date:b,task_name:U,name:ce,size:Z,people:g}=m,V=JSON.parse(m.info).reduce((G,T)=>(G[T.text]=T.value,G),{}),pe=d.map(G=>{var T;return(T=V[G])!=null?T:"-"}),O=[F(new Date(b)),U,ce,K(Z)];return Y.value&&O.push(m.origin_name||"-"),Q.value&&O.push(g||"-"),O.push(...pe),O});p.unshift(d),st(f,p,a||"数据导出_".concat(F(new Date,"yyyy年MM月日hh时mm分ss秒"),".xlsx")),c.success("导出成功")},Oe=C(()=>E.state.category.categoryList),ee=_("all"),te=C(()=>E.state.task.taskList),S=_("all"),ie=C(()=>ee.value==="all"?te.value:(S.value="all",te.value.filter(t=>t.category===ee.value))),He=C(()=>{const t=ie.value.find(a=>a.key===S.value);return t==null?void 0:t.name});Ne(()=>{te.value.length&&te.value.some(t=>t.key===B.query.task)&&(S.value="".concat(B.query.task))});const re=_(!1),k=H([]),Ee=()=>{re.value=!0,k.splice(0,k.length),L.getFileList().then(t=>{k.push(...t.data.files),re.value=!1})},_e=_(),le=_(""),ae=C(()=>k.filter(t=>ee.value==="no-task"?te.value.every(a=>a.key!==t.task_key):ie.value.length===0?!1:S.value==="all"?ie.value.find(a=>a.key===t.task_key):S.value===t.task_key).filter(t=>le.value?JSON.stringify([F(new Date(t.date)),K(t.size),t.people,t.name,t.task_name,t.info]).replace(/[:'"{},[\]]/g,"").includes(le.value):!0)),Pe=()=>{_e.value.clearSelection()},x=H([]),Se=t=>{x.splice(0,x.length),x.push(...t)},j=_(!1),Ve=t=>{const a=x.map(i=>i.id);switch(t){case"download":if(x.length===0){c.warning("没有选中需要下载的内容");return}if(j.value){c.warning("已经有批量下载任务正在进行,请稍后再试");return}L.batchDownload(a,"批量下载_".concat(F(new Date,"yyyy年MM月日hh时mm分ss秒"))).then(()=>{q()}).catch(()=>{c.error("所选文件均已从服务器上移除"),j.value=!1}),c.info("开始归档选中的文件,请赖心等待");break;case"delete":if(x.length===0){c.warning("没有选中需要删除的内容");return}Me.confirm("删除后无法恢复,是否删除","数据无价,请谨慎操作").then(()=>{L.batchDel(a).then(()=>{k.splice(0,k.length,...k.filter(i=>!a.includes(i.id))),c.success("删除成功")})}).catch(()=>{c.info("取消")});break;case"excel":if(x.length===0){c.warning("没有选中需要导出的内容");return}ze(x,"批量导出_".concat(F(new Date,"yyyy年MM月日hh时mm分ss秒"),".xlsx")),c.success("导出成功");break}Pe()},ve=_(!1),de=H([]),Re=t=>{de.splice(0,de.length),de.push(...pt(t.info)),ve.value=!0},oe=_(!1),h=H({oldName:"",newName:"",suffix:"",id:-1}),Be=t=>{const{id:a,name:i}=t,f=mt(i);h.oldName=i,h.suffix=f,h.id=a,oe.value=!0},Je=()=>{if(be.test(h.newName)){c.error("文件名不能包含".concat(be.source,"等字符")),be.lastIndex=0;return}L.updateFilename(h.id,"".concat(h.newName).concat(h.suffix)).then(()=>{c.success("修改成功");const t=k.find(a=>a.id===h.id);t.name="".concat(h.newName).concat(h.suffix)}).catch(()=>{c.error("修改失败")}).finally(()=>{oe.value=!1})},qe=t=>{const{id:a,name:i}=t;L.getOneFileUrl(a).then(f=>{const{link:d}=f.data;M.value=!0,J.value=d,xe(d,i),q()}).catch(()=>{c.error("文件已从服务器上移除")})},je=t=>{const a=k.findIndex(i=>i===t);Me.confirm("确认删除此文件吗?","数据无价,请谨慎操作").then(()=>{L.deleteOneFile(t.id).then(()=>{c.success("删除成功"),k.splice(a,1)})}).catch(()=>{c.info("取消删除")})},W=_(6),We=t=>{W.value=t},Xe=C(()=>Math.ceil(ae.value.length/W.value)),ne=_(1),X=C(()=>{const t=(ne.value-1)*W.value,a=ne.value*W.value;return ae.value.slice(t,a)}),Ze=C(()=>K(ae.value.reduce((t,a)=>t+a.size,0))),Ge=C(()=>K(k.reduce((t,a)=>t+a.size,0))),Ke=t=>{ne.value=t},Qe=()=>{c.success({message:"刷新成功"}),Ee()},Ye=()=>{const t=k.filter(a=>a.task_key===S.value).map(a=>a.id);if(t.length===0){c.warning("该任务中没有数据");return}if(j.value){c.warning("已经有批量下载任务正在进行,请稍后再试");return}j.value=!0,L.batchDownload(t,He.value).then(()=>{q()}).catch(()=>{c.error("所选任务中的文件均已从服务器上移除")}).finally(()=>{setTimeout(()=>{j.value=!1},1e3)}),c.info("开始归档选中的文件,请赖心等待")},ue=H([]);H({order:null,prop:null});const $e=_(""),et=C(()=>ue.map(t=>t.preview)),Ie=t=>{$e.value=X.value[t].name};let he=!1;const De=()=>{const t=X.value.map(a=>a.id);t.length===0||he||(he=!0,L.checkImageFilePreviewUrl(t).then(a=>{he=!1;const{data:i}=a;i.length===0||i.length!==X.value.length||(ue.splice(0,ue.length),X.value.forEach((f,d)=>{const{cover:p,preview:m}=i[d];f.cover=p,ue.push({cover:p,preview:m,name:f.name,date:f.date,id:f.id})}))}))};Ne(()=>{if(window.localStorage.setItem("ep-show-images","".concat(A.value)),!!A.value){if(le.value||ne.value||W.value){De();return}De()}}),nt(()=>{Ee(),q(),E.dispatch("category/getCategory"),E.dispatch("task/getTask")});const Te=C(()=>E.getters["public/isMobile"]);return(t,a)=>{const i=zt,f=Ct,d=it,p=rt,m=ft,b=It,U=Dt,ce=$t,Z=Vt,g=St,V=_t,pe=Et,O=xt,G=kt,T=yt,ge=gt,tt=wt,me=ht;return r(),y("div",Kt,[s("div",Qt,[s("div",Yt,[el,e(f,{size:"default",modelValue:ee.value,"onUpdate:modelValue":a[0]||(a[0]=l=>ee.value=l),filterable:"",placeholder:"请选择"},{default:o(()=>[e(i,{label:"全部",value:"all"}),e(i,{label:"默认",value:"default"}),(r(!0),y(ye,null,ke(Oe.value,l=>(r(),$(i,{key:l.k,label:l.name,value:l.k},null,8,["label","value"]))),128)),e(i,{label:"无关联任务",value:"no-task"}),e(i,{label:"♻️回收站♻️",value:"trash"})]),_:1},8,["modelValue"])]),s("div",tl,[ll,e(f,{size:"default",modelValue:S.value,"onUpdate:modelValue":a[1]||(a[1]=l=>S.value=l),filterable:"",placeholder:"请选择"},{default:o(()=>[e(i,{label:"全部",value:"all"}),(r(!0),y(ye,null,ke(ie.value,l=>(r(),$(i,{key:l.key,label:l.name,value:l.key},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),s("div",al,[e(d,{loading:j.value,disabled:S.value==="all",type:"primary",size:"default",icon:u(Bt),onClick:Ye},{default:o(()=>[n("下载任务中的文件")]),_:1},8,["loading","disabled","icon"])]),s("div",ol,[e(p,{size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":u(bt),modelValue:le.value,"onUpdate:modelValue":a[2]||(a[2]=l=>le.value=l)},null,8,["prefix-icon","modelValue"])])]),s("div",nl,[s("div",sl,[e(ce,{trigger:"click",onCommand:Ve},{dropdown:o(()=>[e(U,null,{default:o(()=>[e(b,{disabled:x.length===0,command:"download"},{default:o(()=>[n("下载")]),_:1},8,["disabled"]),e(b,{disabled:x.length===0,command:"delete"},{default:o(()=>[n("删除")]),_:1},8,["disabled"]),e(b,{disabled:x.length===0,command:"excel"},{default:o(()=>[n("导出记录")]),_:1},8,["disabled"])]),_:1})]),default:o(()=>[e(d,{type:"primary",size:"default"},{default:o(()=>[n(" 批量操作"),e(m,{class:"el-icon--right"},{default:o(()=>[e(u(Fe))]),_:1})]),_:1})]),_:1}),P(s("div",null,[e(ce,{trigger:"click",onCommand:Ve},{dropdown:o(()=>[e(U,null,{default:o(()=>[e(b,{command:"download"},{default:o(()=>[n("下载")]),_:1}),e(b,{command:"delete"},{default:o(()=>[n("删除")]),_:1}),e(b,{command:"excel"},{default:o(()=>[n("导出记录")]),_:1})]),_:1})]),default:o(()=>[e(d,{type:"primary",disabled:x.length===0,size:"default"},{default:o(()=>[n(" 批量操作 "),e(m,null,{default:o(()=>[e(u(Fe))]),_:1})]),_:1},8,["disabled"])]),_:1})],512),[[we,!1]]),e(d,{size:"default",icon:u(Ft),onClick:Qe},{default:o(()=>[n("刷新")]),_:1},8,["icon"]),e(d,{title:"导出表格中所有的数据",type:"success",size:"default",icon:u(Lt),onClick:a[3]||(a[3]=()=>{ze(ae.value,"筛选数据导出_".concat(u(F)(new Date,"yyyy年MM月日hh时mm分ss秒"),".xlsx"))}),disabled:X.value.length===0},{default:o(()=>[n("导出记录")]),_:1},8,["icon","disabled"]),s("div",il,[n(" 显示图片 "),e(Z,{"inline-prompt":"",modelValue:A.value,"onUpdate:modelValue":a[4]||(a[4]=l=>A.value=l),"active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",rl,[n(" 展示原文件名 "),e(Z,{"inline-prompt":"",modelValue:Y.value,"onUpdate:modelValue":a[5]||(a[5]=l=>Y.value=l),"active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",dl,[n(" 显示提交人姓名 "),e(Z,{"inline-prompt":"",modelValue:Q.value,"onUpdate:modelValue":a[6]||(a[6]=l=>Q.value=l),"active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",ul,[n(" ⏰ 查看下载历史 "),e(Z,{modelValue:se.value,"onUpdate:modelValue":a[7]||(a[7]=l=>se.value=l),style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"}},null,8,["modelValue"])])])]),P(s("div",cl,[e(R,{style:{"font-size":"16px"}},{default:o(()=>[n("正在进行归档的任务 "+w(v.compressTask.length)+"个",1)]),_:1}),e(R,null,{default:o(()=>[n("详细归档记录点击右上角 “⏰查看下载历史”")]),_:1}),(r(!0),y(ye,null,ke(v.compressTask,(l,N)=>(r(),y("p",{key:l.id,class:"tc",style:{"margin-top":"10px"}},[n(w(N+1)+". "+w(l.tip)+" ",1),P(s("span",pl,null,512),[[me,!0]])]))),128))],512),[[we,v.compressTask.length&&!se.value]]),P(s("div",ml,[e(R,{style:{"font-size":"16px"}},{default:o(()=>[n("”❤️下面展示历史的下载记录与归档任务完成情况❤️“")]),_:1}),e(R,null,{default:o(()=>[n("”再也不需要在页面停留等待归档完成“")]),_:1}),s("div",null,[P((r(),$(pe,{"element-loading-text":"Loading...","tooltip-effect":"dark",multipleTable:"",ref_key:"multipleTable",ref:_e,onSelectionChange:Se,stripe:"",border:"","default-sort":{prop:"date",order:"descending"},"max-height":666,data:v.actions,style:{width:"100%"}},{default:o(()=>[e(g,{prop:"date",label:"触发时间",width:"200"},{default:o(l=>[n(w(u(F)(new Date(l.row.date))),1)]),_:1}),e(g,{prop:"tip",label:"文件信息"}),e(g,{prop:"type",label:"任务类型"},{default:o(l=>[l.row.type===u(Le).Compress?(r(),$(V,{key:0,type:"primary"},{default:o(()=>[n("归档下载")]),_:1})):(r(),$(V,{key:1,type:"default"},{default:o(()=>[n("普通下载")]),_:1}))]),_:1}),e(g,{prop:"size",label:"大小",width:"100"},{default:o(l=>[l.row.status===u(z).ARCHIVE?(r(),y("span",fl,[e(V,{type:"danger"},{default:o(()=>[n("归档中...")]),_:1})])):l.row.status!==u(z).FAIL?(r(),y("span",_l,w(l.row.size?u(K)(l.row.size):"未知大小"),1)):I("",!0),l.row.status===u(z).FAIL?(r(),y("span",vl,[e(V,{type:"danger"},{default:o(()=>[n("归档失败")]),_:1})])):I("",!0)]),_:1}),e(g,{fixed:"right",label:"操作",width:"140"},{default:o(l=>[l.row.status===u(z).ARCHIVE?P((r(),y("div",hl,[n(" 归档中... ")])),[[me,!0]]):I("",!0),l.row.status===u(z).EXPIRED?(r(),y("div",gl," 链接已失效 ")):I("",!0),l.row.status===u(z).FAIL?(r(),y("div",wl," 联系开发者,提供错误信息:"+w(l.row.error),1)):I("",!0),l.row.status===u(z).SUCCESS?(r(),y("div",yl,[e(V,{onClick:N=>u(xe)(l.row.url),type:"primary"},{default:o(()=>[n("下载")]),_:2},1032,["onClick"]),e(V,{type:"success",style:{"margin-left":"10px"},onClick:N=>u(ct)(l.row.url)},{default:o(()=>[n("链接")]),_:2},1032,["onClick"]),e(V,{type:"warning",style:{"margin-left":"10px"},onClick:()=>{M.value=!0,J.value=l.row.url}},{default:o(()=>[n("二维码")]),_:2},1032,["onClick"])])):I("",!0)]),_:1})]),_:1},8,["data"])),[[me,re.value]]),s("div",kl,[e(O,{small:"","current-page":v.pageCurrent,"page-count":v.pageCount,total:v.pageTotal,layout:"total, prev, pager, next",onCurrentChange:Ue},null,8,["current-page","page-count","total"])])])],512),[[we,se.value]]),s("div",xl,[e(R,null,{default:o(()=>[n("空间占用情况:"+w(Ze.value)+" / "+w(Ge.value),1)]),_:1}),e(R,null,{default:o(()=>[n("↑ 仅供使用者参考,应用无存储空间上限,也不收费")]),_:1}),e(R,null,{default:o(()=>[bl]),_:1}),P((r(),$(pe,{"element-loading-text":"Loading...","tooltip-effect":"dark",multipleTable:"",ref_key:"multipleTable",ref:_e,onSelectionChange:Se,stripe:"",border:"","max-height":666,data:X.value,style:{width:"100%"}},{default:o(()=>[e(g,{type:"selection",width:"55"}),e(g,{prop:"date",label:"提交时间",width:"160"},{default:o(l=>[n(w(u(F)(new Date(l.row.date))),1)]),_:1}),e(g,{prop:"task_name",label:"任务",width:"150"}),e(g,{prop:"name",label:"文件名",width:"200"}),Y.value?(r(),$(g,{key:0,prop:"origin_name",label:"原文件名",width:"200"},{default:o(l=>[n(w(l.row.origin_name||"-"),1)]),_:1})):I("",!0),e(g,{prop:"size",label:"大小"},{default:o(l=>[n(w(l.row.size===0?"未知大小":u(K)(l.row.size)),1)]),_:1}),A.value?(r(),$(g,{key:1,label:"缩略图",width:"120"},{default:o(l=>[e(G,{onSwitch:Ie,onClick:N=>Ie(l.$index),"preview-teleported":"","preview-src-list":et.value,"initial-index":l.$index,lazy:"",style:{width:"100px",height:"100px"},src:l.row.cover,fit:"cover"},{viewer:o(()=>[s("div",Cl,w($e.value),1)]),placeholder:o(()=>[zl]),error:o(()=>[s("div",El,[n(" 不支持 "),e(m,null,{default:o(()=>[e(u(Gt))]),_:1})])]),_:2},1032,["onClick","preview-src-list","initial-index","src"])]),_:1})):I("",!0),Q.value?(r(),$(g,{key:2,prop:"people",width:"100",label:"限制名单"},{default:o(l=>[n(w(l.row.people||"-"),1)]),_:1})):I("",!0),e(g,{fixed:"right",label:"操作",width:"140"},{default:o(l=>[s("div",Sl,[e(d,{onClick:N=>Re(l.row),type:"primary",text:"",size:"small"},{default:o(()=>[n("查看提交信息")]),_:2},1032,["onClick"]),e(d,{onClick:N=>Be(l.row),type:"primary",text:"",size:"small"},{default:o(()=>[n("修改文件名")]),_:2},1032,["onClick"]),e(d,{onClick:N=>qe(l.row),type:"primary",text:"",size:"small"},{default:o(()=>[n("下载")]),_:2},1032,["onClick"]),e(d,{onClick:N=>je(l.row),type:"primary",text:"",size:"small"},{default:o(()=>[n("删除")]),_:2},1032,["onClick"])])]),_:1})]),_:1},8,["data"])),[[me,re.value]])]),s("div",Vl,[e(O,{"current-page":ne.value,onCurrentChange:Ke,background:"","page-count":Xe.value,"page-sizes":[6,10,50,100],"page-size":W.value,onSizeChange:We,total:ae.value.length,layout:"total, sizes, prev, pager, next, jumper"},null,8,["current-page","page-count","page-size","total"])]),e(T,{fullscreen:Te.value,title:"提交填写的信息",modelValue:ve.value,"onUpdate:modelValue":a[8]||(a[8]=l=>ve.value=l)},{default:o(()=>[e(Nt,{infos:de,disabled:!0},null,8,["infos"])]),_:1},8,["fullscreen","modelValue"]),e(Tt,{value:M.value,"onUpdate:value":a[9]||(a[9]=l=>M.value=l),title:"下载链接",link:J.value},null,8,["value","link"]),e(T,{fullscreen:Te.value,title:"修改文件名",modelValue:oe.value,"onUpdate:modelValue":a[13]||(a[13]=l=>oe.value=l)},{default:o(()=>[s("div",null,[e(tt,{"label-width":"100px",model:h},{default:o(()=>[e(ge,{label:"原文件名",prop:"newName"},{default:o(()=>[e(p,{modelValue:h.oldName,"onUpdate:modelValue":a[10]||(a[10]=l=>h.oldName=l),disabled:""},null,8,["modelValue"])]),_:1}),e(ge,{label:"新文件名",prop:"newName"},{default:o(()=>[e(p,{modelValue:h.newName,"onUpdate:modelValue":a[11]||(a[11]=l=>h.newName=l),placeholder:"请输入新文件名"},{append:o(()=>[n(w(h.suffix),1)]),_:1},8,["modelValue"])]),_:1}),e(ge,null,{default:o(()=>[e(d,{type:"success",onClick:Je},{default:o(()=>[n("保存")]),_:1}),e(d,{onClick:a[12]||(a[12]=l=>oe.value=!1)},{default:o(()=>[n("取消")]),_:1})]),_:1})]),_:1},8,["model"])])]),_:1},8,["fullscreen","modelValue"])])}}});const Zl=vt($l,[["__scopeId","data-v-7d8411d6"]]);export{Zl as default};
|
|
2
|
-
//# sourceMappingURL=index-ac06071b.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-ac06071b.js","sources":["../../src/apis/modules/action.ts","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/download.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/picture.mjs","../../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","<template>\n <div class=\"files\">\n <!-- 筛选框 -->\n <div class=\"panel header\">\n <div class=\"item\">\n <span class=\"label\">分类</span>\n <!--TODO: multiple 多选待评估 -->\n <el-select\n size=\"default\"\n v-model=\"selectCategory\"\n filterable\n placeholder=\"请选择\"\n >\n <el-option label=\"全部\" value=\"all\" />\n <el-option label=\"默认\" value=\"default\" />\n <el-option\n v-for=\"item in categories\"\n :key=\"item.k\"\n :label=\"item.name\"\n :value=\"item.k\"\n />\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\n size=\"default\"\n v-model=\"selectTask\"\n filterable\n placeholder=\"请选择\"\n >\n <el-option label=\"全部\" value=\"all\" />\n <el-option\n v-for=\"item in filterTasks\"\n :key=\"item.key\"\n :label=\"item.name\"\n :value=\"item.key\"\n ></el-option>\n </el-select>\n </div>\n <div class=\"item\">\n <el-button\n :loading=\"batchDownStart\"\n :disabled=\"selectTask === 'all'\"\n type=\"primary\"\n size=\"default\"\n :icon=\"Download\"\n @click=\"handleDownloadTask\"\n >下载任务中的文件</el-button\n >\n </div>\n <div class=\"item\">\n <el-input\n size=\"default\"\n clearable\n placeholder=\"请输入要检索的内容\"\n :prefix-icon=\"Search\"\n v-model=\"searchWord\"\n >\n </el-input>\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 <arrow-down />\n </el-icon>\n </el-button>\n <template #dropdown>\n <el-dropdown-menu>\n <el-dropdown-item\n :disabled=\"selectItem.length === 0\"\n command=\"download\"\n >下载</el-dropdown-item\n >\n <el-dropdown-item\n :disabled=\"selectItem.length === 0\"\n command=\"delete\"\n >删除</el-dropdown-item\n >\n <el-dropdown-item\n :disabled=\"selectItem.length === 0\"\n command=\"excel\"\n >导出记录</el-dropdown-item\n >\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\n type=\"primary\"\n :disabled=\"selectItem.length === 0\"\n size=\"default\"\n >\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\">下载</el-dropdown-item>\n <el-dropdown-item command=\"delete\">删除</el-dropdown-item>\n <el-dropdown-item command=\"excel\">导出记录</el-dropdown-item>\n </el-dropdown-menu>\n </template>\n </el-dropdown>\n </div>\n <el-button size=\"default\" :icon=\"Refresh\" @click=\"handleRefresh\"\n >刷新</el-button\n >\n <el-button\n title=\"导出表格中所有的数据\"\n type=\"success\"\n size=\"default\"\n :icon=\"DataAnalysis\"\n @click=\"\n () => {\n handleExportExcel(\n filterFiles,\n `筛选数据导出_${formatDate(\n new Date(),\n 'yyyy年MM月日hh时mm分ss秒'\n )}.xlsx`\n )\n }\n \"\n :disabled=\"showFilterFiles.length === 0\"\n >导出记录</el-button\n >\n <div class=\"control-item\">\n 显示图片\n <el-switch\n inline-prompt\n v-model=\"showImg\"\n active-color=\"#13ce66\"\n inactive-color=\"#ff4949\"\n active-text=\"是\"\n inactive-text=\"否\"\n />\n </div>\n <div class=\"control-item\">\n 展示原文件名\n <el-switch\n inline-prompt\n v-model=\"showOriginName\"\n active-color=\"#13ce66\"\n inactive-color=\"#ff4949\"\n active-text=\"是\"\n inactive-text=\"否\"\n />\n </div>\n <div class=\"control-item\">\n 显示提交人姓名\n <el-switch\n inline-prompt\n v-model=\"showPeople\"\n active-color=\"#13ce66\"\n inactive-color=\"#ff4949\"\n active-text=\"是\"\n inactive-text=\"否\"\n />\n </div>\n <div class=\"control-item\">\n ⏰ 查看下载历史\n <el-switch\n v-model=\"showHistoryPanel\"\n style=\"\n --el-switch-on-color: #13ce66;\n --el-switch-off-color: #ff4949;\n \"\n />\n </div>\n </div>\n </div>\n <div\n class=\"panel\"\n v-show=\"historyDownloadRecord.compressTask.length && !showHistoryPanel\"\n >\n <tip style=\"font-size: 16px\"\n >正在进行归档的任务\n {{ historyDownloadRecord.compressTask.length }}个</tip\n >\n <tip>详细归档记录点击右上角 “⏰查看下载历史”</tip>\n <p\n v-for=\"(record, idx) in historyDownloadRecord.compressTask\"\n :key=\"record.id\"\n class=\"tc\"\n style=\"margin-top: 10px\"\n >\n {{ idx + 1 }}. {{ record.tip }}\n <span\n v-loading=\"true\"\n element-loading-text=\"...\"\n style=\"--el-loading-spinner-size: 20px\"\n ></span>\n </p>\n </div>\n <div class=\"panel\" v-show=\"showHistoryPanel\">\n <tip style=\"font-size: 16px\"\n >”❤️下面展示历史的下载记录与归档任务完成情况❤️“</tip\n >\n <tip>”再也不需要在页面停留等待归档完成“</tip>\n <div>\n <el-table\n v-loading=\"isLoadingData\"\n element-loading-text=\"Loading...\"\n tooltip-effect=\"dark\"\n multipleTable\n ref=\"multipleTable\"\n @selection-change=\"handleSelectionChange\"\n stripe\n border\n :default-sort=\"{ prop: 'date', order: 'descending' }\"\n :max-height=\"666\"\n :data=\"historyDownloadRecord.actions\"\n style=\"width: 100%\"\n >\n <el-table-column prop=\"date\" label=\"触发时间\" width=\"200\">\n <template #default=\"scope\">{{\n formatDate(new Date(scope.row.date))\n }}</template>\n </el-table-column>\n <el-table-column prop=\"tip\" label=\"文件信息\"></el-table-column>\n <el-table-column prop=\"type\" label=\"任务类型\">\n <template #default=\"scope\">\n <el-link\n v-if=\"scope.row.type === ActionType.Compress\"\n type=\"primary\"\n >归档下载</el-link\n >\n <el-link v-else type=\"default\">普通下载</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\"\n ><el-link type=\"danger\">归档中...</el-link></span\n >\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\"\n ><el-link type=\"danger\">归档失败</el-link></span\n >\n </template>\n </el-table-column>\n <el-table-column fixed=\"right\" label=\"操作\" width=\"140\">\n <template #default=\"scope\">\n <div\n v-loading=\"true\"\n v-if=\"scope.row.status === DownloadStatus.ARCHIVE\"\n >\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 @click=\"downLoadByUrl(scope.row.url)\" type=\"primary\"\n >下载</el-link\n >\n <el-link\n type=\"success\"\n style=\"margin-left: 10px\"\n @click=\"copyRes(scope.row.url)\"\n >链接</el-link\n >\n <el-link\n type=\"warning\"\n style=\"margin-left: 10px\"\n @click=\"\n () => {\n showLinkModel = true\n downloadUrl = scope.row.url\n }\n \"\n >二维码</el-link\n >\n </div>\n </template>\n </el-table-column>\n </el-table>\n <div class=\"flex fc\">\n <el-pagination\n small\n :current-page=\"historyDownloadRecord.pageCurrent\"\n :page-count=\"historyDownloadRecord.pageCount\"\n :total=\"historyDownloadRecord.pageTotal\"\n layout=\"total, prev, pager, next\"\n @current-change=\"handleHistoryActionPageChange\"\n ></el-pagination>\n </div>\n </div>\n </div>\n <!-- 主体内容 -->\n <div class=\"panel\">\n <Tip>空间占用情况:{{ filterFileSize }} / {{ fileListSize }}</Tip>\n <Tip>↑ 仅供使用者参考,应用无存储空间上限,也不收费</Tip>\n <Tip\n ><strong\n >如果你觉得应用不错,<a\n style=\"color: #409eff\"\n href=\"http://docs.ep.sugarat.top/praise/index.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >请作者喝茶 🍵</a\n ></strong\n >\n <!-- <Praise>\n <el-button style=\"margin:0 0 2px;\" size=\"small\" type=\"primary\" text>Go!Go!❓</el-button>\n </Praise> -->\n </Tip>\n <el-table\n v-loading=\"isLoadingData\"\n element-loading-text=\"Loading...\"\n tooltip-effect=\"dark\"\n multipleTable\n ref=\"multipleTable\"\n @selection-change=\"handleSelectionChange\"\n stripe\n border\n :max-height=\"666\"\n :data=\"showFilterFiles\"\n style=\"width: 100%\"\n >\n <el-table-column type=\"selection\" width=\"55\" />\n <el-table-column prop=\"date\" label=\"提交时间\" width=\"160\">\n <template #default=\"scope\">{{\n formatDate(new Date(scope.row.date))\n }}</template>\n </el-table-column>\n <el-table-column\n prop=\"task_name\"\n label=\"任务\"\n width=\"150\"\n ></el-table-column>\n <el-table-column\n prop=\"name\"\n label=\"文件名\"\n width=\"200\"\n ></el-table-column>\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 scope.row.size === 0 ? '未知大小' : formatSize(scope.row.size)\n }}</template>\n </el-table-column>\n <template v-if=\"showImg\">\n <el-table-column label=\"缩略图\" width=\"120\">\n <template #default=\"scope\">\n <el-image\n @switch=\"handleSwitchImage\"\n @click=\"handleSwitchImage(scope.$index)\"\n preview-teleported\n :preview-src-list=\"previewImages\"\n :initial-index=\"scope.$index\"\n lazy\n style=\"width: 100px; height: 100px\"\n :src=\"scope.row.cover\"\n fit=\"cover\"\n >\n <template #viewer>\n <div class=\"imageDes\">{{ viewImageFilename }}</div>\n </template>\n <template #placeholder>\n <div class=\"imageLoading\">Loading...</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\n @click=\"checkInfo(scope.row)\"\n type=\"primary\"\n text\n size=\"small\"\n >查看提交信息</el-button\n >\n <el-button\n @click=\"rewriteFilename(scope.row)\"\n type=\"primary\"\n text\n size=\"small\"\n >修改文件名</el-button\n >\n <el-button\n @click=\"downloadOne(scope.row)\"\n type=\"primary\"\n text\n size=\"small\"\n >下载</el-button\n >\n <el-button\n @click=\"handleDelete(scope.row)\"\n type=\"primary\"\n text\n size=\"small\"\n >删除</el-button\n >\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\"\n @current-change=\"handlePageChange\"\n background\n :page-count=\"pageCount\"\n :page-sizes=\"[6, 10, 50, 100]\"\n :page-size=\"pageSize\"\n @size-change=\"handleSizeChange\"\n :total=\"filterFiles.length\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n ></el-pagination>\n </div>\n <!-- 信息弹窗 -->\n <el-dialog\n :fullscreen=\"isMobile\"\n title=\"提交填写的信息\"\n v-model=\"showInfoDialog\"\n >\n <InfosForm :infos=\"infos\" :disabled=\"true\" />\n </el-dialog>\n <LinkDialog\n v-model:value=\"showLinkModel\"\n title=\"下载链接\"\n :link=\"downloadUrl\"\n ></LinkDialog>\n <el-dialog\n :fullscreen=\"isMobile\"\n title=\"修改文件名\"\n v-model=\"showRenameDialog\"\n >\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 >保存</el-button\n >\n <el-button @click=\"showRenameDialog = false\">取消</el-button>\n </el-form-item>\n </el-form>\n </div>\n </el-dialog>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport { computed, onMounted, reactive, ref, watchEffect } from 'vue'\nimport { useStore } from 'vuex'\nimport LinkDialog from '@components/linkDialog.vue'\nimport {\n ArrowDown,\n Refresh,\n DataAnalysis,\n Download,\n Search,\n Picture\n} from '@element-plus/icons-vue'\nimport { useRoute } from 'vue-router'\nimport {\n copyRes,\n formatDate,\n formatSize,\n getFileSuffix,\n parseInfo\n} from '@/utils/stringUtil'\nimport { ActionServiceAPI, FileApi } from '@/apis'\nimport { downLoadByUrl, tableItem, tableToExcel } from '@/utils/networkUtil'\nimport Tip from '../tasks/components/infoPanel/tip.vue'\nimport InfosForm from '@/components/InfosForm/index.vue'\nimport { DownloadStatus, ActionType, filenamePattern } from '@/constants'\n\nconst $store = useStore()\nconst $route = useRoute()\nconst showLinkModel = ref(false)\nconst downloadUrl = ref('')\nconst showImg = ref(localStorage.getItem('ep-show-images') === 'true')\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\nconst 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.find(\n (v) => v.status === DownloadStatus.ARCHIVE\n )\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}\nconst handleHistoryActionPageChange = (v) => {\n historyDownloadRecord.pageCurrent = v\n loadActions()\n}\n// 记录导出\nconst 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 JSON.parse(value.info).forEach((i: any) => {\n if (!pre.includes(i.text)) {\n pre.push(i.text)\n }\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 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 body.unshift(infosHeader)\n tableToExcel(\n headers,\n body,\n filename ||\n `数据导出_${formatDate(new Date(), 'yyyy年MM月日hh时mm分ss秒')}.xlsx`\n )\n ElMessage.success('导出成功')\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\nconst isLoadingData = ref(false)\n// 提交的所有文件\nconst files: FileApiTypes.File[] = reactive([])\nconst loadFiles = () => {\n isLoadingData.value = true\n files.splice(0, files.length)\n FileApi.getFileList().then((res) => {\n files.push(...res.data.files)\n isLoadingData.value = false\n })\n}\nconst multipleTable: any = ref()\nconst searchWord = ref('')\n\n// 用于展示的文件\n// 1. 过滤指定任务\nconst filterFiles = computed(() =>\n files\n .filter((f) => {\n if (selectCategory.value === 'no-task') {\n return tasks.value.every((t) => t.key !== f.task_key)\n }\n if (filterTasks.value.length === 0) {\n return false\n }\n\n if (selectTask.value === 'all') {\n return filterTasks.value.find((t) => t.key === f.task_key)\n }\n\n return selectTask.value === f.task_key\n // 2. 过滤关键词(精细优化)\n })\n .filter((t) =>\n searchWord.value\n ? JSON.stringify([\n formatDate(new Date(t.date)),\n formatSize(t.size),\n t.people,\n t.name,\n t.task_name,\n // eslint-disable-next-line no-useless-escape\n t.info\n ])\n .replace(/[:'\"{},[\\]]/g, '')\n .includes(searchWord.value)\n : true\n )\n)\n\n/**\n * 清空所有选项\n */\nconst clearSelection = () => {\n multipleTable.value.clearSelection()\n}\n// 多选选中的项\nconst selectItem: any[] = reactive([])\nconst handleSelectionChange = (e: any) => {\n selectItem.splice(0, selectItem.length)\n selectItem.push(...e)\n}\nconst batchDownStart = ref(false)\nconst handleDropdownClick = (e: string) => {\n const ids: number[] = selectItem.map((v) => v.id)\n switch (e) {\n case 'download':\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月日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 files.splice(\n 0,\n files.length,\n ...files.filter((v) => !ids.includes(v.id))\n )\n ElMessage.success('删除成功')\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月日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([])\nconst 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})\nconst 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\nconst 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 file.name = `${renameForm.newName}${renameForm.suffix}`\n })\n .catch(() => {\n ElMessage.error('修改失败')\n })\n .finally(() => {\n showRenameDialog.value = false\n })\n}\n\nconst downloadOne = (e: any) => {\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 .catch(() => {\n ElMessage.error('文件已从服务器上移除')\n })\n}\nconst 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 })\n })\n .catch(() => {\n ElMessage.info('取消删除')\n })\n}\n\n// 分页\nconst pageSize = ref(6)\nconst handleSizeChange = (v: number) => {\n pageSize.value = v\n}\nconst pageCount = computed(() => {\n const t = Math.ceil(filterFiles.value.length / pageSize.value)\n return t\n})\n// 当前页\nconst pageCurrent = ref(1)\nconst showFilterFiles = computed(() => {\n const start = (pageCurrent.value - 1) * pageSize.value\n const end = pageCurrent.value * pageSize.value\n return filterFiles.value.slice(start, end)\n})\n\nconst filterFileSize = computed(() =>\n formatSize(filterFiles.value.reduce((acc, cur) => acc + cur.size, 0))\n)\nconst fileListSize = computed(() =>\n formatSize(files.reduce((acc, cur) => acc + cur.size, 0))\n)\nconst handlePageChange = (idx: number) => {\n pageCurrent.value = idx\n}\n\n// 刷新文件列表\n\nconst handleRefresh = () => {\n ElMessage.success({\n message: '刷新成功'\n })\n loadFiles()\n}\nconst handleDownloadTask = () => {\n const ids: number[] = files\n .filter((f) => f.task_key === selectTask.value)\n .map((v) => v.id)\n if (ids.length === 0) {\n ElMessage.warning('该任务中没有数据')\n return\n }\n if (batchDownStart.value) {\n ElMessage.warning('已经有批量下载任务正在进行,请稍后再试')\n return\n }\n batchDownStart.value = true\n FileApi.batchDownload(ids, selectTaskName.value)\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 previewData = reactive<\n { cover: string; preview: string; name: string; date: string; id: number }[]\n>([])\nconst sortProps = reactive({\n order: null,\n prop: null\n})\nconst viewImageFilename = ref('')\nconst handleFilesSortChange = (v) => {\n sortProps.prop = v.prop\n sortProps.order = v.order\n}\nconst previewImages = computed(() => {\n // if (!sortProps.prop) {\n return previewData.map((v) => v.preview)\n // }\n // TODO:下面代码暂不生效,后续再支持表格排序场景\n // const temp = [...previewData]\n // temp.sort((a, b) => {\n // if (sortProps.order === 'descending') {\n // return a[sortProps.prop] - b[sortProps.prop]\n // }\n // return b[sortProps.prop] - a[sortProps.prop]\n // })\n // return temp.map((v) => v.preview)\n})\n\nconst handleSwitchImage = (idx: number) => {\n viewImageFilename.value = showFilterFiles.value[idx].name\n}\n\nlet fetching = false\nconst refreshFilesCover = () => {\n const ids = showFilterFiles.value.map((v) => v.id)\n if (ids.length === 0 || fetching) {\n return\n }\n fetching = true\n FileApi.checkImageFilePreviewUrl(ids).then((r) => {\n fetching = false\n const { data } = r\n if (data.length === 0 || data.length !== showFilterFiles.value.length) {\n return\n }\n previewData.splice(0, previewData.length)\n showFilterFiles.value.forEach((v, idx) => {\n const { cover, preview } = data[idx]\n v.cover = cover\n previewData.push({ cover, preview, name: v.name, date: v.date, id: v.id })\n })\n })\n}\nwatchEffect(() => {\n window.localStorage.setItem('ep-show-images', `${showImg.value}`)\n if (!showImg.value) {\n return\n }\n if (searchWord.value || pageCurrent.value || pageSize.value) {\n refreshFilesCover()\n return\n }\n refreshFilesCover()\n})\n\nonMounted(() => {\n loadFiles()\n loadActions()\n $store.dispatch('category/getCategory')\n $store.dispatch('task/getTask')\n})\n\nconst isMobile = computed(() => $store.getters['public/isMobile'])\n</script>\n<style scoped lang=\"scss\">\n.files {\n max-width: 1024px;\n margin: 0 auto;\n padding-bottom: 2em;\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.imageLoading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\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","$store","useStore","$route","useRoute","showLinkModel","ref","downloadUrl","showImg","showPeople","showOriginName","showHistoryPanel","historyDownloadRecord","reactive","loadActions","compressTask","v","actions","sum","haveArchive","v2","DownloadStatus","ActionType","action","existIndex","downLoadByUrl","handleHistoryActionPageChange","handleExportExcel","files2","filename","ElMessage","baseHeaders","headers","infosHeader","pre","value","i","body","date","taskName","name","size","people","infoObj","info","_a","rows","formatDate","formatSize","tableToExcel","categories","computed","selectCategory","tasks","selectTask","filterTasks","selectTaskName","watchEffect","isLoadingData","files","loadFiles","FileApi","res","multipleTable","searchWord","filterFiles","f","t","clearSelection","selectItem","handleSelectionChange","e","batchDownStart","handleDropdownClick","ids","ElMessageBox","showInfoDialog","infos","checkInfo","parseInfo","showRenameDialog","renameForm","rewriteFilename","id","suffix","getFileSuffix","handleSaveNewName","filenamePattern","file","downloadOne","link","handleDelete","idx","handleSizeChange","pageCount","pageCurrent","showFilterFiles","start","end","filterFileSize","acc","cur","fileListSize","handlePageChange","handleRefresh","handleDownloadTask","previewData","viewImageFilename","previewImages","handleSwitchImage","fetching","refreshFilesCover","r","data","cover","preview","onMounted","isMobile"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{J as se,K as R,L as $,M as ae,N as ne,d as E,O as y,Q as le,r as A,k as m,R as re,f as c,D as K,w as p,c as _,H as I,t as k,S as C,T as U,b as B,V as ie,W as pe,X as ce,Y as de,g as L,a as o,Z as N,$ as J,h as Q,F as D,C as X,s as F,j as n,a0 as Y,x as G,_ as z,a1 as ee,o as te,a2 as ue,u as _e,U as O,i as W,E as fe,I as ve,p as he,e as me,a3 as ge}from"./index-1639ad54.js";import{E as be}from"./el-dialog-c11c4af2.js";import{d as H,E as we,a as $e,b as ye,c as Ce}from"./el-dropdown-item-3eb29c67.js";import{E as ke,a as xe}from"./el-tab-pane-db271c8d.js";import{E as Ee}from"./index-b8357360.js";import"./index-68448dbd.js";import"./aria-bc8e8b0f.js";import"./validator-5c60ab85.js";const Me=se({trigger:R.trigger,placement:H.placement,disabled:R.disabled,visible:$.visible,transition:$.transition,popperOptions:H.popperOptions,tabindex:H.tabindex,content:$.content,popperStyle:$.popperStyle,popperClass:$.popperClass,enterable:{...$.enterable,default:!0},effect:{...$.effect,default:"light"},teleported:$.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),Ve={"update:visible":r=>ae(r),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},Se={name:"ElPopover"},Ae=E({...Se,props:Me,emits:Ve,setup(r,{expose:l,emit:t}){const s=r,f="onUpdate:visible",i=y(()=>s[f]),h=le("popover"),g=A(),u=y(()=>{var e;return(e=m(g))==null?void 0:e.popperRef}),v=y(()=>[{width:re(s.width)},s.popperStyle]),b=y(()=>[h.b(),s.popperClass,{[h.m("plain")]:!!s.content}]),d=y(()=>s.transition==="el-fade-in-linear"),a=()=>{var e;(e=g.value)==null||e.hide()},x=()=>{t("before-enter")},w=()=>{t("before-leave")},M=()=>{t("after-enter")},V=()=>{t("update:visible",!1),t("after-leave")};return l({popperRef:u,hide:a}),(e,T)=>(c(),K(m(pe),ie({ref_key:"tooltipRef",ref:g},e.$attrs,{trigger:e.trigger,placement:e.placement,disabled:e.disabled,visible:e.visible,transition:e.transition,"popper-options":e.popperOptions,tabindex:e.tabindex,content:e.content,offset:e.offset,"show-after":e.showAfter,"hide-after":e.hideAfter,"auto-close":e.autoClose,"show-arrow":e.showArrow,"aria-label":e.title,effect:e.effect,enterable:e.enterable,"popper-class":m(b),"popper-style":m(v),teleported:e.teleported,persistent:e.persistent,"gpu-acceleration":m(d),"onUpdate:visible":m(i),onBeforeShow:x,onBeforeHide:w,onShow:M,onHide:V}),{content:p(()=>[e.title?(c(),_("div",{key:0,class:I(m(h).e("title")),role:"title"},k(e.title),3)):C("v-if",!0),U(e.$slots,"default",{},()=>[B(k(e.content),1)])]),default:p(()=>[e.$slots.reference?U(e.$slots,"reference",{key:0}):C("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var Be=ne(Ae,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const Z=(r,l)=>{const t=l.arg||l.value,s=t==null?void 0:t.popperRef;s&&(s.triggerRef=r)};var Pe={mounted(r,l){Z(r,l)},updated(r,l){Z(r,l)}};const He="popover",De=ce(Pe,He),Ie=de(Be,{directive:De}),Le=E({name:"Bell"}),Ne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ze=o("path",{fill:"currentColor",d:"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z"},null,-1),Te=o("path",{fill:"currentColor",d:"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z"},null,-1),Re=o("path",{fill:"currentColor",d:"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z"},null,-1),Ue=[ze,Te,Re];function Fe(r,l,t,s,f,i){return c(),_("svg",Ne,Ue)}var Oe=L(Le,[["render",Fe]]);const We=E({name:"Close"}),Ze={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},je=o("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),qe=[je];function Ke(r,l,t,s,f,i){return c(),_("svg",Ze,qe)}var Je=L(We,[["render",Ke]]);const Qe=E({name:"Expand"}),Xe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ye=o("path",{fill:"currentColor",d:"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z"},null,-1),Ge=[Ye];function et(r,l,t,s,f,i){return c(),_("svg",Xe,Ge)}var tt=L(Qe,[["render",et]]);const ot={key:0,class:"empty"},st={class:"message-list"},at=["onClick"],nt={class:"text"},lt={class:"date"},rt=["innerHTML"],it={class:"dialog-date"},pt=E({__name:"index",props:{data:{},autoShow:{type:Boolean}},setup(r){const l=r,t=N({show:!1,title:"系统消息",text:"内容"}),s=A(null),f=u=>{s.value=u,t.text=u.text,t.title=u.type===0?"【系统消息】":"【私信】",t.show=!0},i=()=>{if(s.value.read){t.show=!1;return}Y.readMessage(s.value.id).then(()=>{s.value.read=!0,t.show=!1})};J(()=>l.data.length,()=>{if(!l.autoShow)return;const u=l.data.find(v=>!v.read);u&&f(u)});const h=Q(),g=y(()=>h.getters["public/isMobile"]);return(u,v)=>{const b=G,d=be;return c(),_(D,null,[u.data.length?C("",!0):(c(),_("div",ot,"暂无更多消息 ღ( ´・ᴗ・` )比心")),o("ul",st,[(c(!0),_(D,null,X(u.data,a=>(c(),_("li",{key:a.id,class:I({read:a.read}),onClick:x=>f(a)},[o("p",nt,k(a.text),1),o("p",lt,k(m(F)(new Date(a.date))),1)],10,at))),128))]),n(d,{center:"","show-close":"","append-to-body":"",modelValue:t.show,"onUpdate:modelValue":v[1]||(v[1]=a=>t.show=a),"close-on-click-modal":!1,title:t.title,width:"30%",fullscreen:g.value},{footer:p(()=>[o("p",it," 时间:"+k(m(F)(new Date(s.value.date))),1),o("span",null,[n(b,{type:"default",onClick:v[0]||(v[0]=()=>{t.show=!1})},{default:p(()=>[B(" 下次提醒 ")]),_:1}),n(b,{type:"primary",onClick:i},{default:p(()=>[B(" 确定 ")]),_:1})])]),default:p(()=>[o("div",{class:"message-text",innerHTML:t.text},null,8,rt)]),_:1},8,["modelValue","title","fullscreen"])],64)}}});const j=z(pt,[["__scopeId","data-v-46eebd19"]]),ct={class:"message-panel"},dt=E({__name:"index",setup(r){const l=A("all"),t=N([]),s=y(()=>t.filter(i=>!i.read)),f=ee();return te(()=>{f.name!=="config"&&Y.getMessageList().then(i=>{t.push(...i.data)})}),(i,h)=>{const g=G,u=ue,v=ke,b=xe,d=Ie;return c(),_("div",ct,[n(d,{placement:"bottom-end",width:375,trigger:"hover"},{reference:p(()=>[n(u,{value:s.value.length||"",max:99},{default:p(()=>[n(g,{icon:m(Oe),circle:""},null,8,["icon"])]),_:1},8,["value"])]),default:p(()=>[o("div",null,[n(b,{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=a=>l.value=a)},{default:p(()=>[n(v,{label:"未读 ".concat(s.value.length||""),name:"no"},{default:p(()=>[n(j,{"auto-show":"",data:s.value},null,8,["data"])]),_:1},8,["label"]),n(v,{label:"全部 ".concat(t.length||""),name:"all"},{default:p(()=>[n(j,{data:t},null,8,["data"])]),_:1},8,["label"])]),_:1},8,["modelValue"])])]),_:1})])}}});const q=z(dt,[["__scopeId","data-v-9de070a6"]]),S=r=>(he("data-v-2108dc2b"),r=r(),me(),r),ut={class:"dashboard"},_t={class:"pc-nav"},ft={class:"nav"},vt={class:"logo"},ht=S(()=>o("img",{src:"https://img.cdn.sugarat.top/easypicker/EasyPicker.png",alt:"logo"},null,-1)),mt={key:0,type:"checkbox",id:"navActive"},gt={key:0,for:"navActive",class:"nav-item"},bt=S(()=>o("span",null,"Hello💐,",-1)),wt=["onClick"],$t=S(()=>o("span",{style:{"margin-right":"6px"}},"退出",-1)),yt=S(()=>o("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","data-v-53d86618":""},[o("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M10.6667 2.55473C13.0212 3.58347 14.6667 5.93291 14.6667 8.66667C14.6667 12.3486 11.6819 15.3333 8 15.3333C4.3181 15.3333 1.33333 12.3486 1.33333 8.66667C1.33333 5.93291 2.97879 3.58347 5.33333 2.55473V4.04684C3.7392 4.969 2.66667 6.69259 2.66667 8.66667C2.66667 11.6122 5.05448 14 8 14C10.9455 14 13.3333 11.6122 13.3333 8.66667C13.3333 6.69259 12.2608 4.969 10.6667 4.04684V2.55473ZM7.33333 8.66667V1.33333C7.33333 1.14924 7.48257 1 7.66667 1H8.33333C8.51743 1 8.66667 1.14924 8.66667 1.33333V8.66667C8.66667 8.85076 8.51743 9 8.33333 9H7.66667C7.48257 9 7.33333 8.85076 7.33333 8.66667Z",fill:"#86909C","data-v-53d86618":""})],-1)),Ct=S(()=>o("div",{class:"mask"},null,-1)),kt={id:"navMenu"},xt={for:"navActive"},Et={key:0,class:"flex fac"},Mt=S(()=>o("span",null,"Hello 💐,",-1)),Vt={class:"exit-info"},St={class:"ellipsis"},At=E({__name:"index",setup(r){const l=_e(),t=Q(),s=ee(),f=y(()=>t.getters["public/isMobile"]),i=N([{title:"文件管理",path:"/dashboard/files"},{title:"任务管理",path:"/dashboard/tasks"}]),h=A(0),g=d=>{const a=i[d];!a.isExternal&&d!==h.value&&l.push({path:a.path}),a.isExternal&&window.open(a.path,"_blank")};J(()=>s.path,d=>{const a=i.findIndex(x=>d.startsWith(x.path));a!==-1&&(h.value=a)});const u=()=>{Ee.confirm("确认退出登录?","登出提示",{draggable:!0}).then(()=>{O.logout().finally(()=>{t.commit("user/setToken",null),l.replace({name:"home"})})}).catch(()=>{fe.info("取消")})},v=A("World"),b=()=>{h.value=i.findIndex(d=>s.path.startsWith(d.path))};return te(()=>{O.checkPower().then(d=>{var w,M,V;const a=(w=d.data)==null?void 0:w.power;if(v.value=(M=d.data)==null?void 0:M.name,t.commit("user/setSuperAdmin",a),a){const e=[{title:"应用管理",path:"/dashboard/manage"},{title:"网站监控",path:"https://www.frontjs.com/app/87c1ef7667a513f313b4abb22a88dc78",isExternal:!0}];i.push(...e)}((V=d.data)==null?void 0:V.system)&&(i.splice(0,i.length),i.push({title:"系统管理",path:"/dashboard/config"})),b()})}),(d,a)=>{const x=W("router-link"),w=ve,M=ye,V=Ce,e=we,T=W("router-view");return c(),_("div",ut,[o("div",_t,[o("div",ft,[o("div",vt,[n(x,{to:"/"},{default:p(()=>[ht]),_:1})]),f.value?(c(),_("input",mt)):C("",!0),o("nav",null,[f.value?(c(),_("label",gt,[bt,B(" "+k(v.value),1)])):C("",!0),(c(!0),_(D,null,X(i,(oe,P)=>(c(),_("label",{for:"navActive",class:I(["nav-item",{active:h.value===P}]),key:P,onClick:Bt=>g(P)},k(oe.title),11,wt))),128)),f.value?(c(),_("label",{key:1,onClick:u,for:"navActive",class:"nav-item"},[$t,n(w,{size:"16"},{default:p(()=>[yt]),_:1})])):C("",!0)]),Ct]),o("span",kt,[f.value?(c(),K(q,{key:0,class:"mobile-message-bell"})):C("",!0),o("label",xt,[n(w,{size:"32"},{default:p(()=>[n(m(tt))]),_:1})])]),f.value?C("",!0):(c(),_("div",Et,[n(q),Mt,n(e,{class:"exit"},{dropdown:p(()=>[n(V,null,{default:p(()=>[n(M,{onClick:u,icon:m(Je)},{default:p(()=>[B("退出")]),_:1},8,["icon"])]),_:1})]),default:p(()=>[o("span",Vt,[o("span",St,k(v.value),1),n(w,null,{default:p(()=>[n(m($e))]),_:1})])]),_:1})]))]),n(T),o("div",null,[n(ge,{type:"dashboard"})])])}}});const Rt=z(At,[["__scopeId","data-v-2108dc2b"]]);export{Rt as default};
|
|
2
|
-
//# sourceMappingURL=index-adc1b681.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-adc1b681.js","sources":["../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/src/popover.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/src/directive.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.3.4/node_modules/element-plus/es/components/popover/index.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/bell.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/close.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/expand.mjs","../../src/components/MessageList/index.vue","../../src/components/MessagePanel/index.vue","../../src/pages/dashboard/index.vue"],"sourcesContent":["import '../../../utils/index.mjs';\nimport '../../tooltip/index.mjs';\nimport '../../dropdown/index.mjs';\nimport { buildProps } from '../../../utils/vue/props/runtime.mjs';\nimport { useTooltipTriggerProps, useTooltipContentProps } from '../../tooltip/src/tooltip.mjs';\nimport { dropdownProps } from '../../dropdown/src/dropdown.mjs';\nimport { isBoolean } from '@vueuse/core';\n\nconst popoverProps = buildProps({\n trigger: useTooltipTriggerProps.trigger,\n placement: dropdownProps.placement,\n disabled: useTooltipTriggerProps.disabled,\n visible: useTooltipContentProps.visible,\n transition: useTooltipContentProps.transition,\n popperOptions: dropdownProps.popperOptions,\n tabindex: dropdownProps.tabindex,\n content: useTooltipContentProps.content,\n popperStyle: useTooltipContentProps.popperStyle,\n popperClass: useTooltipContentProps.popperClass,\n enterable: {\n ...useTooltipContentProps.enterable,\n default: true\n },\n effect: {\n ...useTooltipContentProps.effect,\n default: \"light\"\n },\n teleported: useTooltipContentProps.teleported,\n title: String,\n width: {\n type: [String, Number],\n default: 150\n },\n offset: {\n type: Number,\n default: void 0\n },\n showAfter: {\n type: Number,\n default: 0\n },\n hideAfter: {\n type: Number,\n default: 200\n },\n autoClose: {\n type: Number,\n default: 0\n },\n showArrow: {\n type: Boolean,\n default: true\n },\n persistent: {\n type: Boolean,\n default: true\n },\n \"onUpdate:visible\": {\n type: Function\n }\n});\nconst popoverEmits = {\n \"update:visible\": (value) => isBoolean(value),\n \"before-enter\": () => true,\n \"before-leave\": () => true,\n \"after-enter\": () => true,\n \"after-leave\": () => true\n};\n\nexport { popoverEmits, popoverProps };\n//# sourceMappingURL=popover.mjs.map\n","import { defineComponent, computed, ref, unref, openBlock, createBlock, mergeProps, withCtx, createElementBlock, normalizeClass, toDisplayString, createCommentVNode, renderSlot, createTextVNode } from 'vue';\nimport { ElTooltip } from '../../tooltip/index.mjs';\nimport '../../../utils/index.mjs';\nimport '../../../hooks/index.mjs';\nimport { popoverProps, popoverEmits } from './popover.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { addUnit } from '../../../utils/dom/style.mjs';\n\nconst __default__ = {\n name: \"ElPopover\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: popoverProps,\n emits: popoverEmits,\n setup(__props, { expose, emit }) {\n const props = __props;\n const updateEventKeyRaw = `onUpdate:visible`;\n const onUpdateVisible = computed(() => {\n return props[updateEventKeyRaw];\n });\n const ns = useNamespace(\"popover\");\n const tooltipRef = ref();\n const popperRef = computed(() => {\n var _a;\n return (_a = unref(tooltipRef)) == null ? void 0 : _a.popperRef;\n });\n const style = computed(() => {\n return [\n {\n width: addUnit(props.width)\n },\n props.popperStyle\n ];\n });\n const kls = computed(() => {\n return [ns.b(), props.popperClass, { [ns.m(\"plain\")]: !!props.content }];\n });\n const gpuAcceleration = computed(() => {\n return props.transition === \"el-fade-in-linear\";\n });\n const hide = () => {\n var _a;\n (_a = tooltipRef.value) == null ? void 0 : _a.hide();\n };\n const beforeEnter = () => {\n emit(\"before-enter\");\n };\n const beforeLeave = () => {\n emit(\"before-leave\");\n };\n const afterEnter = () => {\n emit(\"after-enter\");\n };\n const afterLeave = () => {\n emit(\"update:visible\", false);\n emit(\"after-leave\");\n };\n expose({\n popperRef,\n hide\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(ElTooltip), mergeProps({\n ref_key: \"tooltipRef\",\n ref: tooltipRef\n }, _ctx.$attrs, {\n trigger: _ctx.trigger,\n placement: _ctx.placement,\n disabled: _ctx.disabled,\n visible: _ctx.visible,\n transition: _ctx.transition,\n \"popper-options\": _ctx.popperOptions,\n tabindex: _ctx.tabindex,\n content: _ctx.content,\n offset: _ctx.offset,\n \"show-after\": _ctx.showAfter,\n \"hide-after\": _ctx.hideAfter,\n \"auto-close\": _ctx.autoClose,\n \"show-arrow\": _ctx.showArrow,\n \"aria-label\": _ctx.title,\n effect: _ctx.effect,\n enterable: _ctx.enterable,\n \"popper-class\": unref(kls),\n \"popper-style\": unref(style),\n teleported: _ctx.teleported,\n persistent: _ctx.persistent,\n \"gpu-acceleration\": unref(gpuAcceleration),\n \"onUpdate:visible\": unref(onUpdateVisible),\n onBeforeShow: beforeEnter,\n onBeforeHide: beforeLeave,\n onShow: afterEnter,\n onHide: afterLeave\n }), {\n content: withCtx(() => [\n _ctx.title ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(unref(ns).e(\"title\")),\n role: \"title\"\n }, toDisplayString(_ctx.title), 3)) : createCommentVNode(\"v-if\", true),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.content), 1)\n ])\n ]),\n default: withCtx(() => [\n _ctx.$slots.reference ? renderSlot(_ctx.$slots, \"reference\", { key: 0 }) : createCommentVNode(\"v-if\", true)\n ]),\n _: 3\n }, 16, [\"trigger\", \"placement\", \"disabled\", \"visible\", \"transition\", \"popper-options\", \"tabindex\", \"content\", \"offset\", \"show-after\", \"hide-after\", \"auto-close\", \"show-arrow\", \"aria-label\", \"effect\", \"enterable\", \"popper-class\", \"popper-style\", \"teleported\", \"persistent\", \"gpu-acceleration\", \"onUpdate:visible\"]);\n };\n }\n});\nvar Popover = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue\"]]);\n\nexport { Popover as default };\n//# sourceMappingURL=popover2.mjs.map\n","const attachEvents = (el, binding) => {\n const popperComponent = binding.arg || binding.value;\n const popover = popperComponent == null ? void 0 : popperComponent.popperRef;\n if (popover) {\n popover.triggerRef = el;\n }\n};\nvar PopoverDirective = {\n mounted(el, binding) {\n attachEvents(el, binding);\n },\n updated(el, binding) {\n attachEvents(el, binding);\n }\n};\nconst VPopover = \"popover\";\n\nexport { VPopover, PopoverDirective as default };\n//# sourceMappingURL=directive.mjs.map\n","import '../../utils/index.mjs';\nimport Popover from './src/popover2.mjs';\nimport PopoverDirective, { VPopover } from './src/directive.mjs';\nexport { popoverEmits, popoverProps } from './src/popover.mjs';\nimport { withInstallDirective, withInstall } from '../../utils/vue/install.mjs';\n\nconst ElPopoverDirective = withInstallDirective(PopoverDirective, VPopover);\nconst ElPopover = withInstall(Popover, {\n directive: ElPopoverDirective\n});\n\nexport { ElPopover, ElPopoverDirective, ElPopover 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: \"Bell\"\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: \"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z\"\n}, null, -1);\nconst _hoisted_4 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z\"\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 bell = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { bell 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: \"Close\"\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: \"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z\"\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 close = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { close 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: \"Expand\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z\"\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 expand = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { expand as default };\n","<script lang=\"ts\" setup>\nimport { ref, reactive, onMounted, watch, computed } from 'vue'\nimport { useStore } from 'vuex'\nimport { formatDate } from '@/utils/stringUtil'\nimport { SuperUserApi } from '@/apis'\n\nconst props = defineProps<{\n data: SuperUserApiTypes.MessageItem[]\n autoShow?: boolean\n}>()\n\nconst dialogMessage = reactive({\n show: false,\n title: '系统消息',\n text: '内容'\n})\nconst activeMessage = ref<SuperUserApiTypes.MessageItem>(null)\nconst handleViewDialogMessage = (v: SuperUserApiTypes.MessageItem) => {\n activeMessage.value = v\n dialogMessage.text = v.text\n // TODO: 魔法数字问题\n // TODO:支持更多的消息类型\n dialogMessage.title = v.type === 0 ? '【系统消息】' : '【私信】'\n dialogMessage.show = true\n}\n\nconst readMessage = () => {\n if (activeMessage.value.read) {\n dialogMessage.show = false\n return\n }\n SuperUserApi.readMessage(activeMessage.value.id).then(() => {\n activeMessage.value.read = true\n dialogMessage.show = false\n })\n}\n\nwatch(\n () => props.data.length,\n () => {\n if (!props.autoShow) {\n return\n }\n const showItem = props.data.find((v) => !v.read)\n if (showItem) {\n handleViewDialogMessage(showItem)\n }\n }\n)\n\n// TODO:换成自定义hook\nconst $store = useStore()\nconst isMobile = computed(() => $store.getters['public/isMobile'])\n</script>\n<template>\n <div v-if=\"!data.length\" class=\"empty\">暂无更多消息 ღ( ´・ᴗ・` )比心</div>\n <ul class=\"message-list\">\n <li\n v-for=\"d in data\"\n :key=\"d.id\"\n :class=\"{\n read: d.read\n }\"\n @click=\"handleViewDialogMessage(d)\"\n >\n <p class=\"text\">{{ d.text }}</p>\n <p class=\"date\">{{ formatDate(new Date(d.date)) }}</p>\n </li>\n </ul>\n <el-dialog\n center\n show-close\n append-to-body\n v-model=\"dialogMessage.show\"\n :close-on-click-modal=\"false\"\n :title=\"dialogMessage.title\"\n width=\"30%\"\n :fullscreen=\"isMobile\"\n >\n <div class=\"message-text\" v-html=\"dialogMessage.text\"></div>\n <template #footer>\n <p class=\"dialog-date\">\n 时间:{{ formatDate(new Date(activeMessage.date)) }}\n </p>\n <span>\n <el-button\n type=\"default\"\n @click=\"\n () => {\n dialogMessage.show = false\n }\n \"\n >\n 下次提醒\n </el-button>\n <el-button type=\"primary\" @click=\"readMessage\"> 确定 </el-button>\n </span>\n </template>\n </el-dialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.message-list {\n list-style: none;\n max-height: 500px;\n overflow-y: scroll;\n li {\n border-bottom: 1px solid #ddd;\n padding: 10px;\n cursor: pointer;\n &.read {\n opacity: 0.5;\n &:hover {\n opacity: 0.9;\n }\n }\n &:last-child {\n border-bottom: none;\n }\n\n p.text {\n font-size: 16px;\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n p.date {\n font-size: 14px;\n margin-top: 4px;\n }\n }\n}\n.empty {\n text-align: center;\n padding: 10px;\n}\n\n.dialog-date {\n font-size: 14px;\n text-align: right;\n padding: 10px;\n color: grey;\n}\n</style>\n<style lang=\"scss\">\n.message-text {\n overflow-y: scroll;\n max-height: 500px;\n ul,\n ol {\n list-style: none;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { Bell } from '@element-plus/icons-vue'\nimport { computed, reactive, onMounted, ref } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SuperUserApi } from '@/apis'\nimport MessageList from '@/components/MessageList/index.vue'\n\nconst activeTab = ref<'all' | 'no'>('all')\nconst messageData = reactive<SuperUserApiTypes.MessageItem[]>([])\n\nconst noReadMessage = computed(() => messageData.filter((v) => !v.read))\nconst route = useRoute()\nonMounted(() => {\n if (route.name !== 'config') {\n SuperUserApi.getMessageList().then((v) => {\n messageData.push(...v.data)\n })\n }\n})\n</script>\n<template>\n <div class=\"message-panel\">\n <el-popover placement=\"bottom-end\" :width=\"375\" trigger=\"hover\">\n <template #reference>\n <el-badge :value=\"noReadMessage.length || ''\" :max=\"99\">\n <el-button :icon=\"Bell\" circle />\n </el-badge>\n </template>\n <div>\n <el-tabs v-model=\"activeTab\">\n <el-tab-pane :label=\"`未读 ${noReadMessage.length || ''}`\" name=\"no\">\n <message-list auto-show :data=\"noReadMessage\" />\n </el-tab-pane>\n <el-tab-pane :label=\"`全部 ${messageData.length || ''}`\" name=\"all\">\n <message-list :data=\"messageData\" />\n </el-tab-pane>\n </el-tabs>\n </div>\n </el-popover>\n </div>\n</template>\n<style lang=\"scss\" scoped>\n.message-panel {\n margin-right: 10px;\n}\n</style>\n","<template>\n <div class=\"dashboard\">\n <div class=\"pc-nav\">\n <div class=\"nav\">\n <!-- LOGO -->\n <div class=\"logo\">\n <router-link to=\"/\">\n <img\n src=\"https://img.cdn.sugarat.top/easypicker/EasyPicker.png\"\n alt=\"logo\"\n />\n </router-link>\n </div>\n <input v-if=\"isMobile\" type=\"checkbox\" id=\"navActive\" />\n <nav>\n <label v-if=\"isMobile\" for=\"navActive\" class=\"nav-item\">\n <span>Hello💐,</span>\n {{ userName }}\n </label>\n <label\n for=\"navActive\"\n class=\"nav-item\"\n v-for=\"(n, idx) in navList\"\n :key=\"idx\"\n :class=\"{\n active: navActiveIdx === idx\n }\"\n @click=\"handleNav(idx)\"\n >{{ n.title }}</label\n >\n <label\n @click=\"handleLogout\"\n v-if=\"isMobile\"\n for=\"navActive\"\n class=\"nav-item\"\n >\n <span style=\"margin-right: 6px\">退出</span>\n <el-icon size=\"16\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-v-53d86618\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.6667 2.55473C13.0212 3.58347 14.6667 5.93291 14.6667 8.66667C14.6667 12.3486 11.6819 15.3333 8 15.3333C4.3181 15.3333 1.33333 12.3486 1.33333 8.66667C1.33333 5.93291 2.97879 3.58347 5.33333 2.55473V4.04684C3.7392 4.969 2.66667 6.69259 2.66667 8.66667C2.66667 11.6122 5.05448 14 8 14C10.9455 14 13.3333 11.6122 13.3333 8.66667C13.3333 6.69259 12.2608 4.969 10.6667 4.04684V2.55473ZM7.33333 8.66667V1.33333C7.33333 1.14924 7.48257 1 7.66667 1H8.33333C8.51743 1 8.66667 1.14924 8.66667 1.33333V8.66667C8.66667 8.85076 8.51743 9 8.33333 9H7.66667C7.48257 9 7.33333 8.85076 7.33333 8.66667Z\"\n fill=\"#86909C\"\n data-v-53d86618\n />\n </svg>\n </el-icon>\n </label>\n </nav>\n <div class=\"mask\"></div>\n </div>\n <!-- 移动端展示 -->\n <span id=\"navMenu\">\n <message-panel v-if=\"isMobile\" class=\"mobile-message-bell\" />\n <label for=\"navActive\">\n <el-icon size=\"32\">\n <Expand />\n </el-icon>\n </label>\n </span>\n <div class=\"flex fac\" v-if=\"!isMobile\">\n <message-panel />\n <span>Hello 💐,</span>\n <el-dropdown class=\"exit\">\n <span class=\"exit-info\">\n <span class=\"ellipsis\">{{ userName }}</span>\n <el-icon>\n <ArrowDown />\n </el-icon>\n </span>\n <template #dropdown>\n <el-dropdown-menu>\n <el-dropdown-item @click=\"handleLogout\" :icon=\"Close\"\n >退出</el-dropdown-item\n >\n </el-dropdown-menu>\n </template>\n </el-dropdown>\n </div>\n </div>\n <router-view></router-view>\n <div>\n <home-footer type=\"dashboard\"></home-footer>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { Expand, Close, ArrowDown, Bell } from '@element-plus/icons-vue'\nimport HomeFooter from '@components/HomeFooter/index.vue'\n\nimport { onMounted, reactive, ref, computed, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport MessagePanel from '@/components/MessagePanel/index.vue'\nimport { UserApi } from '@/apis'\n\nconst $router = useRouter()\nconst $store = useStore()\nconst $route = useRoute()\nconst isMobile = computed(() => $store.getters['public/isMobile'])\nconst navList = reactive<\n { title: string; path: string; isExternal?: boolean }[]\n>([\n {\n title: '文件管理',\n path: '/dashboard/files'\n },\n {\n title: '任务管理',\n path: '/dashboard/tasks'\n }\n])\nconst navActiveIdx = ref(0)\nconst handleNav = (idx: number) => {\n const n = navList[idx]\n if (!n.isExternal && idx !== navActiveIdx.value) {\n $router.push({\n path: n.path\n })\n }\n if (n.isExternal) {\n window.open(n.path, '_blank')\n }\n}\n\n// 自动切换激活的标题栏\nwatch(\n () => $route.path,\n (path: string) => {\n const idx = navList.findIndex((n) => path.startsWith(n.path))\n if (idx !== -1) {\n navActiveIdx.value = idx\n }\n }\n)\n\nconst handleLogout = () => {\n ElMessageBox.confirm('确认退出登录?', '登出提示', {\n draggable: true\n })\n .then(() => {\n // 登出接口\n UserApi.logout().finally(() => {\n $store.commit('user/setToken', null)\n $router.replace({\n name: 'home'\n })\n })\n })\n .catch(() => {\n ElMessage.info('取消')\n })\n}\nconst userName = ref('World')\n\nconst refreshActiveTab = () => {\n // 动态修改active的项\n navActiveIdx.value = navList.findIndex((v) => $route.path.startsWith(v.path))\n}\nonMounted(() => {\n // 动态添加管理页面入口\n UserApi.checkPower().then((r) => {\n const isSuperAdmin = r.data?.power\n userName.value = r.data?.name\n $store.commit('user/setSuperAdmin', isSuperAdmin)\n if (isSuperAdmin) {\n const superNavList = [\n {\n title: '应用管理',\n path: '/dashboard/manage'\n },\n {\n title: '网站监控',\n path: 'https://www.frontjs.com/app/87c1ef7667a513f313b4abb22a88dc78',\n isExternal: true\n }\n ]\n navList.push(...superNavList)\n }\n const isSystem = r.data?.system\n if (isSystem) {\n navList.splice(0, navList.length)\n navList.push({\n title: '系统管理',\n path: '/dashboard/config'\n })\n }\n refreshActiveTab()\n })\n})\n</script>\n<style scoped lang=\"scss\">\n.dashboard {\n background-color: #fafafa;\n}\n.pc-nav {\n background-color: #fff;\n display: flex;\n padding: 10px;\n justify-content: space-between;\n align-items: center;\n .exit {\n cursor: pointer;\n display: flex;\n align-items: center;\n .exit-info {\n display: flex;\n justify-content: center;\n align-items: center;\n > span {\n margin-right: 5px;\n display: block;\n max-width: 70px;\n }\n }\n }\n .nav {\n display: flex;\n nav {\n display: flex;\n align-items: center;\n .nav-item {\n font-size: 1rem;\n color: #595959;\n padding: 10px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n &.active {\n color: #409eff !important;\n font-weight: 600;\n }\n }\n }\n .exit {\n color: #595959;\n }\n }\n .logo {\n width: 180px;\n margin: 0 10px;\n img {\n height: 40px;\n }\n }\n}\n#navActive {\n display: none;\n opacity: 0;\n}\n#navMenu {\n display: none;\n}\n.mobile-message-bell {\n display: none;\n position: fixed;\n right: 0;\n top: 0;\n}\n@media screen and (max-width: 700px) {\n #navActive {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n }\n .mobile-message-bell {\n display: block;\n }\n #navMenu {\n cursor: pointer;\n display: block;\n position: absolute;\n left: 10px;\n top: 5px;\n font-size: 2rem;\n }\n .pc-nav {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n z-index: 6;\n .nav {\n flex-wrap: wrap;\n width: 100%;\n .logo {\n width: 100%;\n text-align: center;\n }\n }\n #navActive {\n & + nav {\n display: none;\n }\n }\n #navActive:checked {\n & + nav {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: absolute;\n z-index: 1;\n background: #fff;\n left: 0;\n top: 50px;\n + .mask {\n display: block;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 50px;\n background-color: rgba(0, 0, 0, 0.5);\n }\n }\n }\n .exit {\n position: absolute;\n right: 10px;\n top: 20px;\n }\n }\n}\n</style>\n"],"names":["popoverProps","buildProps","useTooltipTriggerProps","dropdownProps","useTooltipContentProps","popoverEmits","value","isBoolean","__default__","_sfc_main","defineComponent","__props","expose","emit","props","updateEventKeyRaw","onUpdateVisible","computed","ns","useNamespace","tooltipRef","ref","popperRef","_a","unref","style","addUnit","kls","gpuAcceleration","hide","beforeEnter","beforeLeave","afterEnter","afterLeave","_ctx","_cache","openBlock","createBlock","ElTooltip","mergeProps","withCtx","createElementBlock","normalizeClass","toDisplayString","createCommentVNode","renderSlot","createTextVNode","Popover","_export_sfc","attachEvents","el","binding","popperComponent","popover","PopoverDirective","VPopover","ElPopoverDirective","withInstallDirective","ElPopover","withInstall","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render","$props","$setup","$data","$options","bell","close","expand","dialogMessage","reactive","activeMessage","handleViewDialogMessage","v","readMessage","SuperUserApi","watch","showItem","$store","useStore","isMobile","activeTab","messageData","noReadMessage","route","useRoute","onMounted","$router","useRouter","$route","navList","navActiveIdx","handleNav","idx","n","path","handleLogout","ElMessageBox","UserApi","ElMessage","userName","refreshActiveTab","r","isSuperAdmin","_b","superNavList","_c"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|