mirror of
https://github.com/pipipi-pikachu/PPTist.git
synced 2025-04-15 02:20:00 +08:00
添加插入图片功能
This commit is contained in:
parent
8bf5744e03
commit
665e26c833
@ -39,6 +39,7 @@ export default defineComponent({
|
|||||||
return {
|
return {
|
||||||
handleClick,
|
handleClick,
|
||||||
handleChange,
|
handleChange,
|
||||||
|
inputRef,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -7,7 +7,9 @@
|
|||||||
|
|
||||||
<div class="add-element-handler">
|
<div class="add-element-handler">
|
||||||
<IconFont class="handler-item" type="icon-font-size" />
|
<IconFont class="handler-item" type="icon-font-size" />
|
||||||
|
<UploadInput @change="files => insertImageElement(files)">
|
||||||
<IconFont class="handler-item" type="icon-image" />
|
<IconFont class="handler-item" type="icon-image" />
|
||||||
|
</UploadInput>
|
||||||
<IconFont class="handler-item" type="icon-star" />
|
<IconFont class="handler-item" type="icon-star" />
|
||||||
<IconFont class="handler-item" type="icon-line" />
|
<IconFont class="handler-item" type="icon-line" />
|
||||||
<IconFont class="handler-item" type="icon-table" />
|
<IconFont class="handler-item" type="icon-table" />
|
||||||
@ -26,11 +28,18 @@
|
|||||||
import { defineComponent, computed } from 'vue'
|
import { defineComponent, computed } from 'vue'
|
||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
import { State } from '@/store'
|
import { State } from '@/store'
|
||||||
|
import { getImageDataURL } from '@/utils/image'
|
||||||
import useScaleCanvas from '@/hooks/useScaleCanvas'
|
import useScaleCanvas from '@/hooks/useScaleCanvas'
|
||||||
import useHistorySnapshot from '@/hooks/useHistorySnapshot'
|
import useHistorySnapshot from '@/hooks/useHistorySnapshot'
|
||||||
|
import useCreateElement from '@/hooks/useCreateElement'
|
||||||
|
|
||||||
|
import UploadInput from '@/components/UploadInput.vue'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'canvas-tool',
|
name: 'canvas-tool',
|
||||||
|
components: {
|
||||||
|
UploadInput,
|
||||||
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const store = useStore<State>()
|
const store = useStore<State>()
|
||||||
const canvasScale = computed(() => store.state.canvasScale)
|
const canvasScale = computed(() => store.state.canvasScale)
|
||||||
@ -42,6 +51,14 @@ export default defineComponent({
|
|||||||
const { scaleCanvas } = useScaleCanvas()
|
const { scaleCanvas } = useScaleCanvas()
|
||||||
const { redo, undo } = useHistorySnapshot()
|
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 {
|
return {
|
||||||
scaleCanvas,
|
scaleCanvas,
|
||||||
canvasScalePercentage,
|
canvasScalePercentage,
|
||||||
@ -49,6 +66,7 @@ export default defineComponent({
|
|||||||
canRedo,
|
canRedo,
|
||||||
redo,
|
redo,
|
||||||
undo,
|
undo,
|
||||||
|
insertImageElement,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@ -74,6 +92,7 @@ export default defineComponent({
|
|||||||
top: 50%;
|
top: 50%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
transform: translate(-50%, -50%);
|
transform: translate(-50%, -50%);
|
||||||
|
display: flex;
|
||||||
}
|
}
|
||||||
.handler-item {
|
.handler-item {
|
||||||
margin: 0 10px;
|
margin: 0 10px;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user