\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);
}
});
})();
Invólucros metálicos para dispositivos médicos são carcaças de aço inoxidável conformadas com precisão, projetadas para proteger os componentes eletrônicos, sensores e células de energia presentes em monitores de pacientes, bombas de infusão e instrumentos diagnósticos. Neste estudo de caso, a Deeplink — fabricante OEM certificada ISO 9001 especializada em fabricação de chapas metálicas e estampagem — demonstra como um fabricante de equipamentos médicos adquiriu invólucros de aço inoxidável 316L sem defeitos com tolerâncias dimensionais de ±0,05 mm , bordas livres de rebarbas, superfícies eletropolidas e rastreabilidade completa por lote. O projeto envolveu revisão de DFM, estampagem profunda com matriz progressiva, corte a laser de fibra, acabamento CNC e um regime de inspeção de 39 etapas; cada peça entregue foi acompanhada por certificados de material, relatórios dimensionais e rastreabilidade por lote, apoiando as obrigações de qualidade do cliente conforme ISO 13485 e FDA 21 CFR 820. O cliente procurou a Deeplink com uma especificação rigorosa. A carcaça precisava atender a seis requisitos que distinguem a fabricação médica de chapas metálicas da produção industrial comum: A solução da Deeplink foi um fluxo de trabalho de engenharia em quatro etapas, construído em torno de um único princípio: projetar o processo antes das ferramentas . Cada etapa abaixo faz parte do serviço integrado de fabricação de chapas metálicas da Deeplink serviço integrado de fabricação de chapas metálicas , que abrange estampagem, conformação profunda, corte a laser, usinagem CNC, soldagem e tratamento de superfície sob um mesmo teto. Antes de qualquer corte de metal, os engenheiros da Deeplink realizaram uma análise de projetabilidade para fabricação (DFM) nos desenhos 2D e modelos 3D fornecidos pelo cliente. Eles verificaram a relação de estampagem, o afinamento das paredes, o retorno elástico e as posições dos detalhes para confirmar que a carcaça poderia ser conformada em um número limitado de etapas de estampagem; em seguida, definiram definitivamente o tamanho da chapa plana e a capacidade de tonelagem da prensa. O material escolhido foi SUS316L — preferido em vez de SUS304 por sua maior resistência à corrosão em ambientes clínicos e com desinfetantes. Cada bobina chegou acompanhada de certificado de material e passou pela inspeção de entrada quanto à composição química e ao estado superficial. Para orientação sobre a escolha do material bruto adequado, consulte quais materiais são os melhores para peças personalizadas de estampagem metálica . A carcaça foi conformada com uma matriz progressiva de múltiplas estações em prensas de alta precisão: corte, primeiro estiramento, reestiramento, acabamento e perfuração executados em uma única linha contínua, de modo que cada carcaça seja idêntica e livre de juntas soldadas. A espessura da parede é controlada por esmerilhamento entre estágios; a lubrificação e o controle da relação de estiramento evitam rasgos e defeitos superficiais; e as dimensões críticas são mantidas com ±0,05 mm . Como o corpo é estirado a partir de uma única chapa, o resultado é uma carcaça sem costuras e estanque, com maior resistência e vida útil sob fadiga do que conjuntos soldados. Leitura relacionada: fundamentos do estiramento profundo de metais e as principais vantagens das peças estiradas profundamente de alta precisão . Explore o nosso peças estiradas profundamente de precisão capacidade. Fibra corte a laser furos de fixação, aberturas de ventilação e recortes criados com posição ±0,03 mm , enquanto Usinagem CNC adicionaram furos roscados, saliências e faces de vedação que a conformação por estampagem profunda não consegue produzir. Uma última passagem de desburramento e condicionamento de bordas — combinada com ferramentas afiadas e folga controlada entre as matrizes de 6–10% da espessura do material — removeu micro-burros nas bordas, tornando a peça acabada segura para manuseio e montagem. Veja também: tecnologia de Corte a Laser de Alta Precisão . As peças foram eletropolidos e passivados : a eletropolimentação remove micro-burros e partículas incorporadas, reduz a rugosidade superficial para Ra ≤ 0,4 μm e aumenta a resistência à corrosão; a passivação restaura a camada protetora de óxido de cromo. Os invólucros, em seguida, passaram num ensaio de névoa salina neutra de 72 horas sem apresentar corrosão visível. As peças acabadas foram limpas, protegidas individualmente e embaladas para evitar arranhões durante o transporte. O nosso guia premium de tratamento de superfícies metálicas explica as opções disponíveis com mais detalhes. As cadeias de fornecimento de dispositivos médicos não toleram surpresas quanto à qualidade. A Deeplink opera um sistema de qualidade documentado conforme a norma ISO 9001 com 39 verificações de QA em todos os projetos — o mesmo regime utilizado por fabricantes originais de automóveis, eletrônicos e energia: Cada lote é rastreável: certificado de material → lote de produção → registros de inspeção → remessa , de modo que uma única carcaça possa ser rastreada até sua bobina e curso de prensagem. Essa documentação foi concebida para integrar-se diretamente aos próprios sistemas de qualidade dos fabricantes originais médicos e apoia as exigências de rastreabilidade e histórico do dispositivo de FDA 21 CFR 820 e Fornecimento de componentes alinhado à norma ISO 13485 . Ao final do projeto, o cliente recebeu carcaças que atendiam a todos os requisitos da especificação — e, de forma crítica, documentação que comprovava isso: Além deste projeto, fabricantes de dispositivos médicos trabalham com a Deeplink porque a fábrica combina a especialização profunda de um fornecedor de estampagem com a abrangência de um parceiro integrado de chapas metálicas: Leitura relacionada: invólucros de chapa metálica personalizados de alta precisão para equipamentos eletrônicos , estampagem profunda de alta precisão e usinagem CNC , e fabricação em aço inoxidável 304 grau alimentício . Veja todos os projetos na nossa caso de Desempenho página ou saiba como a estampagem metálica apoia a personalização OEM . As opções mais comuns são os aços inoxidáveis SUS304 e SUS316L, além de ligas de alumínio quando o peso é um fator crítico. A Deeplink recomenda o SUS316L para carcaças expostas a soluções salinas, desinfetantes ou limpezas repetidas, pois seu teor mais elevado de molibdênio confere resistência superior à corrosão por pites e à corrosão geral. Todos os materiais são fornecidos com certificados e passam pela inspeção de entrada. A Deeplink mantém rotineiramente tolerâncias de ±0,05 mm em dimensões críticas conformadas e ±0,03 mm no posicionamento de furos cortados a laser, com valores ainda mais apertados possíveis em recursos usinados por CNC. A tolerância exata depende do material, da espessura e da geometria da peça — a revisão DFM na fase de cotação define-a definitivamente. A Deeplink opera um sistema documentado de gestão da qualidade conforme ISO 9001, com 39 verificações de QA por projeto, inspeção interna e rastreabilidade completa por lote. Para clientes do setor médico, a Deeplink fornece certificados de materiais, relatórios dimensionais e rastreabilidade por lote, apoiando a conformidade com a ISO 13485 e a FDA 21 CFR 820. Caso você exija uma certificação ou auditoria específica, informe-a durante o RFQ para que possa ser confirmada. O controle de rebarbas começa na ferramenta: bordas de corte afiadas e folga da matriz mantidas em 6–10% da espessura do material. Em seguida, as peças passam por desburragem, condicionamento de bordas e, quando especificado, eletropolimento, que remove microrebarbas ao nível molecular. As bordas acabadas são inspecionadas visual e dimensionalmente antes da embalagem. Sim. O Deeplink suporta o desenvolvimento de protótipos e a produção em volume com a mesma equipe de engenharia. Para muitas peças, amostras podem ser entregues em até 3 dias; uma vez aprovada a amostra, matrizes progressivas e linhas automatizadas são escalonadas para produção em alto volume, com saída consistente. Envie seu desenho para obter uma análise DFM e orçamento. Envie seus desenhos 2D ou modelos 3D — os engenheiros da Deeplink analisarão a viabilidade de fabricação, tolerâncias e custos, e enviarão um orçamento com cronograma para entrega da amostra. Novo na aquisição OEM? Leia nosso guia para fornecer desenhos para cotações rápidas e precisas .
Invólucros Metálicos para Dispositivos Médicos: Estudo de Caso com Aço Inoxidável 316L Sem Defeitos
Invólucros Metálicos para Dispositivos Médicos: Estudo de Caso com Aço Inoxidável 316L Sem Defeitos

