Merge branch 'test' of https://gitea.verdnatura.es/verdnatura/salix-front into 8638-entryUpgradesForInvoiceInFixes
gitea/salix-front/pipeline/pr-dev There was a failure building this commit Details

This commit is contained in:
Pablo Natek 2025-03-21 13:22:13 +01:00
commit c9bd7d1a47
14 changed files with 39 additions and 6 deletions

View File

@ -1,5 +1,5 @@
<script setup>
import { ref, toRefs, computed, watch, onMounted, useAttrs } from 'vue';
import { ref, toRefs, computed, watch, onMounted, useAttrs, nextTick } from 'vue';
import { useI18n } from 'vue-i18n';
import { useArrayData } from 'src/composables/useArrayData';
import { useRequired } from 'src/composables/useRequired';
@ -247,6 +247,7 @@ async function fetchFilter(val) {
}
async function filterHandler(val, update) {
if (isLoading.value) return update();
if (!val && lastVal.value === val) {
lastVal.value = val;
return update();
@ -294,6 +295,7 @@ async function onScroll({ to, direction, from, index }) {
await arrayData.loadMore();
setOptions(arrayData.store.data);
vnSelectRef.value.scrollTo(lastIndex);
await nextTick();
isLoading.value = false;
}
}

View File

@ -38,6 +38,10 @@ const $props = defineProps({
type: String,
default: 'md-width',
},
toModule: {
type: String,
default: null,
},
});
const state = useState();
@ -129,6 +133,9 @@ const emit = defineEmits(['onFetch']);
const iconModule = computed(() => {
moduleName.value = getName();
if ($props.toModule) {
return router.getRoutes().find((r) => r.name === $props.toModule.name).meta.icon;
}
if (isSameModuleName) {
return router.options.routes[1].children.find((r) => r.name === moduleName.value)
?.meta?.icon;
@ -139,9 +146,10 @@ const iconModule = computed(() => {
const toModule = computed(() => {
moduleName.value = getName();
if ($props.toModule) return $props.toModule;
if (isSameModuleName) {
return router.options.routes[1].children.find((r) => r.name === moduleName.value)
?.children[0]?.redirect;
?.redirect;
} else {
return route.matched[1].path.split('/').length > 2
? route.matched[1].redirect

View File

@ -893,6 +893,8 @@ components:
VnLv:
copyText: '{copyValue} has been copied to the clipboard'
iban_tooltip: 'IBAN: ES21 1234 5678 90 0123456789'
VnNotes:
clientWithoutPhone: 'The following clients do not have a phone number and the message will not be sent to them: {clientWithoutPhone}'
weekdays:
sun: Sunday
mon: Monday

View File

@ -977,6 +977,8 @@ components:
VnLv:
copyText: '{copyValue} se ha copiado al portapepeles'
iban_tooltip: 'IBAN: ES21 1234 5678 90 0123456789'
VnNotes:
clientWithoutPhone: 'Estos clientes no tienen asociado número de télefono y el sms no les será enviado: {clientWithoutPhone}'
weekdays:
sun: Domingo
mon: Lunes

View File

@ -53,6 +53,7 @@ const removeAlias = () => {
:url="`MailAliases/${entityId}`"
data-key="Alias"
title="alias"
:to-module="{ name: 'AccountAlias' }"
>
<template #menu>
<QItem v-ripple clickable @click="removeAlias()">

View File

@ -37,6 +37,7 @@ const removeRole = async () => {
:filter="{ where: { id: entityId } }"
data-key="Role"
:summary="$props.summary"
:to-module="{ name: 'AccountRoles' }"
>
<template #menu>
<QItem v-ripple clickable @click="removeRole()">

View File

@ -30,6 +30,7 @@ const entityId = computed(() => {
:filter="filter"
title="code"
data-key="ItemType"
:to-module="{ name: 'ItemTypeList' }"
>
<template #body="{ entity }">
<VnLv :label="$t('itemType.shared.code')" :value="entity.code" />

View File

@ -26,6 +26,7 @@ const card = computed(() => store.data);
:url="`Agencies/${entityId}`"
:title="card?.name"
:subtitle="props.id"
:to-module="{ name: 'RouteAgency' }"
>
<template #body="{ entity: agency }">
<VnLv :label="t('globals.name')" :value="agency.name" />

View File

@ -35,6 +35,7 @@ const entityId = computed(() => {
:filter="filter"
data-key="Roadmap"
:summary="summary"
:to-module="{ name: 'RouteRoadmap' }"
>
<template #body="{ entity }">
<VnLv :label="t('Roadmap')" :value="entity?.name" />

View File

@ -199,12 +199,22 @@ const confirmRemove = (ticket) => {
const openSmsDialog = async () => {
const clientsId = [];
const clientsPhone = [];
const clientWithoutPhone = [];
for (let ticket of selectedRows.value) {
clientsId.push(ticket?.clientFk);
const { data: client } = await axios.get(`Clients/${ticket?.clientFk}`);
if (!client.phone) {
clientWithoutPhone.push(ticket?.clientFk);
continue;
}
clientsPhone.push(client.phone);
}
if (clientWithoutPhone.length) {
quasar.notify({
type: 'warning',
message: t('components.VnNotes.clientWithoutPhone', { clientWithoutPhone }),
});
}
quasar.dialog({
component: SendSmsDialog,

View File

@ -24,6 +24,7 @@ const entityId = computed(() => props.id || route.params.id);
:url="`Vehicles/${entityId}`"
data-key="Vehicle"
title="numberPlate"
:to-module="{ name: 'RouteVehicle' }"
>
<template #menu="{ entity }">
<QItem

View File

@ -21,7 +21,7 @@ const entityId = computed(() => props.id || route.params.id);
:url="`Parkings/${entityId}`"
title="code"
:filter="filter"
:to-module="{ name: 'ParkingList' }"
:to-module="{ name: 'ParkingMain' }"
>
<template #body="{ entity }">
<VnLv :label="$t('globals.code')" :value="entity.code" />

View File

@ -16,6 +16,7 @@ const $props = defineProps({
v-if="$props.id"
:id="$props.id"
:summary="DepartmentSummary"
data-key="DepartmentDescriptorProxy"
/>
</QPopupProxy>
</template>

View File

@ -271,12 +271,14 @@ export default {
path: 'department',
name: 'Department',
redirect: { name: 'WorkerDepartment' },
component: () => import('src/pages/Worker/WorkerDepartment.vue'),
meta: { title: 'department', icon: 'vn:greuge' },
children: [
{
component: () =>
import('src/pages/Worker/WorkerDepartment.vue'),
meta: { title: 'department', icon: 'vn:greuge' },
name: 'WorkerDepartment',
path: 'list',
meta: { title: 'department', icon: 'vn:greuge' },
},
departmentCard,
],