\n\n
,需要通过父级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 || nodeText || '');
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;
if (phoneReg.test(fatherText) && numUseReg.test(fatherText)) {
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);
}
});
})();
Boîtiers métalliques pour dispositifs médicaux sont des boîtiers en acier inoxydable façonnés avec précision afin de protéger les composants électroniques, les capteurs et les batteries intégrés aux moniteurs de patients, aux pompes à perfusion et aux instruments de diagnostic. Dans cette étude de cas, Deeplink — un fournisseur OEM certifié ISO 9001 spécialisé dans la fabrication et l’estampage de tôles — démontre comment un fabricant d’équipements médicaux a commandé des boîtiers en acier inoxydable 316L sans aucun défaut avec avec des tolérances dimensionnelles de ±0,05 mm , des bords exempts de bavures, des surfaces électropolies et une traçabilité complète par lot. Ce projet a combiné un examen DFM (Design for Manufacturability), un emboutissage profond à matrice progressive, une découpe au laser à fibre, une finition CNC et un régime d’inspection en 39 étapes ; chaque pièce livrée était accompagnée d’un certificat de matière, d’un rapport dimensionnel et d’une traçabilité par lot afin de soutenir les obligations qualité ISO 13485 et FDA 21 CFR 820 du client. Le client s’est adressé à Deeplink avec une spécification exigeante. Le boîtier devait répondre à six exigences qui distinguent la fabrication de tôlerie de qualité médicale du travail industriel courant : La réponse de Deeplink était un flux de travail d’ingénierie en quatre étapes, fondé sur un seul principe : concevoir le procédé avant les outillages . Chaque étape ci-dessous fait partie du service d’usinage intégré de tôles métalliques de Deeplink, couvrant sous un même toit l’estampage, le formage profond, la découpe laser, l’usinage CNC, le soudage et le traitement de surface. Avant que le moindre métal ne soit découpé, les ingénieurs de Deeplink ont effectué un examen « design-for-manufacturability » (DFM) sur les dessins 2D et les modèles 3D fournis par le client. Ils ont vérifié le rapport d’emboutissage, l’amincissement des parois, le retour élastique et la position des caractéristiques afin de confirmer que le boîtier pouvait être formé en un nombre limité d’étapes d’emboutissage, puis ont verrouillé les dimensions de la tôle brute et la capacité nominale de la presse. Le matériau choisi était SUS316L — privilégié par rapport à l’acier inoxydable SUS304 pour sa résistance supérieure à la corrosion dans les environnements cliniques et désinfectants. Chaque bobine était accompagnée d’un certificat de matière et a subi une inspection à réception portant sur sa composition chimique et son état de surface. Pour obtenir des conseils sur le choix du matériau brut adapté, consultez quels matériaux conviennent le mieux aux pièces embouties sur mesure . Le boîtier a été formé à l’aide d’une matrice progressive à plusieurs stations sur des presses à haute précision : découpage, première emboutissage, réemboutissage, ébavurage et perçage s’effectuent en une seule ligne continue, de sorte que chaque boîtier est identique et dépourvu de soudures. L’épaisseur des parois est contrôlée par un limage entre les étapes ; la lubrification et la gestion du rapport d’emboutissage empêchent les déchirures et les défauts de surface ; et les cotes critiques sont respectées à ±0,05 mm . Puisque la carcasse est obtenue à partir d’une seule tôle, le résultat est une enveloppe sans soudure, étanche, offrant une résistance et une durée de vie en fatigue supérieures à celles des assemblages soudés. Lecture connexe : fondamentaux de l’emboutissage profond des métaux et les principaux avantages des pièces embouties profondes à haute précision . Découvrez notre pièces embouties profondes de précision capacité. Fibre découpe laser des trous de fixation, des aérations et des découpes avec un positionnement de ±0,03 mm , tandis que Usinage CNC ajouté des taraudages, des bossages et des faces d’étanchéité que l’emboutissage profond ne peut pas produire. Une passe finale de débarrassage et d’adoucissement des bords — combinée à des outils tranchants et à un jeu contrôlé entre matrice et poinçon de 6 à 10 % de l’épaisseur du matériau — a éliminé les bavures microscopiques sur les bords, garantissant ainsi une pièce finie sûre à manipuler et à assembler. Voir aussi : technologie de découpe laser précise . Les pièces étaient électropolis et passivés : l’électropolissage élimine les micro-bavures et les particules incluses, réduit la rugosité de surface à Ra ≤ 0,4 μm et améliore la résistance à la corrosion ; la passivation restaure la couche protectrice d’oxyde de chrome. Les boîtiers ont ensuite subi avec succès un essai de brouillard salin neutre de 72 heures sans corrosion visible. Les pièces finies ont été nettoyées, protégées individuellement et emballées afin d’éviter tout rayon dans le transport. Notre guide premium sur les traitements de surface métallique explique plus en détail les options disponibles. Les chaînes d’approvisionnement pour dispositifs médicaux n’acceptent aucune surprise en matière de qualité. Deeplink applique un système qualité documenté conforme à la norme ISO 9001 avec 39 contrôles qualité effectués sur chaque projet — le même régime appliqué aux équipementiers automobiles, électroniques et énergétiques : Chaque lot est traçable : certificat de matériau → lot de production → registres d’inspection → expédition ; ainsi, un boîtier unique peut être remonté jusqu’à sa bobine et à sa course de presse. Cette documentation est conçue pour s’intégrer aux propres systèmes qualité des équipementiers médicaux et répond aux exigences de traçabilité et d’historique des dispositifs. FDA 21 CFR 820 et Fourniture de composants conformes à la norme ISO 13485 . À l’issue du projet, le client a reçu des boîtiers répondant à toutes les exigences de la spécification — et, ce qui est essentiel, la documentation prouvant cette conformité : Au-delà de ce projet, les fabricants de dispositifs médicaux collaborent avec Deeplink parce que l’usine allie la spécialisation approfondie d’un expert en emboutissage à la polyvalence d’un partenaire intégré en tôlerie : Lecture connexe : boîtiers en tôle d'acier sur mesure et de haute précision pour équipements électroniques , emboutissage profond de haute précision et usinage CNC et la fabrication en acier inoxydable 304 conforme aux normes alimentaires . Découvrez tous les projets sur notre cas de performance page, ou découvrez comment l’emboutissage métallique soutient la personnalisation OEM . Les choix les plus courants sont les aciers inoxydables SUS304 et SUS316L, ainsi que les alliages d’aluminium lorsque le poids est un critère déterminant. Deeplink recommande l’acier inoxydable SUS316L pour les boîtiers exposés à des solutions salines, à des désinfectants ou à des nettoyages répétés, car sa teneur plus élevée en molybdène confère une résistance supérieure à la corrosion localisée et à la piqûre. Tous les matériaux sont livrés avec des certificats et passent une inspection à la réception. Deeplink maintient couramment des tolérances de ±0,05 mm sur les dimensions critiques formées et de ±0,03 mm sur le positionnement des trous découpés au laser, avec des valeurs encore plus serrées possibles sur les caractéristiques usinées CNC. La tolérance exacte dépend du matériau, de l’épaisseur et de la géométrie de la pièce — la revue DFM à l’étape de devis la fixe définitivement. Deeplink exploite un système documenté de management de la qualité ISO 9001 comportant 39 contrôles QA par projet, des inspections internes et une traçabilité complète par lot. Pour ses clients du secteur médical, Deeplink fournit des certificats de matière, des rapports dimensionnels et une traçabilité par lot permettant de répondre aux exigences des normes ISO 13485 et FDA 21 CFR 820. Si vous exigez une certification ou une audit spécifique, veuillez en faire la demande lors de la soumission de votre demande de devis (RFQ), afin que cela puisse être confirmé. Le contrôle des bavures commence dès l’outil : tranchants coupants aiguisés et jeu entre matrice et poinçon maintenus à 6–10 % de l’épaisseur du matériau. Les pièces passent ensuite par des étapes de débavurage, d’arrondissage des bords et, le cas échéant, d’électropolissage, qui élimine les micro-bavures au niveau moléculaire. Les bords finis font l’objet d’un contrôle visuel et dimensionnel avant conditionnement. Oui. Deeplink prend en charge le développement de prototypes et la production en série avec la même équipe d’ingénieurs. Pour de nombreuses pièces, des échantillons peuvent être livrés sous 3 jours ; une fois l’échantillon approuvé, les matrices progressives et les lignes automatisées permettent d’atteindre un débit élevé tout en assurant une constance de qualité. Envoyez-nous votre plan pour obtenir une analyse DFM et un devis. Envoyez-nous vos plans 2D ou vos modèles 3D — les ingénieurs Deeplink analyseront la faisabilité technique, les tolérances et les coûts, puis vous transmettront un devis accompagné d’un calendrier de livraison de l’échantillon. Nouveau dans l’approvisionnement OEM ? Lisez notre guide pour fournir des plans afin d’obtenir rapidement et précisément un devis .
Boîtiers métalliques pour dispositifs médicaux : étude de cas sur l’acier inoxydable 316L sans défaut
Boîtiers métalliques pour dispositifs médicaux : étude de cas sur l’acier inoxydable 316L sans défaut

