barelle progettate per...">
,需要通过父级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);
}
});
})();
XIEHE MEDICAL fornisce EMS di alta qualità lettini ospedalieri progettati per un trasporto del paziente più agevole in situazioni di emergenza. I nostri lettini ospedalieri sono progettati per durare, garantire sicurezza e comfort e supportarvi in tutto il mondo come professionisti sanitari. Con numerose opzioni all'avanguardia nel settore, un peso ridotto e prezzi competitivi per ordini all'ingrosso, gli EMS XIEHE MEDICAL lettini ospedalieri rappresentano una scelta perfetta per gli acquirenti all'ingrosso alla ricerca di attrezzature di qualità. Continua a leggere per saperne di più su come i nostri lettini ospedalieri possono aiutare nell'assistenza al paziente e nella risposta alle emergenze. In medicina d'emergenza, i tempi possono fare la differenza. È per questo che offriamo le barelle EMS XIEHE MEDICAL lettini ospedalieri con una struttura leggera e resistente, che ne facilita la manipolazione in situazioni critiche. Le nostre lettini ospedalieri sono costruite con materiali di altissima qualità per garantire un uso prolungato e resistere all'usura quotidiana, pur rimanendo sufficientemente leggere per un trasporto rapido. La durata e la portabilità delle nostre lettini ospedalieri permettono ai professionisti sanitari di fare affidamento sulle nostre lettini ospedalieri per spostare in modo sicuro, efficace e rapido i pazienti durante le emergenze, senza alcun compromesso sulla qualità o sulle prestazioni. Noi di XIEHE MEDICAL sappiamo che la sicurezza e il comfort del paziente sono fondamentali durante il trasferimento. Per questo i nostri EMS lettini ospedalieri sono dotati di caratteristiche all'avanguardia progettate per mantenere la cura del paziente come priorità assoluta. Dai poggiatesta regolabili alle sponde laterali, fino ai meccanismi di bloccaggio sicuri e alle maniglie ergonomiche, abbiamo progettato i nostri lettini ospedalieri per garantire il massimo comfort e sicurezza per tutta la durata del trasporto. Il personale medico può fare affidamento sui prodotti XIEHE MEDICAL lettini ospedalieri per offrire un trasporto sicuro e confortevole ai pazienti, mantenendo il processo il più semplice e privo di stress possibile. Come uno dei principali produttori di EMS barella linee di prodotti di XIEHE MEDICAL, la consolidata reputazione mondiale garantisce prodotti affidabili che diventano la scelta dei clienti in tutto il mondo. La nostra dedizione alla qualità, alla sicurezza e all'innovazione ha portato alla produzione di apparecchiature mediche in grado di salvare vite umane o proteggere investimenti del valore di milioni di dollari. Dall'ospedale all'ambulanza fino alla clinica, i nostri lettini ospedalieri sono da tempo la scelta dei fornitori di assistenza sanitaria in tutto il mondo. Se qualità e durata sono fondamentali, gli EMS di XIEHE MEDICAL lettini ospedalieri sono esattamente ciò che il medico (o l'addetto al soccorso) ha prescritto. XIEHE MEDICAL comprende l'esigenza fondamentale di valore nelle istituzioni sanitarie e negli acquirenti all'ingrosso. La soluzione consiste quindi nel rendere i nostri prodotti i più convenienti sul mercato, offrendo costi ridotti per acquisti in volume dei nostri EMS di alta qualità barella . L'acquisto all'ingrosso può far risparmiare alle strutture sanitarie una notevole quantità di denaro, garantendo al contempo che non rimangano mai senza prodotti di alta qualità lettini ospedalieri . PARTNER ECONOMICO E RICCO DI VALORE Siamo il miglior partner e la fonte centrale per acquirenti all'ingrosso di EMS di qualità lettini ospedalieri che è sia ragionevolmente prezzato che elevato nella qualità. Xiehe Medical Apparatus Instruments dimostra un'immutabile dedizione all'innovazione e alla ricerca e sviluppo, nonché alla creazione di prodotti con punti di forza competitivi. Siamo orgogliosi proprietari di una serie di brevetti e diritti di proprietà intellettuale, tra cui barelle EMS, articoli per il primo soccorso, arredamento ospedaliero e prodotti funebri. I prodotti sono realizzati per soddisfare le esigenze dei clienti e restare al passo con le ultime tendenze. Questi prodotti sono molto apprezzati sia dai clienti nazionali che internazionali. Xiehe Medical Apparatus Instruments si è impegnata in una strategia di marketing e vendite globale. Contiamo su più di 30 distributori operativi in oltre 120 paesi, grazie al supporto di più di 10 anni da parte dei nostri partner. Ci sforziamo di stabilire relazioni a lungo termine con i distributori e gli integratori per costruire insieme il futuro con i lettini ems. Hehe Medical Equipment dà la massima priorità alla soddisfazione del cliente e si impegna a soddisfare i requisiti dei propri clienti con un elevato livello di eccellenza e affidabilità. Il nostro team di dipendenti altamente motivati e la nostra tecnologia per lettighe EMS ci consentono di offrire ai clienti un servizio personalizzato di qualità superiore, garantendo che le loro esigenze siano pienamente soddisfatte. Il nostro obiettivo è sviluppare una relazione duratura, stabile e reciprocamente vantaggiosa con i clienti, offrendo loro prodotti e servizi di alta qualità. In quanto produttore professionale di dispositivi medici, Xiehe Medical Apparatus & Instruments fornisce prodotti di alta qualità nonché servizi specializzati. Tutti i prodotti sono certificati TÜV, CE e FDA e rispettano il sistema di controllo qualità ISO 13485. Disponiamo di un team dedicato in grado di rispondere tempestivamente alle esigenze dei clienti, fornendo lettighe EMS di elevata qualità e stabilità. Che si tratti di lettighe per ambulanze, lettighe pieghevoli, arredamento per ospedali o articoli funerari, Xiehe Medical Equipment offre la soluzione adatta.lettino EMS
Design leggero e resistente per una facile manovrabilità in situazioni di emergenza

Caratteristiche innovative per garantire il massimo comfort e sicurezza ai pazienti

Fidato da professionisti sanitari in tutto il mondo per prestazioni affidabili

Prezzi competitivi per ordini all'ingrosso per soddisfare le esigenze degli acquirenti wholesale
Why choose XIEHE MEDICAL
lettino EMS?
Ricerca e sviluppo innovativi e punti di forza del prodotto
Rete di marketing globale e partner stabili
Servizio post-vendita rapido e supporto tecnico centrati sul cliente
Prodotti di alta qualità e servizi specializzati
Non trovi quello che stai cercando?
Richiedi un preventivo ora
Contatta i nostri consulenti per ulteriori prodotti disponibili.Contattaci