89 lines
2.0 KiB
Vue
89 lines
2.0 KiB
Vue
<template>
|
|
<ai-detail class="video-detail">
|
|
<template slot="title">
|
|
<ai-title title="视频新闻详情" isShowBack isShowBottomBorder @onBackClick="$emit('goBack')"/>
|
|
</template>
|
|
<template slot="content">
|
|
<ai-card title="视频信息">
|
|
<template slot="right">
|
|
<el-button type="text" icon="iconfont iconEdit" @click="handleEdit">修改</el-button>
|
|
</template>
|
|
<template #content>
|
|
<ai-wrapper
|
|
:columnsNumber="1">
|
|
<ai-info-item label="标题:" :value="detail.title"></ai-info-item>
|
|
<ai-info-item label="视频:" isLine>
|
|
<video :src="detail.videoUrl"
|
|
style="width: 100%; height:100%; object-fit: fill;" muted controls="controls"></video>
|
|
</ai-info-item>
|
|
<ai-info-item label="封面:" isLine v-viewer>
|
|
<img :src="detail.thumbUrl" alt="">
|
|
</ai-info-item>
|
|
</ai-wrapper>
|
|
</template>
|
|
</ai-card>
|
|
</template>
|
|
</ai-detail>
|
|
</template>
|
|
|
|
<script>
|
|
import Viewer from 'v-viewer';
|
|
|
|
export default {
|
|
name: "videoDetail",
|
|
components: {Viewer},
|
|
props: {
|
|
instance: Function,
|
|
dict: Object,
|
|
},
|
|
data() {
|
|
return {
|
|
detail: {}
|
|
}
|
|
},
|
|
methods: {
|
|
handleEdit() {
|
|
this.$emit("goPage", {key: "addVideo", row: this.detail});
|
|
},
|
|
/**
|
|
* 根据id查询详情
|
|
*/
|
|
getDetail() {
|
|
let {id} = this.$route.query
|
|
this.instance.post(`/app/appnews/getById`, null, {
|
|
params: {id}
|
|
}).then(res => {
|
|
if (res?.data) {
|
|
this.detail = res.data;
|
|
}
|
|
})
|
|
}
|
|
},
|
|
created() {
|
|
this.getDetail();
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.video-detail {
|
|
height: 100%;
|
|
overflow: hidden;
|
|
|
|
video {
|
|
width: 640px;
|
|
height: 360px;
|
|
background: rgba(0, 0, 0, 0.5);
|
|
border-radius: 2px;
|
|
border: 1px solid #D0D4DC;
|
|
}
|
|
|
|
img {
|
|
width: 319px;
|
|
height: 179px;
|
|
border-radius: 1px;
|
|
}
|
|
}
|
|
|
|
</style>
|