- Aggiunto bottone Aggiungi al Carrello sulla lista dei libri dei cataloghi
This commit is contained in:
4
.env
4
.env
@@ -1,6 +1,6 @@
|
||||
VITE_APP_VERSION="1.2.52"
|
||||
VITE_APP_VERSION="1.2.53"
|
||||
VITE_LANG_DEFAULT="it"
|
||||
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
VITE_SERVICE_WORKER_FILE="sw-1.2.52.js"
|
||||
VITE_SERVICE_WORKER_FILE="sw-1.2.53.js"
|
||||
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||
VITE_VUE_ROUTER_MODE="history"
|
||||
@@ -10,7 +10,7 @@
|
||||
<meta name="description" content="<%= productDescription %>">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<meta name="version" content="1.2.52">
|
||||
<meta name="version" content="1.2.53">
|
||||
<meta name="viewport"
|
||||
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
|
||||
|
||||
|
||||
14
package.json
14
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gruppomacro",
|
||||
"version": "1.2.52",
|
||||
"version": "1.2.53",
|
||||
"description": "Gruppo Macro",
|
||||
"productName": "Gruppo Macro",
|
||||
"author": "Surya",
|
||||
@@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.52' quasar dev",
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.53' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "APP_VERSION='1.2.52' quasar build -m spa",
|
||||
"buildspa": "APP_VERSION='1.2.53' quasar build -m spa",
|
||||
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.52' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.52' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.53' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.53' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cnm",
|
||||
"version": "1.2.52",
|
||||
"version": "1.2.53",
|
||||
"description": "Comunita Nuovo Mondo",
|
||||
"productName": "ComunitaNuovoMondo",
|
||||
"author": "Surya",
|
||||
@@ -9,7 +9,7 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.52' quasar dev",
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.53' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production quasar build -m pwa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.52' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.52' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.53' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.53' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "freeplanet",
|
||||
"version": "1.2.52",
|
||||
"version": "1.2.53",
|
||||
"description": "freeplanet",
|
||||
"productName": "freeplanet",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8087 APP_VERSION='1.2.52' quasar dev",
|
||||
"dev": "PORT=8087 APP_VERSION='1.2.53' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.52' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.52' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.53' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.53' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gruppomacro",
|
||||
"version": "1.2.52",
|
||||
"version": "1.2.53",
|
||||
"description": "Gruppo Macro",
|
||||
"productName": "Gruppo Macro",
|
||||
"author": "Surya",
|
||||
@@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.52' quasar dev",
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.53' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "APP_VERSION='1.2.52' quasar build -m spa",
|
||||
"buildspa": "APP_VERSION='1.2.53' quasar build -m spa",
|
||||
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.52' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.52' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.53' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.53' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "kolibrilab",
|
||||
"version": "1.2.52",
|
||||
"version": "1.2.53",
|
||||
"description": "kolibrilab",
|
||||
"productName": "kolibrilab",
|
||||
"author": "Surya Paolo",
|
||||
@@ -8,11 +8,11 @@
|
||||
"keywords": [],
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.52' quasar dev",
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.53' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -20,8 +20,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.52' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.52' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.53' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.53' quasar dev",
|
||||
"spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nutriben",
|
||||
"version": "1.2.52",
|
||||
"version": "1.2.53",
|
||||
"description": "Nutriben",
|
||||
"productName": "Nutriben",
|
||||
"author": "Surya",
|
||||
@@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8093 APP_VERSION='1.2.52' quasar dev",
|
||||
"dev": "PORT=8093 APP_VERSION='1.2.53' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "APP_VERSION='1.2.52' quasar build -m spa",
|
||||
"buildspa": "APP_VERSION='1.2.53' quasar build -m spa",
|
||||
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.52' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.52' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.53' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.53' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "piuchebuono",
|
||||
"version": "1.2.52",
|
||||
"version": "1.2.53",
|
||||
"description": "PiuCheBuono",
|
||||
"productName": "PiuCheBuono",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8085 APP_VERSION='1.2.52' quasar dev",
|
||||
"dev": "PORT=8085 APP_VERSION='1.2.53' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.52' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.52' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.53' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.53' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "riso",
|
||||
"version": "1.2.52",
|
||||
"version": "1.2.53",
|
||||
"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",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "APP_VERSION='1.2.52' PORT=8084 quasar dev",
|
||||
"dev": "APP_VERSION='1.2.53' PORT=8084 quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.52' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.53' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.52' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.52' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.53' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.53' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/* global workbox */
|
||||
/* global cfgenv */
|
||||
|
||||
const VITE_APP_VERSION = '1.2.52';
|
||||
const VITE_APP_VERSION = '1.2.53';
|
||||
|
||||
// Costanti di configurazione
|
||||
const DYNAMIC_CACHE = 'dynamic-cache-v2';
|
||||
|
||||
@@ -328,6 +328,7 @@ export const shared_consts = {
|
||||
TABLES_MYGROUPS: 'mygroups',
|
||||
TABLES_ATTIVITAS: 'attivitas',
|
||||
TABLES_CATALOG: 'catalogs',
|
||||
TABLES_PRODUCTS: 'products',
|
||||
TABLES_LISTA_EDITORI: 'lista_editori',
|
||||
TABLES_RACCOLTACATALOGHIS: 'raccoltacataloghis',
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ export default defineComponent({
|
||||
const { t } = useI18n();
|
||||
const userStore = useUserStore();
|
||||
const globalStore = useGlobalStore();
|
||||
const products = useProducts();
|
||||
const Products = useProducts();
|
||||
|
||||
const listord = ref(<IOrderCart[]>[]);
|
||||
const sumval = ref(0);
|
||||
@@ -137,19 +137,19 @@ export default defineComponent({
|
||||
const field_updated_fromGM = ref('');
|
||||
const dataextractedWeb = ref('');
|
||||
|
||||
const widthoggetto = ref(40)
|
||||
const heightoggetto = ref(40)
|
||||
const widthoggetto = ref(40);
|
||||
const heightoggetto = ref(40);
|
||||
|
||||
// Crea una copia locale reattiva di modelValue
|
||||
const optcatalogo = ref<IOptCatalogo>({ ...props.modelValue });
|
||||
|
||||
const mywidthogg = computed(() => {
|
||||
return widthoggetto.value * tools.getScaleX(optcatalogo.value, props.scheda)
|
||||
})
|
||||
return widthoggetto.value * tools.getScaleX(optcatalogo.value, props.scheda);
|
||||
});
|
||||
|
||||
const myheightogg = computed(() => {
|
||||
return heightoggetto.value * tools.getScaleY(optcatalogo.value, props.scheda)
|
||||
})
|
||||
return heightoggetto.value * tools.getScaleY(optcatalogo.value, props.scheda);
|
||||
});
|
||||
|
||||
const editOn = computed({
|
||||
get(): boolean {
|
||||
@@ -213,7 +213,7 @@ export default defineComponent({
|
||||
const scale = ref(1);
|
||||
|
||||
const getTesto_Right = computed(() => {
|
||||
return products.replaceKeyWordsByProduct(
|
||||
return Products.replaceKeyWordsByProduct(
|
||||
optcatalogo.value,
|
||||
myproduct.value!,
|
||||
props.scheda.testo_right!,
|
||||
@@ -221,7 +221,7 @@ export default defineComponent({
|
||||
);
|
||||
});
|
||||
const getTesto_Right_attaccato = computed(() => {
|
||||
return products.replaceKeyWordsByProduct(
|
||||
return Products.replaceKeyWordsByProduct(
|
||||
optcatalogo.value,
|
||||
myproduct.value!,
|
||||
props.scheda.testo_right_attaccato!,
|
||||
@@ -229,7 +229,7 @@ export default defineComponent({
|
||||
);
|
||||
});
|
||||
const getTesto_Debug = computed(() => {
|
||||
return products.replaceKeyWordsByProduct(
|
||||
return Products.replaceKeyWordsByProduct(
|
||||
optcatalogo.value,
|
||||
myproduct.value!,
|
||||
{ contenuto: '{debug}', maxlength: 10000 },
|
||||
@@ -238,7 +238,7 @@ export default defineComponent({
|
||||
});
|
||||
|
||||
const getTesto_Bottom = computed(() => {
|
||||
return products.replaceKeyWordsByProduct(
|
||||
return Products.replaceKeyWordsByProduct(
|
||||
optcatalogo.value,
|
||||
myproduct.value!,
|
||||
props.scheda.testo_bottom!,
|
||||
@@ -255,7 +255,7 @@ export default defineComponent({
|
||||
|
||||
/*const myproduct = computed((): IProduct => {
|
||||
console.log('getproduct computed')
|
||||
const ris = products.getProduct(props.code)
|
||||
const ris = Products.getProduct(props.code)
|
||||
console.log(' received', ris)
|
||||
return ris
|
||||
})*/
|
||||
@@ -271,7 +271,7 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
if (myproduct.value) {
|
||||
const ris = await products.addtoCartBase({
|
||||
const ris = await Products.addtoCartBase({
|
||||
$q,
|
||||
t,
|
||||
id: myproduct.value._id,
|
||||
@@ -286,8 +286,7 @@ export default defineComponent({
|
||||
|
||||
function getnumstore() {
|
||||
if (myproduct.value) {
|
||||
if (myproduct.value.storehouses)
|
||||
return myproduct.value.storehouses.length;
|
||||
if (myproduct.value.storehouses) return myproduct.value.storehouses.length;
|
||||
else return 0;
|
||||
}
|
||||
return 0;
|
||||
@@ -320,13 +319,6 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
|
||||
function initproduct() {
|
||||
myorder.quantity = 0;
|
||||
myorder.quantitypreordered = 0;
|
||||
myorder.idStorehouse = '';
|
||||
myorder.idGasordine = '';
|
||||
}
|
||||
|
||||
async function updateproduct(atload: boolean, forza?: boolean) {
|
||||
let carica = true;
|
||||
|
||||
@@ -343,13 +335,13 @@ export default defineComponent({
|
||||
updateproductmodif(null, forza);
|
||||
}
|
||||
|
||||
// products.updateQuantityAvailable(myproduct.value._id)
|
||||
// Products.updateQuantityAvailable(myproduct.value._id)
|
||||
}
|
||||
|
||||
async function ricarica() {
|
||||
endload.value = false;
|
||||
if (myproduct.value) {
|
||||
const prod = await products.loadProductById(myproduct.value._id);
|
||||
const prod = await Products.loadProductById(myproduct.value._id);
|
||||
if (prod) {
|
||||
myproduct.value = prod;
|
||||
}
|
||||
@@ -361,9 +353,9 @@ export default defineComponent({
|
||||
console.log('CCATALOGOCARD: updateproductmodif');
|
||||
try {
|
||||
if (element?._id) {
|
||||
myproduct.value = await products.getProductById(element?._id, forza);
|
||||
myproduct.value = await Products.getProductById(element?._id, forza);
|
||||
} else {
|
||||
myproduct.value = await products.getProductById(props.id, forza);
|
||||
myproduct.value = await Products.getProductById(props.id, forza);
|
||||
}
|
||||
|
||||
updateLabel();
|
||||
@@ -441,9 +433,7 @@ export default defineComponent({
|
||||
myproduct.value.gasordine.data_arrivo_merce
|
||||
);
|
||||
if (myproduct.value.gasordine.dataora_ritiro)
|
||||
dataRitiro = tools.getstrDateTime(
|
||||
myproduct.value.gasordine.dataora_ritiro
|
||||
);
|
||||
dataRitiro = tools.getstrDateTime(myproduct.value.gasordine.dataora_ritiro);
|
||||
} else {
|
||||
dataArrivoMerce = '';
|
||||
dataRitiro = '';
|
||||
@@ -451,8 +441,7 @@ export default defineComponent({
|
||||
} catch (e) {}
|
||||
if (labelDataArrivoMerce.value !== dataArrivoMerce)
|
||||
labelDataArrivoMerce.value = dataArrivoMerce;
|
||||
if (labelDataRitiro.value !== dataRitiro)
|
||||
labelDataRitiro.value = dataRitiro;
|
||||
if (labelDataRitiro.value !== dataRitiro) labelDataRitiro.value = dataRitiro;
|
||||
|
||||
updateTimerLabel();
|
||||
}
|
||||
@@ -487,9 +476,7 @@ export default defineComponent({
|
||||
return (
|
||||
myproduct.value.gasordine &&
|
||||
myproduct.value.gasordine.dataora_chiusura_ordini &&
|
||||
tools.getCountDown(
|
||||
myproduct.value.gasordine.dataora_chiusura_ordini
|
||||
) === ''
|
||||
tools.getCountDown(myproduct.value.gasordine.dataora_chiusura_ordini) === ''
|
||||
);
|
||||
} else return false;
|
||||
}
|
||||
@@ -501,7 +488,7 @@ export default defineComponent({
|
||||
|
||||
async function load() {
|
||||
indvariazSel.value = -1;
|
||||
initproduct();
|
||||
Products.initproduct(myorder);
|
||||
await updateproduct(true, true);
|
||||
labelDataArrivoMerce.value = '';
|
||||
labelDataRitiro.value = '';
|
||||
@@ -509,30 +496,9 @@ export default defineComponent({
|
||||
// console.log('Load', myproduct.value.name)
|
||||
|
||||
if (myproduct.value) {
|
||||
arrordersCart.value = products.getOrdersCartInAttesaByIdProduct(
|
||||
myproduct.value._id
|
||||
);
|
||||
|
||||
if (
|
||||
myproduct.value.storehouses &&
|
||||
myproduct.value.storehouses.length === 1
|
||||
) {
|
||||
// Se solo 1 presente, metto fisso l'unico negozio !
|
||||
myorder.idStorehouse = myproduct.value.storehouses[0]._id;
|
||||
}
|
||||
|
||||
if (myproduct.value.gasordine) {
|
||||
myorder.idGasordine = myproduct.value.gasordine._id;
|
||||
}
|
||||
|
||||
const ord = products.getOrderProductInCart(myproduct.value._id);
|
||||
if (ord) {
|
||||
myorder.quantity = ord.quantity;
|
||||
myorder.quantitypreordered = ord.quantitypreordered;
|
||||
|
||||
// Seleziona il Negozio che avevo già scelto nell'ordine !
|
||||
if (ord.idStorehouse) storeSelected.value = ord.idStorehouse;
|
||||
}
|
||||
Products.setMyOrder(myorder, myproduct.value, storeSelected.value, {
|
||||
setstore: true,
|
||||
});
|
||||
}
|
||||
|
||||
updateLabel();
|
||||
@@ -554,9 +520,7 @@ export default defineComponent({
|
||||
function visuListDisponibili() {
|
||||
if (myproduct.value) {
|
||||
openlistorders.value = true;
|
||||
sumval.value = products.getSumQtyOrderProductInOrdersCart(
|
||||
myproduct.value._id
|
||||
);
|
||||
sumval.value = Products.getSumQtyOrderProductInOrdersCart(myproduct.value._id);
|
||||
|
||||
listord.value = arrordersCart.value.filter((orderscart: IOrderCart) =>
|
||||
orderscart.items!.reduce((accumulator, item) => {
|
||||
@@ -569,9 +533,7 @@ export default defineComponent({
|
||||
function visuListBookable() {
|
||||
if (myproduct.value) {
|
||||
openlistorders.value = true;
|
||||
sumval.value = products.getSumQtyPreOrderInOrdersCart(
|
||||
myproduct.value._id
|
||||
);
|
||||
sumval.value = Products.getSumQtyPreOrderInOrdersCart(myproduct.value._id);
|
||||
|
||||
listord.value = arrordersCart.value.filter((orderscart: IOrderCart) =>
|
||||
orderscart.items!.reduce((accumulator, item) => {
|
||||
@@ -601,8 +563,7 @@ export default defineComponent({
|
||||
(myproduct.value.bookableGASBloccatiQty +
|
||||
myproduct.value.QuantitaPrenotateInAttesa!) *
|
||||
myproduct.value.productInfo.weight!,
|
||||
myproduct.value.qtyToReachForGas *
|
||||
myproduct.value.productInfo.weight!
|
||||
myproduct.value.qtyToReachForGas * myproduct.value.productInfo.weight!
|
||||
) / 100
|
||||
);
|
||||
else return 0;
|
||||
@@ -770,12 +731,11 @@ export default defineComponent({
|
||||
loading.value = true;
|
||||
updatefromgm.value = true;
|
||||
field_updated_fromGM.value = '';
|
||||
field_updated_fromGM.value =
|
||||
await globalStore.getGM_FieldOf_T_Web_Articoli(
|
||||
myproduct.value.productInfo.sku!,
|
||||
field,
|
||||
shared_consts.CmdQueryMs.GET
|
||||
);
|
||||
field_updated_fromGM.value = await globalStore.getGM_FieldOf_T_Web_Articoli(
|
||||
myproduct.value.productInfo.sku!,
|
||||
field,
|
||||
shared_consts.CmdQueryMs.GET
|
||||
);
|
||||
loading.value = false;
|
||||
}
|
||||
}
|
||||
@@ -798,7 +758,7 @@ export default defineComponent({
|
||||
}
|
||||
if (!dataupdated) {
|
||||
tools.showNegativeNotif($q, t('dbgm.dati_non_estratti'));
|
||||
visudataextracted.value = false
|
||||
visudataextracted.value = false;
|
||||
}
|
||||
return dataupdated;
|
||||
})
|
||||
@@ -858,7 +818,7 @@ export default defineComponent({
|
||||
openlistorders,
|
||||
func_tools,
|
||||
toolsext,
|
||||
products,
|
||||
Products,
|
||||
arrordersCart,
|
||||
endload,
|
||||
shared_consts,
|
||||
@@ -918,7 +878,7 @@ export default defineComponent({
|
||||
widthoggetto,
|
||||
heightoggetto,
|
||||
mywidthogg,
|
||||
myheightogg
|
||||
myheightogg,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -82,16 +82,17 @@ export default defineComponent({
|
||||
// console.log('options', props.options)
|
||||
if (props.options.length > 0) {
|
||||
props.options.forEach((rec: any, index) => {
|
||||
// console.log('rec', rec)
|
||||
if (props.type === costanti.FieldType.multiselect) {
|
||||
if (!!myval.value) {
|
||||
|
||||
/*
|
||||
console.log('rec', rec)
|
||||
console.log('optval', props.optval)
|
||||
console.log('optlab', props.optlab)
|
||||
console.log('myval.value', myval.value)
|
||||
console.log('rec[props.optval]', rec[props.optval])
|
||||
|
||||
*/
|
||||
*/
|
||||
|
||||
let trovato = false
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ export default defineComponent({
|
||||
// console.log('$route.path', $route.path)
|
||||
rec.value = globalStore.getPage(props.path)
|
||||
|
||||
console.log('rec', rec)
|
||||
// console.log('rec', rec)
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
@@ -74,7 +74,7 @@ export default defineComponent({
|
||||
const argomentistr = ref('')
|
||||
const numprodtot = ref(0)
|
||||
const editorestr = ref('')
|
||||
const editore_escludi_str = ref('')
|
||||
const editorestr_escludi = ref('')
|
||||
|
||||
const products = useProducts()
|
||||
|
||||
@@ -142,11 +142,11 @@ export default defineComponent({
|
||||
editorestr.value += rectrovato?.name + ' '
|
||||
}
|
||||
}
|
||||
editore_escludi_str.value = ''
|
||||
editorestr_escludi.value = ''
|
||||
if (myrec.value.editore_escludi) {
|
||||
for (const receditore of myrec.value.editore_escludi) {
|
||||
const rectrovato: IPublisher = products.publishers.find((editore: IPublisher) => editore._id === receditore)
|
||||
editores_escludi_tr.value += rectrovato?.name + ' '
|
||||
editorestr_escludi.value += rectrovato?.name + ' '
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
<span class="text-blue">{{ editorestr }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="!tools.isUtente() && editore_escludi_str && dettagli"
|
||||
v-if="!tools.isUtente() && editorestr_escludi && dettagli"
|
||||
class="text-caption text-h7 text-grey q-pb-xs"
|
||||
>
|
||||
<q-icon name="fas fa-book-open" /> {{ $t('cataloglist.editore_escludi') }}:
|
||||
|
||||
@@ -1,30 +1,38 @@
|
||||
import type { PropType} from 'vue';
|
||||
import { defineComponent, ref, toRef, computed, watch, onMounted, reactive, onBeforeUnmount } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useQuasar } from 'quasar'
|
||||
import type { PropType } from 'vue';
|
||||
import {
|
||||
defineComponent,
|
||||
ref,
|
||||
toRef,
|
||||
computed,
|
||||
watch,
|
||||
onMounted,
|
||||
reactive,
|
||||
onBeforeUnmount,
|
||||
} from 'vue';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useUserStore } from '@store/UserStore';
|
||||
import { useGlobalStore } from '@store/globalStore';
|
||||
import { useQuasar } from 'quasar';
|
||||
|
||||
import { CTitleBanner } from '../CTitleBanner'
|
||||
import { CCardState } from '../CCardState'
|
||||
import { CCopyBtn } from '../CCopyBtn'
|
||||
import { CMyFieldRec } from '../CMyFieldRec'
|
||||
import { CBarCode } from '../CBarCode'
|
||||
import { CText } from '../CText'
|
||||
import { CMyValueDb } from '../CMyValueDb'
|
||||
import { CTitleBanner } from '../CTitleBanner';
|
||||
import { CCardState } from '../CCardState';
|
||||
import { CCopyBtn } from '../CCopyBtn';
|
||||
import { CMyFieldRec } from '../CMyFieldRec';
|
||||
import { CBarCode } from '../CBarCode';
|
||||
import { CText } from '../CText';
|
||||
import { CMyValueDb } from '../CMyValueDb';
|
||||
|
||||
import { func_tools, toolsext } from '@store/Modules/toolsext'
|
||||
import { func_tools, toolsext } from '@store/Modules/toolsext';
|
||||
|
||||
import type { IGasordine, IOrder, IOrderCart, IProduct } from '@src/model';
|
||||
import { IBaseOrder } from '@src/model'
|
||||
import { tools } from '@tools'
|
||||
import { useProducts } from '@store/Products'
|
||||
import { IBaseOrder } from '@src/model';
|
||||
import { tools } from '@tools';
|
||||
import { useProducts } from '@store/Products';
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
import { costanti } from '@costanti'
|
||||
import { shared_consts } from '@src/common/shared_vuejs';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { costanti } from '@costanti';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CProductCard',
|
||||
@@ -51,27 +59,32 @@ export default defineComponent({
|
||||
},
|
||||
},
|
||||
components: {
|
||||
CTitleBanner, CCardState, CCopyBtn,
|
||||
CMyFieldRec, CMyValueDb, CBarCode, CText,
|
||||
CTitleBanner,
|
||||
CCardState,
|
||||
CCopyBtn,
|
||||
CMyFieldRec,
|
||||
CMyValueDb,
|
||||
CBarCode,
|
||||
CText,
|
||||
},
|
||||
setup(props, { emit }) {
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
const userStore = useUserStore()
|
||||
const globalStore = useGlobalStore()
|
||||
const products = useProducts()
|
||||
const $q = useQuasar();
|
||||
const { t } = useI18n();
|
||||
const userStore = useUserStore();
|
||||
const globalStore = useGlobalStore();
|
||||
const Products = useProducts();
|
||||
|
||||
const listord = ref(<IOrderCart[]>[])
|
||||
const sumval = ref(0)
|
||||
const editOn = ref(false)
|
||||
const listord = ref(<IOrderCart[]>[]);
|
||||
const sumval = ref(0);
|
||||
const editOn = ref(false);
|
||||
|
||||
const site = ref(globalStore.site)
|
||||
const site = ref(globalStore.site);
|
||||
|
||||
const $router = useRouter()
|
||||
const $router = useRouter();
|
||||
|
||||
const fullscreenImage = ref(<any>null)
|
||||
const fullscreenImage = ref(<any>null);
|
||||
|
||||
const apriSchedaPDF = ref(false)
|
||||
const apriSchedaPDF = ref(false);
|
||||
|
||||
let myorder = reactive(<IOrder>{
|
||||
idapp: tools.getEnv('VITE_APP_ID'),
|
||||
@@ -81,219 +94,209 @@ export default defineComponent({
|
||||
idGasordine: '',
|
||||
storehouse: {},
|
||||
gasordine: { active: false },
|
||||
})
|
||||
});
|
||||
|
||||
const storeSelected = ref('')
|
||||
const arrordersCart = ref(<IOrderCart[]>[])
|
||||
const storeSelected = ref('');
|
||||
const arrordersCart = ref(<IOrderCart[]>[]);
|
||||
|
||||
const timerInterval = ref(<any>null)
|
||||
const timerLabelScadenza = ref('')
|
||||
const labelDataRitiro = ref('')
|
||||
const labelDataArrivoMerce = ref('')
|
||||
const timerInterval = ref(<any>null);
|
||||
const timerLabelScadenza = ref('');
|
||||
const labelDataRitiro = ref('');
|
||||
const labelDataArrivoMerce = ref('');
|
||||
|
||||
const openlistorders = ref(false)
|
||||
const endload = ref(false)
|
||||
const myproduct = ref(<IProduct>{})
|
||||
const openlistorders = ref(false);
|
||||
const endload = ref(false);
|
||||
const myproduct = ref(<IProduct>{});
|
||||
|
||||
const isFullScreen = ref(false)
|
||||
const imageSrc = ref('URL_DEL_TUO_FILE_IMMAGINE')
|
||||
const startX = ref(0)
|
||||
const startY = ref(0)
|
||||
const scale = ref(1)
|
||||
|
||||
|
||||
watch(() => editOn.value, (to: any, from: any) => {
|
||||
if (!editOn.value)
|
||||
ricarica()
|
||||
})
|
||||
const isFullScreen = ref(false);
|
||||
const imageSrc = ref('URL_DEL_TUO_FILE_IMMAGINE');
|
||||
const startX = ref(0);
|
||||
const startY = ref(0);
|
||||
const scale = ref(1);
|
||||
|
||||
watch(
|
||||
() => editOn.value,
|
||||
(to: any, from: any) => {
|
||||
if (!editOn.value) ricarica();
|
||||
}
|
||||
);
|
||||
|
||||
/*const myproduct = computed((): IProduct => {
|
||||
console.log('getproduct computed')
|
||||
const ris = products.getProduct(props.code)
|
||||
const ris = Products.getProduct(props.code)
|
||||
console.log(' received', ris)
|
||||
return ris
|
||||
})*/
|
||||
|
||||
|
||||
function iconWhishlist(order: IProduct) {
|
||||
if (true) {
|
||||
return 'far fa-heart'
|
||||
return 'far fa-heart';
|
||||
} else {
|
||||
return 'fas fa-heart'
|
||||
return 'fas fa-heart';
|
||||
}
|
||||
}
|
||||
async function addtoCart(add: boolean) {
|
||||
|
||||
if (!userStore.isLogged) {
|
||||
tools.showNeutralNotif($q, t('ecomm.area_personale'))
|
||||
globalStore.rightDrawerOpen = true
|
||||
return false
|
||||
tools.showNeutralNotif($q, t('ecomm.area_personale'));
|
||||
globalStore.rightDrawerOpen = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
const ris = await products.addtoCartBase({ $q, t, id: myproduct.value._id, order: myorder, addqty: add })
|
||||
updateproduct()
|
||||
const ris = await Products.addtoCartBase({
|
||||
$q,
|
||||
t,
|
||||
id: myproduct.value._id,
|
||||
order: myorder,
|
||||
addqty: add,
|
||||
});
|
||||
updateproduct();
|
||||
if (ris && ris.myord) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function getnumstore() {
|
||||
if (myproduct.value) {
|
||||
if (myproduct.value.storehouses)
|
||||
return myproduct.value.storehouses.length
|
||||
else
|
||||
return 0
|
||||
if (myproduct.value.storehouses) return myproduct.value.storehouses.length;
|
||||
else return 0;
|
||||
}
|
||||
return 0
|
||||
return 0;
|
||||
}
|
||||
|
||||
function getSingleStorehouse() {
|
||||
try {
|
||||
const mystore = myproduct.value.storehouses[0]
|
||||
if (mystore)
|
||||
return mystore.name + ' (' + mystore.city + ')'
|
||||
else
|
||||
return ''
|
||||
const mystore = myproduct.value.storehouses[0];
|
||||
if (mystore) return mystore.name + ' (' + mystore.city + ')';
|
||||
else return '';
|
||||
} catch (e) {
|
||||
return ''
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
function getSingleGasordine(gasordine: IGasordine) {
|
||||
try {
|
||||
const mygas = gasordine
|
||||
const mygas = gasordine;
|
||||
if (mygas)
|
||||
/*return mygas.name + ' (' + mygas.city + ') ' + t('gas.dataora_chiusura_ordini') + ': ' + tools.getstrDateShort(mygas.dataora_chiusura_ordini)
|
||||
+ ' ' + t('gas.data_arrivo_merce') + ': ' + tools.getstrDateShort(mygas.data_arrivo_merce)
|
||||
+ ' ' + t('gas.dataora_ritiro') + ': ' + tools.getstrDateShort(mygas.dataora_ritiro)*/
|
||||
|
||||
return mygas.name
|
||||
else
|
||||
return ''
|
||||
return mygas.name;
|
||||
else return '';
|
||||
} catch (e) {
|
||||
return ''
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
function initproduct() {
|
||||
|
||||
myorder.quantity = 0
|
||||
myorder.quantitypreordered = 0
|
||||
myorder.idStorehouse = ''
|
||||
myorder.idGasordine = ''
|
||||
|
||||
}
|
||||
|
||||
async function updateproduct() {
|
||||
|
||||
// console.log('props.id', props.id)
|
||||
myproduct.value = await products.getProductById(props.id)
|
||||
myproduct.value = await Products.getProductById(props.id);
|
||||
|
||||
// products.updateQuantityAvailable(myproduct.value._id)
|
||||
// Products.updateQuantityAvailable(myproduct.value._id)
|
||||
}
|
||||
|
||||
async function ricarica() {
|
||||
endload.value = false
|
||||
const prod = await products.loadProductById(myproduct.value._id)
|
||||
endload.value = false;
|
||||
const prod = await Products.loadProductById(myproduct.value._id);
|
||||
if (prod) {
|
||||
myproduct.value = prod
|
||||
myproduct.value = prod;
|
||||
}
|
||||
await load()
|
||||
endload.value = true
|
||||
|
||||
await load();
|
||||
endload.value = true;
|
||||
}
|
||||
|
||||
async function updateproductmodif(element: any) {
|
||||
// console.log('updateproductmodif')
|
||||
try {
|
||||
if (element?._id) {
|
||||
myproduct.value = await products.getProductById(element?._id)
|
||||
myproduct.value = await Products.getProductById(element?._id);
|
||||
} else {
|
||||
myproduct.value = await products.getProductById(props.id)
|
||||
myproduct.value = await Products.getProductById(props.id);
|
||||
}
|
||||
|
||||
updateLabel()
|
||||
updateLabel();
|
||||
} catch (e) {
|
||||
console.error('err', e)
|
||||
console.error('err', e);
|
||||
}
|
||||
}
|
||||
|
||||
function getStorehouses() {
|
||||
if (!myproduct.value)
|
||||
return []
|
||||
if (!myproduct.value) return [];
|
||||
|
||||
const myarr: any = []
|
||||
let ind = 1
|
||||
const myarr: any = [];
|
||||
let ind = 1;
|
||||
myproduct.value.storehouses.forEach((store) => {
|
||||
myarr.push(
|
||||
{
|
||||
id: ind,
|
||||
label: store.name + ' (' + store.city + ')',
|
||||
value: store._id
|
||||
})
|
||||
myarr.push({
|
||||
id: ind,
|
||||
label: store.name + ' (' + store.city + ')',
|
||||
value: store._id,
|
||||
});
|
||||
|
||||
ind++
|
||||
})
|
||||
ind++;
|
||||
});
|
||||
|
||||
// console.log('arraystore', myarr)
|
||||
return myarr
|
||||
return myarr;
|
||||
}
|
||||
|
||||
function checkifCartDisable() {
|
||||
// return !myorder.idStorehouse
|
||||
return isOrdineChiuso()
|
||||
return isOrdineChiuso();
|
||||
}
|
||||
|
||||
function getQtyWarn() {
|
||||
if (myorder.quantity > 0) {
|
||||
return t('ecomm.di_cui_x_in_carrello', { qty: myorder.quantity })
|
||||
return t('ecomm.di_cui_x_in_carrello', { qty: myorder.quantity });
|
||||
}
|
||||
return ''
|
||||
return '';
|
||||
}
|
||||
|
||||
function getQtyWarnPreOrdered() {
|
||||
if (myorder.quantitypreordered > 0) {
|
||||
return t('ecomm.di_cui_x_in_carrello', { qty: myorder.quantitypreordered })
|
||||
return t('ecomm.di_cui_x_in_carrello', { qty: myorder.quantitypreordered });
|
||||
}
|
||||
return ''
|
||||
return '';
|
||||
}
|
||||
|
||||
watch(() => props.id, async (newval, oldval) => {
|
||||
// console.log('change code')
|
||||
await load()
|
||||
})
|
||||
watch(
|
||||
() => props.id,
|
||||
async (newval, oldval) => {
|
||||
// console.log('change code')
|
||||
await load();
|
||||
}
|
||||
);
|
||||
|
||||
watch(() => storeSelected.value, (newval, oldval) => {
|
||||
myorder.idStorehouse = newval
|
||||
})
|
||||
watch(
|
||||
() => storeSelected.value,
|
||||
(newval, oldval) => {
|
||||
myorder.idStorehouse = newval;
|
||||
}
|
||||
);
|
||||
|
||||
function updateLabel() {
|
||||
let dataArrivoMerce = ''
|
||||
let dataRitiro = ''
|
||||
let dataArrivoMerce = '';
|
||||
let dataRitiro = '';
|
||||
try {
|
||||
if (myproduct.value && myproduct.value.gasordine) {
|
||||
if (myproduct.value.gasordine.data_arrivo_merce)
|
||||
dataArrivoMerce = tools.getstrDateShort(myproduct.value.gasordine.data_arrivo_merce)
|
||||
dataArrivoMerce = tools.getstrDateShort(
|
||||
myproduct.value.gasordine.data_arrivo_merce
|
||||
);
|
||||
if (myproduct.value.gasordine.dataora_ritiro)
|
||||
dataRitiro = tools.getstrDateTime(myproduct.value.gasordine.dataora_ritiro)
|
||||
dataRitiro = tools.getstrDateTime(myproduct.value.gasordine.dataora_ritiro);
|
||||
} else {
|
||||
dataArrivoMerce = ''
|
||||
dataRitiro = ''
|
||||
dataArrivoMerce = '';
|
||||
dataRitiro = '';
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
} catch (e) {}
|
||||
if (labelDataArrivoMerce.value !== dataArrivoMerce)
|
||||
labelDataArrivoMerce.value = dataArrivoMerce
|
||||
if (labelDataRitiro.value !== dataRitiro)
|
||||
labelDataRitiro.value = dataRitiro
|
||||
labelDataArrivoMerce.value = dataArrivoMerce;
|
||||
if (labelDataRitiro.value !== dataRitiro) labelDataRitiro.value = dataRitiro;
|
||||
|
||||
updateTimerLabel()
|
||||
updateTimerLabel();
|
||||
}
|
||||
|
||||
async function mounted() {
|
||||
await load()
|
||||
await load();
|
||||
|
||||
// Start the timer when the component is mounted
|
||||
startTimer();
|
||||
@@ -305,15 +308,24 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function updateTimerLabel() {
|
||||
if (myproduct.value && myproduct.value.gasordine && myproduct.value.gasordine._id && myproduct.value.gasordine.dataora_chiusura_ordini)
|
||||
timerLabelScadenza.value = tools.getCountDown(myproduct.value.gasordine.dataora_chiusura_ordini)
|
||||
else
|
||||
timerLabelScadenza.value = ''
|
||||
if (
|
||||
myproduct.value &&
|
||||
myproduct.value.gasordine &&
|
||||
myproduct.value.gasordine._id &&
|
||||
myproduct.value.gasordine.dataora_chiusura_ordini
|
||||
)
|
||||
timerLabelScadenza.value = tools.getCountDown(
|
||||
myproduct.value.gasordine.dataora_chiusura_ordini
|
||||
);
|
||||
else timerLabelScadenza.value = '';
|
||||
}
|
||||
|
||||
function isOrdineChiuso() {
|
||||
return myproduct.value.gasordine && myproduct.value.gasordine.dataora_chiusura_ordini &&
|
||||
return (
|
||||
myproduct.value.gasordine &&
|
||||
myproduct.value.gasordine.dataora_chiusura_ordini &&
|
||||
tools.getCountDown(myproduct.value.gasordine.dataora_chiusura_ordini) === ''
|
||||
);
|
||||
}
|
||||
|
||||
function startTimer() {
|
||||
@@ -322,76 +334,74 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
async function load() {
|
||||
initproduct()
|
||||
await updateproduct()
|
||||
labelDataArrivoMerce.value = ''
|
||||
labelDataRitiro.value = ''
|
||||
Products.initproduct(myorder);
|
||||
await updateproduct();
|
||||
|
||||
// console.log('Load', myproduct.value.name)
|
||||
// console.log('created Cproductcard', code)
|
||||
labelDataArrivoMerce.value = '';
|
||||
labelDataRitiro.value = '';
|
||||
|
||||
arrordersCart.value = products.getOrdersCartInAttesaByIdProduct(myproduct.value._id)
|
||||
arrordersCart.value = Products.getOrdersCartInAttesaByIdProduct(
|
||||
myproduct.value._id
|
||||
);
|
||||
|
||||
if (!!myproduct.value) {
|
||||
if (myproduct.value.storehouses && myproduct.value.storehouses.length === 1) {
|
||||
// Se solo 1 presente, metto fisso l'unico negozio !
|
||||
myorder.idStorehouse = myproduct.value.storehouses[0]._id
|
||||
}
|
||||
|
||||
if (myproduct.value.gasordine) {
|
||||
myorder.idGasordine = myproduct.value.gasordine._id
|
||||
}
|
||||
|
||||
const ord = products.getOrderProductInCart(myproduct.value._id)
|
||||
if (ord) {
|
||||
myorder.quantity = ord.quantity
|
||||
myorder.quantitypreordered = ord.quantitypreordered
|
||||
|
||||
// Seleziona il Negozio che avevo già scelto nell'ordine !
|
||||
if (ord.idStorehouse)
|
||||
storeSelected.value = ord.idStorehouse
|
||||
|
||||
}
|
||||
Products.setMyOrder(myorder, myproduct.value, storeSelected.value, {
|
||||
setstore: true,
|
||||
});
|
||||
}
|
||||
|
||||
updateLabel()
|
||||
updateLabel();
|
||||
|
||||
// console.log('°°° ENDLOAD °°°')
|
||||
endload.value = true
|
||||
endload.value = true;
|
||||
}
|
||||
|
||||
function getclimgproduct() {
|
||||
return 'myimgproduct centermydiv'
|
||||
return 'myimgproduct centermydiv';
|
||||
}
|
||||
|
||||
|
||||
function visuListDisponibili() {
|
||||
openlistorders.value = true
|
||||
sumval.value = products.getSumQtyOrderProductInOrdersCart(myproduct.value._id)
|
||||
openlistorders.value = true;
|
||||
sumval.value = Products.getSumQtyOrderProductInOrdersCart(myproduct.value._id);
|
||||
|
||||
listord.value = arrordersCart.value.filter((orderscart: IOrderCart) => orderscart.items!.reduce((accumulator, item) => {
|
||||
return accumulator + item.order.quantity
|
||||
}, 0))
|
||||
listord.value = arrordersCart.value.filter((orderscart: IOrderCart) =>
|
||||
orderscart.items!.reduce((accumulator, item) => {
|
||||
return accumulator + item.order.quantity;
|
||||
}, 0)
|
||||
);
|
||||
}
|
||||
|
||||
function visuListBookable() {
|
||||
openlistorders.value = true
|
||||
sumval.value = products.getSumQtyPreOrderInOrdersCart(myproduct.value._id)
|
||||
openlistorders.value = true;
|
||||
sumval.value = Products.getSumQtyPreOrderInOrdersCart(myproduct.value._id);
|
||||
|
||||
listord.value = arrordersCart.value.filter((orderscart: IOrderCart) => orderscart.items!.reduce((accumulator, item) => {
|
||||
return accumulator + item.order.quantitypreordered
|
||||
}, 0))
|
||||
listord.value = arrordersCart.value.filter((orderscart: IOrderCart) =>
|
||||
orderscart.items!.reduce((accumulator, item) => {
|
||||
return accumulator + item.order.quantitypreordered;
|
||||
}, 0)
|
||||
);
|
||||
}
|
||||
|
||||
function isOrdGas(): boolean {
|
||||
return (myproduct.value && !!myproduct.value.idGasordine && myproduct.value.gasordine! && myproduct.value.gasordine.active)
|
||||
return (
|
||||
myproduct.value &&
|
||||
!!myproduct.value.idGasordine &&
|
||||
myproduct.value.gasordine! &&
|
||||
myproduct.value.gasordine.active
|
||||
);
|
||||
}
|
||||
|
||||
function getpercqtaraggiunta(): number {
|
||||
if (myproduct.value)
|
||||
return tools.calcperc((myproduct.value.bookableGASBloccatiQty + myproduct.value.QuantitaPrenotateInAttesa!) * myproduct.value.productInfo.weight!, myproduct.value.qtyToReachForGas * myproduct.value.productInfo.weight!) / 100
|
||||
else
|
||||
return 0
|
||||
return (
|
||||
tools.calcperc(
|
||||
(myproduct.value.bookableGASBloccatiQty +
|
||||
myproduct.value.QuantitaPrenotateInAttesa!) *
|
||||
myproduct.value.productInfo.weight!,
|
||||
myproduct.value.qtyToReachForGas * myproduct.value.productInfo.weight!
|
||||
) / 100
|
||||
);
|
||||
else return 0;
|
||||
}
|
||||
|
||||
function toggleFullScreen() {
|
||||
@@ -430,7 +440,7 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function naviga(path: string) {
|
||||
$router.push(path)
|
||||
$router.push(path);
|
||||
}
|
||||
|
||||
function hasImage(): boolean {
|
||||
@@ -439,11 +449,11 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
const { imagefile, image_link } = myproduct.value.productInfo;
|
||||
return ((!!imagefile && imagefile !== '') || (!!image_link && image_link !== ''))
|
||||
return (!!imagefile && imagefile !== '') || (!!image_link && image_link !== '');
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
onBeforeUnmount(beforeDestroy)
|
||||
onMounted(mounted);
|
||||
onBeforeUnmount(beforeDestroy);
|
||||
|
||||
return {
|
||||
visuListDisponibili,
|
||||
@@ -465,7 +475,7 @@ export default defineComponent({
|
||||
openlistorders,
|
||||
func_tools,
|
||||
toolsext,
|
||||
products,
|
||||
Products,
|
||||
arrordersCart,
|
||||
endload,
|
||||
shared_consts,
|
||||
@@ -493,6 +503,6 @@ export default defineComponent({
|
||||
ricarica,
|
||||
apriSchedaPDF,
|
||||
hasImage,
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
v-if="
|
||||
(cosa === shared_consts.PROD.TUTTI && !isOrdGas()) ||
|
||||
cosa === shared_consts.PROD.BOTTEGA ||
|
||||
(cosa === shared_consts.PROD.GAS && products.getQtyAvailable(myproduct) > 0)
|
||||
(cosa === shared_consts.PROD.GAS && Products.getQtyAvailable(myproduct) > 0)
|
||||
"
|
||||
:clickable="tools.isManager()"
|
||||
style="padding: 16px !important;"
|
||||
@@ -166,7 +166,7 @@
|
||||
v-if="!editOn"
|
||||
class="prod_disp"
|
||||
>
|
||||
{{ products.getQtyAvailable(myproduct) }}
|
||||
{{ Products.getQtyAvailable(myproduct) }}
|
||||
</span>
|
||||
<CMyValueDb
|
||||
v-if="editOn"
|
||||
@@ -193,7 +193,7 @@
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section
|
||||
v-if="tools.isManager() && products.getQtyBloccataAvailable(myproduct) > 0"
|
||||
v-if="tools.isManager() && Products.getQtyBloccataAvailable(myproduct) > 0"
|
||||
>
|
||||
<q-item-section avatar>
|
||||
<q-icon
|
||||
@@ -203,7 +203,7 @@
|
||||
</q-item-section>
|
||||
<q-item-section
|
||||
v-if="
|
||||
tools.isManager() && products.getQtyBloccataAvailable(myproduct) > 0
|
||||
tools.isManager() && Products.getQtyBloccataAvailable(myproduct) > 0
|
||||
"
|
||||
>
|
||||
<q-item-label> {{ t('ecomm.bloccati') }}: </q-item-label>
|
||||
@@ -240,7 +240,7 @@
|
||||
{{ myproduct.productInfo.name }}
|
||||
</div>
|
||||
<div v-if="myproduct?.productInfo?.authors" class="text-h8 text-italic titolo_prod q-mb-sm">
|
||||
{{ products.getAutoriByArrayAuthors(myproduct.productInfo.authors) }}
|
||||
{{ Products.getAutoriByArrayAuthors(myproduct.productInfo.authors) }}
|
||||
</div>
|
||||
<div class="product_code">
|
||||
{{ t('ecomm.codice') }}: {{ myproduct.productInfo.code }}
|
||||
@@ -552,7 +552,7 @@
|
||||
</q-item-section>
|
||||
<q-item-section
|
||||
v-if="
|
||||
tools.isManager() && products.getQtyBloccataBookableAvailable(myproduct) > 0
|
||||
tools.isManager() && Products.getQtyBloccataBookableAvailable(myproduct) > 0
|
||||
"
|
||||
>
|
||||
<q-item-section avatar>
|
||||
@@ -715,7 +715,7 @@
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section
|
||||
v-if="tools.isManager() && products.getQtyBloccataAvailable(myproduct) > 0"
|
||||
v-if="tools.isManager() && Products.getQtyBloccataAvailable(myproduct) > 0"
|
||||
>
|
||||
<q-item-section avatar>
|
||||
<q-icon
|
||||
@@ -724,12 +724,12 @@
|
||||
/>
|
||||
</q-item-section>
|
||||
<q-item-section
|
||||
v-if="tools.isManager() && products.getQtyBloccataAvailable(myproduct) > 0"
|
||||
v-if="tools.isManager() && Products.getQtyBloccataAvailable(myproduct) > 0"
|
||||
>
|
||||
<q-item-label> {{ t('ecomm.bloccati') }}: </q-item-label>
|
||||
<q-item-label>
|
||||
<span class="text-black q-ml-xs text-h8">
|
||||
{{ products.getQtyBloccataAvailable(myproduct) }}</span
|
||||
{{ Products.getQtyBloccataAvailable(myproduct) }}</span
|
||||
>
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
@@ -843,16 +843,16 @@
|
||||
<q-btn
|
||||
icon="fas fa-cart-arrow-down"
|
||||
:color="
|
||||
checkifCartDisable() || !products.enableSubQty(myorder)
|
||||
checkifCartDisable() || !Products.enableSubQty(myorder)
|
||||
? 'grey'
|
||||
: 'negative'
|
||||
"
|
||||
:disable="checkifCartDisable() || !products.enableSubQty(myorder)"
|
||||
:disable="checkifCartDisable() || !Products.enableSubQty(myorder)"
|
||||
rounded
|
||||
size="md"
|
||||
:label="
|
||||
t('products.subcart', {
|
||||
qta: products.qtaNextSub(myorder, myproduct),
|
||||
qta: Products.qtaNextSub(myorder, myproduct),
|
||||
})
|
||||
"
|
||||
@click="addtoCart(false)"
|
||||
@@ -877,16 +877,16 @@
|
||||
<q-btn
|
||||
icon-right="fas fa-cart-plus"
|
||||
:color="
|
||||
checkifCartDisable() || !products.enableAddQty(myorder, myproduct)
|
||||
checkifCartDisable() || !Products.enableAddQty(myorder, myproduct)
|
||||
? 'grey'
|
||||
: 'positive'
|
||||
"
|
||||
:disable="checkifCartDisable() || !products.enableAddQty(myorder, myproduct)"
|
||||
:disable="checkifCartDisable() || !Products.enableAddQty(myorder, myproduct)"
|
||||
rounded
|
||||
size="md"
|
||||
:label="
|
||||
t('products.addcart', {
|
||||
qta: products.qtaNextAdd(myorder, myproduct),
|
||||
qta: Products.qtaNextAdd(myorder, myproduct),
|
||||
})
|
||||
"
|
||||
@click="addtoCart(true)"
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
import { PropType, computed, defineComponent, onMounted, ref, watch } from 'vue';
|
||||
import {
|
||||
PropType,
|
||||
computed,
|
||||
defineComponent,
|
||||
onMounted,
|
||||
ref,
|
||||
watch,
|
||||
reactive,
|
||||
} from 'vue';
|
||||
import draggable from 'vuedraggable';
|
||||
|
||||
import { tools } from '@tools';
|
||||
@@ -7,7 +15,8 @@ import { useQuasar } from 'quasar';
|
||||
|
||||
import { useRouter } from 'vue-router';
|
||||
import { useGlobalStore } from '@src/store/globalStore';
|
||||
import { useProducts } from '@src/store/productStore';
|
||||
import { useProducts } from '@src/store/Products';
|
||||
import { useUserStore } from '@src/store/UserStore';
|
||||
|
||||
import { CMyValueDb } from '@src/components/CMyValueDb';
|
||||
import { CSchedaProdotto } from '@src/components/CSchedaProdotto';
|
||||
@@ -20,7 +29,6 @@ import { IAuthor, ICatProd } from 'app/src/model';
|
||||
|
||||
import type { IMyScheda, IOptCatalogo, IProduct } from '@src/model';
|
||||
import { shared_consts } from 'app/src/common/shared_vuejs';
|
||||
import { useProducts } from 'app/src/store/Products';
|
||||
import { CViewTable } from '../CViewTable';
|
||||
import { CLabel } from '../CLabel';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
@@ -67,16 +75,17 @@ export default defineComponent({
|
||||
// Copia locale della lista_prodotti per manipolazione interna
|
||||
const internalProducts = ref([...(props.lista_prodotti || [])]);
|
||||
|
||||
const productStore = useProducts();
|
||||
|
||||
const $router = useRouter();
|
||||
|
||||
const { t } = useI18n();
|
||||
|
||||
const $q = useQuasar();
|
||||
|
||||
const arrordersCart = ref(<IOrderCart[]>[]);
|
||||
|
||||
const globalStore = useGlobalStore();
|
||||
const products = useProducts();
|
||||
const ProductStore = useProducts();
|
||||
const userStore = useUserStore();
|
||||
|
||||
const showProd = ref(false);
|
||||
const selProd = ref(<IProduct | null>null);
|
||||
@@ -97,6 +106,7 @@ export default defineComponent({
|
||||
|
||||
const addstr = ref('');
|
||||
|
||||
|
||||
const optionscatalogo = ref(<any>{ maxlength: 0 });
|
||||
|
||||
function handleUpdate(newList) {
|
||||
@@ -302,6 +312,14 @@ export default defineComponent({
|
||||
noexp: true,
|
||||
notsortable: true,
|
||||
},
|
||||
{
|
||||
name: 'addtocart',
|
||||
label: 'Carrello',
|
||||
field: 'addtocart',
|
||||
align: 'center',
|
||||
noexp: true,
|
||||
notsortable: true,
|
||||
},
|
||||
{ name: 'name', label: 'Titolo', field: 'name', align: 'left' },
|
||||
{
|
||||
name: 'sottotitolo',
|
||||
@@ -436,18 +454,28 @@ export default defineComponent({
|
||||
|
||||
const allColumnsComputed = computed(() => {
|
||||
return allColumns.value.filter(
|
||||
(col) => !col.visu || col.visu === costanti.VISUCAMPI.PER_TUTTI || (col.visu === costanti.VISUCAMPI.PER_EDITORE && tools.isCollaboratore())
|
||||
(col) =>
|
||||
!col.visu ||
|
||||
col.visu === costanti.VISUCAMPI.PER_TUTTI ||
|
||||
(col.visu === costanti.VISUCAMPI.PER_EDITORE && tools.isCollaboratore())
|
||||
);
|
||||
});
|
||||
|
||||
async function mounted() {
|
||||
console.log('mounted CProductTable');
|
||||
//myorder = ProductStore.createMyOrder()
|
||||
// ProductStore.initproduct(myorder);
|
||||
|
||||
internalProducts.value.forEach((p: IProduct) => {
|
||||
p.myorder = ProductStore.createMyOrder();
|
||||
});
|
||||
|
||||
// console.log('mounted CProductTable');
|
||||
loading.value = true;
|
||||
|
||||
if (props.table === shared_consts.TABLES_CATALOG) {
|
||||
selectedColumns.value = selectedColumns_Catalogs.value;
|
||||
} else {
|
||||
// "products"
|
||||
// "ProductStore"
|
||||
selectedColumns.value = tools.isUtente()
|
||||
? selectedColumns_Utenti.value
|
||||
: selectedColumns_Editori.value;
|
||||
@@ -455,10 +483,10 @@ export default defineComponent({
|
||||
|
||||
addstr.value = tools.addstrCookie(props.table);
|
||||
|
||||
if (props.table === 'products') {
|
||||
if (props.table === shared_consts.TABLES_PRODUCTS) {
|
||||
allColumns.value = allColumns_Catalog.value;
|
||||
isVisibleEditBtn.value = true;
|
||||
} else if (props.table === 'catalogs') {
|
||||
} else if (props.table === shared_consts.TABLES_CATALOG) {
|
||||
allColumns.value = allColumns_Raccolta.value;
|
||||
isVisibleEditBtn.value = false;
|
||||
}
|
||||
@@ -522,6 +550,8 @@ export default defineComponent({
|
||||
return tools.getstrDate(catalog.data_online);
|
||||
case 'data_online_stampa':
|
||||
return tools.getstrDate(catalog.data_online_stampa);
|
||||
case 'addtocart':
|
||||
return true;
|
||||
case 'image':
|
||||
return catalog.foto_collana?.imagefile
|
||||
? tools.getFullFileNameByImageFile(
|
||||
@@ -535,7 +565,10 @@ export default defineComponent({
|
||||
switch (field.field) {
|
||||
case 'image':
|
||||
return element.productInfo?.imagefile
|
||||
? tools.getFullFileNameByImageFile('productInfos', element.productInfo?.imagefile)
|
||||
? tools.getFullFileNameByImageFile(
|
||||
'productInfos',
|
||||
element.productInfo?.imagefile
|
||||
)
|
||||
: element.productInfo?.image_link;
|
||||
|
||||
case 'name':
|
||||
@@ -576,21 +609,25 @@ export default defineComponent({
|
||||
return element.arrvariazioni?.[0]?.edizione;
|
||||
|
||||
case 'casaeditrice':
|
||||
return products.getCasaEditriceByIdPublisher(element.productInfo?.idPublisher);
|
||||
return ProductStore.getCasaEditriceByIdPublisher(
|
||||
element.productInfo?.idPublisher
|
||||
);
|
||||
|
||||
case 'idCollana':
|
||||
return tools.formatCollane(element.productInfo?.idCollana);
|
||||
|
||||
case 'stato':
|
||||
return products.getDescrStatiProdottoByIdStatoProdotto(
|
||||
return ProductStore.getDescrStatiProdottoByIdStatoProdotto(
|
||||
element.productInfo?.idStatoProdotto || ''
|
||||
);
|
||||
|
||||
case 'tipologia':
|
||||
return products.getDescrByIdTipologia(element.arrvariazioni?.[0]?.idTipologia || '');
|
||||
return ProductStore.getDescrByIdTipologia(
|
||||
element.arrvariazioni?.[0]?.idTipologia || ''
|
||||
);
|
||||
|
||||
case 'tipoformato':
|
||||
return products.getDescrByIdTipoFormato(
|
||||
return ProductStore.getDescrByIdTipoFormato(
|
||||
element.arrvariazioni?.[0]?.idTipoFormato || ''
|
||||
);
|
||||
|
||||
@@ -599,11 +636,11 @@ export default defineComponent({
|
||||
|
||||
case 'prezzo':
|
||||
// return element.price ? '€ ' + element.price.toFixed(2) : '';
|
||||
return '€ ' + element.arrvariazioni?.[0]?.price.toFixed(2);
|
||||
return '€ ' + element.arrvariazioni?.[0]?.price?.toFixed(2);
|
||||
|
||||
case 'prezzo_sconto':
|
||||
// return element.sale_price ? '€ ' + element.sale_price.toFixed(2) : '';
|
||||
return '€ ' + element.arrvariazioni?.[0]?.sale_price.toFixed(2);
|
||||
return '€ ' + element.arrvariazioni?.[0]?.sale_price?.toFixed(2);
|
||||
|
||||
case 'rank3M':
|
||||
return element.productInfo?.rank3M;
|
||||
@@ -637,7 +674,9 @@ export default defineComponent({
|
||||
|
||||
case 'quantity':
|
||||
if (tools.isUtente())
|
||||
return tools.getDescrQuantitàByQuantity(element.arrvariazioni?.[0]?.quantita);
|
||||
return tools.getDescrQuantitàByQuantity(
|
||||
element.arrvariazioni?.[0]?.quantita
|
||||
);
|
||||
else return element.arrvariazioni?.[0]?.quantita;
|
||||
|
||||
default:
|
||||
@@ -659,13 +698,13 @@ export default defineComponent({
|
||||
: 'text-red';
|
||||
|
||||
case 'stato':
|
||||
if (products.isProssimaUscita(element.productInfo)) {
|
||||
if (ProductStore.isProssimaUscita(element.productInfo)) {
|
||||
return 'bg-purple-3';
|
||||
}
|
||||
if (products.isPrevendita(element.productInfo)) {
|
||||
if (ProductStore.isPrevendita(element.productInfo)) {
|
||||
return 'bg-blue-3';
|
||||
}
|
||||
if (products.isNonVendibile(element.productInfo)) {
|
||||
if (ProductStore.isNonVendibile(element.productInfo)) {
|
||||
return 'bg-grey';
|
||||
}
|
||||
return '';
|
||||
@@ -680,14 +719,14 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
case 'quantity':
|
||||
if (products.isPubblicato(element.productInfo)) {
|
||||
if (products.isQtaLimitata(element)) {
|
||||
if (ProductStore.isPubblicato(element.productInfo)) {
|
||||
if (ProductStore.isQtaLimitata(element)) {
|
||||
return 'bg-yellow';
|
||||
}
|
||||
if (products.isInEsaurendo(element)) {
|
||||
if (ProductStore.isInEsaurendo(element)) {
|
||||
return 'bg-orange';
|
||||
}
|
||||
if (products.isEsaurito(element)) {
|
||||
if (ProductStore.isEsaurito(element)) {
|
||||
return 'text-white bg-red-10';
|
||||
}
|
||||
}
|
||||
@@ -846,14 +885,19 @@ export default defineComponent({
|
||||
persistent: false,
|
||||
})
|
||||
.onOk(() => {
|
||||
internalProducts.value = internalProducts.value.filter((p: any) => p._id !== product._id);
|
||||
internalProducts.value = internalProducts.value.filter(
|
||||
(p: any) => p._id !== product._id
|
||||
);
|
||||
emit('update:lista_prodotti', internalProducts.value); // Notifica il parent del cambiamento
|
||||
});
|
||||
};
|
||||
|
||||
// 8. Salvataggio delle colonne selezionate in un cookie
|
||||
const saveSelectedColumns = () => {
|
||||
tools.setCookie(addstr.value + 'selColCat_2', JSON.stringify(selectedColumns.value));
|
||||
tools.setCookie(
|
||||
addstr.value + 'selColCat_2',
|
||||
JSON.stringify(selectedColumns.value)
|
||||
);
|
||||
};
|
||||
|
||||
// 9. Watcher per salvare automaticamente le preferenze quando cambiano
|
||||
@@ -901,7 +945,7 @@ export default defineComponent({
|
||||
let link_macro = element.productInfo?.link_macro;
|
||||
|
||||
if (tools.isUtente() && link_macro) {
|
||||
tools.openUrl(link_macro + '?utm_source=catalog&id=' + props.idcatalog)
|
||||
tools.openUrl(link_macro + '?utm_source=catalog&id=' + props.idcatalog);
|
||||
} else {
|
||||
selProd.value = element;
|
||||
|
||||
@@ -910,7 +954,7 @@ export default defineComponent({
|
||||
} else if (isCatalog()) {
|
||||
// Apri la pagina del catalogo
|
||||
if (element.idPageAssigned) {
|
||||
const mypagepath = productStore.getPathByPage(element.idPageAssigned);
|
||||
const mypagepath = ProductStore.getPathByPage(element.idPageAssigned);
|
||||
|
||||
// fai il route sulla pagina myfilename
|
||||
$router.push(`/${mypagepath}`);
|
||||
@@ -953,9 +997,9 @@ export default defineComponent({
|
||||
console.log('PRODUCT TABLE: updateproductmodif');
|
||||
try {
|
||||
if (element?._id) {
|
||||
selProd.value = await products.getProductById(element?._id);
|
||||
selProd.value = await ProductStore.getProductById(element?._id);
|
||||
} else {
|
||||
selProd.value = await products.getProductById(selProd.value?._id);
|
||||
selProd.value = await ProductStore.getProductById(selProd.value?._id);
|
||||
}
|
||||
|
||||
// update record inside internalProducts
|
||||
@@ -1019,7 +1063,9 @@ export default defineComponent({
|
||||
return sortDirection.value === 1 ? aVal - bVal : bVal - aVal;
|
||||
}
|
||||
if (typeof aVal === 'string' && typeof bVal === 'string') {
|
||||
return sortDirection.value === 1 ? aVal.localeCompare(bVal) : bVal.localeCompare(aVal);
|
||||
return sortDirection.value === 1
|
||||
? aVal.localeCompare(bVal)
|
||||
: bVal.localeCompare(aVal);
|
||||
}
|
||||
return sortDirection.value === 1
|
||||
? String(aVal).localeCompare(String(bVal))
|
||||
@@ -1092,7 +1138,9 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function isSortable(field: string): boolean {
|
||||
return allColumns && !allColumns.value.find((col) => col.name === field)?.notsortable;
|
||||
return (
|
||||
allColumns && !allColumns.value.find((col) => col.name === field)?.notsortable
|
||||
);
|
||||
}
|
||||
|
||||
function getImageByElement(element) {
|
||||
@@ -1107,10 +1155,48 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function isProduct() {
|
||||
return props.table === 'products';
|
||||
return props.table === shared_consts.TABLES_PRODUCTS;
|
||||
}
|
||||
function isCatalog() {
|
||||
return props.table === 'catalogs';
|
||||
return props.table === shared_consts.TABLES_CATALOG;
|
||||
}
|
||||
|
||||
/*
|
||||
async function addToCart(element: any) {
|
||||
if (props.table === shared_consts.TABLES_PRODUCTS) {
|
||||
await updateProduct(element);
|
||||
|
||||
if (!!element) {
|
||||
arrordersCart.value = ProductStore.getOrdersCartInAttesaByIdProduct(
|
||||
element._id
|
||||
);
|
||||
|
||||
ProductStore.setMyOrder(myorder, element, null, {
|
||||
setstore: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
async function addtoCart(element: any, add: boolean) {
|
||||
if (!userStore.isLogged) {
|
||||
tools.showNeutralNotif($q, t('ecomm.area_personale'));
|
||||
globalStore.rightDrawerOpen = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
ProductStore.setMyOrder(element.myorder, element, null, {
|
||||
setstore: false,
|
||||
});
|
||||
|
||||
const ris = await ProductStore.addtoCartBase({
|
||||
$q,
|
||||
t,
|
||||
id: element._id,
|
||||
order: element.myorder,
|
||||
addqty: add,
|
||||
});
|
||||
updateProduct(element);
|
||||
}
|
||||
|
||||
onMounted(mounted);
|
||||
@@ -1144,7 +1230,7 @@ export default defineComponent({
|
||||
updateproductmodif,
|
||||
optionscatalogo,
|
||||
t,
|
||||
products,
|
||||
ProductStore,
|
||||
sortTable,
|
||||
sortAttribute,
|
||||
sortDirection,
|
||||
@@ -1160,6 +1246,8 @@ export default defineComponent({
|
||||
isProduct,
|
||||
isCatalog,
|
||||
allColumnsComputed,
|
||||
addtoCart,
|
||||
arrordersCart,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -54,9 +54,7 @@
|
||||
<span>{{ col.label }}</span>
|
||||
<span v-if="isSortable(col.name)">
|
||||
<q-icon
|
||||
v-if="
|
||||
sortAttribute === col.name && optcatalogo.showListaArgomenti
|
||||
"
|
||||
v-if="sortAttribute === col.name && optcatalogo.showListaArgomenti"
|
||||
:name="sortDirection === 1 ? 'expand_less' : 'expand_more'"
|
||||
size="36px"
|
||||
class="q-ml-xs"
|
||||
@@ -131,11 +129,40 @@
|
||||
/>
|
||||
</span>
|
||||
</td>
|
||||
<td v-else-if="field.name === 'addtocart' && isColumnVisible('addtocart')">
|
||||
<q-btn
|
||||
icon-right="fas fa-cart-plus"
|
||||
color="positive"
|
||||
rounded
|
||||
dense
|
||||
size="sm"
|
||||
:label="
|
||||
t('products.addcart', {
|
||||
qta: ProductStore.qtaNextAdd(element.myorder, element),
|
||||
})
|
||||
"
|
||||
@click="addtoCart(element, true)"
|
||||
>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="ProductStore.enableSubQty(element.myorder)"
|
||||
icon-right="fas fa-cart-arrow-down"
|
||||
color="negative"
|
||||
rounded
|
||||
dense
|
||||
size="sm"
|
||||
:label="
|
||||
t('products.subcart', {
|
||||
qta: ProductStore.qtaNextSub(element.myorder, element),
|
||||
})
|
||||
"
|
||||
@click="addtoCart(element, false)"
|
||||
>
|
||||
</q-btn>
|
||||
</td>
|
||||
|
||||
<!-- Immagine Piccola -->
|
||||
<td
|
||||
v-else-if="field.name === 'image' && isColumnVisible('image')"
|
||||
>
|
||||
<td v-else-if="field.name === 'image' && isColumnVisible('image')">
|
||||
<q-img
|
||||
:src="
|
||||
getImageByElement(element)
|
||||
@@ -162,9 +189,7 @@
|
||||
</td>
|
||||
<!-- Azioni -->
|
||||
<td
|
||||
v-else-if="
|
||||
field.name === 'actions' && isColumnVisible('actions', true)
|
||||
"
|
||||
v-else-if="field.name === 'actions' && isColumnVisible('actions', true)"
|
||||
>
|
||||
<q-btn-dropdown
|
||||
label="Azioni"
|
||||
|
||||
@@ -365,7 +365,7 @@ export default defineComponent({
|
||||
mykey: 'idCatProds',
|
||||
debounce: '1000',
|
||||
type: costanti.FieldType.multiselect,
|
||||
jointable: 'catprtotali',
|
||||
jointable: 'catprods',
|
||||
dense: true,
|
||||
},
|
||||
{
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
v-model="causal"
|
||||
rounded
|
||||
filled
|
||||
maxlength="80"
|
||||
maxlength="120"
|
||||
counter
|
||||
:label="$t('circuit.note_richiedente')"
|
||||
class="q-ma-sm full-width q-px-xs"
|
||||
|
||||
@@ -17,7 +17,6 @@ export interface ICatalog {
|
||||
collana_info?: ICollana
|
||||
descr_introduttiva?: string
|
||||
idPageAssigned?: string
|
||||
idPageAssigned_stampa?: string
|
||||
referenti?: string[]
|
||||
img_bordata?: IImg,
|
||||
img_intro?: IImg,
|
||||
@@ -65,7 +64,6 @@ export interface IRaccoltaCatalogo {
|
||||
foto_raccolta?: IImg,
|
||||
|
||||
idPageAssigned?: string
|
||||
idPageAssigned_stampa?: string
|
||||
|
||||
nomefile_da_generare?: string
|
||||
|
||||
|
||||
@@ -195,6 +195,7 @@ export interface IProductsState {
|
||||
products: IProduct[]
|
||||
authors: IAuthor[]
|
||||
publishers: IPublisher[]
|
||||
publishers_sort_qty?: IPublisher[]
|
||||
stati_prodotto?: T_Web_StatiProdotto[]
|
||||
tipologie?: T_Web_Tipologie[]
|
||||
tipoformato?: T_WEB_TipiFormato[]
|
||||
|
||||
@@ -80,6 +80,7 @@ const msg_it = {
|
||||
canBeShipped: 'Può essere spedito',
|
||||
canBeBuyOnline: 'Acquistabile On Line',
|
||||
date: 'Data',
|
||||
date_pub: 'Data Pubbl.',
|
||||
quantity: 'Quantità',
|
||||
quantityAvailable: 'Disponibili',
|
||||
stockQty: 'In Magazzino',
|
||||
@@ -2054,7 +2055,6 @@ const msg_it = {
|
||||
isCatalogoGenerale: 'Fa parte del Catalogo Generale',
|
||||
collane: 'Collane',
|
||||
idPageAssigned: 'Pagina Assegnata',
|
||||
idPageAssigned_stampa: 'Pagina Assegnata (per STAMPA)',
|
||||
descr_introduttiva: 'Descrizione Introduttiva (circa 1300 battute)',
|
||||
editore: 'Marchio Editoriale',
|
||||
editore_includi: 'Includi Editoriale',
|
||||
|
||||
@@ -63,7 +63,7 @@ export const useCatalogStore = defineStore('CatalogStore', {
|
||||
|
||||
ris = await Api.SendReq('/catalogs/id/' + id, 'GET', null)
|
||||
.then((res) => {
|
||||
console.log('catalogs', res.data.catalog);
|
||||
// console.log('catalogs', res.data.catalog);
|
||||
if (res.data.catalog) {
|
||||
// console.log('RISULTANTE CATEGORIES DAL SERVER = ', res.data.categories)
|
||||
return res.data.catalog;
|
||||
|
||||
@@ -140,12 +140,6 @@ export const colTableRaccoltaCataloghi = [
|
||||
fieldtype: costanti.FieldType.select,
|
||||
jointable: 'mypages_id',
|
||||
}),
|
||||
AddCol({
|
||||
name: 'idPageAssigned_stampa',
|
||||
label_trans: 'cataloglist.idPageAssigned_stampa',
|
||||
fieldtype: costanti.FieldType.select,
|
||||
jointable: 'mypages_id',
|
||||
}),
|
||||
|
||||
AddCol({
|
||||
name: 'nomefile_da_generare',
|
||||
@@ -224,14 +218,14 @@ export const colTableCatalogList = [
|
||||
name: 'editore',
|
||||
label_trans: 'cataloglist.editore_includi',
|
||||
fieldtype: costanti.FieldType.multiselect,
|
||||
jointable: 'publishers_totali',
|
||||
jointable: 'publishers_totali_sort_qty',
|
||||
isadvanced_field: true,
|
||||
}),
|
||||
AddCol({
|
||||
name: 'editore_escludi',
|
||||
label_trans: 'cataloglist.editore_escludi',
|
||||
fieldtype: costanti.FieldType.multiselect,
|
||||
jointable: 'publishers_totali',
|
||||
jointable: 'publishers_totali_sort_qty',
|
||||
isadvanced_field: true,
|
||||
}),
|
||||
AddCol({
|
||||
@@ -272,13 +266,6 @@ export const colTableCatalogList = [
|
||||
label_trans: 'cataloglist.pdf_online',
|
||||
}),
|
||||
|
||||
AddCol({
|
||||
name: 'idPageAssigned_stampa',
|
||||
label_trans: 'cataloglist.idPageAssigned_stampa',
|
||||
fieldtype: costanti.FieldType.select,
|
||||
jointable: 'mypages_id',
|
||||
}),
|
||||
|
||||
AddCol({
|
||||
name: 'img_bordata_stampa',
|
||||
label_trans: 'cataloglist.img_bordata_stampa',
|
||||
@@ -4607,6 +4594,13 @@ export const fieldsTable = {
|
||||
colkey: '_id',
|
||||
collabel: (row: any) => row.name + ' (' + row.quanti + ')',
|
||||
},
|
||||
{
|
||||
value: 'publishers_totali_sort_qty',
|
||||
label: 'Nome',
|
||||
columns: colTablePublisher,
|
||||
colkey: '_id',
|
||||
collabel: (row: any) => row.name + ' (' + row.quanti + ')',
|
||||
},
|
||||
{
|
||||
value: 'catais',
|
||||
label: 'Categorie AI',
|
||||
|
||||
@@ -101,6 +101,7 @@ export const tools = {
|
||||
FILTER_MYFOLLOW: 2,
|
||||
|
||||
COOK_TIPOCONTO: 'TC_',
|
||||
COOK_ARGOM: 'CK_ARG',
|
||||
COOK_SEARCH: 'SEARCH_',
|
||||
COOK_SELCART: 'SELCART_',
|
||||
COOK_SELGAS: 'SELGAS',
|
||||
@@ -4105,7 +4106,7 @@ export const tools = {
|
||||
},
|
||||
|
||||
setLangAtt($q: any, $router: Router, mylang: string) {
|
||||
console.log('setLangAtt =', mylang);
|
||||
// console.log('setLangAtt =', mylang);
|
||||
const globalStore = useGlobalStore();
|
||||
|
||||
if (!mylang || typeof mylang !== 'string') {
|
||||
|
||||
@@ -36,7 +36,7 @@ import { defineStore } from 'pinia';
|
||||
import { useUserStore } from '@store/UserStore';
|
||||
import { toolsext } from '@store/Modules/toolsext';
|
||||
import { useGlobalStore } from './globalStore';
|
||||
import { ref } from 'vue';
|
||||
import { ref, reactive } from 'vue';
|
||||
|
||||
import objectId from '@src/js/objectId';
|
||||
import { costanti } from '@costanti';
|
||||
@@ -1109,7 +1109,7 @@ export const useProducts = defineStore('Products', {
|
||||
|
||||
ris = await Api.SendReq('/products/id/' + id, 'GET', null)
|
||||
.then((res) => {
|
||||
console.log('product', res.data.product);
|
||||
// console.log('product', res.data.product);
|
||||
if (res.data.product) {
|
||||
// console.log('RISULTANTE CATEGORIES DAL SERVER = ', res.data.categories)
|
||||
this.updateDataProduct(res);
|
||||
@@ -1242,8 +1242,8 @@ export const useProducts = defineStore('Products', {
|
||||
if (res && res.msgerr) {
|
||||
return res;
|
||||
} else if (res && res.risult) {
|
||||
order.quantity = res.myord.quantity;
|
||||
order.quantitypreordered = res.myord.quantitypreordered;
|
||||
order.quantity = res?.myord?.quantity;
|
||||
order.quantitypreordered = res?.myord?.quantitypreordered;
|
||||
}
|
||||
return res;
|
||||
});
|
||||
@@ -1672,7 +1672,7 @@ export const useProducts = defineStore('Products', {
|
||||
},
|
||||
|
||||
qtaNextAdd(myorder: IOrder, myproduct: IProduct): number {
|
||||
let step = myproduct.minStepQty;
|
||||
let step = myproduct.minStepQty || 1;
|
||||
if (this.getQtyAvailable(myproduct) > 0) {
|
||||
if (myorder.quantity === 0) step = myproduct.minBuyQty;
|
||||
} else {
|
||||
@@ -2557,5 +2557,52 @@ export const useProducts = defineStore('Products', {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
|
||||
createMyOrder() {
|
||||
let myorder = reactive(<IOrder>{
|
||||
idapp: tools.getEnv('VITE_APP_ID'),
|
||||
quantity: 0,
|
||||
quantitypreordered: 0,
|
||||
idStorehouse: '',
|
||||
idGasordine: '',
|
||||
storehouse: {},
|
||||
gasordine: { active: false },
|
||||
});
|
||||
|
||||
return myorder;
|
||||
},
|
||||
|
||||
initproduct(myorder: IOrder) {
|
||||
myorder.quantity = 0;
|
||||
myorder.quantitypreordered = 0;
|
||||
myorder.idStorehouse = '';
|
||||
myorder.idGasordine = '';
|
||||
},
|
||||
|
||||
setMyOrder(myorder: IOrder, myproduct: IProduct, storeSelected: any = null, options: any = {setstore: false}) {
|
||||
if (myproduct.storehouses && myproduct.storehouses.length === 1) {
|
||||
// Se solo 1 presente, metto fisso l'unico negozio !
|
||||
myorder.idStorehouse = myproduct.storehouses[0]._id;
|
||||
} else if (myproduct.storehouse) {
|
||||
myorder.idStorehouse = myproduct.storehouse._id;
|
||||
}
|
||||
|
||||
if (myproduct.gasordine) {
|
||||
myorder.idGasordine = myproduct.gasordine._id;
|
||||
}
|
||||
|
||||
const ord = this.getOrderProductInCart(myproduct._id);
|
||||
if (ord) {
|
||||
myorder.quantity = ord.quantity;
|
||||
myorder.quantitypreordered = ord.quantitypreordered;
|
||||
|
||||
// Seleziona il Negozio che avevo già scelto nell'ordine !
|
||||
if (options.setstore && ord.idStorehouse) {
|
||||
storeSelected = ord.idStorehouse;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
@@ -244,7 +244,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
|
||||
sovrascriviPaginaDefaultFromTemplate:
|
||||
(state: IGlobalState) => (idTemplate: string, origDimensioni: IDimensioni) => {
|
||||
const myfindelem = state.myelems.find((myelem: IMyElem) => myelem._id === idTemplate);
|
||||
const myfindelem = state.myelems.find(
|
||||
(myelem: IMyElem) => myelem._id === idTemplate
|
||||
);
|
||||
|
||||
const precname = origDimensioni.name;
|
||||
|
||||
@@ -255,7 +257,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
// myelemtocopy.scheda._id = origScheda.scheda?._id;
|
||||
myelemtocopy.catalogo.dimensioni_def.isTemplate = false;
|
||||
myelemtocopy.catalogo.dimensioni_def.name = precname;
|
||||
myelemtocopy.catalogo.dimensioni_def.linkIdTemplate = origDimensioni.linkIdTemplate;
|
||||
myelemtocopy.catalogo.dimensioni_def.linkIdTemplate =
|
||||
origDimensioni.linkIdTemplate;
|
||||
|
||||
return myelemtocopy.catalogo;
|
||||
}
|
||||
@@ -266,13 +269,15 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
|
||||
sovrascriviAreadistampaFromTemplate:
|
||||
(state: IGlobalState) => (idTemplate: string, optCatalogo: IOptCatalogo) => {
|
||||
const myfindelem = state.myelems.find((myelem: IMyElem) => myelem._id === idTemplate);
|
||||
const myfindelem = state.myelems.find(
|
||||
(myelem: IMyElem) => myelem._id === idTemplate
|
||||
);
|
||||
|
||||
if (myfindelem) {
|
||||
const myelemtocopy = tools.jsonCopy(myfindelem);
|
||||
|
||||
if (myelemtocopy) {
|
||||
const linkIdTemplate = myelemtocopy.catalogo.print_linkIdTemplate
|
||||
const linkIdTemplate = myelemtocopy.catalogo.print_linkIdTemplate;
|
||||
myelemtocopy.catalogo.print_isTemplate = false;
|
||||
myelemtocopy.catalogo.print_linkIdTemplate = linkIdTemplate;
|
||||
|
||||
@@ -304,24 +309,31 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
},
|
||||
|
||||
getColByStatusSkills: (state: IGlobalState) => (id: number) => {
|
||||
const ctrec = state.statusSkills.find((mystatus: IStatusSkill) => mystatus._id === id);
|
||||
const ctrec = state.statusSkills.find(
|
||||
(mystatus: IStatusSkill) => mystatus._id === id
|
||||
);
|
||||
return ctrec && ctrec.color ? ctrec.color : 'green';
|
||||
},
|
||||
|
||||
getStatusSkillById: (state: IGlobalState) => (id: number) => {
|
||||
const ctrec = state.statusSkills.find((mystatus: IStatusSkill) => mystatus._id === id);
|
||||
const ctrec = state.statusSkills.find(
|
||||
(mystatus: IStatusSkill) => mystatus._id === id
|
||||
);
|
||||
return ctrec ? ctrec.descr : '';
|
||||
},
|
||||
|
||||
getStatusSkillIconById: (state: IGlobalState) => (id: number) => {
|
||||
const ctrec = state.statusSkills.find((mystatus: IStatusSkill) => mystatus._id === id);
|
||||
const ctrec = state.statusSkills.find(
|
||||
(mystatus: IStatusSkill) => mystatus._id === id
|
||||
);
|
||||
return ctrec ? ctrec.icon : '';
|
||||
},
|
||||
|
||||
isNewVersionAvailable: (state: IGlobalState) => {
|
||||
// console.log('cfgServer', cfgServer)
|
||||
const serversrec = state.cfgServer.find(
|
||||
(x) => x.chiave === toolsext.SERVKEY_VERS && x.idapp === tools.getEnv('VITE_APP_ID')
|
||||
(x) =>
|
||||
x.chiave === toolsext.SERVKEY_VERS && x.idapp === tools.getEnv('VITE_APP_ID')
|
||||
);
|
||||
// console.log('Record ', serversrec)
|
||||
if (serversrec) {
|
||||
@@ -499,7 +511,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
else if (table === 'mypages_id') ris = state.mypage;
|
||||
else if (table === toolsext.TABMYELEMS) ris = state.myelems;
|
||||
else if (table === toolsext.TABCATALOGS) ris = catalogStore.catalogs!;
|
||||
else if (table === toolsext.TABRACCOLTA_CATALOGHI) ris = catalogStore.raccoltacataloghis!;
|
||||
else if (table === toolsext.TABRACCOLTA_CATALOGHI)
|
||||
ris = catalogStore.raccoltacataloghis!;
|
||||
else if (table === toolsext.TABCALZOOM) ris = state.calzoom;
|
||||
else if (table === 'producers') ris = state.producers;
|
||||
else if (table === 'storehouses') ris = state.storehouses;
|
||||
@@ -522,6 +535,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
else if (table === 'authors') ris = Products.authors;
|
||||
else if (table === 'publishers') ris = Products.publishers;
|
||||
else if (table === 'publishers_totali') ris = Products.publishers;
|
||||
else if (table === 'publishers_totali_sort_qty')
|
||||
ris = Products.publishers_sort_qty;
|
||||
else if (table === 't_web_statiprodottos') ris = Products.stati_prodotto;
|
||||
else if (table === 't_web_tipologies') ris = Products.tipologie;
|
||||
else if (table === 't_web_tipiformatos') ris = Products.tipoformato;
|
||||
@@ -556,7 +571,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
else if (table === toolsext.TABSECTORS) return state.sectors;
|
||||
else if (table === 'sectorgoods') return state.sectorgoods;
|
||||
else if (table === 'catgrps') return state.catgrps;
|
||||
else if (table === 'schedeopt') return Products.getSchedeOptByArrSchede(state.myschedas);
|
||||
else if (table === 'schedeopt')
|
||||
return Products.getSchedeOptByArrSchede(state.myschedas);
|
||||
else if (table === 'provinces')
|
||||
return state.provinces.filter(
|
||||
(rec: IProvince) => !rec.card && rec.prov !== 'ITA' && rec.prov !== 'EST'
|
||||
@@ -567,10 +583,12 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
);
|
||||
if (arrprov) {
|
||||
// const idCardArray: { _id: number, card: string }[] = arrprov.map(({ _id, card }) => ({ _id, card }));
|
||||
const idCardArray: { card: string; label: string }[] = arrprov.map(({ card }) => ({
|
||||
card,
|
||||
label: card,
|
||||
}));
|
||||
const idCardArray: { card: string; label: string }[] = arrprov.map(
|
||||
({ card }) => ({
|
||||
card,
|
||||
label: card,
|
||||
})
|
||||
);
|
||||
return idCardArray;
|
||||
}
|
||||
return [];
|
||||
@@ -601,7 +619,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
getdestnewsletterbyId:
|
||||
(mystate: IGlobalState) =>
|
||||
(id: string): string => {
|
||||
const myrec = mystate.destnewsletter.find((rec: IDestNewsletter) => rec._id === id);
|
||||
const myrec = mystate.destnewsletter.find(
|
||||
(rec: IDestNewsletter) => rec._id === id
|
||||
);
|
||||
return !!myrec ? myrec.descr! : '';
|
||||
},
|
||||
},
|
||||
@@ -624,7 +644,15 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
return [];
|
||||
},
|
||||
|
||||
setValueSettingsByKey({ key, value, serv }: { key: string; value: any; serv: boolean }): any {
|
||||
setValueSettingsByKey({
|
||||
key,
|
||||
value,
|
||||
serv,
|
||||
}: {
|
||||
key: string;
|
||||
value: any;
|
||||
serv: boolean;
|
||||
}): any {
|
||||
// Update the Server
|
||||
|
||||
// Update in Memory
|
||||
@@ -633,7 +661,10 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
else myrec = this.settings.find((rec: any) => rec.key === key);
|
||||
|
||||
if (myrec) {
|
||||
if (myrec.type === costanti.FieldType.date || myrec.type === costanti.FieldType.onlydate)
|
||||
if (
|
||||
myrec.type === costanti.FieldType.date ||
|
||||
myrec.type === costanti.FieldType.onlydate
|
||||
)
|
||||
myrec.value_date = value;
|
||||
else if (
|
||||
myrec.type === costanti.FieldType.number ||
|
||||
@@ -651,9 +682,15 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
const myrec = this.getrecSettingsByKey(key, serv);
|
||||
// console.log('getValueSettingsByKey', myrec, 'key=', key, 'srv=', serv)
|
||||
if (myrec) {
|
||||
if (myrec.type === costanti.FieldType.date || myrec.type === costanti.FieldType.onlydate)
|
||||
if (
|
||||
myrec.type === costanti.FieldType.date ||
|
||||
myrec.type === costanti.FieldType.onlydate
|
||||
)
|
||||
return myrec.value_date;
|
||||
if (myrec.type === costanti.FieldType.number || myrec.type === costanti.FieldType.hours)
|
||||
if (
|
||||
myrec.type === costanti.FieldType.number ||
|
||||
myrec.type === costanti.FieldType.hours
|
||||
)
|
||||
return myrec.value_num;
|
||||
if (myrec.type === costanti.FieldType.boolean) return myrec.value_bool;
|
||||
else if (myrec.type === costanti.FieldType.crypted) return '***********';
|
||||
@@ -1496,9 +1533,20 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
|
||||
const obj = { test: 'OK! Versione Client: ' + tools.getvers(), timeout };
|
||||
|
||||
return Api.SendReq('/api/test-lungo', 'POST', obj, false, false, 0, 5000, null, null, {
|
||||
timeout,
|
||||
})
|
||||
return Api.SendReq(
|
||||
'/api/test-lungo',
|
||||
'POST',
|
||||
obj,
|
||||
false,
|
||||
false,
|
||||
0,
|
||||
5000,
|
||||
null,
|
||||
null,
|
||||
{
|
||||
timeout,
|
||||
}
|
||||
)
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
@@ -1851,7 +1899,13 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
});
|
||||
},
|
||||
|
||||
async GetArrDoniNavi({ ricalcola, showall }: { ricalcola: boolean; showall: boolean }) {
|
||||
async GetArrDoniNavi({
|
||||
ricalcola,
|
||||
showall,
|
||||
}: {
|
||||
ricalcola: boolean;
|
||||
showall: boolean;
|
||||
}) {
|
||||
console.log('GetArrDoniNavi');
|
||||
|
||||
const mydata = {
|
||||
@@ -1933,7 +1987,11 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
},
|
||||
|
||||
async loadTest(ind: number, numval: number) {
|
||||
const restest = await Api.SendReq(`/testpao/?numval=${numval}&ind=${ind}`, 'GET', null);
|
||||
const restest = await Api.SendReq(
|
||||
`/testpao/?numval=${numval}&ind=${ind}`,
|
||||
'GET',
|
||||
null
|
||||
);
|
||||
return restest;
|
||||
},
|
||||
|
||||
@@ -1968,12 +2026,18 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
calendarStore.bookedevent = res.data.bookedevent ? res.data.bookedevent : [];
|
||||
calendarStore.eventlist = res.data.eventlist ? res.data.eventlist : [];
|
||||
calendarStore.operators = res.data.operators ? res.data.operators : [];
|
||||
calendarStore.internalpages = res.data.internalpages ? res.data.internalpages : [];
|
||||
calendarStore.internalpages = res.data.internalpages
|
||||
? res.data.internalpages
|
||||
: [];
|
||||
calendarStore.wheres = res.data.wheres ? res.data.wheres : [];
|
||||
calendarStore.contribtype = res.data.contribtype ? res.data.contribtype : [];
|
||||
|
||||
circuitStore.listcircuits = res.data.listcircuits ? res.data.listcircuits : [];
|
||||
circuitStore.listaccounts = res.data.listaccounts ? res.data.listaccounts : [];
|
||||
circuitStore.listcircuits = res.data.listcircuits
|
||||
? res.data.listcircuits
|
||||
: [];
|
||||
circuitStore.listaccounts = res.data.listaccounts
|
||||
? res.data.listaccounts
|
||||
: [];
|
||||
|
||||
catalogStore.catalogs = res.data.catalogs;
|
||||
catalogStore.raccoltacataloghis = res.data.raccoltacataloghis;
|
||||
@@ -1984,7 +2048,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
this.gallery = res.data.gallery ? [...res.data.gallery] : [];
|
||||
this.calzoom = res.data.calzoom ? [...res.data.calzoom] : [];
|
||||
Products.products = res.data.products ? [...res.data.products] : [];
|
||||
Products.productInfos = res.data.productInfos ? [...res.data.productInfos] : [];
|
||||
Products.productInfos = res.data.productInfos
|
||||
? [...res.data.productInfos]
|
||||
: [];
|
||||
this.producers = res.data.producers ? [...res.data.producers] : [];
|
||||
this.storehouses = res.data.storehouses ? [...res.data.storehouses] : [];
|
||||
this.providers = res.data.providers ? [...res.data.providers] : [];
|
||||
@@ -1993,13 +2059,23 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
Products.catprtotali = res.data.catprtotali ? [...res.data.catprtotali] : [];
|
||||
Products.collane = res.data.collane ? [...res.data.collane] : [];
|
||||
Products.subcatprods = res.data.subcatprods ? [...res.data.subcatprods] : [];
|
||||
Products.stati_prodotto = res.data.stati_prodotto ? [...res.data.stati_prodotto] : [];
|
||||
Products.stati_prodotto = res.data.stati_prodotto
|
||||
? [...res.data.stati_prodotto]
|
||||
: [];
|
||||
Products.tipologie = res.data.tipologie ? [...res.data.tipologie] : [];
|
||||
Products.tipoformato = res.data.tipoformato ? [...res.data.tipoformato] : [];
|
||||
Products.catprods_gas = res.data.catprods_gas ? [...res.data.catprods_gas] : [];
|
||||
Products.catprods_gas = res.data.catprods_gas
|
||||
? [...res.data.catprods_gas]
|
||||
: [];
|
||||
Products.authors = res.data.authors ? [...res.data.authors] : [];
|
||||
Products.publishers = res.data.publishers ? [...res.data.publishers] : [];
|
||||
|
||||
Products.publishers_sort_qty = [...res.data.publishers];
|
||||
Products.publishers_sort_qty.sort((a, b) => b.quanti - a.quanti);
|
||||
|
||||
// console.table(Products.publishers)
|
||||
// console.table(Products.publishers_sort_qty)
|
||||
|
||||
this.gasordines = res.data.gasordines ? [...res.data.gasordines] : [];
|
||||
this.scontisticas = res.data.scontisticas ? [...res.data.scontisticas] : [];
|
||||
this.groups = res.data.groups ? [...res.data.groups] : [];
|
||||
@@ -2372,7 +2448,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
else if (table === 'confpages_lang') myarr = costanti.ArrLang;
|
||||
else if (table === 'bottype') myarr = shared_consts.BotType;
|
||||
else if (table === 'visibility') myarr = shared_consts.Visibility;
|
||||
else if (table === 'cat_interesse_arcadei') myarr = shared_consts.Cat_Interesse_Arcadei;
|
||||
else if (table === 'cat_interesse_arcadei')
|
||||
myarr = shared_consts.Cat_Interesse_Arcadei;
|
||||
else if (table === 'pub_to_share') myarr = shared_consts.Pub_to_Share;
|
||||
else if (table === 'visibilGroup') myarr = shared_consts.VisibilGroup;
|
||||
else if (table === 'statuscircuit') myarr = shared_consts.StatusCircuit;
|
||||
@@ -2391,7 +2468,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
else if (table === toolsext.TABTYPEACCOM) myarr = shared_consts.TypeAccom;
|
||||
else if (table === toolsext.TABLOCACCOM) myarr = shared_consts.LocationAccom;
|
||||
else if (table === toolsext.TABPREF) myarr = shared_consts.Preferences;
|
||||
else if (table === toolsext.TABUNITS) myarr = shared_consts.Units_Of_Measure_ListBox;
|
||||
else if (table === toolsext.TABUNITS)
|
||||
myarr = shared_consts.Units_Of_Measure_ListBox;
|
||||
else if (table === toolsext.TABTYPECASH) myarr = shared_consts.TypeCashStr;
|
||||
else if (table === 'usernotifs') myarr = shared_consts.UsersNotif_Adv_List;
|
||||
else if (table === 'typenotifs') myarr = shared_consts.TypeNotifs_Arr;
|
||||
@@ -2478,7 +2556,12 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
getTableJoinLabelValueByName(col: IColGridTable) {
|
||||
let myarrrec: any = [];
|
||||
if (col.jointable) {
|
||||
let myarrtab = this.getTableJoinByName(col.jointable, col.addall, col.addnone, col.filter);
|
||||
let myarrtab = this.getTableJoinByName(
|
||||
col.jointable,
|
||||
col.addall,
|
||||
col.addnone,
|
||||
col.filter
|
||||
);
|
||||
|
||||
const key = fieldsTable.getKeyByTable(col.jointable);
|
||||
const collab = fieldsTable.getLabelByTable(col.jointable);
|
||||
@@ -2523,20 +2606,22 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
async delMyElem($q: any, t: any, myelem: IMyElem) {
|
||||
if (!myelem._id) return false;
|
||||
|
||||
return await this.DeleteRec({ table: 'myelems', id: myelem._id }).then(async (ris) => {
|
||||
if (ris) {
|
||||
this.myelems = this.myelems.filter((rec) => rec._id !== myelem._id);
|
||||
return await this.DeleteRec({ table: 'myelems', id: myelem._id }).then(
|
||||
async (ris) => {
|
||||
if (ris) {
|
||||
this.myelems = this.myelems.filter((rec) => rec._id !== myelem._id);
|
||||
|
||||
// Aggiorna anche tutto il sito...
|
||||
// await this.loadSite()
|
||||
// Aggiorna anche tutto il sito...
|
||||
// await this.loadSite()
|
||||
|
||||
tools.showPositiveNotif($q, t('db.deletedrecord'));
|
||||
return true;
|
||||
} else {
|
||||
tools.showNegativeNotif($q, t('db.recdelfailed'));
|
||||
return false;
|
||||
tools.showPositiveNotif($q, t('db.deletedrecord'));
|
||||
return true;
|
||||
} else {
|
||||
tools.showNegativeNotif($q, t('db.recdelfailed'));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
);
|
||||
},
|
||||
|
||||
async saveMyElem($q: any, t: any, myelem: IMyElem) {
|
||||
@@ -2748,7 +2833,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
dir_out: string = '',
|
||||
file_out: string = '',
|
||||
print: boolean = false,
|
||||
optcatalogo: IOptCatalogo | null = null,
|
||||
optcatalogo: IOptCatalogo | null = null
|
||||
) {
|
||||
try {
|
||||
if (!pdfFile) {
|
||||
@@ -2756,7 +2841,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
return;
|
||||
}
|
||||
|
||||
const filenameToDownload = tools.removeFileExtension(pdfFile.name) + '-compresso.pdf';
|
||||
const filenameToDownload =
|
||||
tools.removeFileExtension(pdfFile.name) + '-compresso.pdf';
|
||||
|
||||
const formData = new FormData();
|
||||
if (pdfFile instanceof File) {
|
||||
@@ -2775,8 +2861,10 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
formData.append('print_right', optcatalogo.areadistampa.margini.right);
|
||||
formData.append('print_bottom', optcatalogo.areadistampa.margini.bottom); // 7 mm 0,275"
|
||||
}
|
||||
formData.append('salvasufiledascaricare', salvasufiledascaricare ? 'true' : 'false');
|
||||
|
||||
formData.append(
|
||||
'salvasufiledascaricare',
|
||||
salvasufiledascaricare ? 'true' : 'false'
|
||||
);
|
||||
|
||||
console.log('2) Invia le immagini al convertitore/compressione di PDF...');
|
||||
|
||||
@@ -2877,7 +2965,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
numrec: 1,
|
||||
query: '',
|
||||
where:
|
||||
'T.IdArticolo =' + sku + ' AND T.DataPubblicazione IS NOT NULL ORDER BY T.DataOra DESC;',
|
||||
'T.IdArticolo =' +
|
||||
sku +
|
||||
' AND T.DataPubblicazione IS NOT NULL ORDER BY T.DataOra DESC;',
|
||||
fieldGM: field,
|
||||
showQtaDisponibile: false,
|
||||
outhtml: false,
|
||||
@@ -2913,7 +3003,11 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
return valueris;
|
||||
},
|
||||
|
||||
async setGM_FieldOf_T_Web_Articoli(sku: string, data: Record<string, any>, cmd: number) {
|
||||
async setGM_FieldOf_T_Web_Articoli(
|
||||
sku: string,
|
||||
data: Record<string, any>,
|
||||
cmd: number
|
||||
) {
|
||||
try {
|
||||
// Verifica se i campi specificati sono validi
|
||||
if (!data || Object.keys(data).length === 0) {
|
||||
@@ -3051,7 +3145,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
|
||||
if (mytablerec && resdata && resdata.rec) {
|
||||
// Trova l'indice del record da aggiornare
|
||||
const index = mytablerec.findIndex((item: any) => item._id === resdata.rec._id);
|
||||
const index = mytablerec.findIndex(
|
||||
(item: any) => item._id === resdata.rec._id
|
||||
);
|
||||
|
||||
if (index !== -1 && index !== undefined) {
|
||||
// Aggiorna il record mantenendo reattività
|
||||
@@ -3075,8 +3171,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
} catch (e) {}
|
||||
},
|
||||
setshowHeader(value: boolean) {
|
||||
this.showHeader = value
|
||||
}
|
||||
|
||||
this.showHeader = value;
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -47,6 +47,11 @@
|
||||
color="accent"
|
||||
@click="EseguiFunz('updateAllBook', { usaDBGMLocale: false, caricatutti: true })"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
label="Riaggiorna TUTTI gli ARTICOLI (Cron)"
|
||||
color="accent"
|
||||
@click="EseguiFunz('updateAllBooksAndRemoveCanc')"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
label="Riaggiorna TUTTI gli ARTICOLI da GM SERVER e Rimuovi Cancellati !"
|
||||
color="negative"
|
||||
|
||||
@@ -246,4 +246,9 @@ body {
|
||||
&:hover {
|
||||
color: #5c8ef4;
|
||||
}
|
||||
}
|
||||
.clCondiz {
|
||||
margin-bottom: 2px;
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
@@ -317,10 +317,12 @@ export default defineComponent({
|
||||
|
||||
const tabvisu = ref('categorie');
|
||||
const tabcatalogo = ref('visu');
|
||||
const tabgen = ref('condizioni');
|
||||
|
||||
const searchList = ref([] as ISearchList[]);
|
||||
|
||||
const arrProducts = ref<IProduct[]>([]);
|
||||
const arrListaTemporanea = ref<IProduct[]>([]);
|
||||
const arrProdToView = ref<IProdView[]>([]);
|
||||
|
||||
const numRecLoaded = ref(0);
|
||||
@@ -1000,7 +1002,7 @@ export default defineComponent({
|
||||
return arrris;
|
||||
}
|
||||
|
||||
async function calcArrProducts(generalista?: boolean) {
|
||||
async function calcArrProducts(generalista?: boolean, salva_listatemp: boolean) {
|
||||
// console.log('calcArrProducts (generalista=' + generalista + ')');
|
||||
|
||||
if (generalista) {
|
||||
@@ -1089,31 +1091,35 @@ export default defineComponent({
|
||||
salva = true;
|
||||
}
|
||||
|
||||
arrProducts.value = arrprod;
|
||||
if (salva_listatemp) {
|
||||
arrListaTemporanea.value = arrprod;
|
||||
} else {
|
||||
arrProducts.value = arrprod;
|
||||
|
||||
// console.log('arrprod', arrprod)
|
||||
optcatalogo.value = productStore.populateDataWithlinkIdTemplate(
|
||||
optcatalogo.value
|
||||
);
|
||||
|
||||
optcatalogo.value = productStore.populateDataWithlinkIdTemplate(optcatalogo.value);
|
||||
// Ordina la lista
|
||||
generatearrProdToViewSorted(!generalista, salva, !showListaFiltrata.value);
|
||||
loaddata();
|
||||
|
||||
// Ordina la lista
|
||||
generatearrProdToViewSorted(!generalista, salva, !showListaFiltrata.value);
|
||||
loaddata();
|
||||
|
||||
if (generalista) {
|
||||
const catalog = myCatalog.value;
|
||||
if (catalog && !showListaFiltrata.value) {
|
||||
catalog.data_lista_generata = tools.getDateNow();
|
||||
catalog.username_lista_generata = userStore.my.username;
|
||||
await saveCatalog();
|
||||
if (generalista) {
|
||||
const catalog = myCatalog.value;
|
||||
if (catalog && !showListaFiltrata.value) {
|
||||
catalog.data_lista_generata = tools.getDateNow();
|
||||
catalog.username_lista_generata = userStore.my.username;
|
||||
await saveCatalog();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// console.log('***** FINE calcArrPROD');
|
||||
|
||||
// console.log('areadistampa FINITO...', optcatalogo.value.areadistampa)
|
||||
|
||||
generatinglist.value = false;
|
||||
rigeneraLibri.value = false;
|
||||
if (!salva_listatemp) {
|
||||
rigeneraLibri.value = false;
|
||||
} else {
|
||||
tabgen.value = 'generato'
|
||||
}
|
||||
}
|
||||
|
||||
async function saveCatalog() {
|
||||
@@ -1146,6 +1152,13 @@ export default defineComponent({
|
||||
});
|
||||
}
|
||||
|
||||
function generaListaTempLibri() {
|
||||
// chiedi prima "Sei sicuro di rigenerare il catalogo?"
|
||||
let risposta_si = false;
|
||||
|
||||
calcArrProducts(true, true);
|
||||
}
|
||||
|
||||
function reSortList() {
|
||||
let risposta_si = false;
|
||||
|
||||
@@ -1344,12 +1357,12 @@ export default defineComponent({
|
||||
salva?: boolean,
|
||||
salvasudb?: boolean
|
||||
) {
|
||||
console.log(
|
||||
/*console.log(
|
||||
'generatearrProdToViewSorted... usaprodottiSalvati=',
|
||||
usaprodottiSalvati,
|
||||
' salva=',
|
||||
salva
|
||||
);
|
||||
);*/
|
||||
|
||||
try {
|
||||
// Svuota
|
||||
@@ -2922,6 +2935,7 @@ export default defineComponent({
|
||||
componentToFixRef,
|
||||
isFixed,
|
||||
arrProducts,
|
||||
arrListaTemporanea,
|
||||
show_hide,
|
||||
onLoadScroll,
|
||||
numRecLoaded,
|
||||
@@ -2996,6 +3010,8 @@ export default defineComponent({
|
||||
isStampa,
|
||||
onlyCatalogoPDF,
|
||||
updatecatalogmodif,
|
||||
tabgen,
|
||||
generaListaTempLibri,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
icon="fas fa-redo"
|
||||
label="Rigenera Lista"
|
||||
color="primary"
|
||||
@click="rigeneraLibri = true"
|
||||
@click="rigeneraLibri = true; tabgen = 'condizioni'"
|
||||
></q-btn>
|
||||
|
||||
<!--<q-bcctn
|
||||
@@ -619,7 +619,10 @@
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div v-if="myCatalog.pdf_online" class="catalog-download-section">
|
||||
<div
|
||||
v-if="myCatalog.pdf_online"
|
||||
class="catalog-download-section"
|
||||
>
|
||||
<q-card class="catalog-card shadow-8">
|
||||
<q-card-section class="text-center">
|
||||
<q-img
|
||||
@@ -1532,144 +1535,197 @@
|
||||
title="Rigenera Lista"
|
||||
class="q-ma-sm"
|
||||
>
|
||||
<q-card class="q-ma-sm">
|
||||
<q-card-section>
|
||||
<div style="width: 800px; margin: 0 auto">
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
:title="t('cataloglist.idTipoFormato')"
|
||||
table="catalogs"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="idTipoFormato"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.multiselect"
|
||||
jointable="t_web_tipiformatos"
|
||||
class="q-mb-md"
|
||||
@save="(v) => updatecatalogmodif('idTipoFormato', v)"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
<q-tabs
|
||||
dense
|
||||
class="bg-green text-white"
|
||||
v-model="tabgen"
|
||||
>
|
||||
<q-tab
|
||||
name="condizioni"
|
||||
icon="fas fa-list"
|
||||
label="Rigenera"
|
||||
/>
|
||||
<q-tab
|
||||
name="generato"
|
||||
icon="fas fa-list"
|
||||
label="Anteprima Lista"
|
||||
/>
|
||||
</q-tabs>
|
||||
<q-tab-panels
|
||||
v-model="tabgen"
|
||||
animated
|
||||
keep-alive
|
||||
>
|
||||
<q-tab-panel name="condizioni">
|
||||
<q-card>
|
||||
<q-card-section class="q-ma-sm">
|
||||
<div style="min-width: 800px; width: 100%; margin: 0 auto">
|
||||
<div class="row">
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
table="catalogs"
|
||||
:title="t('cataloglist.op_andor')"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="condition_andor"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.op_andor"
|
||||
class="clCondiz"
|
||||
@save="(v) => updatecatalogmodif('condition_andor', v)"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
:title="t('cataloglist.argomenti')"
|
||||
table="catalogs"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="argomenti"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.multiselect"
|
||||
jointable="catprods"
|
||||
@save="(v) => updatecatalogmodif('argomenti', v)"
|
||||
class="clCondiz"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
|
||||
<div class="row">
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
table="catalogs"
|
||||
:title="t('cataloglist.op_andor')"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="condition_andor"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.op_andor"
|
||||
class="q-mb-md"
|
||||
@save="(v) => updatecatalogmodif('condition_andor', v)"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
:title="t('cataloglist.argomenti')"
|
||||
table="catalogs"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="argomenti"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.multiselect"
|
||||
jointable="catprods"
|
||||
@save="(v) => updatecatalogmodif('argomenti', v)"
|
||||
class="q-mb-md"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
:title="t('cataloglist.collane')"
|
||||
table="catalogs"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="idCollane"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.multiselect"
|
||||
jointable="collanastotali"
|
||||
@save="(v) => updatecatalogmodif('idCollane', v)"
|
||||
class="q-mb-md"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
:title="t('cataloglist.editore_includi')"
|
||||
table="catalogs"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="editore"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.multiselect"
|
||||
jointable="publishers_totali"
|
||||
@save="(v) => updatecatalogmodif('editore', v)"
|
||||
class="q-mb-md"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
:title="t('cataloglist.editore_escludi')"
|
||||
table="catalogs"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="editore_escludi"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.multiselect"
|
||||
jointable="publishers_totali"
|
||||
@save="(v) => updatecatalogmodif('editore_escludi', v)"
|
||||
class="q-mb-md"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
:title="t('cataloglist.collane')"
|
||||
table="catalogs"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="idCollane"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.multiselect"
|
||||
jointable="collanastotali"
|
||||
@save="(v) => updatecatalogmodif('idCollane', v)"
|
||||
class="clCondiz"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
:title="t('cataloglist.editore_includi')"
|
||||
table="catalogs"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="editore"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.multiselect"
|
||||
jointable="publishers_totali_sort_qty"
|
||||
@save="(v) => updatecatalogmodif('editore', v)"
|
||||
class="clCondiz"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
:title="t('cataloglist.editore_escludi')"
|
||||
table="catalogs"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="editore_escludi"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.multiselect"
|
||||
jointable="publishers_totali_sort_qty"
|
||||
@save="(v) => updatecatalogmodif('editore_escludi', v)"
|
||||
class="clCondiz"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
|
||||
</div>
|
||||
|
||||
<CMyValueDb
|
||||
v-if="myCatalog"
|
||||
:editOn="true"
|
||||
:title="t('cataloglist.idTipoFormato')"
|
||||
table="catalogs"
|
||||
:id="myCatalog._id"
|
||||
:rec="myCatalog"
|
||||
mykey="idTipoFormato"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.multiselect"
|
||||
jointable="t_web_tipiformatos"
|
||||
class="clCondiz"
|
||||
@save="(v) => updatecatalogmodif('idTipoFormato', v)"
|
||||
:dense="false"
|
||||
>
|
||||
</CMyValueDb>
|
||||
|
||||
<div>Filtra per Disponibilità Magazzino:</div>
|
||||
<q-btn-toggle
|
||||
v-model="optrigenera.visibilitaDisp"
|
||||
toggle-color="green"
|
||||
class="q-my-md"
|
||||
:options="optDisp"
|
||||
>
|
||||
</q-btn-toggle>
|
||||
<div>Modalità di Creazione:</div>
|
||||
<q-btn-toggle
|
||||
v-model="optrigenera.rig_mod"
|
||||
toggle-color="red"
|
||||
class="q-my-md"
|
||||
:options="optRigeneraModalita"
|
||||
>
|
||||
</q-btn-toggle>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<div class="row justify-center">
|
||||
<q-spinner-hourglass
|
||||
v-if="generatinglist"
|
||||
size="4em"
|
||||
/>
|
||||
</div>
|
||||
<q-card-actions align="center">
|
||||
<q-btn
|
||||
rounded
|
||||
label="Anteprima"
|
||||
color="positive"
|
||||
icon="fas fa-eye"
|
||||
@click="generaListaTempLibri()"
|
||||
class="float-right"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
rounded
|
||||
label="Rigenera"
|
||||
color="primary"
|
||||
icon="fas fa-redo"
|
||||
@click="generaListaLibri()"
|
||||
class="float-right"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
rounded
|
||||
label="Chiudi"
|
||||
outlined
|
||||
class="float-right"
|
||||
@click="rigeneraLibri = false"
|
||||
></q-btn>
|
||||
</q-card-actions>
|
||||
|
||||
<div>Filtra per Disponibilità Magazzino:</div>
|
||||
<q-btn-toggle
|
||||
v-model="optrigenera.visibilitaDisp"
|
||||
toggle-color="green"
|
||||
class="q-my-md"
|
||||
:options="optDisp"
|
||||
>
|
||||
</q-btn-toggle>
|
||||
<div>Modalità di Creazione:</div>
|
||||
<q-btn-toggle
|
||||
v-model="optrigenera.rig_mod"
|
||||
toggle-color="red"
|
||||
class="q-my-md"
|
||||
:options="optRigeneraModalita"
|
||||
>
|
||||
</q-btn-toggle>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-card-actions align="center">
|
||||
<q-btn
|
||||
rounded
|
||||
label="Rigenera"
|
||||
color="primary"
|
||||
icon="fas fa-redo"
|
||||
@click="generaListaLibri()"
|
||||
class="float-right"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
rounded
|
||||
label="Chiudi"
|
||||
outlined
|
||||
class="float-right"
|
||||
@click="rigeneraLibri = false"
|
||||
></q-btn>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-card>
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="generato">
|
||||
|
||||
<CProductTable
|
||||
v-if="arrListaTemporanea?.length > 0"
|
||||
:lista_prodotti="arrListaTemporanea"
|
||||
:optcatalogo="optcatalogo"
|
||||
table="products"
|
||||
@rigenera="generaListaLibri()"
|
||||
/>
|
||||
|
||||
|
||||
</q-tab-panel>
|
||||
</q-tab-panels>
|
||||
</CMyDialog>
|
||||
|
||||
<CMyDialog
|
||||
|
||||
@@ -1,45 +1,44 @@
|
||||
import { defineComponent, onMounted, ref, watch, computed, onBeforeUnmount } from 'vue'
|
||||
import { tools } from '@tools'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useProducts } from '@store/Products'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { toolsext } from '@store/Modules/toolsext'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { costanti } from '@costanti'
|
||||
import { defineComponent, onMounted, ref, watch, computed, onBeforeUnmount } from 'vue';
|
||||
import { tools } from '@tools';
|
||||
import { useUserStore } from '@store/UserStore';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { useGlobalStore } from '@store/globalStore';
|
||||
import { useProducts } from '@store/Products';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { toolsext } from '@store/Modules/toolsext';
|
||||
import { useQuasar } from 'quasar';
|
||||
import { costanti } from '@costanti';
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { CProductCard } from '@src/components/CProductCard'
|
||||
import { CSelectUserActive } from '@src/components/CSelectUserActive'
|
||||
import type { IProduct } from '@src/model'
|
||||
import { shared_consts } from '@src/common/shared_vuejs';
|
||||
import { CProductCard } from '@src/components/CProductCard';
|
||||
import { CSelectUserActive } from '@src/components/CSelectUserActive';
|
||||
import type { IProduct } from '@src/model';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'ProductsList',
|
||||
components: { CProductCard, CSelectUserActive },
|
||||
props: {},
|
||||
setup() {
|
||||
const userStore = useUserStore()
|
||||
const globalStore = useGlobalStore()
|
||||
const productStore = useProducts()
|
||||
const router = useRouter()
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
const userStore = useUserStore();
|
||||
const globalStore = useGlobalStore();
|
||||
const productStore = useProducts();
|
||||
const router = useRouter();
|
||||
const $q = useQuasar();
|
||||
const { t } = useI18n();
|
||||
|
||||
const search = ref('')
|
||||
const search = ref('');
|
||||
|
||||
const cosa = ref(0)
|
||||
const cat = ref('')
|
||||
const subcat = ref('')
|
||||
const idGasSel = ref('')
|
||||
const loadpage = ref(false)
|
||||
const refreshpage = ref(false)
|
||||
const show_hide = ref(false)
|
||||
const cosa = ref(0);
|
||||
const cat = ref('');
|
||||
const subcat = ref('');
|
||||
const idGasSel = ref('');
|
||||
const loadpage = ref(false);
|
||||
const refreshpage = ref(false);
|
||||
const show_hide = ref(false);
|
||||
|
||||
const arrProducts = ref<any>([])
|
||||
|
||||
const numRecLoaded = ref(0)
|
||||
const arrProducts = ref<any>([]);
|
||||
|
||||
const numRecLoaded = ref(0);
|
||||
|
||||
// Create a ref for the component to fix
|
||||
const componentToFixRef = ref(<any>null);
|
||||
@@ -48,11 +47,11 @@ export default defineComponent({
|
||||
|
||||
const arrLoaded = computed(() => {
|
||||
if (arrProducts.value && numRecLoaded.value)
|
||||
return arrProducts.value.slice(0, numRecLoaded.value)
|
||||
return arrProducts.value.slice(0, numRecLoaded.value);
|
||||
else {
|
||||
return []
|
||||
return [];
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
// Register the scroll event on component mount
|
||||
const handleScroll = () => {
|
||||
@@ -65,60 +64,93 @@ export default defineComponent({
|
||||
isFixed.value = scrollTop > threshold;
|
||||
};
|
||||
|
||||
watch(() => cat.value, (newval, oldval) => {
|
||||
calcArrProducts()
|
||||
})
|
||||
|
||||
watch(() => subcat.value, (newval, oldval) => {
|
||||
calcArrProducts()
|
||||
})
|
||||
|
||||
watch(() => idGasSel.value, (newval, oldval) => {
|
||||
calcArrProducts()
|
||||
})
|
||||
|
||||
watch(() => search.value, (newval, oldval) => {
|
||||
calcArrProducts()
|
||||
if (tools.scrollTop() > 300) {
|
||||
tools.scrollToTopValue(300)
|
||||
watch(
|
||||
() => cat.value,
|
||||
(newval, oldval) => {
|
||||
if (loadpage.value) {
|
||||
tools.setCookie(tools.COOK_ARGOM, cat.value.toString());
|
||||
calcArrProducts();
|
||||
}
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
watch(() => cosa.value, (newval, oldval) => {
|
||||
tools.setCookie(tools.COOK_COSA_PRODOTTI, cosa.value.toString())
|
||||
if (cosa.value !== shared_consts.PROD.TUTTI) {
|
||||
cat.value = ''
|
||||
subcat.value = ''
|
||||
watch(
|
||||
() => subcat.value,
|
||||
(newval, oldval) => {
|
||||
if (loadpage.value) {
|
||||
calcArrProducts();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
calcArrProducts()
|
||||
})
|
||||
watch(
|
||||
() => idGasSel.value,
|
||||
(newval, oldval) => {
|
||||
if (loadpage.value) {
|
||||
calcArrProducts();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => search.value,
|
||||
(newval, oldval) => {
|
||||
if (loadpage.value) {
|
||||
calcArrProducts();
|
||||
if (tools.scrollTop() > 300) {
|
||||
tools.scrollToTopValue(300);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => cosa.value,
|
||||
(newval, oldval) => {
|
||||
if (loadpage.value) {
|
||||
tools.setCookie(tools.COOK_COSA_PRODOTTI, cosa.value.toString());
|
||||
if (cosa.value !== shared_consts.PROD.TUTTI) {
|
||||
cat.value = '';
|
||||
subcat.value = '';
|
||||
}
|
||||
|
||||
calcArrProducts();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
function calcArrProducts() {
|
||||
// console.log('calcArrProducts')
|
||||
|
||||
refreshpage.value = true
|
||||
let arrprod = productStore.getProducts(cosa.value)
|
||||
refreshpage.value = true;
|
||||
let arrprod = productStore.getProducts(cosa.value);
|
||||
const catstr = cat.value;
|
||||
const subcatstr = subcat.value;
|
||||
let gasselstr = ''
|
||||
let gasselstr = '';
|
||||
if (cosa.value === shared_consts.PROD.GAS) {
|
||||
gasselstr = idGasSel.value
|
||||
gasselstr = idGasSel.value;
|
||||
}
|
||||
const lowerSearchText = search.value.toLowerCase().trim();
|
||||
if ((!lowerSearchText || (lowerSearchText && lowerSearchText.length < 2)) && !catstr && !subcatstr && (!gasselstr && (cosa.value !== shared_consts.PROD.GAS))) {
|
||||
|
||||
if (
|
||||
(!lowerSearchText || (lowerSearchText && lowerSearchText.length < 2)) &&
|
||||
!catstr &&
|
||||
!subcatstr &&
|
||||
!gasselstr &&
|
||||
cosa.value !== shared_consts.PROD.GAS
|
||||
) {
|
||||
} else {
|
||||
|
||||
arrprod = arrprod.filter((product: IProduct) => {
|
||||
if (product && product.productInfo && !!product.productInfo.name) {
|
||||
const lowerName = product.productInfo.name.toLowerCase();
|
||||
const hasCategoria = !catstr || (catstr && product.productInfo.idCatProds?.includes(catstr));
|
||||
const hasSubCategoria = !subcatstr || (subcatstr && product.productInfo.idSubCatProds?.includes(subcatstr));
|
||||
const hasCategoria =
|
||||
!catstr || (catstr && product.productInfo.idCatProds?.includes(catstr));
|
||||
const hasSubCategoria =
|
||||
!subcatstr ||
|
||||
(subcatstr && product.productInfo.idSubCatProds?.includes(subcatstr));
|
||||
|
||||
let productgassel = true
|
||||
if (gasselstr || (cosa.value === shared_consts.PROD.GAS)) {
|
||||
productgassel = (product.idGasordine === gasselstr)
|
||||
let productgassel = true;
|
||||
if (gasselstr || cosa.value === shared_consts.PROD.GAS) {
|
||||
productgassel = product.idGasordine === gasselstr;
|
||||
}
|
||||
|
||||
// Use a regular expression to match whole words
|
||||
@@ -126,16 +158,23 @@ export default defineComponent({
|
||||
const nameMatch = new RegExp(`\\b${lowerSearchText}`, 'i');
|
||||
|
||||
// Check if any word in lowerName starts with lowerSearchText
|
||||
const anyWordStartsWithSearch = lowerName.split(/\s+/).some(word => nameMatch.test(word));
|
||||
const anyWordStartsWithSearch = lowerName
|
||||
.split(/\s+/)
|
||||
.some((word) => nameMatch.test(word));
|
||||
|
||||
return (codeMatch.test(product.productInfo.code) || anyWordStartsWithSearch) && hasCategoria && hasSubCategoria && productgassel;
|
||||
return (
|
||||
(codeMatch.test(product.productInfo.code) || anyWordStartsWithSearch) &&
|
||||
hasCategoria &&
|
||||
hasSubCategoria &&
|
||||
productgassel
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
arrProducts.value = arrprod
|
||||
loaddata()
|
||||
refreshpage.value = false
|
||||
arrProducts.value = arrprod;
|
||||
loaddata();
|
||||
refreshpage.value = false;
|
||||
}
|
||||
|
||||
/*function getProducts() {
|
||||
@@ -155,23 +194,30 @@ export default defineComponent({
|
||||
}*/
|
||||
|
||||
async function mounted() {
|
||||
loadpage.value = false
|
||||
await productStore.loadProducts(true)
|
||||
cosa.value = tools.getCookie(tools.COOK_COSA_PRODOTTI, shared_consts.PROD.GAS, true)
|
||||
if (cosa.value === shared_consts.PROD.TUTTI)
|
||||
cosa.value = shared_consts.PROD.GAS
|
||||
loadpage.value = false;
|
||||
|
||||
cosa.value = tools.getCookie(
|
||||
tools.COOK_COSA_PRODOTTI,
|
||||
shared_consts.PROD.GAS,
|
||||
true
|
||||
);
|
||||
if (cosa.value === shared_consts.PROD.TUTTI) cosa.value = shared_consts.PROD.GAS;
|
||||
|
||||
cat.value = tools.getCookie(tools.COOK_ARGOM, '');
|
||||
|
||||
await productStore.loadProducts(true);
|
||||
|
||||
// Inizializza
|
||||
loadpage.value = true
|
||||
loadpage.value = true;
|
||||
window.addEventListener('scroll', handleScroll);
|
||||
|
||||
calcArrProducts()
|
||||
calcArrProducts();
|
||||
|
||||
loaddata()
|
||||
loaddata();
|
||||
}
|
||||
|
||||
function loaddata() {
|
||||
numRecLoaded.value = 20
|
||||
numRecLoaded.value = 20;
|
||||
}
|
||||
|
||||
// Remove the event listener on component destroy
|
||||
@@ -180,65 +226,76 @@ export default defineComponent({
|
||||
});
|
||||
|
||||
function getCatProds() {
|
||||
const arrcat = productStore.getCatProds(shared_consts.PROD.BOTTEGA)
|
||||
const arrcat = productStore.getCatProds(shared_consts.PROD.BOTTEGA);
|
||||
|
||||
// console.log('getCatProds', arrcat)
|
||||
let riscat: any = []
|
||||
let riscat: any = [];
|
||||
if (arrcat && arrcat.length > 0) {
|
||||
riscat = [{ label: 'Tutti', value: '', icon: undefined, color: undefined }]
|
||||
riscat = [{ label: 'Tutti', value: '', icon: undefined, color: undefined }];
|
||||
for (const rec of arrcat) {
|
||||
riscat.push({ label: rec.name, value: rec._id, icon: rec.icon, color: rec.color })
|
||||
riscat.push({
|
||||
label: rec.name,
|
||||
value: rec._id,
|
||||
icon: rec.icon,
|
||||
color: rec.color,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return riscat
|
||||
return riscat;
|
||||
}
|
||||
function getCatProdsByGas(idGasOrdine: string): any {
|
||||
const arrcat = productStore.getCatProdsByGas(idGasOrdine)
|
||||
let riscat: any = []
|
||||
const arrcat = productStore.getCatProdsByGas(idGasOrdine);
|
||||
let riscat: any = [];
|
||||
if (arrcat && arrcat.length > 0) {
|
||||
riscat = [{ label: 'Tutti', value: '', icon: undefined, color: undefined }]
|
||||
riscat = [{ label: 'Tutti', value: '', icon: undefined, color: undefined }];
|
||||
for (const rec of arrcat) {
|
||||
riscat.push({ label: rec.name, value: rec._id, icon: rec.icon, color: rec.color })
|
||||
riscat.push({
|
||||
label: rec.name,
|
||||
value: rec._id,
|
||||
icon: rec.icon,
|
||||
color: rec.color,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return riscat
|
||||
return riscat;
|
||||
}
|
||||
function getSubCatProdsByGas(idGasOrdine: string, idCatProd: string): any {
|
||||
const arrcat = productStore.getSubCatProdsByGas(idGasOrdine, idCatProd)
|
||||
let riscat: any = []
|
||||
const arrcat = productStore.getSubCatProdsByGas(idGasOrdine, idCatProd);
|
||||
let riscat: any = [];
|
||||
if (arrcat && arrcat.length > 0) {
|
||||
riscat = [{ label: 'Tutti', value: '', icon: undefined, color: undefined }]
|
||||
riscat = [{ label: 'Tutti', value: '', icon: undefined, color: undefined }];
|
||||
for (const rec of arrcat) {
|
||||
riscat.push({ label: rec.name, value: rec._id, icon: rec.icon, color: rec.color })
|
||||
riscat.push({
|
||||
label: rec.name,
|
||||
value: rec._id,
|
||||
icon: rec.icon,
|
||||
color: rec.color,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return riscat
|
||||
return riscat;
|
||||
}
|
||||
|
||||
|
||||
function onLoadScroll(index: number, done: any) {
|
||||
if (index >= 1) {
|
||||
if (numRecLoaded.value < arrProducts.value.length) {
|
||||
const step = 10;
|
||||
let mynrec = numRecLoaded.value + step;
|
||||
|
||||
const step = 10
|
||||
let mynrec = numRecLoaded.value + step
|
||||
|
||||
if (mynrec > arrProducts.value.length)
|
||||
mynrec = arrProducts.value.length
|
||||
|
||||
numRecLoaded.value = mynrec
|
||||
if (mynrec > arrProducts.value.length) mynrec = arrProducts.value.length;
|
||||
|
||||
numRecLoaded.value = mynrec;
|
||||
}
|
||||
done()
|
||||
done();
|
||||
} else {
|
||||
done(true)
|
||||
done(true);
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
onMounted(mounted);
|
||||
|
||||
return {
|
||||
userStore,
|
||||
@@ -265,7 +322,6 @@ export default defineComponent({
|
||||
numRecLoaded,
|
||||
arrLoaded,
|
||||
getSubCatProdsByGas,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user