Merge branch '8193-AddFilterInClientNotes' of https: refs #8193//gitea.verdnatura.es/verdnatura/salix-front into 8193-AddFilterInClientNotes
gitea/salix-front/pipeline/pr-dev This commit is unstable Details

This commit is contained in:
Jon Elias 2025-05-12 11:08:22 +02:00
commit d4f4f03485
2 changed files with 14 additions and 16 deletions

View File

@ -159,7 +159,7 @@ const handleObservationTypes = async (data) => {
function exprBuilder(param, value) { function exprBuilder(param, value) {
switch (param) { switch (param) {
case 'observationTypeFk': case 'observationTypeFk':
case 'workerFk': case 'userFk':
return { [param]: value }; return { [param]: value };
} }
} }

View File

@ -3,6 +3,7 @@ import { ref, computed, onMounted, onUnmounted } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useStateStore } from 'stores/useStateStore'; import { useStateStore } from 'stores/useStateStore';
import { useState } from 'src/composables/useState';
import RightMenu from 'src/components/common/RightMenu.vue'; import RightMenu from 'src/components/common/RightMenu.vue';
import VnSelect from 'src/components/common/VnSelect.vue'; import VnSelect from 'src/components/common/VnSelect.vue';
@ -22,17 +23,17 @@ const columns = computed(() => [
name: 'observationTypeFk', name: 'observationTypeFk',
}, },
{ {
name: 'workerFk', name: 'userFk',
}, },
]); ]);
const setWorkerObservations = (data) => { const setWorkerObservations = (data) => {
const seen = new Set(); const seen = new Set();
filteredWorkers.value = data; filteredWorkers.value = data;
filteredWorkers.value = data.filter((worker) => { filteredWorkers.value = data.filter((observation) => {
if (!seen.has(worker.workerFk)) { if (!seen.has(observation.userFk)) {
seen.add(worker.workerFk); seen.add(observation.userFk);
return true; return observation.user;
} }
return false; return false;
}); });
@ -40,7 +41,7 @@ const setWorkerObservations = (data) => {
function exprBuilder(param, value) { function exprBuilder(param, value) {
switch (param) { switch (param) {
case 'observationTypeFk': case 'observationTypeFk':
case 'workerFk': case 'userFk':
return { [param]: value }; return { [param]: value };
} }
} }
@ -57,7 +58,6 @@ onUnmounted(() => {
<template #right-panel> <template #right-panel>
<VnTableFilter <VnTableFilter
data-key="clientObservations" data-key="clientObservations"
:data-key
:columns="columns" :columns="columns"
:redirect="false" :redirect="false"
:exprBuilder :exprBuilder
@ -78,16 +78,15 @@ onUnmounted(() => {
data-cy="VnNotes-observation-type-filter" data-cy="VnNotes-observation-type-filter"
/> />
</template> </template>
<template #filter-workerFk="{ params, columnName, searchFn }"> <template #filter-userFk="{ params, columnName, searchFn }">
<VnSelect <VnSelect
:label="t('globals.user')" :label="t('globals.user')"
v-model="params[columnName]" v-model="params[columnName]"
option-label="workerFk" option-label="name"
option-value="workerFk" option-value="userFk"
:options="filteredWorkers" :options="filteredWorkers"
@keyup.enter="searchFn" @keyup.enter="searchFn"
@update:modelValue="() => searchFn()" @update:modelValue="() => searchFn()"
hide-selected
dense dense
filled filled
data-cy="VnNotes-user-filter" data-cy="VnNotes-user-filter"
@ -95,12 +94,12 @@ onUnmounted(() => {
<template #option="{ opt, itemProps }"> <template #option="{ opt, itemProps }">
<QItem v-bind="itemProps" class="q-pa-xs row items-center"> <QItem v-bind="itemProps" class="q-pa-xs row items-center">
<QItemSection class="col-3 items-center"> <QItemSection class="col-3 items-center">
<VnAvatar :worker-id="opt.worker.id" /> <VnAvatar :worker-id="opt?.user?.id" size="md" />
</QItemSection> </QItemSection>
<QItemSection class="col-9 justify-center"> <QItemSection class="col-9 justify-center">
<span>{{ opt.worker?.user?.name }}</span> <span>{{ opt?.user?.name }}</span>
<span class="text-grey"> <span class="text-grey">
{{ `#${opt.worker?.user?.id}` }} {{ `#${opt?.user?.id}` }}
</span> </span>
</QItemSection> </QItemSection>
</QItem> </QItem>
@ -118,7 +117,6 @@ onUnmounted(() => {
:body="{ clientFk: $route.params.id, userFk: user.id }" :body="{ clientFk: $route.params.id, userFk: user.id }"
style="overflow-y: auto" style="overflow-y: auto"
:select-type="true" :select-type="true"
:filter-columns="['workerFk', 'observationTypeFk']"
required required
order="created DESC" order="created DESC"
@on-fetch="(data) => setWorkerObservations(data)" @on-fetch="(data) => setWorkerObservations(data)"