\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);
}
});
})();
Involucri metallici per dispositivi medici sono alloggiamenti in acciaio inossidabile realizzati con precisione per proteggere l’elettronica, i sensori e le celle di alimentazione all’interno di monitor per pazienti, pompe per infusione e strumenti diagnostici. In questo studio di caso, Deeplink — un fornitore OEM certificato ISO 9001 per la fabbricazione di lamiere e lo stampaggio — illustra come un produttore di apparecchiature mediche abbia acquistato involucri in acciaio inossidabile 316L privi di difetti dotato di tolleranze dimensionali di ±0,05 mm , bordi privi di bave, superfici elettrolucidate e tracciabilità completa del lotto. Il progetto ha integrato una revisione DFM, una deformazione profonda mediante stampo progressivo, un taglio al laser a fibra, una finitura CNC e un regime ispettivo articolato in 39 passaggi; ogni componente è stato spedito corredato da certificati di materiale, report dimensionali e tracciabilità per lotto, per supportare gli obblighi qualitativi del cliente secondo le norme ISO 13485 e FDA 21 CFR 820. Il cliente si è rivolto a Deeplink con una specifica esigente. L'alloggiamento doveva soddisfare sei requisiti che distinguono la lavorazione in lamiera per uso medico da quella industriale standard: La risposta di Deeplink è stata un flusso di lavoro ingegneristico in quattro fasi, costruito attorno a un unico principio: progettare il processo prima degli utensili . Ogni fase indicata di seguito fa parte del servizio di fabbricazione integrata di lamiere di Deeplink , che comprende stampaggio, trafilatura profonda, taglio laser, lavorazione CNC, saldatura e trattamento superficiale sotto un unico tetto. Prima che venisse tagliato qualsiasi metallo, gli ingegneri di Deeplink hanno eseguito una revisione della progettazione per la producibilità (DFM) sui disegni 2D e sui modelli 3D forniti dal cliente. Hanno verificato il rapporto di trafilatura, l’assottigliamento delle pareti, il rimbalzo elastico e la posizione delle caratteristiche geometriche per confermare che l’involucro potesse essere realizzato in un numero limitato di stadi di trafilatura; successivamente hanno fissato le dimensioni della lamiera grezza e la capacità di pressatura. Il materiale scelto era SUS316L — preferito rispetto all’acciaio inossidabile SUS304 per la sua maggiore resistenza alla corrosione negli ambienti clinici e in presenza di disinfettanti. Ogni bobina era accompagnata da un certificato di materiale ed è stata sottoposta a ispezione in ingresso per verificarne la composizione chimica e lo stato superficiale. Per indicazioni sulla scelta del materiale grezzo più adatto, consultare quali materiali sono i migliori per parti personalizzate di stampaggio metallico . L’involucro è stato realizzato con uno stampo progressivo a stazioni multiple su presse ad alta precisione: taglio, prima estrusione, riestrusione, rifilatura e perforazione vengono eseguiti in un’unica linea continua, cosicché ogni alloggiamento risulta identico e privo di saldature. Lo spessore della parete è controllato mediante calibratura tra le fasi; lubrificazione e gestione del rapporto di estrusione evitano strappi e difetti superficiali; e le dimensioni critiche sono mantenute entro ±0,05 millimetri . Poiché il corpo viene estruso da un singolo foglio, il risultato è una scocca senza giunture, ermetica, con resistenza e durata a fatica superiori rispetto ad assemblaggi saldati. Lettura correlata: fondamenti della deformazione profonda dei metalli e i principali vantaggi dei componenti deformati profondamente ad alta precisione . Esplorate il nostro componenti deformati profondamente con precisione capacità. Fibra taglio laser fori di fissaggio, prese d’aria e sagomature realizzati con posizionamento ±0,03 mm , mentre Fresatura cnc aggiunti fori filettati, rilievi e superfici di tenuta che la stampatura profonda non è in grado di produrre. Un’ultima passata di sbavatura e condizionamento dei bordi — combinata con utensili affilati e un gioco controllato tra matrice e punzone pari al 6–10% dello spessore del materiale — ha eliminato le microsbave ai bordi, rendendo il componente finito sicuro da manipolare e assemblare. Vedere anche: tecnologia di Taglio Laser di Precisione . I componenti erano elettropolite e passivate : l’elettrolucidatura rimuove le microsbave e le particelle intrappolate, riduce la rugosità superficiale a Ra ≤ 0,4 μm e migliora la resistenza alla corrosione; la passivazione ripristina lo strato protettivo di ossido di cromo. Gli alloggiamenti hanno quindi superato un test di nebbia salina neutra della durata di 72 ore senza presentare alcuna corrosione visibile. I componenti finiti sono stati puliti, protetti singolarmente e imballati per evitare graffi durante il trasporto. Il nostro manuale premium sui trattamenti superficiali metallici spiega in maggiore dettaglio le opzioni disponibili. Le catene di approvvigionamento per dispositivi medici non tollerano sorprese qualitative. Deeplink gestisce un sistema qualità documentato conforme alla norma ISO 9001 con 39 controlli qualità su ogni progetto — lo stesso regime utilizzato per i produttori originali di automobili, elettronica ed energia: Ogni lotto è tracciabile: certificato del materiale → lotto di produzione → registri di ispezione → spedizione , quindi un singolo alloggiamento può essere risalito fino alla sua bobina e alla sua corsa di pressatura. Questa documentazione è progettata per integrarsi nei sistemi qualità interni dei produttori originali di dispositivi medici e soddisfa i requisiti di tracciabilità e di storia del dispositivo previsti da FDA 21 CFR 820 e Fornitura di componenti conforme alla norma ISO 13485 . Alla conclusione del progetto, il cliente ha ricevuto gli alloggiamenti che soddisfacevano tutti i requisiti della specifica — e, cosa fondamentale, la documentazione che lo dimostrava: Oltre a questo progetto, i produttori di dispositivi medici collaborano con Deeplink perché la fabbrica unisce la specializzazione di un esperto nello stampaggio alla completezza di un partner unico per la lavorazione della lamiera: Lettura correlata: involucri in lamiera personalizzati di precisione per apparecchiature elettroniche , trafilatura profonda ad alta precisione e lavorazione CNC e la lavorazione in acciaio inossidabile alimentare 304 . Visualizza tutti i progetti sulla nostra caso di Prestazione pagina oppure scopri come lo stampaggio metallico supporta la personalizzazione OEM . Le scelte più comuni sono l’acciaio inossidabile SUS304 e SUS316L, oltre alle leghe di alluminio quando il peso è un fattore critico. Deeplink raccomanda l’utilizzo di SUS316L per gli alloggiamenti esposti a soluzioni saline, disinfettanti o pulizie ripetute, poiché il suo maggiore contenuto di molibdeno garantisce una resistenza superiore alla corrosione localizzata e alla pitting. Tutti i materiali sono forniti con certificati e superano l’ispezione in ingresso. Deeplink mantiene regolarmente tolleranze di ±0,05 mm sulle dimensioni critiche formate e di ±0,03 mm sulla posizione dei fori tagliati al laser; valori ancora più stretti sono possibili sulle caratteristiche lavorate a CNC. La tolleranza esatta dipende dal materiale, dallo spessore e dalla geometria del pezzo: la revisione DFM in fase di preventivo la definisce definitivamente. Deeplink gestisce un sistema documentato di gestione della qualità ISO 9001, con 39 controlli QA per progetto, ispezioni interne e tracciabilità completa del lotto. Per i clienti del settore medico, Deeplink fornisce certificati di materiale, relazioni dimensionali e tracciabilità del lotto, che supportano la conformità agli standard ISO 13485 e FDA 21 CFR 820. Se è richiesta una certificazione specifica o un audit, segnalatelo durante la richiesta di preventivo, in modo da poterlo confermare. Il controllo delle bave inizia nello strumento: bordi di taglio affilati e gioco tra matrice e punzone mantenuti al 6–10% dello spessore del materiale. I pezzi quindi passano attraverso le fasi di sbavatura, condizionamento dei bordi e, ove specificato, lucidatura elettrolitica, che rimuove le microbave a livello molecolare. I bordi finiti vengono ispezionati visivamente e dimensionalmente prima dell’imballaggio. Sì. Deeplink supporta lo sviluppo di prototipi e la produzione in volume con lo stesso team di ingegneria. Per molti componenti, i campioni possono essere consegnati entro 3 giorni; una volta approvato il campione, le matrici progressive e le linee automatizzate si adattano alla produzione in alto volume con coerenza costante. Invii il suo disegno per ricevere una revisione DFM e un preventivo. Invii i suoi disegni 2D o modelli 3D: gli ingegneri Deeplink esamineranno la fabbricabilità, le tolleranze e i costi, e le forniranno un preventivo con il cronoprogramma per il campione. Nuovo nell’approvvigionamento OEM? Legga il nostro guida per fornire disegni per preventivi rapidi e precisi .
Involucri metallici per dispositivi medici: uno studio di caso su acciaio inossidabile 316L a zero difetti
Involucri metallici per dispositivi medici: uno studio di caso su acciaio inossidabile 316L a zero difetti

