- 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,
|
||||
|
||||
PROD: {
|
||||
GAS: 1,
|
||||
BOTTEGA: 2,
|
||||
},
|
||||
|
||||
UNITS_OF_MEASURE: {
|
||||
NESSUNO: 0,
|
||||
GRAMMI: 1,
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
v-if="complete && myproduct.weight"
|
||||
v-if="myproduct.weight"
|
||||
class="text-grey text-title row items-center"
|
||||
>
|
||||
<q-icon name="fas fa-balance-scale" class="q-mr-xs" />
|
||||
|
||||
@@ -114,7 +114,7 @@ export default defineComponent({
|
||||
let ret = true
|
||||
if (slide.value === '1') {
|
||||
// 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') {
|
||||
// Username
|
||||
ret = !signup.username || (inputUsername.value && inputUsername.value.hasError)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div>
|
||||
<div
|
||||
v-if="
|
||||
needTelegram && tools.isLogged() && tools.getUsername() && !collettivo
|
||||
tools.isLogged() && tools.getUsername() && !collettivo
|
||||
"
|
||||
class="text-center"
|
||||
>
|
||||
|
||||
@@ -7,10 +7,12 @@ export interface IProduct {
|
||||
idProducer?: string,
|
||||
idProvider?: string,
|
||||
idStorehouses?: string[],
|
||||
idGasordines?: string[],
|
||||
idScontisticas?: string[],
|
||||
scontisticas: IScontistica[],
|
||||
producer?: IProducer,
|
||||
storehouses: IStorehouse[],
|
||||
gasordines: IGasordine[],
|
||||
provider?: IProvider,
|
||||
code?: string,
|
||||
name?: string,
|
||||
@@ -26,6 +28,7 @@ export interface IProduct {
|
||||
QuantitaOrdinateInAttesa?: number,
|
||||
QuantitaPrenotateInAttesa?: number,
|
||||
stockQty: number,
|
||||
minBuyQty: number,
|
||||
bookableQty: number,
|
||||
canBeShipped?: boolean,
|
||||
canBeBuyOnline?: boolean,
|
||||
@@ -141,7 +144,7 @@ export interface IGasordine {
|
||||
referent?: string,
|
||||
city?: string,
|
||||
img?: string,
|
||||
dataora_chiusura?: Date,
|
||||
dataora_chiusura_ordini?: Date,
|
||||
dataora_ritiro?: Date,
|
||||
}
|
||||
|
||||
|
||||
@@ -62,6 +62,7 @@ const msg_it = {
|
||||
quantity: 'Quantità',
|
||||
quantityAvailable: 'Disponibili',
|
||||
stockQty: 'In Magazzino',
|
||||
minBuyQty: 'Qta minima acquistabile',
|
||||
bookableQty: 'Prenotabili',
|
||||
bookableAvailableQty: 'Disponib. Prenotabili',
|
||||
weight: 'Peso',
|
||||
@@ -79,6 +80,8 @@ const msg_it = {
|
||||
note: 'Note',
|
||||
codice_EAN: 'EAN',
|
||||
barcode: 'BarCode',
|
||||
price_acquistato: 'Prezzo Acquistato',
|
||||
vegan: 'Vegano',
|
||||
},
|
||||
storehouses: {
|
||||
name: 'Magazzino',
|
||||
@@ -1669,12 +1672,17 @@ const msg_it = {
|
||||
qta_in_attesa: '(Ordinati In attesa {qty})',
|
||||
sconto_applicato: 'Risparmi {risparmio} € !',
|
||||
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',
|
||||
qta_prenotate_in_attesa: '(Preordinate In attesa {qty})',
|
||||
},
|
||||
},
|
||||
|
||||
gas: {
|
||||
dataora_chiusura_ordini: 'Data Chiusura Ordini',
|
||||
dataora_ritiro: 'Data Ritiro Prodotti',
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
export default msg_it;
|
||||
|
||||
@@ -449,7 +449,7 @@ export const colTableGasordine = [
|
||||
AddCol({ name: 'referente', label_trans: 'store.referent' }),
|
||||
AddCol({ name: 'city', label_trans: 'store.city' }),
|
||||
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(DeleteRec),
|
||||
AddCol(DuplicateRec),
|
||||
@@ -1957,7 +1957,7 @@ export const colTableIscrittiArcadei = [
|
||||
|
||||
export const colTableProducts = [
|
||||
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: 'barcode', label_trans: 'products.barcode' }),
|
||||
AddCol({ name: 'name', label_trans: 'products.name' }),
|
||||
@@ -1977,6 +1977,12 @@ export const colTableProducts = [
|
||||
fieldtype: costanti.FieldType.multiselect,
|
||||
jointable: 'storehouses',
|
||||
}),
|
||||
AddCol({
|
||||
name: 'idGasordines',
|
||||
label_trans: 'gasordine.name',
|
||||
fieldtype: costanti.FieldType.multiselect,
|
||||
jointable: 'gasordines',
|
||||
}),
|
||||
AddCol({
|
||||
name: 'idProvider',
|
||||
label_trans: 'provider.name',
|
||||
@@ -2002,11 +2008,12 @@ export const colTableProducts = [
|
||||
fieldtype: costanti.FieldType.multiselect,
|
||||
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: 'color', label_trans: 'products.color' }),
|
||||
AddCol({ name: 'size', label_trans: 'products.size' }),
|
||||
AddCol({
|
||||
/*AddCol({
|
||||
name: 'quantityAvailable',
|
||||
label_trans: 'products.quantityAvailable',
|
||||
fieldtype: costanti.FieldType.number
|
||||
@@ -2015,6 +2022,11 @@ export const colTableProducts = [
|
||||
name: 'bookableAvailableQty',
|
||||
label_trans: 'products.bookableAvailableQty',
|
||||
fieldtype: costanti.FieldType.number
|
||||
}), */
|
||||
AddCol({
|
||||
name: 'minBuyQty',
|
||||
label_trans: 'products.minBuyQty',
|
||||
fieldtype: costanti.FieldType.number
|
||||
}),
|
||||
AddCol({
|
||||
name: 'stockQty',
|
||||
|
||||
@@ -20,8 +20,18 @@ export const useProducts = defineStore('Products', {
|
||||
}),
|
||||
|
||||
getters: {
|
||||
getProducts: (state: IProductsState) => (): IProduct[] => {
|
||||
return state.products
|
||||
getProducts: (state: IProductsState) => (cosa?: number): IProduct[] => {
|
||||
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) => {
|
||||
@@ -55,14 +65,15 @@ export const useProducts = defineStore('Products', {
|
||||
|
||||
getProductById: (state: IProductsState) => (id: string): IProduct => {
|
||||
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 => {
|
||||
const prod = state.products.find((prod: IProduct) => prod.code === code)
|
||||
return prod ? prod : {
|
||||
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,
|
||||
idProducer: '',
|
||||
idStorehouses: [],
|
||||
idGasordines: [],
|
||||
idScontisticas: [],
|
||||
scontisticas: [],
|
||||
gasordines: [],
|
||||
idProvider: '',
|
||||
producer: {},
|
||||
storehouses: [],
|
||||
@@ -232,6 +245,7 @@ export const useProducts = defineStore('Products', {
|
||||
quantityAvailable: 0,
|
||||
bookableAvailableQty: 0,
|
||||
stockQty: 0,
|
||||
minBuyQty: 1,
|
||||
bookableQty: 0,
|
||||
canBeShipped: false,
|
||||
QuantitaOrdinateInAttesa: 0,
|
||||
@@ -645,7 +659,7 @@ export const useProducts = defineStore('Products', {
|
||||
if (ris && ris.myord == null) {
|
||||
msg = t('ecomm.prodotto_tolto')
|
||||
tools.showNotif($q, msg)
|
||||
return
|
||||
return
|
||||
}
|
||||
if (ris === null || ris.myord == null) {
|
||||
msg = t('ecomm.error_cart')
|
||||
|
||||
@@ -9,6 +9,7 @@ import { toolsext } from '@store/Modules/toolsext'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { costanti } from '@costanti'
|
||||
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { CProductCard } from '@src/components/CProductCard'
|
||||
import { IProduct } from '@src/model'
|
||||
|
||||
@@ -27,12 +28,14 @@ export default defineComponent({
|
||||
|
||||
const search = ref('')
|
||||
|
||||
const cosa = ref(shared_consts.PROD.GAS)
|
||||
|
||||
function mounted() {
|
||||
// Inizializza
|
||||
productStore.loadProducts()
|
||||
}
|
||||
function getProducts() {
|
||||
let arrprod = productStore.getProducts()
|
||||
let arrprod = productStore.getProducts(cosa.value)
|
||||
if (!search.value) {
|
||||
return arrprod
|
||||
}
|
||||
@@ -54,6 +57,8 @@ export default defineComponent({
|
||||
toolsext,
|
||||
getProducts,
|
||||
search,
|
||||
cosa,
|
||||
shared_consts,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,29 +1,43 @@
|
||||
<template>
|
||||
<q-page>
|
||||
<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="q-gutter-y-md column text-center q-mx-auto"
|
||||
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"
|
||||
>
|
||||
<div class="q-gutter-y-md column text-center q-mx-auto" 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>
|
||||
<q-icon name="search" />
|
||||
</template>
|
||||
</q-input>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div
|
||||
class="q-pa-md row items-start q-gutter-md"
|
||||
v-for="(product, index) in getProducts()"
|
||||
:key="index"
|
||||
>
|
||||
<div class="q-pa-md row items-start q-gutter-md" v-for="(product, index) in getProducts()" :key="index">
|
||||
<CProductCard :code="product.code" :complete="false" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user