kalitate handikoak hornitzeko...">
,需要通过父级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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
phone: nodeText,
},
}, '*');
_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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
phone: nodeText,
},
}, '*');
_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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: 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')) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: content,
},
}, '*');
_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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: 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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: 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 kalitate handikoak hornitzean espezializatuta dago pertsonen kantitatea saltze higatzaileak. Sharps ontzi hauek osasun-arloetako instalazioetan eta sendagileen bulegoetan erabilitako jareginak, siringak eta beste objektu medikur zorrotz batzuk segurtasunez bota daitezen beharrezkoak dira. Sharps ontziak erabiltzearen onurak asko dira ospitaleetan eta beste osasun-zerbitzu instalazio batzuetan: lesioen murrizketa, infekzioen gutxiketa. Artikulu honetan, sharps ontziak osasun-arloko industrian balio handikoa diren arrazoiak aztertuko ditugu, baita saltze higatzailean eskuragarri dauden produktu hoberenetaz ere aipamenik eginez. Jaregin-istripuak saihestea da sharps ontziak ingurumen medikoan erabiltzeko arrazoia nagusia. Jareginak bezalako hondakin zorrotz arriskutsuek osasun-langileen artean istripuak eragin ditzakete, eta gaixotasunak hala nola VIH edo hepatitsa izan daitezke desegin dezaketelako praktika okerrak direla eta. Osasun-instalazioek lesio horiek nabarmen murriztu ditzakete bereziki diseinatutakoak hornituz hornikuntzak hondakinak bota ahal izateko ontziak. Hau ez da soilik parte hartzaileen segurtasunerako, baizik eta lan-ingurune seguruagoa sortzeko ere. Gainera, behatzeko tresnen baliogabetze egokia ontzi berezietan infekzio-kudeaketaren alderdi bat da. Erabilitako jareak eta siringak patogen arriskutsuekin nahastuta egon daitezke, eta infekzioak hedatu ditzakete behar bezala ez badira baliogabetzen. Hornikuntza ontzi aipaturiko elementuak segurtasunez edukitzeko eta gaixotasuna eragiten duten mikroorganismoekin kontaktua izateko arriskua murrizteko diseinatuta daude. Hau garrantzitsua izan daiteke erakunde medikoen barnean gaixotasunen hedapena ekiditeko eta pazienteak eta langileak babesteko. Segurtasun gehiagoarekin batera hornikuntza ontzi etxekide den erantzunkizun ekologikoa. Hornikuntza ontzi normalean zulaketa-erresistenteak diren materialak osatzen dute, bazterketan tresneria zorrotzekin jasaten dituzten sarrerak eta bere integritatea mantentzen dituztenak. Horrela, hondakin kutsatuak hornikuntzak eraginkortasunez mugatuta daude, ingurumena kutsaketetatik babestuz. Hondakin medikoen kudeaketa seguruak oso garrantzitsua da garbitasun eta osasungarriaren ingurune garbia mantentzeko; hornikuntza ontzi garbiketa-langileak eta langile medikoak babesteko beharrezkoak dira. Argi dago abantaila batzuk daudela erabiltzearen aldean hornikuntzak kontenitzaileak osasun-arloko industrian. Lesioak saihestea, infekzioak kontrolatzea edo erantzukizun ekologikoa handitzea den, kontenitzaile hauek ingurumenaren eta pazienteen arteko oztopo garrantzitsua dira, baita osasun-langileentzat ere. XIEHE MEDICAL-k merkatu gehigarrirako hornikuntzak kontenitzaile kalitate handikoak eskaintzen ditu hornikuntzak kontenitzaile medikoak osasun-zentroetarako egokiak direnak, horrela zuretzat puntako hondakinak modu egokian eta seguruan bota ahal izateko. Zaratak bezain arriskutsu eta kaltegarriak diren hondakinak baztertzen badituzu, modu seguru batean egiten ari zarela ziurtatu behar duzu, eta ez dituzu zure burua edo inguruko inor arriskuan jartzen. Zaratak medikuntza-hornikuntzak dira, hala nola orratzak, xiringak eta lancetak. Puntu nagusiak: Nola bota zaratak hondakinetara Zaratetako hondakinen bazterketaren aspektu garrantzitsuenetariko bat "zaraten ontzi" kutxa izatea da. Ontzi hauek erabilitako zaratetarako biltegiratze segurua diseinatu da, behar bezala baztertu arte. Zaraten hondakinak segurtasunez baztertzeko, isuri ezin eta zulatu ezin den ontzi bat erabiltzea ziurtatu behar duzu hornikuntzak ontziari. Ez bete beti gehiegi, eta ontzia ondo itxi behar duzu bota onenero. Beteta dagoenean, botila ondo itxi eta etiketatuta egon behar du, eta tokiko legeen arabera baztertu. Farmaziak eta ospitaleek sarritan zaratetarako bazterketa-programak eskaintzen dituzte, non segurtasunez utz ditzakezun zaratetako hondakinak bazterketa segururako. Xiehe Medical Apparatus Instruments, gailu mediko profesionalen ekoizlea da, eta kalitate handiko produktuak eta zerbitzu bereziak eskaintzen ditu. ISO13485 kalitate-kontrol sistema zorrotzki jarraitzen du, eta produktu guztiak TUV, CE, FDA eta beste erakunde batzuen ziurtagiriarekin egiaztatuta daude. Xiehe Medical Equipment-ek pasiozko talde batekin lan egiten du, bezeroen beharrak denbora apur batean asetzeko gai dena, eta produktuak seguruak izan daitezela eta zerbitzuak egokiak izan daitezela bermatzen du. Ambulantzako oheak, tolestezin oheak, ospitaleko altzariak edo hilobi-produktuak izanik, Xiehe Medical Equipment-ek bezeroei konponbide egokiak eskaintzen ditu. Hehe Medical Equipment-k bezeroen asarakuntza lehenetsi eta haien beharrak betetzeko ahalegina egiten du, kalitate altuko eta fidagarriko zerbitzuak eskaintzen dituelarik. Langileek duten pasioa eta erabiltzen dugun teknologia lankidetzaileari esker, bezeroei hurbil eta arduratsua den zerbitzua eskaini dezakegu. Sharps kontainerrean helburu gisa daukagu harreman iraunkor eta hauts eziniko bat sortzea bezeroekin, eta haien eskuragarri jartzea produktu eta zerbitzu kalitatezkoak. Xiehe Medical Apparatus Instruments enborroa du berriroko produktuen garapenerako eta I+G-ren eskaintzarako, salmenta-puntu eraginkorretan lehiakorrak diren produktuak eskaintzen ditu. Hainbat patentek babestutako jabetza intelektuala dauka, hala nola medikuntzako puntako ontziak, lehen laguntzako produktuak, ospitaleko mobiliak eta hilobietarako produktuak. Produktuak gaur egungo joerak jarraitzen dituzte eta bezeroen beharrak asetzen dituzte; beraz, bezeroen artean oso baloratuak dira, baita nazionalak eta kanpokoak ere. Xiehe Medical Apparatus Instruments globalizazio estrategiara buruzko marketing eta ekintza kopurua handitzen du. 10 urte baino gehiago hornitzaileak lan laguntza ematen duelarik, mundu osoan banatutako 30 baino gehiago distribuidore dituenetik, produktuak 120 herrialdean banatzen dira. uztaiko edukiak eta integratzaileak lankide-muga luzeak eraikitzeko zoragarri da, etorkizunera buruzko elkarrizketa eraikitzeko.pertsonen kantitatea
Barraskiloak erabiltzearen abantailak osasun-arloko inguruneetan

Kalitate handiko barraskiloak salgai ordezkaritzarako

Nola baztertu behar diren behatzeko tresnen hondakinak modu egokian

ingurumenezki erantzunkideak diren barraskilo aukerak
Why choose XIEHE MEDICAL
pertsonen kantitatea?
Altokoberako produktuak eta zerbitzu espzializatuak
Bezero-zentratua Bilaketa-ontzi arina eta teknikoa onartze laguntza
Inovazioaren I+D eta Produktuak Seme-harrien Puntuak
Marketing globalko sare eta baliabide estabilak
Lotuta dauden produktu kategoriak
Zer bilatzen zaude ez duzula aurkitzen?
Eskaeratu Quote Orain
Kontaktatu konzultantek gainerako eskuragarriagoak diren produktu gehiagorako.Jarri Harremanetan