/
vdele
/
app
Обзор
Документация
Войти
/
vdele
/
app
Код
Вики
Пакеты
0
Релизы
1
Аналитика
dev
src/stores/order.ts
59 строк
1 KB
Vasilii Polshakov
last fixes for 0.0.1-alpha
02 апр 2025, 12:32
02 апр 2025, 12:32
ef3d4ef
Код
Авторство
О чём код?
import { reactive, computed } from 'vue'; import type { OrderPosition } from '@/libs/types'; export function useOrder() { const state = reactive(new Map<string, OrderPosition>()); /* state.set('3a7bd3e4', { uid: '3a7bd3e4', caption: 'Кастрация кота', count: 1, amount: 4000, }); */ const items = computed(() => Array.from(state.values())); const sum = computed(() => Array.from(state.values()).reduce((accumulator, service) => accumulator + (service.amount * service.count), 0)); // добавить элемент const add = (item: OrderPosition) => { state.set(item.uid, item); }; // удалить элемент const remove = (uid: string) => { state.delete(uid); }; //увеличить на 1 const increaseByOne = (uid: string) => { const item = state.get(uid); if(item) item.count++; }; //уменьшить на 1 const decreaseByOne = (uid: string) => { const item = state.get(uid); if(item && item.count > 1) item.count--; }; return { //refs //computed items, sum, //methods add, remove, increaseByOne, decreaseByOne, //static value }; };