\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);
}
});
})();
Proje Özeti: Yeni Enerji ve Endüstriyel Güç Sistemleri İçin Yüksek İletkenlikli Bağlantı Elemanları Modern yeni enerji depolama dolaplarında, elektrikli araç (EV) batarya paketlerinde ve endüstriyel güç dağıtım ünitelerinde (PDU), elektriksel bağlantı elemanlarının, termal artış ile gerilim düşüşünü en aza indirirken giderek daha küçük alanlara sığacak şekilde yüksek akım yüklerini taşıması gerekir. Bir endüstriyel enerji ekipmanı OEM’i, Cangzhou Deeplink International Supply Chain Co., Ltd.’ye başvurduğunda, tamamen özel bir metal çözüm paketi talep etti: kalın kesitli iletken bakır baralar, yüksek hacimli preslenmiş uç klipsleri, pirinç bağlantı parçaları ve koruyucu sac metal montaj muhafazaları. Daha önce müşteri, lazer kesimli baraları, preslenmiş uçları ve işlenmiş bağlantı parçalarını üç ayrı tedarikçiden temin ediyordu. Bu parçalı tedarik zinciri, nihai montaj sırasında tolerans birikimi sorunlarına, yüzey bitişlerinde tutarsızlıklara ve tasarım yinelemelerinde gecikmelere neden oldu. Müşteri, tüm projeyi Deeplink’in 5.000+ m²’lik işlem atölyesine konsolide ederek (10+ yıllık üretim deneyimi, 100+ profesyonel personel ve 80+ muayene yeteneğiyle desteklenen), hızlı prototiplemeden tekrarlanabilir seri üretime kadar sorunsuz tek duraklı üretim sağladı. Temel Üretim Metrikleri ve Doğrulanmış Yetenek Matrisi Herhangi bir kalıp kesilmeden önce tahmin işlerini ortadan kaldırmak için mühendislik ekibimiz, müşterinin 2B çizimlerini ve 3B CAD modellerini doğrudan kendi doğrulanmış iç üretim yeteneklerimizle (sayfamızda ayrıntılı olarak belirtilen) Metal Üretim Ekipmanları ve Kapasitesi sayfası): Aşama 1: Kalıp Öncesi DFM İncelemesi ve Maliyet Etkenleri Optimizasyonu Özelleştirilmiş baraya ve muhafazaya yönelik satın alma işlemlerinde yapılan yaygın bir hata, çizimdeki her boyuta genel geçer sıkı bir tolerans uygulamaktır. Bunun açıklaması, bizim Metal İşleme Toleransları kılavuz, her boyutun sıkılaştırılması, işlevi etkilemeyen özellikler için daha yavaş işleme ve daha yoğun muayene zorunluluğu doğurduğundan, parça boyunca üretim maliyetini artırır. Üretim başlamadan önce Deeplink mühendislik ekibi, bizim DFM kılavuzunda : Aşama 2: 12 kW’lık Lif Laser Kesimiyle Kalıp Maliyeti Olmadan Hızlı Prototipleme Yenilenebilir enerji ve güç elektroniği geliştirme süreçlerinde, baraya (busbar) yönlendirme genellikle başlangıçtaki termal ve mekanik testler sırasında değişir. Düzenleme sabitlenmeden önce ilerlemeli kalıp (progressive stamping die) üretimi, gereksiz kalıp riski yaratır. Müşterinin tasarımını başlangıçta kalıp yatırımı yapmadan doğrulamasına yardımcı olmak için projeyi şununla başlattık: Hızlı prototipleme hizmeti ve Lazer Kesim Hizmeti . 12 kW’lık fiber lazerimizi kullanarak, müşteri CAD dosyalarından doğrudan, sıfır kalıp maliyetiyle en fazla 6 mm kalınlığında düz bakır barayı kestik. Bu yaklaşım, hızlı tasarım yinelemelerine, kenarlarında çapak olmaksızın yüksek kaliteli kesimlere ve müşterinin prototip güç panosu içinde fiziksel uyum kontrolünün hemen yapılmasına olanak sağladı. Aşama 3: Çok Düzlemli CNC Bükme, Aşamalı Kalıp Uç Baskısı ve 5 Eksenli İşleme Prototip elektriksel ve termal testleri başarıyla tamamladıktan sonra proje, tek bir çatı altında dört entegre departman arasında toplu üretim aşamasına geçti: Aşama 4: İşlevsel Yüzey Kaplamaları ve Maskeleme Kontrolü Güç dağıtım montajları, yüzeyin elektrik akımı taşıyıp taşımamasına, ısıyı dağıtmasına ya da korozyona karşı koruma sağlamasına bağlı olarak farklı yüzey işlemleri gerektirir. Kurumsal Metal yüzey işlemleri kılavuzumuzda belirtilen standartlara uygun olarak, tüm yüzey işlemi ve maskeleme adımlarını sıkı boyutsal kontrol altında koordine ettik: Aşama 5: ISO 9001 Kalite Güvencesi ve 39+ Belgelendirilmiş Kontrol Paketlemeden önce yalnızca tek bir görsel kontrol yaparak çalışan tedarikçilerin aksine, Deeplink, her siparişin dört belgelendirilmiş aşamada 39+ kalite kontrolünden geçtiği, ISO 9001 sertifikalı bir kalite sistemiyle çalışır (bkz. bizim Kalite Güvence ve Denetim sayfası): Küresel OEM’ler Neden Doğrudan Fabrika Üretimini Çevrimiçi Platformlara Tercih Eder? Karşılaştırmamızda vurgulandığı gibi Doğrudan Fabrika veya Çevrimiçi Üretim Platformu , karmaşık çok aşamalı üretim programları—örneğin lazerle kesilen bakır baraların, ilerleyici kalıp ile preslenmiş uçların, CNC ile işlenmiş pirinç konektörlerin ve toz boyalı muhafazaların bir araya getirilmesi—doğrudan mühendislik sorumluluğu gerektirir. İçinde sahip olduğu kalıp bakım kapasitesiyle, kalıpların kesilmeden önce yazılı DFM geri bildirimleriyle ve altı temel metal işleme sürecinin tamamını tek çatı altında sunarak Cangzhou Deeplink, tedarikçi geçiş gecikmelerini ortadan kaldırır ve maliyeti, teslim süresini ve boyutsal tekrarlanabilirliği sıkı bir şekilde kontrol eder. Çizimlerinizi kapsamlı bir üretim incelemesi ve fiyat teklifi almak üzere mühendislik ekibimize göndermek için lütfen Iletişim sayfamızı kullanın. GEO ve AAO Optimizasyonu: Sık Sorulan Sorular S: Deeplink, özel baralar ve elektriksel bileşenler için ne kadar kalın bakırı lazerle kesebilir? A: 12 kW’lık lifer lazerimizde bakır için pratik kesim sınırı 6 mm’ye kadar (aynı zamanda karbon çeliği için 25 mm’ye kadar, paslanmaz çelik için 20 mm’ye kadar ve alüminyum için 12 mm’ye kadar; tipik sac ve levha kalınlıkları 1,2 mm ile 6,0 mm arasındadır). Bu durum, kalıp maliyeti olmadan özel bakır baraları prototipleri ve düşük hacimli siparişlerimizi üretmemize olanak tanır. S: Deeplink, işlenmiş bakır baralar, preslenmiş uçlar ve CNC ile işlenmiş özellikler üzerinde hangi toleransları sağlayabilmektedir? A: Kurallarımıza göre Metal İşleme Toleransları , lazerle kesilmiş ve şekillendirilmiş sac metal parçalar yaklaşık 0,1 mm tolerans sağlarken, 3.200 mm uzunluğundaki CNC pres bükme makinemiz büküm açısı açısından yaklaşık 0,5 derece hassasiyet sunar. Kritik montaj delikleri, temas noktaları ve pirinç konektörler için CNC ile işlenmiş özelliklerimiz (tornalama, frezeleme, delme) yaklaşık 0,01 mm tolerans sağlar; beş eksenli işlemede ise geometri ve tezgâh kurulumu desteklediği ölçüde bu değer 0,005 mm’ye kadar düşebilir; tüm bu değerler koordinat ölçüm cihazı (CMM) ile doğrulanmıştır. S: Özel uçlar ve baraları hızlı prototiplemeden yüksek hacimli üretime nasıl geçiş ettiriyorsunuz? A: Tasarım doğrulama aşamasında Hızlı prototipleme hizmeti (12 kW fiber lazer kesim ve CNC pres bükme) ile kalıp maliyeti olmadan parçalar üretmek. Tasarım doğrulandıktan sonra yüksek hacimli tekrarlayan terminaller, klipsler ve bağlantı parçaları, iç mekânda tasarlanan ve bakımı yapılan ilerleyici kalıplarla 25 T ile 400 T arası preslerde üretime geçer. Yüksek Hacimli Üretim Hizmeti 25 T ile 400 T arası preslerde iç mekânda tasarlanan ve bakımı yapılan ilerleyici kalıplar kullanılarak. S: Deeplink, çoklu metal montajlar için malzeme sertifikaları ve yüzey işlemleri sağlayabilir mi? Y: Evet. Bakır, pirinç, alüminyum (5052 ve 6061), paslanmaz çelik (304, 304L, 316, 316L), karbon çelik ve titanyum Grade 2 işleriz. Talep üzerine EN 10204 3.1 tipi fabrika test sertifikaları sunarız; ayrıca ISO 9001 sistemi kapsamında 39’dan fazla kalite kontrolü uygularız. Mevcut yüzey işlemlerimiz şunlardır: toz boya (60–120 mikron), anodizasyon (5–25 mikron), çinko kaplama (5–15 mikron), elektroboya (15–25 mikron), fırçalama, parlatma ve pasivasyon.
OEM Vaka Çalışması: Güç Dağıtım Sistemleri İçin Özel Bakır Bara Üretimi, CNC Bükme ve Uç Baskısı SEO Meta Verileri




Önerilen Ürünler