Ok, that is a lot of filters. I created this for you to try it. Let me know how it goes.
Just change the ids from your dropdowns to the same ones on the example.
//You need to rename your dropdowns ids to match the ones in the example for it to work.
import wixData from 'wix-data'
let selectedValues = []
let dropdowns
const filterDataset = (e) => {
selectedValues = dropdowns
.map(({ id, value }) => ({ id: id.replace(/\d+/g, ''), value }))
.filter((d) => d.value)
let filtersValues = selectedValues.map((dropdown) =>
wixData.filter().contains(dropdown.id, dropdown.value)
)
const allFilters = filtersValues.reduce((fn, obj) => fn.and(obj))
if ($w('#teCyearStart').value && $w('#teCyearEnd').value) {
$w('#dataset').setFilter(
wixData
.filter()
.between('teCyear', +$w('#teCyearStart').value, +$w('#teCyearEnd').value)
.and(allFilters)
)
} else {
$w('#dataset').setFilter(allFilters)
}
}
$w.onReady(function () {
dropdowns = $w('#teCnumber, #country, #region, #tags1, #tags2, #tags3')
dropdowns.onChange(filterDataset)
$w('#teCyearStart, #teCyearEnd').onChange(filterDataset)
})