Merge branch 'master' into Hotfix-ZoneEventSelect
gitea/salix-front/pipeline/pr-master This commit looks good Details

This commit is contained in:
Jon Elias 2024-12-30 13:05:27 +00:00
commit 7e15d3c7a4
8 changed files with 54 additions and 33 deletions

View File

@ -54,8 +54,8 @@ const $props = defineProps({
default: true, default: true,
}, },
bottom: { bottom: {
type: Object, type: Boolean,
default: null, default: false,
}, },
cardClass: { cardClass: {
type: String, type: String,
@ -575,29 +575,6 @@ function handleSelection({ evt, added, rows: selectedRows }, rows) {
/> />
</QTd> </QTd>
</template> </template>
<template #bottom v-if="bottom">
<slot name="bottom-table">
<QBtn
@click="
() =>
createAsDialog
? (showForm = !showForm)
: handleOnDataSaved(create)
"
class="cursor-pointer fill-icon"
color="primary"
icon="add_circle"
size="md"
round
flat
shortcut="+"
:disabled="!disabledAttr"
/>
<QTooltip>
{{ createForm.title }}
</QTooltip>
</slot>
</template>
<template #item="{ row, colsMap }"> <template #item="{ row, colsMap }">
<component <component
:is="$props.redirect ? 'router-link' : 'span'" :is="$props.redirect ? 'router-link' : 'span'"
@ -727,6 +704,27 @@ function handleSelection({ evt, added, rows: selectedRows }, rows) {
</QTr> </QTr>
</template> </template>
</QTable> </QTable>
<div class="full-width bottomButton" v-if="bottom">
<QBtn
@click="
() =>
createAsDialog
? (showForm = !showForm)
: handleOnDataSaved(create)
"
class="cursor-pointer fill-icon"
color="primary"
icon="add_circle"
size="md"
round
flat
shortcut="+"
:disabled="!disabledAttr"
/>
<QTooltip>
{{ createForm.title }}
</QTooltip>
</div>
</template> </template>
</CrudModel> </CrudModel>
<QPageSticky v-if="$props.create" :offset="[20, 20]" style="z-index: 2"> <QPageSticky v-if="$props.create" :offset="[20, 20]" style="z-index: 2">

View File

@ -63,6 +63,10 @@ const props = defineProps({
type: Function, type: Function,
default: undefined, default: undefined,
}, },
searchRemoveParams: {
type: Boolean,
default: true,
},
}); });
const searchText = ref(); const searchText = ref();
@ -101,12 +105,18 @@ async function search() {
const filter = { const filter = {
params: { params: {
...Object.fromEntries(staticParams),
search: searchText.value, search: searchText.value,
}, },
...{ filter: props.filter }, filter: props.filter,
}; };
if (!props.searchRemoveParams || !searchText.value) {
filter.params = {
...Object.fromEntries(staticParams),
search: searchText.value,
};
}
if (props.whereFilter) { if (props.whereFilter) {
filter.filter = { filter.filter = {
where: props.whereFilter(searchText.value), where: props.whereFilter(searchText.value),

View File

@ -149,7 +149,8 @@ select:-webkit-autofill {
.q-card, .q-card,
.q-table, .q-table,
.q-table__bottom, .q-table__bottom,
.q-drawer { .q-drawer,
.bottomButton {
background-color: var(--vn-section-color); background-color: var(--vn-section-color);
} }

View File

@ -107,7 +107,7 @@ const setParams = (params) => {
const getPreview = async () => { const getPreview = async () => {
const params = { const params = {
recipientId: entityId, recipientId: entityId.value,
}; };
const validationMessage = validateMessage(); const validationMessage = validateMessage();
if (validationMessage) return notify(t(validationMessage), 'negative'); if (validationMessage) return notify(t(validationMessage), 'negative');

View File

@ -1,7 +1,7 @@
<script setup> <script setup>
import { useStateStore } from 'stores/useStateStore'; import { useStateStore } from 'stores/useStateStore';
import { useRoute, useRouter } from 'vue-router'; import { useRoute, useRouter } from 'vue-router';
import { onMounted, onUnmounted, ref, computed, watch, provide, nextTick } from 'vue'; import { onMounted, onUnmounted, ref, computed, watch, provide } from 'vue';
import axios from 'axios'; import axios from 'axios';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import VnPaginate from 'src/components/ui/VnPaginate.vue'; import VnPaginate from 'src/components/ui/VnPaginate.vue';
@ -101,6 +101,7 @@ provide('onItemSaved', onItemSaved);
url="Orders/CatalogFilter" url="Orders/CatalogFilter"
:label="t('Search items')" :label="t('Search items')"
:info="t('You can search items by name or id')" :info="t('You can search items by name or id')"
:search-remove-params="false"
/> />
<QDrawer v-model="stateStore.rightDrawer" side="right" :width="256" show-if-above> <QDrawer v-model="stateStore.rightDrawer" side="right" :width="256" show-if-above>
<QScrollArea class="fit text-grey-8"> <QScrollArea class="fit text-grey-8">

View File

@ -54,6 +54,7 @@ const transfer = ref({
}); });
const tableRef = ref([]); const tableRef = ref([]);
const canProceed = ref(); const canProceed = ref();
const isLoading = ref(false);
watch( watch(
() => route.params.id, () => route.params.id,
@ -213,6 +214,9 @@ const updateQuantity = async ({ quantity, id }) => {
}; };
const addSale = async (sale) => { const addSale = async (sale) => {
if (isLoading.value) return;
isLoading.value = true;
const params = { const params = {
barcode: sale.itemFk, barcode: sale.itemFk,
quantity: sale.quantity, quantity: sale.quantity,
@ -233,7 +237,7 @@ const addSale = async (sale) => {
sale.item = newSale.item; sale.item = newSale.item;
notify('globals.dataSaved', 'positive'); notify('globals.dataSaved', 'positive');
window.location.reload(); arrayData.fetch({});
}; };
const updateConcept = async (sale) => { const updateConcept = async (sale) => {
@ -466,6 +470,7 @@ const addRow = (original = null) => {
}; };
const endNewRow = (row) => { const endNewRow = (row) => {
if (!row) return;
if (row.itemFk && row.quantity) { if (row.itemFk && row.quantity) {
row.isNew = false; row.isNew = false;
} }

View File

@ -381,7 +381,7 @@ const isUnsatisfied = async (reason) => {
const resendEmail = async () => { const resendEmail = async () => {
const params = { const params = {
recipient: worker.value?.user?.email, recipient: worker.value[0]?.user?.emailUser?.email,
week: selectedWeekNumber.value, week: selectedWeekNumber.value,
year: selectedDate.value.getFullYear(), year: selectedDate.value.getFullYear(),
workerId: Number(route.params.id), workerId: Number(route.params.id),

View File

@ -163,7 +163,13 @@ onUnmounted(() => {
<QBtn color="primary" icon="search" dense flat @click="reFetch()" /> <QBtn color="primary" icon="search" dense flat @click="reFetch()" />
</template> </template>
</VnInput> </VnInput>
<VnSearchbar v-if="!showSearchBar" :data-key="datakey" :url="url" :redirect="false" /> <VnSearchbar
v-if="!showSearchBar"
:data-key="datakey"
:url="url"
:redirect="false"
:search-remove-params="false"
/>
<QTree <QTree
ref="treeRef" ref="treeRef"
:nodes="nodes" :nodes="nodes"