нэмэлт ордон төрлийн шанцарууд хүснэ үү? ...">
,需要通过父级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-ийн бүтээлүүдийг сонго! Дулаан, хэрэглэх хялбар байдалтай солилцоо хүүрдмүүрүүд Өндөр техник шаардлагатай солилцоо орнууд нь үйлчлүүлэгсдийн анхны тусламжийн түвшнийг дуурь бүх медицин бүтцүүдэд дагуу сайжруулж өгдөг. Таны шаардлага нь ерөнхий үйлчлүүлэгсдийн хүртээмүүр орнууд, эсвэл тодорхой клиник шаардлагуудыг хангах зүрхлүүр орнууд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бүхнүүд бү...... солилцоо xIEHE MEDICAL-д итгэж, та бүхний медицин бүтцүүдийн хүртээмүүр орнуудын бүх шаардлагуудыг хангахад бид нарийн хамтран ажилламуй. Бидний бүх төрлийн хүртээмүүр орнууд та бүхний хүртээмүүр орнуудын шаардлагуудыг хангаж өгдөг.</p> номхон худалдааны хүртээмүүр орнууд, номхон худалдааны хүртээмүүр орнууд, номхон худалдааны хүртээмүүр орнууд, номхон худалдааны хүртээмүүр орнууд, ABS хүртээмүүр орнууд: Танилцуулалт: Энэ хүртээмүүр төлөөрүүл — өндөр хүчтэй алюмини хавтгай сплавын зүрхлүүр хүртээмүүр орнууд, түүний бүтэц маш хүчтэй. Бид маш олон төрлийн эмнэлгийн ор хИЙХЭЭ-ийн эмнэлэгт борлуулалтын ноолуурыг худалдаж авна. солилцоо эмнэлгийн салбарт өдөр тутмын хэрэглээний шаардлагыг тэсвэрлэх, өвчтөнд тусламж үзүүлэх урт удаан эдэлгээтэй, урт удаан хугацааны шийдлийг санал болгохын тулд зориулагдсан. солилцоо өглөөний хэрэгцээг хангах бүтээгдэхүүнтэй, эмнэлгийн хэрэгцээг хангах бүтээгдэхүүнтэй, солилцоо өндөр өрсөлдөх чадвартай үнэтэй унтлагын газар. Хамгийн шилдэг нь солилцоо эмнэлгийн байгууллагуудын хувьд, XIEHE & amp; MEDICAL бол та итгэх ёстой нэр юм. Эмчэд амархан, аюулгүй шилжүүлэн суулгахын тулд анхааралтай зохион бүтээгдсэн. солилцоо унтлагын загвар нь хамгийн нарийн нарийвчилгааг анхаарч бүтээгддэг. Манай солилцоо style-ийн орд нь өндөр, доош, илүү өндөр түвшинд хүрч, тохируулж болох өндөр, хаалттай дугуй ашиглаж, эмнэлгийн байгууллагадаа цаг хугацааны туршилтыг тулгарахад найдвартай орд санал болгодог. ХЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭ солилцоо өвчтөнд тайвшрал, аюулгүй байдлыг хангадаг хэвтэл. ХИЕХЭ МЭДИЦАЛ нь таатай, тохиромжтой үйлчилгээг үзүүлдэг. эмнэлгийн ор хөдөлгөөнтэй байдал эрүүл мэндийн байгууллагуудад өвчтөнд хандах үйлчилгээг эрчимжүүлэхэд тусална. Манай хөдөлгөөнтэй байдал өргөтгөх өрөөний хувьд хямдхан, амархан, амархан, хямдхан, хялбар, хялбар, хялбар, хялбар, хялбар, хялбар, хялбар, хялбар, хялбар, хялбар, хялбар, хялбар, хялбар, эмнэлгийн ор хөдөлгөөнтэй байдал өвчтөнд амар амгалан, халамжлагчдад тохиромжтой. Эмнэлэгт өвчтөнд хандах тусламж үйлчилгээг "XIEHE" эмнэлгийн хатуу, тогтвортой тусламжтайгаар өөрчлөх солилцоо оруудыг өөрийн эмнэлэгт суулгаж, өвчтөний эмчилгээний түвшнийг дээшлүүлээрэй. Бидний солилцоо Хүүрдмүүрүүд нь өвчтөнүүд болон үйлчлүүрүүдийн хэрэгцээнд тааруулан хийн тавьж, түүнд хамгийн төвд бүхнийг хангах зүйлс — дулаан, аюулгүй байдал, ашиглалтын хялбар байдал орж буй. Таны өвчтөнүүд ямар ч аварга нөхцөлд бүүрхийн гарч ирж буй, эсвэл зүгт шилжүүлэх шаардлагатай буй — бидний солилцоо хүүрдмүүрүүд бүх өвчтөнүүдийн хувьд тогтвортой, аюулгүй платформыг саналд тавьж. Таны клиникт өвчтөнүүдийн хувьд хүүрдмүүрүүдийг сонгохдоо XIEHE MEDICAL-ийн бүтээлүүдийг сонго! солилцоо хүүрдмүүрүүд — өвчтөнүүдийн хувьд хүүрдмүүрүүд, таны клиникт өвчтөнүүдийн хувьд илүү сайн үр дүн үзүүлж. Сиэхэ Медикал Аппаратууд шинэ бүтээгдэхүүн боловсруулах, судалгаа хийхэд хамгийн өндөр түвшинд зориулалттай бөгөөд борлуулалтын өрсөлдөх чадвартай бүтээгдэхүүнүүдийг санал болгодог. Эмнэлгийн ор, зөөлөгч, анхны тусламжийн бүтээгдэхүүнүүдийн дунд оюуны өмчийн хамгаалалттай олон патентуудтай. Бүтээгдэхүүнүүд нь орчин үеийн дагуу хийгдсэн бөгөөд хэрэглэгчдийн хэрэгцээг хангах чадварын үр дүнд дотоод болон гадаадын хэрэглэгчдээс өндөр үнэлгээ авч байна. Xiehe Medical Apparatus Instruments — үндэсний төвшиний анхдагч сүүлийн үеийн анхдагч медицин техник үйлдвэрлэгч. Бид мөн професиональ үйлчилгээ үзүүлдэг. Бидний бүх бүтээд ТÜV, CE ба FDA-ийн сертификатыг хүлээн авч, ISO13485 чанарын удирдлагын системд дагаж ажилладаг. Бидний экспертийн бүрдүүлэлт баг нь хурдан хариу үзүүлж, худалдан авагчдын хүссэн шанцарууд, нэмэлт ордон шанцарууд, хурдхан шанцарууд, нэмэлт ордон зүйлс, үхлийн техник гэх мэт бүх төрлийн шанцаруудын үйлдвэрлэлд өндөр чанарын, тогтвортой бүтээдүүдийг нийлүүлдэг. Хурдхан шанцар, нугаламуй шанцар, нэмэлт ордон зүйлс, үхлийн техник гэх мэт бүх төрлийн шанцаруудын үйлдвэрлэлд Xiehe Medical Equipment худалдан авагчдын хүссэн шанцаруудын үйлдвэрлэлд өндөр чанарын, тогтвортой бүтээдүүдийг нийлүүлдэг. Hehe Medical Equipment нь больницын шилжүүлэгчийн хандахыг амжилттай байлгахад эрчимтэй байдаг болно. Бид өөрийн ажилтануудын ардчлан ажиллах зорилгоор, дараа нь технологи дээрх санал хүсэлтийг хангахад туслах боломжтой. Бидний зорилго нь өөрийн үйлчлүүлэгчдээртэй хамтран ажиллах, хамтран ашиглагдаж буй холбоо үүсгэх, эргэлзээгүй үйл ажиллагаа үзүүлэх болон өндөр чанарын үйлчилгээ, бүтээгдэхүүн үзүүлэх юм. Xiehe Анагаах ухааны төхөөрөмж хэрэгсэл нь дэлхийн арилжааны маркетингийн болон борлуулалтын стратегид зориулагдсан. манай түншүүдийн 10 гаруй жилийн тусламжтайгаар 120 гаруй оронд 30 гаруй дистрибьютертэй.хасралттай шуурхайны төмрөөс
Эмнэлгийн байгууллагуудад зориулсан шилдэг чанарын тээврийн түр зогсоолтой орнууд

Өвчтөнд тохиромжтой, ашиглахад хялбар эмнэлгийн тээврийн орнууд

Итгэлтэй тээврийн орнуудын тусламжтайгаар өвчтөний эмчилгээг сайжруулалт

Таны эмнэлгийн байгууллагын бүх шаардлагыг хангах итгэлтэй тээврийн орнууд
Why choose XIEHE MEDICAL
хасралттай шуурхайны төмрөөс?
Шинжлэх ухааны өргөтгөл ба бүтээгдэхүүнийг борлуулах нэгдсэн товчлол
Өндөр чанартаа бүтээгдэхүүнүүд болон их сурталчилгаатай үйлчилгээ
Хариуцлагатай үйлчилгээ, үйл ажиллагааны үйлчилгээ
Дундад бүтээгдэхүүн нь дэлхийн маркетингийн жорын төвөөс гарч ирээд байна
Холбоотой бүтээгдэхүүний ангилал
Хайж буй зүгээ олж чадаагүй байна уу?
Одоогоор санал хүсэлт ирүүлэх
Боломжит бүтээгдэхүүний талаар илүү дэлгэрэнгүй мэдээлэл авахын тулд бидний зөвлөхтэй холбоо барилцаа уу.Холбогдох