aggiornamento visualizzazione Ordini e Carrello
This commit is contained in:
@@ -27,12 +27,12 @@ export default defineComponent({
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n();
|
||||
|
||||
const mycart = ref(<ICart>{})
|
||||
const mycart = ref(<ICart>{})
|
||||
const myrec = ref(<any[string]>[])
|
||||
const oldrec = ref(<any[string]>[])
|
||||
const note = ref('')
|
||||
const statusnow = ref(shared_consts.OrderStatus.NONE)
|
||||
|
||||
|
||||
function mounted() {
|
||||
// Inizializza
|
||||
load()
|
||||
@@ -42,7 +42,7 @@ export default defineComponent({
|
||||
const cart = productStore.getCart()
|
||||
return cart.items || null
|
||||
}
|
||||
|
||||
|
||||
function getNumItems(): number {
|
||||
const cart = productStore.getCart()
|
||||
if (!!cart.items)
|
||||
@@ -50,30 +50,30 @@ export default defineComponent({
|
||||
else
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
function getCart(): ICart {
|
||||
return productStore.getCart()
|
||||
}
|
||||
|
||||
|
||||
function getNote() {
|
||||
const cart = productStore.getCart()
|
||||
return cart.note
|
||||
}
|
||||
|
||||
|
||||
function change_field(fieldname: string) {
|
||||
if (myrec.value[fieldname] !== oldrec.value[fieldname]) {
|
||||
myrec.value[fieldname] = oldrec.value[fieldname]
|
||||
|
||||
|
||||
const mydata = {
|
||||
[fieldname]: myrec.value[fieldname]
|
||||
}
|
||||
|
||||
|
||||
const aggiorna = fieldname !== 'status'
|
||||
tools.saveFieldToServer($q, 'carts', mycart.value._id, mydata, aggiorna)
|
||||
oldrec.value[fieldname] = myrec.value[fieldname]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function myTotalPrice(): string {
|
||||
if (productStore.cart && productStore.cart.totalPrice) {
|
||||
return productStore.cart.totalPrice.toFixed(2)
|
||||
@@ -81,7 +81,7 @@ export default defineComponent({
|
||||
return '0'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function myTotalQty(): number {
|
||||
if (productStore.cart) {
|
||||
return productStore.cart.totalQty!
|
||||
@@ -89,7 +89,7 @@ export default defineComponent({
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function load() {
|
||||
mycart.value = getCart()
|
||||
myrec.value = Object.keys(mycart)
|
||||
@@ -98,45 +98,45 @@ export default defineComponent({
|
||||
|
||||
if (mycart.value)
|
||||
statusnow.value = await productStore.UpdateStatusCart({ cart_id: mycart.value._id, status: 0 })
|
||||
|
||||
|
||||
console.log('myrec', myrec.value)
|
||||
}
|
||||
|
||||
|
||||
function CanBeShipped() {
|
||||
return productStore.cart.items ? productStore.cart.items.filter((rec: any) => rec.order.product.canBeShipped).length : false
|
||||
}
|
||||
|
||||
|
||||
function CanBeBuyOnline() {
|
||||
return productStore.cart.items ? productStore.cart.items.filter((rec: any) => rec.order.product.canBeBuyOnline).length : false
|
||||
}
|
||||
|
||||
|
||||
function getnumsteps() {
|
||||
let numsteps = 1
|
||||
|
||||
|
||||
if (CanBeShipped())
|
||||
numsteps++
|
||||
if (CanBeBuyOnline())
|
||||
numsteps++
|
||||
|
||||
|
||||
return numsteps
|
||||
}
|
||||
|
||||
|
||||
function docheckout() {
|
||||
|
||||
|
||||
// Può essere spedito?
|
||||
|
||||
|
||||
if (CanBeShipped()) {
|
||||
// mostra form di spedizione
|
||||
}
|
||||
|
||||
|
||||
if (CanBeBuyOnline()) {
|
||||
// mostra form di acquisto Online
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function completeOrder() {
|
||||
$q.dialog({
|
||||
message: 'Confermare l\'ordine di acquisto di ' + myTotalQty() + ' prodotti ?',
|
||||
message: t('ecomm.conferma_acq', { qty: myTotalQty() }),
|
||||
ok: {
|
||||
label: t('dialog.yes'),
|
||||
push: true
|
||||
@@ -144,13 +144,13 @@ export default defineComponent({
|
||||
cancel: {
|
||||
label: t('dialog.cancel')
|
||||
},
|
||||
title: 'Ordine'
|
||||
title: t('ecomm.order')
|
||||
}).onOk(async () => {
|
||||
const status = shared_consts.OrderStatus.CHECKOUT_SENT
|
||||
statusnow.value = await productStore.UpdateStatusCart({ cart_id: mycart.value._id, status })
|
||||
|
||||
|
||||
if (statusnow.value === status) {
|
||||
tools.showPositiveNotif($q, 'Ordine Confermato')
|
||||
tools.showPositiveNotif($q, t('ecomm.ord_confirmed'))
|
||||
setTimeout(() => {
|
||||
$router.push('/orderinfo')
|
||||
}, 2000)
|
||||
@@ -159,7 +159,7 @@ export default defineComponent({
|
||||
// change_field('status')
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
|
||||
@@ -4,39 +4,53 @@
|
||||
<div class="panel">
|
||||
<div>
|
||||
<div class="container">
|
||||
<div class="q-pa-sm col items-start q-gutter-xs" v-for="(itemorder, index) in getItemsCart()" :key="index">
|
||||
|
||||
<CSingleCart :order="itemorder.order" :showall="true"/>
|
||||
<div
|
||||
class="q-pa-sm col items-start q-gutter-xs"
|
||||
v-for="(itemorder, index) in getItemsCart()"
|
||||
:key="index"
|
||||
>
|
||||
<CSingleCart :order="itemorder.order" :showall="true" />
|
||||
</div>
|
||||
</div>
|
||||
<q-separator></q-separator>
|
||||
<div class="col-6 q-mr-sm" style="text-align: right">
|
||||
<span class="text-grey q-mr-xs">Totale:</span> <span
|
||||
class="text-subtitle1 q-mr-sm ">€ {{ (myTotalPrice()) }}</span>
|
||||
<span class="text-grey q-mr-xs">Totale:</span>
|
||||
<span class="text-subtitle1 q-mr-sm">€ {{ myTotalPrice() }}</span>
|
||||
</div>
|
||||
|
||||
<q-input v-if="getNumItems() > 0" v-model="note" style="max-width: 400px;" label="Scrivi qui per eventuali note o chiarimenti:"
|
||||
filled dense
|
||||
debounce="1000"
|
||||
autogrow
|
||||
@input="change_field('note')">
|
||||
<q-input
|
||||
v-if="getNumItems() > 0"
|
||||
v-model="note"
|
||||
style="max-width: 400px"
|
||||
label="Scrivi qui per eventuali note o chiarimenti:"
|
||||
filled
|
||||
dense
|
||||
debounce="1000"
|
||||
autogrow
|
||||
@input="change_field('note')"
|
||||
>
|
||||
</q-input>
|
||||
|
||||
<br>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<q-stepper-navigation>
|
||||
<q-btn v-if="statusnow < shared_consts.OrderStatus.CHECKOUT_SENT" rounded icon="fas fa-shopping-cart" color="green" label="Completa l'Ordine" class="q-mb-sm"
|
||||
:disabled="myTotalQty() < 1"
|
||||
@click="completeOrder"></q-btn>
|
||||
<q-btn
|
||||
v-if="statusnow < shared_consts.OrderStatus.CHECKOUT_SENT"
|
||||
rounded
|
||||
icon="fas fa-shopping-cart"
|
||||
color="green"
|
||||
:label="$t('ecomm.completa_ord')"
|
||||
class="q-mb-sm"
|
||||
:disabled="myTotalQty() < 1"
|
||||
@click="completeOrder"
|
||||
></q-btn>
|
||||
</q-stepper-navigation>
|
||||
|
||||
</div>
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./checkOut.ts">
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@@ -34,7 +34,7 @@ export default defineComponent({
|
||||
const conferma_carrello = ref(false)
|
||||
const conferma_ordine = ref(false)
|
||||
|
||||
const taborders = ref('incorso')
|
||||
const taborders = ref(shared_consts.OrderStatStr.IN_CORSO)
|
||||
const statusnow = ref(0)
|
||||
const arrnumstatus = ref(<any[]>[])
|
||||
const columns = ref(<any>[
|
||||
@@ -93,7 +93,9 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function getOrdersCart(): IOrderCart[] | undefined {
|
||||
return productStore.getOrdersCart(taborders.value)
|
||||
const ris = productStore.getOrdersCart(taborders.value)
|
||||
console.log(ris)
|
||||
return ris
|
||||
}
|
||||
|
||||
function getAllOrdersCart() {
|
||||
@@ -102,8 +104,10 @@ export default defineComponent({
|
||||
|
||||
function updateorders() {
|
||||
myorderscart.value = getOrdersCart()
|
||||
for (const ordercart of myorderscart.value!) {
|
||||
myarrrec.value[ordercart._id] = Object.keys(ordercart)
|
||||
if (myorderscart.value) {
|
||||
for (const ordercart of myorderscart.value) {
|
||||
myarrrec.value[ordercart._id] = Object.keys(ordercart)
|
||||
}
|
||||
}
|
||||
|
||||
const allorders = getAllOrdersCart()
|
||||
|
||||
@@ -5,36 +5,33 @@
|
||||
<q-tabs v-model="taborders" inline-label class="text-blue">
|
||||
<q-tab
|
||||
class="text-black"
|
||||
v-if="arrnumstatus[2] > 0"
|
||||
name="incorso"
|
||||
:name="shared_consts.OrderStatStr.IN_CORSO"
|
||||
icon="fas fa-tasks"
|
||||
:label="`(` + arrnumstatus[2] + `) in Corso`"
|
||||
/>
|
||||
<q-tab
|
||||
class="text-blue"
|
||||
v-if="arrnumstatus[3] > 0"
|
||||
name="confermati"
|
||||
:name="shared_consts.OrderStatStr.CONFERMATI"
|
||||
icon="fas fa-calendar"
|
||||
:label="`(` + arrnumstatus[3] + `) Confermati`"
|
||||
/>
|
||||
<q-tab
|
||||
class="text-green"
|
||||
v-if="arrnumstatus[4] > 0"
|
||||
name="pagati"
|
||||
:name="shared_consts.OrderStatStr.PAGATI"
|
||||
icon="fas fa-calendar"
|
||||
:label="`(` + arrnumstatus[4] + `) Pagati`"
|
||||
/>
|
||||
<q-tab
|
||||
class="text-blue-grey-8"
|
||||
v-if="arrnumstatus[6] > 0"
|
||||
name="completati"
|
||||
:name="shared_consts.OrderStatStr.COMPLETATI"
|
||||
icon="fas fa-check"
|
||||
:label="`(` + arrnumstatus[6] + `) Completati`"
|
||||
/>
|
||||
<q-tab
|
||||
class="text-red"
|
||||
v-if="arrnumstatus[10] > 0"
|
||||
name="cancellati"
|
||||
:name="shared_consts.OrderStatStr.CANCELLATI"
|
||||
icon="delete"
|
||||
:label="`(` + arrnumstatus[10] + `) Cancellati`"
|
||||
/>
|
||||
@@ -46,7 +43,7 @@
|
||||
:hide-header="$q.screen.lt.sm"
|
||||
:columns="columns"
|
||||
row-key="numorder"
|
||||
:data="getOrdersCart()"
|
||||
:rows="getOrdersCart()"
|
||||
>
|
||||
<template v-if="$q.screen.lt.sm" v-slot:item="props">
|
||||
<div class="q-pa-xs col-xs-12 col-sm-6 col-md-4">
|
||||
@@ -59,7 +56,7 @@
|
||||
<q-item-section side>
|
||||
<q-item-label v-if="col.name === 'created_at'" caption
|
||||
>{{ tools.getstrDateTime(col.value) }}
|
||||
<span v-if="taborders === 'completati'">
|
||||
<span v-if="taborders === shared_consts.OrderStatStr.COMPLETATI">
|
||||
<br />Completato il:
|
||||
{{ tools.getstrDateTime(props.row.completed_at) }}
|
||||
</span>
|
||||
@@ -104,7 +101,7 @@
|
||||
</q-td>
|
||||
<q-td key="created_at" :props="props">
|
||||
{{ tools.getstrDateTime(props.row.created_at) }}
|
||||
<span v-if="taborders === 'completati'">
|
||||
<span v-if="taborders === shared_consts.OrderStatStr.COMPLETATI">
|
||||
<br />Completato il:<br />{{
|
||||
tools.getstrDateTime(props.row.completed_at)
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user