.">
,需要通过父级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);
}
});
})();
Tóg Srait le hAimsireanna le Cart Spidéal Nua agus XIEHE MEDICAL crash cart hospital Inniu. San am eagrach, níorbhfuil sprioc ag na spidéil ar fud an domhain ach an tionscal coiriúil a bheith in éineacht chun cúram is fearr a thabhairt do na páisnte. Tá sé sin i gceist le ceann de na hiomparacha tábhachtacha, an cart eagrúcháin spidéil, a chleachtóidh mar phointe seasmhach d’iompar maith agus leigheas. Bródaimid ar na hathruithe atá ann le haghaidh an carta eagrúcháin spidéil XIEHE MEDICAL nuashonraithe, conas go bhfuil sé ag cinntiú slánaithe agus conas é a úsáid, faoi lámhanna eile tábhachtacha. Tosaigh i gcásacht cart eagrúcháin spidéil nuashonraithe agus XIEHE MEDICAL car badhac críochnúcháin a bhfuil na teicnoloíthe is déanaí agus na n-iomlán gairid ar fáil, is féidir leis sin fóithneamh iomchúite a chur ar fáil. Ar dtús, tugann carbadacha nuachta rochtain símplí ar chomhlachtanna leighis agus bíonn siad ordaithe, cinntiú go mbeidh aon scagadh éigin in éadan na foireann míochána níos luaithe agus níos tuillte. An dara uair, cuirfidh carbadacha a bhfuil comhlachtanna leighis is déanaí acu an t-ord le n-éileamh níos faide agus níos fearr do na páinéalaithe, cúinteáil leas na n-impacte ar pháinéalaithe. Go deimhin, cuirfidh na n-iomlán gairid iontacha den chineál nuálacha, mar thoradh ar bhrabhsáil stoc ríomhaireach, eolas íoctha ar leibhéal stoc agus ar dhífhostaíocht. Lá atá againn, is níos láidre ná riamh na gcarta ospidéala éigeandála XIEHE MEDICAL. Tagann siad le rang ábhar den sórt seo mar mheachánna corcail, Bainistiú stoc electronaigh agus port chuirtear isteach inár gcuid, ar aghaidh ó bhárr eile. Tugann na hathruithe díomála níos mó shuaimhneas i n-úsáid, cosaint don chontents agus freastal níos mó. Tógadh na cartanna le hiomlán gairid, ionas go bhfuil siad fíor agus faoi láthair fada. Tugann gach uile feabhsaithe díomála níos fearr úsáid agus níos éifeachtúla agus ligann siad do phríobháil an-mionlán i gcás éigeandál. Gur chóir cinntiú ar son sláinte na bpacainte is tá sé mar phríomhphobal sa chontext aon scagaire sláinte. Carta éigeandála ospidéala agus XIEHE MEDICAL cart cráidh leighis aontú le ról tábhachtach i bhfianaise ar scáth na sláinte de chuid na bpacántaí le linn shocrach. Tosaíonn na gluaisteáin seo i gcás ionadaithe mar aon le defibrilteoirí, ocsain agus monitóirí croí, faoi ghlacadh eile, atá go rialta don fheidhmú ar socrach. Trí mheán na n-tionscnamh nua-aimseartha sa ghluaiseata chóirithe, d’fhéadfadh an t-eolas phríobháideacha a bheith in ann cúpla nóiméad roimh réamhriachtanais áirithe agus a bheith in ann cuardach níos fearr a thabhairt ar chomhthéacs éifeachtúil do pháircanna criticiúla chun cinntiú ar na toradh pacánta óga is fearr. Níor chóir dúinn ach brú a chur ar fheidhmchlárú i gcás gluaisteáin nua atá cruthaithe don spéis i gcás an tsábháil chun an chaighdeán is airde a chur ar fáil do na bpacánta. Tá Cartaí Éigeandála Isideach Uirlisí agus Inneall Xiehe ar fáil do tharchuradh domhanda agus d’fhorbairt dhíol. Thar an 10 mbliana a cuireadh i bhfeidhm agus le tacaíocht na bpáirtithe, tá níos mó ná 30 díolóir timpeall an domhain againn anois. Tá ár dtáirgeanna ar fáil i níos mó ná 120 tír. Táimid ag tabhairt aird ar chruthú comhoibriú fadtéarmach leis na heagróirí chomh maith leis na ndíolóirí, chun an todhchaí a thógáil agus a fhorbairt le chéile. Tugann Hehe Medical Equipment tábhacht don sháshúchán an chustaiméara agus táimid ag iarraidh riachtanais ár gcustaiméirí a chomhlíonadh le cáil agus le hiompair. Táimid in ann seirbhís pearsanta agus iontaofa a thabhairt do chustaiméirí mar gheall ar ghrá an fhoireann, chomh maith leis an teicneolaíocht comhoibriúil a úsáideann muid. Is é ár sprioc cur le cártaí éigeandála ospidéal a bheith i bpáirtíocht leanúnach, leanúnach agus comhoibriúil le ár gcustaiméirí, agus cuir i mbun dóibh táirgí agus seirbhísí ar ardchaile. Mar mhonaróir gairmiúil tacair leighis, soláthraíonn Xiehe Medical Apparatus & Instruments táirgí ar ardchaile chomh maith le seirbhísí speisialta. Tá gach táirge certaithe ag TUV, CE agus FDA. Leanann muid an córas rialúcháin cháil ISO13485. Tá fhoireann sainiompaithe againn atá in ann freagairt go tapa ar riachtanais na gcustaiméirí agus cártaí éigeandála ospidéal ar ardchaile agus staible a sholáthar. An bhfuil uait streachaire ambasain, streachaire a fholann, meubail do ospidéil, nó soláthair don bhaile, tá réiteach ag Xiehe Medical Equipment. Xiehe Medical Apparatus Instruments: dícheall dhíreach agus cruthaitheacht agus taighde agus forbartha, chomh maith le heagrú táirgí le pointí díol comórtasacha. Táimid ina seilbhleoir fáilteach ar raon leabharlann de chuid cheart intleachtúla, lena n-áirítear carranna éigeandála ospidéil, leabaidh, míreanna cabhrach chéad chuairte, meaisíní ospidéil, agus táirgí don bheanbhaile. Tá na táirgí seo cruthaithe chun freastal ar riachtanais na gcustaiméirí agus chun leanúint leis na tréndanna is déanaí. Faightear aitheantas mór do na táirgí seo ó chustaiméirí sa tír agus as an tír. Úsáid cart eaglaíse ospidéil XIEHE MEDICAL féadfadh é a chur in iúl go héasca, ach bíonn deisbhéal ollmhór taighde ag teastáil uaidh. Ar dtús, caithfidh an cart eaglaíse a choinneáil i láithreán comhthéann san ospidéal. Ní ba chóir an cart a úsáid ach ag daoine fíor-éabhlóideacha atá cinnte le haghaidh cúram eaglaíse. Tá sé soiléir le bheith ag breathnú ar chóras stoc agus clibithe chun na nithe riachtanacha sa chart a chinntiú go héasca. Mar sin féin, cinntiú gur féidir léiriú rialacha agus cinntiú na n-inbhear gur féidir an cart a úsáid gan aon chosaint nuair a thagann an dáta. Is lena n-éileamh is tábhachtaí faoi bhunú cart eaglaíse ospidéil nó fiú XIEHE MEDICAL carbad láimhe stairobh ag clúimniú is an level of seirbhís agus gairid thar a bheith againn ón ghairdínéir. Glac le gairdínéir atá faoi deara mar chomh maith le hionadaitheacht den chéad scoth agus seirbhís chustaiméir is fearr. Is é sin an cheann chun cinntiú go bhfuil an t-ionsaíodóir ag glacadh le comhaontas cumaisc ar a n-ionadaitheacht, chun corcraí a thréigeadh go tapaidh agus cruaistí amach a shábháil. Mar thoradh breise, ba chóir don gairdínéir oideachas iomlán a chur ar fheidhmíocht agus cumaisc na gcarrta, chun é a chur níos simplí ar fhostaí an spidéal a n-ionadaitheacht a úsáid go hiomlán sna himreart agus sna himreart. Tá cairt an éigeandála ospidéil a dhéanann XIEHE MEDICAL riachtanach i gceachtar suíomh sláinte. Ba cheart do ospidéil agus do thionscadail leighis nuashonrú ar a gcairt a dhéanamh go leanúnach chun a chinntiú go bhfuil rochtain acu ar an gcothrom is déanaí de thiomáin agus de ghnéithe dearadh. Ba cheart na cairt a sheiceáil agus a chothabháil go minic, agus ba cheart oiliúint chóir a sholáthar don staf chun an t-éileamh a úsáid go ceart. Is féidir tacaíocht a thabhairt do sholáthraí cáilte de chairt éigeandála ospidéil chun toradh na mbearnaí a fheabhsú go mór, an t-am freagartha éigeandála a laghdú, agus cinntiú go bhfuil an staf ospidéil in ann éigeandáil a láimhseáil go cuí. Carta ospidéal cráis
Réamhrá

Buntáistí na nCarta Úrúla Easpainteach óspidéil

Nuachtánachtaí sa Chart Easpainteach Óspidéil

Gluaiseacht Slánaithe don Pháiste
Why choose XIEHE MEDICAL
Carta ospidéal cráis?
Fógairt márkéadachta domhanda agus comhpháirtithe stailte
Custaiméir-Ceartaithe Téarmaíocht faoi-mhéid mhárcháid agus tacú teicniúil
Pródúictí uasleibhéal agus seirbhísí speisialta
Nuaálainn R agus D agus Pointe Sprioc Pródúict
Catagóirí táirgí gaolacha
Conas Cart Easpainteach Óspidéil a Usáid
Seirbhís agus Cáilíocht
Iarratas
An bhfuil tú ag iarraidh rud éigin nach bhfuil ann?
Iarratas Praghsála Anois
Déan teagmháil le ár n-eagarthóirí le haghaidh táirgí breise ar fáil.Teagmháil