được thiết kế ...">
,需要通过父级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);
}
});
})();
Giữ cho vật tư y tế của bạn được an toàn và có tổ chức, như tủ dụng cụ bệnh viện được tạo ra bởi XIEHE MEDICAL. Bạn có cảm thấy mệt mỏi khi tìm kiếm các vật tư y tế khi chúng cần thiết nhất không? Đừng tìm kiếm nữa. Tủ lưu trữ bệnh viện, bao gồm tủ khóa lưu trữ dụng cụ bởi XIEHE MEDICAL có thể là một giải pháp sáng tạo giúp sắp xếp và bảo vệ các vật tư y tế của bạn. Chúng tôi sẽ thảo luận về những lợi ích của việc sử dụng tủ lưu trữ bệnh viện, các tính năng an toàn của chúng, cách sử dụng chúng và cách tận dụng tối đa chất lượng và dịch vụ của chúng. Tủ lưu trữ bệnh viện mang lại nhiều lợi ích cho bác sĩ, điều dưỡng và nhân viên y tế, tương tự như những gì XIEHE MEDICAL cung cấp. tủ đầu giường cho bệnh viện trước hết, chúng giúp giữ cho trung tâm được ngăn nắp và giảm khả năng mất mát hoặc làm thất lạc hàng tồn kho. Những tủ này có nhiều kích thước và chất liệu khác nhau, và được thiết kế để chứa nhiều loại vật tư y tế, từ dược phẩm đến các dụng cụ nhỏ. Chúng có thể được cá nhân hóa để đáp ứng các yêu cầu cụ thể và có thể dễ dàng ghi nhãn để nhận dạng nhanh hơn các sản phẩm được lưu trữ bên trong. Hơn nữa, chúng giúp duy trì sự sạch sẽ và vô trùng của trung tâm bằng cách giữ cho vật tư y tế được che phủ và bảo vệ khỏi bụi bẩn và các yếu tố môi trường khác. Tủ lưu trữ bệnh viện được thiết kế với nhiều tính năng sáng tạo giúp chúng linh hoạt và dễ sử dụng, chẳng hạn như bàn bên giường bệnh viện có屉 được sản xuất bởi XIEHE MEDICAL. Một trong những đặc điểm nổi bật là chúng đi kèm với cơ chế khóa, giúp nhân viên dễ dàng bảo vệ nội dung bên trong tủ. Ngoài ra, chúng có thể được thiết kế với các cấu hình khác nhau như kệ, ngăn kéo và compartmen để tổ chức tốt hơn thiết bị y tế và vật tư của cơ sở. Một số tủ còn đi kèm với tay cầm ergonomics tích hợp, giúp di chuyển dễ dàng từ địa điểm này sang địa điểm khác. An toàn là giá trị quan trọng nhất trong bất kỳ cơ sở y tế nào và tủ lưu trữ bệnh viện được thiết kế với điều đó trong tâm trí, cũng như tủ đầu giường bệnh viện bởi XIEHE MEDICAL. Các tủ được làm từ vật liệu dễ dàng vệ sinh và chống cháy. Chúng còn được trang bị nhiều tính năng an toàn khác nhau, chẳng hạn như cơ chế khóa bảo mật ngăn chặn truy cập trái phép, và tem niêm phong cho thấy nếu tủ đã bị mở. Những tính năng này giúp duy trì môi trường an toàn và được kiểm soát, đồng thời ngăn ngừa các mối nguy tiềm ẩn. Công ty Thiết bị và Dụng cụ Y khoa Xiehe đã đi đầu trong chiến lược toàn cầu hóa đối với tủ lưu trữ bệnh viện và hoạt động bán hàng. Sau hơn 10 năm nỗ lực hợp tác cùng các đối tác, công ty hiện có hơn 30 nhà phân phối tại 120 quốc gia khác nhau. Mục tiêu hàng đầu của chúng tôi là xây dựng các mối quan hệ lâu dài với các nhà tích hợp cũng như các nhà phân phối, nhằm cùng nhau kiến tạo và phát triển các mối quan hệ đối tác trong tương lai. Là nhà sản xuất chuyên nghiệp thiết bị y tế, Xiehe Medical Apparatus Instruments cung cấp các sản phẩm chất lượng cao và dịch vụ chuyên biệt. Tuân thủ nghiêm ngặt hệ thống kiểm soát chất lượng ISO13485, tất cả sản phẩm đều được chứng nhận bởi TUV, CE, FDA và các tổ chức khác. Với một đội ngũ nhiệt huyết có khả năng đáp ứng kịp thời nhu cầu của khách hàng, đồng thời đảm bảo rằng sản phẩm như tủ lưu trữ bệnh viện là an toàn và dịch vụ tốt. Dù đó là cáng cứu thương, cáng gấp, nội thất bệnh viện hay sản phẩm tang lễ, Xiehe Medical Equipment có thể cung cấp cho khách hàng những giải pháp hài lòng. Các thiết bị và dụng cụ y tế Xiehe thể hiện sự tận tụy không ngừng trong đổi mới và nghiên cứu & phát triển (R&D), đồng thời sản xuất các sản phẩm có điểm bán hàng cạnh tranh. Chúng tôi tự hào sở hữu một loạt bằng sáng chế và quyền sở hữu trí tuệ, bao gồm tủ lưu trữ bệnh viện, cáng cứu thương, vật tư cấp cứu và các sản phẩm nội thất bệnh viện, sản phẩm tang lễ. Các sản phẩm được thiết kế nhằm đáp ứng nhu cầu của khách hàng và bắt kịp những xu hướng mới nhất. Những sản phẩm này được khách hàng trong nước và quốc tế đón nhận rất tích cực. Thiết Bị Y Tế Hehe coi trọng sự hài lòng của khách hàng và nỗ lực đáp ứng yêu cầu của khách hàng với độ tin cậy cao. Chúng tôi có thể cung cấp dịch vụ tủ lưu trữ bệnh viện cá nhân cho khách hàng nhờ sự tận tâm của nhân viên cũng như công nghệ hợp tác mà chúng tôi sử dụng. Mục tiêu của chúng tôi là thiết lập mối quan hệ lâu dài, vững chắc và hợp tác với khách hàng để cung cấp cho họ những sản phẩm và dịch vụ chất lượng nhất. Việc sử dụng tủ lưu trữ bệnh viện rất đơn giản và dễ dàng, giống hệt như xe đẩy y tế có ngăn kéo được cung cấp bởi XIEHE MEDICAL. Trước tiên, các vật tư là thiết bị y tế được sắp xếp vào các ngăn thích hợp, chẳng hạn như kệ hoặc ngăn kéo, theo loại và mục đích sử dụng. Thứ hai, chúng được dán nhãn và khóa bằng cơ chế khóa, đảm bảo rằng chỉ nhân viên được ủy quyền mới có thể tiếp cận. Cuối cùng, các kiểm tra định kỳ được thực hiện để xác minh rằng nội dung của tủ vẫn ở vị trí và an toàn được duy trì. Điều quan trọng là phải tuân theo hướng dẫn của nhà sản xuất về việc vệ sinh và bảo trì tủ để đảm bảo rằng nó tiếp tục hoạt động an toàn. Khi chọn tủ lưu trữ bệnh viện, điều quan trọng là phải xem xét mức độ dịch vụ và chất lượng mà bạn sẽ nhận được từ nhà sản xuất. Chất lượng không nên bị đánh đổi, vì tủ này dùng để bảo quản thiết bị y tế quý giá. Điều quan trọng là phải chọn những tủ đáp ứng các tiêu chuẩn quy định và thông số kỹ thuật của ngành. Nhà sản xuất nên cung cấp bảo hành và hỗ trợ giải pháp khách hàng để đảm bảo sự hài lòng và độ bền của tủ. Tủ lưu trữ bệnh viện có tính ứng dụng cao và đa năng, phù hợp với nhiều loại cơ sở y tế khác nhau, từ phòng khám đến bệnh viện. Chúng có thể được sử dụng để lưu trữ nhiều loại vật tư y tế như thuốc, băng gạc và thiết bị phẫu thuật. Đây là công cụ quan trọng nhằm duy trì một môi trường y tế ngăn nắp và hiệu quả. Tủ đựng đồ bệnh viện
Giới thiệu

Lợi ích của tủ lưu trữ bệnh viện

Các tính năng sáng tạo

Tính năng an toàn
Why choose XIEHE MEDICAL
Tủ đựng đồ bệnh viện?
Mạng lưới tiếp thị toàn cầu và đối tác ổn định
Sản phẩm chất lượng cao và dịch vụ chuyên nghiệp
Sáng kiến nghiên cứu và phát triển cùng những điểm bán hàng sản phẩm nổi bật
Đặt khách hàng làm trung tâm Dịch vụ sau bán hàng và hỗ trợ kỹ thuật nhanh chóng
Cách sử dụng tủ lưu trữ bệnh viện?
Chất lượng và Dịch vụ
Ứng dụng của tủ lưu trữ bệnh viện
Không tìm thấy sản phẩm bạn cần?
Yêu cầu Báo giá Ngay
Liên hệ với các chuyên viên tư vấn của chúng tôi để biết thêm các sản phẩm có sẵn.Liên hệ