corretto altre cose (workbox mancante)

This commit is contained in:
Surya Paolo
2025-05-15 21:41:25 +02:00
parent 685bc34bd0
commit daeb865e93
8 changed files with 141 additions and 410500 deletions

View File

@@ -107,6 +107,8 @@ export default defineComponent({
const allColumns = ref([]);
const isVisibleEditBtn = ref(false)
// Colonne della tabella
const allColumns_Raccolta = ref([
{ name: 'pos', label: 'Ind', field: 'pos', align: 'left', style: 'width: 50px', notsortable: true },
@@ -208,8 +210,10 @@ export default defineComponent({
if (props.table === 'products') {
allColumns.value = allColumns_Catalog.value;
isVisibleEditBtn.value = true
} else if (props.table === 'catalogs') {
allColumns.value = allColumns_Raccolta.value;
isVisibleEditBtn.value = false
}
optionscatalogo.value = {
@@ -783,6 +787,10 @@ export default defineComponent({
return image;
}
function isProduct() {
return props.table === 'products'
}
onMounted(mounted);
return {
@@ -825,6 +833,8 @@ export default defineComponent({
exportToCSV,
isSortable,
getImageByElement,
isVisibleEditBtn,
isProduct,
};
},
});

View File

@@ -116,8 +116,9 @@
: element.productInfo?.image_link
"
style="width: 50px; height: 50px"
class="rounded-borders cursor-pointer"
@click="showProduct(element)"
class="rounded-borders"
:style="isProduct() ? 'cursor: pointer' : ''"
@click="isProduct() ? showProduct(element) : null"
/>
</td>
@@ -138,12 +139,16 @@
>
<q-list>
<q-item
v-if="isVisibleEditBtn"
clickable
v-close-popup
@click="modifyProduct(element)"
>
<q-item-section>
<q-item-label>Modifica</q-item-label>
<q-item-label>
<q-icon name="edit" size="20px" class="q-mr-xs" />
Modifica
</q-item-label>
</q-item-section>
</q-item>
<q-item
@@ -152,7 +157,10 @@
@click="removeProduct(element)"
>
<q-item-section>
<q-item-label>Elimina</q-item-label>
<q-item-label>
<q-icon name="delete" size="20px" class="q-mr-xs" />
Elimina
</q-item-label>
</q-item-section>
</q-item>
</q-list>

View File

@@ -152,7 +152,10 @@ export default defineComponent({
} else if (props.table === 'catalogs') {
if (id) {
myproduct.value = await catalogStore.getCatalogById(id);
myproduct.value = catalogStore.getCatalogById(id);
if (!myproduct.value) {
await catalogStore.fetchCatalogById(id)
}
} else {
myproduct.value = null;
}

View File

@@ -26,25 +26,28 @@ export const useCatalogStore = defineStore('CatalogStore', {
}),
getters: {
getCatalogById: (state) => async (id: string) => {
// carica in memoria il catalogo singolo
// se non lo trovo, allora lo carica dal server
let cat = state.catalogs.find((cat: ICatalog) => cat._id === id);
if ((cat && !cat.prodotti_caricati_inmem) || !cat) {
// Lo carica dal server
cat = await this.loadCatalogById(id);
}
return cat;
getCatalogById: (state) => (id: string) => {
return state.catalogs.find((cat: ICatalog) => cat._id === id) || null;
},
},
actions: {
async fetchCatalogById(id: string) {
// Controlla se è già in memoria
let cat = this.getCatalogById(id);
if (!cat || !cat.prodotti_caricati_inmem) {
// Carica dal server
const ris = await this.loadCatalogById(id);
if (ris) {
// Aggiorna lo store con i dati ricevuti
this.updateDataCatalog(ris);
cat = this.getCatalogById(id);
}
}
return cat;
},
async loadCatalogById(id: string) {
const userStore = useUserStore();
const globalStore = useGlobalStore();
let ris = null;
@@ -54,15 +57,12 @@ export const useCatalogStore = defineStore('CatalogStore', {
console.log('catalogs', res.data.catalog);
if (res.data.catalog) {
// console.log('RISULTANTE CATEGORIES DAL SERVER = ', res.data.categories)
this.updateDataCatalog(res);
return res.data.product;
} else {
return null;
}
return null;
})
.catch((error) => {
console.log('error loadCatalogById', error);
userStore.setErrorCatch(error);
return new Types.AxiosError(serv_constants.RIS_CODE_ERR, null, toolsext.ERR_GENERICO, error);
});

View File

@@ -1376,7 +1376,7 @@ export default defineComponent({
if (getCatalogoByMyPage.value) {
tabcatalogo.value = tools.getCookie('TAB_CAT', 'lista');
} else {
tabcatalogo.value = 'lista';
tabcatalogo.value = 'visu'
}
optrigenera.value.visibilitaDisp = tools.getCookie(
@@ -1394,11 +1394,13 @@ export default defineComponent({
);
loadpage.value = false;
if (showListaFiltrata.value) {
if (showListaFiltrata.value || !getCatalogoByMyPage.value) {
// Carica tutti i prodotti
await productStore.loadProducts(true);
} else {
getCatalogoByMyPage.value.lista_prodotti = await catalogStore.loadProductsOnlyByIdPageCatalog(props.idPage);
if (getCatalogoByMyPage.value && props.idPage) {
getCatalogoByMyPage.value.lista_prodotti = await catalogStore.loadProductsOnlyByIdPageCatalog(props.idPage);
}
}
mycolumns.value = fieldsTable.getArrColsByTable('products');

View File

@@ -273,7 +273,7 @@
>
</q-tab>
<q-tab
v-if="showListaFiltrata"
v-if="showListaFiltrata && false"
name="autori"
icon="fas fa-user"
label="Autori"
@@ -301,7 +301,7 @@
</q-tabs>
<CTitleBanner
v-show="tabcatalogo === 'visu'"
v-show="tabcatalogo === 'visu' && !tools.isUtente()"
class="q-pa-xs"
title="Genera PDF"
bgcolor="bg-blue"
@@ -340,95 +340,97 @@
:color="optcatalogo.indebug ? `positive` : 'primary'"
></q-btn>
</div>
<div
v-if="getCatalogoByMyPage.pdf_generato"
class="bg-green-1 q-ma-sm q-pa-sm"
>
<div class="bg-blue-1 text-red text-bold text-h6 q-ma-sm q-pa-sm">
<strong>PDF generati Temporanei</strong>
</div>
<q-table
:rows="pdfRows"
:columns="pdfColumns"
flat
bordered
dense
row-key="name"
<div v-if="getCatalogoByMyPage">
<div
v-if="getCatalogoByMyPage.pdf_generato"
class="bg-green-1 q-ma-sm q-pa-sm"
>
<template v-slot:body-cell-pdf="props">
<q-td :props="props">
<a
v-if="props.row.pdf"
:href="tools.getHost() + props.row.pdf"
target="_blank"
class="text-bold"
>
{{ tools.getHost() + props.row.pdf }}
</a>
<span v-else>-</span>
</q-td>
</template>
<template v-slot:body-cell-data="props">
<q-td :props="props">
{{ tools.getstrDateTime(props.row.data) }}
</q-td>
</template>
<template v-slot:body-cell-azioni="props">
<q-td :props="props">
<q-btn
v-if="props.row.showButton"
rounded
color="positive"
size="md"
:label="props.row.buttonLabel"
@click="props.row.action"
/>
</q-td>
</template>
</q-table>
<div class="bg-red-1 q-pa-md q-mt-md">
<div class="bg-blue-1 text-green text-bold text-h6 q-ma-sm q-pa-sm">
<strong>PDF Pubblicati OnLine</strong>
<div class="bg-blue-1 text-red text-bold text-h6 q-ma-sm q-pa-sm">
<strong>PDF generati Temporanei</strong>
</div>
<table class="q-table q-table--flat q-table--dense q-ma-none q-pa-none">
<tbody>
<tr>
<td><strong>PDF OnLine:</strong></td>
<td>
<a
v-if="getCatalogoByMyPage.pdf_online"
:href="tools.getHost() + getCatalogoByMyPage.pdf_online"
target="_blank"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_online }}
</a>
<span v-else>-</span>
</td>
<td>{{ tools.getstrDateTime(getCatalogoByMyPage.data_online) }}</td>
</tr>
<tr>
<td><strong>PDF OnLine Stampa:</strong></td>
<td>
<a
v-if="getCatalogoByMyPage.pdf_online_stampa"
:href="tools.getHost() + getCatalogoByMyPage.pdf_online_stampa"
target="_blank"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_online_stampa }}
</a>
<span v-else>-</span>
</td>
<td>{{ tools.getstrDateTime(getCatalogoByMyPage.data_online_stampa) }}</td>
</tr>
</tbody>
</table>
<q-table
:rows="pdfRows"
:columns="pdfColumns"
flat
bordered
dense
row-key="name"
>
<template v-slot:body-cell-pdf="props">
<q-td :props="props">
<a
v-if="props.row.pdf"
:href="tools.getHost() + props.row.pdf"
target="_blank"
class="text-bold"
>
{{ tools.getHost() + props.row.pdf }}
</a>
<span v-else>-</span>
</q-td>
</template>
<template v-slot:body-cell-data="props">
<q-td :props="props">
{{ tools.getstrDateTime(props.row.data) }}
</q-td>
</template>
<template v-slot:body-cell-azioni="props">
<q-td :props="props">
<q-btn
v-if="props.row.showButton"
rounded
color="positive"
size="md"
:label="props.row.buttonLabel"
@click="props.row.action"
/>
</q-td>
</template>
</q-table>
<div class="bg-red-1 q-pa-md q-mt-md">
<div class="bg-blue-1 text-green text-bold text-h6 q-ma-sm q-pa-sm">
<strong>PDF Pubblicati OnLine</strong>
</div>
<table class="q-table q-table--flat q-table--dense q-ma-none q-pa-none">
<tbody>
<tr>
<td><strong>PDF OnLine:</strong></td>
<td>
<a
v-if="getCatalogoByMyPage.pdf_online"
:href="tools.getHost() + getCatalogoByMyPage.pdf_online"
target="_blank"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_online }}
</a>
<span v-else>-</span>
</td>
<td>{{ tools.getstrDateTime(getCatalogoByMyPage.data_online) }}</td>
</tr>
<tr>
<td><strong>PDF OnLine Stampa:</strong></td>
<td>
<a
v-if="getCatalogoByMyPage.pdf_online_stampa"
:href="tools.getHost() + getCatalogoByMyPage.pdf_online_stampa"
target="_blank"
class="text-bold"
>
{{ tools.getHost() + getCatalogoByMyPage.pdf_online_stampa }}
</a>
<span v-else>-</span>
</td>
<td>{{ tools.getstrDateTime(getCatalogoByMyPage.data_online_stampa) }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>