|
@@ -52,9 +52,31 @@
|
|
|
:columns="columns"
|
|
:columns="columns"
|
|
|
:api-call="getAssociadosPaginated"
|
|
:api-call="getAssociadosPaginated"
|
|
|
:add-item="false"
|
|
:add-item="false"
|
|
|
|
|
+ :extra-filters="extraFilters"
|
|
|
open-item
|
|
open-item
|
|
|
@on-row-click="onRowClick"
|
|
@on-row-click="onRowClick"
|
|
|
>
|
|
>
|
|
|
|
|
+ <template #filters>
|
|
|
|
|
+ <PositionSelect
|
|
|
|
|
+ v-model="selectedPosition"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ dense
|
|
|
|
|
+ outlined
|
|
|
|
|
+ color="violet-normal"
|
|
|
|
|
+ class="col-xs-12 col-sm-6 col-md-auto"
|
|
|
|
|
+ style="min-width: 180px"
|
|
|
|
|
+ />
|
|
|
|
|
+ <SectorSelect
|
|
|
|
|
+ v-model="selectedSector"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ dense
|
|
|
|
|
+ outlined
|
|
|
|
|
+ color="violet-normal"
|
|
|
|
|
+ class="col-xs-12 col-sm-6 col-md-auto"
|
|
|
|
|
+ style="min-width: 180px"
|
|
|
|
|
+ />
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
<template #body-cell-actions="{ row }">
|
|
<template #body-cell-actions="{ row }">
|
|
|
<div class="row no-wrap items-center" style="gap: 4px">
|
|
<div class="row no-wrap items-center" style="gap: 4px">
|
|
|
<q-btn flat round dense color="violet-normal" icon="mdi-pencil" @click.stop="onRowClick({ row })" />
|
|
<q-btn flat round dense color="violet-normal" icon="mdi-pencil" @click.stop="onRowClick({ row })" />
|
|
@@ -97,6 +119,8 @@ import { getStatusColor, getStatusI18nKey } from "src/helpers/utils";
|
|
|
import { useImportPoller } from "src/composables/useImportPoller";
|
|
import { useImportPoller } from "src/composables/useImportPoller";
|
|
|
import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
|
|
import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
|
|
|
import DefaultTableServerSide from "src/components/defaults/DefaultTableServerSide.vue";
|
|
import DefaultTableServerSide from "src/components/defaults/DefaultTableServerSide.vue";
|
|
|
|
|
+import PositionSelect from "src/components/selects/PositionSelect.vue";
|
|
|
|
|
+import SectorSelect from "src/components/selects/SectorSelect.vue";
|
|
|
import AccessLogsTable from "./components/AccessLogsTable.vue";
|
|
import AccessLogsTable from "./components/AccessLogsTable.vue";
|
|
|
|
|
|
|
|
const AddEditAssociadoDialog = defineAsyncComponent(
|
|
const AddEditAssociadoDialog = defineAsyncComponent(
|
|
@@ -113,6 +137,13 @@ const tableRef = ref(null);
|
|
|
const importFileInput = useTemplateRef("importFileInput");
|
|
const importFileInput = useTemplateRef("importFileInput");
|
|
|
const { polling: importing, start: startPolling } = useImportPoller();
|
|
const { polling: importing, start: startPolling } = useImportPoller();
|
|
|
|
|
|
|
|
|
|
+const selectedPosition = ref(null);
|
|
|
|
|
+const selectedSector = ref(null);
|
|
|
|
|
+const extraFilters = computed(() => ({
|
|
|
|
|
+ position_id: selectedPosition.value?.value,
|
|
|
|
|
+ sector_id: selectedSector.value?.value,
|
|
|
|
|
+}));
|
|
|
|
|
+
|
|
|
const columns = computed(() => [
|
|
const columns = computed(() => [
|
|
|
{
|
|
{
|
|
|
name: "registration",
|
|
name: "registration",
|