mirror of
https://github.com/Megghy/vtsuru.live.git
synced 2025-12-06 18:36:55 +08:00
allow custom song language
This commit is contained in:
@@ -155,7 +155,7 @@ const templates = ref({
|
||||
description: '这是一段描述',
|
||||
url: 'https://example.com/song1.mp3',
|
||||
from: SongFrom.Custom,
|
||||
language: [SongLanguage.Chinese],
|
||||
language: ['中文'],
|
||||
createTime: Date.now(),
|
||||
updateTime: Date.now(),
|
||||
},
|
||||
@@ -167,7 +167,7 @@ const templates = ref({
|
||||
tags: ['标签1', '标签2'],
|
||||
url: 'https://example.com/song2.mp3',
|
||||
from: SongFrom.Custom,
|
||||
language: [SongLanguage.Chinese],
|
||||
language: ['中文'],
|
||||
createTime: Date.now(),
|
||||
updateTime: Date.now(),
|
||||
description: '这还是一段描述',
|
||||
@@ -186,7 +186,7 @@ const templates = ref({
|
||||
url: 'https://example.com/song3.mp3',
|
||||
from: SongFrom.Custom,
|
||||
description: '这是一段很长很长很长很长很长很长很长很长很长很长的描述',
|
||||
language: [SongLanguage.Chinese],
|
||||
language: ['中文'],
|
||||
createTime: Date.now(),
|
||||
updateTime: Date.now(),
|
||||
},
|
||||
@@ -197,7 +197,7 @@ const templates = ref({
|
||||
author: ['作者4'],
|
||||
url: 'https://example.com/song4.mp3',
|
||||
from: SongFrom.Custom,
|
||||
language: [SongLanguage.Chinese],
|
||||
language: ['中文'],
|
||||
createTime: Date.now(),
|
||||
updateTime: Date.now(),
|
||||
},
|
||||
@@ -209,7 +209,7 @@ const templates = ref({
|
||||
tags: ['标签1', '标签5', '标签6', '标签7', '标签8', '标签9', '标签10'],
|
||||
url: 'https://example.com/song5.mp3',
|
||||
from: SongFrom.Custom,
|
||||
language: [SongLanguage.Chinese],
|
||||
language: ['中文'],
|
||||
createTime: Date.now(),
|
||||
updateTime: Date.now(),
|
||||
},
|
||||
|
||||
@@ -152,7 +152,18 @@ const songSelectOption = [
|
||||
value: SongLanguage.Other,
|
||||
},
|
||||
]
|
||||
|
||||
const languageSelectOption = computed(() => {
|
||||
const languages = new Set<string>(songSelectOption.map((s) => s.label))
|
||||
songs.value.forEach((s) => {
|
||||
if (s.language) {
|
||||
s.language.forEach((l) => languages.add(l))
|
||||
}
|
||||
})
|
||||
return [...languages].map((t) => ({
|
||||
label: t,
|
||||
value: t,
|
||||
}))
|
||||
})
|
||||
const uploadFiles = ref<UploadFileInfo[]>([])
|
||||
const uploadSongsFromFile = ref<SongsInfo[]>([])
|
||||
const uploadSongsOptions = computed(() => {
|
||||
@@ -424,7 +435,7 @@ function exportData() {
|
||||
更新于: format(s.updateTime, 'yyyy-MM-dd HH:mm:ss'),
|
||||
描述: s.description,
|
||||
来自: from(s.from),
|
||||
语言: s.language.map((l) => songSelectOption.find((o) => o.value == l)?.label).join(','),
|
||||
语言: s.language.join(','),
|
||||
标签: s.tags?.join(',') ?? '',
|
||||
链接: s.url,
|
||||
})),
|
||||
@@ -500,28 +511,12 @@ function parseExcelFile() {
|
||||
break
|
||||
case 'language':
|
||||
case '语言':
|
||||
switch (value) {
|
||||
case '中文':
|
||||
case '汉语':
|
||||
song.language = [SongLanguage.Chinese]
|
||||
break
|
||||
case '英文':
|
||||
case '英语':
|
||||
song.language = [SongLanguage.English]
|
||||
break
|
||||
case '日文':
|
||||
case '日语':
|
||||
song.language = [SongLanguage.Japanese]
|
||||
break
|
||||
case '法语':
|
||||
song.language = [SongLanguage.French]
|
||||
break
|
||||
case '西语':
|
||||
song.language = [SongLanguage.Spanish]
|
||||
break
|
||||
default:
|
||||
song.language = [SongLanguage.Other]
|
||||
}
|
||||
song.language = value
|
||||
?.replace('/', '/')
|
||||
.replace(',', ',')
|
||||
.split(/\/|,/)
|
||||
.map((a: string) => a.trim())
|
||||
.filter((value: string, index: number, self: string[]) => self.indexOf(value) === index)
|
||||
break
|
||||
case 'tags':
|
||||
case 'tag':
|
||||
@@ -643,9 +638,12 @@ onMounted(async () => {
|
||||
<NFormItem path="language" label="语言">
|
||||
<NSelect
|
||||
v-model:value="addSongModel.language"
|
||||
filterable
|
||||
multiple
|
||||
clearable
|
||||
tag
|
||||
placeholder="可选,输入后按回车新增"
|
||||
:options="songSelectOption"
|
||||
placeholder="可选"
|
||||
/>
|
||||
</NFormItem>
|
||||
<NFormItem path="tags" label="标签">
|
||||
|
||||
Reference in New Issue
Block a user