Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Michael 2025-03-31 15:27:29 +02:00
commit 18ea150bdf
10 changed files with 164 additions and 55 deletions

View file

@ -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"

View file

@ -1,10 +1,14 @@
<script setup lang="ts">
import {reactive} from "vue";
import {onBeforeMount, reactive} from "vue";
const emit = defineEmits([
'updateProperty'
])
const props = defineProps({
limit: Object
})
const limit = reactive({
type: null,
quantity: null
@ -32,6 +36,13 @@ const limitItems = [
const update = (e) => {
emit('updateProperty', limit, 'limit')
}
onBeforeMount(() => {
if (props.limit) {
limit.type = props.limit.type
limit.quantity = props.limit.quantity
}
})
</script>
<template>