hs-admin-ui 4.1.3 → 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.
Files changed (642) hide show
  1. package/dist/401-BzJI2gFF.mjs +1 -0
  2. package/dist/401-BzJI2gFF.mjs.gz +0 -0
  3. package/dist/401-BzJI2gFF.mjs.map +1 -0
  4. package/dist/401-yMsLUK4l.js +1 -0
  5. package/dist/401-yMsLUK4l.js.gz +0 -0
  6. package/dist/401-yMsLUK4l.js.map +1 -0
  7. package/dist/404-B2ON4qU8.js +1 -0
  8. package/dist/404-B2ON4qU8.js.gz +0 -0
  9. package/dist/404-B2ON4qU8.js.map +1 -0
  10. package/dist/404-DMkWKsBf.mjs +1 -0
  11. package/dist/404-DMkWKsBf.mjs.gz +0 -0
  12. package/dist/404-DMkWKsBf.mjs.map +1 -0
  13. package/dist/account-BaCUa_zU.mjs +1 -0
  14. package/dist/account-BaCUa_zU.mjs.gz +0 -0
  15. package/dist/account-BaCUa_zU.mjs.map +1 -0
  16. package/dist/account-m86ss5x3.js +1 -0
  17. package/dist/account-m86ss5x3.js.gz +0 -0
  18. package/dist/account-m86ss5x3.js.map +1 -0
  19. package/dist/aside-BS3iMpFI.mjs +1 -0
  20. package/dist/aside-BS3iMpFI.mjs.gz +0 -0
  21. package/dist/aside-BS3iMpFI.mjs.map +1 -0
  22. package/dist/aside-eHuEMYpI.js +1 -0
  23. package/dist/aside-eHuEMYpI.js.gz +0 -0
  24. package/dist/aside-eHuEMYpI.js.map +1 -0
  25. package/dist/baseBtnConfig-BaYFVzAe.js +1 -0
  26. package/dist/baseBtnConfig-BaYFVzAe.js.gz +0 -0
  27. package/dist/baseBtnConfig-BaYFVzAe.js.map +1 -0
  28. package/dist/baseBtnConfig-BpdCCSnd.mjs +1 -0
  29. package/dist/baseBtnConfig-BpdCCSnd.mjs.gz +0 -0
  30. package/dist/baseBtnConfig-BpdCCSnd.mjs.map +1 -0
  31. package/dist/baseFormConfig-CLzeDtYS.mjs +1 -0
  32. package/dist/baseFormConfig-CLzeDtYS.mjs.gz +0 -0
  33. package/dist/baseFormConfig-CLzeDtYS.mjs.map +1 -0
  34. package/dist/baseFormConfig-DIhAM0r9.js +1 -0
  35. package/dist/baseFormConfig-DIhAM0r9.js.gz +0 -0
  36. package/dist/baseFormConfig-DIhAM0r9.js.map +1 -0
  37. package/dist/btnIndex-Da4JeOuj.mjs +1 -0
  38. package/dist/btnIndex-Da4JeOuj.mjs.gz +0 -0
  39. package/dist/btnIndex-Da4JeOuj.mjs.map +1 -0
  40. package/dist/btnIndex-zJDzK1YM.js +1 -0
  41. package/dist/btnIndex-zJDzK1YM.js.gz +0 -0
  42. package/dist/btnIndex-zJDzK1YM.js.map +1 -0
  43. package/dist/classic-Bh1vJ8wW.js +1 -0
  44. package/dist/classic-Bh1vJ8wW.js.gz +0 -0
  45. package/dist/classic-Bh1vJ8wW.js.map +1 -0
  46. package/dist/classic-C3c5W6bW.mjs +1 -0
  47. package/dist/classic-C3c5W6bW.mjs.gz +0 -0
  48. package/dist/classic-C3c5W6bW.mjs.map +1 -0
  49. package/dist/cloneConfigDialog-BPZau43p.js +1 -0
  50. package/dist/cloneConfigDialog-BPZau43p.js.gz +0 -0
  51. package/dist/cloneConfigDialog-BPZau43p.js.map +1 -0
  52. package/dist/cloneConfigDialog-DlKGp5lz.mjs +1 -0
  53. package/dist/cloneConfigDialog-DlKGp5lz.mjs.gz +0 -0
  54. package/dist/cloneConfigDialog-DlKGp5lz.mjs.map +1 -0
  55. package/dist/columns-DC21XYUc.js +1 -0
  56. package/dist/columns-DC21XYUc.js.gz +0 -0
  57. package/dist/columns-DC21XYUc.js.map +1 -0
  58. package/dist/columns-DQw-mrU3.mjs +1 -0
  59. package/dist/columns-DQw-mrU3.mjs.gz +0 -0
  60. package/dist/columns-DQw-mrU3.mjs.map +1 -0
  61. package/dist/columnsAside-B__LjXPs.mjs +1 -0
  62. package/dist/columnsAside-B__LjXPs.mjs.gz +0 -0
  63. package/dist/columnsAside-B__LjXPs.mjs.map +1 -0
  64. package/dist/columnsAside-vvFOlX5F.js +1 -0
  65. package/dist/columnsAside-vvFOlX5F.js.gz +0 -0
  66. package/dist/columnsAside-vvFOlX5F.js.map +1 -0
  67. package/dist/contextmenu-7YxyCBre.js +1 -0
  68. package/dist/contextmenu-7YxyCBre.js.gz +0 -0
  69. package/dist/contextmenu-7YxyCBre.js.map +1 -0
  70. package/dist/contextmenu-C9_VjixF.mjs +1 -0
  71. package/dist/contextmenu-C9_VjixF.mjs.gz +0 -0
  72. package/dist/contextmenu-C9_VjixF.mjs.map +1 -0
  73. package/dist/contextmenu-Cnxfpyzs.mjs +1 -0
  74. package/dist/contextmenu-Cnxfpyzs.mjs.gz +0 -0
  75. package/dist/contextmenu-Cnxfpyzs.mjs.map +1 -0
  76. package/dist/contextmenu-D7_SLgbF.mjs +1 -0
  77. package/dist/contextmenu-D7_SLgbF.mjs.gz +0 -0
  78. package/dist/contextmenu-D7_SLgbF.mjs.map +1 -0
  79. package/dist/contextmenu-DIM2CO4m.js +1 -0
  80. package/dist/contextmenu-DIM2CO4m.js.gz +0 -0
  81. package/dist/contextmenu-DIM2CO4m.js.map +1 -0
  82. package/dist/contextmenu-jw7CjkqU.js +1 -0
  83. package/dist/contextmenu-jw7CjkqU.js.gz +0 -0
  84. package/dist/contextmenu-jw7CjkqU.js.map +1 -0
  85. package/dist/defaults-CO-9PLy3.mjs +1 -0
  86. package/dist/defaults-CO-9PLy3.mjs.gz +0 -0
  87. package/dist/defaults-CO-9PLy3.mjs.map +1 -0
  88. package/dist/defaults-CPTLP5d8.js +1 -0
  89. package/dist/defaults-CPTLP5d8.js.gz +0 -0
  90. package/dist/defaults-CPTLP5d8.js.map +1 -0
  91. package/dist/dialog-BbI7XOgp.js +1 -0
  92. package/dist/dialog-BbI7XOgp.js.map +1 -0
  93. package/dist/dialog-Bl7WEBUf.mjs +1 -0
  94. package/dist/dialog-Bl7WEBUf.mjs.map +1 -0
  95. package/dist/dialog-BmCwSZ2C.js +1 -0
  96. package/dist/dialog-BmCwSZ2C.js.gz +0 -0
  97. package/dist/dialog-BmCwSZ2C.js.map +1 -0
  98. package/dist/dialog-Ch_vZTX6.mjs +1 -0
  99. package/dist/dialog-Ch_vZTX6.mjs.gz +0 -0
  100. package/dist/dialog-Ch_vZTX6.mjs.map +1 -0
  101. package/dist/dialog-Cqb6ay6R.js +1 -0
  102. package/dist/dialog-Cqb6ay6R.js.gz +0 -0
  103. package/dist/dialog-Cqb6ay6R.js.map +1 -0
  104. package/dist/dialog-DIFjAfxe.mjs +1 -0
  105. package/dist/dialog-DIFjAfxe.mjs.map +1 -0
  106. package/dist/dialog-DVZ-Aqm0.mjs +1 -0
  107. package/dist/dialog-DVZ-Aqm0.mjs.gz +0 -0
  108. package/dist/dialog-DVZ-Aqm0.mjs.map +1 -0
  109. package/dist/dialog-DeuceWcM.js +1 -0
  110. package/dist/dialog-DeuceWcM.js.gz +0 -0
  111. package/dist/dialog-DeuceWcM.js.map +1 -0
  112. package/dist/dialog-Dtk0TIqw.mjs +1 -0
  113. package/dist/dialog-Dtk0TIqw.mjs.map +1 -0
  114. package/dist/dialog-GTCUA8Nu.js +1 -0
  115. package/dist/dialog-GTCUA8Nu.js.map +1 -0
  116. package/dist/dialog-UoVqSoLN.mjs +1 -0
  117. package/dist/dialog-UoVqSoLN.mjs.gz +0 -0
  118. package/dist/dialog-UoVqSoLN.mjs.map +1 -0
  119. package/dist/dialog-ggWKEkrm.js +1 -0
  120. package/dist/dialog-ggWKEkrm.js.map +1 -0
  121. package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-BZUe_7gT.mjs +1 -0
  122. package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-BZUe_7gT.mjs.gz +0 -0
  123. package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-BZUe_7gT.mjs.map +1 -0
  124. package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-utiTEG14.js +1 -0
  125. package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-utiTEG14.js.gz +0 -0
  126. package/dist/dialog.vue_vue_type_script_setup_true_name_dataAuthDialog_lang-utiTEG14.js.map +1 -0
  127. package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-CJ_5_qKm.mjs +1 -0
  128. package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-CJ_5_qKm.mjs.gz +0 -0
  129. package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-CJ_5_qKm.mjs.map +1 -0
  130. package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-bGgzzD_6.js +1 -0
  131. package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-bGgzzD_6.js.gz +0 -0
  132. package/dist/dialog.vue_vue_type_script_setup_true_name_systemMenuDialog_lang-bGgzzD_6.js.map +1 -0
  133. package/dist/dictDialog-C6deNfCe.js +1 -0
  134. package/dist/dictDialog-C6deNfCe.js.map +1 -0
  135. package/dist/dictDialog-DA8GuFk9.mjs +1 -0
  136. package/dist/dictDialog-DA8GuFk9.mjs.map +1 -0
  137. package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-CdhZHxQx.js +1 -0
  138. package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-CdhZHxQx.js.gz +0 -0
  139. package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-CdhZHxQx.js.map +1 -0
  140. package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-cGDTYNII.mjs +1 -0
  141. package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-cGDTYNII.mjs.gz +0 -0
  142. package/dist/dictDialog.vue_vue_type_script_setup_true_name_dictDialog_lang-cGDTYNII.mjs.map +1 -0
  143. package/dist/dictItemDialog-C2l1XNjL.js +1 -0
  144. package/dist/dictItemDialog-C2l1XNjL.js.map +1 -0
  145. package/dist/dictItemDialog-CGCyt3sd.mjs +1 -0
  146. package/dist/dictItemDialog-CGCyt3sd.mjs.map +1 -0
  147. package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-CTTB6eDA.mjs +1 -0
  148. package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-CTTB6eDA.mjs.gz +0 -0
  149. package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-CTTB6eDA.mjs.map +1 -0
  150. package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-D47SU2Qe.js +1 -0
  151. package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-D47SU2Qe.js.gz +0 -0
  152. package/dist/dictItemDialog.vue_vue_type_script_setup_true_lang-D47SU2Qe.js.map +1 -0
  153. package/dist/editDialog-B3FZIrWv.js +1 -0
  154. package/dist/editDialog-B3FZIrWv.js.gz +0 -0
  155. package/dist/editDialog-B3FZIrWv.js.map +1 -0
  156. package/dist/editDialog-BsPYjQ3Z.mjs +1 -0
  157. package/dist/editDialog-BsPYjQ3Z.mjs.gz +0 -0
  158. package/dist/editDialog-BsPYjQ3Z.mjs.map +1 -0
  159. package/dist/formConfig-CQRWsB8I.mjs +1 -0
  160. package/dist/formConfig-CQRWsB8I.mjs.gz +0 -0
  161. package/dist/formConfig-CQRWsB8I.mjs.map +1 -0
  162. package/dist/formConfig-vRKuN3Qq.js +1 -0
  163. package/dist/formConfig-vRKuN3Qq.js.gz +0 -0
  164. package/dist/formConfig-vRKuN3Qq.js.map +1 -0
  165. package/dist/header-Cn7nyXyQ.js +1 -0
  166. package/dist/header-Cn7nyXyQ.js.map +1 -0
  167. package/dist/header-DXLUHaoH.mjs +1 -0
  168. package/dist/header-DXLUHaoH.mjs.map +1 -0
  169. package/dist/horizontal-D5m-StSj.mjs +1 -0
  170. package/dist/horizontal-D5m-StSj.mjs.gz +0 -0
  171. package/dist/horizontal-D5m-StSj.mjs.map +1 -0
  172. package/dist/horizontal-DQqvv6Sp.js +1 -0
  173. package/dist/horizontal-DQqvv6Sp.js.gz +0 -0
  174. package/dist/horizontal-DQqvv6Sp.js.map +1 -0
  175. package/dist/hsAttrBtn-D1QvVUZr.js +1 -0
  176. package/dist/hsAttrBtn-D1QvVUZr.js.map +1 -0
  177. package/dist/hsAttrBtn-TYcer9fC.mjs +1 -0
  178. package/dist/hsAttrBtn-TYcer9fC.mjs.map +1 -0
  179. package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-CQvnEDXk.js +1 -0
  180. package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-CQvnEDXk.js.gz +0 -0
  181. package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-CQvnEDXk.js.map +1 -0
  182. package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-DGycKZ06.mjs +1 -0
  183. package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-DGycKZ06.mjs.gz +0 -0
  184. package/dist/hsAttrBtn.vue_vue_type_script_setup_true_lang-DGycKZ06.mjs.map +1 -0
  185. package/dist/hsAttrForm-BzIlb91a.js +1 -0
  186. package/dist/hsAttrForm-BzIlb91a.js.map +1 -0
  187. package/dist/hsAttrForm-DtqMt6Lk.mjs +1 -0
  188. package/dist/hsAttrForm-DtqMt6Lk.mjs.map +1 -0
  189. package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-BMaIQo0H.mjs +1 -0
  190. package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-BMaIQo0H.mjs.gz +0 -0
  191. package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-BMaIQo0H.mjs.map +1 -0
  192. package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-hKoCLLeD.js +1 -0
  193. package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-hKoCLLeD.js.gz +0 -0
  194. package/dist/hsAttrForm.vue_vue_type_script_setup_true_lang-hKoCLLeD.js.map +1 -0
  195. package/dist/hsBtnConfigList-Bb1nm0Vy.js +1 -0
  196. package/dist/hsBtnConfigList-Bb1nm0Vy.js.gz +0 -0
  197. package/dist/hsBtnConfigList-Bb1nm0Vy.js.map +1 -0
  198. package/dist/hsBtnConfigList-Bren_Fd3.mjs +1 -0
  199. package/dist/hsBtnConfigList-Bren_Fd3.mjs.gz +0 -0
  200. package/dist/hsBtnConfigList-Bren_Fd3.mjs.map +1 -0
  201. package/dist/hsBtnItemConfig-BCJqmO3A.js +1 -0
  202. package/dist/hsBtnItemConfig-BCJqmO3A.js.map +1 -0
  203. package/dist/hsBtnItemConfig-CzRP7rGc.mjs +1 -0
  204. package/dist/hsBtnItemConfig-CzRP7rGc.mjs.map +1 -0
  205. package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DS7PtHA3.js +1 -0
  206. package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DS7PtHA3.js.gz +0 -0
  207. package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DS7PtHA3.js.map +1 -0
  208. package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DvQ5Sm0Z.mjs +1 -0
  209. package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DvQ5Sm0Z.mjs.gz +0 -0
  210. package/dist/hsBtnItemConfig.vue_vue_type_script_setup_true_lang-DvQ5Sm0Z.mjs.map +1 -0
  211. package/dist/hsBtnPanel-CUhnhH9S.mjs +1 -0
  212. package/dist/hsBtnPanel-CUhnhH9S.mjs.map +1 -0
  213. package/dist/hsBtnPanel-D-Y2DAWc.js +1 -0
  214. package/dist/hsBtnPanel-D-Y2DAWc.js.map +1 -0
  215. package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CFWt1cBu.js +1 -0
  216. package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CFWt1cBu.js.gz +0 -0
  217. package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CFWt1cBu.js.map +1 -0
  218. package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CWd8hS5v.mjs +1 -0
  219. package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CWd8hS5v.mjs.gz +0 -0
  220. package/dist/hsBtnPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CWd8hS5v.mjs.map +1 -0
  221. package/dist/hsExpand-DIo3Lfqs.mjs +1 -0
  222. package/dist/hsExpand-DIo3Lfqs.mjs.map +1 -0
  223. package/dist/hsExpand-MS4CSl__.js +1 -0
  224. package/dist/hsExpand-MS4CSl__.js.map +1 -0
  225. package/dist/hsExpand.vue_vue_type_script_setup_true_lang-C0tRMdLr.mjs +1 -0
  226. package/dist/hsExpand.vue_vue_type_script_setup_true_lang-C0tRMdLr.mjs.gz +0 -0
  227. package/dist/hsExpand.vue_vue_type_script_setup_true_lang-C0tRMdLr.mjs.map +1 -0
  228. package/dist/hsExpand.vue_vue_type_script_setup_true_lang-DI5xS1It.js +1 -0
  229. package/dist/hsExpand.vue_vue_type_script_setup_true_lang-DI5xS1It.js.gz +0 -0
  230. package/dist/hsExpand.vue_vue_type_script_setup_true_lang-DI5xS1It.js.map +1 -0
  231. package/dist/hsFormConfig-88TlmGx1.mjs +1 -0
  232. package/dist/hsFormConfig-88TlmGx1.mjs.gz +0 -0
  233. package/dist/hsFormConfig-88TlmGx1.mjs.map +1 -0
  234. package/dist/hsFormConfig-BMyDeJP6.js +1 -0
  235. package/dist/hsFormConfig-BMyDeJP6.js.gz +0 -0
  236. package/dist/hsFormConfig-BMyDeJP6.js.map +1 -0
  237. package/dist/hsFormConfigList-DsVF2R8N.mjs +1 -0
  238. package/dist/hsFormConfigList-DsVF2R8N.mjs.gz +0 -0
  239. package/dist/hsFormConfigList-DsVF2R8N.mjs.map +1 -0
  240. package/dist/hsFormConfigList-OF81mYsV.js +1 -0
  241. package/dist/hsFormConfigList-OF81mYsV.js.gz +0 -0
  242. package/dist/hsFormConfigList-OF81mYsV.js.map +1 -0
  243. package/dist/hsFormPanel-ByZcwko4.js +1 -0
  244. package/dist/hsFormPanel-ByZcwko4.js.map +1 -0
  245. package/dist/hsFormPanel-Cp-j_SNi.mjs +1 -0
  246. package/dist/hsFormPanel-Cp-j_SNi.mjs.map +1 -0
  247. package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-BFNUZilJ.mjs +1 -0
  248. package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-BFNUZilJ.mjs.gz +0 -0
  249. package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-BFNUZilJ.mjs.map +1 -0
  250. package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CMiitHGY.js +1 -0
  251. package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CMiitHGY.js.gz +0 -0
  252. package/dist/hsFormPanel.vue_vue_type_script_setup_true_name_formPanel_lang-CMiitHGY.js.map +1 -0
  253. package/dist/hsFormParse-DfYFseG9.js +1 -0
  254. package/dist/hsFormParse-DfYFseG9.js.map +1 -0
  255. package/dist/hsFormParse-Wm92Be9y.mjs +1 -0
  256. package/dist/hsFormParse-Wm92Be9y.mjs.map +1 -0
  257. package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-6s_wp2H-.mjs +1 -0
  258. package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-6s_wp2H-.mjs.gz +0 -0
  259. package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-6s_wp2H-.mjs.map +1 -0
  260. package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-Cb2q7Fuy.js +1 -0
  261. package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-Cb2q7Fuy.js.gz +0 -0
  262. package/dist/hsFormParse.vue_vue_type_script_setup_true_lang-Cb2q7Fuy.js.map +1 -0
  263. package/dist/hsPanelItem-DKSytzeB.mjs +1 -0
  264. package/dist/hsPanelItem-DKSytzeB.mjs.map +1 -0
  265. package/dist/hsPanelItem-DbFQIf68.js +1 -0
  266. package/dist/hsPanelItem-DbFQIf68.js.map +1 -0
  267. package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-CqtPTLb1.js +1 -0
  268. package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-CqtPTLb1.js.gz +0 -0
  269. package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-CqtPTLb1.js.map +1 -0
  270. package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-Dtz8b4vz.mjs +1 -0
  271. package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-Dtz8b4vz.mjs.gz +0 -0
  272. package/dist/hsPanelItem.vue_vue_type_script_setup_true_name_panelItem_lang-Dtz8b4vz.mjs.map +1 -0
  273. package/dist/iframes-DCvvORXH.js +1 -0
  274. package/dist/iframes-DCvvORXH.js.gz +0 -0
  275. package/dist/iframes-DCvvORXH.js.map +1 -0
  276. package/dist/iframes-DKPJ8wxi.mjs +1 -0
  277. package/dist/iframes-DKPJ8wxi.mjs.gz +0 -0
  278. package/dist/iframes-DKPJ8wxi.mjs.map +1 -0
  279. package/dist/index-0vzDoVhe.mjs +1 -0
  280. package/dist/index-0vzDoVhe.mjs.gz +0 -0
  281. package/dist/index-0vzDoVhe.mjs.map +1 -0
  282. package/dist/index-1hgXG7It.js +1 -0
  283. package/dist/index-1hgXG7It.js.gz +0 -0
  284. package/dist/index-1hgXG7It.js.map +1 -0
  285. package/dist/index-4GTrORei.js +1 -0
  286. package/dist/index-4GTrORei.js.map +1 -0
  287. package/dist/index-B-Ori_IC.js +1 -0
  288. package/dist/index-B-Ori_IC.js.gz +0 -0
  289. package/dist/index-B-Ori_IC.js.map +1 -0
  290. package/dist/index-B0GMXwiE.mjs +1 -0
  291. package/dist/index-B0GMXwiE.mjs.gz +0 -0
  292. package/dist/index-B0GMXwiE.mjs.map +1 -0
  293. package/dist/index-B0mEK2cV.mjs +1 -0
  294. package/dist/index-B0mEK2cV.mjs.map +1 -0
  295. package/dist/index-BAaaz79H.js +1 -0
  296. package/dist/index-BAaaz79H.js.gz +0 -0
  297. package/dist/index-BAaaz79H.js.map +1 -0
  298. package/dist/index-BDcwKtzF.mjs +1 -0
  299. package/dist/index-BDcwKtzF.mjs.map +1 -0
  300. package/dist/index-BN4Me9T2.mjs +1 -0
  301. package/dist/index-BN4Me9T2.mjs.gz +0 -0
  302. package/dist/index-BN4Me9T2.mjs.map +1 -0
  303. package/dist/index-BNW5-ejc.js +1 -0
  304. package/dist/index-BNW5-ejc.js.gz +0 -0
  305. package/dist/index-BNW5-ejc.js.map +1 -0
  306. package/dist/index-BSwDJeZ0.mjs +1 -0
  307. package/dist/index-BSwDJeZ0.mjs.map +1 -0
  308. package/dist/index-BWafrLdt.mjs +1 -0
  309. package/dist/index-BWafrLdt.mjs.map +1 -0
  310. package/dist/index-BXUxh4lH.mjs +1 -0
  311. package/dist/index-BXUxh4lH.mjs.map +1 -0
  312. package/dist/index-BXmNKW66.mjs +1 -0
  313. package/dist/index-BXmNKW66.mjs.map +1 -0
  314. package/dist/index-BXzcUeFl.js +1 -0
  315. package/dist/index-BXzcUeFl.js.gz +0 -0
  316. package/dist/index-BXzcUeFl.js.map +1 -0
  317. package/dist/index-B_9aNNYJ.js +1 -0
  318. package/dist/index-B_9aNNYJ.js.gz +0 -0
  319. package/dist/index-B_9aNNYJ.js.map +1 -0
  320. package/dist/index-BaagLr_r.mjs +1 -0
  321. package/dist/index-BaagLr_r.mjs.gz +0 -0
  322. package/dist/index-BaagLr_r.mjs.map +1 -0
  323. package/dist/index-Bd_e3_GE.js +1 -0
  324. package/dist/index-Bd_e3_GE.js.map +1 -0
  325. package/dist/index-BeNCTICt.js +1 -0
  326. package/dist/index-BeNCTICt.js.map +1 -0
  327. package/dist/index-Bjm5ZBl3.mjs +1 -0
  328. package/dist/index-Bjm5ZBl3.mjs.gz +0 -0
  329. package/dist/index-Bjm5ZBl3.mjs.map +1 -0
  330. package/dist/index-BklJiGW7.js +1 -0
  331. package/dist/index-BklJiGW7.js.gz +0 -0
  332. package/dist/index-BklJiGW7.js.map +1 -0
  333. package/dist/index-BlcsIt1I.mjs +1 -0
  334. package/dist/index-BlcsIt1I.mjs.map +1 -0
  335. package/dist/index-BmTJZkui.js +1 -0
  336. package/dist/index-BmTJZkui.js.gz +0 -0
  337. package/dist/index-BmTJZkui.js.map +1 -0
  338. package/dist/index-Bt4M5xi5.js +1 -0
  339. package/dist/index-Bt4M5xi5.js.gz +0 -0
  340. package/dist/index-Bt4M5xi5.js.map +1 -0
  341. package/dist/index-BvOascd4.js +1 -0
  342. package/dist/index-BvOascd4.js.gz +0 -0
  343. package/dist/index-BvOascd4.js.map +1 -0
  344. package/dist/index-BzEYHziM.mjs +1 -0
  345. package/dist/index-BzEYHziM.mjs.gz +0 -0
  346. package/dist/index-BzEYHziM.mjs.map +1 -0
  347. package/dist/index-C3nrmBjO.js +1 -0
  348. package/dist/index-C3nrmBjO.js.gz +0 -0
  349. package/dist/index-C3nrmBjO.js.map +1 -0
  350. package/dist/index-C5l7JAoo.mjs +1 -0
  351. package/dist/index-C5l7JAoo.mjs.map +1 -0
  352. package/dist/index-C6bxbndt.mjs +1 -0
  353. package/dist/index-C6bxbndt.mjs.gz +0 -0
  354. package/dist/index-C6bxbndt.mjs.map +1 -0
  355. package/dist/index-C9xWMZfT.js +1 -0
  356. package/dist/index-C9xWMZfT.js.gz +0 -0
  357. package/dist/index-C9xWMZfT.js.map +1 -0
  358. package/dist/index-CGFlRuoY.js +1 -0
  359. package/dist/index-CGFlRuoY.js.map +1 -0
  360. package/dist/index-CI9zzn9o.mjs +1 -0
  361. package/dist/index-CI9zzn9o.mjs.gz +0 -0
  362. package/dist/index-CI9zzn9o.mjs.map +1 -0
  363. package/dist/index-CJlXzWw8.mjs +1 -0
  364. package/dist/index-CJlXzWw8.mjs.gz +0 -0
  365. package/dist/index-CJlXzWw8.mjs.map +1 -0
  366. package/dist/index-CMvZkA7V.mjs +1 -0
  367. package/dist/index-CMvZkA7V.mjs.gz +0 -0
  368. package/dist/index-CMvZkA7V.mjs.map +1 -0
  369. package/dist/index-C_Bq756k.js +1 -0
  370. package/dist/index-C_Bq756k.js.map +1 -0
  371. package/dist/index-Ca-xLPx_.js +1 -0
  372. package/dist/index-Ca-xLPx_.js.map +1 -0
  373. package/dist/index-Cbe_EGna.mjs +1 -0
  374. package/dist/index-Cbe_EGna.mjs.gz +0 -0
  375. package/dist/index-Cbe_EGna.mjs.map +1 -0
  376. package/dist/index-Cci2M-v7.js +1 -0
  377. package/dist/index-Cci2M-v7.js.gz +0 -0
  378. package/dist/index-Cci2M-v7.js.map +1 -0
  379. package/dist/index-CdWcXSH1.js +1 -0
  380. package/dist/index-CdWcXSH1.js.map +1 -0
  381. package/dist/index-Cfi58s_a.mjs +1 -0
  382. package/dist/index-Cfi58s_a.mjs.map +1 -0
  383. package/dist/index-CjN-P9xK.js +1 -0
  384. package/dist/index-CjN-P9xK.js.gz +0 -0
  385. package/dist/index-CjN-P9xK.js.map +1 -0
  386. package/dist/index-CkwQJZld.mjs +1 -0
  387. package/dist/index-CkwQJZld.mjs.map +1 -0
  388. package/dist/index-ClinQMhm.mjs +1 -0
  389. package/dist/index-ClinQMhm.mjs.map +1 -0
  390. package/dist/index-CnLbBexb.js +1 -0
  391. package/dist/index-CnLbBexb.js.gz +0 -0
  392. package/dist/index-CnLbBexb.js.map +1 -0
  393. package/dist/index-Cr3PetI-.mjs +1 -0
  394. package/dist/index-Cr3PetI-.mjs.gz +0 -0
  395. package/dist/index-Cr3PetI-.mjs.map +1 -0
  396. package/dist/index-CtkHqNc-.mjs +1 -0
  397. package/dist/index-CtkHqNc-.mjs.gz +0 -0
  398. package/dist/index-CtkHqNc-.mjs.map +1 -0
  399. package/dist/index-D3ifoSvO.mjs +1 -0
  400. package/dist/index-D3ifoSvO.mjs.gz +0 -0
  401. package/dist/index-D3ifoSvO.mjs.map +1 -0
  402. package/dist/index-D4tKriJ6.mjs +1 -0
  403. package/dist/index-D4tKriJ6.mjs.map +1 -0
  404. package/dist/index-D8HOsx13.js +1 -0
  405. package/dist/index-D8HOsx13.js.map +1 -0
  406. package/dist/index-D9F52pHu.mjs +1 -0
  407. package/dist/index-D9F52pHu.mjs.gz +0 -0
  408. package/dist/index-D9F52pHu.mjs.map +1 -0
  409. package/dist/index-DDkkJRXr.js +1 -0
  410. package/dist/index-DDkkJRXr.js.gz +0 -0
  411. package/dist/index-DDkkJRXr.js.map +1 -0
  412. package/dist/index-DE7y0nJb.js +1 -0
  413. package/dist/index-DE7y0nJb.js.map +1 -0
  414. package/dist/index-DFArDqvd.js +1 -0
  415. package/dist/index-DFArDqvd.js.gz +0 -0
  416. package/dist/index-DFArDqvd.js.map +1 -0
  417. package/dist/index-DI3kpTbZ.js +1 -0
  418. package/dist/index-DI3kpTbZ.js.map +1 -0
  419. package/dist/index-DRftKk-f.js +1 -0
  420. package/dist/index-DRftKk-f.js.gz +0 -0
  421. package/dist/index-DRftKk-f.js.map +1 -0
  422. package/dist/index-DRmQ-L_1.js +1 -0
  423. package/dist/index-DRmQ-L_1.js.map +1 -0
  424. package/dist/index-DTunHIPd.js +1 -0
  425. package/dist/index-DTunHIPd.js.gz +0 -0
  426. package/dist/index-DTunHIPd.js.map +1 -0
  427. package/dist/index-Dc9d_H4k.js +1 -0
  428. package/dist/index-Dc9d_H4k.js.map +1 -0
  429. package/dist/index-DdDdKbUS.js +1 -0
  430. package/dist/index-DdDdKbUS.js.gz +0 -0
  431. package/dist/index-DdDdKbUS.js.map +1 -0
  432. package/dist/index-Ddh7F0O0.mjs +1 -0
  433. package/dist/index-Ddh7F0O0.mjs.gz +0 -0
  434. package/dist/index-Ddh7F0O0.mjs.map +1 -0
  435. package/dist/index-DkHuEE7h.mjs +1 -0
  436. package/dist/index-DkHuEE7h.mjs.gz +0 -0
  437. package/dist/index-DkHuEE7h.mjs.map +1 -0
  438. package/dist/index-Dx15Z58I.mjs +1 -0
  439. package/dist/index-Dx15Z58I.mjs.gz +0 -0
  440. package/dist/index-Dx15Z58I.mjs.map +1 -0
  441. package/dist/index-J_2HDjM_.mjs +1 -0
  442. package/dist/index-J_2HDjM_.mjs.gz +0 -0
  443. package/dist/index-J_2HDjM_.mjs.map +1 -0
  444. package/dist/index-MKaNyXUf.mjs +1 -0
  445. package/dist/index-MKaNyXUf.mjs.gz +0 -0
  446. package/dist/index-MKaNyXUf.mjs.map +1 -0
  447. package/dist/index-Ma5CaYaJ.mjs +1 -0
  448. package/dist/index-Ma5CaYaJ.mjs.gz +0 -0
  449. package/dist/index-Ma5CaYaJ.mjs.map +1 -0
  450. package/dist/index-U4p45J__.js +1 -0
  451. package/dist/index-U4p45J__.js.gz +0 -0
  452. package/dist/index-U4p45J__.js.map +1 -0
  453. package/dist/index-VAmsjOkF.js +1 -0
  454. package/dist/index-VAmsjOkF.js.map +1 -0
  455. package/dist/index-axWnmdZg.mjs +1 -0
  456. package/dist/index-axWnmdZg.mjs.gz +0 -0
  457. package/dist/index-axWnmdZg.mjs.map +1 -0
  458. package/dist/index-bRFfi62s.mjs +1 -0
  459. package/dist/index-bRFfi62s.mjs.gz +0 -0
  460. package/dist/index-bRFfi62s.mjs.map +1 -0
  461. package/dist/index-bwrWhoSW.js +1 -0
  462. package/dist/index-bwrWhoSW.js.map +1 -0
  463. package/dist/index-dVKTvnms.mjs +1 -0
  464. package/dist/index-dVKTvnms.mjs.gz +0 -0
  465. package/dist/index-dVKTvnms.mjs.map +1 -0
  466. package/dist/index-gcyAUDW6.mjs +1 -0
  467. package/dist/index-gcyAUDW6.mjs.map +1 -0
  468. package/dist/index-kuyYmMvk.js +1 -0
  469. package/dist/index-kuyYmMvk.js.gz +0 -0
  470. package/dist/index-kuyYmMvk.js.map +1 -0
  471. package/dist/index-lF7YzYiW.js +1 -0
  472. package/dist/index-lF7YzYiW.js.gz +0 -0
  473. package/dist/index-lF7YzYiW.js.map +1 -0
  474. package/dist/index.js +1 -0
  475. package/dist/index.js.map +1 -0
  476. package/dist/index.mjs +1 -0
  477. package/dist/index.mjs.map +1 -0
  478. package/dist/index.vue_vue_type_script_setup_true_lang--5y1a_ul.js +1 -0
  479. package/dist/index.vue_vue_type_script_setup_true_lang--5y1a_ul.js.gz +0 -0
  480. package/dist/index.vue_vue_type_script_setup_true_lang--5y1a_ul.js.map +1 -0
  481. package/dist/index.vue_vue_type_script_setup_true_lang-12lO_K3Y.js +1 -0
  482. package/dist/index.vue_vue_type_script_setup_true_lang-12lO_K3Y.js.gz +0 -0
  483. package/dist/index.vue_vue_type_script_setup_true_lang-12lO_K3Y.js.map +1 -0
  484. package/dist/index.vue_vue_type_script_setup_true_lang-9-wVHX_J.mjs +1 -0
  485. package/dist/index.vue_vue_type_script_setup_true_lang-9-wVHX_J.mjs.gz +0 -0
  486. package/dist/index.vue_vue_type_script_setup_true_lang-9-wVHX_J.mjs.map +1 -0
  487. package/dist/index.vue_vue_type_script_setup_true_lang-BauM3Znx.mjs +1 -0
  488. package/dist/index.vue_vue_type_script_setup_true_lang-BauM3Znx.mjs.gz +0 -0
  489. package/dist/index.vue_vue_type_script_setup_true_lang-BauM3Znx.mjs.map +1 -0
  490. package/dist/index.vue_vue_type_script_setup_true_lang-BsZvlPof.js +1 -0
  491. package/dist/index.vue_vue_type_script_setup_true_lang-BsZvlPof.js.gz +0 -0
  492. package/dist/index.vue_vue_type_script_setup_true_lang-BsZvlPof.js.map +1 -0
  493. package/dist/index.vue_vue_type_script_setup_true_lang-CQZeaLjV.js +1 -0
  494. package/dist/index.vue_vue_type_script_setup_true_lang-CQZeaLjV.js.gz +0 -0
  495. package/dist/index.vue_vue_type_script_setup_true_lang-CQZeaLjV.js.map +1 -0
  496. package/dist/index.vue_vue_type_script_setup_true_lang-Dcl-lBUE.mjs +1 -0
  497. package/dist/index.vue_vue_type_script_setup_true_lang-Dcl-lBUE.mjs.gz +0 -0
  498. package/dist/index.vue_vue_type_script_setup_true_lang-Dcl-lBUE.mjs.map +1 -0
  499. package/dist/index.vue_vue_type_script_setup_true_lang-Pu4orxEq.mjs +1 -0
  500. package/dist/index.vue_vue_type_script_setup_true_lang-Pu4orxEq.mjs.gz +0 -0
  501. package/dist/index.vue_vue_type_script_setup_true_lang-Pu4orxEq.mjs.map +1 -0
  502. package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-CAPC81ra.mjs +1 -0
  503. package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-CAPC81ra.mjs.gz +0 -0
  504. package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-CAPC81ra.mjs.map +1 -0
  505. package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-DsMQjCAy.js +1 -0
  506. package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-DsMQjCAy.js.gz +0 -0
  507. package/dist/index.vue_vue_type_script_setup_true_name_testtablecomponent_lang-DsMQjCAy.js.map +1 -0
  508. package/dist/link-8F3PAF-a.js +1 -0
  509. package/dist/link-8F3PAF-a.js.gz +0 -0
  510. package/dist/link-8F3PAF-a.js.map +1 -0
  511. package/dist/link-Yc7Kpo76.mjs +1 -0
  512. package/dist/link-Yc7Kpo76.mjs.gz +0 -0
  513. package/dist/link-Yc7Kpo76.mjs.map +1 -0
  514. package/dist/list-D9ae7seo.mjs +1 -0
  515. package/dist/list-D9ae7seo.mjs.gz +0 -0
  516. package/dist/list-D9ae7seo.mjs.map +1 -0
  517. package/dist/list-Dow9Rjfk.js +1 -0
  518. package/dist/list-Dow9Rjfk.js.gz +0 -0
  519. package/dist/list-Dow9Rjfk.js.map +1 -0
  520. package/dist/logo-mini-B38ustl2.js +1 -0
  521. package/dist/logo-mini-B38ustl2.js.gz +0 -0
  522. package/dist/logo-mini-B38ustl2.js.map +1 -0
  523. package/dist/logo-mini-Bl032aC-.mjs +1 -0
  524. package/dist/logo-mini-Bl032aC-.mjs.gz +0 -0
  525. package/dist/logo-mini-Bl032aC-.mjs.map +1 -0
  526. package/dist/main-CPdfe1pW.mjs +1 -0
  527. package/dist/main-CPdfe1pW.mjs.gz +0 -0
  528. package/dist/main-CPdfe1pW.mjs.map +1 -0
  529. package/dist/main-i2ZjgX5U.js +1 -0
  530. package/dist/main-i2ZjgX5U.js.gz +0 -0
  531. package/dist/main-i2ZjgX5U.js.map +1 -0
  532. package/dist/mobile-CqmHQbJ6.js +1 -0
  533. package/dist/mobile-CqmHQbJ6.js.gz +0 -0
  534. package/dist/mobile-CqmHQbJ6.js.map +1 -0
  535. package/dist/mobile-DSG1E0yR.mjs +1 -0
  536. package/dist/mobile-DSG1E0yR.mjs.gz +0 -0
  537. package/dist/mobile-DSG1E0yR.mjs.map +1 -0
  538. package/dist/parent-BbMA3BPH.js +1 -0
  539. package/dist/parent-BbMA3BPH.js.gz +0 -0
  540. package/dist/parent-BbMA3BPH.js.map +1 -0
  541. package/dist/parent-DA1oPHtc.mjs +1 -0
  542. package/dist/parent-DA1oPHtc.mjs.gz +0 -0
  543. package/dist/parent-DA1oPHtc.mjs.map +1 -0
  544. package/dist/roleItem-CWeXcpPS.mjs +1 -0
  545. package/dist/roleItem-CWeXcpPS.mjs.gz +0 -0
  546. package/dist/roleItem-CWeXcpPS.mjs.map +1 -0
  547. package/dist/roleItem-DjJV5a4d.js +1 -0
  548. package/dist/roleItem-DjJV5a4d.js.gz +0 -0
  549. package/dist/roleItem-DjJV5a4d.js.map +1 -0
  550. package/dist/saveForm-BwOCcI7T.mjs +1 -0
  551. package/dist/saveForm-BwOCcI7T.mjs.map +1 -0
  552. package/dist/saveForm-DXV66xTl.js +1 -0
  553. package/dist/saveForm-DXV66xTl.js.map +1 -0
  554. package/dist/saveForm.vue_vue_type_script_setup_true_lang-BLp4BfjS.js +1 -0
  555. package/dist/saveForm.vue_vue_type_script_setup_true_lang-BLp4BfjS.js.gz +0 -0
  556. package/dist/saveForm.vue_vue_type_script_setup_true_lang-BLp4BfjS.js.map +1 -0
  557. package/dist/saveForm.vue_vue_type_script_setup_true_lang-CeijUxMQ.mjs +1 -0
  558. package/dist/saveForm.vue_vue_type_script_setup_true_lang-CeijUxMQ.mjs.gz +0 -0
  559. package/dist/saveForm.vue_vue_type_script_setup_true_lang-CeijUxMQ.mjs.map +1 -0
  560. package/dist/scan-1M3t7I5S.js +1 -0
  561. package/dist/scan-1M3t7I5S.js.gz +0 -0
  562. package/dist/scan-1M3t7I5S.js.map +1 -0
  563. package/dist/scan-2n2P5UFK.mjs +1 -0
  564. package/dist/scan-2n2P5UFK.mjs.gz +0 -0
  565. package/dist/scan-2n2P5UFK.mjs.map +1 -0
  566. package/dist/search-C9A88JD-.js +1 -0
  567. package/dist/search-C9A88JD-.js.gz +0 -0
  568. package/dist/search-C9A88JD-.js.map +1 -0
  569. package/dist/search-CJtqW1Em.mjs +1 -0
  570. package/dist/search-CJtqW1Em.mjs.gz +0 -0
  571. package/dist/search-CJtqW1Em.mjs.map +1 -0
  572. package/dist/selectConfig-CfldoXSW.mjs +1 -0
  573. package/dist/selectConfig-CfldoXSW.mjs.gz +0 -0
  574. package/dist/selectConfig-CfldoXSW.mjs.map +1 -0
  575. package/dist/selectConfig-D-DU5vyZ.js +1 -0
  576. package/dist/selectConfig-D-DU5vyZ.js.gz +0 -0
  577. package/dist/selectConfig-D-DU5vyZ.js.map +1 -0
  578. package/dist/subItem-Bx6nrs-W.js +1 -0
  579. package/dist/subItem-Bx6nrs-W.js.gz +0 -0
  580. package/dist/subItem-Bx6nrs-W.js.map +1 -0
  581. package/dist/subItem-DG6wOFtK.mjs +1 -0
  582. package/dist/subItem-DG6wOFtK.mjs.gz +0 -0
  583. package/dist/subItem-DG6wOFtK.mjs.map +1 -0
  584. package/dist/tagsView-BsiagX1g.js +1 -0
  585. package/dist/tagsView-BsiagX1g.js.gz +0 -0
  586. package/dist/tagsView-BsiagX1g.js.map +1 -0
  587. package/dist/tagsView-CNZAZNvP.mjs +1 -0
  588. package/dist/tagsView-CNZAZNvP.mjs.gz +0 -0
  589. package/dist/tagsView-CNZAZNvP.mjs.map +1 -0
  590. package/dist/transverse-Bw3MzV2Q.mjs +1 -0
  591. package/dist/transverse-Bw3MzV2Q.mjs.gz +0 -0
  592. package/dist/transverse-Bw3MzV2Q.mjs.map +1 -0
  593. package/dist/transverse-D8T9I9T0.js +1 -0
  594. package/dist/transverse-D8T9I9T0.js.gz +0 -0
  595. package/dist/transverse-D8T9I9T0.js.map +1 -0
  596. package/dist/trtcUI-C7LpCHW2.js +1 -0
  597. package/dist/trtcUI-C7LpCHW2.js.gz +0 -0
  598. package/dist/trtcUI-C7LpCHW2.js.map +1 -0
  599. package/dist/trtcUI-Y35u5lbf.mjs +1 -0
  600. package/dist/trtcUI-Y35u5lbf.mjs.gz +0 -0
  601. package/dist/trtcUI-Y35u5lbf.mjs.map +1 -0
  602. package/dist/uploadAvatar-BGiT0PmT.mjs +1 -0
  603. package/dist/uploadAvatar-BGiT0PmT.mjs.gz +0 -0
  604. package/dist/uploadAvatar-BGiT0PmT.mjs.map +1 -0
  605. package/dist/uploadAvatar-UlB9U3pn.js +1 -0
  606. package/dist/uploadAvatar-UlB9U3pn.js.gz +0 -0
  607. package/dist/uploadAvatar-UlB9U3pn.js.map +1 -0
  608. package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-1q5Jq5S0.js +1 -0
  609. package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-1q5Jq5S0.js.gz +0 -0
  610. package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-1q5Jq5S0.js.map +1 -0
  611. package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-Dmzfac6b.mjs +1 -0
  612. package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-Dmzfac6b.mjs.gz +0 -0
  613. package/dist/uploadAvatar.vue_vue_type_style_index_0_scoped_99513ec9_lang-Dmzfac6b.mjs.map +1 -0
  614. package/dist/user-Cc2PF_h0.mjs +1 -0
  615. package/dist/user-Cc2PF_h0.mjs.gz +0 -0
  616. package/dist/user-Cc2PF_h0.mjs.map +1 -0
  617. package/dist/user-CqzkZzOA.js +1 -0
  618. package/dist/user-CqzkZzOA.js.gz +0 -0
  619. package/dist/user-CqzkZzOA.js.map +1 -0
  620. package/dist/userNews-CDk_AMjc.mjs +1 -0
  621. package/dist/userNews-CDk_AMjc.mjs.gz +0 -0
  622. package/dist/userNews-CDk_AMjc.mjs.map +1 -0
  623. package/dist/userNews-DxfIY3B0.js +1 -0
  624. package/dist/userNews-DxfIY3B0.js.gz +0 -0
  625. package/dist/userNews-DxfIY3B0.js.map +1 -0
  626. package/dist/userSelect-C4uV-44Y.js +1 -0
  627. package/dist/userSelect-C4uV-44Y.js.map +1 -0
  628. package/dist/userSelect-DWo8Si5v.mjs +1 -0
  629. package/dist/userSelect-DWo8Si5v.mjs.map +1 -0
  630. package/dist/userSelect.vue_vue_type_script_setup_true_lang-DH1DQONF.mjs +1 -0
  631. package/dist/userSelect.vue_vue_type_script_setup_true_lang-DH1DQONF.mjs.gz +0 -0
  632. package/dist/userSelect.vue_vue_type_script_setup_true_lang-DH1DQONF.mjs.map +1 -0
  633. package/dist/userSelect.vue_vue_type_script_setup_true_lang-DrzKVQFK.js +1 -0
  634. package/dist/userSelect.vue_vue_type_script_setup_true_lang-DrzKVQFK.js.gz +0 -0
  635. package/dist/userSelect.vue_vue_type_script_setup_true_lang-DrzKVQFK.js.map +1 -0
  636. package/dist/vertical-BmaGLl-7.mjs +1 -0
  637. package/dist/vertical-BmaGLl-7.mjs.gz +0 -0
  638. package/dist/vertical-BmaGLl-7.mjs.map +1 -0
  639. package/dist/vertical-DddbvLcE.js +1 -0
  640. package/dist/vertical-DddbvLcE.js.gz +0 -0
  641. package/dist/vertical-DddbvLcE.js.map +1 -0
  642. package/package.json +1 -1
