\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);
}
});
})();
Kotak logam untuk perangkat medis adalah rumah baja tahan karat berbentuk presisi yang melindungi komponen elektronik, sensor, dan sel daya di dalam monitor pasien, pompa infus, serta instrumen diagnostik. Dalam studi kasus ini, Deeplink — produsen OEM bersertifikat ISO 9001 untuk fabrikasi logam lembaran dan stamping — menunjukkan bagaimana sebuah produsen peralatan medis memperoleh kotak baja tahan karat 316L tanpa cacat dengan toleransi dimensi ±0,05 mm , tepi bebas burr, permukaan yang dipoles elektrolitik, serta pelacakan lengkap per lot. Proyek ini menggabungkan tinjauan DFM, penarikan dalam mati progresif, pemotongan laser serat, pengerjaan CNC, dan prosedur inspeksi 39 langkah; setiap komponen dikirim disertai sertifikat bahan, laporan dimensi, dan pelacakan batch guna mendukung kewajiban mutu pelanggan berdasarkan ISO 13485 dan FDA 21 CFR 820. Pelanggan datang ke Deeplink dengan spesifikasi yang ketat. Casing harus memenuhi enam persyaratan yang membedakan fabrikasi logam lembaran kelas medis dari pekerjaan industri biasa: Jawaban Deeplink adalah alur kerja rekayasa empat tahap yang dibangun di sekitar satu prinsip: desain proses sebelum perancangan peralatan . Setiap tahap di bawah ini merupakan bagian dari layanan fabrikasi logam lembaran satu atap Deeplink , yang mencakup stamping, deep drawing, pemotongan laser, pemesinan CNC, pengelasan, dan perlakuan permukaan di bawah satu atap. Sebelum logam dipotong, insinyur Deeplink menjalankan tinjauan desain-untuk-manufakturabilitas (DFM) terhadap gambar 2D dan model 3D pelanggan. Mereka memeriksa rasio tarik, pengurangan ketebalan dinding, pemulihan elastis (springback), serta posisi fitur guna memastikan rumah (housing) dapat dibentuk dalam jumlah tahap penarikan yang terbatas, lalu menetapkan ukuran bahan awal (blank) dan kapasitas tekan (press tonnage). Bahan yang dipilih adalah SUS316L — lebih disukai daripada SUS304 karena ketahanan korosinya yang lebih tinggi di lingkungan klinis dan desinfektan. Setiap gulungan dilengkapi sertifikat bahan dan lulus inspeksi penerimaan untuk komposisi kimia serta kondisi permukaan. Untuk panduan memilih bahan baku yang tepat, lihat bahan apa yang paling cocok untuk komponen stamping logam khusus . Rumah (housing) dibentuk menggunakan die progresif multi-stasiun pada presisi tinggi: blanking, drawing tahap pertama, redraw, trimming, dan piercing dijalankan dalam satu jalur kontinu, sehingga setiap housing identik dan bebas dari sambungan las. Ketebalan dinding dikendalikan melalui proses ironing antar tahap; pelumasan dan pengaturan rasio drawing mencegah robekan serta cacat permukaan; dan dimensi kritis dipertahankan hingga ± 0,05 mm2 . Karena bodi ditarik dari satu lembar bahan utuh, hasilnya adalah cangkang tanpa sambungan yang kedap udara dan cairan, dengan kekuatan serta masa pakai fatik lebih baik dibandingkan perakitan bersambung las. Bacaan terkait: dasar-dasar metal deep drawing dan keunggulan utama komponen deep drawn presisi tinggi . Jelajahi komponen deep drawn presisi tinggi kemampuan. Serat pemotongan laser membuat lubang pemasangan, ventilasi, dan cutout dengan posisi ±0.03 mm , sementara Mesin CNC menambahkan lubang ulir, tonjolan, dan permukaan penyegel yang tidak dapat dihasilkan melalui proses deep drawing. Tahap akhir berupa penghilangan burr dan penyesuaian tepi — dikombinasikan dengan peralatan pemotong tajam serta jarak antar die yang terkendali sebesar 6–10% dari ketebalan bahan — menghilangkan burr mikroskopis pada tepi sehingga komponen jadi aman untuk ditangani dan dirakit. Lihat juga: teknologi Pemotongan Laser Presisi . Komponen-komponen tersebut dielektropolish dan dipasifkan : elektropolishing menghilangkan burr mikro dan partikel yang terperangkap, menurunkan kekasaran permukaan menjadi Ra ≤ 0,4 μm dan meningkatkan ketahanan terhadap korosi; passivasi memulihkan lapisan oksida kromium pelindung. Selanjutnya, rumah-rumah komponen tersebut berhasil melewati uji semprot garam netral selama 72 jam tanpa menunjukkan korosi yang terlihat. Komponen jadi dibersihkan, dilindungi secara individual, dan dikemas guna mencegah goresan selama pengiriman. Panduan kami mengenai perlakuan permukaan logam premium menjelaskan pilihan-pilihan yang tersedia secara lebih rinci. Rantai pasok perangkat medis tidak mentoleransi kejutan mutu. Deeplink menjalankan sistem mutu terdokumentasi berdasarkan ISO 9001 dengan 39 pemeriksaan QA di seluruh proyek — rezim yang sama digunakan untuk produsen peralatan asli (OEM) di sektor otomotif, elektronik, dan energi: Setiap lot dapat dilacak: sertifikat bahan → lot produksi → catatan inspeksi → pengiriman , sehingga satu unit housing dapat dilacak kembali ke coil dan langkah penekanan (press stroke) asalnya. Dokumentasi ini dirancang agar terintegrasi mulus ke dalam sistem mutu milik OEM medis serta mendukung persyaratan pelacakan (traceability) dan riwayat perangkat (device-history) FDA 21 CFR 820 dan Pemasok komponen yang selaras dengan ISO 13485 . Di akhir proyek, pelanggan menerima rumah (housing) yang memenuhi semua persyaratan dalam spesifikasi—dan, yang lebih penting lagi, dokumentasi yang membuktikannya: Di luar proyek ini, produsen perangkat medis bekerja sama dengan Deeplink karena pabrik tersebut menggabungkan keahlian mendalam sebagai spesialis stamping dengan cakupan luas sebagai mitra satu atap untuk komponen logam lembaran: Bacaan terkait: enklosur logam lembaran presisi khusus untuk peralatan elektronik , penarikan dalam presisi tinggi & pemesinan CNC , dan fabrikasi baja tahan karat food-grade 304 . Lihat semua proyek di halaman kami kasus Kinerja , atau pelajari cara stamping logam mendukung kustomisasi OEM . Pilihan paling umum adalah baja tahan karat SUS304 dan SUS316L, serta paduan aluminium bila berat menjadi pertimbangan. Deeplink merekomendasikan SUS316L untuk rumah (housing) yang terpapar larutan garam, desinfektan, atau pembersihan berulang, karena kandungan molibdenum yang lebih tinggi memberikan ketahanan unggul terhadap korosi lokal (pitting) dan korosi umum. Semua bahan dikirim dengan sertifikat dan lulus inspeksi penerimaan. Deeplink secara konsisten mempertahankan toleransi ±0,05 mm pada dimensi bentuk kritis dan ±0,03 mm pada posisi lubang hasil pemotongan laser, dengan nilai yang bahkan lebih ketat masih memungkinkan untuk fitur yang dikerjakan menggunakan mesin CNC. Toleransi pasti tergantung pada jenis material, ketebalan, dan geometri komponen — tinjauan DFM pada tahap penawaran akan menetapkannya secara final. Deeplink menerapkan sistem manajemen mutu ISO 9001 yang terdokumentasi, dengan 39 pemeriksaan QA per proyek, inspeksi internal, serta pelacakan lengkap per batch. Bagi pelanggan sektor medis, Deeplink menyediakan sertifikat material, laporan dimensi, dan pelacakan lot guna mendukung kepatuhan terhadap ISO 13485 dan FDA 21 CFR 820. Jika Anda memerlukan sertifikasi atau audit tertentu, silakan sampaikan saat proses RFQ agar dapat dikonfirmasi. Pengendalian burr dimulai di dalam alat: tepi pemotongan yang tajam dan celah die yang dijaga pada 6–10% dari ketebalan material. Komponen kemudian melewati proses deburring, kondisioning tepi, dan—jika ditentukan—elektropolishing, yang menghilangkan burr mikro pada tingkat molekuler. Tepi akhir diperiksa secara visual dan dimensional sebelum dikemas. Ya. Deeplink mendukung pengembangan prototipe dan produksi volume dengan tim rekayasa yang sama. Untuk banyak komponen, sampel dapat dikirimkan dalam waktu 3 hari; setelah sampel disetujui, die progresif dan lini otomatis meningkat kapasitasnya untuk menghasilkan output bervolume tinggi secara konsisten. Kirim gambar Anda untuk memperoleh tinjauan DFM dan penawaran harga. Kirimkan gambar 2D atau model 3D Anda — insinyur Deeplink akan meninjau kelayakan manufaktur, toleransi, dan biaya, lalu memberikan penawaran harga beserta jadwal pengiriman sampel. Baru dalam pengadaan OEM? Baca panduan kami panduan untuk menyediakan gambar guna penawaran harga yang cepat dan akurat .
Kotak Logam untuk Perangkat Medis: Studi Kasus Baja Tahan Karat 316L Tanpa Cacat
Kotak Logam untuk Perangkat Medis: Studi Kasus Baja Tahan Karat 316L Tanpa Cacat

