fix(fe smartblock): fixed showing smart block criteria on edit
This commit is contained in:
parent
5daec331f8
commit
c2b1ebee80
2 changed files with 60 additions and 15 deletions
|
@ -1,33 +1,57 @@
|
|||
<script setup lang="ts">
|
||||
import {smartblockCriteria} from "@models/smartblock/smartblockCriteria.ts";
|
||||
import {ref, watch} from "vue";
|
||||
import {onMounted, ref, watch} from "vue";
|
||||
import {trackType} from "@/composables/content/track_type.ts";
|
||||
|
||||
const emit = defineEmits(['updateProperty'])
|
||||
|
||||
const props = defineProps({
|
||||
criteria: Array
|
||||
})
|
||||
|
||||
const { criteria, modifiers } = smartblockCriteria()
|
||||
const trackTypes = trackType(false)
|
||||
console.log(trackTypes)
|
||||
|
||||
const activeCriteria = ref([])
|
||||
const firstCriteria = activeCriteria.value.push({
|
||||
criteria: '',
|
||||
modifier: '',
|
||||
value: ''
|
||||
})
|
||||
|
||||
watch(activeCriteria.value, (newVal, oldVal) => {
|
||||
console.log(newVal)
|
||||
emit('updateProperty', newVal, 'criteria')
|
||||
})
|
||||
|
||||
const addCriteria = () => {
|
||||
activeCriteria.value.push({
|
||||
criteria: '',
|
||||
modifier: '',
|
||||
value: ''
|
||||
value: '',
|
||||
extra: ''
|
||||
})
|
||||
}
|
||||
|
||||
const checkModifier = (index) => {
|
||||
if (activeCriteria.value[index].modifier !== 'is in the range') {
|
||||
activeCriteria.value[index].extra = ''
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
if (props.criteria.length > 0) {
|
||||
props.criteria.forEach(criteria => {
|
||||
if (criteria.criteria !== 'sort' &&
|
||||
criteria.criteria !== 'limit' &&
|
||||
criteria.criteria !== 'repeat_tracks' &&
|
||||
criteria.criteria !== 'overflow_tracks') {
|
||||
activeCriteria.value.push(criteria)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
activeCriteria.value.push({
|
||||
criteria: '',
|
||||
modifier: '',
|
||||
value: '',
|
||||
extra: ''
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
watch(activeCriteria.value, (newVal, oldVal) => {
|
||||
emit('updateProperty', newVal, 'criteria')
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -54,6 +78,7 @@ const addCriteria = () => {
|
|||
label="Seleziona il modificatore"
|
||||
:items="modifiers
|
||||
.filter(mod => mod.type === criteria.find(cri => cri.value === activeCriteria[index].criteria)?.type || mod.type === 'all')"
|
||||
@update:modelValue="checkModifier(index)"
|
||||
item-title="title"
|
||||
item-value="value"
|
||||
></v-select>
|
||||
|
@ -61,7 +86,7 @@ const addCriteria = () => {
|
|||
<v-col>
|
||||
<v-text-field
|
||||
v-if="activeCriteria[index].criteria != 'track_type_id'"
|
||||
label="Valore scelto"
|
||||
:label="activeCriteria[index].modifier === 'is in the range' ? 'Valore iniziale' : 'Valore scelto'"
|
||||
v-model="activeCriteria[index].value"
|
||||
:type="criteria.find(cri => cri.value === activeCriteria[index].criteria)?.type === 'number' ? 'number' : 'text'"
|
||||
></v-text-field>
|
||||
|
@ -72,6 +97,12 @@ const addCriteria = () => {
|
|||
item-title="type_name"
|
||||
item-value="id"
|
||||
></v-select>
|
||||
<v-text-field
|
||||
v-if="activeCriteria[index].modifier !== '' && activeCriteria[index].modifier === 'is in the range'"
|
||||
label="Valore finale"
|
||||
type="number"
|
||||
v-model="activeCriteria[index].extra"
|
||||
></v-text-field>
|
||||
</v-col>
|
||||
<v-col
|
||||
v-if="index > 0"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue