修改短视频
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 添加视频
|
||||||
|
export function shortDramaAdd (data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/web/shortdrama/add',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除视频
|
||||||
|
export function shortDramaDel (data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/web/shortdrama/del',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 视频列表
|
||||||
|
export function shortDramaSearch (data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/web/shortdrama/list',
|
||||||
|
method: 'post',
|
||||||
|
filterParam: true,
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改视频
|
||||||
|
export function shortDramaUpdate (data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/web/shortdrama/update',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 添加视频
|
||||||
|
export function ShortmediaAdd (data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/web/shortmedia/add',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除视频
|
||||||
|
export function ShortmediaDel (data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/web/shortmedia/del',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 视频列表
|
||||||
|
export function ShortmediaSearch (data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/web/shortmedia/list',
|
||||||
|
method: 'post',
|
||||||
|
filterParam: true,
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改视频
|
||||||
|
export function shortmediaUpdate (data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/web/shortmedia/update',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
@@ -272,7 +272,12 @@ export const serverRouter = [
|
|||||||
icon: 'el-icon-video-camera'
|
icon: 'el-icon-video-camera'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'shortDrama',
|
||||||
|
name: 'ShortDrama',
|
||||||
|
api_url: [],
|
||||||
|
meta: { title: '短剧剧集', noCache: true, icon: 'el-icon-video-camera' }
|
||||||
|
},
|
||||||
// {
|
// {
|
||||||
// path: 'recommend',
|
// path: 'recommend',
|
||||||
// name: 'Recommend',
|
// name: 'Recommend',
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ const map = {
|
|||||||
CommentManage: () => import('@/views/videoManagement/commentManage/index.vue'), // 评论管理
|
CommentManage: () => import('@/views/videoManagement/commentManage/index.vue'), // 评论管理
|
||||||
CommentLib: () => import('@/views/videoManagement/commentLib/index.vue'), // 评论库
|
CommentLib: () => import('@/views/videoManagement/commentLib/index.vue'), // 评论库
|
||||||
FilterWordList: () => import('@/views/videoManagement/filterWordList/index.vue'), // 非法词列表
|
FilterWordList: () => import('@/views/videoManagement/filterWordList/index.vue'), // 非法词列表
|
||||||
|
ShortDrama: () => import('@/views/videoManagement/shortDrama/index.vue'), // 短剧剧集列表
|
||||||
|
|
||||||
// 小说管理
|
// 小说管理
|
||||||
NovelsManagement: Layout,
|
NovelsManagement: Layout,
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
||||||
<el-form-item label="发放金币总数" prop="content">
|
<el-form-item label="发放积分总数" prop="content">
|
||||||
<el-input placeholder="请输入总数" v-model.number="form.dailyLimit" style="width: 400px">
|
<el-input placeholder="请输入总数" v-model.number="form.dailyLimit" style="width: 400px">
|
||||||
<template #append>
|
<template #append>
|
||||||
<span>金币</span>
|
<span>积分</span>
|
||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -29,14 +29,14 @@
|
|||||||
<el-form-item label="最小:" size="mini" label-width="50">
|
<el-form-item label="最小:" size="mini" label-width="50">
|
||||||
<el-input placeholder="该次领取最小值" v-model.number="ru.min" style="width: 150px">
|
<el-input placeholder="该次领取最小值" v-model.number="ru.min" style="width: 150px">
|
||||||
<template #append>
|
<template #append>
|
||||||
<span>金币</span>
|
<span>积分</span>
|
||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="最大:" size="mini" label-width="50">
|
<el-form-item label="最大:" size="mini" label-width="50">
|
||||||
<el-input placeholder="该次领取最大值" v-model.number="ru.max" style="width: 150px">
|
<el-input placeholder="该次领取最大值" v-model.number="ru.max" style="width: 150px">
|
||||||
<template #append>
|
<template #append>
|
||||||
<span>金币</span>
|
<span>积分</span>
|
||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -79,9 +79,9 @@ export default {
|
|||||||
async init() {
|
async init() {
|
||||||
const res = await getConfig()
|
const res = await getConfig()
|
||||||
this.form = res.data
|
this.form = res.data
|
||||||
this.form.dailyLimit = (res.data.dailyLimit || 0) / 100
|
this.form.dailyLimit = res.data.dailyLimit || 0
|
||||||
if (this.form.rule) {
|
if (this.form.rule) {
|
||||||
this.form.rule = this.form.rule.map(v => ({ ...v, min: v.min / 100, max: v.max / 100 }))
|
this.form.rule = this.form.rule.map(v => ({ ...v, min: v.min, max: v.max }))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async submit() {
|
async submit() {
|
||||||
@@ -91,10 +91,10 @@ export default {
|
|||||||
}
|
}
|
||||||
const form = {
|
const form = {
|
||||||
...this.form,
|
...this.form,
|
||||||
dailyLimit: this.form.dailyLimit * 100
|
dailyLimit: this.form.dailyLimit
|
||||||
}
|
}
|
||||||
if (this.form.rule) {
|
if (this.form.rule) {
|
||||||
form.rule = this.form.rule.map(v => ({ ...v, min: v.min * 100, max: v.max * 100 }))
|
form.rule = this.form.rule.map(v => ({ ...v, min: v.min , max: v.max }))
|
||||||
}
|
}
|
||||||
await updateConfig(form)
|
await updateConfig(form)
|
||||||
this.$message.success('修改成功')
|
this.$message.success('修改成功')
|
||||||
|
|||||||
@@ -1,29 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog :title="title" :visible.sync="Visible" width="780px" center class="ac-dialog" :close-on-click-modal="false" @close="close">
|
<el-dialog :title="title" :visible.sync="Visible" width="780px" center class="ac-dialog" :close-on-click-modal="false" @close="close">
|
||||||
<el-form :inline="true" :model="form" :rules="rules" ref="form" class="demo-form-inline" label-width="120px" label-position="right">
|
<el-form :model="form" :rules="rules" ref="form" label-width="120px">
|
||||||
<el-row :gutter="24">
|
<el-form-item label="标题" prop="name">
|
||||||
|
<el-input v-model="form.title" placeholder="请输入标题" />
|
||||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
</el-form-item>
|
||||||
<el-form-item label="标题" prop="name">
|
<el-form-item label="答案" prop="answer">
|
||||||
<el-input v-model="form.title" placeholder="请输入标题" />
|
<el-input type="textarea" :rows="2" v-model="form.answer" placeholder="请输入答案" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
<el-form-item label="排序" prop="rank">
|
||||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
<el-input v-model.number="form.rank" placeholder="请输入排序" />
|
||||||
<el-form-item label="答案" prop="answer">
|
</el-form-item>
|
||||||
<el-input v-model="form.answer" placeholder="请输入答案" />
|
<el-form-item label="是否开启" prop="enable">
|
||||||
</el-form-item>
|
<el-switch v-model="form.enable" active-color="#13ce66" :active-value="true" :inactive-value="false"></el-switch>
|
||||||
</el-col>
|
</el-form-item>
|
||||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
|
||||||
<el-form-item label="排序" prop="rank">
|
|
||||||
<el-input v-model.number="form.rank" placeholder="请输入排序" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
|
||||||
<el-form-item label="是否开启" prop="enable">
|
|
||||||
<el-switch v-model="form.enable" active-color="#13ce66" :active-value="true" :inactive-value="false"></el-switch>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
|
|||||||
@@ -0,0 +1,234 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
:title="title"
|
||||||
|
:visible.sync="Visible"
|
||||||
|
top="50px"
|
||||||
|
center
|
||||||
|
class="ac-dialog"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
@close="close"
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
class="demo-form-inline"
|
||||||
|
label-width="120px"
|
||||||
|
label-position="right"
|
||||||
|
style=""
|
||||||
|
ref="ruleForm"
|
||||||
|
>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
||||||
|
<el-form-item label="标题">
|
||||||
|
<el-input
|
||||||
|
v-model="form.title"
|
||||||
|
style="width: 400px"
|
||||||
|
type="textarea"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
||||||
|
<el-form-item label="描述">
|
||||||
|
<el-input
|
||||||
|
v-model="form.desc"
|
||||||
|
style="width: 400px"
|
||||||
|
type="textarea"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="售价">
|
||||||
|
<el-input v-model.number="form.price" style="width: 180px">
|
||||||
|
<template slot="append">元</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="排序">
|
||||||
|
<el-input v-model.number="form.rank" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="视频状态">
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择视频状态"
|
||||||
|
clearable
|
||||||
|
v-model="form.status"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in MediaSatusList"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="剧集专题">
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择剧集专题"
|
||||||
|
clearable
|
||||||
|
@clear="clearableFn"
|
||||||
|
v-model="form.topicId"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in topicList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="封面">
|
||||||
|
<UploadImg
|
||||||
|
@changeImgUrl="changeCoverImgUrl"
|
||||||
|
:img="form.coverImg"
|
||||||
|
></UploadImg>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="Visible = false"> 取 消</el-button>
|
||||||
|
<el-button type="primary" @click="submit('ruleForm')"> 确 定 </el-button>
|
||||||
|
</div>
|
||||||
|
<AddVideo
|
||||||
|
:data="form"
|
||||||
|
v-if="addVisible"
|
||||||
|
@close="closeVideoInfo"
|
||||||
|
@closeAll="close"
|
||||||
|
@submit="videoInfo"
|
||||||
|
></AddVideo>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import UploadImg from "@/components/UploadImg/index";
|
||||||
|
|
||||||
|
import moment from "moment";
|
||||||
|
import {
|
||||||
|
stringToArry,
|
||||||
|
arryToString,
|
||||||
|
changeMoneyYuan,
|
||||||
|
changeMoneyFen,
|
||||||
|
} from "@/filters/index";
|
||||||
|
import { MediaSatusList } from "@/filters/videoManagement/videoList";
|
||||||
|
import {
|
||||||
|
shortDramaUpdate,
|
||||||
|
shortDramaAdd,
|
||||||
|
} from "@/api/videoManagement/shortDrama";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "AddOrEdit",
|
||||||
|
props: ["data", "videoType", "topicList"],
|
||||||
|
components: {
|
||||||
|
UploadImg,
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
Visible: true,
|
||||||
|
title: "",
|
||||||
|
addVisible: false,
|
||||||
|
MediaSatusList: MediaSatusList(),
|
||||||
|
tagsList: [],
|
||||||
|
tagCategoryId: undefined,
|
||||||
|
form: {
|
||||||
|
title: undefined,
|
||||||
|
topicId: undefined,
|
||||||
|
status: undefined,
|
||||||
|
coverImg: undefined, // [],封面
|
||||||
|
rank:undefined,
|
||||||
|
desc: undefined, // "string",详细描述
|
||||||
|
|
||||||
|
price: undefined, // 0,售价,单位分
|
||||||
|
},
|
||||||
|
rules: {},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
mounted() {
|
||||||
|
this.title = this.data.title;
|
||||||
|
if (this.title === "编辑") {
|
||||||
|
this.form = { ...this.data.data };
|
||||||
|
this.form.price = changeMoneyYuan(this.form.price);
|
||||||
|
} else if (this.title === "新增") {
|
||||||
|
this.addVisible = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// TODO:
|
||||||
|
update(data) {
|
||||||
|
if (this.title === "新增") {
|
||||||
|
shortDramaAdd(data).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success("更新成功");
|
||||||
|
this.close();
|
||||||
|
} else {
|
||||||
|
this.$message.error("更新失败");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
shortDramaUpdate(data).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success("更新成功");
|
||||||
|
this.close();
|
||||||
|
} else {
|
||||||
|
this.$message.error("更新失败");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增时视频ID绑定
|
||||||
|
videoInfo(data) {
|
||||||
|
this.form = { ...this.form, data };
|
||||||
|
|
||||||
|
this.addVisible = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 提交按钮
|
||||||
|
submit(formName) {
|
||||||
|
this.$refs[formName].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.form.score = parseFloat(this.form.score);
|
||||||
|
const data = {
|
||||||
|
id: this.form.id,
|
||||||
|
param: JSON.parse(JSON.stringify(this.form)),
|
||||||
|
};
|
||||||
|
|
||||||
|
data.param.price = data.param.price
|
||||||
|
? changeMoneyFen(data.param.price)
|
||||||
|
: 0;
|
||||||
|
|
||||||
|
this.update(data);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
clearableFn(){
|
||||||
|
this.form.topicId = 0
|
||||||
|
},
|
||||||
|
// 关闭编辑
|
||||||
|
close() {
|
||||||
|
this.$emit("close");
|
||||||
|
},
|
||||||
|
// 上传图片返回地址
|
||||||
|
changeCoverImgUrl(data) {
|
||||||
|
this.form.coverImg = data;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 关闭不通过原因弹框
|
||||||
|
closeVideoInfo() {
|
||||||
|
this.addVisible = false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: 王涛
|
||||||
|
* @Mail: no
|
||||||
|
* @Date: 2020-10-02 23:41:38
|
||||||
|
* @LastEditors: Please set LastEditors
|
||||||
|
* @LastEditTime: 2022-05-26 17:25:56
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<el-dialog :visible.sync="Visible" width="400px" center class="ac-dialog" :close-on-click-modal="false" @close="close" title="绑定影片" append-to-body>
|
||||||
|
<el-form :inline="true" :model="form" class="demo-form-inline" label-width="120px" label-position="right">
|
||||||
|
<el-input v-model="form.fileId " placeholder="请输入媒资库影片ID" style="width: 100%;margin-top:10px"></el-input>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="close"> 取 消 </el-button>
|
||||||
|
<el-button type="primary" @click="submit"> 确 定 </el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mediaAdd } from '@/api/videoManagement/videoList'
|
||||||
|
export default {
|
||||||
|
name: 'AvList',
|
||||||
|
props: ['data'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
Visible: true,
|
||||||
|
// 表单数据
|
||||||
|
form: {
|
||||||
|
fileId: undefined,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
// 提交按钮
|
||||||
|
submit() {
|
||||||
|
mediaAdd(this.form).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
// this.$emit('submit', res.data)
|
||||||
|
this.$message.success('添加成功')
|
||||||
|
this.close()
|
||||||
|
} else if (res.code === 8000) {
|
||||||
|
this.$message.error('媒资库ID不存在')
|
||||||
|
} else if (res.code === 1006) {
|
||||||
|
this.$message.error('请输入媒资库ID')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 关闭编辑
|
||||||
|
close() {
|
||||||
|
this.$emit('close')
|
||||||
|
this.$emit('closeAll')
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: 王涛
|
||||||
|
* @Mail: no
|
||||||
|
* @Date: 2020-10-02 23:41:38
|
||||||
|
* @LastEditors: Please set LastEditors
|
||||||
|
* @LastEditTime: 2022-05-26 17:51:34
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<el-dialog :visible.sync="Visible" width="400px" center class="ac-dialog" :close-on-click-modal="false" @close="close" title="绑定影片" append-to-body>
|
||||||
|
<el-form :inline="true" :model="form" class="demo-form-inline" label-width="120px" label-position="right">
|
||||||
|
<el-input v-model="form.fileId " placeholder="请输入媒资库影片ID" style="width: 100%;margin-top:10px"></el-input>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="close"> 取 消 </el-button>
|
||||||
|
<el-button type="primary" @click="submit"> 确 定 </el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mediaAddTs } from '@/api/videoManagement/videoList'
|
||||||
|
export default {
|
||||||
|
name: 'AvList',
|
||||||
|
props: ['data'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
Visible: true,
|
||||||
|
// 表单数据
|
||||||
|
form: {
|
||||||
|
fileId: undefined,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
// 提交按钮
|
||||||
|
submit() {
|
||||||
|
mediaAddTs(this.form).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
// this.$emit('submit', res.data)
|
||||||
|
this.$message.success('添加成功')
|
||||||
|
this.close()
|
||||||
|
} else if (res.code === 8000) {
|
||||||
|
this.$message.error('媒资库ID不存在')
|
||||||
|
} else if (res.code === 1006) {
|
||||||
|
this.$message.error('请输入媒资库ID')
|
||||||
|
} else {
|
||||||
|
this.$message.error('视频添加失败')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 关闭编辑
|
||||||
|
close() {
|
||||||
|
this.$emit('close')
|
||||||
|
this.$emit('closeAll')
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
@@ -0,0 +1,457 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
:title="title"
|
||||||
|
:visible.sync="Visible"
|
||||||
|
width="700px"
|
||||||
|
center
|
||||||
|
class="ac-dialog"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
@close="close"
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
ref="ruleForm"
|
||||||
|
class="demo-form-inline"
|
||||||
|
label-width="120px"
|
||||||
|
label-position="right"
|
||||||
|
>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="视频分类">
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择视频分类"
|
||||||
|
v-model="form.cardType"
|
||||||
|
clearabl
|
||||||
|
@change="changeCardType"
|
||||||
|
style="width: 180px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
v-for="item in cardType"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="主题分类">
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择主题分类"
|
||||||
|
v-model="form.topicIds"
|
||||||
|
filterable
|
||||||
|
allow-create
|
||||||
|
default-first-option
|
||||||
|
multiple
|
||||||
|
style="width: 180px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
v-for="item in chooseVideoType"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="是否VIP" prop="status">
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择信息分类"
|
||||||
|
clearable
|
||||||
|
v-model="form.isVip"
|
||||||
|
style="width: 180px"
|
||||||
|
>
|
||||||
|
<el-option label="非VIP视频" :value="false" />
|
||||||
|
<el-option label="VIP视频" :value="true" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="视频状态" prop="status">
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择视频状态"
|
||||||
|
clearable
|
||||||
|
v-model="form.status"
|
||||||
|
style="width: 180px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in MediaSatusList"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="演员分类">
|
||||||
|
<el-select
|
||||||
|
style="width: 180px"
|
||||||
|
multiple
|
||||||
|
placeholder="请选择演员分类"
|
||||||
|
v-model="form.actorIds"
|
||||||
|
filterable
|
||||||
|
allow-create
|
||||||
|
default-first-option
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
v-for="item in actorList"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="发布者ID">
|
||||||
|
<el-input v-model.number="form.publishId" style="width: 180px" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="上架时间">
|
||||||
|
<el-date-picker v-model="form.addedTime" type="datetime" placeholder="请选择发布时间">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="封面类型">
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择封面类型"
|
||||||
|
v-model="form.coverType"
|
||||||
|
clearable
|
||||||
|
style="width: 180px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
v-for="item in coverTypeList"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="虚拟观看次数">
|
||||||
|
<el-input v-model.number="form.fake.watchTimes" style="width: 180px" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="虚拟点赞次数">
|
||||||
|
<el-input v-model.number="form.fake.likes" style="width: 180px" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="售价">
|
||||||
|
<el-input v-model="form.price" style="width: 180px">
|
||||||
|
<template slot="append"
|
||||||
|
>元</template
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="视频类型">
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择视频类型"
|
||||||
|
v-model="form.contentType"
|
||||||
|
clearable
|
||||||
|
style="width: 180px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
v-for="item in contentTypeList"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
||||||
|
<el-form-item label="已选标签">
|
||||||
|
<el-tag :key="index + 'tag'" v-for="(item, index) in tagsList" :disable-transitions="true" closable style="margin: 2px" @close="handleTagClose(item.id)">
|
||||||
|
{{ item.name }}
|
||||||
|
</el-tag>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
||||||
|
<el-form-item label="可选标签">
|
||||||
|
<el-button
|
||||||
|
:type="showTagsFlag ? 'warning' : 'success'"
|
||||||
|
@click="showTagsFun"
|
||||||
|
>{{ showTagsFlag ? "隐藏标签" : "展示标签" }}</el-button
|
||||||
|
>
|
||||||
|
<div v-for="(itemList,index) in chooseMediatag" :key="index">
|
||||||
|
<span v-show="showTagsFlag">{{ itemList[0].tagCategoryId | changeName(tagTypeList,'id','name') }}</span>
|
||||||
|
<el-tag v-show="showTagsFlag" :key="index + 'tagData'" style="margin: 2px; cursor: pointer" v-for="(item, index) in itemList" :disable-transitions="true" :type="fliterTagType(item.name)" @click="handleClickTag(item)">
|
||||||
|
{{ item.name}}
|
||||||
|
</el-tag>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="Visible = false"> 取 消 </el-button>
|
||||||
|
<el-button type="primary" @click="submit"> 确 定 </el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mediaUpdate, getVideoTags } from "@/api/videoManagement/videoList";
|
||||||
|
import { MediaSatusList } from "@/filters/videoManagement/videoList";
|
||||||
|
import { arryToString, changeMoneyFen } from "@/filters/index";
|
||||||
|
import { mediatagList } from "@/api/videoManagement/mediatag";
|
||||||
|
import { topicSearch } from "@/api/videoManagement/topic";
|
||||||
|
import {
|
||||||
|
contentTypeList,
|
||||||
|
coverTypeList,
|
||||||
|
videoClassificationList,
|
||||||
|
} from "@/filters/mediaLibrary/videoList";
|
||||||
|
export default {
|
||||||
|
name: "Batch",
|
||||||
|
props: ["data", "videoType", "gatherList", "studioList", "actorList", "tagTypeList"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
contentTypeList: contentTypeList(),
|
||||||
|
MediaSatusList: MediaSatusList(),
|
||||||
|
coverTypeList: coverTypeList(),
|
||||||
|
cardType: videoClassificationList(),
|
||||||
|
Visible: true,
|
||||||
|
showTagsFlag: false,
|
||||||
|
title: "",
|
||||||
|
// 表单数据
|
||||||
|
form: {
|
||||||
|
isVip: undefined,
|
||||||
|
status: undefined,
|
||||||
|
topicIds: [],
|
||||||
|
gatherIds: [],
|
||||||
|
actorIds: [],
|
||||||
|
actor: undefined,
|
||||||
|
companiesId: undefined,
|
||||||
|
publishId: undefined,
|
||||||
|
addedTime: undefined,
|
||||||
|
coverType: undefined,
|
||||||
|
tags: [],
|
||||||
|
fake: {},
|
||||||
|
|
||||||
|
cardType: undefined,
|
||||||
|
contentType: undefined,
|
||||||
|
price: undefined,
|
||||||
|
},
|
||||||
|
//
|
||||||
|
dates: [],
|
||||||
|
rules: {
|
||||||
|
isVip: undefined,
|
||||||
|
status: undefined,
|
||||||
|
},
|
||||||
|
chooseMediatag: [],
|
||||||
|
chooseVideoType: [],
|
||||||
|
tagsList: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
// 删除已选择列表中的标签
|
||||||
|
handleTagClose(tag) {
|
||||||
|
this.form.tags.splice(this.form.tags.indexOf(tag), 1);
|
||||||
|
this.tagsList.splice(this.form.tags.indexOf(tag), 1)
|
||||||
|
},
|
||||||
|
//显示展示标签
|
||||||
|
showTagsFun() {
|
||||||
|
this.showTagsFlag = !this.showTagsFlag;
|
||||||
|
},
|
||||||
|
// 点击可选择列表中的标签
|
||||||
|
handleClickTag(item) {
|
||||||
|
if (this.form.tags.indexOf(item.id) === -1) {
|
||||||
|
this.form.tags.push(item.id);
|
||||||
|
this.tagsList.push(item)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 在可选择列表过滤出已选择的标签
|
||||||
|
fliterTagType(tagID) {
|
||||||
|
if (this.form.tags.indexOf(tagID) !== -1) {
|
||||||
|
return "danger";
|
||||||
|
} else {
|
||||||
|
return "info";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
changeCardType(val) {
|
||||||
|
this.getTopicSearch(val);
|
||||||
|
},
|
||||||
|
// changeContentType(val) {
|
||||||
|
// this.getMediatagList(val);
|
||||||
|
// },
|
||||||
|
// 获取标签
|
||||||
|
getMediatagList(val) {
|
||||||
|
this.chooseMediatag = [];
|
||||||
|
const param = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 500,
|
||||||
|
};
|
||||||
|
getVideoTags(param).then((res) => {
|
||||||
|
if (res.data.list) {
|
||||||
|
const result = res.data.list.reduce((acc,cur) => { // 将标签区分类型
|
||||||
|
const index = acc.findIndex(item => item[0].tagCategoryId === cur.tagCategoryId)
|
||||||
|
if( index === -1){
|
||||||
|
acc.push([cur])
|
||||||
|
} else {
|
||||||
|
acc[index].push(cur)
|
||||||
|
}
|
||||||
|
return acc
|
||||||
|
}, [])
|
||||||
|
this.chooseMediatag = [...result]
|
||||||
|
} else {
|
||||||
|
this.chooseMediatag = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 获取主题
|
||||||
|
getTopicSearch(val) {
|
||||||
|
this.chooseVideoType = [];
|
||||||
|
const param = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 500,
|
||||||
|
cardType: val,
|
||||||
|
};
|
||||||
|
topicSearch(param).then((res) => {
|
||||||
|
if (res.data.list) {
|
||||||
|
res.data.list.forEach((item) => {
|
||||||
|
this.chooseVideoType.push({
|
||||||
|
label: item.name,
|
||||||
|
value: item.id,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.chooseVideoType = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 提交按钮
|
||||||
|
submit() {
|
||||||
|
if (this.data.length) {
|
||||||
|
this.data.forEach((item) => {
|
||||||
|
const data = {
|
||||||
|
id: item.id,
|
||||||
|
param: item,
|
||||||
|
};
|
||||||
|
data.param.isVip = this.form.isVip;
|
||||||
|
if(this.form.status){
|
||||||
|
data.param.status = this.form.status;
|
||||||
|
}else{
|
||||||
|
this.$message({
|
||||||
|
type: "error",
|
||||||
|
message: "请选择视频状态!",
|
||||||
|
});
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.form.tags.length) {
|
||||||
|
data.param.tags = this.form.tags;
|
||||||
|
}
|
||||||
|
if (this.form.topicIds.length) {
|
||||||
|
data.param.topicIds = this.form.topicIds;
|
||||||
|
}
|
||||||
|
if (this.form.cardType) {
|
||||||
|
data.param.cardType = this.form.cardType;
|
||||||
|
}
|
||||||
|
if (this.form.gatherIds.length !== 0) {
|
||||||
|
data.param.gatherIds = this.form.gatherIds;
|
||||||
|
}
|
||||||
|
if (this.form.price) {
|
||||||
|
data.param.price = changeMoneyFen(this.form.price);
|
||||||
|
}
|
||||||
|
if (this.form.fake.watchTimes) {
|
||||||
|
data.param.fake.watchTimes = this.form.fake.watchTimes;
|
||||||
|
}
|
||||||
|
if (this.form.fake.likes) {
|
||||||
|
data.param.fake.likes = this.form.fake.likes;
|
||||||
|
}
|
||||||
|
if (this.form.actorIds.length !== 0) {
|
||||||
|
data.param.actorIds = this.form.actorIds;
|
||||||
|
const actorNameArr = [];
|
||||||
|
Object.keys(this.actorList).forEach((key) => {
|
||||||
|
if (this.form.actorIds.length > 0) {
|
||||||
|
for (
|
||||||
|
let index = 0;
|
||||||
|
index < this.form.actorIds.length;
|
||||||
|
index++
|
||||||
|
) {
|
||||||
|
if (this.form.actorIds[index] === this.actorList[key].id) {
|
||||||
|
actorNameArr.push(this.actorList[key].name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
data.param.actor = arryToString(actorNameArr);
|
||||||
|
} else {
|
||||||
|
data.param.actor = arryToString(data.param.actor);
|
||||||
|
}
|
||||||
|
if (this.form.companiesId) {
|
||||||
|
data.param.companiesId = this.form.companiesId;
|
||||||
|
}
|
||||||
|
if (this.form.publishId) {
|
||||||
|
data.param.publishId = this.form.publishId;
|
||||||
|
}
|
||||||
|
if (this.form.addedTime) {
|
||||||
|
data.param.addedTime = this.form.addedTime;
|
||||||
|
}
|
||||||
|
if (this.form.contentType) {
|
||||||
|
data.param.contentType = this.form.contentType;
|
||||||
|
}
|
||||||
|
if (this.form.coverType) {
|
||||||
|
data.param.coverType = this.form.coverType;
|
||||||
|
}
|
||||||
|
mediaUpdate(data).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message({
|
||||||
|
type: "success",
|
||||||
|
message: item.id + "修改成功",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$message({
|
||||||
|
type: "error",
|
||||||
|
message: item.id + "修改失败",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$message({
|
||||||
|
type: "error",
|
||||||
|
message: "未选择视频",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.Visible = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 关闭编辑
|
||||||
|
close() {
|
||||||
|
this.$emit("close");
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getMediatagList()
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,248 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog :title="title" :visible.sync="Visible" top="50px" center class="ac-dialog" @close="close" append-to-body>
|
||||||
|
<el-form :inline="true" :model="form" :rules="rules" class="demo-form-inline" label-width="120px" label-position="right" style="" ref="ruleForm">
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="标题">
|
||||||
|
<el-input v-model="form.title" style="width: 400px" type="textarea" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="番号">
|
||||||
|
<el-input v-model="form.bango" style="width: 400px" type="textarea" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8">
|
||||||
|
<el-form-item label="封面">
|
||||||
|
<UploadImg @changeImgUrl="changeCoverImgUrl" :img="form.coverImg"></UploadImg>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="预览时间(秒)">
|
||||||
|
<el-input v-model.number="form.preTime" style="width: 180px" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8">
|
||||||
|
<el-form-item label="视频状态">
|
||||||
|
<el-select placeholder="请选择视频状态" clearable v-model="form.status">
|
||||||
|
<el-option v-for="item in MediaSatusList" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8">
|
||||||
|
<el-form-item label="上架时间">
|
||||||
|
<el-date-picker v-model="form.addedTime" type="datetime" placeholder="请选择发布时间">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8">
|
||||||
|
<el-form-item label="售价">
|
||||||
|
<el-input v-model="form.price" style="width: 180px">
|
||||||
|
<template slot="append">元</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8">
|
||||||
|
<el-form-item label="是否是vip">
|
||||||
|
<el-switch v-model="form.isVip" active-color="#13ce66" inactive-color="#ff4949" style="width: 180px"></el-switch>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8">
|
||||||
|
<el-form-item label="排序">
|
||||||
|
<el-input v-model.number="form.rank" style="width: 180px" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="70">
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="Visible = false"> 取 消</el-button>
|
||||||
|
<el-button type="primary" @click="submit('ruleForm')">
|
||||||
|
确 定
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<AddVideo :data="form" v-if="addVisible" @close="closeVideoInfo" @closeAll="close" @submit="videoInfo"></AddVideo>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import UploadImg from '@/components/UploadImg/index'
|
||||||
|
|
||||||
|
import moment from 'moment'
|
||||||
|
import { stringToArry, arryToString, changeMoneyYuan, changeMoneyFen } from '@/filters/index'
|
||||||
|
import { MediaSatusList } from '@/filters/videoManagement/videoList'
|
||||||
|
import { shortmediaUpdate,ShortmediaAdd } from '@/api/videoManagement/shortMedia'
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'AddOrEdit',
|
||||||
|
props: ['data', 'videoType', 'mediatag',],
|
||||||
|
components: {
|
||||||
|
UploadImg,
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
showTagsFlag: false,
|
||||||
|
Visible: true,
|
||||||
|
title: '',
|
||||||
|
MediaSatusList: MediaSatusList(),
|
||||||
|
addVisible: false,
|
||||||
|
longMediatag: [],
|
||||||
|
longVideoType: [],
|
||||||
|
shortMediatag: [],
|
||||||
|
shortVideoType: [],
|
||||||
|
chooseMediatag: [],
|
||||||
|
chooseVideoType: [],
|
||||||
|
tagsList:[],
|
||||||
|
tagCategoryId: undefined,
|
||||||
|
form: {
|
||||||
|
addedTime: undefined, // "string",上架时间
|
||||||
|
bango: undefined, // 番号
|
||||||
|
contentType: undefined, // 格式类型: 1:AV 2:小视频 3:动漫
|
||||||
|
tags: [],
|
||||||
|
score: undefined, // 评分
|
||||||
|
coverImg: undefined, // [],封面
|
||||||
|
coverType: undefined, // 封面类型: 1:竖版封面 2:横版封面 3:未知
|
||||||
|
desc: undefined, // "string",详细描述
|
||||||
|
fake: {},
|
||||||
|
isVip: undefined, // true,是否VIp
|
||||||
|
preFileName: undefined, // "string",预览文件
|
||||||
|
price: undefined, // 0,售价,单位分
|
||||||
|
publishAvatar: undefined, // 视频发布者头像
|
||||||
|
publishId: undefined, // 发布者ID
|
||||||
|
status: undefined, // 0,视频状态
|
||||||
|
title: undefined, // "string",标题
|
||||||
|
topicIds: [], // 视频分类
|
||||||
|
mediaSet: undefined, // 视频归属
|
||||||
|
id: undefined, // 0,视频Id
|
||||||
|
rank:undefined,
|
||||||
|
preTime: 0,
|
||||||
|
|
||||||
|
},
|
||||||
|
rules: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.title = this.data.title
|
||||||
|
if (this.title === '编辑') {
|
||||||
|
this.form = { ...this.data.data }
|
||||||
|
this.form.price = changeMoneyYuan(this.form.price)
|
||||||
|
this.form.addedTime =
|
||||||
|
moment(this.data.data.addedTime)
|
||||||
|
.utcOffset(480)
|
||||||
|
.format('YYYY-MM-DDTHH:mm:ss') + '+08:00'
|
||||||
|
this.form.sortTime =
|
||||||
|
moment(this.data.data.sortTime)
|
||||||
|
.utcOffset(480)
|
||||||
|
.format('YYYY-MM-DDTHH:mm:ss') + '+08:00'
|
||||||
|
} else if (this.title === '新增') {
|
||||||
|
this.addVisible = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
// TODO:
|
||||||
|
update(data) {
|
||||||
|
if(this.title === '新增'){
|
||||||
|
ShortmediaAdd(data).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success('更新成功')
|
||||||
|
this.close()
|
||||||
|
} else {
|
||||||
|
this.$message.error('更新失败')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
shortmediaUpdate(data).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success('更新成功')
|
||||||
|
this.close()
|
||||||
|
} else {
|
||||||
|
this.$message.error('更新失败')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// 新增时视频ID绑定
|
||||||
|
videoInfo(data) {
|
||||||
|
this.form = { ...this.form, data }
|
||||||
|
if (this.form.actorIds) {
|
||||||
|
this.form.actorids = arryToString(this.form.actorids)
|
||||||
|
}
|
||||||
|
// this.form.directors = arryToString(this.form.directors)
|
||||||
|
// this.form.secondTags = arryToString(this.form.secondTags)
|
||||||
|
this.addVisible = false
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 提交按钮
|
||||||
|
submit(formName) {
|
||||||
|
this.$refs[formName].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
const tagNameArr = []
|
||||||
|
if (this.mediatag) {
|
||||||
|
Object.keys(this.mediatag).forEach((key) => {
|
||||||
|
if (this.form.actorIds.length > 0) {
|
||||||
|
for (let index = 0; index < this.form.tags.length; index++) {
|
||||||
|
if (this.form.tags[index] === this.mediatag[key].id) {
|
||||||
|
tagNameArr.push(this.mediatag[key].name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.form.tagString = arryToString(tagNameArr)
|
||||||
|
}
|
||||||
|
this.form.score = parseFloat(this.form.score)
|
||||||
|
const data = {
|
||||||
|
id: this.form.id,
|
||||||
|
param: JSON.parse(JSON.stringify(this.form)),
|
||||||
|
}
|
||||||
|
data.param.mediaSet = data.param.mediaSet ? stringToArry(data.param.mediaSet) : []
|
||||||
|
data.param.price = changeMoneyFen(data.param.price)
|
||||||
|
|
||||||
|
data.param.companiesId = Number(data.param.companiesId)
|
||||||
|
data.param.fake.watchTimes = data.param.fake.watchTimes
|
||||||
|
? Number(data.param.fake.watchTimes)
|
||||||
|
: 0
|
||||||
|
this.update(data)
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 关闭编辑
|
||||||
|
close() {
|
||||||
|
this.$emit('close')
|
||||||
|
},
|
||||||
|
// 上传图片返回地址
|
||||||
|
changeCoverImgUrl(data) {
|
||||||
|
this.form.coverImg = data
|
||||||
|
},
|
||||||
|
|
||||||
|
// 关闭不通过原因弹框
|
||||||
|
closeVideoInfo() {
|
||||||
|
this.addVisible = false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: 王涛
|
||||||
|
* @Mail: no
|
||||||
|
* @Date: 2020-10-02 23:41:38
|
||||||
|
* @LastEditors: Please set LastEditors
|
||||||
|
* @LastEditTime: 2022-05-26 17:25:56
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<el-dialog :visible.sync="Visible" width="400px" center class="ac-dialog" :close-on-click-modal="false" @close="close" title="绑定影片" append-to-body>
|
||||||
|
<el-form :inline="true" :model="form" class="demo-form-inline" label-width="120px" label-position="right">
|
||||||
|
<el-input v-model="form.fileId " placeholder="请输入媒资库影片ID" style="width: 100%;margin-top:10px"></el-input>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="close"> 取 消 </el-button>
|
||||||
|
<el-button type="primary" @click="submit"> 确 定 </el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mediaAdd } from '@/api/videoManagement/videoList'
|
||||||
|
export default {
|
||||||
|
name: 'AvList',
|
||||||
|
props: ['data'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
Visible: true,
|
||||||
|
// 表单数据
|
||||||
|
form: {
|
||||||
|
fileId: undefined,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
// 提交按钮
|
||||||
|
submit() {
|
||||||
|
mediaAdd(this.form).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
// this.$emit('submit', res.data)
|
||||||
|
this.$message.success('添加成功')
|
||||||
|
this.close()
|
||||||
|
} else if (res.code === 8000) {
|
||||||
|
this.$message.error('媒资库ID不存在')
|
||||||
|
} else if (res.code === 1006) {
|
||||||
|
this.$message.error('请输入媒资库ID')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 关闭编辑
|
||||||
|
close() {
|
||||||
|
this.$emit('close')
|
||||||
|
this.$emit('closeAll')
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
@@ -0,0 +1,160 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
:title="title"
|
||||||
|
:visible.sync="Visible"
|
||||||
|
top="50px"
|
||||||
|
center
|
||||||
|
class="ac-dialog"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
@close="close"
|
||||||
|
append-to-body
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
class="demo-form-inline"
|
||||||
|
label-width="120px"
|
||||||
|
label-position="right"
|
||||||
|
style=""
|
||||||
|
ref="ruleForm"
|
||||||
|
>
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="视频状态">
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择视频状态"
|
||||||
|
clearable
|
||||||
|
v-model="form.status"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in MediaSatusList"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="上架时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="form.addedTime"
|
||||||
|
type="datetime"
|
||||||
|
placeholder="请选择发布时间"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="售价">
|
||||||
|
<el-input v-model="form.price" style="width: 180px">
|
||||||
|
<template slot="append">元</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="是否是vip">
|
||||||
|
<el-switch
|
||||||
|
v-model="form.isVip"
|
||||||
|
active-color="#13ce66"
|
||||||
|
inactive-color="#ff4949"
|
||||||
|
style="width: 180px"
|
||||||
|
></el-switch>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="Visible = false"> 取 消</el-button>
|
||||||
|
<el-button type="primary" @click="submit('ruleForm')"> 确 定 </el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import UploadImg from "@/components/UploadImg/index";
|
||||||
|
|
||||||
|
import moment from "moment";
|
||||||
|
import {
|
||||||
|
stringToArry,
|
||||||
|
arryToString,
|
||||||
|
changeMoneyYuan,
|
||||||
|
changeMoneyFen,
|
||||||
|
} from "@/filters/index";
|
||||||
|
import { MediaSatusList } from "@/filters/videoManagement/videoList";
|
||||||
|
import {
|
||||||
|
shortmediaUpdate,
|
||||||
|
ShortmediaAdd,
|
||||||
|
} from "@/api/videoManagement/shortMedia";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "AddOrEdit",
|
||||||
|
props: ["selectBatch"],
|
||||||
|
components: {
|
||||||
|
UploadImg,
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
Visible: true,
|
||||||
|
title: "",
|
||||||
|
MediaSatusList: MediaSatusList(),
|
||||||
|
form: {
|
||||||
|
addedTime: undefined, // "string",上架时间
|
||||||
|
isVip: false, // true,是否VIp
|
||||||
|
price: undefined, // 0,售价,单位分
|
||||||
|
status: undefined, // 0,视频状态
|
||||||
|
},
|
||||||
|
rules: {},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
// TODO:
|
||||||
|
update(data,length) {
|
||||||
|
shortmediaUpdate(data).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success("更新成功");
|
||||||
|
if(length){
|
||||||
|
this.close()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$message.error("更新失败");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
// 提交按钮
|
||||||
|
submit(formName) {
|
||||||
|
this.$refs[formName].validate( (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.form.price = changeMoneyFen(this.form.price);
|
||||||
|
this.selectBatch.map((item,index)=>{
|
||||||
|
const data = {
|
||||||
|
id: item.id,
|
||||||
|
param: { ...this.form },
|
||||||
|
};
|
||||||
|
this.update(data,this.selectBatch.length-1===index);
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 关闭编辑
|
||||||
|
close() {
|
||||||
|
this.$emit("close");
|
||||||
|
},
|
||||||
|
// 上传图片返回地址
|
||||||
|
changeCoverImgUrl(data) {
|
||||||
|
this.form.coverImg = data;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
@@ -0,0 +1,529 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="pf-warpper avlist">
|
||||||
|
<el-dialog
|
||||||
|
title="短剧视频"
|
||||||
|
:visible.sync="Visible"
|
||||||
|
width="90%"
|
||||||
|
center
|
||||||
|
class="ac-dialog"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
@close="close"
|
||||||
|
>
|
||||||
|
<el-row class="table-form">
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
:model="searchData"
|
||||||
|
class="form-inline"
|
||||||
|
size="mini"
|
||||||
|
>
|
||||||
|
<el-form-item>
|
||||||
|
<el-input
|
||||||
|
placeholder="请输入短剧Id"
|
||||||
|
clearable
|
||||||
|
v-model.number="searchData.id"
|
||||||
|
@clear="onClear('id')"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-input
|
||||||
|
placeholder="请输入标题"
|
||||||
|
clearable
|
||||||
|
v-model="searchData.title"
|
||||||
|
@clear="onClear('title')"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button
|
||||||
|
@click="onSeach"
|
||||||
|
icon="el-icon-search"
|
||||||
|
plain
|
||||||
|
type="primary"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button @click="batch" plain type="success"
|
||||||
|
>批量设置</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col>
|
||||||
|
<el-table
|
||||||
|
:data="resData"
|
||||||
|
element-loading-text="拼命加载中"
|
||||||
|
border
|
||||||
|
height="700"
|
||||||
|
highlight-current-row
|
||||||
|
style="width: 100%"
|
||||||
|
v-loading="loading"
|
||||||
|
:row-style="{ height: '70px' }"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
empty-text="暂无更多数据"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="50" fixed="left">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="排序">
|
||||||
|
<template slot-scope="scope">{{ scope.row.rank }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="Id">
|
||||||
|
<template slot-scope="scope">{{ scope.row.id }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="标题"
|
||||||
|
width="150px"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">{{ scope.row.title }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="影片时长">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.playTime | secondToHouseMinuteSecond
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="视频状态" width="100px">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
:type="
|
||||||
|
scope.row.status === 1
|
||||||
|
? 'success'
|
||||||
|
: scope.row.status === 2
|
||||||
|
? 'danger'
|
||||||
|
: 'warning'
|
||||||
|
"
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
>{{ scope.row.status | changMediaSatus }}</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="是否VIp" width="120px">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
:type="scope.row.isVip ? 'success' : 'danger'"
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
>{{ scope.row.isVip ? "VIP视频" : "非VIP视频" }}</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="售价(元)" width="100px">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.price | changeMoneyYuan
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="正片预览">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<i
|
||||||
|
v-if="scope.row.fieldNameFs"
|
||||||
|
class="el-icon-video-play views"
|
||||||
|
title="点击预览"
|
||||||
|
@click="checkMedia(scope.row.fieldNameFs, scope.row)"
|
||||||
|
></i>
|
||||||
|
<div v-else>暂无</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="预览时间">
|
||||||
|
<template slot-scope="scope">{{ scope.row.preTime }}秒</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column align="center" label="视频封面" width="100px">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<ShowImg
|
||||||
|
style="width: 50px; height: 70px; margin: 0 auto"
|
||||||
|
:urls="scope.row.coverImg"
|
||||||
|
></ShowImg>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="预览视频">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<i
|
||||||
|
v-if="scope.row.preFileName"
|
||||||
|
class="el-icon-video-play views"
|
||||||
|
title="点击预览"
|
||||||
|
@click="checkMedia(scope.row.preFileName, scope.row)"
|
||||||
|
></i>
|
||||||
|
<div v-else>暂无</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="详细描述"
|
||||||
|
width="200px"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">{{ scope.row.desc }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="番号"
|
||||||
|
width="100px"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">{{ scope.row.bango }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="分辨率高">
|
||||||
|
<template slot-scope="scope">{{ scope.row.height }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="分辨率宽">
|
||||||
|
<template slot-scope="scope">{{ scope.row.width }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column align="center" label="文件大小(MB)">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
getSizeToMB(scope.row.size)
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" width="120px" label="本周观看次数">
|
||||||
|
<template slot-scope="scope">{{ scope.row.weekWatchs }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" width="120px" label="本月观看次数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.wonthWatchs
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="媒资库ID" width="150px">
|
||||||
|
<template slot-scope="scope">{{ scope.row.fileId }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="上次观看时间" width="160px">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.lastWatchTime | BeiJingTime
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="上架时间" width="160px">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.addedTime | BeiJingTime
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="真实信息">
|
||||||
|
<el-table-column align="center" label="评论数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.real.comments
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="点赞数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.real.likes
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="售卖数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.real.sells
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="分享数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.real.shares
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="观看数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.real.watchTimes
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="虚拟信息">
|
||||||
|
<el-table-column align="center" label="评论数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.fake.comments
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="点赞数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.fake.likes
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="售卖数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.fake.sells
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="分享数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.fake.shares
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="观看数">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.fake.watchTimes
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="创建时间" width="160px">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.createdAt | BeiJingTime
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="更新时间" width="160px">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.updatedAt | BeiJingTime
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
fixed="right"
|
||||||
|
label="操作"
|
||||||
|
width="250"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<!-- <el-button @click="onAddComment(scope.row)" size="mini" type="success">添加评论</el-button> -->
|
||||||
|
<el-button
|
||||||
|
@click="handleEdit(scope.row)"
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
>编辑</el-button
|
||||||
|
>
|
||||||
|
<!-- <el-button @click="toTop(scope.$index, scope.row)" size="mini" type="primary">视频置顶</el-button> -->
|
||||||
|
<el-button
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
size="mini"
|
||||||
|
type="danger"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<div class="table-pagination">
|
||||||
|
<el-pagination
|
||||||
|
:current-page="searchData.pageNum"
|
||||||
|
:page-size="searchData.pageSize"
|
||||||
|
:page-sizes="[10, 20, 30, 50, 200]"
|
||||||
|
:total="total"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<!-- 新增及编辑 -->
|
||||||
|
<Edit
|
||||||
|
:mediatag="mediatag"
|
||||||
|
:data="editData"
|
||||||
|
v-if="editVisible"
|
||||||
|
@close="closeEdit"
|
||||||
|
/>
|
||||||
|
<ShowVideo ref="showvideo"></ShowVideo>
|
||||||
|
<Batch :selectBatch="selectBatch" v-if="batchVisible" @close="closeEdit"/>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
// 引入模块
|
||||||
|
import ShowImg from "@/components/ShowImg/index.vue";
|
||||||
|
import Edit from "./components/AddOrEdit";
|
||||||
|
import Batch from "./components/batch";
|
||||||
|
|
||||||
|
import {
|
||||||
|
ShortmediaSearch,
|
||||||
|
ShortmediaDel,
|
||||||
|
} from "@/api/videoManagement/shortMedia";
|
||||||
|
import ShowVideo from "@/components/ShowVideo/index.vue";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "ShortMedia",
|
||||||
|
props: ["data"],
|
||||||
|
components: {
|
||||||
|
Edit,
|
||||||
|
ShowImg,
|
||||||
|
ShowVideo,
|
||||||
|
Batch
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
mediatag: [],
|
||||||
|
actorList: [], // 女优列表
|
||||||
|
circleList: [],
|
||||||
|
mediaCollList: [],
|
||||||
|
tagTypeList: [],
|
||||||
|
Visible: true,
|
||||||
|
// MediacolumnList: [],
|
||||||
|
// 请求列表参数
|
||||||
|
searchData: {
|
||||||
|
id: undefined, // 0,视频Id
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
title: undefined, // 标题
|
||||||
|
dramaId: undefined, // 短剧Id
|
||||||
|
},
|
||||||
|
time: undefined,
|
||||||
|
resData: [], // el-table表格数据
|
||||||
|
total: 0, // 数据总条数
|
||||||
|
loading: true, // 列表加载状态
|
||||||
|
|
||||||
|
editData: {
|
||||||
|
title: "新增",
|
||||||
|
data: {},
|
||||||
|
},
|
||||||
|
editVisible: false,
|
||||||
|
batchVisible: false,
|
||||||
|
videoList: [],
|
||||||
|
selectBatch: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
this.searchData = this.$store.getters.getSeachParam;
|
||||||
|
this.searchData.dramaId = this.data.data.id;
|
||||||
|
this.getShortmediaSearch();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getSizeToMB(val) {
|
||||||
|
return (val / 1024 / 1024).toFixed(2);
|
||||||
|
},
|
||||||
|
|
||||||
|
// 批量选择
|
||||||
|
handleSelectionChange(val) {
|
||||||
|
this.selectBatch = val;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 批量加入后台视频库按钮
|
||||||
|
addVideoArray() {
|
||||||
|
this.addVideoVisible = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
onAddComment(row) {
|
||||||
|
this.editData = {
|
||||||
|
title: "添加评论",
|
||||||
|
data: {
|
||||||
|
userId: 0,
|
||||||
|
objectId: row.id,
|
||||||
|
objectType: 1,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
this.editComVisible = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
// // 一键同步
|
||||||
|
// onSynch() {
|
||||||
|
// mediaSync().then((res) => {
|
||||||
|
// if (res.code === 200) {
|
||||||
|
// this.$message.success('同步成功!')
|
||||||
|
// } else {
|
||||||
|
// this.$message.error(res.data)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
// TODO:请求视频列表数据
|
||||||
|
getShortmediaSearch() {
|
||||||
|
this.loading = true;
|
||||||
|
let param = JSON.parse(JSON.stringify(this.searchData));
|
||||||
|
if (this.time) {
|
||||||
|
param.start = this.time[0];
|
||||||
|
param.end = this.time[1];
|
||||||
|
} else {
|
||||||
|
param.start = undefined;
|
||||||
|
param.end = undefined;
|
||||||
|
}
|
||||||
|
if (this.searchData.sort == "") {
|
||||||
|
param.sort = undefined;
|
||||||
|
}
|
||||||
|
this.$store.dispatch("videoManagement/setSeachParam", param);
|
||||||
|
ShortmediaSearch(param).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
res.data.list.forEach((item) => {
|
||||||
|
item.actor ? (item.actor = item.actor.split(",")) : "";
|
||||||
|
});
|
||||||
|
this.resData = res.data.list;
|
||||||
|
this.total = res.data.total;
|
||||||
|
} else {
|
||||||
|
this.$message.error("请求列表失败!");
|
||||||
|
this.resData = [];
|
||||||
|
this.total = 0;
|
||||||
|
}
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//TODO:删除视频列表数据
|
||||||
|
handleDelete(row) {
|
||||||
|
this.$confirm("确定删除?", "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
}).then(() => {
|
||||||
|
ShortmediaDel({ id: row.id }).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.getShortmediaSearch();
|
||||||
|
this.$message.success("成功删除!");
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.tip);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 批量设置
|
||||||
|
batch() {
|
||||||
|
if(!this.selectBatch.length){
|
||||||
|
return this.$message.error('请选择短剧!')
|
||||||
|
}else{
|
||||||
|
this.batchVisible = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
setTag() {
|
||||||
|
this.setTagVisible = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
onSeach() {
|
||||||
|
this.searchData.pageNum = 1;
|
||||||
|
this.searchData.pageSize = 10;
|
||||||
|
this.getShortmediaSearch();
|
||||||
|
},
|
||||||
|
|
||||||
|
// 切换每页数据量
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.searchData.pageSize = val;
|
||||||
|
this.getShortmediaSearch();
|
||||||
|
},
|
||||||
|
// 切换页数
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
this.searchData.pageNum = val;
|
||||||
|
this.getShortmediaSearch();
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增按钮
|
||||||
|
add() {
|
||||||
|
this.editVisible = true;
|
||||||
|
this.editData = {
|
||||||
|
title: "新增",
|
||||||
|
data: {},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
// 编辑按钮
|
||||||
|
handleEdit(row) {
|
||||||
|
this.editVisible = true;
|
||||||
|
this.editData = {
|
||||||
|
title: "编辑",
|
||||||
|
data: row,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
// 关闭编辑
|
||||||
|
close() {
|
||||||
|
this.$emit("close");
|
||||||
|
},
|
||||||
|
// 关闭编辑弹窗
|
||||||
|
async closeEdit() {
|
||||||
|
this.batchVisible = false;
|
||||||
|
this.editVisible = false;
|
||||||
|
this.editComVisible = false;
|
||||||
|
this.setTagVisible = false;
|
||||||
|
this.addVideoVisible = false;
|
||||||
|
await this.getShortmediaSearch();
|
||||||
|
},
|
||||||
|
// 清空某一项筛选列表
|
||||||
|
async onClear(key) {
|
||||||
|
this.searchData[key] = undefined;
|
||||||
|
await this.getShortmediaSearch();
|
||||||
|
},
|
||||||
|
// 视频查看
|
||||||
|
checkMedia(url, data) {
|
||||||
|
this.$refs.showvideo.open(url, data, data.id);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
<!--
|
||||||
|
* @Author:
|
||||||
|
* @Mail:
|
||||||
|
* @Date: 2022-03-14 15:22:04
|
||||||
|
* @LastEditTime: 2022-03-18 11:58:24
|
||||||
|
* @LastEditors:
|
||||||
|
* @FilePath: /comics-admin/src/views/videoManagement/videoList/components/setTag.vue
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<el-dialog :title="title" :visible.sync="Visible" width="700px" center class="ac-dialog" :close-on-click-modal="false" @close="close">
|
||||||
|
<el-form :inline="true" :model="form" :rules="rules" ref="ruleForm" class="demo-form-inline" label-width="120px" label-position="right">
|
||||||
|
<el-row :gutter="24">
|
||||||
|
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
||||||
|
<el-form-item label="视频标签" prop="status">
|
||||||
|
<el-select placeholder="请选择视频标签" clearable v-model="form.tags" style="width: 180px" multiple filterable>
|
||||||
|
<el-option v-for="item in MediaSatusList" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="Visible = false"> 取 消 </el-button>
|
||||||
|
<el-button type="primary" @click="submit"> 确 定 </el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mediatagAddTags } from '@/api/videoManagement/videoList'
|
||||||
|
import { mediatagList } from '@/api/videoManagement/mediatag'
|
||||||
|
export default {
|
||||||
|
name: 'AvList',
|
||||||
|
props: ['data'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
MediaSatusList: [],
|
||||||
|
Visible: true,
|
||||||
|
title: '',
|
||||||
|
// 表单数据
|
||||||
|
form: {
|
||||||
|
tags: undefined
|
||||||
|
},
|
||||||
|
//
|
||||||
|
rules: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getMediatagList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 提交按钮
|
||||||
|
submit() {
|
||||||
|
if (this.data.length) {
|
||||||
|
const mediaIds = []
|
||||||
|
this.data.forEach(item => {
|
||||||
|
mediaIds.push(item.id)
|
||||||
|
})
|
||||||
|
const param = {
|
||||||
|
mediaIds: mediaIds,
|
||||||
|
tags: this.form.tags
|
||||||
|
}
|
||||||
|
mediatagAddTags(param).then(res => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success('设置标签成功')
|
||||||
|
} else {
|
||||||
|
this.$message.error('设置标签失败')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$message({
|
||||||
|
type: 'error',
|
||||||
|
message: '未选择视频'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.Visible = false
|
||||||
|
},
|
||||||
|
|
||||||
|
getMediatagList(val) {
|
||||||
|
const param = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 5000
|
||||||
|
}
|
||||||
|
mediatagList(param).then((res) => {
|
||||||
|
if (res.data.list) {
|
||||||
|
this.MediaSatusList = res.data.list
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 关闭编辑
|
||||||
|
close() {
|
||||||
|
this.$emit('close')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
@@ -0,0 +1,426 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="pf-warpper avlist">
|
||||||
|
<el-row class="table-form">
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
:model="searchData"
|
||||||
|
class="form-inline"
|
||||||
|
size="mini"
|
||||||
|
>
|
||||||
|
<el-form-item>
|
||||||
|
<el-input
|
||||||
|
placeholder="请输入剧集Id"
|
||||||
|
clearable
|
||||||
|
v-model.number="searchData.dramaId"
|
||||||
|
@clear="onClear('dramaId')"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-input
|
||||||
|
placeholder="请输入标题"
|
||||||
|
clearable
|
||||||
|
v-model="searchData.title"
|
||||||
|
@clear="onClear('title')"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择视频状态"
|
||||||
|
clearable
|
||||||
|
v-model="searchData.status"
|
||||||
|
@clear="onClear('status')"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
v-for="item in MediaSatusList"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-select
|
||||||
|
placeholder="请选择主题"
|
||||||
|
clearable
|
||||||
|
v-model="searchData.topicId"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in topicList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item>
|
||||||
|
<el-button @click="onSeach" icon="el-icon-search" plain type="primary"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col>
|
||||||
|
<el-table
|
||||||
|
:data="resData"
|
||||||
|
element-loading-text="拼命加载中"
|
||||||
|
border
|
||||||
|
height="700"
|
||||||
|
highlight-current-row
|
||||||
|
style="width: 100%"
|
||||||
|
v-loading="loading"
|
||||||
|
:row-style="{ height: '70px' }"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
empty-text="暂无更多数据"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="50" fixed="left">
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column align="center" label="视频Id">
|
||||||
|
<template slot-scope="scope">{{ scope.row.id }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="标题"
|
||||||
|
width="300px"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">{{ scope.row.title }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="视频封面" width="100px">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<ShowImg
|
||||||
|
style="width: 50px; height: 70px; margin: 0 auto"
|
||||||
|
:urls="scope.row.coverImg"
|
||||||
|
></ShowImg>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="详细描述"
|
||||||
|
width="250px"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">{{ scope.row.desc }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="视频状态" width="100px">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
:type="
|
||||||
|
scope.row.status === 1
|
||||||
|
? 'success'
|
||||||
|
: scope.row.status === 2
|
||||||
|
? 'danger'
|
||||||
|
: 'warning'
|
||||||
|
"
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
>{{ scope.row.status | changMediaSatus }}</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="排序">
|
||||||
|
<template slot-scope="scope">{{ scope.row.rank }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="售价(元)" width="100px">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.price | changeMoneyYuan
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="专题" width="100px">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.topicId | changeTopicValue(topicList)
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="总集数" width="100px">
|
||||||
|
<template slot-scope="scope">{{ scope.row.mediaCount }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column align="center" label="创建时间" width="160px">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.createdAt | BeiJingTime
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="更新时间" width="160px">
|
||||||
|
<template slot-scope="scope">{{
|
||||||
|
scope.row.updatedAt | BeiJingTime
|
||||||
|
}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
fixed="right"
|
||||||
|
label="操作"
|
||||||
|
width="350"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
@click="handleEdit(scope.row)"
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
>编辑</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
@click="showMediaList(scope.$index, scope.row)"
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
>查看视频列表</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
size="mini"
|
||||||
|
type="danger"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<div class="table-pagination">
|
||||||
|
<el-pagination
|
||||||
|
:current-page="searchData.pageNum"
|
||||||
|
:page-size="searchData.pageSize"
|
||||||
|
:page-sizes="[10, 20, 30, 50, 200]"
|
||||||
|
:total="total"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<!-- 新增及编辑 -->
|
||||||
|
<Edit
|
||||||
|
:mediatag="mediatag"
|
||||||
|
:data="editData"
|
||||||
|
v-if="editVisible"
|
||||||
|
:topicList="topicList"
|
||||||
|
@close="closeEdit"
|
||||||
|
/>
|
||||||
|
<MediaList :data="editData" @close="closeEdit" v-if="mediaListVisible" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
// 引入模块
|
||||||
|
import ShowImg from "@/components/ShowImg/index.vue";
|
||||||
|
import Edit from "./components/AddOrEdit";
|
||||||
|
import MediaList from "./components/mediaList";
|
||||||
|
import {
|
||||||
|
shortDramaSearch,
|
||||||
|
shortDramaDel,
|
||||||
|
} from "@/api/videoManagement/shortDrama";
|
||||||
|
import { MediaSatusList } from "@/filters/videoManagement/videoList";
|
||||||
|
import ShowVideo from "@/components/ShowVideo/index.vue";
|
||||||
|
import { topicSearch } from "@/api/videoManagement/topic";
|
||||||
|
export default {
|
||||||
|
name: "ShortMedia",
|
||||||
|
components: {
|
||||||
|
Edit,
|
||||||
|
ShowImg,
|
||||||
|
ShowVideo,
|
||||||
|
MediaList,
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
mediatag: [],
|
||||||
|
topicList: [], // 主题列表
|
||||||
|
MediaSatusList: MediaSatusList(),
|
||||||
|
// MediacolumnList: [],
|
||||||
|
// 请求列表参数
|
||||||
|
searchData: {
|
||||||
|
id: undefined, // 0,视频Id
|
||||||
|
dramaId: undefined,
|
||||||
|
title: undefined,
|
||||||
|
status: undefined,
|
||||||
|
topicId: undefined,
|
||||||
|
pageNum:1,
|
||||||
|
pageSize:10,
|
||||||
|
},
|
||||||
|
resData: [], // el-table表格数据
|
||||||
|
total: 0, // 数据总条数
|
||||||
|
loading: true, // 列表加载状态
|
||||||
|
|
||||||
|
editData: {
|
||||||
|
title: "新增",
|
||||||
|
data: {},
|
||||||
|
},
|
||||||
|
editVisible: false,
|
||||||
|
batchVisible: false,
|
||||||
|
mediaListVisible: false,
|
||||||
|
videoList: [],
|
||||||
|
selectBatch: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
filters: {
|
||||||
|
changeTopicValue(val, list) {
|
||||||
|
let a = "暂无";
|
||||||
|
if (list && list.length) {
|
||||||
|
list.map((item) => {
|
||||||
|
if (item.id === val) {
|
||||||
|
a = item.name;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return a;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getTopicSearch();
|
||||||
|
this.getshortDramaSearch();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 查询专题列表
|
||||||
|
async getTopicSearch() {
|
||||||
|
const res = await topicSearch({
|
||||||
|
showType: 10, // 显示方式为剧集的专题
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 9999,
|
||||||
|
});
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.topicList = res.data.list;
|
||||||
|
} else {
|
||||||
|
this.$message.error("请求列表失败!");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 查看视频列表
|
||||||
|
showMediaList(index, row) {
|
||||||
|
this.mediaListVisible = true;
|
||||||
|
this.editData = {
|
||||||
|
title: "视频列表",
|
||||||
|
data: row,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
getSizeToMB(val) {
|
||||||
|
return (val / 1024 / 1024).toFixed(2);
|
||||||
|
},
|
||||||
|
|
||||||
|
// 批量选择
|
||||||
|
handleSelectionChange(val) {
|
||||||
|
this.selectBatch = val;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 批量加入后台视频库按钮
|
||||||
|
addVideoArray() {
|
||||||
|
this.addVideoVisible = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
// // 一键同步
|
||||||
|
// onSynch() {
|
||||||
|
// mediaSync().then((res) => {
|
||||||
|
// if (res.code === 200) {
|
||||||
|
// this.$message.success('同步成功!')
|
||||||
|
// } else {
|
||||||
|
// this.$message.error(res.data)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
// TODO:请求视频列表数据
|
||||||
|
getshortDramaSearch() {
|
||||||
|
this.loading = true;
|
||||||
|
let param = JSON.parse(JSON.stringify(this.searchData));
|
||||||
|
|
||||||
|
shortDramaSearch(param).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
if (res.data.list && res.data.list.length) {
|
||||||
|
res.data.list.forEach((item) => {
|
||||||
|
item.actor ? (item.actor = item.actor.split(",")) : "";
|
||||||
|
});
|
||||||
|
this.resData = res.data.list;
|
||||||
|
this.total = res.data.total;
|
||||||
|
} else {
|
||||||
|
this.resData = [];
|
||||||
|
this.total = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$message.error("请求列表失败!");
|
||||||
|
this.resData = [];
|
||||||
|
this.total = 0;
|
||||||
|
}
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//TODO:删除视频列表数据
|
||||||
|
handleDelete(row) {
|
||||||
|
this.$confirm("确定删除?", "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
}).then(() => {
|
||||||
|
shortDramaDel({ id: row.id }).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.getshortDramaSearch();
|
||||||
|
this.$message.success("成功删除!");
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.tip);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 批量设置
|
||||||
|
batch() {
|
||||||
|
this.batchVisible = true;
|
||||||
|
},
|
||||||
|
setTag() {
|
||||||
|
this.setTagVisible = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
onSeach() {
|
||||||
|
this.searchData.pageNum = 1;
|
||||||
|
this.searchData.pageSize = 10;
|
||||||
|
this.getshortDramaSearch();
|
||||||
|
},
|
||||||
|
|
||||||
|
// 切换每页数据量
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.searchData.pageSize = val;
|
||||||
|
this.getshortDramaSearch();
|
||||||
|
},
|
||||||
|
// 切换页数
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
this.searchData.pageNum = val;
|
||||||
|
this.getshortDramaSearch();
|
||||||
|
},
|
||||||
|
|
||||||
|
// 新增按钮
|
||||||
|
add() {
|
||||||
|
this.editVisible = true;
|
||||||
|
this.editData = {
|
||||||
|
title: "新增",
|
||||||
|
data: {},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
// 编辑按钮
|
||||||
|
handleEdit(row) {
|
||||||
|
this.editVisible = true;
|
||||||
|
this.editData = {
|
||||||
|
title: "编辑",
|
||||||
|
data: row,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
// 关闭编辑弹窗
|
||||||
|
closeEdit() {
|
||||||
|
this.batchVisible = false;
|
||||||
|
this.editVisible = false;
|
||||||
|
this.setTagVisible = false;
|
||||||
|
this.addVideoVisible = false;
|
||||||
|
this.mediaListVisible = false;
|
||||||
|
this.getshortDramaSearch();
|
||||||
|
},
|
||||||
|
// 清空某一项筛选列表
|
||||||
|
onClear(key) {
|
||||||
|
this.searchData[key] = undefined;
|
||||||
|
this.getshortDramaSearch();
|
||||||
|
},
|
||||||
|
// 视频查看
|
||||||
|
checkMedia(url, data) {
|
||||||
|
this.$refs.showvideo.open(url, data, data.id);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
Reference in New Issue
Block a user