index.vue 1019 B

1234567891011121314151617181920212223242526272829303132333435
  1. <template>
  2. <ContentWrap class="w-300px h-full mb-[0!important]">
  3. <el-radio-group v-model="generateMode" class="mb-15px">
  4. <el-radio-button value="desc"> 描述模式 </el-radio-button>
  5. <el-radio-button value="lyric"> 歌词模式 </el-radio-button>
  6. </el-radio-group>
  7. <!-- 描述模式/歌词模式 切换 -->
  8. <component :is="generateMode === 'desc' ? desc : lyric" ref="modeRef" />
  9. <el-button type="primary" round class="w-full" @click="generateMusic"> 创作音乐 </el-button>
  10. </ContentWrap>
  11. </template>
  12. <script lang="ts" setup>
  13. import desc from './desc.vue'
  14. import lyric from './lyric.vue'
  15. defineOptions({ name: 'Index' })
  16. const emits = defineEmits(['generate-music'])
  17. const generateMode = ref('lyric')
  18. const modeRef = ref<Nullable<{ formData: Recordable }>>(null)
  19. /*
  20. *@Description: 根据信息生成音乐
  21. *@MethodAuthor: xiaohong
  22. *@Date: 2024-06-27 16:40:16
  23. */
  24. function generateMusic() {
  25. emits('generate-music', { formData: unref(modeRef)?.formData })
  26. }
  27. </script>