uniapp+firstUI——上传视频组件fui-upload-video

发布于:2025-07-02 ⋅ 阅读:(25) ⋅ 点赞:(0)
<fui-upload-video immediate :url="uploadUrl" ref="videoRef" @success="successVideo" @error="errorVideo"
					@complete="completeVideo" width="410" height="250" :header="header"></fui-upload-video>
<script setup>
	import {
		ref,
		reactive,
		shallowRef
	} from 'vue'
	import {
		onLoad,
		onShow,
		onReachBottom
	} from '@dcloudio/uni-app'
	import i from '@/libs/common/index.js'
	import api from '@/request/api.js'
	import throttle from '@/libs/function/throttle.js'
	import config from '@/libs/config/index.js'
	import {
		userStore
	} from '@/store/userStore.js'
	import {
		commonStore
	} from '@/store/commonStore.js'
	const user = userStore()
	const common = commonStore()
	const fault_video = ref([]) //视频
	const uploadUrl = config.apiUrl + '/api/common/upload'
	const videoRef = shallowRef() //视频组件名称
	const status = ref('') //视频上传状态
	const header = ref({
		'token': uni.getStorageSync('userStorage').token
	})
	const video_url = ref([]) //视频预览列表
	// 视频上传
	function successVideo(e) {
		let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}")
		status.status = e.status
		if (res.data.url) {
			videoRef.value.result(res.data.url, e.index)
		}
	}
	//上传失败时触发
	function errorVideo(e) {
		status.status = e.status
	}
	//选择视频或上传完成时触发
	function completeVideo(e) {
		status.status = e.status
		video_url.value = e.urls
		if (status.status === 'success' && e.action === 'upload') {
			i.success('上传完成!')
			//已上传完成的视频列表 this.urls
			console.log(video_url.value)
		}
	}
</script>

网站公告

今日签到

点亮在社区的每一天
去签到