提交 dfd2aaf1 编写于 作者: bo.dang's avatar bo.dang

直播管理二期

上级 28f22214
...@@ -45,5 +45,35 @@ export const getRtcInfo = (params) => { ...@@ -45,5 +45,35 @@ export const getRtcInfo = (params) => {
}) })
}; };
// 查询回放信息
export const getPlayback = (params) => {
return fetch({
headers,
url: getBaseUrl(`rtc/liveAdmin/playback/${params.rtcId}`),
method: 'get',
// params: params,
description: '查询回放信息',
})
};
export const postPlayback = (params) => {
return fetch({
headers,
url: getBaseUrl(`rtc/liveAdmin/playback`),
method: 'post',
params: params,
description: '设置/关闭回放',
})
};
export const updateLiveStatus = (params) => {
return fetch({
headers,
url: getBaseUrl(`rtc/liveAdmin/switchLiveStatus`),
method: 'put',
params: params,
description: '更新直播状态',
})
};
...@@ -37,22 +37,39 @@ ...@@ -37,22 +37,39 @@
<span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/20</span> <span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/20</span>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="直播方式"> <el-form-item label="直播方式" prop="streamType">
<el-radio-group v-model="formData.streamType" size="small" @change="changeStyle"> <el-radio-group v-model="formData.streamType" size="small" @change="changeStreamType">
<el-radio label="1" :disabled="styleEditFlag">网页直播</el-radio> <el-radio label="1" :disabled="styleEditFlag">网页直播</el-radio>
<el-radio label="2" :disabled="styleEditFlag">拉流直播</el-radio> <el-radio label="2" :disabled="styleEditFlag">拉流直播</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item>
<el-form-item label="拉流地址" v-if="pullFlag" class="required-label">
<el-col :span="13">
<el-input
size="small"
v-model="formData.pullStreamRtmp"
maxlength="20"
placeholder="请输入App拉流地址"
style="width:70%;"
:disabled="styleEditFlag"
></el-input>
</el-col>
<el-col :span="13">
<el-input <el-input
size="small" size="small"
v-model="formData.name" v-model="formData.pullStreamHttp"
maxlength="20" maxlength="20"
placeholder="请填写拉流地址" placeholder="请输入H5拉流地址"
style="width:70%;" style="width:70%;"
:disabled="styleEditFlag" :disabled="styleEditFlag"
></el-input> ></el-input>
</el-col>
</el-form-item> </el-form-item>
<el-form-item label="是否公开" prop="scope"> <el-form-item label="是否公开" prop="scope">
<el-radio-group v-model="formData.scope" size="small" @change="changeScope"> <el-radio-group v-model="formData.scope" size="small" @change="changeScope">
<el-radio label="1">否(仅限圈内人观看)</el-radio> <el-radio label="1">否(仅限圈内人观看)</el-radio>
...@@ -135,8 +152,7 @@ ...@@ -135,8 +152,7 @@
class="bg-uploader" class="bg-uploader"
action="#" action="#"
:show-file-list="false" :show-file-list="false"
:before-upload="beforeUploadPic1" :before-upload="beforeUploadPic1">
:disabled="isDisabledIns">
<img <img
v-if="item.content" v-if="item.content"
:src="item.content" :src="item.content"
...@@ -372,10 +388,13 @@ ...@@ -372,10 +388,13 @@
styleEditFlag: false,// 直播方式是否可以编辑 styleEditFlag: false,// 直播方式是否可以编辑
liveEditFlag: false,// 直播方式、讲师是否可以编辑 liveEditFlag: false,// 直播方式、讲师是否可以编辑
guestEditFlag: false,// 嘉宾是否可以编辑 guestEditFlag: false,// 嘉宾是否可以编辑
pullFlag: false, // 是否显示拉流地址
formData: { formData: {
circleId: "",// 圈子ID circleId: "",// 圈子ID
name: '',// 直播名称 name: '',// 直播名称
style: "1", // 直播方式 streamType: "1", // 直播方式
pullStreamRtmp: "", //APP拉流地址
pullStreamHttp: "", //H5拉流地址
scope: "1",// 直播范围 1-非公开 2-公开 scope: "1",// 直播范围 1-非公开 2-公开
infoCollect: "0",// 是否采集用户信息 0-否 1-是 infoCollect: "0",// 是否采集用户信息 0-否 1-是
openTime: '',// 直播开始时间 openTime: '',// 直播开始时间
...@@ -436,6 +455,10 @@ ...@@ -436,6 +455,10 @@
}, },
{ validator: checkProjectStr, trigger: "blur" } { validator: checkProjectStr, trigger: "blur" }
], ],
streamType: [{
required: true, message: "请选择直播方式", trigger: 'blur'
}],
scope:[ scope:[
{required: true} {required: true}
], ],
...@@ -546,14 +569,17 @@ ...@@ -546,14 +569,17 @@
}) })
}, },
getIndexIntroduce(index) { getIndexIntroduce(index) {
if (!this.isDisabledIns) { // if (!this.isDisabledIns) {
if(this.formData.rtcIntroduces != null && this.formData.rtcIntroduces.length > index){ if(this.formData.rtcIntroduces != null && this.formData.rtcIntroduces.length == 1){
index = 0;
}
else if(this.formData.rtcIntroduces != null && this.formData.rtcIntroduces.length > index){
index = index + 1; index = index + 1;
} }
this.introduceIndex = index; this.introduceIndex = index;
}else { // }else {
this.$message.warning('正在上传,请稍等') // this.$message.warning('正在上传,请稍等')
} // }
}, },
//上传直播简介 //上传直播简介
beforeUploadPic1(file) { beforeUploadPic1(file) {
...@@ -661,12 +687,12 @@ ...@@ -661,12 +687,12 @@
const isLt100kb = file.size / 1024 < 100 const isLt100kb = file.size / 1024 < 100
if (!isJPG && !isPNG) { if (!isJPG && !isPNG) {
vm.$message.error('上传直播简介图片只能是 JPEG或者png 格式!') vm.$message.error('上传直播简介图片只能是 JPEG或者png 格式!')
vm.isDisabledIns = false; // vm.isDisabledIns = false;
return; return;
} }
if (!isLt100kb) { if (!isLt100kb) {
vm.$message.error('上传图片大小不能超过 100kb') vm.$message.error('上传图片大小不能超过 100kb')
vm.isDisabledIns = false; // vm.isDisabledIns = false;
return; return;
} }
...@@ -679,7 +705,7 @@ ...@@ -679,7 +705,7 @@
let _this = this; let _this = this;
if (_this.width !== 750) { if (_this.width !== 750) {
vm.$message.info('图片尺寸不一致,无法提交!'); vm.$message.info('图片尺寸不一致,无法提交!');
vm.isDisabledIns = false; // vm.isDisabledIns = false;
return; return;
}else { }else {
doUpload(vm,file, getFilePath(file,null), 'preview4', 'progress1', 1).then(function (path) { doUpload(vm,file, getFilePath(file,null), 'preview4', 'progress1', 1).then(function (path) {
...@@ -687,7 +713,7 @@ ...@@ -687,7 +713,7 @@
vm.formData.rtcIntroduces[vm.introduceIndex].content = path.fullPath; vm.formData.rtcIntroduces[vm.introduceIndex].content = path.fullPath;
vm.formData.rtcIntroduces[vm.introduceIndex].seqNo = vm.introduceIndex+1; vm.formData.rtcIntroduces[vm.introduceIndex].seqNo = vm.introduceIndex+1;
vm.$message.success('上传成功'); vm.$message.success('上传成功');
vm.isDisabledIns = false; // vm.isDisabledIns = false;
}); });
} }
// vm.cleatBroadcast.liveIntroduceModel[vm.introduceIndex].content1 = _this.width + '*' + _this.height; // vm.cleatBroadcast.liveIntroduceModel[vm.introduceIndex].content1 = _this.width + '*' + _this.height;
...@@ -751,7 +777,13 @@ ...@@ -751,7 +777,13 @@
// return isJPG && isLt2M; // return isJPG && isLt2M;
// }, // },
// 直播方式 // 直播方式
changeStyle(){ changeStreamType(){
if(this.formData.streamType == 2){
this.pullFlag = true;
}
else {
this.pullFlag = false;
}
}, },
...@@ -765,10 +797,26 @@ ...@@ -765,10 +797,26 @@
this.isCollectShow = false; this.isCollectShow = false;
} }
}, },
// 校验拉流地址
checkpullStream(){
let flag = true;
if(this.pullFlag){
if(this.formData.pullStreamRtmp == ""){
this.$message.warning("请输入APP拉流地址");
flag = false;
}
if(this.formData.pullStreamHttp == ""){
this.$message.warning("请输入H5拉流地址");
flag = false;
}
}
return flag;
},
// 校验直播简介文字版或图片版 // 校验直播简介文字版或图片版
checkIntroduce(){ checkIntroduce(){
// console.log(this.formData.rtcIntroduces[0].content); // console.log(this.formData.rtcIntroduces[0].content);
console.log(this.formData.rtcIntroduces[1].content); // console.log(this.formData.rtcIntroduces[1].content);
let flag = true; let flag = true;
if(this.formData.textContent == "" if(this.formData.textContent == ""
...@@ -781,6 +829,8 @@ ...@@ -781,6 +829,8 @@
// 增加直播简介 // 增加直播简介
addIntroImage(){ addIntroImage(){
let length = this.formData.rtcIntroduces.length; let length = this.formData.rtcIntroduces.length;
if(length > 5){ if(length > 5){
this.$message.warning("直播简介图片最多支持新增5张图片!"); this.$message.warning("直播简介图片最多支持新增5张图片!");
return; return;
...@@ -791,7 +841,6 @@ ...@@ -791,7 +841,6 @@
content: '', content: '',
type: 2 // 文字 type: 2 // 文字
}; };
this.formData.rtcIntroduces.push(item); this.formData.rtcIntroduces.push(item);
}, },
...@@ -994,6 +1043,10 @@ ...@@ -994,6 +1043,10 @@
this.submitFlag = true; this.submitFlag = true;
this.setFormData(); this.setFormData();
// 校验拉流地址
if(!this.checkpullStream()){
return;
}
// 校验直播简介文字版或图片版 // 校验直播简介文字版或图片版
if(!this.checkIntroduce()){ if(!this.checkIntroduce()){
return; return;
...@@ -1007,6 +1060,11 @@ ...@@ -1007,6 +1060,11 @@
return; return;
} }
if(!this.pullFlag){
this.formData.pullStreamHttp = "";
this.formData.pullStreamRtmp = "";
}
let req = this.formData; let req = this.formData;
openLoading(this); openLoading(this);
this.POST('rtc/liveAdmin', req).then((res) => { this.POST('rtc/liveAdmin', req).then((res) => {
......
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册