...">
,需要通过父级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);
}
});
})();
Tahanan /
Nag-develop ang LSJ Technology ng isang portable na chemical detector na makakalokal ng mga mapanganib na materyales sa hangin. Ang LSJ Technology detektor ng kimikal na agen ay sapat na maliit upang maangkop sa palad ng iyong kamay subalit sapat na makapangyarihan upang panatilihin kang ligtas. Iminagine mong ikaw ay isang bombero na papasok sa isang nasusunog na gusali o isang pulis na hinahanap ang ebidensya sa isang crime scene. Gusto mong malaman kung ikaw ba ay nakapaligid sa anumang mapanganib na mga kemikal na kailangan mong protektahan ang sarili habang ikaw ay nagtatrabaho. Nagbibigay ang tool na ito sa iyo ng agarang at maaasahang mga pagbabasa ng mapanganib na mga kemikal, upang makaramdam ka ng ligtas sa anumang mga banta. Kung ikaw man ay nagsasagawa ng mga pagsubok sa isang laboratoryo o isang manggagawa na naglilinis ng isang spill, ito ay isang mahusay na tool. Isa sa mga kakaiba tungkol sa handheld detector ng kemikal ng LSJ Technology ay ang kakaya nitong matukoy kung ano ang mga hindi kilalang likido, at kahit mga pulbos. Maaari ring tingnan ng sensor na ito ang pinakamaliit na detalye ng isang sangkap na iyong dadalhin sa harap nito at sabihin kung ito ay ligtas o mapanganib. Isipin mong nasa paliparan ka, at kailangan buksan ng seguridad ang isang suspek na pakete. Kasama ang LSJ Technology na ito kagamitang deteksyon ng kemikal , maaari silang agad malaman kung ang laman ay walang masama o nakakasama. Pinoprotektahan tayo ng teknolohiyang ito. Madalas na kinakaharap ng mga tauhan sa emerhensiya at seguridad ang mapanganib na sitwasyon kung saan kailangan nilang mabilis na i-screen ang mga nakakapinsalang kemikal. Ang LSJ Technology detektor ng kemikal ay isang ganitong uri ng kasangkapan na, bilang pinakamaliit, ay maaaring magbigay sa kanila ng impormasyon upang maiwasan ang hindi ligtas na mga sitwasyon. Mula sa pagiging isang paramediko na nagpapagaling sa isang tao sa isang emerhensya, o isang guardiya de seguridad na nagsusuri sa mga bisita sa isang okasyon, ang maliit na aparato na ito ay nagpaparamdam sa iyo na mayroon kang sandigan laban sa anumang banta. Ang LSJ Technology kamera para sa deteksyon ng init ay kompakto at madaling gamitin, mahalaga para sa lahat ng unang tumutugon at mga tauhan sa seguridad. Mula noong 2013, ang Handheld chemical detector ay nagsisilbing nagpapaunlad, gumagawa, at nagbibigay ng mataas na performans na kagamitan para sa paghahanap at pagsagip, pati na rin ng kagamitan para sa mga bombero. Ang LSJ ay nakatanggap na ng mga sertipikasyon para sa ISO9001, CE, at ROHS. Ang kumpanya ay may higit sa 30 patent. Nakalaan namin ang malaking pondo para sa aming departamento ng pananaliksik at disenyo, dahil kami ay isang nangungunang negosyo. Noong 2024, ang LSJ ay kumuha ng bahagi sa apat na pangunahing eksibisyon: ang INTERSEC sa Dubai, ang Securika 2024, ang ika-18 na Defence Services Asia (DSA), ang ika-3 na National Security Asia (NATSEC) sa Malaysia, at ang NFPA sa Estados Unidos. Nakarehistro rin kami para sa INTERSEC sa Dubai mula Enero 14–16, 2025. Doon, ipapakita namin ang aming radar live detector—isa ring 3D radar na kayang makadetekta ng mga pader, gas detector, audio at video listening equipment, pati na rin ng mga kagamitan para sa stability monitoring at thermal cameras na ginagamit sa pagsugpo ng sunog. Inaanyayahan namin kayo na dumalaw sa aming booth. Ang LSJ ay may 11 taon nang karanasan sa pagmamanupaktura. Sila ay mga eksperto sa pagbuo at pagkonstruksyon ng mga bagong produkto batay sa mga aktwal na sitwasyon ng paggamit ng mga customer. Patuloy din nilang pinabubuti ang mga kakayahan at binabawasan ang gastos sa mga produkto. Ang LSJ ay may malawak ding karanasan sa urban search and rescue. Halimbawa, sa lindol ng Turkey noong 2023, ang life detector radar ng LSJ ay naglalaro ng mahalagang papel sa mga operasyon ng pagsagip ng Chinese Blue Sky Rescue Team. Piliin ang LSJ para sa mga advanced at maaasahang solusyon na idinisenyo upang tugunan ang inyong mga kinakailangan. Ang LSJ ay isang nangungunang kompanya sa merkado sa paggawa ng de-kalidad na Handheld chemical detector na sumusunod sa mga pandaigdigang pamantayan. Serbisyo Bago ang Pagbebenta: Narito kami upang tulungan ka mula sa simula pa lamang. Nagbibigay kami ng komprehensibong konsultasyon upang matulungan kang maunawaan ang iyong partikular na pangangailangan at magbigay ng mga solusyon na naaayon sa iyo. Nagbibigay kami ng mga teknikal na espesipikasyon at demonstrasyon ng mga produkto upang tulungan kang gumawa ng impormadong desisyon. Serbisyo sa Panahon ng Pagbebenta: Sinisiguro namin na ang buong proseso ng pagbebenta ay maayos at epektibo. Ang aming epektibong Handheld chemical detector kasama ang aming mahigpit na proseso ng quality control ay nagpapagarantiya na tatanggapin mo ang iyong mga produkto nang nasa oras at may mahusay na kalidad. Sumusuporta rin kami sa delivery mula sa pinto hanggang sa pinto. Serbisyo Pagkatapos ng Pagbebenta: Hindi natatapos ang aming ugnayan sa iyo kapag natanggap mo na ang aming mga produkto. Nagbibigay kami ng malawak na hanay ng serbisyo pagkatapos ng pagbebenta, kabilang ang gabay sa pag-install pati na rin ang edukasyon para sa mga gumagamit at mga serbisyo sa pagpapanatili. Mayroon kaming dedikadong koponan ng customer service na laging handang tumulong. Tutulungan ka nila sa anumang katanungan o isyu at tiyakin ang iyong kasiyahan. Kapag bumili ka ng kagamitan mula sa LSJ, bibigyan ka namin ng garantiya ng tatlong taon, at maaari mong gamitin ang partikular na serbisyo pagkatapos ng pagbebenta mula sa amin. Kapag pinili mo ang LSJ, pinipili mo ang kalidad, katiyakan, at suporta na walang katumbas. Inaasam namin ang pagiging iyong kasosyo sa urban search and rescue at sa mga bombero. Nagbibigay kami ng mga serbisyo sa mga Kagawaran ng Sunog at Pagliligtas, mga Serbisyo ng Pampublikong Kaligtasan, mga koponan ng Urban Search and Rescue (Paghahanap at Pagliligtas sa Lungsod), at iba pang pwersang militar. Ang LSJ ay nagbibigay ng mga handheld na chemical detector (detector ng kemikal na hinahawakan) para sa pagpaparalisa ng sunog, paggawa ng operasyong paghahanap at pagliligtas, at paggawa sa mga mapanganib na lugar sa iba't ibang industriya.
Mga Thermal Camera para sa Pagpaparalisa ng Sunog: Nilikha namin ang dalawang uri ng thermal camera na may tatlong opsyon sa resolusyon: 256x192, 384x288, at 640x512. Nakakasubaybay sila ng temperatura hanggang 2000.
Mga Kagamitan para sa Paghahanap at Pagliligtas: Kasama sa aming hanay ang mga life-detector (detector ng buhay) na gumagamit ng radar, 3D radar sa pamamagitan ng pader, mga stability monitor (monitor ng katatagan), mga sistema ng pagsubaybay sa galaw, at mga gas detector (detector ng gas).
Mga Industrial na Thermal Camera: Bukod sa mga thermal camera na idinisenyo para sa pagpaparalisa ng sunog, ang LSJ ay nag-ooffer din ng mga handheld na thermal camera para sa pagdetect ng tubig na lumalabas (water leak detection), inspeksyon ng gusali, pagkukumpuni ng elektroniko, pagtukoy ng kawalan ng init sa ilalim ng sahig (underfloor heating loss), at inspeksyon ng mga sistema ng HVAC (Heating, Ventilation, and Air Conditioning).
Mga Thermal Scope at Night Vision Scope: Ang aming mga night vision scope ay perpekto para sa visibility sa gabi (paningin sa gabi) at sikat sa mga mangangaso. Madaling mai-mount ang mga ito sa mga baril.
Ang LSJ ay nagbibigay ng mga thermal safety at imaging equipment (kagamitang pangkaligtasan at pag-iimprenta gamit ang init) na may pinakamataas na kalidad upang tupdin ang mga pangangailangan ng iba't ibang industriya at palakasin ang kahusayan at kaligtasan ng mga manggagawa. Pumili ng LSJ para makakuha ng pinakabagong at pinakaepektibong solusyon.
Panindigan ang LSJ bilang inyong unang kasosyo sa urban search and rescue (paghahanap at pagliligtas sa lungsod). Sa LSJ, nauunawaan namin ang kahalagahan ng pag-ooffer ng handheld chemical detector at superior na serbisyo sa aming mga customer. Nag-ooffer kami ng warranty na may bisa ng isang taon o limang taon. Ito ay nagpapakita ng aming tiwala sa tibay at kalidad ng aming mga produkto. Binibigyan namin ng malaking pondo ang pananaliksik at pag-unlad upang matiyak na ang aming mga produkto ay sumusunod sa pinakamataas na pamantayan. Bilang isang tagapag-produkto, sumusunod kami sa mahigpit na proseso ng quality control, mula sa mga hilaw na materyales hanggang sa huling produkto. Nag-ooffer kami ng hanay ng mga produkto na tumutugon sa pangangailangan ng sinumang gumagamit. Panatag din kaming may sapat na stock ng mga hilaw na materyales at komponente upang matiyak ang oras na paghahatid para sa bawat order. Kung hindi namin matutupad ang takdang panahon, magrerefund kami ng 2%–5% ng halaga ng order sa aming mga customer. Upang tulungan kayong gamitin ang aming mga produkto, nagbibigay kami ng detalyadong mga video na pampag-orientasyon. Maaari rin naming i-offer ang mga technical training sa lugar, na nakatuon sa inyong partikular na pangangailangan, upang matiyak na kayo ay makagagamit ng aming mga produkto nang may kumpiyansa at madali. Piliin ang LSJ para sa mataas na kalidad, matibay na mga produkto, at napakahusay na serbisyo sa customer. Copyright © Beijing LSJ Technology Development Co., Ltd. Lahat ng mga Karapatan Ay Nakikilala
-
Patakaran sa Pagkapribado
Kamay na detektor ng kimika
Portable na proteksyon mula sa nakakapinsalang kemikal

Maliit na aparatong para sa mabilis at tumpak na pagtuklas

Sensor na hawak-kamay para kilalanin ang mga hindi kilalang likido at pulbos

Kagamitang maginhawa para sa mga unang tumutugon at tauhan ng seguridad
Why choose LSJ Technology Kamay na detektor ng kimika?
Pag-uunlad ng High-Performance Search and Rescue Equipment Manufacturer
Bakit maaaring maging tagapaggawa at tagasupply ng primer ang LSJ?
Isang Kompleto na Ekipamento para sa Urban Search at Rescue Supply Chains
Pagpapatibay ng Kalidad at Kaugnay na Pagpapadala: Ang Paggawa ng LSJ para sa Kagustuhan ng Mga Kliyente
Mga kaugnay na kategorya ng produkto
Hindi makahanap ng hinahanap?
Humiling ng Quote Ngayon
Makipag-ugnay sa aming mga konsultant para sa iba pang mga produkto.Makipag-ugnayan