refactor: use Salix in BasketView.vue
gitea/hedera-web/pipeline/pr-beta This commit looks good
Details
gitea/hedera-web/pipeline/pr-beta This commit looks good
Details
This commit is contained in:
parent
a8277a2473
commit
56db6bc598
|
@ -7,7 +7,7 @@ import TicketDetails from 'src/pages/Ecomerce/TicketDetails.vue';
|
||||||
import { storeToRefs } from 'pinia';
|
import { storeToRefs } from 'pinia';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
|
|
||||||
const jApi = inject('jApi');
|
const api = inject('api');
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
@ -24,74 +24,107 @@ onBeforeMount(async () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const getOrder = async () => {
|
const getOrder = async () => {
|
||||||
try {
|
try {
|
||||||
const [data] = await jApi.query(
|
const filter = {
|
||||||
`SELECT o.id, o.sent,
|
include: [
|
||||||
ag.description agency, v.code method,
|
{
|
||||||
ad.nickname, ad.postalCode, ad.city, ad.street
|
relation: 'address',
|
||||||
FROM myOrder o
|
scope: {
|
||||||
JOIN vn.agencyMode ag ON ag.id = o.agencyModeFk
|
fields: ['nickname', 'city', 'postalCode', 'street'],
|
||||||
LEFT JOIN myAddress ad ON ad.id = o.addressFk
|
}
|
||||||
JOIN vn.deliveryMethod v ON v.id = o.deliveryMethodFk
|
},
|
||||||
WHERE o.id = #id;`,
|
{
|
||||||
{ id: orderId.value }
|
relation: 'agencyMode',
|
||||||
);
|
scope: {
|
||||||
const { sent, method, agency, id, nickname, street, postalCode, city } =
|
fields: ['description']
|
||||||
data;
|
}
|
||||||
const taxBase = rows.value.reduce(
|
},
|
||||||
(acc, row) => acc + row.price * row.quantity,
|
{
|
||||||
0
|
relation: 'deliveryMethod',
|
||||||
);
|
scope: {
|
||||||
const formattedData = {
|
fields: ['code'],
|
||||||
id,
|
},
|
||||||
landed: new Date(sent),
|
},
|
||||||
agency,
|
{
|
||||||
method,
|
relation: 'rows',
|
||||||
nickname,
|
scope: {
|
||||||
street,
|
fields: ['id', 'quantity', 'price', 'itemFk'],
|
||||||
postalCode,
|
include: [
|
||||||
city,
|
{
|
||||||
taxBase
|
relation: 'item',
|
||||||
};
|
scope: {
|
||||||
ticket.value = formattedData;
|
fields: [
|
||||||
} catch (error) {
|
'longName',
|
||||||
console.error(error);
|
'tag5',
|
||||||
}
|
'value5',
|
||||||
};
|
'tag6',
|
||||||
|
'value6',
|
||||||
|
'tag7',
|
||||||
|
'value7',
|
||||||
|
'image',
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
fields: [
|
||||||
|
'id',
|
||||||
|
'landed',
|
||||||
|
'delivery_method_id',
|
||||||
|
'addressFk',
|
||||||
|
'agencyModeFk',
|
||||||
|
'rows',
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
const getItems = async () => {
|
const { data: order } = await api.get(`Orders/${orderId.value}`, {
|
||||||
try {
|
params: {
|
||||||
const data = await jApi.query(
|
filter: JSON.stringify(filter)
|
||||||
`SELECT bi.id, bi.amount, bi.price, i.longName item,
|
}
|
||||||
i.tag5, i.value5, i.tag6, i.value6, i.tag7, i.value7,
|
});
|
||||||
i.image, im.updated
|
|
||||||
FROM myOrderRow bi
|
|
||||||
JOIN vn.item i ON i.id = bi.itemFk
|
|
||||||
LEFT JOIN image im
|
|
||||||
ON im.collectionFk = 'catalog'
|
|
||||||
AND im.name = i.image
|
|
||||||
WHERE orderFk = #id`,
|
|
||||||
{ id: orderId.value }
|
|
||||||
);
|
|
||||||
|
|
||||||
const formattedData = data.map(i => {
|
const taxBase = order.rows.reduce(
|
||||||
const { amount: quantity, ...item } = i;
|
(acc, row) => acc + row.price * row.quantity,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
const formattedData = {
|
||||||
|
id: order.id,
|
||||||
|
landed: new Date(order.landed),
|
||||||
|
agency: order.agencyMode.description,
|
||||||
|
method: order.deliveryMethod.code,
|
||||||
|
nickname: order.address.nickname,
|
||||||
|
street: order.address.street,
|
||||||
|
postalCode: order.address.postalCode,
|
||||||
|
city: order.address.city,
|
||||||
|
|
||||||
const formattedItem = {
|
taxBase
|
||||||
quantity,
|
};
|
||||||
...item
|
ticket.value = formattedData;
|
||||||
};
|
|
||||||
return formattedItem;
|
|
||||||
});
|
|
||||||
|
|
||||||
rows.value = formattedData;
|
const orderRows = order.rows.map(row => ({
|
||||||
} catch (error) {
|
id: row.id,
|
||||||
console.error(error);
|
quantity: row.quantity,
|
||||||
}
|
price: row.price,
|
||||||
|
|
||||||
|
item: row.item.longName,
|
||||||
|
tag5: row.item.tag5,
|
||||||
|
value5: row.item.value5,
|
||||||
|
tag6: row.item.tag6,
|
||||||
|
value6: row.item.value6,
|
||||||
|
tag7: row.item.tag7,
|
||||||
|
value7: row.item.value7,
|
||||||
|
image: row.item.image,
|
||||||
|
}));
|
||||||
|
rows.value = orderRows;
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error getting orders:', error);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const fetchData = async () => {
|
const fetchData = async () => {
|
||||||
await getItems();
|
|
||||||
await getOrder();
|
await getOrder();
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue