forked from verdnatura/salix-front
wip
This commit is contained in:
parent
134f1e0195
commit
24fdc1ff97
|
@ -43,17 +43,17 @@ const areAllChecksMarked = computed(() => {
|
|||
});
|
||||
|
||||
const setUserConfigViewData = (data) => {
|
||||
initialUserConfigViewData.value = data;
|
||||
if (data.length === 0) return;
|
||||
formattedCols.value = $props.allColumns.map((col) => {
|
||||
// Importante: El name de las columnas de la tabla debe conincidir con el name de las variables que devuelve la view config
|
||||
const obj = {
|
||||
name: col,
|
||||
active: data[0].configuration[col],
|
||||
};
|
||||
return obj;
|
||||
});
|
||||
emitSavedConfig();
|
||||
// initialUserConfigViewData.value = data;
|
||||
// if (data.length === 0) return;
|
||||
// formattedCols.value = $props.allColumns.map((col) => {
|
||||
// // Importante: El name de las columnas de la tabla debe conincidir con el name de las variables que devuelve la view config
|
||||
// const obj = {
|
||||
// name: col,
|
||||
// active: data[0].configuration[col],
|
||||
// };
|
||||
// return obj;
|
||||
// });
|
||||
// emitSavedConfig();
|
||||
};
|
||||
|
||||
const toggleMarkAll = (val) => {
|
||||
|
@ -80,6 +80,22 @@ const saveConfig = async () => {
|
|||
console.error('Error saving user view config');
|
||||
}
|
||||
};
|
||||
|
||||
const setDefaultViewConfig = (data) => {
|
||||
initialUserConfigViewData.value = data;
|
||||
if (data.length === 0) return;
|
||||
formattedCols.value = $props.allColumns.map((col) => {
|
||||
// Importante: El name de las columnas de la tabla debe conincidir con el name de las variables que devuelve la view config
|
||||
const obj = {
|
||||
name: col,
|
||||
active: data[0].columns[col],
|
||||
};
|
||||
return obj;
|
||||
});
|
||||
console.log('formattedCols:: ', formattedCols);
|
||||
emitSavedConfig();
|
||||
};
|
||||
|
||||
const emitSavedConfig = () => {
|
||||
const filteredCols = formattedCols.value.filter((col) => col.active);
|
||||
const mappedCols = filteredCols.map((col) => col.name);
|
||||
|
@ -87,12 +103,19 @@ const emitSavedConfig = () => {
|
|||
};
|
||||
</script>
|
||||
<template>
|
||||
<fetch-data
|
||||
<!-- <fetch-data
|
||||
v-if="user"
|
||||
url="UserConfigViews"
|
||||
:filter="userConfigFilter"
|
||||
@on-fetch="(data) => setUserConfigViewData(data)"
|
||||
auto-load
|
||||
/> -->
|
||||
<fetch-data
|
||||
v-if="user"
|
||||
url="DefaultViewConfigs"
|
||||
:filter="{ where: { tableCode: tableCode } }"
|
||||
@on-fetch="(data) => setDefaultViewConfig(data)"
|
||||
auto-load
|
||||
/>
|
||||
<QBtn color="primary" icon="view_column">
|
||||
<QPopupProxy ref="popupProxyRef">
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
export default function dateRange(value) {
|
||||
const minHour = new Date(value);
|
||||
minHour.setHours(0, 0, 0, 0);
|
||||
const maxHour = new Date(value);
|
||||
maxHour.setHours(23, 59, 59, 59);
|
||||
|
||||
return [minHour, maxHour];
|
||||
}
|
|
@ -7,6 +7,7 @@ import toCurrency from './toCurrency';
|
|||
import toPercentage from './toPercentage';
|
||||
import toLowerCamel from './toLowerCamel';
|
||||
import dashIfEmpty from './dashIfEmpty';
|
||||
import dateRange from './dateRange';
|
||||
|
||||
export {
|
||||
toLowerCase,
|
||||
|
@ -18,4 +19,5 @@ export {
|
|||
toCurrency,
|
||||
toPercentage,
|
||||
dashIfEmpty,
|
||||
dateRange,
|
||||
};
|
||||
|
|
|
@ -7,6 +7,7 @@ import VnFilterPanel from 'src/components/ui/VnFilterPanel.vue';
|
|||
import VnSelectFilter from 'components/common/VnSelectFilter.vue';
|
||||
import VnInput from 'src/components/common/VnInput.vue';
|
||||
import VnInputDate from 'components/common/VnInputDate.vue';
|
||||
import { dateRange } from 'src/filters';
|
||||
|
||||
const props = defineProps({
|
||||
dataKey: {
|
||||
|
@ -32,6 +33,48 @@ const sageTransactionTypesOptions = ref([]);
|
|||
|
||||
const visibleColumnsSet = computed(() => new Set(props.visibleColumns));
|
||||
|
||||
const exprBuilder = (param, value) => {
|
||||
switch (param) {
|
||||
case 'created':
|
||||
return {
|
||||
'c.created': {
|
||||
between: dateRange(value),
|
||||
},
|
||||
};
|
||||
case 'id':
|
||||
case 'name':
|
||||
case 'socialName':
|
||||
case 'fi':
|
||||
case 'credit':
|
||||
case 'creditInsurance':
|
||||
case 'phone':
|
||||
case 'mobile':
|
||||
case 'street':
|
||||
case 'city':
|
||||
case 'postcode':
|
||||
case 'email':
|
||||
case 'isActive':
|
||||
case 'isVies':
|
||||
case 'isTaxDataChecked':
|
||||
case 'isEqualizated':
|
||||
case 'isFreezed':
|
||||
case 'hasToInvoice':
|
||||
case 'hasToInvoiceByAddress':
|
||||
case 'isToBeMailed':
|
||||
case 'hasSepaVnl':
|
||||
case 'hasLcr':
|
||||
case 'hasCoreVnl':
|
||||
case 'countryFk':
|
||||
case 'provinceFk':
|
||||
case 'salesPersonFk':
|
||||
case 'businessTypeFk':
|
||||
case 'payMethodFk':
|
||||
case 'sageTaxTypeFk':
|
||||
case 'sageTransactionTypeFk':
|
||||
return { [`c.${param}`]: value };
|
||||
}
|
||||
};
|
||||
|
||||
const shouldRenderColumn = (colName) => {
|
||||
return visibleColumnsSet.value.has(colName);
|
||||
};
|
||||
|
@ -88,7 +131,11 @@ const shouldRenderColumn = (colName) => {
|
|||
auto-load
|
||||
@on-fetch="(data) => (sageTransactionTypesOptions = data)"
|
||||
/>
|
||||
<VnFilterPanel :data-key="props.dataKey" :search-button="true">
|
||||
<VnFilterPanel
|
||||
:data-key="props.dataKey"
|
||||
:search-button="true"
|
||||
:expr-builder="exprBuilder"
|
||||
>
|
||||
<template #tags="{ tag, formatFn }">
|
||||
<div class="q-gutter-x-xs">
|
||||
<strong
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup>
|
||||
import { reactive, ref } from 'vue';
|
||||
import { ref } from 'vue';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
import FetchData from 'components/FetchData.vue';
|
||||
|
|
Loading…
Reference in New Issue