- risolto problema spazi vuoti in cima alla app

- risolto problema sulle card di telegram, immagini non alte uguali e non si vedono bene...
This commit is contained in:
Surya Paolo
2025-11-02 21:16:41 +01:00
parent d179581b23
commit 7e156ca820
79 changed files with 1437 additions and 3592997 deletions

View File

@@ -467,4 +467,7 @@ h1 {
.elemEdit:hover {
border: #11f609 solid 2px;
cursor: pointer;
}
.myElemBase{
margin-bottom: 16px;
}

View File

@@ -34,6 +34,7 @@ import { CMyVideoYoutube } from '@src/components/CMyVideoYoutube';
import { CStatMacro } from '@src/components/CStatMacro';
import { CSearchProduct } from '@src/components/CSearchProduct';
import { CPageViewStats } from '@src/components/CPageViewStats';
import { CCardCarouselComp } from 'app/src/components/CCardCarouselComp';
import { CQRCode } from '@src/components/CQRCode';
import { CAITools } from '@src/components/CAITools';
import { CCatalogo } from '@src/components/CCatalogo';
@@ -105,6 +106,7 @@ export default defineComponent({
CMainView,
CNotifAtTop,
CPresentazione,
CCardCarouselComp,
CMyActivities,
CMyProfileTutorial,
CSendRISTo,
@@ -196,6 +198,8 @@ export default defineComponent({
const tabcatalogo = ref('griglia');
const enablePwa = computed(() => globalStore.site.confpages?.enablePwa);
const social = ref(<ISocial>{});
const neworder = ref(<number | undefined>0);
@@ -244,7 +248,6 @@ export default defineComponent({
const speedSafe = computed(() => (myel.value as any).speed ?? 0);
const carouselRef = ref(<any>null);
const cardScroller = ref(<any>null);
const isAtStart = ref(true);
const isAtEnd = ref(false);
const activeIndex = ref(0);
@@ -399,16 +402,6 @@ export default defineComponent({
}
}
function scrollCards(delta: number) {
const scroller = cardScroller.value?.[0] || cardScroller.value;
if (scroller) {
scroller.scrollBy({
left: delta,
behavior: 'smooth',
});
}
}
const updateApp = async () => {
// Invia il messaggio al Service Worker per saltare l'attesa
const registration = await navigator.serviceWorker.getRegistration();
@@ -472,9 +465,8 @@ export default defineComponent({
speedSafe,
t,
cardGroupMaxWidth,
cardScroller,
scrollCards,
isNewVersionAvailable,
enablePwa,
};
},
});

View File

@@ -1,5 +1,6 @@
<template>
<div>
<!-- CMyElem -->
<div
v-if="myel"
:class="
@@ -40,139 +41,17 @@
</div>
</transition>
</div>
<div
v-if="myel.type === shared_consts.ELEMTYPE.CARD"
class="card-carousel-container"
>
<div
v-if="editOn"
class="elemEdit"
>
Card
</div>
<q-carousel
swipeable
animated
:autoplay="animarecard"
v-model="slide"
navigation
control-text-color="white"
ref="carousel"
transition-next="slide-left"
transition-prev="slide-right"
:height="myel.heightcarousel"
width="100%"
control-type="flat"
class="shadow-2 rounded-borders"
:style="`background-color: ${myel.color} !important`"
@mouseenter="animarecard = 0"
@mouseleave="animarecard = 1000"
>
<template v-slot:control>
<q-carousel-control
position="top-left"
:offset="[-10, -10]"
class="q-gutter-xs"
style="opacity: 0.7"
>
<q-btn
push
round
:color="$q.dark.isActive ? `black` : `white`"
:text-color="$q.dark.isActive ? `white` : `black`"
icon="keyboard_arrow_left"
@click="scrollCards(-300)"
></q-btn>
</q-carousel-control>
<q-carousel-control
position="top-right"
class="q-gutter-xs"
:offset="[-10, -10]"
style="opacity: 0.7"
>
<q-btn
push
round
:color="$q.dark.isActive ? `black` : `white`"
:text-color="$q.dark.isActive ? `white` : `black`"
icon="keyboard_arrow_right"
@click="scrollCards(300)"
></q-btn>
</q-carousel-control>
</template>
<!-- Iteriamo sui gruppi di card invece che sulle singole card -->
<q-carousel-slide
v-for="(group, groupIndex) in cardGroups"
:key="groupIndex"
:name="groupIndex"
>
<!-- Contenitore scrollabile orizzontalmente -->
<div
ref="cardScroller"
class="card-group-scrollable"
:style="{ 'max-height': myel.heightcarousel, 'max-width': ($q.screen.width - 45) + 'px' }"
>
<div class="row no-wrap items-center">
<template
v-for="(rec, cardIndex) in group"
:key="cardIndex"
>
<div
:class="cardColumnClass"
class="flex flex-center"
>
<q-card
:class="
`flex-card bordered ` +
myel.class3 +
(rec.link ? ' titolo_card' : '')
"
:style="`
${rec.style};
height: ${myel.heightimg || '300px'};
width: ${myel.widthimg || '300px'};
flex: 0 0 auto;
`"
@click="rec.link ? tools.openUrl(rec.link) : undefined"
>
<div
class="img-container"
:style="`height: ${parseInt(myel?.heightimg?.replace('px', '')) * 0.7}px; overflow: hidden;`"
>
<q-img
:class="tools.getClassAnim(myel.anim2) + ' ' + myel.class4"
:src="tools.getImgFileByElem(myel, rec, path)"
fit="contain"
/>
</div>
<q-card-section class="q-card-section-small">
<div
:class="rec.size"
:style="`color: ${rec.color}`"
>
{{ tools.getText(rec.alt) }}
</div>
<div
:class="`q-mt-xs q-mb-xs ` + tools.getClassAnim(myel.anim)"
v-html="rec.content"
></div>
<div
v-if="rec.description"
class="text-caption"
:style="`color: ${rec.colorsub}`"
>
{{ rec.description }}
</div>
</q-card-section>
</q-card>
</div>
</template>
</div>
</div>
</q-carousel-slide>
</q-carousel>
</div>
<CCardCarouselComp
v-else-if="myel.type === shared_consts.ELEMTYPE.CARD"
:myel="myel"
:edit-on="editOn"
:path="path"
:card-column-class="cardColumnClass()"
:card-width="myel.widthcard"
:card-height="myel.heightcarousel"
:card-img="myel.heightimg"
/>
<div v-if="myel.type === shared_consts.ELEMTYPE.MARGINI">
<div
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
@@ -182,7 +61,10 @@
&nbsp;
</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.TITLE">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.TITLE"
class="myElemBase"
>
<div>
<div
:class="
@@ -204,7 +86,10 @@
</div>
</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMGTITLE">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.IMGTITLE"
class="myElemBase"
>
<div>
<div
:class="
@@ -226,7 +111,10 @@
</div>
</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMGPOSTER">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.IMGPOSTER"
class="myElemBase"
>
<div
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
@click="clickOnElem"
@@ -248,7 +136,10 @@
</CImgPoster>
</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.HTML">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.HTML"
class="myElemBase"
>
<div>
<div
:class="
@@ -263,7 +154,10 @@
></div>
</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.QRCODE">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.QRCODE"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -277,7 +171,10 @@
:imglogo="tools.getImgFileByElem(myel, undefined, path)"
></CQRCode>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGE">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGE"
class="myElemBase"
>
<div class="text-center">
<div
:class="
@@ -300,7 +197,10 @@
</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGEUPLOAD">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGEUPLOAD"
class="myElemBase"
>
<div class="text-center">
<div
:class="
@@ -331,7 +231,10 @@
</div>
</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.VIDEO">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.VIDEO"
class="myElemBase"
>
<div
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
@click="clickOnElem"
@@ -344,7 +247,10 @@
</q-video>
</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.VIDEO_YOUTUBE">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.VIDEO_YOUTUBE"
class="myElemBase"
>
<CMyVideoYoutube
:url="myelem.container"
:title="myelem.container2 || ''"
@@ -364,7 +270,10 @@
:ccLoad="myelem.ccLoad ?? false"
/>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGE_GALLERY">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGE_GALLERY"
class="myElemBase"
>
<CMyImageGallery> </CMyImageGallery>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.HEADING">
@@ -396,9 +305,6 @@
Pagina: {{ myel.container }}
</div>
</div>
<!--
<CMyPageElem v-if="myel.container" title="" :mypath="myel.container"> </CMyPageElem>
-->
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PAGEINTRO">
<div
@@ -574,7 +480,10 @@
>
</CEventsCalendar>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.MAINVIEW">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.MAINVIEW"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -592,16 +501,10 @@
</div>
<CMyProfileTutorial />
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKAPPRUNNING">
<div
v-if="editOn"
class="elemEdit"
>
CheckAppRunning
</div>
<CCheckAppRunning />
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.REGISTRATION">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.REGISTRATION"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -638,7 +541,10 @@
</q-btn>
</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.DASHBOARD">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.DASHBOARD"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -647,7 +553,10 @@
</div>
<CDashboard></CDashboard>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.DASHGROUP">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.DASHGROUP"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -656,7 +565,10 @@
</div>
<CDashGroup></CDashGroup>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.MOVEMENTS">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.MOVEMENTS"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -665,7 +577,10 @@
</div>
<CMovements :showbuttolastmov="true"></CMovements>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CSENDRISTO">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.CSENDRISTO"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -674,7 +589,10 @@
</div>
<CSendRISTo></CSendRISTo>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.GRID_ORIZ">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.GRID_ORIZ"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -691,14 +609,20 @@
:prop_modif="myel.parambool4"
></CGridOriz>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.SEARCHPRODUCT">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.SEARCHPRODUCT"
class="myElemBase"
>
<CSearchProduct
v-model="myel.catalogo"
table="products"
>
</CSearchProduct>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGLIST">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGLIST"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -779,10 +703,16 @@
</q-tab-panel>
</q-tab-panels>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.STAT_PAGES">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.STAT_PAGES"
class="myElemBase"
>
<CPageViewStats></CPageViewStats>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.RACCOLTE_CATALOGHI">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.RACCOLTE_CATALOGHI"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -841,7 +771,10 @@
</q-tab-panel>
</q-tab-panels>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.STATUSREG">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.STATUSREG"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -850,7 +783,10 @@
</div>
<CStatusReg> </CStatusReg>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKIFISLOGGED">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKIFISLOGGED"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -859,7 +795,10 @@
</div>
<CCheckIfIsLogged :showalways="myel.container"></CCheckIfIsLogged>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.VISUVIDEOPROMOANDPDF">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.VISUVIDEOPROMOANDPDF"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -868,10 +807,16 @@
</div>
<CVisuVideoPromoAndPDF :showalways="myel.container"></CVisuVideoPromoAndPDF>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.INFO_VERSION">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.INFO_VERSION"
class="myElemBase"
>
<div>Versione: {{ tools.getvers() }}</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.BOTT_CONDIVIDI">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.BOTT_CONDIVIDI"
class="myElemBase"
>
<div class="row justify-evenly items-center q-pa-sm q-ma-sm">
<q-btn
icon="fas fa-share"
@@ -893,7 +838,10 @@
</q-btn>
</div>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.BOTT_CHAT_TERRITORIALE">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.BOTT_CHAT_TERRITORIALE"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -944,7 +892,10 @@
</div>
<CPresentazione></CPresentazione>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.MYACTIVITIES">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.MYACTIVITIES"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -953,7 +904,10 @@
</div>
<CMyActivities></CMyActivities>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.ECOMMERCE">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.ECOMMERCE"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -962,21 +916,30 @@
</div>
<CECommerce></CECommerce>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGO">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGO"
class="myElemBase"
>
<CCatalogo
v-model="myel.catalogo"
:idPage="idPage"
@updateCatalogo="updateCatalogoEmit(myel.catalogo)"
/>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.RACCOLTA">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.RACCOLTA"
class="myElemBase"
>
<CRaccolta
v-model="myel.catalogo"
:idPage="idPage"
@updateCatalogo="updateCatalogoEmit(myel.catalogo)"
/>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPA">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPA"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -987,7 +950,10 @@
></CMapMarker>-->
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPAUTENTI">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPAUTENTI"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -996,7 +962,10 @@
</div>
<CMapUsers></CMapUsers>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPAGETCOORDINATE">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPAGETCOORDINATE"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -1005,7 +974,10 @@
</div>
<CMapGetCoordinates></CMapGetCoordinates>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.EDITADDRESSBYCOORD">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.EDITADDRESSBYCOORD"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -1017,7 +989,10 @@
v-model:model-value="coordaddr"
></CMapEditAddressByCoord>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPACOMUNI">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPACOMUNI"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -1026,7 +1001,10 @@
</div>
<CMapComuni></CMapComuni>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.TOOLSAI">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.TOOLSAI"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -1035,7 +1013,10 @@
</div>
<CAITools></CAITools>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHATBOT">
<div
v-else-if="myel.type === shared_consts.ELEMTYPE.CHATBOT"
class="myElemBase"
>
<div
v-if="editOn"
class="elemEdit"
@@ -1044,6 +1025,15 @@
</div>
<ChatBot></ChatBot>
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKAPPRUNNING">
<div
v-if="editOn"
class="elemEdit"
>
CheckAppRunning
</div>
<CCheckAppRunning v-if="enablePwa" />
</div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.NOTIFATTOP">
<div
v-if="editOn"
@@ -1107,8 +1097,8 @@
</div>
<div v-else>
<span class="mybanner"
>* Aggiornamento APP in corso ... Se dopo 1 minuto non dovesse scomparire
questo messaggio, chiudere e riaprire la pagina.</span
>Aggiornamento APP in corso ... Se dopo 1 minuto non dovesse scomparire il
messaggio, chiudere e riaprire la pagina.</span
>
</div>
</q-banner>