Audio.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <ModuleBase :type="data.type">
  3. <template #content>
  4. <UploadFile
  5. :courseware-id="courseware_id"
  6. :component-id="id"
  7. :type="data.type"
  8. :single-size="data.single_size"
  9. :total-size="data.total_size"
  10. :file-list="data.file_list"
  11. :file-id-list="data.file_id_list"
  12. :file-info-list="data.file_info_list"
  13. :label-text="labelText"
  14. :accept-file-type="acceptFileType"
  15. :upload-tip="uploadTip"
  16. :icon-class="iconClass"
  17. @updateFileList="updateFileList"
  18. />
  19. </template>
  20. </ModuleBase>
  21. </template>
  22. <script>
  23. import { getAudioData } from '@/views/book/courseware/data/audio';
  24. import ModuleMixin from '../../common/ModuleMixin';
  25. import UploadFile from '../common/UploadFile.vue';
  26. export default {
  27. name: 'AudioPage',
  28. components: { UploadFile },
  29. mixins: [ModuleMixin],
  30. data() {
  31. return {
  32. data: getAudioData(),
  33. labelText: '音频',
  34. acceptFileType: '.mp3,.acc,.wma,.wav',
  35. uploadTip: '支持上传mp3、acc、wma、.wav,等格式音频文件,单个文件最大100MB,总文件体积不超1G。',
  36. iconClass: 'note',
  37. };
  38. },
  39. methods: {
  40. updateFileList({ file_list, file_id_list, file_info_list }) {
  41. this.data.file_list = file_list;
  42. this.data.file_id_list = file_id_list;
  43. this.data.file_info_list = file_info_list;
  44. this.handlerMindMap();
  45. },
  46. // 思维导图
  47. handlerMindMap() {
  48. this.$set(this.data.mind_map, 'node_list', [
  49. {
  50. name: '音频',
  51. node_list:
  52. this.data.file_list?.map((file) => ({
  53. name: file.file_name === undefined ? '' : file.file_name,
  54. })) ?? [],
  55. },
  56. ]);
  57. },
  58. },
  59. };
  60. </script>