This commit is contained in:
William Buezas 2024-01-23 10:15:35 -03:00
commit bc2d58afaf
48 changed files with 2844 additions and 2529 deletions

View File

@ -138,7 +138,7 @@ async function save() {
} else { } else {
response = await axios.patch($props.urlUpdate || $props.url, body); response = await axios.patch($props.urlUpdate || $props.url, body);
} }
emit('onDataSaved', formData.value, response); emit('onDataSaved', formData.value, response?.data);
originalData.value = JSON.parse(JSON.stringify(formData.value)); originalData.value = JSON.parse(JSON.stringify(formData.value));
hasChanges.value = false; hasChanges.value = false;
} catch (err) { } catch (err) {

View File

@ -1,8 +1,8 @@
<script setup> <script setup>
import {computed, ref} from 'vue'; import { computed, ref } from 'vue';
import { toHour} from 'src/filters'; import { toHour } from 'src/filters';
import {useI18n} from "vue-i18n"; import { useI18n } from 'vue-i18n';
import isValidDate from "filters/isValidDate"; import isValidDate from 'filters/isValidDate';
const props = defineProps({ const props = defineProps({
modelValue: { modelValue: {
@ -25,9 +25,14 @@ const value = computed({
return props.modelValue; return props.modelValue;
}, },
set(value) { set(value) {
const [hours, minutes] = value.split(':') const [hours, minutes] = value.split(':');
const date = new Date() const date = new Date();
date.setUTCHours(Number.parseInt(hours) || 0, Number.parseInt(minutes) || 0, 0, 0) date.setUTCHours(
Number.parseInt(hours) || 0,
Number.parseInt(minutes) || 0,
0,
0
);
emit('update:modelValue', value ? date.toISOString() : null); emit('update:modelValue', value ? date.toISOString() : null);
}, },
}); });
@ -40,14 +45,18 @@ const save = () => {
value.value = internalValue.value; value.value = internalValue.value;
}; };
const formatTime = (dateString) => { const formatTime = (dateString) => {
if (!isValidDate(dateString)){ if (!isValidDate(dateString)) {
return '' return '';
} }
const date = new Date(dateString || ''); const date = new Date(dateString || '');
return `${date.getUTCHours().toString().padStart(2, '0')}:${date.getUTCMinutes().toString().padStart(2, '0')}`; return date.toLocaleTimeString([], {
hour: '2-digit',
minute: '2-digit',
});
}; };
const internalValue = ref(formatTime(value)) const internalValue = ref(formatTime(value));
const styleAttrs = computed(() => { const styleAttrs = computed(() => {
return props.isOutlined return props.isOutlined
@ -82,8 +91,19 @@ const styleAttrs = computed(() => {
@update:model-value="onDateUpdate" @update:model-value="onDateUpdate"
> >
<div class="row items-center justify-end q-gutter-sm"> <div class="row items-center justify-end q-gutter-sm">
<QBtn :label="t('Cancel')" color="primary" flat v-close-popup /> <QBtn
<QBtn label="Ok" color="primary" flat @click="save" v-close-popup /> :label="t('Cancel')"
color="primary"
flat
v-close-popup
/>
<QBtn
label="Ok"
color="primary"
flat
@click="save"
v-close-popup
/>
</div> </div>
</QTime> </QTime>
</QPopupProxy> </QPopupProxy>

View File

@ -38,6 +38,7 @@ const workers = ref();
minimal minimal
> >
</QDate> </QDate>
<QList dense>
<QSeparator /> <QSeparator />
<QItem> <QItem>
<QItemSection v-if="!workers"> <QItemSection v-if="!workers">
@ -58,6 +59,7 @@ const workers = ref();
/> />
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>

View File

@ -116,9 +116,3 @@ watch(options, (newValue) => {
</template> </template>
</QSelect> </QSelect>
</template> </template>
<style scoped lang="scss">
.q-field--outlined {
max-width: 100%;
}
</style>

View File

@ -216,9 +216,7 @@ function formatValue(value) {
</QItem> </QItem>
<QSeparator /> <QSeparator />
</QList> </QList>
<QList dense class="list q-gutter-y-sm q-mt-sm">
<slot name="body" :params="userParams" :search-fn="search"></slot> <slot name="body" :params="userParams" :search-fn="search"></slot>
</QList>
<template v-if="props.searchButton"> <template v-if="props.searchButton">
<QItem> <QItem>
<QItemSection class="q-py-sm"> <QItemSection class="q-py-sm">
@ -244,12 +242,6 @@ function formatValue(value) {
/> />
</template> </template>
<style scoped lang="scss">
.list {
width: 256px;
}
</style>
<i18n> <i18n>
es: es:
No filters applied: No se han aplicado filtros No filters applied: No se han aplicado filtros

View File

@ -58,11 +58,6 @@ body.body--dark {
border-radius: 8px; border-radius: 8px;
} }
.vn-card-list {
width: 100%;
max-width: 60em;
}
/* Estilo para el asterisco en campos requeridos */ /* Estilo para el asterisco en campos requeridos */
.q-field.required .q-field__label:after { .q-field.required .q-field__label:after {
content: ' *'; content: ' *';

View File

@ -4,13 +4,8 @@ export default function toHour(date) {
if (!isValidDate(date)) { if (!isValidDate(date)) {
return '--:--'; return '--:--';
} }
const dateHour = new Date(date); return (new Date(date || '')).toLocaleTimeString([], {
let hours = dateHour.getUTCHours(); hour: '2-digit',
hours = hours % 12; minute: '2-digit',
hours = hours ? hours : 12; });
let minutes = dateHour.getUTCMinutes();
minutes = minutes < 10 ? minutes.toString().padStart(2, '0') : minutes;
return `${hours}:${minutes} ${dateHour.getUTCHours() >= 12 ? 'PM' : 'AM'}`;
} }

View File

@ -36,6 +36,7 @@ const states = ref();
</div> </div>
</template> </template>
<template #body="{ params, searchFn }"> <template #body="{ params, searchFn }">
<QList dense class="list">
<QItem class="q-my-sm"> <QItem class="q-my-sm">
<QItemSection> <QItemSection>
<VnInput <VnInput
@ -177,10 +178,20 @@ const states = ref();
</QItemSection> </QItemSection>
</QItem> </QItem>
</QExpansionItem> </QExpansionItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>
<style scoped>
.list {
width: 256px;
}
.list * {
max-width: 100%;
}
</style>
<i18n> <i18n>
en: en:
params: params:

View File

@ -71,7 +71,7 @@ function viewSummary(id) {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="ClaimList" data-key="ClaimList"
url="Claims/filter" url="Claims/filter"
@ -145,6 +145,13 @@ function viewSummary(id) {
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>
<i18n> <i18n>
es: es:
Search claim: Buscar reclamación Search claim: Buscar reclamación

View File

@ -84,7 +84,7 @@ async function remove({ id }) {
</QForm> </QForm>
</QCard> </QCard>
</QPageSticky> </QPageSticky>
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="ClaimRmaList" data-key="ClaimRmaList"
url="ClaimRmas" url="ClaimRmas"
@ -160,6 +160,7 @@ async function remove({ id }) {
padding-top: 156px; padding-top: 156px;
} }
.card-list,
.card { .card {
width: 100%; width: 100%;
max-width: 60em; max-width: 60em;

View File

@ -1,7 +1,7 @@
<script setup> <script setup>
import { ref, computed, onBeforeMount, onMounted } from 'vue'; import { ref, computed, onBeforeMount, onMounted } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useRouter } from 'vue-router'; import { useRoute, useRouter } from 'vue-router';
import { date, QBtn } from 'quasar'; import { date, QBtn } from 'quasar';
@ -12,6 +12,7 @@ import { useStateStore } from 'stores/useStateStore';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue'; import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
const { t } = useI18n(); const { t } = useI18n();
const route = useRoute();
const router = useRouter(); const router = useRouter();
const stateStore = useStateStore(); const stateStore = useStateStore();
@ -29,7 +30,7 @@ onBeforeMount(async () => {
}, },
}, },
], ],
where: { clientFk: '1' }, where: { clientFk: `${route.params.id}` },
order: ['created DESC'], order: ['created DESC'],
limit: 20, limit: 20,
}; };

View File

@ -37,6 +37,7 @@ const zones = ref();
</div> </div>
</template> </template>
<template #body="{ params, searchFn }"> <template #body="{ params, searchFn }">
<QList dense class="list">
<QItem class="q-my-sm"> <QItem class="q-my-sm">
<QItemSection> <QItemSection>
<VnInput :label="t('FI')" v-model="params.fi" is-outlined> <VnInput :label="t('FI')" v-model="params.fi" is-outlined>
@ -114,7 +115,11 @@ const zones = ref();
<QExpansionItem :label="t('More options')" expand-separator> <QExpansionItem :label="t('More options')" expand-separator>
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput :label="t('Phone')" v-model="params.phone" is-outlined> <VnInput
:label="t('Phone')"
v-model="params.phone"
is-outlined
>
<template #prepend> <template #prepend>
<QIcon name="phone" size="xs" /> <QIcon name="phone" size="xs" />
</template> </template>
@ -123,7 +128,11 @@ const zones = ref();
</QItem> </QItem>
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput :label="t('Email')" v-model="params.email" is-outlined> <VnInput
:label="t('Email')"
v-model="params.email"
is-outlined
>
<template #prepend> <template #prepend>
<QIcon name="email" size="sm" /> <QIcon name="email" size="sm" />
</template> </template>
@ -161,10 +170,20 @@ const zones = ref();
</QItemSection> </QItemSection>
</QItem> </QItem>
</QExpansionItem> </QExpansionItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>
<style scoped>
.list {
width: 256px;
}
.list * {
max-width: 100%;
}
</style>
<i18n> <i18n>
en: en:
params: params:

View File

@ -65,7 +65,7 @@ const redirectToCreateView = () => {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
auto-load auto-load
data-key="CustomerList" data-key="CustomerList"
@ -116,6 +116,13 @@ const redirectToCreateView = () => {
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>
<i18n> <i18n>
es: es:
Search customer: Buscar cliente Search customer: Buscar cliente

View File

@ -46,6 +46,7 @@ const authors = ref();
</template> </template>
<template #body="{ params }"> <template #body="{ params }">
<QList dense class="list">
<QItem class="q-mb-sm q-mt-sm"> <QItem class="q-mb-sm q-mt-sm">
<QItemSection v-if="clients"> <QItemSection v-if="clients">
<VnSelectFilter <VnSelectFilter
@ -160,7 +161,11 @@ const authors = ref();
<QItem class="q-mb-sm"> <QItem class="q-mb-sm">
<QItemSection> <QItemSection>
<VnInput :label="t('L. O. Date')" is-outlined v-model="params.date" /> <VnInput
:label="t('L. O. Date')"
is-outlined
v-model="params.date"
/>
</QItemSection> </QItemSection>
</QItem> </QItem>
@ -184,10 +189,20 @@ const authors = ref();
</QItemSection> </QItemSection>
</QItem> </QItem>
<QSeparator /> <QSeparator />
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>
<style scoped>
.list {
width: 256px;
}
.list * {
max-width: 100%;
}
</style>
<i18n> <i18n>
en: en:
params: params:

View File

@ -145,6 +145,7 @@ const shouldRenderColumn = (colName) => {
</div> </div>
</template> </template>
<template #body="{ params, searchFn }"> <template #body="{ params, searchFn }">
<QList dense class="list q-gutter-y-sm q-mt-sm">
<QItem v-if="shouldRenderColumn('id')"> <QItem v-if="shouldRenderColumn('id')">
<QItemSection> <QItemSection>
<VnInput <VnInput
@ -203,7 +204,9 @@ const shouldRenderColumn = (colName) => {
<QItemSection v-if="workers"> <QItemSection v-if="workers">
<VnSelectFilter <VnSelectFilter
:label=" :label="
t('customer.extendedList.tableVisibleColumns.salesPersonFk') t(
'customer.extendedList.tableVisibleColumns.salesPersonFk'
)
" "
v-model="params.salesPersonFk" v-model="params.salesPersonFk"
@update:model-value="searchFn()" @update:model-value="searchFn()"
@ -234,7 +237,9 @@ const shouldRenderColumn = (colName) => {
<QItemSection> <QItemSection>
<VnInput <VnInput
:label=" :label="
t('customer.extendedList.tableVisibleColumns.creditInsurance') t(
'customer.extendedList.tableVisibleColumns.creditInsurance'
)
" "
v-model="params.creditInsurance" v-model="params.creditInsurance"
is-outlined is-outlined
@ -271,7 +276,9 @@ const shouldRenderColumn = (colName) => {
<QItem v-if="shouldRenderColumn('countryFk')"> <QItem v-if="shouldRenderColumn('countryFk')">
<QItemSection> <QItemSection>
<VnSelectFilter <VnSelectFilter
:label="t('customer.extendedList.tableVisibleColumns.countryFk')" :label="
t('customer.extendedList.tableVisibleColumns.countryFk')
"
v-model="params.countryFk" v-model="params.countryFk"
@update:model-value="searchFn()" @update:model-value="searchFn()"
:options="countriesOptions" :options="countriesOptions"
@ -288,7 +295,9 @@ const shouldRenderColumn = (colName) => {
<QItem v-if="shouldRenderColumn('provinceFk')"> <QItem v-if="shouldRenderColumn('provinceFk')">
<QItemSection> <QItemSection>
<VnSelectFilter <VnSelectFilter
:label="t('customer.extendedList.tableVisibleColumns.provinceFk')" :label="
t('customer.extendedList.tableVisibleColumns.provinceFk')
"
v-model="params.provinceFk" v-model="params.provinceFk"
@update:model-value="searchFn()" @update:model-value="searchFn()"
:options="provincesOptions" :options="provincesOptions"
@ -314,7 +323,9 @@ const shouldRenderColumn = (colName) => {
<QItem v-if="shouldRenderColumn('postcode')"> <QItem v-if="shouldRenderColumn('postcode')">
<QItemSection> <QItemSection>
<VnInput <VnInput
:label="t('customer.extendedList.tableVisibleColumns.postcode')" :label="
t('customer.extendedList.tableVisibleColumns.postcode')
"
v-model="params.postcode" v-model="params.postcode"
is-outlined is-outlined
/> />
@ -334,7 +345,9 @@ const shouldRenderColumn = (colName) => {
<QItemSection> <QItemSection>
<VnInputDate <VnInputDate
v-model="params.created" v-model="params.created"
:label="t('customer.extendedList.tableVisibleColumns.created')" :label="
t('customer.extendedList.tableVisibleColumns.created')
"
@update:model-value="searchFn()" @update:model-value="searchFn()"
is-outlined is-outlined
/> />
@ -344,7 +357,9 @@ const shouldRenderColumn = (colName) => {
<QItemSection> <QItemSection>
<VnSelectFilter <VnSelectFilter
:label=" :label="
t('customer.extendedList.tableVisibleColumns.businessTypeFk') t(
'customer.extendedList.tableVisibleColumns.businessTypeFk'
)
" "
v-model="params.businessTypeFk" v-model="params.businessTypeFk"
:options="businessTypesOptions" :options="businessTypesOptions"
@ -382,7 +397,9 @@ const shouldRenderColumn = (colName) => {
<QItemSection> <QItemSection>
<VnSelectFilter <VnSelectFilter
:label=" :label="
t('customer.extendedList.tableVisibleColumns.sageTaxTypeFk') t(
'customer.extendedList.tableVisibleColumns.sageTaxTypeFk'
)
" "
v-model="params.sageTaxTypeFk" v-model="params.sageTaxTypeFk"
@update:model-value="searchFn()" @update:model-value="searchFn()"
@ -418,12 +435,16 @@ const shouldRenderColumn = (colName) => {
/> />
</QItemSection> </QItemSection>
</QItem> </QItem>
<QItem v-if="shouldRenderColumn('isActive') || shouldRenderColumn('isVies')"> <QItem
v-if="shouldRenderColumn('isActive') || shouldRenderColumn('isVies')"
>
<QItemSection v-if="shouldRenderColumn('isActive')"> <QItemSection v-if="shouldRenderColumn('isActive')">
<QCheckbox <QCheckbox
v-model="params.isActive" v-model="params.isActive"
@update:model-value="searchFn()" @update:model-value="searchFn()"
:label="t('customer.extendedList.tableVisibleColumns.isActive')" :label="
t('customer.extendedList.tableVisibleColumns.isActive')
"
toggle-indeterminate toggle-indeterminate
:false-value="undefined" :false-value="undefined"
/> />
@ -462,7 +483,9 @@ const shouldRenderColumn = (colName) => {
v-model="params.isEqualizated" v-model="params.isEqualizated"
@update:model-value="searchFn()" @update:model-value="searchFn()"
:label=" :label="
t('customer.extendedList.tableVisibleColumns.isEqualizated') t(
'customer.extendedList.tableVisibleColumns.isEqualizated'
)
" "
toggle-indeterminate toggle-indeterminate
:false-value="undefined" :false-value="undefined"
@ -471,14 +494,17 @@ const shouldRenderColumn = (colName) => {
</QItem> </QItem>
<QItem <QItem
v-if=" v-if="
shouldRenderColumn('hasToInvoice') || shouldRenderColumn('isFreezed') shouldRenderColumn('hasToInvoice') ||
shouldRenderColumn('isFreezed')
" "
> >
<QItemSection v-if="shouldRenderColumn('isFreezed')"> <QItemSection v-if="shouldRenderColumn('isFreezed')">
<QCheckbox <QCheckbox
v-model="params.isFreezed" v-model="params.isFreezed"
@update:model-value="searchFn()" @update:model-value="searchFn()"
:label="t('customer.extendedList.tableVisibleColumns.isFreezed')" :label="
t('customer.extendedList.tableVisibleColumns.isFreezed')
"
toggle-indeterminate toggle-indeterminate
:false-value="undefined" :false-value="undefined"
/> />
@ -488,7 +514,9 @@ const shouldRenderColumn = (colName) => {
v-model="params.hasToInvoice" v-model="params.hasToInvoice"
@update:model-value="searchFn()" @update:model-value="searchFn()"
:label=" :label="
t('customer.extendedList.tableVisibleColumns.hasToInvoice') t(
'customer.extendedList.tableVisibleColumns.hasToInvoice'
)
" "
toggle-indeterminate toggle-indeterminate
:false-value="undefined" :false-value="undefined"
@ -519,7 +547,9 @@ const shouldRenderColumn = (colName) => {
v-model="params.isToBeMailed" v-model="params.isToBeMailed"
@update:model-value="searchFn()" @update:model-value="searchFn()"
:label=" :label="
t('customer.extendedList.tableVisibleColumns.isToBeMailed') t(
'customer.extendedList.tableVisibleColumns.isToBeMailed'
)
" "
toggle-indeterminate toggle-indeterminate
:false-value="undefined" :false-value="undefined"
@ -527,7 +557,9 @@ const shouldRenderColumn = (colName) => {
</QItemSection> </QItemSection>
</QItem> </QItem>
<QItem <QItem
v-if="shouldRenderColumn('hasLcr') || shouldRenderColumn('hasCoreVnl')" v-if="
shouldRenderColumn('hasLcr') || shouldRenderColumn('hasCoreVnl')
"
> >
<QItemSection v-if="shouldRenderColumn('hasLcr')"> <QItemSection v-if="shouldRenderColumn('hasLcr')">
<QCheckbox <QCheckbox
@ -542,7 +574,9 @@ const shouldRenderColumn = (colName) => {
<QCheckbox <QCheckbox
v-model="params.hasCoreVnl" v-model="params.hasCoreVnl"
@update:model-value="searchFn()" @update:model-value="searchFn()"
:label="t('customer.extendedList.tableVisibleColumns.hasCoreVnl')" :label="
t('customer.extendedList.tableVisibleColumns.hasCoreVnl')
"
toggle-indeterminate toggle-indeterminate
:false-value="undefined" :false-value="undefined"
/> />
@ -553,7 +587,9 @@ const shouldRenderColumn = (colName) => {
<QCheckbox <QCheckbox
v-model="params.hasSepaVnl" v-model="params.hasSepaVnl"
@update:model-value="searchFn()" @update:model-value="searchFn()"
:label="t('customer.extendedList.tableVisibleColumns.hasSepaVnl')" :label="
t('customer.extendedList.tableVisibleColumns.hasSepaVnl')
"
toggle-indeterminate toggle-indeterminate
:false-value="undefined" :false-value="undefined"
/> />
@ -561,10 +597,20 @@ const shouldRenderColumn = (colName) => {
</QItem> </QItem>
<QSeparator /> <QSeparator />
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>
<style scoped>
.list {
width: 256px;
}
.list * {
max-width: 100%;
}
</style>
<i18n> <i18n>
es: es:
Social name: Razón social Social name: Razón social

View File

@ -36,6 +36,7 @@ const clients = ref();
</template> </template>
<template #body="{ params, searchFn }"> <template #body="{ params, searchFn }">
<QList dense class="list">
<QItem class="q-mb-sm q-mt-sm"> <QItem class="q-mb-sm q-mt-sm">
<QItemSection> <QItemSection>
<VnInput <VnInput
@ -106,10 +107,20 @@ const clients = ref();
</QItemSection> </QItemSection>
</QItem> </QItem>
<QSeparator /> <QSeparator />
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>
<style scoped>
.list {
width: 256px;
}
.list * {
max-width: 100%;
}
</style>
<i18n> <i18n>
en: en:
params: params:

View File

@ -122,7 +122,7 @@ function stateColor(row) {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md customer-payments"> <QPage class="column items-center q-pa-md customer-payments">
<div class="vn-card-list"> <div class="card-list">
<QToolbar class="q-pa-none justify-end"> <QToolbar class="q-pa-none justify-end">
<QBtn <QBtn
@click="arrayData.refresh()" @click="arrayData.refresh()"
@ -278,6 +278,10 @@ function stateColor(row) {
<style lang="scss"> <style lang="scss">
.customer-payments { .customer-payments {
.card-list {
width: 100%;
max-width: 60em;
.q-table--dense .q-table th:first-child { .q-table--dense .q-table th:first-child {
padding-left: 0; padding-left: 0;
} }
@ -286,6 +290,7 @@ function stateColor(row) {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
}
} }
</style> </style>

View File

@ -27,9 +27,14 @@ function isValidNumber(value) {
</div> </div>
</template> </template>
<template #body="{ params }"> <template #body="{ params }">
<QList dense class="q-gutter-y-sm q-mt-sm">
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput :label="t('Order ID')" v-model="params.orderFk" is-outlined> <VnInput
:label="t('Order ID')"
v-model="params.orderFk"
is-outlined
>
<template #prepend> <template #prepend>
<QIcon name="vn:basket" size="xs" /> <QIcon name="vn:basket" size="xs" />
</template> </template>
@ -62,7 +67,8 @@ function isValidNumber(value) {
} }
" "
:rules="[ :rules="[
(val) => isValidNumber(val) || !val || 'Please type a number', (val) =>
isValidNumber(val) || !val || 'Please type a number',
]" ]"
lazy-rules lazy-rules
> >
@ -75,12 +81,17 @@ function isValidNumber(value) {
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInputDate v-model="params.from" :label="t('From')" is-outlined /> <VnInputDate
v-model="params.from"
:label="t('From')"
is-outlined
/>
</QItemSection> </QItemSection>
<QItemSection> <QItemSection>
<VnInputDate v-model="params.to" :label="t('To')" is-outlined /> <VnInputDate v-model="params.to" :label="t('To')" is-outlined />
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>

View File

@ -54,6 +54,7 @@ const suppliersOptions = ref([]);
</div> </div>
</template> </template>
<template #body="{ params }"> <template #body="{ params }">
<QList dense class="list q-gutter-y-sm q-mt-sm">
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput <VnInput
@ -197,6 +198,7 @@ const suppliersOptions = ref([]);
/> />
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>

View File

@ -47,7 +47,7 @@ onMounted(async () => {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="EntryList" data-key="EntryList"
url="Entries/filter" url="Entries/filter"
@ -128,6 +128,13 @@ onMounted(async () => {
</QPageSticky> </QPageSticky>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>
<i18n> <i18n>
es: es:
Search entries: Buscar entradas Search entries: Buscar entradas

View File

@ -36,6 +36,7 @@ const suppliersRef = ref();
</div> </div>
</template> </template>
<template #body="{ params, searchFn }"> <template #body="{ params, searchFn }">
<QList dense class="list q-gutter-y-sm q-mt-sm">
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput <VnInput
@ -185,7 +186,11 @@ const suppliersRef = ref();
</QItem> </QItem>
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInputDate :label="t('To')" v-model="params.to" is-outlined /> <VnInputDate
:label="t('To')"
v-model="params.to"
is-outlined
/>
</QItemSection> </QItemSection>
</QItem> </QItem>
<QItem> <QItem>
@ -198,10 +203,20 @@ const suppliersRef = ref();
</QItemSection> </QItemSection>
</QItem> </QItem>
</QExpansionItem> </QExpansionItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>
<style scoped>
.list {
width: 256px;
}
.list * {
max-width: 100%;
}
</style>
<i18n> <i18n>
en: en:
params: params:

View File

@ -71,7 +71,7 @@ function viewSummary(id) {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="InvoiceInList" data-key="InvoiceInList"
url="InvoiceIns/filter" url="InvoiceIns/filter"
@ -157,6 +157,13 @@ function viewSummary(id) {
</QPageSticky> </QPageSticky>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>
<i18n> <i18n>
es: es:
Search invoice: Buscar factura emitida Search invoice: Buscar factura emitida

View File

@ -41,6 +41,7 @@ function setWorkers(data) {
</div> </div>
</template> </template>
<template #body="{ params, searchFn }"> <template #body="{ params, searchFn }">
<QList dense class="q-gutter-y-sm q-mt-sm">
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput <VnInput
@ -57,7 +58,11 @@ function setWorkers(data) {
</QItem> </QItem>
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput :label="t('Amount')" v-model="params.amount" is-outlined /> <VnInput
:label="t('Amount')"
v-model="params.amount"
is-outlined
/>
</QItemSection> </QItemSection>
</QItem> </QItem>
<QItem> <QItem>
@ -124,6 +129,7 @@ function setWorkers(data) {
</QItemSection> </QItemSection>
</QItem> </QItem>
</QExpansionItem> </QExpansionItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>

View File

@ -181,7 +181,7 @@ const downloadCsv = () => {
</div> </div>
</QToolbar> </QToolbar>
<div class="flex flex-center q-pa-md"> <div class="flex flex-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<CardList <CardList
:element="row" :element="row"
:id="row.id" :id="row.id"
@ -246,6 +246,13 @@ const downloadCsv = () => {
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>
<i18n> <i18n>
en: en:
searchInvoice: Search issued invoice searchInvoice: Search issued invoice

View File

@ -27,6 +27,7 @@ const props = defineProps({
</div> </div>
</template> </template>
<template #body="{ params }"> <template #body="{ params }">
<QList dense class="q-gutter-y-sm q-mt-sm">
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInputDate <VnInputDate
@ -100,10 +101,13 @@ const props = defineProps({
/> />
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>
<style scoped></style>
<i18n> <i18n>
en: en:
params: params:

View File

@ -219,6 +219,7 @@ const getCategoryClass = (category, params) => {
</template> </template>
</template> </template>
<template #body="{ params, searchFn }"> <template #body="{ params, searchFn }">
<QList dense style="max-width: 256px">
<QItem class="category-filter q-mt-md"> <QItem class="category-filter q-mt-md">
<div <div
v-for="category in categoryList" v-for="category in categoryList"
@ -394,6 +395,7 @@ const getCategoryClass = (category, params) => {
</QItemSection> </QItemSection>
</QItem> </QItem>
<QSeparator /> <QSeparator />
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>

View File

@ -59,6 +59,7 @@ const sourceList = ref(null);
</div> </div>
</template> </template>
<template #body="{ params }"> <template #body="{ params }">
<QList id="orderFilter" dense>
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput <VnInput
@ -201,10 +202,19 @@ const sourceList = ref(null);
<QCheckbox v-model="params.showEmpty" :label="t('showEmpty')" /> <QCheckbox v-model="params.showEmpty" :label="t('showEmpty')" />
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>
<style lang="scss">
#orderFilter {
.q-item {
padding-top: 8px;
}
}
</style>
<i18n> <i18n>
en: en:
params: params:

View File

@ -1,7 +1,7 @@
<script setup> <script setup>
import { useStateStore } from 'stores/useStateStore'; import { useStateStore } from 'stores/useStateStore';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { onMounted, onUnmounted, ref } from 'vue'; import {onMounted, onUnmounted, ref} from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import VnPaginate from 'components/ui/VnPaginate.vue'; import VnPaginate from 'components/ui/VnPaginate.vue';
import VnSearchbar from 'components/ui/VnSearchbar.vue'; import VnSearchbar from 'components/ui/VnSearchbar.vue';
@ -20,7 +20,7 @@ const catalogParams = {
orderBy: JSON.stringify({ field: 'relevancy DESC, name', way: 'ASC', isTag: false }), orderBy: JSON.stringify({ field: 'relevancy DESC, name', way: 'ASC', isTag: false }),
}; };
const tags = ref([]); const tags = ref([])
function extractTags(items) { function extractTags(items) {
const resultTags = []; const resultTags = [];
@ -34,7 +34,7 @@ function extractTags(items) {
} }
}); });
}); });
tags.value = resultTags; tags.value = resultTags
} }
</script> </script>
@ -70,7 +70,7 @@ function extractTags(items) {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="full-width"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="OrderCatalogList" data-key="OrderCatalogList"
url="Orders/CatalogFilter" url="Orders/CatalogFilter"
@ -93,6 +93,10 @@ function extractTags(items) {
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
.card-list {
width: 100%;
}
.catalog-list { .catalog-list {
display: flex; display: flex;
align-items: flex-start; align-items: flex-start;

View File

@ -83,7 +83,7 @@ async function confirmOrder() {
auto-load auto-load
/> />
<QPage :key="componentKey" class="column items-center q-pa-md"> <QPage :key="componentKey" class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<div v-if="!orderSummary.total" class="no-result"> <div v-if="!orderSummary.total" class="no-result">
{{ t('globals.noResults') }} {{ t('globals.noResults') }}
</div> </div>
@ -228,6 +228,11 @@ async function confirmOrder() {
} }
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
.header { .header {
color: $primary; color: $primary;
font-weight: bold; font-weight: bold;

View File

@ -4,7 +4,7 @@ import { onMounted, onUnmounted } from 'vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { useStateStore } from 'stores/useStateStore'; import { useStateStore } from 'stores/useStateStore';
import { toCurrency, toDate } from 'src/filters'; import { toCurrency, toDate } from 'src/filters';
import { useQuasar } from 'quasar'; import {useQuasar} from "quasar";
import CardList from 'components/ui/CardList.vue'; import CardList from 'components/ui/CardList.vue';
import WorkerDescriptorProxy from 'pages/Worker/Card/WorkerDescriptorProxy.vue'; import WorkerDescriptorProxy from 'pages/Worker/Card/WorkerDescriptorProxy.vue';
import CustomerDescriptorProxy from 'pages/Customer/Card/CustomerDescriptorProxy.vue'; import CustomerDescriptorProxy from 'pages/Customer/Card/CustomerDescriptorProxy.vue';
@ -12,7 +12,7 @@ import VnPaginate from 'components/ui/VnPaginate.vue';
import VnLv from 'components/ui/VnLv.vue'; import VnLv from 'components/ui/VnLv.vue';
import OrderSearchbar from 'pages/Order/Card/OrderSearchbar.vue'; import OrderSearchbar from 'pages/Order/Card/OrderSearchbar.vue';
import OrderFilter from 'pages/Order/Card/OrderFilter.vue'; import OrderFilter from 'pages/Order/Card/OrderFilter.vue';
import OrderSummaryDialog from 'pages/Order/Card/OrderSummaryDialog.vue'; import OrderSummaryDialog from "pages/Order/Card/OrderSummaryDialog.vue";
const stateStore = useStateStore(); const stateStore = useStateStore();
const quasar = useQuasar(); const quasar = useQuasar();
@ -63,7 +63,7 @@ function viewSummary(id) {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="OrderList" data-key="OrderList"
url="Orders/filter" url="Orders/filter"
@ -153,3 +153,10 @@ function viewSummary(id) {
</QPageSticky> </QPageSticky>
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>

View File

@ -35,7 +35,7 @@ const loadVolumes = async (rows) => {
auto-load auto-load
/> />
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<div <div
v-if="!volumeSummary?.totalVolume && !volumeSummary?.totalBoxes" v-if="!volumeSummary?.totalVolume && !volumeSummary?.totalBoxes"
class="no-result" class="no-result"
@ -121,6 +121,11 @@ const loadVolumes = async (rows) => {
} }
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
.header { .header {
color: $primary; color: $primary;
font-weight: bold; font-weight: bold;

View File

@ -61,6 +61,7 @@ const warehouseList = ref([]);
</div> </div>
</template> </template>
<template #body="{ params }"> <template #body="{ params }">
<QList dense>
<QItem class="q-my-sm"> <QItem class="q-my-sm">
<QItemSection v-if="workerList"> <QItemSection v-if="workerList">
<VnSelectFilter <VnSelectFilter
@ -197,6 +198,7 @@ const warehouseList = ref([]);
/> />
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>

View File

@ -71,8 +71,8 @@ const routeFilter = {
}; };
const onSave = (data, response) => { const onSave = (data, response) => {
if (isNew) { if (isNew) {
axios.post(`Routes/${response.data?.id}/updateWorkCenter`); axios.post(`Routes/${response?.id}/updateWorkCenter`);
router.push({ name: 'RouteSummary', params: { id: response.data?.id } }); router.push({ name: 'RouteSummary', params: { id: response?.id } });
} }
}; };
</script> </script>
@ -198,6 +198,13 @@ const onSave = (data, response) => {
clearable clearable
/> />
</div> </div>
<div class="col flex items-center">
<QCheckbox
size="sm"
v-model="data.isOk"
:label="t('Is served')"
/>
</div>
</VnRow> </VnRow>
</template> </template>
<VnRow class="row q-gutter-md q-mb-md"> <VnRow class="row q-gutter-md q-mb-md">
@ -212,3 +219,15 @@ const onSave = (data, response) => {
</template> </template>
</FormModel> </FormModel>
</template> </template>
<i18n>
es:
Worker: Trabajador
Vehicle: Vehículo
Agency: Agencia
Km Start: Km de inicio
Km End: Km de fin
Hour started: Hora inicio
Hour finished: Hora fin
Description: Descripción
Is served: Se ha servido
</i18n>

View File

@ -28,6 +28,7 @@ const countries = ref();
</div> </div>
</template> </template>
<template #body="{ params }"> <template #body="{ params }">
<QList dense class="q-gutter-y-sm q-mt-sm">
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput <VnInput
@ -123,6 +124,7 @@ const countries = ref();
/> />
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>

View File

@ -271,6 +271,7 @@ function previewRoute(id) {
selection="multiple" selection="multiple"
:rows-per-page-options="[0]" :rows-per-page-options="[0]"
hide-pagination hide-pagination
:pagination="{ sortBy: 'ID', descending: true }"
> >
<template #body-cell-worker="props"> <template #body-cell-worker="props">
<QTd :props="props"> <QTd :props="props">
@ -458,11 +459,12 @@ function previewRoute(id) {
</template> </template>
<template #body-cell-actions="props"> <template #body-cell-actions="props">
<QTd :props="props"> <QTd :props="props">
<div class="table-actions"> <div class="flex items-center table-actions">
<QIcon <QIcon
name="vn:ticketAdd" name="vn:ticketAdd"
size="xs" size="xs"
color="primary" color="primary"
class="cursor-pointer"
> >
<QTooltip>{{ t('Add ticket') }}</QTooltip> <QTooltip>{{ t('Add ticket') }}</QTooltip>
</QIcon> </QIcon>
@ -471,6 +473,7 @@ function previewRoute(id) {
size="xs" size="xs"
color="primary" color="primary"
@click="previewRoute(props?.row?.id)" @click="previewRoute(props?.row?.id)"
class="cursor-pointer"
> >
<QTooltip>{{ t('Preview') }}</QTooltip> <QTooltip>{{ t('Preview') }}</QTooltip>
</QIcon> </QIcon>
@ -499,13 +502,7 @@ function previewRoute(id) {
} }
.table-actions { .table-actions {
display: flex;
align-items: center;
gap: 12px; gap: 12px;
i {
cursor: pointer;
}
} }
</style> </style>
<i18n> <i18n>
@ -527,4 +524,6 @@ es:
Cancel: Cancelar Cancel: Cancelar
Clone: Clonar Clone: Clonar
Mark as served: Marcar como servidas Mark as served: Marcar como servidas
Add ticket: Añadir tickets
Preview: Vista previa
</i18n> </i18n>

View File

@ -41,11 +41,7 @@ function setParkings(data) {
@on-fetch="setWorkers" @on-fetch="setWorkers"
auto-load auto-load
/> />
<VnFilterPanel <VnFilterPanel :data-key="props.dataKey" :search-button="true" @search="emit('search')">
:data-key="props.dataKey"
:search-button="true"
@search="emit('search')"
>
<template #tags="{ tag, formatFn }"> <template #tags="{ tag, formatFn }">
<div class="q-gutter-x-xs"> <div class="q-gutter-x-xs">
<strong>{{ t(`params.${tag.label}`) }}: </strong> <strong>{{ t(`params.${tag.label}`) }}: </strong>
@ -53,6 +49,7 @@ function setParkings(data) {
</div> </div>
</template> </template>
<template #body="{ params }"> <template #body="{ params }">
<QList dense>
<QItem class="q-my-sm"> <QItem class="q-my-sm">
<QItemSection v-if="!parkings"> <QItemSection v-if="!parkings">
<QSkeleton type="QInput" class="full-width" /> <QSkeleton type="QInput" class="full-width" />
@ -104,6 +101,7 @@ function setParkings(data) {
/> />
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>

View File

@ -74,7 +74,7 @@ function exprBuilder(param, value) {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="ShelvingList" data-key="ShelvingList"
url="Shelvings" url="Shelvings"
@ -129,3 +129,10 @@ function exprBuilder(param, value) {
</QPageSticky> </QPageSticky>
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>

View File

@ -47,7 +47,7 @@ const redirectToUpdateView = (addressData) => {
<template> <template>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="SupplierAddress" data-key="SupplierAddress"
:url="`Suppliers/${route.params.id}/addresses`" :url="`Suppliers/${route.params.id}/addresses`"
@ -88,3 +88,10 @@ const redirectToUpdateView = (addressData) => {
</QPageSticky> </QPageSticky>
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>

View File

@ -44,7 +44,7 @@ const viewSummary = (id) => {
</template> </template>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate data-key="SuppliersList" url="Suppliers/filter" auto-load> <VnPaginate data-key="SuppliersList" url="Suppliers/filter" auto-load>
<template #body="{ rows }"> <template #body="{ rows }">
<CardList <CardList
@ -95,6 +95,13 @@ const viewSummary = (id) => {
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>
<i18n> <i18n>
en: en:
Search suppliers: Search suppliers Search suppliers: Search suppliers

View File

@ -56,6 +56,7 @@ const warehouses = ref();
</div> </div>
</template> </template>
<template #body="{ params, searchFn }"> <template #body="{ params, searchFn }">
<QList dense class="q-gutter-y-sm q-mt-sm">
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput <VnInput
@ -74,7 +75,11 @@ const warehouses = ref();
</QItem> </QItem>
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInputDate v-model="params.from" :label="t('From')" is-outlined /> <VnInputDate
v-model="params.from"
:label="t('From')"
is-outlined
/>
</QItemSection> </QItemSection>
<QItemSection> <QItemSection>
<VnInputDate v-model="params.to" :label="t('To')" is-outlined /> <VnInputDate v-model="params.to" :label="t('To')" is-outlined />
@ -239,6 +244,7 @@ const warehouses = ref();
</QItemSection> </QItemSection>
</QItem> </QItem>
</QExpansionItem> </QExpansionItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>

View File

@ -74,7 +74,7 @@ function viewSummary(id) {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="TicketList" data-key="TicketList"
url="Tickets/filter" url="Tickets/filter"
@ -134,6 +134,13 @@ function viewSummary(id) {
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>
<i18n> <i18n>
es: es:
Search ticket: Buscar ticket Search ticket: Buscar ticket

View File

@ -66,6 +66,7 @@ const decrement = (paramsObj, key) => {
</div> </div>
</template> </template>
<template #body="{ params }"> <template #body="{ params }">
<QList dense class="list q-gutter-y-sm q-mt-sm">
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput label="id" v-model="params.id" is-outlined /> <VnInput label="id" v-model="params.id" is-outlined />
@ -204,11 +205,19 @@ const decrement = (paramsObj, key) => {
/> />
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>
<style scoped> <style scoped>
.list {
width: 256px;
}
.list * {
max-width: 100%;
}
.input-number >>> input[type='number'] { .input-number >>> input[type='number'] {
-moz-appearance: textfield; -moz-appearance: textfield;
} }

View File

@ -61,6 +61,7 @@ const decrement = (paramsObj, key) => {
</div> </div>
</template> </template>
<template #body="{ params }"> <template #body="{ params }">
<QList dense class="list q-gutter-y-sm q-mt-sm">
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput <VnInput
@ -257,11 +258,19 @@ const decrement = (paramsObj, key) => {
</QInput> </QInput>
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>
<style scoped> <style scoped>
.list {
width: 256px;
}
.list * {
max-width: 100%;
}
.input-number >>> input[type='number'] { .input-number >>> input[type='number'] {
-moz-appearance: textfield; -moz-appearance: textfield;
} }

View File

@ -56,7 +56,7 @@ onMounted(async () => {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="TravelList" data-key="TravelList"
url="Travels/filter" url="Travels/filter"
@ -132,6 +132,13 @@ onMounted(async () => {
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>
<i18n> <i18n>
en: en:
addEntry: Add entry addEntry: Add entry

View File

@ -42,7 +42,7 @@ async function remove(row) {
<template> <template>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="WagonTypeList" data-key="WagonTypeList"
url="/WagonTypes" url="/WagonTypes"
@ -80,3 +80,10 @@ async function remove(row) {
</QPageSticky> </QPageSticky>
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>

View File

@ -48,7 +48,7 @@ async function remove(row) {
<template> <template>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="WagonList" data-key="WagonList"
url="/Wagons" url="/Wagons"
@ -99,3 +99,10 @@ async function remove(row) {
</QPageSticky> </QPageSticky>
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>

View File

@ -27,6 +27,7 @@ const departments = ref();
</div> </div>
</template> </template>
<template #body="{ params, searchFn }"> <template #body="{ params, searchFn }">
<QList dense class="q-gutter-y-sm q-mt-sm">
<QItem> <QItem>
<QItemSection> <QItemSection>
<VnInput :label="t('FI')" v-model="params.fi" is-outlined <VnInput :label="t('FI')" v-model="params.fi" is-outlined
@ -93,6 +94,7 @@ const departments = ref();
/> />
</QItemSection> </QItemSection>
</QItem> </QItem>
</QList>
</template> </template>
</VnFilterPanel> </VnFilterPanel>
</template> </template>

View File

@ -64,7 +64,7 @@ const redirectToCreateView = () => {
</QScrollArea> </QScrollArea>
</QDrawer> </QDrawer>
<QPage class="column items-center q-pa-md"> <QPage class="column items-center q-pa-md">
<div class="vn-card-list"> <div class="card-list">
<VnPaginate <VnPaginate
data-key="WorkerList" data-key="WorkerList"
url="Workers/filter" url="Workers/filter"
@ -114,6 +114,13 @@ const redirectToCreateView = () => {
</QPage> </QPage>
</template> </template>
<style lang="scss" scoped>
.card-list {
width: 100%;
max-width: 60em;
}
</style>
<i18n> <i18n>
es: es:
Search worker: Buscar trabajador Search worker: Buscar trabajador