тепловизионной камеры для Android определять здания. Это действительно классно и...">
,需要通过父级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);
}
});
})();
Насколько я понимаю, компания LSJ Technology имеет отличный способ научить нас определять проблемные здания с тепловая камера для Android эта действительно крутая и увлекательная технология позволяет нам видеть вещи, куда наши глаза не могут дотянуться. Когда мы наблюдаем за зданием снаружи, видны только те части, которые можно назвать его внешней стороной или отделкой (стены) и окнами/дверями. С помощью термического изображения мы можем заглянуть внутрь стен и потолков. Тест является сложным, и его способность обнаруживать внутренние проблемы до того, как они действительно возникнут, является умным способом поддержания безопасности и прочности зданий. Классные штуки — Инфракрасное изображение просто бомба! Вещи, которые помогают нам находить утечки, сквозняки или проблемы с нашим утеплителем, которые мы могли бы не заметить. Даже незначительные утечки могут позволять дождю проникать в чувствительные области, а сквозняки создают некомфортную температуру. Инфракрасное изображение также может предупредить нас о проблемах с электричеством, представляющих пожароопасность. Благодаря инфракрасному изображению мы легко проводим осмотры зданий, показывая правильные и неправильные моменты в доме, которые мы могли бы не заметить глазами. Это, в свою очередь, экономит время и деньги наших клиентов, выявляя проблемы до того, как они перерастут в дорогие большие проблемы. Выявление этих проблем на ранней стадии помогает сохранять здания безопасными и надежными. Термическое изображение, с другой стороны, работает с камерами, созданными для распознавания температурных различий. Я думаю, что эта технология довольно крутая, так как она предоставляет нам разумный способ определить места, где тепло здания уходит или проникает внутрь. Например, зимой мы можем видеть места, где теплый воздух утекает, если есть какие-либо щели. Мы также можем найти места, где находится влага, что может потребовать ремонта, даже если мы не знаем причины протечки в вашем доме. Они могут даже показать нам, где могут находиться насекомые или грызуны и т.д.! Термическая съёмка (или Инфракрасная съёмка) позволяет нам увидеть множество проблем здания, которые иначе трудно заметить человеческому глазу — следовательно, это очень полезное устройство, особенно когда речь идет о профилактическом обслуживании зданий. Термографические обследования — это очень хороший способ выполнить несколько аспектов оценки вашего дома. Эта технология помогает нам находить проблемы за секунды, что было бы невозможно без этого метода. Раннее выявление неисправностей экономит деньги наших клиентов, позволяя избежать дорогостоящего ремонта в будущем. И экономит время, так как нам больше не нужно тратить часы на поиск проблем в нашем коде. Вместо этого мы сосредоточимся на решении обнаруженных проблем как можно скорее. Таким образом, каждый получает свою долю! В нашей повседневной жизни обеспечение безопасности и энергоэффективности зданий критически важно для всех, кто находится в этих помещениях. Используя технологию термографии, мы можем определить места, где теряется энергия. Энергия может уходить через щели или протечки, что приводит к плохой эффективности обогрева и охлаждения. Это позволяет нам дать рекомендации по улучшению здания и предложить способы экономии энергии. Мы также можем выявить возможные пожарные риски, что чрезвычайно важно, поскольку это может подвергнуть опасности жизни людей, а мы все должны жить и работать в этих зданиях. С помощью теплового изображения мы можем сделать здания безопаснее и более энергоэффективными, что выгодно для всех. В LSJ мы являемся лидером в создании высококачественного оборудования для поиска и спасения в городских условиях, разработанного в соответствии с самыми строгими международными стандартами.
Предпродажное обслуживание:
Мы готовы помочь вам с самого начала. Мы предлагаем всесторонние консультации, чтобы помочь вам определить ваши конкретные потребности и предложить индивидуальные решения. Кроме того, мы проводим демонстрации продукции и предоставляем подробные технические характеристики, чтобы вы располагали всей необходимой информацией для принятия обоснованного решения.
Обслуживание в процессе продажи:
На этапе продажи мы обеспечиваем вам бесперебойный и эффективный опыт взаимодействия. Благодаря нашей эффективной системе заказов и строгому контролю качества мы гарантируем своевременную доставку товаров в идеальном состоянии. Мы также поддерживаем доставку «от двери до двери».
Послепродажное обслуживание:
Наши отношения с вами не заканчиваются после получения вами нашей продукции. Наше комплексное послепродажное обслуживание включает помощь при установке и тепловизионные инспекции. У нас есть специализированный персонал службы поддержки клиентов, доступный круглосуточно. Они оперативно решат любые ваши вопросы или проблемы и обеспечат ваше полное удовлетворение. На всю продукцию, приобретённую у LSJ, предоставляется трёхлетняя гарантия. Также вы можете воспользоваться нашими послепродажными услугами.
Выбирая LSJ, вы выбираете надёжность, высокое качество, превосходство и непревзойдённую поддержку. Мы с нетерпением ждём возможности стать вашим партнёром в области поиска и спасения в городских условиях, а также в пожаротушении. Мы, компания Thermal Imaging Inspections, понимаем, насколько важно предоставлять нашим клиентам качественные товары и превосходное обслуживание. Именно поэтому мы предлагаем гарантию сроком на один или пять лет. Это свидетельствует о нашем доверии к долговечности и качеству нашей продукции. Мы активно занимаемся научными исследованиями и разработками, чтобы обеспечить соответствие наших товаров самым высоким стандартам. Как производитель, мы соблюдаем строгий контроль качества на всех этапах — от сырья до готового изделия. Будь вы частным покупателем или дистрибьютором, участником тендера или даже государственным органом, у нас имеется широкий ассортимент продукции, способной удовлетворить ваши требования. Кроме того, мы поддерживаем большой запас сырья и других компонентов, чтобы гарантировать своевременную поставку каждого заказа. В случае невозможности доставки товаров в оговорённые сроки мы вернём вам от 2 % до 5 % стоимости покупки. Мы предоставляем подробные видеоруководства, которые помогут вам легко освоить использование нашей продукции. Также мы можем организовать выезд наших технических специалистов для проведения индивидуального обучения непосредственно на вашем объекте, что позволит вам уверенно и без затруднений эксплуатировать наши изделия. Выбирайте LSJ — высококачественная, надёжная продукция и исключительное обслуживание клиентов. Мы оказываем поддержку пожарно-спасательным подразделениям, службам обеспечения общественной безопасности, городским поисково-спасательным командам и различным военным силам. Компания LSJ предоставляет инновационное оборудование для тушения пожаров, проведения поисково-спасательных работ и выполнения тепловизионных инспекций в различных отраслях.
Тепловизионные камеры для пожаротушения: Наша команда разработала два типа тепловизионных камер, каждый из которых доступен в трёх вариантах разрешения: 256×192, 384×288 и 640×512. Эти камеры измеряют температуру до 2000 °C.
Оборудование для поисково-спасательных работ: В нашем ассортименте представлены радарные детекторы жизнедеятельности, трёхмерные радары сквозного обнаружения через стены, мониторы устойчивости, системы контроля движения и газоанализаторы.
Промышленные тепловизионные камеры: Тепловизионные камеры LSJ применяются не только при тушении пожаров, но и при инспекции зданий, ремонте электроники, выявлении утечек воды и диагностике систем отопления, вентиляции и кондиционирования воздуха (HVAC).
Тепловизионные прицелы: Наши оптические приборы ночного видения идеально подходят для наблюдения в темноте и пользуются популярностью среди охотников. Они легко устанавливаются на винтовки.
Компания LSJ предлагает высококачественное тепловизионное спасательное и диагностическое оборудование, отвечающее потребностям самых разных отраслей и повышающее эффективность и безопасность работы. Выбирайте LSJ — надёжные и передовые решения.
Вы можете быть уверены, что LSJ станет вашим главным источником поддержки при проведении городских поисково-спасательных операций. С 2013 года компания LSJ занимается разработкой, производством и поставкой высокопроизводительного оборудования для поиска и спасения, а также для пожарных. Компания LSJ получила сертификаты ISO 9001, прошла инспекции тепловизионного оборудования и соответствует требованиям директивы RoHS. Кроме того, ей принадлежит более 30 патентов. Мы активно инвестируем в отдел проектирования и исследований, поскольку являемся ведущим предприятием в отрасли. В 2024 году LSJ приняла участие в четырёх крупных международных мероприятиях: INTERSEC в Дубае, Securika 2024, 18-й выставке оборонной промышленности Азии (DSA) и 3-й Национальной выставке безопасности Азии (NATSEC) в Малайзии, а также в конференции NFPA в США. Мы также зарегистрировались для участия в выставке INTERSEC в Дубае с 14 по 16 января 2025 года. На этом мероприятии мы представим наш радарный детектор жизненных сигналов, 3D-радар, способный «видеть» сквозь стены, газоанализаторы, аудио- и видеосистемы прослушивания, оборудование для мониторинга устойчивости конструкций, а также тепловизоры для борьбы с пожарами. Приглашаем вас посетить наш стенд. У компании LSJ — 11-летний опыт производства. Она специализируется на создании и выпуске инновационных продуктов, ориентированных на конкретные сценарии применения заказчиков. Компания постоянно совершенствует свои производственные возможности и снижает себестоимость продукции. LSJ обладает большим опытом в области городского спасения и поисковых операций. В 2023 году во время землетрясения в Турции радарный детектор жизненных сигналов LSJ сыграл ключевую роль в спасательных операциях китайской команды «Голубое небо». Выбирайте LSJ, чтобы получить высокотехнологичные решения, адаптированные под ваши конкретные потребности. Все права защищены © Пекинская компания по развитию технологии LSJ. Все права защищены
-
Политика конфиденциальности
тепловизионные обследования
Возможности тепловизионного контроля при обследовании зданий

Как тепловизионное обследование может выявлять проблемы в строениях

Экономия времени и денег с помощью тепловизионных обследований при оценке недвижимости

Максимизация эффективности и безопасности зданий с использованием технологии тепловизионного контроля
Why choose LSJ Technology тепловизионные обследования?
Почему LSJ может стать вашим основным производителем и поставщиком?
Обеспечение качества и своевременной доставки: приверженность LSJ удовлетворенности клиентов
Полная цепочка поставок оборудования для городского поиска и спасения
Инновационный производитель высокопроизводительного оборудования для поиска и спасения
Сопутствующие товарные категории
Не можете найти то, что ищете?
Запросить предложение сейчас
Свяжитесь с нашими консультантами для получения дополнительных товаров.Свяжитесь с нами