- Creazione pagina Home logout
- Nuovo Gasordine - Visualizzazione GAS / BOTTEGA
This commit is contained in:
@@ -17,6 +17,11 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
LIMIT_NOTIF_FOR_USER: 200,
|
LIMIT_NOTIF_FOR_USER: 200,
|
||||||
|
|
||||||
|
PROD: {
|
||||||
|
GAS: 1,
|
||||||
|
BOTTEGA: 2,
|
||||||
|
},
|
||||||
|
|
||||||
UNITS_OF_MEASURE: {
|
UNITS_OF_MEASURE: {
|
||||||
NESSUNO: 0,
|
NESSUNO: 0,
|
||||||
GRAMMI: 1,
|
GRAMMI: 1,
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="complete && myproduct.weight"
|
v-if="myproduct.weight"
|
||||||
class="text-grey text-title row items-center"
|
class="text-grey text-title row items-center"
|
||||||
>
|
>
|
||||||
<q-icon name="fas fa-balance-scale" class="q-mr-xs" />
|
<q-icon name="fas fa-balance-scale" class="q-mr-xs" />
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ export default defineComponent({
|
|||||||
let ret = true
|
let ret = true
|
||||||
if (slide.value === '1') {
|
if (slide.value === '1') {
|
||||||
// Invitante + Email
|
// Invitante + Email
|
||||||
ret = !signup.email || !signup.aportador_solidario || inputAportador.value.hasError || (inputEmail.value && inputEmail.value.hasError)
|
ret = !signup.email || (tools.getAskToVerifyReg() && (!signup.aportador_solidario || inputAportador.value.hasError)) || (inputEmail.value && inputEmail.value.hasError)
|
||||||
} else if (slide.value === '2') {
|
} else if (slide.value === '2') {
|
||||||
// Username
|
// Username
|
||||||
ret = !signup.username || (inputUsername.value && inputUsername.value.hasError)
|
ret = !signup.username || (inputUsername.value && inputUsername.value.hasError)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<div
|
<div
|
||||||
v-if="
|
v-if="
|
||||||
needTelegram && tools.isLogged() && tools.getUsername() && !collettivo
|
tools.isLogged() && tools.getUsername() && !collettivo
|
||||||
"
|
"
|
||||||
class="text-center"
|
class="text-center"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -7,10 +7,12 @@ export interface IProduct {
|
|||||||
idProducer?: string,
|
idProducer?: string,
|
||||||
idProvider?: string,
|
idProvider?: string,
|
||||||
idStorehouses?: string[],
|
idStorehouses?: string[],
|
||||||
|
idGasordines?: string[],
|
||||||
idScontisticas?: string[],
|
idScontisticas?: string[],
|
||||||
scontisticas: IScontistica[],
|
scontisticas: IScontistica[],
|
||||||
producer?: IProducer,
|
producer?: IProducer,
|
||||||
storehouses: IStorehouse[],
|
storehouses: IStorehouse[],
|
||||||
|
gasordines: IGasordine[],
|
||||||
provider?: IProvider,
|
provider?: IProvider,
|
||||||
code?: string,
|
code?: string,
|
||||||
name?: string,
|
name?: string,
|
||||||
@@ -26,6 +28,7 @@ export interface IProduct {
|
|||||||
QuantitaOrdinateInAttesa?: number,
|
QuantitaOrdinateInAttesa?: number,
|
||||||
QuantitaPrenotateInAttesa?: number,
|
QuantitaPrenotateInAttesa?: number,
|
||||||
stockQty: number,
|
stockQty: number,
|
||||||
|
minBuyQty: number,
|
||||||
bookableQty: number,
|
bookableQty: number,
|
||||||
canBeShipped?: boolean,
|
canBeShipped?: boolean,
|
||||||
canBeBuyOnline?: boolean,
|
canBeBuyOnline?: boolean,
|
||||||
@@ -141,7 +144,7 @@ export interface IGasordine {
|
|||||||
referent?: string,
|
referent?: string,
|
||||||
city?: string,
|
city?: string,
|
||||||
img?: string,
|
img?: string,
|
||||||
dataora_chiusura?: Date,
|
dataora_chiusura_ordini?: Date,
|
||||||
dataora_ritiro?: Date,
|
dataora_ritiro?: Date,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ const msg_it = {
|
|||||||
quantity: 'Quantità',
|
quantity: 'Quantità',
|
||||||
quantityAvailable: 'Disponibili',
|
quantityAvailable: 'Disponibili',
|
||||||
stockQty: 'In Magazzino',
|
stockQty: 'In Magazzino',
|
||||||
|
minBuyQty: 'Qta minima acquistabile',
|
||||||
bookableQty: 'Prenotabili',
|
bookableQty: 'Prenotabili',
|
||||||
bookableAvailableQty: 'Disponib. Prenotabili',
|
bookableAvailableQty: 'Disponib. Prenotabili',
|
||||||
weight: 'Peso',
|
weight: 'Peso',
|
||||||
@@ -79,6 +80,8 @@ const msg_it = {
|
|||||||
note: 'Note',
|
note: 'Note',
|
||||||
codice_EAN: 'EAN',
|
codice_EAN: 'EAN',
|
||||||
barcode: 'BarCode',
|
barcode: 'BarCode',
|
||||||
|
price_acquistato: 'Prezzo Acquistato',
|
||||||
|
vegan: 'Vegano',
|
||||||
},
|
},
|
||||||
storehouses: {
|
storehouses: {
|
||||||
name: 'Magazzino',
|
name: 'Magazzino',
|
||||||
@@ -1669,12 +1672,17 @@ const msg_it = {
|
|||||||
qta_in_attesa: '(Ordinati In attesa {qty})',
|
qta_in_attesa: '(Ordinati In attesa {qty})',
|
||||||
sconto_applicato: 'Risparmi {risparmio} € !',
|
sconto_applicato: 'Risparmi {risparmio} € !',
|
||||||
codice: 'Codice',
|
codice: 'Codice',
|
||||||
code_o_text_search: 'Inserisci il codice o il testo',
|
code_o_text_search: 'Inserisci il codice o il testo da cercare',
|
||||||
code_add_to_cart: 'Aggiungi un codice al carrello',
|
code_add_to_cart: 'Aggiungi un codice al carrello',
|
||||||
qta_prenotate_in_attesa: '(Preordinate In attesa {qty})',
|
qta_prenotate_in_attesa: '(Preordinate In attesa {qty})',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
gas: {
|
||||||
|
dataora_chiusura_ordini: 'Data Chiusura Ordini',
|
||||||
|
dataora_ritiro: 'Data Ritiro Prodotti',
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default msg_it;
|
export default msg_it;
|
||||||
|
|||||||
@@ -449,7 +449,7 @@ export const colTableGasordine = [
|
|||||||
AddCol({ name: 'referente', label_trans: 'store.referent' }),
|
AddCol({ name: 'referente', label_trans: 'store.referent' }),
|
||||||
AddCol({ name: 'city', label_trans: 'store.city' }),
|
AddCol({ name: 'city', label_trans: 'store.city' }),
|
||||||
AddCol({ name: 'img', label_trans: 'store.img' }),
|
AddCol({ name: 'img', label_trans: 'store.img' }),
|
||||||
AddCol({ name: 'dataora_chiusura', label_trans: 'gas.dataora_chiusura', fieldtype: costanti.FieldType.date }),
|
AddCol({ name: 'dataora_chiusura_ordini', label_trans: 'gas.dataora_chiusura_ordini', fieldtype: costanti.FieldType.date }),
|
||||||
AddCol({ name: 'dataora_ritiro', label_trans: 'gas.dataora_ritiro', fieldtype: costanti.FieldType.date }),
|
AddCol({ name: 'dataora_ritiro', label_trans: 'gas.dataora_ritiro', fieldtype: costanti.FieldType.date }),
|
||||||
AddCol(DeleteRec),
|
AddCol(DeleteRec),
|
||||||
AddCol(DuplicateRec),
|
AddCol(DuplicateRec),
|
||||||
@@ -1957,7 +1957,7 @@ export const colTableIscrittiArcadei = [
|
|||||||
|
|
||||||
export const colTableProducts = [
|
export const colTableProducts = [
|
||||||
AddCol({ name: 'active', label_trans: 'products.active', fieldtype: costanti.FieldType.boolean }),
|
AddCol({ name: 'active', label_trans: 'products.active', fieldtype: costanti.FieldType.boolean }),
|
||||||
AddCol({ name: 'code', label_trans: 'products.code' }),
|
AddCol({ name: 'code', label_trans: 'products.code', required: true }),
|
||||||
AddCol({ name: 'codice_EAN', label_trans: 'products.codice_EAN' }),
|
AddCol({ name: 'codice_EAN', label_trans: 'products.codice_EAN' }),
|
||||||
AddCol({ name: 'barcode', label_trans: 'products.barcode' }),
|
AddCol({ name: 'barcode', label_trans: 'products.barcode' }),
|
||||||
AddCol({ name: 'name', label_trans: 'products.name' }),
|
AddCol({ name: 'name', label_trans: 'products.name' }),
|
||||||
@@ -1977,6 +1977,12 @@ export const colTableProducts = [
|
|||||||
fieldtype: costanti.FieldType.multiselect,
|
fieldtype: costanti.FieldType.multiselect,
|
||||||
jointable: 'storehouses',
|
jointable: 'storehouses',
|
||||||
}),
|
}),
|
||||||
|
AddCol({
|
||||||
|
name: 'idGasordines',
|
||||||
|
label_trans: 'gasordine.name',
|
||||||
|
fieldtype: costanti.FieldType.multiselect,
|
||||||
|
jointable: 'gasordines',
|
||||||
|
}),
|
||||||
AddCol({
|
AddCol({
|
||||||
name: 'idProvider',
|
name: 'idProvider',
|
||||||
label_trans: 'provider.name',
|
label_trans: 'provider.name',
|
||||||
@@ -2002,11 +2008,12 @@ export const colTableProducts = [
|
|||||||
fieldtype: costanti.FieldType.multiselect,
|
fieldtype: costanti.FieldType.multiselect,
|
||||||
jointable: 'categorys',
|
jointable: 'categorys',
|
||||||
}),
|
}),
|
||||||
AddCol({ name: 'price', label_trans: 'products.price', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'price', label_trans: 'products.price', fieldtype: costanti.FieldType.number, required: true }),
|
||||||
|
AddCol({ name: 'price_acquistato', label_trans: 'products.price_acquistato', fieldtype: costanti.FieldType.number, required: true }),
|
||||||
AddCol({ name: 'after_price', label_trans: 'products.after_price' }),
|
AddCol({ name: 'after_price', label_trans: 'products.after_price' }),
|
||||||
AddCol({ name: 'color', label_trans: 'products.color' }),
|
AddCol({ name: 'color', label_trans: 'products.color' }),
|
||||||
AddCol({ name: 'size', label_trans: 'products.size' }),
|
AddCol({ name: 'size', label_trans: 'products.size' }),
|
||||||
AddCol({
|
/*AddCol({
|
||||||
name: 'quantityAvailable',
|
name: 'quantityAvailable',
|
||||||
label_trans: 'products.quantityAvailable',
|
label_trans: 'products.quantityAvailable',
|
||||||
fieldtype: costanti.FieldType.number
|
fieldtype: costanti.FieldType.number
|
||||||
@@ -2015,6 +2022,11 @@ export const colTableProducts = [
|
|||||||
name: 'bookableAvailableQty',
|
name: 'bookableAvailableQty',
|
||||||
label_trans: 'products.bookableAvailableQty',
|
label_trans: 'products.bookableAvailableQty',
|
||||||
fieldtype: costanti.FieldType.number
|
fieldtype: costanti.FieldType.number
|
||||||
|
}), */
|
||||||
|
AddCol({
|
||||||
|
name: 'minBuyQty',
|
||||||
|
label_trans: 'products.minBuyQty',
|
||||||
|
fieldtype: costanti.FieldType.number
|
||||||
}),
|
}),
|
||||||
AddCol({
|
AddCol({
|
||||||
name: 'stockQty',
|
name: 'stockQty',
|
||||||
|
|||||||
@@ -20,8 +20,18 @@ export const useProducts = defineStore('Products', {
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
getters: {
|
getters: {
|
||||||
getProducts: (state: IProductsState) => (): IProduct[] => {
|
getProducts: (state: IProductsState) => (cosa?: number): IProduct[] => {
|
||||||
return state.products
|
if (!!cosa) {
|
||||||
|
let ris = null
|
||||||
|
if (cosa === shared_consts.PROD.GAS) {
|
||||||
|
ris = state.products.filter((rec) => (rec.idGasordines && rec.idGasordines.length > 0))
|
||||||
|
} else if (cosa === shared_consts.PROD.BOTTEGA) {
|
||||||
|
ris = state.products.filter((rec) => (!rec.idGasordines || (rec.idGasordines && rec.idGasordines.length === 0)))
|
||||||
|
}
|
||||||
|
return ris ? ris : []
|
||||||
|
} else {
|
||||||
|
return state.products
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
updateDataProduct: (state: IProductsState) => (res: any) => {
|
updateDataProduct: (state: IProductsState) => (res: any) => {
|
||||||
@@ -55,14 +65,15 @@ export const useProducts = defineStore('Products', {
|
|||||||
|
|
||||||
getProductById: (state: IProductsState) => (id: string): IProduct => {
|
getProductById: (state: IProductsState) => (id: string): IProduct => {
|
||||||
const prod = state.products.find((prod: IProduct) => prod._id === id)
|
const prod = state.products.find((prod: IProduct) => prod._id === id)
|
||||||
return prod ? prod : { active: false, img: '', code: '', name: '', storehouses: [], scontisticas: [], price: 0, stockQty: 0, bookableQty: 0 }
|
return prod ? prod : { active: false, img: '', code: '', name: '', storehouses: [], scontisticas: [], price: 0, stockQty: 0, bookableQty: 0, gasordines: [], idGasordines: [], minBuyQty: 1 }
|
||||||
},
|
},
|
||||||
|
|
||||||
getProductByCode: (state: IProductsState) => (code: string): IProduct => {
|
getProductByCode: (state: IProductsState) => (code: string): IProduct => {
|
||||||
const prod = state.products.find((prod: IProduct) => prod.code === code)
|
const prod = state.products.find((prod: IProduct) => prod.code === code)
|
||||||
return prod ? prod : {
|
return prod ? prod : {
|
||||||
active: false, img: '', code: '', name: '', storehouses: [], scontisticas: [], price: 0,
|
active: false, img: '', code: '', name: '', storehouses: [], scontisticas: [], price: 0,
|
||||||
stockQty: 0, bookableQty: 0
|
gasordines: [], idGasordines: [],
|
||||||
|
stockQty: 0, bookableQty: 0, minBuyQty: 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -215,8 +226,10 @@ export const useProducts = defineStore('Products', {
|
|||||||
active: false,
|
active: false,
|
||||||
idProducer: '',
|
idProducer: '',
|
||||||
idStorehouses: [],
|
idStorehouses: [],
|
||||||
|
idGasordines: [],
|
||||||
idScontisticas: [],
|
idScontisticas: [],
|
||||||
scontisticas: [],
|
scontisticas: [],
|
||||||
|
gasordines: [],
|
||||||
idProvider: '',
|
idProvider: '',
|
||||||
producer: {},
|
producer: {},
|
||||||
storehouses: [],
|
storehouses: [],
|
||||||
@@ -232,6 +245,7 @@ export const useProducts = defineStore('Products', {
|
|||||||
quantityAvailable: 0,
|
quantityAvailable: 0,
|
||||||
bookableAvailableQty: 0,
|
bookableAvailableQty: 0,
|
||||||
stockQty: 0,
|
stockQty: 0,
|
||||||
|
minBuyQty: 1,
|
||||||
bookableQty: 0,
|
bookableQty: 0,
|
||||||
canBeShipped: false,
|
canBeShipped: false,
|
||||||
QuantitaOrdinateInAttesa: 0,
|
QuantitaOrdinateInAttesa: 0,
|
||||||
@@ -645,7 +659,7 @@ export const useProducts = defineStore('Products', {
|
|||||||
if (ris && ris.myord == null) {
|
if (ris && ris.myord == null) {
|
||||||
msg = t('ecomm.prodotto_tolto')
|
msg = t('ecomm.prodotto_tolto')
|
||||||
tools.showNotif($q, msg)
|
tools.showNotif($q, msg)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (ris === null || ris.myord == null) {
|
if (ris === null || ris.myord == null) {
|
||||||
msg = t('ecomm.error_cart')
|
msg = t('ecomm.error_cart')
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import { toolsext } from '@store/Modules/toolsext'
|
|||||||
import { useQuasar } from 'quasar'
|
import { useQuasar } from 'quasar'
|
||||||
import { costanti } from '@costanti'
|
import { costanti } from '@costanti'
|
||||||
|
|
||||||
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
import { CProductCard } from '@src/components/CProductCard'
|
import { CProductCard } from '@src/components/CProductCard'
|
||||||
import { IProduct } from '@src/model'
|
import { IProduct } from '@src/model'
|
||||||
|
|
||||||
@@ -27,12 +28,14 @@ export default defineComponent({
|
|||||||
|
|
||||||
const search = ref('')
|
const search = ref('')
|
||||||
|
|
||||||
|
const cosa = ref(shared_consts.PROD.GAS)
|
||||||
|
|
||||||
function mounted() {
|
function mounted() {
|
||||||
// Inizializza
|
// Inizializza
|
||||||
productStore.loadProducts()
|
productStore.loadProducts()
|
||||||
}
|
}
|
||||||
function getProducts() {
|
function getProducts() {
|
||||||
let arrprod = productStore.getProducts()
|
let arrprod = productStore.getProducts(cosa.value)
|
||||||
if (!search.value) {
|
if (!search.value) {
|
||||||
return arrprod
|
return arrprod
|
||||||
}
|
}
|
||||||
@@ -54,6 +57,8 @@ export default defineComponent({
|
|||||||
toolsext,
|
toolsext,
|
||||||
getProducts,
|
getProducts,
|
||||||
search,
|
search,
|
||||||
|
cosa,
|
||||||
|
shared_consts,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,29 +1,43 @@
|
|||||||
<template>
|
<template>
|
||||||
<q-page>
|
<q-page>
|
||||||
<div class="panel">
|
<div class="panel">
|
||||||
|
<div>
|
||||||
|
<div class="q-gutter-md text-center q-mb-md">
|
||||||
|
<q-btn-toggle v-model="cosa" push rounded glossy toggle-color="purple" :options="[
|
||||||
|
{ value: shared_consts.PROD.GAS, slot: 'gas' },
|
||||||
|
{ value: shared_consts.PROD.BOTTEGA, slot: 'bottega' },
|
||||||
|
]">
|
||||||
|
<template v-slot:gas>
|
||||||
|
<div class="row items-center no-wrap">
|
||||||
|
<div class="text-center">
|
||||||
|
Ordina sul GAS
|
||||||
|
</div>
|
||||||
|
<q-icon right name="fas fa-user-friends" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template v-slot:bottega>
|
||||||
|
<div class="row items-center no-wrap">
|
||||||
|
<div class="text-center">
|
||||||
|
Vai alla Bottega
|
||||||
|
</div>
|
||||||
|
<q-icon right name="fas fa-store" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</q-btn-toggle>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div
|
<div class="q-gutter-y-md column text-center q-mx-auto" style="width: 350px; max-width: 100%">
|
||||||
class="q-gutter-y-md column text-center q-mx-auto"
|
<q-input filled stack-label :label="$t('ecomm.code_o_text_search')" v-model="search" class="q-ml-md">
|
||||||
style="width: 350px; max-width: 100%"
|
|
||||||
>
|
|
||||||
<q-input
|
|
||||||
filled
|
|
||||||
stack-label
|
|
||||||
:label="$t('ecomm.code_o_text_search')"
|
|
||||||
v-model="search"
|
|
||||||
class="q-ml-md"
|
|
||||||
>
|
|
||||||
<template v-slot:append>
|
<template v-slot:append>
|
||||||
<q-icon name="search" />
|
<q-icon name="search" />
|
||||||
</template>
|
</template>
|
||||||
</q-input>
|
</q-input>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div
|
<div class="q-pa-md row items-start q-gutter-md" v-for="(product, index) in getProducts()" :key="index">
|
||||||
class="q-pa-md row items-start q-gutter-md"
|
|
||||||
v-for="(product, index) in getProducts()"
|
|
||||||
:key="index"
|
|
||||||
>
|
|
||||||
<CProductCard :code="product.code" :complete="false" />
|
<CProductCard :code="product.code" :complete="false" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user