提交 | 用户 | 时间
|
820397
|
1 |
<template> |
H |
2 |
<div class=""> |
|
3 |
<Title title="歌词" desc="自己编写歌词或使用Ai生成歌词,两节/8行效果最佳"> |
|
4 |
<el-input |
|
5 |
v-model="formData.lyric" |
|
6 |
:autosize="{ minRows: 6, maxRows: 6}" |
|
7 |
resize="none" |
|
8 |
type="textarea" |
|
9 |
maxlength="1200" |
|
10 |
show-word-limit |
|
11 |
placeholder="请输入您自己的歌词" |
|
12 |
/> |
|
13 |
</Title> |
|
14 |
|
|
15 |
<Title title="音乐风格"> |
|
16 |
<el-space class="flex-wrap"> |
|
17 |
<el-tag v-for="tag in tags" :key="tag" round class="mb-8px">{{tag}}</el-tag> |
|
18 |
</el-space> |
|
19 |
|
|
20 |
<el-button |
|
21 |
:type="showCustom ? 'primary': 'default'" |
|
22 |
round |
|
23 |
size="small" |
|
24 |
class="mb-6px" |
|
25 |
@click="showCustom = !showCustom" |
|
26 |
>自定义风格 |
|
27 |
</el-button> |
|
28 |
</Title> |
|
29 |
|
|
30 |
<Title v-show="showCustom" desc="描述您想要的音乐风格,Suno无法识别艺术家的名字,但可以理解流派和氛围" class="-mt-12px"> |
|
31 |
<el-input |
|
32 |
v-model="formData.style" |
|
33 |
:autosize="{ minRows: 4, maxRows: 4}" |
|
34 |
resize="none" |
|
35 |
type="textarea" |
|
36 |
maxlength="256" |
|
37 |
show-word-limit |
|
38 |
placeholder="输入音乐风格(英文)" |
|
39 |
/> |
|
40 |
</Title> |
|
41 |
|
|
42 |
<Title title="音乐/歌曲名称"> |
|
43 |
<el-input v-model="formData.name" placeholder="请输入音乐/歌曲名称"/> |
|
44 |
</Title> |
|
45 |
|
|
46 |
<Title title="版本"> |
|
47 |
<el-select v-model="formData.version" placeholder="请选择"> |
|
48 |
<el-option |
|
49 |
v-for="item in [{ |
|
50 |
value: '3', |
|
51 |
label: 'V3' |
|
52 |
}, { |
|
53 |
value: '2', |
|
54 |
label: 'V2' |
|
55 |
}]" |
|
56 |
:key="item.value" |
|
57 |
:label="item.label" |
|
58 |
:value="item.value" |
|
59 |
/> |
|
60 |
</el-select> |
|
61 |
</Title> |
|
62 |
</div> |
|
63 |
</template> |
|
64 |
|
|
65 |
<script lang="ts" setup> |
|
66 |
import Title from '../title/index.vue' |
|
67 |
defineOptions({ name: 'Lyric' }) |
|
68 |
|
|
69 |
const tags = ['rock', 'punk', 'jazz', 'soul', 'country', 'kidsmusic', 'pop'] |
|
70 |
|
|
71 |
const showCustom = ref(false) |
|
72 |
|
|
73 |
const formData = reactive({ |
|
74 |
lyric: '', |
|
75 |
style: '', |
|
76 |
name: '', |
|
77 |
version: '' |
|
78 |
}) |
|
79 |
|
|
80 |
defineExpose({ |
|
81 |
formData |
|
82 |
}) |
|
83 |
</script> |