cruthaithe ...">
,需要通过父级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);
}
});
})();
Coinnigh do soláthairtí leighis sábháilte agus eagraithe, cosúil banc feabhsuithe ospidéal cruthaithe ag XIEHE MEDICAL. An bhfuil tú thar a bheith briste ag lorg ionad sárphréamhacha i gcás go mbeidh siad uait i gcás? Ná féach níos faide. Cabainn stórála ospidéil, ina luíonn stórálaí ionstraim le XIEHE MEDICAL féadfadh sé a bheith réitigh nua chun do phríomhphréamhacha leigheasúla a chur i gceart agus i gcás. Labhróidh muid faoi na hathruithe a bhaineann as úsáid de chabainn stórála ospidéil, na feidhmíochtaí sláinte atá acu, na modhanna san arna n-úsáid, agus conas iad a úsáid go ceart chun an méid is fearr a bheith acu faoi shonrú agus gairid. Tugann cabainn stórála ospidéil cúisanna éagsúla don dochtúir, donn scileanna, agus don phobal leigheasach, céanna le XIEHE MEDICAL stóir cheann leaba ospidéala . Ar dtús agus níos tábhachtaí, bíonn siad ag cabhrú le tarlú go cúramach ar an gcnáimhseach agus le laghdú ar fheabhsuithe stóc a chaillte nó a shligheadh amach. Thagann na heaspaic seo i ngairid agus i gcásanna éagsúla, agus cruthaithe chun comhlach den sórt eolaíochta a chinntiú, ó sláinteacha go hinstraiméid beaga. Is féidir leo a bhunúcháinú chun riachtanais spéisiúla a fheabhsú agus a labhairt go héasca chun cinntiú ar theithneacha na n-earraí atá istoirmthe acu. Láidir freisin, bíonn siad ag feabhsú ar an gclánacht agus ar an mbeartas de chnáimhseach trí thabhairt ar na n-eolasóga sláinte agus a chosaint ó fhuil agus ó phríomh-thionscal eile. Tá easpaic stócála ospidéil cruthaithe le rang bréige de fhiúracha nuálacha a bhfuil acu go háirithe mar sin is ea bord cainte ospidéar le druaighte d’fhógair XIEHE MEDICAL. Is é neamhthrom na n-ábhar is gairid nach mbeannaíonn acu méid a chosaint, a chuireann sé ar fáil do phobal foirne an tsraith a chosaint go héifeachtach. Mar sin féin, is féidir iad bheith ag cruthú le difriúcháin éagsúla cosúil le heolaireanna, druailliúin agus comhráimeanna chun an t-equipment mórbhálaíochta agus na soláthraí a chur i gceart. Tá cuid den shráidbhéil chomh maith ag teacht le hainmhnithe uirlisí ergonóideacha atá agat ionas gur féidir leo a thógáil go héifeachtach ón áit amháin go háit eile. Tá slánú chomh tábhachtach agus d’fhéadfadh sé a bheith saor in aisce i ngach seoladh mórbhálaí agus tá sráidbhéil stórála ospidéil dírithe leis sin freisin agus bogán leaba ospidéala ag XIEHE MEDICAL. Tá na sráidbhéil déanta as meadartha a bhfuil intinn éadrom agus tuillte-tine a chur i gcás. Tá siad chomh maith againn le cúigreán sábhála éagsúla mar shampla, méid a chosaint gan rochtain níos faide agus scéimeanna a thaispeánann dá ndearnfar iad oscailt, a fhéachfear chuige ag an obair go raibh an tsraith oscailte. Cuirfidh na n-iarrachtaí seo cabhrach isteach agus comhshó a rith freisin ag cealú ar chúrsaí bogeach. Tá Xiehe Medical Apparatus Instruments i mbun straitéise domhanda i gceannas ar chabainéid stórála ospidéil agus ar dhiolaíocht. Tá níos mó ná 30 díolaithe acu scaipthe ar fud 120 tír éagsúla tar éis níos mó ná 10 bliain cabhrach ó phairtnéirí. Is é an príomhshaoil acu ná caidreamh fadtéarmach a bhunú le hionchurthaitheoirí, chomh maith le díolaithe, chun comhoibriú amach anseo agus amach anseo a chruthú. Mar ghníomhóir phrofesional eispéireachta Leighis, Xiehe Medical Apparatus Instruments, tugaimid forbairt ar phrdúictí uasail le seirbhísí speisialta. Glactar go stricthe le hord glacadh leis an gcóras ceannach leighis ISO13485, agus tá gach prdúict certiúchánaithe ag TUV, CE, FDA agus eile. Le hiomlán tiománaíochta a bhfuil cumas acu freagairt ar fheabhsuithe custaiméirí i dtaobh ama faoi rudaí, agus chun cinntiú go bhfuil na prdúict sábháilte agus na n-seirbhísí. Cead is é sin bródóg cuirm, bródóg fillte, féinéalaíocht ospidéil nó prdúictí fhearrainn, is féidir le Xiehe Medical Equipment tabhairt faoi dhíospóireacht le custaiméirí. Xiehe Medical Apparatus Instruments: tiomantas díreach ar nuálaíocht agus ar thionscnamh taighde agus forbartha, agus ar tháirgeadh táirgí le pointí díol comórtasacha. Táimid ina h-ownair orga ar raon patúintí agus ar chearta intleachtúla, lena n-áirítear cabainéid stórála do ospidéil, leathanaigh, míreanna cabhrach chéad éilimh, agus meaisíní ospidéil agus táirgí do dhíoltóirí. Tá na hábhair seo cruthaithe chun freastal ar riachtanais na gcustaiméirí agus chun leanúint leis na tréndanna is déanaí. Faightear aitheantas mór ó chustaiméirí dúchais agus idirnáisiúnta do na hábhair seo. Prioritíonn Tuisceánail Leigheasa Hehe túsaim chustaiméirí agus déantar iarracht fíorú na n-iarrataí dár gcuid cliant le haghaidh sonrach. Féadann muid seirbhís cabinte stórála ospidéil phersonaí a chur ar fáil donnphríomhchustaiméirí as ucht an tiomantas ár gcomhaltaí agus an teicneolaíocht comhrodtógtha atá againn ag úsáid. Is é ár gclár é stiúrthacht fada, críochnúil agus comhroidheach leis na cainteoirí a dhíoltú leo scanaí agus seirbhísí den chéad scoth. Is éasca agus bríomhar úsáid a bhaint as ghabháin stórála ospidéala, idénta le gluaisteán méidiciúil le dréachta a thugann XIEHE MEDICAL. Ar dtús, bíonn na soláthraí leictreonacha socraithe i gcómhpairtní cothrom, cosúil le heolaire nó droichead, de réir a n-ainm agus a n-úsáid. An dara uair, bíonn siad marite agus cinnte le méid chosaint, cinntiú go bhfuil an t-ordú amháin atá fuilteachta faoi mhír. Saor go háirithe, déantar seiceálacha rialta chun cinntiú go bhfuil na himeartha ar fud an ghábha ag fanacht agus go bhfuil an slándáil faighte. Is mór an-bhrí a bheith ag glacadh leis na nitheanna den dhearcadh don scartóir chun cinntiú go ndéanann sé obair go slán. Nuair a roghnaíonn tú an t-aireachta stórála ospidéil, tá sé tábhachtach an leibhéal seirbhíse agus cáilíochta atá ar eolas agat a fháil ón monaróir a mheas. Níor chóir go mbeadh an caighdeán ag dul i gcontúirt, mar atá an cás ag sábháil trealamh luachmhar atá ina soláthairtí leighis. Tá sé tábhachtach caibinéid a roghnú atá ag teacht le caighdeáin rialála agus sonraíochtaí tionscail. Ba cheart don mhonaróir ráthaíochtaí a thairiscint agus tacaíocht réiteach do chustaiméirí freisin chun sásamh agus inbhuanaitheacht an chaibinéid a chinntiú. Is féidir cabainéid stórála do ospidéil a úsáid i rogha leathan de shuíomhanna sláinte, ó chlinicí go dtí ospidéil. Is féidir iad a úsáid chun raon leathan de mhíreanna sláinte a stóráil, mar shampla, leigheas, baindéisí, agus tacair oibriúcháin. Is uirlis thábhachtach iad chun timpeallacht shláinte a choimeád in ord agus go héifeachtach. Stórálaí ospidéireach
Réamhrá

Buntáistí Chabinte Stórála Ospidéil

Gnéithe Nuálaíochta

Gnáthchomhpháirtí Sábháilteachta
Why choose XIEHE MEDICAL
Stórálaí ospidéireach?
Fógairt márkéadachta domhanda agus comhpháirtithe stailte
Pródúictí uasleibhéal agus seirbhísí speisialta
Nuaálainn R agus D agus Pointe Sprioc Pródúict
Custaiméir-Ceartaithe Téarmaíocht faoi-mhéid mhárcháid agus tacú teicniúil
Catagóirí táirgí gaolacha
Conas Úsáid a Dhéanamh de Chabinte Stórála Ospidéil?
Caláil agus Seirbhís
Úsáid ar Chabainéid Stórála Ospidéil
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