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

This commit is contained in:
Carlos Satorres 2025-03-03 07:19:26 +00:00
commit afda990fd2
4 changed files with 41 additions and 18 deletions

View File

@ -325,7 +325,7 @@ const sumRisk = ({ clientRisks }) => {
</QCard> </QCard>
<QCard class="vn-max"> <QCard class="vn-max">
<VnTitle :text="t('Latest tickets')" /> <VnTitle :text="t('Latest tickets')" />
<CustomerSummaryTable /> <CustomerSummaryTable :id="entityId" />
</QCard> </QCard>
</template> </template>
</CardSummary> </CardSummary>

View File

@ -20,7 +20,12 @@ const { t } = useI18n();
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const { viewSummary } = useSummaryDialog(); const { viewSummary } = useSummaryDialog();
const $props = defineProps({
id: {
type: Number,
default: null,
},
});
const filter = { const filter = {
include: [ include: [
{ {
@ -43,7 +48,7 @@ const filter = {
}, },
}, },
], ],
where: { clientFk: route.params.id }, where: { clientFk: $props.id ?? route.params.id },
order: ['shipped DESC', 'id'], order: ['shipped DESC', 'id'],
limit: 30, limit: 30,
}; };

View File

@ -10,6 +10,7 @@ import OrderCatalogFilter from 'src/pages/Order/Card/OrderCatalogFilter.vue';
import VnSearchbar from 'src/components/ui/VnSearchbar.vue'; import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
import { useArrayData } from 'src/composables/useArrayData'; import { useArrayData } from 'src/composables/useArrayData';
import RightMenu from 'src/components/common/RightMenu.vue'; import RightMenu from 'src/components/common/RightMenu.vue';
import { onUnmounted } from 'vue';
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
@ -23,16 +24,40 @@ const catalogParams = {
const arrayData = useArrayData(dataKey, { const arrayData = useArrayData(dataKey, {
url: 'Orders/CatalogFilter', url: 'Orders/CatalogFilter',
userParams: catalogParams, userParams: catalogParams,
exprBuilder,
searchUrl: 'table',
}); });
const store = arrayData.store; const store = arrayData.store;
const tags = ref([]); const tags = ref([]);
const itemRefs = ref({}); const itemRefs = ref({});
onMounted(() => { onMounted(async () => {
stateStore.rightDrawer = true; stateStore.rightDrawer = true;
checkOrderConfirmation(); checkOrderConfirmation();
if (
arrayData.store.userParams &&
Object.keys(arrayData.store.userParams).some((key) => !key.startsWith('order'))
) {
await arrayData.fetch({});
}
}); });
onUnmounted(() => {
arrayData.destroy();
});
function exprBuilder(param, value) {
switch (param) {
case 'categoryFk':
case 'typeFk':
return { [param]: value };
case 'search':
if (/^\d+$/.test(value)) return { 'i.id': value };
else return { 'i.name': { like: `%${value}%` } };
}
}
async function checkOrderConfirmation() { async function checkOrderConfirmation() {
const response = await axios.get(`Orders/${route.params.id}`); const response = await axios.get(`Orders/${route.params.id}`);
if (response.data.isConfirmed === 1) { if (response.data.isConfirmed === 1) {
@ -96,6 +121,7 @@ watch(
:tag-value="tagValue" :tag-value="tagValue"
:tags="tags" :tags="tags"
:initial-catalog-params="catalogParams" :initial-catalog-params="catalogParams"
:arrayData
/> />
</template> </template>
</RightMenu> </RightMenu>

View File

@ -24,6 +24,10 @@ const props = defineProps({
type: Array, type: Array,
required: true, required: true,
}, },
arrayData: {
type: Object,
required: true,
},
}); });
const { t } = useI18n(); const { t } = useI18n();
@ -74,17 +78,6 @@ const loadTypes = async (id) => {
typeList.value = data; typeList.value = data;
}; };
function exprBuilder(param, value) {
switch (param) {
case 'categoryFk':
case 'typeFk':
return { [param]: value };
case 'search':
if (/^\d+$/.test(value)) return { 'i.id': value };
else return { 'i.name': { like: `%${value}%` } };
}
}
const applyTags = (tagInfo, params, search) => { const applyTags = (tagInfo, params, search) => {
if (!tagInfo || !tagInfo.values.length) { if (!tagInfo || !tagInfo.values.length) {
params.tagGroups = null; params.tagGroups = null;
@ -152,9 +145,8 @@ function addOrder(value, field, params) {
:data-key="props.dataKey" :data-key="props.dataKey"
:hidden-tags="['filter', 'orderFk', 'orderBy']" :hidden-tags="['filter', 'orderFk', 'orderBy']"
:unremovable-params="['orderFk', 'orderBy']" :unremovable-params="['orderFk', 'orderBy']"
:expr-builder="exprBuilder"
:custom-tags="['tagGroups', 'categoryFk']" :custom-tags="['tagGroups', 'categoryFk']"
:redirect="false" :arrayData
> >
<template #tags="{ tag, formatFn }"> <template #tags="{ tag, formatFn }">
<strong v-if="tag.label === 'typeFk' && typeList"> <strong v-if="tag.label === 'typeFk' && typeList">
@ -184,7 +176,7 @@ function addOrder(value, field, params) {
{{ {{
t( t(
categoryList.find((c) => c.id == customTag.value)?.name || categoryList.find((c) => c.id == customTag.value)?.name ||
'' '',
) )
}} }}
</strong> </strong>