From 700306bb45d5f2b975c20bd2581fb87a210e589c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=95=9D=E8=A3=B3?= <1923740402@qq.com> Date: Sat, 10 Apr 2021 21:19:28 +0800 Subject: [PATCH] fix: Improve the picture cropping component (#463) * fix: Improve the picture cropping component * fix: component /verify/rotate text show problem --- src/components/Cropper/src/index.vue | 21 +++++++++-- src/components/Verify/src/ImgRotate.tsx | 2 +- src/views/demo/comp/cropper/index.vue | 48 ++++++++++++++++++++++--- 3 files changed, 62 insertions(+), 9 deletions(-) diff --git a/src/components/Cropper/src/index.vue b/src/components/Cropper/src/index.vue index 9f7f60ad..60d4a396 100644 --- a/src/components/Cropper/src/index.vue +++ b/src/components/Cropper/src/index.vue @@ -69,9 +69,9 @@ default: {}, }, }, - setup(props) { + setup(props, ctx) { const imgElRef = ref>(null); - const cropper = ref>(null); + const cropper: any = ref>(null); const isReady = ref(false); @@ -106,9 +106,24 @@ }); } + // event: return base64 and width and height information after cropping + const croppered = (): void => { + let imgInfo = cropper.value.getData(); + cropper.value.getCroppedCanvas().toBlob(blob => { + let fileReader: FileReader = new FileReader() + fileReader.onloadend = (e: any) => { + ctx.emit("cropperedInfo", { + imgBase64: e.target.result, + imgInfo + }) + } + fileReader.readAsDataURL(blob) + }, 'image/jpeg') + } + onMounted(init); - return { imgElRef, getWrapperStyle, getImageStyle, isReady }; + return { imgElRef, getWrapperStyle, getImageStyle, isReady, croppered }; }, }); diff --git a/src/components/Verify/src/ImgRotate.tsx b/src/components/Verify/src/ImgRotate.tsx index 166396e4..fea4dda6 100644 --- a/src/components/Verify/src/ImgRotate.tsx +++ b/src/components/Verify/src/ImgRotate.tsx @@ -152,7 +152,7 @@ export default defineComponent({ )} {!state.showTip && !state.draged && ( - t('redoTip') + {t('component.verify.redoTip')} )} - +
+ + 裁剪 + +
+

裁剪后图片信息:{{ info }}

+ + -- GitLab