|
@@ -81,55 +81,48 @@ li.chouzhen.first:before {
|
|
|
background: rgba(0, 0, 0, 0.5);
|
|
|
border-radius: 2px;
|
|
|
}
|
|
|
-.table-page-search-wrapper {
|
|
|
- .el-cascader .el-input {
|
|
|
- cursor: pointer;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- .el-cascader .el-input .el-input__inner {
|
|
|
- text-overflow: ellipsis;
|
|
|
- height: 100%;
|
|
|
- position: relative;
|
|
|
- top: -4px;
|
|
|
- }
|
|
|
- .el-cascader .el-input .el-icon-arrow-down {
|
|
|
- -webkit-transition: -webkit-transform 0.3s;
|
|
|
- transition: -webkit-transform 0.3s;
|
|
|
- transition: transform 0.3s;
|
|
|
- transition: transform 0.3s, -webkit-transform 0.3s;
|
|
|
- transition: transform 0.3s, -webkit-transform 0.3s;
|
|
|
- font-size: 14px;
|
|
|
- position: relative;
|
|
|
- top: -4px;
|
|
|
- }
|
|
|
- .el-cascader .el-input .el-icon-arrow-down.is-reverse {
|
|
|
- -webkit-transform: rotateZ(180deg);
|
|
|
- transform: rotateZ(180deg);
|
|
|
- position: relative;
|
|
|
- top: 2px;
|
|
|
- }
|
|
|
- .el-cascader .el-input .el-input__inner .el-input__icon.el-icon-arrow-down {
|
|
|
- text-overflow: ellipsis;
|
|
|
- height: 100%;
|
|
|
- position: relative;
|
|
|
- top: -4px;
|
|
|
- }
|
|
|
- .el-cascader .el-input .el-input__suffix .el-input__icon.el-icon-circle-close {
|
|
|
- text-overflow: ellipsis;
|
|
|
- height: 100%;
|
|
|
- position: relative;
|
|
|
- top: -4px;
|
|
|
- }
|
|
|
-}
|
|
|
+// .table-page-search-wrapper {
|
|
|
+// .el-cascader .el-input {
|
|
|
+// cursor: pointer;
|
|
|
+// height: 100%;
|
|
|
+// }
|
|
|
+// .el-cascader .el-input .el-input__inner {
|
|
|
+// text-overflow: ellipsis;
|
|
|
+// height: 100%;
|
|
|
+// position: relative;
|
|
|
+// top: -4px;
|
|
|
+// }
|
|
|
+// .el-cascader .el-input .el-icon-arrow-down {
|
|
|
+// -webkit-transition: -webkit-transform 0.3s;
|
|
|
+// transition: -webkit-transform 0.3s;
|
|
|
+// transition: transform 0.3s;
|
|
|
+// transition: transform 0.3s, -webkit-transform 0.3s;
|
|
|
+// transition: transform 0.3s, -webkit-transform 0.3s;
|
|
|
+// font-size: 14px;
|
|
|
+// position: relative;
|
|
|
+// top: -4px;
|
|
|
+// }
|
|
|
+// .el-cascader .el-input .el-icon-arrow-down.is-reverse {
|
|
|
+// -webkit-transform: rotateZ(180deg);
|
|
|
+// transform: rotateZ(180deg);
|
|
|
+// position: relative;
|
|
|
+// top: 2px;
|
|
|
+// }
|
|
|
+// .el-cascader .el-input .el-input__inner .el-input__icon.el-icon-arrow-down {
|
|
|
+// text-overflow: ellipsis;
|
|
|
+// height: 100%;
|
|
|
+// position: relative;
|
|
|
+// top: -4px;
|
|
|
+// }
|
|
|
+// .el-cascader .el-input .el-input__suffix .el-input__icon.el-icon-circle-close {
|
|
|
+// text-overflow: ellipsis;
|
|
|
+// height: 100%;
|
|
|
+// position: relative;
|
|
|
+// top: -4px;
|
|
|
+// }
|
|
|
+// }
|
|
|
</style>
|
|
|
<style lang="scss" scoped>
|
|
|
-::v-deep .search-from-select .el-cascader {
|
|
|
- height: 30px;
|
|
|
- line-height: 30px;
|
|
|
-}
|
|
|
-::v-deep .search-from-select .el-cascader__search-input {
|
|
|
- margin-bottom: 5px;
|
|
|
-}
|
|
|
.chouzhen {
|
|
|
border-style: solid;
|
|
|
border-width: 1px;
|
|
@@ -362,16 +355,20 @@ a {
|
|
|
<a-card :bordered="false" class="only-video-material-disable">
|
|
|
<!-- 查询区域 -->
|
|
|
<div class="table-page-search-wrapper">
|
|
|
- <a-form layout="inline" :selfUpdate="true" class="search-from-select">
|
|
|
+ <a-form layout="inline" :selfUpdate="true">
|
|
|
<a-row :gutter="24">
|
|
|
<a-col :md="8" :sm="8">
|
|
|
- <a-form-item label="素材名称">
|
|
|
- <a-input placeholder="请输入素材名称" v-model="queryParam.materiaName"></a-input>
|
|
|
+ <a-form-item label="素材名称" style="width: 100%">
|
|
|
+ <a-input
|
|
|
+ placeholder="请输入素材名称"
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="queryParam.materialName"
|
|
|
+ ></a-input>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :md="8" :sm="8">
|
|
|
<a-form-item label="媒体">
|
|
|
- <a-select v-model="queryParam.mediaType" allowClear>
|
|
|
+ <a-select v-model="queryParam.mediaType" allowClear style="width: 100%">
|
|
|
<a-select-option :value="''"> 不限 </a-select-option>
|
|
|
<a-select-option :value="1"> 头条 </a-select-option>
|
|
|
<a-select-option :value="2"> 快手 </a-select-option>
|
|
@@ -381,14 +378,18 @@ a {
|
|
|
<!-- -->
|
|
|
<a-col :md="8" :sm="8">
|
|
|
<a-form-item label="上传时间">
|
|
|
- <a-range-picker v-model="queryParam.createTime" format="YYYY-MM-DD" style="width: 100%" />
|
|
|
+ <a-range-picker
|
|
|
+ v-model="queryParam.createTimeDate"
|
|
|
+ format="YYYY-MM-DD"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<!-- -->
|
|
|
|
|
|
<a-col :md="8" :sm="8">
|
|
|
<a-form-item label="来源">
|
|
|
- <a-select v-model="queryParam.materialSource" allowClear>
|
|
|
+ <a-select v-model="queryParam.materialSource" allowClear style="width: 100%">
|
|
|
<a-select-option :value="1"> 巨量创意 </a-select-option>
|
|
|
<a-select-option :value="2"> 开眼快创 </a-select-option>
|
|
|
<a-select-option :value="3"> 头条提供 </a-select-option>
|
|
@@ -407,17 +408,37 @@ a {
|
|
|
dict="sys_category,name,id"
|
|
|
pidField="pid"
|
|
|
pidValue="f5cb2d2d28417b3b65a6dd744bcb9a76"
|
|
|
+ style="width: 100%"
|
|
|
></j-tree-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :md="8" :sm="8">
|
|
|
+ <a-form-item label="版位">
|
|
|
+ <a-select v-model="queryParam.platePosition" style="width: 100%" placeholder="请选择版位">
|
|
|
+ <a-select-option value="优选广告位"> 优选广告位 </a-select-option>
|
|
|
+ <a-select-option value="上下滑大屏"> 上下滑大屏 </a-select-option>
|
|
|
+ <a-select-option value="激励视频广告"> 激励视频广告 </a-select-option>
|
|
|
+ <a-select-option value="联盟广告"> 联盟广告 </a-select-option>
|
|
|
+ <a-select-option value="系统优选广告位"> 系统优选广告位 </a-select-option>
|
|
|
+ <a-select-option value="今日头条"> 今日头条 </a-select-option>
|
|
|
+ <a-select-option value="西瓜视频"> 西瓜视频 </a-select-option>
|
|
|
+ <a-select-option value="抖音火山版"> 抖音火山版 </a-select-option>
|
|
|
+ <a-select-option value="抖音短视频"> 抖音短视频 </a-select-option>
|
|
|
+ <a-select-option value="穿山甲"> 穿山甲 </a-select-option>
|
|
|
+ <a-select-option value="ohayoo精品游戏"> ohayoo精品游戏 </a-select-option>
|
|
|
+ <a-select-option value="番茄小说"> 番茄小说 </a-select-option>
|
|
|
+ <a-select-option value="通投智选"> 通投智选 </a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :md="8" :sm="8">
|
|
|
<a-form-item label="场景标签">
|
|
|
<el-cascader
|
|
|
placeholder="搜索你想要的场景标签"
|
|
|
:options="departTreeSence"
|
|
|
v-model="queryParam.sceneTag"
|
|
|
:props="{
|
|
|
- multiple: true,
|
|
|
+ multiple: false,
|
|
|
value: 'tagCode',
|
|
|
label: 'tagName',
|
|
|
emitPath: false,
|
|
@@ -436,7 +457,7 @@ a {
|
|
|
:options="departTreeModality"
|
|
|
v-model="queryParam.modalityTag"
|
|
|
:props="{
|
|
|
- multiple: true,
|
|
|
+ multiple: false,
|
|
|
value: 'tagCode',
|
|
|
label: 'tagName',
|
|
|
emitPath: false,
|
|
@@ -455,7 +476,7 @@ a {
|
|
|
:options="departTreeMod"
|
|
|
v-model="queryParam.daTag"
|
|
|
:props="{
|
|
|
- multiple: true,
|
|
|
+ multiple: false,
|
|
|
value: 'tagCode',
|
|
|
label: 'tagName',
|
|
|
emitPath: false,
|
|
@@ -494,9 +515,9 @@ a {
|
|
|
"
|
|
|
type="primary"
|
|
|
icon="plus"
|
|
|
- >新增</a-button
|
|
|
+ >上传</a-button
|
|
|
>
|
|
|
- <a-button @click="batchUploadVisible = true" type="primary" icon="plus">批量新增</a-button>
|
|
|
+ <a-button @click="batchUploadVisible = true" type="primary" icon="plus">批量上传</a-button>
|
|
|
</div>
|
|
|
<a-spin :spinning="spinning">
|
|
|
<div v-if="dataSource.length > 0">
|
|
@@ -509,49 +530,42 @@ a {
|
|
|
style="width: 100%; display: flex"
|
|
|
@click.stop
|
|
|
>
|
|
|
- <span
|
|
|
- style="
|
|
|
- color: #999;
|
|
|
- fontsize: 14px;
|
|
|
- padding-bottom: 10px;
|
|
|
- display: inline-block;
|
|
|
- width: 100%;
|
|
|
- white-space: nowrap;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- "
|
|
|
- :title="items.projectName"
|
|
|
- >{{
|
|
|
- (items.mediaId == '1'
|
|
|
- ? '头条'
|
|
|
- : items.mediaId == '2'
|
|
|
- ? '快手'
|
|
|
- : items.mediaId == '3'
|
|
|
- ? '内广'
|
|
|
- : '内广') + (items.projectName ? '_' + items.projectName : '')
|
|
|
- }}</span
|
|
|
- >
|
|
|
- <span
|
|
|
- style="
|
|
|
- color: #999;
|
|
|
- fontsize: 14px;
|
|
|
- padding-bottom: 10px;
|
|
|
- display: inline-block;
|
|
|
- width: 100%;
|
|
|
- white-space: nowrap;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- "
|
|
|
- :title="items.materialName"
|
|
|
- >{{ items.materialName }}</span
|
|
|
- >
|
|
|
-
|
|
|
- <a-icon
|
|
|
- type="close-circle"
|
|
|
- @click="deleteData(items.id)"
|
|
|
- v-show="active == '0' || active == '2'"
|
|
|
- v-if="items.userId == userInfo().id"
|
|
|
- />
|
|
|
+ <a-tooltip placement="top">
|
|
|
+ <template slot="title">
|
|
|
+ <span>{{ items.materialName }}</span>
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ style="
|
|
|
+ color: #999;
|
|
|
+ fontsize: 14px;
|
|
|
+ padding-bottom: 10px;
|
|
|
+ display: inline-block;
|
|
|
+ width: 100%;
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ "
|
|
|
+ >{{ items.materialName }}</span
|
|
|
+ >
|
|
|
+ </a-tooltip>
|
|
|
+ <a-tooltip placement="top">
|
|
|
+ <template slot="title">
|
|
|
+ <span>{{ items.materialDescribe }}</span>
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ style="
|
|
|
+ color: #999;
|
|
|
+ fontsize: 14px;
|
|
|
+ padding-bottom: 10px;
|
|
|
+ display: inline-block;
|
|
|
+ width: 100%;
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ "
|
|
|
+ >{{ items.materialDescribe }}</span
|
|
|
+ >
|
|
|
+ </a-tooltip>
|
|
|
</a-badge>
|
|
|
<div
|
|
|
style="
|
|
@@ -622,16 +636,18 @@ a {
|
|
|
@visibleChange="changeTag(items.md5)"
|
|
|
:overlayStyle="{ width: '400px' }"
|
|
|
>
|
|
|
- <template slot="content" v-if="videoTag.length > 0">
|
|
|
+ <template slot="content" v-if="videoTag && videoTag.length > 0">
|
|
|
<!-- {{ videoTag.join(',') }} -->
|
|
|
<!-- <br v-if="index%3"/> -->
|
|
|
<a-tag v-for="(item, index) of videoTag" :key="index" style="margin: 5px">{{
|
|
|
item
|
|
|
}}</a-tag>
|
|
|
- <a-tag>{{ items.materialInnovate == 2 ? '创新素材' : '非创新素材' }}</a-tag>
|
|
|
+ </template>
|
|
|
+ <template slot="content" v-else-if="videoTag == null">
|
|
|
+ <div style="width: 100%; text-align: center">暂无标签</div>
|
|
|
</template>
|
|
|
<template slot="content" v-else>
|
|
|
- <div style="width: 100%; text-align: center">加载中。。。</div>
|
|
|
+ <div style="width: 100%; text-align: center">加载中......</div>
|
|
|
</template>
|
|
|
<img
|
|
|
:src="items.coverUrl"
|
|
@@ -655,13 +671,25 @@ a {
|
|
|
@click.stop
|
|
|
>
|
|
|
<span>{{ items.materialSource | materialSource }}</span>
|
|
|
- <span style="margin: 0px 10px">{{
|
|
|
- items.platePosition
|
|
|
- ? items.platePosition[0] == '['
|
|
|
- ? JSON.parse(items.platePosition)[0]
|
|
|
- : items.platePosition
|
|
|
- : ''
|
|
|
- }}</span>
|
|
|
+ <a-tooltip placement="top">
|
|
|
+ <template slot="title">
|
|
|
+ <span>{{
|
|
|
+ items.platePosition
|
|
|
+ ? items.platePosition[0] == '['
|
|
|
+ ? JSON.parse(items.platePosition).join()
|
|
|
+ : items.platePosition
|
|
|
+ : ''
|
|
|
+ }}</span>
|
|
|
+ </template>
|
|
|
+ <span style="margin: 0px 10px">{{
|
|
|
+ items.platePosition
|
|
|
+ ? items.platePosition[0] == '['
|
|
|
+ ? JSON.parse(items.platePosition)[0]
|
|
|
+ : items.platePosition
|
|
|
+ : ''
|
|
|
+ }}</span>
|
|
|
+ </a-tooltip>
|
|
|
+
|
|
|
<a-dropdown style="margin-right: 20px">
|
|
|
<a class="ant-dropdown-link" @click="(e) => e.preventDefault()">
|
|
|
操作
|
|
@@ -701,12 +729,7 @@ a {
|
|
|
/>
|
|
|
</div>
|
|
|
<div v-else style="width: 100%; height: 400px; display: flex; justify-content: center; align-items: center">
|
|
|
- <img
|
|
|
- src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1575627350102&di=02972956f2243933bffc0d85099adbfe&imgtype=jpg&src=http%3A%2F%2Fimg0.imgtn.bdimg.com%2Fit%2Fu%3D1095310825%2C1528244349%26fm%3D214%26gp%3D0.jpg"
|
|
|
- alt
|
|
|
- v-if="!loading"
|
|
|
- />
|
|
|
- <div v-else></div>
|
|
|
+ <a-empty />
|
|
|
</div>
|
|
|
</a-spin>
|
|
|
|
|
@@ -803,6 +826,7 @@ a {
|
|
|
{{ loadDisabled ? '上传中,请稍后' : '文件上传' }}
|
|
|
</a-button>
|
|
|
</a-upload>
|
|
|
+ <span>支持扩展名:xlsx、xls</span>
|
|
|
</a-form-model-item>
|
|
|
<a-form-model-item
|
|
|
label="来源"
|
|
@@ -818,7 +842,7 @@ a {
|
|
|
>
|
|
|
<a-select
|
|
|
v-model="ruleForm.materialSource"
|
|
|
- style="width: 80%"
|
|
|
+ style="width: 50%"
|
|
|
allowClear
|
|
|
placeholder="请选择来源"
|
|
|
>
|
|
@@ -855,7 +879,24 @@ a {
|
|
|
:wrapper-col="{ span: 20 }"
|
|
|
v-if="items.externalUrl"
|
|
|
>
|
|
|
- {{ items.externalUrl }}
|
|
|
+ <a-tooltip placement="top">
|
|
|
+ <template slot="title">
|
|
|
+ <span>{{ items.externalUrl }}</span>
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ style="
|
|
|
+ color: #999;
|
|
|
+ fontsize: 14px;
|
|
|
+ padding-bottom: 10px;
|
|
|
+ display: inline-block;
|
|
|
+ width: 100%;
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ "
|
|
|
+ >{{ items.externalUrl }}</span
|
|
|
+ >
|
|
|
+ </a-tooltip>
|
|
|
</a-form-model-item>
|
|
|
<a-form-model-item
|
|
|
label="来源"
|
|
@@ -1003,11 +1044,6 @@ a {
|
|
|
:prop="'urlListData.' + index + '.platePosition'"
|
|
|
:label-col="{ span: 4 }"
|
|
|
:wrapper-col="{ span: 20 }"
|
|
|
- :rules="{
|
|
|
- required: true,
|
|
|
- message: '版位必选',
|
|
|
- trigger: 'blur',
|
|
|
- }"
|
|
|
>
|
|
|
<a-select
|
|
|
v-model="items.platePosition"
|
|
@@ -1029,11 +1065,6 @@ a {
|
|
|
:prop="'urlListData.' + index + '.platePosition'"
|
|
|
:label-col="{ span: 4 }"
|
|
|
:wrapper-col="{ span: 20 }"
|
|
|
- :rules="{
|
|
|
- required: true,
|
|
|
- message: '版位必选',
|
|
|
- trigger: 'blur',
|
|
|
- }"
|
|
|
>
|
|
|
<a-select
|
|
|
v-model="items.platePosition"
|
|
@@ -1057,10 +1088,11 @@ a {
|
|
|
|
|
|
<a-form-model-item :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }" label="描述">
|
|
|
<a-textarea
|
|
|
- placeholder="请输入描述"
|
|
|
+ placeholder="请输入10字之内的描述"
|
|
|
v-model="items.materialDescribe"
|
|
|
:auto-size="{ minRows: 3, maxRows: 10 }"
|
|
|
style="width: 80%"
|
|
|
+ :max-length="10"
|
|
|
/>
|
|
|
</a-form-model-item>
|
|
|
<!-- <a-form-model-item :wrapper-col="{ span: 14, offset: 4 }" v-if="index == 0">
|
|
@@ -1073,7 +1105,7 @@ a {
|
|
|
</a-modal>
|
|
|
|
|
|
<a-modal
|
|
|
- :title="add ? '添加素材' : '修改素材'"
|
|
|
+ :title="add ? '上传素材' : '修改素材'"
|
|
|
v-model="visible"
|
|
|
@cancel="close"
|
|
|
@afterClose="close"
|
|
@@ -1270,15 +1302,7 @@ a {
|
|
|
></el-cascader>
|
|
|
</a-form-item>
|
|
|
<a-form-item label="版位" v-if="getData('mediaType') != 1">
|
|
|
- <a-select
|
|
|
- v-decorator="[
|
|
|
- 'platePosition', // 给表单赋值或拉取表单时,该input对应的key
|
|
|
- { rules: [{ required: true, message: '请选择版位!' }] },
|
|
|
- ]"
|
|
|
- allowClear
|
|
|
- mode="multiple"
|
|
|
- placeholder="请选择版位"
|
|
|
- >
|
|
|
+ <a-select v-decorator="['platePosition']" allowClear mode="multiple" placeholder="请选择版位">
|
|
|
<a-select-option value="优选广告位"> 优选广告位 </a-select-option>
|
|
|
<a-select-option value="上下滑大屏"> 上下滑大屏 </a-select-option>
|
|
|
<a-select-option value="激励视频广告"> 激励视频广告 </a-select-option>
|
|
@@ -1286,15 +1310,7 @@ a {
|
|
|
</a-select>
|
|
|
</a-form-item>
|
|
|
<a-form-item label="版位" v-else>
|
|
|
- <a-select
|
|
|
- v-decorator="[
|
|
|
- 'platePosition', // 给表单赋值或拉取表单时,该input对应的key
|
|
|
- { rules: [{ required: true, message: '请选择版位!' }] },
|
|
|
- ]"
|
|
|
- allowClear
|
|
|
- mode="multiple"
|
|
|
- placeholder="请选择版位"
|
|
|
- >
|
|
|
+ <a-select v-decorator="['platePosition']" allowClear mode="multiple" placeholder="请选择版位">
|
|
|
<a-select-option value="系统优选广告位"> 系统优选广告位 </a-select-option>
|
|
|
<a-select-option value="今日头条"> 今日头条 </a-select-option>
|
|
|
<a-select-option value="西瓜视频"> 西瓜视频 </a-select-option>
|
|
@@ -1317,11 +1333,12 @@ a {
|
|
|
v-if="add"
|
|
|
>
|
|
|
<a-textarea
|
|
|
- placeholder="请输入描述"
|
|
|
+ placeholder="请输入10字之内的描述"
|
|
|
v-decorator="[
|
|
|
'materialDescribe', // 给表单赋值或拉取表单时,该input对应的key
|
|
|
]"
|
|
|
:auto-size="{ minRows: 3, maxRows: 10 }"
|
|
|
+ :max-length="10"
|
|
|
/>
|
|
|
</a-form-item>
|
|
|
</a-form>
|
|
@@ -1350,7 +1367,7 @@ a {
|
|
|
您的浏览器不支持 video 标签。
|
|
|
</video>
|
|
|
</div>
|
|
|
- <div style="flex: 3; padding: 10px; box-sizing: border-box">
|
|
|
+ <div style="flex: 3; padding: 10px; box-sizing: border-box; height: 500px; overflow-y: auto">
|
|
|
<a-form v-if="allDetailData" class="detail ant-advanced-search-form" layout="inline">
|
|
|
<div>
|
|
|
<a-form-item label="视频名称">{{ allDetailData.materialName }}</a-form-item>
|
|
@@ -1359,7 +1376,25 @@ a {
|
|
|
<a-form-item label="唯一编码">{{ allDetailData.md5 }}</a-form-item>
|
|
|
</div>
|
|
|
|
|
|
- <a-form-item label="视频链接">{{ allDetailData.url }}</a-form-item>
|
|
|
+ <a-form-item label="视频链接" style="margin-bottom: -10px !important">
|
|
|
+ <a-tooltip placement="top">
|
|
|
+ <template slot="title">
|
|
|
+ <span>{{ allDetailData.url }}</span>
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ style="
|
|
|
+ color: #999;
|
|
|
+ fontsize: 14px;
|
|
|
+ display: inline-block;
|
|
|
+ width: 480px;
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ "
|
|
|
+ >{{ allDetailData.url }}</span
|
|
|
+ >
|
|
|
+ </a-tooltip>
|
|
|
+ </a-form-item>
|
|
|
<div style="display: flex">
|
|
|
<a-form-item label="视频时长" style="flex: 1">{{ allDetailData.second }}秒</a-form-item>
|
|
|
<a-form-item label="尺寸" style="flex: 1"
|
|
@@ -1384,7 +1419,13 @@ a {
|
|
|
</div>
|
|
|
<div>
|
|
|
<a-form-item label="标签">
|
|
|
- <a-tag v-for="(item, index) of tagInfoList" :key="index">{{ item.tagName }}</a-tag>
|
|
|
+ <div v-if="tagInfoList.length>0">
|
|
|
+ <a-tag v-for="(item, index) of tagInfoList" :key="index">{{ item.tagName }}</a-tag>
|
|
|
+ </div>
|
|
|
+ <span v-else>
|
|
|
+ -
|
|
|
+ </span>
|
|
|
+
|
|
|
</a-form-item>
|
|
|
</div>
|
|
|
<div>
|
|
@@ -1416,7 +1457,6 @@ a {
|
|
|
tagInfoListVisible = false
|
|
|
departValueInfoModality = []
|
|
|
departValueInfoMod = []
|
|
|
- departValueInfoContent = []
|
|
|
departValueInfoSence = []
|
|
|
tagCode = null
|
|
|
"
|
|
@@ -1465,6 +1505,7 @@ a {
|
|
|
}"
|
|
|
filterable
|
|
|
style="width: 100%"
|
|
|
+ v-if="tagInfoListVisible"
|
|
|
></el-cascader>
|
|
|
</a-form-item>
|
|
|
<!-- <a-form-item
|
|
@@ -1513,6 +1554,7 @@ a {
|
|
|
}"
|
|
|
filterable
|
|
|
style="width: 100%"
|
|
|
+ v-if="tagInfoListVisible"
|
|
|
></el-cascader>
|
|
|
</a-form-item>
|
|
|
<a-form-item
|
|
@@ -1537,6 +1579,7 @@ a {
|
|
|
}"
|
|
|
filterable
|
|
|
style="width: 100%"
|
|
|
+ v-if="tagInfoListVisible"
|
|
|
></el-cascader>
|
|
|
</a-form-item>
|
|
|
</a-modal>
|
|
@@ -2105,6 +2148,13 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
watch: {
|
|
|
+ tagInfoListVisible(n, o) {
|
|
|
+ if (!n) {
|
|
|
+ this.departValueInfoModality = []
|
|
|
+ this.departValueInfoMod = []
|
|
|
+ this.departValueInfoSence = []
|
|
|
+ }
|
|
|
+ },
|
|
|
$route: function (n, o) {
|
|
|
if (n.path == '/modules/material/videoMaterial') {
|
|
|
this.queryParam.userId = this.userInfo().id
|
|
@@ -2274,18 +2324,53 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
ruleFormOverUpload(urlAll) {
|
|
|
- this.ruleForm.urlListData = urlAll.map((item) => {
|
|
|
- return {
|
|
|
- url: item.url,
|
|
|
- daTag: [],
|
|
|
- modalityTag: [],
|
|
|
- sceneTag: [],
|
|
|
- materialSource: undefined,
|
|
|
- industry: undefined,
|
|
|
- platePosition: undefined,
|
|
|
- materialDescribe: undefined,
|
|
|
- }
|
|
|
- })
|
|
|
+ if (this.ruleForm.urlListData.length == 0) {
|
|
|
+ this.ruleForm.urlListData = urlAll.map((item) => {
|
|
|
+ return {
|
|
|
+ url: item.url,
|
|
|
+ daTag: [],
|
|
|
+ modalityTag: [],
|
|
|
+ sceneTag: [],
|
|
|
+ materialSource: undefined,
|
|
|
+ industry: undefined,
|
|
|
+ platePosition: undefined,
|
|
|
+ materialDescribe: undefined,
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ var data = JSON.parse(JSON.stringify(urlAll))
|
|
|
+ data.splice(0,this.ruleForm.urlListData.length)
|
|
|
+ this.ruleForm.urlListData.push(...data.map((item) => {
|
|
|
+ return {
|
|
|
+ url: item.url,
|
|
|
+ daTag: [],
|
|
|
+ modalityTag: [],
|
|
|
+ sceneTag: [],
|
|
|
+ materialSource: undefined,
|
|
|
+ industry: undefined,
|
|
|
+ platePosition: undefined,
|
|
|
+ materialDescribe: undefined,
|
|
|
+ }
|
|
|
+ }))
|
|
|
+ // for (let i = 0; i < this.ruleForm.urlListData.length; i++) {
|
|
|
+ // for (let j = 0; j < urlAll.length; j++) {
|
|
|
+ // if (this.ruleForm.urlListData[i].url == urlAll[j].url) {
|
|
|
+ // } else {
|
|
|
+ // this.ruleForm.urlListData.push({
|
|
|
+ // url: urlAll[j].url,
|
|
|
+ // daTag: [],
|
|
|
+ // modalityTag: [],
|
|
|
+ // sceneTag: [],
|
|
|
+ // materialSource: undefined,
|
|
|
+ // industry: undefined,
|
|
|
+ // platePosition: undefined,
|
|
|
+ // materialDescribe: undefined,
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ console.log(urlAll, this.ruleForm.urlListData)
|
|
|
},
|
|
|
ruleFormRemoveUpload(file) {
|
|
|
//media-1301855440.cos.ap-chongqing.myqcloud.com/video/2021-08-16/03-1629102879421.mp4
|
|
@@ -2499,10 +2584,19 @@ export default {
|
|
|
if (this.videoVisibleChange != visible) {
|
|
|
this.videoVisibleChange = visible
|
|
|
this.videoTag = []
|
|
|
- getAction('/ctop/materialTagInfo/list', { code: visible }).then((res) => {
|
|
|
- this.videoTag = res.result.records.map((item) => {
|
|
|
- return item.tagName
|
|
|
- })
|
|
|
+ getAction('/external/materialCollection/getTagDetail', { md5: visible }).then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ this.videoTag = [
|
|
|
+ ...res.result.modTagList,
|
|
|
+ ...res.result.modalityTagList,
|
|
|
+ ...res.result.sceneTagList,
|
|
|
+ ].map((item) => {
|
|
|
+ return item.tagName
|
|
|
+ })
|
|
|
+ if (this.videoTag.length == 0) {
|
|
|
+ this.videoTag = null
|
|
|
+ }
|
|
|
+ }
|
|
|
})
|
|
|
} else {
|
|
|
return
|
|
@@ -2533,6 +2627,18 @@ export default {
|
|
|
) {
|
|
|
this.departValueInfoSence = []
|
|
|
}
|
|
|
+
|
|
|
+ if (
|
|
|
+ this.departValueInfoModality.length == 0 ||
|
|
|
+ this.departValueInfoMod.length == 0 ||
|
|
|
+ this.departValueInfoSence.length == 0 ||
|
|
|
+ this.industryId == ''
|
|
|
+ ) {
|
|
|
+ this.$message.error('标签和行业不可为空')
|
|
|
+ this.loadingTag = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
var data = [
|
|
|
...this.departValueInfoModality,
|
|
|
...this.departValueInfoMod,
|
|
@@ -2996,24 +3102,37 @@ export default {
|
|
|
params.userId = this.userInfo().id
|
|
|
|
|
|
params.materialDescribe = values.materialDescribe
|
|
|
- if (this.add) {
|
|
|
- if (values.materialType == 1) {
|
|
|
- params.url = this.urlList.url
|
|
|
- params.md5 = this.urlList.md5
|
|
|
- this.postDataAction('/external/materialCollection/addByVideo', params).then((res) => {
|
|
|
- if (res.success) {
|
|
|
- this.form.resetFields()
|
|
|
- this.loadData()
|
|
|
- this.visible = false
|
|
|
- this.add = true
|
|
|
- this.$message.success('素材上传成功')
|
|
|
- this.loadingElse = false
|
|
|
- } else {
|
|
|
- this.$message.error(res.message)
|
|
|
- this.loadingElse = false
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
+ console.log(values)
|
|
|
+ if (values.materialType == 1) {
|
|
|
+ params.url = this.urlList.url
|
|
|
+ params.md5 = this.urlList.md5
|
|
|
+ this.postDataAction('/external/materialCollection/addByVideo', params).then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ this.form.resetFields()
|
|
|
+ this.loadData()
|
|
|
+ this.visible = false
|
|
|
+ this.add = true
|
|
|
+ this.$message.success('素材上传成功')
|
|
|
+ this.loadingElse = false
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.message)
|
|
|
+ this.loadingElse = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.postDataAction('/external/materialCollection/addByUrl', params).then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ this.form.resetFields()
|
|
|
+ this.loadData()
|
|
|
+ this.visible = false
|
|
|
+ this.add = true
|
|
|
+ this.$message.success('素材上传成功')
|
|
|
+ this.loadingElse = false
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.message)
|
|
|
+ this.loadingElse = false
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
})
|