|
@@ -20,31 +20,32 @@
|
|
|
<input type="number" id="skok" placeholder="сколько надо?">
|
|
|
<input type="number" id="bablo" placeholder="сколько денег?">
|
|
|
<button id="btn">Купить</button>
|
|
|
+ <p id="error"></p>
|
|
|
|
|
|
<script>
|
|
|
-
|
|
|
function reducer(state, {type, ШО, СКОКА, БАБЛО}){
|
|
|
if (!state){
|
|
|
return {
|
|
|
пиво:{колво:100, цена: 10},
|
|
|
чипсы:{колво:100, цена:20},
|
|
|
сиги:{колво:100, цена:30},
|
|
|
- касса:23450
|
|
|
+ касса:2700
|
|
|
}
|
|
|
}
|
|
|
if (type === 'КУПИТЬ'){
|
|
|
- if(ШО in state && БАБЛО > state[ШО].цена * СКОКА){
|
|
|
- return state[ШО] - СКОКА >= 0 ? {
|
|
|
+ if((ШО in state) && БАБЛО >= state[ШО].цена * СКОКА && state[ШО].колво - СКОКА >= 0){
|
|
|
+ return {
|
|
|
...state,
|
|
|
- ШО:{колво:state[ШО].колво - СКОКА, цена: state[ШО].цена},
|
|
|
+ [ШО]:{колво:state[ШО].колво - СКОКА, цена: state[ШО].цена},
|
|
|
касса: +state.касса + (state[ШО].цена*СКОКА)
|
|
|
- } : state;
|
|
|
- }
|
|
|
+ }
|
|
|
+ }/*else{
|
|
|
+ error.innerHTML='\☹ что-то не так (нет данного товара или не хватает денег) \☹';
|
|
|
+ }*/
|
|
|
}
|
|
|
- return state;
|
|
|
+ return state ;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
function createStore(reducer){
|
|
|
let state = reducer(undefined, {})
|
|
|
let cbs = []
|
|
@@ -68,9 +69,8 @@
|
|
|
let store=createStore(reducer);
|
|
|
btn.onclick=function(){
|
|
|
for(let [key] of Object.entries(store.getState())){
|
|
|
- console.log(key);
|
|
|
if(tovar.value===key){
|
|
|
- store.dispatch({type: 'КУПИТЬ', ШО:{[tovar.value]:[tovar.value].колво}, СКОКА: skok.value, БАБЛО: bablo.value });
|
|
|
+ store.dispatch({type: 'КУПИТЬ', ШО:tovar.value, СКОКА: skok.value, БАБЛО: bablo.value });
|
|
|
console.log(store.getState());
|
|
|
}
|
|
|
}
|
|
@@ -97,11 +97,7 @@
|
|
|
}
|
|
|
tr.append(td,td2,td3);
|
|
|
table.append(tr);
|
|
|
-
|
|
|
- table.style.border='1px solid black';
|
|
|
-
|
|
|
- console.log(key);
|
|
|
- console.log(value);
|
|
|
+ table.style.border='1px solid black';
|
|
|
}
|
|
|
document.body.append(table);
|
|
|
|
|
@@ -113,6 +109,7 @@
|
|
|
let tr=document.createElement('tr');
|
|
|
let td=document.createElement('td');
|
|
|
let td2=document.createElement('td');
|
|
|
+ let td3=document.createElement('td');
|
|
|
td.innerText=key;
|
|
|
if(typeof value==='object'){
|
|
|
for(let i in value){
|
|
@@ -126,8 +123,7 @@
|
|
|
}else{
|
|
|
td2.innerText=value;
|
|
|
}
|
|
|
- tr.append(td,td2);
|
|
|
- td.innerText=key+':'+value;
|
|
|
+ tr.append(td,td2,td3);
|
|
|
table.append(tr);
|
|
|
}
|
|
|
document.body.append(table);
|