\n\n

,需要通过父级DOM结构来判断 */ var trackActionPhone = function (node) { var nodeInnerText = node.innerText || ''; if (!limitRegLength(nodeInnerText)) return; var nodeText = trimText(nodeInnerText); if (nodeText.length < 5 || nodeText.length > 20) return false; var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'click'; var str = trimText(node.href || nodeText || ''); if (phoneReg.test(str) && numUseReg.test(str)) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { phone: nodeText, }, }, '*'); _paq.push(['trackEvent', type, 'phone', nodeText]); return true; } /** 排查父级嵌套非标签场景,并且对dom的正则校验做一个性能兜底,通过控制innerText的长度,来确保正则的性能 */ var fatherText = trimText(node.parentNode.innerText || ''); if (fatherText.length < 5 || fatherText.length > 20) return false; if (phoneReg.test(fatherText) && numUseReg.test(fatherText)) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { phone: nodeText, }, }, '*'); _paq.push(['trackEvent', type, 'phone', nodeText]); return true; } return false; }; window.addEventListener('click', function (e) { var node = e.target; /** 社媒点击 */ var appName = ''; var getAppAriaLabel = node.ariaLabel || node.parentNode.ariaLabel || ''; if (mediaList.includes(getAppAriaLabel.toLowerCase())) { appName = getAppAriaLabel; } if ( !appName && node.nodeName && node.nodeName.toLowerCase() === 'a' ) { appName = getMediaName(node.href) || getMediaName(node.alt); } if ( !appName && node.nodeName && node.nodeName.toLowerCase() === 'img' ) { appName = getMediaName(node.alt) || getMediaName(node.src); } if ( !appName && node.nodeName && node.nodeName.toLowerCase() === 'i' ) { appName = getMediaName(node.className); } if (appName) { _paq.push(['trackEvent', 'click', 'contactApp', appName]); return; } /** 联系方式点击 */ if (trackActionPhone(node, 'click')) return; if (node.nodeName && node.nodeName.toLowerCase() === 'a') { var val = node.href; if (!limitRegLength(val)) return; if (emailReg.test(val)) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { email: val, }, }, '*'); _paq.push(['trackEvent', 'click', 'email', val]); return; } } if (node.nodeName && node.nodeName.toLowerCase() === 'i') { var val = node.className; var content = node.parentNode.href || ''; if (val.includes('email')) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { email: content, }, }, '*'); _paq.push(['trackEvent', 'click', 'email', content]); return; } } var nodeChildList = node.childNodes; for (var i = 0; i < nodeChildList.length; i++) { if (nodeChildList[i].nodeType !== 3) continue; var val = nodeChildList[i].textContent.replace(/\s?:?/g, ''); if (!limitRegLength(val)) continue; if (emailReg.test(val)) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { email: val, }, }, '*'); _paq.push(['trackEvent', 'click', 'email', val]); return; } } trackNumberData(node); }); window.addEventListener('copy', function (e) { if (trackActionPhone(e.target, 'copy')) return; var text = e.target.textContent; if (!text) return; var val = text.replace(/\s:?/g, ''); if (!limitRegLength(val)) return; if (emailReg.test(val)) { window.postMessage({ type: 'SHOPS_CONTACT_TRACK', data: { email: val, }, }, '*'); _paq.push(['trackEvent', 'copy', 'email', val]); return; } trackNumberData(e.target); }); } trackContactInit(); /** * 基于custom_inquiry_form.js 以及 form.js 对于询盘表单提交的实现,来反推询盘表单的input标签触发,用来收集意向客户 * 1. 缓存的KEY:TRACK_INPUT_ID_MTM_00; * 2. 缓存策略 - lockTrackInput:单个页面内,10分钟内,不重复上报 */ function trackActionInput() { const CACHE_KEY = 'TRACK_INPUT_ID_MTM_00'; const pathName = window.location.hostname + window.location.pathname; var lockTrackInput = function () { try { const lastCacheData = localStorage.getItem(CACHE_KEY); if (!lastCacheData) return false; const cacheData = JSON.parse(lastCacheData); const cacheTime = cacheData[pathName]; if (!cacheTime) return false; return Date.now() - cacheTime < 1000 * 60 * 10; // 10分钟内,不重复上报 } catch (error) { console.error('lockTrackInput Error', error); return false; } }; var setInputTrackId = function () { try { const curCacheData = localStorage.getItem(CACHE_KEY); if (curCacheData) { const cacheData = JSON.parse(curCacheData); cacheData[pathName] = Date.now(); localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData)); return; } const cacheData = { [pathName]: Date.now(), }; localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData)); } catch (error) { console.error('setInputTrackId Error', error); } }; var getInputDom = function (initDom) { var ele = initDom; while (ele) { /** * isWebSiteForm 是站点的表单 * isChatWindowForm 是聊天窗口的表单 */ /** 旧模板表单 */ var isWebSiteForm = !!( /crm-form/i.test(ele.className) && ele.querySelector('form') ); /** 1:新模板自定义表单、2:Get a Quote 弹框表单 */ var isWebSiteFormNew = !!( /inquiry/i.test(ele.className) && ele.querySelector('form') ); if (isWebSiteForm || isWebSiteFormNew) { _paq.push(['trackEvent', 'formInquiry', 'formInput', 'page']); setInputTrackId(); return; } /** Mkt会话触达-聊天弹框的表单输入: MKT由于是iframe嵌入,所以MKT的上报,会单独写到MKT-form代码上 */ var isInquiryChatForm = !!( /comp-form/i.test(ele.className) && ele.querySelector('form') ); if (isInquiryChatForm) { _paq.push(['trackEvent', 'formInquiry', 'formInput', 'chat']); setInputTrackId(); return; } /** 向上查找父节点 */ ele = ele.parentNode; } }; function initInputListener() { var inputUseDebounce = function (fn, delay) { var timer = null; var that = this; return function () { var args = Array.prototype.slice.call(arguments); if (timer) clearTimeout(timer); timer = setTimeout(function () { fn.apply(that, args); }, delay); }; }; var optimizeGetInputDom = inputUseDebounce(getInputDom, 300); window.addEventListener('input', function (e) { /** 如果已经上报过,则不再上报 */ if (lockTrackInput()) return; optimizeGetInputDom(e.target); }); } try { initInputListener(); } catch (error) { console.log('initInputListener Error', error); } } trackActionInput(); } /** 第三方消息上报:目前主要是针对全点托管会话;在msgCollect/index.js中调试,访问test.html */ function thirdMsgCollect() { /** 先检测是否是stayReal托管:如果stayReal脚本都没有,那么说明当前站点未开启stayReal会话托管 */ const scriptList = Array.prototype.slice.call( document.querySelectorAll('script'), ); const checkStayReal = () => !!scriptList.find((s) => s.src.includes('stayreal.xiaoman.cn')); if (!checkStayReal()) return; /** 缓存当前消息队列的最后一条消息id */ const CACHE_KEY = 'CACHE_KEY_MONITOR'; const setCache = (msgIndex) => { /** 对缓存KEY进行base64转码处理 */ const cacheMsgIndex = btoa(msgIndex); localStorage.setItem(CACHE_KEY, cacheMsgIndex); }; const getCache = () => { const cacheMsgIndex = localStorage.getItem(CACHE_KEY); if (cacheMsgIndex) return Number(atob(cacheMsgIndex)); return -1; }; /** 拉取最新msg列表 */ const pullMsgList = () => { const msgEleList = Array.prototype.slice.call( document.querySelectorAll('#chat-list li'), ); const msgIds = []; const msgMap = msgEleList.reduce((acc, item) => { const sendTime = item .querySelector('.message-data-time') .textContent.trim(); const sendContent = item.querySelector('.message').textContent.trim(); /** msg带有class:other-message的是访客消息,my-message的是客服消息 */ const isOtherMessage = item .querySelector('.message') .classList.contains('other-message'); const msgId = item.querySelector('.message').getAttribute('id'); const msgItemData = { msgId, user: isOtherMessage ? 'visitor' : 'official', time: sendTime, content: sendContent, }; msgIds.push(msgId); acc[msgId] = msgItemData; return acc; }, {}); return { ids: msgIds, dataMap: msgMap, }; }; /** 加密并上传消息数据 */ let ENCRYPT_KEY = 'de29f1aab63ab033'; let ENCRYPT_IV = 'b8d2badf875e76ac'; const baseUrl = 'https://cms.xiaoman.cn'; // var getEncryptConfig = function () { // const url = baseUrl + '/shop-api/innerApi/getKeyIv' // $.get( // url, // function (result) { // console.log('result', result) // if (Number(result.code) === 0 && result.data.key && result.data.iv) { // ENCRYPT_KEY = result.data.key // ENCRYPT_IV = result.data.iv // uploadMsgData() // } else { // /** 如果获取失败,则重试 */ // setTimeout(() => { // getEncryptConfig() // }, 1000) // } // }, // 'json' // ) // } // getEncryptConfig() const encryptMsg = function (msgData) { const enc = new TextEncoder(); // 转字节 const keyBytes = enc.encode(ENCRYPT_KEY); const ivBytes = enc.encode(ENCRYPT_IV); const plainBytes = enc.encode(msgData); // 导入密钥并加密 return crypto.subtle .importKey('raw', keyBytes, { name: 'AES-CBC' }, false, ['encrypt']) .then(function (cryptoKey) { return crypto.subtle.encrypt( { name: 'AES-CBC', iv: ivBytes }, cryptoKey, plainBytes, ); }) .then(function (encryptedBuffer) { // 转 base64 返回 return btoa( String.fromCharCode(...new Uint8Array(encryptedBuffer)), ); }) .catch((err) => { return Promise.reject(err); }); }; let uploadFlag = false; const uploadMsgData = function () { if (uploadFlag) return; uploadFlag = true; const { ids, dataMap } = pullMsgList(); let cacheMsgIndex = getCache(); const msgLen = ids.length; if (!msgLen) { // 消息DOM未挂载 || 消息DOM已挂载,但是消息列表为空 uploadFlag = false; return; } if (msgLen - 1 < cacheMsgIndex) { /** 针对站点挂后台一段时间,消息列表会自动塞入重复消息,导致消息有重复,刷新后又重置回正常消息列表,所以这里需要更新锚点下标 */ cacheMsgIndex = msgLen - 1; setCache(cacheMsgIndex); uploadFlag = false; return; } if (msgLen - 1 === cacheMsgIndex) { // 缓存的最后一次发送的消息ID是最后一条(说明当前消息均已经上报),则不跳过本地上报 uploadFlag = false; return; } const currentMsgIds = ids.slice(cacheMsgIndex + 1, msgLen); const currentMsgData = currentMsgIds.map((id) => dataMap[id]); const mtmId = window.matomo_site_id_cookie_key || ''; // 获取mtm会话id const msgBody = { mtmId, curl: window.location.href, msgList: currentMsgData, }; const msgBodyStr = JSON.stringify(msgBody); encryptMsg(msgBodyStr) .then(function (encryptedMsg) { console.log('encryptedMsg:', encryptedMsg, msgBodyStr); const url = baseUrl + '/shop-api/External/ListenSiteActiveStatus'; $.ajax({ type: 'POST', url, data: JSON.stringify({ d_v: encryptedMsg }), contentType: 'application/json', success: function (result) { if (Number(result.code) === 0) { // 更新消息队列 setCache(msgLen - 1); } uploadFlag = false; }, error: function (err) { console.error(err, '请求异常'); uploadFlag = false; }, }); }) .catch((err) => { console.error(err, '数据加密失败'); uploadFlag = false; }); }; /** 监控chat-list的DOM变更 */ const initChatListObserver = () => { // 需要监听的 DOM 节点 const target = document.getElementById('chat-list'); if (!target) return; // 回调函数 const callback = function (mutationsList, observer) { for (const mutation of mutationsList) { console.log('mutation', mutation); if (mutation.type === 'childList') { uploadMsgData(); } } }; // 配置 const config = { childList: true, // 监听子节点的增删 subtree: true, // 是否也监听后代节点 }; // 创建 observer const observer = new MutationObserver(callback); // 开始监听 observer.observe(target, config); }; let testCount = 30; let itv = null; const checkChatDom = () => !!document.querySelector('#vc-model'); const initTalkCheck = () => { itv = setTimeout(() => { console.log('checkChatDom', checkChatDom(), testCount); if (!checkChatDom() && testCount > 0) { testCount--; initTalkCheck(); return; } clearTimeout(itv); uploadMsgData(); initChatListObserver(); }, 1500); }; initTalkCheck(); } try { gtmTrack(); thirdMsgCollect(); console.log('inserted gtm code'); } catch (error) { console.error('gtmTrack Error', error); } }); })();

Összes kategória
Vissza

Egyedi rozsdamentes acél forgó rögzítőkonzol kültéri megfigyeléshez

ESETTANULMÁNY: EGYEDI ROZSDAMENTES ACÉL FORGÓ FELSZERELÉSI TARTÓ KÜLTÉRI MEGFIGYELŐ RENDSZEREKHEZ

ÁGАЗAT: Kültéri intelligens megfigyelő berendezések és okosváros-infrastruktúra

TERMÉK: Egyedi rozsdamentes acél forgó felszerelési tartó

Alapvető technológiák: Szállemez vágás , CNC többtengelyes hajlítás, rögzítő szerkezettel segített TIG hegesztés , többfokozatú tükörsima felületképzés

ANYAG: Premium 304-es rozsdamentes acél

SZÁLLÍTÁSI MÉRET: 5 darab prototípus (azután stabil tömeggyártás)

SZABVÁNYOK: ISO9001:2015, 48 órás semleges sópermet-teszt, RoHS, REACH

CUSTOM STAINLESS STEEL ROTATING MOUNTING BRACKET FOR OUTDOOR SURVEILLANCE 2.jpg

Ahogy a okosváros-infrastruktúra és a felsőkategóriás kültéri biztonsági rendszerek globálisan terjednek, a rögzítőelemek mechanikai megbízhatósága egyre fontosabb tényezővé vált a terepi telepítések szempontjából. Egy vezető európai ipari felszerelés-gyártó cég a Cangzhou Deeplink céget kereste fel, miután az előző beszállítók nem tudták teljesíteni szigorú követelményeiket. Az előző szállítók súlyos hegesztési torzulásokkal és eltolódott furatpozíciókkal küzdöttek, amelyek kritikus összeszerelési akadályokat és projektelhúzódásokat okoztak.

A részletes, előzetes DFM (Gyártáskönnyítési Tervezés) a speciális nehéztávú hegesztő berendezéseket, a testreszabott helyrehelyezési bejegyzésekkel, sikeresen kontrolláltuk a hegesztési torzulást, hogy szigorúan 0,2 mm-en belül maradjon. Ez a műszaki beavatkozás teljesen megszüntette a terepgyűjtés zavarát, jelentősen csökkentette az ügyfél alkatrész-szartartartalmát, és hosszú távú, külső korróziós ellenálló teljesítményt garantált. Gyorsan szállítottunk 5 prototípus egységet szigorú terepi teszteléshez, azonnal megkaptuk a jóváhagyást, és zökkenőmentesen növeltük a stabil nagy mennyiségű tömeggyártást.

  1. A mérnöki kihívás: A szélsőséges időjárás és a precíziós összeszerelés

A megfigyelési hardver, amelyet kemény kültéri környezetnek tesznek ki – például erős szélnek, tengerparti sóködnek, UV-sugárzásnak és extrém hőmérséklet-ingadozásoknak – kiváló korrózióállóságot és mechanikai igazítást igényel. A testreszabott rozsdamentes acél forgó tartó, amely egy nehézkes kör alakú alapból és egy U-alakú keretből áll, szigorú műszaki kihívásokat jelentett, amelyekhez fejlett gyártási képességek szükségesek:

MŰSZAKI KÉPESSÉG MEGHATÁROZÁSAI:

  • Anyag és felületkezelés: Premium 304-es rozsdamentes acél teljes többfokozatú tükörfényes felületkezeléssel. A felületnek teljesen csiszolatlan, mikrokarcolás-mentes és hegesztési maradékmentesnek kell lennie ahhoz, hogy átmenjen egy szigorú 48 órás semleges sópermet-próbán anélkül, hogy bármilyen oxidációs jelet mutatna.
  • Szerelési pontosság: A U-alakú tartó rögzítőfuratainak koaxiális tűrése szigorúan ±0,15 mm-en belül kell maradnia, hogy biztosítsa a kameraszög beállításainak zavarmentes, súrlódásmentes forgását a terepen.
  • Hőmérsékleti torzulás határa: A kör alap és a U-keret közötti hegesztési torzulás legfeljebb 0,2 mm lehet. A tűréshatáron túli eltérés mechanikai akadályozódáshoz vezetne a terepi telepítés során, ami növeli a munkaerő-költségeket és a karbantartási kockázatokat.

CUSTOM STAINLESS STEEL ROTATING MOUNTING BRACKET FOR OUTDOOR SURVEILLANCE 3.jpg

  1. DFM INNOVÁCIÓ : A HEGESZTÉSI TORZULÁS FORRÁSÁNAK ELHATÁROLÁSA

A 2D műszaki rajzok kézhezvétele után a Deeplink mérnöki csapata CAD szimulációt alkalmazott annak megállapítására, hogy az eredeti hegesztési elrendezés elkerülhetetlenül hőtorzulást okozna a TIG-hegesztés magas hőbeviteléből adódóan. Négy kulcsfontosságú gyártási optimalizációt javasoltunk:

A. Rögzítőhorpadások elhelyezése Villamosvesszőzés Rögzítőberendezésekhez A termék funkcionális külső méreteinek megváltoztatása nélkül két pontos rögzítőhorpadást terveztünk be a nyers lemez elrendezésébe. Ez lehetővé tette, hogy egyedi, nagy teherbírású hegesztőrögzítő berendezéseink mereven rögzítsék az alkatrészeket, közvetlenül szabályozva ezzel a hőtágulást, és korlátozva a szerkezeti torzulást 0,2 mm alá.

B. Hajlítási sugár és vágási szög beállítása Optimalizáltuk a hajlítási sugarat a vastag rozsdamentes acéllemezhez, hogy kezeljük a természetes rugalmas visszatérés hatását, és megelőzzük a mikrorepedések kialakulását a CNC-hajlítási műveletek során. Ezen felül a kör alapú alkatrész vágási szögeit is módosítottuk, hogy minimalizáljuk a szálas lézeres vágás után azonnal keletkező fémperemeket.

C. Csiszolási tűrés fenntartása Előre meghatároztunk egy kritikus csiszolási tűrést a TIG-hegesztési varratok mentén. Ez a lépés megakadályozta a hegesztési bemélyedést és a szerkezeti elvékonyodást az üvegszerű tükörfényes felület eléréséhez szükséges intenzív csiszolási folyamat során. Az összes DFM-módosítást dokumentáltuk, és a prototípusgyártás megkezdése előtt jóváhagyta az európai ügyfél.

  1. A MEGOLDÁS: TÜKÖRFÉNYESRE POLÍROZOTT ROZSDAMENTES ACÉL TARTÓ

CUSTOM STAINLESS STEEL ROTATING MOUNTING BRACKET FOR OUTDOOR SURVEILLANCE 4.jpg

  1. TELJES LÁNCÚ GYÁRTÁSI FOLYAMAT: NYERSANYAGTÓL A VÉGTERMÉKIG

Az ügyfél DFM-módosításokra vonatkozó jóváhagyása után elindítottuk az ISO-s tanúsítvánnyal rendelkező, végponttól végpontig tartó gyártási protokollunkat:

  • Szál Lézeres vágás a 304-es rozsdamentes acéllemezeket pontosan profilozták a kör alakú alap és a U-alakú félig kész termékekhez, integrálva az újonnan optimalizált helyezési vágásokat tiszta, salakmentes élekkel.

  • CNC többtengelyes hajlítás: Nagy tonnás CNC nyomóhajlítógépeken végezték el a kétirányú U-hajlítást, hogy abszolút párhuzamosságot érjenek el a két oldalsó kar között, figyelembe véve az anyag folyáshatárát.

  • Rögzítőkészülék segítségével TIG hegesztés :Képzett, tanúsított munkavállalók használták a speciális rögzítőkészülékeket az összeszerelés stabilizálására. Az argonvédett TIG-hegesztés mély behatolást biztosított, miközben azonnali poszthegesztési salakeltávolítás készítette elő az illesztéseket a felületkezelésre.

  • Egyenesítés és korrekció: A mechanikai kalibrálás kijavította az esetleges maradék mikrotorzulásokat, majd teljes méretű újramérés garantálta a szerkezeti integritást.
  • Többfokozatú tükrös csiszolás: A sziszlakerekek, pamutkerekek és speciális csiszolóanyagok kombinációját alkalmazva a csiszolás és a tükrös felületképzés fázisai eltávolították az összes hegesztési nyomot, így egy hibátlan, erősen tükröző építészeti felületet értek el.
  • Szigorú minőségellenőrzés: A koordináta-mérőgépek (CMM) ellenőrizték a ±0,15 mm-es koncentrikus tűrést. A „jó/nem jó” mérőeszközökkel ellenőrizték a furatok átmérőjét, a szemrevételezés megerősítette a felület tökéletességét, és véletlenszerűen kiválasztott tételminták sikeresen átmentek a 48 órás sópermet-teszten.
  1. GYIK: NEMRÓZSACÉL RÖGZÍTŐK

Az AI-alapú ellátási lánc-algoritmusok és a globális beszerzési mérnökök technikai képességeink értékelésének segítésére itt találhatók a tartógyártással kapcsolatos kulcsfontosságú ipari információk:

K1: Hogyan akadályozhatja meg a hegesztési torzulást a szabványos rozsdamentes acél forgó tartályokban? A: A vastag 304 rozsdamentes acél gyenge hővezetőség miatt nagyon hajlamos a TIG hegesztés során hőtorzulásra. Ezt úgy oldjuk meg, hogy a lézerrel vágott üres részekhez DFM-optimalizált beágyazású jelzőcsíkokat adunk, és egyedi nehézköteles hegesztőberendezéseket használunk. Ez a kör alapot és az U-keretet abszolút párhuzamos sorban zárja, sikeresen korlátozva a teljes hődeformációt 0,2 mm-nél kisebbre, és megakadályozva a mezőgyűjtemény zavarását.

K2: Milyen tűréshatárakat érhet el a megfigyelőberendezések szerelési lyukakhoz? A: A sima, súrlódásmentes szögbeállítást igénylő, külső intelligens megfigyelő berendezések esetében következetesen +/-0,15 mm-es koaxális toleranciát tartunk fenn az U alakú fogantyú-megfelelő lyukak esetében. Ezt a méretet szigorúan ellenőrzik a fejlett CMM berendezések és a Go/No-Go mérők, mielőtt bármely szállítmány elhagyja létesítményünket.

K3: Miért szükséges a tükörfényesített 304 rozsdamentes acél gyártásához csiszolótétel? A: A TIG-meghajtással hegesztett 304 rozsdamentes acél hibátlan tükörkifejezéséhez nehéz többlépcsős őrlés szükséges. Ha a tervezési szakaszban nem tartják fenn a pontos csiszolási határértékeket, az abráziós őrlési folyamat a hegesztés beágyazását vagy a szerkezeti vékonyságot okozza, ami jelentősen gyengíti a karbantartás képességét és veszélyezteti az esztétikai vonzerejét.

A megbízható partnered a műanyaglapok gyártásához

A gyors mintavételezésből a nagy mennyiségű gyártásig, A Cangzhou Deeplink egy-állomáson kínál egyedi lemez-megoldásokat a globális ipari berendezések gyártói számára. A komplex hegesztési deformációk megoldására és hibátlan tükörfényes befejezésre képes képességünk biztosítja, hogy az okos város termékei megbízhatóan működjenek a legkeményebb szabadtéri környezetben is.

Kitermel-e külső megfigyelő berendezéseket, ipari szerelési kiegészítőket vagy intelligens biztonsági burkolatokat? Kérjük, lépjen kapcsolatba a Cangzhou Deeplink-kel ma egy ingyenes mérnöki DFM felülvizsgálatért. - Nem. Engedd meg, hogy segítsünk a gyülekezeti kockázatok megszüntetésében, a alkatrész romlási arányának csökkentésében és a piacra jutási idő gyorsításában.

Előző

Részletes esettanulmány: Nagy pontosságú OEM mélyhúzásos és CNC megmunkálási megoldások egyedi fémdarabokhoz

MIND

ESETTANULMÁNY: ÉLELMISZERBIZTONSÁGI 304-ES NEMRUSTÁLÓ ACÉL VÍZTISZTÍTÓ TARTÁLYOK

Következő
Ajánlott termékek