|
@@ -13,18 +13,18 @@
|
|
|
<template slot="upload-text">
|
|
|
导入话题
|
|
|
</template>
|
|
|
- </excel-import>
|
|
|
- </div> -->
|
|
|
+</excel-import>
|
|
|
+</div> -->
|
|
|
</div>
|
|
|
|
|
|
<div class="table-container">
|
|
|
- <el-table style="width: 100%" v-loading="listLoading" :key="tableKey" :data="list" row-key="id" stripe border fit
|
|
|
+ <el-table height="80vh" style="width: 100%" v-loading="listLoading" :key="tableKey" :data="list" row-key="id" stripe border fit
|
|
|
highlight-current-row>
|
|
|
<el-table-column label="序号" type="index" width="60" align="center" />
|
|
|
<el-table-column label="视频ID" min-width="100" align="center" prop="id" />
|
|
|
|
|
|
- <el-table-column label="视频标题" min-width="150" align="center" prop="videoTitle" />
|
|
|
- <el-table-column label="视频封面" min-width="110" align="center" prop="videoCoverImageUrl">
|
|
|
+ <!-- <el-table-column label="视频标题" min-width="150" align="center" prop="videoTitle" /> -->
|
|
|
+ <el-table-column label="视频封面" min-width="130" align="center" prop="videoCoverImageUrl">
|
|
|
<template slot-scope="scope">
|
|
|
<div v-if="scope.row.videoCoverImageUrl" class="video" @click="handlePlay(scope.row)">
|
|
|
<img :src="scope.row.videoCoverImageUrl" class="video-img" />
|
|
@@ -32,59 +32,40 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="视频描述" min-width="150" align="center" prop="videoDesc">
|
|
|
+ <el-table-column label="视频末帧" min-width="130" align="center" prop="videoDesc">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-popover placement="top-start" width="200" trigger="hover" :content="scope.row.videoDesc">
|
|
|
- <span class="desc"
|
|
|
- slot="reference">{{ scope.row.videoDesc }}</span>
|
|
|
- </el-popover>
|
|
|
+ <el-image class="video-last-img" :src="scope.row.videoCoverImageUrl"
|
|
|
+ :preview-src-list="[scope.row.videoCoverImageUrl]">
|
|
|
+ </el-image>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="使用音乐" min-width="110" align="center" prop="videoMusic" />
|
|
|
+ <el-table-column label="拼接视频个数" min-width="100" align="center" prop="publishTime" />
|
|
|
<el-table-column label="SKU" min-width="100" align="center" prop="sku" />
|
|
|
-
|
|
|
- <el-table-column label="SKUID" min-width="100" align="center" prop="skuId" />
|
|
|
- <el-table-column label="审核状态" min-width="100" align="center" prop="reviewStatus">
|
|
|
+ <!-- <el-table-column label="操作人" min-width="100" align="center" prop="creator" /> -->
|
|
|
+ <el-table-column label="创建时间" min-width="100" align="center" prop="createTime" />
|
|
|
+ <el-table-column label="下载次数" min-width="100" align="center" prop="createTime" />
|
|
|
+ <el-table-column label="优化建议" min-width="100" align="center" prop="createTime">
|
|
|
<template slot-scope="scope">
|
|
|
- <span class="status-tag" :class="{
|
|
|
- 'status-pending': scope.row.reviewStatus === 0,
|
|
|
- 'status-success': scope.row.reviewStatus === 1,
|
|
|
- 'status-error': scope.row.reviewStatus === 2
|
|
|
- }"></span>
|
|
|
- {{ getValueByKey(scope.row.reviewStatus, auditStatus) }}
|
|
|
+ <p v-if="roles.includes('superAdmin')">
|
|
|
+ <span class="desc">优化</span>
|
|
|
+ <a class="look-more" href="javascript:void(0);" @click="handleViewSuggestions(scope.row)">更多 >></a>
|
|
|
+ </p>
|
|
|
+ <p v-else>
|
|
|
+ <a class="edit" href="javascript:void(0);" @click="handleEditSuggestions(scope.row)"><i
|
|
|
+ class="el-icon-edit" /></a>
|
|
|
+ </p>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="审核时间" min-width="100" align="center" prop="reviewTime" />
|
|
|
- <el-table-column label="审核人" min-width="100" align="center" prop="reviewer" />
|
|
|
- <el-table-column label="发布状态" min-width="100" align="center" prop="publishStatus">
|
|
|
+ <el-table-column v-permission="['superAdmin']" label="使用账号" width="100" align="center" prop="createTime">
|
|
|
<template slot-scope="scope">
|
|
|
- <span class="status-tag" :class="{
|
|
|
- 'status-pending': scope.row.publishStatus === 0,
|
|
|
- 'status-success': scope.row.publishStatus === 1,
|
|
|
- 'status-error': scope.row.publishStatus === 2
|
|
|
- }"></span>
|
|
|
- {{ getValueByKey(scope.row.publishStatus, auditStatus) }}
|
|
|
+ <el-popover placement="top-start" width="200" trigger="hover" :content="scope.row.videoDesc">
|
|
|
+ <span class="desc" slot="reference"></span>
|
|
|
+ </el-popover>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="发布时间" min-width="100" align="center" prop="publishTime" />
|
|
|
- <el-table-column label="发布人" min-width="100" align="center" prop="publisher" />
|
|
|
- <el-table-column label="关联话题" min-width="100" align="center" prop="hotWords" />
|
|
|
-
|
|
|
- <el-table-column label="直播时间" min-width="100" align="center" prop="liveTime" />
|
|
|
- <!-- <el-table-column
|
|
|
- label="直播场次"
|
|
|
- min-width="100"
|
|
|
- align="center"
|
|
|
- prop="liveSession"
|
|
|
- /> -->
|
|
|
- <el-table-column label="直播中控" min-width="120" align="center" prop="liveController">
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="直播间号" min-width="100" align="center" prop="liveRoomId" />
|
|
|
- <el-table-column label="操作人" min-width="100" align="center" prop="creator" />
|
|
|
-
|
|
|
- <el-table-column label="创建时间" min-width="100" align="center" prop="createTime" />
|
|
|
- <el-table-column label="操作" align="center" min-width="160"
|
|
|
+ <!-- <el-table-column label="生成账号" min-width="100" align="center" prop="createTime" /> -->
|
|
|
+ <el-table-column label="操作" align="center" width="160"
|
|
|
v-bind="device !== 'mobile' ? { fixed: 'right' } : {}">
|
|
|
<template slot-scope="scope">
|
|
|
<el-tooltip class="item" effect="dark" content="下载" placement="top">
|
|
@@ -96,19 +77,9 @@
|
|
|
<el-tooltip class="item" effect="dark" content="播放" placement="top">
|
|
|
<el-button type="success" size="mini" icon="el-icon-caret-right" circle @click="handlePlay(scope.row)" />
|
|
|
</el-tooltip>
|
|
|
- <el-tooltip
|
|
|
- class="more"
|
|
|
- effect="dark"
|
|
|
- content="删除"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="danger"
|
|
|
- size="mini"
|
|
|
- icon="el-icon-delete-solid"
|
|
|
- circle
|
|
|
- @click="handleDelete(scope.row)"
|
|
|
- />
|
|
|
+ <el-tooltip class="more" effect="dark" content="删除" placement="top">
|
|
|
+ <el-button type="danger" size="mini" icon="el-icon-delete-solid" circle
|
|
|
+ @click="handleDelete(scope.row)" />
|
|
|
</el-tooltip>
|
|
|
<!-- <el-tooltip class="more" effect="dark" content="更多" placement="top">
|
|
|
<el-dropdown trigger="click" @command="command => handleMore(command, scope.row)">
|
|
@@ -129,8 +100,10 @@
|
|
|
<!-- 视频播放 -->
|
|
|
<video-player ref="videoPlayer" :video-url="currentVideoUrl" :video-title="currentVideoTitle"
|
|
|
@close="handlePlayerClose" />
|
|
|
- <!-- 修改话题-->
|
|
|
- <change-topic ref="changeTopicRef" :rows="currentVideo" @confirm="handleTopicChange" />
|
|
|
+ <!-- 优化建议 -->
|
|
|
+ <suggestion-table ref="suggestionTable" :rows="currentVideo" />
|
|
|
+ <!-- 编辑优化建议 -->
|
|
|
+ <edit-suggestion ref="editSuggestion" :rows="currentVideo" @confirm="handleCofirmSuggestion" />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -139,8 +112,9 @@ import waves from "@/directive/waves";
|
|
|
import swPage from "@/views/common/swPage";
|
|
|
import { auditStatus } from "@/constants/index";
|
|
|
import { getValueByKey } from "@/utils/index";
|
|
|
-import ExcelImport from "@/components/ExcelImport";
|
|
|
-import changeTopic from "@/views/oral-video/component/changeTopic";
|
|
|
+// import ExcelImport from "@/components/ExcelImport";
|
|
|
+import EditSuggestion from "./component/editSuggestion";
|
|
|
+import SuggestionTable from "./component/suggestionTable";
|
|
|
|
|
|
import { fetchOralVideoList, deleteOralVideoList } from "@/api/video";
|
|
|
import downloadUtil from "@/utils/downloadUtil";
|
|
@@ -156,11 +130,13 @@ export default {
|
|
|
components: {
|
|
|
swPage,
|
|
|
VideoPlayer,
|
|
|
- ExcelImport,
|
|
|
- changeTopic
|
|
|
+ SuggestionTable,
|
|
|
+ EditSuggestion
|
|
|
+ // ExcelImport,
|
|
|
+ // changeTopic
|
|
|
},
|
|
|
computed: {
|
|
|
- ...mapGetters(["device"]) // 从 vuex 中获取设备类型
|
|
|
+ ...mapGetters(["device","roles"]) // 从 vuex 中获取设备类型
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -178,7 +154,7 @@ export default {
|
|
|
},
|
|
|
currentVideoUrl: null,
|
|
|
currentVideoTitle: null,
|
|
|
- currentVideo:{},
|
|
|
+ currentVideo: {},
|
|
|
};
|
|
|
},
|
|
|
//页面创建的时候执行
|
|
@@ -257,13 +233,6 @@ export default {
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
- // 导入话题回调
|
|
|
- handleImportSuccess({ data, header, file }) {
|
|
|
- console.log("导入的数据:", data);
|
|
|
- console.log("表头:", header);
|
|
|
- console.log("原始文件:", file);
|
|
|
- // 处理导入的数据
|
|
|
- },
|
|
|
//更多
|
|
|
handleMore(command, row) {
|
|
|
if (command === "delete") {
|
|
@@ -272,13 +241,15 @@ export default {
|
|
|
this.changeTopic(row); // 修改话题
|
|
|
}
|
|
|
},
|
|
|
- // 修改话题
|
|
|
- changeTopic(row) {
|
|
|
- this.currentVideo = row;
|
|
|
- this.$refs.changeTopicRef.show();
|
|
|
+ handleViewSuggestions(row) {
|
|
|
+ this.currentVideo = row
|
|
|
+ this.$refs.suggestionTable.show();
|
|
|
+ },
|
|
|
+ handleEditSuggestions(row) {
|
|
|
+ this.currentVideo = row
|
|
|
+ this.$refs.editSuggestion.show();
|
|
|
},
|
|
|
- handleTopicChange() {
|
|
|
- this.$refs.changeTopicRef.show();
|
|
|
+ handleCofirmSuggestion() {
|
|
|
this.retPage()
|
|
|
}
|
|
|
}
|
|
@@ -298,6 +269,21 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+.video-last-img {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+
|
|
|
+ /deep/.el-image__preview {
|
|
|
+ width: 80px;
|
|
|
+ height: 80px;
|
|
|
+ border: 1px solid #eee;
|
|
|
+ object-fit: cover;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
.video {
|
|
|
position: relative;
|
|
|
display: flex;
|
|
@@ -315,16 +301,16 @@ export default {
|
|
|
}
|
|
|
|
|
|
&-img {
|
|
|
- width: 60px;
|
|
|
- height: 60px;
|
|
|
+ width: 80px;
|
|
|
+ height: 80px;
|
|
|
border: 1px solid #eee;
|
|
|
object-fit: cover;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
|
|
|
i {
|
|
|
- width: 60px;
|
|
|
- height: 60px;
|
|
|
+ width: 80px;
|
|
|
+ height: 80px;
|
|
|
position: absolute;
|
|
|
top: 85%;
|
|
|
left: 50%;
|
|
@@ -374,4 +360,15 @@ export default {
|
|
|
.more {
|
|
|
margin-left: 10px;
|
|
|
}
|
|
|
+
|
|
|
+.look-more {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #AE8877;
|
|
|
+ text-decoration: underline;
|
|
|
+}
|
|
|
+
|
|
|
+.edit {
|
|
|
+ font-size: 16px;
|
|
|
+ color: #AE8877;
|
|
|
+}
|
|
|
</style>
|