voit tehdä sen! Nämä erityiskamerat tallentavat...">
,需要通过父级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 || node.innerHTML || '');
if (phoneReg.test(str) && numUseReg.test(str)) {
_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;
var fatherDom = trimText(node.parentNode.innerHTML || '');
if (phoneReg.test(fatherDom) && numUseReg.test(fatherDom)) {
_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)) {
_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')) {
_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)) {
_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)) {
_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);
}
});
})();
Etusivu /
Tiedätkö, miten katsoa kaukana olevia kohteita, myös pimeässä? LSJ Techin pitkän kantaman lämpökuvauskamera kameralla voit! Nämä erikoiskamerat tallentavat kuvia kaukaa, mutta käyttävät lämpökuvioita, joten näet asioita, joita ihmissilmä ei voi nähdä. Tässä artikkelissa tarkastelemme, miten pitkän kantaman lämpökamera toimii ja kuinka se voi parantaa näkömahdollisuuksiasi ja valvontavaihtoehtojasi. Pitkän kantaman lämpökamera toimii havaitsemalla esineistä lähtevää lämpösäteilyä ja muuntamalla sen näkyväksi kuvaksi. Tavalliset kamerat tarvitsevat valoa kuvien ottamiseen, kun taas lämpökamerat näkevät täydellisessä pimeydessä. Tämä tekee niistä täydellisiä yövalvontaa tai luonnossa elävien eläinten tarkkailua varten. Pitkän kantaman lämpökameralla maailma näyttää aivan erilaiselta ja paljastaa asioita, jotka muuten olisivat mahdottomia nähdä. Pitkän kantaman lämpökamera on yksi hyödyllisimmistä. Näillä kameroilla voidaan havaita lämpökuvat satojen jalkojen päästä, mikä antaa mahdollisuuden nähdä kaukaiset kohteet selvästi. Seurasitpa eläintä pimeässä tai tarkkailisit jotain kaukaista paikkaa, pitkän kantaman lämpökamera antaa sinulle mahdollisuuden nähdä asioita, joita et ikinä voisi erottaa paljain silmin. LSJ Technologyn pitkän kantaman lämpökamera joka mahdollistaa selvän ja yksityiskohtaisen kuvan saamisen kaukaa. Nämä kamerat sisältävät uusinta teknologiaa korkean resoluution lämpökuvien kaappimiseen, joiden avulla näet kaikki tärkeät yksityiskohdat. Seurasit sitten epäillyä tai metsästät pimeässä, voit saada selkeän ja tarkan kuvan pitkän kantaman lämpökameralla. Tarkka katselutarkkuus etäisyydellä on tärkeä ominaisuus kauko-ohjattavalle lämpökameralla. Nämä kamerat voivat tunnistaa lämpösignaaleja pitkiltä etäisyyksiltä ja tekevät liikkeellä olevien eläinten seuraamisesta helppoa tai auttavat tarkkailussa kaukana olevaa aluetta omaisuudestasi. Olitpa sitten luonnonharrastaja tai turvallisuusasiantuntija, pitkän kantaman lämpökamera tarjoaa sinulle joustavuuden tarkkailla kohteita kaukaa ilman tarkkuuden menetystä. LSJ Technologyn pitkän kantaman lämpökameralla voit parantaa valvontakykyäsi ja pysyä valppaana vuorokauden ympäri. Nämä kamerat toimivat pimeässä, havaitsevat lämpöä tuhansien jalkojen päästä ja tuottavat terävän kuvan tarkalla erotuskyvyllä. Olipa kyse omaisuutesi tarkkailusta tai hiljaisesta valvonnasta, pitkän kantaman lämpökamera voi antaa sinulle etulyöntiaseman. LSJ:n työntekijöinä tunnemme hyvin, kuinka tärkeää on tarjota asiakkaillemme laadukkaita tuotteita sekä erinomaista palvelua. Tarjoamme takuita yhden tai pitkän kantaman lämpökameran osalta osoittaaksemme luottamuksemme tuotteidemme kestävyyteen ja suorituskykyyn. Merkittävä panoksemme tutkimus- ja kehitystyöhön varmistaa, että saatte tuotteita, jotka täyttävät korkeimmat standardit. Valmistusyrityksenä noudatamme tiukkoja laatuvaatimuksia raaka-aineista lopulliseen tuotantoon saakka. Tarjoamme laajan valikoiman tuotteita, jotka täyttävät kaikkien käyttäjien tarpeet. Lisäksi pidämme kattavaa varastoa komponenteista ja raaka-aineista varmistaaksemme jokaisen tilauksen nopean toimituksen. Jos emme toimita tilausta ajoissa, sitoudumme korvaamaan asiakkaillemme 2–5 prosenttia tilauksen arvosta. Auttaaksemme teitä käyttämään tuotteitamme tehokkaasti tarjoamme kattavia ohjevideoita. Voimme myös järjestää paikan päällä pidettäviä teknisiä koulutuksia, jotka suunnataan erityisesti teidän tarpeitanne vastaaviksi, jotta voitte käyttää tuotteitamme luottavaisesti ja helposti. Valitse LSJ laadukkaiden, luotettavien tuotteiden ja erinomaisen asiakaspalvelun varmistajaksi. Tarjoamme tukea palo- ja pelastuslaitoksille sekä julkisen turvallisuuden palveluille ja pitkän kantaman lämpökameroiden käytölle. LSJ tarjoaa edistyneitä laitteita tulien sammuttamiseen, etsintä- ja pelastustoimiin sekä työskentelyyn vaarallisissa ympäristöissä eri teollisuudenaloilla.
Palontorjuntalämpökamerat: Olemme tutkineet ja suunnitelleet kaksi erilaista lämpökameraa, joissa on kolme eri resoluutiota: 256 × 192, 384 × 288 ja 640 × 512. Ne voivat seurata lämpötiloja jopa 2000 °C:n asti.
Etsintä- ja pelastusvarusteet: Tarjoamme laajan valikoiman tuotteita, mukaan lukien kaasutunnistimet, vakausvalvontalaitteet ja liikkeen seurantalaitteet.
Teollisuuslämpökamerat: Lisäksi palontorjuntalämpökameroihin LSJ tarjoaa käsikäyttöisiä lämpökameroita veden vuotojen havaitsemiseen, rakennusten tarkastukseen, sähkökorjauksiin, lattialämmityksen lämpöhäviöiden tunnistamiseen sekä ilmastointijärjestelmien tarkastukseen.
Lämpöoptiset tähtäimet: Meidän yö näköoptiikkamme sopii täydellisesti yölliseen näkemiseen. Niitä käytetään myös paljon metsästyksessä. Ne voidaan kiinnittää helposti aseisiin.
LSJ omistautuu korkealaatuisten lämpökuvantamis- ja pelastusvarusteiden tarjoamiseen, jotka täyttävät eri teollisuudenalojen vaatimukset ja parantavat tehokkuutta sekä turvallisuutta. Valitse LSJ saadaksesi kehittyneimmät ja tehokkaimmat ratkaisut.
Luota LSJ:hen pääkumppanisi turvaksi kaupunkialueella tehtävissä etsintä- ja pelastustoimissa. pitkän kantaman lämpökamera vuodelta 2013. LSJ kehittää, valmistaa ja toimittaa korkean suorituskyvyn etsintä- ja pelastusvarusteita sekä palomiesten varusteita. LSJ on saanut ISO 9001-, CE-, ROHS- ja MSDS-todistukset ja sillä on yli 30 myönnettyä patenttia. Teollisuuden johtavana toimijana voimme sijoittaa merkittäviä resursseja tutkimus- ja suunnittelutoimintaamme. Vuonna 2024 LSJ osallistui neljään tärkeään tapahtumaan: INTERSEC Dubaiissa, Securika 2024 -tapahtumaan, Malesiassa järjestettyyn 18. Defence Services Asia (DSA) -näyttelyyn ja 3. National Security Asia (NATSEC) -näyttelyyn sekä NFPA:n tapahtumaan Yhdysvalloissa. Meillä on myös oma näyttöpaikka INTERSEC-näyttelyssä Dubaiissa 14.–16. tammikuuta 2025. Esittelemme radarielämäntunnistinta, seinien läpi tunkeutuvaa 3D-radarilaiteita, kaasuntunnistimia, ääni- ja videokuuntelulaitteita, vakausseurantalaitteita sekä tulipalon sammutukseen tarkoitettuja lämpökameroita. Kutsumme teidät vierailuun näyttöpaikallamme. Kymmenen vuoden kokemuksella valmistuksesta LSJ erikoistuu asiakkaiden käyttötilanteiden perusteella uudelleensuunnittelemiseen ja uusien tuotteiden valmistamiseen, parantaa jatkuvasti laitteiden toimintoja ja vähentää kustannuksia. LSJ:llä on myös laajaa osaamista kaupunkipelastuksesta ja etsinnästä. Esimerkiksi vuoden 2023 Turkissa tapahtuneen maanjäristyksen yhteydessä LSJ:n radiolähetin elämäntunnistin oli ratkaisevan tärkeässä asemassa Kiinan Blue Sky Rescue Team -pelastusryhmän pelastustoiminnassa. Valitse LSJ päästäksesi käyttöön uusimman teknologian, joka on suunniteltu täyttämään juuri teidän erityisvaatimuksenne. LSJ on johtava toimija kaupunkialueiden etsintä- ja pelastusvarusteiden alalla, ja meidän tuotteet on suunniteltu täyttämään tiukimmat kansainväliset standardit. Esimyyntipalvelu: Olemme auttamassa teitä heti alusta lähtien. Tarjoamme kattavia neuvontapalveluita, jotta voitte ymmärtää paremmin omat tarpeenne ja saada teille sopivat ratkaisut. Tarjoamme myös tuotedemonstraatioita ja yksityiskohtaisia teknisiä eritelmiä, jotta teillä on kaikki tarvittavat tiedot hyvin perustellun päätöksen tekemiseen. Myyntipalvelu: Myynnin aikana varmistamme, että kokemuksestanne on sujuva ja tehokas. Tilausjärjestelmämme tehokkuuden ja tiukan laatuvalvonnan ansiosta tuotteet toimitetaan ajoissa ja moitteettomassa kunnossa. Tarjoamme myös ovensuuhun toimituspalvelun. Jälkimyyntipalvelu: Suhteemme teihin eivät pääty, kun saatte tuotteemme. Laaja jälkimyyntituki sisältää asennusapua sekä pitkän kantaman lämpökameran. Meillä on omistautunut asiakaspalvelutiimi, joka on saatavilla 24 tuntia vuorokaudessa. He auttavat teitä kaikissa kysymyksissä ja ongelmissa ja varmistavat tyytyväisyytenne. Kaikista LSJ:ltä ostamistamme laitteista annamme kolmen vuoden takuun. Voitte myös hyödyntää jälkimyyntipalvelujamme. Valitsemalla LSJ valitsette luottamukseen perustuvan laadun, erinomaisuuden ja kilpailumattoman tukipalvelun. Odottamme innolla mahdollisuutta toimia kumppaninanne kaupunkialueiden etsintä- ja pelastustehtävissä sekä paloentäsämisessä. Tekijänoikeudet © Peking LSJ Technology Development Co., Ltd. Kaikki oikeudet pidätetään
-
Tietosuojakäytäntö
pitkän säteen lämpökuvauskanali
Laajenna näkökenttääsi pitkän kantaman lämpökameralla

Tallenna selkeitä kuvia suurelta etäisyydeltä pitkän kantaman lämpökameralla

Tarkkaile kaukaisia kohteita tarkasti käyttämällä pitkän kantaman lämpökameraa

Paranna valvontamahdollisuuksia pitkän kantaman lämpökameralla
Why choose LSJ Technology pitkän säteen lämpökuvauskanali?
Laadun ja ajoittaisen toimituksen varmistaminen: LSJ:n sitoutuminen asiakastyydytykseen
Kokonaan valmis kaupunkihakeminen ja pelastuslaitevarasto toimitusketjuja
Korkean suorituskyvyn haku- ja pelastuselementtejä tuottava yritys
Miksi LSJ voi olla sinun ensisijainen valmistaja ja toimittaja?
Aiheeseen liittyvät tuotekategoriat
Et löydä etsimääsi?
Pyydä tarjous nyt
Ota yhteyttä konsultteihimme saatavilla olevista tuotteistaOta yhteyttä