The brokest hearts are the richest casual street sports hoodie
The brokest hearts are the richest casual street sports hoodie
The brokest hearts are the richest casual street sports hoodie
The brokest hearts are the richest casual street sports hoodie
The brokest hearts are the richest casual street sports hoodie
The brokest hearts are the richest casual street sports hoodie
1/3
The brokest hearts are the richest casual street sports hoodie
The brokest hearts are the richest casual street sports hoodie
The brokest hearts are the richest casual street sports hoodie
1/3

The brokest hearts are the richest casual street sports hoodie

$29.60
$50.00
ColorRed
Please select a color
Size
Please select a size
Quantity
Barcode:
  • Season : Spring , Winter , Summer , Autumn
  • Color : Red , Blue
  • Material : Cotton
  • Occasion : Vacation , Street , Public , Party
  • Style : Sporty , Casual , Street
  • Sleeve Length : Long Sleeve

Size Chart

cm
SizeSMLXL2XL3XL
Shoulder434547495153
Bust98102106110114118
Length636669727578
Sleeve Length616263646566
inch
Size inchSMLXL2XL3XL
Shoulder16.917.718.519.320.120.9
Bust38.640.241.743.344.946.5
Length24.826.027.228.329.530.7
Sleeve Length24.024.424.825.225.626.0
class SpzCustomDiscountFlashsale extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.getFlashSaleApi = "\/api\/storefront\/promotion\/flashsale\/display_setting\/product_setting"; this.timer = null; this.variantId = "7cef333a-3fae-43a0-8f56-89019feaee8d"; // 促销活动数据 this.flashsaleData = {} } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // 挂载bind函数 解决this指向问题 this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } mountCallback() { // 获取数据 this.getData(); this.element.onclick = (e) => { const cur = this.win.document.querySelector(".app_discount_flashsale_desc"); if (this.flashsaleData.product_setting.is_redirection && appDiscountUtils.inProductBody(this.element) && e.target !== cur) { this.win.open(`/promotions/discount-default/${this.flashsaleData.discount_info.id}`); } } // 绑定 this.viewport_.onResize(this.resize); // 监听子款式切换,重新渲染 this.win.document.addEventListener('dj.variantChange', this.switchVariant); } unmountCallback() { // 解绑 this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { this.render(); }, 200) } switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == '8dc64def-3661-4f1f-b551-cebcdb9d276d' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } getData() { const reqBody = { product_id: "8dc64def-3661-4f1f-b551-cebcdb9d276d", product_type: "", variant_id: this.variantId } this.flashsaleData = {}; this.win.fetch(this.getFlashSaleApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { this.flashsaleData = await response.json(); this.render(); } else { this.clearDom(); } }).catch(err => { this.clearDom(); }); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } render() { this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), inProductDetail: appDiscountUtils.inProductBody(this.element), flashsaleData: this.flashsaleData, image_domain: this.win.SHOPLAZZA.image_domain, }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) } } SPZ.defineElement('spz-custom-discount-flashsale', SpzCustomDiscountFlashsale);