修改上传

This commit is contained in:
luyuan 2020-11-02 14:22:57 +08:00
parent 5fceedfd1d
commit 6dddc2cd7a
Signed by: theluyuan
GPG Key ID: A7972FD973317FF3
5 changed files with 514 additions and 456 deletions

View File

@ -289,5 +289,8 @@ export default {
chushihuashibai: "Failed to initialize local stream", chushihuashibai: "Failed to initialize local stream",
buzhichifenxiang: "Your browser does not support screen sharing. Please download the new version of chrome", buzhichifenxiang: "Your browser does not support screen sharing. Please download the new version of chrome",
xuanzefenxiangneirong: "Please choose what to share", xuanzefenxiangneirong: "Please choose what to share",
guanbishibai: "Closing failed" guanbishibai: "Closing failed",
fengmianyaoqiu:"Cover requirements:",
fengmianyaoqiu1:"File extension: JPG, png",
fengmianyaoqiu2:"File size limit: 2m",
} }

View File

@ -94,7 +94,10 @@ export default {
shipinyaoqiu:"视频要求:", shipinyaoqiu:"视频要求:",
shipinyaoqiu1:"上传视频时间要求为30s之内", shipinyaoqiu1:"上传视频时间要求为30s之内",
shipinyaoqiu2:"支持文件大小100M", shipinyaoqiu2:"支持文件大小100M",
shipinyaoqiu3:"文件扩展名fiv、mp4…", shipinyaoqiu3:"文件扩展名fiv、mp4",
fengmianyaoqiu:"封面要求:",
fengmianyaoqiu1:"文件扩展名jpgpng",
fengmianyaoqiu2:"文件大小限制2M",
ziwojieshao:"自我介绍", ziwojieshao:"自我介绍",
lianxifangshi:"联系方式", lianxifangshi:"联系方式",
genghuanshoujihao:"更换手机号", genghuanshoujihao:"更换手机号",

View File

@ -804,6 +804,10 @@ export default defineComponent({
// } // }
for(const i in uesrinfo.willsay){ for(const i in uesrinfo.willsay){
if(uesrinfo.willsay[i].name == '请选择'){
console.log(111)
break;
}
for(const j in chiveslist.value[1]){ for(const j in chiveslist.value[1]){
if(uesrinfo.willsay[i].name == chiveslist.value[1][j].name){ if(uesrinfo.willsay[i].name == chiveslist.value[1][j].name){
uesrinfo.willsay[i].name = chiveslist.value[1][j].languageid uesrinfo.willsay[i].name = chiveslist.value[1][j].languageid
@ -814,6 +818,10 @@ export default defineComponent({
const arr: any = {}; const arr: any = {};
for(const i in uesrinfo.willsay){ for(const i in uesrinfo.willsay){
// const a: any = {}; // const a: any = {};
if(uesrinfo.willsay[i].name == '请选择'){
console.log(111)
break;
}
arr[uesrinfo.willsay[i].name] = uesrinfo.willsay[i].level arr[uesrinfo.willsay[i].name] = uesrinfo.willsay[i].level
// arr.push(a); // arr.push(a);
// arr.push({uesrinfo.willsay[i].name}) // arr.push({uesrinfo.willsay[i].name})

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="upload-video"> <div class="upload-video">
<a-form :label-col="labelCol" :wrapper-col="wrapperCol"> <a-form :label-col="labelCol" :wrapper-col="wrapperCol">
<div class="title">{{lan.$t("shangchuanshipin")}}</div> <div class="title">{{ lan.$t("shangchuanshipin") }}</div>
<a-form-item :label="lan.$t('shipinbiaoti')"> <a-form-item :label="lan.$t('shipinbiaoti')">
<a-input <a-input
size="small" size="small"
@ -10,8 +10,16 @@
/> />
</a-form-item> </a-form-item>
<a-form-item :label="lan.$t('shipinfengmian')" class="video-cover"> <a-form-item :label="lan.$t('shipinfengmian')" class="video-cover">
<a-upload list-type="picture" :customRequest="uploadspic" :before-upload="beforeUpload"> <div style="display: flex">
<div class="upload-image" v-if="!viewCover && form.img.length == 0"> <a-upload
list-type="picture"
:customRequest="uploadspic"
:before-upload="beforeUploadpic"
>
<div
class="upload-image"
v-if="!viewCover && form.img.length == 0"
>
<PlusOutlined <PlusOutlined
style="fontsize: 22px" style="fontsize: 22px"
v-if="uploadpicprogress == 0" v-if="uploadpicprogress == 0"
@ -24,14 +32,35 @@
/> />
</div> </div>
<div class="upload-image" v-else> <div class="upload-image" v-else>
<img style="width: 100%; height: 100%" :src="form.img" /> <img
style="width: 100%; height: 100%"
:src="form.img"
/>
</div> </div>
</a-upload> </a-upload>
<div class="demand">
<p class="one-line-hide">
{{ lan.$t("fengmianyaoqiu") }}
</p>
<p class="one-line-hide">
1.{{ lan.$t("fengmianyaoqiu1") }}
</p>
<p class="one-line-hide">
2.{{ lan.$t("fengmianyaoqiu2") }}
</p>
</div>
</div>
</a-form-item> </a-form-item>
<a-form-item :label="lan.$t('xuanzeshipin')" class="video-introduction"> <a-form-item
<div class="upload-container"> :label="lan.$t('shipinjieshao')"
<a-upload list-type="picture" :customRequest="uploads" :beforeUpload="beforeVideoUpload"> class="video-introduction"
<div class="upload-image"> >
<a-upload
list-type="picture"
:customRequest="uploads"
:before-upload="beforeUpload"
>
<div class="upload-image" v-if="form.fileurl.length == 0">
<PlaySquareOutlined <PlaySquareOutlined
style="fontsize: 22px" style="fontsize: 22px"
v-if="uploadprogress == 0" v-if="uploadprogress == 0"
@ -42,12 +71,12 @@
:width="80" :width="80"
v-else v-else
/> />
<video style="display: none" :src="videofile"></video> <!-- <video style="display: none" :src="videofile"></video> -->
</div> </div>
<div <div
class="upload-image upload" class="upload-image upload"
style="position: relative" style="position: relative"
v-show="false" v-show="form.fileurl.length != 0"
> >
<video <video
:src="form.fileurl" :src="form.fileurl"
@ -56,34 +85,27 @@
videos[0] = el; videos[0] = el;
} }
" "
class="upload" class="upload1"
></video> ></video>
<!-- <a-progress type="circle" :percent="100" :width="80" style="position:absolute;right:35%"/> --> <!-- <a-progress type="circle" :percent="100" :width="80" style="position:absolute;right:35%"/> -->
</div> </div>
</a-upload> </a-upload>
<!-- 文件列表 -->
<div v-if="form.video[0].length">
<div
v-for="(item, index) in form.video"
:key="index"
class="video-list"
>
<img src="@/static/images/link.png" class="link" />
<span class="one-line-hide">{{ item.split('/')[item.split('/').length-1] }}</span>
<img
src="@/static/images/delete.png"
@click="removeFile(0)"
class="del"
/>
</div>
</div>
</div>
<div class="demand"> <div class="demand">
<p class="one-line-hide">{{lan.$t('shipinyaoqiu')}}</p>
<p class="one-line-hide"> <p class="one-line-hide">
1. {{lan.$t('shipinyaoqiu3')}} {{ lan.$t("shipinyaoqiu") }}
</p> </p>
<p class="one-line-hide">1.{{ lan.$t("shipinyaoqiu1") }}</p>
<p class="one-line-hide">2.{{ lan.$t("shipinyaoqiu2") }}</p>
<p class="one-line-hide">3.{{ lan.$t("shipinyaoqiu3") }}</p>
</div> </div>
<!-- <div class="demand">
<p class="one-line-hide">视频要求</p>
<p class="one-line-hide">1.上传视频时间要求为30s之内</p>
<p class="one-line-hide">2.支持文件大小100M</p>
<p class="one-line-hide">
3.文件扩展名fivmp4文件扩展名fivmp4
</p>
</div> -->
</a-form-item> </a-form-item>
<a-form-item :label="lan.$t('shipinjianjie')" class="brief"> <a-form-item :label="lan.$t('shipinjianjie')" class="brief">
<a-textarea <a-textarea
@ -96,7 +118,9 @@
<span class="words-number">{{ form.desc.length }}/200</span> <span class="words-number">{{ form.desc.length }}/200</span>
</a-form-item> </a-form-item>
<a-form-item :wrapper-col="{ span: 4, offset: 0 }"> <a-form-item :wrapper-col="{ span: 4, offset: 0 }">
<a-button @click="onSubmit">{{lan.$t('shangchuanshipin')}}</a-button> <a-button @click="onSubmit">{{
lan.$t("shangchuanshipin")
}}</a-button>
</a-form-item> </a-form-item>
</a-form> </a-form>
<nav-bottom></nav-bottom> <nav-bottom></nav-bottom>
@ -110,9 +134,9 @@ import { previewCover } from "@/utils/common";
import { FromSend, ImgInfo, VideoInfo } from "@/types"; import { FromSend, ImgInfo, VideoInfo } from "@/types";
import { uploadflie } from "@/utils/vod"; import { uploadflie } from "@/utils/vod";
import { setvideo, videoadd, videodetail } from "@/api"; import { setvideo, videoadd, videodetail } from "@/api";
import { useRoute } from 'vue-router'; import { useRoute } from "vue-router";
import { message } from 'ant-design-vue'; import { message } from "ant-design-vue";
import { useI18n } from '@/utils/i18n'; import { useI18n } from "@/utils/i18n";
export default defineComponent({ export default defineComponent({
name: "ReleaseWebcast", name: "ReleaseWebcast",
@ -136,15 +160,15 @@ export default defineComponent({
fileurl: "", fileurl: "",
fileduration: "", fileduration: "",
desc: "", desc: "",
video:[""], video: [""],
}); });
onMounted(async () => { onMounted(async () => {
if(useRoute().query.id){ if (useRoute().query.id) {
console.log(useRoute().query.id,"knijkdbj") console.log(useRoute().query.id, "knijkdbj");
form.value = await videodetail(useRoute().query.id,1) form.value = await videodetail(useRoute().query.id, 1);
console.log(form.value,"fornm") console.log(form.value, "fornm");
} }
}) });
// //
const viewCover: Ref<boolean> = ref(false), const viewCover: Ref<boolean> = ref(false),
@ -169,7 +193,6 @@ export default defineComponent({
return false; return false;
}; };
/** /**
* 删除封面 * 删除封面
*/ */
@ -192,35 +215,43 @@ export default defineComponent({
const uploadpicprogress: Ref<number> = ref(0); const uploadpicprogress: Ref<number> = ref(0);
const videofile = ref<File>(); const videofile = ref<File>();
const videos = ref<Array<any>>([]); const videos = ref<Array<any>>([]);
const ifalowupload=ref<boolean>(false) const ifalowupload = ref<boolean>(false);
interface AntUpload { interface AntUpload {
action: string; action: string;
data: unknown; data: unknown;
file: File; file: File;
} }
async function uploadspic(file: AntUpload) { async function uploadspic(file: AntUpload) {
if(ifalowupload.value){ if (ifalowupload.value) {
const res = await uploadflie(file.file, (info: any) => { const res = await uploadflie(file.file, (info: any) => {
console.log(info); console.log(info);
uploadpicprogress.value = info.percent.toFixed(2) * 100; uploadpicprogress.value = info.percent.toFixed(2) * 100;
}); });
console.log(res); console.log(res);
form.value.img = res.video.url; form.value.img = res.video.url;
}else{ } else {
return return;
}
} }
function beforeUploadpic(info?: any) {
console.log(info);
if (info.type.split("/")[0] != "image") {
message.error(lan.$t("fengmiangeshi"));
ifalowupload.value = false;
return;
} else {
ifalowupload.value = true;
}
} }
/** /**
* 上传视频 * 上传视频
*/ */
const uploadprogress: Ref<number> = ref(0); const uploadprogress: Ref<number> = ref(0);
const ifallowvideo=ref<boolean>(false) const ifallowvideo = ref<boolean>(false);
async function uploads(file: AntUpload) { async function uploads(file: AntUpload) {
if(ifallowvideo.value){ if (ifallowvideo.value) {
uploadprogress.value=0
form.value.video=[""]
console.log(file); console.log(file);
videofile.value = file.file; videofile.value = file.file;
videos.value[0].addEventListener("durationchange", () => { videos.value[0].addEventListener("durationchange", () => {
@ -235,53 +266,46 @@ export default defineComponent({
form.value.fileid = res.fileId; form.value.fileid = res.fileId;
form.value.fileurl = res.video.url; form.value.fileurl = res.video.url;
form.value.video[0]=res.video.url }
uploadprogress.value=0
} }
function beforeVideoUpload(info?: any) {
console.log(info);
if (info.type.split("/")[0] != "video") {
ifallowvideo.value;
message.error(lan.$t("wenjiangeshi"));
} else {
ifallowvideo.value = true;
} }
function beforeVideoUpload(info?: any){
console.log(info)
if(info.type.split("/")[0]!="video"){
ifallowvideo.value
message.error(lan.$t('wenjiangeshi'))
}else{
ifallowvideo.value=true
}
} }
/** /**
* 表单提交 * 表单提交
*/ */
const routes=useRoute() const routes = useRoute();
const onSubmit = async (e: FromSend) => { const onSubmit = async (e: FromSend) => {
e.preventDefault(); e.preventDefault();
console.log(toRaw(form.value), 111); console.log(toRaw(form.value), 111);
console.log(toRaw(form.value).video[0].length) console.log(toRaw(form.value).video[0].length);
console.log(routes.query,"adsadsa") console.log(routes.query, "adsadsa");
const subdata=toRaw(form.value) const subdata = toRaw(form.value);
if(subdata.title==""){ if (subdata.title == "") {
message.error(lan.$t('biaotiweikong')) message.error(lan.$t("biaotiweikong"));
return return;
}else if(subdata.img==""){ } else if (subdata.img == "") {
message.error(lan.$t('fengmianweikong')) message.error(lan.$t("fengmianweikong"));
return return;
}else if(subdata.fileurl==""){ } else if (subdata.fileurl == "") {
message.error(lan.$t('wenjianweikong')) message.error(lan.$t("wenjianweikong"));
}else if(subdata.desc==""){ } else if (subdata.desc == "") {
message.error(lan.$t('jianjieweikong')) message.error(lan.$t("jianjieweikong"));
} } else {
else{ if (routes.query.id) {
form.value.id = routes.query.id;
if(routes.query.id){ console.log("edi");
form.value.id=routes.query.id setvideo(form.value);
console.log('edi') } else {
setvideo(form.value)
}else{
videoadd(form, toRaw(form.value)); videoadd(form, toRaw(form.value));
} }
// videoadd(form, toRaw(form.value)); // videoadd(form, toRaw(form.value));
@ -289,15 +313,14 @@ export default defineComponent({
// videoadd(form, toRaw(form.value)); // videoadd(form, toRaw(form.value));
}; };
function beforeUpload(info?: any) {
function beforeUpload(info?: any){ console.log(info);
console.log(info.type) if (info.type.split("/")[0] != "video") {
if(info.type.split('/')[0]!="image"){ ifallowvideo.value = false;
message.error(lan.$t('fengmiangeshi')) message.error(lan.$t("shipinjieshaoccuowu"));
ifalowupload.value=false return;
return } else {
}else{ ifallowvideo.value = true;
ifalowupload.value=true
} }
} }
@ -322,16 +345,21 @@ export default defineComponent({
beforeUpload, beforeUpload,
ifalowupload, ifalowupload,
beforeVideoUpload, beforeVideoUpload,
lan lan,
beforeUploadpic
}; };
}, },
}); });
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.upload1{
width: 171px;
height: 96px;
}
.upload { .upload {
width: 171px; width: 171px;
height: 96px; height: 96px;
display:none display: none;
} }
.upload-video { .upload-video {
width: 100%; width: 100%;
@ -401,7 +429,7 @@ export default defineComponent({
font-size: 10px; font-size: 10px;
font-weight: 500; font-weight: 500;
color: #ffffff; color: #ffffff;
&:hover{ &:hover {
background: #08ae98; background: #08ae98;
} }
} }
@ -412,11 +440,6 @@ export default defineComponent({
height: 96px; height: 96px;
} }
} }
.video-introduction {
.ant-form-item-control-wrapper {
.ant-form-item-children {
display: flex;
// align-items: center;
.demand { .demand {
height: 94px; height: 94px;
font-size: 10px; font-size: 10px;
@ -431,6 +454,11 @@ export default defineComponent({
margin: 0; margin: 0;
} }
} }
.video-introduction {
.ant-form-item-control-wrapper {
.ant-form-item-children {
display: flex;
// align-items: center;
} }
} }
.video-list { .video-list {

View File

@ -10,6 +10,7 @@
/> />
</a-form-item> </a-form-item>
<a-form-item :label="lan.$t('zhibofengmian')" class="item-cover"> <a-form-item :label="lan.$t('zhibofengmian')" class="item-cover">
<div style="display:flex">
<a-upload <a-upload
list-type="picture" list-type="picture"
:customRequest="uploadspic" :customRequest="uploadspic"
@ -36,7 +37,21 @@
:src="form.img" :src="form.img"
/> />
</div> </div>
</a-upload> </a-upload>
<div class="demand">
<p class="one-line-hide">
{{ lan.$t("fengmianyaoqiu") }}
</p>
<p class="one-line-hide">
1.{{ lan.$t("fengmianyaoqiu1") }}
</p>
<p class="one-line-hide">
2.{{ lan.$t("fengmianyaoqiu2") }}
</p>
</div>
</div>
</a-form-item> </a-form-item>
<a-form-item <a-form-item
:label="lan.$t('shipinjieshao')" :label="lan.$t('shipinjieshao')"
@ -618,11 +633,6 @@ export default defineComponent({
height: 96px; height: 96px;
} }
} }
.video-introduction {
.ant-form-item-control-wrapper {
.ant-form-item-children {
display: flex;
align-items: center;
.demand { .demand {
line-height: 17px; line-height: 17px;
font-size: 10px; font-size: 10px;
@ -633,6 +643,12 @@ export default defineComponent({
margin: 0; margin: 0;
} }
} }
.video-introduction {
.ant-form-item-control-wrapper {
.ant-form-item-children {
display: flex;
align-items: center;
} }
} }
} }