refactor(vue): update ArrangementConfigurator and ArrangementDialog to use label_id
This commit is contained in:
parent
b88ae3e918
commit
c714f30647
|
|
@ -67,7 +67,16 @@ watch(
|
||||||
watch(
|
watch(
|
||||||
selectedArrangement,
|
selectedArrangement,
|
||||||
(arrangement) => {
|
(arrangement) => {
|
||||||
arrangementGroups.value = arrangement?.groups?.map((group) => ({ ...group })) ?? []
|
if (arrangement?.groups) {
|
||||||
|
arrangementGroups.value = arrangement.groups.map((group) => ({ ...group }))
|
||||||
|
} else if (arrangement?.arrangement_groups) {
|
||||||
|
arrangementGroups.value = arrangement.arrangement_groups
|
||||||
|
.map((ag) => props.availableGroups.find((g) => g.id === ag.label_id))
|
||||||
|
.filter(Boolean)
|
||||||
|
.map((g) => ({ ...g }))
|
||||||
|
} else {
|
||||||
|
arrangementGroups.value = []
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{ immediate: true },
|
{ immediate: true },
|
||||||
)
|
)
|
||||||
|
|
@ -157,7 +166,7 @@ function saveArrangement() {
|
||||||
`/arrangements/${selectedArrangement.value.id}`,
|
`/arrangements/${selectedArrangement.value.id}`,
|
||||||
{
|
{
|
||||||
groups: arrangementGroups.value.map((group, index) => ({
|
groups: arrangementGroups.value.map((group, index) => ({
|
||||||
song_group_id: group.id,
|
label_id: group.id,
|
||||||
order: index + 1,
|
order: index + 1,
|
||||||
})),
|
})),
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -170,8 +170,11 @@ watch(
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const arr = localArrangements.value.find((a) => a.id === Number(id))
|
const arr = localArrangements.value.find((a) => a.id === Number(id))
|
||||||
if (arr?.groups?.length) {
|
const arrGroups = arr?.groups ?? (arr?.arrangement_groups
|
||||||
arrangementGroups.value = arr.groups.map((g, i) => ({ ...g, _uid: `${g.id}-${i}-${Date.now()}` }))
|
? arr.arrangement_groups.map((ag) => props.availableGroups.find((g) => g.id === ag.label_id)).filter(Boolean)
|
||||||
|
: [])
|
||||||
|
if (arrGroups.length) {
|
||||||
|
arrangementGroups.value = arrGroups.map((g, i) => ({ ...g, _uid: `${g.id}-${i}-${Date.now()}` }))
|
||||||
} else {
|
} else {
|
||||||
// Fallback: show all available groups in order (Master)
|
// Fallback: show all available groups in order (Master)
|
||||||
arrangementGroups.value = props.availableGroups.map((g, i) => ({ ...g, slides: g.slides ?? [], _uid: `${g.id}-master-${i}-${Date.now()}` }))
|
arrangementGroups.value = props.availableGroups.map((g, i) => ({ ...g, slides: g.slides ?? [], _uid: `${g.id}-master-${i}-${Date.now()}` }))
|
||||||
|
|
@ -323,7 +326,7 @@ function saveArrangement() {
|
||||||
`/arrangements/${currentArrangement.value.id}`,
|
`/arrangements/${currentArrangement.value.id}`,
|
||||||
{
|
{
|
||||||
groups: arrangementGroups.value.map((group, index) => ({
|
groups: arrangementGroups.value.map((group, index) => ({
|
||||||
song_group_id: group.id,
|
label_id: group.id,
|
||||||
order: index + 1,
|
order: index + 1,
|
||||||
})),
|
})),
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue