|
|
@@ -2,7 +2,6 @@
|
|
|
<q-table
|
|
|
v-model:fullscreen="fullscreen"
|
|
|
flat
|
|
|
- class="softpar-table"
|
|
|
:pagination="{ rowsPerPage }"
|
|
|
:pagination-label="getPaginationLabel"
|
|
|
row-key="id"
|
|
|
@@ -11,86 +10,72 @@
|
|
|
:columns="props.columns"
|
|
|
:visible-columns="visibleColumns"
|
|
|
:filter="filter"
|
|
|
+ :grid="$q.screen.lt.sm"
|
|
|
+ class="softpar-table q-pa-sm"
|
|
|
@row-click="onRowClick"
|
|
|
>
|
|
|
<template #top>
|
|
|
- <q-input
|
|
|
- v-if="mostrarCampoPesquisa"
|
|
|
- v-model="filter"
|
|
|
- outlined
|
|
|
- debounce="500"
|
|
|
- placeholder="Buscar"
|
|
|
- style="min-width: 400px"
|
|
|
- clearable
|
|
|
- dense
|
|
|
- autofocus
|
|
|
+ <div
|
|
|
+ class="flex full-width justify-between align-center q-mb-md q-pl-sm"
|
|
|
+ style="gap: 1rem"
|
|
|
>
|
|
|
- <template #append>
|
|
|
- <q-icon name="mdi-magnify" />
|
|
|
- </template>
|
|
|
- </q-input>
|
|
|
-
|
|
|
- <!-- <q-checkbox
|
|
|
- v-if="props.mostrarToggleInativos"
|
|
|
- v-model="showInativos"
|
|
|
- class="q-ml-sm"
|
|
|
- :label="props.labelInativo"
|
|
|
- dense
|
|
|
- color="secondary"
|
|
|
- /> -->
|
|
|
-
|
|
|
- <q-select
|
|
|
- v-if="mostrarSelecaoDeColunas"
|
|
|
- v-model="visibleColumns"
|
|
|
- class="q-ml-md"
|
|
|
- multiple
|
|
|
- dense
|
|
|
- outlined
|
|
|
- options-outlined
|
|
|
- :display-value="$q.lang.table.columns"
|
|
|
- emit-value
|
|
|
- map-options
|
|
|
- :options="mapColuns"
|
|
|
- option-value="name"
|
|
|
- style="min-width: 150px"
|
|
|
- options-selected-class="text-bold"
|
|
|
- />
|
|
|
-
|
|
|
- <q-btn
|
|
|
- v-if="mostrarBotaoFullscreen"
|
|
|
- flat
|
|
|
- class="q-ml-md"
|
|
|
- @click="fullscreen = !fullscreen"
|
|
|
- >
|
|
|
- <q-icon name="mdi-fullscreen" />
|
|
|
- </q-btn>
|
|
|
-
|
|
|
- <q-btn
|
|
|
- outline
|
|
|
- class="default-button-padding q-ml-md bg-white"
|
|
|
- icon="mdi-filter-outline"
|
|
|
- style="height: 40px; width: 40px"
|
|
|
- @click="showFilters = !showFilters"
|
|
|
- >
|
|
|
- </q-btn>
|
|
|
-
|
|
|
- <q-space />
|
|
|
-
|
|
|
- <q-btn-dropdown
|
|
|
- v-if="props.dropDown"
|
|
|
- class="q-mr-md"
|
|
|
- color="primary"
|
|
|
- :label="$t('general.options')"
|
|
|
- />
|
|
|
-
|
|
|
- <q-btn
|
|
|
- v-if="props.addItem"
|
|
|
- :outline="props.outlineAdd"
|
|
|
- class="default-button-padding"
|
|
|
- label="Adicionar"
|
|
|
- @click="onAddItem"
|
|
|
- >
|
|
|
- </q-btn>
|
|
|
+ <q-input
|
|
|
+ v-if="mostrarCampoPesquisa"
|
|
|
+ v-model="filter"
|
|
|
+ debounce="250"
|
|
|
+ :placeholder="$t('general.search')"
|
|
|
+ clearable
|
|
|
+ autofocus
|
|
|
+ class=""
|
|
|
+ color="primary"
|
|
|
+ >
|
|
|
+ <template #append>
|
|
|
+ <q-icon name="mdi-magnify" />
|
|
|
+ </template>
|
|
|
+ </q-input>
|
|
|
+
|
|
|
+ <q-select
|
|
|
+ v-if="mostrarSelecaoDeColunas"
|
|
|
+ v-model="visibleColumns"
|
|
|
+ multiple
|
|
|
+ dense
|
|
|
+ outlined
|
|
|
+ options-outlined
|
|
|
+ :display-value="$q.lang.table.columns"
|
|
|
+ emit-value
|
|
|
+ map-options
|
|
|
+ :options="mapColuns"
|
|
|
+ option-value="name"
|
|
|
+ style="width: 150px"
|
|
|
+ options-selected-class="text-bold"
|
|
|
+ />
|
|
|
+
|
|
|
+ <q-btn
|
|
|
+ v-if="mostrarBotaoFullscreen"
|
|
|
+ flat
|
|
|
+ @click="fullscreen = !fullscreen"
|
|
|
+ >
|
|
|
+ <q-icon name="mdi-fullscreen" />
|
|
|
+ </q-btn>
|
|
|
+
|
|
|
+ <q-space />
|
|
|
+
|
|
|
+ <q-btn-dropdown
|
|
|
+ v-if="props.dropDown"
|
|
|
+ color="primary"
|
|
|
+ :label="$t('general.options')"
|
|
|
+ />
|
|
|
+
|
|
|
+ <q-btn
|
|
|
+ v-if="props.addItem"
|
|
|
+ color="primary"
|
|
|
+ padding="10px 16px"
|
|
|
+ :outline="props.outlineAdd"
|
|
|
+ :label="$t('general.add')"
|
|
|
+ @click="onAddItem"
|
|
|
+ >
|
|
|
+ </q-btn>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<template #body-cell-status="{ value, row }">
|
|
|
@@ -126,33 +111,6 @@
|
|
|
</q-td>
|
|
|
</template>
|
|
|
|
|
|
- <template #body-cell-principal="{ value, row }">
|
|
|
- <q-td style="width: 1%">
|
|
|
- <q-item-section>
|
|
|
- <span class="text-center">
|
|
|
- <q-icon
|
|
|
- v-if="row.principal && value"
|
|
|
- name="mdi-star"
|
|
|
- size="1.5rem"
|
|
|
- style="color: #385873"
|
|
|
- onmouseover="this.style.color='#688FAF';"
|
|
|
- onmouseout="this.style.color='#385873';"
|
|
|
- @click.stop="togglePrincipal(row)"
|
|
|
- />
|
|
|
- <q-icon
|
|
|
- v-if="!row.principal"
|
|
|
- name="mdi-star-outline"
|
|
|
- size="1.5rem"
|
|
|
- style="color: #385873"
|
|
|
- onmouseover="this.style.color='#688FAF';"
|
|
|
- onmouseout="this.style.color='#385873';"
|
|
|
- @click.stop="togglePrincipal(row)"
|
|
|
- />
|
|
|
- </span>
|
|
|
- </q-item-section>
|
|
|
- </q-td>
|
|
|
- </template>
|
|
|
-
|
|
|
<template v-if="!props.hideNoDataLabel" #no-data>
|
|
|
<div class="q-my-md row justify-center full-width">
|
|
|
<q-spinner v-if="loading" color="primary" size="30px" />
|
|
|
@@ -172,7 +130,7 @@
|
|
|
import { ref, onMounted, toRaw, watch } from "vue";
|
|
|
import { useRouter } from "vue-router";
|
|
|
|
|
|
-const emit = defineEmits(["onRowClick", "onAddItem", "noRows", "togglePrincipal"]);
|
|
|
+const emit = defineEmits(["onRowClick", "onAddItem", "noRows"]);
|
|
|
|
|
|
const props = defineProps({
|
|
|
// colunas de configuração da tabela
|
|
|
@@ -360,11 +318,6 @@ const onRequest = async () => {
|
|
|
loading.value = false;
|
|
|
};
|
|
|
|
|
|
-// funcao exclusiva para contatos table, para alterar o contato principal
|
|
|
-const togglePrincipal = async (row) => {
|
|
|
- emit("togglePrincipal", row);
|
|
|
-};
|
|
|
-
|
|
|
onMounted(async () => {
|
|
|
// faz a primeira requisição
|
|
|
await onRequest({
|
|
|
@@ -406,17 +359,4 @@ onMounted(async () => {
|
|
|
background: #f7cfbb;
|
|
|
border-radius: 24px;
|
|
|
}
|
|
|
-
|
|
|
-.circulo-status {
|
|
|
- width: 18px;
|
|
|
- height: 18px;
|
|
|
- border-radius: 50%;
|
|
|
- display: inline-block;
|
|
|
-}
|
|
|
-.circulo-ativo {
|
|
|
- background-color: #80f680; /* Verde */
|
|
|
-}
|
|
|
-.circulo-inativo {
|
|
|
- background-color: #919191; /* Cinza */
|
|
|
-}
|
|
|
</style>
|