diff --git a/src/components/UploadInput.vue b/src/components/UploadInput.vue
index baa98066..78f5da85 100644
--- a/src/components/UploadInput.vue
+++ b/src/components/UploadInput.vue
@@ -39,6 +39,7 @@ export default defineComponent({
return {
handleClick,
handleChange,
+ inputRef,
}
},
})
diff --git a/src/views/Editor/CanvasTool/index.vue b/src/views/Editor/CanvasTool/index.vue
index 841a25d6..8382a2ca 100644
--- a/src/views/Editor/CanvasTool/index.vue
+++ b/src/views/Editor/CanvasTool/index.vue
@@ -7,7 +7,9 @@
-
+ insertImageElement(files)">
+
+
@@ -26,11 +28,18 @@
import { defineComponent, computed } from 'vue'
import { useStore } from 'vuex'
import { State } from '@/store'
+import { getImageDataURL } from '@/utils/image'
import useScaleCanvas from '@/hooks/useScaleCanvas'
import useHistorySnapshot from '@/hooks/useHistorySnapshot'
+import useCreateElement from '@/hooks/useCreateElement'
+
+import UploadInput from '@/components/UploadInput.vue'
export default defineComponent({
name: 'canvas-tool',
+ components: {
+ UploadInput,
+ },
setup() {
const store = useStore()
const canvasScale = computed(() => store.state.canvasScale)
@@ -42,6 +51,14 @@ export default defineComponent({
const { scaleCanvas } = useScaleCanvas()
const { redo, undo } = useHistorySnapshot()
+ const { createImageElement } = useCreateElement()
+
+ const insertImageElement = (files: File[]) => {
+ const imageFile = files[0]
+ if(!imageFile) return
+ getImageDataURL(imageFile).then(dataURL => createImageElement(dataURL))
+ }
+
return {
scaleCanvas,
canvasScalePercentage,
@@ -49,6 +66,7 @@ export default defineComponent({
canRedo,
redo,
undo,
+ insertImageElement,
}
},
})
@@ -74,6 +92,7 @@ export default defineComponent({
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
+ display: flex;
}
.handler-item {
margin: 0 10px;