PageSourceSearch

https://www.a5.org.cn/wp-content/themes/zibll/inc/functions/shop/assets/js/main.min.js?ver=9.1

js a5.org.cn collected 2026-10-06 23:50:01 UTC 70,467 bytes, 3 lines download raw bytes

1(function(){function t(t){var i=window._win&&window._win.i18n;return i&&Object.prototype.hasOwnProperty.call(i,t)?i[t]:"function"==typeof zib__?zib__(t):t}function i(i){var e=Array.prototype.slice.call(arguments,1),s=t(i),a=0;return s.replace(/%(\d+\$)?s/g,function(t,i){var s=i?parseInt(i,10)-1:a++;return void 0!==e[s]&&null!==e[s]?e[s]:t})}function e(t,i){var e=t.offset().top,s=i.offset().top,a=t.offset().left,o=i.offset().left,n=t.width(),d=i.width(),r=t.height(),c=i.height();return{x:o-a-n/2+d/2,y:s-e-r/2+c/2}}function s(t,i){var e=Number(t);if(isNaN(e))return"0";var s=e.toFixed(i?0:2).toString();return s.indexOf(".")>-1&&(s=s.replace(/(\.\d*?[1-9])0+$/,"$1"),s=s.replace(/\.0+$/,"")),Number(s)}function a(t){var i=s(t).toString(),e=i.split("."),a=e[0];return e[1]&&i.includes(".")&&(a+='<span class="decimal-part">.'+e[1]+"</span>"),a}function o(t,i){return"|"+t+"_"+i}function n(t){var i="";return t.forEach(function(t,e){i+=o(e,t)}),i}function d(t){return t?JSON.parse(JSON.stringify(t)):{}}function r(){var t=window,i="inner";return"innerWidth"in window||(i="client",t=document.documentElement||document.body),{width:t[i+"Width"],height:t[i+"Height"]}}function c(){return r().width<768}function l(){$(".signin-loader:eq(0)").click()}function u(t){$("[cart-count]").text(t).attr("cart-count",t)}function _(){return{win_width:$(window).width(),is_mobile:c(),stockAllText:function(e){return isNaN(e)?"":e<0?"":0===e?t("shop_out_of_stock"):i("shop_stock",e)},spinnerMax:function(t){"object"!=typeof t&&(t=this);var i=~~t.stock_all;if(-1===i){if(t.limit_buy&&t.limit_buy.is_limit)return~~t.limit_buy.limit}else t.limit_buy&&t.limit_buy.is_limit&&-1!=~~t.limit_buy.limit&&(i=Math.min(i,~~t.limit_buy.limit));return i},switchOptView:function(t){t.view_mode="img"===t.view_mode?"list":"img"},optHasImg:function(t){return t.opts&&t.opts.length>0&&t.opts.some(t=>t.image)},syncItemStock:function(t,i){var e=t;if(i||(i=t),"opts"===i.stock_type){var s=n(e.options_active);i.stock_opts[s]?e.stock_all=Number(i.stock_opts[s]):e.stock_all=0}else e.stock_all=Number(i.stock_all);-1!==e.stock_all&&(e.selected_count>e.stock_all&&(e.selected_count=e.stock_all?e.stock_all:1),e.stock_all)},syncItemDiscountPrice:function(t,i,e){e||(e=t),i||(i={}),t.discount_hit=[];var a=e.pay_modo&&"points"===e.pay_modo,o=s(t.prices.total_price,a),n=e.discount;if(n){var r=o/t.selected_count,c=i.product_data,l=i.author_data,u=i.total_data,_=i.user_data;$.each(n,function(i,e){if(e=d(e),e.usesed_count=0,e.preferential_amount=0,!e.is_valid)return!0;var a=e.discount_scope;if(e.price_limit){if("item"===a&&r<e.price_limit)return!0;if("product"===a&&c.price<e.price_limit)return!0;if("author"===a&&l.price<e.price_limit)return!0;if("order"===a&&u.price<e.price_limit)return!0}if(e.user_limit){if("vip"===e.user_limit&&_.vip_level<1)return!0;if("vip_2"===e.user_limit&&_.vip_level<2)return!0;if("auth"===e.user_limit&&!_.auth)return!0}if("reduction"===e.discount_type){var n=Number(e.reduction_amount),m=0;e.usesed_count=1,"item"===a&&(e.usesed_count=t.selected_count,m=n*t.selected_count),"product"===a&&(m=n*(t.selected_count/c.count)),"author"===a&&(m=n*(t.selected_count/l.count)),"order"===a&&(m=n*(t.selected_count/u.count)),m>=o&&(m=o),e.preferential_amount=m,o-=m}if("discount"===e.discount_type){var p=o,h=e.discount_amount/10;o*=h,e.usesed_count=1,e.preferential_amount=p-o}"gift"===e.discount_type&&(e.gift_data&&0!==e.gift_data.length||(e.gift_data=[]),e.gift_data.push(e.gift_config)),e.preferential_amount=s(e.preferential_amount),t.discount_hit.push(e)})}t.prices.unit_discount_price=s(o/t.selected_count,a),t.prices.total_discount_price=s(o,a),t.prices.total_discount=s(t.prices.total_price-t.prices.total_discount_price)},syncItemPrice:function(t,i){i||(i=t);var e=t.prices,a=Number(i.prices.start_price);e.start_price=a;var o=t.pay_modo&&"points"===t.pay_modo;t.options_active.length>0&&i.product_options.length>0&&$.each(t.options_active,function(t,e){i.product_options[t]&&i.product_options[t].opts&&i.product_options[t].opts[e]&&(a+=Number(i.product_options[t].opts[e].price_change))}),a=a<0?0:a;var n=s(a,o);e.unit_price=n,e.unit_discount_price=n;var d=s(a*t.selected_count,o);e.total_price=d,e.total_discount_price=d},newModal:function(t,i){return i=i||"",i&&(i='<div class="border-title touch"><div class="flex jc"><b>'+i+"</b></div></div>"),refresh_modal({class:"shop-modal modal-mini full-sm",mobile_from_bottom:!0,content:'<button class="close abs-close" data-dismiss="modal"><svg class="ic-close" aria-hidden="true"><use xlink:href="#icon-close"></use></svg></button><div class="">
1'+i+t+"</div>"})},paramsModal:function(i){if(i.length){var e="";return $.each(i,function(t,i){e+='<div class="mb10 flex" style="min-width:80%;"><div class="author-set-left muted-2-color" style="min-width: 80px;">'+i.name+'</div><div class="author-set-right mt6">'+i.value+"</div></div>"}),this.newModal('<div class="mini-scrollbar scroll-y max-vh5" style="min-height: 20vh;">'+e+"</div>",t("shop_product_params"))}},serviceModal:function(i){var e="";return $.each(i,function(t,i){var s=i.image?'<div class="badg em14 cir"><img src="'+i.image+'" alt="'+i.name+'"></div>':'<div class="badg cir em14"><i class="fa fa-heart-o"></i></div>';e+='<div class="mt10 mb20 flex">'+s+'<div class="ml10">'+i.name+'<div class="muted-2-color em09">'+i.desc+"</div></div></div>"}),this.newModal('<div class="mini-scrollbar scroll-y max-vh5" style="min-height: 20vh;">'+e+"</div>",t("shop_product_service"))},discountHitModal:function(i,e,a){var o="",n=0;if(!$.isEmptyObject(i)){$.each(i,function(t,i){if(!$.isEmptyObject(i.discount_hit)){var d=i.thumbnail||a[i.product_id].thumbnail,r=i.title||a[i.product_id].title,c=i.options_active_name?'<div class="px12 muted-2-color text-ellipsis">'+i.options_active_name+"</div>":"";o+='<div class="dis-hit-item muted-box mb10">',o+=`<div class="flex ac border-bottom" style="padding-bottom: 10px;">\n                                <div class="badg cir">\n                                ${d}\n                                </div>\n                                <div class="ml10 flex1">\n                                    <div class="title text-ellipsis">${r}</div>\n                                    ${c}\n                                </div>\n                                <div class="muted-2-color">x<span class="em12"> ${i.selected_count||i.count||1}</span></div>\n                            </div>`,o+='<div class="">',$.each(i.discount_hit,function(t,i){var a=i.name||e[i.id].name,d=i.small_badge||e[i.id].small_badge,r=i.usesed_count&&i.usesed_count>1?"x"+i.usesed_count:"";if(a===d&&(a=""),d=d?'<span class="badg badg-sm c-yellow mr3">'+d+r+"</span>":"",i.preferential_amount){var c=s(i.preferential_amount);n+=c,o+=`\n                            <div class="mt10 flex">\n                                <div class="text-ellipsis flex1 mr20 muted-2-color">${d+a}</div>\n                                <div class="desc c-red">-${c}</div>\n                            </div>\n                            `}}),o+="</div></div>"}}),n=s(n);var d=`\n                ${o}\n                <div class="flex muted-box">\n                    <div class="text-ellipsis flex1 mr20">${t("shop_total_discount")}</div>\n                    <div class="desc c-red">-${n}</div>\n                </div>\n                `;return this.newModal('<div class="mini-scrollbar scroll-y max-vh5">'+d+"</div>",t("shop_discount_detail"))}},giftDesc:function(i,e){if(!$.isEmptyObject(i)){var s=[];return $.each(i,function(i,e){switch(e.gift_type){case"vip_1":s.push(e.vip_1_name);break;case"vip_2":s.push(e.vip_2_name);break;case"auth":s.push(t("shop_gift_auth"));break;case"level_integral":s.push(t("shop_gift_exp"));break;case"points":s.push(t("shop_gift_points"));break;case"product":s.push(t("shop_gift_product"));break;case"other":s.push(e.other_info.name)}}),s.join("、")}},giftModal:function(i){var e="";$.each(i,function(i,s){switch(s.gift_type){case"vip_1":var a="Permanent"===s.vip_time?t("shop_permanent"):s.vip_time+t("shop_day_unit");e+='<div class="gift-card-item flex mt6"><div class="gift-name">'+s.vip_1_name+'</div><div class="muted-2-color"> '+a+"</div></div>";break;case"vip_2":a="Permanent"===s.vip_time?t("shop_permanent"):s.vip_time+t("shop_day_unit");e+='<div class="gift-card-item flex mt6"><div class="gift-name">'+s.vip_2_name+'</div><div class="muted-2-color"> '+a+"</div></div>";break;case"auth":var o='<div class=""> '+s.auth_info.name+"</div>";o+=s.auth_info.desc?'<div class="px12"> '+s.auth_info.desc+"</div>":"",e+='<div class="gift-card-item flex mt6"><div class="gift-name">'+t("shop_gift_auth")+'</div><div class="muted-3-color"> '+o+"</div></div>";break;case"level_integral":e+='<div class="gift-card-item flex mt6"><div class="gift-name">'+t("shop_gift_exp")+'</div><div class="muted-2-color"> '+s.level_integral+"</div></div>";break;case"points":e+='<div class="gift-card-item flex mt6"><div class="gift-name">'+t("shop_gift_points")+'</div><div class="muted-2-color"> '+s.points+"</div></div>";break;case"product":e+='<div class="gift-card-item flex mt6"><div class="gift-name">'+t("shop_gift_product")+'</div><div class="muted-2-color"> '+s.product_id+"</div></div>";break;case"other":e+='<div class="gift-card-item flex mt6"><div class="gift-name">'+s.other_info.name+'</div><div class="muted-2-color"> '+s.other_info.desc+"</div></div>"}});var s=`\n                    <div class="gift-card muted-box mb10 relative">\n                            <div class="gift-card-item">\n                                ${e}\n                            </div>\n                    </div>\n                    `,a='<div class="mini-scrollbar scroll-y max-vh5">'+s+"</div>";return this.newModal(a,t("shop_gift_detail"))},discountModal:function(e,s,o){e=e,s=s;var n=[];if($.isEmptyObject(s)?n=e:$.each(s,function(t,i){n.push(e[i.id])}),!$.isEmptyObject(n)){var d="",r="";$.each(n,function(e,s){if(o||s.is_valid){var n=s.discount_type,c="";switch(n){case"reduction":c='<div class="discount-amount"><div class="price-text">'+s.reduction_amount+'</div><div class="price-type px12">'+t("shop_discount_reduce")+"</div></div>";break;case"discount":c='<div class="discount-amount"><span class="price-text em14">'+a(s.discount_amount)+'</span><span class="price-type px12 ml6">'+t("shop_discount_fold_unit")+"</span></div>"}var l='<div class="title">'+s.name+"</div>";l+=s.desc?'<div class="desc opacity8 px12 mt3 text-ellipsis">'+s.desc+"</div>":"";var u=[];
1if(Number(s.price_limit)>0){var _=s.discount_scope,m="";"item"===_?m=t("shop_limit_single"):"product"===_?m=t("shop_limit_product"):"author"===_?m=t("shop_limit_store"):"order"===_&&(m=t("shop_limit_cross")),u.push('<span class="badg badg-sm">'+i("shop_limit_full",m,s.price_limit)+"</span>")}if(s.user_limit)switch(s.user_limit){case"vip":u.push('<span class="badg badg-sm">'+t("shop_vip_available")+"</span>");break;case"vip_2":u.push('<span class="badg badg-sm">'+t("shop_vip2_available")+"</span>");break;case"auth":u.push('<span class="badg badg-sm">'+t("shop_auth_user_available")+"</span>")}if(l+=u?'<div class="limit-info opacity8 px12 mt3">'+u.join(" & ")+"</div>":"",s.time_limit&&s.time_limit_config)if(s.time_limit_config.show_html)l+=s.time_limit_config.show_html;else if(s.time_limit_config.countdown)l+='<div class="flex ac px12 mt3"><span class="mr3 opacity8 px12">'+t("shop_activity_remaining")+'</span><span class="badg badg-sm c-red" int-second="auto" data-countdown="'+s.time_limit_config.end+'" data-over-text="'+t("shop_countdown_ended")+'"></div>';else{var p=s.time_limit_config.start?s.time_limit_config.start.replace(" 00:00:00",""):"",h=s.time_limit_config.end?s.time_limit_config.end.replace(" 23:59:59",""):"",v=p?p+(h?" - ":t("shop_time_start")):"",f=h?h+(p?"":t("shop_time_end")):"";l+='<div class="badg badg-sm mt3">'+v+f+"</div>"}if("gift"===s.discount_type){var g="";$.each(s.gift_config,function(i,e){switch(e.gift_type){case"vip_1":var s="Permanent"===e.vip_time?t("shop_permanent"):e.vip_time+t("shop_day_unit");g+='<div class="gift-card-item flex mt6"><div class="gift-name">'+e.vip_1_name+'</div><div class="muted-2-color"> '+s+"</div></div>";break;case"vip_2":s="Permanent"===e.vip_time?t("shop_permanent"):e.vip_time+t("shop_day_unit");g+='<div class="gift-card-item flex mt6"><div class="gift-name">'+e.vip_2_name+'</div><div class="muted-2-color"> '+s+"</div></div>";break;case"auth":var a='<div class=""> '+e.auth_info.name+"</div>";a+=e.auth_info.desc?'<div class="px12"> '+e.auth_info.desc+"</div>":"",g+='<div class="gift-card-item flex mt6"><div class="gift-name">'+t("shop_gift_auth")+'</div><div class="muted-3-color"> '+a+"</div></div>";break;case"level_integral":g+='<div class="gift-card-item flex mt6"><div class="gift-name">'+t("shop_gift_exp")+'</div><div class="muted-2-color"> '+e.level_integral+"</div></div>";break;case"points":g+='<div class="gift-card-item flex mt6"><div class="gift-name">'+t("shop_gift_points")+'</div><div class="muted-2-color"> '+e.points+"</div></div>";break;case"product":g+='<div class="gift-card-item flex mt6"><div class="gift-name">'+t("shop_gift_product")+'</div><div class="muted-2-color"> '+e.product_id+"</div></div>";break;case"other":g+='<div class="gift-card-item flex mt6"><div class="gift-name">'+e.other_info.name+'</div><div class="muted-2-color"> '+e.other_info.desc+"</div></div>"}}),r+=`\n                        <div class="gift-card muted-box mb10 relative">\n                            <div class="small-badge">${s.small_badge}</div>\n                            <a class="flex" href="${s.link}" target="_blank">\n                                <div class="gift-card-info flex1">\n                                    ${l}\n                                </div>\n                                <i class="fa fa-angle-right em12 ml10 mt10 opacity8"></i>\n                            </a>\n                                <div class="gift-card-item">\n                                    ${g}\n                                </div>\n                        </div>\n                        `}else d+=`\n                        <a class="discount-card-link" href="${s.link}" target="_blank">\n                        <div class="discount-card muted-box mb10">\n                            <div class="small-badge">${s.small_badge}</div>\n                            <div class="flex ac">\n                                <div class="discount-card-left">\n                                    ${c}\n                                </div>\n                                <div class="discount-card-right flex1">\n                                    ${l}\n                                </div>\n                                <i class="fa fa-angle-right em12 ml6 opacity8"></i>\n                            </div>\n                        </div>\n                        </a>\n                        `}}),d=d?'<div class="discount-card-list">'+d+"</div>":"",r=r?'<div class="discount-card-gift">'+(d?'<div class="title-theme mb10 mt20">'+t("shop_gift_section")+"</div>":"")+r+"</div>":"";var c='<div class="mini-scrollbar scroll-y max-vh5">'+d+r+"</div>";return this.newModal(c,t("shop_discount_info"))}}}}function m(i){var e=this;return e.drawer_id="shop-confirm-modal",e.ajaxget=function(t){$("body").loading("show"),t.action="shop_confirm_modal";var i="",s=$("#"+e.drawer_id),a="confirm_modal_html";if(s.length)t.no_html=!0;else{var o=localStorage.getItem(a);if(o){var n=JSON.parse(o);n[_win.ver]&&(t.no_html=!0,i=n[_win.ver])}}$.ajax({url:_win.ajax_url,type:"POST",data:t,dataType:"json",success:function(t){var s=t.ys?t.ys:t.error?"danger":"";t.msg&&notyf(t.msg,s),t.html&&localStorage.setItem(a,JSON.stringify({[_win.ver]:t.html})),t.vue_data&&e.confirmModal(t.html||i,t.vue_data),$("body").loading("hide")},error:function(){$("body").loading("hide")}})},e.confirmModal=function(i,s){var a=e.drawer_id,o=$("#"+a);o.length?(window.VueShopConfirmData=$.extend(window.VueShopConfirmData,s),window.VueShopConfirmData.order_data=[],window.VueShopConfirmData.payment_data=[],window.VueShopConfirmData.$nextTick(function(){setTimeout(function(){o.find(".scroll-y").scrollTop(0)},100)})):(x.createModal({modal_class:"shop-confirm-modal",dialog_class:"full-sm",title_class:"mb10 flex jc font-bold",mobile_from_bottom:!0,content:'<div class="shop-modal-body" @vue:mounted="mounted">'+i+"</div>",id:a,title:t("shop_confirm_order")}),o=$("#"+a),f("#"+a,s)),o.modal("show")},e.init=function(){return e.ajaxget(i),{drawer_id:e.drawer_id,$drawer:$("#"+e.drawer_id),ajaxget:e.ajaxget,createApp:e.createApp}}
1,e.init()}function p(){function t(t){const i={};return $.each(t,function(e,s){if(e.endsWith("0000")){const t=s;i[t]={}}else if(e.endsWith("00")&&!e.endsWith("0000")){const a=t[e.substring(0,2)+"0000"],o=s;i[a]&&(i[a][o]=[])}else{const a=t[e.substring(0,2)+"0000"],o=t[e.substring(0,4)+"00"],n=s;a&&!i[a]&&(i[a]={}),o&&!i[a][o]&&(i[a][o]=[]),o?i[a][o].push(n):i[a][n]=[]}}),i}var i="china_regions",e=localStorage.getItem(i);if(e)try{var s=JSON.parse(e);if(s[_win.ver])return s[_win.ver]}catch(t){}var a=[];return $.ajax({url:_win.uri+"/inc/functions/shop/assets/js/china-regions.json",type:"GET",dataType:"json",async:!1,success:function(e){var s=t(e);localStorage.setItem(i,JSON.stringify({[_win.ver]:s})),a=s},error:function(t,i,e){console.error("获取地址数据失败:",e)}}),a}function h(i){if(window.VueShopAddressData)return window.VueShopAddressData;var e=[];i||(e=p());var s={},a="user-manage-address-modal",o="user-address-edit-modal",n=k.ModalId(a).mounted("AddressesMounted").userManageAddressModal(),r=k.ModalId(o).mounted(!1).userAddAddressModal(),l=$.extend({is_mobile:c(),addresses:[],selectedAddressId:0,is_edit:!1,form:{id:0,name:"",phone:"",province:"",city:"",county:"",address:"",tag:t("shop_tag_home"),is_default:!1},errors:{},regions:e,cities:[],counties:[],customTag:"",showCustomInput:!1,submitting:!1,tag_list:[t("shop_tag_home"),t("shop_tag_company"),t("shop_tag_school")],AddressesMounted:function(){},addModal:function(t){r.modal(t?"show":"hide")},manageModal:function(t){n.modal(t?"show":"hide")},loadAddresses(){const t=this;$.ajax({type:"POST",url:_win.ajax_url,data:{action:"shop_get_user_addresses"},success(i){!i.error&&i.data&&t.updateAddresses(i.data)}})},updateAddresses(t){var i=this;if(i.addresses=t,!i.selectedAddressId){const t=i.addresses.find(t=>t.is_default);t?i.selectedAddressId=t.id:i.addresses.length>0&&(i.selectedAddressId=i.addresses[0].id)}i.updateAddressesCallback(t)},getDefaultAddress(){const t=this.addresses.find(t=>t.is_default);return t||(this.addresses.length>0?this.addresses[0]:[])},updateAddressesCallback:function(t){},setUpdateAddressesCallback:function(t){this.updateAddressesCallback=t},selectAddress(t){this.selectedAddressId=t.id,this.manageModal(!1),this.selectAddressCallback(t)},selectAddressCallback:function(t){},setSelectAddressCallback:function(t){this.selectAddressCallback=t},addNewAddress(){this.resetForm(),this.is_edit=!1,this.manageModal(!1),r.modal("show")},editAddress(t){this.resetForm(),this.is_edit=!0,this.form={...t},this.form.tag&&!this.tag_list.includes(this.form.tag)&&(this.customTag=this.form.tag),this.provinceChange(!0),this.cityChange(!0),this.manageModal(!1),this.addModal(!0)},deleteAddress(i){if(!confirm(t("shop_delete_address")))return;const e=this;$.ajax({type:"POST",url:_win.ajax_url,data:{action:"shop_delete_user_address",address_id:i},success(s){if(s.error)notyf(s.msg||t("shop_delete_failed"),"danger");else{notyf(t("shop_delete_success"),"success");var a=e.addresses.filter(t=>t.id!==i);e.updateAddresses(a)}},error(){notyf(t("shop_network_error"),"danger")}})},editSaveAddress(t){this.validateForm()&&this.saveAddress(this.form,t)},saveAddress(t,i){const e=this;var s={action:"shop_save_user_address",address:t},a=i?$(i.target):$("<div></div>");a.zib_ajax(s,function(t){t.data&&e.updateAddresses(t.data),e.addModal(!1),setTimeout(()=>{e.manageModal(!0)},50)})},setDefaultAddress(t){var i=$(t.target),e=i.attr("item-id");if(e){var s=d(this.addresses.find(t=>t.id===e));s&&(s.is_default=!0,this.saveAddress(s,t))}},validateForm(){return this.errors={},this.form.name||(this.errors.name=t("shop_enter_name")),this.form.phone?/^(?:\d{5,}|\+\d{6,}|[\+]?\d{2,}[\-\s]\d{2,}[0-9|\-|\s]{0,15})$/.test(this.form.phone)||(this.errors.phone=t("shop_phone_invalid")):this.errors.phone=t("shop_enter_phone"),this.form.province&&this.form.city&&(this.form.county||$.isEmptyObject(this.counties))||(this.errors.region=t("shop_region_incomplete")),this.form.address||(this.errors.address=t("shop_enter_address")),0===Object.keys(this.errors).length},resetForm(){this.form={id:0,name:"",phone:"",province:"",city:"",county:"",address:"",tag:this.tag_list[0],is_default:!1},this.errors={},this.cities=[],this.counties=[],this.customTag="",this.showCustomInput=!1},provinceChange(t){this.cities={},!0!==t&&(this.counties=[],this.form.city="",this.form.county="");const i=d(this.regions[this.form.province]);i&&(this.cities=i),this.form.city&&this.$nextTick(()=>{$(this.$refs.regionCitySelect).val(this.form.city)})},cityChange(t){this.counties=[],!0!==t&&(this.form.county="");const i=this.cities;if(!i)return;const e=d(i[this.form.city]);e&&(this.counties=e),this.form.county&&this.$nextTick(()=>{$(this.$refs.regionCountySelect).val(this.form.county)})},showCustomTagInput(){this.showCustomInput=!0,this.$nextTick(()=>{this.$refs.customTagInput.focus()})},setCustomTag(){this.customTag.trim()&&(this.form.tag=this.customTag.trim()),this.showCustomInput=!1}},s);return y(l,["#"+a,"#"+o]),window.VueShopAddressData=l,l}function v(t){var i=$(t).attr("v-config");i=$.parseJSON(i),$(t).removeAttr("v-config");var e=$.extend(_(),{address_data:null,new_address:{},mounted:function(){var t=this;t.address_data=h(i.config.manual_address),t.address_data.setSelectAddressCallback(function(i){t.new_address=d(i)}),t.address_data.setUpdateAddressesCallback(function(i){if(t.new_address.id){var e=i.find(i=>i.id===t.new_address.id);e&&(t.new_address=e)}else;}),t.address_data.updateAddresses(d(t.address_lists_data))},showAddressModal:function(){var t=this;t.address_data.selectedAddressId=t.new_address.id||0,t.address_data.manageModal(!0)}},i);return y(e,[t])}function f(e,s){if(s)a=s;else{var a=$(e).attr("v-config");a=$.parseJSON(a),$(e).removeAttr("v-config")}a.remark_modal_data={remark:""};var o="remark_modal_data";a.$remark_modal=k.ModalId(o).prefix("remark_modal_data").createRemarkModal(),a.user_required_modal_data=[];var n="user_required_modal_data";a.$user_required_modal=k.ModalId(n).prefix("user_required_modal_data").createUserRequiredModal(),a.payment_data=[],a.order_data=[];var r=$.extend(_(),{address_data:null,mounted:function(){var t=this;t.address_data||(t.address_data=h(a.config.manual_address)),t.address_data.selectAddressCallback=function(i){t.user_data.address_data=i},t.address_data.updateAddressesCallback=function(i){if(t.user_data.address_data.id){var e=i.find(i=>i.id===t.user_data.address_data.id);t.user_data.address_data=e||t.address_data.getDefaultAddress()}else t.user_data.address_data=t.address_data.getDefaultAddress()},t.address_data.updateAddresses(d(this.user_data.address_lists_data))},showRemarkModal:function(t){this.remark_modal_data.remark=t.remark||"",this.remark_modal_data.opt_data=t,this.$remark_modal.modal("show")},showUserRequiredModal:function(t){this.user_required_modal_data.user_required=d(t.user_required),this.user_required_modal_data.opt_data=t,this.$user_required_modal.modal("show")},userRequiredValue:function(t,i){return!!i.user_required.length&&(i.user_required.find(i=>i.name===t).value||"")},userRequiredModalSubmit:function(){var t=this.user_required_modal_data.user_required,e=[];
1if($.each(t,function(t,s){s.value=$("<div>"+s.value+"</div>").text(),s.value?s.error=null:(s.error=i("shop_enter_field",s.name),e.push(s.name))}),e.length>0)return notyf(i("shop_enter_field",e.join(",")),"warning");this.$user_required_modal.modal("hide"),this.user_required_modal_data.opt_data.user_required=t,setTimeout(()=>{this.user_required_modal_data.user_required=null,this.user_required_modal_data.opt_data=null},300)},remarkModalSubmit:function(){var t=$("<div>"+this.remark_modal_data.remark+"</div>").text();this.remark_modal_data.opt_data.remark=t,this.remark_modal_data.remark="",this.remark_modal_data.opt_data=null,this.$remark_modal.modal("hide")},showAddressModal:function(){var t=this;t.user_data.address_data.id&&(t.address_data.selectedAddressId=t.user_data.address_data.id),this.address_data.manageModal(!0)},submitOrInitiatePay:function(t){this.payment_data&&this.payment_data.order_num?this.initiatePay(t):this.submitOrder(t)},showDiscountHitModal(){var t=[];return this.optsEach(function(i,e,s){t.push(s)}),this.discountHitModal(t,this.discount_data,this.product_data)},showGiftModal:function(t){return this.giftModal(t.gift_data)},submitOrder:function(e){var s=this;if(s.shipping_has_auto&&!s.user_data.email&&"required"===s.email_fill)return notyf(t("shop_enter_email"),"warning");if(s.shipping_has_express&&(!s.user_data.address_data.name||!s.user_data.address_data.phone||!s.user_data.address_data.address))return notyf(t("shop_select_address"),"warning");var a={},o=[];if(this.optsEach(function(t,i,e,s){if(e.user_required.length&&$.each(e.user_required,function(t,i){i.value||o.push(i.name)}),o.length>0)return!1;a[e.product_id]||(a[e.product_id]={}),a[e.product_id][s]={count:e.count,remark:e.remark,user_required:e.user_required}}),o.length>0)return notyf(i("shop_fill_fields",o.join(",")),"warning");var n={products:a,pay_method:s.pay_data.pay_methods_active,pay_modo:s.total_data.pay_modo,price:s.total_data.pay_price,points:s.total_data.pay_points,address_data:s.user_data.address_data,user_email:s.user_data.email,payment_method:s.pay_data.pay_methods_active,action:"shop_submit_order"};this.config.is_cart&&(n.is_cart=1),$(e.target).zib_ajax(n,function(t){t.payment_data&&(s.order_data=t.order_data,s.payment_data=t.payment_data,s.initiatePay())},"stop")},initiatePay:function(){this.$nextTick(()=>{var t=$(this.$refs.zibpay_form);t.find(".initiate-pay").on("zib_ajax.success",function(t,i){i.error}).click()})},showAddAddressModal:function(){this.address_data.addModal(!0)},paymentMethodChange(t){this.pay_data.pay_methods_active=t},optsEach:function(t){var i=this;$.each(i.item_data,function(i,e){$.each(e,function(e,s){$.each(s,function(s,a){t(i,e,a,s)})})})}},a);return window.VueShopConfirmData=PetiteVue.reactive(r),y(window.VueShopConfirmData,[e,"#"+o,"#"+n])}function g(e){var a=$(e).attr("v-config");a=$.parseJSON(a),$(e).removeAttr("v-config"),a.$cart_modal=k.prefix("cart_modal_data").createCartModal(),a.product_checked=[];var o=$.extend(_(),{mounted:function(){var t=this;t.syncTotal=debounce(t._syncTotal,50),t.syncPrice=debounce(t._syncPrice,50),t.ajaxUpdataCart=debounce(t._ajaxUpdataCart,300),t.syncCartOptions(!0),t.syncPrice(),t.syncStock(),$(window).on("resize",debounce(function(){t.is_mobile=c()},200))},showItemDiscountHitModal(t){return this.discountHitModal([t],null,this.product_data)},showDiscountHitModal(){var t=this,i=[];return t.CartOptsEach(function(t,e,s,a){s.checked&&i.push(s)}),this.discountHitModal(i,null,this.product_data)},listCountChange:function(t){this.countChange(t),t.checked||this.checkItem(t)},modalCountChange:function(){this.countChange(this.cart_modal_data,!0),this.modalSyncItemPrice()},modalOptChange:function(t,i){this.cart_modal_data.options_active[t]=i,this.syncItemStock(this.cart_modal_data,this.product_data[this.cart_modal_data.product_id]),this.modalSyncItemPrice();var e=this.product_data[this.cart_modal_data.product_id].product_options[t].opts[i].image;e&&(this.cart_modal_data.main_image_url=e)},modalSyncItemPrice:function(){this.syncItemPrice(this.cart_modal_data),this.syncCartItemDiscountPrice(this.cart_modal_data)},syncCartItemDiscountPrice:function(t){this.syncItemDiscountPrice(t,this.discountDataDependency(t),this.product_data[t.product_id])},discountDataDependency:function(t){var i={user_data:this.user_data,product_data:{price:0,count:0},author_data:{price:0,count:0},total_data:{price:0,count:0}};if(!t||!t.prices)return i;var e={},s={};return t.checked?(this.CartOptsEach(function(t,a,o,n){o.checked&&(e[a]||(e[a]={price:0,count:0}),s[t]||(s[t]={price:0,count:0}),e[a].price+=o.prices.total_price,e[a].count+=o.selected_count,s[t].price+=o.prices.total_price,s[t].count+=o.selected_count,i.total_data.price+=o.prices.total_price,i.total_data.count+=o.selected_count)}),i.product_data=e[t.product_id],i.author_data=s[t.author_id]):(i.product_data.price=t.prices.total_price,i.product_data.count=t.selected_count,i.author_data.price=t.prices.total_price,i.author_data.count=t.selected_count,i.total_data.price=t.prices.total_price,i.total_data.count=t.selected_count),i},cartModalSubmit:function(){var t=this.cart_modal_data,e=t.author_id,s=t.product_id,a=t.options_active_str;t.product_options.length>0&&t.options_active.length!==t.product_options.length?t.product_options.forEach(function(e,s){if(!t.options_active[s])return notyf(i("shop_select_field",e.name),"warning"),!1}):(this.cart_data[e][s][a].options_active_error=!1,this.cart_data[e][s][a].options_active=d(t.options_active),this.cart_data[e][s][a].checked=!0,this.cart_data[e][s][a].selected_count=t.selected_count,this.cart_data[e][s][a].stock_all=t.stock_all,this.cart_data[e][s][a].main_image_url=t.main_image_url,console.log(t),this.syncCartOptions(),this.syncPrice(),this.syncTotal(),this.ajaxUpdataCart(),this.$cart_modal.modal("hide"))},cartModal:function(t){var i=d(t);i.title=this.product_data[t.product_id].title,this.cart_modal_data=i,this.$cart_modal.modal("show")},syncCartOptions:function(i){var e=this,s=" · ";e.CartOptsEach(function(a,o,d,r){var c=e.product_data[o].product_options;if(i&&(d.cart_submit_btn_text=e.config.cart_submit_btn_text,d.product_id=o,d.author_id=a,d.product_title=e.product_data[o].product_title,d.pay_modo=e.product_data[o].pay_modo,d.show_mark=e.product_data[o].show_mark,d.product_options=c,d.limit_buy=e.product_data[o].limit_buy,d.thumbnail=e.product_data[o].thumbnail,d.url=e.product_data[o].url,d.discount=e.product_data[o].discount),d.options_active_str="",d.options_active_name="",d.selected_count=~~(d.selected_count||0),c.length>0&&("object"==typeof d.options_active&&d.options_active.length>0&&(d.options_active_str=n(d.options_active),e.isOptError(o,d)||$.each(d.options_active,function(t,i){c[t]&&c[t].opts&&c[t].opts[i]&&(d.options_active_name+=c[t].opts[i].name+s,!d.main_image_url&&c[t].opts[i].image&&(d.main_image_url=c[t].opts[i].image))})),""===d.options_active_name?d.options_active_name=t("shop_select_option"):d.options_active_name=d.options_active_name.slice(0,-s.length)),d.main_image_url||(d.main_image_url=e.product_data[o].main_image_url),""===d.options_active_str&&(d.options_active_str="0"),d.options_active_str!=r){$new_product_id_data={},e.cart_data[a][o][d.options_active_str]&&(d.selected_count+=~~e.cart_data[a][o][d.options_active_str].selected_count,delete e.cart_data[a][o][d.options_active_str]);for(let t in e.cart_data[a][o])t===r?$new_product_id_data[d.options_active_str]=d:$new_product_id_data[t]=e.cart_data[a][o][t];e.cart_data[a][o]=$new_product_id_data}})},getHttpData:function(){var t=this,i={};return t.CartOptsEach(function(t,e,s){i[e]||(i[e]={});var a=s.options_active_str;i[e][a]=s.selected_count}),i},_ajaxUpdataCart:function(){var i=this.getHttpData();$.ajax({type:"POST",url:_win.ajax_url,data:{action:"update_cart",cart_data:i},dataType:"json",error:function(i){console.error(t("shop_update_cart_failed"),i)},success:function(i){i.error&&console.error(i.msg||t("shop_update_cart_failed"),i),i.count>0&&u(i.count)}})},removeChecked:function(){if(this.total_data.checked_data.length&&confirm(t("shop_remove_selected"))){var i=this;$.each(i.total_data.checked_data,function(t,e){i.removeItem(e.author_id,e.product_id,e.opt_key)})}}
1,removeItem:function(i,e,s,a){var o=this;if(!a||confirm(t("shop_remove_item"))){
2var n=$('.v-cart [data-author-id="'+i+'"] [data-product-id="'+e+'"] [data-optkey="'+s+'"]');n.css({background:"rgba(255,46,46,0.05)"}).slideUp(200,function(){delete o.cart_data[i][e][s],$.isEmptyObject(o.cart_data[i][e])&&delete o.cart_data[i][e],$.isEmptyObject(o.cart_data[i])&&delete o.cart_data[i],o.syncPrice(),o.syncTotal(),o.ajaxUpdataCart()})}},checkAuthor:function(t){var i=this;$.each(i.cart_data[t],function(e,s){$.each(s,function(e,s){i.author_data[t].checked_status?s.checked=!1:s.selected_count>0&&0!=s.stock_all&&!i.isOptError(s.product_id,s)?s.checked=!0:s.checked=!1})}),this.syncTotal()},checkAll:function(){var t=this;t.CartOptsEach(function(i,e,s){t.total_data.checked_status?s.checked=!1:s.selected_count>0&&0!=s.stock_all&&!t.isOptError(s.product_id,s)?s.checked=!0:s.checked=!1}),this.syncTotal()},checkItem:function(i){if(0==i.stock_all)return i.checked=!1,notyf(t("shop_stock_insufficient"),"warning");if(0==i.selected_count)return i.checked=!1,notyf(t("shop_select_quantity"),"warning");if(i.checked)i.checked=!1;else{if(this.isOptError(i.product_id,i))return i.checked=!1,notyf(t("shop_select_option"),"warning");i.checked=!0}this.syncTotal()},goConfirm:function(){var t=this,i={};if(t.total_data.is_can_pay){t.CartOptsEach(function(t,e,s){if(s.checked){i[e]||(i[e]={});var a=s.options_active_str;i[e][a]=s.selected_count}});var e={products:i,is_cart:!0};m(e)}},_syncTotal:function(){var e=this,a=[],o=0,n=0,d=0,r=0,c=0,l=0,u=0,_="",m="",p=0,h={},v={},f={yes:0,no:0},g=e.config.is_edit,b={};e.discountDataDependency();
2e.CartOptsEach(function(t,s,y){if(v[t]||(v[t]={yes:0,no:0}),y.checked){e.isOptError(s,y)?(y.checked=!1,v[t].no++,f.no++,g||debounce_notyf(i("shop_select_product_option",e.product_data[s].product_title),"warning")):(v[t].yes++,f.yes++),p++,o+=~~y.selected_count,h[s]||(h[s]=0),h[s]+=~~y.selected_count,a.push({author_id:t,product_id:s,opt_key:y.options_active_str}),1===p&&(_=e.product_data[s].pay_modo,m=e.product_data[s].show_mark),b[s]||(b[s]=0);var x=Number(y.prices.total_price);b[s]+=x,"points"===e.product_data[s].pay_modo?(d+=x,r+=x,u++):(n+=x,c+=x,l++)}else v[t].no++,f.no++}),$.each(b,function(t,i){e.product_data[t].prices.total_price=i}),$.each(v,function(t,i){e.author_data[t].checked_status="",i.yes>0&&(e.author_data[t].checked_status="checked",i.no>0&&(e.author_data[t].checked_status="portion"))});var y=e.total_data;y.checked_status="",f.yes>0&&(y.checked_status="checked",f.no>0&&(y.checked_status="portion")),y.pay_modo=_,y.show_mark=m,y.checked_data=a,y.count=o,y.price_count=l,y.points_count=u,y.price=s(n),y.discount_price=s(c),y.points=~~d,y.discount_points=~~r;var x=o>0;$.each(h,function(t,s){if(e.isStockLow(t,s)&&(x=!1,g||debounce_notyf(i("shop_product_stock_low",e.product_data[t].title),"warning")),e.isLimitBuy(t,s)){x=!1;var a=i("shop_product_limit_pieces",e.product_data[t].title,e.product_data[t].limit_buy.limit);0==e.product_data[t].limit_buy.limit&&(a=i("shop_product_limit_none",e.product_data[t].title)),g||debounce_notyf(a,"warning")}}),y.is_mix=!1,l>0&&u>0&&(x=!1,y.is_mix=!0,g||debounce_notyf(t("shop_mixed_pay_mode"),"error")),x&&(y.discount_points=0,y.discount_price=0,e.CartOptsEach(function(t,i,a){if(e.syncCartItemDiscountPrice(a),a.checked){var o=Number(a.prices.total_discount_price);"points"===y.pay_modo?y.discount_points+=~~o:y.discount_price+=s(o)}})),y.is_can_pay=x},isOptError:function(t,i){return i.options_active_error=!1,!!this.product_data[t].product_options.length&&(this.product_data[t].product_options.length>0&&this.product_data[t].product_options.length!==i.options_active.length&&(i.options_active_error=!0,!0))},isLimitBuy:function(t,i){return!!(this.product_data[t].limit_buy.is_limit&&i>this.product_data[t].limit_buy.limit)},isStockLow:function(t,i){return this.product_data[t].stock_all>=0&&"opts"!==this.product_data[t].stock_type&&i>this.product_data[t].stock_all},syncStock:function(){var t=this;t.CartOptsEach(function(i,e,s){t.syncItemStock(s,t.product_data[e])})},countChange:function(e,s){if(e.stock_all>=0&&e.selected_count>e.stock_all)return e.selected_count=Math.max(e.stock_all,1),notyf(t("shop_stock_low"),"warning");if(this.isLimitBuy(e.product_id,e.selected_count)){e.selected_count=Math.max(e.selected_count-1,1);var a=i("shop_limit_buy",this.product_data[e.product_id].limit_buy.limit);return 0==this.product_data[e.product_id].limit_buy.limit&&(a=t("shop_limit_cannot_buy")),notyf(a,"warning")}s||(this.syncPrice(),e.checked&&this.syncTotal(),this.ajaxUpdataCart())},_syncPrice:function(){var t=this;t.CartOptsEach(function(i,e,s){t.syncItemPrice(s,t.product_data[e]),t.syncCartItemDiscountPrice(s)})},CartOptsEach:function(t){var i=this;$.each(i.cart_data,function(i,e){$.each(e,function(e,s){$.each(s,function(s,a){t(i,e,a,s)})})})}},a);window.vue_cart_data=PetiteVue.reactive(o),y(window.vue_cart_data)}function b(s){var a=$(s).attr("v-config");a=$.parseJSON(a),$(s).removeAttr("v-config"),a.stock_all=~~a.stock_all,a.options_active_str="",a.options_active=[],a.selected_count=1,a.discount_hit=[],a.important_discount=[],a.$cart_modal=k.createProductModal();var d=$.extend(_(),{getOptionsActiveName(t){if(0===t.length)return"";var i=" · ",e=this,s="";return t.forEach(function(t,a){s+=e.product_options[a].opts[t].name+i}),s.slice(0,-i.length)},mounted:function(){var t=this;t.product_options.forEach(function(i,e){t.options_active[e]=0,t.options_active_str+=o(e,"0")}),t.syncPrice=debounce(this._syncPrice,100),t.cartModalSubmit=debounce(this._cartModalSubmit,200),t.orderModalSubmit=debounce(this._orderModalSubmit,200),t.syncStock(),t.syncPrice();for(var i=0;i<t.discount.length;i++)if(t.discount[i].is_important&&t.discount[i].is_valid){t.important_discount=t.discount[i];break}$(window).on("resize",debounce(function(){t.is_mobile=c()},200))},cartBtnClick:function(t){this.is_mobile?this.cartModalShow():this.addCart(t)},orderBtnClick:function(t){this.is_mobile?this.cartModalShow():this.orderSubmit(t)},cartModalShow:function(){this.$cart_modal.modal("show")},cartModalHide:function(){this.is_mobile&&this.$cart_modal.modal("hide")},modalOptChange:function(t,i){this.optChange(t,i)},modalCountChange:function(t){this.countChange(t)}
2,_cartModalSubmit:function(t){this.addCart(t)},_orderModalSubmit:function(t){this.orderSubmit(t),this.cartModalHide()},orderSubmit:function(t){if(this.user_data.user_id||this.guest_buy){var i={products:{}};i.products[this.product_id]={},i.products[this.product_id][this.options_active_str]=this.selected_count,m(i)}else l()},addCart:function(t){if(this.user_data.user_id){var i=$(t.target),e=this;zib_ajax(i,{action:"cart_add",product_id:this.product_id,options_active:this.options_active_str,count:this.selected_count},function(t){e.cartModalHide(),e.cartAddAnimate(t.count)},"stop")}else l()},cartAddAnimate:function(t){var i=this.main_image_url||this.thumbnail_url,s='<img class="fit-cover" src="'+i+'">',a=$('<div class="cart-add-animate flex jc fixed"><div class="animate-img"><div class="img-box">'+s+"</div></div></div>");a.appendTo("body");var o,n="cubic-bezier(0.6, -0.57, 1, 1)";if(this.is_mobile?o=$(".tabbar-cart"):(n="linear",o=$(".nav-cart")),!o.length)return a.remove();var d=e(a,o);setTimeout(function(){var i=.4;a.css({transform:"translate3d(0, "+d.y+"px, 0)",transition:"transform "+i+"s "+n}).find(".animate-img").css({transform:"translate3d("+d.x+"px, 0, 0)",transition:"transform "+i+"s linear"}),setTimeout(function(){t>0&&u(t),o.addClass("add-animate"),setTimeout(function(){o.removeClass("add-animate"),t>0&&u(t)},300),a.remove()},1e3*i)},200)},optChange:function(t,i){if(this.options_active[t]=i,this.options_active_str=n(this.options_active),this.syncStock(),this.syncPrice(),$('.swiper-slide[product-opt-index="'+t+"_"+i+'"]').length>0){var e=$(".product-cover-slider")[0].swiper,s=$('.swiper-slide[product-opt-index="'+t+"_"+i+'"]').index();e.slideTo(s)}var a=this.product_options[t].opts[i].image;a&&(this.main_image_url=a)},countChange:function(){this.syncPrice()},countMaxChange:function(){var e=this.selected_count+1;if(this.stock_all>=0&&e>this.stock_all)return notyf(t("shop_stock_low"),"warning");if(this.limit_buy.is_limit&&e>this.limit_buy.limit){var s=i("shop_limit_buy",this.limit_buy.limit);return 0==this.limit_buy.limit&&(s=t("shop_limit_cannot_buy")),notyf(s,"warning")}},_syncPrice:function(){this.syncItemPrice(this);var t={user_data:this.user_data,product_data:{price:this.prices.total_price,count:this.selected_count},author_data:{price:this.prices.total_price,count:this.selected_count},total_data:{price:this.prices.total_price,count:this.selected_count}};this.syncItemDiscountPrice(this,t)},syncStock:function(){this.syncItemStock(this)},getOptStock:function(){}},a);y(d)}function y(e,a){var o={"transition-group":function(t){function i(){d.observe(e,{childList:!0,attributes:!0,subtree:!1})}const e=t.el,s=function(t){return t.getAttribute("transition-key")},a=function(t){return{left:t.offsetLeft,top:t.offsetTop}};let o=new Map;const n=()=>{const t=Array.from(e.children);o.clear(),t.forEach(t=>{const i=s(t);null!==t.offsetParent&&i&&o.set(i,{dom:t,position:a(t)})})},d=new MutationObserver(t=>{const i=new Map(o);n();const e=[],a=[];o.forEach((t,s)=>{i.has(s)||e.push(o.get(s))}
2),i.forEach((t,e)=>{o.has(e)||a.push(i.get(e))}),e.forEach(t=>{var i=t.dom;i.style.opacity="0",i.style.transform="translate3d(20px, 0, 0)"}),o.forEach(t=>{var e=t.dom;const a=i.get(s(e)),n=o.get(s(e));if(a&&n){var d=a.position.left-n.position.left,r=a.position.top-n.position.top;e.style.transform=`translate3d(${d}px, ${r}px, 0)`}}),setTimeout(()=>{o.forEach(t=>{var i=t.dom;i.style.transition="all 0.3s ease",i.style.opacity=1,i.style.transform="translate3d(0, 0, 0)",setTimeout(()=>{i.style.transform="",i.style.transition="",i.style.opacity=""},300)})},20)});return setTimeout(()=>{n(),i()},16),()=>{d.disconnect()}},transition:function(t){const i=t.el,e=t.get();let s="none"!==i.style.display;i.style.transition="opacity 0.3s ease, transform 0.3s ease",t.effect(()=>{const e=t.get();e&&s||!e&&!s||(e?(i.style.opacity="0",i.style.transform="translateY(-10px)",i.style.display="",i.offsetHeight,i.style.opacity="1",i.style.transform="translateY(0)",s=!0):(i.style.opacity="0",i.style.transform="translateY(-10px)",setTimeout(()=>{t.get()||(i.style.display="none",s=!1)},300)))}),!e&&s?(i.style.display="none",s=!1):e&&!s&&(i.style.display="",s=!0)},"discount-badge":function(t){function i(i){var e=t.el.getAttribute("data-hit-discount");if(!e)return!0;var s=t.get(e);return!(!s||0===s.length)&&s.some(function(t){return t.id===i.id})}var e=function(e,s){if(!s||0===s.length)return e.innerHTML="",void e.classList.add("hide");e.classList.remove("hide");var a="",o=t.modifiers&&t.modifiers.hit;
2s.forEach(function(t){(t.is_valid||o)&&(a+='<span class="badge badge-discount'+(i(t)?"":" no-hit")+'">'+(t.small_badge||t.name)+"</span>")}),e.innerHTML=a};e(t.el,t.value),t.effect(()=>{e(t.el,t.get())})},"limit-buy":function(e){var s=function(e,s){if(!s||!s.is_limit)return e.innerHTML="",void e.classList.add("hide");e.classList.remove("hide");var a=i("shop_limit_label",s.limit);0==s.limit&&(a=t("shop_limit_purchased")),e.innerHTML=a,$(e).data("limitBuy",d(s))};$(e.el).on("click",function(){function e(e,s){e=Number(e);var a=i("shop_limit_pieces",e);return-1===e&&(a=t("shop_limit_no_limit")),0==e&&(a=t("shop_limit_unavailable")),'<div class="flex ac jsb list-mt20"><div class="muted-2-color">'+s+'</div><div class="">'+a+"</div></div>"}var s=$(this).data("limitBuy");if(s&&s.is_limit){var a="",o="",n='<div class="border-title touch"><div class="flex jc"><b>'+t("shop_limit_rules_title")+"</b></div></div>";return $.each(s.key_names,function(t,i){a+=e(s[t],i)}),a=(s.desc?'<div class="muted-color mb10">'+s.desc+"</div>":"")+'<div class="muted-box">'+a+"</div>",s.limit_all||s.bought_count?a+='<div class="muted-box mt10 c-yellow text-center">'+i("shop_limit_bought",s.bought_count,s.limit?i("shop_limit_can_buy_more",s.limit):t("shop_limit_cannot_buy_more"))+"</div>":a+='<div class="muted-box mt10 c-yellow text-center">'+i("shop_limit_can_buy",s.limit)+"</div>",o='<div class="">'+a+"</div>",refresh_modal({class:"shop-modal modal-mini full-sm",mobile_from_bottom:!0,content:'<button class="close abs-close" data-dismiss="modal"><svg class="ic-close" aria-hidden="true"><use xlink:href="#icon-close"></use></svg></button><div class="">'+n+o+"</div>"})}}),$(e.el).css("cursor","help").attr("title",t("shop_limit_rules_hint")),s(e.el,e.value),e.effect(()=>{s(e.el,e.get())})},price:function(t){var i=function(t,i){function e(t){var i=s(t).toString(),e=i.split("."),a=e[0];if(e[1]&&n.includes(".")){var o=n.split("."),d=o[1]?o[1].length:0,r=e[1]?e[1].substring(0,d):"";r.length<d&&(r=r.padEnd(d,"0")),a+='<span class="decimal-part">.'+r+"</span>"}return a}function a(t,i,s,a){let n=null;const d=o=>{n||(n=o);const r=Math.min((o-n)/a,1),c=i+(s-i)*r;t.innerHTML=e(c),r<1&&window.requestAnimationFrame(d)};window.requestAnimationFrame?window.requestAnimationFrame(d):t.innerHTML=e(o)}if(null==i)return void(t.innerHTML="0");const o=i,n=s(o).toString();let d=0;if(t.textContent){const i=t.textContent.replace(/[^\d.-]/g,"");
2d=parseFloat(i)||0}d!==o&&a(t,d,o,200)};i(t.el,t.value),t.effect(()=>{i(t.el,t.get())})},spinner:function(e){const s=e.get(`(val) => { ${e.exp} = val }`),a=(t,i)=>{const e=document.createEvent("HTMLEvents");e.initEvent(i,!0,!0),t.dispatchEvent(e)};var o=function(){var t=e.el.getAttribute("max");return $.isNumeric(t)?(t=~~t,t>=-1?t:-1):-1},n=function(){var t=e.el.getAttribute("min");return $.isNumeric(t)?(t=~~t,t>=1?t:1):1},d=function(t,i){i=Number(i);var d=o(),l=n(),u='<div class="inline-flex number-spinner">';u+='<span class="minus-btn'+(-1!==l&&i<=l?" is-disabled":"")+'" data-action="minus">',u+='<svg class="icon" aria-hidden="true"><use xlink:href="#icon-minus"></use></svg>',u+="</span>",u+='<span class="number-input">'+i+"</span>",u+='<span class="plus-btn'+(-1!==d&&i>=d?" is-disabled":"")+'" data-action="plus">',u+='<svg class="icon" aria-hidden="true"><use xlink:href="#icon-add"></use></svg>',u+="</span>",u+="</div>",t.innerHTML=u;var _=$(t);_.on("click",".plus-btn",function(){var i=o();return-1!==i&&e.get()>=i?(a(t,"max-change"),!1):(s(e.get()+1),a(t,"change"),!1)}),_.on("click",".minus-btn",function(){var i=n();return-1!==i&&e.get()<=i?(a(t,"min-change"),!1):(s(e.get()-1),a(t,"change"),!1)}),_.on("click",".number-input",function(){r({min:n(),max:o()},function(i){s(i),a(t,"change")})});var m=new MutationObserver(function(t){t.forEach(function(t){"attributes"===t.type&&("max"!==t.attributeName&&"min"!==t.attributeName||c(e.el,e.get()))})});m.observe(e.el,{attributes:!0})},r=function(e,s){var a="",o="",n="";if(-1!==e.min&&(o=' limit-min="'+e.min+'" warning-min="'+t("shop_qty_min_warning")+'"'),-1!==e.max){if(e.max<=3)return;a=i("shop_max_purchase",e.max),n=' limit-max="'+e.max+'" warning-max="'+t("shop_qty_max_warning")+'"'}a=a?'<div class="muted-2-color mt6">'+a+"</div>":"";var d='<div class="flex jc"><b>'+t("shop_input_quantity")+"</b></div>",r='<form><div style="mb20"><div class="mt20 relative"><input type="number" class="form-control" name="val"'+o+n+"></div>"+a+' </div><botton type="submit" class="mt20 but jb-blue padding-lg btn-block">'+t("shop_confirm")+"</botton></form>",c=refresh_modal({class:"shop-modal modal-mini full-sm",mobile_from_bottom:!0,new:!0,content:'<button class="close abs-close" data-dismiss="modal"><svg class="ic-close" aria-hidden="true"><use xlink:href="#icon-close"></use></svg></button><div class="">'+d+r+"</div>"});c.on("shown.bs.modal",function(){c.find('input[name="val"]').focus()}),c.find('[type="submit"]').on("click",function(){return c.find("form").submit(),!1}),c.find("form").on("submit",function(t){t.preventDefault();var a=~~c.find('input[name="val"]').val();return-1!==e.max&&a>e.max?(notyf(i("shop_max_qty_exceed",e.max),"warning"),!1):-1!==e.min&&a<e.min?(notyf(i("shop_min_qty_below",e.min),"warning"),!1):(s(a),c.modal("hide"),!1)})},c=function(t,i){i=Number(i);var e=o(),s=n();t.querySelector(".number-input").textContent=i,t.querySelector(".minus-btn").classList.toggle("is-disabled",-1!==s&&i<=s),t.querySelector(".plus-btn").classList.toggle("is-disabled",-1!==e&&i>=e)};d(e.el,e.get()),e.effect(()=>{c(e.el,e.get())})}},n=PetiteVue.createApp(e);return $.each(o,function(t,i){n.directive(t,i)}),"object"==typeof a?$.each(a,function(t,i){n.mount(i)}):n.mount(a),n}$.fn.shopScore=function(){return this.each(function(){function i(i){var s="";s=t(i<=1?"shop_rating_very_bad":i<=2?"shop_rating_bad":i<=3?"shop_rating_normal":i<=4?"shop_rating_good":"shop_rating_very_good"),o.text(s).attr("data-score",i),e.attr("score-value",i),e.find(".score-input").val(i)}var e=$(this);if(!e.attr("is-on")){for(var s=e.attr("score-value")||0,a=e.find(".score-icon"),o=e.find(".score-text"),n=5,d="",r='<svg class="icon" aria-hidden="true"><use xlink:href="#icon-stars"></use></svg>',c=1;c<=n;c++){var l=c<=s?"active":"";d+='<i class="icon-star '+l+'" data-score="'+c+'">'+r+"</i>"}a.html(d),s>0&&i(s),e.attr("is-on",!0),e.on("click",".icon-star",function(){var t=$(this).data("score");a.find(".icon-star").each(function(){var i=$(this).data("score");i<=t?$(this).addClass("active"):$(this).removeClass("active")}),i(t)}),e.on("mouseenter",".icon-star",function(){var t=$(this).data("score");a.find(".icon-star").each(function(){var i=$(this).data("score");i<=t?$(this).addClass("hover"):$(this).removeClass("hover")})}).on("mouseleave",function(){a.find(".icon-star").removeClass("hover")})}})},$(document).on("auto_fun",function(){$(".shop-score-box").shopScore()}),c()&&$(".product-cover-slider img").each(function(){var t=$(this),i=t.clone().addClass("no-imgbox").css("transform","scaleY(-1) translateY(calc(-100% + 33px))");t.before(i)});var x=$("body");$.fn.createModal=function(t){t=t||{};var i=t.id||"",e=t.content||"",s=t.title||"",a=t.modal_class?" "+t.modal_class:"",o=t.dialog_class?" "+t.dialog_class:"",n=t.title_class?" "+t.title_class:"",d=$(window).width();s=s?'<div class="touch '+n+'">'+s+"</div>":"";var r='<div class="modal flex jc fade'+(d<769?" bottom":"")+a+'" id="'+i+'"><div class="modal-dialog'+o+'" role="document"><div class="modal-content"><button class="close abs-close" data-dismiss="modal"><svg class="ic-close" aria-hidden="true"><use xlink:href="#icon-close"></use></svg></button><div class="modal-body">'+s+e+'</div></div><div class="touch-close show-sm"></div></div></div>',c=$(r);return c.appendTo($(this)),d<769&&c.minitouch({direction:"bottom",selector:".modal-dialog",start_selector:".modal-colorful-header,.touch-close,.touch",onEnd:function(){c.modal("hide")},stop:function(){return!c.hasClass("bottom")}}),c};var k={this_str:"",data_prefix:"",modal_id:"",cart_modal_id:"shop-product-cart-modal",remark_modal_id:"shop-product-remark-modal",address_modal_id:"shop-product-address-modal",mounted_attr:"",mounted:function(t){return this.mounted_attr=t?' @vue:mounted="'+t+'"':"",this},prefix:function(t){return this.this_str=t,this.data_prefix=t?t+".":"",this},ModalId:function(t){return this.modal_id=t,this},productInfoBox:function(){return`\n                <div class="touch product-info-box flex jsb p-d-mb" ${this.mounted_attr}>\n                    <div class="item-thumbnail product-graphic mr10 flex jc gradient-bg nowave" data-opacity="0.1"><img class="alone-imgbox-img" imgbox-no-cache="true" :src="${this.data_prefix}main_image_url" :alt="${this.data_prefix}title"></div>\n                    <div class="product-info flex jsb xx flex1">\n                        <div class="product-title text-ellipsis font-bold mr20">{{ ${this.data_prefix}title }}</div>\n                        <div class="cart-col-price product-price-box flex jsb ac">\n                            <div class="price-box" :class="${this.data_prefix}pay_modo == 'points' ? 'c-yellow' : 'c-red'">\n                                <div class="mr6">
2\n                                    <span class="pay-mark" v-html="${this.data_prefix}show_mark"></span>\n                                    <b class="price-str" v-price="${this.data_prefix}prices.total_discount_price"></b>\n                                </div>\n                                <div class="badg badg-sm c-yellow" v-if="${this.data_prefix}prices.total_discount">${t("shop_save_prefix")} {{ ${this.data_prefix}prices.total_discount }}</div>\n                            </div>\n                        </div>\n                        <div v-discount-badge="${this.data_prefix}discount" data-hit-discount="${this.data_prefix}discount_hit" class="product-discount-box scroll-x mini-scrollbar" @click="discountModal(${this.data_prefix}discount)"></div>\n                    </div>\n                </div>\n                `},productOptsBox:function(){return`\n                <div class="product-opts-box mini-scrollbar scroll-y max-vh5 mb10">\n                    <div v-if="${this.data_prefix}product_options.length > 0">\n                        <div class="p-d-mb" v-for="(opt,opt_index) in ${this.data_prefix}product_options" :key="'opt-' + opt_index">\n                            <div class="product-opt-title-box flex ac jsb">\n                                <div class="product-opt-title">{{ opt.name }}</div>\n                            <div class="pointer muted-2-color ml10 em09" @click="switchOptView(opt)" v-if="optHasImg(opt)"><svg class="icon mr3" aria-hidden="true"><use xlink:href="#icon-img-lists"></use></svg>{{ opt.view_mode === 'img' ? '${t("shop_view_list")}' :  '${t("shop_view_image")}'  }}</div>\n                            </div>\n                            <div class="product-opt-content" :class="(opt.view_mode === 'img' ? 'mode-img' : '' ) + ' count-' + opt.opts.length">\n                                <div v-for="(item,item_index) in opt.opts" class="opt-item badg hollow" :class="item_index == ${this.data_prefix}options_active[opt_index] ? 'active' : ''" @click="modalOptChange(opt_index,item_index)" :key="'opt-' + opt_index + '-' + item_index">\n                                    <span class="opt-item-image" v-if="item.image">\n                                        <img :src="item.image" alt="">\n                                        <div class="abs-center right-top pointer alone-imgbox-img flex jc" :data-src="item.image"><i class="fa fa-expand" aria-hidden="true"></i></div>\n                                    </span>\n                                    <span class="opt-item-name">{{ item.name }}</span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <div class="padding-h10 flex ac jsb border-top mt10">\n                        <div class="product-opt-title">${t("shop_quantity")}</div>\n                        <div class="product-buy-num-box flex ac em09 mb6">\n                            <div class="ml10 flex mr10">\n                                <div class="stock-desc muted-color" v-effect="$el.innerHTML = stockAllText(${this.data_prefix}stock_all)"></div>\n                                <div class="limit-buy-desc  c-yellow ml6" v-limit-buy="${this.data_prefix}limit_buy"></div>\n                            </div>\n                            <div v-spinner="${this.data_prefix}selected_count" @change="modalCountChange" min="1" :max="spinnerMax(${this.this_str})"></div>\n                        </div>\n                    </div>\n                </div>\n                `},createModal:function(t){var i=`\n                <div class="modal flex jc fade" :class="is_mobile ? 'bottom' : ''" id="${this.modal_id}" style="display: none" key="${this.modal_id}" ${this.mounted_attr}>\n                    <div class="shop-modal modal-mini full-sm modal-dialog" role="document">\n                        <div class="modal-content">\n                            <button class="close abs-close" data-dismiss="modal">\n                                <svg class="ic-close" aria-hidden="true"><use xlink:href="#icon-close"></use></svg>\n                            </button>\n                            <div class="modal-body">\n                                ${t}\n                            </div>\n                        </div>\n                        <div class="touch-close show-sm"></div>\n                    </div>\n                </div>\n            `;x.append(i);
2var e=$("#"+this.modal_id);return $(window).width()<769&&e.minitouch({direction:"bottom",selector:".modal-dialog",start_selector:".modal-colorful-header,.touch-close,.touch",onEnd:function(){e.modal("hide")},stop:function(){return!e.hasClass("bottom")}}),e},cartModalbtn:function(){return`\n                <botton class="but jb-yellow-2 padding-lg btn-block" @click.prevent="cartModalSubmit">{{${this.data_prefix}cart_submit_btn_text}}</botton>\n            `},orderModalBtn:function(){return`\n                <botton class="but jb-red padding-lg btn-block" @click.prevent="orderModalSubmit">{{${this.data_prefix}order_submit_btn_text}}</botton>\n            `},createCartModal:function(){this.modal_id||this.ModalId(this.cart_modal_id);var t=this.productInfoBox()+this.productOptsBox()+this.cartModalbtn();return this.createModal(t)},createProductModal:function(){this.modal_id||this.ModalId(this.cart_modal_id);var t='<div class="border-title touch flex jc" v-if="service.length > 0">\n            <div class="c-green text-ellipsis em09 mr20 ml20">\n                <span :class="item_index !== 0 ? \'ml10\' : \'\'" class="service-item" v-for="(item,item_index) in service" :key="\'service-\' + item_index"><svg class="mr3 opacity5" aria-hidden="true"><use xlink:href="#icon-check-circle"></use></svg>{{ item.name }}</span>\n            </div>\n        </div>\n        ',i=t+this.productInfoBox()+this.productOptsBox()+'<div class="but-group shop-paybtn-group flex">'+this.cartModalbtn()+this.orderModalBtn()+"</div>";return this.createModal(i)},remarkModalBox:function(){return`\n                <div class="border-title touch"><div class="flex jc"><b>${t("shop_remark")}</b></div></div>\n                <div class="remark-modal-body">\n                    <div class="remark-modal-content mb20" style="min-height: 150px;">\n                        <textarea class="form-control" style="min-height: 120px;" v-model.trim="${this.data_prefix}remark" placeholder="${t("shop_remark_placeholder")}" @keyup.ctrl.enter="remarkModalSubmit"></textarea>\n                    </div>\n                </div>\n                <botton class="but jb-blue padding-lg btn-block" @click.prevent="remarkModalSubmit">${t("shop_confirm")}</botton>\n            `},createRemarkModal:function(){this.modal_id||this.ModalId(this.remark_modal_id);var t=this.remarkModalBox();return this.createModal(t)},createUserRequiredModal:function(){this.modal_id||this.ModalId(this.user_required_modal_id);var i=`\n            <div class="border-title touch"><div class="flex jc"><b>${t("shop_fill_required")}</b></div></div>\n            <div class="user-required-modal-body mini-scrollbar scroll-y max-vh5" style="min-height: 160px;">\n                <div class="mb20 padding-6" v-for="(user_required_item,index) in ${this.data_prefix}user_required" :key="'user_required_item-' + index">\n                    <div class="em09 muted-2-color mb6">{{ user_required_item.name }}</div>\n                    <input type="text" class="form-control" name="title" :tabindex="index + 1" v-model.trim="user_required_item.value">\n                    <div class="px12 muted-3-color mt3" v-if="user_required_item.desc" v-html="user_required_item.desc"></div>\n                    <div class="px12 c-red mt3" v-if="user_required_item.error">{{ user_required_item.error }}</div>\n                </div>\n            </div>\n            <botton class="but jb-blue padding-lg btn-block" @click.prevent="userRequiredModalSubmit">${t("shop_confirm")}</botton>\n            `;return this.createModal(i)},userAddressModalBox:function(){
3return`\n            <div class="border-title touch"><div class="flex jc"><b>{{ is_edit ? '${t("shop_address_edit")}' : '${t("shop_address_add")}' }}</b></div></div>\n                <div class="address-form">\n                    <!-- 收货人姓名 -->\n                    <div class="form-group">\n                        <div class="input-group">\n                            <div class="input-group-addon"><i class="fa fa-user"></i></div>\n                            <input type="text" class="form-control" v-model="form.name" placeholder="${t("shop_address_name_ph")}" maxlength="20" />\n                        </div>\n                        <div class="help-block error-block px12 c-red" v-if="errors.name">{{ errors.name }}</div>\n                    </div>\n\n                    <!-- 手机号码 -->\n                    <div class="form-group">\n                        <div class="input-group">\n                            <div class="input-group-addon"><i class="fa fa-phone"></i></div>\n                            <input type="tel" class="form-control" v-model="form.phone" placeholder="${t("shop_address_phone_ph")}" maxlength="30" />\n                        </div>\n                        <div class="help-block error-block px12 c-red" v-if="errors.phone">{{ errors.phone }}</div>\n                    </div>\n                    \n                    <!-- 地区选择 -->\n                    <div class="form-group">\n                        <div class="region-select flex" v-if="$.isEmptyObject(regions)">\n                            <div class="flex1 mr10">\n                                <input type="text" class="form-control" v-model="form.province" placeholder="${t("shop_address_province_ph")}" />\n                            </div>\n                            <div class="flex1 mr10">\n                                <input type="text" class="form-control" v-model="form.city" placeholder="${t("shop_address_city_ph")}"/>\n                            </div>\n                            <div class="flex1">\n                                <input type="text" class="form-control" v-model="form.county" placeholder="${t("shop_address_county_ph")}"/>\n                            </div>\n                        </div>\n                        <div class="region-select flex" v-else>\n                            <div class="form-select flex1">\n                                <select class="form-control" v-model="form.province" @change="provinceChange">\n                                    <option value="">${t("shop_select_province")}</option>
3\n                                    <option v-for="(province, index) in regions" :key="'province-' + index" :value="index">{{ index }}</option>\n                                </select>\n                            </div>\n                            <div class="form-select flex1 ml10">\n                                <select class="form-control" v-model="form.city" @change="cityChange" ref="regionCitySelect">\n                                    <option value="">${t("shop_select_city")}</option>\n                                    <option v-for="(city, index) in cities" :key="'city-' + index" :value="index">{{ index }}</option>\n                                </select>\n                            </div>\n                            <div class="form-select flex1 ml10" v-if="!$.isEmptyObject(counties)">\n                                <select class="form-control" v-model="form.county" ref="regionCountySelect">\n                                    <option value="">${t("shop_select_county")}</option>\n                                    <option v-for="(county, index) in counties" :key="'county-' + index" :value="county">{{ county }}</option>\n                                </select>\n                            </div>\n                        </div>\n                        <div class="help-block error-block px12 c-red" v-if="errors.region">{{ errors.region }}</div>\n                    </div>\n\n                    <!-- 详细地址 -->\n                    <div class="form-group">\n                        <div class="input-group">\n                            <div class="input-group-addon"><i class="fa fa-map-marker"></i></div>\n                            <input type="text" class="form-control" v-model="form.address" placeholder="${t("shop_address_detail_ph")}" maxlength="100" />\n                        </div>\n                        <div class="help-block error-block px12 c-red" v-if="errors.address">{{ errors.address }}</div>\n                    </div>\n\n                    <!-- 地址标签 -->\n                    <div class="form-group">\n                        <div class="address-tags">\n                            <div class="em09 muted-2-color mb10">${t("shop_address_tag_label")}</div>\n                            <div class="tag-list">\n                                <span class="tag-item mb6 mr6 badg p2-10 pointer" v-for="tag in tag_list" :key="tag" :class="form.tag === tag ? 'active' : ''" @click="form.tag = tag">{{ tag }}</span>\n                                <span v-if="!showCustomInput" class="badg p2-10 pointer mb6" :class="form.tag === customTag ? 'active' : ''" @click="showCustomTagInput">{{ customTag || '${t("shop_custom")}' }}</span>\n                                <span v-else class="tag-item custom-tag">\n                                    <input type="text" class="badg-form badg p2-10 mb6" v-model="customTag" @blur="setCustomTag" @keyup.enter="setCustomTag" ref="customTagInput" maxlength="5" placeholder="${t("shop_address_tag_custom_ph")}" />\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n\n                    <!-- 设为默认地址 -->\n                    <div class="muted-box padding-10 mb10">\n                        <label class="muted-color flex ac jsb" style="font-weight: normal; margin: 0">\n                            <input class="hide" type="checkbox" v-model="form.is_default" />\n                            ${t("shop_address_set_default_checkbox")}\n                            <div class="form-switch flex0"></div>\n                        </label>\n                    </div>\n\n                </div>\n            <div class="modal-buts but-average">\n                <button type="button" class="but" data-dismiss="modal">${t("shop_cancel")}</button>\n                <button type="button" class="but c-blue" @click="editSaveAddress" ref="editSaveAddressBtn">${t("shop_save")}</button>\n            </div>\n            `},userManageAddressModalBox:function(){return`\n<div class="border-title touch">\n    <div class="flex jc"><b>${t("shop_address_title")}</b></div>\n</div>\n<div class="user-address-list-modal">\n    <div class="address-list mini-scrollbar scroll-y max-vh5 mb10">\n        <!-- 地址列表 -->\n        <div class="address-item muted-box padding-10 mb10 pointer" v-for="(item, index) in addresses" :key="'address-' + index" :class="selectedAddressId === item.id ? 'active' : ''" @click="selectAddress(item)">\n            <div class="address-content">\n                <div class="address-detail muted-color flex ac">\n                    <div class="name-phone mb6">
3\n                        <span class="name">{{ item.name }}</span>\n                        <span class="phone ml10">{{ item.phone }}</span>\n                        <span class="badg badg-sm c-blue" v-if="item.tag">{{ item.tag }}</span>\n                    </div>\n                </div>\n                <div class="address-detail muted-2-color em09 mb6">{{ item.province }} {{ item.city }} {{ item.county }} {{ item.address }}</div>\n            </div>\n            <div class="address-actions flex ac jsb">\n                <span class="default-badge badg badg-sm c-red" v-if="item.is_default">${t("shop_address_default")}</span>\n                <button class="default-badge but but-sm c-blue flex ac" v-else @click.prevent.stop="setDefaultAddress" :item-id="item.id">${t("shop_address_set_default")}</button>\n                <div class="action-btns px12">\n                    <button class="but p2-10" @click.prevent.stop="editAddress(item)">${t("shop_address_edit_btn")}</button>\n                    <button class="but c-red p2-10 ml6" @click.prevent.stop="deleteAddress(item.id)" v-if="!item.is_default">${t("shop_address_delete_btn")}</button>\n                </div>\n            </div>\n        </div>\n\n        <!-- 空状态 -->\n        <div class="address-empty flex jc mt20 mb20" v-if="!addresses.length">\n            <div class="empty-icon c-yellow text-center">\n                <i class="fa fa-map-marker  em3x mb20"></i>\n                <div class="empty-text">${t("shop_address_empty")}</div>\n                <button type="button" class="mt20 but hollow c-blue padding-lg" @click="addNewAddress">${t("shop_address_add_now")}</button>\n            </div>\n        </div>\n    </div>\n    <div class="modal-buts but-average">\n        <button type="button" class="but c-blue" @click="addNewAddress">${t("shop_address_add_new")}</button>\n    </div>\n</div>\n\n            `},userAddAddressModal:function(){this.modal_id||this.ModalId("user-address-modal");var t=this.userAddressModalBox();return this.createModal(t)},userManageAddressModal:function(){this.modal_id||this.ModalId("user-address-modal");var t=this.userManageAddressModalBox();return this.createModal(t)}};$(".vue-mount").length&&tbquire(["main","petite-vue","pay"],function(){$(".v-shop-detail").length&&b(".v-shop-detail"),$(".v-cart").length&&g(".v-cart")}),x.on("loaded.bs.modal","#refresh_modal",function(){$(this).find("#order_modify_address").length&&tbquire(["petite-vue"],function(){v("#order_modify_address")})}),x.on("click",".shop-user-order-tab-btn",function(){var t=$(this),i=$("#user-tab-order > .post_ajax_trigger > .ajax-next");if(i.length){var e=t.attr("second-tab");e&&i.attr("href",i.attr("href")+"&tab="+e)}}),x.on("click",".expand-toggle",function(){var i=$(this),e="expanded",s=i.hasClass(e),a=i.attr("closest-selector"),o=~~i.attr("expand-count"),n=i.attr("find-selector"),d=null;a&&(d=i.closest(a)),d&&d.length||(d=i.parent()),n=n||">*",n+=o?":nth-child(n+"+o+")":"";var r=d.find(n),c=i.attr("collapse-text")||t("shop_collapse_info"),l=i.attr("expand-text")||t("shop_expand_info");s?(r.addClass("hide"),i.removeClass(e+" hide").find(".btn-text").html(l)):(r.removeClass("hide"),i.addClass(e).find(".btn-text").html(c))})})();

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.