refactor: refs #8664 remove CmrFilter and replace with VnSearchbar in CmrList
gitea/salix-front/pipeline/pr-dev There was a failure building this commit Details

This commit is contained in:
Jose Antonio Tubau 2025-02-25 14:03:22 +01:00
parent 5d809999cf
commit b73f97bf97
2 changed files with 43 additions and 183 deletions

View File

@ -1,128 +0,0 @@
<script setup>
import { ref } from 'vue';
import { useI18n } from 'vue-i18n';
import VnFilterPanel from 'components/ui/VnFilterPanel.vue';
import VnSelect from 'components/common/VnSelect.vue';
import VnInputDate from 'components/common/VnInputDate.vue';
import VnInput from 'components/common/VnInput.vue';
import FetchData from 'src/components/FetchData.vue';
const { t } = useI18n();
const props = defineProps({
dataKey: {
type: String,
required: true,
},
});
const countriesOptions = ref([]);
</script>
<template>
<FetchData
url="Countries"
auto-load
@on-fetch="(data) => (countriesOptions = data)"
/>
<VnFilterPanel :data-key="props.dataKey" :search-button="true">
<template #tags="{ tag, formatFn }">
<div class="q-gutter-x-xs">
<strong>{{ t(`route.cmr.params.${tag.label}`) }}: </strong>
<span>{{ formatFn(tag.value) }}</span>
</div>
</template>
<template #body="{ params, searchFn }">
<QItem class="q-my-sm">
<QItemSection>
<VnInput
v-model="params.cmrFk"
type="number"
:label="t('route.cmr.params.cmrFk')"
is-outlined
clearable
/>
</QItemSection>
</QItem>
<QCheckbox
:label="t('route.cmr.params.hasCmrDms')"
v-model="params.hasCmrDms"
@update:model-value="searchFn()"
toggle-indeterminate
/>
<QItem class="q-my-sm">
<QItemSection>
<VnInput
v-model="params.ticketFk"
type="number"
:label="t('route.cmr.params.ticketFk')"
is-outlined
clearable
/>
</QItemSection>
</QItem>
<QItem class="q-my-sm">
<QItemSection>
<VnInput
v-model="params.routeFk"
type="number"
:label="t('route.cmr.params.routeFk')"
is-outlined
clearable
/>
</QItemSection>
</QItem>
<QItem class="q-my-sm">
<QItemSection>
<VnInput
v-model="params.clientFk"
type="number"
:label="t('route.cmr.params.clientFk')"
is-outlined
clearable
/>
</QItemSection>
</QItem>
<QItem class="q-my-sm">
<QItemSection>
<VnSelect
:label="t('route.cmr.params.countryFk')"
v-model="params.countryFk"
@update:model-value="searchFn()"
:options="countriesOptions"
option-value="id"
option-label="name"
dense
outlined
rounded
:input-debounce="0"
/>
</QItemSection>
</QItem>
<QItem class="q-my-sm">
<QItemSection>
<VnInputDate
v-model="params.shipped"
:label="t('route.cmr.params.shipped')"
is-outlined
/>
</QItemSection>
</QItem>
<QItem class="q-my-sm">
<QItemSection>
<VnSelect
:label="t('route.cmr.params.warehouseFk')"
v-model="params.warehouseFk"
@update:model-value="searchFn()"
url="warehouses"
option-value="id"
option-label="name"
dense
outlined
rounded
:input-debounce="0"
/>
</QItemSection>
</QItem>
</template>
</VnFilterPanel>
</template>

View File

@ -11,8 +11,7 @@ import CustomerDescriptorProxy from 'pages/Customer/Card/CustomerDescriptorProxy
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
import VnTable from 'components/VnTable/VnTable.vue';
import CmrFilter from './CmrFilter.vue';
import VnSection from 'src/components/common/VnSection.vue';
import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
const { t } = useI18n();
const { getTokenMultimedia } = useSession();
@ -136,60 +135,49 @@ function downloadPdfs() {
}
</script>
<template>
<VnSection
<VnSearchbar
:data-key
:columns="columns"
prefix="route.cmr"
:right-filter="true"
:array-data-props="{
url: 'Cmrs/filter',
}"
>
<template #advanced-menu>
<CmrFilter :data-key />
</template>
<template #body>
<VnSubToolbar>
<template #st-actions>
<QBtn
icon="cloud_download"
color="primary"
class="q-mr-sm"
:disable="!selectedRows?.length"
@click="downloadPdfs"
>
<QTooltip>{{ t('route.cmr.params.downloadCmrs') }}</QTooltip>
</QBtn>
</template>
</VnSubToolbar>
<VnTable
ref="tableRef"
:data-key
url="Cmrs/filter"
:columns="columns"
:right-search="false"
default-mode="table"
v-model:selected="selectedRows"
table-height="85vh"
:table="{
'row-key': 'cmrFk',
selection: 'multiple',
}"
:disable-option="{ card: true }"
:label="t('route.cmr.search')"
:info="t('route.cmr.searchInfo')"
/>
<VnSubToolbar>
<template #st-actions>
<QBtn
icon="cloud_download"
color="primary"
class="q-mr-sm"
:disable="!selectedRows?.length"
@click="downloadPdfs"
>
<template #column-ticketFk="{ row }">
<span class="link" @click.stop>
{{ row.ticketFk }}
<TicketDescriptorProxy :id="row.ticketFk" />
</span>
</template>
<template #column-clientFk="{ row }">
<span class="link" @click.stop>
{{ row.clientFk }}
<CustomerDescriptorProxy :id="row.clientFk" />
</span>
</template>
</VnTable>
<QTooltip>{{ t('route.cmr.params.downloadCmrs') }}</QTooltip>
</QBtn>
</template>
</VnSection>
</VnSubToolbar>
<VnTable
ref="tableRef"
:data-key
url="Cmrs/filter"
:columns="columns"
default-mode="table"
v-model:selected="selectedRows"
table-height="85vh"
:table="{
'row-key': 'cmrFk',
selection: 'multiple',
}"
:disable-option="{ card: true }"
>
<template #column-ticketFk="{ row }">
<span class="link" @click.stop>
{{ row.ticketFk }}
<TicketDescriptorProxy :id="row.ticketFk" />
</span>
</template>
<template #column-clientFk="{ row }">
<span class="link" @click.stop>
{{ row.clientFk }}
<CustomerDescriptorProxy :id="row.clientFk" />
</span>
</template>
</VnTable>
</template>