From f1702d76d609860e46ab9e40e479939ddc7bb72a Mon Sep 17 00:00:00 2001 From: Surya Paolo Date: Mon, 27 Nov 2023 14:40:42 +0100 Subject: [PATCH] Integrazione ECommerce (conversione) --- .env.development | 2 +- _ALL_SITES/piuchebuono.app/quasar.conf.js | 2 +- _ALL_SITES/riso.app/.env.development | 6 +- _ALL_SITES/riso.app/.env.production | 2 +- _ALL_SITES/riso.app/.env.test | 2 +- _ALL_SITES/riso.app/db/db_data.js | 80 +----- _ALL_SITES/riso.app/db/lang/ws_enUs.js | 7 +- _ALL_SITES/riso.app/db/lang/ws_es.js | 7 +- _ALL_SITES/riso.app/db/lang/ws_fr.js | 7 +- _ALL_SITES/riso.app/db/lang/ws_it.js | 10 +- _ALL_SITES/riso.app/db/lang/ws_pt.js | 7 +- _ALL_SITES/riso.app/db/static_data.ts | 221 +---------------- _ALL_SITES/riso.app/package.json | 25 +- _ALL_SITES/riso.app/quasar.conf.js | 30 +-- quasar.conf.js | 2 +- src/common/shared_vuejs.ts | 7 +- src/components/CMyElem/CMyElem.ts | 1 + src/components/CMyElem/CMyElem.vue | 30 +-- src/views/ecommerce/cartList/cartList.scss | 5 + src/views/ecommerce/cartList/cartList.ts | 59 +++++ src/views/ecommerce/cartList/cartList.vue | 21 ++ src/views/ecommerce/cartList/index.ts | 1 + src/views/ecommerce/checkOut/checkOut.scss | 5 + src/views/ecommerce/checkOut/checkOut.ts | 178 ++++++++++++++ src/views/ecommerce/checkOut/checkOut.vue | 44 ++++ src/views/ecommerce/checkOut/index.ts | 1 + src/views/ecommerce/index.ts | 1 + src/views/ecommerce/orderInfo/index.ts | 1 + src/views/ecommerce/orderInfo/orderInfo.scss | 14 ++ src/views/ecommerce/orderInfo/orderInfo.ts | 227 ++++++++++++++++++ src/views/ecommerce/orderInfo/orderInfo.vue | 191 +++++++++++++++ src/views/ecommerce/productInfo/index.ts | 1 + .../ecommerce/productInfo/productInfo.scss | 5 + .../ecommerce/productInfo/productInfo.ts | 51 ++++ .../ecommerce/productInfo/productInfo.vue | 19 ++ src/views/ecommerce/productsList/index.ts | 1 + .../ecommerce/productsList/productsList.scss | 5 + .../ecommerce/productsList/productsList.ts | 55 +++++ .../ecommerce/productsList/productsList.vue | 21 ++ .../scheletro_convers/scheletro_convers.scss | 0 .../scheletro_convers/scheletro_convers.ts | 40 +++ .../scheletro_convers/scheletro_convers.vue | 4 + 42 files changed, 1028 insertions(+), 370 deletions(-) create mode 100755 src/views/ecommerce/cartList/cartList.scss create mode 100755 src/views/ecommerce/cartList/cartList.ts create mode 100755 src/views/ecommerce/cartList/cartList.vue create mode 100755 src/views/ecommerce/cartList/index.ts create mode 100755 src/views/ecommerce/checkOut/checkOut.scss create mode 100755 src/views/ecommerce/checkOut/checkOut.ts create mode 100755 src/views/ecommerce/checkOut/checkOut.vue create mode 100755 src/views/ecommerce/checkOut/index.ts create mode 100755 src/views/ecommerce/index.ts create mode 100755 src/views/ecommerce/orderInfo/index.ts create mode 100755 src/views/ecommerce/orderInfo/orderInfo.scss create mode 100755 src/views/ecommerce/orderInfo/orderInfo.ts create mode 100755 src/views/ecommerce/orderInfo/orderInfo.vue create mode 100755 src/views/ecommerce/productInfo/index.ts create mode 100755 src/views/ecommerce/productInfo/productInfo.scss create mode 100755 src/views/ecommerce/productInfo/productInfo.ts create mode 100755 src/views/ecommerce/productInfo/productInfo.vue create mode 100755 src/views/ecommerce/productsList/index.ts create mode 100755 src/views/ecommerce/productsList/productsList.scss create mode 100755 src/views/ecommerce/productsList/productsList.ts create mode 100755 src/views/ecommerce/productsList/productsList.vue create mode 100755 src/views/scheletro_convers/scheletro_convers.scss create mode 100755 src/views/scheletro_convers/scheletro_convers.ts create mode 100755 src/views/scheletro_convers/scheletro_convers.vue diff --git a/.env.development b/.env.development index a0155a60..68c3cf88 100755 --- a/.env.development +++ b/.env.development @@ -1,6 +1,6 @@ APP_VERSION="1.0.21" SERVICE_WORKER_FILE="service-worker.js" -APP_ID="16" +APP_ID="17" DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_SERVER="freeplanet_serverside" SERVERDIR_WEBSITE="" diff --git a/_ALL_SITES/piuchebuono.app/quasar.conf.js b/_ALL_SITES/piuchebuono.app/quasar.conf.js index 85172b08..b4bf3510 100755 --- a/_ALL_SITES/piuchebuono.app/quasar.conf.js +++ b/_ALL_SITES/piuchebuono.app/quasar.conf.js @@ -147,7 +147,7 @@ module.exports = configure((ctx) => ({ }, devServer: { https: false, - port: 8087, + port: 8088, open: false, // opens browser window automatically headers: { 'Access-Control-Allow-Origin': '*', diff --git a/_ALL_SITES/riso.app/.env.development b/_ALL_SITES/riso.app/.env.development index 5324bf5c..a0155a60 100755 --- a/_ALL_SITES/riso.app/.env.development +++ b/_ALL_SITES/riso.app/.env.development @@ -1,6 +1,6 @@ -APP_VERSION="1.0.20" +APP_VERSION="1.0.21" SERVICE_WORKER_FILE="service-worker.js" -APP_ID="13" +APP_ID="16" DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_SERVER="freeplanet_serverside" SERVERDIR_WEBSITE="" @@ -12,7 +12,7 @@ LANG_DEFAULT="it" PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF" MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T" MONGODB_HOST="https://localhost:3000" -LOGO_REG='riso-logo-full.png' +LOGO_REG='piuchebuono-logo-full.png' TEST_NAME="Paolo" TEST_SURNAME="Arena" TEST_EMAIL="" diff --git a/_ALL_SITES/riso.app/.env.production b/_ALL_SITES/riso.app/.env.production index 17a0619d..6d5061c2 100644 --- a/_ALL_SITES/riso.app/.env.production +++ b/_ALL_SITES/riso.app/.env.production @@ -1,4 +1,4 @@ -APP_VERSION="1.0.19" +APP_VERSION="1.0.20" SERVICE_WORKER_FILE="service-worker.js" APP_ID="13" DIRECTORY_LOCAL=newfreeplanet diff --git a/_ALL_SITES/riso.app/.env.test b/_ALL_SITES/riso.app/.env.test index 4cafcdb7..98879930 100755 --- a/_ALL_SITES/riso.app/.env.test +++ b/_ALL_SITES/riso.app/.env.test @@ -1,4 +1,4 @@ -APP_VERSION="1.0.19" +APP_VERSION="1.0.20" SERVICE_WORKER_FILE="service-worker.js" APP_ID="13" DIRECTORY_LOCAL=newfreeplanet diff --git a/_ALL_SITES/riso.app/db/db_data.js b/_ALL_SITES/riso.app/db/db_data.js index a6d707ca..9ce88874 100755 --- a/_ALL_SITES/riso.app/db/db_data.js +++ b/_ALL_SITES/riso.app/db/db_data.js @@ -1,89 +1,11 @@ import { IEvents } from '../model'; export const db_data = { - URL_FACEBOOK: 'https://www.facebook.com/associazioneshen', + URL_FACEBOOK: '', userdata: { calendar_editable: false, }, - events: [ - { - title: 'Scambi Reiki', - details: 'Nelle serate esperienziali è possibile Dare e Ricevere un trattamento completo.
' - + 'Possono partecipare le persone che hanno già preso parte al seminario di 1° livello, ma anche tutti quelli che hanno il desiderio di conoscere il Reiki e sperimentarlo per la prima volta: in questo caso invitiamo gli interessati a contattarci per un appuntamento prima dell’inizio della serata per ricevere le informazioni pratiche.', - date: '2019-07-11', - time: '21:00', - duration: 120, - side: 'left', - bgcolor: 'orange', - icon: 'fas fa-praying-hands', - img: 'images/reiki/reikisfondo.jpg', - where: 'Centro Shen', - // whereicon: 'shen.png', - teacher: 'Cristina Barattoni', - avatar: 'cristina.png', - infoextra: '', - linkpdf: 'files/eventi/Reiki_aMICHI.pdf', - }, - { - title: 'Scambi Reiki', - details: 'Nelle serate esperienziali è possibile Dare e Ricevere un trattamento completo.
' - + 'Possono partecipare le persone che hanno già preso parte al seminario di 1° livello, ma anche tutti quelli che hanno il desiderio di conoscere il Reiki e sperimentarlo per la prima volta: in questo caso invitiamo gli interessati a contattarci per un appuntamento prima dell’inizio della serata per ricevere le informazioni pratiche.', - date: '2019-07-20', - time: '21:00', - duration: 120, - side: 'left', - bgcolor: 'orange', - icon: 'fas fa-praying-hands', - img: 'images/reiki/reikisfondo.jpg', - where: 'Centro Shen', - // whereicon: 'shen.png', - teacher: 'Cristina Barattoni', - avatar: 'cristina.png', - infoextra: '', - linkpdf: '', - }, - { - title: 'Seminario Reiki 1° Livello', - details: 'I seminari vengono organizzati volutamente in gruppi poco numerosi.\n' - + 'Si crea così un ambiente accogliente e tranquillo con un atmosfera conviviale.
' - + '' - + 'Per info vedi Seminari Reiki', - date: '2019-07-22', - days: 2, - time: '9:00', - side: 'left', - bgcolor: 'red', - icon: 'fas fa-chalkboard-teacher', - img: 'images/reiki/reikisfondo.jpg', - where: 'Centro Shen', - // whereicon: 'shen.png', - teacher: 'Cristina Barattoni', - avatar: 'cristina.png', - teacher2: 'Elisa Ghizzardi', - avatar2: 'elisa.png', - infoextra: 'sabato e domenica dalle 10.00 alle 18.00', - linkpdf: '', - }, - { - title: 'Presentazione Corsi per Operatori del Massaggio del Benessere', - details: 'Vieni alla presentazione dei Corsi!
10 settembre a Ravenna, 17 settembre a Lugo', - date: '2019-09-10', - time: '20:30', - duration: 120, - side: 'left', - bgcolor: 'blue', - icon: 'fas fa-praying-hands', - img: 'images/scuolaopbenessere/img1.jpg', - where: 'Centro Shen', - // whereicon: 'shen.png', - teacher: 'Operatori', - avatar: 'cristina.png', - avatar2: 'elisa.png', - infoextra: '', - linkpdf: '', - }, - ], } diff --git a/_ALL_SITES/riso.app/db/lang/ws_enUs.js b/_ALL_SITES/riso.app/db/lang/ws_enUs.js index bf27674a..4b20853c 100755 --- a/_ALL_SITES/riso.app/db/lang/ws_enUs.js +++ b/_ALL_SITES/riso.app/db/lang/ws_enUs.js @@ -1,8 +1,9 @@ const msg_website_enUs = { ws: { - sitename: 'Riso', - siteshortname: 'RISO', - botname: 'Riso BOT', + sitename: 'Fiore Della Vita', + siteshortname: 'Fiore Della Vita', + description: '', + keywords: '', }, products: { quantity: 'Quantità', diff --git a/_ALL_SITES/riso.app/db/lang/ws_es.js b/_ALL_SITES/riso.app/db/lang/ws_es.js index 8dcae921..66a384d3 100755 --- a/_ALL_SITES/riso.app/db/lang/ws_es.js +++ b/_ALL_SITES/riso.app/db/lang/ws_es.js @@ -1,8 +1,9 @@ const msg_website_es = { ws: { - sitename: 'Riso', - siteshortname: 'RISO', - botname: 'Riso BOT', + sitename: 'Fiore Della Vita', + siteshortname: 'Fiore Della Vita', + description: '', + keywords: '', }, products: { quantity: 'Quantità', diff --git a/_ALL_SITES/riso.app/db/lang/ws_fr.js b/_ALL_SITES/riso.app/db/lang/ws_fr.js index 9a411709..00c73fe3 100755 --- a/_ALL_SITES/riso.app/db/lang/ws_fr.js +++ b/_ALL_SITES/riso.app/db/lang/ws_fr.js @@ -1,8 +1,9 @@ const msg_website_fr = { ws: { - sitename: 'Riso', - siteshortname: 'RISO', - botname: 'Riso BOT', + sitename: 'Fiore Della Vita', + siteshortname: 'Fiore Della Vita', + description: '', + keywords: '', }, homepage: { titlecontatti: 'CONTACTS', diff --git a/_ALL_SITES/riso.app/db/lang/ws_it.js b/_ALL_SITES/riso.app/db/lang/ws_it.js index 7ae40cf0..015979cf 100755 --- a/_ALL_SITES/riso.app/db/lang/ws_it.js +++ b/_ALL_SITES/riso.app/db/lang/ws_it.js @@ -1,9 +1,9 @@ const msg_website_it = { ws: { - sitename: 'Riso', - siteshortname: 'RISO', - description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.', - keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS', + sitename: 'Fiore Della Vita', + siteshortname: 'Fiore Della Vita', + description: '', + keywords: '', }, products: { quantity: 'Quantità', @@ -131,7 +131,7 @@ const msg_website_it = { color: 'Colore', }, msg: { - myAppName: 'Riso', + myAppName: 'Fiore della Vita', myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito', underconstruction: 'App in costruzione...', myDescriz: '', diff --git a/_ALL_SITES/riso.app/db/lang/ws_pt.js b/_ALL_SITES/riso.app/db/lang/ws_pt.js index e9a93141..9a327a11 100755 --- a/_ALL_SITES/riso.app/db/lang/ws_pt.js +++ b/_ALL_SITES/riso.app/db/lang/ws_pt.js @@ -1,8 +1,9 @@ const msg_website_pt = { ws: { - sitename: 'Riso', - siteshortname: 'RISO', - botname: 'Riso BOT', + sitename: 'Fiore Della Vita', + siteshortname: 'Fiore Della Vita', + description: '', + keywords: '', }, pages: { home: 'Home', diff --git a/_ALL_SITES/riso.app/db/static_data.ts b/_ALL_SITES/riso.app/db/static_data.ts index 9fab8506..c47396b6 100755 --- a/_ALL_SITES/riso.app/db/static_data.ts +++ b/_ALL_SITES/riso.app/db/static_data.ts @@ -7,30 +7,6 @@ import { import { func } from '@store/Modules/fieldsTable' -// const SHOW_PROJINTHEMENU = false -// -// let arrlistafavourite = [] -// let arrlistaprojtutti = [] -// let arrlistaprojmiei = [] -// if (SHOW_PROJINTHEMENU) { -// arrlistaprojtutti = Projects.getters.listaprojects(RouteNames.projectsall) -// arrlistaprojmiei = Projects.getters.listaprojects(RouteNames.myprojects) -// arrlistafavourite = Projects.getters.listaprojects(RouteNames.favouriteprojects) -// } -// PROGETTI -> FAVORITI : - -// if (arrlistafavourite.length > 0) { -// arrMenu.push({ -// icon: 'favorite_border', -// nametranslate: 'pages.' + RouteNames.favouriteprojects, -// urlroute: RouteNames.favouriteprojects, -// level_parent: 0.0, -// level_child: 0.5, -// routes2: arrlistafavourite, -// idelem: '' -// }) -// } - const firstPage = { active: true, order: 5, @@ -46,7 +22,7 @@ const firstPage = { function getDynamicPages(site: ISites): IListRoutes[] { const baseroutes: IListRoutes[] = [ - { + /*{ active: true, order: 5, path: '/', @@ -57,61 +33,6 @@ function getDynamicPages(site: ISites): IListRoutes[] { inmenu: true, infooter: true, }, - { - active: true, - order: 12, - path: '/goods', - materialIcon: 'fas fa-tshirt', - name: 'mypages.goods', - component: () => import('@/root/goods/goods.vue'), - meta: { requiresAuth: true }, - inmenu: true, - infooter: true, - }, - { - active: true, - order: 15, - path: '/services', - materialIcon: 'fas fa-house-user', - name: 'mypages.services', - component: () => import('@/root/services/services.vue'), - meta: { requiresAuth: true }, - inmenu: true, - infooter: true, - }, - { - active: true, - order: 15, - path: '/provapao', - materialIcon: 'fas fa-house-user', - name: 'mypages.provapao', - component: () => import('@/root/provapao/provapao.vue'), - meta: { requiresAuth: true }, - inmenu: false, - infooter: false, - }, - { - active: true, - order: 15, - path: '/hosps', - materialIcon: 'fas fa-bed', - name: 'mypages.hosp', - component: () => import('@/root/hosp/hosp.vue'), - meta: { requiresAuth: true }, - inmenu: true, - infooter: true, - }, - { - active: site.confpages && site.confpages.enableCircuits, - order: 16, - path: '/circuits', - materialIcon: 'fas fa-coins', - name: 'mypages.circuits', - component: () => import('@/views/user/mycircuits/mycircuits.vue'), - meta: { requiresAuth: true }, - inmenu: true, - infooter: true, - }, { active: true, order: 20, @@ -122,145 +43,7 @@ function getDynamicPages(site: ISites): IListRoutes[] { meta: { requiresAuth: true }, inmenu: true, infooter: true, - }, - { - active: true, - order: 120, - path: '/myprofile', - materialIcon: 'fas fa-user', - name: 'pages.profile', - component: () => import('@/views/user/myprofile/myprofile.vue'), - meta: { requiresAuth: true }, - inmenu: true, - infooter: true, - }, - { - active: true, - order: 120, - path: '/editprofile', - materialIcon: 'fas fa-user', - name: 'pages.profile3', - component: () => import('@/views/user/editprofile/editprofile.vue'), - meta: { requiresAuth: true }, - inmenu: false, - infooter: false, - }, - { - active: true, - order: 130, - path: '/friends', - materialIcon: 'fas fa-user-friends', - name: 'mypages.iscritti', - component: () => import('@/views/user/myfriends/myfriends.vue'), - meta: { requiresAuth: true }, - inmenu: true, - infooter: true, - }, - { - active: site.confpages && site.confpages.enableGroups, - order: 132, - path: '/groups', - materialIcon: 'fas fa-users', - name: 'mypages.groups', - component: () => import('@/views/user/mygroups/mygroups.vue'), - meta: { requiresAuth: true }, - inmenu: true, - infooter: false, - }, - { - active: true, - order: 136, - path: '/grp/:groupname', - materialIcon: 'fas fa-user', - name: 'proj.group2', - component: () => import('@/views/user/mygroup/mygroup.vue'), - meta: { requiresAuth: true, newpage: true }, - inmenu: false, - infooter: false, - }, { - active: true, - order: 137, - path: '/circuit/:path', - materialIcon: 'fas fa-user', - name: 'proj.circuit2', - component: () => import('@/views/user/mycircuit/mycircuit.vue'), - meta: { requiresAuth: true, newpage: true }, - inmenu: false, - infooter: false, - }, - { - active: true, - path: '/separator', - name: 'separator', - order: 140, - isseparator: true, - inmenu: true, - }, - { - active: true, - order: 130, - path: '/mypage/:idBacheca', - materialIcon: 'fas fa-user', - name: 'pages.mypage2', - component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'), - meta: { requiresAuth: true, newpage: true }, - inmenu: false, - infooter: false, - }, - { - active: true, - order: 130, - path: '/myservice/:idSkill', - materialIcon: '', - name: 'pages.myservice2', - component: () => import('@/views/user/myservice/myservice.vue'), - meta: { requiresAuth: true, newpage: true }, - inmenu: false, - infooter: false, - }, - { - active: true, - order: 135, - path: '/myhosps/:idHosp', - materialIcon: '', - name: 'pages.myhosps2', - component: () => import('@/views/user/mypagehosp/mypagehosp.vue'), - meta: { requiresAuth: true, newpage: true }, - inmenu: false, - infooter: false, - }, - { - active: true, - order: 132, - path: '/mygood/:idGood', - materialIcon: '', - name: 'pages.mygood2', - component: () => import('@/views/user/mypagegood/mypagegood.vue'), - meta: { requiresAuth: true, newpage: true }, - inmenu: false, - infooter: false, - }, - { - active: true, - order: 150, - path: '/fundraising', - materialIcon: 'fas fa-hand-holding-heart', - name: 'pages.fundraising', - component: () => import('@src/root/fundraising/fundraising.vue'), - inmenu: false, - infooter: false, - }, - { - active: true, - order: 80, - path: '/calendario-eventi', - materialIcon: 'event', - name: 'ris.calendario_eventi_riso', - component: () => import('@/root/calendarioeventi/calendarioeventi.vue'), - extraclass: 'isCalendar', - inmenu: false, - infooter: false - }, + },*/ ] return baseroutes diff --git a/_ALL_SITES/riso.app/package.json b/_ALL_SITES/riso.app/package.json index b7f2b887..0e270b75 100755 --- a/_ALL_SITES/riso.app/package.json +++ b/_ALL_SITES/riso.app/package.json @@ -1,8 +1,8 @@ { - "name": "riso", - "version": "0.6.1", - "description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.", - "productName": "Riso", + "name": "piuchebuono", + "version": "2.0.1", + "description": "PiuCheBuono", + "productName": "PiuCheBuono", "author": "Paolo Arena", "private": true, "keywords": [], @@ -123,18 +123,17 @@ "crypto": false }, "browserslist": [ - "last 80 Chrome versions", + "last 100 Chrome versions", "last 40 Firefox versions", - "last 10 Edge versions", - "last 45 Safari versions", - "last 80 Android versions", - "last 120 ChromeAndroid versions", - "last 30 FirefoxAndroid versions", - "last 20 iOS versions", + "last 20 Edge versions", + "last 55 Safari versions", + "last 90 Android versions", + "last 250 ChromeAndroid versions", + "last 60 FirefoxAndroid versions", + "last 35 iOS versions", "last 10 Opera versions", "> 0.03%", - "not dead", - "fully supports es6-module" + "not dead" ], "engines": { "node": ">= 16.14.0", diff --git a/_ALL_SITES/riso.app/quasar.conf.js b/_ALL_SITES/riso.app/quasar.conf.js index 4fe00ed6..716171a6 100755 --- a/_ALL_SITES/riso.app/quasar.conf.js +++ b/_ALL_SITES/riso.app/quasar.conf.js @@ -147,7 +147,7 @@ module.exports = configure((ctx) => ({ }, devServer: { https: false, - port: 8084, + port: 8088, open: false, // opens browser window automatically headers: { 'Access-Control-Allow-Origin': '*', @@ -305,9 +305,9 @@ module.exports = configure((ctx) => ({ }, manifest: { - name: 'Riso', - short_name: 'Riso', - description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.', + name: 'Più che Buono', + short_name: 'PiuCheBuono', + description: 'PiuCheBuono è un GAS e Bottega', display: 'standalone', orientation: 'portrait', background_color: '#fff', @@ -317,54 +317,54 @@ module.exports = configure((ctx) => ({ start_url: "/?homescreen=1", icons: [ { - src: 'images/riso-android-icon-512x512.png', + src: 'images/fv-android-icon-512x512.png', sizes: '512x512', type: 'image/png', }, { - src: 'images/riso-android-icon-384x384.png', + src: 'images/fv-android-icon-384x384.png', sizes: '384x384', type: 'image/png', }, { - src: 'images/riso-android-icon-192x192.png', + src: 'images/fv-android-icon-192x192.png', sizes: '192x192', type: 'image/png', }, { - src: 'images/riso-android-icon-144x144.png', + src: 'images/fv-android-icon-144x144.png', sizes: '144x144', type: 'image/png', }, { - src: 'images/riso-android-icon-96x96.png', + src: 'images/fv-android-icon-96x96.png', sizes: '96x96', type: 'image/png', }, { - src: 'images/riso-apple-icon-120x120.png', + src: 'images/fv-apple-icon-120x120.png', sizes: '120x120', type: 'image/png', }, { - src: 'images/riso-apple-icon-144x144.png', + src: 'images/fv-apple-icon-144x144.png', sizes: '144x144', type: 'image/png', }, { - src: 'images/riso-apple-icon-152x152.png', + src: 'images/fv-apple-icon-152x152.png', sizes: '152x152', type: 'image/png', }, { - src: 'images/riso-apple-icon-180x180.png', + src: 'images/fv-apple-icon-180x180.png', sizes: '180x180', type: 'image/png', }, ], related_applications: [{ "platform": "webapp", - "url": "https://www.riso.app/manifest.json" + "url": "https://www.piuchebuono.app/manifest.json" }] }, }, @@ -399,7 +399,7 @@ module.exports = configure((ctx) => ({ builder: { // https://www.electron.build/configuration/configuration - appId: 'Riso', + appId: 'PiuCheBuono', }, // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain diff --git a/quasar.conf.js b/quasar.conf.js index 716171a6..b4bf3510 100755 --- a/quasar.conf.js +++ b/quasar.conf.js @@ -364,7 +364,7 @@ module.exports = configure((ctx) => ({ ], related_applications: [{ "platform": "webapp", - "url": "https://www.piuchebuono.app/manifest.json" + "url": "https://www.riso.app/manifest.json" }] }, }, diff --git a/src/common/shared_vuejs.ts b/src/common/shared_vuejs.ts index dacaab67..8d617ca9 100755 --- a/src/common/shared_vuejs.ts +++ b/src/common/shared_vuejs.ts @@ -75,7 +75,8 @@ export const shared_consts = { BTN_LOGIN: 260, FOOTER: 270, PROFILETUTORIAL: 280, - VISUVIDEOPROMOANDPDF: 290 + VISUVIDEOPROMOANDPDF: 290, + ECOMMERCE: 300, }, QUERYTYPE_MYGROUP: 1, @@ -1525,6 +1526,10 @@ export const shared_consts = { value: 70, label: 'Calendario', }, + { + value: 300, + label: 'E-COMMERCE', + }, ], diff --git a/src/components/CMyElem/CMyElem.ts b/src/components/CMyElem/CMyElem.ts index 474a80d5..97e4c852 100755 --- a/src/components/CMyElem/CMyElem.ts +++ b/src/components/CMyElem/CMyElem.ts @@ -13,6 +13,7 @@ import { tools } from '@store/Modules/tools' import { shared_consts } from '@/common/shared_vuejs' import { LandingFooter } from '@/components/LandingFooter' import { CMyActivities } from '@/components/CMyActivities' +import { CECommerce } from '@/components/CECommerce' import { COpenStreetMap } from '@src/components/COpenStreetMap' import { CCardCarousel } from '@src/components/CCardCarousel' import { CMyPage } from '@src/components/CMyPage' diff --git a/src/components/CMyElem/CMyElem.vue b/src/components/CMyElem/CMyElem.vue index babba51c..51174784 100755 --- a/src/components/CMyElem/CMyElem.vue +++ b/src/components/CMyElem/CMyElem.vue @@ -372,13 +372,7 @@ >
 
@@ -390,13 +384,7 @@ {{ myel.container }} 
{{ myel.container2 }}
@@ -488,9 +476,13 @@
CCheckIfIsLogged
-
+
Visu Video Promo and PDF
- +
Versione: {{ tools.getvers() }}
@@ -537,6 +529,10 @@
Pagina Attività
+
+
PRODOTTI ECOMMERCE:
+ +
Notifiche in Cima
@@ -582,7 +578,6 @@ Chiudere e Riaprire la App, per completare l'Aggiornamento -
-
diff --git a/src/views/ecommerce/cartList/cartList.scss b/src/views/ecommerce/cartList/cartList.scss new file mode 100755 index 00000000..9df13d3c --- /dev/null +++ b/src/views/ecommerce/cartList/cartList.scss @@ -0,0 +1,5 @@ +$heightBtn: 100%; + +.card .product-image { + height: 300px; +} diff --git a/src/views/ecommerce/cartList/cartList.ts b/src/views/ecommerce/cartList/cartList.ts new file mode 100755 index 00000000..d543ffa2 --- /dev/null +++ b/src/views/ecommerce/cartList/cartList.ts @@ -0,0 +1,59 @@ +import { defineComponent, onMounted, ref } from 'vue' +import { tools } from '@store/Modules/tools' +import { useUserStore } from '@store/UserStore' +import { useRouter } from 'vue-router' +import { useGlobalStore } from '@store/globalStore' +import { useProducts } from '@store/Products' +import { useI18n } from '@/boot/i18n' +import { toolsext } from '@store/Modules/toolsext' +import { useQuasar } from 'quasar' +import { costanti } from '@costanti' + +import { CProductCard } from '@src/components/CProductCard' + +export default defineComponent({ + name: 'CartList', + components: { CProductCard }, + filters: { + capitalize(value: any) { + if (!value) { + return '' + } + value = value.toString() + return value.charAt(0).toUpperCase() + value.slice(1) + } + }, + props: {}, + setup() { + const userStore = useUserStore() + const globalStore = useGlobalStore() + const productStore = useProducts() + const $router = useRouter() + const $q = useQuasar() + const { t } = useI18n(); + + function getCart() { + return productStore.getCart() + } + + function getProducts() { + return productStore.getProducts() + } + + function mounted() { + // Inizializza + + } + + onMounted(mounted) + + return { + userStore, + costanti, + tools, + toolsext, + getCart, + getProducts, + } + } +}) diff --git a/src/views/ecommerce/cartList/cartList.vue b/src/views/ecommerce/cartList/cartList.vue new file mode 100755 index 00000000..3c6338fa --- /dev/null +++ b/src/views/ecommerce/cartList/cartList.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/src/views/ecommerce/cartList/index.ts b/src/views/ecommerce/cartList/index.ts new file mode 100755 index 00000000..a309a247 --- /dev/null +++ b/src/views/ecommerce/cartList/index.ts @@ -0,0 +1 @@ +export {default as CartList} from './cartList.vue' diff --git a/src/views/ecommerce/checkOut/checkOut.scss b/src/views/ecommerce/checkOut/checkOut.scss new file mode 100755 index 00000000..9df13d3c --- /dev/null +++ b/src/views/ecommerce/checkOut/checkOut.scss @@ -0,0 +1,5 @@ +$heightBtn: 100%; + +.card .product-image { + height: 300px; +} diff --git a/src/views/ecommerce/checkOut/checkOut.ts b/src/views/ecommerce/checkOut/checkOut.ts new file mode 100755 index 00000000..6b47ca9b --- /dev/null +++ b/src/views/ecommerce/checkOut/checkOut.ts @@ -0,0 +1,178 @@ +import Vue from 'vue' +import { Component, Watch } from 'vue-property-decorator' + +import { SingleProject } from '../../../components/projects/SingleProject/index' +import { CTodo } from '../../../components/todos/CTodo' + +import { CProgress } from '../../../components/CProgress' +import { CDate } from '../../../components/CDate' +import { Action } from 'vuex' +import Products from '@src/store/Modules/Products' +import { CSingleCart } from '../../../components/CSingleCart' +import { CTitleBanner } from '@components' +import { tools } from '@src/store/Modules/tools' +import { ICart } from '@src/model' +import MixinBase from '@src/mixins/mixin-base' +import { shared_consts } from '@src/common/shared_vuejs' + +const namespace: string = 'Products' + +@Component({ + name: 'checkOut', + components: { SingleProject, CProgress, CTodo, CDate, CSingleCart, CTitleBanner }, + filters: { + capitalize(value) { + if (!value) { + return '' + } + value = value.toString() + return value.charAt(0).toUpperCase() + value.slice(1) + } + } +}) + +export default class CheckOut extends MixinBase { + public $q: any + public mycart: ICart = {} + public myrec: any[] + public note: string = '' + public statusnow: number = shared_consts.OrderStatus.NONE + + public conferma_carrello: boolean = false + public conferma_ordine: boolean = false + + /*public $refs: { + singleproject: SingleProject[], + ctodo: CTodo + }*/ + + get getItemsCart() { + const cart = Products.getters.getCart() + return cart.items || null + } + + get getNumItems() { + const cart = Products.getters.getCart() + if (!!cart.items) + return cart.items.length || 0 + else + return 0 + } + + get getCart() { + return Products.getters.getCart() + } + + get getNote() { + const cart = Products.getters.getCart() + return cart.note + } + + public change_field(fieldname) { + if (this.myrec[fieldname] !== this[fieldname]) { + this.myrec[fieldname] = this[fieldname] + + const mydata = { + [fieldname]: this.myrec[fieldname] + } + + const aggiorna = fieldname !== 'status' + tools.saveFieldToServer(this, 'carts', this.mycart._id, mydata, aggiorna) + } + } + + get myTotalPrice() { + if (Products.state.cart && Products.state.cart.totalPrice) { + return Products.state.cart.totalPrice.toFixed(2) + } else { + return 0 + } + } + + get myTotalQty() { + if (Products.state.cart) { + return Products.state.cart.totalQty + } else { + return 0 + } + } + + public async mounted() { + // Products.actions.loadCart() + this.load() + } + + public async load() { + this.mycart = this.getCart + this.myrec = Object.keys(this.mycart) + this.note = this.mycart.note + + if (this.mycart) + this.statusnow = await Products.actions.UpdateStatusCart({ cart_id: this.mycart._id, status }) + + console.log('myrec', this.myrec) + } + + public CanBeShipped() { + return Products.state.cart.items.filter((rec) => rec.order.product.canBeShipped).length + } + + public CanBeBuyOnline() { + return Products.state.cart.items.filter((rec) => rec.order.product.canBeBuyOnline).length + } + + get getnumsteps() { + let numsteps = 1 + + if (this.CanBeShipped()) + numsteps++ + if (this.CanBeBuyOnline()) + numsteps++ + + return numsteps + } + + public docheckout() { + + // Può essere spedito? + + if (this.CanBeShipped()) { + // mostra form di spedizione + } + + if (this.CanBeBuyOnline()) { + // mostra form di acquisto Online + } + } + + get nextstep() { + return 0 + } + + public completeOrder() { + this.$q.dialog({ + message: 'Confermare l\'ordine di acquisto di ' + this.myTotalQty + ' prodotti ?', + ok: { + label: this.$t('dialog.yes'), + push: true + }, + cancel: { + label: this.$t('dialog.cancel') + }, + title: 'Ordine' + }).onOk(async () => { + const status = shared_consts.OrderStatus.CHECKOUT_SENT + this.statusnow = await Products.actions.UpdateStatusCart({ cart_id: this.mycart._id, status }) + + if (this.statusnow === status) { + tools.showPositiveNotif(this.$q, 'Ordine Confermato') + setTimeout(() => { + this.$router.push('/orderinfo') + }, 2000) + } + // this.change_field('status') + // this.change_field('status') + }) + } + +} diff --git a/src/views/ecommerce/checkOut/checkOut.vue b/src/views/ecommerce/checkOut/checkOut.vue new file mode 100755 index 00000000..c8ab6b5a --- /dev/null +++ b/src/views/ecommerce/checkOut/checkOut.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/views/ecommerce/checkOut/index.ts b/src/views/ecommerce/checkOut/index.ts new file mode 100755 index 00000000..0ef3daf8 --- /dev/null +++ b/src/views/ecommerce/checkOut/index.ts @@ -0,0 +1 @@ +export {default as checkOut} from './checkOut.vue' diff --git a/src/views/ecommerce/index.ts b/src/views/ecommerce/index.ts new file mode 100755 index 00000000..0dedba07 --- /dev/null +++ b/src/views/ecommerce/index.ts @@ -0,0 +1 @@ +export * from './productsList' diff --git a/src/views/ecommerce/orderInfo/index.ts b/src/views/ecommerce/orderInfo/index.ts new file mode 100755 index 00000000..4eeb1c59 --- /dev/null +++ b/src/views/ecommerce/orderInfo/index.ts @@ -0,0 +1 @@ +export {default as orderInfo} from './orderInfo.vue' diff --git a/src/views/ecommerce/orderInfo/orderInfo.scss b/src/views/ecommerce/orderInfo/orderInfo.scss new file mode 100755 index 00000000..ab2a7db5 --- /dev/null +++ b/src/views/ecommerce/orderInfo/orderInfo.scss @@ -0,0 +1,14 @@ +$heightBtn: 100%; + +.card .product-image { + height: 300px; +} + +.mycol{ + color:gray; +} + + +.q-item__label--caption{ + color: blue; +} diff --git a/src/views/ecommerce/orderInfo/orderInfo.ts b/src/views/ecommerce/orderInfo/orderInfo.ts new file mode 100755 index 00000000..ed023ded --- /dev/null +++ b/src/views/ecommerce/orderInfo/orderInfo.ts @@ -0,0 +1,227 @@ +import Vue from 'vue' +import { Component, Watch } from 'vue-property-decorator' + +import { SingleProject } from '../../../components/projects/SingleProject/index' +import { CTodo } from '../../../components/todos/CTodo' + +import { CProgress } from '../../../components/CProgress' +import { CDate } from '../../../components/CDate' +import { Action } from 'vuex' +import Products from '@src/store/Modules/Products' +import { CSingleCart } from '../../../components/CSingleCart' +import { CTitleBanner } from '@components' +import { tools } from '@src/store/Modules/tools' +import { ICart, IOrderCart } from '@src/model' +import MixinBase from '@src/mixins/mixin-base' +import { shared_consts } from '@src/common/shared_vuejs' + +const namespace: string = 'Products' + +@Component({ + name: 'checkOut', + components: { SingleProject, CProgress, CTodo, CDate, CSingleCart, CTitleBanner }, + filters: { + capitalize(value) { + if (!value) { + return '' + } + value = value.toString() + return value.charAt(0).toUpperCase() + value.slice(1) + } + } +}) + +export default class OrderInfo extends MixinBase { + public $q: any + public myorderscart: IOrderCart[] = [] + public myarrrec: any = {} + + public conferma_carrello: boolean = false + public conferma_ordine: boolean = false + + public taborders: string = 'incorso' + public filter: string = '' + public statusnow: number = 0 + public arrnumstatus: any = [] + public columns = [ + { + name: 'numorder', + required: true, + align: 'left', + label: 'Numero Ordine', + field: 'numorder', + sortable: true + }, + { + name: 'nameSurname', + required: true, + align: 'left', + label: 'Nome', + field: 'nameSurname', + sortable: true + }, + { + name: 'created_at', + required: true, + align: 'center', + label: 'Effettuato il', + field: 'created_at', + sortable: true + }, + { + name: 'items', + required: true, + label: 'Articoli', + field: 'items', + sortable: true + }, + { + name: 'totalPrice', + required: true, + label: 'Totale', + field: 'totalPrice', + sortable: true + }, + { + name: 'status', + align: 'center', + required: true, + label: 'Stato', + field: 'status', + sortable: true + } + ] + + /*public $refs: { + singleproject: SingleProject[], + ctodo: CTodo + }*/ + + get getOrdersCart() { + return Products.getters.getOrdersCart(this.taborders) + } + + get getAllOrdersCart() { + return Products.getters.getOrdersAllCart() + } + + public change_field(myorderid, fieldname) { + if (this.myarrrec[myorderid][fieldname] !== this[fieldname]) { + this.myarrrec[myorderid][fieldname] = this[fieldname] + + const mydata = { + [fieldname]: this.myarrrec[myorderid][fieldname] + } + + const aggiorna = fieldname !== 'status' + tools.saveFieldToServer(this, 'orderscart', myorderid, mydata, aggiorna) + } + } + public updateorders() { + this.myorderscart = this.getOrdersCart + for (const ordercart of this.myorderscart) { + this.myarrrec[ordercart._id] = Object.keys(ordercart) + } + + const allorders = this.getAllOrdersCart + for (const status of [ + 2, + 3, + 4, + 6, + 10 + ]) { + this.arrnumstatus[status] = allorders.filter((rec) => (rec.status === status)).reduce((sum, item) => sum + 1, 0) + } + + } + + public mounted() { + + this.updateorders() + + console.log('arrnumstatus;') + console.log(this.arrnumstatus) + + this.columns = [...this.columns, + { + name: 'comandi', + align: 'center', + required: false, + label: 'Comandi', + field: 'comandi', + sortable: false + }] + + } + + public CanBeShipped() { + return Products.state.cart.items.filter((rec) => rec.order.product.canBeShipped).length + } + + public CanBeBuyOnline() { + return Products.state.cart.items.filter((rec) => rec.order.product.canBeBuyOnline).length + } + + get getnumsteps() { + let numsteps = 1 + + if (this.CanBeShipped()) + numsteps++ + if (this.CanBeBuyOnline()) + numsteps++ + + return numsteps + } + + public docheckout() { + + // Può essere spedito? + + if (this.CanBeShipped()) { + // mostra form di spedizione + } + + if (this.CanBeBuyOnline()) { + // mostra form di acquisto Online + } + } + + get nextstep() { + return 0 + } + + public clickFunz(order, status) { + + if (status === shared_consts.OrderStatus.ORDER_CONFIRMED) { + // Conferma Ordine + } + + const statusStr = shared_consts.getStatusStr(status) + + this.$q.dialog({ + message: 'Impostare l\'ordine n. ' + order.numorder + ' ' + statusStr + ' ?', + ok: { + label: this.$t('dialog.yes'), + push: true + }, + cancel: { + label: this.$t('dialog.cancel') + }, + title: 'Ordine' + }).onOk(async () => { + + this.statusnow = await Products.actions.UpdateOrderStatus({ order_id: order._id, status }) + + if (this.statusnow === status) { + order.status = this.statusnow + this.updateorders() + tools.showPositiveNotif(this.$q, 'Ordine ' + statusStr) + } + // this.change_field('status') + // this.change_field('status') + }) + } + + +} diff --git a/src/views/ecommerce/orderInfo/orderInfo.vue b/src/views/ecommerce/orderInfo/orderInfo.vue new file mode 100755 index 00000000..f19108aa --- /dev/null +++ b/src/views/ecommerce/orderInfo/orderInfo.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/views/ecommerce/productInfo/index.ts b/src/views/ecommerce/productInfo/index.ts new file mode 100755 index 00000000..7a92299f --- /dev/null +++ b/src/views/ecommerce/productInfo/index.ts @@ -0,0 +1 @@ +export {default as ProductInfo} from './ProductInfo.vue' diff --git a/src/views/ecommerce/productInfo/productInfo.scss b/src/views/ecommerce/productInfo/productInfo.scss new file mode 100755 index 00000000..9df13d3c --- /dev/null +++ b/src/views/ecommerce/productInfo/productInfo.scss @@ -0,0 +1,5 @@ +$heightBtn: 100%; + +.card .product-image { + height: 300px; +} diff --git a/src/views/ecommerce/productInfo/productInfo.ts b/src/views/ecommerce/productInfo/productInfo.ts new file mode 100755 index 00000000..2af881a0 --- /dev/null +++ b/src/views/ecommerce/productInfo/productInfo.ts @@ -0,0 +1,51 @@ +import Vue from 'vue' +import { Component, Prop, Watch } from 'vue-property-decorator' + +import { + IAction, + IDrag, IProduct, + IProductsState, ITodo, ITodosState, + TypeProj +} from '../../../model/index' +import { SingleProject } from '../../../components/projects/SingleProject/index' +import { CTodo } from '../../../components/todos/CTodo' + +import { tools } from '../../../store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' +import { lists } from '../../../store/Modules/lists' +import * as ApiTables from '../../../store/Modules/ApiTables' + +import { GlobalStore, Projects, Todos } from '@store' +import { UserStore } from '@store' + +import { Getter } from 'vuex-class' + +import { date, Screen } from 'quasar' +import { CProgress } from '../../../components/CProgress' +import { CDate } from '../../../components/CDate' +import { RouteNames } from '@src/router/route-names' +import { CProductCard } from '@src/components/CProductCard' +import { Action } from 'vuex' +import Products from '@src/store/Modules/Products' + +const namespace: string = 'Products' + +@Component({ + name: 'ProductInfo', + components: { SingleProject, CProgress, CTodo, CDate, CProductCard } +}) + +export default class ProductInfo extends Vue { + public $q: any + public code: string = '' + + public created() { + console.log('created productInfo') + console.log(this.$route) + if (!!this.$route.params.codprod) { + this.code = this.$route.params.codprod.toString() + } + + console.log('this.code', this.code) + } +} diff --git a/src/views/ecommerce/productInfo/productInfo.vue b/src/views/ecommerce/productInfo/productInfo.vue new file mode 100755 index 00000000..7b0505e8 --- /dev/null +++ b/src/views/ecommerce/productInfo/productInfo.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/views/ecommerce/productsList/index.ts b/src/views/ecommerce/productsList/index.ts new file mode 100755 index 00000000..4a561420 --- /dev/null +++ b/src/views/ecommerce/productsList/index.ts @@ -0,0 +1 @@ +export {default as ProductsList} from './productsList.vue' diff --git a/src/views/ecommerce/productsList/productsList.scss b/src/views/ecommerce/productsList/productsList.scss new file mode 100755 index 00000000..9df13d3c --- /dev/null +++ b/src/views/ecommerce/productsList/productsList.scss @@ -0,0 +1,5 @@ +$heightBtn: 100%; + +.card .product-image { + height: 300px; +} diff --git a/src/views/ecommerce/productsList/productsList.ts b/src/views/ecommerce/productsList/productsList.ts new file mode 100755 index 00000000..94945e76 --- /dev/null +++ b/src/views/ecommerce/productsList/productsList.ts @@ -0,0 +1,55 @@ +import { defineComponent, onMounted, ref } from 'vue' +import { tools } from '@store/Modules/tools' +import { useUserStore } from '@store/UserStore' +import { useRouter } from 'vue-router' +import { useGlobalStore } from '@store/globalStore' +import { useProducts } from '@store/Products' +import { useI18n } from '@/boot/i18n' +import { toolsext } from '@store/Modules/toolsext' +import { useQuasar } from 'quasar' +import { costanti } from '@costanti' + +import { CProductCard } from '@src/components/CProductCard' + + +export default defineComponent({ + name: 'ProductsList', + components: { CProductCard }, + filters: { + capitalize(value: any) { + if (!value) { + return '' + } + value = value.toString() + return value.charAt(0).toUpperCase() + value.slice(1) + } + }, + props: {}, + setup() { + const userStore = useUserStore() + const globalStore = useGlobalStore() + const productStore = useProducts() + const $router = useRouter() + const $q = useQuasar() + const { t } = useI18n(); + + function mounted() { + // Inizializza + productStore.loadProducts() + } + function getProducts() { + return productStore.getProducts() + } + + onMounted(mounted) + + return { + userStore, + costanti, + tools, + toolsext, + getProducts, + } + } +}) + diff --git a/src/views/ecommerce/productsList/productsList.vue b/src/views/ecommerce/productsList/productsList.vue new file mode 100755 index 00000000..62273ab3 --- /dev/null +++ b/src/views/ecommerce/productsList/productsList.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/src/views/scheletro_convers/scheletro_convers.scss b/src/views/scheletro_convers/scheletro_convers.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/views/scheletro_convers/scheletro_convers.ts b/src/views/scheletro_convers/scheletro_convers.ts new file mode 100755 index 00000000..ac5dd3da --- /dev/null +++ b/src/views/scheletro_convers/scheletro_convers.ts @@ -0,0 +1,40 @@ +import { defineComponent, onMounted, ref } from 'vue' +import { tools } from '@store/Modules/tools' +import { useUserStore } from '@store/UserStore' +import { useRouter } from 'vue-router' +import { useGlobalStore } from '@store/globalStore' +import { useProducts } from '@store/Products' +import { useI18n } from '@/boot/i18n' +import { toolsext } from '@store/Modules/toolsext' +import { useQuasar } from 'quasar' +import { costanti } from '@costanti' + + +export default defineComponent({ + name: 'Scheletro', + components: { }, + props: {}, + setup() { + const userStore = useUserStore() + const globalStore = useGlobalStore() + const productStore = useProducts() + const $router = useRouter() + const $q = useQuasar() + const { t } = useI18n(); + + + function mounted() { + // Inizializza + + } + + onMounted(mounted) + + return { + userStore, + costanti, + tools, + toolsext, + } + } +}) diff --git a/src/views/scheletro_convers/scheletro_convers.vue b/src/views/scheletro_convers/scheletro_convers.vue new file mode 100755 index 00000000..1bc2f682 --- /dev/null +++ b/src/views/scheletro_convers/scheletro_convers.vue @@ -0,0 +1,4 @@ + \ No newline at end of file