PPTist/src/views/Editor/CanvasTool/MediaInput.vue
2023-09-24 21:52:47 +08:00

76 lines
2.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="media-input">
<Tabs
:tabs="tabs"
v-model:value="type"
:tabsStyle="{ marginBottom: '15px' }"
/>
<template v-if="type === 'video'">
<Input v-model:value="videoSrc" placeholder="请输入视频地址e.g. https://xxx.mp4"></Input>
<div class="btns">
<Button @click="emit('close')" style="margin-right: 10px;">取消</Button>
<Button type="primary" @click="insertVideo()">确认</Button>
</div>
</template>
<template v-if="type === 'audio'">
<Input v-model:value="audioSrc" placeholder="请输入音频地址e.g. https://xxx.mp3"></Input>
<div class="btns">
<Button @click="emit('close')" style="margin-right: 10px;">取消</Button>
<Button type="primary" @click="insertAudio()">确认</Button>
</div>
</template>
</div>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import { Button } from 'ant-design-vue'
import message from '@/utils/message'
import Tabs from '@/components/Tabs.vue'
import Input from '@/components/Input.vue'
type TypeKey = 'video' | 'audio'
interface TabItem {
key: TypeKey
label: string
}
const emit = defineEmits<{
(event: 'insertVideo', payload: string): void
(event: 'insertAudio', payload: string): void
(event: 'close'): void
}>()
const type = ref<TypeKey>('video')
const videoSrc = ref('https://mazwai.com/videvo_files/video/free/2019-01/small_watermarked/181004_04_Dolphins-Whale_06_preview.webm')
const audioSrc = ref('https://freesound.org/data/previews/614/614107_11861866-lq.mp3')
const tabs: TabItem[] = [
{ key: 'video', label: '视频' },
{ key: 'audio', label: '音频' },
]
const insertVideo = () => {
if (!videoSrc.value) return message.error('请先输入正确的视频地址')
emit('insertVideo', videoSrc.value)
}
const insertAudio = () => {
if (!audioSrc.value) return message.error('请先输入正确的音频地址')
emit('insertAudio', audioSrc.value)
}
</script>
<style lang="scss" scoped>
.media-input {
width: 480px;
}
.btns {
margin-top: 10px;
text-align: right;
}
</style>