Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
N
national_museum_vod
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qzhxx
national_museum_vod
Commits
6508bf10
Commit
6508bf10
authored
3 years ago
by
Your Name
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
展板版权方、内容管理删除提示
parent
9634ca70
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
670 additions
and
669 deletions
+670
-669
index.vue
src/page/content/video/content/index.vue
+670
-669
No files found.
src/page/content/video/content/index.vue
View file @
6508bf10
<
template
>
<div
class=
"listPage H100"
>
<div
class=
"search-container"
>
<el-form
:inline=
"true"
:model=
"form"
class=
"search-form"
onsubmit=
"return false;"
>
<el-form-item
label=
""
>
<el-input
placeholder=
"请输入视频名称"
v-model=
"form.nameOrCode"
@
keyup
.
enter
.
native=
"Search"
clearable
></el-input>
</el-form-item>
<el-form-item
label=
""
>
<el-select
placeholder=
"请选择视频版权方"
@
focus=
"getAssetCopyrightData"
v-model=
"form.videoContentCopyrightOwnerId"
clearable
>
<el-option
v-for=
"item in copyrightOwner"
:label=
"item.name"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
""
>
<el-select
placeholder=
"请选择预设视频分类"
@
focus=
"getAssetTypeData"
v-model=
"form.videoContentCatId"
clearable
>
<el-option
v-for=
"item in videoContentCat"
:label=
"item.name"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<div
class=
"btn-group"
>
<el-button
size=
"mini"
type=
"primary"
class=
"btn_form_search"
@
click=
"Search"
>
查询
</el-button>
<el-button
size=
"mini"
class=
"btn_form_search"
@
click=
"Reset"
>
重置
</el-button>
</div>
</el-form-item>
</el-form>
<div
class=
"page-tip"
>
<span
class=
"page-tip-title"
>
页面说明:
</span>
<span
class=
"page-tips"
>
可通过版权方、视频分类及视频名称模糊搜索快速筛选视频信息,可对视频信息进行修改、删除。
</span>
</div>
</div>
<div
class=
"table-content"
>
<div
class=
"btn-group"
>
<el-button
type=
"primary"
@
click=
"addPermis()"
>
新建视频
</el-button>
</div>
<div
class=
"party-table"
>
<el-table
border
style=
"width: 100%;height:100%"
height=
"100%"
ref=
"multipleTable"
:data=
"tableData"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"index"
width=
"120"
label=
"序号"
>
<template
slot-scope=
"scope"
>
<span>
{{
(
page
.
currentPage
-
1
)
*
10
+
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
show-overflow-tooltip
label=
"视频名称"
prop=
"name"
></el-table-column>
<el-table-column
show-overflow-tooltip
label=
"版权方"
prop=
"videoContentCopyrightOwnerName"
></el-table-column>
<el-table-column
label=
"视频分类"
prop=
"videoContentCatName"
></el-table-column>
<el-table-column
label=
"审核状态"
prop=
"auditStatus"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.auditStatus === 'TBC'"
>
待初审
</span>
<span
v-else-if=
"scope.row.auditStatus === 'REFUSED'"
>
已驳回
</span>
<span
v-else-if=
"scope.row.auditStatus === 'TBCA'"
>
待复审
</span>
<span
v-else-if=
"scope.row.auditStatus === 'APPROVED_FINAL'"
>
通过
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
header-align=
"center"
width=
"220"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<div
class=
"table-btn-group"
>
<el-tooltip
content=
"修改"
placement=
"top"
>
<el-button
:disabled=
"(scope.row.auditStatus === 'TBC')||(scope.row.auditStatus === 'TBCA')"
circle
@
click=
"openEdit(scope.row)"
>
<i
class=
"icon-table icon-edit"
></i>
</el-button>
</el-tooltip>
<!--
<el-tooltip
content=
"启用"
placement=
"top"
>
<el-button
circle
@
click=
"handlePublish(scope.row,'True')"
>
<i
class=
"icon-table icon-enable"
></i>
</el-button>
</el-tooltip>
<el-tooltip
content=
"禁用"
placement=
"top"
>
<el-button
circle
@
click=
"handlePublish(scope.row,'False')"
>
<i
class=
"icon-table icon-disable"
></i>
</el-button>
</el-tooltip>
-->
<el-tooltip
content=
"删除"
placement=
"top"
>
<el-button
:disabled=
"(scope.row.auditStatus === 'TBC')||(scope.row.auditStatus === 'TBCA')"
circle
@
click=
"handleDelete(scope.row)"
>
<i
class=
"icon-table icon-del"
></i>
</el-button>
</el-tooltip>
<el-tooltip
content=
"审核详情"
placement=
"top"
>
<el-button
circle
@
click=
"openDetails(scope.row)"
>
<i
class=
"icon-table icon-detail"
></i>
</el-button>
</el-tooltip>
</div>
</
template
>
</el-table-column>
</el-table>
</div>
<div
class=
"partyt-pagination"
>
<el-pagination
@
current-change=
"handleCurrentChange"
:current-page=
"page.currentPage"
:page-size=
"page.pageSize"
layout=
"prev, pager, next, jumper"
:total=
"page.total"
></el-pagination>
</div>
</div>
<!--新增弹框-->
<el-dialog
title=
"新建"
class=
"newPermis"
:visible
.
sync=
"FormVisible1"
:before-close=
"close1"
>
<div
class=
"form_box"
>
<el-form
:model=
"permisform"
ref=
"permisform"
:rules=
"rules"
id=
"ruleo"
label-position=
"left"
>
<el-form-item
label=
"排序值:"
prop=
"sort"
:label-width=
"formLabelWidth"
>
<el-input
size=
"small"
v-model=
"permisform.sort"
auto-complete=
"off"
clearable
placeholder=
"请输入排序值"
></el-input>
</el-form-item>
<el-form-item
label=
"菜单名称:"
prop=
"menuName"
:label-width=
"formLabelWidth"
>
<el-input
size=
"small"
v-model=
"permisform.menuName"
onkeyup=
"this.value=this.value.replace(/\s+/g,'')"
auto-complete=
"off"
clearable
placeholder=
"请输入您的菜单名称"
></el-input>
</el-form-item>
<el-form-item
label=
"地址:"
prop=
"menuUrl"
:label-width=
"formLabelWidth"
>
<el-input
size=
"small"
v-model=
"permisform.menuUrl"
onkeyup=
"this.value=this.value.replace(/\s+/g,'')"
auto-complete=
"off"
clearable
placeholder=
"请输入您的菜单地址"
></el-input>
</el-form-item>
<el-form-item
label=
"父级菜单:"
prop=
"parentId"
:label-width=
"formLabelWidth"
>
<el-select
size=
"small"
v-model=
"permisform.parentId"
value-key=
"name"
clearable
placeholder=
"请选择父级菜单"
>
<el-option
v-for=
"(item,index) in typeList"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
class=
"r-float"
size=
"mini"
type=
"primary"
@
click=
"permisSave"
>
确定
</el-button>
<el-button
class=
"r-float"
size=
"mini"
@
click=
"close1"
>
取 消
</el-button>
</div>
</div>
</el-dialog>
<!--查看详情-->
<el-dialog
custom-class=
"party-dialog"
title=
"审核详情"
width=
"468px"
:visible
.
sync=
"FormVisible"
:before-close=
"close"
>
<div
class=
"dialog-content"
>
<el-form
:model=
"editform"
disabled
class=
"party-form"
ref=
"editform"
label-width=
"80px"
label-position=
"top"
:rules=
"rules"
>
<el-form-item
label=
"初审时间:"
:label-width=
"formLabelWidth"
>
<span
class=
"input-item"
>
{{editform.firstTime}}
</span>
</el-form-item>
<el-form-item
label=
"复审时间:"
:label-width=
"formLabelWidth"
>
<span
class=
"input-item"
>
{{editform.secondTime}}
</span>
</el-form-item>
<el-form-item
label=
"审核结果:"
:label-width=
"formLabelWidth"
>
<span
class=
"input-item"
>
{{keyMap[editform.status]}}
</span>
</el-form-item>
<el-form-item
label=
"驳回原因:"
:label-width=
"formLabelWidth"
v-if=
"editform.status==='REFUSED'"
>
<span
class=
"input-item"
>
{{editform.firstRemarks || editform.secondRemarks}}
</span>
</el-form-item>
</el-form>
</div>
<div
slot=
"footer"
class=
"dialog-footer btn-group"
>
<el-button
size=
"mini"
type=
"primary"
@
click=
"close"
>
关 闭
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
export
default
{
data
()
{
var
checkIsNull
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
)
{
if
(
value
.
trim
()
==
""
)
{
callback
(
new
Error
(
"不允许只输入空格"
));
}
else
{
callback
();
}
}
};
const
keyMap
=
{
'TBC'
:
'待初审'
,
'REFUSED'
:
'已驳回'
,
'TBCA'
:
'待复审'
,
'APPROVED_FINAL'
:
'通过'
}
return
{
copyrightOwner
:[],
videoContentCat
:[],
keyMap
:
keyMap
,
value1
:
""
,
page
:
{
currentPage
:
1
,
pageSize
:
10
,
total
:
0
},
tableData
:
[],
FormVisible
:
false
,
FormVisible1
:
false
,
formLabelWidth
:
"100px"
,
form
:
{
name
:
""
},
editform
:
{},
permisform
:
{
menuName
:
""
,
menuUrl
:
""
,
parentId
:
""
,
sort
:
""
},
typeList
:
[],
rules
:
{
sort
:
[
{
required
:
true
,
message
:
"请输入顺序值"
,
trigger
:
"change"
},
{
pattern
:
/^
(\d{1,5})?
$/
,
message
:
"排序值为低于5位数的纯数字"
}
],
menuName
:
[
{
required
:
true
,
message
:
"请输入菜单名称"
,
trigger
:
"change"
},
{
max
:
20
,
message
:
"不能超过20个字符"
,
trigger
:
"change"
},
{
validator
:
checkIsNull
,
trigger
:
"blur"
}
],
menuUrl
:
[
{
required
:
true
,
message
:
"请输入菜单地址"
,
trigger
:
"change"
},
{
validator
:
checkIsNull
,
trigger
:
"blur"
}
],
parentId
:
[
{
required
:
true
,
message
:
"请输入父级菜单"
,
trigger
:
"change"
}
]
},
value
:
""
,
name
:
""
};
},
computed
:
{},
mounted
()
{
this
.
onSearch
();
// this.getPermis();
},
components
:
{},
methods
:
{
// 获取展板分类列表
getAssetCopyrightData
(){
let
vm
=
this
;
vm
.
$https
({
url
:
"copyrightOwner/getList"
,
method
:
"get"
,
authType
:
this
.
backToken
},
{
copyrightOwnerType
:
'VIDEO_CONTENT'
})
.
then
(
res
=>
{
let
data
=
res
.
data
.
data
;
this
.
copyrightOwner
=
data
;
})
.
catch
(
function
(
err
)
{
console
.
log
(
err
);
});
},
// 获取视频分类列表
getAssetTypeData
()
{
let
vm
=
this
;
vm
.
$https
({
url
:
"videoContentCat/getList"
,
method
:
"get"
,
authType
:
this
.
backToken
})
.
then
(
res
=>
{
let
data
=
res
.
data
.
data
;
this
.
videoContentCat
=
data
;
})
.
catch
(
function
(
err
)
{
console
.
log
(
err
);
});
},
// 渲染父级权限
getPermis
()
{
let
vm
=
this
;
vm
.
$https
({
method
:
"get"
,
url
:
"menu/getRoleMenu?roleId="
+
sessionStorage
.
getItem
(
"roleId"
),
authType
:
this
.
backToken
}).
then
(
res
=>
{
let
data
=
res
.
data
;
vm
.
typeList
=
data
.
map
((
e
,
i
)
=>
{
return
{
id
:
e
.
id
,
name
:
e
.
menuName
.
indexOf
(
"-"
)
==
-
1
?
e
.
menuName
:
e
.
menuName
.
split
(
"-"
)[
1
]
};
});
},
error
=>
{
console
.
log
(
error
);
}
);
},
// 获得数据接口
getTableData
(
param
)
{
let
vm
=
this
;
vm
.
$https
(
{
url
:
"videoContent/getPageList"
,
method
:
"post"
,
authType
:
this
.
backToken
},
vm
.
$qs
.
stringify
(
param
)
// param
)
.
then
(
res
=>
{
let
data
=
res
.
data
.
data
;
vm
.
page
.
pageSize
=
data
.
size
;
vm
.
page
.
total
=
data
.
total
;
vm
.
tableData
=
data
.
records
;
})
.
catch
(
function
(
err
)
{
console
.
log
(
err
);
});
},
// 分页
handleCurrentChange
(
val
)
{
let
_this
=
this
;
_this
.
page
.
currentPage
=
val
;
_this
.
onSearch
();
},
onSearch
()
{
let
_this
=
this
;
let
param
=
_this
.
getSearchQuery
();
_this
.
getTableData
(
param
);
},
// 重置
Reset
()
{
this
.
form
=
{};
this
.
Search
();
},
Search
()
{
let
_this
=
this
;
_this
.
page
.
currentPage
=
1
;
let
searchObj
=
{
_index
:
1
,
_size
:
_this
.
page
.
pageSize
,
nameOrCode
:
_this
.
form
.
nameOrCode
,
videoContentCatId
:
_this
.
form
.
videoContentCatId
,
videoContentCopyrightOwnerId
:
_this
.
form
.
videoContentCopyrightOwnerId
};
this
.
getTableData
(
searchObj
);
},
// // 获取当前查询参数
getSearchQuery
()
{
let
_this
=
this
;
let
searchObj
=
{
_index
:
_this
.
page
.
currentPage
,
_size
:
_this
.
page
.
pageSize
};
for
(
let
key
in
_this
.
form
)
{
if
(
_this
.
form
[
key
])
{
searchObj
[
key
]
=
_this
.
form
[
key
];
}
}
return
searchObj
;
},
// 添加
addPermis
()
{
this
.
$router
.
push
({
path
:
"videoContentAdd"
,
query
:
{
type
:
"add"
}
});
// $('.el-dialog__title').html('新建');
// this.FormVisible1 = true;
},
// 添加权限
permisSave
()
{
let
_this
=
this
;
_this
.
$refs
.
permisform
.
validate
(
valid
=>
{
if
(
valid
)
{
_this
.
$https
(
{
url
:
"menu/add"
,
method
:
"post"
,
authType
:
this
.
backToken
},
_this
.
$qs
.
stringify
(
_this
.
permisform
)
)
.
then
(
res
=>
{
if
(
res
.
data
.
status
==
200
||
res
.
data
.
status
==
201
)
{
_this
.
$message
({
type
:
"success"
,
message
:
res
.
data
.
message
});
//跳回用户列表
_this
.
onSearch
();
_this
.
FormVisible1
=
false
;
for
(
let
key
in
_this
.
permisform
)
{
_this
.
permisform
[
key
]
=
null
;
}
_this
.
$refs
[
"permisform"
].
resetFields
();
}
else
{
_this
.
$message
({
type
:
"error"
,
message
:
res
.
data
.
message
});
}
},
error
=>
{
_this
.
$message
({
type
:
"error"
,
message
:
error
});
}
);
}
});
},
// 编辑关闭
close
()
{
this
.
FormVisible
=
false
;
this
.
$refs
[
"editform"
].
resetFields
();
},
// 新增关闭
close1
()
{
this
.
FormVisible1
=
false
;
for
(
let
key
in
this
.
permisform
)
{
this
.
permisform
[
key
]
=
null
;
}
this
.
$refs
[
"permisform"
].
resetFields
();
},
// 编辑弹框
openEdit
(
row
)
{
this
.
$router
.
push
({
path
:
"videoContentUpdate"
,
query
:
{
type
:
"Update"
,
id
:
row
.
id
}
});
// alert('编辑')
// $('.el-dialog__title').html('编辑');
// let _this=this;
// //成功之后清除数据
// for (let key in this.editform) {
// _this.editform[key]=null;
// }
// _this.editform= Object.assign({}, row);
// _this.FormVisible = true;
},
openDetails
(
row
)
{
let
_this
=
this
;
_this
.
FormVisible
=
true
;
// 获取详情
this
.
getAssetInfo
(
row
.
id
);
},
// 获取视频分类详情
getAssetInfo
(
id
)
{
let
vm
=
this
;
const
param
=
{
id
:
id
,
type
:
'VIDEO_CONTENT'
}
vm
.
$https
(
{
url
:
"audit/getById"
,
method
:
"get"
,
authType
:
this
.
backToken
},
param
)
.
then
(
res
=>
{
let
data
=
res
.
data
.
data
;
this
.
editform
=
data
||
{};
})
.
catch
(
function
(
err
)
{
console
.
log
(
err
);
});
},
// 根据视频内容id查询被引用的展板
getUseBoard
(
id
){
this
.
$https
({
method
:
"get"
,
url
:
"videoContent/getExhibitionBoardById/"
+
id
,
authType
:
this
.
backToken
})
.
then
(
res
=>
{
if
(
res
.
data
.
resultCode
===
"200"
){
// console.log(res.data.data,'wwwww')
let
data
=
res
.
data
.
data
if
(
data
){
data
=
'当前视频已被展板('
+
res
.
data
.
data
+
')所使用,'
}
else
{
data
=
'当前视频无引用展板,'
}
console
.
log
(
data
)
this
.
openDel
(
id
,
data
)
}
else
{
this
.
$message
({
type
:
"error"
,
message
:
res
.
data
.
message
});
}
},
error
=>
{
this
.
$message
({
type
:
"fail"
,
message
:
"删除失败!"
+
error
.
response
.
data
});
}
);
},
//
// 删除弹出确认窗口
openDel
(
id
,
data
){
// alert(data)
const
dataMsg
=
data
let
_this
=
this
;
this
.
$confirm
(
dataMsg
+
"此操作将永久删除, 是否继续?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
})
.
then
(()
=>
{
_this
.
$https
({
method
:
"delete"
,
url
:
"videoContent/delete/"
+
id
,
authType
:
this
.
backToken
})
.
then
(
res
=>
{
if
(
res
.
data
.
resultCode
===
"200"
){
this
.
$message
({
type
:
"success"
,
message
:
"删除视频申请已提交,待审核!"
});
_this
.
Search
();
}
else
{
this
.
$message
({
type
:
"error"
,
message
:
res
.
data
.
message
});
}
},
error
=>
{
this
.
$message
({
type
:
"fail"
,
message
:
"删除失败!"
+
error
.
response
.
data
});
}
);
})
.
catch
(()
=>
{});
},
// 删除
handleDelete
(
row
)
{
this
.
getUseBoard
(
row
.
id
)
},
// 批量操作
handleSelectionChange
(
selection
)
{
let
_this
=
this
;
_this
.
selection
=
selection
;
},
getMultipleSelect
()
{
let
_this
=
this
;
let
arr
=
[];
let
str
=
""
;
if
(
_this
.
selection
)
{
_this
.
selection
.
forEach
(
function
(
e
)
{
arr
.
push
(
e
.
id
);
});
str
=
arr
.
join
(
","
);
}
else
{
str
=
""
;
}
return
str
;
},
// 批量删除
multipleDelete
()
{
let
_this
=
this
;
let
str
=
_this
.
getMultipleSelect
();
if
(
str
)
{
this
.
$confirm
(
"此操作将删除选中菜单, 是否继续?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(()
=>
{
_this
.
$https
({
url
:
"menu/batchDel?menuIds="
+
str
,
method
:
"DELETE"
,
authType
:
this
.
backToken
})
.
then
(
res
=>
{
if
(
res
.
data
.
status
===
201
||
res
.
data
.
status
===
200
)
{
this
.
$message
({
type
:
"success"
,
message
:
"删除成功!"
});
}
//重新查询数据
_this
.
onSearch
();
},
error
=>
{}
);
});
}
else
{
this
.
$message
({
type
:
"info"
,
message
:
"请至少选择一个选项!"
});
}
}
}
};
</
script
>
<
style
lang=
"less"
>
// @import "../../../../style/common";
// @import "../../style/list";
@import "../../../../style/table.less";
@import "../../../../style/pagination.less";
@import "../../../../style/dialog.less";
.listPage {
.input-item {
font-size: 16px;
color:#333;
}
}
</
style
>
<
template
>
<div
class=
"listPage H100"
>
<div
class=
"search-container"
>
<el-form
:inline=
"true"
:model=
"form"
class=
"search-form"
onsubmit=
"return false;"
>
<el-form-item
label=
""
>
<el-input
placeholder=
"请输入视频名称"
v-model=
"form.nameOrCode"
@
keyup
.
enter
.
native=
"Search"
clearable
></el-input>
</el-form-item>
<el-form-item
label=
""
>
<el-select
placeholder=
"请选择视频版权方"
@
focus=
"getAssetCopyrightData"
v-model=
"form.videoContentCopyrightOwnerId"
clearable
>
<el-option
v-for=
"item in copyrightOwner"
:label=
"item.name"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
""
>
<el-select
placeholder=
"请选择预设视频分类"
@
focus=
"getAssetTypeData"
v-model=
"form.videoContentCatId"
clearable
>
<el-option
v-for=
"item in videoContentCat"
:label=
"item.name"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<div
class=
"btn-group"
>
<el-button
size=
"mini"
type=
"primary"
class=
"btn_form_search"
@
click=
"Search"
>
查询
</el-button>
<el-button
size=
"mini"
class=
"btn_form_search"
@
click=
"Reset"
>
重置
</el-button>
</div>
</el-form-item>
</el-form>
<div
class=
"page-tip"
>
<span
class=
"page-tip-title"
>
页面说明:
</span>
<span
class=
"page-tips"
>
可通过版权方、视频分类及视频名称模糊搜索快速筛选视频信息,可对视频信息进行修改、删除。
</span>
</div>
</div>
<div
class=
"table-content"
>
<div
class=
"btn-group"
>
<el-button
type=
"primary"
@
click=
"addPermis()"
>
新建视频
</el-button>
</div>
<div
class=
"party-table"
>
<el-table
border
style=
"width: 100%;height:100%"
height=
"100%"
ref=
"multipleTable"
:data=
"tableData"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"index"
width=
"120"
label=
"序号"
>
<template
slot-scope=
"scope"
>
<span>
{{
(
page
.
currentPage
-
1
)
*
10
+
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
show-overflow-tooltip
label=
"视频名称"
prop=
"name"
></el-table-column>
<el-table-column
show-overflow-tooltip
label=
"版权方"
prop=
"videoContentCopyrightOwnerName"
></el-table-column>
<el-table-column
label=
"视频分类"
prop=
"videoContentCatName"
></el-table-column>
<el-table-column
label=
"审核状态"
prop=
"auditStatus"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.auditStatus === 'TBC'"
>
待初审
</span>
<span
v-else-if=
"scope.row.auditStatus === 'REFUSED'"
>
已驳回
</span>
<span
v-else-if=
"scope.row.auditStatus === 'TBCA'"
>
待复审
</span>
<span
v-else-if=
"scope.row.auditStatus === 'APPROVED_FINAL'"
>
通过
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
header-align=
"center"
width=
"220"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<div
class=
"table-btn-group"
>
<el-tooltip
content=
"修改"
placement=
"top"
>
<el-button
:disabled=
"(scope.row.auditStatus === 'TBC')||(scope.row.auditStatus === 'TBCA')"
circle
@
click=
"openEdit(scope.row)"
>
<i
class=
"icon-table icon-edit"
></i>
</el-button>
</el-tooltip>
<!--
<el-tooltip
content=
"启用"
placement=
"top"
>
<el-button
circle
@
click=
"handlePublish(scope.row,'True')"
>
<i
class=
"icon-table icon-enable"
></i>
</el-button>
</el-tooltip>
<el-tooltip
content=
"禁用"
placement=
"top"
>
<el-button
circle
@
click=
"handlePublish(scope.row,'False')"
>
<i
class=
"icon-table icon-disable"
></i>
</el-button>
</el-tooltip>
-->
<el-tooltip
content=
"删除"
placement=
"top"
>
<el-button
:disabled=
"(scope.row.auditStatus === 'TBC')||(scope.row.auditStatus === 'TBCA')"
circle
@
click=
"handleDelete(scope.row)"
>
<i
class=
"icon-table icon-del"
></i>
</el-button>
</el-tooltip>
<el-tooltip
content=
"审核详情"
placement=
"top"
>
<el-button
circle
@
click=
"openDetails(scope.row)"
>
<i
class=
"icon-table icon-detail"
></i>
</el-button>
</el-tooltip>
</div>
</
template
>
</el-table-column>
</el-table>
</div>
<div
class=
"partyt-pagination"
>
<el-pagination
@
current-change=
"handleCurrentChange"
:current-page=
"page.currentPage"
:page-size=
"page.pageSize"
layout=
"prev, pager, next, jumper"
:total=
"page.total"
></el-pagination>
</div>
</div>
<!--新增弹框-->
<el-dialog
title=
"新建"
class=
"newPermis"
:visible
.
sync=
"FormVisible1"
:before-close=
"close1"
>
<div
class=
"form_box"
>
<el-form
:model=
"permisform"
ref=
"permisform"
:rules=
"rules"
id=
"ruleo"
label-position=
"left"
>
<el-form-item
label=
"排序值:"
prop=
"sort"
:label-width=
"formLabelWidth"
>
<el-input
size=
"small"
v-model=
"permisform.sort"
auto-complete=
"off"
clearable
placeholder=
"请输入排序值"
></el-input>
</el-form-item>
<el-form-item
label=
"菜单名称:"
prop=
"menuName"
:label-width=
"formLabelWidth"
>
<el-input
size=
"small"
v-model=
"permisform.menuName"
onkeyup=
"this.value=this.value.replace(/\s+/g,'')"
auto-complete=
"off"
clearable
placeholder=
"请输入您的菜单名称"
></el-input>
</el-form-item>
<el-form-item
label=
"地址:"
prop=
"menuUrl"
:label-width=
"formLabelWidth"
>
<el-input
size=
"small"
v-model=
"permisform.menuUrl"
onkeyup=
"this.value=this.value.replace(/\s+/g,'')"
auto-complete=
"off"
clearable
placeholder=
"请输入您的菜单地址"
></el-input>
</el-form-item>
<el-form-item
label=
"父级菜单:"
prop=
"parentId"
:label-width=
"formLabelWidth"
>
<el-select
size=
"small"
v-model=
"permisform.parentId"
value-key=
"name"
clearable
placeholder=
"请选择父级菜单"
>
<el-option
v-for=
"(item,index) in typeList"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
class=
"r-float"
size=
"mini"
type=
"primary"
@
click=
"permisSave"
>
确定
</el-button>
<el-button
class=
"r-float"
size=
"mini"
@
click=
"close1"
>
取 消
</el-button>
</div>
</div>
</el-dialog>
<!--查看详情-->
<el-dialog
custom-class=
"party-dialog"
title=
"审核详情"
width=
"468px"
:visible
.
sync=
"FormVisible"
:before-close=
"close"
>
<div
class=
"dialog-content"
>
<el-form
:model=
"editform"
disabled
class=
"party-form"
ref=
"editform"
label-width=
"80px"
label-position=
"top"
:rules=
"rules"
>
<el-form-item
label=
"初审时间:"
:label-width=
"formLabelWidth"
>
<span
class=
"input-item"
>
{{editform.firstTime}}
</span>
</el-form-item>
<el-form-item
label=
"复审时间:"
:label-width=
"formLabelWidth"
>
<span
class=
"input-item"
>
{{editform.secondTime}}
</span>
</el-form-item>
<el-form-item
label=
"审核结果:"
:label-width=
"formLabelWidth"
>
<span
class=
"input-item"
>
{{keyMap[editform.status]}}
</span>
</el-form-item>
<el-form-item
label=
"驳回原因:"
:label-width=
"formLabelWidth"
v-if=
"editform.status==='REFUSED'"
>
<span
class=
"input-item"
>
{{editform.firstRemarks || editform.secondRemarks}}
</span>
</el-form-item>
</el-form>
</div>
<div
slot=
"footer"
class=
"dialog-footer btn-group"
>
<el-button
size=
"mini"
type=
"primary"
@
click=
"close"
>
关 闭
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
export
default
{
data
()
{
var
checkIsNull
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
)
{
if
(
value
.
trim
()
==
""
)
{
callback
(
new
Error
(
"不允许只输入空格"
));
}
else
{
callback
();
}
}
};
const
keyMap
=
{
'TBC'
:
'待初审'
,
'REFUSED'
:
'已驳回'
,
'TBCA'
:
'待复审'
,
'APPROVED_FINAL'
:
'通过'
}
return
{
copyrightOwner
:[],
videoContentCat
:[],
keyMap
:
keyMap
,
value1
:
""
,
page
:
{
currentPage
:
1
,
pageSize
:
10
,
total
:
0
},
tableData
:
[],
FormVisible
:
false
,
FormVisible1
:
false
,
formLabelWidth
:
"100px"
,
form
:
{
name
:
""
},
editform
:
{},
permisform
:
{
menuName
:
""
,
menuUrl
:
""
,
parentId
:
""
,
sort
:
""
},
typeList
:
[],
rules
:
{
sort
:
[
{
required
:
true
,
message
:
"请输入顺序值"
,
trigger
:
"change"
},
{
pattern
:
/^
(\d{1,5})?
$/
,
message
:
"排序值为低于5位数的纯数字"
}
],
menuName
:
[
{
required
:
true
,
message
:
"请输入菜单名称"
,
trigger
:
"change"
},
{
max
:
20
,
message
:
"不能超过20个字符"
,
trigger
:
"change"
},
{
validator
:
checkIsNull
,
trigger
:
"blur"
}
],
menuUrl
:
[
{
required
:
true
,
message
:
"请输入菜单地址"
,
trigger
:
"change"
},
{
validator
:
checkIsNull
,
trigger
:
"blur"
}
],
parentId
:
[
{
required
:
true
,
message
:
"请输入父级菜单"
,
trigger
:
"change"
}
]
},
value
:
""
,
name
:
""
};
},
computed
:
{},
mounted
()
{
this
.
onSearch
();
// this.getPermis();
},
components
:
{},
methods
:
{
// 获取展板分类列表
getAssetCopyrightData
(){
let
vm
=
this
;
vm
.
$https
({
url
:
"copyrightOwner/getList"
,
method
:
"get"
,
authType
:
this
.
backToken
},
{
copyrightOwnerType
:
'VIDEO_CONTENT'
})
.
then
(
res
=>
{
let
data
=
res
.
data
.
data
;
this
.
copyrightOwner
=
data
;
})
.
catch
(
function
(
err
)
{
console
.
log
(
err
);
});
},
// 获取视频分类列表
getAssetTypeData
()
{
let
vm
=
this
;
vm
.
$https
({
url
:
"videoContentCat/getList"
,
method
:
"get"
,
authType
:
this
.
backToken
})
.
then
(
res
=>
{
let
data
=
res
.
data
.
data
;
this
.
videoContentCat
=
data
;
})
.
catch
(
function
(
err
)
{
console
.
log
(
err
);
});
},
// 渲染父级权限
getPermis
()
{
let
vm
=
this
;
vm
.
$https
({
method
:
"get"
,
url
:
"menu/getRoleMenu?roleId="
+
sessionStorage
.
getItem
(
"roleId"
),
authType
:
this
.
backToken
}).
then
(
res
=>
{
let
data
=
res
.
data
;
vm
.
typeList
=
data
.
map
((
e
,
i
)
=>
{
return
{
id
:
e
.
id
,
name
:
e
.
menuName
.
indexOf
(
"-"
)
==
-
1
?
e
.
menuName
:
e
.
menuName
.
split
(
"-"
)[
1
]
};
});
},
error
=>
{
console
.
log
(
error
);
}
);
},
// 获得数据接口
getTableData
(
param
)
{
let
vm
=
this
;
vm
.
$https
(
{
url
:
"videoContent/getPageList"
,
method
:
"post"
,
authType
:
this
.
backToken
},
vm
.
$qs
.
stringify
(
param
)
// param
)
.
then
(
res
=>
{
let
data
=
res
.
data
.
data
;
vm
.
page
.
pageSize
=
data
.
size
;
vm
.
page
.
total
=
data
.
total
;
vm
.
tableData
=
data
.
records
;
})
.
catch
(
function
(
err
)
{
console
.
log
(
err
);
});
},
// 分页
handleCurrentChange
(
val
)
{
let
_this
=
this
;
_this
.
page
.
currentPage
=
val
;
_this
.
onSearch
();
},
onSearch
()
{
let
_this
=
this
;
let
param
=
_this
.
getSearchQuery
();
_this
.
getTableData
(
param
);
},
// 重置
Reset
()
{
this
.
form
=
{};
this
.
Search
();
},
Search
()
{
let
_this
=
this
;
_this
.
page
.
currentPage
=
1
;
let
searchObj
=
{
_index
:
1
,
_size
:
_this
.
page
.
pageSize
,
nameOrCode
:
_this
.
form
.
nameOrCode
,
videoContentCatId
:
_this
.
form
.
videoContentCatId
,
videoContentCopyrightOwnerId
:
_this
.
form
.
videoContentCopyrightOwnerId
};
this
.
getTableData
(
searchObj
);
},
// // 获取当前查询参数
getSearchQuery
()
{
let
_this
=
this
;
let
searchObj
=
{
_index
:
_this
.
page
.
currentPage
,
_size
:
_this
.
page
.
pageSize
};
for
(
let
key
in
_this
.
form
)
{
if
(
_this
.
form
[
key
])
{
searchObj
[
key
]
=
_this
.
form
[
key
];
}
}
return
searchObj
;
},
// 添加
addPermis
()
{
this
.
$router
.
push
({
path
:
"videoContentAdd"
,
query
:
{
type
:
"add"
}
});
// $('.el-dialog__title').html('新建');
// this.FormVisible1 = true;
},
// 添加权限
permisSave
()
{
let
_this
=
this
;
_this
.
$refs
.
permisform
.
validate
(
valid
=>
{
if
(
valid
)
{
_this
.
$https
(
{
url
:
"menu/add"
,
method
:
"post"
,
authType
:
this
.
backToken
},
_this
.
$qs
.
stringify
(
_this
.
permisform
)
)
.
then
(
res
=>
{
if
(
res
.
data
.
status
==
200
||
res
.
data
.
status
==
201
)
{
_this
.
$message
({
type
:
"success"
,
message
:
res
.
data
.
message
});
//跳回用户列表
_this
.
onSearch
();
_this
.
FormVisible1
=
false
;
for
(
let
key
in
_this
.
permisform
)
{
_this
.
permisform
[
key
]
=
null
;
}
_this
.
$refs
[
"permisform"
].
resetFields
();
}
else
{
_this
.
$message
({
type
:
"error"
,
message
:
res
.
data
.
message
});
}
},
error
=>
{
_this
.
$message
({
type
:
"error"
,
message
:
error
});
}
);
}
});
},
// 编辑关闭
close
()
{
this
.
FormVisible
=
false
;
this
.
$refs
[
"editform"
].
resetFields
();
},
// 新增关闭
close1
()
{
this
.
FormVisible1
=
false
;
for
(
let
key
in
this
.
permisform
)
{
this
.
permisform
[
key
]
=
null
;
}
this
.
$refs
[
"permisform"
].
resetFields
();
},
// 编辑弹框
openEdit
(
row
)
{
this
.
$router
.
push
({
path
:
"videoContentUpdate"
,
query
:
{
type
:
"Update"
,
id
:
row
.
id
}
});
// alert('编辑')
// $('.el-dialog__title').html('编辑');
// let _this=this;
// //成功之后清除数据
// for (let key in this.editform) {
// _this.editform[key]=null;
// }
// _this.editform= Object.assign({}, row);
// _this.FormVisible = true;
},
openDetails
(
row
)
{
let
_this
=
this
;
_this
.
FormVisible
=
true
;
// 获取详情
this
.
getAssetInfo
(
row
.
id
);
},
// 获取视频分类详情
getAssetInfo
(
id
)
{
let
vm
=
this
;
const
param
=
{
id
:
id
,
type
:
'VIDEO_CONTENT'
}
vm
.
$https
(
{
url
:
"audit/getById"
,
method
:
"get"
,
authType
:
this
.
backToken
},
param
)
.
then
(
res
=>
{
let
data
=
res
.
data
.
data
;
this
.
editform
=
data
||
{};
})
.
catch
(
function
(
err
)
{
console
.
log
(
err
);
});
},
// 根据视频内容id查询被引用的展板
// getUseBoard(id){
// this
// .$https({
// method: "get",
// url: "videoContent/getExhibitionBoardById/" + id,
// authType: this.backToken
// })
// .then(
// res => {
// if(res.data.resultCode === "200"){
// // console.log(res.data.data,'wwwww')
// let data = res.data.data
// if(data){
// data = '当前视频已被展板(' + res.data.data + ')所使用,'
// }else{
// data = '当前视频无引用展板,'
// }
// console.log(data)
// this.openDel(id,data)
// }else{
// this.$message({ type: "error", message: res.data.message });
// }
// },
// error => {
// this.$message({
// type: "fail",
// message: "删除失败!" + error.response.data
// });
// }
// );
// },
//
// 删除弹出确认窗口
openDel
(
id
){
// alert(data)
// const dataMsg = data
},
// 删除
handleDelete
(
row
)
{
var
id
=
row
.
id
let
_this
=
this
;
this
.
$confirm
(
"此操作将永久删除, 是否继续?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
})
.
then
(()
=>
{
_this
.
$https
({
method
:
"delete"
,
url
:
"videoContent/delete/"
+
id
,
authType
:
this
.
backToken
})
.
then
(
res
=>
{
if
(
res
.
data
.
resultCode
===
"200"
){
this
.
$message
({
type
:
"success"
,
message
:
"删除视频申请已提交,待审核!"
});
_this
.
Search
();
}
else
{
this
.
$message
({
type
:
"error"
,
message
:
res
.
data
.
message
});
}
},
error
=>
{
this
.
$message
({
type
:
"fail"
,
message
:
"删除失败!"
+
error
.
response
.
data
});
}
);
})
.
catch
(()
=>
{});
},
// 批量操作
handleSelectionChange
(
selection
)
{
let
_this
=
this
;
_this
.
selection
=
selection
;
},
getMultipleSelect
()
{
let
_this
=
this
;
let
arr
=
[];
let
str
=
""
;
if
(
_this
.
selection
)
{
_this
.
selection
.
forEach
(
function
(
e
)
{
arr
.
push
(
e
.
id
);
});
str
=
arr
.
join
(
","
);
}
else
{
str
=
""
;
}
return
str
;
},
// 批量删除
multipleDelete
()
{
let
_this
=
this
;
let
str
=
_this
.
getMultipleSelect
();
if
(
str
)
{
this
.
$confirm
(
"此操作将删除选中菜单, 是否继续?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
}).
then
(()
=>
{
_this
.
$https
({
url
:
"menu/batchDel?menuIds="
+
str
,
method
:
"DELETE"
,
authType
:
this
.
backToken
})
.
then
(
res
=>
{
if
(
res
.
data
.
status
===
201
||
res
.
data
.
status
===
200
)
{
this
.
$message
({
type
:
"success"
,
message
:
"删除成功!"
});
}
//重新查询数据
_this
.
onSearch
();
},
error
=>
{}
);
});
}
else
{
this
.
$message
({
type
:
"info"
,
message
:
"请至少选择一个选项!"
});
}
}
}
};
</
script
>
<
style
lang=
"less"
>
// @import "../../../../style/common";
// @import "../../style/list";
@import "../../../../style/table.less";
@import "../../../../style/pagination.less";
@import "../../../../style/dialog.less";
.listPage {
.input-item {
font-size: 16px;
color:#333;
}
}
</
style
>
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment