By GokiSoft.com|
14:44 12/01/2021|
Học JQuery
[Share Code] Hướng dẫn tạo dự án POS bán hàng - Lập trình HTML/CSS/JS - Bootstrap/jQuery
#pos.html
<!DOCTYPE html>
<html>
<head>
<title>POS Page</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<style type="text/css">
.item {
padding: 10px;
}
.item:hover {
background-color: #eceef1;
}
</style>
</head>
<body>
<!-- A grey horizontal navbar that becomes vertical on small screens -->
<nav class="navbar navbar-expand-sm bg-primary">
<!-- Links -->
<ul class="navbar-nav">
<li class="nav-item">
<input type="text" name="s" class="form-control" placeholder="Enter searching ..." style="width: 350px">
</li>
</ul>
</nav>
<div class="container">
<div class="row">
<div class="col-md-5" style="background-color: #eceef1">
<table class="table table-bordered table-striped bg-white">
<thead>
<tr>
<th>Thumbnail</th>
<th>Title</th>
<th>Num</th>
<th>Price</th>
<th>Total</th>
</tr>
</thead>
<tbody id="card_list">
</tbody>
</table>
<div class="row bg-white" style="margin: 5px;">
<div class="col-md-8">
Total Money:
</div>
<div class="col-md-4" style="float: right; margin-bottom: 20px;" id="total_money">
</div>
<div class="col-md-8">
Total Money:
</div>
<div class="col-md-4" style="float: right; margin-bottom: 20px;">
<input type="number" name="cash" value="" class="form-control">
</div>
<div class="col-md-8">
Cashback:
</div>
<div class="col-md-4" style="float: right; margin-bottom: 20px;" id="cashback">
</div>
</div>
</div>
<div class="col-md-7">
<div class="row" id="data_list">
</div>
</div>
</div>
</div>
<script type="text/javascript">
var dataList = [
{
'thumbnail': 'https://images5.fanpop.com/image/photos/31000000/Strawberry-strawberries-31082783-460-360.jpg',
'title': 'San pham 1',
'price': '10000'
}, {
'thumbnail': 'https://baoquocte.vn/stores/news_dataimages/lananh/012020/12/11/in_article/viet-nam-la-thi-truong-tiem-nang-cho-trai-cay-tuoi-my.jpg',
'title': 'San pham 2',
'price': '20000'
}, {
'thumbnail': 'https://vnn-imgs-a1.vgcloud.vn/images.kienthuc.net.vn/zoom/800/uploaded/trucchinh2/2019_12_31/meo-don-gian-chon-hoa-qua-tuoi-ngon-an-toan-tuyet-doi.jpg',
'title': 'San pham 1',
'price': '10000'
}, {
'thumbnail': 'https://baoquocte.vn/stores/news_dataimages/lananh/012020/12/11/in_article/viet-nam-la-thi-truong-tiem-nang-cho-trai-cay-tuoi-my.jpg',
'title': 'San pham 2',
'price': '20000'
}, {
'thumbnail': 'https://images5.fanpop.com/image/photos/31000000/Strawberry-strawberries-31082783-460-360.jpg',
'title': 'San pham 1',
'price': '10000'
}, {
'thumbnail': 'https://baoquocte.vn/stores/news_dataimages/lananh/012020/12/11/in_article/viet-nam-la-thi-truong-tiem-nang-cho-trai-cay-tuoi-my.jpg',
'title': 'San pham 2',
'price': '20000'
}, {
'thumbnail': 'https://images5.fanpop.com/image/photos/31000000/Strawberry-strawberries-31082783-460-360.jpg',
'title': 'San pham 1',
'price': '10000'
}, {
'thumbnail': 'https://baoquocte.vn/stores/news_dataimages/lananh/012020/12/11/in_article/viet-nam-la-thi-truong-tiem-nang-cho-trai-cay-tuoi-my.jpg',
'title': 'San pham 2',
'price': '20000'
}, {
'thumbnail': 'https://images5.fanpop.com/image/photos/31000000/Strawberry-strawberries-31082783-460-360.jpg',
'title': 'San pham 1',
'price': '10000'
}, {
'thumbnail': 'https://baoquocte.vn/stores/news_dataimages/lananh/012020/12/11/in_article/viet-nam-la-thi-truong-tiem-nang-cho-trai-cay-tuoi-my.jpg',
'title': 'San pham 2',
'price': '20000'
}, {
'thumbnail': 'https://images5.fanpop.com/image/photos/31000000/Strawberry-strawberries-31082783-460-360.jpg',
'title': 'San pham 1',
'price': '10000'
}, {
'thumbnail': 'https://baoquocte.vn/stores/news_dataimages/lananh/012020/12/11/in_article/viet-nam-la-thi-truong-tiem-nang-cho-trai-cay-tuoi-my.jpg',
'title': 'San pham 2',
'price': '20000'
}, {
'thumbnail': 'https://images5.fanpop.com/image/photos/31000000/Strawberry-strawberries-31082783-460-360.jpg',
'title': 'San pham 1',
'price': '10000'
}, {
'thumbnail': 'https://baoquocte.vn/stores/news_dataimages/lananh/012020/12/11/in_article/viet-nam-la-thi-truong-tiem-nang-cho-trai-cay-tuoi-my.jpg',
'title': 'San pham 2',
'price': '20000'
}, {
'thumbnail': 'https://images5.fanpop.com/image/photos/31000000/Strawberry-strawberries-31082783-460-360.jpg',
'title': 'San pham 1',
'price': '10000'
}, {
'thumbnail': 'https://baoquocte.vn/stores/news_dataimages/lananh/012020/12/11/in_article/viet-nam-la-thi-truong-tiem-nang-cho-trai-cay-tuoi-my.jpg',
'title': 'San pham 2',
'price': '20000'
}
]
var totalMoney = 0
var cardList = []
/**card => {
index: vi tri san pham trong dataList (0, 1, 2, 3, ...)
num: so san pham trong card
}*/
$(function() {
json = localStorage.getItem('cardList')
if(json != null && json != '') {
cardList = JSON.parse(json)
}
//Hien thi danh sach san pham
for (var i = 0; i < dataList.length; i++) {
$('#data_list').append(`<div class="col-md-3 item" style="cursor: pointer;" onclick="addCart(${i})">
<img src="${dataList[i].thumbnail}" style="width: 100%">
<p>${dataList[i].title} - ${i+1}</p>
<p>Price: ${dataList[i].price} VND</p>
</div>`)
}
cash = localStorage.getItem('cash')
$('[name=cash]').val(cash)
showCart()
})
function addCart(index) {
isFind = false
for (var i = 0; i < cardList.length; i++) {
if(cardList[i].index == index) {
//san pham da ton tai => tang num
cardList[i].num++;
isFind = true
break;
}
}
if(!isFind) {
cardList.push({
'index': index,
'num': 1
})
}
//save localStorage
localStorage.setItem('cardList', JSON.stringify(cardList))
showCart()
}
function showCart() {
$('#card_list').empty()
totalMoney = 0
for (var i = 0; i < cardList.length; i++) {
item = dataList[cardList[i].index]
money = item.price * cardList[i].num
totalMoney += money
$('#card_list').append(`<tr>
<td>
<img src="${item.thumbnail}" style="width: 100%">
</td>
<td>${item.title}</td>
<td><input type="num" name="num" class="form-control" value="${cardList[i].num}" style="width: 60px"></td>
<td>${item.title} VND</td>
<td>${money} VND</td>
</tr>`)
}
$('#total_money').html(totalMoney + ' VND')
cash = parseInt($('[name=cash]').val())
cashBack = -totalMoney + cash
$('#cashback').html(cashBack + ' VND')
}
$('[name=cash]').keyup(function() {
cash = parseInt($(this).val())
cashBack = -totalMoney + cash
$('#cashback').html(cashBack + ' VND')
localStorage.setItem('cash', cash)
})
// item = {
// 'thumbnail': 'https://images5.fanpop.com/image/photos/31000000/Strawberry-strawberries-31082783-460-360.jpg',
// 'title': 'San pham 1',
// 'price': '10000'
// }
// dataList.push(item)
// item = {
// 'thumbnail': 'https://baoquocte.vn/stores/news_dataimages/lananh/012020/12/11/in_article/viet-nam-la-thi-truong-tiem-nang-cho-trai-cay-tuoi-my.jpg',
// 'title': 'San pham 2',
// 'price': '20000'
// }
// dataList.push(item)
</script>
</body>
</html>
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)