vue 上传视频

news/2024/5/4 8:26:04/文章来源:https://blog.csdn.net/CMDN123456/article/details/137602007

controlslist 属性可以用于告诉浏览器在视频播放过程中应该显示哪些默认的用户界面控件

代码:

<template><div class="schematicDiagramIndex"><el-container><el-header v-if="this.radiooCar==1"><el-button @click="addOpen">新增</el-button><el-button @click="updateOpen">编辑</el-button><el-button @click="delOpen">删除</el-button></el-header><el-container><!-- 左侧树 --><el-aside width="20rem;height: 100%;"><div style="height: 100%;overflow-y: scroll"><el-inputplaceholder="输入关键字进行过滤"v-model="filterText"></el-input><el-tree:accordion="true"class="filter-tree":data="CompanyLeftData":props="defaultProps":expand-on-click-node="false":default-expanded-keys="[1]"highlight-currentnode-key="value":default-expand-all="true"@node-click="handleNodeClick":filter-node-method="filterNode"ref="treeList":height="heights"></el-tree></div></el-aside><el-main  v-loading="showVideo"><!-- 视频 --><div class="video1"><!-- controlslist 属性可以用于告诉浏览器在视频播放过程中应该显示哪些默认的用户界面控件loop属性用于设置或返回视频结束时是否应该重新开始播放。--><videoid="video1"controls="controls"loop="loop"ref="video":height="heights"controlslist="nodownload "><source:src="videoURL"type="video/mp4"/>您的浏览器不支持 HTML5 video 标签。</video></div></el-main></el-container></el-container><!--    车的弹框--><el-dialog:title="title"v-model="dialogVisible"width="30%":before-close="handleClose"><!--      表单--><el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"><el-form-item label="上级节点" prop="ParentId"><!--          <el-input v-model="ruleForm.ParentId" placeholder="请输入内容"></el-input>--><el-select v-model="ruleForm.ParentId" placeholder="请选择"><el-optionv-for="item in ParentIdOptions":key="item.ID":label="item.Text":value="item.ID"></el-option></el-select></el-form-item><el-form-item label="视频名称" prop="VideoName"><el-input v-model="ruleForm.VideoName" placeholder="请输入内容"></el-input></el-form-item><el-form-item label="序号" prop="SortID"><el-input min="0" v-model="ruleForm.SortID" placeholder="请输入内容" type="number"@input="changeInput(ruleForm.SortID)"></el-input></el-form-item><el-form-item label="上传视频" prop="pass"><el-uploadref="videoUpload"class="upload-demo"action="#"multiple:limit="1":on-change="handleChange":before-upload="beforeUpload":on-success="onSuccess":on-error="onError"accept="video/*":auto-upload="false":on-exceed="handleExceedVisio":file-list="fileList"><el-button size="small" type="primary">点击上传</el-button></el-upload></el-form-item><el-form-item><el-button type="primary" @click="submitForm">提交</el-button><el-button @click="resetForm('ruleForm')">重置</el-button></el-form-item></el-form></el-dialog></div>
</template>
<script>
export default {name: "schematicDiagramIndex",data() {return {//树形结构defaultProps: {children: "Children",label: "Text",id: "ID",},//左侧树形数据CompanyLeftData: [],//油泵车oldoil: {// value: "1",label: "油泵车",children: [{value: "1-1",label: "操作部分",type: "YBC",children: [{value: "1",label: "双系统独立自循环",type: "YBC",},{value: "4",label: "双系统合流自循环",type: "YBC",},{value: "5",label: "液压系统排气",type: "YBC",},{value: "8",label: "油液固体颗粒污染自检和取样检测",type: "YBC",},{value: "9",label: "双系统独立输出",type: "YBC",},{value: "10",label: "双系统合流输出",type: "YBC",},{value: "11",label: "加油软管内液压油自循环净化",type: "YBC",},{value: "12",label: "为飞机补充加注液压油",type: "YBC",},{value: "13",label: "液压油箱自加油",type: "YBC",},{value: "14",label: "液压系统除水除气",type: "YBC",},{value: "15",label: "操作界面",type: "YBC",},],},{value: "1-2",label: "产品组成",type: "YBC",children: [{value: "2",label: "箱体组成",type: "YBC",},{value: "3",label: "电气系统组成",type: "YBC",},{value: "6",label: "液压系统组成",type: "YBC",},{value: "7",label: "动力系统组成",type: "YBC",},],},{value: "1-3",label: "原理构图",type: "YBC",children: [{value: "17",label: "清洗飞机液压系统油液原理",type: "YBC",},{value: "18",label: "双系统独立输出对接保障原理",type: "YBC",},{value: "19",label: "双系统合流并联输出对接保障原理",type: "YBC",},{value: "20",label: "为飞机补充加注液压油原理",type: "YBC",},{value: "21",label: "液压系统油箱自加油原理",type: "YBC",},{value: "22",label: "液压系统自循环原理",type: "YBC",},],},{value: "1-4",label: "功能用途",type: "YBC",children: [{value: "16",label: "功能用途",type: "YBC",},],},],},//电源车PowerTruck: {},filterText: "",//树形数据过滤字段//视频地址videoURL: "",heights: "", //高度radiooCar: null, //车辆选择的类型dialogVisible: false,//dialog弹出框控制显隐dialogTitle: "",//dialog的标题提示rules: {VideoName: [{required: true, message: '请输入活动名称', trigger: 'blur'},],},//校验ruleForm: {},//表单数据fileList: [],//上传视频的数组submitVideo: null,//父级下拉数据ParentIdOptions: [],//选中左侧树数据checkedLeftTreeData: null,//video loadingshowVideo:true,};},created() {this.init();},mounted() {this.$nextTick(() => {this.$refs.treeList.$el.getBoundingClientRect().top; //表格距离浏览器的高度// 根据浏览器高度设置初始高度this.heights =window.innerHeight - this.$refs.treeList.$el.offsetTop - 150;// 监听浏览器高度变化,修改表格高度window.onresize = () => {this.heights =window.innerHeight - this.$refs.treeList.$el.offsetTop - 150;};});},methods: {//初始数据init() {this.getCarData();},// 获取本地存储的车辆选择类型,判断是电源车还是油泵车getCarData() {this.radiooCar = sessionStorage.getItem("radioCar");this.getTreeData()},//  获取左侧树结构getTreeData() {//获取本地存储的选择的车型 调接口let params = {EquipmentType: this.radiooCar}this.$WAPI.Ts_VideoGetTreeList(params).then((res) => {//赋值this.CompanyLeftData = res.data.data//父级IDthis.ParentIdOptions = res.data.data//默认选中展示this.setCurrentKeyData();})},//进行切换数据(点击事件)handleNodeClick(data, checked) {this.$refs.video.load();if (checked) {//进行勾选的数据this.$refs.treeList.setCheckedNodes([data]);//勾选的数据进行赋值保存this.checkedLeftTreeData = data//获取视频url 传递后端参数let param={ ID:data.ID }this.$WAPI.Ts_VideoGetVideoUrl(param).then((res) => {this.showVideo=false//赋值视频路径this.$refs.video.src = res.data.data ? res.data.data.URL : ""})}},//进行模糊查询filterNode(value, data) {if (!value) return true;return data.label.indexOf(value) !== -1;},//  默认选中setCurrentKeyData() {this.$nextTick(() => {this.$refs.treeList &&this.$refs.treeList.setCurrentKey(this.CompanyLeftData[0].Children[0]);this.handleNodeClick(this.CompanyLeftData[0].Children[0],true);});},//#region 电源车 有新增、编辑、删除等功能//新增打开dialog事件addOpen() {this.dialogVisible = truethis.title = "新增"this.ruleForm = {}this.fileList = []},//编辑updateOpen() {this.dialogVisible = truethis.title = "编辑"this.ruleForm = this.checkedLeftTreeData.Modelconst fileList = []if (this.ruleForm.FileName !== null||this.ruleForm.FileUrl !== null){fileList.push({name: this.ruleForm.VideoName,url: this.ruleForm.FileUrl,})}this.fileList=fileList},//删除delOpen() {//选中的参数let param = {IDs: this.checkedLeftTreeData.ID}this.$WAPI.Ts_VideoDelete(param).then(res => {this.$message({message: res.data.msg,type: "success",});this.$refs.video.src = ""this.init()})},//dialog关闭事件handleClose(done) {this.$confirm('确认关闭?').then(_ => {done();}).catch(_ => {});},//提交数据submitForm() {// 要从这个接口传递文件 我知道啊this.dialogVisible = falseconst formData = new FormData();//上级节点不选择就是0this.ruleForm.ParentId = this.ruleForm.ParentId ? this.ruleForm.ParentId : 0//赋值this.ruleForm.ID !==undefined ? formData.append('ID', this.ruleForm.ID) :"" //IDformData.append('ParentId', this.ruleForm.ParentId) //父级节点formData.append('VideoName', this.ruleForm.VideoName) //视频名称formData.append('VideoType', this.radiooCar) //车辆类型formData.append('SortID', this.ruleForm.SortID) //序号formData.append('files', this.submitVideo) //序号this.$WAPI.Ts_VideoOperation(formData).then((res) => {this.$message({message: res.data.msg,type: "success",});this.showVideo=falsethis.init()})},//清空表单resetForm() {this.$refs.ruleForm.resetFields();//清空文件this.fileList=[]},//#endregion//#region 上传视频// 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。beforeUpload(file) {const isVideo = file.type === 'video/mp4';if (!isVideo) {this.$message.error('请上传视频文件');}return isVideo;},//文件上传成功时的钩子onSuccess(response, file, fileList) {this.$message.success('视频上传成功');// 处理上传成功后的逻辑,例如更新UI或者处理其他数据},//文件上传失败时的钩子onError(err, file, fileList) {console.log(err, file)this.$message.error('视频上传失败');// 处理上传失败后的逻辑},//改变handleChange(file, fileLists) {//文件流this.submitVideo = file.raw;//名称回显this.ruleForm.VideoName = this.submitVideo.name.split(".")[0]},//上传限制handleExceedVisio() {this.$message.warning(`当前限制选择 1 个文件,请删除后继续上传!`)},//#endregion//正则表达changeInput(value) {this.ruleForm.SortID = value.replace(/^[0]+[0-9]{1,}|[^\d]/g, '');}},computed: {},watch: {filterText(val) {this.$refs.treeList.filter(val);},},
};
</script><style scoped>
.schematicDiagramIndex {width: 100%;
}.video1 {width: 100%;background: transparent;
}::v-deep .el-tree-node__content {color: black;font-size: 14px;font-weight: 400;margin: 5px;
}::v-deep .el-tree {background-color: transparent;--el-tree-node-hover-bg-color: #b5b7b7;margin-top: 20px;padding-top: 10px;padding-bottom: 10px;background-size: 100% 100%;
}::v-deep
.el-tree--highlight-current
.el-tree-node.is-current
> .el-tree-node__content {background-color: #1a518c;color: #fcfbfb;
}.filter-tree {padding-top: 1%;height: 48rem;overflow: scroll;
}
</style>

 

案例图
表单

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1045884.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决插件在word中的宏禁用问题。MathType, Microsoft Office, powerpoint

背景&#xff1a;破解版的Microsoft Office,以及破解版的MathType。启动word后&#xff0c;会出现“宏禁用”的警告&#xff0c;并且MathType插件不可用&#xff0c;MathType对象也无法编辑&#xff0c;需要手动点击警告里的“启用”&#xff0c;主要是每次打开MS都得重新启用。…

智慧城市中的物联网革命——青创智通

工业物联网解决方案-工业IOT-青创智通 得益于物联网 (IoT)的变革力量&#xff0c;智慧城市的概念正在迅速成为现实。物联网正在从根本上改变城市的运作方式&#xff0c;为城市居民带来更高的效率、可持续性和生活质量。在本文中&#xff0c;我们将探讨物联网在智慧城市中的作用…

【3GPP】【核心网】核心网/蜂窝网络重点知识面试题二(超详细)

1. 欢迎大家订阅和关注&#xff0c;3GPP通信协议精讲&#xff08;2G/3G/4G/5G/IMS&#xff09;知识点&#xff0c;专栏会持续更新中.....敬请期待&#xff01; 目录 1. 对于主要的LTE核心网接口&#xff0c;给出运行在该接口上数据的协议栈&#xff0c;并给出协议特征 2. 通常…

vue快速入门(十五)监听键盘事件

注释很详细&#xff0c;直接上代码 上一篇 新增内容 特定按键监听事件全按键监听事件及两种判断方法 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthde…

李廉洋:4.9黄金屡创新高。黄金原油晚间最新分析建议。

但当下不管是战争因素所带来的避险情绪影响还是美国降息与否所带来的经济影响都无疑还是支撑着黄金继续走高&#xff0c;那么接下来&#xff0c;只要市场不出现较大的利空影响&#xff0c;黄金都不会有较大的回调力度&#xff0c;所以我们当下不管是短线还是长线仍旧以继续看多…

【JavaWeb】Servlet与过滤器

目录 ServletServlet做了什么JSP与Servlet的关系主要Servlet API介绍如何创建ServletServlet中主要方法ServletRequestServletResponseServletConfig Servlet生命周期Servlet创建Servlet部署与运行 ServletConfig类ServletConfig类的三大作用 ServletContext类ServletContext类…

图像生成:Pytorch实现一个简单的对抗生成网络模型

图像生成&#xff1a;Pytorch实现一个简单的对抗生成网络模型 前言相关介绍具体步骤准备并读取数据集定义生成器定义判别器定义损失函数定义优化器开始训练完整代码 训练生成的图片 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更多精彩内容&…

【vim 学习系列文章 20 -- a:mode 的值有哪些?】

请阅读【嵌入式开发学习必备专栏 之 Vim】 文章目录 a:mode 的值有哪些?举例Vim 底部状态栏设置 a:mode 的值有哪些? 在 Vim 脚本语言中&#xff0c;a:mode 常常用于函数内部&#xff0c;以获取该函数被调用时 Vim 正处于的模式。它主常用于那些可以从不同模式下被调用的函数…

websocket分析和前后端如何接入websocket

1、前言 websocket一般用途为消息提醒&#xff0c;股票行情数据推送等等&#xff0c;有很多用途。 我们这里简单举例理解websocket和如何前后端接入websocket&#xff1b; 使用网络抓包分析软件。主要是截取网络封包&#xff0c;并尽可能显示出最为详细的网络封包资料。 2、…

怎么快速围绕“人、货、场”做零售数据分析?

做零售数据分析多了&#xff0c;不难发现零售数据分析的关键就是“人、货、场”&#xff0c;那么怎么又快又灵活地分析这三个关键点&#xff1f;不妨参考下奥威BI零售数据分析方案。 奥威BI零售数据分析方案是一套吸取大量项目经验&#xff0c;结合零售企业数据分析共性需求打…

MyBatis 等类似的 XML 映射文件中,当传入的参数为空字符串时,<if> 标签可能会导致 SQL 语句中的条件判断出现意外结果。

问题 传入的参数为空字符串&#xff0c;但还是根据参数查询了。 原因 在 XML 中使用 标签进行条件判断时&#xff0c;需要明确理解其行为。在 MyBatis 等类似的 XML 映射文件中&#xff0c; 标签通常用于动态拼接 SQL 语句的条件部分。当传入的参数 riskLevel 为空字符串时…

acwing总结-线性质数筛

质数筛 题目链接:质数筛线性筛法 ac代码&#xff1a; #include<iostream> #include<algorithm> //https://www.bilibili.com/video/BV1LR4y1Z7pm/?spm_id_from333.337.search-card.all.click&vd_source436ccbb3a8f50110aa75654f38e35672 //链接到b站视频 us…

如何在 YouTube、Medium、Twitter 和 Linkedin 上使用 ChatGPT 赚钱

人工智能SEO&#xff1a;未来内容优化的革命 介绍 在当今的数字时代&#xff0c;利用 ChatGPT 等人工智能工具已经成为在线内容创建和货币化领域的游戏规则改变者。 本指南探讨了如何在 YouTube、Medium、Twitter 和 Linkedin 等各种平台上有效使用 ChatGPT&#xff0c;不仅可以…

el-table动态合并列

需要合并列&#xff0c;并且不确定需要合并多少列的&#xff0c;可以参照如下代码 首先需要再el-table上传入span-method方法 arraySpan({ row, column, rowIndex, columnIndex }){if (row.groupName 汇总 && columnIndex 0) {return [0,0]} else if (row.groupName…

机器学习-08-关联规则和协同过滤

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中关联规则和协同过滤。 参考 机器学习&#xff08;三&#xff09;&#xff1a;Apriori算法&#xff08;算法精讲&#xff09; Apriori 算法 理论 重点 MovieLens:一个常用的电影推荐系统领域的数据集 2…

01、ArcGIS For JavaScript 4.29对3DTiles数据的支持

综述 Cesium从1.99版本开始支持I3S服务的加载&#xff0c;到目前位置&#xff0c;已经支持I3S的倾斜模型、3D Object模型以及属性查询的支持。Cesium1.115又对I3S标准的Building数据实现了加载支持。而ArcGIS之前一直没有跨越对3DTiles数据的支持&#xff0c;所以在一些开发过…

数字社交的新典范:解析Facebook的成功密码

在当今数字化时代&#xff0c;社交媒体已经成为人们日常生活的重要组成部分&#xff0c;而Facebook作为最知名的社交媒体平台之一&#xff0c;其成功之处备受瞩目。本文将深入解析Facebook的成功密码&#xff0c;探讨其在数字社交领域的新典范。 1. 用户体验的优化 Facebook注…

Docker容器嵌入式开发:在Ubuntu上配置Postman和flatpak

在 Ubuntu 上配置 Postman 可以通过 Snap 命令完成&#xff0c;以下是所有命令的总结&#xff1a; sudo snap install postmansudo snap install flatpak在 Ubuntu 上配置 Postman 和 Flatpak 非常简单。以下是一些简单的步骤&#xff1a; 配置 Flatpak 安装 Flatpak&#x…

【力扣】104. 二叉树的最大深度、111. 二叉树的最小深度

104. 二叉树的最大深度 题目描述 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 示例 2&#xff1a; 输…

【linux】yum 和 vim

yum 和 vim 1. Linux 软件包管理器 yum1.1 什么是软件包1.2 查看软件包1.3 如何安装软件1.4 如何卸载软件1.5 关于 rzsz 2. Linux编辑器-vim使用2.1 vim的基本概念2.2 vim的基本操作2.3 vim命令模式命令集2.4 vim底行模式命令集2.5 vim操作总结补充&#xff1a;vim下批量化注释…