Merge branch 'master' into hotfix_remove_reserved
gitea/salix-front/pipeline/pr-master This commit is unstable
Details
gitea/salix-front/pipeline/pr-master This commit is unstable
Details
This commit is contained in:
commit
07f24cb9ae
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -980,6 +980,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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<script setup>
|
||||
import { ref, nextTick } from 'vue';
|
||||
import { ref, nextTick, onMounted } from 'vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import VnInputDate from 'src/components/common/VnInputDate.vue';
|
||||
import FetchData from 'components/FetchData.vue';
|
||||
|
@ -17,12 +18,12 @@ const maritalStatus = [
|
|||
{ code: 'M', name: t('Married') },
|
||||
{ code: 'S', name: t('Single') },
|
||||
];
|
||||
async function setAdvancedSummary(data) {
|
||||
const advanced = (await useAdvancedSummary('Workers', data.id)) ?? {};
|
||||
|
||||
onMounted(async () => {
|
||||
const advanced = await useAdvancedSummary('Workers', useRoute().params.id);
|
||||
Object.assign(form.value.formData, advanced);
|
||||
await nextTick();
|
||||
if (form.value) form.value.hasChanges = false;
|
||||
}
|
||||
nextTick(() => (form.value.hasChanges = false));
|
||||
});
|
||||
</script>
|
||||
<template>
|
||||
<FetchData
|
||||
|
@ -42,7 +43,6 @@ async function setAdvancedSummary(data) {
|
|||
:url-update="`Workers/${$route.params.id}`"
|
||||
auto-load
|
||||
model="Worker"
|
||||
@on-fetch="setAdvancedSummary"
|
||||
>
|
||||
<template #form="{ data }">
|
||||
<VnRow>
|
||||
|
|
|
@ -16,6 +16,7 @@ const $props = defineProps({
|
|||
v-if="$props.id"
|
||||
:id="$props.id"
|
||||
:summary="DepartmentSummary"
|
||||
data-key="DepartmentDescriptorProxy"
|
||||
/>
|
||||
</QPopupProxy>
|
||||
</template>
|
||||
|
|
|
@ -19,7 +19,7 @@ function notIsLocations(ifIsFalse, ifIsTrue) {
|
|||
<template>
|
||||
<VnCard
|
||||
data-key="Zone"
|
||||
:url="notIsLocations('Zones', undefined)"
|
||||
:url="notIsLocations(`Zones/${route.params.id}`, undefined)"
|
||||
:descriptor="ZoneDescriptor"
|
||||
:filter="filter"
|
||||
:filter-panel="notIsLocations(ZoneFilterPanel, undefined)"
|
||||
|
|
|
@ -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,
|
||||
],
|
||||
|
|
Loading…
Reference in New Issue