hs-admin-ui 4.1.2 → 4.1.4
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/401-BzJI2gFF.mjs +1 -0
- package/dist/401-BzJI2gFF.mjs.gz +0 -0
- package/dist/401-BzJI2gFF.mjs.map +1 -0
- package/dist/401-yMsLUK4l.js +1 -0
- package/dist/401-yMsLUK4l.js.gz +0 -0
- package/dist/401-yMsLUK4l.js.map +1 -0
- package/dist/404-B2ON4qU8.js +1 -0
- package/dist/404-B2ON4qU8.js.gz +0 -0
- package/dist/404-B2ON4qU8.js.map +1 -0
- package/dist/404-DMkWKsBf.mjs +1 -0
- package/dist/404-DMkWKsBf.mjs.gz +0 -0
- package/dist/404-DMkWKsBf.mjs.map +1 -0
- package/dist/account-BaCUa_zU.mjs +1 -0
- package/dist/account-BaCUa_zU.mjs.gz +0 -0
- package/dist/account-BaCUa_zU.mjs.map +1 -0
- package/dist/account-m86ss5x3.js +1 -0
- package/dist/account-m86ss5x3.js.gz +0 -0
- package/dist/account-m86ss5x3.js.map +1 -0
- package/dist/aside-BS3iMpFI.mjs +1 -0
- package/dist/aside-BS3iMpFI.mjs.gz +0 -0
- package/dist/aside-BS3iMpFI.mjs.map +1 -0
- package/dist/aside-eHuEMYpI.js +1 -0
- package/dist/aside-eHuEMYpI.js.gz +0 -0
- package/dist/aside-eHuEMYpI.js.map +1 -0
- package/dist/baseBtnConfig-BaYFVzAe.js +1 -0
- package/dist/baseBtnConfig-BaYFVzAe.js.gz +0 -0
- package/dist/baseBtnConfig-BaYFVzAe.js.map +1 -0
- package/dist/baseBtnConfig-BpdCCSnd.mjs +1 -0
- package/dist/baseBtnConfig-BpdCCSnd.mjs.gz +0 -0
- package/dist/baseBtnConfig-BpdCCSnd.mjs.map +1 -0
- package/dist/baseFormConfig-CLzeDtYS.mjs +1 -0
- package/dist/baseFormConfig-CLzeDtYS.mjs.gz +0 -0
- package/dist/baseFormConfig-CLzeDtYS.mjs.map +1 -0
- package/dist/baseFormConfig-DIhAM0r9.js +1 -0
- package/dist/baseFormConfig-DIhAM0r9.js.gz +0 -0
- package/dist/baseFormConfig-DIhAM0r9.js.map +1 -0
- package/dist/btnIndex-Da4JeOuj.mjs +1 -0
- package/dist/btnIndex-Da4JeOuj.mjs.gz +0 -0
- package/dist/btnIndex-Da4JeOuj.mjs.map +1 -0
- package/dist/btnIndex-zJDzK1YM.js +1 -0
- package/dist/btnIndex-zJDzK1YM.js.gz +0 -0
- package/dist/btnIndex-zJDzK1YM.js.map +1 -0
- package/dist/classic-Bh1vJ8wW.js +1 -0
- package/dist/classic-Bh1vJ8wW.js.gz +0 -0
- package/dist/classic-Bh1vJ8wW.js.map +1 -0
- package/dist/classic-C3c5W6bW.mjs +1 -0
- package/dist/classic-C3c5W6bW.mjs.gz +0 -0
- package/dist/classic-C3c5W6bW.mjs.map +1 -0
- package/dist/cloneConfigDialog-BPZau43p.js +1 -0
- package/dist/cloneConfigDialog-BPZau43p.js.gz +0 -0
- package/dist/cloneConfigDialog-BPZau43p.js.map +1 -0
- package/dist/cloneConfigDialog-DlKGp5lz.mjs +1 -0
- package/dist/cloneConfigDialog-DlKGp5lz.mjs.gz +0 -0
- package/dist/cloneConfigDialog-DlKGp5lz.mjs.map +1 -0
- package/dist/columns-DC21XYUc.js +1 -0
- package/dist/columns-DC21XYUc.js.gz +0 -0
- package/dist/columns-DC21XYUc.js.map +1 -0
- package/dist/columns-DQw-mrU3.mjs +1 -0
- package/dist/columns-DQw-mrU3.mjs.gz +0 -0
- package/dist/columns-DQw-mrU3.mjs.map +1 -0
- package/dist/columnsAside-B__LjXPs.mjs +1 -0
- package/dist/columnsAside-B__LjXPs.mjs.gz +0 -0
- package/dist/columnsAside-B__LjXPs.mjs.map +1 -0
- package/dist/columnsAside-vvFOlX5F.js +1 -0
- package/dist/columnsAside-vvFOlX5F.js.gz +0 -0
- package/dist/columnsAside-vvFOlX5F.js.map +1 -0
- package/dist/contextmenu-7YxyCBre.js +1 -0
- package/dist/contextmenu-7YxyCBre.js.gz +0 -0
- package/dist/contextmenu-7YxyCBre.js.map +1 -0
- package/dist/contextmenu-C9_VjixF.mjs +1 -0
- package/dist/contextmenu-C9_VjixF.mjs.gz +0 -0
- package/dist/contextmenu-C9_VjixF.mjs.map +1 -0
- package/dist/contextmenu-Cnxfpyzs.mjs +1 -0
- package/dist/contextmenu-Cnxfpyzs.mjs.gz +0 -0
- package/dist/contextmenu-Cnxfpyzs.mjs.map +1 -0
- package/dist/contextmenu-D7_SLgbF.mjs +1 -0
- package/dist/contextmenu-D7_SLgbF.mjs.gz +0 -0
- package/dist/contextmenu-D7_SLgbF.mjs.map +1 -0
- package/dist/contextmenu-DIM2CO4m.js +1 -0
- package/dist/contextmenu-DIM2CO4m.js.gz +0 -0
- package/dist/contextmenu-DIM2CO4m.js.map +1 -0
- package/dist/contextmenu-jw7CjkqU.js +1 -0
- package/dist/contextmenu-jw7CjkqU.js.gz +0 -0
- package/dist/contextmenu-jw7CjkqU.js.map +1 -0
- package/dist/defaults-CO-9PLy3.mjs +1 -0
- package/dist/defaults-CO-9PLy3.mjs.gz +0 -0
- package/dist/defaults-CO-9PLy3.mjs.map +1 -0
- package/dist/defaults-CPTLP5d8.js +1 -0
- package/dist/defaults-CPTLP5d8.js.gz +0 -0
- package/dist/defaults-CPTLP5d8.js.map +1 -0
- package/dist/dialog-BbI7XOgp.js +1 -0
- package/dist/dialog-BbI7XOgp.js.map +1 -0
- package/dist/dialog-Bl7WEBUf.mjs +1 -0
- package/dist/dialog-Bl7WEBUf.mjs.map +1 -0
- package/dist/dialog-BmCwSZ2C.js +1 -0
- package/dist/dialog-BmCwSZ2C.js.gz +0 -0
- package/dist/dialog-BmCwSZ2C.js.map +1 -0
- package/dist/dialog-Ch_vZTX6.mjs +1 -0
- package/dist/dialog-Ch_vZTX6.mjs.gz +0 -0
- package/dist/dialog-Ch_vZTX6.mjs.map +1 -0
- package/dist/dialog-Cqb6ay6R.js +1 -0
- package/dist/dialog-Cqb6ay6R.js.gz +0 -0
- package/dist/dialog-Cqb6ay6R.js.map +1 -0
- package/dist/dialog-DIFjAfxe.mjs +1 -0
- package/dist/dialog-DIFjAfxe.mjs.map +1 -0
- package/dist/dialog-DVZ-Aqm0.mjs +1 -0
- package/dist/dialog-DVZ-Aqm0.mjs.gz +0 -0
- package/dist/dialog-DVZ-Aqm0.mjs.map +1 -0
- package/dist/dialog-DeuceWcM.js +1 -0
- package/dist/dialog-DeuceWcM.js.gz +0 -0
- package/dist/dialog-DeuceWcM.js.map +1 -0
- package/dist/dialog-Dtk0TIqw.mjs +1 -0
- package/dist/dialog-Dtk0TIqw.mjs.map +1 -0
- package/dist/dialog-GTCUA8Nu.js +1 -0
- package/dist/dialog-GTCUA8Nu.js.map +1 -0
- package/dist/dialog-UoVqSoLN.mjs +1 -0
- package/dist/dialog-UoVqSoLN.mjs.gz +0 -0
- package/dist/dialog-UoVqSoLN.mjs.map +1 -0
- package/dist/dialog-ggWKEkrm.js +1 -0
- package/dist/dialog-ggWKEkrm.js.map +1 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-BZUe_7gT.mjs +1 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-BZUe_7gT.mjs.gz +0 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-BZUe_7gT.mjs.map +1 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-utiTEG14.js +1 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-utiTEG14.js.gz +0 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-utiTEG14.js.map +1 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-CJ_5_qKm.mjs +1 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-CJ_5_qKm.mjs.gz +0 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-CJ_5_qKm.mjs.map +1 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-bGgzzD_6.js +1 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-bGgzzD_6.js.gz +0 -0
- package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-bGgzzD_6.js.map +1 -0
- package/dist/dictDialog-C6deNfCe.js +1 -0
- package/dist/dictDialog-C6deNfCe.js.map +1 -0
- package/dist/dictDialog-DA8GuFk9.mjs +1 -0
- package/dist/dictDialog-DA8GuFk9.mjs.map +1 -0
- package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-CdhZHxQx.js +1 -0
- package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-CdhZHxQx.js.gz +0 -0
- package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-CdhZHxQx.js.map +1 -0
- package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-cGDTYNII.mjs +1 -0
- package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-cGDTYNII.mjs.gz +0 -0
- package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-cGDTYNII.mjs.map +1 -0
- package/dist/dictItemDialog-C2l1XNjL.js +1 -0
- package/dist/dictItemDialog-C2l1XNjL.js.map +1 -0
- package/dist/dictItemDialog-CGCyt3sd.mjs +1 -0
- package/dist/dictItemDialog-CGCyt3sd.mjs.map +1 -0
- package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-CTTB6eDA.mjs +1 -0
- package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-CTTB6eDA.mjs.gz +0 -0
- package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-CTTB6eDA.mjs.map +1 -0
- package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-D47SU2Qe.js +1 -0
- package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-D47SU2Qe.js.gz +0 -0
- package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-D47SU2Qe.js.map +1 -0
- package/dist/editDialog-B3FZIrWv.js +1 -0
- package/dist/editDialog-B3FZIrWv.js.gz +0 -0
- package/dist/editDialog-B3FZIrWv.js.map +1 -0
- package/dist/editDialog-BsPYjQ3Z.mjs +1 -0
- package/dist/editDialog-BsPYjQ3Z.mjs.gz +0 -0
- package/dist/editDialog-BsPYjQ3Z.mjs.map +1 -0
- package/dist/formConfig-CQRWsB8I.mjs +1 -0
- package/dist/formConfig-CQRWsB8I.mjs.gz +0 -0
- package/dist/formConfig-CQRWsB8I.mjs.map +1 -0
- package/dist/formConfig-vRKuN3Qq.js +1 -0
- package/dist/formConfig-vRKuN3Qq.js.gz +0 -0
- package/dist/formConfig-vRKuN3Qq.js.map +1 -0
- package/dist/header-Cn7nyXyQ.js +1 -0
- package/dist/header-Cn7nyXyQ.js.map +1 -0
- package/dist/header-DXLUHaoH.mjs +1 -0
- package/dist/header-DXLUHaoH.mjs.map +1 -0
- package/dist/horizontal-D5m-StSj.mjs +1 -0
- package/dist/horizontal-D5m-StSj.mjs.gz +0 -0
- package/dist/horizontal-D5m-StSj.mjs.map +1 -0
- package/dist/horizontal-DQqvv6Sp.js +1 -0
- package/dist/horizontal-DQqvv6Sp.js.gz +0 -0
- package/dist/horizontal-DQqvv6Sp.js.map +1 -0
- package/dist/hsAttrBtn-D1QvVUZr.js +1 -0
- package/dist/hsAttrBtn-D1QvVUZr.js.map +1 -0
- package/dist/hsAttrBtn-TYcer9fC.mjs +1 -0
- package/dist/hsAttrBtn-TYcer9fC.mjs.map +1 -0
- package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-CQvnEDXk.js +1 -0
- package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-CQvnEDXk.js.gz +0 -0
- package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-CQvnEDXk.js.map +1 -0
- package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-DGycKZ06.mjs +1 -0
- package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-DGycKZ06.mjs.gz +0 -0
- package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-DGycKZ06.mjs.map +1 -0
- package/dist/hsAttrForm-BzIlb91a.js +1 -0
- package/dist/hsAttrForm-BzIlb91a.js.map +1 -0
- package/dist/hsAttrForm-DtqMt6Lk.mjs +1 -0
- package/dist/hsAttrForm-DtqMt6Lk.mjs.map +1 -0
- package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-BMaIQo0H.mjs +1 -0
- package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-BMaIQo0H.mjs.gz +0 -0
- package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-BMaIQo0H.mjs.map +1 -0
- package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-hKoCLLeD.js +1 -0
- package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-hKoCLLeD.js.gz +0 -0
- package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-hKoCLLeD.js.map +1 -0
- package/dist/hsBtnConfigList-Bb1nm0Vy.js +1 -0
- package/dist/hsBtnConfigList-Bb1nm0Vy.js.gz +0 -0
- package/dist/hsBtnConfigList-Bb1nm0Vy.js.map +1 -0
- package/dist/hsBtnConfigList-Bren_Fd3.mjs +1 -0
- package/dist/hsBtnConfigList-Bren_Fd3.mjs.gz +0 -0
- package/dist/hsBtnConfigList-Bren_Fd3.mjs.map +1 -0
- package/dist/hsBtnItemConfig-BCJqmO3A.js +1 -0
- package/dist/hsBtnItemConfig-BCJqmO3A.js.map +1 -0
- package/dist/hsBtnItemConfig-CzRP7rGc.mjs +1 -0
- package/dist/hsBtnItemConfig-CzRP7rGc.mjs.map +1 -0
- package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DS7PtHA3.js +1 -0
- package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DS7PtHA3.js.gz +0 -0
- package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DS7PtHA3.js.map +1 -0
- package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DvQ5Sm0Z.mjs +1 -0
- package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DvQ5Sm0Z.mjs.gz +0 -0
- package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DvQ5Sm0Z.mjs.map +1 -0
- package/dist/hsBtnPanel-CUhnhH9S.mjs +1 -0
- package/dist/hsBtnPanel-CUhnhH9S.mjs.map +1 -0
- package/dist/hsBtnPanel-D-Y2DAWc.js +1 -0
- package/dist/hsBtnPanel-D-Y2DAWc.js.map +1 -0
- package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CFWt1cBu.js +1 -0
- package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CFWt1cBu.js.gz +0 -0
- package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CFWt1cBu.js.map +1 -0
- package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CWd8hS5v.mjs +1 -0
- package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CWd8hS5v.mjs.gz +0 -0
- package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CWd8hS5v.mjs.map +1 -0
- package/dist/hsExpand-DIo3Lfqs.mjs +1 -0
- package/dist/hsExpand-DIo3Lfqs.mjs.map +1 -0
- package/dist/hsExpand-MS4CSl__.js +1 -0
- package/dist/hsExpand-MS4CSl__.js.map +1 -0
- package/dist/hsExpand.vue_vue_type_script_setup_true_lang-C0tRMdLr.mjs +1 -0
- package/dist/hsExpand.vue_vue_type_script_setup_true_lang-C0tRMdLr.mjs.gz +0 -0
- package/dist/hsExpand.vue_vue_type_script_setup_true_lang-C0tRMdLr.mjs.map +1 -0
- package/dist/hsExpand.vue_vue_type_script_setup_true_lang-DI5xS1It.js +1 -0
- package/dist/hsExpand.vue_vue_type_script_setup_true_lang-DI5xS1It.js.gz +0 -0
- package/dist/hsExpand.vue_vue_type_script_setup_true_lang-DI5xS1It.js.map +1 -0
- package/dist/hsFormConfig-88TlmGx1.mjs +1 -0
- package/dist/hsFormConfig-88TlmGx1.mjs.gz +0 -0
- package/dist/hsFormConfig-88TlmGx1.mjs.map +1 -0
- package/dist/hsFormConfig-BMyDeJP6.js +1 -0
- package/dist/hsFormConfig-BMyDeJP6.js.gz +0 -0
- package/dist/hsFormConfig-BMyDeJP6.js.map +1 -0
- package/dist/hsFormConfigList-DsVF2R8N.mjs +1 -0
- package/dist/hsFormConfigList-DsVF2R8N.mjs.gz +0 -0
- package/dist/hsFormConfigList-DsVF2R8N.mjs.map +1 -0
- package/dist/hsFormConfigList-OF81mYsV.js +1 -0
- package/dist/hsFormConfigList-OF81mYsV.js.gz +0 -0
- package/dist/hsFormConfigList-OF81mYsV.js.map +1 -0
- package/dist/hsFormPanel-ByZcwko4.js +1 -0
- package/dist/hsFormPanel-ByZcwko4.js.map +1 -0
- package/dist/hsFormPanel-Cp-j_SNi.mjs +1 -0
- package/dist/hsFormPanel-Cp-j_SNi.mjs.map +1 -0
- package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-BFNUZilJ.mjs +1 -0
- package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-BFNUZilJ.mjs.gz +0 -0
- package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-BFNUZilJ.mjs.map +1 -0
- package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CMiitHGY.js +1 -0
- package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CMiitHGY.js.gz +0 -0
- package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CMiitHGY.js.map +1 -0
- package/dist/hsFormParse-DfYFseG9.js +1 -0
- package/dist/hsFormParse-DfYFseG9.js.map +1 -0
- package/dist/hsFormParse-Wm92Be9y.mjs +1 -0
- package/dist/hsFormParse-Wm92Be9y.mjs.map +1 -0
- package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-6s_wp2H-.mjs +1 -0
- package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-6s_wp2H-.mjs.gz +0 -0
- package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-6s_wp2H-.mjs.map +1 -0
- package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-Cb2q7Fuy.js +1 -0
- package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-Cb2q7Fuy.js.gz +0 -0
- package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-Cb2q7Fuy.js.map +1 -0
- package/dist/hsPanelItem-DKSytzeB.mjs +1 -0
- package/dist/hsPanelItem-DKSytzeB.mjs.map +1 -0
- package/dist/hsPanelItem-DbFQIf68.js +1 -0
- package/dist/hsPanelItem-DbFQIf68.js.map +1 -0
- package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-CqtPTLb1.js +1 -0
- package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-CqtPTLb1.js.gz +0 -0
- package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-CqtPTLb1.js.map +1 -0
- package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-Dtz8b4vz.mjs +1 -0
- package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-Dtz8b4vz.mjs.gz +0 -0
- package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-Dtz8b4vz.mjs.map +1 -0
- package/dist/iframes-DCvvORXH.js +1 -0
- package/dist/iframes-DCvvORXH.js.gz +0 -0
- package/dist/iframes-DCvvORXH.js.map +1 -0
- package/dist/iframes-DKPJ8wxi.mjs +1 -0
- package/dist/iframes-DKPJ8wxi.mjs.gz +0 -0
- package/dist/iframes-DKPJ8wxi.mjs.map +1 -0
- package/dist/index-0vzDoVhe.mjs +1 -0
- package/dist/index-0vzDoVhe.mjs.gz +0 -0
- package/dist/index-0vzDoVhe.mjs.map +1 -0
- package/dist/index-1hgXG7It.js +1 -0
- package/dist/index-1hgXG7It.js.gz +0 -0
- package/dist/index-1hgXG7It.js.map +1 -0
- package/dist/index-4GTrORei.js +1 -0
- package/dist/index-4GTrORei.js.map +1 -0
- package/dist/index-B-Ori_IC.js +1 -0
- package/dist/index-B-Ori_IC.js.gz +0 -0
- package/dist/index-B-Ori_IC.js.map +1 -0
- package/dist/index-B0GMXwiE.mjs +1 -0
- package/dist/index-B0GMXwiE.mjs.gz +0 -0
- package/dist/index-B0GMXwiE.mjs.map +1 -0
- package/dist/index-B0mEK2cV.mjs +1 -0
- package/dist/index-B0mEK2cV.mjs.map +1 -0
- package/dist/index-BAaaz79H.js +1 -0
- package/dist/index-BAaaz79H.js.gz +0 -0
- package/dist/index-BAaaz79H.js.map +1 -0
- package/dist/index-BDcwKtzF.mjs +1 -0
- package/dist/index-BDcwKtzF.mjs.map +1 -0
- package/dist/index-BN4Me9T2.mjs +1 -0
- package/dist/index-BN4Me9T2.mjs.gz +0 -0
- package/dist/index-BN4Me9T2.mjs.map +1 -0
- package/dist/index-BNW5-ejc.js +1 -0
- package/dist/index-BNW5-ejc.js.gz +0 -0
- package/dist/index-BNW5-ejc.js.map +1 -0
- package/dist/index-BSwDJeZ0.mjs +1 -0
- package/dist/index-BSwDJeZ0.mjs.map +1 -0
- package/dist/index-BWafrLdt.mjs +1 -0
- package/dist/index-BWafrLdt.mjs.map +1 -0
- package/dist/index-BXUxh4lH.mjs +1 -0
- package/dist/index-BXUxh4lH.mjs.map +1 -0
- package/dist/index-BXmNKW66.mjs +1 -0
- package/dist/index-BXmNKW66.mjs.map +1 -0
- package/dist/index-BXzcUeFl.js +1 -0
- package/dist/index-BXzcUeFl.js.gz +0 -0
- package/dist/index-BXzcUeFl.js.map +1 -0
- package/dist/index-B_9aNNYJ.js +1 -0
- package/dist/index-B_9aNNYJ.js.gz +0 -0
- package/dist/index-B_9aNNYJ.js.map +1 -0
- package/dist/index-BaagLr_r.mjs +1 -0
- package/dist/index-BaagLr_r.mjs.gz +0 -0
- package/dist/index-BaagLr_r.mjs.map +1 -0
- package/dist/index-Bd_e3_GE.js +1 -0
- package/dist/index-Bd_e3_GE.js.map +1 -0
- package/dist/index-BeNCTICt.js +1 -0
- package/dist/index-BeNCTICt.js.map +1 -0
- package/dist/index-Bjm5ZBl3.mjs +1 -0
- package/dist/index-Bjm5ZBl3.mjs.gz +0 -0
- package/dist/index-Bjm5ZBl3.mjs.map +1 -0
- package/dist/index-BklJiGW7.js +1 -0
- package/dist/index-BklJiGW7.js.gz +0 -0
- package/dist/index-BklJiGW7.js.map +1 -0
- package/dist/index-BlcsIt1I.mjs +1 -0
- package/dist/index-BlcsIt1I.mjs.map +1 -0
- package/dist/index-BmTJZkui.js +1 -0
- package/dist/index-BmTJZkui.js.gz +0 -0
- package/dist/index-BmTJZkui.js.map +1 -0
- package/dist/index-Bt4M5xi5.js +1 -0
- package/dist/index-Bt4M5xi5.js.gz +0 -0
- package/dist/index-Bt4M5xi5.js.map +1 -0
- package/dist/index-BvOascd4.js +1 -0
- package/dist/index-BvOascd4.js.gz +0 -0
- package/dist/index-BvOascd4.js.map +1 -0
- package/dist/index-BzEYHziM.mjs +1 -0
- package/dist/index-BzEYHziM.mjs.gz +0 -0
- package/dist/index-BzEYHziM.mjs.map +1 -0
- package/dist/index-C3nrmBjO.js +1 -0
- package/dist/index-C3nrmBjO.js.gz +0 -0
- package/dist/index-C3nrmBjO.js.map +1 -0
- package/dist/index-C5l7JAoo.mjs +1 -0
- package/dist/index-C5l7JAoo.mjs.map +1 -0
- package/dist/index-C6bxbndt.mjs +1 -0
- package/dist/index-C6bxbndt.mjs.gz +0 -0
- package/dist/index-C6bxbndt.mjs.map +1 -0
- package/dist/index-C9xWMZfT.js +1 -0
- package/dist/index-C9xWMZfT.js.gz +0 -0
- package/dist/index-C9xWMZfT.js.map +1 -0
- package/dist/index-CGFlRuoY.js +1 -0
- package/dist/index-CGFlRuoY.js.map +1 -0
- package/dist/index-CI9zzn9o.mjs +1 -0
- package/dist/index-CI9zzn9o.mjs.gz +0 -0
- package/dist/index-CI9zzn9o.mjs.map +1 -0
- package/dist/index-CJlXzWw8.mjs +1 -0
- package/dist/index-CJlXzWw8.mjs.gz +0 -0
- package/dist/index-CJlXzWw8.mjs.map +1 -0
- package/dist/index-CMvZkA7V.mjs +1 -0
- package/dist/index-CMvZkA7V.mjs.gz +0 -0
- package/dist/index-CMvZkA7V.mjs.map +1 -0
- package/dist/index-C_Bq756k.js +1 -0
- package/dist/index-C_Bq756k.js.map +1 -0
- package/dist/index-Ca-xLPx_.js +1 -0
- package/dist/index-Ca-xLPx_.js.map +1 -0
- package/dist/index-Cbe_EGna.mjs +1 -0
- package/dist/index-Cbe_EGna.mjs.gz +0 -0
- package/dist/index-Cbe_EGna.mjs.map +1 -0
- package/dist/index-Cci2M-v7.js +1 -0
- package/dist/index-Cci2M-v7.js.gz +0 -0
- package/dist/index-Cci2M-v7.js.map +1 -0
- package/dist/index-CdWcXSH1.js +1 -0
- package/dist/index-CdWcXSH1.js.map +1 -0
- package/dist/index-Cfi58s_a.mjs +1 -0
- package/dist/index-Cfi58s_a.mjs.map +1 -0
- package/dist/index-CjN-P9xK.js +1 -0
- package/dist/index-CjN-P9xK.js.gz +0 -0
- package/dist/index-CjN-P9xK.js.map +1 -0
- package/dist/index-CkwQJZld.mjs +1 -0
- package/dist/index-CkwQJZld.mjs.map +1 -0
- package/dist/index-ClinQMhm.mjs +1 -0
- package/dist/index-ClinQMhm.mjs.map +1 -0
- package/dist/index-CnLbBexb.js +1 -0
- package/dist/index-CnLbBexb.js.gz +0 -0
- package/dist/index-CnLbBexb.js.map +1 -0
- package/dist/index-Cr3PetI-.mjs +1 -0
- package/dist/index-Cr3PetI-.mjs.gz +0 -0
- package/dist/index-Cr3PetI-.mjs.map +1 -0
- package/dist/index-CtkHqNc-.mjs +1 -0
- package/dist/index-CtkHqNc-.mjs.gz +0 -0
- package/dist/index-CtkHqNc-.mjs.map +1 -0
- package/dist/index-D3ifoSvO.mjs +1 -0
- package/dist/index-D3ifoSvO.mjs.gz +0 -0
- package/dist/index-D3ifoSvO.mjs.map +1 -0
- package/dist/index-D4tKriJ6.mjs +1 -0
- package/dist/index-D4tKriJ6.mjs.map +1 -0
- package/dist/index-D8HOsx13.js +1 -0
- package/dist/index-D8HOsx13.js.map +1 -0
- package/dist/index-D9F52pHu.mjs +1 -0
- package/dist/index-D9F52pHu.mjs.gz +0 -0
- package/dist/index-D9F52pHu.mjs.map +1 -0
- package/dist/index-DDkkJRXr.js +1 -0
- package/dist/index-DDkkJRXr.js.gz +0 -0
- package/dist/index-DDkkJRXr.js.map +1 -0
- package/dist/index-DE7y0nJb.js +1 -0
- package/dist/index-DE7y0nJb.js.map +1 -0
- package/dist/index-DFArDqvd.js +1 -0
- package/dist/index-DFArDqvd.js.gz +0 -0
- package/dist/index-DFArDqvd.js.map +1 -0
- package/dist/index-DI3kpTbZ.js +1 -0
- package/dist/index-DI3kpTbZ.js.map +1 -0
- package/dist/index-DRftKk-f.js +1 -0
- package/dist/index-DRftKk-f.js.gz +0 -0
- package/dist/index-DRftKk-f.js.map +1 -0
- package/dist/index-DRmQ-L_1.js +1 -0
- package/dist/index-DRmQ-L_1.js.map +1 -0
- package/dist/index-DTunHIPd.js +1 -0
- package/dist/index-DTunHIPd.js.gz +0 -0
- package/dist/index-DTunHIPd.js.map +1 -0
- package/dist/index-Dc9d_H4k.js +1 -0
- package/dist/index-Dc9d_H4k.js.map +1 -0
- package/dist/index-DdDdKbUS.js +1 -0
- package/dist/index-DdDdKbUS.js.gz +0 -0
- package/dist/index-DdDdKbUS.js.map +1 -0
- package/dist/index-Ddh7F0O0.mjs +1 -0
- package/dist/index-Ddh7F0O0.mjs.gz +0 -0
- package/dist/index-Ddh7F0O0.mjs.map +1 -0
- package/dist/index-DkHuEE7h.mjs +1 -0
- package/dist/index-DkHuEE7h.mjs.gz +0 -0
- package/dist/index-DkHuEE7h.mjs.map +1 -0
- package/dist/index-Dx15Z58I.mjs +1 -0
- package/dist/index-Dx15Z58I.mjs.gz +0 -0
- package/dist/index-Dx15Z58I.mjs.map +1 -0
- package/dist/index-J_2HDjM_.mjs +1 -0
- package/dist/index-J_2HDjM_.mjs.gz +0 -0
- package/dist/index-J_2HDjM_.mjs.map +1 -0
- package/dist/index-MKaNyXUf.mjs +1 -0
- package/dist/index-MKaNyXUf.mjs.gz +0 -0
- package/dist/index-MKaNyXUf.mjs.map +1 -0
- package/dist/index-Ma5CaYaJ.mjs +1 -0
- package/dist/index-Ma5CaYaJ.mjs.gz +0 -0
- package/dist/index-Ma5CaYaJ.mjs.map +1 -0
- package/dist/index-U4p45J__.js +1 -0
- package/dist/index-U4p45J__.js.gz +0 -0
- package/dist/index-U4p45J__.js.map +1 -0
- package/dist/index-VAmsjOkF.js +1 -0
- package/dist/index-VAmsjOkF.js.map +1 -0
- package/dist/index-axWnmdZg.mjs +1 -0
- package/dist/index-axWnmdZg.mjs.gz +0 -0
- package/dist/index-axWnmdZg.mjs.map +1 -0
- package/dist/index-bRFfi62s.mjs +1 -0
- package/dist/index-bRFfi62s.mjs.gz +0 -0
- package/dist/index-bRFfi62s.mjs.map +1 -0
- package/dist/index-bwrWhoSW.js +1 -0
- package/dist/index-bwrWhoSW.js.map +1 -0
- package/dist/index-dVKTvnms.mjs +1 -0
- package/dist/index-dVKTvnms.mjs.gz +0 -0
- package/dist/index-dVKTvnms.mjs.map +1 -0
- package/dist/index-gcyAUDW6.mjs +1 -0
- package/dist/index-gcyAUDW6.mjs.map +1 -0
- package/dist/index-kuyYmMvk.js +1 -0
- package/dist/index-kuyYmMvk.js.gz +0 -0
- package/dist/index-kuyYmMvk.js.map +1 -0
- package/dist/index-lF7YzYiW.js +1 -0
- package/dist/index-lF7YzYiW.js.gz +0 -0
- package/dist/index-lF7YzYiW.js.map +1 -0
- package/dist/{hsadminui.cjs.js → index.js} +1 -0
- package/dist/index.js.map +1 -0
- package/dist/{hsadminui.es.js → index.mjs} +1 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang--5y1a_ul.js +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang--5y1a_ul.js.gz +0 -0
- package/dist/index.vue_vue_type_script_setup_true_lang--5y1a_ul.js.map +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-12lO_K3Y.js +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-12lO_K3Y.js.gz +0 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-12lO_K3Y.js.map +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-9-wVHX_J.mjs +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-9-wVHX_J.mjs.gz +0 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-9-wVHX_J.mjs.map +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-BauM3Znx.mjs +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-BauM3Znx.mjs.gz +0 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-BauM3Znx.mjs.map +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-BsZvlPof.js +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-BsZvlPof.js.gz +0 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-BsZvlPof.js.map +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-CQZeaLjV.js +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-CQZeaLjV.js.gz +0 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-CQZeaLjV.js.map +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-Dcl-lBUE.mjs +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-Dcl-lBUE.mjs.gz +0 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-Dcl-lBUE.mjs.map +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-Pu4orxEq.mjs +1 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-Pu4orxEq.mjs.gz +0 -0
- package/dist/index.vue_vue_type_script_setup_true_lang-Pu4orxEq.mjs.map +1 -0
- package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-CAPC81ra.mjs +1 -0
- package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-CAPC81ra.mjs.gz +0 -0
- package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-CAPC81ra.mjs.map +1 -0
- package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-DsMQjCAy.js +1 -0
- package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-DsMQjCAy.js.gz +0 -0
- package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-DsMQjCAy.js.map +1 -0
- package/dist/link-8F3PAF-a.js +1 -0
- package/dist/link-8F3PAF-a.js.gz +0 -0
- package/dist/link-8F3PAF-a.js.map +1 -0
- package/dist/link-Yc7Kpo76.mjs +1 -0
- package/dist/link-Yc7Kpo76.mjs.gz +0 -0
- package/dist/link-Yc7Kpo76.mjs.map +1 -0
- package/dist/list-D9ae7seo.mjs +1 -0
- package/dist/list-D9ae7seo.mjs.gz +0 -0
- package/dist/list-D9ae7seo.mjs.map +1 -0
- package/dist/list-Dow9Rjfk.js +1 -0
- package/dist/list-Dow9Rjfk.js.gz +0 -0
- package/dist/list-Dow9Rjfk.js.map +1 -0
- package/dist/logo-mini-B38ustl2.js +1 -0
- package/dist/logo-mini-B38ustl2.js.gz +0 -0
- package/dist/logo-mini-B38ustl2.js.map +1 -0
- package/dist/logo-mini-Bl032aC-.mjs +1 -0
- package/dist/logo-mini-Bl032aC-.mjs.gz +0 -0
- package/dist/logo-mini-Bl032aC-.mjs.map +1 -0
- package/dist/main-CPdfe1pW.mjs +1 -0
- package/dist/main-CPdfe1pW.mjs.gz +0 -0
- package/dist/main-CPdfe1pW.mjs.map +1 -0
- package/dist/main-i2ZjgX5U.js +1 -0
- package/dist/main-i2ZjgX5U.js.gz +0 -0
- package/dist/main-i2ZjgX5U.js.map +1 -0
- package/dist/mobile-CqmHQbJ6.js +1 -0
- package/dist/mobile-CqmHQbJ6.js.gz +0 -0
- package/dist/mobile-CqmHQbJ6.js.map +1 -0
- package/dist/mobile-DSG1E0yR.mjs +1 -0
- package/dist/mobile-DSG1E0yR.mjs.gz +0 -0
- package/dist/mobile-DSG1E0yR.mjs.map +1 -0
- package/dist/parent-BbMA3BPH.js +1 -0
- package/dist/parent-BbMA3BPH.js.gz +0 -0
- package/dist/parent-BbMA3BPH.js.map +1 -0
- package/dist/parent-DA1oPHtc.mjs +1 -0
- package/dist/parent-DA1oPHtc.mjs.gz +0 -0
- package/dist/parent-DA1oPHtc.mjs.map +1 -0
- package/dist/roleItem-CWeXcpPS.mjs +1 -0
- package/dist/roleItem-CWeXcpPS.mjs.gz +0 -0
- package/dist/roleItem-CWeXcpPS.mjs.map +1 -0
- package/dist/roleItem-DjJV5a4d.js +1 -0
- package/dist/roleItem-DjJV5a4d.js.gz +0 -0
- package/dist/roleItem-DjJV5a4d.js.map +1 -0
- package/dist/saveForm-BwOCcI7T.mjs +1 -0
- package/dist/saveForm-BwOCcI7T.mjs.map +1 -0
- package/dist/saveForm-DXV66xTl.js +1 -0
- package/dist/saveForm-DXV66xTl.js.map +1 -0
- package/dist/saveForm.vue_vue_type_script_setup_true_lang-BLp4BfjS.js +1 -0
- package/dist/saveForm.vue_vue_type_script_setup_true_lang-BLp4BfjS.js.gz +0 -0
- package/dist/saveForm.vue_vue_type_script_setup_true_lang-BLp4BfjS.js.map +1 -0
- package/dist/saveForm.vue_vue_type_script_setup_true_lang-CeijUxMQ.mjs +1 -0
- package/dist/saveForm.vue_vue_type_script_setup_true_lang-CeijUxMQ.mjs.gz +0 -0
- package/dist/saveForm.vue_vue_type_script_setup_true_lang-CeijUxMQ.mjs.map +1 -0
- package/dist/scan-1M3t7I5S.js +1 -0
- package/dist/scan-1M3t7I5S.js.gz +0 -0
- package/dist/scan-1M3t7I5S.js.map +1 -0
- package/dist/scan-2n2P5UFK.mjs +1 -0
- package/dist/scan-2n2P5UFK.mjs.gz +0 -0
- package/dist/scan-2n2P5UFK.mjs.map +1 -0
- package/dist/search-C9A88JD-.js +1 -0
- package/dist/search-C9A88JD-.js.gz +0 -0
- package/dist/search-C9A88JD-.js.map +1 -0
- package/dist/search-CJtqW1Em.mjs +1 -0
- package/dist/search-CJtqW1Em.mjs.gz +0 -0
- package/dist/search-CJtqW1Em.mjs.map +1 -0
- package/dist/selectConfig-CfldoXSW.mjs +1 -0
- package/dist/selectConfig-CfldoXSW.mjs.gz +0 -0
- package/dist/selectConfig-CfldoXSW.mjs.map +1 -0
- package/dist/selectConfig-D-DU5vyZ.js +1 -0
- package/dist/selectConfig-D-DU5vyZ.js.gz +0 -0
- package/dist/selectConfig-D-DU5vyZ.js.map +1 -0
- package/dist/subItem-Bx6nrs-W.js +1 -0
- package/dist/subItem-Bx6nrs-W.js.gz +0 -0
- package/dist/subItem-Bx6nrs-W.js.map +1 -0
- package/dist/subItem-DG6wOFtK.mjs +1 -0
- package/dist/subItem-DG6wOFtK.mjs.gz +0 -0
- package/dist/subItem-DG6wOFtK.mjs.map +1 -0
- package/dist/tagsView-BsiagX1g.js +1 -0
- package/dist/tagsView-BsiagX1g.js.gz +0 -0
- package/dist/tagsView-BsiagX1g.js.map +1 -0
- package/dist/tagsView-CNZAZNvP.mjs +1 -0
- package/dist/tagsView-CNZAZNvP.mjs.gz +0 -0
- package/dist/tagsView-CNZAZNvP.mjs.map +1 -0
- package/dist/transverse-Bw3MzV2Q.mjs +1 -0
- package/dist/transverse-Bw3MzV2Q.mjs.gz +0 -0
- package/dist/transverse-Bw3MzV2Q.mjs.map +1 -0
- package/dist/transverse-D8T9I9T0.js +1 -0
- package/dist/transverse-D8T9I9T0.js.gz +0 -0
- package/dist/transverse-D8T9I9T0.js.map +1 -0
- package/dist/trtcUI-C7LpCHW2.js +1 -0
- package/dist/trtcUI-C7LpCHW2.js.gz +0 -0
- package/dist/trtcUI-C7LpCHW2.js.map +1 -0
- package/dist/trtcUI-Y35u5lbf.mjs +1 -0
- package/dist/trtcUI-Y35u5lbf.mjs.gz +0 -0
- package/dist/trtcUI-Y35u5lbf.mjs.map +1 -0
- package/dist/uploadAvatar-BGiT0PmT.mjs +1 -0
- package/dist/uploadAvatar-BGiT0PmT.mjs.gz +0 -0
- package/dist/uploadAvatar-BGiT0PmT.mjs.map +1 -0
- package/dist/uploadAvatar-UlB9U3pn.js +1 -0
- package/dist/uploadAvatar-UlB9U3pn.js.gz +0 -0
- package/dist/uploadAvatar-UlB9U3pn.js.map +1 -0
- package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-1q5Jq5S0.js +1 -0
- package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-1q5Jq5S0.js.gz +0 -0
- package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-1q5Jq5S0.js.map +1 -0
- package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-Dmzfac6b.mjs +1 -0
- package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-Dmzfac6b.mjs.gz +0 -0
- package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-Dmzfac6b.mjs.map +1 -0
- package/dist/user-Cc2PF_h0.mjs +1 -0
- package/dist/user-Cc2PF_h0.mjs.gz +0 -0
- package/dist/user-Cc2PF_h0.mjs.map +1 -0
- package/dist/user-CqzkZzOA.js +1 -0
- package/dist/user-CqzkZzOA.js.gz +0 -0
- package/dist/user-CqzkZzOA.js.map +1 -0
- package/dist/userNews-CDk_AMjc.mjs +1 -0
- package/dist/userNews-CDk_AMjc.mjs.gz +0 -0
- package/dist/userNews-CDk_AMjc.mjs.map +1 -0
- package/dist/userNews-DxfIY3B0.js +1 -0
- package/dist/userNews-DxfIY3B0.js.gz +0 -0
- package/dist/userNews-DxfIY3B0.js.map +1 -0
- package/dist/userSelect-C4uV-44Y.js +1 -0
- package/dist/userSelect-C4uV-44Y.js.map +1 -0
- package/dist/userSelect-DWo8Si5v.mjs +1 -0
- package/dist/userSelect-DWo8Si5v.mjs.map +1 -0
- package/dist/userSelect.vue_vue_type_script_setup_true_lang-DH1DQONF.mjs +1 -0
- package/dist/userSelect.vue_vue_type_script_setup_true_lang-DH1DQONF.mjs.gz +0 -0
- package/dist/userSelect.vue_vue_type_script_setup_true_lang-DH1DQONF.mjs.map +1 -0
- package/dist/userSelect.vue_vue_type_script_setup_true_lang-DrzKVQFK.js +1 -0
- package/dist/userSelect.vue_vue_type_script_setup_true_lang-DrzKVQFK.js.gz +0 -0
- package/dist/userSelect.vue_vue_type_script_setup_true_lang-DrzKVQFK.js.map +1 -0
- package/dist/vertical-BmaGLl-7.mjs +1 -0
- package/dist/vertical-BmaGLl-7.mjs.gz +0 -0
- package/dist/vertical-BmaGLl-7.mjs.map +1 -0
- package/dist/vertical-DddbvLcE.js +1 -0
- package/dist/vertical-DddbvLcE.js.gz +0 -0
- package/dist/vertical-DddbvLcE.js.map +1 -0
- package/package.json +9 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadAvatar-UlB9U3pn.js","sources":["../node_modules/.pnpm/vue-cropper@0.6.4/node_modules/vue-cropper/src/vue-cropper.vue","../src/views/test/test/uploadAvatar.vue"],"sourcesContent":["<template>\n <div class=\"vue-cropper\" ref=\"cropper\" @mouseover=\"scaleImg\" @mouseout=\"cancelScale\">\n <div class=\"cropper-box\" v-if=\"imgs\">\n <div\n class=\"cropper-box-canvas\"\n v-show=\"!loading\"\n :style=\"{\n\t\t\t\t\t'width': trueWidth + 'px',\n\t\t\t\t\t'height': trueHeight + 'px',\n\t\t\t\t\t'transform': 'scale(' + scale + ',' + scale + ') ' + 'translate3d('+ x / scale + 'px,' + y / scale + 'px,' + '0)'\n\t\t\t\t\t+ 'rotateZ('+ rotate * 90 +'deg)'\n\t\t\t\t\t}\"\n >\n <img :src=\"imgs\" alt=\"cropper-img\" ref=\"cropperImg\">\n </div>\n </div>\n <div\n class=\"cropper-drag-box\"\n :class=\"{'cropper-move': move && !crop, 'cropper-crop': crop, 'cropper-modal': cropping}\"\n @mousedown=\"startMove\"\n @touchstart=\"startMove\"\n ></div>\n <div\n v-show=\"cropping\"\n class=\"cropper-crop-box\"\n :style=\"{\n\t\t\t\t\t'width': cropW + 'px',\n\t\t\t\t\t'height': cropH + 'px',\n\t\t\t\t\t'transform': 'translate3d('+ cropOffsertX + 'px,' + cropOffsertY + 'px,' + '0)'\n\t\t\t\t}\"\n >\n <span class=\"cropper-view-box\">\n <img\n :style=\"{\n\t\t\t\t\t\t'width': trueWidth + 'px',\n\t\t\t\t\t\t'height': trueHeight + 'px',\n\t\t\t\t\t\t'transform': 'scale(' + scale + ',' + scale + ') ' + 'translate3d('+ (x - cropOffsertX) / scale + 'px,' + (y - cropOffsertY) / scale + 'px,' + '0)'\n\t\t\t\t\t\t+ 'rotateZ('+ rotate * 90 +'deg)'\n\t\t\t\t\t\t}\"\n :src=\"imgs\"\n alt=\"cropper-img\"\n >\n </span>\n <span class=\"cropper-face cropper-move\" @mousedown=\"cropMove\" @touchstart=\"cropMove\"></span>\n <span\n class=\"crop-info\"\n v-if=\"info\"\n :style=\"{'top': cropInfo.top}\"\n >{{ cropInfo.width }} × {{ cropInfo.height }}</span>\n <span v-if=\"!fixedBox\">\n <span\n class=\"crop-line line-w\"\n @mousedown=\"changeCropSize($event, false, true, 0, 1)\"\n @touchstart=\"changeCropSize($event, false, true, 0, 1)\"\n ></span>\n <span\n class=\"crop-line line-a\"\n @mousedown=\"changeCropSize($event, true, false, 1, 0)\"\n @touchstart=\"changeCropSize($event, true, false, 1, 0)\"\n ></span>\n <span\n class=\"crop-line line-s\"\n @mousedown=\"changeCropSize($event, false, true, 0, 2)\"\n @touchstart=\"changeCropSize($event, false, true, 0, 2)\"\n ></span>\n <span\n class=\"crop-line line-d\"\n @mousedown=\"changeCropSize($event, true, false, 2, 0)\"\n @touchstart=\"changeCropSize($event, true, false, 2, 0)\"\n ></span>\n <span\n class=\"crop-point point1\"\n @mousedown=\"changeCropSize($event, true, true, 1, 1)\"\n @touchstart=\"changeCropSize($event, true, true, 1, 1)\"\n ></span>\n <span\n class=\"crop-point point2\"\n @mousedown=\"changeCropSize($event, false, true, 0, 1)\"\n @touchstart=\"changeCropSize($event, false, true, 0, 1)\"\n ></span>\n <span\n class=\"crop-point point3\"\n @mousedown=\"changeCropSize($event, true, true, 2, 1)\"\n @touchstart=\"changeCropSize($event, true, true, 2, 1)\"\n ></span>\n <span\n class=\"crop-point point4\"\n @mousedown=\"changeCropSize($event, true, false, 1, 0)\"\n @touchstart=\"changeCropSize($event, true, false, 1, 0)\"\n ></span>\n <span\n class=\"crop-point point5\"\n @mousedown=\"changeCropSize($event, true, false, 2, 0)\"\n @touchstart=\"changeCropSize($event, true, false, 2, 0)\"\n ></span>\n <span\n class=\"crop-point point6\"\n @mousedown=\"changeCropSize($event, true, true, 1, 2)\"\n @touchstart=\"changeCropSize($event, true, true, 1, 2)\"\n ></span>\n <span\n class=\"crop-point point7\"\n @mousedown=\"changeCropSize($event, false, true, 0, 2)\"\n @touchstart=\"changeCropSize($event, false, true, 0, 2)\"\n ></span>\n <span\n class=\"crop-point point8\"\n @mousedown=\"changeCropSize($event, true, true, 2, 2)\"\n @touchstart=\"changeCropSize($event, true, true, 2, 2)\"\n ></span>\n </span>\n </div>\n </div>\n</template>\n\n<script>\nimport exifmin from \"./exif-js-min\";\n\nexport default {\n data: function() {\n return {\n // 容器高宽\n w: 0,\n h: 0,\n // 图片缩放比例\n scale: 1,\n // 图片偏移x轴\n x: 0,\n // 图片偏移y轴\n y: 0,\n // 图片加载\n loading: true,\n // 图片真实宽度\n trueWidth: 0,\n // 图片真实高度\n trueHeight: 0,\n move: true,\n // 移动的x\n moveX: 0,\n // 移动的y\n moveY: 0,\n // 开启截图\n crop: false,\n // 正在截图\n cropping: false,\n // 裁剪框大小\n cropW: 0,\n cropH: 0,\n cropOldW: 0,\n cropOldH: 0,\n // 判断是否能够改变\n canChangeX: false,\n canChangeY: false,\n // 改变的基准点\n changeCropTypeX: 1,\n changeCropTypeY: 1,\n // 裁剪框的坐标轴\n cropX: 0,\n cropY: 0,\n cropChangeX: 0,\n cropChangeY: 0,\n cropOffsertX: 0,\n cropOffsertY: 0,\n // 支持的滚动事件\n support: \"\",\n // 移动端手指缩放\n touches: [],\n touchNow: false,\n // 图片旋转\n rotate: 0,\n isIos: false,\n orientation: 0,\n imgs: \"\",\n // 图片缩放系数\n coe: 0.2,\n // 是否正在多次缩放\n scaling: false,\n scalingSet: \"\",\n coeStatus: \"\",\n // 控制emit触发频率\n isCanShow: true\n };\n },\n props: {\n img: {\n type: [String, Blob, null, File],\n default: \"\"\n },\n // 输出图片压缩比\n outputSize: {\n type: Number,\n default: 1\n },\n outputType: {\n type: String,\n default: \"jpeg\"\n },\n info: {\n type: Boolean,\n default: true\n },\n // 是否开启滚轮放大缩小\n canScale: {\n type: Boolean,\n default: true\n },\n // 是否自成截图框\n autoCrop: {\n type: Boolean,\n default: false\n },\n autoCropWidth: {\n type: [Number, String],\n default: 0\n },\n autoCropHeight: {\n type: [Number, String],\n default: 0\n },\n // 是否开启固定宽高比\n fixed: {\n type: Boolean,\n default: false\n },\n // 宽高比 w/h\n fixedNumber: {\n type: Array,\n default: () => {\n return [1, 1];\n }\n },\n // 固定大小 禁止改变截图框大小\n fixedBox: {\n type: Boolean,\n default: false\n },\n // 输出截图是否缩放\n full: {\n type: Boolean,\n default: false\n },\n // 是否可以拖动图片\n canMove: {\n type: Boolean,\n default: true\n },\n // 是否可以拖动截图框\n canMoveBox: {\n type: Boolean,\n default: true\n },\n // 上传图片按照原始比例显示\n original: {\n type: Boolean,\n default: false\n },\n // 截图框能否超过图片\n centerBox: {\n type: Boolean,\n default: false\n },\n // 是否根据dpr输出高清图片\n high: {\n type: Boolean,\n default: true\n },\n // 截图框展示宽高类型\n infoTrue: {\n type: Boolean,\n default: false\n },\n // 可以压缩图片宽高 默认不超过200\n maxImgSize: {\n type: [Number, String],\n default: 2000\n },\n // 倍数 可渲染当前截图框的n倍 0 - 1000;\n enlarge: {\n type: [Number, String],\n default: 1\n },\n\n // 自动预览的固定宽度\n preW: {\n type: [Number, String],\n default: 0\n },\n /*\n 图片布局方式 mode 实现和css背景一样的效果\n contain 居中布局 默认不会缩放 保证图片在容器里面 mode: 'contain'\n cover 拉伸布局 填充整个容器 mode: 'cover'\n 如果仅有一个数值被给定,这个数值将作为宽度值大小,高度值将被设定为auto。 mode: '50px'\n 如果有两个数值被给定,第一个将作为宽度值大小,第二个作为高度值大小。 mode: '50px 60px'\n */\n mode: {\n type: String,\n default: \"contain\"\n },\n //限制最小区域,可传1以上的数字和字符串,限制长宽都是这么大\n // 也可以传数组[90,90] \n limitMinSize: {\n type: [Number, Array, String],\n default: () => {\n return 10;\n },\n validator: function (value) {\n if (Array.isArray(value)) {\n return Number(value[0]) >= 0 && Number(value[1]) >= 0;\n } else {\n return Number(value) >= 0;\n }\n },\n },\n // 导出时,填充背景颜色\n fillColor: {\n type: String,\n default: \"\",\n },\n },\n computed: {\n cropInfo() {\n let obj = {};\n obj.top = this.cropOffsertY > 21 ? \"-21px\" : \"0px\";\n obj.width = this.cropW > 0 ? this.cropW : 0;\n obj.height = this.cropH > 0 ? this.cropH : 0;\n if (this.infoTrue) {\n let dpr = 1;\n if (this.high && !this.full) {\n dpr = window.devicePixelRatio;\n }\n if ((this.enlarge !== 1) & !this.full) {\n dpr = Math.abs(Number(this.enlarge));\n }\n obj.width = obj.width * dpr;\n obj.height = obj.height * dpr;\n if (this.full) {\n obj.width = obj.width / this.scale;\n obj.height = obj.height / this.scale;\n }\n }\n obj.width = obj.width.toFixed(0);\n obj.height = obj.height.toFixed(0);\n return obj;\n },\n\n isIE() {\n var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串\n const isIE = !!window.ActiveXObject || 'ActiveXObject' in window; //判断是否IE浏览器\n return isIE;\n },\n\n passive () {\n return this.isIE ? null : {\n passive: false\n }\n }\n },\n watch: {\n // 如果图片改变, 重新布局\n img() {\n // 当传入图片时, 读取图片信息同时展示\n this.checkedImg();\n },\n imgs(val) {\n if (val === \"\") {\n return;\n }\n this.reload();\n },\n cropW() {\n this.showPreview();\n },\n cropH() {\n this.showPreview();\n },\n cropOffsertX() {\n this.showPreview();\n },\n cropOffsertY() {\n this.showPreview();\n },\n scale(val, oldVal) {\n this.showPreview();\n },\n x() {\n this.showPreview();\n },\n y() {\n this.showPreview();\n },\n autoCrop(val) {\n if (val) {\n this.goAutoCrop();\n }\n },\n // 修改了自动截图框\n autoCropWidth() {\n if (this.autoCrop) {\n this.goAutoCrop();\n }\n },\n autoCropHeight() {\n if (this.autoCrop) {\n this.goAutoCrop();\n }\n },\n mode() {\n this.checkedImg();\n },\n rotate() {\n this.showPreview();\n if (this.autoCrop) {\n this.goAutoCrop(this.cropW, this.cropH);\n } else {\n if (this.cropW > 0 || this.cropH > 0) {\n this.goAutoCrop(this.cropW, this.cropH);\n }\n }\n }\n },\n methods: {\n getVersion (name) {\n var arr = navigator.userAgent.split(' '); \n var chromeVersion = '';\n let result = 0;\n const reg = new RegExp(name, 'i')\n for(var i=0;i < arr.length;i++){\n if(reg.test(arr[i]))\n chromeVersion = arr[i]\n }\n if(chromeVersion){\n result = chromeVersion.split('/')[1].split('.');\n } else {\n result = ['0', '0', '0'];\n }\n return result\n },\n checkOrientationImage(img, orientation, width, height) {\n // 如果是 chrome内核版本在81 safari 在 605 以上不处理图片旋转\n // alert(navigator.userAgent)\n if (this.getVersion('chrome')[0] >= 81) {\n orientation = -1\n } else {\n if (this.getVersion('safari')[0] >= 605 ) {\n const safariVersion = this.getVersion('version')\n if (safariVersion[0] > 13 && safariVersion[1] > 1) {\n orientation = -1\n }\n } else {\n // 判断 ios 版本进行处理\n // 针对 ios 版本大于 13.4的系统不做图片旋转\n const isIos = navigator.userAgent.toLowerCase().match(/cpu iphone os (.*?) like mac os/)\n if (isIos) {\n let version = isIos[1]\n version = version.split('_')\n if (version[0] > 13 || (version[0] >= 13 && version[1] >= 4)) {\n orientation = -1\n }\n }\n }\n }\n \n // alert(`当前处理的orientation${orientation}`)\n let canvas = document.createElement(\"canvas\");\n let ctx = canvas.getContext(\"2d\");\n ctx.save();\n \n switch (orientation) {\n case 2:\n canvas.width = width;\n canvas.height = height;\n // horizontal flip\n ctx.translate(width, 0);\n ctx.scale(-1, 1);\n break;\n case 3:\n canvas.width = width;\n canvas.height = height;\n //180 graus\n ctx.translate(width / 2, height / 2);\n ctx.rotate((180 * Math.PI) / 180);\n ctx.translate(-width / 2, -height / 2);\n break;\n case 4:\n canvas.width = width;\n canvas.height = height;\n // vertical flip\n ctx.translate(0, height);\n ctx.scale(1, -1);\n break;\n case 5:\n // vertical flip + 90 rotate right\n canvas.height = width;\n canvas.width = height;\n ctx.rotate(0.5 * Math.PI);\n ctx.scale(1, -1);\n break;\n case 6:\n canvas.width = height;\n canvas.height = width;\n //90 graus\n ctx.translate(height / 2, width / 2);\n ctx.rotate((90 * Math.PI) / 180);\n ctx.translate(-width / 2, -height / 2);\n break;\n case 7:\n // horizontal flip + 90 rotate right\n canvas.height = width;\n canvas.width = height;\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(width, -height);\n ctx.scale(-1, 1);\n break;\n case 8:\n canvas.height = width;\n canvas.width = height;\n //-90 graus\n ctx.translate(height / 2, width / 2);\n ctx.rotate((-90 * Math.PI) / 180);\n ctx.translate(-width / 2, -height / 2);\n break;\n default:\n canvas.width = width;\n canvas.height = height;\n }\n\n ctx.drawImage(img, 0, 0, width, height);\n ctx.restore();\n canvas.toBlob(\n blob => {\n let data = URL.createObjectURL(blob);\n URL.revokeObjectURL(this.imgs)\n this.imgs = data;\n },\n \"image/\" + this.outputType,\n 1\n );\n },\n\n // checkout img\n checkedImg() {\n if (this.img === null || this.img === '') {\n this.imgs = ''\n this.clearCrop()\n return\n }\n this.loading = true;\n this.scale = 1;\n this.rotate = 0;\n this.clearCrop();\n let img = new Image();\n img.onload = () => {\n if (this.img === \"\") {\n this.$emit(\"imgLoad\", \"error\");\n this.$emit(\"img-load\", \"error\");\n this.$emit(\"img-load\", new Error('图片不能为空'));\n return false;\n }\n\n let width = img.width;\n let height = img.height;\n exifmin.getData(img).then(data => {\n this.orientation = data.orientation || 1;\n let max = Number(this.maxImgSize);\n if (!this.orientation && (width < max) & (height < max)) {\n this.imgs = this.img;\n return;\n }\n\n if (width > max) {\n height = (height / width) * max;\n width = max;\n }\n\n if (height > max) {\n width = (width / height) * max;\n height = max;\n }\n this.checkOrientationImage(img, this.orientation, width, height);\n }).catch(error => {\n this.$emit(\"img-load\", \"error\");\n this.$emit(\"img-load-error\", error);\n });\n };\n\n img.onerror = () => {\n this.$emit(\"imgLoad\", \"error\");\n this.$emit(\"img-load\", \"error\");\n this.$emit(\"img-load-error\", error);\n };\n\n // 判断如果不是base64图片 再添加crossOrigin属性,否则会导致iOS低版本(10.2)无法显示图片\n if (this.img.substr(0, 4) !== \"data\") {\n img.crossOrigin = \"\";\n }\n\n if (this.isIE) {\n var xhr = new XMLHttpRequest();\n xhr.onload = function() {\n var url = URL.createObjectURL(this.response);\n img.src = url;\n };\n xhr.open(\"GET\", this.img, true);\n xhr.responseType = \"blob\";\n xhr.send();\n } else {\n img.src = this.img;\n }\n },\n // 当按下鼠标键\n startMove(e) {\n e.preventDefault();\n // 如果move 为true 表示当前可以拖动\n if (this.move && !this.crop) {\n if (!this.canMove) {\n return false;\n }\n // 开始移动\n this.moveX = ('clientX' in e ? e.clientX : e.touches[0].clientX) - this.x;\n this.moveY = ('clientY' in e ? e.clientY : e.touches[0].clientY) - this.y;\n if (e.touches) {\n window.addEventListener(\"touchmove\", this.moveImg);\n window.addEventListener(\"touchend\", this.leaveImg);\n if (e.touches.length == 2) {\n // 记录手指刚刚放上去\n this.touches = e.touches;\n window.addEventListener(\"touchmove\", this.touchScale);\n window.addEventListener(\"touchend\", this.cancelTouchScale);\n }\n } else {\n window.addEventListener(\"mousemove\", this.moveImg);\n window.addEventListener(\"mouseup\", this.leaveImg);\n }\n // 触发图片移动事件\n this.$emit(\"imgMoving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n this.$emit(\"img-moving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n } else {\n // 截图ing\n this.cropping = true;\n // 绑定截图事件\n window.addEventListener(\"mousemove\", this.createCrop);\n window.addEventListener(\"mouseup\", this.endCrop);\n window.addEventListener(\"touchmove\", this.createCrop);\n window.addEventListener(\"touchend\", this.endCrop);\n this.cropOffsertX = e.offsetX\n ? e.offsetX\n : e.touches[0].pageX - this.$refs.cropper.offsetLeft;\n this.cropOffsertY = e.offsetY\n ? e.offsetY\n : e.touches[0].pageY - this.$refs.cropper.offsetTop;\n this.cropX = 'clientX' in e ? e.clientX : e.touches[0].clientX;\n this.cropY = 'clientY' in e ? e.clientY : e.touches[0].clientY;\n this.cropChangeX = this.cropOffsertX;\n this.cropChangeY = this.cropOffsertY;\n this.cropW = 0;\n this.cropH = 0;\n }\n },\n\n // 移动端缩放\n touchScale(e) {\n e.preventDefault();\n let scale = this.scale;\n // 记录变化量\n // 第一根手指\n var oldTouch1 = {\n x: this.touches[0].clientX,\n y: this.touches[0].clientY\n };\n var newTouch1 = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY\n };\n // 第二根手指\n var oldTouch2 = {\n x: this.touches[1].clientX,\n y: this.touches[1].clientY\n };\n var newTouch2 = {\n x: e.touches[1].clientX,\n y: e.touches[1].clientY\n };\n var oldL = Math.sqrt(\n Math.pow(oldTouch1.x - oldTouch2.x, 2) +\n Math.pow(oldTouch1.y - oldTouch2.y, 2)\n );\n var newL = Math.sqrt(\n Math.pow(newTouch1.x - newTouch2.x, 2) +\n Math.pow(newTouch1.y - newTouch2.y, 2)\n );\n var cha = newL - oldL;\n // 根据图片本身大小 决定每次改变大小的系数, 图片越大系数越小\n // 1px - 0.2\n var coe = 1;\n coe =\n coe / this.trueWidth > coe / this.trueHeight\n ? coe / this.trueHeight\n : coe / this.trueWidth;\n coe = coe > 0.1 ? 0.1 : coe;\n var num = coe * cha;\n if (!this.touchNow) {\n this.touchNow = true;\n if (cha > 0) {\n scale += Math.abs(num);\n } else if (cha < 0) {\n scale > Math.abs(num) ? (scale -= Math.abs(num)) : scale;\n }\n this.touches = e.touches;\n setTimeout(() => {\n this.touchNow = false;\n }, 8);\n if (!this.checkoutImgAxis(this.x, this.y, scale)) {\n return false;\n }\n this.scale = scale;\n }\n },\n\n cancelTouchScale(e) {\n window.removeEventListener(\"touchmove\", this.touchScale);\n },\n\n // 移动图片\n moveImg(e) {\n e.preventDefault();\n if (e.touches && e.touches.length === 2) {\n this.touches = e.touches;\n window.addEventListener(\"touchmove\", this.touchScale);\n window.addEventListener(\"touchend\", this.cancelTouchScale);\n window.removeEventListener(\"touchmove\", this.moveImg);\n return false;\n }\n let nowX = 'clientX' in e ? e.clientX : e.touches[0].clientX;\n let nowY = 'clientY' in e ? e.clientY : e.touches[0].clientY;\n\n let changeX, changeY;\n changeX = nowX - this.moveX;\n changeY = nowY - this.moveY;\n\n this.$nextTick(() => {\n if (this.centerBox) {\n let axis = this.getImgAxis(changeX, changeY, this.scale);\n let cropAxis = this.getCropAxis();\n let imgW = this.trueHeight * this.scale;\n let imgH = this.trueWidth * this.scale;\n let maxLeft, maxTop, maxRight, maxBottom;\n switch (this.rotate) {\n case 1:\n case -1:\n case 3:\n case -3:\n maxLeft =\n this.cropOffsertX -\n (this.trueWidth * (1 - this.scale)) / 2 +\n (imgW - imgH) / 2;\n maxTop =\n this.cropOffsertY -\n (this.trueHeight * (1 - this.scale)) / 2 +\n (imgH - imgW) / 2;\n maxRight = maxLeft - imgW + this.cropW;\n maxBottom = maxTop - imgH + this.cropH;\n break;\n default:\n maxLeft =\n this.cropOffsertX - (this.trueWidth * (1 - this.scale)) / 2;\n maxTop =\n this.cropOffsertY - (this.trueHeight * (1 - this.scale)) / 2;\n maxRight = maxLeft - imgH + this.cropW;\n maxBottom = maxTop - imgW + this.cropH;\n break;\n }\n\n // 图片左边 图片不能超过截图框\n if (axis.x1 >= cropAxis.x1) {\n changeX = maxLeft;\n }\n\n // 图片上边 图片不能超过截图框\n if (axis.y1 >= cropAxis.y1) {\n changeY = maxTop;\n }\n\n // 图片右边\n if (axis.x2 <= cropAxis.x2) {\n changeX = maxRight;\n }\n\n // 图片下边\n if (axis.y2 <= cropAxis.y2) {\n changeY = maxBottom;\n }\n }\n this.x = changeX;\n this.y = changeY;\n // 触发图片移动事件\n this.$emit(\"imgMoving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n this.$emit(\"img-moving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n });\n },\n // 移动图片结束\n leaveImg(e) {\n window.removeEventListener(\"mousemove\", this.moveImg);\n window.removeEventListener(\"touchmove\", this.moveImg);\n window.removeEventListener(\"mouseup\", this.leaveImg);\n window.removeEventListener(\"touchend\", this.leaveImg);\n // 触发图片移动事件\n this.$emit(\"imgMoving\", {\n moving: false,\n axis: this.getImgAxis()\n });\n this.$emit(\"img-moving\", {\n moving: false,\n axis: this.getImgAxis()\n });\n },\n // 缩放图片\n scaleImg() {\n if (this.canScale) {\n window.addEventListener(this.support, this.changeSize, this.passive);\n }\n },\n // 移出框\n cancelScale() {\n if (this.canScale) {\n window.removeEventListener(this.support, this.changeSize);\n }\n },\n // 改变大小函数\n changeSize(e) {\n e.preventDefault();\n let scale = this.scale;\n var change = e.deltaY || e.wheelDelta;\n // 根据图片本身大小 决定每次改变大小的系数, 图片越大系数越小\n var isFirefox = navigator.userAgent.indexOf(\"Firefox\");\n change = isFirefox > 0 ? change * 30 : change;\n // 修复ie的滚动缩放\n if (this.isIE) {\n change = -change;\n }\n // 1px - 0.2\n var coe = this.coe;\n coe =\n coe / this.trueWidth > coe / this.trueHeight\n ? coe / this.trueHeight\n : coe / this.trueWidth;\n var num = coe * change;\n num < 0\n ? (scale += Math.abs(num))\n : scale > Math.abs(num)\n ? (scale -= Math.abs(num))\n : scale;\n // 延迟0.1s 每次放大大或者缩小的范围\n let status = num < 0 ? \"add\" : \"reduce\";\n if (status !== this.coeStatus) {\n this.coeStatus = status;\n this.coe = 0.2;\n }\n if (!this.scaling) {\n this.scalingSet = setTimeout(() => {\n this.scaling = false;\n this.coe = this.coe += 0.01;\n }, 50);\n }\n this.scaling = true;\n if (!this.checkoutImgAxis(this.x, this.y, scale)) {\n return false;\n }\n this.scale = scale;\n },\n\n // 修改图片大小函数\n changeScale(num) {\n let scale = this.scale;\n num = num || 1;\n var coe = 20;\n coe =\n coe / this.trueWidth > coe / this.trueHeight\n ? coe / this.trueHeight\n : coe / this.trueWidth;\n num = num * coe;\n num > 0\n ? (scale += Math.abs(num))\n : scale > Math.abs(num)\n ? (scale -= Math.abs(num))\n : scale;\n if (!this.checkoutImgAxis(this.x, this.y, scale)) {\n return false;\n }\n this.scale = scale;\n },\n // 创建截图框\n createCrop(e) {\n e.preventDefault();\n // 移动生成大小\n var nowX = 'clientX' in e ? e.clientX : e.touches ? e.touches[0].clientX : 0;\n var nowY = 'clientY' in e ? e.clientY : e.touches ? e.touches[0].clientY : 0;\n this.$nextTick(() => {\n var fw = nowX - this.cropX;\n var fh = nowY - this.cropY;\n if (fw > 0) {\n this.cropW =\n fw + this.cropChangeX > this.w ? this.w - this.cropChangeX : fw;\n this.cropOffsertX = this.cropChangeX;\n } else {\n this.cropW =\n this.w - this.cropChangeX + Math.abs(fw) > this.w\n ? this.cropChangeX\n : Math.abs(fw);\n this.cropOffsertX =\n this.cropChangeX + fw > 0 ? this.cropChangeX + fw : 0;\n }\n\n if (!this.fixed) {\n if (fh > 0) {\n this.cropH =\n fh + this.cropChangeY > this.h ? this.h - this.cropChangeY : fh;\n this.cropOffsertY = this.cropChangeY;\n } else {\n this.cropH =\n this.h - this.cropChangeY + Math.abs(fh) > this.h\n ? this.cropChangeY\n : Math.abs(fh);\n this.cropOffsertY =\n this.cropChangeY + fh > 0 ? this.cropChangeY + fh : 0;\n }\n } else {\n var fixedHeight =\n (this.cropW / this.fixedNumber[0]) * this.fixedNumber[1];\n if (fixedHeight + this.cropOffsertY > this.h) {\n this.cropH = this.h - this.cropOffsertY;\n this.cropW =\n (this.cropH / this.fixedNumber[1]) * this.fixedNumber[0];\n if (fw > 0) {\n this.cropOffsertX = this.cropChangeX;\n } else {\n this.cropOffsertX = this.cropChangeX - this.cropW;\n }\n } else {\n this.cropH = fixedHeight;\n }\n this.cropOffsertY = this.cropOffsertY;\n }\n });\n },\n\n // 改变截图框大小\n changeCropSize(e, w, h, typeW, typeH) {\n e.preventDefault();\n window.addEventListener(\"mousemove\", this.changeCropNow);\n window.addEventListener(\"mouseup\", this.changeCropEnd);\n window.addEventListener(\"touchmove\", this.changeCropNow);\n window.addEventListener(\"touchend\", this.changeCropEnd);\n this.canChangeX = w;\n this.canChangeY = h;\n this.changeCropTypeX = typeW;\n this.changeCropTypeY = typeH;\n this.cropX = 'clientX' in e ? e.clientX : e.touches[0].clientX;\n this.cropY = 'clientY' in e ? e.clientY : e.touches[0].clientY;\n this.cropOldW = this.cropW;\n this.cropOldH = this.cropH;\n this.cropChangeX = this.cropOffsertX;\n this.cropChangeY = this.cropOffsertY;\n if (this.fixed) {\n if (this.canChangeX && this.canChangeY) {\n this.canChangeY = 0;\n }\n }\n this.$emit('changeCropSize', {\n width: this.cropW,\n height: this.cropH\n })\n this.$emit('change-crop-size', {\n width: this.cropW,\n height: this.cropH\n })\n },\n\n // 正在改变\n changeCropNow(e) {\n e.preventDefault();\n var nowX = 'clientX' in e ? e.clientX : e.touches ? e.touches[0].clientX : 0;\n var nowY = 'clientY' in e ? e.clientY : e.touches ? e.touches[0].clientY : 0;\n // 容器的宽高\n let wrapperW = this.w;\n let wrapperH = this.h;\n\n // 不能超过的坐标轴\n let minX = 0;\n let minY = 0;\n\n if (this.centerBox) {\n let axis = this.getImgAxis();\n let imgW = axis.x2;\n let imgH = axis.y2;\n minX = axis.x1 > 0 ? axis.x1 : 0;\n minY = axis.y1 > 0 ? axis.y1 : 0;\n if (wrapperW > imgW) {\n wrapperW = imgW;\n }\n\n if (wrapperH > imgH) {\n wrapperH = imgH;\n }\n }\n const [minCropW,minCropH] = this.checkCropLimitSize()\n this.$nextTick(() => {\n var fw = nowX - this.cropX;\n var fh = nowY - this.cropY;\n if (this.canChangeX) {\n if (this.changeCropTypeX === 1) {\n if (this.cropOldW - fw < minCropW) {\n this.cropW = minCropW\n this.cropOffsertX = this.cropOldW + this.cropChangeX - minX - minCropW\n } else if (this.cropOldW - fw > 0) {\n this.cropW =\n wrapperW - this.cropChangeX - fw <= wrapperW - minX\n ? this.cropOldW - fw\n : this.cropOldW + this.cropChangeX - minX;\n this.cropOffsertX =\n wrapperW - this.cropChangeX - fw <= wrapperW - minX\n ? this.cropChangeX + fw\n : minX;\n } else {\n this.cropW =\n Math.abs(fw) + this.cropChangeX <= wrapperW\n ? Math.abs(fw) - this.cropOldW\n : wrapperW - this.cropOldW - this.cropChangeX;\n this.cropOffsertX = this.cropChangeX + this.cropOldW;\n }\n } else if (this.changeCropTypeX === 2) {\n if (this.cropOldW + fw < minCropW) {\n this.cropW = minCropW\n } else if (this.cropOldW + fw > 0) {\n this.cropW =\n this.cropOldW + fw + this.cropOffsertX <= wrapperW\n ? this.cropOldW + fw\n : wrapperW - this.cropOffsertX;\n this.cropOffsertX = this.cropChangeX;\n } else {\n // 右侧坐标抽 超过左侧\n this.cropW =\n wrapperW - this.cropChangeX + Math.abs(fw + this.cropOldW) <=\n wrapperW - minX\n ? Math.abs(fw + this.cropOldW)\n : this.cropChangeX - minX;\n this.cropOffsertX =\n wrapperW - this.cropChangeX + Math.abs(fw + this.cropOldW) <=\n wrapperW - minX\n ? this.cropChangeX - Math.abs(fw + this.cropOldW)\n : minX;\n }\n }\n }\n\n if (this.canChangeY) {\n if (this.changeCropTypeY === 1) {\n if (this.cropOldH - fh < minCropH) {\n this.cropH = minCropH\n this.cropOffsertY = this.cropOldH + this.cropChangeY - minY - minCropH\n } else if (this.cropOldH - fh > 0) {\n this.cropH =\n wrapperH - this.cropChangeY - fh <= wrapperH - minY\n ? this.cropOldH - fh\n : this.cropOldH + this.cropChangeY - minY;\n this.cropOffsertY =\n wrapperH - this.cropChangeY - fh <= wrapperH - minY\n ? this.cropChangeY + fh\n : minY;\n } else {\n this.cropH =\n Math.abs(fh) + this.cropChangeY <= wrapperH\n ? Math.abs(fh) - this.cropOldH\n : wrapperH - this.cropOldH - this.cropChangeY;\n this.cropOffsertY = this.cropChangeY + this.cropOldH;\n }\n } else if (this.changeCropTypeY === 2) {\n if (this.cropOldH + fh < minCropH) {\n this.cropH = minCropH\n } else if (this.cropOldH + fh > 0) {\n this.cropH =\n this.cropOldH + fh + this.cropOffsertY <= wrapperH\n ? this.cropOldH + fh\n : wrapperH - this.cropOffsertY;\n this.cropOffsertY = this.cropChangeY;\n } else {\n this.cropH =\n wrapperH - this.cropChangeY + Math.abs(fh + this.cropOldH) <=\n wrapperH - minY\n ? Math.abs(fh + this.cropOldH)\n : this.cropChangeY - minY;\n this.cropOffsertY =\n wrapperH - this.cropChangeY + Math.abs(fh + this.cropOldH) <=\n wrapperH - minY\n ? this.cropChangeY - Math.abs(fh + this.cropOldH)\n : minY;\n }\n }\n }\n\n if (this.canChangeX && this.fixed) {\n var fixedHeight =\n (this.cropW / this.fixedNumber[0]) * this.fixedNumber[1];\n if (fixedHeight < minCropH) {\n this.cropH = minCropH\n this.cropW = this.fixedNumber[0] * minCropH / this.fixedNumber[1]\n // 这里需要去修改 offsetX的值,去调整因为高度变化而导致的宽度变化\n if (this.changeCropTypeX === 1) {\n this.cropOffsertX = this.cropChangeX + (this.cropOldW - this.cropW)\n }\n } else if (fixedHeight + this.cropOffsertY > wrapperH) {\n this.cropH = wrapperH - this.cropOffsertY;\n this.cropW =\n (this.cropH / this.fixedNumber[1]) * this.fixedNumber[0];\n if (this.changeCropTypeX === 1) {\n this.cropOffsertX = this.cropChangeX + (this.cropOldW - this.cropW)\n }\n } else {\n this.cropH = fixedHeight;\n }\n }\n\n if (this.canChangeY && this.fixed) {\n var fixedWidth =\n (this.cropH / this.fixedNumber[1]) * this.fixedNumber[0];\n if (fixedWidth < minCropW) {\n this.cropW = minCropW\n this.cropH = this.fixedNumber[1] * minCropW / this.fixedNumber[0];\n } else if (fixedWidth + this.cropOffsertX > wrapperW) {\n this.cropW = wrapperW - this.cropOffsertX;\n this.cropH =\n (this.cropW / this.fixedNumber[0]) * this.fixedNumber[1];\n } else {\n this.cropW = fixedWidth;\n }\n }\n\t// 触发截图框改变大小事件\n\tthis.$emit('cropSizing', {cropW: this.cropW, cropH: this.cropH})\n\tthis.$emit('crop-sizing', {cropW: this.cropW, cropH: this.cropH})\n });\n },\n\n checkCropLimitSize () {\n let { cropW, cropH, limitMinSize } = this;\n\n let limitMinNum = new Array;\n if (!Array.isArray(limitMinSize)) {\n limitMinNum = [limitMinSize, limitMinSize]\n } else {\n limitMinNum = limitMinSize\n }\n \n //限制最小宽度和高度\n cropW = parseFloat(limitMinNum[0])\n cropH = parseFloat(limitMinNum[1])\n return [cropW, cropH]\n },\n // 结束改变\n changeCropEnd(e) {\n window.removeEventListener(\"mousemove\", this.changeCropNow);\n window.removeEventListener(\"mouseup\", this.changeCropEnd);\n window.removeEventListener(\"touchmove\", this.changeCropNow);\n window.removeEventListener(\"touchend\", this.changeCropEnd);\n },\n // 根据比例x/y,最小宽度,最小高度,现有宽度,现有高度,得到应该有的宽度和高度\n calculateSize(x, y, minX, minY, w, h) {\n const ratio = x / y;\n let width = w;\n let height = h;\n // 先根据最小宽度来计算高度\n if (width < minX) {\n width = minX;\n height = Math.ceil(width / ratio);\n }\n // 如果计算出来的高度小于最小高度,则根据最小高度来重新计算宽度和高度\n if (height < minY) {\n height = minY;\n width = Math.ceil(height * ratio);\n // 如果重新计算的宽度仍然小于最小宽度,则使用最小宽度,并重新计算高度\n if (width < minX) {\n width = minX;\n height = Math.ceil(width / ratio);\n }\n }\n // 如果计算出来的宽度或高度小于输入的宽度或高度,则分别使用输入的宽度或高度\n if (width < w) {\n width = w;\n height = Math.ceil(width / ratio);\n }\n if (height < h) {\n height = h;\n width = Math.ceil(height * ratio);\n }\n return { width, height };\n },\n // 创建完成\n endCrop() {\n if (this.cropW === 0 && this.cropH === 0) {\n this.cropping = false;\n }\n let [minCropW, minCropH] = this.checkCropLimitSize();\n const { width, height } = this.fixed ? this.calculateSize(\n this.fixedNumber[0],\n this.fixedNumber[1],\n minCropW,\n minCropH,\n this.cropW,\n this.cropH\n ) : { width: minCropW, height: minCropH }\n if (width > this.cropW) {\n this.cropW = width;\n if (this.cropOffsertX + width > this.w) {\n this.cropOffsertX = this.w - width;\n }\n }\n if (height > this.cropH) {\n this.cropH = height;\n if (this.cropOffsertY + height > this.h) {\n this.cropOffsertY = this.h - height;\n }\n }\n window.removeEventListener(\"mousemove\", this.createCrop);\n window.removeEventListener(\"mouseup\", this.endCrop);\n window.removeEventListener(\"touchmove\", this.createCrop);\n window.removeEventListener(\"touchend\", this.endCrop);\n },\n // 开始截图\n startCrop() {\n this.crop = true;\n },\n // 停止截图\n stopCrop() {\n this.crop = false;\n },\n // 清除截图\n clearCrop() {\n this.cropping = false;\n this.cropW = 0;\n this.cropH = 0;\n },\n // 截图移动\n cropMove(e) {\n e.preventDefault();\n if (!this.canMoveBox) {\n this.crop = false;\n this.startMove(e);\n return false;\n }\n\n if (e.touches && e.touches.length === 2) {\n this.crop = false;\n this.startMove(e);\n this.leaveCrop();\n return false;\n }\n window.addEventListener(\"mousemove\", this.moveCrop);\n window.addEventListener(\"mouseup\", this.leaveCrop);\n window.addEventListener(\"touchmove\", this.moveCrop);\n window.addEventListener(\"touchend\", this.leaveCrop);\n let x = 'clientX' in e ? e.clientX : e.touches[0].clientX;\n let y = 'clientY' in e ? e.clientY : e.touches[0].clientY;\n let newX, newY;\n newX = x - this.cropOffsertX;\n newY = y - this.cropOffsertY;\n this.cropX = newX;\n this.cropY = newY;\n // 触发截图框移动事件\n this.$emit(\"cropMoving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n this.$emit(\"crop-moving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n },\n\n moveCrop(e, isMove) {\n let nowX = 0;\n let nowY = 0;\n if (e) {\n e.preventDefault();\n nowX = 'clientX' in e ? e.clientX : e.touches[0].clientX;\n nowY = 'clientY' in e ? e.clientY : e.touches[0].clientY;\n }\n this.$nextTick(() => {\n let cx, cy;\n let fw = nowX - this.cropX;\n let fh = nowY - this.cropY;\n if (isMove) {\n fw = this.cropOffsertX;\n fh = this.cropOffsertY;\n }\n // 不能超过外层容器\n if (fw <= 0) {\n cx = 0;\n } else if (fw + this.cropW > this.w) {\n cx = this.w - this.cropW;\n } else {\n cx = fw;\n }\n\n if (fh <= 0) {\n cy = 0;\n } else if (fh + this.cropH > this.h) {\n cy = this.h - this.cropH;\n } else {\n cy = fh;\n }\n\n // 不能超过图片\n if (this.centerBox) {\n let axis = this.getImgAxis();\n // 横坐标判断\n if (cx <= axis.x1) {\n cx = axis.x1;\n }\n\n if (cx + this.cropW > axis.x2) {\n cx = axis.x2 - this.cropW;\n }\n\n // 纵坐标纵轴\n if (cy <= axis.y1) {\n cy = axis.y1;\n }\n\n if (cy + this.cropH > axis.y2) {\n cy = axis.y2 - this.cropH;\n }\n }\n\n this.cropOffsertX = cx;\n this.cropOffsertY = cy;\n\n // 触发截图框移动事件\n this.$emit(\"cropMoving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n this.$emit(\"crop-moving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n });\n },\n\n // 算出不同场景下面 图片相对于外层容器的坐标轴\n getImgAxis(x, y, scale) {\n x = x || this.x;\n y = y || this.y;\n scale = scale || this.scale;\n // 如果设置了截图框在图片内, 那么限制截图框不能超过图片的坐标\n // 图片的坐标\n let obj = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n };\n let imgW = this.trueWidth * scale;\n let imgH = this.trueHeight * scale;\n switch (this.rotate) {\n case 0:\n obj.x1 = x + (this.trueWidth * (1 - scale)) / 2;\n obj.x2 = obj.x1 + this.trueWidth * scale;\n obj.y1 = y + (this.trueHeight * (1 - scale)) / 2;\n obj.y2 = obj.y1 + this.trueHeight * scale;\n break;\n case 1:\n case -1:\n case 3:\n case -3:\n obj.x1 = x + (this.trueWidth * (1 - scale)) / 2 + (imgW - imgH) / 2;\n obj.x2 = obj.x1 + this.trueHeight * scale;\n obj.y1 = y + (this.trueHeight * (1 - scale)) / 2 + (imgH - imgW) / 2;\n obj.y2 = obj.y1 + this.trueWidth * scale;\n break;\n default:\n obj.x1 = x + (this.trueWidth * (1 - scale)) / 2;\n obj.x2 = obj.x1 + this.trueWidth * scale;\n obj.y1 = y + (this.trueHeight * (1 - scale)) / 2;\n obj.y2 = obj.y1 + this.trueHeight * scale;\n break;\n }\n return obj;\n },\n\n // 获取截图框的坐标轴\n getCropAxis() {\n let obj = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n };\n obj.x1 = this.cropOffsertX;\n obj.x2 = obj.x1 + this.cropW;\n obj.y1 = this.cropOffsertY;\n obj.y2 = obj.y1 + this.cropH;\n return obj;\n },\n\n leaveCrop(e) {\n window.removeEventListener(\"mousemove\", this.moveCrop);\n window.removeEventListener(\"mouseup\", this.leaveCrop);\n window.removeEventListener(\"touchmove\", this.moveCrop);\n window.removeEventListener(\"touchend\", this.leaveCrop);\n // 触发截图框移动事件\n this.$emit(\"cropMoving\", {\n moving: false,\n axis: this.getCropAxis()\n });\n this.$emit(\"crop-moving\", {\n moving: false,\n axis: this.getCropAxis()\n });\n },\n\n getCropChecked(cb) {\n let canvas = document.createElement(\"canvas\");\n let img = new Image();\n let rotate = this.rotate;\n let trueWidth = this.trueWidth;\n let trueHeight = this.trueHeight;\n let cropOffsertX = this.cropOffsertX;\n let cropOffsertY = this.cropOffsertY;\n img.onload = () => {\n if (this.cropW !== 0) {\n let ctx = canvas.getContext(\"2d\");\n let dpr = 1;\n if (this.high & !this.full) {\n dpr = window.devicePixelRatio;\n }\n if ((this.enlarge !== 1) & !this.full) {\n dpr = Math.abs(Number(this.enlarge));\n }\n let width = this.cropW * dpr;\n let height = this.cropH * dpr;\n let imgW = trueWidth * this.scale * dpr;\n let imgH = trueHeight * this.scale * dpr;\n // 图片x轴偏移\n let dx =\n (this.x - cropOffsertX + (this.trueWidth * (1 - this.scale)) / 2) *\n dpr;\n // 图片y轴偏移\n let dy =\n (this.y - cropOffsertY + (this.trueHeight * (1 - this.scale)) / 2) *\n dpr;\n //保存状态\n setCanvasSize(width, height);\n ctx.save();\n // 填充背景颜色\n if (this.fillColor) {\n ctx.fillStyle = this.fillColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n switch (rotate) {\n case 0:\n if (!this.full) {\n ctx.drawImage(img, dx, dy, imgW, imgH);\n } else {\n // 输出原图比例截图\n setCanvasSize(width / this.scale, height / this.scale);\n ctx.drawImage(\n img,\n dx / this.scale,\n dy / this.scale,\n imgW / this.scale,\n imgH / this.scale\n );\n }\n break;\n case 1:\n case -3:\n if (!this.full) {\n // 换算图片旋转后的坐标弥补\n dx = dx + (imgW - imgH) / 2;\n dy = dy + (imgH - imgW) / 2;\n ctx.rotate((rotate * 90 * Math.PI) / 180);\n ctx.drawImage(img, dy, -dx - imgH, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n // 换算图片旋转后的坐标弥补\n dx =\n dx / this.scale + (imgW / this.scale - imgH / this.scale) / 2;\n dy =\n dy / this.scale + (imgH / this.scale - imgW / this.scale) / 2;\n ctx.rotate((rotate * 90 * Math.PI) / 180);\n ctx.drawImage(\n img,\n dy,\n -dx - imgH / this.scale,\n imgW / this.scale,\n imgH / this.scale\n );\n }\n break;\n case 2:\n case -2:\n if (!this.full) {\n ctx.rotate((rotate * 90 * Math.PI) / 180);\n ctx.drawImage(img, -dx - imgW, -dy - imgH, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n ctx.rotate((rotate * 90 * Math.PI) / 180);\n dx = dx / this.scale;\n dy = dy / this.scale;\n ctx.drawImage(\n img,\n -dx - imgW / this.scale,\n -dy - imgH / this.scale,\n imgW / this.scale,\n imgH / this.scale\n );\n }\n break;\n case 3:\n case -1:\n if (!this.full) {\n // 换算图片旋转后的坐标弥补\n dx = dx + (imgW - imgH) / 2;\n dy = dy + (imgH - imgW) / 2;\n ctx.rotate((rotate * 90 * Math.PI) / 180);\n ctx.drawImage(img, -dy - imgW, dx, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n // 换算图片旋转后的坐标弥补\n dx =\n dx / this.scale + (imgW / this.scale - imgH / this.scale) / 2;\n dy =\n dy / this.scale + (imgH / this.scale - imgW / this.scale) / 2;\n ctx.rotate((rotate * 90 * Math.PI) / 180);\n ctx.drawImage(\n img,\n -dy - imgW / this.scale,\n dx,\n imgW / this.scale,\n imgH / this.scale\n );\n }\n break;\n default:\n if (!this.full) {\n ctx.drawImage(img, dx, dy, imgW, imgH);\n } else {\n // 输出原图比例截图\n setCanvasSize(width / this.scale, height / this.scale);\n ctx.drawImage(\n img,\n dx / this.scale,\n dy / this.scale,\n imgW / this.scale,\n imgH / this.scale\n );\n }\n }\n ctx.restore();\n } else {\n let width = trueWidth * this.scale;\n let height = trueHeight * this.scale;\n let ctx = canvas.getContext(\"2d\");\n ctx.save();\n // 填充背景颜色\n if (this.fillColor) {\n ctx.fillStyle = this.fillColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n switch (rotate) {\n case 0:\n setCanvasSize(width, height);\n ctx.drawImage(img, 0, 0, width, height);\n break;\n case 1:\n case -3:\n // 旋转90度 或者-270度 宽度和高度对调\n setCanvasSize(height, width);\n ctx.rotate((rotate * 90 * Math.PI) / 180);\n ctx.drawImage(img, 0, -height, width, height);\n break;\n case 2:\n case -2:\n setCanvasSize(width, height);\n ctx.rotate((rotate * 90 * Math.PI) / 180);\n ctx.drawImage(img, -width, -height, width, height);\n break;\n case 3:\n case -1:\n setCanvasSize(height, width);\n ctx.rotate((rotate * 90 * Math.PI) / 180);\n ctx.drawImage(img, -width, 0, width, height);\n break;\n default:\n setCanvasSize(width, height);\n ctx.drawImage(img, 0, 0, width, height);\n }\n ctx.restore();\n }\n cb(canvas);\n };\n // 判断图片是否是base64\n var s = this.img.substr(0, 4);\n if (s !== \"data\") {\n img.crossOrigin = \"Anonymous\";\n }\n img.src = this.imgs;\n\n function setCanvasSize(width, height) {\n canvas.width = Math.round(width);\n canvas.height = Math.round(height);\n }\n },\n\n // 获取转换成base64 的图片信息\n getCropData(cb) {\n this.getCropChecked(data => {\n cb(data.toDataURL(\"image/\" + this.outputType, this.outputSize));\n });\n },\n\n //canvas获取为blob对象\n getCropBlob(cb) {\n this.getCropChecked(data => {\n data.toBlob(\n blob => cb(blob),\n \"image/\" + this.outputType,\n this.outputSize\n );\n });\n },\n\n // 自动预览函数\n showPreview() {\n // 优化不要多次触发\n if (this.isCanShow) {\n this.isCanShow = false;\n setTimeout(() => {\n this.isCanShow = true;\n }, 16);\n } else {\n return false;\n }\n let w = this.cropW;\n let h = this.cropH;\n let scale = this.scale;\n var obj = {};\n obj.div = {\n width: `${w}px`,\n height: `${h}px`\n };\n let transformX = (this.x - this.cropOffsertX) / scale;\n let transformY = (this.y - this.cropOffsertY) / scale;\n let transformZ = 0;\n obj.w = w;\n obj.h = h;\n obj.url = this.imgs;\n obj.img = {\n width: `${this.trueWidth}px`,\n height: `${this.trueHeight}px`,\n transform: `scale(${scale})translate3d(${transformX}px, ${transformY}px, ${transformZ}px)rotateZ(${this\n .rotate * 90}deg)`\n };\n obj.html = `\n <div class=\"show-preview\" style=\"width: ${obj.w}px; height: ${\n obj.h\n }px; overflow: hidden\">\n <div style=\"width: ${w}px; height: ${h}px\">\n <img src=${obj.url} style=\"width: ${this.trueWidth}px; height: ${\n this.trueHeight\n }px; transform:\n scale(${scale})translate3d(${transformX}px, ${transformY}px, ${transformZ}px)rotateZ(${this\n .rotate * 90}deg)\">\n </div>\n </div>`;\n this.$emit(\"realTime\", obj);\n this.$emit(\"real-time\", obj);\n },\n // reload 图片布局函数\n reload() {\n let img = new Image();\n img.onload = () => {\n // 读取图片的信息原始信息, 解析是否需要旋转\n // 读取图片的旋转信息\n // 得到外层容器的宽度高度\n this.w = parseFloat(window.getComputedStyle(this.$refs.cropper).width);\n this.h = parseFloat(window.getComputedStyle(this.$refs.cropper).height);\n\n // 存入图片真实高度\n this.trueWidth = img.width;\n this.trueHeight = img.height;\n\n // 判断是否需要压缩大图\n if (!this.original) {\n // 判断布局方式 mode\n this.scale = this.checkedMode();\n } else {\n this.scale = 1;\n }\n\n this.$nextTick(() => {\n this.x =\n -(this.trueWidth - this.trueWidth * this.scale) / 2 +\n (this.w - this.trueWidth * this.scale) / 2;\n this.y =\n -(this.trueHeight - this.trueHeight * this.scale) / 2 +\n (this.h - this.trueHeight * this.scale) / 2;\n this.loading = false;\n // // 获取是否开启了自动截图\n if (this.autoCrop) {\n this.goAutoCrop();\n }\n // 图片加载成功的回调\n this.$emit(\"img-load\", \"success\");\n this.$emit(\"imgLoad\", \"success\"); \n setTimeout(() => {\n this.showPreview();\n }, 20);\n });\n };\n img.onerror = () => {\n this.$emit(\"imgLoad\", \"error\");\n this.$emit(\"img-load\", \"error\");\n };\n img.src = this.imgs;\n },\n // 背景布局的函数\n checkedMode() {\n let scale = 1;\n // 通过字符串分割\n let imgW = this.trueWidth;\n let imgH = this.trueHeight;\n const arr = this.mode.split(\" \");\n switch (arr[0]) {\n case \"contain\":\n if (this.trueWidth > this.w) {\n // 如果图片宽度大于容器宽度\n scale = this.w / this.trueWidth;\n }\n\n if (this.trueHeight * scale > this.h) {\n scale = this.h / this.trueHeight;\n }\n break;\n case \"cover\":\n // 扩展布局 默认填充满整个容器\n // 图片宽度大于容器\n imgW = this.w;\n scale = imgW / this.trueWidth;\n imgH = imgH * scale;\n // 如果扩展之后高度小于容器的外层高度 继续扩展高度\n if (imgH < this.h) {\n imgH = this.h;\n scale = imgH / this.trueHeight;\n }\n break;\n default:\n try {\n let str = arr[0];\n if (str.search(\"px\") !== -1) {\n str = str.replace(\"px\", \"\");\n imgW = parseFloat(str);\n const scaleX = imgW / this.trueWidth;\n let scaleY = 1;\n let strH = arr[1];\n if (strH.search(\"px\") !== -1) {\n strH = strH.replace(\"px\", \"\");\n imgH = parseFloat(strH);\n scaleY = imgH / this.trueHeight;\n }\n scale = Math.min(scaleX,scaleY)\n\n }\n if (str.search(\"%\") !== -1) {\n str = str.replace(\"%\", \"\");\n imgW = (parseFloat(str) / 100) * this.w;\n scale = imgW / this.trueWidth;\n }\n\n if (arr.length === 2 && str === \"auto\") {\n let str2 = arr[1];\n if (str2.search(\"px\") !== -1) {\n str2 = str2.replace(\"px\", \"\");\n imgH = parseFloat(str2);\n scale = imgH / this.trueHeight;\n }\n if (str2.search(\"%\") !== -1) {\n str2 = str2.replace(\"%\", \"\");\n imgH = (parseFloat(str2) / 100) * this.h;\n scale = imgH / this.trueHeight;\n }\n }\n } catch (error) {\n scale = 1;\n }\n }\n return scale;\n },\n // 自动截图函数\n goAutoCrop(cw, ch) {\n if (this.imgs === '' || this.imgs === null) return\n this.clearCrop();\n this.cropping = true;\n let maxWidth = this.w;\n let maxHeight = this.h;\n if (this.centerBox) {\n const switchWH = Math.abs(this.rotate) % 2 > 0\n let imgW = (switchWH ? this.trueHeight : this.trueWidth) * this.scale;\n let imgH = (switchWH ? this.trueWidth : this.trueHeight) * this.scale;\n maxWidth = imgW < maxWidth ? imgW : maxWidth;\n maxHeight = imgH < maxHeight ? imgH : maxHeight;\n }\n // 截图框默认大小\n // 如果为0 那么计算容器大小 默认为80%\n var w = cw ? cw : parseFloat(this.autoCropWidth);\n var h = ch ? ch : parseFloat(this.autoCropHeight);\n if (w === 0 || h === 0) {\n w = maxWidth * 0.8;\n h = maxHeight * 0.8;\n }\n w = w > maxWidth ? maxWidth : w;\n h = h > maxHeight ? maxHeight : h;\n if (this.fixed) {\n h = (w / this.fixedNumber[0]) * this.fixedNumber[1];\n }\n // 如果比例之后 高度大于h\n if (h > this.h) {\n h = this.h;\n w = (h / this.fixedNumber[1]) * this.fixedNumber[0];\n }\n this.changeCrop(w, h);\n },\n // 手动改变截图框大小函数\n changeCrop(w, h) {\n if (this.centerBox) {\n // 修复初始化时候在centerBox=true情况下\n let axis = this.getImgAxis();\n if (w > axis.x2 - axis.x1) {\n // 宽度超标\n w = axis.x2 - axis.x1;\n h = (w / this.fixedNumber[0]) * this.fixedNumber[1];\n }\n if (h > axis.y2 - axis.y1) {\n // 高度超标\n h = axis.y2 - axis.y1;\n w = (h / this.fixedNumber[1]) * this.fixedNumber[0];\n }\n }\n // 判断是否大于容器\n this.cropW = w;\n this.cropH = h;\n this.checkCropLimitSize()\n this.$nextTick(() => {\n // 居中走一走\n this.cropOffsertX = (this.w - this.cropW) / 2;\n this.cropOffsertY = (this.h - this.cropH) / 2;\n if (this.centerBox) {\n this.moveCrop(null, true);\n }\n });\n },\n // 重置函数, 恢复组件置初始状态\n refresh() {\n let img = this.img;\n this.imgs = \"\";\n this.scale = 1;\n this.crop = false;\n this.rotate = 0;\n this.w = 0;\n this.h = 0;\n this.trueWidth = 0;\n this.trueHeight = 0;\n this.clearCrop();\n this.$nextTick(() => {\n this.checkedImg();\n });\n },\n\n // 向左边旋转\n rotateLeft() {\n this.rotate = this.rotate <= -3 ? 0 : this.rotate - 1;\n },\n\n // 向右边旋转\n rotateRight() {\n this.rotate = this.rotate >= 3 ? 0 : this.rotate + 1;\n },\n\n // 清除旋转\n rotateClear() {\n this.rotate = 0;\n },\n\n // 图片坐标点校验\n checkoutImgAxis(x, y, scale) {\n x = x || this.x;\n y = y || this.y;\n scale = scale || this.scale;\n let canGo = true;\n // 开始校验 如果说缩放之后的坐标在截图框外 则阻止缩放\n if (this.centerBox) {\n let axis = this.getImgAxis(x, y, scale);\n let cropAxis = this.getCropAxis();\n // 左边的横坐标 图片不能超过截图框\n if (axis.x1 >= cropAxis.x1) {\n canGo = false;\n }\n\n // 右边横坐标\n if (axis.x2 <= cropAxis.x2) {\n canGo = false;\n }\n\n // 纵坐标上面\n if (axis.y1 >= cropAxis.y1) {\n canGo = false;\n }\n\n // 纵坐标下面\n if (axis.y2 <= cropAxis.y2) {\n canGo = false;\n }\n }\n return canGo;\n }\n },\n mounted() {\n this.support =\n \"onwheel\" in document.createElement(\"div\")\n ? \"wheel\"\n : document.onmousewheel !== undefined\n ? \"mousewheel\"\n : \"DOMMouseScroll\";\n let that = this;\n var u = navigator.userAgent;\n this.isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/);\n // 兼容blob\n if (!HTMLCanvasElement.prototype.toBlob) {\n Object.defineProperty(HTMLCanvasElement.prototype, \"toBlob\", {\n value: function(callback, type, quality) {\n var binStr = atob(this.toDataURL(type, quality).split(\",\")[1]),\n len = binStr.length,\n arr = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n arr[i] = binStr.charCodeAt(i);\n }\n callback(new Blob([arr], { type: that.type || \"image/png\" }));\n }\n });\n }\n this.showPreview();\n this.checkedImg();\n },\n destroyed() {\n window.removeEventListener(\"mousemove\", this.moveCrop);\n window.removeEventListener(\"mouseup\", this.leaveCrop);\n window.removeEventListener(\"touchmove\", this.moveCrop);\n window.removeEventListener(\"touchend\", this.leaveCrop);\n this.cancelScale()\n }\n};\n</script>\n\n<style scoped lang=\"css\">\n.vue-cropper {\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n direction: ltr;\n touch-action: none;\n text-align: left;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC\");\n}\n\n.cropper-box,\n.cropper-box-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-face {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n user-select: none;\n}\n\n.cropper-box-canvas img {\n position: relative;\n text-align: left;\n user-select: none;\n transform: none;\n max-width: none;\n max-height: none;\n}\n\n.cropper-box {\n overflow: hidden;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-modal {\n background: rgba(0, 0, 0, 0.5);\n}\n\n.cropper-crop-box {\n /*border: 2px solid #39f;*/\n}\n\n.cropper-view-box {\n display: block;\n overflow: hidden;\n width: 100%;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 0.75);\n user-select: none;\n}\n\n.cropper-view-box img {\n user-select: none;\n text-align: left;\n max-width: none;\n max-height: none;\n}\n\n.cropper-face {\n top: 0;\n left: 0;\n background-color: #fff;\n opacity: 0.1;\n}\n\n.crop-info {\n position: absolute;\n left: 0px;\n min-width: 65px;\n text-align: center;\n color: white;\n line-height: 20px;\n background-color: rgba(0, 0, 0, 0.8);\n font-size: 12px;\n}\n\n.crop-line {\n position: absolute;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0.1;\n}\n\n.line-w {\n top: -3px;\n left: 0;\n height: 5px;\n cursor: n-resize;\n}\n\n.line-a {\n top: 0;\n left: -3px;\n width: 5px;\n cursor: w-resize;\n}\n\n.line-s {\n bottom: -3px;\n left: 0;\n height: 5px;\n cursor: s-resize;\n}\n\n.line-d {\n top: 0;\n right: -3px;\n width: 5px;\n cursor: e-resize;\n}\n\n.crop-point {\n position: absolute;\n width: 8px;\n height: 8px;\n opacity: 0.75;\n background-color: #39f;\n border-radius: 100%;\n}\n\n.point1 {\n top: -4px;\n left: -4px;\n cursor: nw-resize;\n}\n\n.point2 {\n top: -5px;\n left: 50%;\n margin-left: -3px;\n cursor: n-resize;\n}\n\n.point3 {\n top: -4px;\n right: -4px;\n cursor: ne-resize;\n}\n\n.point4 {\n top: 50%;\n left: -4px;\n margin-top: -3px;\n cursor: w-resize;\n}\n\n.point5 {\n top: 50%;\n right: -4px;\n margin-top: -3px;\n cursor: e-resize;\n}\n\n.point6 {\n bottom: -5px;\n left: -4px;\n cursor: sw-resize;\n}\n\n.point7 {\n bottom: -5px;\n left: 50%;\n margin-left: -3px;\n cursor: s-resize;\n}\n\n.point8 {\n bottom: -5px;\n right: -4px;\n cursor: se-resize;\n}\n\n@media screen and (max-width: 500px) {\n .crop-point {\n position: absolute;\n width: 20px;\n height: 20px;\n opacity: 0.45;\n background-color: #39f;\n border-radius: 100%;\n }\n\n .point1 {\n top: -10px;\n left: -10px;\n }\n\n .point2,\n .point4,\n .point5,\n .point7 {\n display: none;\n }\n\n .point3 {\n top: -10px;\n right: -10px;\n }\n\n .point4 {\n top: 0;\n left: 0;\n }\n\n .point6 {\n bottom: -10px;\n left: -10px;\n }\n\n .point8 {\n bottom: -10px;\n right: -10px;\n }\n}\n</style>\n","<template>\r\n\t<div class=\"h-full\">\r\n\t\t<el-row>\r\n\t\t\t<el-col :xs=\"24\" :md=\"13\" :style=\"{ height: '350px' }\">\r\n\t\t\t\t<VueCropper\r\n\t\t\t\t\tref=\"cropperRef\"\r\n\t\t\t\t\t:img=\"options.img\"\r\n\t\t\t\t\t:info=\"true\"\r\n\t\t\t\t\t:infoTrue=\"options.infoTrue\"\r\n\t\t\t\t\t:auto-crop=\"options.autoCrop\"\r\n\t\t\t\t\t:fixed-box=\"options.fixedBox\"\r\n\t\t\t\t\t:fixedNumber=\"options.fixedNumber\"\r\n\t\t\t\t\t:fixed=\"options.fixed\"\r\n\t\t\t\t\t:centerBox=\"options.centerBox\"\r\n\t\t\t\t\toutputType=\"png\"\r\n\t\t\t\t\t@realTime=\"realTime\"\r\n\t\t\t\t>\r\n\t\t\t\t</VueCropper>\r\n\t\t\t</el-col>\r\n\t\t\t<el-col :xs=\"24\" :md=\"11\" :style=\"{ height: '350px' }\">\r\n\t\t\t\t<div class=\"avatar-upload-preview\">\r\n\t\t\t\t\t<img :src=\"previews.url\" :style=\"previews.img\" />\r\n\t\t\t\t</div>\r\n\t\t\t</el-col>\r\n\t\t</el-row>\r\n\t\t<el-row class=\"ptb2 py-3\">\r\n\t\t\t<el-col :lg=\"2\" :md=\"2\">\r\n\t\t\t\t<hs-upload action=\"#\" :http-request=\"requestUpload\" :show-file-list=\"false\" :before-upload=\"beforeUpload\" accept=\"image/*\">\r\n\t\t\t\t\t<el-button size=\"default\">\r\n\t\t\t\t\t\t选择\r\n\t\t\t\t\t\t<!-- <el-icon class=\"el-icon--right\"><Upload /></el-icon> -->\r\n\t\t\t\t\t\t<bc-icon name=\"ele-UploadFilled\"></bc-icon>\r\n\t\t\t\t\t</el-button>\r\n\t\t\t\t</hs-upload>\r\n\t\t\t</el-col>\r\n\t\t\t<el-col :lg=\"{ span: 1, offset: 1 }\" :md=\"2\">\r\n\t\t\t\t<el-button size=\"default\" icon=\"ele-Plus\" @click=\"changeScale(1)\"></el-button>\r\n\t\t\t</el-col>\r\n\t\t\t<el-col :lg=\"{ span: 1, offset: 1 }\" :md=\"2\">\r\n\t\t\t\t<el-button size=\"default\" icon=\"ele-Minus\" @click=\"changeScale(-1)\"></el-button>\r\n\t\t\t</el-col>\r\n\t\t\t<el-col :lg=\"{ span: 1, offset: 1 }\" :md=\"2\">\r\n\t\t\t\t<el-button size=\"default\" icon=\"ele-RefreshLeft\" @click=\"rotateClick('left')\"></el-button>\r\n\t\t\t</el-col>\r\n\t\t\t<el-col :lg=\"{ span: 1, offset: 1 }\" :md=\"2\">\r\n\t\t\t\t<el-button size=\"default\" icon=\"ele-RefreshRight\" @click=\"rotateClick('right')\"></el-button>\r\n\t\t\t</el-col>\r\n\t\t\t<el-col :lg=\"{ span: 1, offset: 1 }\" :md=\"2\">\r\n\t\t\t\t<el-button size=\"default\" @click=\"refreshCrop()\">重 置</el-button>\r\n\t\t\t</el-col>\r\n\t\t\t<el-col :lg=\"{ span: 1, offset: 7 }\" :md=\"2\">\r\n\t\t\t\t<el-button size=\"default\" type=\"primary\" @click=\"uploadImg()\">提 交</el-button>\r\n\t\t\t</el-col>\r\n\t\t</el-row>\r\n\t\t<!-- </el-dialog> -->\r\n\t</div>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { reactive, ref, toRefs, onMounted } from 'vue';\r\nimport VueCropper from 'vue-cropper/src/vue-cropper.vue';\r\nimport { useFileController, PostSinglefile } from '/@/api';\r\nimport { systemStore } from '/@/utils/storage';\r\nimport { ElMessage } from 'element-plus';\r\n\r\nconst { postSinglefile, postUpdateFile } = useFileController();\r\n// 父级传过来的图片 interface\r\ninterface Props {\r\n\tavatar: string;\r\n\tclose: Function;\r\n\tproxyId: string;\r\n}\r\n// 父级传过来的图片\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tavatar: '',\r\n\tclose,\r\n\tproxyId: '',\r\n});\r\nlet userInfos = ref({} as UserInfos);\r\n// 获取用户信息\r\nonMounted(async () => {\r\n\tuserInfos.value = (await systemStore.get('userInfo')) as unknown as UserInfosState['userInfos'];\r\n});\r\n// 转化\r\nlet { avatar } = toRefs(props);\r\n// 裁剪相关配置类型 interface\r\ninterface Options {\r\n\timg: string | ArrayBuffer | null; // 裁剪图片的地址\r\n\t// info: true; // 裁剪框的大小信息\r\n\toutputSize: number; // 裁剪生成图片的质量 [1至0.1]\r\n\toutputType: 'jpeg'; // 裁剪生成图片的格式\r\n\tcanScale: boolean; // 图片是否允许滚轮缩放\r\n\tautoCrop: boolean; // 是否默认生成截图框\r\n\tautoCropWidth: number; // 默认生成截图框宽度\r\n\tautoCropHeight: number; // 默认生成截图框高度\r\n\tfixedBox: boolean; // 固定截图框大小 不允许改变\r\n\tfixed: boolean; // 是否开启截图框宽高固定比例\r\n\tfixedNumber: Array<number>; // 截图框的宽高比例 需要配合centerBox一起使用才能生效\r\n\tfull: boolean; // 是否输出原图比例的截图\r\n\tcanMoveBox: boolean; // 截图框能否拖动\r\n\toriginal: boolean; // 上传图片按照原始比例渲染\r\n\tcenterBox: boolean; // 截图框是否被限制在图片里面\r\n\tinfoTrue: boolean; // true 为展示真实输出图片宽高 false 展示看到的截图框宽高\r\n\tfilename: string; // 文件名\r\n}\r\n// 裁剪相关配置\r\nconst options: Options = reactive({\r\n\timg: '', // 需要剪裁的图片\r\n\tautoCrop: true, // 是否默认生成截图框\r\n\tautoCropWidth: 200, // 默认生成截图框的宽度\r\n\tautoCropHeight: 200, // 默认生成截图框的长度\r\n\tfixedBox: false, // 是否固定截图框的大小 不允许改变\r\n\t// info: true, // 裁剪框的大小信息\r\n\toutputSize: 0.5, // 裁剪生成图片的质量 [1至0.1]\r\n\toutputType: 'jpeg', // 裁剪生成图片的格式\r\n\tcanScale: false, // 图片是否允许滚轮缩放\r\n\tfixed: false, // 是否开启截图框宽高固定比例\r\n\tfixedNumber: [1, 1], // 截图框的宽高比例 需要配合centerBox一起使用才能生效\r\n\tfull: true, // 是否输出原图比例的截图\r\n\tcanMoveBox: false, // 截图框能否拖动\r\n\toriginal: false, // 上传图片按照原始比例渲染\r\n\tcenterBox: false, // 截图框是否被限制在图片里面\r\n\tinfoTrue: true, // true 为展示真实输出图片宽高 false 展示看到的截图框宽高\r\n\tfilename: '', // 文件名\r\n});\r\n// 裁剪之后的数据\r\nconst previews: any = ref({});\r\n// 获取图片裁剪实例\r\nconst cropperRef: any = ref({});\r\n// 弹窗状态\r\nconst dialogVisible = ref(false);\r\n// 旋转图片\r\nlet rotateClick = (type: string) => {\r\n\tif (type == 'left') {\r\n\t\tcropperRef.value.rotateLeft();\r\n\t}\r\n\tif (type == 'right') {\r\n\t\tcropperRef.value.rotateRight();\r\n\t}\r\n};\r\n// 放大缩小图片比例\r\nlet changeScale = (num: number) => {\r\n\tconst scale = num || 1;\r\n\tcropperRef.value.changeScale(scale);\r\n};\r\n// 重置图片\r\nlet refreshCrop = () => {\r\n\tcropperRef.value.refresh();\r\n};\r\n// 裁剪之后的数据\r\nconst realTime = (data: any) => {\r\n\tpreviews.value = data;\r\n};\r\n// 覆盖默认上传行为\r\nlet requestUpload = () => {};\r\n// 上传预处理\r\nlet beforeUpload = (file: any) => {\r\n\t// 判断图片类型\r\n\tlet img = ['image/png', 'image/jpg', 'image/jpeg', 'image/PNG', 'image/JPG', 'image/JPEG', 'image/gif'];\r\n\tif (!img.includes(file.type)) {\r\n\t\tElMessage.error('图片格式有误,请重新上传');\r\n\t\treturn false;\r\n\t} else {\r\n\t\tconst reader = new FileReader();\r\n\t\treader.readAsDataURL(file);\r\n\t\treader.onload = () => {\r\n\t\t\toptions.img = reader.result;\r\n\t\t\toptions.filename = file.name;\r\n\t\t};\r\n\t}\r\n};\r\n// 提交\r\nlet uploadImg = () => {\r\n\tif (!options.img) {\r\n\t\tElMessage.warning('请先选择图片');\r\n\t}\r\n\t// 获取裁剪后的图片\r\n\tcropperRef.value.getCropBlob(async (data: any) => {\r\n\t\t// 添加上传接口及相关操作\r\n\t\tconst photoRes = await postSinglefile<PostSinglefile>({ data: { file: data }, proxy: props.proxyId });\r\n\t\tconst res = await postUpdateFile({\r\n\t\t\tdata: {\r\n\t\t\t\tid: userInfos.value.id,\r\n\t\t\t\tattchIdArrStr: photoRes.data.id,\r\n\t\t\t\tattachType: 2,\r\n\t\t\t},\r\n\t\t\tproxy: props.proxyId,\r\n\t\t});\r\n\t\tprops.close(res);\r\n\t});\r\n};\r\nonMounted(() => {\r\n\tsetTimeout(() => {\r\n\t\toptions.img = avatar.value;\r\n\t}, 100);\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.avatar-upload-preview {\r\n\tposition: absolute;\r\n\ttop: 50%;\r\n\ttransform: translate(50%, -50%);\r\n\twidth: 200px;\r\n\theight: 200px;\r\n\tborder-radius: 50%;\r\n\tbox-shadow: 0 0 4px #ccc;\r\n\toverflow: hidden;\r\n}\r\n.user-info-head {\r\n\tposition: relative;\r\n\tdisplay: inline-block;\r\n\theight: 120px;\r\n}\r\n\r\n.user-info-head:hover:after {\r\n\tcontent: '+';\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\tright: 0;\r\n\ttop: 0;\r\n\tbottom: 0;\r\n\tcolor: #eee;\r\n\tbackground: rgba(0, 0, 0, 0.5);\r\n\tfont-size: 24px;\r\n\tfont-style: normal;\r\n\t-webkit-font-smoothing: antialiased;\r\n\t-moz-osx-font-smoothing: grayscale;\r\n\tcursor: pointer;\r\n\tline-height: 110px;\r\n\tborder-radius: 50%;\r\n}\r\n.img-circle {\r\n\tborder-radius: 50%;\r\n}\r\n\r\n.img-lg {\r\n\twidth: 120px;\r\n\theight: 120px;\r\n\tcursor: pointer;\r\n}\r\n</style>\r\n"],"names":["_sfc_main","value","obj","dpr","val","oldVal","name","arr","chromeVersion","result","reg","i","img","orientation","width","height","safariVersion","isIos","version","canvas","ctx","blob","data","exifmin","max","error","xhr","url","scale","oldTouch1","newTouch1","oldTouch2","newTouch2","oldL","newL","cha","coe","num","nowX","nowY","changeX","changeY","axis","cropAxis","imgW","imgH","maxLeft","maxTop","maxRight","maxBottom","change","isFirefox","status","fw","fh","fixedHeight","w","h","typeW","typeH","wrapperW","wrapperH","minX","minY","minCropW","minCropH","fixedWidth","cropW","cropH","limitMinSize","limitMinNum","x","y","ratio","newX","newY","isMove","cx","cy","cb","rotate","trueWidth","trueHeight","cropOffsertX","cropOffsertY","dx","dy","setCanvasSize","s","transformX","transformY","transformZ","str","scaleX","scaleY","strH","str2","cw","ch","maxWidth","maxHeight","switchWH","canGo","that","u","callback","type","quality","binStr","len","_hoisted_2","_hoisted_3","_hoisted_4","_createElementBlock","$options","args","_ctx","_openBlock","_hoisted_1","_createElementVNode","_normalizeStyle","_createCommentVNode","_normalizeClass","$props","_toDisplayString","_hoisted_5","_cache","$event","postSinglefile","postUpdateFile","useFileController","props","__props","userInfos","ref","onMounted","systemStore","avatar","toRefs","options","reactive","previews","cropperRef","rotateClick","changeScale","refreshCrop","realTime","requestUpload","beforeUpload","file","reader","ElMessage","uploadImg","photoRes","res"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
"use strict";const v={};v.getData=r=>new Promise((t,e)=>{let a={};d(r).then(n=>{a.arrayBuffer=n;try{a.orientation=x(n)}catch{a.orientation=-1}t(a)}).catch(n=>{e(n)})});function d(r){let t=null;return new Promise((e,a)=>{if(r.src)if(/^data\:/i.test(r.src))t=h(r.src),e(t);else if(/^blob\:/i.test(r.src)){var n=new FileReader;n.onload=function(f){t=f.target.result,e(t)},b(r.src,function(f){n.readAsArrayBuffer(f)})}else{var i=new XMLHttpRequest;i.onload=function(){if(this.status==200||this.status===0)t=i.response,e(t);else throw"Could not load image";i=null},i.open("GET",r.src,!0),i.responseType="arraybuffer",i.send(null)}else a("img error")})}function b(r,t){var e=new XMLHttpRequest;e.open("GET",r,!0),e.responseType="blob",e.onload=function(a){(this.status==200||this.status===0)&&t(this.response)},e.send()}function h(r,t){t=t||r.match(/^data\:([^\;]+)\;base64,/mi)[1]||"",r=r.replace(/^data\:([^\;]+)\;base64,/gmi,"");for(var e=atob(r),a=e.length%2==0?e.length:e.length+1,n=new ArrayBuffer(a),i=new Uint16Array(n),f=0;f<a;f++)i[f]=e.charCodeAt(f);return n}function w(r,t,e){var a="",n;for(n=t,e+=t;n<e;n++)a+=String.fromCharCode(r.getUint8(n));return a}function x(r){var t=new DataView(r),e=t.byteLength,a,n,i,f,s,g,u,l,o,c;if(t.getUint8(0)===255&&t.getUint8(1)===216)for(o=2;o<e;){if(t.getUint8(o)===255&&t.getUint8(o+1)===225){u=o;break}o++}if(u&&(n=u+4,i=u+10,w(t,n,4)==="Exif"&&(g=t.getUint16(i),s=g===18761,(s||g===19789)&&t.getUint16(i+2,s)===42&&(f=t.getUint32(i+4,s),f>=8&&(l=i+f)))),l){for(e=t.getUint16(l,s),c=0;c<e;c++)if(o=l+c*12+2,t.getUint16(o,s)===274){o+=8,a=t.getUint16(o,s);break}}return a}exports.Exif=v;
|
|
2
|
+
//# sourceMappingURL=uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-1q5Jq5S0.js.map
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-1q5Jq5S0.js","sources":["../node_modules/.pnpm/vue-cropper@0.6.4/node_modules/vue-cropper/src/exif-js-min.js"],"sourcesContent":["const Exif = {};\n\nExif.getData = (img) => new Promise((reslove, reject) => {\n let obj = {};\n getImageData(img).then(data => {\n obj.arrayBuffer = data;\n try {\n obj.orientation = getOrientation(data);\n } catch {\n obj.orientation = -1;\n }\n reslove(obj)\n }).catch(error => {\n reject(error)\n })\n})\n\n// 这里的获取exif要将图片转ArrayBuffer对象,这里假设获取了图片的baes64\n// 步骤一\n// base64转ArrayBuffer对象\nfunction getImageData(img) {\n let data = null;\n return new Promise((reslove, reject) => {\n if (img.src) {\n if (/^data\\:/i.test(img.src)) { // Data URI\n data = base64ToArrayBuffer(img.src);\n reslove(data)\n } else if (/^blob\\:/i.test(img.src)) { // Object URL\n var fileReader = new FileReader();\n fileReader.onload = function (e) {\n data = e.target.result;\n reslove(data)\n };\n objectURLToBlob(img.src, function (blob) {\n fileReader.readAsArrayBuffer(blob);\n });\n } else {\n var http = new XMLHttpRequest();\n http.onload = function () {\n if (this.status == 200 || this.status === 0) {\n data = http.response\n reslove(data)\n } else {\n throw \"Could not load image\";\n }\n http = null;\n };\n http.open(\"GET\", img.src, true);\n http.responseType = \"arraybuffer\";\n http.send(null);\n }\n } else {\n reject('img error')\n }\n })\n}\n\nfunction objectURLToBlob(url, callback) {\n var http = new XMLHttpRequest();\n http.open(\"GET\", url, true);\n http.responseType = \"blob\";\n http.onload = function (e) {\n if (this.status == 200 || this.status === 0) {\n callback(this.response);\n }\n };\n http.send();\n}\n\n\n\nfunction base64ToArrayBuffer(base64, contentType) {\n contentType = contentType || base64.match(/^data\\:([^\\;]+)\\;base64,/mi)[1] || ''; // e.g. 'data:image/jpeg;base64,...' => 'image/jpeg'\n base64 = base64.replace(/^data\\:([^\\;]+)\\;base64,/gmi, '');\n var binary = atob(base64);\n // byte length of Uint16Array should be a multiple of 2\n var len = binary.length % 2 == 0 ? binary.length : binary.length + 1;\n var buffer = new ArrayBuffer(len);\n var view = new Uint16Array(buffer);\n for (var i = 0; i < len; i++) {\n view[i] = binary.charCodeAt(i);\n }\n return buffer;\n}\n\n// 步骤二,Unicode码转字符串\n// ArrayBuffer对象 Unicode码转字符串\nfunction getStringFromCharCode(dataView, start, length) {\n var str = '';\n var i;\n for (i = start, length += start; i < length; i++) {\n str += String.fromCharCode(dataView.getUint8(i));\n }\n return str;\n}\n\n// 步骤三,获取jpg图片的exif的角度(在ios体现最明显)\nfunction getOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var length = dataView.byteLength;\n var orientation;\n var exifIDCode;\n var tiffOffset;\n var firstIFDOffset;\n var littleEndian;\n var endianness;\n var app1Start;\n var ifdStart;\n var offset;\n var i;\n // Only handle JPEG image (start by 0xFFD8)\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n offset = 2;\n while (offset < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n offset++;\n }\n }\n if (app1Start) {\n exifIDCode = app1Start + 4;\n tiffOffset = app1Start + 10;\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n\n if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n if (ifdStart) {\n length = dataView.getUint16(ifdStart, littleEndian);\n\n for (i = 0; i < length; i++) {\n offset = ifdStart + i * 12 + 2;\n if (dataView.getUint16(offset, littleEndian) === 0x0112 /* Orientation */) {\n\n // 8 is the offset of the current tag's value\n offset += 8;\n\n // Get the original orientation value\n orientation = dataView.getUint16(offset, littleEndian);\n\n // Override the orientation with its default value for Safari (#120)\n // if (IS_SAFARI_OR_UIWEBVIEW) {\n // dataView.setUint16(offset, 1, littleEndian);\n // }\n break;\n }\n }\n }\n return orientation;\n}\n\n\n\nexport default Exif"],"names":["Exif","img","reslove","reject","obj","getImageData","data","getOrientation","error","base64ToArrayBuffer","fileReader","e","objectURLToBlob","blob","http","url","callback","base64","contentType","binary","len","buffer","view","i","getStringFromCharCode","dataView","start","length","str","arrayBuffer","orientation","exifIDCode","tiffOffset","firstIFDOffset","littleEndian","endianness","app1Start","ifdStart","offset"],"mappings":"aAAK,MAACA,EAAO,CAAG,EAEhBA,EAAK,QAAWC,GAAQ,IAAI,QAAQ,CAACC,EAASC,IAAW,CACvD,IAAIC,EAAM,CAAA,EACVC,EAAaJ,CAAG,EAAE,KAAKK,GAAQ,CAC7BF,EAAI,YAAcE,EAClB,GAAI,CACFF,EAAI,YAAcG,EAAeD,CAAI,CAC3C,MAAY,CACNF,EAAI,YAAc,EACnB,CACDF,EAAQE,CAAG,CACf,CAAG,EAAE,MAAMI,GAAS,CAChBL,EAAOK,CAAK,CAChB,CAAG,CACH,CAAC,EAKD,SAASH,EAAaJ,EAAK,CACzB,IAAIK,EAAO,KACX,OAAO,IAAI,QAAQ,CAACJ,EAASC,IAAW,CACtC,GAAIF,EAAI,IACN,GAAI,WAAW,KAAKA,EAAI,GAAG,EACzBK,EAAOG,EAAoBR,EAAI,GAAG,EAClCC,EAAQI,CAAI,UACH,WAAW,KAAKL,EAAI,GAAG,EAAG,CACnC,IAAIS,EAAa,IAAI,WACrBA,EAAW,OAAS,SAAUC,EAAG,CAC/BL,EAAOK,EAAE,OAAO,OAChBT,EAAQI,CAAI,CACtB,EACQM,EAAgBX,EAAI,IAAK,SAAUY,EAAM,CACvCH,EAAW,kBAAkBG,CAAI,CAC3C,CAAS,CACT,KAAa,CACL,IAAIC,EAAO,IAAI,eACfA,EAAK,OAAS,UAAY,CACxB,GAAI,KAAK,QAAU,KAAO,KAAK,SAAW,EACxCR,EAAOQ,EAAK,SACZZ,EAAQI,CAAI,MAEZ,MAAM,uBAERQ,EAAO,IACjB,EACQA,EAAK,KAAK,MAAOb,EAAI,IAAK,EAAI,EAC9Ba,EAAK,aAAe,cACpBA,EAAK,KAAK,IAAI,CACf,MAEDX,EAAO,WAAW,CAExB,CAAG,CACH,CAEA,SAASS,EAAgBG,EAAKC,EAAU,CACtC,IAAIF,EAAO,IAAI,eACfA,EAAK,KAAK,MAAOC,EAAK,EAAI,EAC1BD,EAAK,aAAe,OACpBA,EAAK,OAAS,SAAUH,EAAG,EACrB,KAAK,QAAU,KAAO,KAAK,SAAW,IACxCK,EAAS,KAAK,QAAQ,CAE5B,EACEF,EAAK,KAAI,CACX,CAIA,SAASL,EAAoBQ,EAAQC,EAAa,CAChDA,EAAcA,GAAeD,EAAO,MAAM,4BAA4B,EAAE,CAAC,GAAK,GAC9EA,EAASA,EAAO,QAAQ,8BAA+B,EAAE,EAMzD,QALIE,EAAS,KAAKF,CAAM,EAEpBG,EAAMD,EAAO,OAAS,GAAK,EAAIA,EAAO,OAASA,EAAO,OAAS,EAC/DE,EAAS,IAAI,YAAYD,CAAG,EAC5BE,EAAO,IAAI,YAAYD,CAAM,EACxBE,EAAI,EAAGA,EAAIH,EAAKG,IACrBD,EAAKC,CAAC,EAAIJ,EAAO,WAAWI,CAAC,EAEjC,OAAOF,CACT,CAIA,SAASG,EAAsBC,EAAUC,EAAOC,EAAQ,CACtD,IAAIC,EAAM,GACNL,EACJ,IAAKA,EAAIG,EAAOC,GAAUD,EAAOH,EAAII,EAAQJ,IAC3CK,GAAO,OAAO,aAAaH,EAAS,SAASF,CAAC,CAAC,EAEjD,OAAOK,CACT,CAGA,SAASrB,EAAesB,EAAa,CACnC,IAAIJ,EAAW,IAAI,SAASI,CAAW,EACnCF,EAASF,EAAS,WAClBK,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAf,EAEJ,GAAIE,EAAS,SAAS,CAAC,IAAM,KAAQA,EAAS,SAAS,CAAC,IAAM,IAE5D,IADAa,EAAS,EACFA,EAASX,GAAQ,CACtB,GAAIF,EAAS,SAASa,CAAM,IAAM,KAAQb,EAAS,SAASa,EAAS,CAAC,IAAM,IAAM,CAChFF,EAAYE,EACZ,KACD,CACDA,GACD,CAoBH,GAlBIF,IACFL,EAAaK,EAAY,EACzBJ,EAAaI,EAAY,GACrBZ,EAAsBC,EAAUM,EAAY,CAAC,IAAM,SACrDI,EAAaV,EAAS,UAAUO,CAAU,EAC1CE,EAAeC,IAAe,OAE1BD,GAAgBC,IAAe,QAC7BV,EAAS,UAAUO,EAAa,EAAGE,CAAY,IAAM,KACvDD,EAAiBR,EAAS,UAAUO,EAAa,EAAGE,CAAY,EAE5DD,GAAkB,IACpBI,EAAWL,EAAaC,MAM9BI,GAGF,IAFAV,EAASF,EAAS,UAAUY,EAAUH,CAAY,EAE7CX,EAAI,EAAGA,EAAII,EAAQJ,IAEtB,GADAe,EAASD,EAAWd,EAAI,GAAK,EACzBE,EAAS,UAAUa,EAAQJ,CAAY,IAAM,IAA0B,CAGzEI,GAAU,EAGVR,EAAcL,EAAS,UAAUa,EAAQJ,CAAY,EAMrD,KACD,EAGL,OAAOJ,CACT","x_google_ignoreList":[0]}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-Dmzfac6b.mjs","sources":["../node_modules/.pnpm/vue-cropper@0.6.4/node_modules/vue-cropper/src/exif-js-min.js"],"sourcesContent":["const Exif = {};\n\nExif.getData = (img) => new Promise((reslove, reject) => {\n let obj = {};\n getImageData(img).then(data => {\n obj.arrayBuffer = data;\n try {\n obj.orientation = getOrientation(data);\n } catch {\n obj.orientation = -1;\n }\n reslove(obj)\n }).catch(error => {\n reject(error)\n })\n})\n\n// 这里的获取exif要将图片转ArrayBuffer对象,这里假设获取了图片的baes64\n// 步骤一\n// base64转ArrayBuffer对象\nfunction getImageData(img) {\n let data = null;\n return new Promise((reslove, reject) => {\n if (img.src) {\n if (/^data\\:/i.test(img.src)) { // Data URI\n data = base64ToArrayBuffer(img.src);\n reslove(data)\n } else if (/^blob\\:/i.test(img.src)) { // Object URL\n var fileReader = new FileReader();\n fileReader.onload = function (e) {\n data = e.target.result;\n reslove(data)\n };\n objectURLToBlob(img.src, function (blob) {\n fileReader.readAsArrayBuffer(blob);\n });\n } else {\n var http = new XMLHttpRequest();\n http.onload = function () {\n if (this.status == 200 || this.status === 0) {\n data = http.response\n reslove(data)\n } else {\n throw \"Could not load image\";\n }\n http = null;\n };\n http.open(\"GET\", img.src, true);\n http.responseType = \"arraybuffer\";\n http.send(null);\n }\n } else {\n reject('img error')\n }\n })\n}\n\nfunction objectURLToBlob(url, callback) {\n var http = new XMLHttpRequest();\n http.open(\"GET\", url, true);\n http.responseType = \"blob\";\n http.onload = function (e) {\n if (this.status == 200 || this.status === 0) {\n callback(this.response);\n }\n };\n http.send();\n}\n\n\n\nfunction base64ToArrayBuffer(base64, contentType) {\n contentType = contentType || base64.match(/^data\\:([^\\;]+)\\;base64,/mi)[1] || ''; // e.g. 'data:image/jpeg;base64,...' => 'image/jpeg'\n base64 = base64.replace(/^data\\:([^\\;]+)\\;base64,/gmi, '');\n var binary = atob(base64);\n // byte length of Uint16Array should be a multiple of 2\n var len = binary.length % 2 == 0 ? binary.length : binary.length + 1;\n var buffer = new ArrayBuffer(len);\n var view = new Uint16Array(buffer);\n for (var i = 0; i < len; i++) {\n view[i] = binary.charCodeAt(i);\n }\n return buffer;\n}\n\n// 步骤二,Unicode码转字符串\n// ArrayBuffer对象 Unicode码转字符串\nfunction getStringFromCharCode(dataView, start, length) {\n var str = '';\n var i;\n for (i = start, length += start; i < length; i++) {\n str += String.fromCharCode(dataView.getUint8(i));\n }\n return str;\n}\n\n// 步骤三,获取jpg图片的exif的角度(在ios体现最明显)\nfunction getOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var length = dataView.byteLength;\n var orientation;\n var exifIDCode;\n var tiffOffset;\n var firstIFDOffset;\n var littleEndian;\n var endianness;\n var app1Start;\n var ifdStart;\n var offset;\n var i;\n // Only handle JPEG image (start by 0xFFD8)\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n offset = 2;\n while (offset < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n offset++;\n }\n }\n if (app1Start) {\n exifIDCode = app1Start + 4;\n tiffOffset = app1Start + 10;\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n\n if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n if (ifdStart) {\n length = dataView.getUint16(ifdStart, littleEndian);\n\n for (i = 0; i < length; i++) {\n offset = ifdStart + i * 12 + 2;\n if (dataView.getUint16(offset, littleEndian) === 0x0112 /* Orientation */) {\n\n // 8 is the offset of the current tag's value\n offset += 8;\n\n // Get the original orientation value\n orientation = dataView.getUint16(offset, littleEndian);\n\n // Override the orientation with its default value for Safari (#120)\n // if (IS_SAFARI_OR_UIWEBVIEW) {\n // dataView.setUint16(offset, 1, littleEndian);\n // }\n break;\n }\n }\n }\n return orientation;\n}\n\n\n\nexport default Exif"],"names":["Exif","img","reslove","reject","obj","getImageData","data","getOrientation","error","base64ToArrayBuffer","fileReader","e","objectURLToBlob","blob","http","url","callback","base64","contentType","binary","len","buffer","view","i","getStringFromCharCode","dataView","start","length","str","arrayBuffer","orientation","exifIDCode","tiffOffset","firstIFDOffset","littleEndian","endianness","app1Start","ifdStart","offset"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/user-Cc2PF_h0.mjs
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-Cc2PF_h0.mjs","sources":["../node_modules/.pnpm/screenfull@6.0.2/node_modules/screenfull/index.js","../src/layout/navBars/topBar/user.vue"],"sourcesContent":["/* eslint-disable promise/prefer-await-to-then */\n\nconst methodMap = [\n\t[\n\t\t'requestFullscreen',\n\t\t'exitFullscreen',\n\t\t'fullscreenElement',\n\t\t'fullscreenEnabled',\n\t\t'fullscreenchange',\n\t\t'fullscreenerror',\n\t],\n\t// New WebKit\n\t[\n\t\t'webkitRequestFullscreen',\n\t\t'webkitExitFullscreen',\n\t\t'webkitFullscreenElement',\n\t\t'webkitFullscreenEnabled',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t// Old WebKit\n\t[\n\t\t'webkitRequestFullScreen',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitCurrentFullScreenElement',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t[\n\t\t'mozRequestFullScreen',\n\t\t'mozCancelFullScreen',\n\t\t'mozFullScreenElement',\n\t\t'mozFullScreenEnabled',\n\t\t'mozfullscreenchange',\n\t\t'mozfullscreenerror',\n\t],\n\t[\n\t\t'msRequestFullscreen',\n\t\t'msExitFullscreen',\n\t\t'msFullscreenElement',\n\t\t'msFullscreenEnabled',\n\t\t'MSFullscreenChange',\n\t\t'MSFullscreenError',\n\t],\n];\n\nconst nativeAPI = (() => {\n\tif (typeof document === 'undefined') {\n\t\treturn false;\n\t}\n\n\tconst unprefixedMethods = methodMap[0];\n\tconst returnValue = {};\n\n\tfor (const methodList of methodMap) {\n\t\tconst exitFullscreenMethod = methodList?.[1];\n\t\tif (exitFullscreenMethod in document) {\n\t\t\tfor (const [index, method] of methodList.entries()) {\n\t\t\t\treturnValue[unprefixedMethods[index]] = method;\n\t\t\t}\n\n\t\t\treturn returnValue;\n\t\t}\n\t}\n\n\treturn false;\n})();\n\nconst eventNameMap = {\n\tchange: nativeAPI.fullscreenchange,\n\terror: nativeAPI.fullscreenerror,\n};\n\n// eslint-disable-next-line import/no-mutable-exports\nlet screenfull = {\n\t// eslint-disable-next-line default-param-last\n\trequest(element = document.documentElement, options) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst onFullScreenEntered = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenEntered);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenEntered);\n\n\t\t\tconst returnPromise = element[nativeAPI.requestFullscreen](options);\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\texit() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!screenfull.isFullscreen) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst onFullScreenExit = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenExit);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenExit);\n\n\t\t\tconst returnPromise = document[nativeAPI.exitFullscreen]();\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\ttoggle(element, options) {\n\t\treturn screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n\t},\n\tonchange(callback) {\n\t\tscreenfull.on('change', callback);\n\t},\n\tonerror(callback) {\n\t\tscreenfull.on('error', callback);\n\t},\n\ton(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t}\n\t},\n\toff(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t}\n\t},\n\traw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n\tisFullscreen: {\n\t\tget: () => Boolean(document[nativeAPI.fullscreenElement]),\n\t},\n\telement: {\n\t\tenumerable: true,\n\t\tget: () => document[nativeAPI.fullscreenElement] ?? undefined,\n\t},\n\tisEnabled: {\n\t\tenumerable: true,\n\t\t// Coerce to boolean in case of old WebKit.\n\t\tget: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n\t},\n});\n\nif (!nativeAPI) {\n\tscreenfull = {isEnabled: false};\n}\n\nexport default screenfull;\n","<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n name: \"layoutBreadcrumbUser\",\n \n})\n</script>\n<template>\r\n\t<div class=\"layout-navbars-breadcrumb-user pr15\" :style=\"{ flex: layoutUserFlexNum }\">\r\n\t\t<div class=\"layout-navbars-breadcrumb-user-icon\" @click=\"onSearchClick\">\r\n\t\t\t<el-icon title=\"菜单搜索\">\r\n\t\t\t\t<ele-Search />\r\n\t\t\t</el-icon>\r\n\t\t</div>\r\n\t\t<div class=\"layout-navbars-breadcrumb-user-icon\" @click=\"onLayoutSetingClick\">\r\n\t\t\t<i class=\"icon-skin iconfont\" title=\"布局配置\"></i>\r\n\t\t</div>\r\n\t\t<div class=\"layout-navbars-breadcrumb-user-icon\" ref=\"userNewsBadgeRef\" v-click-outside=\"onUserNewsClick\">\r\n\t\t\t<el-badge :is-dot=\"true\">\r\n\t\t\t\t<el-icon title=\"消息\">\r\n\t\t\t\t\t<ele-Bell />\r\n\t\t\t\t</el-icon>\r\n\t\t\t</el-badge>\r\n\t\t</div>\r\n\t\t<el-popover\r\n\t\t\tref=\"userNewsRef\"\r\n\t\t\t:virtual-ref=\"userNewsBadgeRef\"\r\n\t\t\tplacement=\"bottom\"\r\n\t\t\ttrigger=\"click\"\r\n\t\t\ttransition=\"el-zoom-in-top\"\r\n\t\t\tvirtual-triggering\r\n\t\t\t:width=\"300\"\r\n\t\t\t:persistent=\"false\"\r\n\t\t>\r\n\t\t\t<UserNews />\r\n\t\t</el-popover>\r\n\t\t<div class=\"layout-navbars-breadcrumb-user-icon mr10\" @click=\"onScreenfullClick\">\r\n\t\t\t<i\r\n\t\t\t\tclass=\"iconfont\"\r\n\t\t\t\t:title=\"state.isScreenfull ? '关全屏' : '开全屏'\"\r\n\t\t\t\t:class=\"!state.isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'\"\r\n\t\t\t></i>\r\n\t\t</div>\r\n\t\t<el-dropdown :show-timeout=\"70\" :hide-timeout=\"50\" @command=\"onHandleCommandClick\">\r\n\t\t\t<span class=\"layout-navbars-breadcrumb-user-link\">\r\n\t\t\t\t<img :src=\"userInfos.photo\" class=\"layout-navbars-breadcrumb-user-link-photo mr5\" />\r\n\t\t\t\t{{ userInfos.name === '' ? 'common' : userInfos.name }}\r\n\t\t\t\t<el-icon class=\"el-icon--right\">\r\n\t\t\t\t\t<ele-ArrowDown />\r\n\t\t\t\t</el-icon>\r\n\t\t\t</span>\r\n\t\t\t<template #dropdown>\r\n\t\t\t\t<el-dropdown-menu>\r\n\t\t\t\t\t<el-dropdown-item divided command=\"logOut\">退出登录</el-dropdown-item>\r\n\t\t\t\t</el-dropdown-menu>\r\n\t\t\t</template>\r\n\t\t</el-dropdown>\r\n\t\t<Search ref=\"searchRef\" />\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\" name=\"layoutBreadcrumbUser\">\r\nimport { defineAsyncComponent, ref, unref, computed, reactive, onMounted } from 'vue';\r\nimport { useRouter } from 'vue-router';\r\nimport { ElMessageBox, ElMessage, ClickOutside as vClickOutside } from 'element-plus';\r\nimport screenfull from 'screenfull';\r\nimport { storeToRefs } from 'pinia';\r\nimport { useUserInfo } from '/@/stores/userInfo';\r\nimport { useThemeConfig } from '/@/stores/themeConfig';\r\nimport { mittBus } from '/@/utils/mitt';\r\nimport { systemStore } from '/@/utils/storage';\r\nimport { useLoginController } from '/@/api/loginController/index';\r\nimport _ from 'lodash';\r\n// 引入组件\r\nconst UserNews = defineAsyncComponent(() => import('/@/layout/navBars/topBar/userNews.vue'));\r\nconst Search = defineAsyncComponent(() => import('/@/layout/navBars/topBar/search.vue'));\r\nconst login = useLoginController();\r\n// 定义变量内容\r\nconst userNewsRef = ref();\r\nconst userNewsBadgeRef = ref();\r\nconst router = useRouter();\r\nconst stores = useUserInfo();\r\nconst storesThemeConfig = useThemeConfig();\r\nconst { userInfos } = storeToRefs(stores);\r\nconst { themeConfig } = storeToRefs(storesThemeConfig);\r\nconst searchRef = ref();\r\nconst state = reactive({\r\n\tisScreenfull: false,\r\n\tdisabledSize: 'large',\r\n});\r\n\r\n// 设置分割样式\r\nconst layoutUserFlexNum = computed(() => {\r\n\tlet num: string | number = '';\r\n\tconst { layout, isClassicSplitMenu } = themeConfig.value;\r\n\tconst layoutArr: string[] = ['defaults', 'columns'];\r\n\tif (layoutArr.includes(layout) || (layout === 'classic' && !isClassicSplitMenu)) num = '1';\r\n\telse num = '';\r\n\treturn num;\r\n});\r\n// 全屏点击时\r\nconst onScreenfullClick = () => {\r\n\tif (!screenfull.isEnabled) {\r\n\t\tElMessage.warning('暂不不支持全屏');\r\n\t\treturn false;\r\n\t}\r\n\tscreenfull.toggle();\r\n\tscreenfull.on('change', () => {\r\n\t\tif (screenfull.isFullscreen) state.isScreenfull = true;\r\n\t\telse state.isScreenfull = false;\r\n\t});\r\n};\r\n// 消息通知点击时\r\nconst onUserNewsClick = () => {\r\n\tunref(userNewsRef).popperRef?.delayHide?.();\r\n};\r\n// 布局配置 icon 点击时\r\nconst onLayoutSetingClick = () => {\r\n\tmittBus.emit('openSetingsDrawer');\r\n};\r\n// 下拉菜单点击时\r\nconst onHandleCommandClick = (path: string) => {\r\n\tif (path === 'logOut') {\r\n\t\tElMessageBox({\r\n\t\t\tcloseOnClickModal: false,\r\n\t\t\tcloseOnPressEscape: false,\r\n\t\t\ttitle: '提示',\r\n\t\t\tmessage: '此操作将退出登录, 是否继续?',\r\n\t\t\tshowCancelButton: true,\r\n\t\t\tconfirmButtonText: '确定',\r\n\t\t\tcancelButtonText: '取消',\r\n\t\t\tbuttonSize: 'default',\r\n\t\t\tbeforeClose: (action, instance, done) => {\r\n\t\t\t\tif (action === 'confirm') {\r\n\t\t\t\t\tinstance.confirmButtonLoading = true;\r\n\t\t\t\t\tinstance.confirmButtonText = '退出中';\r\n\t\t\t\t\tlogin\r\n\t\t\t\t\t\t.postAjaxLogout()\r\n\t\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\t\tdone();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(() => {\r\n\t\t\t\t\t\t\tinstance.confirmButtonLoading = false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdone();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t})\r\n\t\t\t.then(() => {\r\n\t\t\t\tstores.logout();\r\n\t\t\t})\r\n\t\t\t.catch(() => {});\r\n\t} else if (path === 'wareHouse') {\r\n\t\twindow.open('https://www.baidu.com');\r\n\t} else {\r\n\t\trouter.push(path);\r\n\t}\r\n};\r\n// 菜单搜索点击\r\nconst onSearchClick = () => {\r\n\tsearchRef.value.openSearch();\r\n};\r\n// 初始化组件大小/i18n\r\nconst initI18nOrSize = async (value: string, attr: string) => {\r\n\t(<any>state)[attr] = await systemStore.get('themeConfig').then((res) => _.get(res, value, 'large'));\r\n};\r\n// 组件大小改变\r\nconst onComponentSizeChange = async (size: string) => {\r\n\tawait systemStore.remove('themeConfig');\r\n\tthemeConfig.value.globalComponentSize = size;\r\n\tawait systemStore.set('themeConfig', themeConfig.value);\r\n\tawait initI18nOrSize('globalComponentSize', 'disabledSize');\r\n\twindow.location.reload();\r\n};\r\n// 页面加载时\r\nonMounted(async () => {\r\n\tconst themeConfig = await systemStore.get('themeConfig');\r\n\tif (themeConfig) {\r\n\t\tawait initI18nOrSize('globalComponentSize', 'disabledSize');\r\n\t}\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.layout-navbars-breadcrumb-user {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: flex-end;\r\n\t&-link {\r\n\t\theight: 100%;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\twhite-space: nowrap;\r\n\t\t&-photo {\r\n\t\t\twidth: 25px;\r\n\t\t\theight: 25px;\r\n\t\t\tborder-radius: 100%;\r\n\t\t}\r\n\t}\r\n\t&-icon {\r\n\t\tpadding: 0 10px;\r\n\t\tcursor: pointer;\r\n\t\tcolor: var(--next-bg-topBarColor);\r\n\t\theight: 50px;\r\n\t\tline-height: 50px;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\t&:hover {\r\n\t\t\tbackground: var(--next-color-user-hover);\r\n\t\t\ti {\r\n\t\t\t\tdisplay: inline-block;\r\n\t\t\t\tanimation: logoAnimation 0.3s ease-in-out;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t:deep(.el-dropdown) {\r\n\t\tcolor: var(--next-bg-topBarColor);\r\n\t}\r\n\t:deep(.el-badge) {\r\n\t\theight: 40px;\r\n\t\tline-height: 40px;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t}\r\n\t:deep(.el-badge__content.is-fixed) {\r\n\t\ttop: 12px;\r\n\t}\r\n}\r\n</style>\r\n"],"names":["methodMap","nativeAPI","unprefixedMethods","returnValue","methodList","index","method","eventNameMap","screenfull","element","options","resolve","reject","onFullScreenEntered","returnPromise","onFullScreenExit","callback","event","eventName","screenfull$1","__default__","defineComponent","UserNews","defineAsyncComponent","Search","login","useLoginController","userNewsRef","ref","userNewsBadgeRef","router","useRouter","stores","useUserInfo","storesThemeConfig","useThemeConfig","userInfos","storeToRefs","themeConfig","searchRef","state","reactive","layoutUserFlexNum","computed","num","layout","isClassicSplitMenu","onScreenfullClick","ElMessage","onUserNewsClick","_b","_a","unref","onLayoutSetingClick","mittBus","onHandleCommandClick","path","ElMessageBox","action","instance","done","onSearchClick","initI18nOrSize","value","attr","systemStore","res","_","onMounted"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/user-CqzkZzOA.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),l=require("./index-DdDdKbUS.js"),I=require("./index-DI3kpTbZ.js"),w=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=(()=>{if(typeof document>"u")return!1;const n=w[0],r={};for(const t of w)if((t==null?void 0:t[1])in document){for(const[a,f]of t.entries())r[n[a]]=f;return r}return!1})(),C={change:i.fullscreenchange,error:i.fullscreenerror};let s={request(n=document.documentElement,r){return new Promise((t,d)=>{const a=()=>{s.off("change",a),t()};s.on("change",a);const f=n[i.requestFullscreen](r);f instanceof Promise&&f.then(a).catch(d)})},exit(){return new Promise((n,r)=>{if(!s.isFullscreen){n();return}const t=()=>{s.off("change",t),n()};s.on("change",t);const d=document[i.exitFullscreen]();d instanceof Promise&&d.then(t).catch(r)})},toggle(n,r){return s.isFullscreen?s.exit():s.request(n,r)},onchange(n){s.on("change",n)},onerror(n){s.on("error",n)},on(n,r){const t=C[n];t&&document.addEventListener(t,r,!1)},off(n,r){const t=C[n];t&&document.removeEventListener(t,r,!1)},raw:i};Object.defineProperties(s,{isFullscreen:{get:()=>!!document[i.fullscreenElement]},element:{enumerable:!0,get:()=>document[i.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>!!document[i.fullscreenEnabled]}});i||(s={isEnabled:!1});const h=s,O=n=>(e.pushScopeId("data-v-5bbc849b"),n=n(),e.popScopeId(),n),L=O(()=>e.createElementVNode("i",{class:"icon-skin iconfont",title:"布局配置"},null,-1)),D=[L],U=["title"],j={class:"layout-navbars-breadcrumb-user-link"},H=["src"],$=e.defineComponent({name:"layoutBreadcrumbUser"}),G=e.defineComponent({...$,setup(n){const r=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./userNews-DxfIY3B0.js"))),t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./search-C9A88JD-.js"))),d=I.useLoginController(),a=e.ref(),f=e.ref(),v=l.useRouter(),g=l.useUserInfo(),S=l.useThemeConfig(),{userInfos:_}=l.storeToRefs(g),{themeConfig:E}=l.storeToRefs(S),b=e.ref(),p=e.reactive({isScreenfull:!1,disabledSize:"large"}),k=e.computed(()=>{let o="";const{layout:c,isClassicSplitMenu:u}=E.value;return["defaults","columns"].includes(c)||c==="classic"&&!u?o="1":o="",o}),x=()=>{if(!h.isEnabled)return l.ElMessage.warning("暂不不支持全屏"),!1;h.toggle(),h.on("change",()=>{h.isFullscreen?p.isScreenfull=!0:p.isScreenfull=!1})},N=()=>{var o,c;(c=(o=e.unref(a).popperRef)==null?void 0:o.delayHide)==null||c.call(o)},F=()=>{l.mittBus.emit("openSetingsDrawer")},y=o=>{o==="logOut"?l.ElMessageBox({closeOnClickModal:!1,closeOnPressEscape:!1,title:"提示",message:"此操作将退出登录, 是否继续?",showCancelButton:!0,confirmButtonText:"确定",cancelButtonText:"取消",buttonSize:"default",beforeClose:(c,u,m)=>{c==="confirm"?(u.confirmButtonLoading=!0,u.confirmButtonText="退出中",d.postAjaxLogout().then(()=>{m()}).finally(()=>{u.confirmButtonLoading=!1})):m()}}).then(()=>{g.logout()}).catch(()=>{}):o==="wareHouse"?window.open("https://www.baidu.com"):v.push(o)},V=()=>{b.value.openSearch()},B=async(o,c)=>{p[c]=await l.systemStore.get("themeConfig").then(u=>l._.get(u,o,"large"))};return e.onMounted(async()=>{await l.systemStore.get("themeConfig")&&await B("globalComponentSize","disabledSize")}),(o,c)=>{const u=e.resolveComponent("ele-Search"),m=e.resolveComponent("el-icon"),q=e.resolveComponent("ele-Bell"),z=e.resolveComponent("el-badge"),R=e.resolveComponent("el-popover"),M=e.resolveComponent("ele-ArrowDown"),P=e.resolveComponent("el-dropdown-item"),T=e.resolveComponent("el-dropdown-menu"),A=e.resolveComponent("el-dropdown");return e.openBlock(),e.createElementBlock("div",{class:"layout-navbars-breadcrumb-user pr15",style:e.normalizeStyle({flex:k.value})},[e.createElementVNode("div",{class:"layout-navbars-breadcrumb-user-icon",onClick:V},[e.createVNode(m,{title:"菜单搜索"},{default:e.withCtx(()=>[e.createVNode(u)]),_:1})]),e.createElementVNode("div",{class:"layout-navbars-breadcrumb-user-icon",onClick:F},D),e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:"layout-navbars-breadcrumb-user-icon",ref_key:"userNewsBadgeRef",ref:f},[e.createVNode(z,{"is-dot":!0},{default:e.withCtx(()=>[e.createVNode(m,{title:"消息"},{default:e.withCtx(()=>[e.createVNode(q)]),_:1})]),_:1})])),[[e.unref(l.ClickOutside),N]]),e.createVNode(R,{ref_key:"userNewsRef",ref:a,"virtual-ref":f.value,placement:"bottom",trigger:"click",transition:"el-zoom-in-top","virtual-triggering":"",width:300,persistent:!1},{default:e.withCtx(()=>[e.createVNode(e.unref(r))]),_:1},8,["virtual-ref"]),e.createElementVNode("div",{class:"layout-navbars-breadcrumb-user-icon mr10",onClick:x},[e.createElementVNode("i",{class:e.normalizeClass(["iconfont",p.isScreenfull?"icon-tuichuquanping":"icon-fullscreen"]),title:p.isScreenfull?"关全屏":"开全屏"},null,10,U)]),e.createVNode(A,{"show-timeout":70,"hide-timeout":50,onCommand:y},{dropdown:e.withCtx(()=>[e.createVNode(T,null,{default:e.withCtx(()=>[e.createVNode(P,{divided:"",command:"logOut"},{default:e.withCtx(()=>[e.createTextVNode("退出登录")]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("span",j,[e.createElementVNode("img",{src:e.unref(_).photo,class:"layout-navbars-breadcrumb-user-link-photo mr5"},null,8,H),e.createTextVNode(" "+e.toDisplayString(e.unref(_).name===""?"common":e.unref(_).name)+" ",1),e.createVNode(m,{class:"el-icon--right"},{default:e.withCtx(()=>[e.createVNode(M)]),_:1})])]),_:1}),e.createVNode(e.unref(t),{ref_key:"searchRef",ref:b},null,512)],4)}}}),J=l._export_sfc(G,[["__scopeId","data-v-5bbc849b"]]);exports.default=J;
|
|
2
|
+
//# sourceMappingURL=user-CqzkZzOA.js.map
|
package/dist/user-CqzkZzOA.js.gz
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-CqzkZzOA.js","sources":["../node_modules/.pnpm/screenfull@6.0.2/node_modules/screenfull/index.js","../src/layout/navBars/topBar/user.vue"],"sourcesContent":["/* eslint-disable promise/prefer-await-to-then */\n\nconst methodMap = [\n\t[\n\t\t'requestFullscreen',\n\t\t'exitFullscreen',\n\t\t'fullscreenElement',\n\t\t'fullscreenEnabled',\n\t\t'fullscreenchange',\n\t\t'fullscreenerror',\n\t],\n\t// New WebKit\n\t[\n\t\t'webkitRequestFullscreen',\n\t\t'webkitExitFullscreen',\n\t\t'webkitFullscreenElement',\n\t\t'webkitFullscreenEnabled',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t// Old WebKit\n\t[\n\t\t'webkitRequestFullScreen',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitCurrentFullScreenElement',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t[\n\t\t'mozRequestFullScreen',\n\t\t'mozCancelFullScreen',\n\t\t'mozFullScreenElement',\n\t\t'mozFullScreenEnabled',\n\t\t'mozfullscreenchange',\n\t\t'mozfullscreenerror',\n\t],\n\t[\n\t\t'msRequestFullscreen',\n\t\t'msExitFullscreen',\n\t\t'msFullscreenElement',\n\t\t'msFullscreenEnabled',\n\t\t'MSFullscreenChange',\n\t\t'MSFullscreenError',\n\t],\n];\n\nconst nativeAPI = (() => {\n\tif (typeof document === 'undefined') {\n\t\treturn false;\n\t}\n\n\tconst unprefixedMethods = methodMap[0];\n\tconst returnValue = {};\n\n\tfor (const methodList of methodMap) {\n\t\tconst exitFullscreenMethod = methodList?.[1];\n\t\tif (exitFullscreenMethod in document) {\n\t\t\tfor (const [index, method] of methodList.entries()) {\n\t\t\t\treturnValue[unprefixedMethods[index]] = method;\n\t\t\t}\n\n\t\t\treturn returnValue;\n\t\t}\n\t}\n\n\treturn false;\n})();\n\nconst eventNameMap = {\n\tchange: nativeAPI.fullscreenchange,\n\terror: nativeAPI.fullscreenerror,\n};\n\n// eslint-disable-next-line import/no-mutable-exports\nlet screenfull = {\n\t// eslint-disable-next-line default-param-last\n\trequest(element = document.documentElement, options) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst onFullScreenEntered = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenEntered);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenEntered);\n\n\t\t\tconst returnPromise = element[nativeAPI.requestFullscreen](options);\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\texit() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!screenfull.isFullscreen) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst onFullScreenExit = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenExit);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenExit);\n\n\t\t\tconst returnPromise = document[nativeAPI.exitFullscreen]();\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\ttoggle(element, options) {\n\t\treturn screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n\t},\n\tonchange(callback) {\n\t\tscreenfull.on('change', callback);\n\t},\n\tonerror(callback) {\n\t\tscreenfull.on('error', callback);\n\t},\n\ton(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t}\n\t},\n\toff(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t}\n\t},\n\traw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n\tisFullscreen: {\n\t\tget: () => Boolean(document[nativeAPI.fullscreenElement]),\n\t},\n\telement: {\n\t\tenumerable: true,\n\t\tget: () => document[nativeAPI.fullscreenElement] ?? undefined,\n\t},\n\tisEnabled: {\n\t\tenumerable: true,\n\t\t// Coerce to boolean in case of old WebKit.\n\t\tget: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n\t},\n});\n\nif (!nativeAPI) {\n\tscreenfull = {isEnabled: false};\n}\n\nexport default screenfull;\n","<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n name: \"layoutBreadcrumbUser\",\n \n})\n</script>\n<template>\r\n\t<div class=\"layout-navbars-breadcrumb-user pr15\" :style=\"{ flex: layoutUserFlexNum }\">\r\n\t\t<div class=\"layout-navbars-breadcrumb-user-icon\" @click=\"onSearchClick\">\r\n\t\t\t<el-icon title=\"菜单搜索\">\r\n\t\t\t\t<ele-Search />\r\n\t\t\t</el-icon>\r\n\t\t</div>\r\n\t\t<div class=\"layout-navbars-breadcrumb-user-icon\" @click=\"onLayoutSetingClick\">\r\n\t\t\t<i class=\"icon-skin iconfont\" title=\"布局配置\"></i>\r\n\t\t</div>\r\n\t\t<div class=\"layout-navbars-breadcrumb-user-icon\" ref=\"userNewsBadgeRef\" v-click-outside=\"onUserNewsClick\">\r\n\t\t\t<el-badge :is-dot=\"true\">\r\n\t\t\t\t<el-icon title=\"消息\">\r\n\t\t\t\t\t<ele-Bell />\r\n\t\t\t\t</el-icon>\r\n\t\t\t</el-badge>\r\n\t\t</div>\r\n\t\t<el-popover\r\n\t\t\tref=\"userNewsRef\"\r\n\t\t\t:virtual-ref=\"userNewsBadgeRef\"\r\n\t\t\tplacement=\"bottom\"\r\n\t\t\ttrigger=\"click\"\r\n\t\t\ttransition=\"el-zoom-in-top\"\r\n\t\t\tvirtual-triggering\r\n\t\t\t:width=\"300\"\r\n\t\t\t:persistent=\"false\"\r\n\t\t>\r\n\t\t\t<UserNews />\r\n\t\t</el-popover>\r\n\t\t<div class=\"layout-navbars-breadcrumb-user-icon mr10\" @click=\"onScreenfullClick\">\r\n\t\t\t<i\r\n\t\t\t\tclass=\"iconfont\"\r\n\t\t\t\t:title=\"state.isScreenfull ? '关全屏' : '开全屏'\"\r\n\t\t\t\t:class=\"!state.isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'\"\r\n\t\t\t></i>\r\n\t\t</div>\r\n\t\t<el-dropdown :show-timeout=\"70\" :hide-timeout=\"50\" @command=\"onHandleCommandClick\">\r\n\t\t\t<span class=\"layout-navbars-breadcrumb-user-link\">\r\n\t\t\t\t<img :src=\"userInfos.photo\" class=\"layout-navbars-breadcrumb-user-link-photo mr5\" />\r\n\t\t\t\t{{ userInfos.name === '' ? 'common' : userInfos.name }}\r\n\t\t\t\t<el-icon class=\"el-icon--right\">\r\n\t\t\t\t\t<ele-ArrowDown />\r\n\t\t\t\t</el-icon>\r\n\t\t\t</span>\r\n\t\t\t<template #dropdown>\r\n\t\t\t\t<el-dropdown-menu>\r\n\t\t\t\t\t<el-dropdown-item divided command=\"logOut\">退出登录</el-dropdown-item>\r\n\t\t\t\t</el-dropdown-menu>\r\n\t\t\t</template>\r\n\t\t</el-dropdown>\r\n\t\t<Search ref=\"searchRef\" />\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\" name=\"layoutBreadcrumbUser\">\r\nimport { defineAsyncComponent, ref, unref, computed, reactive, onMounted } from 'vue';\r\nimport { useRouter } from 'vue-router';\r\nimport { ElMessageBox, ElMessage, ClickOutside as vClickOutside } from 'element-plus';\r\nimport screenfull from 'screenfull';\r\nimport { storeToRefs } from 'pinia';\r\nimport { useUserInfo } from '/@/stores/userInfo';\r\nimport { useThemeConfig } from '/@/stores/themeConfig';\r\nimport { mittBus } from '/@/utils/mitt';\r\nimport { systemStore } from '/@/utils/storage';\r\nimport { useLoginController } from '/@/api/loginController/index';\r\nimport _ from 'lodash';\r\n// 引入组件\r\nconst UserNews = defineAsyncComponent(() => import('/@/layout/navBars/topBar/userNews.vue'));\r\nconst Search = defineAsyncComponent(() => import('/@/layout/navBars/topBar/search.vue'));\r\nconst login = useLoginController();\r\n// 定义变量内容\r\nconst userNewsRef = ref();\r\nconst userNewsBadgeRef = ref();\r\nconst router = useRouter();\r\nconst stores = useUserInfo();\r\nconst storesThemeConfig = useThemeConfig();\r\nconst { userInfos } = storeToRefs(stores);\r\nconst { themeConfig } = storeToRefs(storesThemeConfig);\r\nconst searchRef = ref();\r\nconst state = reactive({\r\n\tisScreenfull: false,\r\n\tdisabledSize: 'large',\r\n});\r\n\r\n// 设置分割样式\r\nconst layoutUserFlexNum = computed(() => {\r\n\tlet num: string | number = '';\r\n\tconst { layout, isClassicSplitMenu } = themeConfig.value;\r\n\tconst layoutArr: string[] = ['defaults', 'columns'];\r\n\tif (layoutArr.includes(layout) || (layout === 'classic' && !isClassicSplitMenu)) num = '1';\r\n\telse num = '';\r\n\treturn num;\r\n});\r\n// 全屏点击时\r\nconst onScreenfullClick = () => {\r\n\tif (!screenfull.isEnabled) {\r\n\t\tElMessage.warning('暂不不支持全屏');\r\n\t\treturn false;\r\n\t}\r\n\tscreenfull.toggle();\r\n\tscreenfull.on('change', () => {\r\n\t\tif (screenfull.isFullscreen) state.isScreenfull = true;\r\n\t\telse state.isScreenfull = false;\r\n\t});\r\n};\r\n// 消息通知点击时\r\nconst onUserNewsClick = () => {\r\n\tunref(userNewsRef).popperRef?.delayHide?.();\r\n};\r\n// 布局配置 icon 点击时\r\nconst onLayoutSetingClick = () => {\r\n\tmittBus.emit('openSetingsDrawer');\r\n};\r\n// 下拉菜单点击时\r\nconst onHandleCommandClick = (path: string) => {\r\n\tif (path === 'logOut') {\r\n\t\tElMessageBox({\r\n\t\t\tcloseOnClickModal: false,\r\n\t\t\tcloseOnPressEscape: false,\r\n\t\t\ttitle: '提示',\r\n\t\t\tmessage: '此操作将退出登录, 是否继续?',\r\n\t\t\tshowCancelButton: true,\r\n\t\t\tconfirmButtonText: '确定',\r\n\t\t\tcancelButtonText: '取消',\r\n\t\t\tbuttonSize: 'default',\r\n\t\t\tbeforeClose: (action, instance, done) => {\r\n\t\t\t\tif (action === 'confirm') {\r\n\t\t\t\t\tinstance.confirmButtonLoading = true;\r\n\t\t\t\t\tinstance.confirmButtonText = '退出中';\r\n\t\t\t\t\tlogin\r\n\t\t\t\t\t\t.postAjaxLogout()\r\n\t\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\t\tdone();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(() => {\r\n\t\t\t\t\t\t\tinstance.confirmButtonLoading = false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdone();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t})\r\n\t\t\t.then(() => {\r\n\t\t\t\tstores.logout();\r\n\t\t\t})\r\n\t\t\t.catch(() => {});\r\n\t} else if (path === 'wareHouse') {\r\n\t\twindow.open('https://www.baidu.com');\r\n\t} else {\r\n\t\trouter.push(path);\r\n\t}\r\n};\r\n// 菜单搜索点击\r\nconst onSearchClick = () => {\r\n\tsearchRef.value.openSearch();\r\n};\r\n// 初始化组件大小/i18n\r\nconst initI18nOrSize = async (value: string, attr: string) => {\r\n\t(<any>state)[attr] = await systemStore.get('themeConfig').then((res) => _.get(res, value, 'large'));\r\n};\r\n// 组件大小改变\r\nconst onComponentSizeChange = async (size: string) => {\r\n\tawait systemStore.remove('themeConfig');\r\n\tthemeConfig.value.globalComponentSize = size;\r\n\tawait systemStore.set('themeConfig', themeConfig.value);\r\n\tawait initI18nOrSize('globalComponentSize', 'disabledSize');\r\n\twindow.location.reload();\r\n};\r\n// 页面加载时\r\nonMounted(async () => {\r\n\tconst themeConfig = await systemStore.get('themeConfig');\r\n\tif (themeConfig) {\r\n\t\tawait initI18nOrSize('globalComponentSize', 'disabledSize');\r\n\t}\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.layout-navbars-breadcrumb-user {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: flex-end;\r\n\t&-link {\r\n\t\theight: 100%;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\twhite-space: nowrap;\r\n\t\t&-photo {\r\n\t\t\twidth: 25px;\r\n\t\t\theight: 25px;\r\n\t\t\tborder-radius: 100%;\r\n\t\t}\r\n\t}\r\n\t&-icon {\r\n\t\tpadding: 0 10px;\r\n\t\tcursor: pointer;\r\n\t\tcolor: var(--next-bg-topBarColor);\r\n\t\theight: 50px;\r\n\t\tline-height: 50px;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\t&:hover {\r\n\t\t\tbackground: var(--next-color-user-hover);\r\n\t\t\ti {\r\n\t\t\t\tdisplay: inline-block;\r\n\t\t\t\tanimation: logoAnimation 0.3s ease-in-out;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t:deep(.el-dropdown) {\r\n\t\tcolor: var(--next-bg-topBarColor);\r\n\t}\r\n\t:deep(.el-badge) {\r\n\t\theight: 40px;\r\n\t\tline-height: 40px;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t}\r\n\t:deep(.el-badge__content.is-fixed) {\r\n\t\ttop: 12px;\r\n\t}\r\n}\r\n</style>\r\n"],"names":["methodMap","nativeAPI","unprefixedMethods","returnValue","methodList","index","method","eventNameMap","screenfull","element","options","resolve","reject","onFullScreenEntered","returnPromise","onFullScreenExit","callback","event","eventName","screenfull$1","__default__","defineComponent","UserNews","defineAsyncComponent","Search","login","useLoginController","userNewsRef","ref","userNewsBadgeRef","router","useRouter","stores","useUserInfo","storesThemeConfig","useThemeConfig","userInfos","storeToRefs","themeConfig","searchRef","state","reactive","layoutUserFlexNum","computed","num","layout","isClassicSplitMenu","onScreenfullClick","ElMessage","onUserNewsClick","unref","onLayoutSetingClick","mittBus","onHandleCommandClick","path","ElMessageBox","action","instance","done","onSearchClick","initI18nOrSize","value","attr","systemStore","res","_","onMounted"],"mappings":"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","x_google_ignoreList":[0]}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userNews-CDk_AMjc.mjs","sources":["../src/layout/navBars/topBar/userNews.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n name: \"layoutBreadcrumbUserNews\",\n \n})\n</script>\n<template>\r\n\t<div class=\"layout-navbars-breadcrumb-user-news\">\r\n\t\t<div class=\"head-box\">\r\n\t\t\t<div class=\"head-box-title\">通知</div>\r\n\t\t\t<div class=\"head-box-btn\" v-if=\"state.newsList.length > 0\" @click=\"onAllReadClick\">全部已读</div>\r\n\t\t</div>\r\n\t\t<div class=\"content-box\">\r\n\t\t\t<template v-if=\"state.newsList.length > 0\">\r\n\t\t\t\t<div class=\"content-box-item\" v-for=\"(v, k) in state.newsList\" :key=\"k\">\r\n\t\t\t\t\t<div>{{ v.label }}</div>\r\n\t\t\t\t\t<div class=\"content-box-msg\">\r\n\t\t\t\t\t\t{{ v.value }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"content-box-time\">{{ v.time }}</div>\r\n\t\t\t\t</div>\r\n\t\t\t</template>\r\n\t\t\t<el-empty description=\"暂无通知\" v-else></el-empty>\r\n\t\t</div>\r\n\t\t<div class=\"foot-box\" @click=\"onGoToGiteeClick\" v-if=\"state.newsList.length > 0\">前往通知中心</div>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\" name=\"layoutBreadcrumbUserNews\">\r\nimport { reactive } from 'vue';\r\n\r\n// 定义变量内容\r\nconst state = reactive({\r\n\tnewsList: [\r\n\t\t{\r\n\t\t\tlabel: '关于版本发布的通知',\r\n\t\t\tvalue: '华速消息',\r\n\t\t\ttime: '2023-12-28',\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: '关于学习交流的通知',\r\n\t\t\tvalue: '华速消息',\r\n\t\t\ttime: '2023-12-28',\r\n\t\t},\r\n\t],\r\n});\r\n\r\n// 全部已读点击\r\nconst onAllReadClick = () => {\r\n\tstate.newsList = [];\r\n};\r\n// 前往通知中心点击\r\nconst onGoToGiteeClick = () => {\r\n\twindow.open('https://www.baidu.com');\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.layout-navbars-breadcrumb-user-news {\r\n\t.head-box {\r\n\t\tdisplay: flex;\r\n\t\tborder-bottom: 1px solid var(--el-border-color-lighter);\r\n\t\tbox-sizing: border-box;\r\n\t\tcolor: var(--el-text-color-primary);\r\n\t\tjustify-content: space-between;\r\n\t\theight: 35px;\r\n\t\talign-items: center;\r\n\t\t.head-box-btn {\r\n\t\t\tcolor: var(--el-color-primary);\r\n\t\t\tfont-size: 13px;\r\n\t\t\tcursor: pointer;\r\n\t\t\topacity: 0.8;\r\n\t\t\t&:hover {\r\n\t\t\t\topacity: 1;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t.content-box {\r\n\t\tfont-size: 13px;\r\n\t\t.content-box-item {\r\n\t\t\tpadding-top: 12px;\r\n\t\t\t&:last-of-type {\r\n\t\t\t\tpadding-bottom: 12px;\r\n\t\t\t}\r\n\t\t\t.content-box-msg {\r\n\t\t\t\tcolor: var(--el-text-color-secondary);\r\n\t\t\t\tmargin-top: 5px;\r\n\t\t\t\tmargin-bottom: 5px;\r\n\t\t\t}\r\n\t\t\t.content-box-time {\r\n\t\t\t\tcolor: var(--el-text-color-secondary);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t.foot-box {\r\n\t\theight: 35px;\r\n\t\tcolor: var(--el-color-primary);\r\n\t\tfont-size: 13px;\r\n\t\tcursor: pointer;\r\n\t\topacity: 0.8;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\t\tborder-top: 1px solid var(--el-border-color-lighter);\r\n\t\t&:hover {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t:deep(.el-empty__description p) {\r\n\t\tfont-size: 13px;\r\n\t}\r\n}\r\n</style>\r\n"],"names":["__default__","defineComponent","state","reactive","onAllReadClick","onGoToGiteeClick"],"mappings":";;4UAEAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAER,CAAC;;;AA4BD,UAAMC,IAAQC,EAAS;AAAA,MACtB,UAAU;AAAA,QACT;AAAA,UACC,OAAO;AAAA,UACP,OAAO;AAAA,UACP,MAAM;AAAA,QACP;AAAA,QACA;AAAA,UACC,OAAO;AAAA,UACP,OAAO;AAAA,UACP,MAAM;AAAA,QACP;AAAA,MACD;AAAA,IAAA,CACA,GAGKC,IAAiB,MAAM;AAC5B,MAAAF,EAAM,WAAW;IAAC,GAGbG,IAAmB,MAAM;AAC9B,aAAO,KAAK,uBAAuB;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),i=require("./index-DdDdKbUS.js"),d=o=>(e.pushScopeId("data-v-8abed4d4"),o=o(),e.popScopeId(),o),r={class:"layout-navbars-breadcrumb-user-news"},m={class:"head-box"},p=d(()=>e.createElementVNode("div",{class:"head-box-title"},"通知",-1)),_={class:"content-box"},u={class:"content-box-msg"},b={class:"content-box-time"},k=e.defineComponent({name:"layoutBreadcrumbUserNews"}),v=e.defineComponent({...k,setup(o){const t=e.reactive({newsList:[{label:"关于版本发布的通知",value:"华速消息",time:"2023-12-28"},{label:"关于学习交流的通知",value:"华速消息",time:"2023-12-28"}]}),c=()=>{t.newsList=[]},s=()=>{window.open("https://www.baidu.com")};return(w,y)=>{const l=e.resolveComponent("el-empty");return e.openBlock(),e.createElementBlock("div",r,[e.createElementVNode("div",m,[p,t.newsList.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"head-box-btn",onClick:c},"全部已读")):e.createCommentVNode("",!0)]),e.createElementVNode("div",_,[t.newsList.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.newsList,(n,a)=>(e.openBlock(),e.createElementBlock("div",{class:"content-box-item",key:a},[e.createElementVNode("div",null,e.toDisplayString(n.label),1),e.createElementVNode("div",u,e.toDisplayString(n.value),1),e.createElementVNode("div",b,e.toDisplayString(n.time),1)]))),128)):(e.openBlock(),e.createBlock(l,{key:1,description:"暂无通知"}))]),t.newsList.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"foot-box",onClick:s},"前往通知中心")):e.createCommentVNode("",!0)])}}}),h=i._export_sfc(v,[["__scopeId","data-v-8abed4d4"]]);exports.default=h;
|
|
2
|
+
//# sourceMappingURL=userNews-DxfIY3B0.js.map
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userNews-DxfIY3B0.js","sources":["../src/layout/navBars/topBar/userNews.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n name: \"layoutBreadcrumbUserNews\",\n \n})\n</script>\n<template>\r\n\t<div class=\"layout-navbars-breadcrumb-user-news\">\r\n\t\t<div class=\"head-box\">\r\n\t\t\t<div class=\"head-box-title\">通知</div>\r\n\t\t\t<div class=\"head-box-btn\" v-if=\"state.newsList.length > 0\" @click=\"onAllReadClick\">全部已读</div>\r\n\t\t</div>\r\n\t\t<div class=\"content-box\">\r\n\t\t\t<template v-if=\"state.newsList.length > 0\">\r\n\t\t\t\t<div class=\"content-box-item\" v-for=\"(v, k) in state.newsList\" :key=\"k\">\r\n\t\t\t\t\t<div>{{ v.label }}</div>\r\n\t\t\t\t\t<div class=\"content-box-msg\">\r\n\t\t\t\t\t\t{{ v.value }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"content-box-time\">{{ v.time }}</div>\r\n\t\t\t\t</div>\r\n\t\t\t</template>\r\n\t\t\t<el-empty description=\"暂无通知\" v-else></el-empty>\r\n\t\t</div>\r\n\t\t<div class=\"foot-box\" @click=\"onGoToGiteeClick\" v-if=\"state.newsList.length > 0\">前往通知中心</div>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\" name=\"layoutBreadcrumbUserNews\">\r\nimport { reactive } from 'vue';\r\n\r\n// 定义变量内容\r\nconst state = reactive({\r\n\tnewsList: [\r\n\t\t{\r\n\t\t\tlabel: '关于版本发布的通知',\r\n\t\t\tvalue: '华速消息',\r\n\t\t\ttime: '2023-12-28',\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: '关于学习交流的通知',\r\n\t\t\tvalue: '华速消息',\r\n\t\t\ttime: '2023-12-28',\r\n\t\t},\r\n\t],\r\n});\r\n\r\n// 全部已读点击\r\nconst onAllReadClick = () => {\r\n\tstate.newsList = [];\r\n};\r\n// 前往通知中心点击\r\nconst onGoToGiteeClick = () => {\r\n\twindow.open('https://www.baidu.com');\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.layout-navbars-breadcrumb-user-news {\r\n\t.head-box {\r\n\t\tdisplay: flex;\r\n\t\tborder-bottom: 1px solid var(--el-border-color-lighter);\r\n\t\tbox-sizing: border-box;\r\n\t\tcolor: var(--el-text-color-primary);\r\n\t\tjustify-content: space-between;\r\n\t\theight: 35px;\r\n\t\talign-items: center;\r\n\t\t.head-box-btn {\r\n\t\t\tcolor: var(--el-color-primary);\r\n\t\t\tfont-size: 13px;\r\n\t\t\tcursor: pointer;\r\n\t\t\topacity: 0.8;\r\n\t\t\t&:hover {\r\n\t\t\t\topacity: 1;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t.content-box {\r\n\t\tfont-size: 13px;\r\n\t\t.content-box-item {\r\n\t\t\tpadding-top: 12px;\r\n\t\t\t&:last-of-type {\r\n\t\t\t\tpadding-bottom: 12px;\r\n\t\t\t}\r\n\t\t\t.content-box-msg {\r\n\t\t\t\tcolor: var(--el-text-color-secondary);\r\n\t\t\t\tmargin-top: 5px;\r\n\t\t\t\tmargin-bottom: 5px;\r\n\t\t\t}\r\n\t\t\t.content-box-time {\r\n\t\t\t\tcolor: var(--el-text-color-secondary);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t.foot-box {\r\n\t\theight: 35px;\r\n\t\tcolor: var(--el-color-primary);\r\n\t\tfont-size: 13px;\r\n\t\tcursor: pointer;\r\n\t\topacity: 0.8;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\t\tborder-top: 1px solid var(--el-border-color-lighter);\r\n\t\t&:hover {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t:deep(.el-empty__description p) {\r\n\t\tfont-size: 13px;\r\n\t}\r\n}\r\n</style>\r\n"],"names":["__default__","defineComponent","state","reactive","onAllReadClick","onGoToGiteeClick"],"mappings":"maAEAA,EAAeC,EAAAA,gBAAgB,CAC7B,KAAM,0BAER,CAAC,qCA4BD,MAAMC,EAAQC,EAAAA,SAAS,CACtB,SAAU,CACT,CACC,MAAO,YACP,MAAO,OACP,KAAM,YACP,EACA,CACC,MAAO,YACP,MAAO,OACP,KAAM,YACP,CACD,CAAA,CACA,EAGKC,EAAiB,IAAM,CAC5BF,EAAM,SAAW,EAAC,EAGbG,EAAmB,IAAM,CAC9B,OAAO,KAAK,uBAAuB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userSelect-C4uV-44Y.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userSelect-DWo8Si5v.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userSelect.vue_vue_type_script_setup_true_lang-DH1DQONF.mjs","sources":["../src/api/userController/index.ts","../src/views/system/role/component/userSelect.vue"],"sourcesContent":["import { request } from '/@/utils/request';\r\n/**\r\n * 追加标题到参数对象中\r\n */\r\nconst assign = (params: object, title: string) => {\r\n\treturn Object.assign(params, { other_log_info: { title } });\r\n};\r\n/**\r\n * 接口分类: 用户相关接口 - UserController\r\n * 接口名称: 获取全部用户列表 - 接口地址: /scmp-web/pri/user/list_all\r\n * 请求方式: get\r\n * @param {[string]} qry_like_info [多信息模糊查询(用户名、姓名、手机号)] 是否必填:否\r\n * @return {[type]} [description]\r\n */\r\nconst getListAll = <T>(params: object = {}): Promise<T> => {\r\n\tparams = assign(params, '获取全部用户列表');\r\n\treturn request({\r\n\t\turl: '/scmp-web/pri/user/list_all',\r\n\t\tmethod: 'get',\r\n\t\tparams,\r\n\t});\r\n};\r\nexport function useUserController() {\r\n\treturn {\r\n\t\tgetListAll,\r\n\t};\r\n}\r\n","<template>\r\n\t<div class=\"h-full flex flex-col\">\r\n\t\t<div class=\"flex justify-between items-center\">\r\n\t\t\t<hs-input v-model=\"qry_like_info\" placeholder=\"请输入姓名,回车检索\" clearable class=\"max-w-56\" @keydown.enter=\"userList\" />\r\n\t\t\t<span>* 双击选择</span>\r\n\t\t</div>\r\n\t\t<div class=\"flex-1\">\r\n\t\t\t<el-table :data=\"list\" style=\"width: 100%; height: 100%\">\r\n\t\t\t\t<el-table-column prop=\"name\" label=\"name\" />\r\n\t\t\t\t<el-table-column prop=\"account\" label=\"account\" width=\"180\" />\r\n\t\t\t</el-table>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"flex justify-center items-center py-[5px]\">\r\n\t\t\t<hs-button size=\"default\" type=\"default\" class=\"ml10\" @click=\"emit('success', 'close')\"> 取消 </hs-button>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ref, onMounted } from 'vue';\r\nimport { useUserController, GetListAll } from '/@/api';\r\nconst { getListAll } = useUserController();\r\nconst emit = defineEmits(['refresh', 'success']);\r\nconst list: any = ref([]);\r\nconst userList = async () => {\r\n\tlet params = {\r\n\t\tqry_like_info: qry_like_info.value,\r\n\t};\r\n\tconst res: GetListAll = await getListAll(params);\r\n\tconsole.log(res);\r\n\tif (res.code === 1) {\r\n\t\tlist.value = res.data;\r\n\t}\r\n};\r\nonMounted(() => {\r\n\tuserList();\r\n});\r\nconst qry_like_info = ref('');\r\n</script>\r\n\r\n<style lang=\"scss\" scoped></style>\r\n"],"names":["assign","params","title","getListAll","request","useUserController","emit","__emit","list","ref","userList","qry_like_info","res","onMounted"],"mappings":";;AAIA,MAAMA,IAAS,CAACC,GAAgBC,MACxB,OAAO,OAAOD,GAAQ,EAAE,gBAAgB,EAAE,OAAAC,KAAS,GASrDC,IAAa,CAAIF,IAAiB,QAC9BA,IAAAD,EAAOC,GAAQ,UAAU,GAC3BG,EAAQ;AAAA,EACd,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAAH;AAAA,CACA;AAEK,SAASI,IAAoB;AAC5B,SAAA;AAAA,IACN,YAAAF;AAAA,EAAA;AAEF;;;;;ACJM,UAAA,EAAE,YAAAA,MAAeE,KACjBC,IAAOC,GACPC,IAAYC,EAAI,CAAA,CAAE,GAClBC,IAAW,YAAY;AAC5B,UAAIT,IAAS;AAAA,QACZ,eAAeU,EAAc;AAAA,MAAA;AAExB,YAAAC,IAAkB,MAAMT,EAAWF,CAAM;AAC/C,cAAQ,IAAIW,CAAG,GACXA,EAAI,SAAS,MAChBJ,EAAK,QAAQI,EAAI;AAAA,IAClB;AAED,IAAAC,EAAU,MAAM;AACN,MAAAH;IAAA,CACT;AACK,UAAAC,IAAgBF,EAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
"use strict";const e=require("vue"),f=require("./index-DdDdKbUS.js"),h=(o,n)=>Object.assign(o,{other_log_info:{title:n}}),v=(o={})=>(o=h(o,"获取全部用户列表"),f.request({url:"/scmp-web/pri/user/list_all",method:"get",params:o}));function V(){return{getListAll:v}}const b={class:"h-full flex flex-col"},x={class:"flex justify-between items-center"},w=e.createElementVNode("span",null,"* 双击选择",-1),y={class:"flex-1"},N={class:"flex justify-center items-center py-[5px]"},C=e.defineComponent({__name:"userSelect",emits:["refresh","success"],setup(o,{emit:n}){const{getListAll:u}=V(),d=n,l=e.ref([]),c=async()=>{let a={qry_like_info:s.value};const t=await u(a);console.log(t),t.code===1&&(l.value=t.data)};e.onMounted(()=>{c()});const s=e.ref("");return(a,t)=>{const _=e.resolveComponent("hs-input"),r=e.resolveComponent("el-table-column"),m=e.resolveComponent("el-table"),p=e.resolveComponent("hs-button");return e.openBlock(),e.createElementBlock("div",b,[e.createElementVNode("div",x,[e.createVNode(_,{modelValue:s.value,"onUpdate:modelValue":t[0]||(t[0]=i=>s.value=i),placeholder:"请输入姓名,回车检索",clearable:"",class:"max-w-56",onKeydown:e.withKeys(c,["enter"])},null,8,["modelValue"]),w]),e.createElementVNode("div",y,[e.createVNode(m,{data:l.value,style:{width:"100%",height:"100%"}},{default:e.withCtx(()=>[e.createVNode(r,{prop:"name",label:"name"}),e.createVNode(r,{prop:"account",label:"account",width:"180"})]),_:1},8,["data"])]),e.createElementVNode("div",N,[e.createVNode(p,{size:"default",type:"default",class:"ml10",onClick:t[1]||(t[1]=i=>d("success","close"))},{default:e.withCtx(()=>[e.createTextVNode(" 取消 ")]),_:1})])])}}});exports._sfc_main=C;
|
|
2
|
+
//# sourceMappingURL=userSelect.vue_vue_type_script_setup_true_lang-DrzKVQFK.js.map
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userSelect.vue_vue_type_script_setup_true_lang-DrzKVQFK.js","sources":["../src/api/userController/index.ts","../src/views/system/role/component/userSelect.vue"],"sourcesContent":["import { request } from '/@/utils/request';\r\n/**\r\n * 追加标题到参数对象中\r\n */\r\nconst assign = (params: object, title: string) => {\r\n\treturn Object.assign(params, { other_log_info: { title } });\r\n};\r\n/**\r\n * 接口分类: 用户相关接口 - UserController\r\n * 接口名称: 获取全部用户列表 - 接口地址: /scmp-web/pri/user/list_all\r\n * 请求方式: get\r\n * @param {[string]} qry_like_info [多信息模糊查询(用户名、姓名、手机号)] 是否必填:否\r\n * @return {[type]} [description]\r\n */\r\nconst getListAll = <T>(params: object = {}): Promise<T> => {\r\n\tparams = assign(params, '获取全部用户列表');\r\n\treturn request({\r\n\t\turl: '/scmp-web/pri/user/list_all',\r\n\t\tmethod: 'get',\r\n\t\tparams,\r\n\t});\r\n};\r\nexport function useUserController() {\r\n\treturn {\r\n\t\tgetListAll,\r\n\t};\r\n}\r\n","<template>\r\n\t<div class=\"h-full flex flex-col\">\r\n\t\t<div class=\"flex justify-between items-center\">\r\n\t\t\t<hs-input v-model=\"qry_like_info\" placeholder=\"请输入姓名,回车检索\" clearable class=\"max-w-56\" @keydown.enter=\"userList\" />\r\n\t\t\t<span>* 双击选择</span>\r\n\t\t</div>\r\n\t\t<div class=\"flex-1\">\r\n\t\t\t<el-table :data=\"list\" style=\"width: 100%; height: 100%\">\r\n\t\t\t\t<el-table-column prop=\"name\" label=\"name\" />\r\n\t\t\t\t<el-table-column prop=\"account\" label=\"account\" width=\"180\" />\r\n\t\t\t</el-table>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"flex justify-center items-center py-[5px]\">\r\n\t\t\t<hs-button size=\"default\" type=\"default\" class=\"ml10\" @click=\"emit('success', 'close')\"> 取消 </hs-button>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ref, onMounted } from 'vue';\r\nimport { useUserController, GetListAll } from '/@/api';\r\nconst { getListAll } = useUserController();\r\nconst emit = defineEmits(['refresh', 'success']);\r\nconst list: any = ref([]);\r\nconst userList = async () => {\r\n\tlet params = {\r\n\t\tqry_like_info: qry_like_info.value,\r\n\t};\r\n\tconst res: GetListAll = await getListAll(params);\r\n\tconsole.log(res);\r\n\tif (res.code === 1) {\r\n\t\tlist.value = res.data;\r\n\t}\r\n};\r\nonMounted(() => {\r\n\tuserList();\r\n});\r\nconst qry_like_info = ref('');\r\n</script>\r\n\r\n<style lang=\"scss\" scoped></style>\r\n"],"names":["assign","params","title","getListAll","request","useUserController","emit","__emit","list","ref","userList","qry_like_info","res","onMounted"],"mappings":"qEAIMA,EAAS,CAACC,EAAgBC,IACxB,OAAO,OAAOD,EAAQ,CAAE,eAAgB,CAAE,MAAAC,GAAS,EASrDC,EAAa,CAAIF,EAAiB,MAC9BA,EAAAD,EAAOC,EAAQ,UAAU,EAC3BG,UAAQ,CACd,IAAK,8BACL,OAAQ,MACR,OAAAH,CAAA,CACA,GAEK,SAASI,GAAoB,CAC5B,MAAA,CACN,WAAAF,CAAA,CAEF,sSCJM,KAAA,CAAE,WAAAA,GAAeE,IACjBC,EAAOC,EACPC,EAAYC,MAAI,CAAA,CAAE,EAClBC,EAAW,SAAY,CAC5B,IAAIT,EAAS,CACZ,cAAeU,EAAc,KAAA,EAExB,MAAAC,EAAkB,MAAMT,EAAWF,CAAM,EAC/C,QAAQ,IAAIW,CAAG,EACXA,EAAI,OAAS,IAChBJ,EAAK,MAAQI,EAAI,KAClB,EAEDC,EAAAA,UAAU,IAAM,CACNH,GAAA,CACT,EACK,MAAAC,EAAgBF,MAAI,EAAE"}
|