@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-C0TTJR9g.js","sources":["../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/message.mjs","../../src/pages/dashboard/manage/user/index.vue"],"sourcesContent":["import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Message\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224H128zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224h784zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224H205.056z\"\n}, null, -1);\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_4);\n}\nvar message = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { message as default };\n","<script lang=\"ts\" setup>\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { DeleteFilled, Message, Refresh, Search } from '@element-plus/icons-vue'\nimport { useLocalStorage } from '@vueuse/core'\nimport { PublicApi, SuperUserApi } from '@/apis'\nimport { USER_STATUS } from '@/constants'\nimport { formatDate, formatSize } from '@/utils/stringUtil'\nimport { rMobilePhone, rPassword, rVerCode } from '@/utils/regExp'\n\nimport { useIsMobile } from '@/composables'\n\n// 用户\nconst users = reactive<SuperUserApiTypes.UserItem[]>([])\nfunction refreshUsers() {\n SuperUserApi.getUserList().then((res) => {\n users.splice(0, users.length, ...res.data.list)\n ElMessage.success('列表数据刷新成功')\n })\n}\n\n// 筛选用户状态\nconst userStatusType = useLocalStorage('userStatusType', USER_STATUS.NORMAL)\nconst searchWord = ref('')\nconst statusTypeList = reactive([\n {\n label: '正常',\n type: USER_STATUS.NORMAL,\n },\n {\n label: '冻结',\n type: USER_STATUS.FREEZE,\n },\n {\n label: '封禁',\n type: USER_STATUS.BAN,\n },\n])\nconst sortType = useLocalStorage('userListSortType', 'id')\nconst sortTypeList = [\n {\n label: 'ID',\n value: 'id',\n },\n {\n label: '累计上传数量',\n value: 'fileCount',\n },\n {\n label: '累计占用空间',\n value: 'originFileSize',\n },\n {\n label: 'OSS文件数量',\n value: 'ossCount',\n },\n {\n label: '最后登录时间',\n value: 'lastLoginTime',\n },\n {\n label: '登录次数',\n value: 'login_count',\n },\n {\n label: '容量大小',\n value: 'size',\n },\n {\n label: '占用空间',\n value: 'usage',\n },\n {\n label: '限制使用',\n value: 'limitUpload',\n },\n {\n label: '下载次数',\n value: 'downloadCount',\n },\n {\n label: '累计下载大小',\n value: 'downloadSize',\n },\n {\n label: '累计费用',\n value: 'cost',\n },\n]\n\n// 升降序\nconst sortOrder = useLocalStorage('userListSortOrder', 'desc')\nconst sortOrderList = [\n {\n label: '升序',\n value: 'asc',\n },\n {\n label: '降序',\n value: 'desc',\n },\n]\nconst filterUsers = computed(() => {\n const copyUsers = [...users]\n copyUsers.sort((a, b) => {\n return sortOrder.value === 'asc'\n ? a[sortType.value] - b[sortType.value]\n : b[sortType.value] - a[sortType.value]\n })\n return copyUsers\n .filter(v => v.status === userStatusType.value)\n .filter((v) => {\n const {\n id,\n account,\n phone,\n joinTime,\n loginCount,\n loginTime,\n openTime,\n } = v\n if (searchWord.value.length === 0)\n return true\n return `${id} ${account} ${phone} ${loginTime} ${formatDate(\n openTime,\n )} ${formatDate(loginCount)} ${formatDate(joinTime)}`.includes(\n searchWord.value,\n )\n })\n})\n\n// 分页\nconst pageSize = useLocalStorage<number>('userListPageSize', 10)\nfunction handleSizeChange(v: number) {\n pageSize.value = v\n}\nconst pageCount = computed(() => {\n const t = Math.ceil(filterUsers.value.length / pageSize.value)\n return t\n})\nconst pageCurrent = ref(1)\nconst pageUsers = computed(() => {\n const start = (pageCurrent.value - 1) * pageSize.value\n const end = pageCurrent.value * pageSize.value\n return filterUsers.value.slice(start, end)\n})\nfunction handlePageChange(idx: number) {\n pageCurrent.value = idx\n}\n\n// 状态修改\nconst showUserStatusDialog = ref(false)\nconst selectUserId = ref(0)\nconst selectStatus = ref(USER_STATUS.NORMAL)\nconst userStatusList = statusTypeList\nconst openTime = ref('')\nfunction handleChangeStatus(userId: number, status: USER_STATUS, oTime: string) {\n selectUserId.value = userId\n selectStatus.value = status\n openTime.value = oTime\n showUserStatusDialog.value = true\n}\nfunction handleSaveStatus() {\n const user = users.find(u => u.id === selectUserId.value)\n if (selectStatus.value === USER_STATUS.FREEZE) {\n if (!openTime.value) {\n ElMessage.warning('请设置解冻时间')\n return\n }\n user.openTime = openTime.value\n }\n else {\n user.openTime = ''\n }\n user.status = selectStatus.value\n showUserStatusDialog.value = false\n SuperUserApi.updateUserStatus(user.id, user.status, user.openTime).then(\n () => {\n ElMessage.success('修改成功')\n },\n )\n}\n\n// 重置密码\nconst showResetPasswordDialog = ref(false)\nconst pwdForm = reactive({\n pwd1: '',\n pwd2: '',\n})\nfunction handleResetPassword(userId: number) {\n selectUserId.value = userId\n showResetPasswordDialog.value = true\n pwdForm.pwd1 = ''\n pwdForm.pwd2 = ''\n}\n\nfunction checkPwdForm() {\n if (!rPassword.test(pwdForm.pwd1)) {\n ElMessage.warning('密码格式不正确(6-16位 支持字母/数字/下划线)')\n return false\n }\n if (pwdForm.pwd1 !== pwdForm.pwd2) {\n ElMessage.warning('两次输入的密码不一致')\n return false\n }\n\n return true\n}\n\nfunction handleSavePassword() {\n if (!checkPwdForm())\n return\n ElMessageBox.confirm('此操作不可逆,请谨慎操作', '确定要重置用户的密码吗?', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning',\n })\n .then(() => {\n SuperUserApi.resetPassword(selectUserId.value, pwdForm.pwd1).then(() => {\n ElMessage.success('重置成功')\n showResetPasswordDialog.value = false\n })\n })\n .catch(() => {\n //\n })\n}\n\n// 限制空间大小\nconst showLimitSizeDialog = ref(false)\nconst limitSizeForm = reactive({\n size: 2,\n})\nfunction handleRewriteSize(id: number, size: number) {\n selectUserId.value = id\n limitSizeForm.size = size\n showLimitSizeDialog.value = true\n}\nasync function handleSaveSize() {\n if (+limitSizeForm.size < 0) {\n ElMessage.warning('空间上限不能小于0')\n return\n }\n await SuperUserApi.resetLimitSpace(selectUserId.value, +limitSizeForm.size)\n // 接口调用修改\n ElMessage.success('修改成功')\n showLimitSizeDialog.value = false\n refreshUsers()\n}\n// TODO: 重复代码优化\n// 修改余额\nconst showWalletDialog = ref(false)\nconst walletForm = reactive({\n money: 2,\n})\nfunction handleRewriteWallet(id: number, money: number) {\n selectUserId.value = id\n walletForm.money = money\n showWalletDialog.value = true\n}\nasync function handleSaveWallet() {\n if (+walletForm.money < 0) {\n ElMessage.warning('余额不能小于0')\n return\n }\n await SuperUserApi.updateWallet(selectUserId.value, +walletForm.money)\n // 接口调用修改\n ElMessage.success('修改成功')\n showWalletDialog.value = false\n refreshUsers()\n}\n\n// 绑定手机号\nconst showPhoneDialog = ref(false)\nconst phoneForm = reactive({\n phone: '',\n code: '',\n})\nconst codeText = ref('获取验证码')\nconst time = ref(0)\nfunction refreshCodeText() {\n if (time.value === 0) {\n codeText.value = '获取验证码'\n return\n }\n codeText.value = `${time.value}s`\n time.value -= 1\n setTimeout(refreshCodeText, 1000)\n}\nfunction getCode() {\n if (!rMobilePhone.test(phoneForm.phone)) {\n ElMessage.warning('手机号格式不正确')\n return\n }\n // check是否可用\n PublicApi.checkPhone(phoneForm.phone)\n .then(() => {\n PublicApi.getCode(phoneForm.phone).then(() => {\n time.value = 120\n refreshCodeText()\n ElMessage.success('获取成功,请注意查看手机短信')\n })\n })\n .catch((err) => {\n const { code: c } = err\n const msg = '注册失败,未知错误'\n const options: any = {\n 1002: '手机号已被注册',\n 1006: '手机号格式不正确',\n }\n ElMessage.error(options[c] || msg)\n })\n}\nfunction checkPhoneForm() {\n if (!rMobilePhone.test(phoneForm.phone)) {\n ElMessage.warning('手机号格式不正确')\n return false\n }\n if (!rVerCode.test(phoneForm.code)) {\n ElMessage.warning('验证码格式不正确')\n return false\n }\n\n return true\n}\nfunction handleBindPhone(id: number) {\n selectUserId.value = id\n showPhoneDialog.value = true\n}\nasync function handleSavePhone() {\n if (!checkPhoneForm()) {\n return\n }\n // 调用API更新,验证码 不正确判断\n SuperUserApi.resetPhone(selectUserId.value, phoneForm.phone, phoneForm.code)\n .then(() => {\n ElMessage.success('绑定成功')\n showPhoneDialog.value = false\n phoneForm.code = ''\n phoneForm.phone = ''\n refreshUsers()\n })\n .catch((err) => {\n const { code: c } = err\n const msg = '绑定失败,未知错误'\n const options: any = {\n 1002: '手机号已被注册',\n 1003: '验证码不正确',\n }\n ElMessage.error(options[c] || msg)\n })\n}\n\nfunction handleClearFiles(userId: number, type: 'month' | 'quarter' | 'half') {\n const tipWords = {\n month: '一个月前',\n quarter: '三个月前',\n half: '半年前',\n }\n selectUserId.value = userId\n ElMessageBox.confirm('移除后这些文件将无法恢复,请谨慎操作', '删除前确认?', {\n confirmButtonText: `确认删除 ${tipWords[type]}文件`,\n })\n .then(() => {\n SuperUserApi.clearOssFile(userId, type).then(() => {\n ElMessage.success('清理成功')\n })\n })\n .catch(() => {})\n}\n\n// TODO: 0 global 1 user_push\nconst pushMessageType = ref(1)\nconst showMessageDialog = ref(false)\nconst pushMessageText = ref('')\nfunction sendMessage(id: number, type = 1) {\n selectUserId.value = id\n pushMessageType.value = type\n showMessageDialog.value = true\n}\n\nfunction sureSendMessage() {\n SuperUserApi.sendMessage(\n pushMessageText.value,\n pushMessageType.value,\n selectUserId.value,\n ).then(() => {\n ElMessage.success('推送成功')\n // 推送成功\n pushMessageText.value = ''\n showMessageDialog.value = false\n })\n}\nfunction logout(account: string) {\n SuperUserApi.logout(account).then(() => {\n ElMessage.success(`下线成功 ${account}`)\n refreshUsers()\n })\n}\n\nonMounted(() => {\n refreshUsers()\n})\n\nconst isMobile = useIsMobile()\n</script>\n\n<template>\n <div class=\"user\">\n <div class=\"panel\">\n <div class=\"p10 log-filter\">\n <span class=\"item\">\n <span class=\"label\">状态</span>\n <el-select\n v-model=\"userStatusType\"\n size=\"default\"\n class=\"w100\"\n >\n <el-option\n v-for=\"(item, idx) in statusTypeList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.type\"\n />\n </el-select>\n </span>\n <span class=\"item\">\n <span class=\"label\">排序</span>\n <el-select\n v-model=\"sortType\"\n size=\"default\"\n class=\"w100\"\n >\n <el-option\n v-for=\"(item, idx) in sortTypeList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.value\"\n />\n </el-select>\n <el-select\n v-model=\"sortOrder\"\n size=\"default\"\n class=\"w100\"\n >\n <el-option\n v-for=\"(item, idx) in sortOrderList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.value\"\n />\n </el-select>\n </span>\n <span class=\"item\">\n <el-input\n v-model=\"searchWord\"\n size=\"default\"\n clearable\n placeholder=\"请输入要检索的内容\"\n :prefix-icon=\"Search\"\n />\n </span>\n <span class=\"item\">\n <el-button size=\"default\" :icon=\"Refresh\" @click=\"refreshUsers\">刷新</el-button>\n </span>\n <span class=\"item\">\n <el-button\n size=\"warning\"\n :icon=\"Message\"\n @click=\"sendMessage(null, 0)\"\n >推送全局消息</el-button>\n </span>\n </div>\n <el-table\n height=\"550\"\n stripe\n border\n :default-sort=\"{ prop: 'date', order: 'descending' }\"\n :data=\"pageUsers\"\n style=\"width: 100%\"\n >\n <el-table-column prop=\"id\" label=\"ID\" width=\"60\" />\n <el-table-column\n prop=\"account\"\n label=\"账号\"\n width=\"130\"\n />\n <el-table-column\n prop=\"phone\"\n label=\"手机号\"\n width=\"80\"\n />\n <el-table-column\n label=\"统计\"\n width=\"190\"\n >\n <template #default=\"scope\">\n 最后登录:{{\n scope.row.loginTime && formatDate(new Date(scope.row.loginTime))\n }}<br>\n 注册时间:{{ formatDate(new Date(scope.row.joinTime)) }}<br>\n 登录次数:{{ scope.row.loginCount }}<br>\n token: {{ scope.row.onlineCount }}<br>\n </template>\n </el-table-column>\n <!-- <el-table-column prop=\"joinTime\" label=\"注册时间\" width=\"190\">\n <template #default=\"scope\">\n {{\n formatDate(new Date(scope.row.joinTime))\n }}\n </template>\n </el-table-column> -->\n <!-- <el-table-column\n prop=\"loginCount\"\n label=\"登录次数\"\n /> -->\n <el-table-column\n prop=\"downloadCount\"\n label=\"累计下载\"\n >\n <template #default=\"{ row: { downloadCount, downloadSize, oneFile, compressFile, templateFile } }\">\n {{ downloadCount }} / {{ formatSize(downloadSize) }}<br>\n 单文件:{{ oneFile.count }} / {{ formatSize(oneFile.size) }}<br>\n 归档:{{ compressFile.count }} / {{ formatSize(compressFile.size) }}<br>\n 模板:{{ templateFile.count }} / {{ formatSize(templateFile.size) }}\n </template>\n </el-table-column>\n <el-table-column\n v-if=\"userStatusType === 1\"\n prop=\"openTime\"\n label=\"解封时间\"\n >\n <template #default=\"scope\">\n {{\n scope.row.openTime && formatDate(new Date(scope.row.openTime))\n }}\n </template>\n </el-table-column>\n <el-table-column\n prop=\"fileCount\"\n label=\"文件\"\n >\n <template #default=\"scope\">\n 累计:{{ scope.row.fileCount }}/{{ formatSize(scope.row.originFileSize) }}<br>\n OSS:{{ scope.row.ossCount }}/{{ formatSize(scope.row.usage) }}<br>\n 平均:{{ scope.row.originFileSize && scope.row.fileCount && formatSize(Math.round(scope.row.originFileSize / scope.row.fileCount)) }}<br>\n 平均:{{ scope.row.usage && scope.row.ossCount && formatSize(Math.round(scope.row.usage / scope.row.ossCount)) }}<br>\n </template>\n </el-table-column>\n <el-table-column label=\"云空间\" width=\"200\">\n <template\n #default=\"{\n row: { wallet, price, balance, resources, monthAgoSize, quarterAgoSize, halfYearSize, id, limitSize, limitUpload, percentage },\n }\"\n >\n <ul class=\"user-oss-info\" :class=\"{ disabled: limitUpload }\">\n <li>¥:{{ price.total }} / {{ wallet }} = {{ balance }}</li>\n <li>{{ percentage }}% {{ resources }}/{{ limitSize }}</li>\n <li>\n 一月前:{{ monthAgoSize\n }}<el-button\n v-if=\"resources !== '0B'\"\n class=\"clear-btn\"\n :icon=\"DeleteFilled\"\n circle\n size=\"small\"\n @click=\"handleClearFiles(id, 'month')\"\n />\n </li>\n <li>\n 三月前:{{ quarterAgoSize\n }}<el-button\n v-if=\"quarterAgoSize !== '0B'\"\n class=\"clear-btn\"\n :icon=\"DeleteFilled\"\n circle\n size=\"small\"\n @click=\"handleClearFiles(id, 'quarter')\"\n />\n </li>\n <li>\n 半年前:{{ halfYearSize\n }}<el-button\n v-if=\"halfYearSize !== '0B'\"\n class=\"clear-btn\"\n :icon=\"DeleteFilled\"\n circle\n size=\"small\"\n @click=\"handleClearFiles(id, 'half')\"\n />\n </li>\n </ul>\n </template>\n </el-table-column>\n <el-table-column fixed=\"right\" label=\"操作\" width=\"100\">\n <template #default=\"scope\">\n <div class=\"text-btn-list\">\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"\n handleChangeStatus(\n scope.row.id,\n scope.row.status,\n scope.row.openTime,\n )\n \"\n >\n 修改状态\n </el-button>\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"handleResetPassword(scope.row.id)\"\n >\n 重置密码\n </el-button>\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"handleBindPhone(scope.row.id)\"\n >\n 绑定手机号\n </el-button>\n <el-button\n type=\"warning\"\n text\n size=\"small\"\n @click=\"sendMessage(scope.row.id)\"\n >\n 发送消息\n </el-button>\n <el-button\n type=\"danger\"\n text\n size=\"small\"\n @click=\"handleRewriteSize(scope.row.id, scope.row.size)\"\n >\n 修改上限\n </el-button>\n <el-button\n type=\"danger\"\n text\n size=\"small\"\n @click=\"handleRewriteWallet(scope.row.id, scope.row.wallet)\"\n >\n 修改余额\n </el-button>\n <el-button\n v-if=\"scope.row.onlineCount !== 0\"\n type=\"danger\"\n text\n size=\"small\"\n @click=\"logout(scope.row.account)\"\n >\n 一键下线\n </el-button>\n </div>\n </template>\n </el-table-column>\n </el-table>\n <div class=\"flex fc p10\">\n <el-pagination\n :current-page=\"pageCurrent\"\n background\n :page-count=\"pageCount\"\n :page-sizes=\"[10, 50, 100, 200]\"\n :page-size=\"pageSize\"\n :total=\"filterUsers.length\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n @current-change=\"handlePageChange\"\n @size-change=\"handleSizeChange\"\n />\n </div>\n </div>\n <!-- 消息推送弹窗 -->\n <el-dialog\n v-model=\"showMessageDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"消息推送\"\n >\n <div class=\"tc\">\n <el-input\n v-model=\"pushMessageText\"\n :autosize=\"{ minRows: 6, maxRows: 20 }\"\n type=\"textarea\"\n placeholder=\"输入要推送的消息,支持HTML内容(推荐使用mdnice 转 markdown 转html)\"\n />\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showMessageDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"sureSendMessage\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 用户状态修改弹窗 -->\n <el-dialog\n v-model=\"showUserStatusDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"状态修改\"\n >\n <div class=\"tc\">\n <el-select v-model=\"selectStatus\" placeholder=\"请选择新分类\">\n <el-option\n v-for=\"s in userStatusList\"\n :key=\"s.type\"\n :label=\"s.label\"\n :value=\"s.type\"\n />\n </el-select>\n </div>\n <div v-if=\"selectStatus === 1\" style=\"margin-top: 10px\" class=\"tc\">\n <el-date-picker\n v-model=\"openTime\"\n :editable=\"false\"\n type=\"datetime\"\n placeholder=\"点击设置解封日期\"\n />\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showUserStatusDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSaveStatus\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n\n <!-- 重置密码 -->\n <el-dialog\n v-model=\"showResetPasswordDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"密码重置\"\n >\n <div class=\"tc\">\n <el-form :model=\"pwdForm\" label-width=\"80px\">\n <el-form-item label=\"新密码\">\n <el-input\n v-model=\"pwdForm.pwd1\"\n show-word-limit\n clearable\n placeholder=\"请输入新密码\"\n maxlength=\"16\"\n minlength=\"6\"\n />\n </el-form-item>\n <el-form-item>\n <el-input\n v-model=\"pwdForm.pwd2\"\n show-word-limit\n clearable\n placeholder=\"请再次输入\"\n maxlength=\"16\"\n minlength=\"6\"\n />\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showResetPasswordDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSavePassword\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 重绑定手机号 -->\n <el-dialog\n v-model=\"showPhoneDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"绑定手机号\"\n >\n <div class=\"tc\">\n <el-form :model=\"phoneForm\" label-width=\"60px\">\n <el-form-item label=\"手机号\">\n <el-input\n v-model=\"phoneForm.phone\"\n show-word-limit\n clearable\n placeholder=\"请输入手机号\"\n maxlength=\"11\"\n >\n <template #append>\n <!-- 获取验证码 -->\n <el-button :disabled=\"time !== 0\" @click=\"getCode\">\n {{\n codeText\n }}\n </el-button>\n </template>\n </el-input>\n </el-form-item>\n <el-form-item>\n <el-input\n v-model=\"phoneForm.code\"\n show-word-limit\n clearable\n placeholder=\"请输入验证码\"\n maxlength=\"4\"\n />\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showPhoneDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSavePhone\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 修改空间上限 -->\n <el-dialog\n v-model=\"showLimitSizeDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"修改空间上限\"\n >\n <div class=\"tc\">\n <el-form :model=\"limitSizeForm\" label-width=\"60px\">\n <el-form-item label=\"大小\">\n <el-input\n v-model=\"limitSizeForm.size\"\n show-word-limit\n clearable\n placeholder=\"请输入空间上限\"\n maxlength=\"4\"\n type=\"number\"\n >\n <template #append>\n GB\n </template>\n </el-input>\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showLimitSizeDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSaveSize\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n <!-- 修改余额 -->\n <el-dialog\n v-model=\"showWalletDialog\"\n :fullscreen=\"isMobile\"\n center\n title=\"修改空间上限\"\n >\n <div class=\"tc\">\n <el-form :model=\"walletForm\" label-width=\"60px\">\n <el-form-item label=\"余额\">\n <el-input\n v-model=\"walletForm.money\"\n show-word-limit\n clearable\n placeholder=\"请输入新的余额\"\n maxlength=\"4\"\n type=\"number\"\n >\n <template #append>\n ¥\n </template>\n </el-input>\n </el-form-item>\n </el-form>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showWalletDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSaveWallet\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n\n .log-filter {\n justify-content: center;\n }\n}\n.w100 {\n width: 100px;\n}\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\n.log-filter {\n display: flex;\n flex-wrap: wrap;\n\n .item {\n margin-right: 10px;\n margin-bottom: 10px;\n .label {\n margin-right: 10px;\n font-size: 12px;\n }\n }\n}\n\n.text-btn-list {\n display: flex;\n flex-wrap: wrap;\n\n button {\n margin-left: 0;\n }\n}\n\n.user-oss-info {\n list-style: none;\n li {\n margin-bottom: 10px;\n }\n .clear-btn {\n margin-left: 10px;\n }\n &.disabled {\n background-color: rgb(245 108 108 / 30%);\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","message","_export_sfc","users","reactive","refreshUsers","SuperUserApi","res","ElMessage","userStatusType","useLocalStorage","USER_STATUS","searchWord","ref","statusTypeList","sortType","sortTypeList","sortOrder","sortOrderList","filterUsers","computed","copyUsers","a","b","v","id","account","phone","joinTime","loginCount","loginTime","openTime","formatDate","pageSize","handleSizeChange","pageCount","pageCurrent","pageUsers","start","end","handlePageChange","idx","showUserStatusDialog","selectUserId","selectStatus","userStatusList","handleChangeStatus","userId","status","oTime","handleSaveStatus","user","u","showResetPasswordDialog","pwdForm","handleResetPassword","checkPwdForm","rPassword","handleSavePassword","ElMessageBox","showLimitSizeDialog","limitSizeForm","handleRewriteSize","size","handleSaveSize","showWalletDialog","walletForm","handleRewriteWallet","money","handleSaveWallet","showPhoneDialog","phoneForm","codeText","time","refreshCodeText","getCode","rMobilePhone","PublicApi","err","c","msg","options","checkPhoneForm","rVerCode","handleBindPhone","handleSavePhone","handleClearFiles","type","tipWords","pushMessageType","showMessageDialog","pushMessageText","sendMessage","sureSendMessage","logout","onMounted","isMobile","useIsMobile"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a4 as b,g as D,d as S,a as s,c as a,b as e,Z as Y,r as z,O as F,o as Q,j as r,w as n,k as E,H as j,a8 as N,a9 as T,e as _,F as k,C as M,t as g,D as m,S as q,E as O,I as U,x as H,v as P,p as R,f as Z,_ as G}from"./index-CvlaXQXr.js";import{E as J,a as K}from"./el-form-item-SCs-OERV.js";import{T as w}from"./tip-BCCd4P_x.js";import{r as W}from"./refresh-Bz5ULfz9.js";import"./isEqual-a1R5cOCU.js";import"./index-BAFXwCno.js";function X(){return b.get("/config/service/overview")}function ee(){return b.get("/config/service/config")}function te(i){return b.put("/config/service/config",i)}const $={getServiceOverview:X,getServiceConfig:ee,updateCfg:te},se=S({name:"CloseBold"}),ae={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},oe=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),ne=[oe];function le(i,p,c,h,f,v){return s(),a("svg",ae,ne)}var re=D(se,[["render",le]]);const ie=S({name:"Select"}),ce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},de=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),ue=[de];function _e(i,p,c,h,f,v){return s(),a("svg",ce,ue)}var pe=D(ie,[["render",_e]]);const B=i=>(R("data-v-9638922a"),i=i(),Z(),i),fe={class:"user"},ge={class:"panel"},me=B(()=>e("span",null,"服务概况",-1)),he={class:"service-list"},ve=["src","alt"],ye={key:2},ke={class:"error-panel"},Me=B(()=>e("h1",null,"错误信息",-1)),we={class:"error"},xe=B(()=>e("h1",null,"服务相关配置",-1)),Ce={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"},Ee={class:"config-container"},$e={class:"flex",style:{flex:"1"}},be=S({__name:"index",setup(i){const p=Y([{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:"短信服务"}]),c=z(!1),h=F(()=>p.filter(o=>o.errMsg));function f(){c.value||(c.value=!0,$.getServiceOverview().then(o=>{const{data:y}=o;p.forEach(d=>{const{status:u,errMsg:x}=y[d.key];d.status=u,d.errMsg=x}),O.success("服务状态刷新完成"),c.value=!1}))}const v=z([]);function L(){$.getServiceConfig().then(o=>{o.data.forEach(y=>{y.data.forEach(d=>{d.disabled=!0})}),v.value=o.data})}function V(o){$.updateCfg(o).then(()=>{o.disabled=!0,O.success("更新成功"),f()})}return Q(()=>{f(),L()}),(o,y)=>{const d=U,u=H,x=P,A=J,I=K;return s(),a("div",fe,[e("div",ge,[e("div",null,[e("h1",null,[me,r(d,{class:j({loading:c.value}),style:{cursor:"pointer","margin-left":"10px"},onClick:f},{default:n(()=>[r(E(W))]),_:1},8,["class"]),N(e("span",null,"数据加载中...",512),[[T,c.value]])]),r(w,null,{default:n(()=>[_("查看各个服务的运行情况")]),_:1}),e("div",he,[(s(!0),a(k,null,M(p,t=>(s(),a("div",{key:t.key,class:"service-item"},[e("img",{src:t.logo,alt:t.name},null,8,ve),e("p",null,[r(w,null,{default:n(()=>[_(g(t.des),1)]),_:2},1024)]),t.status?(s(),m(u,{key:0,type:"success",size:"small",icon:E(pe),circle:""},null,8,["icon"])):(s(),m(u,{key:1,type:"danger",size:"small",icon:E(re),circle:""},null,8,["icon"])),!t.status&&t.error?(s(),a("p",ye,[r(w,null,{default:n(()=>[_(g(t.error),1)]),_:2},1024)])):q("",!0)]))),128))])]),N(e("div",ke,[Me,(s(!0),a(k,null,M(h.value,t=>(s(),a("p",{key:t.key},[e("strong",null,g(t.name)+":",1),e("span",we,g(t.errMsg),1)]))),128))],512),[[T,h.value.length]]),e("div",null,[xe,r(w,null,{default:n(()=>[_(" 在此面板,配置服务器运行相关参数 "),e("a",Ce,[r(u,{type:"primary",link:""},{default:n(()=>[_("配置手册?")]),_:1})])]),_:1})]),e("div",Ee,[(s(!0),a(k,null,M(v.value,t=>(s(),a("div",{key:t.title,class:"config-panel"},[e("h2",null,g(t.title),1),r(I,{"label-position":"right","label-width":"100px",style:{"max-width":"400px",margin:"0 auto"}},{default:n(()=>[(s(!0),a(k,null,M(t.data,l=>(s(),m(A,{key:l.key,"label-width":"auto",label:l.label||l.key},{default:n(()=>[e("div",$e,[r(x,{modelValue:l.value,"onUpdate:modelValue":C=>l.value=C,disabled:l.disabled},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.disabled?(s(),m(u,{key:0,type:"primary",text:"",onClick:C=>l.disabled=!1},{default:n(()=>[_(" 更新 ")]),_:2},1032,["onClick"])):(s(),m(u,{key:1,type:"success",text:"",onClick:C=>V(l)},{default:n(()=>[_(" 完成 ")]),_:2},1032,["onClick"]))])]),_:2},1032,["label"]))),128))]),_:2},1024)]))),128))])])])}}}),De=G(be,[["__scopeId","data-v-9638922a"]]);export{De as default};
|
|
2
|
+
//# sourceMappingURL=index-C1FTaXL2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-C1FTaXL2.js","sources":["../../src/apis/modules/config.ts","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/close-bold.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/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","<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { CloseBold, Refresh, Select } from '@element-plus/icons-vue'\nimport Tip from '../tasks/components/infoPanel/tip.vue'\nimport { ConfigServiceAPI } from '@/apis'\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])\n\nconst loading = ref(false)\nconst showErrorList = computed(() => serviceList.filter(item => item.errMsg))\nfunction refreshStatus() {\n if (loading.value)\n 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([])\nfunction 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}\nfunction 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})\n</script>\n\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 style=\"cursor: pointer; margin-left: 10px\"\n @click=\"refreshStatus\"\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 </Tip>\n </div>\n <div class=\"config-container\">\n <div\n v-for=\"serverItem in serverConfig\"\n :key=\"serverItem.title\"\n class=\"config-panel\"\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 v-for=\"cfgItem in serverItem.data\"\n :key=\"cfgItem.key\"\n label-width=\"auto\"\n :label=\"cfgItem.label || cfgItem.key\"\n >\n <div class=\"flex\" style=\"flex: 1\">\n <el-input\n v-model=\"cfgItem.value\"\n :disabled=\"cfgItem.disabled\"\n />\n <el-button\n v-if=\"cfgItem.disabled\"\n type=\"primary\"\n text\n @click=\"cfgItem.disabled = false\"\n >\n 更新\n </el-button>\n <el-button\n v-else\n type=\"success\"\n text\n @click=\"updateCfg(cfgItem)\"\n >\n 完成\n </el-button>\n </div>\n </el-form-item>\n </el-form>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n}\n\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\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","loading","ref","showErrorList","computed","item","refreshStatus","v","status","errMsg","ElMessage","serverConfig","onMounted"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as a,a1 as c,a as n,c as p,b as o,t as d,k as r,p as _,f as i,_ as l}from"./index-CvlaXQXr.js";const u=e=>(_("data-v-bb4c1a74"),e=e(),i(),e),h={class:"not-found"},f=u(()=>o("h1",null,"EasyPicker | 轻取",-1)),m=a({__name:"index",setup(e){const t=c(),s=()=>{window.location.href="https://docs.ep.sugarat.top/"};return(b,k)=>(n(),p("div",h,[f,o("h2",null,d(r(t).query.title)+":已被网站管理员禁用",1),o("h3",null,[o("a",{onClick:s},"查看应用介绍")])]))}}),I=l(m,[["__scopeId","data-v-bb4c1a74"]]);export{I as default};
|
|
2
|
+
//# sourceMappingURL=index-CAbIiez7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-CAbIiez7.js","sources":["../../src/pages/disabled/index.vue"],"sourcesContent":["<template>\n <div class=\"not-found\">\n <h1>EasyPicker | 轻取</h1>\n <h2>{{ $route.query.title }}:已被网站管理员禁用</h2>\n <h3><a @click=\"handleToHome\">查看应用介绍</a></h3>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { useRoute } from 'vue-router'\n\nconst $route = useRoute()\nconst handleToHome = () => {\n window.location.href = 'https://docs.ep.sugarat.top/'\n}\n</script>\n<style lang=\"scss\" scoped>\n.not-found {\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\n background-image: linear-gradient(to top, #30cfd0 0%, #330867 100%);\n min-height: 100vh;\n}\nh1,\nh2,\nh3,\na {\n color: aliceblue;\n text-align: center;\n font-weight: lighter;\n}\na {\n margin-left: 10px;\n border-bottom: 2px solid aliceblue;\n cursor: pointer;\n}\nh1 {\n font-size: 48px;\n padding-top: 10%;\n}\nh2 {\n font-size: 30px;\n padding-top: 2vh;\n}\nh3 {\n font-size: 28px;\n padding-top: 1vh;\n}\n</style>\n"],"names":["$route","useRoute","handleToHome"],"mappings":"oPAUA,MAAMA,EAASC,IACTC,EAAe,IAAM,CACzB,OAAO,SAAS,KAAO,8BAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as R,u as V,O as J,Z as B,r as y,c_ as j,o as z,bs as g,i as $,a as s,c as r,b as o,j as i,w as u,e as c,F as b,C as A,t as v,D as f,k as F,E as m,y as I,x as M,v as L,_ as T}from"./index-CvlaXQXr.js";import{E as U}from"./el-switch-B8IyK6ZR.js";import"./validator-BESrcCvQ.js";const Z={class:"user"},q={class:"panel"},G={class:"routes"},H={class:"title"},K={class:"path"},P={class:"config-btn"},Q={class:"config-panel"},W=R({__name:"index",setup(X){const w=V(),C=J(()=>w.options.routes.filter(e=>{var t;return(t=e.meta)==null?void 0:t.allowDisabled})),h=B([]);function k(e){g.addDisabledRoute(e.path,!e.disabled).then(()=>{e.disabled=!e.disabled,m.success("切换成功")})}const n=y(!1),{value:p,updateValue:x}=j(),d=y("");function S(){n.value=!0,d.value=JSON.stringify(p.value,null,2)}async function E(){try{const e=JSON.parse(d.value);p.value=e,await x(),n.value=!1,m.success("保存成功")}catch(e){return m.error("JSON 格式错误")}}return z(()=>{for(const e of C.value)g.checkDisabledRoute(e.path).then(t=>{var l;h.push({path:e.path,name:e.name.toString(),title:e.meta.title,disabled:!!((l=t.data)!=null&&l.status)})})}),(e,t)=>{const l=I,D=U,_=M,N=$("json-viewer"),O=L;return s(),r("div",Z,[o("div",q,[i(l,null,{default:u(()=>[c("禁用路由管理")]),_:1}),o("ul",G,[(s(!0),r(b,null,A(h,a=>(s(),r("li",{key:a.name},[i(D,{"model-value":!a.disabled,style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"},onChange:Y=>k(a)},null,8,["model-value","onChange"]),o("span",H,v(a.title),1),o("span",K,v(a.path)+v(a.path==="/register"?" 关闭后将同时禁用注册功能":""),1)]))),128))]),i(l,null,{default:u(()=>[c("全局配置管理(JSON)")]),_:1}),o("div",P,[n.value?(s(),r(b,{key:1},[i(_,{size:"small",type:"danger",onClick:t[0]||(t[0]=a=>n.value=!1)},{default:u(()=>[c(" 取消 ")]),_:1}),i(_,{size:"small",type:"success",onClick:E},{default:u(()=>[c(" 保存 ")]),_:1})],64)):(s(),f(_,{key:0,size:"small",type:"primary",onClick:S},{default:u(()=>[c(" 更新 ")]),_:1}))]),o("div",Q,[n.value?(s(),f(O,{key:1,modelValue:d.value,"onUpdate:modelValue":t[1]||(t[1]=a=>d.value=a),autosize:{minRows:2,maxRows:30},type:"textarea"},null,8,["modelValue"])):(s(),f(N,{key:0,value:F(p),"expand-depth":5,copyable:"",boxed:"",sort:""},null,8,["value"]))])])])}}}),se=T(W,[["__scopeId","data-v-1e07da88"]]);export{se as default};
|
|
2
|
+
//# sourceMappingURL=index-CYU98hsF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CYU98hsF.js","sources":["../../src/pages/dashboard/manage/config/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { SuperOverviewApi } from '@/apis'\nimport { useSiteAllConfig } from '@/composables'\n\nconst $router = useRouter()\nconst routes = computed(() =>\n $router.options.routes.filter(v => v.meta?.allowDisabled),\n)\nconst showRoutes = reactive<\n {\n path: string\n name: string\n title: string\n disabled: boolean\n }[]\n>([])\n\nfunction handleChangeRoute(r: (typeof showRoutes)[0]) {\n SuperOverviewApi.addDisabledRoute(r.path, !r.disabled).then(() => {\n r.disabled = !r.disabled\n ElMessage.success('切换成功')\n })\n}\n\nconst editConfig = ref(false)\nconst { value: jsonData, updateValue: updateJsonData } = useSiteAllConfig()\n\nconst editJSON = ref('')\n\nfunction handleEditConfig() {\n editConfig.value = true\n editJSON.value = JSON.stringify(jsonData.value, null, 2)\n}\nasync function handleSaveConfig() {\n try {\n const data = JSON.parse(editJSON.value)\n jsonData.value = data\n await updateJsonData()\n editConfig.value = false\n ElMessage.success('保存成功')\n }\n catch (e) {\n return ElMessage.error('JSON 格式错误')\n }\n}\nonMounted(() => {\n for (const r of routes.value) {\n SuperOverviewApi.checkDisabledRoute(r.path).then((v) => {\n showRoutes.push({\n path: r.path,\n name: r.name.toString(),\n title: r.meta.title,\n disabled: !!v.data?.status,\n })\n })\n }\n})\n</script>\n\n<template>\n <div class=\"user\">\n <div class=\"panel\">\n <el-divider>禁用路由管理</el-divider>\n <ul class=\"routes\">\n <li v-for=\"r in showRoutes\" :key=\"r.name\">\n <el-switch\n :model-value=\"!r.disabled\" style=\"\n --el-switch-on-color: #13ce66;\n --el-switch-off-color: #ff4949;\n \" @change=\"handleChangeRoute(r)\"\n />\n <span class=\"title\">{{ r.title }}</span>\n <span class=\"path\">{{ r.path }}{{ r.path === '/register' ? ' 关闭后将同时禁用注册功能' : '' }}</span>\n </li>\n </ul>\n <el-divider>全局配置管理(JSON)</el-divider>\n <div class=\"config-btn\">\n <el-button v-if=\"!editConfig\" size=\"small\" type=\"primary\" @click=\"handleEditConfig\">\n 更新\n </el-button>\n <template v-else>\n <el-button size=\"small\" type=\"danger\" @click=\"editConfig = false\">\n 取消\n </el-button>\n <el-button size=\"small\" type=\"success\" @click=\"handleSaveConfig\">\n 保存\n </el-button>\n </template>\n </div>\n <div class=\"config-panel\">\n <json-viewer\n v-if=\"!editConfig\"\n :value=\"jsonData\"\n :expand-depth=\"5\"\n copyable\n boxed\n sort\n />\n <!-- TODO: JSON editor -->\n <el-input\n v-else\n v-model=\"editJSON\"\n :autosize=\"{ minRows: 2, maxRows: 30 }\"\n type=\"textarea\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n}\n\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\n.routes {\n max-width: 500px;\n margin: 0 auto;\n\n li {\n display: flex;\n padding: 20px;\n align-items: center;\n\n .title {\n font-weight: bold;\n margin: 0 10px;\n }\n }\n}\n.config-btn {\n text-align: center;\n}\n.config-panel {\n max-width: 500px;\n margin: 0 auto;\n}\n</style>\n"],"names":["$router","useRouter","routes","computed","v","_a","showRoutes","reactive","handleChangeRoute","r","SuperOverviewApi","ElMessage","editConfig","ref","jsonData","updateJsonData","useSiteAllConfig","editJSON","handleEditConfig","handleSaveConfig","data","onMounted"],"mappings":"0cAOA,MAAMA,EAAUC,IACVC,EAASC,EAAS,IACtBH,EAAQ,QAAQ,OAAO,OAAYI,GAAA,OAAA,OAAAC,EAAAD,EAAE,OAAF,YAAAC,EAAQ,cAAa,CAAA,EAEpDC,EAAaC,EAOjB,CAAA,CAAE,EAEJ,SAASC,EAAkBC,EAA2B,CACnCC,EAAA,iBAAiBD,EAAE,KAAM,CAACA,EAAE,QAAQ,EAAE,KAAK,IAAM,CAC9DA,EAAA,SAAW,CAACA,EAAE,SAChBE,EAAU,QAAQ,MAAM,CAAA,CACzB,CACH,CAEM,MAAAC,EAAaC,EAAI,EAAK,EACtB,CAAE,MAAOC,EAAU,YAAaC,CAAA,EAAmBC,IAEnDC,EAAWJ,EAAI,EAAE,EAEvB,SAASK,GAAmB,CAC1BN,EAAW,MAAQ,GACnBK,EAAS,MAAQ,KAAK,UAAUH,EAAS,MAAO,KAAM,CAAC,CACzD,CACA,eAAeK,GAAmB,CAC5B,GAAA,CACF,MAAMC,EAAO,KAAK,MAAMH,EAAS,KAAK,EACtCH,EAAS,MAAQM,EACjB,MAAML,EAAe,EACrBH,EAAW,MAAQ,GACnBD,EAAU,QAAQ,MAAM,QAEnB,EAAG,CACD,OAAAA,EAAU,MAAM,WAAW,CACpC,CACF,CACA,OAAAU,EAAU,IAAM,CACH,UAAAZ,KAAKP,EAAO,MACrBQ,EAAiB,mBAAmBD,EAAE,IAAI,EAAE,KAAML,GAAM,OACtDE,EAAW,KAAK,CACd,KAAMG,EAAE,KACR,KAAMA,EAAE,KAAK,SAAS,EACtB,MAAOA,EAAE,KAAK,MACd,SAAU,CAAC,GAACJ,EAAAD,EAAE,OAAF,MAAAC,EAAQ,OAAA,CACrB,CAAA,CACF,CACH,CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Cbj5Qf1k.js","sources":["../../src/pages/feedback/index.vue"],"sourcesContent":["<template>\n <div>\n <h1>反馈页</h1>\n </div>\n</template>\n"],"names":["_hoisted_2","_sfc_render","_ctx","_cache"],"mappings":"gGAEoBA,EAAA,IADhB,SAAAC,EAAAC,EAAAC,EAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";.task-panel[data-v-8a74d233] ul.el-upload-list{border:1px dashed #d4d4d4;padding:10px}.task-panel[data-v-8a74d233] ul.el-upload-list:before{content:"此处展示选择文件列表";font-size:12px;position:relative;bottom:4px}.task-panel[data-v-8a74d233] .el-upload-list__item-name{display:block;overflow:hidden;max-width:290px;text-overflow:ellipsis;word-break:keep-all}.task-panel[data-v-8a74d233] .is-ready .el-icon--close{display:block;color:#000}.task-panel[data-v-8a74d233]{background-color:#f3f6f8;padding-bottom:1rem;position:relative}.pc-nav[data-v-8a74d233]{background-color:#fff;display:flex;padding:10px;justify-content:space-between;align-items:center}.pc-nav .exit[data-v-8a74d233]{cursor:pointer}.pc-nav .nav[data-v-8a74d233]{display:flex}.pc-nav .nav nav[data-v-8a74d233]{display:flex;align-items:center}.pc-nav .nav nav .nav-item[data-v-8a74d233]{font-size:1rem;color:#595959;padding:10px;cursor:pointer}.pc-nav .nav nav .nav-item.active[data-v-8a74d233]{color:#409eff!important;font-weight:600}.pc-nav .nav .exit[data-v-8a74d233]{color:#595959}.pc-nav .logo[data-v-8a74d233]{width:180px;margin:0 10px}.pc-nav .logo img[data-v-8a74d233]{height:40px}.panel[data-v-8a74d233]{max-width:1024px;padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.panel .name[data-v-8a74d233]{text-align:center}.panel .ddl[data-v-8a74d233]{margin-top:10px;color:#919191;font-size:14px}.panel .infos[data-v-8a74d233]{max-width:460px;margin:auto;overflow:hidden}.panel .infos[data-v-8a74d233] div.el-form-item>label{font-weight:700}.panel .infos[data-v-8a74d233] div.el-form-item>label:before{content:"* ";color:red}.withdraw[data-v-8a74d233]{text-align:right}.tip-wrapper[data-v-8a74d233]{line-height:20px;text-align:left;word-break:break-all;overflow:hidden;padding:0 20px;color:#e6a23c;max-width:320px;font-size:14px}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a4 as D,d as se,Z as $,r as d,O as T,o as oe,a as y,c as U,b as u,j as l,w as s,F,C as N,D as R,k as E,e as r,t as O,s as j,E as P,v as ne,x as ue,p as ie,f as de,_ as re}from"./index-CvlaXQXr.js";import{E as pe,a as ce}from"./el-form-item-SCs-OERV.js";import{u as fe,E as me}from"./el-dialog-C8bI9VGw.js";import{s as _e,E as ve}from"./el-pagination-nfYZbPTI.js";import{E as he,a as be}from"./el-select-uDoCZCn5.js";import{E as ge,a as we}from"./el-table-column-C3qC7HsW.js";import{W as _}from"./index-BrOLxzFM.js";import"./isEqual-a1R5cOCU.js";import"./index-BAFXwCno.js";import"./validator-BESrcCvQ.js";function Ve(n){return D.post("/wish/add",n)}function ye(){return D.get("/wish/all")}function Ee(n,i){return D.put("/wish/update",{id:n,status:i})}function Ce(n,i,k){return D.put("/wish/update/".concat(n),{title:i,des:k})}const L={addWish:Ve,findAllWish:ye,updateWishStatus:Ee,updateWishDes:Ce},We=n=>(ie("data-v-fb1cf9f1"),n=n(),de(),n),Se={class:"user"},xe={class:"panel"},De={class:"p10 log-filter"},ke={class:"item"},ze=We(()=>u("span",{class:"label"},"状态",-1)),Ie={class:"item"},$e={class:"text-btn-list"},Te={class:"flex fc p10"},Ue={class:"tc"},Le={class:"dialog-footer"},Ae={class:"dialog-footer"},Z="80px",Be=se({__name:"index",setup(n){const i=$([]);function k(){L.findAllWish().then(a=>{i.splice(0,i.length,...a.data)})}const C=d(-1),W=d(""),z=$([{label:"待审核",type:_.REVIEW},{label:"待开始",type:_.WAIT},{label:"关闭",type:_.CLOSE},{label:"已上线",type:_.END},{label:"开发中",type:_.START}]),I=T(()=>i.filter(a=>a.status===C.value||C.value===-1).filter(a=>{const{createDate:t,title:p,des:x,contact:w}=a;return W.value.length===0?!0:"".concat(j(new Date(t))," ").concat(p," ").concat(x," ").concat(w).includes(W.value)})),v=d(10);function q(a){v.value=a}const G=T(()=>Math.ceil(I.value.length/v.value)),S=d(1),H=T(()=>{const a=(S.value-1)*v.value,t=S.value*v.value;return I.value.slice(a,t)});function J(a){S.value=a}const h=d(!1),c=d(""),b=d(_.REVIEW),K=z;function Q(a,t){c.value=a,b.value=t,h.value=!0}function X(){const a=i.find(t=>t.id===c.value);a.status=b.value,h.value=!1,L.updateWishStatus(c.value,b.value).then(()=>{P.success("修改成功")})}const g=d(!1),o=$({title:"",des:""});function Y(a,t,p){c.value=a,o.title=t,o.des=p,g.value=!0}function ee(){const a=i.find(t=>t.id===c.value);L.updateWishDes(c.value,o.title,o.des).then(()=>{g.value=!1,a.title=o.title,a.des=o.des,P.success("修改成功")})}oe(()=>{k()});const A=fe();return(a,t)=>{const p=he,x=be,w=ne,f=ge,m=ue,te=we,le=ve,B=me,M=pe,ae=ce;return y(),U("div",Se,[u("div",xe,[u("div",De,[u("span",ke,[ze,l(x,{modelValue:C.value,"onUpdate:modelValue":t[0]||(t[0]=e=>C.value=e),size:"default",placeholder:"请选择筛选状态"},{default:s(()=>[l(p,{label:"全部",value:-1}),(y(!0),U(F,null,N(z,(e,V)=>(y(),R(p,{key:V,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),u("span",Ie,[l(w,{modelValue:W.value,"onUpdate:modelValue":t[1]||(t[1]=e=>W.value=e),size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":E(_e)},null,8,["modelValue","prefix-icon"])])]),l(te,{height:"550",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},data:H.value,style:{width:"100%"}},{default:s(()=>[l(f,{sortable:"",prop:"createDate",label:"提交时间",width:"190"},{default:s(e=>[r(O(e.row.createDate&&E(j)(new Date(e.row.createDate))),1)]),_:1}),l(f,{prop:"title",label:"标题",width:"120"}),l(f,{prop:"des",label:"详细描述"}),l(f,{prop:"contact",label:"联系方式"}),l(f,{prop:"status",label:"状态"},{default:s(e=>[r(O(z.find(V=>V.type===e.row.status).label),1)]),_:1}),l(f,{fixed:"right",label:"操作",width:"100"},{default:s(e=>[u("div",$e,[l(m,{type:"primary",text:"",size:"small",onClick:V=>Q(e.row.id,e.row.status)},{default:s(()=>[r(" 修改状态 ")]),_:2},1032,["onClick"]),l(m,{type:"primary",text:"",size:"small",onClick:V=>Y(e.row.id,e.row.title,e.row.des)},{default:s(()=>[r(" 修改描述 ")]),_:2},1032,["onClick"])])]),_:1})]),_:1},8,["data"]),u("div",Te,[l(le,{"current-page":S.value,background:"","page-count":G.value,"page-sizes":[10,50,100,200],"page-size":v.value,total:I.value.length,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:J,onSizeChange:q},null,8,["current-page","page-count","page-size","total"])])]),l(B,{modelValue:h.value,"onUpdate:modelValue":t[4]||(t[4]=e=>h.value=e),fullscreen:E(A),center:"",title:"状态修改"},{footer:s(()=>[u("span",Le,[l(m,{onClick:t[3]||(t[3]=e=>h.value=!1)},{default:s(()=>[r("取 消")]),_:1}),l(m,{type:"primary",onClick:X},{default:s(()=>[r("确 定")]),_:1})])]),default:s(()=>[u("div",Ue,[l(x,{modelValue:b.value,"onUpdate:modelValue":t[2]||(t[2]=e=>b.value=e),placeholder:"请选择新状态"},{default:s(()=>[(y(!0),U(F,null,N(E(K),e=>(y(),R(p,{key:e.type,label:e.label,value:e.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])]),_:1},8,["modelValue","fullscreen"]),l(B,{modelValue:g.value,"onUpdate:modelValue":t[8]||(t[8]=e=>g.value=e),title:"需求信息",fullscreen:E(A)},{footer:s(()=>[u("span",Ae,[l(m,{onClick:t[7]||(t[7]=e=>g.value=!1)},{default:s(()=>[r("取 消")]),_:1}),l(m,{type:"primary",onClick:ee},{default:s(()=>[r("确 定")]),_:1})])]),default:s(()=>[l(ae,{model:o},{default:s(()=>[l(M,{label:"需求","label-width":Z},{default:s(()=>[l(w,{modelValue:o.title,"onUpdate:modelValue":t[5]||(t[5]=e=>o.title=e),placeholder:"一句简单明了的话概括一下"},null,8,["modelValue"])]),_:1}),l(M,{label:"详细描述","label-width":Z},{default:s(()=>[l(w,{modelValue:o.des,"onUpdate:modelValue":t[6]||(t[6]=e=>o.des=e),placeholder:"用朴素的话语进一步描述你的需求",type:"textarea"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","fullscreen"])])}}}),He=re(Be,[["__scopeId","data-v-fb1cf9f1"]]);export{He as default};
|
|
2
|
+
//# sourceMappingURL=index-CcPY3ZJk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CcPY3ZJk.js","sources":["../../src/apis/modules/wish.ts","../../src/pages/dashboard/manage/wish/index.vue"],"sourcesContent":["import { WishStatus } from '@/constants'\nimport ajax from '../ajax'\n\nfunction addWish(wish: Partial<WishApiTypes.Wish>): WishApiTypes.addWish {\n return ajax.post('/wish/add', wish)\n}\n\nfunction findAllWish(): WishApiTypes.allWishData {\n return ajax.get('/wish/all')\n}\n\nfunction updateWishStatus(\n id: string,\n status: WishStatus\n): WishApiTypes.updateWish {\n return ajax.put('/wish/update', { id, status })\n}\n\nfunction updateWishDes(\n id: string,\n title: string,\n des: string\n): WishApiTypes.updateWish {\n return ajax.put(`/wish/update/${id}`, { title, des })\n}\nexport default {\n addWish,\n findAllWish,\n updateWishStatus,\n updateWishDes\n}\n","<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport {\n computed,\n onMounted,\n reactive,\n ref,\n} from 'vue'\nimport { Search } from '@element-plus/icons-vue'\nimport { WishApi } from '@/apis'\nimport { formatDate } from '@/utils/stringUtil'\nimport { WishStatus } from '@/constants'\nimport { useIsMobile } from '@/composables'\n\nconst wishes = reactive<WishApiTypes.WishItem[]>([])\nfunction refreshWishes() {\n WishApi.findAllWish().then((v) => {\n wishes.splice(0, wishes.length, ...v.data)\n })\n}\n\n// 筛选状态\nconst filterLogType = ref(-1)\nconst searchWord = ref('')\nconst logTypeList = reactive([\n {\n label: '待审核',\n type: WishStatus.REVIEW,\n },\n {\n label: '待开始',\n type: WishStatus.WAIT,\n },\n {\n label: '关闭',\n type: WishStatus.CLOSE,\n },\n {\n label: '已上线',\n type: WishStatus.END,\n },\n {\n label: '开发中',\n type: WishStatus.START,\n },\n])\n\nconst filterWishes = computed(() => wishes\n .filter(v => v.status === filterLogType.value || filterLogType.value === -1)\n .filter((v) => {\n const {\n createDate,\n title,\n des,\n contact,\n } = v\n if (searchWord.value.length === 0)\n return true\n return `${formatDate(new Date(createDate))} ${title} ${des} ${contact}`.includes(searchWord.value)\n }))\n\n// 分页\nconst pageSize = ref(10)\nfunction handleSizeChange(v: number) {\n pageSize.value = v\n}\nconst pageCount = computed(() => {\n const t = Math.ceil(filterWishes.value.length / pageSize.value)\n return t\n})\nconst pageCurrent = ref(1)\nconst pageWishes = computed(() => {\n const start = (pageCurrent.value - 1) * pageSize.value\n const end = (pageCurrent.value) * pageSize.value\n return filterWishes.value.slice(start, end)\n})\nfunction handlePageChange(idx: number) {\n pageCurrent.value = idx\n}\n\n// 状态修改\nconst showWishStatusDialog = ref(false)\nconst selectWishId = ref('')\nconst selectStatus = ref(WishStatus.REVIEW)\nconst wishStatusList = logTypeList\nfunction handleChangeStatus(wishId: string, status: WishStatus) {\n selectWishId.value = wishId\n selectStatus.value = status\n showWishStatusDialog.value = true\n}\nfunction handleSaveStatus() {\n const wish = wishes.find(v => v.id === selectWishId.value)\n wish.status = selectStatus.value\n showWishStatusDialog.value = false\n WishApi\n .updateWishStatus(selectWishId.value, selectStatus.value)\n .then(() => {\n ElMessage.success('修改成功')\n })\n}\n\n// 描述信息修改\nconst formLabelWidth = '80px'\nconst desVisible = ref(false)\nconst formData = reactive({\n title: '',\n des: '',\n})\nfunction handleRewriteDes(id: string, title: string, des: string) {\n selectWishId.value = id\n formData.title = title\n formData.des = des\n desVisible.value = true\n}\nfunction handleUpdateWish() {\n const wish = wishes.find(v => v.id === selectWishId.value)\n WishApi\n .updateWishDes(selectWishId.value, formData.title, formData.des)\n .then(() => {\n desVisible.value = false\n wish.title = formData.title\n wish.des = formData.des\n ElMessage.success('修改成功')\n })\n}\nonMounted(() => {\n refreshWishes()\n})\n\nconst isMobile = useIsMobile()\n</script>\n\n<template>\n <div class=\"user\">\n <div class=\"panel\">\n <div class=\"p10 log-filter\">\n <span class=\"item\">\n <span class=\"label\">状态</span>\n <el-select v-model=\"filterLogType\" size=\"default\" placeholder=\"请选择筛选状态\">\n <el-option label=\"全部\" :value=\"-1\" />\n <el-option v-for=\"(item, idx) in logTypeList\" :key=\"idx\" :label=\"item.label\" :value=\"item.type\" />\n </el-select>\n </span>\n <span class=\"item\">\n <el-input v-model=\"searchWord\" size=\"default\" clearable placeholder=\"请输入要检索的内容\" :prefix-icon=\"Search\" />\n </span>\n </div>\n <el-table\n height=\"550\" stripe border :default-sort=\"{ prop: 'date', order: 'descending' }\" :data=\"pageWishes\"\n style=\"width: 100%\"\n >\n <el-table-column sortable prop=\"createDate\" label=\"提交时间\" width=\"190\">\n <template #default=\"scope\">\n {{ scope.row.createDate && formatDate(new Date(scope.row.createDate)) }}\n </template>\n </el-table-column>\n <el-table-column prop=\"title\" label=\"标题\" width=\"120\" />\n <el-table-column prop=\"des\" label=\"详细描述\" />\n <el-table-column prop=\"contact\" label=\"联系方式\" />\n <el-table-column prop=\"status\" label=\"状态\">\n <template #default=\"scope\">\n {{ logTypeList.find(v => v.type === scope.row.status).label }}\n </template>\n </el-table-column>\n <el-table-column fixed=\"right\" label=\"操作\" width=\"100\">\n <template #default=\"scope\">\n <div class=\"text-btn-list\">\n <el-button type=\"primary\" text size=\"small\" @click=\"handleChangeStatus(scope.row.id, scope.row.status)\">\n 修改状态\n </el-button>\n <el-button\n type=\"primary\" text size=\"small\"\n @click=\"handleRewriteDes(scope.row.id, scope.row.title, scope.row.des)\"\n >\n 修改描述\n </el-button>\n </div>\n </template>\n </el-table-column>\n </el-table>\n <div class=\"flex fc p10\">\n <el-pagination\n :current-page=\"pageCurrent\" background :page-count=\"pageCount\" :page-sizes=\"[10, 50, 100, 200]\"\n :page-size=\"pageSize\" :total=\"filterWishes.length\" layout=\"total, sizes, prev, pager, next, jumper\"\n @current-change=\"handlePageChange\" @size-change=\"handleSizeChange\"\n />\n </div>\n </div>\n <!-- 状态修改弹窗 -->\n <el-dialog v-model=\"showWishStatusDialog\" :fullscreen=\"isMobile\" center title=\"状态修改\">\n <div class=\"tc\">\n <el-select v-model=\"selectStatus\" placeholder=\"请选择新状态\">\n <el-option v-for=\"s in wishStatusList\" :key=\"s.type\" :label=\"s.label\" :value=\"s.type\" />\n </el-select>\n </div>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"showWishStatusDialog = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSaveStatus\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n\n <!-- 需求描述更新弹窗 -->\n <el-dialog v-model=\"desVisible\" title=\"需求信息\" :fullscreen=\"isMobile\">\n <el-form :model=\"formData\">\n <el-form-item label=\"需求\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"formData.title\" placeholder=\"一句简单明了的话概括一下\" />\n </el-form-item>\n <el-form-item label=\"详细描述\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"formData.des\" placeholder=\"用朴素的话语进一步描述你的需求\" type=\"textarea\" />\n </el-form-item>\n </el-form>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"desVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleUpdateWish\">确 定</el-button>\n </span>\n </template>\n </el-dialog>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n\n .log-filter {\n justify-content: center;\n }\n}\n\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\n.log-filter {\n display: flex;\n flex-wrap: wrap;\n\n .item {\n margin-right: 10px;\n margin-bottom: 10px;\n\n .label {\n margin-right: 10px;\n font-size: 12px;\n }\n }\n}\n\n.text-btn-list {\n display: flex;\n flex-wrap: wrap;\n\n button {\n margin-left: 0;\n }\n}\n</style>\n"],"names":["addWish","wish","ajax","findAllWish","updateWishStatus","id","status","updateWishDes","title","des","WishApi","formLabelWidth","wishes","reactive","refreshWishes","v","filterLogType","ref","searchWord","logTypeList","WishStatus","filterWishes","computed","createDate","contact","formatDate","pageSize","handleSizeChange","pageCount","pageCurrent","pageWishes","start","end","handlePageChange","idx","showWishStatusDialog","selectWishId","selectStatus","wishStatusList","handleChangeStatus","wishId","handleSaveStatus","ElMessage","desVisible","formData","handleRewriteDes","handleUpdateWish","onMounted","isMobile","useIsMobile"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h1[data-v-57f0136c],h2[data-v-57f0136c],h3[data-v-57f0136c],h4[data-v-57f0136c]{font-weight:500}.about[data-v-57f0136c]{background-image:linear-gradient(120deg,#a1c4fd,#c2e9fb);min-height:100vh}main[data-v-57f0136c]{max-width:860px;margin:0 auto;padding:20px}main .panel[data-v-57f0136c]{position:relative;margin:0 auto 10px;padding:16px 20px;width:100%;overflow:hidden;border-radius:.25rem;box-shadow:#eee;box-sizing:border-box;transition:all .3s;background-color:#fff}main .logo[data-v-57f0136c]{width:100%;max-width:520px;margin:0 auto;display:block}main h1[data-v-57f0136c]{font-size:1.6rem;margin-bottom:10px}main h2[data-v-57f0136c]{font-size:1.3rem;margin-bottom:12px}main ul[data-v-57f0136c],main ol[data-v-57f0136c]{margin-left:20px;font-size:15px;margin-bottom:1em}main p[data-v-57f0136c]{font-size:15px;margin-bottom:1em}main a[data-v-57f0136c]{color:#409eff}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@media screen and (max-width: 700px){.card-list[data-v-2d96ccb5]{margin-top:40px}.card[data-v-2d96ccb5]{min-width:300px}.log-filter[data-v-2d96ccb5]{justify-content:center}}.overview[data-v-2d96ccb5]{margin:0 auto}.card-list[data-v-2d96ccb5]{display:flex;margin-top:20px;justify-content:center;flex-wrap:wrap}.card[data-v-2d96ccb5]{margin:10px;cursor:pointer;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05);min-width:300px}.card .logo[data-v-2d96ccb5]{float:left;margin:4px 10px 0;-webkit-transition:all .38s ease-out;transition:all .38s ease-out;border-radius:6px;font-size:48px}.card .logo i[data-v-2d96ccb5]{padding:10px}.card .content[data-v-2d96ccb5]{float:right;font-weight:700;margin:10px 10px 10px 0}.card .content .title[data-v-2d96ccb5]{line-height:18px;color:rgba(0,0,0,.45);font-size:14px;text-align:right}.card .content .text[data-v-2d96ccb5]{font-size:16px;text-align:right}.card .content .supplement[data-v-2d96ccb5]{font-size:12px;font-weight:lighter;text-align:right}.panel[data-v-2d96ccb5]{max-width:1024px;padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.log-filter[data-v-2d96ccb5]{display:flex;flex-wrap:wrap}.log-filter .item[data-v-2d96ccb5]{margin-right:10px;margin-bottom:10px}.log-filter .item .label[data-v-2d96ccb5]{margin-right:10px;font-size:12px}
|