sont fabriqués...">
,需要通过父级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 est l'un des meilleurs fabricants et fournisseurs de brancards de secouristes en Chine. Notre brancards hospitaliers sont conçus pour garantir le transport des patients en toute confort et sécurité. Conçus avec des matériaux de haute qualité et dotés de fonctionnalités innovantes, nos brancards offrent une sécurité et une efficacité maximales en cas d'urgence. XIEHE MEDICAL – votre choix fiable pour les brancards médicaux. Soutenu par la qualité et la performance, XIEHE MEDICAL est un leader dans la fourniture de brancards pour ambulanciers destinés aux hôpitaux, aux ambulances et autres services EMS. À la recherche de fournisseurs fiables de brancards pour ambulanciers, plusieurs facteurs doivent être pris en compte : tout d'abord, la qualité du produit est essentielle. XIEHE MEDICAL se positionne en tête dans le domaine des brancards pour ambulanciers et propose de nombreux modèles adaptés à différents environnements. Notre personnel s'engage à offrir un service et un support excellents aux clients, rendant votre expérience d'achat simple et vous permettant d'obtenir les produits rapidement, même en grandes quantités. En choisissant XIEHE MEDICAL, vous pouvez être assuré de recevoir les meilleurs brancards qui répondent aux normes et attentes du secteur. Contactez-nous dès aujourd'hui pour obtenir les détails sur les brancards pour ambulanciers que nous proposons dans le cadre d'une vente en gros ! Lors du choix d'un brancard pour secouristes, il est important de prendre en compte quelques caractéristiques essentielles. XIEHE MEDICAL propose une gamme complète de brancards hospitaliers conçus pour un transport sécurisé et facile des patients. L'une des considérations porte sur la limite de poids du brancard. Pour accomplir efficacement le travail, vous aurez besoin d'un brancard suffisamment solide pour supporter le poids de la personne transportée. Les brancards médicaux de XIEHE MEDICAL sont fabriqués en matériaux de haute résistance et disposent de capacités de charge conformes aux normes du secteur. Un autre aspect important à garder à l'esprit lors du choix d'une civière de secouriste est le confort. La forme rembourrée des civières XHEIHE MEDICAL peut procurer un confort au patient et améliorer sa sécurité. Merde, oubliez les aiguilles et les bras (cela combat cette sensation de gonflement) - dans une large mesure, vous pouvez l'éviter avec une civière bien conçue. COMMANDEZ LA VÔTRE AUJOURD'HUI L'eMerGency-ReDs est conçue pour réduire les points de pression, afin d'assurer le confort du patient lors du transport vers des établissements médicaux en cas de mauvaise mobilité. Les civières XIEHE MEDICAL sont le meilleur choix pour le transport des patients. Elles constituent un modèle polyvalent spécialement conçu pour les secouristes et les professionnels de santé, permettant de déplacer les patients en toute sécurité en situation d'urgence. Dotées d'un design robuste, d'une mobilité à roulement fluide et d'un confort pensé pour le patient, les civières XIEHE MEDICAL sont parfaitement adaptées à tout hôpital ou service d'urgence. Lors de l'achat de brancards de secouristes en gros, il y a quelques questions importantes que vous pouvez poser afin de vous assurer que l'argent que vous dépenserez en vaut la peine. Une question essentielle concerne la garantie et l'entretien des brancards. XIEHE MEDICAL offre non seulement une garantie à vie sur chaque brancard, mais propose également des plans d'entretien pour assurer leur longévité. Une autre question que vous pouvez poser lors d'une commande groupée de brancards de secouristes porte sur les fonctionnalités personnalisables. XIEHE MEDICAL propose plusieurs versions personnalisées afin que vous puissiez choisir les caractéristiques qui répondent le mieux aux besoins de votre établissement. Que vous souhaitiez plus de rangement, des supports pour perfusion, voire même un emplacement pour votre téléphone portable ou une boisson pendant le transport, XIEHE MEDICAL peut adapter ses brancards selon les demandes de ses clients. Le brancard pour secouristes de Hehe Medical accorde la priorité à la satisfaction clientèle ; nous nous efforçons de répondre aux exigences des clients avec un haut niveau d'excellence et de fiabilité. Nos employés passionnés et nos technologies collaboratives nous permettent d'offrir un service personnalisé de qualité supérieure, garantissant ainsi une réponse efficace aux besoins de nos clients. Notre objectif est d'établir un partenariat durable, solide et coopératif avec nos clients, et de leur fournir des produits et services de première qualité. En tant que fabricant professionnel d'équipements médicaux, Xiehe Medical Apparatus Instruments fournit des produits de haute qualité et des services spécialisés. Nous appliquons strictement le système de contrôle qualité ISO13485, et tous nos produits sont certifiés par TUV, CE, FDA, entre autres. Nous disposons d'une équipe de brancards médicaux capable de répondre rapidement aux demandes des clients en fournissant des produits de haute qualité et stables. Lorsque vous avez besoin d'un brancard pour ambulance ou de meubles pliants pour hôpitaux ou articles funéraires, Xiehe Medical Equipment a la solution. Xiehe Medical Apparatus s'engage fermement dans l'innovation et le développement (R&D) ainsi que dans l'offre de produits ayant des arguments de vente compétitifs. Des brevets et droits de propriété intellectuelle sont protégés pour les brancards médicaux, les produits de premiers secours ainsi que les meubles pour hôpitaux et produits funéraires. Les produits sont conçus pour répondre aux exigences des clients et suivre les tendances actuelles. Ces produits sont très appréciés à la fois par les clients internationaux et locaux. Xiehe Medical Apparatus Instruments : brancard pour secouristes destiné à la commercialisation et aux ventes à l’échelle mondiale. Grâce à dix années de travail et au soutien de ses partenaires, l’entreprise compte désormais plus de 30 distributeurs à travers le monde, et ses produits sont disponibles dans plus de 120 pays. L’entreprise privilégie la création de partenariats à long terme avec des intégrateurs ainsi qu’avec des distributeurs, afin de construire ensemble l’avenir.brancard des pompiers
Brancard de qualité supérieure pour achat en gros

Où trouver des fournisseurs fiables de brancards pour secouristes

Quelles sont les caractéristiques clés à rechercher dans un brancard pour secouristes

l'outil ultime pour le transport de patients
Why choose XIEHE MEDICAL
brancard des pompiers?
Orienté client Service après-vente rapide et support technique
Produits de haute qualité et services spécialisés
Recherche et développement innovants et points forts du produit
Réseau de marketing mondial et partenaires stables
Catégories de produits associés
Vous ne trouvez pas ce que vous cherchez ?
Demandez un devis maintenant
Contactez nos consultants pour plus de produits disponibles.Contactez-nous