@@ -1265,3 +1265,4 @@ const et = /* @__PURE__ */ B(G, [["render", tt], ["__scopeId", "data-v-168a3964"
1265
1265
  export {
1266
1266
  nt as default
1267
1267
  };
1268
+ //# sourceMappingURL=uploadAvatar-BGiT0PmT.mjs.map
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadAvatar-BGiT0PmT.mjs","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","e","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]}
@@ -5,3 +5,4 @@
5
5
  scale(${i})translate3d(${h}px, ${r}px, ${o}px)rotateZ(${this.rotate*90}deg)">
6
6
  </div>
7
7
  </div>`,this.$emit("realTime",s),this.$emit("real-time",s)},reload(){let e=new Image;e.onload=()=>{this.w=parseFloat(window.getComputedStyle(this.$refs.cropper).width),this.h=parseFloat(window.getComputedStyle(this.$refs.cropper).height),this.trueWidth=e.width,this.trueHeight=e.height,this.original?this.scale=1:this.scale=this.checkedMode(),this.$nextTick(()=>{this.x=-(this.trueWidth-this.trueWidth*this.scale)/2+(this.w-this.trueWidth*this.scale)/2,this.y=-(this.trueHeight-this.trueHeight*this.scale)/2+(this.h-this.trueHeight*this.scale)/2,this.loading=!1,this.autoCrop&&this.goAutoCrop(),this.$emit("img-load","success"),this.$emit("imgLoad","success"),setTimeout(()=>{this.showPreview()},20)})},e.onerror=()=>{this.$emit("imgLoad","error"),this.$emit("img-load","error")},e.src=this.imgs},checkedMode(){let e=1,t=this.trueWidth,i=this.trueHeight;const s=this.mode.split(" ");switch(s[0]){case"contain":this.trueWidth>this.w&&(e=this.w/this.trueWidth),this.trueHeight*e>this.h&&(e=this.h/this.trueHeight);break;case"cover":t=this.w,e=t/this.trueWidth,i=i*e,i<this.h&&(i=this.h,e=i/this.trueHeight);break;default:try{let h=s[0];if(h.search("px")!==-1){h=h.replace("px",""),t=parseFloat(h);const r=t/this.trueWidth;let o=1,l=s[1];l.search("px")!==-1&&(l=l.replace("px",""),i=parseFloat(l),o=i/this.trueHeight),e=Math.min(r,o)}if(h.search("%")!==-1&&(h=h.replace("%",""),t=parseFloat(h)/100*this.w,e=t/this.trueWidth),s.length===2&&h==="auto"){let r=s[1];r.search("px")!==-1&&(r=r.replace("px",""),i=parseFloat(r),e=i/this.trueHeight),r.search("%")!==-1&&(r=r.replace("%",""),i=parseFloat(r)/100*this.h,e=i/this.trueHeight)}}catch{e=1}}return e},goAutoCrop(e,t){if(this.imgs===""||this.imgs===null)return;this.clearCrop(),this.cropping=!0;let i=this.w,s=this.h;if(this.centerBox){const o=Math.abs(this.rotate)%2>0;let l=(o?this.trueHeight:this.trueWidth)*this.scale,n=(o?this.trueWidth:this.trueHeight)*this.scale;i=l<i?l:i,s=n<s?n:s}var h=e||parseFloat(this.autoCropWidth),r=t||parseFloat(this.autoCropHeight);(h===0||r===0)&&(h=i*.8,r=s*.8),h=h>i?i:h,r=r>s?s:r,this.fixed&&(r=h/this.fixedNumber[0]*this.fixedNumber[1]),r>this.h&&(r=this.h,h=r/this.fixedNumber[1]*this.fixedNumber[0]),this.changeCrop(h,r)},changeCrop(e,t){if(this.centerBox){let i=this.getImgAxis();e>i.x2-i.x1&&(e=i.x2-i.x1,t=e/this.fixedNumber[0]*this.fixedNumber[1]),t>i.y2-i.y1&&(t=i.y2-i.y1,e=t/this.fixedNumber[1]*this.fixedNumber[0])}this.cropW=e,this.cropH=t,this.checkCropLimitSize(),this.$nextTick(()=>{this.cropOffsertX=(this.w-this.cropW)/2,this.cropOffsertY=(this.h-this.cropH)/2,this.centerBox&&this.moveCrop(null,!0)})},refresh(){this.img,this.imgs="",this.scale=1,this.crop=!1,this.rotate=0,this.w=0,this.h=0,this.trueWidth=0,this.trueHeight=0,this.clearCrop(),this.$nextTick(()=>{this.checkedImg()})},rotateLeft(){this.rotate=this.rotate<=-3?0:this.rotate-1},rotateRight(){this.rotate=this.rotate>=3?0:this.rotate+1},rotateClear(){this.rotate=0},checkoutImgAxis(e,t,i){e=e||this.x,t=t||this.y,i=i||this.scale;let s=!0;if(this.centerBox){let h=this.getImgAxis(e,t,i),r=this.getCropAxis();h.x1>=r.x1&&(s=!1),h.x2<=r.x2&&(s=!1),h.y1>=r.y1&&(s=!1),h.y2<=r.y2&&(s=!1)}return s}},mounted(){this.support="onwheel"in document.createElement("div")?"wheel":document.onmousewheel!==void 0?"mousewheel":"DOMMouseScroll";let e=this;var t=navigator.userAgent;this.isIOS=!!t.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(i,s,h){for(var r=atob(this.toDataURL(s,h).split(",")[1]),o=r.length,l=new Uint8Array(o),n=0;n<o;n++)l[n]=r.charCodeAt(n);i(new Blob([l],{type:e.type||"image/png"}))}}),this.showPreview(),this.checkedImg()},destroyed(){window.removeEventListener("mousemove",this.moveCrop),window.removeEventListener("mouseup",this.leaveCrop),window.removeEventListener("touchmove",this.moveCrop),window.removeEventListener("touchend",this.leaveCrop),this.cancelScale()}},M={key:0,class:"cropper-box"},S=["src"],N={class:"cropper-view-box"},I=["src"],E={key:1};function k(e,t,i,s,h,r){return a.openBlock(),a.createElementBlock("div",{class:"vue-cropper",ref:"cropper",onMouseover:t[28]||(t[28]=(...o)=>r.scaleImg&&r.scaleImg(...o)),onMouseout:t[29]||(t[29]=(...o)=>r.cancelScale&&r.cancelScale(...o))},[e.imgs?(a.openBlock(),a.createElementBlock("div",M,[a.withDirectives(a.createElementVNode("div",{class:"cropper-box-canvas",style:a.normalizeStyle({width:e.trueWidth+"px",height:e.trueHeight+"px",transform:"scale("+e.scale+","+e.scale+") translate3d("+e.x/e.scale+"px,"+e.y/e.scale+"px,0)rotateZ("+e.rotate*90+"deg)"})},[a.createElementVNode("img",{src:e.imgs,alt:"cropper-img",ref:"cropperImg"},null,8,S)],4),[[a.vShow,!e.loading]])])):a.createCommentVNode("",!0),a.createElementVNode("div",{class:a.normalizeClass(["cropper-drag-box",{"cropper-move":e.move&&!e.crop,"cropper-crop":e.crop,"cropper-modal":e.cropping}]),onMousedown:t[0]||(t[0]=(...o)=>r.startMove&&r.startMove(...o)),onTouchstart:t[1]||(t[1]=(...o)=>r.startMove&&r.startMove(...o))},null,34),a.withDirectives(a.createElementVNode("div",{class:"cropper-crop-box",style:a.normalizeStyle({width:e.cropW+"px",height:e.cropH+"px",transform:"translate3d("+e.cropOffsertX+"px,"+e.cropOffsertY+"px,0)"})},[a.createElementVNode("span",N,[a.createElementVNode("img",{style:a.normalizeStyle({width:e.trueWidth+"px",height:e.trueHeight+"px",transform:"scale("+e.scale+","+e.scale+") translate3d("+(e.x-e.cropOffsertX)/e.scale+"px,"+(e.y-e.cropOffsertY)/e.scale+"px,0)rotateZ("+e.rotate*90+"deg)"}),src:e.imgs,alt:"cropper-img"},null,12,I)]),a.createElementVNode("span",{class:"cropper-face cropper-move",onMousedown:t[2]||(t[2]=(...o)=>r.cropMove&&r.cropMove(...o)),onTouchstart:t[3]||(t[3]=(...o)=>r.cropMove&&r.cropMove(...o))},null,32),i.info?(a.openBlock(),a.createElementBlock("span",{key:0,class:"crop-info",style:a.normalizeStyle({top:r.cropInfo.top})},a.toDisplayString(r.cropInfo.width)+" × "+a.toDisplayString(r.cropInfo.height),5)):a.createCommentVNode("",!0),i.fixedBox?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("span",E,[a.createElementVNode("span",{class:"crop-line line-w",onMousedown:t[4]||(t[4]=o=>r.changeCropSize(o,!1,!0,0,1)),onTouchstart:t[5]||(t[5]=o=>r.changeCropSize(o,!1,!0,0,1))},null,32),a.createElementVNode("span",{class:"crop-line line-a",onMousedown:t[6]||(t[6]=o=>r.changeCropSize(o,!0,!1,1,0)),onTouchstart:t[7]||(t[7]=o=>r.changeCropSize(o,!0,!1,1,0))},null,32),a.createElementVNode("span",{class:"crop-line line-s",onMousedown:t[8]||(t[8]=o=>r.changeCropSize(o,!1,!0,0,2)),onTouchstart:t[9]||(t[9]=o=>r.changeCropSize(o,!1,!0,0,2))},null,32),a.createElementVNode("span",{class:"crop-line line-d",onMousedown:t[10]||(t[10]=o=>r.changeCropSize(o,!0,!1,2,0)),onTouchstart:t[11]||(t[11]=o=>r.changeCropSize(o,!0,!1,2,0))},null,32),a.createElementVNode("span",{class:"crop-point point1",onMousedown:t[12]||(t[12]=o=>r.changeCropSize(o,!0,!0,1,1)),onTouchstart:t[13]||(t[13]=o=>r.changeCropSize(o,!0,!0,1,1))},null,32),a.createElementVNode("span",{class:"crop-point point2",onMousedown:t[14]||(t[14]=o=>r.changeCropSize(o,!1,!0,0,1)),onTouchstart:t[15]||(t[15]=o=>r.changeCropSize(o,!1,!0,0,1))},null,32),a.createElementVNode("span",{class:"crop-point point3",onMousedown:t[16]||(t[16]=o=>r.changeCropSize(o,!0,!0,2,1)),onTouchstart:t[17]||(t[17]=o=>r.changeCropSize(o,!0,!0,2,1))},null,32),a.createElementVNode("span",{class:"crop-point point4",onMousedown:t[18]||(t[18]=o=>r.changeCropSize(o,!0,!1,1,0)),onTouchstart:t[19]||(t[19]=o=>r.changeCropSize(o,!0,!1,1,0))},null,32),a.createElementVNode("span",{class:"crop-point point5",onMousedown:t[20]||(t[20]=o=>r.changeCropSize(o,!0,!1,2,0)),onTouchstart:t[21]||(t[21]=o=>r.changeCropSize(o,!0,!1,2,0))},null,32),a.createElementVNode("span",{class:"crop-point point6",onMousedown:t[22]||(t[22]=o=>r.changeCropSize(o,!0,!0,1,2)),onTouchstart:t[23]||(t[23]=o=>r.changeCropSize(o,!0,!0,1,2))},null,32),a.createElementVNode("span",{class:"crop-point point7",onMousedown:t[24]||(t[24]=o=>r.changeCropSize(o,!1,!0,0,2)),onTouchstart:t[25]||(t[25]=o=>r.changeCropSize(o,!1,!0,0,2))},null,32),a.createElementVNode("span",{class:"crop-point point8",onMousedown:t[26]||(t[26]=o=>r.changeCropSize(o,!0,!0,2,2)),onTouchstart:t[27]||(t[27]=o=>r.changeCropSize(o,!0,!0,2,2))},null,32)]))],4),[[a.vShow,e.cropping]])],544)}const L=y._export_sfc(Y,[["render",k],["__scopeId","data-v-168a3964"]]),T={class:"h-full"},z={class:"avatar-upload-preview"},V=["src"],A=a.defineComponent({__name:"uploadAvatar",props:{avatar:{default:""},close:{type:Function,default:close},proxyId:{default:""}},setup(e){const{postSinglefile:t,postUpdateFile:i}=y.useFileController(),s=e;let h=a.ref({});a.onMounted(async()=>{h.value=await y.systemStore.get("userInfo")});let{avatar:r}=a.toRefs(s);const o=a.reactive({img:"",autoCrop:!0,autoCropWidth:200,autoCropHeight:200,fixedBox:!1,outputSize:.5,outputType:"jpeg",canScale:!1,fixed:!1,fixedNumber:[1,1],full:!0,canMoveBox:!1,original:!1,centerBox:!1,infoTrue:!0,filename:""}),l=a.ref({}),n=a.ref({});a.ref(!1);let p=d=>{d=="left"&&n.value.rotateLeft(),d=="right"&&n.value.rotateRight()},c=d=>{const u=d||1;n.value.changeScale(u)},f=()=>{n.value.refresh()};const g=d=>{l.value=d};let C=()=>{},m=d=>{if(["image/png","image/jpg","image/jpeg","image/PNG","image/JPG","image/JPEG","image/gif"].includes(d.type)){const w=new FileReader;w.readAsDataURL(d),w.onload=()=>{o.img=w.result,o.filename=d.name}}else return y.ElMessage.error("图片格式有误,请重新上传"),!1},v=()=>{o.img||y.ElMessage.warning("请先选择图片"),n.value.getCropBlob(async d=>{const u=await t({data:{file:d},proxy:s.proxyId}),w=await i({data:{id:h.value.id,attchIdArrStr:u.data.id,attachType:2},proxy:s.proxyId});s.close(w)})};return a.onMounted(()=>{setTimeout(()=>{o.img=r.value},100)}),(d,u)=>{const w=a.resolveComponent("el-col"),W=a.resolveComponent("el-row"),H=a.resolveComponent("bc-icon"),x=a.resolveComponent("el-button"),X=a.resolveComponent("hs-upload");return a.openBlock(),a.createElementBlock("div",T,[a.createVNode(W,null,{default:a.withCtx(()=>[a.createVNode(w,{xs:24,md:13,style:{height:"350px"}},{default:a.withCtx(()=>[a.createVNode(L,{ref_key:"cropperRef",ref:n,img:o.img,info:!0,infoTrue:o.infoTrue,"auto-crop":o.autoCrop,"fixed-box":o.fixedBox,fixedNumber:o.fixedNumber,fixed:o.fixed,centerBox:o.centerBox,outputType:"png",onRealTime:g},null,8,["img","infoTrue","auto-crop","fixed-box","fixedNumber","fixed","centerBox"])]),_:1}),a.createVNode(w,{xs:24,md:11,style:{height:"350px"}},{default:a.withCtx(()=>[a.createElementVNode("div",z,[a.createElementVNode("img",{src:l.value.url,style:a.normalizeStyle(l.value.img)},null,12,V)])]),_:1})]),_:1}),a.createVNode(W,{class:"ptb2 py-3"},{default:a.withCtx(()=>[a.createVNode(w,{lg:2,md:2},{default:a.withCtx(()=>[a.createVNode(X,{action:"#","http-request":a.unref(C),"show-file-list":!1,"before-upload":a.unref(m),accept:"image/*"},{default:a.withCtx(()=>[a.createVNode(x,{size:"default"},{default:a.withCtx(()=>[a.createTextVNode(" 选择 "),a.createVNode(H,{name:"ele-UploadFilled"})]),_:1})]),_:1},8,["http-request","before-upload"])]),_:1}),a.createVNode(w,{lg:{span:1,offset:1},md:2},{default:a.withCtx(()=>[a.createVNode(x,{size:"default",icon:"ele-Plus",onClick:u[0]||(u[0]=b=>a.unref(c)(1))})]),_:1}),a.createVNode(w,{lg:{span:1,offset:1},md:2},{default:a.withCtx(()=>[a.createVNode(x,{size:"default",icon:"ele-Minus",onClick:u[1]||(u[1]=b=>a.unref(c)(-1))})]),_:1}),a.createVNode(w,{lg:{span:1,offset:1},md:2},{default:a.withCtx(()=>[a.createVNode(x,{size:"default",icon:"ele-RefreshLeft",onClick:u[2]||(u[2]=b=>a.unref(p)("left"))})]),_:1}),a.createVNode(w,{lg:{span:1,offset:1},md:2},{default:a.withCtx(()=>[a.createVNode(x,{size:"default",icon:"ele-RefreshRight",onClick:u[3]||(u[3]=b=>a.unref(p)("right"))})]),_:1}),a.createVNode(w,{lg:{span:1,offset:1},md:2},{default:a.withCtx(()=>[a.createVNode(x,{size:"default",onClick:u[4]||(u[4]=b=>a.unref(f)())},{default:a.withCtx(()=>[a.createTextVNode("重 置")]),_:1})]),_:1}),a.createVNode(w,{lg:{span:1,offset:7},md:2},{default:a.withCtx(()=>[a.createVNode(x,{size:"default",type:"primary",onClick:u[5]||(u[5]=b=>a.unref(v)())},{default:a.withCtx(()=>[a.createTextVNode("提 交")]),_:1})]),_:1})]),_:1})])}}}),B=y._export_sfc(A,[["__scopeId","data-v-99513ec9"]]);exports.default=B;
8
+ //# sourceMappingURL=uploadAvatar-UlB9U3pn.js.map
Binary file