提交 8d4cf928 编写于 作者: 张平's avatar 张平

Merge branch 'dev-circle-9-2-20210202' into 'release'

工作站添加短视频管理 code reviewer:张平



See merge request !244
<template> <template>
<el-form <el-form
ref="formData" ref="formData"
:model="formData" :model="formData"
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
v-model="formData.circleId" v-model="formData.circleId"
@change="returnTypeData('circleId')" @change="returnTypeData('circleId')"
placeholder="请选择小圈" placeholder="请选择小圈"
filterable
size="small"> size="small">
<el-option <el-option
v-for="(item,index) in circleList" v-for="(item,index) in circleList"
...@@ -104,7 +105,7 @@ ...@@ -104,7 +105,7 @@
<el-col :span="18"> <el-col :span="18">
<el-select v-model="formData.appModuleDto.paramList[j].value" filterable placeholder="请选择参数" style="width:88%"> <el-select v-model="formData.appModuleDto.paramList[j].value" filterable placeholder="请选择参数" style="width:88%">
<el-option <el-option
v-for="(item3,index3) in i" v-for="(item3,index3) in i"
:key="index3" :key="index3"
:label="item3.name" :label="item3.name"
:value="item3.id + '&'+ item3.name"> :value="item3.id + '&'+ item3.name">
...@@ -188,7 +189,7 @@ ...@@ -188,7 +189,7 @@
</el-form-item> </el-form-item>
<p class="upload-message" v-if="uploadImgMessage2">报名介绍页图片</p> <p class="upload-message" v-if="uploadImgMessage2">报名介绍页图片</p>
</div> </div>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="立即报名按钮颜色" prop="backgroundColor2NotJoin"> <el-form-item label="立即报名按钮颜色" prop="backgroundColor2NotJoin">
...@@ -221,7 +222,7 @@ ...@@ -221,7 +222,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="立即报名按钮文字颜色" prop="foregroundColor2NotJoin"> <el-form-item label="立即报名按钮文字颜色" prop="foregroundColor2NotJoin">
...@@ -255,7 +256,7 @@ ...@@ -255,7 +256,7 @@
</el-col> </el-col>
</el-row> </el-row>
<div style="margin-top: 60px;margin-left: 250px;"> <div style="margin-top: 60px;margin-left: 250px;">
<el-button type="primary" @click="save()" center>保存</el-button> <el-button type="primary" @click="save()" center>保存</el-button>
<el-button @click="cancle()">取 消</el-button> <el-button @click="cancle()">取 消</el-button>
...@@ -302,7 +303,7 @@ ...@@ -302,7 +303,7 @@
created() { created() {
vm = this; vm = this;
vm.getCircleList();//可以放在自组件优化 vm.getCircleList();//可以放在自组件优化
}, },
data() { data() {
let checkProjectStr = (rule, value, callback) => { let checkProjectStr = (rule, value, callback) => {
...@@ -444,10 +445,10 @@ ...@@ -444,10 +445,10 @@
}, },
methods: { methods: {
// 获取模块下拉数据 // 获取模块下拉数据
getModuleData() { getModuleData() {
getModuleData().then(function (res) { getModuleData().then(function (res) {
if(res.code == "000000") { if(res.code == "000000") {
vm.moduleArray = JSON.parse(JSON.stringify(res.data)); vm.moduleArray = JSON.parse(JSON.stringify(res.data));
...@@ -629,7 +630,7 @@ ...@@ -629,7 +630,7 @@
} }
}); });
this.$emit('returnIsNext', flag); this.$emit('returnIsNext', flag);
}, },
//上传活动列表页图片 //上传活动列表页图片
...@@ -703,7 +704,7 @@ ...@@ -703,7 +704,7 @@
} }
} }
// else if(_this.width > fileLimit.width || _this.height > fileLimit.height){ // else if(_this.width > fileLimit.width || _this.height > fileLimit.height){
// vm.showCropper = true; // vm.showCropper = true;
// vm.currentOption.cvWidth = _this.width; // vm.currentOption.cvWidth = _this.width;
......
<template>
<el-dialog
title="查看视频"
:visible="showVideoDetail"
@close="handlerClose"
width="780px"
>
<div class="video-detail-container">
<el-form ref="searchForm" :model="detailObj" label-suffix=":" size="small" label-width="100px">
<el-form-item label="视频描述">
<div>{{detailObj.videoDesc}}</div>
<video ref="videoRef" :src="detailObj.resourceUrl" controls="controls" poster class="video-content">您的浏览器不支持 video 标签。</video>
</el-form-item>
<div style="width: 100%;height: 1px;background-color: #DCDFE6;"></div>
<p class="title">审核结果</p>
<el-form-item label="送审时间">
<div>{{detailObj.startCheckDate | liveDateFilter}}</div>
</el-form-item>
<el-form-item label="机审完成时间">
<div>{{detailObj.completeCheckDate | liveDateFilter}}</div>
</el-form-item>
<el-form-item label="审核结果">
<!-- <div>{{detailObj.status | videoStatusFilter}}</div>-->
<div>{{detailObj.checkResult}}</div>
</el-form-item>
<el-form-item label="审核说明">
<div>{{detailObj.checkExplain}}</div>
</el-form-item>
<el-form-item label="图片" class="image-check-video">
<div v-for="(item, index) in detailObj.liteAvImages" style="display: inline-block">
<el-image
style="width: 100px; height: 100px;margin-right: 25px"
:src="item.url"
:preview-src-list="setSrc(index)">
<div slot="error" class="image-slot err-icon-set">
<i class="el-icon-picture-outline" style="font-size: 40px;margin-top: 25px;"></i>
</div>
</el-image>
<p style="text-align: center;padding-right: 25px;">{{item.timePoint}}</p>
</div>
</el-form-item>
</el-form>
</div>
</el-dialog>
</template>
<script>
import { getVideoDetail } from '@/utils/shortvideo/videoApi';
export default {
data() {
return {
detailObj: {
resourceUrl: '',
videoDesc: '',
startCheckDate: '',
completeCheckDate: '',
status: 2,
checkResult: '',
checkExplain: '',
liteAvImages: []
},
}
},
props: {
showVideoDetail: {
type: Boolean,
default: false
},
id: {
type: Number | String,
default: 0,
}
},
watch: {
id(val){
console.log('当前查看id',val);
this.init(val)
}
},
computed: {
setSrc(){
return function (index) {
let newArr = [];
let newItem = this.detailObj.liteAvImages[index];
newArr[0] = newItem.url;
return newArr;
}
},
},
mounted() {},
methods: {
init(id) {
getVideoDetail(id).then((res) => {
if(res.code == "000000") {
const { id, resourceUrl, videoDesc, liteAvCheckInfo } = res.data;
this.detailObj = res.data;
// this.resourceUrl = resourceUrl;//视频地址
// this.videoDesc = videoDesc;//视频描述
}
}).catch((error) => {
this.$message.error("请重试");
})
},
handlerClose() {
// console.log('视频制作',this.$refs.videoRef.play)
if (!this.$refs.videoRef.paused) {
this.$refs.videoRef.pause();
}
this.$emit('closeCheckDetail')
},
},
}
</script>
<style lang="scss" scoped>
.video-detail-container{
min-height: 500px;
.title{
line-height: 24px;
font-size: 18px;
color: #303133;
margin: 23px 0 15px;
}
.video-content{
max-height: 300px;
width: 100%;
margin-top: 20px;
}
}
</style>
<style lang="scss">
.image-check-video{
.err-icon-set{
width: 100px;
height: 100px;
background: #eee;
text-align: center;
vertical-align: middle;
}
}
</style>
...@@ -80,6 +80,7 @@ const orderDetail = r => require.ensure([], () => r(require('../views/goods/orde ...@@ -80,6 +80,7 @@ const orderDetail = r => require.ensure([], () => r(require('../views/goods/orde
const plazaList = r => require.ensure([], () => r(require('../views/plaza/plaza-list.vue')), 'plaza-list') const plazaList = r => require.ensure([], () => r(require('../views/plaza/plaza-list.vue')), 'plaza-list')
const activityMember = r => require.ensure([], () => r(require('../views/activitymanagement/activity-member.vue')), 'activity-member') const activityMember = r => require.ensure([], () => r(require('../views/activitymanagement/activity-member.vue')), 'activity-member')
const videoManage = r => require.ensure([], () => r(require('../views/shortvideo/video-manage.vue')), 'video-manage')
export default [{ export default [{
path: '/', path: '/',
...@@ -337,6 +338,10 @@ export default [{ ...@@ -337,6 +338,10 @@ export default [{
path: '/activity-member', path: '/activity-member',
component: activityMember, component: activityMember,
}, },
{
path: 'video-manage',
component: videoManage,
},
// { // {
// path: '/followup', // path: '/followup',
......
...@@ -531,7 +531,7 @@ const vueFilter = { ...@@ -531,7 +531,7 @@ const vueFilter = {
return '未发布' return '未发布'
} }
}, },
liveStatusFilter: (value) => { liveStatusFilter1: (value) => {
if (value == 1) { if (value == 1) {
return '预告' return '预告'
}else if (value == 2) { }else if (value == 2) {
...@@ -596,6 +596,19 @@ const vueFilter = { ...@@ -596,6 +596,19 @@ const vueFilter = {
} }
} }
return text; return text;
},
videoStatusFilter: (value) => {
let obj = {
1: '机审中',
2: '机审通过已发布',
3: '疑似违规',
4: '机审通过待人审',
5: '机审拒绝',
6: '人审通过已发布',
7: '已下线',
8: '已删除',
}
return obj[value];
} }
......
import fetch from '../fetch';
import { getBaseUrl, getSaasDomain, getSaasApiDomain } from '@/utils/index'
let headers = {
'Content-Type': 'application/json;charset=UTF-8',
token: localStorage.getItem('storageToken'),
};
export const getVideoList = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/liteav/admin/list`),
method: 'post',
data: params,
description: '获取短视频列表',
})
};
export const getSwitch = () => {
return fetch({
headers,
url: getBaseUrl(`circle/liteav/admin/switch`),
method: 'get',
description: '获取视频审核开关',
})
};
export const setSwitch = (btnVal) => {
return fetch({
headers,
url: getBaseUrl(`circle/liteav/admin/switch/set?button=${btnVal}`),
method: 'get',
description: '设置视频审核开关',
})
};
export const getVideoDetail = (id) => {
return fetch({
headers,
url: getBaseUrl(`circle/liteav/admin/detail/${id}`),
method: 'get',
description: '获取短视频详情',
})
};
export const manualCheck = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/liteav/admin/man/check`),
method: 'post',
data: params,
description: '短视频人工审核',
})
};
此差异已折叠。
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
<el-table-column prop="name" label="直播名称" min-width="100" align="center"></el-table-column> <el-table-column prop="name" label="直播名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="liveStatus" label="直播状态" min-width="100" align="center"> <el-table-column prop="liveStatus" label="直播状态" min-width="100" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.liveStatus | liveStatusFilter }}</span> <span>{{ scope.row.liveStatus | liveStatusFilter1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="streamType" label="直播方式" min-width="100" align="center"> <el-table-column prop="streamType" label="直播方式" min-width="100" align="center">
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册