, ir jis yra e...">
,需要通过父级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);
}
});
})();
Sveiki! Šiandien kalbame apie labai fainą įrankį, kuris gali padėti surasti paslėptus vandens nutekėjimus. Jis vadinamas infrakalinis kameras , ir tai yra itin aukštosios technologijos prietaisas! Vandens nutekėjimai gali būti slapūs. Kartais jie net nematomi žmogaus akims – bet tai nereiškia, kad nekelia rimtų pažeidimų. Būtent čia gali labai praversti infrakalinis kameras ! Ši speciali kamera geba „matyti“ šilumą, kurią išskiria vandens nutekėjimai, net pro sienas ar po grindimis. Tai leidžia mums greitai rasti nutekėjimus ir juos pašalinti, kol jie nespėja padaryti didelės žalos. LSJ Technology infrakalinis kameras nėra lygių pastebint vandens pažeidimus. Ji naudoja pažangiausias technologijas, kad tiksliai nustatytų, iš kurio vietovės kyla nutekėjimai. Taip santechnikai gali lengvai nustatyti problemos vietas, nereikiant visiškai remontuoti jūsų namo. Ilgalaikė laiko ir sąnaudų taupymas, kurį galite gauti aptikdami vandens nutekėjimus su infrakalinis kameras gali būti didelis vargas, jei to nepadarysite. Vietoj dienų ar savaičių trunkančių paieškų naudojant kamerą nutekėjimo šaltinis gali būti rastas per mažą dalį to laiko. Tai reiškia mažiau laiko, reikalingo remontui, ir mažesnes išlaidas, kurias turėsite patirti dėl nutekėjimo sukeltų žalos taisymo. Vandens žalos prevencija yra veiksmingiausia, kai rizika sumažinama ankstyvai. Kuo anksčiau rasite nutekėjimą, tuo mažesnę žalą jis gali padaryti. LSJ Technology kamera, leidžianti matyti mūsų namus infraraudonojoje šviesoje, padėjo mums aptikti nutekėjimus dar prieš jiems tampant didelėmis problemomis. Kuo anksčiau randame nutekėjimus, tuo daugiau sutaupome brangių remontų ir saugesni, sausesni bei sveikesni yra mūsų namai. Infraraudonųjų spindulių kamerų LSJ yra naujos rūšies prietaisas greitam ir efektyviam nutekėjimui aptikti. Tai padeda mums aptikti nutekėjimus, kurių kitaip nepavyktų pastebėti, taupo laiką, pinigus ir nerima. Dabar galime ramiai miegoti, žinodami, kad su šiuo aukštosios technologijos įrenginiu mūsų namai saugūs nuo vandens pažeidimų. Nuo 2013 m. įmonė LSJ kūrė infraraudonųjų spindulių kameras vandens nuotėkams aptikti, gamina ir tiekia aukštos našumo paieškos bei gelbėjimo įrangą bei gaisrininkų įrangą. Įmonė LSJ sertifikatų ISO9001, CE ir ROHS. Be to, ji turi daugiau nei 30 patentų. Kaip lyderė mes reikšmingai investuojame į savo dizaino ir tyrimų skyrių. 2024 m. įmonė LSJ dalyvavo keturiuose pagrindiniuose renginiuose: INTERSEC, Securika, 18-ajame Gynybos paslaugų Azijoje ir 3-ajame Nacionalinės saugos Azijoje (Malaizijoje) bei NFPA (JAV). 2025 m. mes jau užsiregistravome dalyvauti INTERSEC renginyje, kuris vyks Dubaje sausio mėn. nuo 14 iki 16 dienos. Parodoje pateiksime šilumos gaisrininkų kameras, taip pat garso ir vaizdo stebėjimo įrangą, dujų aptikimo sistemas, 3D radarus ir kitus produktus. Kviečiame apsilankyti mūsų stende. Turėdama daugiau nei 11 metų patirties gamyboje, įmonė LSJ specializuojasi naujų produktų perprojektavime ir gamyboje, remdamasi klientų naudojimo sąlygomis, nuolat tobulindama funkcijas ir mažindama sąnaudas. Įmonė LSJ taip pat turi išplėstines žinias apie miestų gelbėjimą ir paiešką. Pavyzdžiui, 2023 m. Turkijos žemės drebėjimo metu LSJ radijo gyvybės aptikimo prietaisas svarbiai prisidėjo prie Kinijos „Mėlynojo dangaus gelbėjimo komandos“ gelbėjimo veiksmų. Pasirinkite LSJ – tai pažangūs, patikimi sprendimai, pritaikyti būtent jūsų specifinėms poreikio sąlygoms. Mes teikiame paramą gaisrų ir gelbėjimo departamentams, taip pat viešosios saugos tarnyboms ir infraraudonųjų spindulių kameroms vandens nuotėkiams aptikti. LSJ tiekia naujausios technologijos įrangą gaisrams gesinti, atlikti paieškos ir gelbėjimo operacijas bei dirbti pavojingose aplinkose įvairiose pramonės šakose.
Gaisrų gesinimo šiluminės kameros: Mes ištyrėme ir sukūrėme dvi šiluminių kamerų rūšis, kurios siūlo tris skiriamosios gebos variantus: 256×192, 384×288 ir 640×512. Jos gali stebėti temperatūrą iki 2000 °C.
Paieškos ir gelbėjimo įranga: Turime įvairių produktų, įskaitant dujų detektorius, stabilumo stebėjimo sistemas ir judėjimo stebėjimo sistemas.
Pramoninės šiluminės kameros: Be šiluminių kamerų gaisrams gesinti, LSJ siūlo rankines šilumines kameras vandens nuotėkų aptikimui, pastatų apžiūroms, elektronikos remontui, grindų šildymo sistemos šilumos nuostoliams nustatyti bei šildymo, ventiliacijos ir oro kondicionavimo (HVAC) sistemų tikrinimui.
Šiluminiai žiūronai: Mūsų naktinio matymo optika puikiai tinka naktiniam matymui. Ji taip pat labai populiaru tarp medžiotojų. Šiluminiai žiūronai lengvai montuojami ant šautuvų.
LSJ yra pasiryžusi teikti aukščiausios kokybės šiluminio vaizdavimo ir gelbėjimo įrangą, atitinkančią įvairių pramonės šakų reikalavimus, kad būtų padidinta darbo našumas ir saugumas. Pasirinkite LSJ – tai pačios pažangiausios ir efektyviausios sprendimų tiekėjas.
Pasitikėkite LSJ kaip savo pagrindiniu partneriu miestų paieškos ir gelbėjimo srityje. „LSJ“ suprantame, kiek svarbu siūlyti infraraudonųjų spindulių kameras vandens nuotėkams aptikti ir aukščiausios kokybės paslaugas savo klientams. Siūlome vienerių ar penkerių metų garantijas. Tai rodo mūsų pasitikėjimą savo produktų ilgaamžiškumu ir kokybe. Didelius išteklius skiriame tyrimams ir plėtrai, kad užtikrintume, jog mūsų produktai atitinka aukščiausius standartus. Kaip gamintojai laikomės griežtų kokybės kontrolės procedūrų – nuo žaliavų iki galutinio produkto. Siūlome įvairių produktų asortimentą, kuris tenkina visų poreikius. Taip pat palaikome išsamų žaliavų ir komponentų atsargų sąrašą, kad užtikrintume kiekvienos užsakymo laiku pristatymą. Jei nepavyksta laikytis nustatyto termino, klientams grąžiname 2–5 % užsakymo vertės. Kad padėtume jums naudoti mūsų produktus, pateikiame išsamias instrukcinio vaizdo įrašų medžiagas. Taip pat galime organizuoti technines praktines pamokas vietoje, kurios yra specialiai pritaikytos jūsų poreikiams, kad užtikrintume, jog jūs galėtumėte naudoti mūsų produktus tikrai patikimai ir lengvai. Pasirinkite „LSJ“, jei norite aukščiausios kokybės, patikimų produktų ir puikių klientų aptarnavimo paslaugų. LSJ yra rinkos lyderė aukščiausios kokybės infraraudonųjų spindulių kamerų, skirtų vandens nuotėkams aptikti, gamyboje ir atitinka tarptautinius standartus.
Išankstinės pardavimo paslaugos:
Mes esame čia, kad jums padėtume nuo pat pradžių. Teikiame išsamias konsultacijas, padedančias suprasti jūsų konkrečius poreikius, ir pateikiame pritaikytas sprendimo galimybes. Siekdami padėti jums priimti informuotą sprendimą, pateikiame technines specifikacijas bei produktų demonstracijas.
Pardavimo paslaugos:
Užtikriname, kad visasis pardavimo procesas būtų sklandus ir efektyvus. Mūsų efektyvios infraraudonųjų spindulių kameros, skirtos vandens nuotėkams aptikti, kartu su griežta kokybės kontrolės sistema, užtikrina, kad produktai būtų pristatyti laiku ir puikios kokybės. Taip pat teikiame „duris į duris“ pristatymo paslaugą.
Po pardavimo paslaugos:
Mūsų ryšys su jumis nebaigiasi tik gavus mūsų produktus. Teikiame įvairias po pardavimo paslaugas, įskaitant montavimo nurodymus, taip pat naudotojų apmokymą ir techninės priežiūros paslaugas. Turime specialiai skirtą klientų aptarnavimo komandą, kuri visada yra pasirengusi padėti. Ji padės jums išspręsti bet kokius klausimus ar problemas ir užtikrins jūsų patenkinamumą. Įsigijus įrangą iš LSJ, suteikiame tris metus trunkančią garantiją, o taip pat galėsite pasinaudoti mūsų specialiomis po pardavimo paslaugomis.
Pasirinkdami LSJ, pasirenkate kokybę, patikimumą ir nepasiekiama lygių palaikymo paslaugą. Laukiame galimybės tapti jūsų partneriais miestų paieškos ir gelbėjimo bei gaisrininkų veikloje. Copyright © Beijing LSJ Technology Development Co., Ltd. Visos teisės saugomos
-
Privatumo politika
infraraudonųjų spindulių kamera vandens nutekėjimams
Pažangios technologijos, leidžiančios tiksliai nustatyti vandens pažeidimus

Taupykite laiką ir pinigus naudodami infraraudonųjų spindulių kamerą

Išvengti brangių vandens pažeidimų padės ankstyvas aptikimas

Inovatyvus sprendimas, leidžiantis greitai ir efektyviai nustatyti nutekėjimus
Why choose LSJ Technology infraraudonųjų spindulių kamera vandens nutekėjimams?
Inovacinis aukštos našumos paieškos ir gelbėjimo įrangos gamintojas
Visiškas miesto paieškos ir gelbėjimo įrangos tiekimo grandinės
Įsitikinimas kokybe ir laiku pateikimu: LSJ įsipareigojimas tenkinti klientų poreikius
Kodėl LSJ gali būti jūsų pagrindinis gamintojas ir tiekėjas?
Susijusios prekių kategorijos
Nerandate to, ko ieškote?
Prašyti pasiūlymo dabar
Susisiekite su mūsų konsultantais dėl papildomų prekių.Susisiekite