From 23019a07d4050f2c7c1f356d942e7c468232905e Mon Sep 17 00:00:00 2001 From: annv Date: Fri, 31 Mar 2023 10:53:25 +0700 Subject: [PATCH] update (31/3) --- Chico/artilce.js | 288 +++++++ Chico/cart.js | 649 +++++++++++++++ Chico/img/card.png | Bin 0 -> 503 bytes Chico/img/item-cart.png | Bin 0 -> 23241 bytes Chico/img/location-minus.png | Bin 0 -> 707 bytes Chico/img/title-artilce1.png | Bin 0 -> 538 bytes Chico/index.html | 1478 +++++++++++++++++++++++++++++++++- Chico/user.js | 171 ++++ 8 files changed, 2567 insertions(+), 19 deletions(-) create mode 100644 Chico/artilce.js create mode 100644 Chico/cart.js create mode 100644 Chico/img/card.png create mode 100644 Chico/img/item-cart.png create mode 100644 Chico/img/location-minus.png create mode 100644 Chico/img/title-artilce1.png create mode 100644 Chico/user.js diff --git a/Chico/artilce.js b/Chico/artilce.js new file mode 100644 index 0000000..a8ff79e --- /dev/null +++ b/Chico/artilce.js @@ -0,0 +1,288 @@ + + // LAZY LOADING + lazy_load_group.push( + { + id: 'js-article-home', + target: '#js-article-home', + loadFn: function () { + getTopAricleList(); + }, + }, + { + id: 'js-article-small-top', + target: '#js-article-small-top', + loadFn: function () { + articleTopMainSmall(); + }, + }, + { + id: 'js-video-featured-', + target: '#js-video-featured-', + loadFn: function () { + getFeaturedVideo(); + }, + }, + { + id: 'js-new-article', + target: '#js-new-article', + loadFn: function () { + getNewArticleHome(); + }, + }, + { + id: 'js-product-hot-article', + target: '#js-product-hot-article', + loadFn: function () { + productHot(); + }, + }, + { + id: 'js-article-small-home', + target: '#js-article-small-home', + loadFn: function () { + getBottomAricleList(); + }, + }, + { + id: 'js-article-middle-right', + target: '#js-article-middle-right', + loadFn: function () { + articleCatRight(); + }, + }, + + + ) + + // SWIPER ARTICLE TOP + function swiperArticle() { + new Swiper(".swiper-article", { + slidesPerView: 1, + spaceBetween: 10, + centeredSlides: true, + loop: true, + speed: 1000, + autoplay: { + delay: 2500, + disableOnInteraction: false, + pauseOnMouseEnter: "true", + }, + pagination: { + el: ".swiper-pagination", + clickable: true, + }, + navigation: { + nextEl: ".swiper-button-next", + prevEl: ".swiper-button-prev", + }, + }); + } + swiperArticle(); + + // GET ARTICLE TOP NEAR SWIPER + function getTopAricleList() { + var params = { + action_type: 'list', + type: 'article', + featured: 1, + show: 1 + } + var target = "#js-article-home"; + Hura.Ajax.get("article", params).then(function (data) { + var html = Hura.Template.parse(articleMainTop, data.list.splice(0, 3)); + Hura.Template.render(target, html); + }); + } + + // GET ARTICLE TOP NEAR SWIPER + function getBottomAricleList() { + var params = { + action_type: 'list', + type: 'article', + featured: 1, + show: 8, + } + var target = "#js-article-small-home"; + Hura.Ajax.get("article", params).then(function (data) { + var html = Hura.Template.parse(articleMainBottom, data.list.splice(0,3)); + Hura.Template.render(target, html); + }); + } + + + + // GET ARTICLE COL LEFT + function articleTopMainSmall() { + var params = { + action_type: 'list', + type: 'article', + featured: 1, + show: 18 + } + var target = "#js-article-small-top"; + Hura.Ajax.get("article", params).then(function (data) { + var html = Hura.Template.parse(articleMainSmall, data.list.splice(0, 3)); + Hura.Template.render(target, html); + }); + } + + // GET FEATURED VIDEO + function getFeaturedVideo() { + var params = { + action_type: "featured", + type: "article", + show: 10, + }; + var smallTarget = "#js-video-featured-"; + Hura.Ajax.get("article", params).then(function (data) { + var html = Hura.Template.parse(featureVideo, data.splice(0, 3)); + Hura.Template.render(smallTarget, html); + }); + } + + // TIN MỚI NHẤT + function getNewArticleHome() { + var params = { + action_type: "featured", + type: "article", + show: 18, + }; + + var target = "#js-new-article"; + Hura.Ajax.get("article", params).then(function (data) { + var html = Hura.Template.parse(newArticle, data.splice(0, 3)); + Hura.Template.render(target, html); + }); + } + + // TIN TUYỂN DỤNG + function articleCatRight() { + var params = { + action_type: 'list', + type: 'article', + catId: 5, + }; + var target = "#js-article-middle-right"; + Hura.Ajax.get("article", params).then(function (data) { + // console.log(data) + var html = Hura.Template.parse(articleMiddleRight, data.list); + Hura.Template.render(target, html); + }); + } + + + // GET PRODUCT NEWEST + function productHot() { + var params = { + action_type: "product-list", + hotType: "saleoff", + sort: "order", + }; + + var target = "#js-product-hot-article"; + Hura.Ajax.get("product", params).then(function (data) { + //console.log(data.list); + var html = Hura.Template.parse(productHotArticle, data.list.splice(0, 5)); + Hura.Template.render(target, html); + }); + } + + + + + + function run_anchor() { + var all = document.getElementById("js-find_toc").getElementsByTagName("*"); + var nodes = []; + for(var i = all.length; i--; nodes.unshift(all[i])); + var result = document.createElement("ol"); + buildRec(nodes, result, 2); + + $("
Nội dung chính
" + result.outerHTML + "
").insertAfter('#js-first-paragraph'); + + $("#js-outp a").each(function(){ + if($(this).text().trim()!=''){ + var anchor_name = convertToSlug($(this).text()); + $(this).attr("onclick", `scrollRec('${anchor_name}')`); + } + }); + + setTimeout(function(){ + $("#js-toggle").click(function(){ + $(this).parents("#js-toc_container").find("#js-outp").toggle(); + }); + }, 500) + } + + function scrollRec(id) { + document.getElementById(id).scrollIntoView({behavior:'smooth'}); + } + + function buildRec(nodes, elm, lv) { + var node; + //console.log(elm); + // filter + do { + node = nodes.shift(); + } while(node && !(/^h[123]$/i.test(node.tagName))); + // process the next node + if(node) { + var ul, li, cnt; + var curLv = parseInt(node.tagName.substring(1)); + //console.log(curLv); + var stt = 0; + if(curLv == lv) { // same level append an il + cnt = 0; + } else if(curLv < lv && 1<2) { // walk up then append il + cnt = 0; + do { + elm = elm.parentNode.parentNode; + cnt--; + } while(cnt > (curLv - lv)); + } else if(curLv > lv) { // create children then append il + cnt = 0; + do { + li = elm.lastChild; + if(li == null) + li = elm.appendChild(document.createElement("li")); + elm = li.appendChild(document.createElement("ol")); + cnt++; + } while(cnt < (curLv - lv) && 1<2); + } + + li = elm.appendChild(document.createElement("li")); + // replace the next line with archor tags or whatever you want + li.innerHTML = ''+ node.innerText +''; + // recursive call + buildRec(nodes, elm, lv + cnt); + } + } + + function convertToSlug(Text){ + let newText = Text; + return newText + .toLowerCase() + .replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, "a") + .replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, "e") + .replace(/ì|í|ị|ỉ|ĩ/g, "i") + .replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, "o") + .replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, "u") + .replace(/ỳ|ý|ỵ|ỷ|ỹ/g, "y") + .replace(/đ/g, "d") + .replace(/\u0300|\u0301|\u0303|\u0309|\u0323/g, "") + .replace(/\u02C6|\u0306|\u031B/g, "") + .replace(/[^\w ]+/g,'') + .replace(/ +/g,'-') + ; + } + + run_anchor(); + + $("#js-find_toc h2, #js-find_toc h3").each(function(){ + if($(this).text().trim()!=''){ + var anchor_name = convertToSlug($(this).text()); + $(this).attr("id",anchor_name); + $(this).css("scroll-margin-top","80px"); + } + }); + diff --git a/Chico/cart.js b/Chico/cart.js new file mode 100644 index 0000000..03c12ae --- /dev/null +++ b/Chico/cart.js @@ -0,0 +1,649 @@ + +//Kiểm tra cú pháp Email +function validateEmail(Email) { + var regaxEmail = + /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + if (regaxEmail.test(Email)) { + return true; + } else { + return false; + } +} + + function check_field(){ + var number_regex1 = /^[0]\d{9}$/i; + var number_regex2 = /^[0]\d{10}$/i; + var error = ""; + + var check_name = document.getElementById('buyer_name').value; + if(check_name.length < 4) error += "- Tên quá ngắn\n"; + else if(check_name.indexOf(' -1) { + error += "- Họ tên chứa các ký tự không hợp lệ, bạn vui lòng kiểm tra lại\n"; + } + + var check_email = document.getElementById('buyer_email').value; + if(check_email.length < 4) { + error += "- Bạn chưa nhập email\n"; + } + if(check_email.length > 4){ + if(validateEmail(check_email)==false) error += "- Email không hợp lệ\n"; + } + + var check_add = document.getElementById('buyer_address').value; + if(check_add.length < 5) error += "- Địa chỉ quá ngắn\n"; + else if(check_add.indexOf(' -1) { + error += "- Địa chỉ chứa các ký tự không hợp lệ, bạn vui lòng kiểm tra lại\n"; + } + + var check_tel = document.getElementById('buyer_tel').value; + if(check_tel.length < 4) error += "- Bạn chưa nhập SĐT\n"; + else{ + if(number_regex1.test(check_tel) == false && number_regex2.test(check_tel) == false) error += "- Số điện thoại chưa chính xác\n"; + } + + var check_note = document.getElementById('buyer_note').value; + if(check_note.indexOf(' -1) { + error += "- Ghi chú chứa các ký tự không hợp lệ, bạn vui lòng kiểm tra lại\n"; + } + + var check_province = document.getElementById('buyer_province').value; + if(check_province==0) error += "- Bạn chưa chọn Tỉnh/Thành phố\n"; + else if(check_province.indexOf(' -1) { + error += "- Tỉnh/Thành phố chứa các ký tự không hợp lệ, bạn vui lòng kiểm tra lại\n"; + } + + var check_district = document.getElementById('js-district-holder').value; + if(check_district==0) error += "- Bạn chưa chọn Quận/Huyện\n"; + else if(check_district.indexOf(' -1) { + error += "- Quận/Huyện phố chứa các ký tự không hợp lệ, bạn vui lòng kiểm tra lại\n"; + } + + if(error != "") { + alert(error); return false; + } + if (check_district > 0 && check_add.length > 5) { + var district = $('#js-district-holder option:selected').text(); + $('#buyer_address').val(check_add +', '+ district) + } + + $(".js-send-cart").css("pointer-events","none"); + $(".js-send-cart").html("ĐANG XỬ LÝ..."); + return true; + } + + +// check input validation section +function check_valid_input(pattern, target) { + // check valid value for input in cart page + $(target).on("input", function () { + var stringValue = $(target).val(); + var status = pattern.test(stringValue); + if (status == false) { + $(this).css("outline-color", "rgb(194 29 29)"); //red + var targetName = $(this).prev().html().replace("*", ""); + this.setCustomValidity(targetName + " quá ngắn/chưa đúng"); + this.reportValidity(); + } else { + this.setCustomValidity(""); + this.reportValidity(); + $(this).css("outline-color", "rgb(45 182 99)"); //green + } + }); + return; +} +//for mail +function check_valid_input_executer() { + // add check func for each input here and call this func to check all input + //for mail + check_valid_input( + /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, + "#buyer_email" + ); + //for name + check_valid_input(/^[a-zA-Z ]{4,20}$/, "#buyer_name"); + //for phone number + check_valid_input(/(84|0[3|5|7|8|9])+([0-9]{8})\b/, "#buyer_tel"); + //for address + check_valid_input(/.{10}/, "#buyer_address"); +} + +// end check input validation section + +//Get province selection ( lay quan huyen ) + function getProvince(province_id) { + var params = { + action_type: 'district-list', + province: province_id + }; + var target = '#js-district-holder'; + + Hura.Ajax.get("province", params).then(function (data) { + //console.log(data); + // productTpl is in template: javascript/tpl + var html = Hura.Template.parse(provinceTpl, data); + Hura.Template.render(target, ''); + }) + } + + $(document).ready(function () { + $(".js-bank-money").click(function(){ + $("#show-info-bank").addClass("hide"); + }); + + $(".js-bank-online").click(function(){ + $("#show-info-bank").removeClass("hide"); + }); +}) + +var TOTAL_CART_VALUE_NODE = ".js-total-cart-price"; + +function formatCurrency(a) { + var b = parseFloat(a) + .toFixed(2) + .replace(/(\d)(?=(\d{3})+\.)/g, "$1.") + .toString(); + var len = b.length; + b = b.substring(0, len - 3); + return b; +} + +function strToNumber(str) { + str += ""; + while (str.indexOf(".") > 0) { + str = str.replace(".", ""); + } + var result = parseFloat(str); + return isNaN(result) ? 0 : result; +} + +function tinhSoLuongSanPham() { + var total_item = 0; + + $(".js-buy-quantity").each(function () { + total_item += parseInt($(this).val()); + }); + $("#js-total-quantity").html(total_item + " sản phẩm"); +} + +function checkTotalShippingFee(){ + var province = $("#id-province").val(); + var district = $("#id-distric").val(); + + var cart_total_before_fee_discount = $("#js-total-before-fee-discount").val(); + + + if(province==0 || district == 0){ + return; + } + + var params = { + action : "shipping", + action_type: "get-shipping-and-cod", + order_value : cart_total_before_fee_discount, + province : province, + district : district + } + + Hura.Ajax.post('shipping',params).then(function(data){ + //console.log(data) + $('#js_price_ship').val(data.ship) + calculateCartTotalPrice() + }) + +} + + +//tinh tong gia don hang +function calculateCartTotalPrice() { + var dom_target = ".js-total-before-fee-cart-price"; + var total_cart_price = 0; + + $(".item-cart-price").each(function () { + total_cart_price += Hura.Util.strToNumber($(this).html()); + }); + + //log for other reference + $("#js-total-before-fee-discount").val(total_cart_price); + + //giam gia khac: voucher, membership, loyalty point conversion + var total_discount = 0; + total_discount += Number($("#js-discount-voucher").val()); + total_discount += parseInt($("#js-discount-membership").val()); + + var voucher_value = parseInt($("#js-discount-voucher").val()); + + //phi khac: shipping, COD... + var total_other_fee = 0; + total_other_fee += parseInt($("#js-fee-shipping").val()); + total_other_fee += parseInt($("#js-fee-cod").val()); + //console.log(total_discount); + + var priceFreeship = parseInt($('#js_price_freeship').val()); + + if($('#js_price_ship').val() == "nomal"){ + $("#js-inner-ship").html(` +
+
+ Phí vận chuyển: +
+

