Box1AudioPlay.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <view
  3. :class="'position-relative d-flex w-100 flex-row align-center bg-light-light-primary radius-base p-25 '+ innerClass"
  4. >
  5. <image
  6. class="width-150 height-150 radius-base"
  7. :src="image || 'https://mncdn.wenlvti.net/app_static/minnan/images/home/ImageTest.jpg'"
  8. mode="aspectFill"
  9. @click="$emit('click')"
  10. />
  11. <view
  12. class="d-flex flex-col ml-25 flex-one"
  13. @click="$emit('click')"
  14. >
  15. <text class="color-second-text">{{ title }}</text>
  16. <view class="d-flex flex-row align-center mt-3">
  17. <image
  18. v-if="showPrev"
  19. class="width-50 height-50 mr-2"
  20. style="transform:rotate(180deg);"
  21. src="https://mncdn.wenlvti.net/app_static/minnan/images/home/NextButtonSmall.png"
  22. @click.stop="$emit('prevClick')"
  23. />
  24. <image
  25. v-if="playState"
  26. class="width-50 height-50 mr-2"
  27. src="https://mncdn.wenlvti.net/app_static/minnan/images/home/PauseButtonSmall.png"
  28. @click.stop="$emit('playPauseClick')"
  29. />
  30. <image
  31. v-else
  32. class="width-50 height-50 mr-2"
  33. src="https://mncdn.wenlvti.net/app_static/minnan/images/home/PlayButtonSmall.png"
  34. @click.stop="$emit('playPauseClick')"
  35. />
  36. <image
  37. v-if="showNext"
  38. class="width-50 height-50 mr-2"
  39. src="https://mncdn.wenlvti.net/app_static/minnan/images/home/NextButtonSmall.png"
  40. @click.stop="$emit('nextClick')"
  41. />
  42. <text class="color-second-text size-s ml-2">{{ playTime }}</text>
  43. </view>
  44. </view>
  45. <text class="iconfont icon-arrow-right color-primary" />
  46. <view
  47. class="position-absolute r-0 t-0 b-0 width-50"
  48. :style="{zIndex:11}"
  49. @click="$emit('arrowClick')"
  50. ></view>
  51. </view>
  52. </template>
  53. <script setup lang="ts">
  54. const props = defineEmits([
  55. "click",
  56. "arrowClick",
  57. "nextClick",
  58. "prevClick",
  59. 'playPauseClick',
  60. ])
  61. defineProps({
  62. title: {
  63. type: String,
  64. default: '',
  65. },
  66. image: {
  67. type: String,
  68. default: 'https://mncdn.wenlvti.net/app_static/minnan/images/home/ImageTest.jpg',
  69. },
  70. playState: {
  71. type: Boolean,
  72. default: false,
  73. },
  74. playTime: {
  75. type: String,
  76. default: '',
  77. },
  78. showNext: {
  79. type: Boolean,
  80. default: true,
  81. },
  82. showPrev: {
  83. type: Boolean,
  84. default: true,
  85. },
  86. innerClass: {
  87. type: String,
  88. default: '',
  89. },
  90. })
  91. </script>