Caixas para dispositivos médicos em aço inoxidável 316L profundamente estampadas, com acabamento eletropolido — fabricação de metais de precisão Deeplink.
01Visão Geral do Caso
02O desafio — o que o fabricante de equipamentos médicos exigiu
03A Solução de Engenharia
3.1 Revisão de DFM e seleção de material
3.2 Matriz progressiva e estampagem profunda — conformação contínua em uma única peça

Linha de estiramento profundo por matriz progressiva produzindo carcaças sem costuras em aço inoxidável na oficina de estampagem Deeplink. 3.3 Corte a laser e acabamento CNC — recursos de precisão
3.4 Tratamento de superfície e limpeza
04Sistema de qualidade e rastreabilidade — 39 verificações de QA por projeto

Verificação dimensional de uma carcaça médica em aço inoxidável durante a fase final de inspeção da Deeplink.
05Resultados
06Por que fabricantes globais de equipamentos médicos escolhem a Deeplink
07Perguntas frequentes
Quais materiais são utilizados para invólucros metálicos de dispositivos médicos?
Quais tolerâncias a Deeplink consegue manter em peças de chapa metálica para dispositivos médicos?
A Deeplink é certificada para fabricação de dispositivos médicos?
Como a Deeplink garante a ausência total de rebarbas em peças de aço inoxidável?
O Deeplink pode suportar tanto protótipos quanto produção em volume?
Obtenha uma Análise DFM e Orçamento para suas Peças Metálicas de Dispositivos Médicos
Produtos recomendados