Filter on Units

This commit is contained in:
2024-01-13 18:13:18 +01:00
parent 80209474fa
commit 74a57800ed
2 changed files with 52 additions and 9 deletions

View File

@@ -13,6 +13,8 @@ hosts:
remote_user: deployer remote_user: deployer
branch: newlook branch: newlook
deploy_path: '/var/www/html/ikea' deploy_path: '/var/www/html/ikea'
bin/php: /usr/bin/php81
tasks: tasks:
build: build:

View File

@@ -41,6 +41,8 @@ const countryHash = ref([]);
const countryCurrency = ref({}); const countryCurrency = ref({});
const showItemFilter = ref(false); const showItemFilter = ref(false);
const showDescFilter = ref(false); const showDescFilter = ref(false);
const showUnitsFilter = ref(false);
const rates = ref([]); const rates = ref([]);
const options_items = ref([]); const options_items = ref([]);
const itemCode = ref(null); const itemCode = ref(null);
@@ -100,6 +102,13 @@ const filterOptions = computed(() => {
criteria: descCriteria.value, criteria: descCriteria.value,
}); });
} }
if (unitsCriteria.value != 'All' && unitsCriteria.value != null) {
filterOptionsArray.push({
field: 'units',
comparison: '=',
criteria: unitsCriteria.value,
});
}
return filterOptionsArray; return filterOptionsArray;
}); });
@@ -131,8 +140,23 @@ let uniqDesc = computed(() => {
return output; return output;
}); });
let uniqUnits = computed(() => {
var output = ['All',];
var keys = [];
options_items.value.forEach((element) => {
var key = element.units;
if (keys.indexOf(key) === -1) {
keys.push(key);
output.push(element.units);
}
});
console.log('OUT3', output);
return output;
});
const productsCriteria = ref(uniqProducts.value[0]); const productsCriteria = ref(uniqProducts.value[0]);
const descCriteria = ref(uniqDesc.value[0]); const descCriteria = ref(uniqDesc.value[0]);
const unitsCriteria = ref(uniqUnits.value[0]);
const type = 'GeoChart'; const type = 'GeoChart';
const form = useForm({ const form = useForm({
@@ -418,15 +442,24 @@ const submit = () => {
<multiselect v-model="productsCriteria" :options="uniqProducts"></multiselect> <multiselect v-model="productsCriteria" :options="uniqProducts"></multiselect>
</div> </div>
</div> </div>
</template> </template>
<template #header-desc="header"> <template #header-desc="header">
<div class="filter-column"> <div class="filter-column">
<img :src="filterimg" class="filter-icon" @click.stop="showDescFilter = !showDescFilter" /> <img :src="filterimg" class="filter-icon" @click.stop="showDescFilter = !showDescFilter" />
{{ header.text }} {{ header.text }}
<div class="filter-menu filter-sport-menu" v-if="showDescFilter"> <div class="filter-menu filter-sport-menu" v-if="showDescFilter">
<multiselect v-model="descCriteria" :options="uniqDesc"></multiselect> <multiselect v-model="descCriteria" :options="uniqDesc"></multiselect>
</div>
</div> </div>
</div>
</template>
<template #header-units="header">
<div class="filter-column">
<img :src="filterimg" class="filter-icon" @click.stop="showUnitsFilter = !showUnitsFilter" />
{{ header.text }}
<div class="filter-menu filter-menu-units" v-if="showUnitsFilter">
<multiselect v-model="unitsCriteria" :options="uniqUnits"></multiselect>
</div>
</div>
</template> </template>
</EasyTable> </EasyTable>
</div> </div>
@@ -472,11 +505,19 @@ const submit = () => {
position: absolute; position: absolute;
top: 40px; top: 40px;
width: 328px; width: 328px;
background-color: #fff; background-color: #fff;
border: 1px solid #e0e0e0; border: 1px solid #e0e0e0;
} }
.filter-menu-units {
padding: 5px 5px;
z-index: 1;
position: absolute;
top: 40px;
width: 128px;
}
</style> </style>
<style src="vue-multiselect/dist/vue-multiselect.css"></style> <style src="vue-multiselect/dist/vue-multiselect.css"></style>