Wadah perangkat medis dari baja tahan karat 316L yang dibentuk dalam (deep-drawn) dengan permukaan hasil elektropolishing — fabrikasi logam presisi Deeplink.
01Ringkasan Kasus
02Tantangan — Persyaratan OEM Medis
03Solusi Teknis
3.1 Tinjauan DFM & Pemilihan Bahan
3.2 Die Progresif & Penarikan Dalam — Pembentukan Tanpa Sambungan Satu-Piece

Jalur deep drawing die progresif yang memproduksi housing stainless steel tanpa sambungan di bengkel stamping Deeplink. 3.3 Pemotongan Laser & Finishing CNC — Fitur Presisi
3.4 Perlakuan Permukaan & Kebersihan
04Sistem Mutu & Keterlacakan — 39 Pemeriksaan QA per Proyek

Verifikasi dimensi pada rangka medis stainless steel selama tahap inspeksi akhir Deeplink.
05Hasil
06Mengapa Produsen Alat Kesehatan Global Memilih Deeplink
07Tanya Jawab
Bahan apa saja yang digunakan untuk enklosur logam perangkat medis?
Toleransi apa saja yang dapat dipertahankan Deeplink pada komponen logam lembaran perangkat medis?
Apakah Deeplink bersertifikasi untuk produksi perangkat medis?
Bagaimana Deeplink menjamin tidak adanya burr pada komponen baja tahan karat?
Apakah Deeplink dapat mendukung baik prototipe maupun produksi volume?
Dapatkan Tinjauan DFM & Penawaran Harga untuk Komponen Logam Perangkat Medis Anda
Produk yang Direkomendasikan