gaoluyang
2026-06-29 27cd042df9aca0383a49f3514bc21958dd890912
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<script lang="ts" setup>
import type { Nullable, Recordable } from '../../../../packages/types/src';
 
import { ref, unref } from 'vue';
 
import { Page } from '../../../../packages/effects/common-ui/src';
 
import List from './list/index.vue';
import Mode from './mode/index.vue';
 
defineOptions({ name: 'AiMusicIndex' });
 
const listRef = ref<Nullable<{ generateMusic: (...args: any) => void }>>(null);
 
function generateMusic(args: { formData: Recordable<any> }) {
  unref(listRef)?.generateMusic(args.formData);
}
</script>
 
<template>
  <Page auto-content-height>
    <div class="flex h-full items-stretch">
      <!-- 模式 -->
      <Mode class="flex-none" @generate-music="generateMusic" />
      <!-- 音频列表 -->
      <List ref="listRef" class="flex-auto" />
    </div>
  </Page>
</template>