veik...">
,需要通过父级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);
}
});
})();
Nešiojamieji šilumos vaizdo kameros yra puikios priemonės, leidžiančios matyti tai, ko akys nemato. Šios specializuotos uSB termino kamera veikia aptikdamos šilumos signalus, todėl yra labai naudingos įvairiose situacijose. Atėjo laikas kalbėti apie nešiojamąsias šilumos vaizdo kameras ir visas nuostabias jų galimybes Priešingai nei daugelis kitų prekių, automobiliai tampa pigesni, kai pradeda senėti. Tačiau mes galime padaryti taip, kad jūsų naudoti automobiliai būtų vertinami aukščiau nei rinkoje. Mes pateikiame tikslų automobilio vertės nustatymą pagal istorinius duomenis ir esamą rinkos tendencijas. Kas yra nuostabu apie rankinius termininė kamera usb yra tai, kaip jie lokalizuoja šilumos parašus. Šios kameros turi unikalų jutiklį, kuris gali „matyti“ pačią šilumą kaip infraraudonąją šviesą. Kai kas nors yra karšta, ji skleidžia infraraudonąją šviesą, kurią gali užfiksuoti kamera. Tai leidžia matyti karštus daiktus, net kai visiškai tamsu. Tai panašu į naktinio matymo priemonę, tik skirtą šilumai! Rankiniu būdu termininė kamera tipo c gali aptikti šilumos parašus iš šimtų pėdų atstumo, kai reikia, todėl jos idealiai tinka ilgo nuotolio peržvalgai. Jos gali nustatyti objekto tikslų temperatūrą, kad galėtumėte greitai nustatyti, ar kažkas yra karšta ar šalta. Paslėpti pavojai gali būti kliūtimi dirbantiems vieniems, ir čia gali prireikti termovizinės kameros. Tarp visų puikių dalykų, kuriuos galima pasakyti apie rankinius šiluminius kameras, jų naudojimo patogumas yra vienas geriausių. Šios kameros yra mažos ir lengvos, jas galima įsikišti į užpakalinę kišenę kaip iPhone, nešioti kišnėje arba įmesti į diržinę kuprinaitę ir imti bet kur. Jei kyla pasivaikščioti į kalnus, vykstate į mišką nakvynės kelionę ar tiesiog mėgaujatės savo užpakalinio kiemo aplinka, galite naudoti pernešamąją šiluminę kamerą nuo LSJ Technology, kad matytumėte dalykus taip, kaip mažai kas gali. Be to, su dviem pakraunamais akumuliatoriais galite filmuoti kamerą valandų valandas nesijaudami, kad baigsis energija. Priešgaisrinėms operacijoms naudojami nešiojamieji šilumos vaizdo kameros. Gaisro gesinimo darbuose ugniagesiai išgelbia žmones iš degančių pastatų. Policijos pareigūnai sulaiko nusikaltėlius, slepiantis tamsybėse. Paieškos ir gelbėjimo komandos ieško praradusiųjų gamtoje. Statybos darbuotojai ieško karštų vietų elektros sistemose. Medžiotojai medžioja gyvūnus miškuose. Nors tai būtų bet kokia veikla, LSJ Technology nešiojamasis šilumos vaizdo kamera padės pamatyti pasaulį nauju būdu. Mes teikiame paslaugas rankinėms šilumos kameroms skirtoms tarnyboms, taip pat viešosios saugos tarnyboms ir miesto paieškos bei gelbėjimo komandoms. LSJ siūlo naujausią įrangą paieškai ir gelbėjimui, gaisrų gesinimui bei darbui sprogstamose aplinkose įvairiose srityse.
Gaisrų gesinimo šilumos kameros: Mūsų komanda sukūrė ir išbandė dvi šilumos kamerų rūšis su trimis skiriamąja geba: 256×192, 384×288 ir 640×512. Šios kameros gali matuoti temperatūrą iki 2000 °C.
Paieškos ir gelbėjimo įranga: Siūlome keletą produktų, tokių kaip dujų detektoriai, stabilumo stebėjimo sistemos ir judėjimo stebėjimo sistemos.
Pramoninės šilumos kameros: LSJ siūlo šilumos kameras, kurios naudojamos ne tik gaisrų gesinimui, bet taip pat pastatų apžvalgoms, elektronikos remontams, vandens nuotėkų aptikimui ir šildymo, vėdinimo ir oro kondicionavimo (HVAC) sistemų patikrinimams.
Šilumos optiniai prietaisai – mūsų naktinio matymo optika puikiai tinka matomumui naktį. Ji taip pat labai populiaru tarp medžiotojų. Ją lengva pritvirtinti prie šautuvų.
LSJ yra įsipareigojusi teikti aukščiausios kokybės šiluminio vaizdavimo ir gelbėjimo įrangą, atitinkančią įvairių pramonės šakų reikalavimus, kad būtų padidinta visų sektorių sauga ir veiksmingumas. LSJ siūlo patikimiausius ir šiuolaikiškiausius sprendimus.
Galite pasitikėti LSJ kaip savo pagrindiniu partneriu miesto paieškos ir gelbėjimo veikloje. „LSJ“ mes manome, kad rankinės šilumos kameros turi būti aukštos kokybės ir kad klientams reikia teikti puikią aptarnavimo paslaugą. Todėl siūlome vienerių ar penkerių metų garantijas. Tai rodo mūsų pasitikėjimą savo produktų kokybe ir veikimu. Daug lėšų skiriame tyrimams ir plėtrai, kad užtikrintume, jog mūsų produktai atitinka aukščiausius standartus. Kaip gamintojai taikome griežtus kokybės kontrolės reikalavimus nuo pat pradžios iki galutinio produkto. Siūlome įvairių produktų asortimentą, kuris tenkina visų vartotojų poreikius. Mūsų komponentų, žaliavų ir kitų prekių atsargos yra pakankamai didelės, kad užtikrintume laiku vykdomą pristatymą. Jei negalime pristatyti prekių laiku, grąžinsime jums iki 5 % sumos. Kad padėtume jums naudoti mūsų produktus efektyviai, pateikiame išsamias mokomąsias vaizdo medžiagas. Taip pat siūlome techninį mokymą vietose, kuris yra specialiai pritaikytas jūsų poreikiams, kad galėtumėte lengvai ir efektyviai naudoti mūsų produktus. Pasirinkite „LSJ“ – dėl kokybiškų, patikimų produktų ir puikaus klientų aptarnavimo. Nuo 2013 m. įmonė LSJ kuria, tiekia ir parduoda didelės našumo paieškos ir gelbėjimo bei gaisrininkų įrangą. Įmonė LSJ yra gavusi sertifikatus pagal ISO9001, CE ir ROHS standartus. Be to, ji turi daugiau nei 30 patentų. Kaip lyderė šioje srityje, 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). Taip pat esame užsiregistravę dalyvauti INTERSEC parodoje nuo 2025 m. sausio 14–16 d., kur demonstruosime rankines šiluminės kamerų sistemas, gyvybės aptikimo radarą tikrojo laiko režimu – 3D radaro sistemą, kuri gali prasiskverbti per sienas, dujų detektorių, garso ir vaizdo stebėjimo įrangą, stabilumo stebėjimo įrangą bei šilumines kameras gaisrams gesinti. Šilčiausiai kviečiame apsilankyti mūsų stende. Įmonė LSJ turi daugiau nei 11 metų patirties gamyboje. Ji specializuojasi kurdama ir gaminama naujus produktus, remdamasi klientų konkrečiomis naudojimo sąlygomis. Be to, įmonė nuolat tobulina savo galimybes ir mažina produktų kainas. LSJ turi išsklaidytos patirties miestų gelbėjimo ir paieškos srityje. Pavyzdžiui, 2023 m. Turkijos žemės drebėjimo metu LSJ gyvybės aptikimo radaras svarbiai prisidėjo prie Kinijos „Mėlynojo dangaus gelbėjimo komandos“ vykdytų gelbėjimo veiksmų. Pasirinkite LSJ patikimus, pažangius sprendimus, kurie yra pritaikyti būtent jūsų specifinėms poreikio sąlygoms. LSJ yra pirmtakas kurdama aukščiausios kokybės miestų paieškos ir gelbėjimo įrangą, atitinkančią rankinės šiluminės vaizdo kameros reikalavimus.
Pardavimų priešpriešo paslaugos:
Mūsų specialistų komanda visada pasirengusi jums padėti nuo pat pradžių. Siūlome išsamias konsultacijas, kad suprastumėte savo konkrečius reikalavimus ir pasiūlytume individualizuotus sprendimus. Taip pat teikiame detalias produktų demonstracijas ir technines specifikacijas, kad turėtumėte visą būtiną informaciją, priimdami apgalvotą sprendimą.
Pardavimų paslaugos:
Užtikriname, kad visasis pardavimų procesas būtų beproblemis ir efektyvus. Mūsų efektyvi užsakymų sistema kartu su griežta kokybės kontrolės sistema garantuoja, kad jūsų prekės pristatomos laiku ir puikiomis sąlygomis. Taip pat teikiame „durų prie durų“ pristatymo paslaugą.
Pardavimų po paslaugos:
Po jūsų prekių pristatymo mūsų bendradarbiavimas su jumis nesibaigia. Teikiame išplėstines pardavimų po paslaugas, tokias kaip montavimo pagalba, vartotojų mokymas, taip pat techninė priežiūra ir remontas. Mūsų aptarnavimo klientus specialistai visada pasirengę padėti jums su bet kokiomis problemomis ar klausimais, kad užtikrintumėte jūsų visišką patenkinamumą. Įsigijus įrangą iš LSJ, suteikiame tris metus trunkančią garantiją ir konkrečias pardavimų po paslaugas.
Pasirinkdami LSJ pasirenkate patikimumą, kokybę ir nepasiekiamas paslaugas. Norime būti 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
Rankiniai termo kamerai
Kaip rankinės šilumos vaizdo kameros aptinka šilumos parašus

Rankinių šilumos vaizdo kamerų galimybės
Rankinių šilumos vaizdo kamerų patogumas naudoti nuolat judant

Rankinių šilumos vaizdo kamerų panaudojimas įvairiose pramonės šakose
Why choose LSJ Technology Rankiniai termo kamerai?
Visiškas miesto paieškos ir gelbėjimo įrangos tiekimo grandinės
Įsitikinimas kokybe ir laiku pateikimu: LSJ įsipareigojimas tenkinti klientų poreikius
Inovacinis aukštos našumos paieškos ir gelbėjimo įrangos gamintojas
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