corretto bug GruppoMacro la lista veniva salvata ma anche aggiornata in memoria con solo gli ID... in questo caso TABLES_NON_AGGIORNARE_IN_MEMORIA_PERCHE_DIVERSA_STRUTTURA gli dice che alcune tabelle non devono essere aggiornate in memoria.
This commit is contained in:
@@ -65,39 +65,40 @@
|
||||
|
||||
<!-- Contenuto pagina -->
|
||||
<div
|
||||
:class="[{ 'q-ma-xs': !hideHeader, 'q-mx-auto': !hideHeader }]"
|
||||
:class="[{ 'q-mx-auto': !hideHeader }]"
|
||||
:style="hideHeader ? [{ 'margin-left': 0, 'margin-right': 0 }] : containerStyle"
|
||||
>
|
||||
<div v-if="globalStore.showHeader">
|
||||
<div v-if="globalStore.showHeader && mediaBlocks.length > 0">
|
||||
<!-- Media/Content blocks (1..3) -->
|
||||
<section
|
||||
<template
|
||||
v-for="(blk, i) in mediaBlocks"
|
||||
:key="`mblk-${i}`"
|
||||
class="q-mb-md"
|
||||
>
|
||||
<div
|
||||
<section
|
||||
v-if="blk.img"
|
||||
class="text-center q-mb-sm"
|
||||
>
|
||||
<q-img
|
||||
:src="blk.img"
|
||||
class="page-img"
|
||||
:ratio="16 / 9"
|
||||
loading="lazy"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="blk.html"
|
||||
v-html="blk.html"
|
||||
class="q-mb-sm content-html"
|
||||
></div>
|
||||
<q-video
|
||||
v-if="blk.video"
|
||||
:src="blk.video"
|
||||
:ratio="blk.ratio || 16 / 9"
|
||||
class="q-mb-md"
|
||||
/>
|
||||
</section>
|
||||
>
|
||||
<div class="text-center q-mb-sm">
|
||||
<q-img
|
||||
:src="blk.img"
|
||||
class="page-img"
|
||||
:ratio="16 / 9"
|
||||
loading="lazy"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="blk.html"
|
||||
v-html="blk.html"
|
||||
class="q-mb-sm content-html"
|
||||
></div>
|
||||
<q-video
|
||||
v-if="blk.video"
|
||||
:src="blk.video"
|
||||
:ratio="blk.ratio || 16 / 9"
|
||||
class="q-mb-md"
|
||||
/>
|
||||
</section>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<!-- Contenuti extra HTML -->
|
||||
|
||||
@@ -140,7 +140,7 @@ export default defineComponent({
|
||||
|
||||
const optionscatalogo = ref(<any>{ maxlength: 0 });
|
||||
|
||||
function handleUpdate(newList) {
|
||||
function handleUpdate(newList: any) {
|
||||
internalProducts.value = newList;
|
||||
riaggiornaListaProdAlGenitore();
|
||||
}
|
||||
@@ -164,8 +164,10 @@ export default defineComponent({
|
||||
() => props.lista_prodotti,
|
||||
(newVal) => {
|
||||
internalProducts.value = [...newVal];
|
||||
internalProducts.value.forEach((p: IProduct) => {
|
||||
p.myorder = ProductStore.createMyOrder();
|
||||
internalProducts.value.forEach((p: any) => {
|
||||
if (typeof p === 'object' && p !== null) {
|
||||
p.myorder = ProductStore.createMyOrder();
|
||||
}
|
||||
});
|
||||
}
|
||||
),
|
||||
|
||||
@@ -86,6 +86,11 @@ export default defineComponent({
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
token: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
setup(props, { emit }) {
|
||||
const $q = useQuasar()
|
||||
@@ -407,6 +412,13 @@ export default defineComponent({
|
||||
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
const token = props.token
|
||||
|
||||
// carica
|
||||
})
|
||||
|
||||
|
||||
created()
|
||||
|
||||
return {
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<CCardStat :mytext="$t('stat.accepted')" :myval="datastat.num_part_accepted"></CCardStat>
|
||||
</div>
|
||||
|
||||
<q-list bordered>
|
||||
<q-list bordered v-if="tools.isLogged()">
|
||||
<q-expansion-item group="somegroup" icon="fas fa-user-plus" :label="$t('statusreg.newreg')" default-opened
|
||||
header-class="text-primary">
|
||||
<q-card>
|
||||
|
||||
884
src/components/HomeRiso/HomeRiso copy.vue
Normal file
884
src/components/HomeRiso/HomeRiso copy.vue
Normal file
@@ -0,0 +1,884 @@
|
||||
<template>
|
||||
<q-page class="riso-homepage">
|
||||
<!-- Hero Section -->
|
||||
<!-- Hero Section con Slideshow -->
|
||||
<section class="hero-section">
|
||||
<!-- Background Slideshow -->
|
||||
<div class="hero-slideshow">
|
||||
<div
|
||||
v-for="(image, index) in heroImages"
|
||||
:key="index"
|
||||
class="hero-slide"
|
||||
:class="{ active: currentSlide === index }"
|
||||
:style="{ backgroundImage: `url(${image.src})` }"
|
||||
>
|
||||
<div class="hero-overlay"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Slideshow Indicators -->
|
||||
<div class="slideshow-indicators">
|
||||
<button
|
||||
v-for="(image, index) in heroImages"
|
||||
:key="index"
|
||||
class="indicator-dot"
|
||||
:class="{ active: currentSlide === index }"
|
||||
@click="goToSlide(index)"
|
||||
:aria-label="`Vai alla slide ${index + 1}`"
|
||||
></button>
|
||||
</div>
|
||||
|
||||
<!-- Hero Content -->
|
||||
<div class="hero-content">
|
||||
<q-img
|
||||
src="/images/logo.png"
|
||||
alt="RISO Logo"
|
||||
class="hero-logo"
|
||||
:ratio="1"
|
||||
/>
|
||||
|
||||
<h1 class="hero-title animate-fade-in">
|
||||
<span class="riso-text">RISO</span>
|
||||
</h1>
|
||||
|
||||
<h2 class="hero-subtitle animate-fade-in-delay">
|
||||
Rete Italiana di Scambio Orizzontale
|
||||
</h2>
|
||||
|
||||
<p class="hero-description animate-fade-in-delay-2">
|
||||
Una rete di comunità consapevoli, basata sul sostegno reciproco,<br />
|
||||
la fiducia, la condivisione e l'ascolto.
|
||||
</p>
|
||||
|
||||
<div class="hero-actions animate-fade-in-delay-3">
|
||||
<q-btn
|
||||
v-if="!tools.isLogged()"
|
||||
label="Unisciti a RISO"
|
||||
:size="$q.platform.is.mobile ? 'lg' : 'xl'"
|
||||
color="primary"
|
||||
rounded
|
||||
unelevated
|
||||
class="cta-button"
|
||||
@click="scrollToRegistrazione"
|
||||
/>
|
||||
<q-btn
|
||||
v-else
|
||||
label="ACCEDI"
|
||||
:size="$q.platform.is.mobile ? 'lg' : 'xl'"
|
||||
color="primary"
|
||||
rounded
|
||||
unelevated
|
||||
class="cta-button"
|
||||
@click="goToHome"
|
||||
/>
|
||||
|
||||
<q-btn
|
||||
label="Scopri di più"
|
||||
size="md"
|
||||
outline
|
||||
rounded
|
||||
class="secondary-button"
|
||||
@click="scrollToAbout"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Cos'è RISO Section -->
|
||||
<section
|
||||
id="about"
|
||||
class="about-section"
|
||||
>
|
||||
<div class="contain_riso">
|
||||
<h2 class="section-title">
|
||||
<q-icon
|
||||
name="eco"
|
||||
size="md"
|
||||
class="title-icon"
|
||||
/>
|
||||
Cos'è RISO?
|
||||
</h2>
|
||||
|
||||
<div class="content-cards">
|
||||
<q-card
|
||||
class="info-card"
|
||||
flat
|
||||
bordered
|
||||
>
|
||||
<q-card-section class="card-icon-section">
|
||||
<div class="icon-circle">🫂</div>
|
||||
</q-card-section>
|
||||
<q-card-section>
|
||||
<div class="card-title">Una Rete di Comunità</div>
|
||||
<p class="card-text">
|
||||
RISO è una rete di comunità che vuole creare un nuovo mondo, attraverso
|
||||
l'incontro e la condivisione, con il sor<strong>RISO</strong> sulle
|
||||
labbra.
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
||||
<q-card
|
||||
class="info-card"
|
||||
flat
|
||||
bordered
|
||||
>
|
||||
<q-card-section class="card-icon-section">
|
||||
<div class="icon-circle">🌾</div>
|
||||
</q-card-section>
|
||||
<q-card-section>
|
||||
<div class="card-title">Simbolo di Vita</div>
|
||||
<p class="card-text">
|
||||
Il RISO è fonte di vita, simbolo del ciclo della vita e del valore della
|
||||
terra. Una delle prime forme di scambio, una moneta basata su uno dei beni
|
||||
più preziosi.
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
||||
<q-card
|
||||
class="info-card"
|
||||
flat
|
||||
bordered
|
||||
>
|
||||
<q-card-section class="card-icon-section">
|
||||
<div class="icon-circle">🤝</div>
|
||||
</q-card-section>
|
||||
<q-card-section>
|
||||
<div class="card-title">Decisioni Orizzontali</div>
|
||||
<p class="card-text">
|
||||
Il progetto è orizzontale: ogni decisione viene presa nei territori
|
||||
attraverso la condivisione e la partecipazione.
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Il Sogno Section -->
|
||||
<section class="dream-section">
|
||||
<div class="contain_riso">
|
||||
<div class="dream-content">
|
||||
<div class="dream-text">
|
||||
<h2 class="section-title light">
|
||||
<q-icon
|
||||
name="auto_awesome"
|
||||
size="md"
|
||||
class="title-icon"
|
||||
/>
|
||||
Il Sogno di RISO
|
||||
</h2>
|
||||
<p class="dream-description">
|
||||
Siamo una rete di comunità consapevoli, basata sul sostegno reciproco, la
|
||||
fiducia, la condivisione e l'ascolto. Coltiviamo terreno fertile per creare,
|
||||
in armonia con la natura, un mondo di collettività
|
||||
<strong>libere e autosufficienti</strong>, attraverso un circuito di scambio
|
||||
di esperienze umane, beni e servizi.
|
||||
</p>
|
||||
<div class="dream-highlight">
|
||||
<q-icon
|
||||
name="campaign"
|
||||
size="lg"
|
||||
/>
|
||||
<div>
|
||||
<strong>Partecipa al cambiamento.</strong><br />
|
||||
RISO sei anche tu!
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dream-image">
|
||||
<q-img
|
||||
src="/images/cerchio_riso.jpg"
|
||||
alt="Comunità RISO"
|
||||
class="rounded-image"
|
||||
ratio="1"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Valori Section -->
|
||||
<section class="values-section">
|
||||
<div class="contain_riso">
|
||||
<h2 class="section-title">
|
||||
<q-icon
|
||||
name="favorite"
|
||||
size="md"
|
||||
class="title-icon"
|
||||
/>
|
||||
I Nostri Valori
|
||||
</h2>
|
||||
|
||||
<div class="values-grid">
|
||||
<div
|
||||
v-for="(value, index) in values"
|
||||
:key="index"
|
||||
class="value-item"
|
||||
>
|
||||
<div class="value-icon">{{ value.icon }}</div>
|
||||
<h3 class="value-title">{{ value.title }}</h3>
|
||||
<p class="value-text">{{ value.text }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Come Funziona Section -->
|
||||
<section class="how-it-works-section">
|
||||
<div class="contain_riso">
|
||||
<h2 class="section-title">
|
||||
<q-icon
|
||||
name="settings"
|
||||
size="md"
|
||||
class="title-icon"
|
||||
/>
|
||||
Come Funziona
|
||||
</h2>
|
||||
|
||||
<div class="steps-timeline">
|
||||
<div
|
||||
v-for="(step, index) in steps"
|
||||
:key="index"
|
||||
class="step-item"
|
||||
>
|
||||
<div class="step-number">{{ index + 1 }}</div>
|
||||
<div class="step-content">
|
||||
<h3 class="step-title">{{ step.title }}</h3>
|
||||
<p class="step-text">{{ step.text }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Video Section - Aggiungi dopo la sezione "How it works" -->
|
||||
<section class="video-section">
|
||||
<div class="container">
|
||||
<h2 class="section-title">
|
||||
<q-icon
|
||||
name="play_circle"
|
||||
size="md"
|
||||
class="title-icon"
|
||||
/>
|
||||
Guarda il Video di Presentazione
|
||||
</h2>
|
||||
|
||||
<div class="video-container">
|
||||
<iframe
|
||||
width="100%"
|
||||
height="100%"
|
||||
src="https://rumble.com/embed/v5opfsn/?pub=46vc7z"
|
||||
title="Video presentazione Progetto RISO"
|
||||
frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
</div>
|
||||
|
||||
<p class="video-description">
|
||||
Scopri come funziona il Progetto RISO e come puoi contribuire a creare
|
||||
un'economia più sostenibile e solidale nella tua comunità.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Comunità Territoriali Section -->
|
||||
<section class="communities-section">
|
||||
<div class="contain_riso">
|
||||
<h2 class="section-title">
|
||||
<q-icon
|
||||
name="groups"
|
||||
size="md"
|
||||
class="title-icon"
|
||||
/>
|
||||
Comunità Territoriali
|
||||
</h2>
|
||||
|
||||
<div class="communities-content">
|
||||
<p class="section-intro">
|
||||
Le colonne portanti di RISO sono le <strong>Comunità Territoriali</strong>.
|
||||
Ogni comunità ha pieno potere decisionale al suo interno, nel rispetto dei
|
||||
principi e delle finalità di RISO.
|
||||
</p>
|
||||
|
||||
<div class="features-grid">
|
||||
<q-card
|
||||
class="feature-card"
|
||||
flat
|
||||
>
|
||||
<q-card-section>
|
||||
<div class="feature-icon">🏘️</div>
|
||||
<div class="feature-title">Autonomia Locale</div>
|
||||
<p class="feature-text">
|
||||
Ogni comunità decide autonomamente, tessendo relazioni con i gruppi del
|
||||
territorio.
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
||||
<q-card
|
||||
class="feature-card"
|
||||
flat
|
||||
>
|
||||
<q-card-section>
|
||||
<div class="feature-icon">👥</div>
|
||||
<div class="feature-title">Facilitatori</div>
|
||||
<p class="feature-text">
|
||||
Idealmente servirebbero almeno 3 facilitatori per comunità, scelti dai
|
||||
membri per aiutare nella comunicazione e nel coordinamento.
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
||||
<q-card
|
||||
class="feature-card"
|
||||
flat
|
||||
>
|
||||
<q-card-section>
|
||||
<div class="feature-icon">🔗</div>
|
||||
<div class="feature-title">Nodi Regionali</div>
|
||||
<p class="feature-text">
|
||||
I facilitatori regionali supportano le comunità territoriali e
|
||||
condividono iniziative.
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- RIS e Scambi Section -->
|
||||
<section class="ris-section">
|
||||
<div class="contain_riso">
|
||||
<h2 class="section-title">
|
||||
<q-icon
|
||||
name="currency_exchange"
|
||||
size="md"
|
||||
class="title-icon"
|
||||
/>
|
||||
I Circuiti di Scambio e il RIS
|
||||
</h2>
|
||||
|
||||
<div class="ris-content">
|
||||
<!-- Card principale cos'è il RIS -->
|
||||
<div class="ris-card-main">
|
||||
<q-card
|
||||
class="ris-info-card"
|
||||
flat
|
||||
bordered
|
||||
>
|
||||
<q-card-section class="ris-header">
|
||||
<div class="ris-icon">💰</div>
|
||||
<h3>Cos'è il RIS?</h3>
|
||||
</q-card-section>
|
||||
<q-card-section>
|
||||
<p class="ris-description">
|
||||
Il <strong>RIS</strong> è l'unità di misura del valore dei beni e
|
||||
servizi per lo scambio tra i membri di una comunità territoriale. È una
|
||||
moneta complementare basata sulla <strong>fiducia reciproca</strong>
|
||||
tra i membri della comunità.
|
||||
</p>
|
||||
<q-separator class="q-my-md" />
|
||||
<div class="ris-features">
|
||||
<div class="ris-feature-item">
|
||||
<q-icon
|
||||
name="check_circle"
|
||||
color="positive"
|
||||
/>
|
||||
<span
|
||||
>Parti da 0 RIS: ricevere = credito (+), offrire = debito (-)</span
|
||||
>
|
||||
</div>
|
||||
<div class="ris-feature-item">
|
||||
<q-icon
|
||||
name="check_circle"
|
||||
color="positive"
|
||||
/>
|
||||
<span>Non si accumula: serve per far circolare beni e servizi</span>
|
||||
</div>
|
||||
<div class="ris-feature-item">
|
||||
<q-icon
|
||||
name="check_circle"
|
||||
color="positive"
|
||||
/>
|
||||
<span>Il bilancio totale della comunità è sempre zero</span>
|
||||
</div>
|
||||
<div class="ris-feature-item">
|
||||
<q-icon
|
||||
name="check_circle"
|
||||
color="positive"
|
||||
/>
|
||||
<span>Puoi combinarlo con Euro, baratto o dono</span>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
|
||||
<!-- Limiti RIS -->
|
||||
<div class="ris-limits-section">
|
||||
<h3 class="subsection-title">📊 Limiti di Utilizzo</h3>
|
||||
<p class="limits-intro">
|
||||
Per garantire la circolazione equilibrata, esistono dei limiti al saldo RIS
|
||||
che ogni membro può avere:
|
||||
</p>
|
||||
|
||||
<div class="limits-grid">
|
||||
<q-card
|
||||
class="limit-card"
|
||||
flat
|
||||
bordered
|
||||
>
|
||||
<q-card-section>
|
||||
<div class="limit-icon">🏘️</div>
|
||||
<h4 class="limit-title">Circuito Territoriale</h4>
|
||||
<p class="limit-subtitle">(Provincia)</p>
|
||||
<div class="limit-values">
|
||||
<div class="limit-value negative">
|
||||
<div class="limit-label">
|
||||
Fiducia Concessa<br />(Limite negativo)
|
||||
</div>
|
||||
<div class="limit-number">-100 RIS</div>
|
||||
</div>
|
||||
<div class="limit-separator">↔️</div>
|
||||
<div class="limit-value positive">
|
||||
<div class="limit-label">
|
||||
Massimo Accumulo<br />(Limite positivo)
|
||||
</div>
|
||||
<div class="limit-number">+200 RIS</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
||||
<q-card
|
||||
class="limit-card"
|
||||
flat
|
||||
bordered
|
||||
>
|
||||
<q-card-section>
|
||||
<div class="limit-icon">🇮🇹</div>
|
||||
<h4 class="limit-title">Circuito Nazionale</h4>
|
||||
<p class="limit-subtitle">(Tutta Italia)</p>
|
||||
<div class="limit-values">
|
||||
<div class="limit-value negative">
|
||||
<div class="limit-label">
|
||||
Fiducia Concessa<br />(Limite negativo)
|
||||
</div>
|
||||
<div class="limit-number">-200 RIS</div>
|
||||
</div>
|
||||
<div class="limit-separator">↔️</div>
|
||||
<div class="limit-value positive">
|
||||
<div class="limit-label">
|
||||
Massimo Accumulo<br />(Limite positivo)
|
||||
</div>
|
||||
<div class="limit-number">+400 RIS</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
|
||||
<q-banner
|
||||
class="limits-note"
|
||||
rounded
|
||||
>
|
||||
<template v-slot:avatar>
|
||||
<q-icon
|
||||
name="info"
|
||||
color="primary"
|
||||
/>
|
||||
</template>
|
||||
I limiti servono a evitare accumulo eccessivo e garantire che i RIS
|
||||
circolino continuamente nella comunità, mantenendo il bilancio totale a
|
||||
zero. Ogni comunita territoriale provinciale può decidere
|
||||
<strong>autonomamente di modificare</strong> i limiti all'occorrenza.
|
||||
</q-banner>
|
||||
</div>
|
||||
|
||||
<!-- Esempio 1: Scambio circolare -->
|
||||
<div class="example-section">
|
||||
<h3 class="subsection-title">🔄 Esempio 1: Scambio Circolare</h3>
|
||||
<p class="example-intro">
|
||||
Vediamo come funzionano gli scambi in RIS con 3 persone che offrono e
|
||||
ricevono servizi dello stesso valore (10 RIS):
|
||||
</p>
|
||||
|
||||
<q-card
|
||||
class="example-card"
|
||||
flat
|
||||
bordered
|
||||
>
|
||||
<q-card-section>
|
||||
<div class="example-steps">
|
||||
<!-- Step 1 -->
|
||||
<div class="example-step">
|
||||
<div class="step-header">
|
||||
<div class="step-badge">1</div>
|
||||
<div class="step-title">
|
||||
Mario riceve verdure da Laura e le invia 10 RIS (va a -10)
|
||||
</div>
|
||||
</div>
|
||||
<div class="step-content">
|
||||
<div class="transaction">
|
||||
<div class="person">
|
||||
<div class="person-name">👨 Mario</div>
|
||||
<div class="balance negative">-10 RIS</div>
|
||||
<div class="balance-detail">(0 -10) = -10</div>
|
||||
</div>
|
||||
<div class="arrow">→</div>
|
||||
<div class="person">
|
||||
<div class="person-name">👩 Laura</div>
|
||||
<div class="balance positive">+10 RIS</div>
|
||||
<div class="balance-detail">(0 +10) = +10</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-separator class="q-my-md" />
|
||||
|
||||
<!-- Step 2 -->
|
||||
<div class="example-step">
|
||||
<div class="step-header">
|
||||
<div class="step-badge">2</div>
|
||||
<div class="step-title">
|
||||
Laura si fa riparare la bici da Paolo e gli invia 10 RIS, Laura
|
||||
torna così a zero.
|
||||
</div>
|
||||
</div>
|
||||
<div class="step-content">
|
||||
<div class="transaction">
|
||||
<div class="person">
|
||||
<div class="person-name">👩 Laura</div>
|
||||
<div class="balance neutral">0 RIS</div>
|
||||
<div class="balance-detail">(+10 -10) = 0</div>
|
||||
</div>
|
||||
<div class="arrow">→</div>
|
||||
<div class="person">
|
||||
<div class="person-name">👨 Paolo</div>
|
||||
<div class="balance positive">+10 RIS</div>
|
||||
<div class="balance-detail">(+10 -10) = 0</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-separator class="q-my-md" />
|
||||
|
||||
<!-- Step 3 -->
|
||||
<div class="example-step">
|
||||
<div class="step-header">
|
||||
<div class="step-badge">3</div>
|
||||
<div class="step-title">
|
||||
Paolo riceve del miele da Mario e gli invia 10 RIS.
|
||||
</div>
|
||||
</div>
|
||||
<div class="step-content">
|
||||
<div class="transaction">
|
||||
<div class="person">
|
||||
<div class="person-name">👨 Paolo</div>
|
||||
<div class="balance neutral">0 RIS</div>
|
||||
<div class="balance-detail">(+10 -10) = 0</div>
|
||||
</div>
|
||||
<div class="arrow">→</div>
|
||||
<div class="person">
|
||||
<div class="person-name">👨 Mario</div>
|
||||
<div class="balance neutral">0 RIS</div>
|
||||
<div class="balance-detail">(-10 +10) = 0</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Risultato finale -->
|
||||
<q-banner
|
||||
class="example-result"
|
||||
rounded
|
||||
>
|
||||
<template v-slot:avatar>
|
||||
<q-icon
|
||||
name="check_circle"
|
||||
color="positive"
|
||||
size="lg"
|
||||
/>
|
||||
</template>
|
||||
<div class="result-content">
|
||||
<strong>Risultato finale:</strong> Tutti e tre tornano a
|
||||
<strong>0 RIS</strong>, ma ciascuno ha ricevuto e offerto qualcosa
|
||||
di valore! Il bilancio totale della comunità rimane sempre zero.
|
||||
</div>
|
||||
</q-banner>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
|
||||
<!-- Esempio 2: Scambio misto -->
|
||||
<div class="example-section">
|
||||
<h3 class="subsection-title">💶 Esempio 2: Scambio Misto (RIS + Euro)</h3>
|
||||
<p class="example-intro">
|
||||
Puoi combinare RIS con Euro nella stessa transazione per ridurre
|
||||
gradualmente la dipendenza dalla moneta tradizionale:
|
||||
</p>
|
||||
|
||||
<q-card
|
||||
class="example-card mixed"
|
||||
flat
|
||||
bordered
|
||||
>
|
||||
<q-card-section>
|
||||
<div class="mixed-example">
|
||||
<div class="scenario">
|
||||
<div class="scenario-title">
|
||||
🥬 Scenario: Cassetta di verdure settimanale
|
||||
</div>
|
||||
<div class="scenario-desc">Valore totale: <strong>20€</strong></div>
|
||||
</div>
|
||||
|
||||
<div class="mixed-options">
|
||||
<!-- Opzione 1: Solo Euro -->
|
||||
<div class="option">
|
||||
<div class="option-label">❌ Economia tradizionale</div>
|
||||
<div class="option-detail">
|
||||
<div class="payment-item">100% Euro = <strong>20€</strong></div>
|
||||
<div class="payment-item ris">
|
||||
0% RIS = <strong>0 RIS</strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="option-divider">VS</div>
|
||||
|
||||
<!-- Opzione 2: Misto -->
|
||||
<div class="option highlighted">
|
||||
<div class="option-label">✅ Scambio RISO</div>
|
||||
<div class="option-detail">
|
||||
<div class="payment-item">80% Euro = <strong>16€</strong></div>
|
||||
<div class="payment-item ris">
|
||||
20% RIS = <strong>4 RIS</strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-banner
|
||||
class="mixed-benefit"
|
||||
rounded
|
||||
>
|
||||
<template v-slot:avatar>
|
||||
<q-icon
|
||||
name="trending_down"
|
||||
color="positive"
|
||||
size="lg"
|
||||
/>
|
||||
</template>
|
||||
<div class="benefit-content">
|
||||
<strong>Beneficio:</strong> Hai ridotto del 20% l'uso degli Euro,
|
||||
sostenendo il produttore locale e rafforzando la comunità! Puoi
|
||||
iniziare con percentuali basse (5-10%) e aumentare gradualmente man
|
||||
mano che la fiducia nella comunità cresce.
|
||||
</div>
|
||||
</q-banner>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- CTA Section -->
|
||||
<section
|
||||
id="registrazione"
|
||||
class="cta-section"
|
||||
>
|
||||
<div class="contain_riso">
|
||||
<div class="cta-content">
|
||||
<h2 class="cta-title">Pronto a Fare Parte del Cambiamento?</h2>
|
||||
<p class="cta-subtitle">
|
||||
Unisciti alla comunità RISO e inizia a scambiare in modo sostenibile e
|
||||
solidale
|
||||
</p>
|
||||
|
||||
<div class="cta-buttons">
|
||||
<q-btn
|
||||
label="Registrati a RISO"
|
||||
:size="$q.platform.is.mobile ? 'lg' : 'xl'"
|
||||
color="primary"
|
||||
rounded
|
||||
unelevated
|
||||
icon="person_add"
|
||||
class="cta-main-button"
|
||||
@click="goToApp"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Info App -->
|
||||
<div class="app-features">
|
||||
<div class="feature-badge">
|
||||
<q-icon
|
||||
name="devices"
|
||||
size="md"
|
||||
/>
|
||||
<div class="cta-feature-text">
|
||||
<strong>Multi-piattaforma</strong>
|
||||
<span>Chrome, Firefox, Safari, Android, iPhone, PC</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="feature-badge">
|
||||
<q-icon
|
||||
name="download"
|
||||
size="md"
|
||||
/>
|
||||
<div class="cta-feature-text">
|
||||
<strong>Installazione facile</strong>
|
||||
<span>Senza passare dallo store, direttamente da riso.app</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="feature-badge">
|
||||
<q-icon
|
||||
name="volunteer_activism"
|
||||
size="md"
|
||||
/>
|
||||
<div class="cta-feature-text">
|
||||
<strong>100% Gratuita</strong>
|
||||
<span>Open Source, nessuna pubblicità</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="riso-footer">
|
||||
<div class="contain_riso">
|
||||
<div class="footer-content">
|
||||
<div class="footer-section">
|
||||
<h4>Link Utili</h4>
|
||||
<ul class="footer-links">
|
||||
<li><a @click="scrollToAbout">Cos'è RISO</a></li>
|
||||
<li>
|
||||
<a
|
||||
href="https://t.me/+pZ40VpmL1NhkZjE0"
|
||||
target="_blank"
|
||||
>
|
||||
🟢 Canale pubblico - PROGETTO RISO
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://t.me/c/1565097581/3"
|
||||
target="_blank"
|
||||
>
|
||||
🔵 Gruppi territoriali - ELENCO
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://riso.app/riso_gruppo"
|
||||
target="_blank"
|
||||
>
|
||||
🟠 Gruppo nazionale - RISO Italia
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://sicrenacc.info/"
|
||||
target="_blank"
|
||||
>
|
||||
Si.cre.na.C.C - Sistema di Credito Naturale
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
<h4>Menu</h4>
|
||||
<ul>
|
||||
<template
|
||||
v-for="(myitemmenu, ind) in static_data.routes"
|
||||
:key="ind"
|
||||
>
|
||||
<li v-if="myitemmenu.infooter && tools.visumenu(myitemmenu) && !myitemmenu.solotitle">
|
||||
<router-link
|
||||
:to="myitemmenu.path"
|
||||
custom
|
||||
v-slot="{ navigate }"
|
||||
>
|
||||
<span
|
||||
class="footer_link"
|
||||
@click="navigate"
|
||||
@keypress.enter="navigate"
|
||||
role="link"
|
||||
>
|
||||
<span v-if="myitemmenu.level_child > 0"> </span>
|
||||
{{ tools.getLabelByItem(myitemmenu) }}
|
||||
</span>
|
||||
</router-link>
|
||||
</li>
|
||||
</template>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
<h4>Contatti</h4>
|
||||
<ul class="footer-links">
|
||||
<li>
|
||||
👴
|
||||
<q-icon
|
||||
name="telegram"
|
||||
color="light-blue-7"
|
||||
size="18px"
|
||||
style="vertical-align: middle; margin-right: 4px"
|
||||
/>
|
||||
<a href="https://t.me/surya1977">Surya</a>
|
||||
</li>
|
||||
<li>
|
||||
👩
|
||||
<q-icon
|
||||
name="telegram"
|
||||
color="light-blue-7"
|
||||
size="18px"
|
||||
style="vertical-align: middle; margin-right: 4px"
|
||||
/>
|
||||
<a href="https://t.me/ElenaEspx">Elena</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-separator class="footer-separator" />
|
||||
|
||||
<div class="footer-bottom">
|
||||
<p>{{ currentYear }} RISO - Rete Italiana di Scambio Orizzontale</p>
|
||||
<p class="footer-values">
|
||||
Comunità · Fiducia · Scambi Solidali · Sostenibilità
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Floating Action Button per tornare su -->
|
||||
<q-page-sticky
|
||||
position="bottom-right"
|
||||
:offset="[18, 18]"
|
||||
>
|
||||
<q-btn
|
||||
v-show="showScrollTop"
|
||||
fab
|
||||
icon="keyboard_arrow_up"
|
||||
color="primary"
|
||||
@click="scrollToTop"
|
||||
/>
|
||||
</q-page-sticky>
|
||||
</q-page>
|
||||
</template>
|
||||
<script lang="ts" src="./HomeRiso.ts"></script>
|
||||
<style lang="scss" scoped>
|
||||
@import './HomeRiso.scss';
|
||||
</style>
|
||||
@@ -14,7 +14,7 @@ $text-light: #666; // Grigio medio
|
||||
// ==========================================
|
||||
.riso-homepage {
|
||||
min-height: 100vh;
|
||||
background: white;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.contain_riso {
|
||||
@@ -57,7 +57,7 @@ $text-light: #666; // Grigio medio
|
||||
// HERO SECTION CON SLIDESHOW
|
||||
// ==========================================
|
||||
.hero-section {
|
||||
min-height: 90vh;
|
||||
min-height: 85vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
@@ -114,12 +114,16 @@ $text-light: #666; // Grigio medio
|
||||
// Indicatori slideshow
|
||||
.slideshow-indicators {
|
||||
position: absolute;
|
||||
bottom: 80px;
|
||||
bottom: 70px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
z-index: 3;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
bottom: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.indicator-dot {
|
||||
@@ -215,7 +219,7 @@ $text-light: #666; // Grigio medio
|
||||
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
|
||||
|
||||
@media (max-width: 768px) {
|
||||
margin-bottom: 3rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -340,7 +344,7 @@ $text-light: #666; // Grigio medio
|
||||
}
|
||||
|
||||
.slideshow-indicators {
|
||||
bottom: 10px;
|
||||
|
||||
}
|
||||
|
||||
.indicator-dot {
|
||||
@@ -365,7 +369,7 @@ $text-light: #666; // Grigio medio
|
||||
// ABOUT SECTION
|
||||
// ==========================================
|
||||
.about-section {
|
||||
padding: 100px 20px;
|
||||
padding: 50px 20px;
|
||||
background: white;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@@ -428,7 +432,7 @@ $text-light: #666; // Grigio medio
|
||||
// DREAM SECTION
|
||||
// ==========================================
|
||||
.dream-section {
|
||||
padding: 100px 20px;
|
||||
padding: 50px 20px;
|
||||
background: linear-gradient(135deg, $primary-color 0%, $primary-dark 100%);
|
||||
color: white;
|
||||
|
||||
@@ -477,7 +481,7 @@ $text-light: #666; // Grigio medio
|
||||
// VALUES SECTION
|
||||
// ==========================================
|
||||
.values-section {
|
||||
padding: 100px 20px;
|
||||
padding: 50px 20px;
|
||||
background: $bg-light;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@@ -526,7 +530,7 @@ $text-light: #666; // Grigio medio
|
||||
// HOW IT WORKS SECTION
|
||||
// ==========================================
|
||||
.how-it-works-section {
|
||||
padding: 100px 20px;
|
||||
padding: 50px 20px;
|
||||
background: white;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@@ -581,7 +585,7 @@ $text-light: #666; // Grigio medio
|
||||
// COMMUNITIES SECTION
|
||||
// ==========================================
|
||||
.communities-section {
|
||||
padding: 100px 20px;
|
||||
padding: 50px 20px;
|
||||
background: $bg-light;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@@ -647,7 +651,7 @@ $text-light: #666; // Grigio medio
|
||||
// RIS SECTION
|
||||
// ==========================================
|
||||
.ris-section {
|
||||
padding: 100px 20px;
|
||||
padding: 50px 20px;
|
||||
background: white;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@@ -751,7 +755,7 @@ $text-light: #666; // Grigio medio
|
||||
// PARTICIPATION SECTION
|
||||
// ==========================================
|
||||
.participation-section {
|
||||
padding: 100px 20px;
|
||||
padding: 50px 20px;
|
||||
background: $bg-light;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@@ -998,10 +1002,29 @@ $text-light: #666; // Grigio medio
|
||||
|
||||
&:hover {
|
||||
color: $primary-color !important;
|
||||
transform: translateX(4px);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// FOOTER LINKS
|
||||
// ==========================================
|
||||
.footer_link {
|
||||
font-size: 1rem;
|
||||
color: $primary-color;
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: $primary-color;
|
||||
transform: translateX(4px);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.footer-separator {
|
||||
background: rgba(255, 255, 255, 0.2) !important;
|
||||
margin: 2rem 0;
|
||||
@@ -1518,8 +1541,11 @@ $text-light: #666; // Grigio medio
|
||||
// VIDEO SECTION
|
||||
// ==========================================
|
||||
.video-section {
|
||||
padding: 100px 20px;
|
||||
padding: 50px 20px;
|
||||
background: white;
|
||||
@media (max-width: 768px) {
|
||||
padding: 10px 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.video-container {
|
||||
@@ -1549,4 +1575,31 @@ $text-light: #666; // Grigio medio
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// LINK UTILI SECTION
|
||||
// ==========================================
|
||||
.footer-links-section {
|
||||
.footer-links {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
margin-bottom: 0.8rem;
|
||||
|
||||
a {
|
||||
color: rgba(255, 255, 255, 0.85) !important;
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
|
||||
&:hover {
|
||||
color: var(--q-primary) !important;
|
||||
transform: translateX(4px);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,8 @@ import { useRouter } from 'vue-router';
|
||||
import { tools } from '@tools';
|
||||
import { useGlobalStore } from 'app/src/store';
|
||||
|
||||
import { static_data } from '@src/db/static_data'
|
||||
|
||||
// ==========================================
|
||||
// TYPES
|
||||
// ==========================================
|
||||
@@ -208,6 +210,7 @@ export default defineComponent({
|
||||
tools,
|
||||
globalStore,
|
||||
goToHome,
|
||||
static_data,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -82,7 +82,6 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<!-- Cos'è RISO Section -->
|
||||
@@ -112,82 +111,14 @@
|
||||
<q-card-section>
|
||||
<div class="card-title">Una Rete di Comunità</div>
|
||||
<p class="card-text">
|
||||
RISO è una rete di comunità che vuole creare un nuovo mondo, attraverso
|
||||
l'incontro e la condivisione, con il sor<strong>RISO</strong> sulle
|
||||
labbra.
|
||||
Siamo una rete di comunità consapevoli, basata sul sostegno reciproco, la
|
||||
fiducia, la condivisione e l'ascolto. Coltiviamo terreno fertile per
|
||||
creare, in armonia con la natura, un mondo di collettività
|
||||
<strong>libere e autosufficienti</strong>, attraverso un circuito di
|
||||
scambio di esperienze umane, beni, servizi, ospitalità.
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
||||
<q-card
|
||||
class="info-card"
|
||||
flat
|
||||
bordered
|
||||
>
|
||||
<q-card-section class="card-icon-section">
|
||||
<div class="icon-circle">🌾</div>
|
||||
</q-card-section>
|
||||
<q-card-section>
|
||||
<div class="card-title">Simbolo di Vita</div>
|
||||
<p class="card-text">
|
||||
Il RISO è fonte di vita, simbolo del ciclo della vita e del valore della
|
||||
terra. Una delle prime forme di scambio, una moneta basata su uno dei beni
|
||||
più preziosi.
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
||||
<q-card
|
||||
class="info-card"
|
||||
flat
|
||||
bordered
|
||||
>
|
||||
<q-card-section class="card-icon-section">
|
||||
<div class="icon-circle">🤝</div>
|
||||
</q-card-section>
|
||||
<q-card-section>
|
||||
<div class="card-title">Decisioni Orizzontali</div>
|
||||
<p class="card-text">
|
||||
Il progetto è orizzontale: ogni decisione viene presa nei territori
|
||||
attraverso la condivisione e la partecipazione.
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Il Sogno Section -->
|
||||
<section class="dream-section">
|
||||
<div class="contain_riso">
|
||||
<div class="dream-content">
|
||||
<div class="dream-text">
|
||||
<h2 class="section-title light">
|
||||
<q-icon
|
||||
name="auto_awesome"
|
||||
size="md"
|
||||
class="title-icon"
|
||||
/>
|
||||
Il Sogno di RISO
|
||||
</h2>
|
||||
<p class="dream-description">
|
||||
Siamo una rete di comunità consapevoli, basata sul sostegno reciproco, la
|
||||
fiducia, la condivisione e l'ascolto. Coltiviamo terreno fertile per creare,
|
||||
in armonia con la natura, un mondo di collettività
|
||||
<strong>libere e autosufficienti</strong>, attraverso un circuito di scambio
|
||||
di esperienze umane, beni e servizi.
|
||||
</p>
|
||||
<div class="dream-highlight">
|
||||
<q-icon
|
||||
name="campaign"
|
||||
size="lg"
|
||||
/>
|
||||
<div>
|
||||
<strong>Partecipa al cambiamento.</strong><br />
|
||||
RISO sei anche tu!
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dream-image">
|
||||
<q-img
|
||||
src="/images/cerchio_riso.jpg"
|
||||
@@ -439,12 +370,16 @@
|
||||
<p class="limit-subtitle">(Provincia)</p>
|
||||
<div class="limit-values">
|
||||
<div class="limit-value negative">
|
||||
<div class="limit-label">Fiducia Concessa<br>(Limite negativo)</div>
|
||||
<div class="limit-label">
|
||||
Fiducia Concessa<br />(Limite negativo)
|
||||
</div>
|
||||
<div class="limit-number">-100 RIS</div>
|
||||
</div>
|
||||
<div class="limit-separator">↔️</div>
|
||||
<div class="limit-value positive">
|
||||
<div class="limit-label">Massimo Accumulo<br>(Limite positivo)</div>
|
||||
<div class="limit-label">
|
||||
Massimo Accumulo<br />(Limite positivo)
|
||||
</div>
|
||||
<div class="limit-number">+200 RIS</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -462,12 +397,16 @@
|
||||
<p class="limit-subtitle">(Tutta Italia)</p>
|
||||
<div class="limit-values">
|
||||
<div class="limit-value negative">
|
||||
<div class="limit-label">Fiducia Concessa<br>(Limite negativo)</div>
|
||||
<div class="limit-label">
|
||||
Fiducia Concessa<br />(Limite negativo)
|
||||
</div>
|
||||
<div class="limit-number">-200 RIS</div>
|
||||
</div>
|
||||
<div class="limit-separator">↔️</div>
|
||||
<div class="limit-value positive">
|
||||
<div class="limit-label">Massimo Accumulo<br>(Limite positivo)</div>
|
||||
<div class="limit-label">
|
||||
Massimo Accumulo<br />(Limite positivo)
|
||||
</div>
|
||||
<div class="limit-number">+400 RIS</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -511,7 +450,9 @@
|
||||
<div class="example-step">
|
||||
<div class="step-header">
|
||||
<div class="step-badge">1</div>
|
||||
<div class="step-title">Mario riceve verdure da Laura e le invia 10 RIS (va a -10)</div>
|
||||
<div class="step-title">
|
||||
Mario riceve verdure da Laura e le invia 10 RIS (va a -10)
|
||||
</div>
|
||||
</div>
|
||||
<div class="step-content">
|
||||
<div class="transaction">
|
||||
@@ -536,7 +477,10 @@
|
||||
<div class="example-step">
|
||||
<div class="step-header">
|
||||
<div class="step-badge">2</div>
|
||||
<div class="step-title">Laura si fa riparare la bici da Paolo e gli invia 10 RIS, Laura torna così a zero.</div>
|
||||
<div class="step-title">
|
||||
Laura si fa riparare la bici da Paolo e gli invia 10 RIS, Laura
|
||||
torna così a zero.
|
||||
</div>
|
||||
</div>
|
||||
<div class="step-content">
|
||||
<div class="transaction">
|
||||
@@ -561,7 +505,9 @@
|
||||
<div class="example-step">
|
||||
<div class="step-header">
|
||||
<div class="step-badge">3</div>
|
||||
<div class="step-title">Paolo riceve del miele da Mario e gli invia 10 RIS.</div>
|
||||
<div class="step-title">
|
||||
Paolo riceve del miele da Mario e gli invia 10 RIS.
|
||||
</div>
|
||||
</div>
|
||||
<div class="step-content">
|
||||
<div class="transaction">
|
||||
@@ -784,7 +730,39 @@
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="footer-section">
|
||||
<h4>Menu</h4>
|
||||
<ul>
|
||||
<template
|
||||
v-for="(myitemmenu, ind) in static_data.routes"
|
||||
:key="ind"
|
||||
>
|
||||
<li
|
||||
v-if="
|
||||
myitemmenu.infooter &&
|
||||
tools.visumenu(myitemmenu) &&
|
||||
!myitemmenu.solotitle
|
||||
"
|
||||
>
|
||||
<router-link
|
||||
:to="myitemmenu.path"
|
||||
custom
|
||||
v-slot="{ navigate }"
|
||||
>
|
||||
<span
|
||||
class="footer_link"
|
||||
@click="navigate"
|
||||
@keypress.enter="navigate"
|
||||
role="link"
|
||||
>
|
||||
<span v-if="myitemmenu.level_child > 0"> </span>
|
||||
{{ tools.getLabelByItem(myitemmenu) }}
|
||||
</span>
|
||||
</router-link>
|
||||
</li>
|
||||
</template>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
<h4>Contatti</h4>
|
||||
<ul class="footer-links">
|
||||
|
||||
@@ -175,6 +175,7 @@ export default defineComponent({
|
||||
formatDate,
|
||||
invitaStore,
|
||||
cancellaMessaggioSalvato,
|
||||
tools,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
>
|
||||
{{ invitaStore.contatoreInvitiRiusciti }} inviati
|
||||
</q-chip>
|
||||
<q-chip
|
||||
<!--<q-chip
|
||||
v-if="invitaStore.percentualeSuccesso > 0"
|
||||
color="white"
|
||||
text-color="primary"
|
||||
@@ -35,7 +35,7 @@
|
||||
class="q-mx-xs"
|
||||
>
|
||||
{{ invitaStore.percentualeSuccesso }}% successo
|
||||
</q-chip>
|
||||
</q-chip>-->
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
class="q-mr-xs"
|
||||
/>
|
||||
<span class="text-grey-8">
|
||||
Il tuo amico riceverà un link per registrarsi all'app
|
||||
Riceverai sul {{ tools.getBotName() }} il messaggio da inoltrare alla persona amica.
|
||||
</span>
|
||||
</div>
|
||||
</q-card-section>
|
||||
|
||||
@@ -1,32 +1,240 @@
|
||||
// LandingFooter.scss - VERSIONE MIGLIORATA (mantiene tutto il codice originale)
|
||||
|
||||
// ==========================================
|
||||
// VARIABLES
|
||||
// ==========================================
|
||||
$grayshadow: #555;
|
||||
$textcol: #9caf88; // Primary color verde oliva
|
||||
$textcol_scuro: #6b8e23; // Primary dark
|
||||
$footer-bg: linear-gradient(180deg, #2c3e50 95%, #FFF);
|
||||
$footer-text: rgba(255, 255, 255, 0.85);
|
||||
$footer-heading: rgba(255, 255, 255, 0.95);
|
||||
|
||||
$textcol: blue;
|
||||
$textcol_scuro: darkblue;
|
||||
|
||||
|
||||
// ==========================================
|
||||
// FOOTER PRINCIPALE
|
||||
// ==========================================
|
||||
.landing__footer {
|
||||
//background: -webkit-gradient(linear, left top, left bottom, color-stop(65%, rgba(0, 0, 0, .1)), to(#000));
|
||||
background: linear-gradient(180deg, #061f5c 95%, #FFF);
|
||||
background: $footer-bg;
|
||||
padding-top: 3.5rem !important;
|
||||
padding-bottom: 3.5rem !important;
|
||||
padding-left: 1.25rem;
|
||||
padding-right: 1.25rem;
|
||||
color: #9f9f9f;
|
||||
color: $footer-text;
|
||||
}
|
||||
|
||||
.icon_contact:hover {
|
||||
color: blue;
|
||||
border-color: white;
|
||||
border-width: .0625rem;
|
||||
// ==========================================
|
||||
// SOCIAL ICONS
|
||||
// ==========================================
|
||||
.icon_contact {
|
||||
font-size: 1.8rem;
|
||||
color: $footer-text;
|
||||
transition: all 0.3s ease;
|
||||
margin: 0 0.5rem;
|
||||
|
||||
&:hover {
|
||||
color: $textcol;
|
||||
transform: translateY(-4px) scale(1.2);
|
||||
filter: drop-shadow(0 4px 8px rgba(156, 175, 136, 0.4));
|
||||
}
|
||||
}
|
||||
|
||||
.landing__footer-icons {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
|
||||
a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
|
||||
.text-h5 {
|
||||
color: $footer-heading;
|
||||
font-size: 1rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// CONTATTI
|
||||
// ==========================================
|
||||
.mycontacts_title {
|
||||
text-shadow: 0.125rem 0.125rem 0.25rem rgba(0, 0, 0, 0.5);
|
||||
font-weight: 700;
|
||||
color: $footer-heading;
|
||||
letter-spacing: 0.05rem;
|
||||
font-size: 1.2rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.mycontacts_email {
|
||||
text-shadow: 0.125rem 0.125rem 0.25rem rgba(0, 0, 0, 0.5);
|
||||
font-weight: 600;
|
||||
color: $footer-text;
|
||||
transition: color 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
color: $textcol;
|
||||
}
|
||||
}
|
||||
|
||||
.mycontacts_cell {
|
||||
text-shadow: 0.125rem 0.125rem 0.25rem rgba(0, 0, 0, 0.5);
|
||||
font-weight: 700;
|
||||
color: $textcol;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
.mycontacts_text {
|
||||
font-size: 1rem;
|
||||
color: $footer-text;
|
||||
letter-spacing: normal !important;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.mycontacts_address {
|
||||
font-size: 1rem;
|
||||
color: $footer-text;
|
||||
line-height: 1.6;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.mycontacts {
|
||||
color: $footer-text;
|
||||
letter-spacing: 0.05rem;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// BUTTONS
|
||||
// ==========================================
|
||||
.margin_buttons_footer {
|
||||
margin: -4px -4px;
|
||||
|
||||
> * {
|
||||
margin: 4px 8px;
|
||||
}
|
||||
|
||||
.q-btn {
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.margin_buttons {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.margin_buttons_x {
|
||||
margin-bottom: 0.8rem;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// FOOTER LINKS
|
||||
// ==========================================
|
||||
.footer_link {
|
||||
font-size: 1rem;
|
||||
color: $footer-text;
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: $textcol;
|
||||
transform: translateX(4px);
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// LINK UTILI SECTION (NUOVA)
|
||||
// ==========================================
|
||||
.footer-links-section {
|
||||
padding: 2rem 1rem;
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
border-radius: 12px;
|
||||
margin-top: 2rem;
|
||||
|
||||
h4 {
|
||||
font-size: 1.3rem;
|
||||
font-weight: 700;
|
||||
color: $textcol;
|
||||
margin-bottom: 1.5rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
border-bottom: 2px solid $textcol;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.footer-links {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||
gap: 1rem;
|
||||
|
||||
li {
|
||||
margin-bottom: 0.8rem;
|
||||
|
||||
a {
|
||||
color: $footer-text;
|
||||
text-decoration: none;
|
||||
transition: all 0.3s ease;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.5rem;
|
||||
border-radius: 6px;
|
||||
|
||||
&:hover {
|
||||
color: $textcol;
|
||||
background: rgba(156, 175, 136, 0.1);
|
||||
transform: translateX(4px);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// LOGO
|
||||
// ==========================================
|
||||
.logo {
|
||||
filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.3));
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// STICKY BUTTONS
|
||||
// ==========================================
|
||||
.mybtn_sticky {
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.1);
|
||||
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// MISC
|
||||
// ==========================================
|
||||
.doc-img {
|
||||
max-width: 100%;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.mylist {
|
||||
background: #3fdaff;
|
||||
background: $textcol;
|
||||
padding-left: 1.25rem;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.clgutter {
|
||||
@@ -34,17 +242,42 @@ $textcol_scuro: darkblue;
|
||||
padding: .62rem;
|
||||
}
|
||||
|
||||
.copyrights {
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
letter-spacing: 0.05rem;
|
||||
font-size: 0.9rem;
|
||||
text-align: center;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.custom-caption {
|
||||
text-align: center;
|
||||
padding: .75rem;
|
||||
color: $textcol;
|
||||
background-color: rgba(0, 0, 0, .5);
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.links {
|
||||
color: $footer-text;
|
||||
text-decoration: none;
|
||||
transition: color 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
color: $textcol;
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// RESPONSIVE
|
||||
// ==========================================
|
||||
@media (max-width: 718px) {
|
||||
// PER VERSIONE MOBILE
|
||||
|
||||
.landing__hero {
|
||||
text-align: center
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.landing__header {
|
||||
height: 7vh
|
||||
height: 7vh;
|
||||
}
|
||||
|
||||
.clgutter {
|
||||
@@ -55,26 +288,26 @@ $textcol_scuro: darkblue;
|
||||
.landing__hero .text-h1 {
|
||||
font-size: 3rem;
|
||||
line-height: 3.05rem;
|
||||
margin-bottom: 1.5rem
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.landing>section.padding {
|
||||
.landing > section.padding {
|
||||
padding: 2.5rem 1rem;
|
||||
}
|
||||
|
||||
.landing>section.padding_testo {
|
||||
.landing > section.padding_testo {
|
||||
padding-top: 1.25rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.landing>section.padding_gallery {
|
||||
.landing > section.padding_gallery {
|
||||
padding-top: 3.125rem;
|
||||
padding-bottom: 5.625rem;
|
||||
}
|
||||
|
||||
.landing__features h4,
|
||||
.landing__features h6 {
|
||||
margin: 1.25rem 0
|
||||
margin: 1.25rem 0;
|
||||
}
|
||||
|
||||
h4 {
|
||||
@@ -94,7 +327,7 @@ $textcol_scuro: darkblue;
|
||||
.landing__hero-btns {
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.q-col-gutter-sm {
|
||||
@@ -104,72 +337,115 @@ $textcol_scuro: darkblue;
|
||||
.text-vers {
|
||||
font-size: 0.6rem;
|
||||
}
|
||||
|
||||
|
||||
// Mobile optimizations per footer
|
||||
.landing__footer {
|
||||
padding-left: 0.75rem;
|
||||
padding-right: 0.75rem;
|
||||
}
|
||||
|
||||
.footer-links-section {
|
||||
.footer-links {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.icon_contact {
|
||||
font-size: 1.5rem;
|
||||
margin: 0 0.3rem;
|
||||
}
|
||||
|
||||
.mycontacts_cell {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.landing__footer-icons a {
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
|
||||
.text-h5 {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.custom-caption {
|
||||
text-align: center;
|
||||
padding: .75rem;
|
||||
color: $textcol;
|
||||
background-color: rgba(0, 0, 0, .3);
|
||||
@media (max-width: 480px) {
|
||||
.footer-links-section {
|
||||
padding: 1.5rem 0.75rem;
|
||||
|
||||
h4 {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.mycontacts_title {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.mycontacts {
|
||||
color: gray;
|
||||
letter-spacing: 0.078rem;
|
||||
// ==========================================
|
||||
// MIGLIORAMENTI LAYOUT COLONNE
|
||||
// ==========================================
|
||||
|
||||
// Gutter migliorato
|
||||
.landing__footer {
|
||||
.q-col-gutter-md {
|
||||
> div {
|
||||
padding-bottom: 1.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.copyrights {
|
||||
color: gray;
|
||||
letter-spacing: 0.078rem;
|
||||
// Footer Links Section - aggiustamenti
|
||||
.footer-links-section {
|
||||
padding: 1rem 0;
|
||||
|
||||
h4 {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.footer-links {
|
||||
text-align: left;
|
||||
|
||||
li {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mycontacts_title {
|
||||
text-shadow: 0.125rem 0.125rem 0.125rem #555;
|
||||
font-weight: bold;
|
||||
color: #999;
|
||||
letter-spacing: 0.125rem;
|
||||
// ==========================================
|
||||
// RESPONSIVE MIGLIORATO
|
||||
// ==========================================
|
||||
@media (max-width: 1023px) and (min-width: 600px) {
|
||||
// Tablet: 2 colonne
|
||||
.landing__footer {
|
||||
.col-md-3 {
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mycontacts_email {
|
||||
text-shadow: 0.125rem 0.125rem 0.125rem #555;
|
||||
font-weight: bold;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.mycontacts_cell {
|
||||
text-shadow: 0.125rem 0.125rem 0.125rem #555;
|
||||
font-weight: bold;
|
||||
color: #999;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.mycontacts_text {
|
||||
font-size: 1rem;
|
||||
color: #999;
|
||||
letter-spacing: normal !important;
|
||||
}
|
||||
|
||||
.footer_link {
|
||||
font-size: 1rem;
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.footer_link:hover {
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
.margin_buttons_footer {
|
||||
margin: -4px -4px;
|
||||
}
|
||||
|
||||
.margin_buttons_footer>* {
|
||||
margin: 4px 8px;
|
||||
}
|
||||
|
||||
.mycontacts_address {
|
||||
font-size: 1rem;
|
||||
color: gray;
|
||||
@media (max-width: 599px) {
|
||||
// Mobile: 1 colonna, tutto centrato
|
||||
.landing__footer {
|
||||
text-align: center;
|
||||
|
||||
.col-12 {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.footer-links-section {
|
||||
h4 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.footer-links {
|
||||
text-align: center;
|
||||
|
||||
li {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -87,15 +87,6 @@
|
||||
class="q-icon fab fa-telegram icon_contact links"
|
||||
></i
|
||||
></a>
|
||||
|
||||
<!--<a href="" target="_blank"><i aria-hidden="true" class="q-icon fab fa-github"> </i></a>-->
|
||||
<!--<a href="https://twitter.com/" target="_blank"><i aria-hidden="true" class="q-icon fab fa-twitter"> </i></a>-->
|
||||
<!--<a href="https://discord.gg/5TDhbDg" target="_blank"><i aria-hidden="true"-->
|
||||
<!--class="q-icon fab fa-discord"> </i></a><a-->
|
||||
<!--href="https://forum.quasar-framework.org/" target="_blank"><i aria-hidden="true"-->
|
||||
<!--class="q-icon fas fa-comments"> </i></a><a-->
|
||||
<!--href="https://www.patreon.com/quasarframework" target="_blank"><i aria-hidden="true"-->
|
||||
<!--class="q-icon fab fa-patreon"> </i></a>-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -107,9 +98,6 @@
|
||||
>
|
||||
</div>
|
||||
|
||||
<!--<div class="q-mt-xs copyrights">-->
|
||||
<!--<p class="mycontacts_text" v-html="t('homepage.copyrights')"></p>-->
|
||||
<!--</div>-->
|
||||
</div>
|
||||
<div class="col-12 col-sm-4">
|
||||
<p class="mycontacts_title q-mt-sm">{{ t('homepage.titlecontatti') }}:</p>
|
||||
@@ -283,7 +271,7 @@
|
||||
</div>
|
||||
</section>
|
||||
<q-page-sticky
|
||||
v-if="site.whatsapp_home"
|
||||
v-if="site.contacts.whatsapp_home"
|
||||
position="bottom-right"
|
||||
:offset="[18, 78]"
|
||||
>
|
||||
|
||||
@@ -63,6 +63,12 @@
|
||||
label="Presente nel menu"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<q-toggle
|
||||
v-model="draft.showFooter"
|
||||
label="Mostra Footer"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<q-toggle
|
||||
v-model="draft.onlyif_logged"
|
||||
|
||||
@@ -62,6 +62,7 @@
|
||||
:depth="0"
|
||||
@select="selectedKey = element.__key"
|
||||
@delete="removePage(element.__key)"
|
||||
@edit="editPage(element.__key)"
|
||||
@open="openPage(element.__key)"
|
||||
/>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user