DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
1 / 17
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
DIY Peacock Diamond Painting Wooden Serving Tray
0% OFF

DIY Peacock Diamond Painting Wooden Serving Tray

1373472.02

$35.99
0 sold
Qty 2 in stock
Specification:
Origin: Mainland China
Product Size: 300.00x200.00x10.00mm/11.81x7.87x0.39inch
Style: Modern
Material: Resin
About this product:
Service style: provide delicious food on the table, provide snacks on the coffee table, enjoy lazy breakfast on Sunday morning, or relax the body and mind in the bathtub after a day of hard work.
Durable and lightweight: This elegant service tray size is 30x20cm. The size is perfect for your favorite food, and the weight is light. When the bed service on the bed is full, you can easily carry. There is a high wall around the tray, which can be fixed in place.

Note:
Due to different monitor settings and lighting conditions, the actual color of the item may vary slightly from the pictures. Thanks for your understanding!
Please allow a 1-2 cm difference in measurements due to manual measuring.


1*Serving Plate
1*Diamond Kit

/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1736477762476').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);