Involucri per dispositivi medici in acciaio inossidabile 316L stampati a freddo con finitura elettropolita — Deeplink precision metal fabrication.
01Panoramica del caso
02La sfida — Cosa richiedeva l'OEM medico
03La soluzione ingegneristica
3.1 Revisione DFM e selezione del materiale
3.2 Stampaggio progressivo e trafilatura profonda — Formatura monopezzo senza saldature

Linea di deformazione profonda con stampo progressivo che produce alloggiamenti in acciaio inossidabile senza giunture presso lo stabilimento Deeplink. 3.3 Taglio laser e finitura CNC — Caratteristiche di precisione
3.4 Trattamento superficiale e pulizia
04Sistema qualità e tracciabilità — 39 controlli QA per progetto

Verifica dimensionale di un contenitore medico in acciaio inossidabile durante la fase finale di ispezione di Deeplink.
05Risultati
06Perché i principali produttori mondiali di dispositivi medici scelgono Deeplink
07FAQ
Quali materiali vengono utilizzati per gli involucri metallici per dispositivi medici?
Quali tolleranze può garantire Deeplink sui componenti in lamiera per dispositivi medici?
Deeplink è certificata per la produzione di dispositivi medici?
In che modo Deeplink garantisce l’assenza totale di bave sulle parti in acciaio inossidabile?
Deeplink supporta sia prototipi che produzione in volume?
Richieda una revisione DFM e un preventivo per i componenti metallici del suo dispositivo medico
Prodotti consigliati