|
@@ -24,9 +24,21 @@
|
|
|
v-if="'independent' === data.property.view_method || 'icon' === data.property.view_method"
|
|
|
class="view_independent"
|
|
|
>
|
|
|
- <el-carousel ref="audio_carousel" indicator-position="none" direction="vertical" :autoplay="false">
|
|
|
+ <el-carousel
|
|
|
+ ref="audio_carousel"
|
|
|
+ indicator-position="none"
|
|
|
+ direction="vertical"
|
|
|
+ :autoplay="false"
|
|
|
+ :interval="0"
|
|
|
+ >
|
|
|
<el-carousel-item v-for="(file, i) in data.file_list" :key="i">
|
|
|
- <AudioPlay view-size="big" :file-id="file.file_id" :show-slider="true" :cur-audio-index="curAudioIndex" />
|
|
|
+ <AudioPlay
|
|
|
+ view-size="big"
|
|
|
+ :file-id="file.file_id"
|
|
|
+ :show-slider="true"
|
|
|
+ :cur-audio-index="curAudioIndex"
|
|
|
+ @changeFile="changeFile"
|
|
|
+ />
|
|
|
</el-carousel-item>
|
|
|
</el-carousel>
|
|
|
<ul class="view_independent_list">
|
|
@@ -78,10 +90,28 @@ export default {
|
|
|
handleAudioClick(index) {
|
|
|
// 获取 Carousel 实例
|
|
|
const carousel = this.$refs.audio_carousel;
|
|
|
- // 切换到对应索引的图片
|
|
|
+ // 切换到对应索引的文件
|
|
|
carousel.setActiveItem(index);
|
|
|
this.curAudioIndex = index;
|
|
|
},
|
|
|
+ changeFile(type) {
|
|
|
+ // 获取 Carousel 实例
|
|
|
+ const carousel = this.$refs.audio_carousel;
|
|
|
+ // 切换到对应索引的文件
|
|
|
+ if (type === 'prev') {
|
|
|
+ carousel.prev();
|
|
|
+ this.curAudioIndex += -1;
|
|
|
+ } else {
|
|
|
+ carousel.next();
|
|
|
+ this.curAudioIndex += 1;
|
|
|
+ }
|
|
|
+ if (this.curAudioIndex >= this.data.file_id_list.length) {
|
|
|
+ this.curAudioIndex = 0;
|
|
|
+ }
|
|
|
+ if (this.curAudioIndex < 0) {
|
|
|
+ this.curAudioIndex = this.data.file_id_list.length - 1;
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
@@ -139,6 +169,10 @@ export default {
|
|
|
height: 150px;
|
|
|
margin: 0 auto;
|
|
|
}
|
|
|
+
|
|
|
+ &__item {
|
|
|
+ transition: none !important;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.view_independent_list {
|