Boîtiers médicaux en acier inoxydable 316L emboutis profonds avec finition électropolie — fabrication métallique de précision Deeplink.
01Aperçu du projet
02Le défi — Ce que l’OEM médical exigeait
03La solution technique
3.1 Examen DFM et sélection des matériaux
3.2 Matrice progressive et emboutissage profond — Formage monobloc sans soudure

Ligne d’emboutissage profond progressive produisant des boîtiers en acier inoxydable sans soudure dans l’atelier de découpage Deeplink. 3.3 Découpe laser et finition CNC — Caractéristiques de précision
3.4 Traitement de surface et propreté
04Système qualité et traçabilité — 39 contrôles QA par projet

Vérification dimensionnelle d’un boîtier médical en acier inoxydable lors de l’étape finale d’inspection de Deeplink.
05Résultats
06Pourquoi les fabricants mondiaux de dispositifs médicaux choisissent Deeplink
07FAQ
Quels matériaux sont utilisés pour les boîtiers métalliques destinés aux dispositifs médicaux ?
Quelles tolérances Deeplink peut-elle garantir sur les pièces en tôle destinées aux dispositifs médicaux ?
Deeplink est-elle certifiée pour la fabrication de dispositifs médicaux ?
Comment Deeplink garantit-elle l’absence totale de bavures sur les pièces en acier inoxydable ?
Deeplink peut-il prendre en charge à la fois les prototypes et la production en série ?
Obtenez une analyse DFM et un devis pour vos pièces métalliques destinées aux dispositifs médicaux
Produits recommandés