Add MemberFilter internal model
This commit is contained in:
parent
27f805700e
commit
fe50cf129f
|
@ -1,57 +1,17 @@
|
|||
<template>
|
||||
<f-switch
|
||||
v-show="hasModule('bill')"
|
||||
id="ausstand"
|
||||
name="ausstand"
|
||||
:model-value="getFilter('ausstand')"
|
||||
label="Nur Ausstände"
|
||||
size="sm"
|
||||
@update:model-value="setFilter('ausstand', $event)"
|
||||
></f-switch>
|
||||
<f-select
|
||||
id="has_vk"
|
||||
name="has_vk"
|
||||
:model-value="getFilter('has_vk')"
|
||||
label="Verhaltenskodex unterschrieben"
|
||||
size="sm"
|
||||
:options="meta.boolean_filter"
|
||||
@update:model-value="setFilter('has_vk', $event)"
|
||||
></f-select>
|
||||
<f-select
|
||||
id="has_svk"
|
||||
name="has_svk"
|
||||
:model-value="getFilter('has_svk')"
|
||||
label="SVK unterschrieben"
|
||||
size="sm"
|
||||
:options="meta.boolean_filter"
|
||||
@update:model-value="setFilter('has_svk', $event)"
|
||||
></f-select>
|
||||
<f-multipleselect
|
||||
id="group_ids"
|
||||
:options="meta.groups"
|
||||
:model-value="getFilter('group_ids')"
|
||||
label="Gruppierungen"
|
||||
size="sm"
|
||||
@update:model-value="setFilter('group_ids', $event)"
|
||||
></f-multipleselect>
|
||||
<f-select
|
||||
v-show="hasModule('bill')"
|
||||
id="billKinds"
|
||||
name="billKinds"
|
||||
:options="meta.billKinds"
|
||||
:model-value="getFilter('bill_kind')"
|
||||
label="Rechnung"
|
||||
size="sm"
|
||||
@update:model-value="setFilter('bill_kind', $event)"
|
||||
></f-select>
|
||||
<f-switch v-show="hasModule('bill')" id="ausstand" name="ausstand" label="Nur Ausstände" size="sm" v-model="filter.ausstand"></f-switch>
|
||||
<f-select id="has_vk" name="has_vk" label="Verhaltenskodex unterschrieben" size="sm" :options="meta.boolean_filter" v-model="filter.has_vk"></f-select>
|
||||
<f-select id="has_svk" name="has_svk" label="SVK unterschrieben" size="sm" :options="meta.boolean_filter" v-model="filter.has_svk"></f-select>
|
||||
<f-multipleselect id="group_ids" :options="meta.groups" label="Gruppierungen" size="sm" v-model="filter.group_ids"></f-multipleselect>
|
||||
<f-select v-show="hasModule('bill')" id="billKinds" name="billKinds" :options="meta.billKinds" label="Rechnung" size="sm" v-model="filter.bill_kind"></f-select>
|
||||
|
||||
<div>
|
||||
<div>nach mitgitedschaftren</div>
|
||||
<button class="btn btn-primary label mt-2" @click.prevent="memberships = [...memberships, {...meta.default_membership_filter}]">
|
||||
<button class="btn btn-primary label mt-2" @click.prevent="filter.memberships = [...filter.memberships, {...meta.default_membership_filter}]">
|
||||
<ui-sprite class="w-3 h-3 xl:mr-2" src="plus"></ui-sprite>
|
||||
<span class="hidden xl:inline">Hinzufügen</span>
|
||||
</button>
|
||||
<div v-for="(filter, index) in memberships" :key="index" class="flex space-x-2 mt-2">
|
||||
<div v-for="(filter, index) in filter.memberships" :key="index" class="flex space-x-2 mt-2">
|
||||
<f-multipleselect :id="`group_ids-multiple-${index}`" v-model="filter.group_ids" :options="meta.groups" label="Gruppierung" size="sm"></f-multipleselect>
|
||||
<f-multipleselect :id="`activity_ids-multiple-${index}`" v-model="filter.activity_ids" :options="meta.filterActivities" label="Tätigkeiten" size="sm"></f-multipleselect>
|
||||
<f-multipleselect :id="`subactivity_ids-multiple-${index}`" v-model="filter.subactivity_ids" :options="meta.filterSubactivities" label="Untertätigkeiten" size="sm"></f-multipleselect>
|
||||
|
@ -69,7 +29,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {onMounted, ref, watch} from 'vue';
|
||||
import {ref, watch} from 'vue';
|
||||
|
||||
const emit = defineEmits(['update:modelValue']);
|
||||
|
||||
|
@ -84,28 +44,12 @@ const props = defineProps({
|
|||
},
|
||||
});
|
||||
|
||||
function getFilter(key) {
|
||||
return props.modelValue[key];
|
||||
}
|
||||
|
||||
function setFilter(key, value) {
|
||||
emit('update:modelValue', {
|
||||
...props.modelValue,
|
||||
[key]: value,
|
||||
});
|
||||
}
|
||||
|
||||
const memberships = ref([]);
|
||||
|
||||
onMounted(() => {
|
||||
memberships.value = props.modelValue.memberships;
|
||||
});
|
||||
const filter = ref({...props.modelValue});
|
||||
|
||||
watch(
|
||||
memberships,
|
||||
filter,
|
||||
function (newValue) {
|
||||
console.log('II');
|
||||
setFilter('meberships', newValue);
|
||||
emit('update:modelValue', newValue);
|
||||
},
|
||||
{deep: true}
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue