@sugarat/easypicker2-client 2.7.3 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/aria-legacy-B70JmEZA.js.map +1 -1
- package/dist/assets/aria-nkjrUMQ-.js.map +1 -1
- package/dist/assets/config-CDHxxo7b.js +2 -0
- package/dist/assets/config-CDHxxo7b.js.map +1 -0
- package/dist/assets/config-CnEgj70a.css +1 -0
- package/dist/assets/config-legacy-n3sQ5kGn.js +2 -0
- package/dist/assets/config-legacy-n3sQ5kGn.js.map +1 -0
- package/dist/assets/{data-analysis-Bnq_VWU8.js → data-analysis-DBnVKJmJ.js} +2 -2
- package/dist/assets/data-analysis-DBnVKJmJ.js.map +1 -0
- package/dist/assets/{data-analysis-legacy-_KcR253K.js → data-analysis-legacy-4qD1YhB2.js} +2 -2
- package/dist/assets/data-analysis-legacy-4qD1YhB2.js.map +1 -0
- package/dist/assets/{data-board-L3s5ouKd.js → data-board-DeJXppeB.js} +2 -2
- package/dist/assets/data-board-DeJXppeB.js.map +1 -0
- package/dist/assets/{data-board-legacy-BFxWeFnQ.js → data-board-legacy-8OJulkyJ.js} +2 -2
- package/dist/assets/data-board-legacy-8OJulkyJ.js.map +1 -0
- package/dist/assets/delete-filled-DvkAD61M.js +2 -0
- package/dist/assets/delete-filled-DvkAD61M.js.map +1 -0
- package/dist/assets/delete-filled-legacy-BhHT0v2W.js +2 -0
- package/dist/assets/delete-filled-legacy-BhHT0v2W.js.map +1 -0
- package/dist/assets/el-date-picker-BX8jtnY2.js +2 -0
- package/dist/assets/el-date-picker-BX8jtnY2.js.map +1 -0
- package/dist/assets/el-date-picker-legacy-iQW0501V.js +2 -0
- package/dist/assets/el-date-picker-legacy-iQW0501V.js.map +1 -0
- package/dist/assets/el-dropdown-item-BQ-7lFIb.js +2 -0
- package/dist/assets/el-dropdown-item-BQ-7lFIb.js.map +1 -0
- package/dist/assets/el-dropdown-item-legacy-D5N_3F3d.js +2 -0
- package/dist/assets/el-dropdown-item-legacy-D5N_3F3d.js.map +1 -0
- package/dist/assets/el-empty-BZNyAlA7.js +2 -0
- package/dist/assets/el-empty-BZNyAlA7.js.map +1 -0
- package/dist/assets/el-empty-C2yupmrg.css +1 -0
- package/dist/assets/el-empty-legacy--8JR0M1C.js +2 -0
- package/dist/assets/el-empty-legacy--8JR0M1C.js.map +1 -0
- package/dist/assets/el-input-number-C0Bp8kfg.js +2 -0
- package/dist/assets/el-input-number-C0Bp8kfg.js.map +1 -0
- package/dist/assets/el-input-number-CU7OpiYS.css +1 -0
- package/dist/assets/el-input-number-legacy-CaZROy3J.js +2 -0
- package/dist/assets/el-input-number-legacy-CaZROy3J.js.map +1 -0
- package/dist/assets/{el-loading-DNzUD85e.js → el-loading-DgUVClxn.js} +2 -2
- package/dist/assets/el-loading-DgUVClxn.js.map +1 -0
- package/dist/assets/el-loading-legacy-BpxkUp1m.js +2 -0
- package/dist/assets/el-loading-legacy-BpxkUp1m.js.map +1 -0
- package/dist/assets/el-pagination-DX6u100-.js +2 -0
- package/dist/assets/el-pagination-DX6u100-.js.map +1 -0
- package/dist/assets/el-pagination-legacy-BcfQQTNs.js +2 -0
- package/dist/assets/el-pagination-legacy-BcfQQTNs.js.map +1 -0
- package/dist/assets/el-scrollbar-D2RZSJkX.js +2 -0
- package/dist/assets/el-scrollbar-D2RZSJkX.js.map +1 -0
- package/dist/assets/el-scrollbar-DFu7lMno.css +1 -0
- package/dist/assets/el-scrollbar-legacy-CLEobATW.js +2 -0
- package/dist/assets/el-scrollbar-legacy-CLEobATW.js.map +1 -0
- package/dist/assets/el-select-DWyBOD47.js +2 -0
- package/dist/assets/el-select-DWyBOD47.js.map +1 -0
- package/dist/assets/el-select-Dm4tLYz8.css +1 -0
- package/dist/assets/el-select-legacy-Cvxrwg7z.js +2 -0
- package/dist/assets/el-select-legacy-Cvxrwg7z.js.map +1 -0
- package/dist/assets/el-switch-c6xoppF3.js +2 -0
- package/dist/assets/el-switch-c6xoppF3.js.map +1 -0
- package/dist/assets/el-switch-legacy-DCF_46l4.js +2 -0
- package/dist/assets/el-switch-legacy-DCF_46l4.js.map +1 -0
- package/dist/assets/el-tab-pane-DWJdeyqN.js +2 -0
- package/dist/assets/el-tab-pane-DWJdeyqN.js.map +1 -0
- package/dist/assets/{el-tab-pane-legacy-DMdhUCHY.js → el-tab-pane-legacy-Cgd5IxXQ.js} +2 -2
- package/dist/assets/el-tab-pane-legacy-Cgd5IxXQ.js.map +1 -0
- package/dist/assets/{el-table-column-tkbtgrcD.js → el-table-column-DdhVw628.js} +3 -3
- package/dist/assets/el-table-column-DdhVw628.js.map +1 -0
- package/dist/assets/el-table-column-legacy-D1aU2dQP.js +24 -0
- package/dist/assets/el-table-column-legacy-D1aU2dQP.js.map +1 -0
- package/dist/assets/el-tag-Bgje3_SF.css +1 -0
- package/dist/assets/el-tag-legacy-DxOZcEw1.js +2 -0
- package/dist/assets/el-tag-legacy-DxOZcEw1.js.map +1 -0
- package/dist/assets/el-tag-uk6aooq0.js +2 -0
- package/dist/assets/el-tag-uk6aooq0.js.map +1 -0
- package/dist/assets/el-upload-B2Zxm6X5.css +1 -0
- package/dist/assets/el-upload-BxExG7hd.js +2 -0
- package/dist/assets/el-upload-BxExG7hd.js.map +1 -0
- package/dist/assets/el-upload-legacy-D8KH6HBU.js +2 -0
- package/dist/assets/el-upload-legacy-D8KH6HBU.js.map +1 -0
- package/dist/assets/index--nCmso-n.js +2 -0
- package/dist/assets/index--nCmso-n.js.map +1 -0
- package/dist/assets/index-2qujr45D.js +2 -0
- package/dist/assets/index-2qujr45D.js.map +1 -0
- package/dist/assets/index-6fj8rr7z.js +2 -0
- package/dist/assets/index-6fj8rr7z.js.map +1 -0
- package/dist/assets/index-8vfFTV-B.css +1 -0
- package/dist/assets/index-B-yBTqWJ.js +2 -0
- package/dist/assets/index-B-yBTqWJ.js.map +1 -0
- package/dist/assets/index-BC_fnfOg.js +2 -0
- package/dist/assets/index-BC_fnfOg.js.map +1 -0
- package/dist/assets/{index-C4H-Ptjt.css → index-BDkChTag.css} +1 -1
- package/dist/assets/index-BDsN2eKB.js +2 -0
- package/dist/assets/index-BDsN2eKB.js.map +1 -0
- package/dist/assets/index-BSIRw8UD.js +2 -0
- package/dist/assets/index-BSIRw8UD.js.map +1 -0
- package/dist/assets/index-BSMNPGJ5.css +1 -0
- package/dist/assets/index-BVEIUX2D.js +2 -0
- package/dist/assets/index-BVEIUX2D.js.map +1 -0
- package/dist/assets/index-BVp20vyj.css +1 -0
- package/dist/assets/index-BcJxc1ki.css +1 -0
- package/dist/assets/index-BgihxBmj.css +1 -0
- package/dist/assets/index-BjSgvXxj.css +1 -0
- package/dist/assets/index-BmheqIC4.js +2 -0
- package/dist/assets/index-BmheqIC4.js.map +1 -0
- package/dist/assets/index-BrOLxzFM.js.map +1 -1
- package/dist/assets/{index-ehQnwCE_.css → index-Bxvzu7zF.css} +1 -1
- package/dist/assets/index-CFpIdG49.css +1 -0
- package/dist/assets/index-CKVj2mCd.js +2 -0
- package/dist/assets/index-CKVj2mCd.js.map +1 -0
- package/dist/assets/index-CLt64lxI.js +2 -0
- package/dist/assets/index-CLt64lxI.js.map +1 -0
- package/dist/assets/index-COI3CDfm.js +2 -0
- package/dist/assets/index-COI3CDfm.js.map +1 -0
- package/dist/assets/index-CQud0ONT.css +1 -0
- package/dist/assets/index-CkyNID7q.css +1 -0
- package/dist/assets/index-CsTsOuFs.js +2 -0
- package/dist/assets/index-CsTsOuFs.js.map +1 -0
- package/dist/assets/index-CsfbnGni.css +1 -0
- package/dist/assets/index-D5EKLT5I.js +2 -0
- package/dist/assets/index-D5EKLT5I.js.map +1 -0
- package/dist/assets/index-D94P-51I.css +1 -0
- package/dist/assets/index-DBQzOZB-.js +23 -0
- package/dist/assets/index-DBQzOZB-.js.map +1 -0
- package/dist/assets/index-DC08DNQQ.js +2 -0
- package/dist/assets/index-DC08DNQQ.js.map +1 -0
- package/dist/assets/index-DLuR61Hw.css +1 -0
- package/dist/assets/index-DT7ciPLb.js +2 -0
- package/dist/assets/index-DT7ciPLb.js.map +1 -0
- package/dist/assets/index-DYTxk2nM.js +2 -0
- package/dist/assets/index-DYTxk2nM.js.map +1 -0
- package/dist/assets/index-DbhWmXsj.js +40 -0
- package/dist/assets/index-DbhWmXsj.js.map +1 -0
- package/dist/assets/index-DcUtl6Nq.css +1 -0
- package/dist/assets/index-DpoyDAhf.js +2 -0
- package/dist/assets/index-DpoyDAhf.js.map +1 -0
- package/dist/assets/index-Ds7mlGo_.js +2 -0
- package/dist/assets/index-Ds7mlGo_.js.map +1 -0
- package/dist/assets/index-FISBGs_l.css +1 -0
- package/dist/assets/index-FkvPFOBZ.js +2 -0
- package/dist/assets/index-FkvPFOBZ.js.map +1 -0
- package/dist/assets/index-HJwe3MZ4.js +2 -0
- package/dist/assets/index-HJwe3MZ4.js.map +1 -0
- package/dist/assets/index-LKJh-8oZ.css +1 -0
- package/dist/assets/index-Q8b92C8V.css +1 -0
- package/dist/assets/index-legacy-0p9exu0M.js +2 -0
- package/dist/assets/index-legacy-0p9exu0M.js.map +1 -0
- package/dist/assets/index-legacy-2gZknrAr.js +2 -0
- package/dist/assets/index-legacy-2gZknrAr.js.map +1 -0
- package/dist/assets/index-legacy-AH8uXlwH.js +2 -0
- package/dist/assets/index-legacy-AH8uXlwH.js.map +1 -0
- package/dist/assets/index-legacy-BTvagK_v.js +2 -0
- package/dist/assets/index-legacy-BTvagK_v.js.map +1 -0
- package/dist/assets/index-legacy-BUrH0Ubh.js +2 -0
- package/dist/assets/index-legacy-BUrH0Ubh.js.map +1 -0
- package/dist/assets/index-legacy-BVk27mxb.js +2 -0
- package/dist/assets/index-legacy-BVk27mxb.js.map +1 -0
- package/dist/assets/index-legacy-BnfLqgKz.js +2 -0
- package/dist/assets/index-legacy-BnfLqgKz.js.map +1 -0
- package/dist/assets/index-legacy-BsWj1xV2.js +54 -0
- package/dist/assets/index-legacy-BsWj1xV2.js.map +1 -0
- package/dist/assets/index-legacy-Bvis80MO.js +2 -0
- package/dist/assets/index-legacy-Bvis80MO.js.map +1 -0
- package/dist/assets/index-legacy-BxqvVJh6.js +16 -0
- package/dist/assets/index-legacy-BxqvVJh6.js.map +1 -0
- package/dist/assets/index-legacy-C-gHf8SN.js.map +1 -1
- package/dist/assets/index-legacy-C8OALizf.js +2 -0
- package/dist/assets/index-legacy-C8OALizf.js.map +1 -0
- package/dist/assets/index-legacy-Ca1NdJPm.js +2 -0
- package/dist/assets/index-legacy-Ca1NdJPm.js.map +1 -0
- package/dist/assets/index-legacy-D3Gbb8pX.js +2 -0
- package/dist/assets/index-legacy-D3Gbb8pX.js.map +1 -0
- package/dist/assets/index-legacy-DFUJlpQR.js +2 -0
- package/dist/assets/index-legacy-DFUJlpQR.js.map +1 -0
- package/dist/assets/index-legacy-DNPnYZJW.js +2 -0
- package/dist/assets/index-legacy-DNPnYZJW.js.map +1 -0
- package/dist/assets/index-legacy-DaUa56O-.js +2 -0
- package/dist/assets/index-legacy-DaUa56O-.js.map +1 -0
- package/dist/assets/index-legacy-DqfRlqrq.js +2 -0
- package/dist/assets/index-legacy-DqfRlqrq.js.map +1 -0
- package/dist/assets/index-legacy-DyJmAPRK.js +2 -0
- package/dist/assets/index-legacy-DyJmAPRK.js.map +1 -0
- package/dist/assets/index-legacy-DziFQjpX.js +2 -0
- package/dist/assets/index-legacy-DziFQjpX.js.map +1 -0
- package/dist/assets/index-legacy-N9COO-uZ.js +2 -0
- package/dist/assets/index-legacy-N9COO-uZ.js.map +1 -0
- package/dist/assets/index-legacy-P9gt2mpu.js +2 -0
- package/dist/assets/index-legacy-P9gt2mpu.js.map +1 -0
- package/dist/assets/index-legacy-c8lop5xr.js +2 -0
- package/dist/assets/index-legacy-c8lop5xr.js.map +1 -0
- package/dist/assets/index-legacy-npRizjoU.js +2 -0
- package/dist/assets/index-legacy-npRizjoU.js.map +1 -0
- package/dist/assets/index-legacy-xL9mLEDR.js +2 -0
- package/dist/assets/index-legacy-xL9mLEDR.js.map +1 -0
- package/dist/assets/index-mtfctTgx.css +1 -0
- package/dist/assets/index-oKiyEdt0.js +2 -0
- package/dist/assets/index-oKiyEdt0.js.map +1 -0
- package/dist/assets/linkDialog-D30VnNS0.js +2 -0
- package/dist/assets/linkDialog-D30VnNS0.js.map +1 -0
- package/dist/assets/linkDialog-Dida934t.css +1 -0
- package/dist/assets/linkDialog-legacy-CCHpjX0B.js +2 -0
- package/dist/assets/linkDialog-legacy-CCHpjX0B.js.map +1 -0
- package/dist/assets/other-BiIe9Z0L.js +2 -0
- package/dist/assets/other-BiIe9Z0L.js.map +1 -0
- package/dist/assets/other-legacy-Bfm4KL87.js +2 -0
- package/dist/assets/other-legacy-Bfm4KL87.js.map +1 -0
- package/dist/assets/polyfills-legacy-DqO_DCwg.js +1 -0
- package/dist/assets/{refresh-DPuuDO9h.js → refresh-Cccf8YoS.js} +2 -2
- package/dist/assets/refresh-Cccf8YoS.js.map +1 -0
- package/dist/assets/{refresh-legacy-DOts-8Wc.js → refresh-legacy-BwFA7z7t.js} +2 -2
- package/dist/assets/refresh-legacy-BwFA7z7t.js.map +1 -0
- package/dist/assets/tip-Nu5QmDDd.js +2 -0
- package/dist/assets/tip-Nu5QmDDd.js.map +1 -0
- package/dist/assets/tip-legacy-D_0YSCxT.js +2 -0
- package/dist/assets/tip-legacy-D_0YSCxT.js.map +1 -0
- package/dist/assets/tipInfo-BPHCIpRm.css +1 -0
- package/dist/assets/tipInfo-D75KJpWg.js +2 -0
- package/dist/assets/tipInfo-D75KJpWg.js.map +1 -0
- package/dist/assets/tipInfo-legacy-CV235bKZ.js +2 -0
- package/dist/assets/tipInfo-legacy-CV235bKZ.js.map +1 -0
- package/dist/index.html +105 -128
- package/package.json +13 -34
- package/README.md +0 -86
- package/dist/assets/data-analysis-Bnq_VWU8.js.map +0 -1
- package/dist/assets/data-analysis-legacy-_KcR253K.js.map +0 -1
- package/dist/assets/data-board-L3s5ouKd.js.map +0 -1
- package/dist/assets/data-board-legacy-BFxWeFnQ.js.map +0 -1
- package/dist/assets/el-date-picker-legacy-Uk9x97L5.js +0 -2
- package/dist/assets/el-date-picker-legacy-Uk9x97L5.js.map +0 -1
- package/dist/assets/el-date-picker-mhY2RJMG.js +0 -2
- package/dist/assets/el-date-picker-mhY2RJMG.js.map +0 -1
- package/dist/assets/el-dialog-Cu2jwelC.css +0 -1
- package/dist/assets/el-dialog-PRccau6N.js +0 -2
- package/dist/assets/el-dialog-PRccau6N.js.map +0 -1
- package/dist/assets/el-dialog-legacy-BRLM43ZY.js +0 -2
- package/dist/assets/el-dialog-legacy-BRLM43ZY.js.map +0 -1
- package/dist/assets/el-dropdown-item-Cr71teRg.js +0 -2
- package/dist/assets/el-dropdown-item-Cr71teRg.js.map +0 -1
- package/dist/assets/el-dropdown-item-legacy-B0ufpHvy.js +0 -2
- package/dist/assets/el-dropdown-item-legacy-B0ufpHvy.js.map +0 -1
- package/dist/assets/el-form-item-Cc9R0dZ1.css +0 -1
- package/dist/assets/el-form-item-DOwM4Mv8.js +0 -2
- package/dist/assets/el-form-item-DOwM4Mv8.js.map +0 -1
- package/dist/assets/el-form-item-legacy-CvQy7syv.js +0 -2
- package/dist/assets/el-form-item-legacy-CvQy7syv.js.map +0 -1
- package/dist/assets/el-loading-DNzUD85e.js.map +0 -1
- package/dist/assets/el-loading-legacy-B3RLcjwN.js +0 -2
- package/dist/assets/el-loading-legacy-B3RLcjwN.js.map +0 -1
- package/dist/assets/el-pagination-iCicJonH.js +0 -2
- package/dist/assets/el-pagination-iCicJonH.js.map +0 -1
- package/dist/assets/el-pagination-legacy-Bf-Bzx7n.js +0 -2
- package/dist/assets/el-pagination-legacy-Bf-Bzx7n.js.map +0 -1
- package/dist/assets/el-progress-1hLO5hs0.js +0 -2
- package/dist/assets/el-progress-1hLO5hs0.js.map +0 -1
- package/dist/assets/el-progress-legacy-QmxDezwR.js +0 -2
- package/dist/assets/el-progress-legacy-QmxDezwR.js.map +0 -1
- package/dist/assets/el-progress-njCW9-w4.css +0 -1
- package/dist/assets/el-select-BSO0hXRI.css +0 -1
- package/dist/assets/el-select-CVjQdC39.js +0 -2
- package/dist/assets/el-select-CVjQdC39.js.map +0 -1
- package/dist/assets/el-select-legacy-DSGgSQYX.js +0 -2
- package/dist/assets/el-select-legacy-DSGgSQYX.js.map +0 -1
- package/dist/assets/el-switch-B76QvbJN.js +0 -2
- package/dist/assets/el-switch-B76QvbJN.js.map +0 -1
- package/dist/assets/el-switch-legacy-CHkEgavQ.js +0 -2
- package/dist/assets/el-switch-legacy-CHkEgavQ.js.map +0 -1
- package/dist/assets/el-tab-pane-BhVByOfe.js +0 -2
- package/dist/assets/el-tab-pane-BhVByOfe.js.map +0 -1
- package/dist/assets/el-tab-pane-legacy-DMdhUCHY.js.map +0 -1
- package/dist/assets/el-table-column-legacy-N_oU_-0P.js +0 -24
- package/dist/assets/el-table-column-legacy-N_oU_-0P.js.map +0 -1
- package/dist/assets/el-table-column-tkbtgrcD.js.map +0 -1
- package/dist/assets/index-3yen43So.js +0 -2
- package/dist/assets/index-3yen43So.js.map +0 -1
- package/dist/assets/index-5sS3uHi0.css +0 -1
- package/dist/assets/index-9zuSLjpa.js +0 -2
- package/dist/assets/index-9zuSLjpa.js.map +0 -1
- package/dist/assets/index-B-6zRvEX.js +0 -2
- package/dist/assets/index-B-6zRvEX.js.map +0 -1
- package/dist/assets/index-B5tZv3FB.css +0 -1
- package/dist/assets/index-BN1f1UM3.js +0 -2
- package/dist/assets/index-BN1f1UM3.js.map +0 -1
- package/dist/assets/index-BUmkgniE.js +0 -2
- package/dist/assets/index-BUmkgniE.js.map +0 -1
- package/dist/assets/index-BbfnoqK6.js +0 -2
- package/dist/assets/index-BbfnoqK6.js.map +0 -1
- package/dist/assets/index-BghihfR3.css +0 -1
- package/dist/assets/index-C3IckGNL.js +0 -2
- package/dist/assets/index-C3IckGNL.js.map +0 -1
- package/dist/assets/index-CYAf_OTx.js +0 -40
- package/dist/assets/index-CYAf_OTx.js.map +0 -1
- package/dist/assets/index-Cb6-p2hG.js +0 -2
- package/dist/assets/index-Cb6-p2hG.js.map +0 -1
- package/dist/assets/index-CbkKWoQA.css +0 -1
- package/dist/assets/index-CeWnhlkq.css +0 -1
- package/dist/assets/index-Cfg2jkVw.css +0 -1
- package/dist/assets/index-CkMvb3wF.css +0 -1
- package/dist/assets/index-Cl4G6EQO.js +0 -2
- package/dist/assets/index-Cl4G6EQO.js.map +0 -1
- package/dist/assets/index-CnbFxlpi.css +0 -1
- package/dist/assets/index-Cyb1OjRN.js +0 -2
- package/dist/assets/index-Cyb1OjRN.js.map +0 -1
- package/dist/assets/index-D2p3cWtM.css +0 -1
- package/dist/assets/index-D7aZxhM6.js +0 -2
- package/dist/assets/index-D7aZxhM6.js.map +0 -1
- package/dist/assets/index-DI41wbky.js +0 -2
- package/dist/assets/index-DI41wbky.js.map +0 -1
- package/dist/assets/index-DaSb9EV4.css +0 -1
- package/dist/assets/index-DcOjlpKI.js +0 -2
- package/dist/assets/index-DcOjlpKI.js.map +0 -1
- package/dist/assets/index-DjO-nUIS.js +0 -2
- package/dist/assets/index-DjO-nUIS.js.map +0 -1
- package/dist/assets/index-DnxF29eG.css +0 -1
- package/dist/assets/index-DrKX0cCg.js +0 -2
- package/dist/assets/index-DrKX0cCg.js.map +0 -1
- package/dist/assets/index-F3S0vKOW.js +0 -2
- package/dist/assets/index-F3S0vKOW.js.map +0 -1
- package/dist/assets/index-I78Ur1Md.js +0 -2
- package/dist/assets/index-I78Ur1Md.js.map +0 -1
- package/dist/assets/index-L0LtrfyP.js +0 -2
- package/dist/assets/index-L0LtrfyP.js.map +0 -1
- package/dist/assets/index-XNFQHmLL.css +0 -1
- package/dist/assets/index-dEAnfrhp.css +0 -1
- package/dist/assets/index-hhTdfxnD.css +0 -1
- package/dist/assets/index-lTmxAqnX.js +0 -2
- package/dist/assets/index-lTmxAqnX.js.map +0 -1
- package/dist/assets/index-legacy-BJNK4MqF.js +0 -2
- package/dist/assets/index-legacy-BJNK4MqF.js.map +0 -1
- package/dist/assets/index-legacy-BLlk8iq-.js +0 -42
- package/dist/assets/index-legacy-BLlk8iq-.js.map +0 -1
- package/dist/assets/index-legacy-BmWYm3m_.js +0 -2
- package/dist/assets/index-legacy-BmWYm3m_.js.map +0 -1
- package/dist/assets/index-legacy-Bnp7569A.js +0 -2
- package/dist/assets/index-legacy-Bnp7569A.js.map +0 -1
- package/dist/assets/index-legacy-CQ24Si-w.js +0 -2
- package/dist/assets/index-legacy-CQ24Si-w.js.map +0 -1
- package/dist/assets/index-legacy-CT1nF7s9.js +0 -2
- package/dist/assets/index-legacy-CT1nF7s9.js.map +0 -1
- package/dist/assets/index-legacy-CeVzo60P.js +0 -2
- package/dist/assets/index-legacy-CeVzo60P.js.map +0 -1
- package/dist/assets/index-legacy-Cf0w_PNA.js +0 -2
- package/dist/assets/index-legacy-Cf0w_PNA.js.map +0 -1
- package/dist/assets/index-legacy-DZSQUiaj.js +0 -2
- package/dist/assets/index-legacy-DZSQUiaj.js.map +0 -1
- package/dist/assets/index-legacy-D_K0eXFb.js +0 -2
- package/dist/assets/index-legacy-D_K0eXFb.js.map +0 -1
- package/dist/assets/index-legacy-Da3YyHW_.js +0 -2
- package/dist/assets/index-legacy-Da3YyHW_.js.map +0 -1
- package/dist/assets/index-legacy-Da4s_D85.js +0 -2
- package/dist/assets/index-legacy-Da4s_D85.js.map +0 -1
- package/dist/assets/index-legacy-DhNaKknk.js +0 -2
- package/dist/assets/index-legacy-DhNaKknk.js.map +0 -1
- package/dist/assets/index-legacy-Dm1CXog1.js +0 -2
- package/dist/assets/index-legacy-Dm1CXog1.js.map +0 -1
- package/dist/assets/index-legacy-DpNNn-Dy.js +0 -2
- package/dist/assets/index-legacy-DpNNn-Dy.js.map +0 -1
- package/dist/assets/index-legacy-PkF4cKK9.js +0 -2
- package/dist/assets/index-legacy-PkF4cKK9.js.map +0 -1
- package/dist/assets/index-legacy-QHDmYAB8.js +0 -2
- package/dist/assets/index-legacy-QHDmYAB8.js.map +0 -1
- package/dist/assets/index-legacy-_M1-0586.js +0 -2
- package/dist/assets/index-legacy-_M1-0586.js.map +0 -1
- package/dist/assets/index-legacy-m0dvnwGi.js +0 -2
- package/dist/assets/index-legacy-m0dvnwGi.js.map +0 -1
- package/dist/assets/index-legacy-vRS79jKS.js +0 -2
- package/dist/assets/index-legacy-vRS79jKS.js.map +0 -1
- package/dist/assets/index-ypHH_Z_A.css +0 -1
- package/dist/assets/isEqual-BHpVKj_X.js +0 -2
- package/dist/assets/isEqual-BHpVKj_X.js.map +0 -1
- package/dist/assets/isEqual-legacy-BWUPR8bV.js +0 -2
- package/dist/assets/isEqual-legacy-BWUPR8bV.js.map +0 -1
- package/dist/assets/other-legacy-DjiCmSH4.js +0 -2
- package/dist/assets/other-legacy-DjiCmSH4.js.map +0 -1
- package/dist/assets/other-yMAyytYx.js +0 -2
- package/dist/assets/other-yMAyytYx.js.map +0 -1
- package/dist/assets/polyfills-legacy-CPmsgIAF.js +0 -4
- package/dist/assets/refresh-DPuuDO9h.js.map +0 -1
- package/dist/assets/refresh-legacy-DOts-8Wc.js.map +0 -1
- package/dist/assets/tip-CH7nBVXc.js +0 -2
- package/dist/assets/tip-CH7nBVXc.js.map +0 -1
- package/dist/assets/tip-legacy-DiCk_qP1.js +0 -2
- package/dist/assets/tip-legacy-DiCk_qP1.js.map +0 -1
- package/dist/assets/validator-BMr-jeUB.js +0 -2
- package/dist/assets/validator-BMr-jeUB.js.map +0 -1
- package/dist/assets/validator-legacy-CacjPWoF.js +0 -2
- package/dist/assets/validator-legacy-CacjPWoF.js.map +0 -1
- /package/dist/assets/{el-date-picker-NjWHL2Br.css → el-date-picker-C36c2CGO.css} +0 -0
- /package/dist/assets/{el-dropdown-item-CUgTpiu6.css → el-dropdown-item-5b6bMUQF.css} +0 -0
- /package/dist/assets/{el-loading-Uv12lkco.css → el-loading-BPl8mdQ3.css} +0 -0
- /package/dist/assets/{el-pagination-MvCAleW2.css → el-pagination-DMHBWKFj.css} +0 -0
- /package/dist/assets/{el-switch-D6dVIPlw.css → el-switch-CH9HekZJ.css} +0 -0
- /package/dist/assets/{el-tab-pane-kUw7IczA.css → el-tab-pane-CO1C5qCV.css} +0 -0
- /package/dist/assets/{el-table-column-DMXHP8sd.css → el-table-column-x3grTP_N.css} +0 -0
- /package/dist/assets/{tip-ovQu2XSt.css → tip-rRSL6nZ2.css} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index--nCmso-n.js","sources":["../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/tokens/radio.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/radio/src/radio.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/radio/src/use-radio.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/radio/src/radio2.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/radio/src/radio-button.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/radio/src/radio-button2.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/radio/src/radio-group.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/radio/src/radio-group2.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/radio/index.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/progress/src/progress.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/progress/src/progress2.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/progress/index.mjs","../../src/components/InfosForm/index.vue"],"sourcesContent":["const radioGroupKey = Symbol(\"radioGroupKey\");\n\nexport { radioGroupKey };\n//# sourceMappingURL=radio.mjs.map\n","import '../../../utils/index.mjs';\nimport '../../../constants/index.mjs';\nimport '../../../hooks/index.mjs';\nimport { buildProps } from '../../../utils/vue/props/runtime.mjs';\nimport { useSizeProp } from '../../../hooks/use-common-props/index.mjs';\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';\nimport { isString } from '@vue/shared';\nimport { isNumber, isBoolean } from '@vueuse/core';\n\nconst radioPropsBase = buildProps({\n size: useSizeProp,\n disabled: Boolean,\n label: {\n type: [String, Number, Boolean],\n default: \"\"\n }\n});\nconst radioProps = buildProps({\n ...radioPropsBase,\n modelValue: {\n type: [String, Number, Boolean],\n default: \"\"\n },\n name: {\n type: String,\n default: \"\"\n },\n border: Boolean\n});\nconst radioEmits = {\n [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val),\n [CHANGE_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val)\n};\n\nexport { radioEmits, radioProps, radioPropsBase };\n//# sourceMappingURL=radio.mjs.map\n","import { ref, inject, computed } from 'vue';\nimport '../../../constants/index.mjs';\nimport '../../../tokens/index.mjs';\nimport '../../../hooks/index.mjs';\nimport { radioGroupKey } from '../../../tokens/radio.mjs';\nimport { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';\nimport { useSize, useDisabled } from '../../../hooks/use-common-props/index.mjs';\n\nconst useRadio = (props, emit) => {\n const radioRef = ref();\n const radioGroup = inject(radioGroupKey, void 0);\n const isGroup = computed(() => !!radioGroup);\n const modelValue = computed({\n get() {\n return isGroup.value ? radioGroup.modelValue : props.modelValue;\n },\n set(val) {\n if (isGroup.value) {\n radioGroup.changeEvent(val);\n } else {\n emit && emit(UPDATE_MODEL_EVENT, val);\n }\n radioRef.value.checked = props.modelValue === props.label;\n }\n });\n const size = useSize(computed(() => radioGroup == null ? void 0 : radioGroup.size));\n const disabled = useDisabled(computed(() => radioGroup == null ? void 0 : radioGroup.disabled));\n const focus = ref(false);\n const tabIndex = computed(() => {\n return disabled.value || isGroup.value && modelValue.value !== props.label ? -1 : 0;\n });\n return {\n radioRef,\n isGroup,\n radioGroup,\n focus,\n size,\n disabled,\n tabIndex,\n modelValue\n };\n};\n\nexport { useRadio };\n//# sourceMappingURL=use-radio.mjs.map\n","import { defineComponent, nextTick, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, withDirectives, isRef, vModelRadio, withModifiers, renderSlot, createTextVNode, toDisplayString } from 'vue';\nimport '../../../hooks/index.mjs';\nimport { radioProps, radioEmits } from './radio.mjs';\nimport { useRadio } from './use-radio.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\n\nconst _hoisted_1 = [\"value\", \"name\", \"disabled\"];\nconst __default__ = {\n name: \"ElRadio\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: radioProps,\n emits: radioEmits,\n setup(__props, { emit }) {\n const props = __props;\n const ns = useNamespace(\"radio\");\n const { radioRef, radioGroup, focus, size, disabled, modelValue } = useRadio(props, emit);\n function handleChange() {\n nextTick(() => emit(\"change\", modelValue.value));\n }\n return (_ctx, _cache) => {\n var _a;\n return openBlock(), createElementBlock(\"label\", {\n class: normalizeClass([\n unref(ns).b(),\n unref(ns).is(\"disabled\", unref(disabled)),\n unref(ns).is(\"focus\", unref(focus)),\n unref(ns).is(\"bordered\", _ctx.border),\n unref(ns).is(\"checked\", unref(modelValue) === _ctx.label),\n unref(ns).m(unref(size))\n ])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\n unref(ns).e(\"input\"),\n unref(ns).is(\"disabled\", unref(disabled)),\n unref(ns).is(\"checked\", unref(modelValue) === _ctx.label)\n ])\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref_key: \"radioRef\",\n ref: radioRef,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => isRef(modelValue) ? modelValue.value = $event : null),\n class: normalizeClass(unref(ns).e(\"original\")),\n value: _ctx.label,\n name: _ctx.name || ((_a = unref(radioGroup)) == null ? void 0 : _a.name),\n disabled: unref(disabled),\n type: \"radio\",\n onFocus: _cache[1] || (_cache[1] = ($event) => focus.value = true),\n onBlur: _cache[2] || (_cache[2] = ($event) => focus.value = false),\n onChange: handleChange\n }, null, 42, _hoisted_1), [\n [vModelRadio, unref(modelValue)]\n ]),\n createElementVNode(\"span\", {\n class: normalizeClass(unref(ns).e(\"inner\"))\n }, null, 2)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(unref(ns).e(\"label\")),\n onKeydown: _cache[3] || (_cache[3] = withModifiers(() => {\n }, [\"stop\"]))\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.label), 1)\n ])\n ], 34)\n ], 2);\n };\n }\n});\nvar Radio = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue\"]]);\n\nexport { Radio as default };\n//# sourceMappingURL=radio2.mjs.map\n","import '../../../utils/index.mjs';\nimport { radioPropsBase } from './radio.mjs';\nimport { buildProps } from '../../../utils/vue/props/runtime.mjs';\n\nconst radioButtonProps = buildProps({\n ...radioPropsBase,\n name: {\n type: String,\n default: \"\"\n }\n});\n\nexport { radioButtonProps };\n//# sourceMappingURL=radio-button.mjs.map\n","import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, withDirectives, createElementVNode, isRef, vModelRadio, normalizeStyle, withModifiers, renderSlot, createTextVNode, toDisplayString } from 'vue';\nimport '../../../hooks/index.mjs';\nimport { useRadio } from './use-radio.mjs';\nimport { radioButtonProps } from './radio-button.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\n\nconst _hoisted_1 = [\"value\", \"name\", \"disabled\"];\nconst __default__ = {\n name: \"ElRadioButton\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: radioButtonProps,\n setup(__props) {\n const props = __props;\n const ns = useNamespace(\"radio\");\n const { radioRef, focus, size, disabled, modelValue, radioGroup } = useRadio(props);\n const activeStyle = computed(() => {\n return {\n backgroundColor: (radioGroup == null ? void 0 : radioGroup.fill) || \"\",\n borderColor: (radioGroup == null ? void 0 : radioGroup.fill) || \"\",\n boxShadow: (radioGroup == null ? void 0 : radioGroup.fill) ? `-1px 0 0 0 ${radioGroup.fill}` : \"\",\n color: (radioGroup == null ? void 0 : radioGroup.textColor) || \"\"\n };\n });\n return (_ctx, _cache) => {\n var _a;\n return openBlock(), createElementBlock(\"label\", {\n class: normalizeClass([\n unref(ns).b(\"button\"),\n unref(ns).is(\"active\", unref(modelValue) === _ctx.label),\n unref(ns).is(\"disabled\", unref(disabled)),\n unref(ns).is(\"focus\", unref(focus)),\n unref(ns).bm(\"button\", unref(size))\n ])\n }, [\n withDirectives(createElementVNode(\"input\", {\n ref_key: \"radioRef\",\n ref: radioRef,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => isRef(modelValue) ? modelValue.value = $event : null),\n class: normalizeClass(unref(ns).be(\"button\", \"original-radio\")),\n value: _ctx.label,\n type: \"radio\",\n name: _ctx.name || ((_a = unref(radioGroup)) == null ? void 0 : _a.name),\n disabled: unref(disabled),\n onFocus: _cache[1] || (_cache[1] = ($event) => focus.value = true),\n onBlur: _cache[2] || (_cache[2] = ($event) => focus.value = false)\n }, null, 42, _hoisted_1), [\n [vModelRadio, unref(modelValue)]\n ]),\n createElementVNode(\"span\", {\n class: normalizeClass(unref(ns).be(\"button\", \"inner\")),\n style: normalizeStyle(unref(modelValue) === _ctx.label ? unref(activeStyle) : {}),\n onKeydown: _cache[3] || (_cache[3] = withModifiers(() => {\n }, [\"stop\"]))\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.label), 1)\n ])\n ], 38)\n ], 2);\n };\n }\n});\nvar RadioButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-button.vue\"]]);\n\nexport { RadioButton as default };\n//# sourceMappingURL=radio-button2.mjs.map\n","import '../../../utils/index.mjs';\nimport '../../../hooks/index.mjs';\nimport { radioEmits } from './radio.mjs';\nimport { buildProps } from '../../../utils/vue/props/runtime.mjs';\nimport { useSizeProp } from '../../../hooks/use-common-props/index.mjs';\n\nconst radioGroupProps = buildProps({\n id: {\n type: String,\n default: void 0\n },\n size: useSizeProp,\n disabled: Boolean,\n modelValue: {\n type: [String, Number, Boolean],\n default: \"\"\n },\n fill: {\n type: String,\n default: \"\"\n },\n label: {\n type: String,\n default: void 0\n },\n textColor: {\n type: String,\n default: \"\"\n },\n name: {\n type: String,\n default: void 0\n },\n validateEvent: {\n type: Boolean,\n default: true\n }\n});\nconst radioGroupEmits = radioEmits;\n\nexport { radioGroupEmits, radioGroupProps };\n//# sourceMappingURL=radio-group.mjs.map\n","import { defineComponent, ref, nextTick, onMounted, computed, provide, reactive, toRefs, watch, openBlock, createElementBlock, unref, normalizeClass, renderSlot } from 'vue';\nimport '../../../constants/index.mjs';\nimport '../../../tokens/index.mjs';\nimport '../../../hooks/index.mjs';\nimport '../../../utils/index.mjs';\nimport { radioGroupProps, radioGroupEmits } from './radio-group.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { useId } from '../../../hooks/use-id/index.mjs';\nimport { useFormItem, useFormItemInputId } from '../../../hooks/use-form-item/index.mjs';\nimport { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';\nimport { radioGroupKey } from '../../../tokens/radio.mjs';\nimport { debugWarn } from '../../../utils/error.mjs';\n\nconst _hoisted_1 = [\"id\", \"aria-label\", \"aria-labelledby\"];\nconst __default__ = {\n name: \"ElRadioGroup\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: radioGroupProps,\n emits: radioGroupEmits,\n setup(__props, { emit }) {\n const props = __props;\n const ns = useNamespace(\"radio\");\n const radioId = useId();\n const radioGroupRef = ref();\n const { formItem } = useFormItem();\n const { inputId: groupId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext: formItem\n });\n const changeEvent = (value) => {\n emit(UPDATE_MODEL_EVENT, value);\n nextTick(() => emit(\"change\", value));\n };\n onMounted(() => {\n const radios = radioGroupRef.value.querySelectorAll(\"[type=radio]\");\n const firstLabel = radios[0];\n if (!Array.from(radios).some((radio) => radio.checked) && firstLabel) {\n firstLabel.tabIndex = 0;\n }\n });\n const name = computed(() => {\n return props.name || radioId.value;\n });\n provide(radioGroupKey, reactive({\n ...toRefs(props),\n changeEvent,\n name\n }));\n watch(() => props.modelValue, () => {\n if (props.validateEvent) {\n formItem == null ? void 0 : formItem.validate(\"change\").catch((err) => debugWarn(err));\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: unref(groupId),\n ref_key: \"radioGroupRef\",\n ref: radioGroupRef,\n class: normalizeClass(unref(ns).b(\"group\")),\n role: \"radiogroup\",\n \"aria-label\": !unref(isLabeledByFormItem) ? _ctx.label || \"radio-group\" : void 0,\n \"aria-labelledby\": unref(isLabeledByFormItem) ? unref(formItem).labelId : void 0\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1);\n };\n }\n});\nvar RadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-group.vue\"]]);\n\nexport { RadioGroup as default };\n//# sourceMappingURL=radio-group2.mjs.map\n","import '../../utils/index.mjs';\nimport Radio from './src/radio2.mjs';\nimport RadioButton from './src/radio-button2.mjs';\nimport RadioGroup from './src/radio-group2.mjs';\nexport { radioEmits, radioProps, radioPropsBase } from './src/radio.mjs';\nexport { radioGroupEmits, radioGroupProps } from './src/radio-group.mjs';\nexport { radioButtonProps } from './src/radio-button.mjs';\nimport { withInstall, withNoopInstall } from '../../utils/vue/install.mjs';\n\nconst ElRadio = withInstall(Radio, {\n RadioButton,\n RadioGroup\n});\nconst ElRadioGroup = withNoopInstall(RadioGroup);\nconst ElRadioButton = withNoopInstall(RadioButton);\n\nexport { ElRadio, ElRadioButton, ElRadioGroup, ElRadio as default };\n//# sourceMappingURL=index.mjs.map\n","import '../../../utils/index.mjs';\nimport { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';\n\nconst progressProps = buildProps({\n type: {\n type: String,\n default: \"line\",\n values: [\"line\", \"circle\", \"dashboard\"]\n },\n percentage: {\n type: Number,\n default: 0,\n validator: (val) => val >= 0 && val <= 100\n },\n status: {\n type: String,\n default: \"\",\n values: [\"\", \"success\", \"exception\", \"warning\"]\n },\n indeterminate: {\n type: Boolean,\n default: false\n },\n duration: {\n type: Number,\n default: 3\n },\n strokeWidth: {\n type: Number,\n default: 6\n },\n strokeLinecap: {\n type: definePropType(String),\n default: \"round\"\n },\n textInside: {\n type: Boolean,\n default: false\n },\n width: {\n type: Number,\n default: 126\n },\n showText: {\n type: Boolean,\n default: true\n },\n color: {\n type: definePropType([\n String,\n Array,\n Function\n ]),\n default: \"\"\n },\n format: {\n type: definePropType(Function),\n default: (percentage) => `${percentage}%`\n }\n});\n\nexport { progressProps };\n//# sourceMappingURL=progress.mjs.map\n","import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, normalizeStyle, renderSlot, toDisplayString, createCommentVNode, createBlock, withCtx, resolveDynamicComponent } from 'vue';\nimport { ElIcon } from '../../icon/index.mjs';\nimport { WarningFilled, CircleCheck, CircleClose, Check, Close } from '@element-plus/icons-vue';\nimport '../../../hooks/index.mjs';\nimport '../../../utils/index.mjs';\nimport { progressProps } from './progress.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { isString, isFunction } from '@vue/shared';\n\nconst _hoisted_1 = [\"aria-valuenow\"];\nconst _hoisted_2 = { viewBox: \"0 0 100 100\" };\nconst _hoisted_3 = [\"d\", \"stroke\", \"stroke-width\"];\nconst _hoisted_4 = [\"d\", \"stroke\", \"opacity\", \"stroke-linecap\", \"stroke-width\"];\nconst _hoisted_5 = { key: 0 };\nconst __default__ = {\n name: \"ElProgress\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: progressProps,\n setup(__props) {\n const props = __props;\n const STATUS_COLOR_MAP = {\n success: \"#13ce66\",\n exception: \"#ff4949\",\n warning: \"#e6a23c\",\n default: \"#20a0ff\"\n };\n const ns = useNamespace(\"progress\");\n const barStyle = computed(() => ({\n width: `${props.percentage}%`,\n animationDuration: `${props.duration}s`,\n backgroundColor: getCurrentColor(props.percentage)\n }));\n const relativeStrokeWidth = computed(() => (props.strokeWidth / props.width * 100).toFixed(1));\n const radius = computed(() => {\n if ([\"circle\", \"dashboard\"].includes(props.type)) {\n return Number.parseInt(`${50 - Number.parseFloat(relativeStrokeWidth.value) / 2}`, 10);\n }\n return 0;\n });\n const trackPath = computed(() => {\n const r = radius.value;\n const isDashboard = props.type === \"dashboard\";\n return `\n M 50 50\n m 0 ${isDashboard ? \"\" : \"-\"}${r}\n a ${r} ${r} 0 1 1 0 ${isDashboard ? \"-\" : \"\"}${r * 2}\n a ${r} ${r} 0 1 1 0 ${isDashboard ? \"\" : \"-\"}${r * 2}\n `;\n });\n const perimeter = computed(() => 2 * Math.PI * radius.value);\n const rate = computed(() => props.type === \"dashboard\" ? 0.75 : 1);\n const strokeDashoffset = computed(() => {\n const offset = -1 * perimeter.value * (1 - rate.value) / 2;\n return `${offset}px`;\n });\n const trailPathStyle = computed(() => ({\n strokeDasharray: `${perimeter.value * rate.value}px, ${perimeter.value}px`,\n strokeDashoffset: strokeDashoffset.value\n }));\n const circlePathStyle = computed(() => ({\n strokeDasharray: `${perimeter.value * rate.value * (props.percentage / 100)}px, ${perimeter.value}px`,\n strokeDashoffset: strokeDashoffset.value,\n transition: \"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s\"\n }));\n const stroke = computed(() => {\n let ret;\n if (props.color) {\n ret = getCurrentColor(props.percentage);\n } else {\n ret = STATUS_COLOR_MAP[props.status] || STATUS_COLOR_MAP.default;\n }\n return ret;\n });\n const statusIcon = computed(() => {\n if (props.status === \"warning\") {\n return WarningFilled;\n }\n if (props.type === \"line\") {\n return props.status === \"success\" ? CircleCheck : CircleClose;\n } else {\n return props.status === \"success\" ? Check : Close;\n }\n });\n const progressTextSize = computed(() => {\n return props.type === \"line\" ? 12 + props.strokeWidth * 0.4 : props.width * 0.111111 + 2;\n });\n const content = computed(() => props.format(props.percentage));\n function getColors(color) {\n const span = 100 / color.length;\n const seriesColors = color.map((seriesColor, index) => {\n if (isString(seriesColor)) {\n return {\n color: seriesColor,\n percentage: (index + 1) * span\n };\n }\n return seriesColor;\n });\n return seriesColors.sort((a, b) => a.percentage - b.percentage);\n }\n const getCurrentColor = (percentage) => {\n var _a;\n const { color } = props;\n if (isFunction(color)) {\n return color(percentage);\n } else if (isString(color)) {\n return color;\n } else {\n const colors = getColors(color);\n for (const color2 of colors) {\n if (color2.percentage > percentage)\n return color2.color;\n }\n return (_a = colors[colors.length - 1]) == null ? void 0 : _a.color;\n }\n };\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n unref(ns).b(),\n unref(ns).m(_ctx.type),\n unref(ns).is(_ctx.status),\n {\n [unref(ns).m(\"without-text\")]: !_ctx.showText,\n [unref(ns).m(\"text-inside\")]: _ctx.textInside\n }\n ]),\n role: \"progressbar\",\n \"aria-valuenow\": _ctx.percentage,\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"100\"\n }, [\n _ctx.type === \"line\" ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(unref(ns).b(\"bar\"))\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(unref(ns).be(\"bar\", \"outer\")),\n style: normalizeStyle({ height: `${_ctx.strokeWidth}px` })\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass([\n unref(ns).be(\"bar\", \"inner\"),\n { [unref(ns).bem(\"bar\", \"inner\", \"indeterminate\")]: _ctx.indeterminate }\n ]),\n style: normalizeStyle(unref(barStyle))\n }, [\n (_ctx.showText || _ctx.$slots.default) && _ctx.textInside ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(unref(ns).be(\"bar\", \"innerText\"))\n }, [\n renderSlot(_ctx.$slots, \"default\", { percentage: _ctx.percentage }, () => [\n createElementVNode(\"span\", null, toDisplayString(unref(content)), 1)\n ])\n ], 2)) : createCommentVNode(\"v-if\", true)\n ], 6)\n ], 6)\n ], 2)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: normalizeClass(unref(ns).b(\"circle\")),\n style: normalizeStyle({ height: `${_ctx.width}px`, width: `${_ctx.width}px` })\n }, [\n (openBlock(), createElementBlock(\"svg\", _hoisted_2, [\n createElementVNode(\"path\", {\n class: normalizeClass(unref(ns).be(\"circle\", \"track\")),\n d: unref(trackPath),\n stroke: `var(${unref(ns).cssVarName(\"fill-color-light\")}, #e5e9f2)`,\n \"stroke-width\": unref(relativeStrokeWidth),\n fill: \"none\",\n style: normalizeStyle(unref(trailPathStyle))\n }, null, 14, _hoisted_3),\n createElementVNode(\"path\", {\n class: normalizeClass(unref(ns).be(\"circle\", \"path\")),\n d: unref(trackPath),\n stroke: unref(stroke),\n fill: \"none\",\n opacity: _ctx.percentage ? 1 : 0,\n \"stroke-linecap\": _ctx.strokeLinecap,\n \"stroke-width\": unref(relativeStrokeWidth),\n style: normalizeStyle(unref(circlePathStyle))\n }, null, 14, _hoisted_4)\n ]))\n ], 6)),\n (_ctx.showText || _ctx.$slots.default) && !_ctx.textInside ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass(unref(ns).e(\"text\")),\n style: normalizeStyle({ fontSize: `${unref(progressTextSize)}px` })\n }, [\n renderSlot(_ctx.$slots, \"default\", { percentage: _ctx.percentage }, () => [\n !_ctx.status ? (openBlock(), createElementBlock(\"span\", _hoisted_5, toDisplayString(unref(content)), 1)) : (openBlock(), createBlock(unref(ElIcon), { key: 1 }, {\n default: withCtx(() => [\n (openBlock(), createBlock(resolveDynamicComponent(unref(statusIcon))))\n ]),\n _: 1\n }))\n ])\n ], 6)) : createCommentVNode(\"v-if\", true)\n ], 10, _hoisted_1);\n };\n }\n});\nvar Progress = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/progress/src/progress.vue\"]]);\n\nexport { Progress as default };\n//# sourceMappingURL=progress2.mjs.map\n","import '../../utils/index.mjs';\nimport Progress from './src/progress2.mjs';\nexport { progressProps } from './src/progress.mjs';\nimport { withInstall } from '../../utils/vue/install.mjs';\n\nconst ElProgress = withInstall(Progress);\n\nexport { ElProgress, ElProgress as default };\n//# sourceMappingURL=index.mjs.map\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { useSiteConfig } from '@/composables'\n\ndefineProps<{\n infos: InfoItem[]\n disabled: boolean\n labelPosition?: 'left' | 'right' | 'top'\n}>()\n\nconst { value: siteConfig } = useSiteConfig()\nconst maxInputLength = computed(() => siteConfig.value.maxInputLength)\n</script>\n\n<template>\n <el-form :disabled=\"disabled\" :label-position=\"labelPosition || 'top'\">\n <el-form-item\n v-for=\"(info, idx) in infos\"\n :key=\"idx\"\n class=\"ellipsis\"\n :label=\"info.type === 'text' ? '' : info.text\"\n >\n <div v-if=\"info.type === 'text'\" class=\"fixed-text\">\n {{ info.text }}\n </div>\n <el-input\n v-if=\"info.type === 'input'\"\n v-model=\"info.value\"\n :maxlength=\"maxInputLength\"\n clearable\n show-word-limit\n :placeholder=\"`请输入 ${info.text}`\"\n />\n <el-radio-group v-if=\"info.type === 'radio'\" v-model=\"info.value\">\n <el-radio\n v-for=\"(r, idx) in info.children\"\n :key=\"idx\"\n :label=\"r.text\"\n >\n {{ r.text }}\n </el-radio>\n </el-radio-group>\n <el-select\n v-if=\"info.type === 'select'\"\n v-model=\"info.value\"\n default-first-option\n clearable\n filterable\n :placeholder=\"`请选择 ${info.text}`\"\n >\n <el-option\n v-for=\"(r, idx) in info.children\"\n :key=\"idx\"\n :label=\"r.text\"\n :value=\"r.text\"\n />\n </el-select>\n </el-form-item>\n </el-form>\n</template>\n\n<style scoped lang=\"scss\">\n:deep(div.el-form-item > label) {\n font-weight: bold;\n &::before {\n content: '* ';\n color: red;\n }\n}\n\n:deep(div.el-form-item__content > .el-select) {\n flex: 1;\n}\n.fixed-text {\n background-color: #f5f7fa;\n padding: 0 10px;\n width: 100%;\n text-align: left;\n}\n</style>\n"],"names":["radioGroupKey","radioPropsBase","buildProps","useSizeProp","radioProps","radioEmits","UPDATE_MODEL_EVENT","val","isString","isNumber","isBoolean","CHANGE_EVENT","useRadio","props","emit","radioRef","ref","radioGroup","inject","isGroup","computed","modelValue","size","useSize","disabled","useDisabled","focus","tabIndex","_hoisted_1","__default__","_sfc_main","defineComponent","__props","ns","useNamespace","handleChange","nextTick","_ctx","_cache","_a","openBlock","createElementBlock","normalizeClass","unref","createElementVNode","withDirectives","$event","isRef","vModelRadio","withModifiers","renderSlot","createTextVNode","toDisplayString","Radio","_export_sfc","radioButtonProps","activeStyle","normalizeStyle","RadioButton","radioGroupProps","radioGroupEmits","radioId","useId","radioGroupRef","formItem","useFormItem","groupId","isLabeledByFormItem","useFormItemInputId","changeEvent","value","onMounted","radios","firstLabel","radio","name","provide","reactive","toRefs","watch","err","debugWarn","RadioGroup","ElRadio","withInstall","ElRadioGroup","withNoopInstall","ElRadioButton","progressProps","definePropType","percentage","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","STATUS_COLOR_MAP","barStyle","getCurrentColor","relativeStrokeWidth","radius","trackPath","r","isDashboard","perimeter","rate","strokeDashoffset","offset","trailPathStyle","circlePathStyle","stroke","ret","statusIcon","WarningFilled","CircleCheck","CircleClose","Check","Close","progressTextSize","content","getColors","color","span","seriesColor","index","a","b","isFunction","colors","color2","createCommentVNode","createBlock","ElIcon","withCtx","resolveDynamicComponent","Progress","ElProgress","siteConfig","useSiteConfig","maxInputLength"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-2qujr45D.js","sources":["../../src/pages/feedback/index.vue"],"sourcesContent":["<template>\n <div>\n <h1>反馈页</h1>\n </div>\n</template>\n"],"names":["_cache","_openBlock","_createElementBlock"],"mappings":"qFAGQA,EAAA,CADJ,OAAAC,EAAA,EAAYC,EAAL,MAAA,KAAAF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as te,u as ie,M as F,X as U,r as T,cu as ae,Y as ne,o as le,bj as O,a as r,c,b as n,t as u,F as E,A as N,D as oe,Q as R,i as f,w as m,e as $,B as y,cv as se,E as d,s as re,q as pe,ag as ce,ah as ue,_ as me}from"./index-DbhWmXsj.js";import{E as de,a as ge}from"./el-tab-pane-DWJdeyqN.js";import{E as fe}from"./el-input-number-C0Bp8kfg.js";import{E as ye}from"./el-date-picker-BX8jtnY2.js";import"./el-scrollbar-D2RZSJkX.js";import{E as be}from"./el-switch-c6xoppF3.js";import{E as xe}from"./index-DC08DNQQ.js";import"./index-BDsN2eKB.js";import"./index-DT7ciPLb.js";import"./aria-nkjrUMQ-.js";const ke={class:"config-page"},he={class:"hero-card"},Pe={class:"hero-stat"},_e={class:"panel"},Se={class:"route-grid"},Ce={class:"route-main"},ve={key:0},Le={class:"panel"},we={class:"section-head form-head"},Te={class:"actions"},Ee={class:"tab-desc"},Ne={class:"field-list"},Be={class:"field-label"},Ve={class:"field-desc"},qe={class:"field-control"},De={key:5,class:"suffix"},Fe=te({__name:"index",setup(Ue){const b={...se},S=[{title:"基础体验",description:"控制站点名称、表单规模和用户可输入内容。",fields:[{key:"appName",label:"应用名称",description:"展示在前台页面的产品名称。",type:"text"},{key:"maxInputLength",label:"输入长度上限",description:"单个表单项允许输入的最大字符数。",type:"number",min:1,step:1},{key:"formLength",label:"表单项数量",description:"用户创建取件表单时可配置的字段数量。",type:"number",min:1,step:1},{key:"openPraise",label:"赞赏提示",description:"是否在前台显示赞赏相关提示文案。",type:"switch"},{key:"feedbackEntryEnabled",label:"问题反馈入口",description:"是否在页面右下角展示问题反馈浮动入口。",type:"switch"},{key:"filePageFloatingContactEnabled",label:"右下角联系入口",description:"开启后在文件页和任务页右下角固定展示联系作者快捷入口。",type:"switch"}]},{title:"上传与下载",description:"管理文件下载有效期和压缩包大小限制。",fields:[{key:"downloadOneExpired",label:"单文件链接有效期",description:"单个文件下载链接的过期时间。",type:"number",min:1,step:1,suffix:"分钟"},{key:"downloadCompressExpired",label:"归档链接有效期",description:"打包下载链接的过期时间。",type:"number",min:1,step:1,suffix:"分钟"},{key:"compressSizeLimit",label:"压缩包大小限制",description:"允许创建压缩包的最大体积。",type:"number",min:1,step:1,suffix:"GB"}]},{title:"访问限制",description:"控制用户使用前的校验与资源限制策略。",fields:[{key:"needBindPhone",label:"强制绑定手机号",description:"开启后用户需要先绑定手机号。",type:"switch"},{key:"enableCodeLogin",label:"验证码登录",description:"开启后且腾讯云短信配置完整时,前台展示验证码登录入口。",type:"switch"},{key:"limitSpace",label:"限制存储空间",description:"开启后按用户空间额度限制上传。",type:"switch"},{key:"limitWallet",label:"限制钱包余额",description:"开启后按钱包余额限制资源消耗。",type:"switch"}]},{title:"成本计费",description:"配置七牛云与压缩相关的成本计算参数。",fields:[{key:"moneyStartDay",label:"计费开始日期",description:"费用统计从该日期开始计算。",type:"date"},{key:"qiniuOSSPrice",label:"七牛云存储单价",description:"对象存储计费单价。",type:"number",min:0,step:.001,precision:3,suffix:"元/GB"},{key:"qiniuCDNPrice",label:"七牛云 CDN 单价",description:"CDN 流量计费单价。",type:"number",min:0,step:.001,precision:3,suffix:"元/GB"},{key:"qiniuBackhaulTrafficPrice",label:"回源流量单价",description:"回源流量计费单价。",type:"number",min:0,step:.001,precision:3,suffix:"元/GB"},{key:"qiniuBackhaulTrafficPercentage",label:"回源流量占比",description:"用于估算回源流量的比例。",type:"number",min:0,max:1,step:.01,precision:2},{key:"qiniuCompressPrice",label:"压缩处理单价",description:"压缩服务的成本单价。",type:"number",min:0,step:.001,precision:3,suffix:"元/GB"}]},{title:"文件页提示",description:"配置文件列表页的赞赏提示、联系入口和资源限制说明。",fields:[{key:"filePagePraiseText",label:"赞赏前置文案",description:"展示在赞赏链接前的说明。",type:"textarea",maxlength:120},{key:"filePagePraiseLinkText",label:"赞赏链接文案",description:"赞赏入口的链接文字。",type:"textarea",maxlength:80},{key:"filePagePraiseLink",label:"赞赏链接",description:"点击赞赏入口后打开的地址。",type:"url",maxlength:300},{key:"filePageContactText",label:"联系前置文案",description:"展示在联系入口前的说明。",type:"textarea",maxlength:120},{key:"filePageContactLinkText",label:"联系链接文案",description:"联系入口的链接文字。",type:"textarea",maxlength:80},{key:"filePageContactLink",label:"联系链接",description:"点击联系入口后打开的地址。",type:"url",maxlength:300},{key:"filePageLimitText",label:"限制说明",description:"赞赏提示开启时展示的资源限制说明。",type:"textarea",maxlength:300},{key:"filePageSponsorText",label:"赞助说明前缀",description:"展示在赞助联系链接前的文案。",type:"textarea",maxlength:120},{key:"filePageSponsorLinkText",label:"赞助链接文案",description:"赞助联系入口的链接文字。",type:"textarea",maxlength:100},{key:"filePageSponsorLink",label:"赞助链接",description:"点击赞助联系入口后打开的地址。",type:"url",maxlength:300},{key:"filePageSponsorSuffix",label:"赞助说明后缀",description:"展示在赞助联系链接后的文案。",type:"textarea",maxlength:120},{key:"filePageSelfHostLinkText",label:"自建链接文案",description:"自建文档入口的链接文字。",type:"textarea",maxlength:100},{key:"filePageSelfHostLink",label:"自建链接",description:"点击自建文档入口后打开的地址。",type:"url",maxlength:300}]}],H=ie(),I=F(()=>H.options.routes.filter(e=>{var i;return(i=e.meta)==null?void 0:i.allowDisabled})),C=U([]),M=F(()=>C.filter(e=>!e.disabled).length),B=T(),v=T(!1),V=T(S[0].title),t=U({...b}),{value:g,updateValue:z}=ae(),q=new Map(S.flatMap(e=>e.fields).map(e=>[e.key,e])),j={appName:[{required:!0,message:"请输入应用名称",trigger:"blur"}],maxInputLength:[{required:!0,message:"请输入输入长度上限",trigger:"blur"}],formLength:[{required:!0,message:"请输入表单项数量",trigger:"blur"}],downloadOneExpired:[{required:!0,message:"请输入单文件链接有效期",trigger:"blur"}],downloadCompressExpired:[{required:!0,message:"请输入归档链接有效期",trigger:"blur"}],compressSizeLimit:[{required:!0,message:"请输入压缩包大小限制",trigger:"blur"}],moneyStartDay:[{required:!0,message:"请选择计费开始日期",trigger:"change"}]};function L(e={}){Object.assign(t,{...b,...e})}function G(){return{...b,...g.value,appName:t.appName.trim(),maxInputLength:Number(t.maxInputLength),openPraise:!!t.openPraise,feedbackEntryEnabled:!!t.feedbackEntryEnabled,formLength:Number(t.formLength),downloadOneExpired:Number(t.downloadOneExpired),downloadCompressExpired:Number(t.downloadCompressExpired),compressSizeLimit:Number(t.compressSizeLimit),needBindPhone:!!t.needBindPhone,enableCodeLogin:!!t.enableCodeLogin,limitSpace:!!t.limitSpace,limitWallet:!!t.limitWallet,qiniuOSSPrice:Number(t.qiniuOSSPrice),qiniuCDNPrice:Number(t.qiniuCDNPrice),qiniuBackhaulTrafficPrice:Number(t.qiniuBackhaulTrafficPrice),qiniuBackhaulTrafficPercentage:Number(t.qiniuBackhaulTrafficPercentage),qiniuCompressPrice:Number(t.qiniuCompressPrice),moneyStartDay:Number(t.moneyStartDay),filePagePraiseText:t.filePagePraiseText.trim(),filePagePraiseLinkText:t.filePagePraiseLinkText.trim(),filePagePraiseLink:t.filePagePraiseLink.trim(),filePageContactText:t.filePageContactText.trim(),filePageContactLinkText:t.filePageContactLinkText.trim(),filePageContactLink:t.filePageContactLink.trim(),filePageFloatingContactEnabled:!!t.filePageFloatingContactEnabled,filePageLimitText:t.filePageLimitText.trim(),filePageSponsorText:t.filePageSponsorText.trim(),filePageSponsorLinkText:t.filePageSponsorLinkText.trim(),filePageSponsorLink:t.filePageSponsorLink.trim(),filePageSponsorSuffix:t.filePageSponsorSuffix.trim(),filePageSelfHostLinkText:t.filePageSelfHostLinkText.trim(),filePageSelfHostLink:t.filePageSelfHostLink.trim()}}function x(e){return t[e]}function k(e,i){t[e]=i}function A(e){O.addDisabledRoute(e.path,!e.disabled).then(()=>{e.disabled=!e.disabled,d.success("切换成功")})}function W(){L(g.value),d.info("已恢复为当前线上配置")}function w(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function D(e,i){const l=q.get(e);if((l==null?void 0:l.type)==="switch")return i?"开启":"关闭";if((l==null?void 0:l.type)==="date")return Number.isNaN(Number(i))?"-":new Date(Number(i)).toLocaleDateString();const o=String(i!=null?i:"");return o.length>120?"".concat(o.slice(0,120),"..."):o}function J(e){const i={...b,...g.value};return Object.keys(b).map(l=>{var h;const o=l,P=i[o],_=e[o];return P===_?null:{key:o,label:((h=q.get(o))==null?void 0:h.label)||o,oldValue:D(o,P),newValue:D(o,_)}}).filter(Boolean)}function K(e){const i=e.map(l=>"<li><strong>".concat(w(String(l.label)),"</strong>:<span>").concat(w(l.oldValue),"</span> → <span>").concat(w(l.newValue),"</span></li>")).join("");return'<div class="config-change-confirm">\n <p>本次将修改以下 '.concat(e.length," 项配置,请确认后再提交:</p>\n <ul>").concat(i,"</ul>\n </div>")}async function Q(){var l;try{await((l=B.value)==null?void 0:l.validate())}catch(o){d.error("保存失败,请检查配置项后重试");return}const e=G(),i=J(e);if(i.length===0){d.info("暂无配置变更");return}try{await xe.confirm(K(i),"确认保存配置",{confirmButtonText:"确认保存",cancelButtonText:"取消",type:"warning",dangerouslyUseHTMLString:!0})}catch(o){d.info("已取消保存");return}try{v.value=!0,g.value=e,await z(),L(g.value),d.success("全局配置已保存")}catch(o){d.error("保存失败,请稍后重试")}finally{v.value=!1}}return ne(g,e=>L(e),{immediate:!0,deep:!0}),le(()=>{for(const e of I.value)O.checkDisabledRoute(e.path).then(i=>{var l,o;C.push({path:e.path,name:String(e.name),title:String(((l=e.meta)==null?void 0:l.title)||e.name||e.path),disabled:!!((o=i.data)!=null&&o.status)})})}),(e,i)=>{const l=be,o=re,P=ye,_=fe,h=pe,X=ce,Y=de,Z=ge,ee=ue;return r(),c("div",ke,[n("section",he,[i[2]||(i[2]=n("div",null,[n("p",{class:"eyebrow"}," 系统配置 "),n("h1",null,"配置中心"),n("p",{class:"hero-desc"}," 统一管理可禁用路由与全局站点参数,表单化编辑后会直接写入服务端配置。 ")],-1)),n("div",Pe,[n("strong",null,u(M.value),1),i[1]||(i[1]=n("span",null,"个路由启用中",-1))])]),n("section",_e,[i[3]||(i[3]=n("div",{class:"section-head"},[n("div",null,[n("h2",null,"禁用路由管理"),n("p",null,"关闭后对应页面将无法访问,注册页关闭时会同步禁用注册能力。")])],-1)),n("div",Se,[(r(!0),c(E,null,N(C,s=>(r(),c("article",{key:s.name,class:oe(["route-item",{disabled:s.disabled}])},[n("div",Ce,[n("strong",null,u(s.title),1),n("span",null,u(s.path),1),s.path==="/register"?(r(),c("small",ve,"关闭后将同时禁用注册功能")):R("",!0)]),f(l,{"model-value":!s.disabled,"inline-prompt":"","active-text":"开","inactive-text":"关",style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff6b6b"},onChange:a=>A(s)},null,8,["model-value","onChange"])],2))),128))])]),n("section",Le,[n("div",we,[i[6]||(i[6]=n("div",null,[n("h2",null,"全局配置管理"),n("p",null,"按场景维护站点参数,无需直接编辑 JSON。")],-1)),n("div",Te,[f(o,{onClick:W},{default:m(()=>i[4]||(i[4]=[$(" 重置 ")])),_:1}),f(o,{type:"primary",loading:v.value,onClick:Q},{default:m(()=>i[5]||(i[5]=[$(" 保存配置 ")])),_:1},8,["loading"])])]),f(ee,{ref_key:"siteFormRef",ref:B,model:t,rules:j,"label-position":"top",class:"config-form"},{default:m(()=>[f(Z,{modelValue:V.value,"onUpdate:modelValue":i[0]||(i[0]=s=>V.value=s),class:"config-tabs"},{default:m(()=>[(r(),c(E,null,N(S,s=>f(Y,{key:s.title,label:s.title,name:s.title},{default:m(()=>[n("div",Ee,u(s.description),1),n("div",Ne,[(r(!0),c(E,null,N(s.fields,a=>(r(),y(X,{key:a.key,prop:a.key,class:"field-item"},{label:m(()=>[n("span",Be,u(a.label),1),n("span",Ve,u(a.description),1)]),default:m(()=>[n("div",qe,[a.type==="switch"?(r(),y(l,{key:0,"model-value":!!x(a.key),"inline-prompt":"","active-text":"开","inactive-text":"关","onUpdate:modelValue":p=>k(a.key,p)},null,8,["model-value","onUpdate:modelValue"])):a.type==="date"?(r(),y(P,{key:1,"model-value":Number(x(a.key)),type:"date","value-format":"x",placeholder:"请选择日期",class:"full-control","onUpdate:modelValue":p=>k(a.key,Number(p))},null,8,["model-value","onUpdate:modelValue"])):a.type==="number"?(r(),y(_,{key:2,"model-value":Number(x(a.key)),min:a.min,max:a.max,step:a.step||1,precision:a.precision,"controls-position":"right",class:"number-control","onUpdate:modelValue":p=>k(a.key,Number(p))},null,8,["model-value","min","max","step","precision","onUpdate:modelValue"])):a.type==="textarea"?(r(),y(h,{key:3,"model-value":String(x(a.key)),type:"textarea",rows:3,maxlength:a.maxlength||300,"show-word-limit":"",placeholder:"请输入","onUpdate:modelValue":p=>k(a.key,p)},null,8,["model-value","maxlength","onUpdate:modelValue"])):(r(),y(h,{key:4,"model-value":String(x(a.key)),type:a.type==="url"?"url":"text",maxlength:a.maxlength||30,"show-word-limit":"",placeholder:"请输入","onUpdate:modelValue":p=>k(a.key,p)},null,8,["model-value","type","maxlength","onUpdate:modelValue"])),a.suffix?(r(),c("span",De,u(a.suffix),1)):R("",!0)])]),_:2},1032,["prop"]))),128))])]),_:2},1032,["label","name"])),64))]),_:1},8,["modelValue"])]),_:1},8,["model"])])])}}}),We=me(Fe,[["__scopeId","data-v-aba76797"]]);export{We as default};
|
|
2
|
+
//# sourceMappingURL=index-6fj8rr7z.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-6fj8rr7z.js","sources":["../../src/pages/dashboard/manage/config/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { FormInstance, FormRules } from 'element-plus'\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport { computed, onMounted, reactive, ref, watch } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { SuperOverviewApi } from '@/apis'\nimport { defaultSiteConfig as baseDefaultSiteConfig, useSiteAllConfig } from '@/composables'\n\ninterface SiteConfig extends OverviewApiTypes.GlobalSiteConfig {}\ninterface RouteItem {\n path: string\n name: string\n title: string\n disabled: boolean\n}\ninterface ConfigField {\n key: keyof SiteConfig\n label: string\n description: string\n type: 'text' | 'textarea' | 'url' | 'number' | 'switch' | 'date'\n suffix?: string\n maxlength?: number\n min?: number\n max?: number\n step?: number\n precision?: number\n}\ninterface ConfigSection {\n title: string\n description: string\n fields: ConfigField[]\n}\n\nconst defaultSiteConfig: SiteConfig = { ...baseDefaultSiteConfig }\n\nconst configSections: ConfigSection[] = [\n {\n title: '基础体验',\n description: '控制站点名称、表单规模和用户可输入内容。',\n fields: [\n { key: 'appName', label: '应用名称', description: '展示在前台页面的产品名称。', type: 'text' },\n { key: 'maxInputLength', label: '输入长度上限', description: '单个表单项允许输入的最大字符数。', type: 'number', min: 1, step: 1 },\n { key: 'formLength', label: '表单项数量', description: '用户创建取件表单时可配置的字段数量。', type: 'number', min: 1, step: 1 },\n { key: 'openPraise', label: '赞赏提示', description: '是否在前台显示赞赏相关提示文案。', type: 'switch' },\n { key: 'feedbackEntryEnabled', label: '问题反馈入口', description: '是否在页面右下角展示问题反馈浮动入口。', type: 'switch' },\n { key: 'filePageFloatingContactEnabled', label: '右下角联系入口', description: '开启后在文件页和任务页右下角固定展示联系作者快捷入口。', type: 'switch' },\n ],\n },\n {\n title: '上传与下载',\n description: '管理文件下载有效期和压缩包大小限制。',\n fields: [\n { key: 'downloadOneExpired', label: '单文件链接有效期', description: '单个文件下载链接的过期时间。', type: 'number', min: 1, step: 1, suffix: '分钟' },\n { key: 'downloadCompressExpired', label: '归档链接有效期', description: '打包下载链接的过期时间。', type: 'number', min: 1, step: 1, suffix: '分钟' },\n { key: 'compressSizeLimit', label: '压缩包大小限制', description: '允许创建压缩包的最大体积。', type: 'number', min: 1, step: 1, suffix: 'GB' },\n ],\n },\n {\n title: '访问限制',\n description: '控制用户使用前的校验与资源限制策略。',\n fields: [\n { key: 'needBindPhone', label: '强制绑定手机号', description: '开启后用户需要先绑定手机号。', type: 'switch' },\n { key: 'enableCodeLogin', label: '验证码登录', description: '开启后且腾讯云短信配置完整时,前台展示验证码登录入口。', type: 'switch' },\n { key: 'limitSpace', label: '限制存储空间', description: '开启后按用户空间额度限制上传。', type: 'switch' },\n { key: 'limitWallet', label: '限制钱包余额', description: '开启后按钱包余额限制资源消耗。', type: 'switch' },\n ],\n },\n {\n title: '成本计费',\n description: '配置七牛云与压缩相关的成本计算参数。',\n fields: [\n { key: 'moneyStartDay', label: '计费开始日期', description: '费用统计从该日期开始计算。', type: 'date' },\n { key: 'qiniuOSSPrice', label: '七牛云存储单价', description: '对象存储计费单价。', type: 'number', min: 0, step: 0.001, precision: 3, suffix: '元/GB' },\n { key: 'qiniuCDNPrice', label: '七牛云 CDN 单价', description: 'CDN 流量计费单价。', type: 'number', min: 0, step: 0.001, precision: 3, suffix: '元/GB' },\n { key: 'qiniuBackhaulTrafficPrice', label: '回源流量单价', description: '回源流量计费单价。', type: 'number', min: 0, step: 0.001, precision: 3, suffix: '元/GB' },\n { key: 'qiniuBackhaulTrafficPercentage', label: '回源流量占比', description: '用于估算回源流量的比例。', type: 'number', min: 0, max: 1, step: 0.01, precision: 2 },\n { key: 'qiniuCompressPrice', label: '压缩处理单价', description: '压缩服务的成本单价。', type: 'number', min: 0, step: 0.001, precision: 3, suffix: '元/GB' },\n ],\n },\n {\n title: '文件页提示',\n description: '配置文件列表页的赞赏提示、联系入口和资源限制说明。',\n fields: [\n { key: 'filePagePraiseText', label: '赞赏前置文案', description: '展示在赞赏链接前的说明。', type: 'textarea', maxlength: 120 },\n { key: 'filePagePraiseLinkText', label: '赞赏链接文案', description: '赞赏入口的链接文字。', type: 'textarea', maxlength: 80 },\n { key: 'filePagePraiseLink', label: '赞赏链接', description: '点击赞赏入口后打开的地址。', type: 'url', maxlength: 300 },\n { key: 'filePageContactText', label: '联系前置文案', description: '展示在联系入口前的说明。', type: 'textarea', maxlength: 120 },\n { key: 'filePageContactLinkText', label: '联系链接文案', description: '联系入口的链接文字。', type: 'textarea', maxlength: 80 },\n { key: 'filePageContactLink', label: '联系链接', description: '点击联系入口后打开的地址。', type: 'url', maxlength: 300 },\n { key: 'filePageLimitText', label: '限制说明', description: '赞赏提示开启时展示的资源限制说明。', type: 'textarea', maxlength: 300 },\n { key: 'filePageSponsorText', label: '赞助说明前缀', description: '展示在赞助联系链接前的文案。', type: 'textarea', maxlength: 120 },\n { key: 'filePageSponsorLinkText', label: '赞助链接文案', description: '赞助联系入口的链接文字。', type: 'textarea', maxlength: 100 },\n { key: 'filePageSponsorLink', label: '赞助链接', description: '点击赞助联系入口后打开的地址。', type: 'url', maxlength: 300 },\n { key: 'filePageSponsorSuffix', label: '赞助说明后缀', description: '展示在赞助联系链接后的文案。', type: 'textarea', maxlength: 120 },\n { key: 'filePageSelfHostLinkText', label: '自建链接文案', description: '自建文档入口的链接文字。', type: 'textarea', maxlength: 100 },\n { key: 'filePageSelfHostLink', label: '自建链接', description: '点击自建文档入口后打开的地址。', type: 'url', maxlength: 300 },\n ],\n },\n]\n\nconst $router = useRouter()\nconst routes = computed(() =>\n $router.options.routes.filter(v => v.meta?.allowDisabled),\n)\nconst showRoutes = reactive<RouteItem[]>([])\nconst enabledRouteCount = computed(() => showRoutes.filter(route => !route.disabled).length)\n\nconst siteFormRef = ref<FormInstance>()\nconst saving = ref(false)\nconst activeConfigTab = ref(configSections[0].title)\nconst siteForm = reactive<SiteConfig>({ ...defaultSiteConfig })\nconst { value: jsonData, updateValue: updateJsonData } = useSiteAllConfig()\nconst configFieldMap = new Map(\n configSections\n .flatMap(section => section.fields)\n .map(field => [field.key, field]),\n)\n\nconst rules: FormRules = {\n appName: [{ required: true, message: '请输入应用名称', trigger: 'blur' }],\n maxInputLength: [{ required: true, message: '请输入输入长度上限', trigger: 'blur' }],\n formLength: [{ required: true, message: '请输入表单项数量', trigger: 'blur' }],\n downloadOneExpired: [{ required: true, message: '请输入单文件链接有效期', trigger: 'blur' }],\n downloadCompressExpired: [{ required: true, message: '请输入归档链接有效期', trigger: 'blur' }],\n compressSizeLimit: [{ required: true, message: '请输入压缩包大小限制', trigger: 'blur' }],\n moneyStartDay: [{ required: true, message: '请选择计费开始日期', trigger: 'change' }],\n}\n\nfunction syncForm(data: Partial<SiteConfig> = {}) {\n Object.assign(siteForm, {\n ...defaultSiteConfig,\n ...data,\n })\n}\n\nfunction normalizeSiteConfig(): SiteConfig {\n return {\n ...defaultSiteConfig,\n ...jsonData.value,\n appName: siteForm.appName.trim(),\n maxInputLength: Number(siteForm.maxInputLength),\n openPraise: Boolean(siteForm.openPraise),\n feedbackEntryEnabled: Boolean(siteForm.feedbackEntryEnabled),\n formLength: Number(siteForm.formLength),\n downloadOneExpired: Number(siteForm.downloadOneExpired),\n downloadCompressExpired: Number(siteForm.downloadCompressExpired),\n compressSizeLimit: Number(siteForm.compressSizeLimit),\n needBindPhone: Boolean(siteForm.needBindPhone),\n enableCodeLogin: Boolean(siteForm.enableCodeLogin),\n limitSpace: Boolean(siteForm.limitSpace),\n limitWallet: Boolean(siteForm.limitWallet),\n qiniuOSSPrice: Number(siteForm.qiniuOSSPrice),\n qiniuCDNPrice: Number(siteForm.qiniuCDNPrice),\n qiniuBackhaulTrafficPrice: Number(siteForm.qiniuBackhaulTrafficPrice),\n qiniuBackhaulTrafficPercentage: Number(siteForm.qiniuBackhaulTrafficPercentage),\n qiniuCompressPrice: Number(siteForm.qiniuCompressPrice),\n moneyStartDay: Number(siteForm.moneyStartDay),\n filePagePraiseText: siteForm.filePagePraiseText.trim(),\n filePagePraiseLinkText: siteForm.filePagePraiseLinkText.trim(),\n filePagePraiseLink: siteForm.filePagePraiseLink.trim(),\n filePageContactText: siteForm.filePageContactText.trim(),\n filePageContactLinkText: siteForm.filePageContactLinkText.trim(),\n filePageContactLink: siteForm.filePageContactLink.trim(),\n filePageFloatingContactEnabled: Boolean(siteForm.filePageFloatingContactEnabled),\n filePageLimitText: siteForm.filePageLimitText.trim(),\n filePageSponsorText: siteForm.filePageSponsorText.trim(),\n filePageSponsorLinkText: siteForm.filePageSponsorLinkText.trim(),\n filePageSponsorLink: siteForm.filePageSponsorLink.trim(),\n filePageSponsorSuffix: siteForm.filePageSponsorSuffix.trim(),\n filePageSelfHostLinkText: siteForm.filePageSelfHostLinkText.trim(),\n filePageSelfHostLink: siteForm.filePageSelfHostLink.trim(),\n }\n}\n\nfunction getFieldValue(key: keyof SiteConfig) {\n return siteForm[key]\n}\n\nfunction updateFieldValue(key: keyof SiteConfig, value: string | number | boolean) {\n siteForm[key] = value as never\n}\n\nfunction handleChangeRoute(route: RouteItem) {\n SuperOverviewApi.addDisabledRoute(route.path, !route.disabled).then(() => {\n route.disabled = !route.disabled\n ElMessage.success('切换成功')\n })\n}\n\nfunction handleResetConfig() {\n syncForm(jsonData.value)\n ElMessage.info('已恢复为当前线上配置')\n}\n\nfunction escapeHtml(value: string) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\nfunction formatConfirmValue(key: keyof SiteConfig, value: SiteConfig[keyof SiteConfig]) {\n const field = configFieldMap.get(key)\n if (field?.type === 'switch') {\n return value ? '开启' : '关闭'\n }\n if (field?.type === 'date') {\n return Number.isNaN(Number(value))\n ? '-'\n : new Date(Number(value)).toLocaleDateString()\n }\n const text = String(value ?? '')\n return text.length > 120 ? `${text.slice(0, 120)}...` : text\n}\n\nfunction getConfigChanges(nextConfig: SiteConfig) {\n const currentConfig: SiteConfig = {\n ...defaultSiteConfig,\n ...jsonData.value,\n }\n return Object.keys(defaultSiteConfig)\n .map((key) => {\n const typedKey = key as keyof SiteConfig\n const oldValue = currentConfig[typedKey]\n const newValue = nextConfig[typedKey]\n if (oldValue === newValue) {\n return null\n }\n return {\n key: typedKey,\n label: configFieldMap.get(typedKey)?.label || typedKey,\n oldValue: formatConfirmValue(typedKey, oldValue),\n newValue: formatConfirmValue(typedKey, newValue),\n }\n })\n .filter(Boolean)\n}\n\nfunction buildChangeConfirmContent(changes: NonNullable<ReturnType<typeof getConfigChanges>[number]>[]) {\n const list = changes\n .map((change) => {\n return `<li><strong>${escapeHtml(String(change.label))}</strong>:<span>${escapeHtml(change.oldValue)}</span> → <span>${escapeHtml(change.newValue)}</span></li>`\n })\n .join('')\n\n return `<div class=\"config-change-confirm\">\n <p>本次将修改以下 ${changes.length} 项配置,请确认后再提交:</p>\n <ul>${list}</ul>\n </div>`\n}\n\nasync function handleSaveConfig() {\n try {\n await siteFormRef.value?.validate()\n }\n catch {\n ElMessage.error('保存失败,请检查配置项后重试')\n return\n }\n\n const nextConfig = normalizeSiteConfig()\n const changes = getConfigChanges(nextConfig)\n if (changes.length === 0) {\n ElMessage.info('暂无配置变更')\n return\n }\n\n try {\n await ElMessageBox.confirm(\n buildChangeConfirmContent(changes),\n '确认保存配置',\n {\n confirmButtonText: '确认保存',\n cancelButtonText: '取消',\n type: 'warning',\n dangerouslyUseHTMLString: true,\n },\n )\n }\n catch {\n ElMessage.info('已取消保存')\n return\n }\n\n try {\n saving.value = true\n jsonData.value = nextConfig\n await updateJsonData()\n syncForm(jsonData.value)\n ElMessage.success('全局配置已保存')\n }\n catch {\n ElMessage.error('保存失败,请稍后重试')\n }\n finally {\n saving.value = false\n }\n}\n\nwatch(\n jsonData,\n value => syncForm(value),\n {\n immediate: true,\n deep: true,\n },\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: String(r.name),\n title: String(r.meta?.title || r.name || r.path),\n disabled: !!v.data?.status,\n })\n })\n }\n})\n</script>\n\n<template>\n <div class=\"config-page\">\n <section class=\"hero-card\">\n <div>\n <p class=\"eyebrow\">\n 系统配置\n </p>\n <h1>配置中心</h1>\n <p class=\"hero-desc\">\n 统一管理可禁用路由与全局站点参数,表单化编辑后会直接写入服务端配置。\n </p>\n </div>\n <div class=\"hero-stat\">\n <strong>{{ enabledRouteCount }}</strong>\n <span>个路由启用中</span>\n </div>\n </section>\n\n <section class=\"panel\">\n <div class=\"section-head\">\n <div>\n <h2>禁用路由管理</h2>\n <p>关闭后对应页面将无法访问,注册页关闭时会同步禁用注册能力。</p>\n </div>\n </div>\n\n <div class=\"route-grid\">\n <article\n v-for=\"route in showRoutes\"\n :key=\"route.name\"\n class=\"route-item\"\n :class=\"{ disabled: route.disabled }\"\n >\n <div class=\"route-main\">\n <strong>{{ route.title }}</strong>\n <span>{{ route.path }}</span>\n <small v-if=\"route.path === '/register'\">关闭后将同时禁用注册功能</small>\n </div>\n <el-switch\n :model-value=\"!route.disabled\"\n inline-prompt\n active-text=\"开\"\n inactive-text=\"关\"\n style=\"--el-switch-on-color: #13ce66; --el-switch-off-color: #ff6b6b\"\n @change=\"handleChangeRoute(route)\"\n />\n </article>\n </div>\n </section>\n\n <section class=\"panel\">\n <div class=\"section-head form-head\">\n <div>\n <h2>全局配置管理</h2>\n <p>按场景维护站点参数,无需直接编辑 JSON。</p>\n </div>\n <div class=\"actions\">\n <el-button @click=\"handleResetConfig\">\n 重置\n </el-button>\n <el-button type=\"primary\" :loading=\"saving\" @click=\"handleSaveConfig\">\n 保存配置\n </el-button>\n </div>\n </div>\n\n <el-form\n ref=\"siteFormRef\"\n :model=\"siteForm\"\n :rules=\"rules\"\n label-position=\"top\"\n class=\"config-form\"\n >\n <el-tabs v-model=\"activeConfigTab\" class=\"config-tabs\">\n <el-tab-pane\n v-for=\"section in configSections\"\n :key=\"section.title\"\n :label=\"section.title\"\n :name=\"section.title\"\n >\n <div class=\"tab-desc\">\n {{ section.description }}\n </div>\n\n <div class=\"field-list\">\n <el-form-item\n v-for=\"field in section.fields\"\n :key=\"field.key\"\n :prop=\"field.key\"\n class=\"field-item\"\n >\n <template #label>\n <span class=\"field-label\">{{ field.label }}</span>\n <span class=\"field-desc\">{{ field.description }}</span>\n </template>\n\n <div class=\"field-control\">\n <el-switch\n v-if=\"field.type === 'switch'\"\n :model-value=\"Boolean(getFieldValue(field.key))\"\n inline-prompt\n active-text=\"开\"\n inactive-text=\"关\"\n @update:model-value=\"updateFieldValue(field.key, $event)\"\n />\n <el-date-picker\n v-else-if=\"field.type === 'date'\"\n :model-value=\"Number(getFieldValue(field.key))\"\n type=\"date\"\n value-format=\"x\"\n placeholder=\"请选择日期\"\n class=\"full-control\"\n @update:model-value=\"updateFieldValue(field.key, Number($event))\"\n />\n <el-input-number\n v-else-if=\"field.type === 'number'\"\n :model-value=\"Number(getFieldValue(field.key))\"\n :min=\"field.min\"\n :max=\"field.max\"\n :step=\"field.step || 1\"\n :precision=\"field.precision\"\n controls-position=\"right\"\n class=\"number-control\"\n @update:model-value=\"updateFieldValue(field.key, Number($event))\"\n />\n <el-input\n v-else-if=\"field.type === 'textarea'\"\n :model-value=\"String(getFieldValue(field.key))\"\n type=\"textarea\"\n :rows=\"3\"\n :maxlength=\"field.maxlength || 300\"\n show-word-limit\n placeholder=\"请输入\"\n @update:model-value=\"updateFieldValue(field.key, $event)\"\n />\n <el-input\n v-else\n :model-value=\"String(getFieldValue(field.key))\"\n :type=\"field.type === 'url' ? 'url' : 'text'\"\n :maxlength=\"field.maxlength || 30\"\n show-word-limit\n placeholder=\"请输入\"\n @update:model-value=\"updateFieldValue(field.key, $event)\"\n />\n <span v-if=\"field.suffix\" class=\"suffix\">{{ field.suffix }}</span>\n </div>\n </el-form-item>\n </div>\n </el-tab-pane>\n </el-tabs>\n </el-form>\n </section>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n.config-page {\n max-width: 1256px;\n margin: 10px auto;\n color: #1f2937;\n}\n\n.hero-card,\n.panel {\n box-sizing: border-box;\n border: 1px solid #edf0f5;\n border-radius: 18px;\n background: #fff;\n box-shadow: 0 10px 30px rgb(31 41 55 / 8%);\n}\n\n.hero-card {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 24px;\n padding: 28px 32px;\n overflow: hidden;\n background:\n radial-gradient(circle at 88% 20%, rgb(64 158 255 / 18%), transparent 28%),\n linear-gradient(135deg, #fff 0%, #f6f9ff 100%);\n\n h1 {\n margin: 6px 0 10px;\n font-size: 30px;\n line-height: 1.2;\n }\n}\n\n.eyebrow {\n margin: 0;\n color: #409eff;\n font-size: 13px;\n font-weight: 700;\n letter-spacing: 0.12em;\n}\n\n.hero-desc {\n max-width: 560px;\n margin: 0;\n color: #6b7280;\n line-height: 1.7;\n}\n\n.hero-stat {\n display: grid;\n place-items: center;\n min-width: 132px;\n min-height: 132px;\n border-radius: 28px;\n background: rgb(255 255 255 / 72%);\n box-shadow: inset 0 0 0 1px rgb(64 158 255 / 12%);\n\n strong {\n color: #2563eb;\n font-size: 42px;\n line-height: 1;\n }\n\n span {\n color: #6b7280;\n font-size: 13px;\n }\n}\n\n.panel {\n margin-top: 18px;\n padding: 24px;\n}\n\n.section-head {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 20px;\n\n h2 {\n margin: 0 0 6px;\n font-size: 20px;\n }\n\n p {\n margin: 0;\n color: #6b7280;\n line-height: 1.6;\n }\n}\n\n.actions {\n display: flex;\n flex-shrink: 0;\n gap: 10px;\n}\n\n.route-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));\n gap: 14px;\n}\n\n.route-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding: 16px;\n border: 1px solid #e8edf5;\n border-radius: 14px;\n background: #fbfdff;\n transition:\n border-color 0.2s,\n box-shadow 0.2s,\n transform 0.2s;\n\n &:hover {\n border-color: rgb(64 158 255 / 45%);\n box-shadow: 0 8px 24px rgb(64 158 255 / 10%);\n transform: translateY(-1px);\n }\n\n &.disabled {\n background: #fff8f8;\n }\n}\n\n.route-main {\n display: grid;\n gap: 5px;\n\n strong {\n font-size: 16px;\n }\n\n span,\n small {\n color: #6b7280;\n font-size: 13px;\n }\n}\n\n.config-tabs {\n :deep(.el-tabs__header) {\n margin-bottom: 14px;\n }\n\n :deep(.el-tabs__nav-wrap::after) {\n height: 1px;\n background-color: #edf0f5;\n }\n\n :deep(.el-tabs__item) {\n height: 36px;\n padding: 0 18px;\n color: #6b7280;\n font-weight: 700;\n }\n}\n\n.tab-desc {\n margin-bottom: 12px;\n padding: 10px 12px;\n border-radius: 10px;\n background: #f7faff;\n color: #6b7280;\n font-size: 13px;\n line-height: 1.5;\n}\n\n.field-list {\n display: grid;\n gap: 12px;\n}\n\n.config-form :deep(.el-form-item) {\n margin-bottom: 0;\n}\n\n.config-form :deep(.el-form-item__label) {\n display: block;\n margin-bottom: 4px;\n line-height: 1.4;\n}\n\n.field-item {\n min-width: 0;\n display: grid;\n grid-template-columns: minmax(180px, 1fr) minmax(220px, 320px);\n align-items: center;\n gap: 16px;\n padding: 12px 14px;\n border: 1px solid #edf0f5;\n border-radius: 12px;\n background: #fff;\n\n :deep(.el-form-item__label) {\n margin-bottom: 0;\n padding-right: 0;\n }\n\n :deep(.el-form-item__content) {\n min-width: 0;\n }\n}\n\n.field-label,\n.field-desc {\n display: block;\n}\n\n.field-label {\n color: #1f2937;\n font-size: 14px;\n font-weight: 700;\n}\n\n.field-desc {\n margin-top: 3px;\n color: #8a94a6;\n font-size: 13px;\n}\n\n.field-control {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.full-control,\n.number-control {\n flex: 1;\n width: 100%;\n min-width: 0;\n}\n\n.suffix {\n flex-shrink: 0;\n color: #6b7280;\n font-size: 13px;\n}\n\n@media screen and (max-width: 900px) {\n .config-page {\n margin-top: 40px;\n }\n\n .hero-card {\n align-items: flex-start;\n flex-direction: column;\n padding: 22px;\n }\n\n .hero-stat {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: auto;\n padding: 18px;\n gap: 10px;\n border-radius: 18px;\n }\n\n .field-item {\n grid-template-columns: 1fr;\n gap: 8px;\n }\n}\n\n@media screen and (max-width: 700px) {\n .config-page {\n margin: 40px 10px 0;\n }\n\n .panel {\n padding: 18px;\n border-radius: 14px;\n }\n\n .form-head,\n .section-head {\n display: block;\n }\n\n .actions {\n margin-top: 14px;\n\n .el-button {\n flex: 1;\n }\n }\n\n .route-grid {\n grid-template-columns: 1fr;\n }\n\n .route-item {\n align-items: flex-start;\n }\n\n .config-tabs :deep(.el-tabs__nav-scroll) {\n overflow-x: auto;\n }\n\n .field-item {\n padding: 12px;\n }\n}\n</style>\n"],"names":["defaultSiteConfig","baseDefaultSiteConfig","configSections","$router","useRouter","routes","computed","v","_a","showRoutes","reactive","enabledRouteCount","route","siteFormRef","ref","saving","activeConfigTab","siteForm","jsonData","updateJsonData","useSiteAllConfig","configFieldMap","section","field","rules","syncForm","data","normalizeSiteConfig","getFieldValue","key","updateFieldValue","value","handleChangeRoute","SuperOverviewApi","ElMessage","handleResetConfig","escapeHtml","formatConfirmValue","text","getConfigChanges","nextConfig","currentConfig","typedKey","oldValue","newValue","buildChangeConfirmContent","changes","list","change","handleSaveConfig","e","ElMessageBox","watch","onMounted","r","_b"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.login[data-v-8321af51]{background-image:linear-gradient(120deg,#a1c4fd,#c2e9fb);min-height:100vh}.inputArea[data-v-8321af51]{margin:0 auto;max-width:320px}.inputArea div[data-v-8321af51]{margin-top:10px}.links[data-v-8321af51]{display:flex;justify-content:center}.links a[data-v-8321af51]{color:#409eff;margin-left:10px}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f as I,d as k,a as i,c,b as o,Z as ue,r,X as N,bh as ce,M as R,Y as U,o as de,h as pe,a8 as F,F as G,A as K,i as a,w as n,B,C as ve,t as V,j as y,e as h,n as A,bj as L,E as W,ab as me,aj as _e,G as fe,q as he,s as ge,a0 as $e,_ as we}from"./index-DbhWmXsj.js";import{v as ye}from"./el-loading-DgUVClxn.js";import{s as be,E as xe}from"./el-pagination-DX6u100-.js";import"./el-tag-uk6aooq0.js";import{E as Ce,a as ze}from"./el-select-DWyBOD47.js";import"./el-scrollbar-D2RZSJkX.js";import{E as Ve,a as ke}from"./el-table-column-DdhVw628.js";import{d as Ee}from"./other-BiIe9Z0L.js";import{d as De}from"./data-board-DeJXppeB.js";import{r as Me}from"./refresh-Cccf8YoS.js";import{d as He}from"./data-analysis-DBnVKJmJ.js";import"./index-DT7ciPLb.js";const Se=k({name:"Coin"}),Be={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Le=o("path",{fill:"currentColor",d:"m161.92 580.736 29.888 58.88C171.328 659.776 160 681.728 160 704c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 615.808 928 657.664 928 704c0 129.728-188.544 224-416 224S96 833.728 96 704c0-46.592 24.32-88.576 65.92-123.264z"},null,-1),Ie=o("path",{fill:"currentColor",d:"m161.92 388.736 29.888 58.88C171.328 467.84 160 489.792 160 512c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 423.808 928 465.664 928 512c0 129.728-188.544 224-416 224S96 641.728 96 512c0-46.592 24.32-88.576 65.92-123.264z"},null,-1),Te=o("path",{fill:"currentColor",d:"M512 544c-227.456 0-416-94.272-416-224S284.544 96 512 96s416 94.272 416 224-188.544 224-416 224zm0-64c196.672 0 352-77.696 352-160S708.672 160 512 160s-352 77.696-352 160 155.328 160 352 160z"},null,-1),je=[Le,Ie,Te];function Pe(E,b,f,l,g,d){return i(),c("svg",Be,je)}var Oe=I(Se,[["render",Pe]]);const Ne=k({name:"Document"}),Ue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Fe=o("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h160v64H320v-64zm0 384h384v64H320v-64z"},null,-1),Ae=[Fe];function qe(E,b,f,l,g,d){return i(),c("svg",Ue,Ae)}var Je=I(Ne,[["render",qe]]);const Re=k({name:"TakeawayBox"}),Ge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ke=o("path",{fill:"currentColor",d:"M832 384H192v448h640V384zM96 320h832V128H96v192zm800 64v480a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V384H64a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h896a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32h-64zM416 512h192a32 32 0 0 1 0 64H416a32 32 0 0 1 0-64z"},null,-1),We=[Ke];function Xe(E,b,f,l,g,d){return i(),c("svg",Ge,We)}var Ye=I(Re,[["render",Xe]]);const Ze=k({name:"Tickets"}),Qe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},et=o("path",{fill:"currentColor",d:"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h192v64H320v-64zm0 384h384v64H320v-64z"},null,-1),tt=[et];function ot(E,b,f,l,g,d){return i(),c("svg",Qe,tt)}var st=I(Ze,[["render",ot]]);const at={class:"overview"},lt={class:"card-list","element-loading-text":"Loading..."},nt={class:"logo"},it={class:"content"},rt={class:"title"},ut={class:"text"},ct={class:"supplement"},dt={class:"panel"},pt={class:"p10 log-filter"},vt={class:"item"},mt={class:"item"},_t={class:"item"},ft={class:"item"},ht={class:"item"},gt={class:"item"},$t={class:"flex fc p10"},wt={class:"dialog-footer"},yt=k({__name:"index",setup(E){const b=ue(),f=r(!1),l=N([{type:"user",title:"用户数量",value:"0",supplement:"较昨日 +0",icon:ce,color:"#40c9c6"},{type:"file",title:"记录/OSS",value:"0",supplement:"记录较昨日 +0",icon:Je,color:"#36a3f7"},{type:"log",title:"日志数量",value:"0",supplement:"较昨日 +0",icon:st,color:"#f4516c"},{type:"pv",title:"PV/UV",value:"0/0",supplement:"",icon:De,color:"#34bfa3"},{type:"compress",title:"归档&无效文件",value:"0/0KB",supplement:"已失效0个",icon:Oe,color:"#e38013"}]);function g(){f.value=!0,L.getCount().then(s=>{const{user:e,file:m,log:$,pv:_,compress:u}=s.data;l[0].value="".concat(e.sum),l[0].supplement="较昨日 +".concat(e.recent),l[1].value="".concat(m.server.sum,"/").concat(m.oss.sum," (").concat(m.oss.size,")"),l[1].supplement="记录较昨日 +".concat(m.server.recent),l[2].value="".concat($.sum),l[2].supplement="较昨日 +".concat($.recent),l[3].value="".concat(_.today.sum,"/").concat(_.today.uv),l[3].supplement="历史: ".concat(_.all.sum,"/").concat(_.all.uv),l[4].value="".concat(u.all.sum,"/").concat(u.all.size),l[4].supplement="已失效 ".concat(u.expired.sum,"/").concat(u.expired.size),f.value=!1})}const d=r(!1);function X(){d.value=!0,L.clearExpiredCompressFile().then(()=>{setTimeout(()=>{W.success("清理成功,数据同步可能有延迟"),d.value=!1,g()},2e3)})}const p=N([]),D=r("behavior"),x=r(""),C=r(""),Y=N([{label:"用户行为",type:"behavior"},{label:"网络请求",type:"request"},{label:"服务端错误",type:"error"},{label:"页面访问",type:"pv"}]),z=r(10);function Z(s){z.value=s}const T=r(0),Q=R(()=>Math.ceil(T.value/z.value)),v=r(1);function ee(s){v.value=s}const j=r(!1);function M(){j.value=!0,L.getLogMsg(z.value,v.value,D.value,x.value,C.value).then(s=>{p.splice(0,p.length),p.push(...s.data.logs),T.value=s.data.sum}).finally(()=>{j.value=!1})}const q=Ee(()=>{v.value!==1?v.value=1:M()},380);U([v,z,D],(s,e)=>{if(e!==void 0&&s[2]!==e[2]){x.value="",C.value="",v.value!==1?v.value=1:M();return}M()},{immediate:!0}),U(x,()=>{q()}),U(C,()=>{q()});const H=r(!1),P=r("");function te(s){L.getLogMsgDetail(s).then(e=>{H.value=!0,P.value=JSON.stringify(e.data,null,2)})}const oe=R(()=>{try{return JSON.parse(P.value)}catch(s){return{}}});function se(){me(P.value)}function ae(){if(p.length===0)return;const s=["日期","IP","内容"],e=p.map(m=>{const{date:$,ip:_,msg:u}=m;return[A(new Date($)),_,u]});_e(s,e,"导出日志_".concat(p.length,"条").concat(A(new Date,"yyyy年MM月dd日hh时mm分ss秒"),".xlsx")),W.success("导出成功")}return de(()=>{g()}),(s,e)=>{const m=fe,$=Ce,_=ze,u=he,w=ge,S=Ve,le=ke,ne=xe,ie=pe("json-viewer"),re=$e,O=ye;return i(),c("div",at,[F((i(),c("div",lt,[(i(!0),c(G,null,K(l,t=>(i(),c("div",{key:t.type,class:"card"},[o("div",nt,[a(m,{color:t.color},{default:n(()=>[(i(),B(ve(t.icon)))]),_:2},1032,["color"])]),o("div",it,[o("div",rt,V(t.title),1),o("div",ut,V(t.value),1),o("div",ct,V(t.supplement),1)])]))),128))])),[[O,f.value]]),o("div",dt,[o("div",pt,[o("span",vt,[e[5]||(e[5]=o("span",{class:"label"},"类型",-1)),a(_,{modelValue:D.value,"onUpdate:modelValue":e[0]||(e[0]=t=>D.value=t),size:"default",placeholder:"请选择日志类型"},{default:n(()=>[(i(!0),c(G,null,K(Y,(t,J)=>(i(),B($,{key:J,label:t.label,value:t.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),o("span",mt,[a(u,{modelValue:x.value,"onUpdate:modelValue":e[1]||(e[1]=t=>x.value=t),size:"default",clearable:"",placeholder:"关键词(文案 / 路径 / 请求等,不含 IP)","prefix-icon":y(be)},null,8,["modelValue","prefix-icon"])]),o("span",_t,[a(u,{modelValue:C.value,"onUpdate:modelValue":e[2]||(e[2]=t=>C.value=t),size:"default",clearable:"",placeholder:"IP(可选)"},null,8,["modelValue"])]),o("span",ft,[a(w,{size:"default",icon:y(Me),onClick:M},{default:n(()=>e[6]||(e[6]=[h("刷新")])),_:1},8,["icon"])]),o("span",ht,[a(w,{size:"default",type:"primary",icon:y(He),onClick:ae},{default:n(()=>[h("导出日志 "+V(p.length)+" 条",1)]),_:1},8,["icon"])]),o("span",gt,[F((i(),B(w,{size:"default",type:"danger",icon:y(Ye),disabled:d.value,onClick:X},{default:n(()=>e[7]||(e[7]=[h("清理无效文件")])),_:1},8,["icon","disabled"])),[[O,d.value]])])]),F((i(),B(le,{"element-loading-text":"正在加载日志…","tooltip-effect":"dark",height:"400",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},data:p,style:{width:"100%"}},{default:n(()=>[a(S,{sortable:"",prop:"date",label:"日期",width:"180"},{default:n(t=>[h(V(y(A)(new Date(t.row.date))),1)]),_:1}),a(S,{sortable:"",prop:"ip",label:"IP",width:"100"}),a(S,{"min-width":"160",prop:"msg",label:"内容"}),a(S,{fixed:"right",label:"操作",width:"100"},{default:n(t=>[a(w,{type:"primary",text:"",size:"small",onClick:J=>te(t.row.id)},{default:n(()=>e[8]||(e[8]=[h(" 查看详情 ")])),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])),[[O,j.value]]),o("div",$t,[a(ne,{"current-page":v.value,background:"","page-count":Q.value,"page-sizes":[10,50,100,200,500,1e3],"page-size":z.value,total:T.value,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:ee,onSizeChange:Z},null,8,["current-page","page-count","page-size","total"])])]),a(re,{modelValue:H.value,"onUpdate:modelValue":e[4]||(e[4]=t=>H.value=t),title:"详细信息",width:"50%",center:"",fullscreen:y(b)},{footer:n(()=>[o("span",wt,[a(w,{type:"default",onClick:se},{default:n(()=>e[9]||(e[9]=[h("复制")])),_:1}),a(w,{type:"primary",onClick:e[3]||(e[3]=t=>H.value=!1)},{default:n(()=>e[10]||(e[10]=[h("确定")])),_:1})])]),default:n(()=>[a(ie,{value:oe.value,"expand-depth":5,copyable:"",boxed:"",sort:""},null,8,["value"])]),_:1},8,["modelValue","fullscreen"])])}}}),Lt=we(yt,[["__scopeId","data-v-44329b7c"]]);export{Lt as default};
|
|
2
|
+
//# sourceMappingURL=index-B-yBTqWJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-B-yBTqWJ.js","sources":["../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/coin.mjs","../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/document.mjs","../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/takeaway-box.mjs","../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/tickets.mjs","../../src/pages/dashboard/manage/overview/index.vue"],"sourcesContent":["import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Coin\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"m161.92 580.736 29.888 58.88C171.328 659.776 160 681.728 160 704c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 615.808 928 657.664 928 704c0 129.728-188.544 224-416 224S96 833.728 96 704c0-46.592 24.32-88.576 65.92-123.264z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"m161.92 388.736 29.888 58.88C171.328 467.84 160 489.792 160 512c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 423.808 928 465.664 928 512c0 129.728-188.544 224-416 224S96 641.728 96 512c0-46.592 24.32-88.576 65.92-123.264z\"\n}, null, -1);\nconst _hoisted_4 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M512 544c-227.456 0-416-94.272-416-224S284.544 96 512 96s416 94.272 416 224-188.544 224-416 224zm0-64c196.672 0 352-77.696 352-160S708.672 160 512 160s-352 77.696-352 160 155.328 160 352 160z\"\n}, null, -1);\nconst _hoisted_5 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_5);\n}\nvar coin = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { coin as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Document\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h160v64H320v-64zm0 384h384v64H320v-64z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar document = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { document as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"TakeawayBox\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M832 384H192v448h640V384zM96 320h832V128H96v192zm800 64v480a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V384H64a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h896a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32h-64zM416 512h192a32 32 0 0 1 0 64H416a32 32 0 0 1 0-64z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar takeawayBox = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { takeawayBox as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Tickets\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h192v64H320v-64zm0 384h384v64H320v-64z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar tickets = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { tickets as default };\n","<script lang=\"ts\" setup>\nimport {\n Coin,\n DataAnalysis,\n DataBoard,\n Document,\n Refresh,\n Search,\n TakeawayBox,\n Tickets,\n User,\n} from '@element-plus/icons-vue'\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, reactive, ref, watch } from 'vue'\nimport { SuperOverviewApi } from '@/apis'\nimport { useIsMobile } from '@/composables'\nimport { tableToExcel } from '@/utils/networkUtil'\nimport { debounce } from '@/utils/other'\nimport { copyRes, formatDate } from '@/utils/stringUtil'\n\nconst isMobile = useIsMobile()\n\nconst isLoadingOverview = ref(false)\nconst cardList = reactive([\n {\n type: 'user',\n title: '用户数量',\n value: '0',\n supplement: '较昨日 +0',\n icon: User,\n color: '#40c9c6',\n },\n {\n type: 'file',\n title: '记录/OSS',\n value: '0',\n supplement: '记录较昨日 +0',\n icon: Document,\n color: '#36a3f7',\n },\n {\n type: 'log',\n title: '日志数量',\n value: '0',\n supplement: '较昨日 +0',\n icon: Tickets,\n color: '#f4516c',\n },\n {\n type: 'pv',\n title: 'PV/UV',\n value: '0/0',\n supplement: '',\n icon: DataBoard,\n color: '#34bfa3',\n },\n {\n type: 'compress',\n title: '归档&无效文件',\n value: '0/0KB',\n supplement: '已失效0个',\n icon: Coin,\n color: '#e38013',\n },\n])\n// 刷新记录条数\nfunction refreshCount() {\n isLoadingOverview.value = true\n SuperOverviewApi.getCount().then((res) => {\n const { user, file, log, pv, compress } = res.data\n cardList[0].value = `${user.sum}`\n cardList[0].supplement = `较昨日 +${user.recent}`\n cardList[1].value = `${file.server.sum}/${file.oss.sum} (${file.oss.size})`\n cardList[1].supplement = `记录较昨日 +${file.server.recent}`\n cardList[2].value = `${log.sum}`\n cardList[2].supplement = `较昨日 +${log.recent}`\n cardList[3].value = `${pv.today.sum}/${pv.today.uv}`\n cardList[3].supplement = `历史: ${pv.all.sum}/${pv.all.uv}`\n cardList[4].value = `${compress.all.sum}/${compress.all.size}`\n cardList[4].supplement = `已失效 ${compress.expired.sum}/${compress.expired.size}`\n isLoadingOverview.value = false\n })\n}\n\nconst disableDelete = ref(false)\nfunction clearExpiredCompressFile() {\n disableDelete.value = true\n SuperOverviewApi.clearExpiredCompressFile().then(() => {\n setTimeout(() => {\n ElMessage.success('清理成功,数据同步可能有延迟')\n disableDelete.value = false\n refreshCount()\n }, 2000)\n })\n}\n\n// 日志\nconst logs: any[] = reactive([])\n\n// function getLogsTypeText(type: string) {\n// const logsTypeText: any = {\n// request: '网络请求',\n// behavior: '用户行为',\n// error: '错误',\n// pv: '页面访问',\n// }\n// return logsTypeText[type]\n// }\n// 筛选的日志\nconst filterLogType = ref('behavior')\nconst searchWord = ref('')\n/** 单独按 IP 筛选,与关键词互不干扰 */\nconst searchIp = ref('')\nconst logTypeList = reactive([\n {\n label: '用户行为',\n type: 'behavior',\n },\n {\n label: '网络请求',\n type: 'request',\n },\n {\n label: '服务端错误',\n type: 'error',\n },\n {\n label: '页面访问',\n type: 'pv',\n },\n])\n\n// 分页\n// 页大小\nconst pageSize = ref(10)\nfunction handleSizeChange(v: number) {\n pageSize.value = v\n}\n// 总条数\nconst logSumCount = ref(0)\nconst pageCount = computed(() => {\n const t = Math.ceil(logSumCount.value / pageSize.value)\n return t\n})\nconst pageCurrent = ref(1)\nfunction handlePageChange(idx: number) {\n pageCurrent.value = idx\n}\n\nconst isLoadingLogs = ref(false)\n\nfunction loadLogs() {\n isLoadingLogs.value = true\n SuperOverviewApi.getLogMsg(\n pageSize.value,\n pageCurrent.value,\n filterLogType.value,\n searchWord.value,\n searchIp.value,\n )\n .then((res) => {\n logs.splice(0, logs.length)\n logs.push(...res.data.logs)\n logSumCount.value = res.data.sum\n })\n .finally(() => {\n isLoadingLogs.value = false\n })\n}\n\n/** 搜索输入防抖;换页、改每页条数、改类型仍立即请求 */\nconst debouncedSearchRefresh = debounce(() => {\n if (pageCurrent.value !== 1) {\n pageCurrent.value = 1\n }\n else {\n loadLogs()\n }\n}, 380)\n\nwatch(\n [pageCurrent, pageSize, filterLogType],\n (newVal, oldVal) => {\n if (oldVal !== undefined && newVal[2] !== oldVal[2]) {\n searchWord.value = ''\n searchIp.value = ''\n if (pageCurrent.value !== 1) {\n pageCurrent.value = 1\n }\n else {\n loadLogs()\n }\n return\n }\n loadLogs()\n },\n { immediate: true },\n)\n\nwatch(searchWord, () => {\n debouncedSearchRefresh()\n})\n\nwatch(searchIp, () => {\n debouncedSearchRefresh()\n})\n\nconst showDetail = ref(false)\nconst showData = ref('')\nfunction handleDetail(id) {\n SuperOverviewApi.getLogMsgDetail(id).then((res) => {\n showDetail.value = true\n showData.value = JSON.stringify(res.data, null, 2)\n })\n}\nconst jsonData = computed(() => {\n try {\n return JSON.parse(showData.value)\n }\n catch {\n return {}\n }\n})\nfunction handleCopyDetail() {\n copyRes(showData.value)\n}\n\nfunction exportLogData() {\n if (logs.length === 0) {\n return\n }\n const headers = ['日期', 'IP', '内容']\n const body = logs.map((v) => {\n const { date, ip, msg } = v\n return [formatDate(new Date(date)), ip, msg]\n })\n tableToExcel(\n headers,\n body,\n `导出日志_${logs.length}条${formatDate(\n new Date(),\n 'yyyy年MM月dd日hh时mm分ss秒',\n )}.xlsx`,\n )\n ElMessage.success('导出成功')\n}\nonMounted(() => {\n refreshCount()\n})\n</script>\n\n<template>\n <div class=\"overview\">\n <div\n v-loading=\"isLoadingOverview\"\n class=\"card-list\"\n element-loading-text=\"Loading...\"\n >\n <div v-for=\"c in cardList\" :key=\"c.type\" class=\"card\">\n <div class=\"logo\">\n <el-icon :color=\"c.color\">\n <component :is=\"c.icon\" />\n </el-icon>\n </div>\n <div class=\"content\">\n <div class=\"title\">\n {{ c.title }}\n </div>\n <div class=\"text\">\n {{ c.value }}\n </div>\n <div class=\"supplement\">\n {{ c.supplement }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"panel\">\n <div class=\"p10 log-filter\">\n <span class=\"item\">\n <span class=\"label\">类型</span>\n <el-select\n v-model=\"filterLogType\"\n size=\"default\"\n placeholder=\"请选择日志类型\"\n >\n <el-option\n v-for=\"(item, idx) in logTypeList\"\n :key=\"idx\"\n :label=\"item.label\"\n :value=\"item.type\"\n />\n </el-select>\n </span>\n <span class=\"item\">\n <el-input\n v-model=\"searchWord\"\n size=\"default\"\n clearable\n placeholder=\"关键词(文案 / 路径 / 请求等,不含 IP)\"\n :prefix-icon=\"Search\"\n />\n </span>\n <span class=\"item\">\n <el-input\n v-model=\"searchIp\"\n size=\"default\"\n clearable\n placeholder=\"IP(可选)\"\n />\n </span>\n <span class=\"item\">\n <el-button size=\"default\" :icon=\"Refresh\" @click=\"loadLogs\">刷新</el-button>\n </span>\n <span class=\"item\">\n <el-button\n size=\"default\"\n type=\"primary\"\n :icon=\"DataAnalysis\"\n @click=\"exportLogData\"\n >导出日志 {{ logs.length }} 条</el-button>\n </span>\n <span class=\"item\">\n <el-button\n v-loading=\"disableDelete\"\n size=\"default\"\n type=\"danger\"\n :icon=\"TakeawayBox\"\n :disabled=\"disableDelete\"\n @click=\"clearExpiredCompressFile\"\n >清理无效文件</el-button>\n </span>\n </div>\n <el-table\n v-loading=\"isLoadingLogs\"\n element-loading-text=\"正在加载日志…\"\n tooltip-effect=\"dark\"\n height=\"400\"\n stripe\n border\n :default-sort=\"{ prop: 'date', order: 'descending' }\"\n :data=\"logs\"\n style=\"width: 100%\"\n >\n <el-table-column sortable prop=\"date\" label=\"日期\" width=\"180\">\n <template #default=\"scope\">\n {{\n formatDate(new Date(scope.row.date))\n }}\n </template>\n </el-table-column>\n <!-- <el-table-column prop=\"type\" label=\"类型\" width=\"100\">\n <template #default=\"scope\">{{ getLogsTypeText(scope.row.type) }}</template>\n </el-table-column> -->\n <el-table-column\n sortable\n prop=\"ip\"\n label=\"IP\"\n width=\"100\"\n />\n <el-table-column\n min-width=\"160\"\n prop=\"msg\"\n label=\"内容\"\n />\n <el-table-column fixed=\"right\" label=\"操作\" width=\"100\">\n <template #default=\"scope\">\n <el-button\n type=\"primary\"\n text\n size=\"small\"\n @click=\"handleDetail(scope.row.id)\"\n >\n 查看详情\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n\n <div class=\"flex fc p10\">\n <el-pagination\n :current-page=\"pageCurrent\"\n background\n :page-count=\"pageCount\"\n :page-sizes=\"[10, 50, 100, 200, 500, 1000]\"\n :page-size=\"pageSize\"\n :total=\"logSumCount\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n @current-change=\"handlePageChange\"\n @size-change=\"handleSizeChange\"\n />\n </div>\n </div>\n <el-dialog\n v-model=\"showDetail\"\n title=\"详细信息\"\n width=\"50%\"\n center\n :fullscreen=\"isMobile\"\n >\n <json-viewer\n :value=\"jsonData\"\n :expand-depth=\"5\"\n copyable\n boxed\n sort\n />\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button type=\"default\" @click=\"handleCopyDetail\">复制</el-button>\n <el-button type=\"primary\" @click=\"showDetail = false\">确定</el-button>\n </span>\n </template>\n </el-dialog>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .card-list {\n margin-top: 40px;\n }\n\n .card {\n min-width: 300px;\n }\n\n .log-filter {\n justify-content: center;\n }\n}\n\n.overview {\n margin: 0 auto;\n}\n\n.card-list {\n display: flex;\n margin-top: 20px;\n justify-content: center;\n flex-wrap: wrap;\n}\n\n.card {\n margin: 10px;\n cursor: pointer;\n font-size: 12px;\n position: relative;\n overflow: hidden;\n color: #666;\n background: #fff;\n box-shadow: 4px 4px 40px rgb(0 0 0 / 5%);\n border-color: rgba(0, 0, 0, 0.05);\n min-width: 300px;\n\n .logo {\n float: left;\n margin: 4px 10px 0 10px;\n -webkit-transition: all 0.38s ease-out;\n transition: all 0.38s ease-out;\n border-radius: 6px;\n font-size: 48px;\n\n i {\n padding: 10px;\n }\n }\n\n .content {\n float: right;\n font-weight: 700;\n margin: 10px;\n margin-left: 0;\n\n .title {\n line-height: 18px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n text-align: right;\n }\n\n .text {\n font-size: 16px;\n text-align: right;\n }\n\n .supplement {\n font-size: 12px;\n font-weight: lighter;\n text-align: right;\n }\n }\n}\n\n.panel {\n max-width: 1024px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\n.log-filter {\n display: flex;\n flex-wrap: wrap;\n\n .item {\n margin-right: 10px;\n margin-bottom: 10px;\n\n .label {\n margin-right: 10px;\n font-size: 12px;\n }\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","coin","_export_sfc","document","takeawayBox","tickets","isMobile","useIsMobile","isLoadingOverview","ref","cardList","reactive","User","Document","Tickets","DataBoard","Coin","refreshCount","SuperOverviewApi","res","user","file","log","pv","compress","disableDelete","clearExpiredCompressFile","ElMessage","logs","filterLogType","searchWord","searchIp","logTypeList","pageSize","handleSizeChange","v","logSumCount","pageCount","computed","pageCurrent","handlePageChange","idx","isLoadingLogs","loadLogs","debouncedSearchRefresh","debounce","watch","newVal","oldVal","showDetail","showData","handleDetail","id","jsonData","e","handleCopyDetail","copyRes","exportLogData","headers","body","date","ip","msg","formatDate","tableToExcel","onMounted"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{H as oe,I as T,J as w,K as se,L as ae,d as k,M as x,N as ne,r as A,j as d,O as le,a as c,B as K,w as p,c as _,D,t as y,Q as $,R,e as B,S as re,T as ie,V as pe,W as de,f as L,b as s,X as N,Y as j,Z as G,F as P,A as J,n as U,i as r,$ as Q,s as X,a0 as ce,_ as z,a1 as Y,o as ee,a2 as ue,u as fe,g as ve,U as F,h as O,a3 as _e,E as me,G as he}from"./index-DbhWmXsj.js";import"./el-scrollbar-D2RZSJkX.js";import{d as H,a as ge,E as be,b as we,c as $e}from"./el-dropdown-item-BQ-7lFIb.js";import{E as ye,a as Ce}from"./el-tab-pane-DWJdeyqN.js";import{E as ke}from"./index-DC08DNQQ.js";import"./aria-nkjrUMQ-.js";const Ee=oe({trigger:T.trigger,placement:H.placement,disabled:T.disabled,visible:w.visible,transition:w.transition,popperOptions:H.popperOptions,tabindex:H.tabindex,content:w.content,popperStyle:w.popperStyle,popperClass:w.popperClass,enterable:{...w.enterable,default:!0},effect:{...w.effect,default:"light"},teleported:w.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}}),Me={"update:visible":v=>se(v),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},Ve={name:"ElPopover"},xe=k({...Ve,props:Ee,emits:Me,setup(v,{expose:n,emit:t}){const a=v,h="onUpdate:visible",i=x(()=>a[h]),m=ne("popover"),u=A(),f=x(()=>{var e;return(e=d(u))==null?void 0:e.popperRef}),g=x(()=>[{width:le(a.width)},a.popperStyle]),C=x(()=>[m.b(),a.popperClass,{[m.m("plain")]:!!a.content}]),l=x(()=>a.transition==="el-fade-in-linear"),o=()=>{var e;(e=u.value)==null||e.hide()},E=()=>{t("before-enter")},b=()=>{t("before-leave")},M=()=>{t("after-enter")},V=()=>{t("update:visible",!1),t("after-leave")};return n({popperRef:f,hide:o}),(e,I)=>(c(),K(d(ie),re({ref_key:"tooltipRef",ref:u},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":d(C),"popper-style":d(g),teleported:e.teleported,persistent:e.persistent,"gpu-acceleration":d(l),"onUpdate:visible":d(i),onBeforeShow:E,onBeforeHide:b,onShow:M,onHide:V}),{content:p(()=>[e.title?(c(),_("div",{key:0,class:D(d(m).e("title")),role:"title"},y(e.title),3)):$("v-if",!0),R(e.$slots,"default",{},()=>[B(y(e.content),1)])]),default:p(()=>[e.$slots.reference?R(e.$slots,"reference",{key:0}):$("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 Ae=ae(xe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const W=(v,n)=>{const t=n.arg||n.value,a=t==null?void 0:t.popperRef;a&&(a.triggerRef=v)};var Be={mounted(v,n){W(v,n)},updated(v,n){W(v,n)}};const Se="popover",He=pe(Be,Se),Pe=de(Ae,{directive:He}),De=k({name:"Bell"}),Le={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ne=s("path",{fill:"currentColor",d:"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z"},null,-1),ze=s("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),Ie=s("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),Te=[Ne,ze,Ie];function Re(v,n,t,a,h,i){return c(),_("svg",Le,Te)}var Ue=L(De,[["render",Re]]);const Fe=k({name:"Close"}),Oe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},We=s("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),Ze=[We];function qe(v,n,t,a,h,i){return c(),_("svg",Oe,Ze)}var Ke=L(Fe,[["render",qe]]);const je=k({name:"Expand"}),Ge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Je=s("path",{fill:"currentColor",d:"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z"},null,-1),Qe=[Je];function Xe(v,n,t,a,h,i){return c(),_("svg",Ge,Qe)}var Ye=L(je,[["render",Xe]]);const et={key:0,class:"empty"},tt={class:"message-list"},ot=["onClick"],st={class:"text"},at={class:"date"},nt=["innerHTML"],lt={class:"dialog-date"},rt=k({__name:"index",props:{data:{},autoShow:{type:Boolean}},setup(v){const n=v,t=N({show:!1,title:"系统消息",text:"内容"}),a=A(null);function h(u){a.value=u,t.text=u.text,t.title=u.type===0?"【系统消息】":"【私信】",t.show=!0}function i(){if(a.value.read){t.show=!1;return}Q.readMessage(a.value.id).then(()=>{a.value.read=!0,t.show=!1})}j(()=>n.data.length,()=>{if(!n.autoShow)return;const u=n.data.find(f=>!f.read);u&&h(u)});const m=G();return(u,f)=>{const g=X,C=ce;return c(),_(P,null,[u.data.length?$("",!0):(c(),_("div",et," 暂无更多消息 ღ( ´・ᴗ・` )比心 ")),s("ul",tt,[(c(!0),_(P,null,J(u.data,l=>(c(),_("li",{key:l.id,class:D({read:l.read}),onClick:o=>h(l)},[s("p",st,y(l.text),1),s("p",at,y(d(U)(new Date(l.date))),1)],10,ot))),128))]),r(C,{modelValue:t.show,"onUpdate:modelValue":f[1]||(f[1]=l=>t.show=l),center:"","show-close":"","append-to-body":"","close-on-click-modal":!1,title:t.title,width:"30%",fullscreen:d(m)},{footer:p(()=>[s("p",lt," 时间:"+y(d(U)(new Date(a.value.date))),1),s("span",null,[r(g,{type:"default",onClick:f[0]||(f[0]=()=>{t.show=!1})},{default:p(()=>f[2]||(f[2]=[B(" 下次提醒 ")])),_:1}),r(g,{type:"primary",onClick:i},{default:p(()=>f[3]||(f[3]=[B(" 确定 ")])),_:1})])]),default:p(()=>[s("div",{class:"message-text",innerHTML:t.text},null,8,nt)]),_:1},8,["modelValue","title","fullscreen"])],64)}}}),Z=z(rt,[["__scopeId","data-v-1aac0ffc"]]),it={class:"message-panel"},pt=k({__name:"index",setup(v){const n=A("all"),t=N([]),a=x(()=>t.filter(i=>!i.read)),h=Y();return ee(()=>{h.name!=="config"&&Q.getMessageList().then(i=>{t.push(...i.data)})}),(i,m)=>{const u=X,f=ue,g=ye,C=Ce,l=Pe;return c(),_("div",it,[r(l,{placement:"bottom-end",width:375,trigger:"hover"},{reference:p(()=>[r(f,{value:a.value.length||"",max:99},{default:p(()=>[r(u,{icon:d(Ue),circle:""},null,8,["icon"])]),_:1},8,["value"])]),default:p(()=>[s("div",null,[r(C,{modelValue:n.value,"onUpdate:modelValue":m[0]||(m[0]=o=>n.value=o)},{default:p(()=>[r(g,{label:"未读 ".concat(a.value.length||""),name:"no"},{default:p(()=>[r(Z,{"auto-show":"",data:a.value},null,8,["data"])]),_:1},8,["label"]),r(g,{label:"全部 ".concat(t.length||""),name:"all"},{default:p(()=>[r(Z,{data:t},null,8,["data"])]),_:1},8,["label"])]),_:1},8,["modelValue"])])]),_:1})])}}}),q=z(pt,[["__scopeId","data-v-9fb03fce"]]),dt={class:"dashboard"},ct={class:"pc-nav"},ut={class:"nav"},ft={class:"logo"},vt={key:0,id:"navActive",type:"checkbox"},_t={key:0,for:"navActive",class:"nav-item"},mt=["onClick"],ht={id:"navMenu"},gt={for:"navActive"},bt={key:0,class:"flex fac"},wt={class:"exit-info"},$t={class:"ellipsis"},yt=k({__name:"index",setup(v){const n=G(),t=fe(),a=ve(),h=Y(),i=N([{title:"文件管理",path:"/dashboard/files"},{title:"任务管理",path:"/dashboard/tasks"}]),m=A(0);function u(l){const o=i[l];!o.isExternal&&l!==m.value&&t.push({path:o.path}),o.isExternal&&window.open(o.path,"_blank")}j(()=>h.path,l=>{const o=i.findIndex(E=>l.startsWith(E.path));o!==-1&&(m.value=o)});function f(){ke.confirm("确认退出登录?","登出提示",{draggable:!0}).then(()=>{F.logout().finally(()=>{a.commit("user/setToken",null),t.replace({name:"home"})})}).catch(()=>{me.info("取消")})}const g=A("World");function C(){m.value=i.findIndex(l=>h.path.startsWith(l.path))}return ee(()=>{F.checkPower().then(l=>{var b,M,V;const o=(b=l.data)==null?void 0:b.power;if(g.value=(M=l.data)==null?void 0:M.name,a.commit("user/setSuperAdmin",o),o){const e=[{title:"应用管理",path:"/dashboard/manage"},{title:"网站监控",path:"/dashboard/metrics"}];i.push(...e)}((V=l.data)==null?void 0:V.system)&&(i.splice(0,i.length),i.push({title:"系统管理",path:"/dashboard/config"})),C()})}),(l,o)=>{const E=O("router-link"),b=he,M=be,V=we,e=$e,I=O("router-view");return c(),_("div",dt,[s("div",ct,[s("div",ut,[s("div",ft,[r(E,{to:"/"},{default:p(()=>o[0]||(o[0]=[s("img",{src:"https://img.cdn.sugarat.top/easypicker/EasyPicker.png",alt:"logo"},null,-1)])),_:1})]),d(n)?(c(),_("input",vt)):$("",!0),s("nav",null,[d(n)?(c(),_("label",_t,[o[1]||(o[1]=s("span",null,"Hello💐,",-1)),B(" "+y(g.value),1)])):$("",!0),(c(!0),_(P,null,J(i,(te,S)=>(c(),_("label",{key:S,for:"navActive",class:D(["nav-item",{active:m.value===S}]),onClick:Ct=>u(S)},y(te.title),11,mt))),128)),d(n)?(c(),_("label",{key:1,for:"navActive",class:"nav-item",onClick:f},[o[3]||(o[3]=s("span",{style:{"margin-right":"6px"}},"退出",-1)),r(b,{size:"16"},{default:p(()=>o[2]||(o[2]=[s("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","data-v-53d86618":""},[s("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)])),_:1})])):$("",!0)]),o[4]||(o[4]=s("div",{class:"mask"},null,-1))]),s("span",ht,[d(n)?(c(),K(q,{key:0,class:"mobile-message-bell"})):$("",!0),s("label",gt,[r(b,{size:"32"},{default:p(()=>[r(d(Ye))]),_:1})])]),d(n)?$("",!0):(c(),_("div",bt,[r(q),o[6]||(o[6]=s("span",null,"Hello 💐,",-1)),r(e,{class:"exit"},{dropdown:p(()=>[r(V,null,{default:p(()=>[r(M,{icon:d(Ke),onClick:f},{default:p(()=>o[5]||(o[5]=[B(" 退出 ")])),_:1},8,["icon"])]),_:1})]),default:p(()=>[s("span",wt,[s("span",$t,y(g.value),1),r(b,null,{default:p(()=>[r(d(ge))]),_:1})])]),_:1})]))]),r(I),s("div",null,[r(_e,{type:"dashboard"})])])}}}),Bt=z(yt,[["__scopeId","data-v-5bc955ff"]]);export{Bt as default};
|
|
2
|
+
//# sourceMappingURL=index-BC_fnfOg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BC_fnfOg.js","sources":["../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/popover/src/popover.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/popover/src/directive.mjs","../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/components/popover/index.mjs","../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/bell.mjs","../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/close.mjs","../../../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.5.12_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/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 { reactive, ref, watch } from 'vue'\nimport { SuperUserApi } from '@/apis'\nimport { useIsMobile } from '@/composables'\nimport { formatDate } from '@/utils/stringUtil'\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)\nfunction 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\nfunction 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\nconst isMobile = useIsMobile()\n</script>\n\n<template>\n <div v-if=\"!data.length\" class=\"empty\">\n 暂无更多消息 ღ( ´・ᴗ・` )比心\n </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\">\n {{ d.text }}\n </p>\n <p class=\"date\">\n {{ formatDate(new Date(d.date)) }}\n </p>\n </li>\n </ul>\n <el-dialog\n v-model=\"dialogMessage.show\"\n center\n show-close\n append-to-body\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\" />\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\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, onMounted, reactive, 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\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 <MessageList auto-show :data=\"noReadMessage\" />\n </el-tab-pane>\n <el-tab-pane :label=\"`全部 ${messageData.length || ''}`\" name=\"all\">\n <MessageList :data=\"messageData\" />\n </el-tab-pane>\n </el-tabs>\n </div>\n </el-popover>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.message-panel {\n margin-right: 10px;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport HomeFooter from '@components/HomeFooter/index.vue'\nimport { ArrowDown, Close, Expand } from '@element-plus/icons-vue'\n\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport { onMounted, reactive, ref, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\nimport { UserApi } from '@/apis'\nimport MessagePanel from '@/components/MessagePanel/index.vue'\nimport { useIsMobile } from '@/composables'\n\nconst isMobile = useIsMobile()\n\nconst $router = useRouter()\nconst $store = useStore()\nconst $route = useRoute()\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)\nfunction 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\nfunction 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\nfunction 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: '/dashboard/metrics',\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\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\" id=\"navActive\" type=\"checkbox\">\n <nav>\n <label v-if=\"isMobile\" for=\"navActive\" class=\"nav-item\">\n <span>Hello💐,</span>\n {{ userName }}\n </label>\n <label\n v-for=\"(n, idx) in navList\"\n :key=\"idx\"\n for=\"navActive\"\n class=\"nav-item\"\n :class=\"{\n active: navActiveIdx === idx,\n }\"\n @click=\"handleNav(idx)\"\n >{{ n.title }}</label>\n <label\n v-if=\"isMobile\"\n for=\"navActive\"\n class=\"nav-item\"\n @click=\"handleLogout\"\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\" />\n </div>\n <!-- 移动端展示 -->\n <span id=\"navMenu\">\n <MessagePanel 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 v-if=\"!isMobile\" class=\"flex fac\">\n <MessagePanel />\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 :icon=\"Close\" @click=\"handleLogout\">\n 退出\n </el-dropdown-item>\n </el-dropdown-menu>\n </template>\n </el-dropdown>\n </div>\n </div>\n <router-view />\n <div>\n <HomeFooter type=\"dashboard\" />\n </div>\n </div>\n</template>\n\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","isMobile","useIsMobile","activeTab","messageData","noReadMessage","route","useRoute","onMounted","$router","useRouter","$store","useStore","$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]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px;--el-menu-icon-transform-closed:none;--el-menu-icon-transform-open:rotateZ(180deg)}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu{position:relative}.el-menu--collapse .el-sub-menu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid var(--el-border-color-light);border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu--collapse .el-sub-menu.is-opened>.el-sub-menu__title .el-sub-menu__icon-arrow{transform:var(--el-menu-icon-transform-closed)}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height);min-width:200px}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-opened>.el-sub-menu__title .el-sub-menu__icon-arrow{transform:var(--el-menu-icon-transform-open)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-7px;transform:var(--el-menu-icon-transform-closed);transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.monitor[data-v-67f8ea8e]{width:96%;padding:10px;overflow:hidden;display:flex}.navs[data-v-67f8ea8e]{min-width:140px}.container[data-v-67f8ea8e]{padding-left:20px;flex-grow:1;width:calc(100% - 150px)}@media screen and (max-width: 700px){.monitor[data-v-67f8ea8e]{margin-top:70px;padding:10px 0;width:100%}.navs[data-v-67f8ea8e]{position:absolute;left:50%;transform:translate(-50%)}.el-radio-group[data-v-67f8ea8e]{display:none}.el-menu-nav[data-v-67f8ea8e]{display:flex}.container[data-v-67f8ea8e]{padding-left:0;margin-top:30px;width:100%}}
|
|
1
|
+
.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px;--el-menu-icon-transform-closed:none;--el-menu-icon-transform-open:rotateZ(180deg)}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu{position:relative}.el-menu--collapse .el-sub-menu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid var(--el-border-color-light);border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu--collapse .el-sub-menu.is-opened>.el-sub-menu__title .el-sub-menu__icon-arrow{transform:var(--el-menu-icon-transform-closed)}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height);min-width:200px}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-opened>.el-sub-menu__title .el-sub-menu__icon-arrow{transform:var(--el-menu-icon-transform-open)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-7px;transform:var(--el-menu-icon-transform-closed);transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.monitor[data-v-1f4a4d8d]{width:96%;padding:10px;overflow:hidden;display:flex}.navs[data-v-1f4a4d8d]{min-width:140px}.container[data-v-1f4a4d8d]{padding-left:20px;flex-grow:1;width:calc(100% - 150px)}@media screen and (max-width: 700px){.monitor[data-v-1f4a4d8d]{margin-top:70px;padding:10px 0 0;width:100%;display:block;overflow:visible}.navs[data-v-1f4a4d8d]{width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;box-sizing:border-box}.el-radio-group[data-v-1f4a4d8d]{display:none}.el-menu-nav[data-v-1f4a4d8d]{display:inline-flex;min-width:max-content;border-right:0;border-bottom:solid 1px var(--el-menu-border-color)}.el-menu-nav[data-v-1f4a4d8d] .el-menu-item{flex-shrink:0;height:44px;line-height:44px;padding:0 14px}.container[data-v-1f4a4d8d]{padding-left:0;margin-top:12px;width:100%}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const o={beforeMount(a,l){let e=null,t=!1;const n=()=>l.value&&l.value(),r=()=>{clearInterval(e),e=null,t||n(),t=!1};a.addEventListener("mousedown",u=>{u.button===0&&(document.addEventListener("mouseup",r,{once:!0}),clearInterval(e),e=setInterval(()=>{t=!0,n()},100))})}};export{o as R};
|
|
2
|
+
//# sourceMappingURL=index-BDsN2eKB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BDsN2eKB.js","sources":["../../../../node_modules/.pnpm/element-plus@2.2.13_vue@3.5.12_typescript@4.9.5_/node_modules/element-plus/es/directives/repeat-click/index.mjs"],"sourcesContent":["const RepeatClick = {\n beforeMount(el, binding) {\n let interval = null;\n let isHandlerCalled = false;\n const handler = () => binding.value && binding.value();\n const clear = () => {\n clearInterval(interval);\n interval = null;\n if (!isHandlerCalled) {\n handler();\n }\n isHandlerCalled = false;\n };\n el.addEventListener(\"mousedown\", (e) => {\n if (e.button !== 0)\n return;\n document.addEventListener(\"mouseup\", clear, { once: true });\n clearInterval(interval);\n interval = setInterval(() => {\n isHandlerCalled = true;\n handler();\n }, 100);\n });\n }\n};\n\nexport { RepeatClick as default };\n//# sourceMappingURL=index.mjs.map\n"],"names":["RepeatClick","el","binding","interval","isHandlerCalled","handler","clear","e"],"mappings":"AAAK,MAACA,EAAc,CAClB,YAAYC,EAAIC,EAAS,CACvB,IAAIC,EAAW,KACXC,EAAkB,GACtB,MAAMC,EAAU,IAAMH,EAAQ,OAASA,EAAQ,MAAK,EAC9CI,EAAQ,IAAM,CAClB,cAAcH,CAAQ,EACtBA,EAAW,KACNC,GACHC,IAEFD,EAAkB,EACxB,EACIH,EAAG,iBAAiB,YAAcM,GAAM,CAClCA,EAAE,SAAW,IAEjB,SAAS,iBAAiB,UAAWD,EAAO,CAAE,KAAM,EAAI,CAAE,EAC1D,cAAcH,CAAQ,EACtBA,EAAW,YAAY,IAAM,CAC3BC,EAAkB,GAClBC,GACD,EAAE,GAAG,EACZ,CAAK,CACF,CACH","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as e,_ as F,h as d,a as f,c as i,b as a,i as s,w as l,z as r,e as t}from"./index-DbhWmXsj.js";const n=e({setup(){return{}}}),A={class:"about"},o={class:"panel"},v={class:"panel"};function p(B,u,D,g,h,C){const E=d("router-link");return f(),i("div",A,[a("main",null,[a("div",o,[s(E,{to:"/"},{default:l(()=>u[0]||(u[0]=[a("img",{class:"logo",src:"https://img.cdn.sugarat.top/easypicker/EasyPicker.png"},null,-1)])),_:1})]),u[5]||(u[5]=a("div",{class:"panel"},[a("h1",null,"简介"),a("p",null,"在线文件收取助手,帮助用户快速的完成一对多的文件收取")],-1)),a("div",v,[u[4]||(u[4]=r('<h1 data-v-a3fa2333>诞生背景</h1><p data-v-a3fa2333>校园学习或者工作场景中会有以下几个场景:</p><ul data-v-a3fa2333><li data-v-a3fa2333><strong data-v-a3fa2333>电子文件:</strong> 班委向同学收取各种实验电子报告</li><li data-v-a3fa2333><strong data-v-a3fa2333>图片:</strong> 收取各种截图证明/活动照片</li><li data-v-a3fa2333>...</li></ul><p data-v-a3fa2333>目前最广泛的收取方式为,通过邮箱,QQ,微信等通讯工具传递</p><p data-v-a3fa2333>弊端显而易见,不方便整理统计。还占用电脑/手机内存</p><p data-v-a3fa2333>为了解决这个问题,此项目应运而生</p><p data-v-a3fa2333>当然<span data-v-a3fa2333><strong data-v-a3fa2333>市面上也有几款类似的办公工具</strong></span> ,功能及使用方式都差不多</p><p data-v-a3fa2333>本项目<strong data-v-a3fa2333>是 <a href="https://github.com/ATQQ/easypicker2-client" data-v-a3fa2333>开源</a> 的</strong></p>',8)),a("p",null,[u[2]||(u[2]=t(" 如有私有化的需求,可自行部署使用(也可 ")),s(E,{to:"/author"},{default:l(()=>u[1]||(u[1]=[t(" 联系作者 ")])),_:1}),u[3]||(u[3]=t(" 提供帮助) "))])]),u[6]||(u[6]=r('<div class="panel" data-v-a3fa2333><h1 data-v-a3fa2333>现有功能 <span style="color:grey;font-size:0.8rem;" data-v-a3fa2333>(用户关心的)</span></h1><h2 data-v-a3fa2333>收集任务</h2><ul data-v-a3fa2333><li data-v-a3fa2333><strong data-v-a3fa2333>分类管理: </strong> 收集任务支持分类管理</li><li data-v-a3fa2333><strong data-v-a3fa2333>设置DDL(截止日期): </strong> 任务截止后不可再提交文件</li><li data-v-a3fa2333><strong data-v-a3fa2333>限制提交人员: </strong> 非指定的人员(姓名),无法提交文件</li><li data-v-a3fa2333><strong data-v-a3fa2333>设置模板文件: </strong> 提交者可直接在提交页面下载此文件</li><li data-v-a3fa2333><strong data-v-a3fa2333>自动重命名: </strong> 提交的文件按填写表单信息进行自动重名(如:姓名-工号.后缀)</li></ul><h2 data-v-a3fa2333>文件相关</h2><ul data-v-a3fa2333><li data-v-a3fa2333><strong data-v-a3fa2333>上传(提交): </strong>单个/多个</li><li data-v-a3fa2333><strong data-v-a3fa2333>下载: </strong>单个/多个/按收集任务</li><li data-v-a3fa2333><strong data-v-a3fa2333>撤回: </strong>用户可以撤回自己提交的文件</li><li data-v-a3fa2333><strong data-v-a3fa2333>分享: </strong>用户可以将文件下载链接分享给朋友</li><li data-v-a3fa2333><strong data-v-a3fa2333>模板下载: </strong> 下载任务发布者设置的模板文件</li><li data-v-a3fa2333><strong data-v-a3fa2333>导出: </strong> 导出提交记录</li></ul></div><div class="panel" data-v-a3fa2333><h1 data-v-a3fa2333>相关链接</h1><h2 data-v-a3fa2333>应用链接相关</h2><ul data-v-a3fa2333><li data-v-a3fa2333><a href="https://docs.ep.sugarat.top" target="_blank" rel="noopener noreferrer" data-v-a3fa2333>私有化部署</a></li><li data-v-a3fa2333><a target="_blank" href="https://ep.sugarat.top" data-v-a3fa2333>Easypicker1.0</a></li><li data-v-a3fa2333><a target="_blank" href="https://ep2.sugarat.top" data-v-a3fa2333>Easypicker2.0</a></li></ul><h2 data-v-a3fa2333>应用源代码 <span style="color:grey;font-size:0.8rem;" data-v-a3fa2333>(开发者需要的)</span></h2><ul data-v-a3fa2333><li data-v-a3fa2333><a target="_blank" href="https://github.com/ATQQ/EasyPicker-webpack" data-v-a3fa2333>Easypicker1.0-客户端</a></li><li data-v-a3fa2333><a target="_blank" href="https://github.com/ATQQ/easypicker-server" data-v-a3fa2333>Easypicker1.0-服务端</a></li></ul><ul data-v-a3fa2333><li data-v-a3fa2333><a target="_blank" href="https://github.com/ATQQ/easypicker2-client" data-v-a3fa2333>Easypicker2.0-客户端</a></li><li data-v-a3fa2333><a target="_blank" href="https://github.com/ATQQ/easypicker2-server" data-v-a3fa2333>Easypicker2.0-服务端</a></li></ul><ul data-v-a3fa2333><li data-v-a3fa2333><a target="_blank" href="https://github.com/ATQQ/vite-vue3-template" data-v-a3fa2333>Easypicker2.0-客户端模板仓库</a></li><li data-v-a3fa2333><a target="_blank" href="https://github.com/ATQQ/node-server" data-v-a3fa2333>Easypicker2.0-服务端模板仓库</a></li></ul><h2 data-v-a3fa2333>作者 <span style="color:grey;font-size:0.8rem;" data-v-a3fa2333>(夹带私货)</span></h2><ul data-v-a3fa2333><li data-v-a3fa2333><a target="_blank" href="https://sugarat.top" data-v-a3fa2333>博客</a></li><li data-v-a3fa2333><a target="_blank" href="https://github.com/ATQQ" data-v-a3fa2333>GitHub</a></li><li data-v-a3fa2333><a target="_blank" href="https://juejin.cn/user/1028798615918983" data-v-a3fa2333>掘金</a></li></ul></div>',2))])])}const k=F(n,[["render",p],["__scopeId","data-v-a3fa2333"]]);export{k as default};
|
|
2
|
+
//# sourceMappingURL=index-BSIRw8UD.js.map
|