Chưa tính

+
+ `); + + $(dom_target).html(formatCurrency(total_cart_price)+' đ'); + $(TOTAL_CART_VALUE_NODE).html(formatCurrency(total_cart_price - total_discount )+' đ'); + + }else{ + var priceShip = parseInt($('#js_price_ship').val()); + if(total_cart_price >= priceFreeship || priceShip == 0){ + //console.log(total_cart_price); + //console.log(priceFreeship) + $("#js-inner-ship").html(` +
+
+ Phí vận chuyển: +
+

Freeship

+
+ `); + + $(dom_target).html(formatCurrency(total_cart_price)+' đ'); + $(TOTAL_CART_VALUE_NODE).html(formatCurrency(total_cart_price - total_discount )+' đ'); + + }else{ + var minusPriceShip = priceFreeship - total_cart_price; + //console.log(total_cart_price); + //console.log(priceFreeship) + $("#js-inner-ship").html(` +
+
+ Phí vận chuyển: +
+

${formatCurrency(priceShip) + ' đ'}

+
+
+
+ Mua thêm ${formatCurrency(minusPriceShip)} đ để được Freeship +
+
+ Mua thêm +
+
+ `); + //console.log(total_discount) + + + $(dom_target).html(formatCurrency(total_cart_price)+' đ'); + $(TOTAL_CART_VALUE_NODE).html(formatCurrency(total_cart_price - total_discount + priceShip )+' đ'); + + } + } + + +} +calculateCartTotalPrice(); +//thay doi tong gia cua 1 san pham +function changeItemTotalPrice() { + var $row = $(this).closest(".js-item-row"); + var item_type = $row.data("item_type"); + var price = parseInt($row.find(".js-buy-price").val()); + var quantity = parseInt($row.find(".js-buy-quantity").val()); + var total_price = price * quantity; + + //loai bo so luong vo ly + if (quantity < 1) { + $row.find(".js-buy-quantity").val(1); + total_price = 0; + } + + $row.find(".item-cart-price").html(formatCurrency(total_price)+' đ'); + + calculateCartTotalPrice(); + + //console.log("updating cart = " + item_type); + + //save to cart + switch (item_type) { + case "product": + Hura.Cart.Product.update($row.data("item_id"), $row.data("variant_id"), {quantity: quantity,}); + break; + + case "deal": + Hura.Cart.Deal.update($row.data("item_id"), { quantity: quantity }); + break; + + case "combo": + Hura.Cart.Combo.update($row.data("item_id"), { quantity: quantity }); + break; + } + + // +} + +//nghe thay doi so luong sp +function listenQuantityChange() { + var $track_change = $(".js-quantity-change"); + + //thay doi so luong sp mua, neu nhap so luong + $track_change.on("change", function (e) { + var quantity_stock = $(this).attr("data-stock"); + var $row = $(this).closest(".js-item-row"); + var current_quantity = $(this).val(); + + if($(this).val() < 1) $(this).val(1); + + if(current_quantity > quantity_stock) { + alert("Bạn được mua tối đa "+ quantity_stock + " sản phẩm này"); + $row.find(".js-buy-quantity").val(quantity_stock); + changeItemTotalPrice.call(this); + tinhSoLuongSanPham.call(this); + + return ; + } + + + changeItemTotalPrice.call(this); + tinhSoLuongSanPham.call(this); + }); + + //thay doi so luong sp theo - hoac + + $track_change.on("click", function (e) { + if (e.target.nodeName === "INPUT") return; + + var quantity_change = parseInt(this.getAttribute("data-value")); + var $row = $(this).closest(".cart-item-info"); + var current_quantity = parseInt($row.find(".js-buy-quantity").val()); + var quantity_stock = parseInt($row.find(".js-buy-quantity").attr("data-stock")); + + //loai bo so luong vo ly + if (current_quantity + quantity_change < 1) { + $row.find(".js-buy-quantity").val(1); + return; + } + + if(current_quantity + quantity_change > quantity_stock) { + alert("Bạn được mua tối đa "+ quantity_stock + " sản phẩm này"); + $row.find(".js-buy-quantity").val(quantity_stock); + changeItemTotalPrice.call(this); + tinhSoLuongSanPham.call(this); + return ; + } + + $row.find(".js-buy-quantity").val(current_quantity + quantity_change); + + //then update + changeItemTotalPrice.call(this); + tinhSoLuongSanPham.call(this); + }); +} +listenQuantityChange(); + + + function deleteCart(){ + let product_ids = []; + $(".js-delete-item").each(function(){ + var $row = $(this).closest(".js-item-row"); + var item_id = $row.data("item_id"); + var variant_id = $row.data("variant_id"); + product_ids.push({item_id: item_id, variant_id: variant_id}) + $row.remove(); + }); + deleteAllCart(product_ids); + } + + async function deleteAllCart(product_ids){ + for(let i = 0; i < product_ids.length; i++) { + let item_id = product_ids[i].item_id; + let variant_id = product_ids[i].variant_id; + await Hura.Cart.Product.remove(item_id, variant_id); + } + + setTimeout(function(){ + if($(".js-item-row").length==0){ location.reload();} + },500); + + } + +function downloadCartImage() { + var seconds = new Date().getTime() / 1000; + var print_url = "{{ global.domain }}/print/user.php?view=cart&f="+parseInt(seconds)+"&uid="+Hura.User.getUserId(); + + window.location = "https://screenshot.hurasoft.com/screenshot.php?url=" + encodeURIComponent(print_url); +} + + +//nghe xoa san pham +function listenDeleteCartItem() { + $(".item-cart-icon").on("click", function () { + var $row = $(this).closest(".cart-item-info"); + var item_type = $row.data("item_type"); + var item_id = $row.data("item_id"); + calculateCartTotalPrice(); + + //console.log("deleting item from cart = " + item_type); + + var deleteStatus; + //save to cart + switch (item_type) { + case "product": + deleteStatus = Hura.Cart.Product.remove( + item_id, + $row.data("variant_id") + ); + location.reload(); + break; + case "deal": + deleteStatus = Hura.Cart.Deal.remove(item_id); + location.reload(); + break; + case "combo": + deleteStatus = Hura.Cart.Combo.remove(item_id); + location.reload(); + break; + } + + if (deleteStatus) { + deleteStatus.then(function () { + $row.remove(); + tinhSoLuongSanPham(); + }); + } + }); +} +listenDeleteCartItem(); + + + // Voucher + function debounce(func, wait, immediate) { + var timeout; + return function() { + var context = this, args = arguments; + var later = function() { + timeout = null; + if (!immediate) func.apply(context, args); + }; + var callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) func.apply(context, args); + }; + }; + + function voucher_input_change() { + $('#js_voucher_input').change(); + } + + function listenVoucherCode(dom_node) { + var cart_total_before_fee_discount = $("#js-total-before-fee-discount").val(); + var $message_holder = $("#js-voucher-message"); + + var check_deal = 0 + $(".js-item-row").each(function(){ + var check = $(this).attr("data-check-deal") + if (check == 1) { + check_deal = 1; + } + }) + + $(dom_node).change(debounce(function(){ + if (check_deal == 1) { + $message_holder.html('Mã voucher không được áp dụng. Vui lòng xóa sản phẩm DEAL trong giỏ hàng'); + } else{ + var voucher_code = this.value.trim(); + + //update field to send when submit + $("#js_coupon_code").val(voucher_code); + $("#js-discount-voucher").val(0); + $("#price-discount").html(''); + $message_holder.html(''); + + //xu ly hien thi + if(voucher_code.length > 2) { + var params = { + action_type: 'check', + code : voucher_code , + order_value : cart_total_before_fee_discount, + product_ids : '' + } + + Hura.Ajax.post('coupon', params).then(function (data) { + //console.log(data); + var voucher_info = data; + + if(voucher_info.status == 'error') { + //bao loi + $message_holder.html(voucher_info.message); + return ; + } + + $message_holder.html("Bạn đang sử dụng mã coupon/voucher: " + voucher_info.coupon_info.code + ""); + $message_holder.show(); + + //xu ly khac + switch (voucher_info.coupon_info.type) { + case "cash": //giam tru tien + $("#js-discount-voucher").val(Hura.Util.strToNumber(voucher_info.coupon_info.cash_discount)); + $("#price-discount").html(formatCurrency(voucher_info.coupon_info.cash_discount)); + break; + + case "priceoff"://giam gia % + //var total_price_in_cart = $('#js-total-before-fee-discount').val(); + var total_price_in_cart = {% if global.module.name == 'combo_set' %}0{% else %}{{ page.cart_summary.total_value }}{% endif%}; + var after_discount = Math.ceil( total_price_in_cart * voucher_info.coupon_info.content / 100); + $("#js-discount-voucher").val(Hura.Util.strToNumber(after_discount)); + $("#price-discount").html(formatCurrency(voucher_info.total_cash_discount)); + break; + + case "pro": + //todo: + + break; + + case "other": + //todo: + + break; + } + + calculateCartTotalPrice(); + }) + }else{ + $("#js-discount-voucher").val(0); + $message_holder.html(''); + //recalculate total + calculateCartTotalPrice(); + } + } + },100)); + + } + + function getVoucherList(holder) { + var params = { + action_type: 'get-active-list', + limit: 50 + } + + Hura.Ajax.post('coupon', params).then(function (response) { + //console.log(response); + + buildListVoucher(response, holder); + + $(".js-voucher-active").click(function(){ + $(".js-voucher-active").removeClass('current-voucher'); + $(this).addClass('current-voucher'); + }); + }) + } + + function buildListVoucher(response, holder) { + var html = ''; + var current_time = (new Date()).getTime()/1000; + + if (response.total > 0) { + Object.keys(response).forEach(function(key, keyIndex) { + var data = response[key]; + Object.keys(data).forEach(function(item, itemIndex) { + var status = data[item].can_use_with_cart.status; + var code = data[item].code + var title = data[item].title; + var id_coupon = data[item].id; + var to_time = data[item].to_time; + var time_left = to_time - current_time; + var check_product = data[item].can_use_with_cart.status; + + if (time_left > 0 && check_product == 'yes') { + html+=`
`; + } else{ + html+='
'; + } + html+= '
Nhập '+code+'
'; + html+= '

'+ title +'

'; + }) + }) + } else{ + html+= ` +
+ + +

