\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);
}
});
})();
Industri: Penyaringan Air / Peralatan Industri | Volume Tahunan: 5.000 pcs | Produsen: Cangzhou Deeplink (ISO 9001) Studi kasus ini mendokumentasikan produksi tahunan sebanyak 5.000 unit tangki baja hasil deep-drawing berlapis bubuk merah, dilengkapi outlet berulir dan braket pemasangan berbentuk-L yang dilas , diproduksi oleh Cangzhou Deeplink International Supply Chain Co., Ltd. untuk produsen peralatan asli (OEM) penyaringan air di Eropa. Badan utama dibentuk melalui proses deep-drawing dari baja cold-rolled SPCC tebal 1,5 mm , kemudian diruncingkan dan diberi ulir eksternal di bagian atas, dilas secara longitudinal ke braket pemasangan hasil pemotongan laser, serta dilapisi akhir dengan Lapisan bubuk merah RAL 3002 (60–80 μm) . Setiap unit menjalani uji kebocoran udara pada tekanan 1,5 bar sebelum dikemas. Perancangan cetakan, pembentukan, pengelasan, dan penyelesaian permukaan seluruhnya dilakukan di dalam fasilitas kami sendiri seluas 5.000 m² bersertifikat ISO 9001 di Cangzhou, Tiongkok. Gambar milik pelanggan mensyaratkan reservoir silindris berdua bagian yang dibuat sesuai tiga persyaratan ketat: (a) lasan kedap gas dan kedap air pada sambungan tengah bodi dan sambungan braket, (b) sebuah ulir eksternal bergilas presisi di bagian atas yang harus menerima fitting laki-laki standar tanpa shim, dan (c) sebuah penyelesaian kosmetik merah mengilap bebas dari tekstur kulit jeruk, aliran cat, serta bekas percikan las yang terlihat setelah pelapisan. Braket-L yang dipasang di sisi harus menopang tangki terisi pada panel dinding, sehingga kerataan dan posisi lubang pada braket sangat kritis untuk perakitan. Setiap lot produksi menjalani rangkaian pemeriksaan terdokumentasi Deeplink: P1. Apa itu deep drawing, dan kapan saya harus memilihnya dibandingkan spinning atau pengelasan? P2. Seberapa tahan lama pelapis bubuk merah pada tangki baja yang dilas? Pertanyaan 3. Apakah komponen yang sama dapat dibuat dari baja tahan karat tipe 304 atau 316? Pertanyaan 4. Berapa jumlah pemesanan minimum untuk tangki hasil deep-drawing serupa? P5. Berapa lama waktu yang dibutuhkan untuk pembuatan cetakan dan pengambilan sampel? P6. Format file CAD apa saja yang Anda terima? Selain tangki berlapis bubuk merah ini, Deeplink menyediakan komponen logam khusus secara terpadu dalam satu atap: komponen stainless steel hasil deep drawing , metal stamping mati progresif , pemotongan laser dan pemrosesan profil , Komponen yang diproses dengan mesin CNC , fabrikasi dan perakitan yang dilas , serta pelindung logam lembaran khusus — melayani produsen peralatan asli (OEM) di bidang otomotif, elektronik, medis, mesin industri, energi baru, dan peralatan makanan di seluruh dunia. Kirimkan gambar teknis, bahan, jumlah, dan persyaratan penyelesaian permukaan Anda. Insinyur kami akan melakukan Ulasan DFM secara tertulis — yang mencakup kelayakan pembuatan gambar, risiko toleransi, pilihan ulir/leher, serta pilihan penyelesaian permukaan — lalu memberikan kutipan harga dalam waktu 24 jam. Penerimaan pesanan mulai dari prototipe hingga produksi massal hingga 20.000 unit.
Tangki Baja Hasil Penarikan Dalam dengan Lapisan Serbuk Merah dan Saluran Keluar Berulir — Studi Kasus OEM
Tangki Baja Hasil Penarikan Dalam dengan Lapisan Serbuk Merah dan Saluran Keluar Berulir — Studi Kasus OEM
1. Ringkasan Komponen
Atribut
Spesifikasi
Nama Bagian
Reservoir baja hasil deep-drawing / rumah filter dengan outlet berulir
Bahan
Baja SPCC canai dingin, ketebalan dinding 1,5 mm (baja tahan karat 304 tersedia berdasarkan permintaan)
Pembentukan
Pengecoran dalam dua tahap + pengurangan leher + penggulungan ulir
Benang keluaran
Ulir luar yang digulung, G 3/4″ (sesuai gambar yang disediakan pelanggan)
Fitur pemasangan
Braket-L yang dipotong dengan laser dengan dua lubang tembus, dilas MIG ke badan
Permukaan akhir
Perlakuan awal fosfat besi + lapisan bubuk warna merah mengilap RAL 3002, ketebalan 60–80 μm
Uji Kebocoran
uji tekanan udara 1,5 bar di bawah air, pemeriksaan 100%
Volume Tahunan
5.000 pcs/tahun (pemesanan ulang per batch)
Waktu tunggu
Pembuatan cetakan dan sampel: 25 hari; produksi batch: 30–35 hari

