AudioBlock.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <template>
  2. <view class="position-relative d-flex flex-row flex-wrap justify-between mt-3">
  3. <Box1AudioPlay
  4. class="w-100"
  5. :title="indexAudioPlayer.currentTitle.value"
  6. :image="indexAudioPlayer.currentItem?.value?.image"
  7. :playState="indexAudioPlayer.isPlaying.value"
  8. :playTime="indexAudioPlayer.timeString.value"
  9. @playPauseClick="indexAudioPlayer.playpause"
  10. @arrowClick="handleGoAudioList"
  11. @nextClick="indexAudioPlayer.next"
  12. @prevClick="indexAudioPlayer.prev"
  13. @click="handleGoAudioList"
  14. />
  15. </view>
  16. </template>
  17. <script setup lang="ts">
  18. import { navTo } from '@/components/utils/PageAction';
  19. import { useSimpleListAudioPlayer } from '@/common/composeabe/SimpleAudioPlayer';
  20. import CommonContent, { GetContentListParams } from '@/api/CommonContent';
  21. import Box1AudioPlay from '@/pages/parts/Box1AudioPlay.vue';
  22. const indexAudioPlayer = useSimpleListAudioPlayer(async () => {
  23. return (await CommonContent.getContentList(new GetContentListParams()
  24. .setModelId(5)
  25. .setMainBodyColumnId(321)
  26. , 1, 10)).list.map((p) => {
  27. return {
  28. id: p.id,
  29. title: p.title,
  30. image: p.thumbnail || p.image,
  31. src: p.audio as string,
  32. }
  33. });
  34. })
  35. function handleGoAudioList() {
  36. navTo('/pages/inhert/language/list')
  37. }
  38. </script>