Chưa có mã voucher nào !

+
+ `; + } + + $(holder).html(html); + } + + + function voucherSelected(voucher_coder) { + $("#js_voucher_input_pop").val(voucher_coder); + $('#js-voucher-popupmessage').html(""); + + } + + function voucherActive() { + $("#js_voucher_input").val(""); + $("#js_voucher_input").change(); + + var newCode = $("#js_voucher_input_pop").val(); + $("#js_voucher_input").val(newCode); + $("#js_voucher_input").change(); + close_voucher(); + + } + + function open_voucher() { + $("#js-popup-voucher").show(); + $("body").addClass("overflow-hidden"); + $(".cart-voucher-popup").addClass("active") + } + + function close_voucher() { + $("#js-popup-voucher").hide(); + $("body").removeClass("overflow-hidden"); + $(".js-voucher-active").removeClass('current-voucher'); + $("#js_voucher_input_pop").val(""); + $(".cart-voucher-popup").removeClass("active") + } + + \ No newline at end of file diff --git a/Chico/img/card.png b/Chico/img/card.png new file mode 100644 index 0000000000000000000000000000000000000000..1abbb64023f8b291ad7f492e99bc90d6c162cd3e GIT binary patch literal 503 zcmVP000>X1^@s6#OZ}&00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yPG(Afk)s5$_?NIcmv@EdIIVRSQ^_%m$R^_yN3nN*7- zHVqIQ0$z{?K?;yf0a6j+raqfHCY(3Jv{JM=af832eL3?Uumi4AR!|6CA#u;HV`9<_ z5vXD8NBG{yj+C|b3G^(9u9Db7gwMb-_FDTsGC;(F^DJ{3@~e}4E`(p;hX@h6$N(YG zWMgj>smUgZCYuH;^u^RGbIj$KT3sgvwJH;D zfHWdeE^=g;U)~uBcM$`+lAu=C1wpj2kP3puWyD|Gxw-AHTquzNoNG9#6o-kwIFmw9 zcw*z{1bU_-o8E#gG4F5%R?}*!$F5D1`pMjPKN+8wZdtNtdI5HXtMH&U^;&Bp$!-pF t$F`7k#&zrjTM`S>2ntSJYmGf=`2yMDhb&TH@tXhu002ovPDHLkV1k8T&;9@a literal 0 HcmV?d00001 diff --git a/Chico/img/item-cart.png b/Chico/img/item-cart.png new file mode 100644 index 0000000000000000000000000000000000000000..bcc2f8e0e880829612fe99eb4541097d5d68384b GIT binary patch literal 23241 zcmV)YK&-!sP)xvfU##S$1#k({KNKOFI)C3Y=iL_ z8#90h8zU2pSp84&~sgoKcU)C!%WI=^sl&H45@U)8R2Pu=k1eec~Zy}qgH)CoK9 zefCK*3nl=375UnvX==K?b^rrdC_wy9n$6|_(+4nP5M!iCl9+B`uJ6}vB-ubL3}A*} zA!r>SED~3JKr7ut)m%-L)AiEEe7isPeJ?mS*Z1q|>s5{6PgB(Z+{9b8weq)aph_*6 z3c*eFezwsKRLwyz&z~wz&DH$_n`Hn4=n~qhVIjxrRs>h+s#O#{9Y)vy1~5}VTud5` zMn}og4sjQ%%`+g@0fbPWYyEKm1DG#R@1z1vr{w5G4V!BiFoEfTg`|1(t${z+$U1PT z48*niE+hXI&9pjwxRFOZI*5% zOE(R+YoncH(cHV=xY0neOz-{k6(r6w6`Lj6Xpc5eC|UXiVhm)ix#C=L)ydqy&|q4< zVUyv&RnQOKu&GGf0W3U-dc%5w>DFQU2|;5j;y|)2a>)`SmWAZS7{CA~3z{+1bvl0d zW4jyM!DM%$P3GR&fXS$2i%qgD2IgAn4O^_f^Z^W@3cAWV?z*vQBAR}RwG5y;Sjf_* zv{P~_20mdj`(CQ9?MFfx>>ORZknh3AKU0Ya_X6`#T7*)rYFlyaz8DN_miY_yUKS)) zH*7ILzEf@%_nB9F&zePJJkfAk;M(yJzis~UN`s0h$Fl&7Rw4l2Kv76eXOla z?eCcivz<>+@8#m@@|aAwI@9d}O*a0cfA8kncF!58aq|~i(p}miUN;NfP9+Js++S=Twm_ zrdDdhG}agWJNu%)7lXQ4;Q+x~e4Uj#fgi2QQ7#G|=&sH0HKr>GuYc#xRXx}3m`v#H zs&W8y1Jfbp=Nr`9am)}pNr2E^sj^wZ>tm8;CKjV=Y(P4Cr9uyrCg3B7kJ!J%=E#vF z=J@gB=CFOQ32Eubh*`06r5Rqb#0=HzX4$f3@;5TF)YOOSLOf+6w9l2XXQpPa$8VvR zNfR)h(P%XC_pFJ~ZoaDKvz^53X8vQIv4sxPB3Y`g?REiqEf!xR%5*?X!sze$o}Y=Z znrIFkI%KwO+hz_PIA{((`J@>iA2&loLpkEtEusU758z&i3HyJoR+I1XH*Bw6YKf+9 zU)P*+idnv5g*j#QYBM}M?8fYoUe6iYixmio5pgG|lBD6<_rj=p!JCBwd2U!cT|E3; zYCuh}jv0j4x3f)R_s`}c@VOHc6M5|8*s)_~-@bk3fd?KCVu6IfZ?&XAY;t-4h$Cj` z6X9_kej6Jb%df+4ORN-vG}>_L26KufBoG$}5#NKD@V*`Mh%tjI#t_bRDCNUzG=wT! zs1+;*;*kh`)sIzNIdmn(U$Je}mCB?EMyqikJpC-KGVzr*N7JffV^&&G#UincShWsBx@y%bA*3~H z*2s5N1X86^>1*`&;cGkS_SywaEU^^*$x4<^6W;EAa`fq%Y-zWdiCUERKllv9KXKxO z*|&F}dHnIm&0~)}Cft1K(xuWTNDDw{?Bg>CCT35NVT6boQ|}0AEfqBlgt5dvf5NtN z?C4P;IJ}2_G&VYF8t8|;e$}egX8rngX2XV4?R`t7&m&7ltgU3#IxsCi GyPA$~) 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 M07*qoM6N<$f;PCMU;qFB literal 0 HcmV?d00001 diff --git a/Chico/img/location-minus.png b/Chico/img/location-minus.png new file mode 100644 index 0000000000000000000000000000000000000000..661cec6b339569bf1542f1940b55164cf7bf4d37 GIT binary patch literal 707 zcmV;!0zCbRP)X1^@s6D=Y3@00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP}z85YbYM%*9>+Ly)Nu}H((`x}Ss7SO;hgI+(XnHx$`1ITNPq7{}DOXE3 zjgOo92L!%bx=4;i#8;~AZi9DwFC&CD{jJYxrOsAEziJOBu04c;@LjvlzjfJa2YmK) zBXvaVK|#=+eWs=bE2TguDXP$r>rT8gEi^7v0pl?2 zKDa9*ln@z|wK&NTY(=CusBD(y(0(<0Mvs=!P`t`j8N6Z-G7btiAS=+e@K91tih z8YvJ7Ay-MHf6Ty4ghFWNP!Kd$TD<-We~vN)FQr`4G7thgP!t-z;n8v~m&*)6l0hs! zaHEZBdcuK7n-n$d?lhdZCPsZ$8HleOucvidZYkSi+E z!#1`4k^`tF literal 0 HcmV?d00001 diff --git a/Chico/img/title-artilce1.png b/Chico/img/title-artilce1.png new file mode 100644 index 0000000000000000000000000000000000000000..b471934570bc1d78f59b1aaca8985dbc6686c0fa GIT binary patch literal 538 zcmV+#0_FXQP)ojeCdMD1D)2>Pb^zH*M66 ziPilGpO^x7Xp?4akt+&y}vfrsZ~>UTJE?%_RH;W}v)7E?mGPrH1hotSNDFLDmeq)Ck+u3!0vA#AWP8 zZbgUDHHZ)T;3x0|W>Qj5m;#Sr{c`ZR& z=$fYH8xD)^laA6U6ws=CAU^UxVrLiDyAnfq Chico PC - - + + - - - - - - - + + + + + + + -

Sản phẩm TEST

@@ -5236,6 +5233,1450 @@
+
+ +
+
+ +
+
Sản phẩm
+
Đơn giá
+
Số lượng
+
Số tiền
+
Thao tác
+
+
+ +
+ +
+ + + +
+ + model + +
+ + TEST sản phẩm 02 + + + + + Mã sản phẩm: TL-WN832N + + + + + +
+
+
+
+ +

3.444.000 đ

+ + + +

5.556.000 đ

+ +
+
+
+ - + + + +
+
+ +

3.444.000 đ

+ +
+ + + Xóa + + + +
+ +
+
+
+
+
+ +

ĐỊA CHỈ NHẬN HÀNG

+
+
+ +
+
+
+
+ + + + + + + + + +
+ +
+
+
+
+ + Hình thức thanh toán +
+ + + + + +
+

THÔNG TIN TÀI KHOẢN

+

Số tài khoản:

+

Ngân hàng:

+

Chủ tài khoản: No Name

+
+ + +
+ + +

+
+ + + +
+ Tổng tiền hàng (1 sản phẩm): +

3.444.000 đ

+
+
+ + + +
+ + +
+ + + + + + + + + + + + +
+
+ +
+ + +
+ + + +
+
+
+ + +
+
+
+

Họ và Tên*

+ +
+ +
+

Số điện thoại*

+ +
+ +
+

Địa chỉ*

+ +
+ +
+

Email*

+ +
+ +
+

Mật khẩu*

+ +
+ + +
+
+ +
+

Nhập lại mật khẩu*

+ +
+ + +
+ + +
+ + +
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+
+ + + +
+
+
+ +
+ + + +
+ +
+ +
+ +

Tin tức công nghệ

+
+ +
+ Xem tất cả +
+
+ +
+
+ +
+ +
+
+ +
+
+

+ Bài viết nổi bật +

+
+
+
+ + Chuột chơi game Logitech G502 nâng cấp thay thế G502 liệu có đáng mua? + +
+
+
Tin game
+

+ + 17.03.2023 + + 0 + +

+
+ +

+ Chuột chơi game Logitech G502 nâng cấp thay thế G502 liệu có đáng mua? +

+
+
+
+ +
+ + Chuột chơi game Logitech G502 nâng cấp thay thế G502 liệu có đáng mua? + +
+
+
Tin game
+

+ + 17.03.2023 + + 0 + +

+
+ +

+ Chuột chơi game Logitech G502 nâng cấp thay thế G502 liệu có đáng mua? +

+
+
+
+ +
+ + Chuột chơi game Logitech G502 nâng cấp thay thế G502 liệu có đáng mua? + +
+
+
Tin game
+

+ + 17.03.2023 + + 0 + +

+
+ +

+ Chuột chơi game Logitech G502 nâng cấp thay thế G502 liệu có đáng mua? +

+
+
+
+ +
+ +
+
+ +
+
+
+

+ Tuyển dụng +

+
+ + + +
+ + TOP sản phẩm hot hit mùa hè 2023 + +
+ +

+ TOP sản phẩm hot hit mùa hè 2023 +

+
+
+

+ + 17.03.2023, 1:15 pm + + 0 +

+
+ +
+
+ + + +
+ + TOP sản phẩm hot hit mùa hè 2023 + +
+ +

+ TOP sản phẩm hot hit mùa hè 2023 +

+
+
+

+ + 17.03.2023, 1:15 pm + + 0 +

+
+ +
+
+ + + +
+
+ +
+ +
+ +
+

+ Sản Phẩm Khuyến Mãi +

+ +
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ + +
+
+ + + + + + + +
+ + +
+ +
+
+ +
+ + +
+
+ + + +
+ +
@@ -5489,8 +6930,7 @@