2. Apa yang Diminta dalam Gambar
3. Tantangan Teknis yang Kami Atasi

4. Alur Proses Manufaktur

5. Pengendalian Mutu — 39+ Tahap QA, ISO 9001
Panggung
Apa yang Diperiksa
Bahan Masuk
Sertifikat pabrik, ketebalan, permukaan pada gulungan SPCC
First Article
Laporan dimensi lengkap dibandingkan gambar sebelum pelepasan batch
Selama Proses
Ukur dimensi, ukur ulir, inspeksi visual las per shift
Uji Kebocoran
uji kebocoran udara 1,5 bar di bawah air — 100% unit
Pelapisan
Ketebalan lapisan 60–80 μm, uji adhesi cross-hatch, warna dibandingkan chip RAL
Pengepakan akhir
Inspeksi visual, posisi lubang braket, pengepakan tahan jatuh
6. Hasil untuk Pelanggan
7. Pertanyaan yang Sering Diajukan
Deep drawing adalah proses pembentukan lembaran logam yang menarik blank ke dalam die di bawah blank-holder. Proses ini lebih disukai untuk komponen berbentuk silinder atau persegi panjang dengan badan tertutup (tangki, cangkir, tutup) di mana Anda membutuhkan ketebalan dinding yang konsisten, tanpa sambungan las memanjang pada badan komponen, serta ekonomis pada volume sedang hingga tinggi. Spinning cocok untuk volume sangat rendah; sambungan las gulung cocok untuk diameter sangat besar.
Dilapisi pada perlakuan awal berbasis besi-fosfat dengan ketebalan 60–80 μm, lapisan bubuk warna merah RAL 3002 memberikan kinerja semprotan garam khas selama 500–1.000 jam untuk penggunaan dalam ruangan atau peralatan yang tertutup, serta lebih tahan terhadap keretakan dibandingkan cat cair. Untuk penggunaan di luar ruangan atau dalam kondisi terendam, kami akan beralih ke baja tahan karat tipe 304/316 atau lapisan bubuk poliester kelas maritim.
Ya. Tangki hasil deep-drawing dari baja tahan karat merupakan lini produk standar Deeplink. Perlu diperhatikan bahwa proses deep-drawing baja tahan karat memerlukan tonase yang lebih tinggi, kecepatan yang lebih lambat, serta pelumasan di dalam cetakan; selain itu, proses rolling ulir pada baja tahan karat tipe 304 umumnya memerlukan langkah pelepasan tegangan pasca-rolling guna mempertahankan daktilitas. Cetakan yang digunakan terpisah dari versi SPCC.
Kami mendukung baik prototipe maupun produksi massal. Untuk tangki dalam tarikan khusus seperti ini, titik keseimbangan ekonomis berada di kisaran 1.000+ pcs/tahun karena investasi pada cetakan progresif; produksi dalam jumlah lebih kecil dapat dikutip menggunakan peralatan stasiun tunggal atau alternatif pengelasan dari lembaran logam. Kami akan memberi tahu Anda MOQ dan biaya cetakan secara tertulis setelah tinjauan DFM.
Umumnya 20–25 hari kerja untuk sampel cetakan lunak dan 25–35 hari kerja untuk cetakan produksi keras, tergantung pada kompleksitas komponen dan pembentukan ulir. Waktu tunggu batch setelah persetujuan adalah 25–35 hari kerja.
Format STEP, IGES, DXF, DWG, dan gambar PDF merupakan standar. Kirimkan file berserta spesifikasi bahan, ketebalan, jumlah, dan kebutuhan penyelesaian permukaan; tim teknik kami akan memverifikasi kelayakan sebelum memberikan kutipan. 8. Kemampuan Terkait & Layanan Jangka Panjang
9. Mulai Proyek Tangki atau Rumah Anda Sendiri
Produk yang Direkomendasikan