Lokalne zapisywanie rozkazów

This commit is contained in:
2022-07-22 00:17:39 +02:00
parent 459c23df17
commit 667987bdb6
13 changed files with 450 additions and 77 deletions
+59
View File
@@ -0,0 +1,59 @@
import { defineComponent } from 'vue';
import { useStore } from '../store/store';
import { LocalStorageOrder } from '../types/orderTypes';
export default defineComponent({
setup() {
return {
store: useStore(),
};
},
methods: {
saveOrderToStorage() {
let orderObj: LocalStorageOrder = {
orderType: this.store.chosenOrderType ,
orderBody: {},
orderFooter: this.store.orderFooter,
createdAt: Date.now(),
};
switch (this.store.chosenOrderType) {
case 'orderN':
orderObj['orderBody'] = this.store.orderN;
break;
case 'orderS':
orderObj['orderBody'] = this.store.orderS;
break;
case 'orderO':
orderObj['orderBody'] = this.store.orderO;
break;
default:
break;
}
const headerInfo = orderObj['orderBody']['header'];
if (!headerInfo['orderNo']) return -1;
if (!headerInfo['trainNo']) return -1;
if (!headerInfo['date']) return -1;
const localStorage = window.localStorage;
const localOrderCount = localStorage.getItem('orderCount') || '0';
if (localOrderCount == '0') localStorage.setItem('orderCount', '0');
const prevLocalOrder = localStorage.getItem(`order-${Number(localOrderCount)}`);
if (prevLocalOrder && prevLocalOrder == JSON.stringify(orderObj)) {
return 0;
}
const nextOrderCount = Number(localOrderCount) + 1;
localStorage.setItem('orderCount', `${nextOrderCount}`);
localStorage.setItem(`order-${nextOrderCount}`, JSON.stringify(orderObj));
return 1;
},
},
});