PageSourceSearch

https://www.de-food.com.tw/js/ProductAction.min.js

js de-food.com.tw collected 2026-10-05 08:15:16 UTC 6,122 bytes, 1 lines download raw bytes

1var Product={AddUp:{Cart:function(t){return $.ajax({url:"/api/ShoppingCart/AddUp",type:"POST",contentType:"application/json; charset=utf-8",headers:{Authorization:"Bearer "+localStorage.getItem("token")},data:JSON.stringify(t),dataType:"json"})}},Update:{Cart:function(t){return $.ajax({url:"/api/ShoppingCart/QuantityUpdate",type:"POST",contentType:"application/json; charset=utf-8",headers:{Authorization:"Bearer "+localStorage.getItem("token")},data:JSON.stringify(t),dataType:"json"})},MultiCart:function(t){return $.ajax({url:"/api/ShoppingCart/MultiQuantityUpdate",type:"POST",contentType:"application/json; charset=utf-8",headers:{Authorization:"Bearer "+localStorage.getItem("token")},data:JSON.stringify(t),dataType:"json"})},CartVariant:function(t){return $.ajax({url:"/api/ShoppingCart/UpdateVariant",type:"POST",contentType:"application/json; charset=utf-8",headers:{Authorization:"Bearer "+localStorage.getItem("token")},data:JSON.stringify(t),dataType:"json"})}},GetAll:{Cart:function(t){return $.ajax({url:"/api/ShoppingCart/GetAll/",headers:{Authorization:"Bearer "+localStorage.getItem("token")},type:"GET",data:{Tid:t}})}},GetOne:{Cart:function(t){return $.ajax({url:"/api/ShoppingCart/GetDropOne/",headers:{Authorization:"Bearer "+localStorage.getItem("token")},type:"GET",data:{id:t}})},Prod:function(t){return $.ajax({url:"/api/Product/GetDisplayOne/",type:"GET",data:{id:t}})},ProdMainDisplay:function(t){return $.ajax({url:"/api/Product/GetMainDisplayOne/",type:"GET",data:{Id:t}})},ProdOne:function(t){return $.ajax({url:"/api/Product/GetProdDataOne/",type:"GET",data:{id:t}})},Stock:function(t){return $.ajax({url:"/api/Product/GetDisplayStock/",type:"GET",data:{id:t}})}},Delete:{Cart:function(t){return $.ajax({url:"/api/ShoppingCart/DeleteDrop/",headers:{Authorization:"Bearer "+localStorage.getItem("token")},type:"GET",data:{id:t}})}},Log:{Click:function(t){return $.ajax({url:"/api/Product/ClickLog",type:"GET",contentType:"application/json; charset=utf-8",data:{FK_Pid:t}})}}};function CartDropInit(){Product.GetAll.Cart().done((function(t){if(t.length>0)for(var a=0;a<t.length;a++)CartDropAdd(t[a])}))}function CartDropPosition(){var t=document.getElementById("btn_car_dropdown"),a=document.getElementById("Car_Dropdown");if(t&&a&&a.classList.contains("show")){var e=t.getBoundingClientRect(),r=Math.min(a.offsetWidth||280,window.innerWidth-16),n=e.left;n+r>window.innerWidth-8&&(n=e.right-r),n=Math.max(8,Math.min(n,window.innerWidth-r-8)),a.style.setProperty("--cart-dropdown-left",`${n}px`),a.style.setProperty("--cart-dropdown-top",`${e.bottom+8}px`),a.style.setProperty("--cart-dropdown-available-height",`${Math.max(window.innerHeight-e.bottom-16,160)}px`),a.classList.add("cart-dropdown--positioned")}}function CartDropAdd(t){var a=$($("#Template_Car_Dropdown").html()).clone();t.available||a.addClass("unavailable"),!0===t.isAdditional?(a.addClass("cart-item--additional"),a.find("figcaption").prepend($("<span></span>").addClass("cart-item__type-badge").text(t.priceLabel||"加價購"))):a.addClass("cart-item--primary"),(a=HeaderDataInsert(a,t)).data("scid",t.scId),a.find(".btn_cart_delete").on("click",(function(){var t=$(this).parents("li").first();Coker.sweet.confirm("確定將商品從購物車移除?","該商品將會從購物車中移除,且不可復原。","確認移除","取消",(function(){CartDropDelete(t,t.data("scid"),"成功移除商品","移除商品發生未知錯誤")}))})),$("#Car_Dropdown > ul").append(a);var e=""==$("#Car_Badge").text()?1:parseInt($("#Car_Badge").text())+1;$("#Car_Badge").text(e.toString()),$("#Car_Dropdown_Null").hasClass("d-none")||($("#Car_Dropdown_Null").addClass("d-none"),$("#Car_Dropdown > .btn_car_buy").removeAttr("disabled"))}function CartDropUpdate(t){$("#Car_Dropdown > ul > li").each((function(){var a=$(this);a.data("scid")==t.scId&&a.find(".pro_quantity").text(t.quantity)}))}function CartDropReset(t,a){$("#Car_Dropdown > ul > li").each((function(){$(this).data("scid")==t&&(0==a?($(this).remove(),$("#Car_Badge").text($("#Car_Badge").text()-1)):$(this).find(".pro_quantity").text(a))}))}function CartDropDelete(t,a,e,r){Product.Delete.Cart(a).done((function(t){if(t&&!0===t.success){var n=t.object||t.Object||{},o=n.removedCartIds||n.RemovedCartIds||[];
1new Set([Number(a)].concat(o.map(Number))).forEach((function(t){CartDropReset(t,0)})),Coker.sweet.success(t.message||e,null,!0),parseInt($("#Car_Badge").text())<=0?CartClear():$(document).trigger("coker:cart-changed")}else Coker.sweet.error("錯誤",t&&t.error||r,null,!0)})).fail((function(){Coker.sweet.error("錯誤",r,null,!0)}))}function CartClear(){$("#Car_Dropdown > ul > li").remove(),$("#Car_Badge").text(""),$("#Car_Dropdown_Null").removeClass("d-none"),$("#Car_Dropdown > .btn_car_buy").attr("disabled",""),$(document).trigger("coker:cart-cleared")}function HeaderDataInsert(t,a){return t.find("*").each((function(){var t=$(this);if(void 0!==t.data("key")){var e=t.data("key");switch(e){case"link":a.available&&t.attr({href:`/${OrgName}/search/product/${a.pId}`,title:`連結至:${a.title}`});break;case"spec":t.append(""==a.s1Title?"":`<span class="border px-1 me-1">${a.s1Title}</span>`),t.append(""==a.s2Title?"":`<span class="border px-1 me-1">${a.s2Title}</span>`);break;case"imagePath":a[e]=a[e].replaceAll(`/${OrgName}/`,"/"),t.attr({src:a[e],alt:`${a.title}的圖片`});break;case"oldQuantity":a.available&&(a[e]!=a.quantity&&t.removeClass("d-none"),t.text(a[e]));break;default:t.text(a[e]),a.available||"price"!=e&&"quantity"!=e||t.text("")}if("price"===t.data("type"))if(a.available){const e=Number(String(t.text()||0).replaceAll(",",""))||0,r=window.CokerCurrency.formatAmou
1nt(e);if(a.bonus>0){const n='<span class="money__symbol">紅利</span>';t.toggleClass("price",e>0),e>0?t.html(`${r}+${n}${a.bonus}`):t.html(`${n}${a.bonus}`)}else t.addClass("price").text(r)}}})),t}$(document).off("shown.bs.dropdown.cartPosition","#btn_car_dropdown").on("shown.bs.dropdown.cartPosition","#btn_car_dropdown",CartDropPosition),$(window).off("resize.cartPosition scroll.cartPosition").on("resize.cartPosition scroll.cartPosition",CartDropPosition);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.