Mock Neck Sleeveless Cutout Maxi Dresses

$32.00
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '734ece41-f0eb-43eb-b1ee-1c4cfa0c946f'; this.isRTL = SPZ.win.document.dir === 'rtl'; } static deferredMount() { return false; } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); this.setupAction_(); this.viewport_ = this.getViewport(); } mountCallback() { this.init(); // 监听事件 this.bindEvent_(); } async init() { this.handleFitTheme(); const data = await this.getDiscountList(); this.renderApiData_(data); } async getDiscountList() { const productId = '6e19fb80-457e-482c-9172-e72675be4a80'; const variantId = this.variant_id; const productType = 'default'; const reqBody = { product_id: productId, variant_id: variantId, discount_method: "DM_AUTOMATIC", customer: { customer_id: window.C_SETTINGS.customer.customer_id, email: window.C_SETTINGS.customer.customer_email }, product_type: productType } const url = `/api/storefront/promotion/display_setting/text/list`; const data = await this.xhr_.fetchJson(url, { method: "post", body: reqBody }).then(res => { return res; }).catch(err => { this.setContainerDisabled(false); }) return data; } async renderDiscountList() { this.setContainerDisabled(true); const data = await this.getDiscountList(); this.setContainerDisabled(false); // 重新渲染 抖动问题处理 this.renderApiData_(data); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } async renderApiData_(data) { const parentDiv = document.querySelector('.automatic_discount_container'); const newTplDom = await this.getRenderTemplate(data); if (parentDiv) { parentDiv.innerHTML = ''; parentDiv.appendChild(newTplDom); } else { console.log('automatic_discount_container is null'); } } doRender_(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); this.element.appendChild(el); }); } async getRenderTemplate(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, { ...renderData, isRTL: this.isRTL }) .then((el) => { this.clearDom(); return el; }); } setContainerDisabled(isDisable) { const automaticDiscountEl = document.querySelector('.automatic_discount_container_outer'); if(isDisable) { automaticDiscountEl.setAttribute('disabled', ''); } else { automaticDiscountEl.removeAttribute('disabled'); } } // 绑定事件 bindEvent_() { window.addEventListener('click', (e) => { let containerNodes = document.querySelectorAll(".automatic-container .panel"); let bool; Array.from(containerNodes).forEach((node) => { if(node.contains(e.target)){ bool = true; } }) // 是否popover面板点击范围 if (bool) { return; } if(e.target.classList.contains('drowdown-icon') || e.target.parentNode.classList.contains('drowdown-icon')){ return; } const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { node.classList.remove('open-dropdown'); }) // 兼容主题 this.toggleProductSticky(true); }) // 监听变体变化 document.addEventListener('dj.variantChange', async(event) => { // 重新渲染 const variant = event.detail.selected; if (variant.product_id == '6e19fb80-457e-482c-9172-e72675be4a80' && variant.id != this.variant_id) { this.variant_id = variant.id; this.renderDiscountList(); } }); } // 兼容主题 handleFitTheme() { // top 属性影响抖动 let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ productInfoEl.classList.add('force-top-auto'); } } // 兼容 wind/flash /hero 主题 (sticky属性影响 popover 层级展示, 会被其他元素覆盖) toggleProductSticky(isSticky) { let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ if(isSticky) { // 还原该主题原有的sticky属性值 productInfoEl.classList.remove('force-position-static'); return; } productInfoEl.classList.toggle('force-position-static'); } } setupAction_() { this.registerAction('handleDropdown', (invocation) => { const discount_id = invocation.args.discount_id; const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { if(node.getAttribute('id') != `automatic-${discount_id}`) { node.classList.remove('open-dropdown'); } }) const $discount_item = document.querySelector(`#automatic-${discount_id}`); $discount_item && $discount_item.classList.toggle('open-dropdown'); // 兼容主题 this.toggleProductSticky(); }); } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {}); this.action_.trigger(this.element, name, event); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomProductAutomatic);
Color:  White
Size:  S
Quantity

Description

This maxi dress is the perfect piece for Spring/Summer! It has a classic mock neck, features cut outs on the waist, and sleeveless design to show your beautiful arm curves.
Perfect match with peep toe high heels or your elegant white sneakers.
Mix of cotton fabric, This dress has stretch and brings you comfortable feeling👑

Stretch dress

Mock Neck

Zipper Back

Elastic waist

Hand wash cold 

Item No:10048

    Size Chart
    SizeBust WaistLengthHem
    inchcminchcminchcminchcm
    S35.4 9026.8 6838.6 9869.3 176
    M37.0 9428.3 7238.6 9870.9 180
    L40.2 10231.5 8039.4 10074.0 188
    XL43.3 11034.6 8839.4 10077.2 196
    2XL46.5 11837.8 9640.2 10280.3 204
    3XL50.4 12841.7 10640.2 10284.3 214
    4XL54.3 13845.7 11640.9 10488.2 224
    5XL58.3 14849.6 12640.9 10492.1 234
    此页面的语言为卢森堡语
    翻译为
    • 中文(简体)
    • 中文(繁体)
    • 丹麦语
    • 乌克兰语
    • 乌尔都语
    • 亚美尼亚语
    • 俄语
    • 保加利亚语
    • 克罗地亚语
    • 冰岛语
    • 加泰罗尼亚语
    • 匈牙利语
    • 卡纳达语
    • 印地语
    • 印尼语
    • 古吉拉特语
    • 哈萨克语
    • 土耳其语
    • 威尔士语
    • 孟加拉语
    • 尼泊尔语
    • 布尔语(南非荷兰语)
    • 希伯来语
    • 希腊语
    • 库尔德语
    • 德语
    • 意大利语
    • 拉脱维亚语
    • 挪威语
    • 捷克语
    • 斯洛伐克语
    • 斯洛文尼亚语
    • 旁遮普语
    • 日语
    • 普什图语
    • 毛利语
    • 法语
    • 波兰语
    • 波斯语
    • 泰卢固语
    • 泰米尔语
    • 泰语
    • 海地克里奥尔语
    • 爱沙尼亚语
    • 瑞典语
    • 立陶宛语
    • 缅甸语
    • 罗马尼亚语
    • 老挝语
    • 芬兰语
    • 英语
    • 荷兰语
    • 萨摩亚语
    • 葡萄牙语
    • 西班牙语
    • 越南语
    • 阿塞拜疆语
    • 阿姆哈拉语
    • 阿尔巴尼亚语
    • 阿拉伯语
    • 韩语
    • 马尔加什语
    • 马拉地语
    • 马拉雅拉姆语
    • 马来语
    • 马耳他语
    • 高棉语