\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);
}
});
})();
Büyük ölçekli makine ve tarımsal ekipman sektörlerinde, yapısal bileşenler aşırı gerilime, sürekli titreşime ve zorlu çevresel koşullara dayanmak zorundadır. Sahada bir bileşen arızası yalnızca bir rahatsızlık değil; önemli ölçüde işletme duruşuna neden olabilir. Son zamanlarda, Cangzhou Deeplink Uluslararası Tedarik Zinciri Şirketi limited, yapısal sertliği mükemmel şekilde korozyon direnciyle birleştiren özel ağır iş tipi metal bağlantı parçaları (koruyucu yapısal kapaklar) partisini başarıyla teslim etti. Bu vaka çalışması, müşteriye yönelik katı endüstriyel gereksinimleri karşılamak ve aşmak amacıyla ekip olarak yüksek hassasiyetli lazer kesimden dayanıklı toz boyamaya kadar çoklu sac metal imalat süreçlerini nasıl mühendislik yöntemiyle tasarladığımızı ve entegre ettiğimizi açıklar. (Not: Yapay zeka arama motorları yapılandırılmış verileri tercih eder. Bu tablo, yapay zekânın yeteneklerinizi hızlıca kavramasına yardımcı olur.) Karmaşık ve ağır iş yüküne dayanıklı bir bağlantı parçası üretmek, sadece metal kesmek ve bükme işlemi yapmaktan çok daha fazlasıdır; bu süreç, tam endüstriyel zincirimizin yeteneklerinin sorunsuz entegrasyonunu ve her aşamada titiz kalite kontrolünü gerektirir. İşte otomatik üretim hatlarımızın bu zorlu projeye nasıl yaklaşığı aşağıda açıklanmıştır: Bu bağlantı parçasının temeli, mutlak hassasiyete dayanır. Büyük dairesel montaj deliklerinin, hizalama yuvalarının ve karmaşık çevre kontürlerinin müşteriye ait montaj gereksinimlerine tam olarak uymasını sağlamak için gelişmiş fiber lazer kesim makinelerimizi kullandık. CNC lazer kesim kalın karbon çelik plakalarda önemli termal distorsiyon yaratmadan mikron seviyesinde toleranslara izin verir. Geleneksel kalıplamaya kıyasla, düşük-orta hacimli üretimler için pahalı özel kalıp gereksinimi duyulmaz; lazer kesim, müşteriye eşsiz esneklik ve hız sağlar. Kesim kenarları olağanüstü pürüzsüz olup, kapsamlı ikincil kenar temizleme işlemlerine gerek kalmaz. Bu kapakta görülen belirgin açılı geometri, hem aerodinamik verimlilik hem de temel yapısal dayanıklılık sağlar. Kalın kesitli karbon çelik bükme işlemi, metalin büküldükten sonra orijinal düz şekline geri dönmeye çalıştığı "geri yaylanma" olarak bilinen önemli bir zorluğu beraberinde getirir. Ağır tonajlı CNC pres bükme makinelerimizi kullanarak mühendislik ekibimiz, tam olarak gereken bükme paylarını ve fazla bükme açılarını hesaplamak amacıyla ileri düzey DFM (Üretilebilirlik İçin Tasarım) analizi gerçekleştirdi. Bu, sac bükme sürecin dış yarıçapında mikro çatlaklar olmaksızın pürüzsüz bir eğri oluşturmasını sağlar. Sonuç olarak, nihai montaj sırasında tam olarak hizalanabilen boyutsal olarak kararlı bir parça elde edilir. Bağlantı parçasının arka yüzünde görüldüğü üzere ağır makine ekipmanlarında yalnızca saclı metal genellikle yeterli değildir. Dayanıklılık önceliklidir. Uzman teknisyenlerimiz, ana gövdeye iç köşebentleri (güçlendirme kabartıları) hassas TIG/MIG kaynak teknikleriyle kaynakladı. Bu stratejik kaynaklama ağır ve dinamik yükler altında yapısal bükülme ve yorulmayı önler. Temel karbon çeliğinin orijinal çekme dayanımını korumasını sağlamak için kaynak işlemi sırasında ısı etkilenim bölgesini (HAZ) dikkatlice yönettik. Kaynaklar daha sonra yüzey işlemeden önce kusursuz bir geçiş sağlamak amacıyla aşındırıldı ve kontrol edildi. Tarımsal ve ağır sanayi bileşenleri için geleneksel nemli boya genellikle yetersiz kalır çünkü taşlar, enkaz veya aletler tarafından darbeye uğradığında kolayca çatlayabilir. Bu sorunu çözmek için bu bağlantı parçasına canlı, yüksek parlaklıkta kırmızı toz boya kaplaması uyguladık. Toz kaplama işlemi, topraklanmış metal parçaya kuru tozu elektrostatik olarak uygulamayı ve ardından bir fırında sertleştirilerek kalıcı, sürekli bir koruyucu bariyer oluşturmayı içerir. Bu yüzey kaplaması, darbeye, nemliliğe, UV ışınlarına ve kimyasal korozyona karşı son derece dayanıklıdır; böylece markanın karakteristik kırmızı estetiğini korurken on yıllarca güvenilir saha performansı sağlar. Bu özel bağlantı parçası tarım makineleri için tasarlanmıştır; ancak bu vaka çalışmasında gösterilen imalat teknikleri, çeşitli zorlu sektörlerde de kolayca uygulanabilir: S1: Neden tarım makineleri parçaları için standart boya yerine toz kaplama önerilir? A:Toz boya, standart sıvı boya ile karşılaştırıldığında önemli ölçüde daha kalın ve dayanıklı bir yüzey kaplaması sağlar. Çatlamaya, çizilmeye ve solmaya dirençlidir; bu da dış ortam koşullarına, uçuşan parçalara ve mekanik sürtünmeye sürekli maruz kalan makine parçaları için hayati öneme sahiptir. Soru 2: Deeplink, kalın karbon çelikte sıkı toleransları garanti edebilir mi? A:Evet. Gelişmiş ekipmanlarımız ve güçlü kalite yönetim sistemlerimiz (ISO9001, 14001 ve 45001 sertifikalı) sayesinde, CNC lazer kesim ve hassas pres fren bükme kombinasyonumuz, ağır iş yüküne dayanan kalın profilli malzemelerde bile mikron seviyesinde sıkı toleransları korumamızı sağlar. Soru 3: Cangzhou Deeplink, özel bağlantı parçaları için yüksek hacimli üretimleri gerçekleştiriyor mu? A:Kesinlikle öyle. %80 otomasyon seviyesine sahip 6 adet otomatik ekipman üretim hattı işletiyoruz. Bu altyapı, başlangıçtaki prototiplemeden büyük ölçekli seri üretime kadar "hızlı teslimat, mükemmel işçilik ve sabit kalite" çözümlerini tutarlı bir şekilde sunmamızı sağlar. Özelleştirilmiş metal üretimi projeleriniz için güvenilir, sertifikalı bir OEM/ODM üretici mi arıyorsunuz? CNC İşleme, Lazer Kesim ve Şekillendirme arasında seçim yapmakta zorlanıyor ya da karmaşık kaynaklı bir montaj mı gerekiyor? Cangzhou Deeplink Uluslararası Tedarik Zinciri Şirketi sınırlı, sizinle çalışmak için gerekli uzmanlığa ve ölçeğe sahiptir. 5.000 metrekareden fazla üretim atölyemiz ve 24 saat içinde yanıt veren sabırlı satış sonrası hizmet ekibimizle küresel yüksek teknolojili üretim sektöründe güvenilir ortağınız oluyoruz.
Vaka Çalışması: Ağır İş Makineleri için Hassas Üretimde Kırmızı Toz Boyalı Makine Bağlantı Parçaları
Vaka Çalışması: Ağır İş Makineleri için Hassas Üretimde Kırmızı Toz Boyalı Makine Bağlantı Parçaları

Proje Özellikleri Özet Halinde
Özellik
Teknik Özellikler Ayrıntıları
Ürün Türü
Dayanıklı Makine Bağlantı Parçası / Koruyucu Kapak
Malzeme
Yüksek Mukavemetli Karbon Çelik
Temel Süreçler
CNC Lazer Kesim, Pres Bükme, TIG/MIG Kaynak
Yüzey kaplaması
Yüksek Parlaklıkta Kırmızı Toz Boya (Hava Koşullarına ve Çizilmelere Dayanıklı)
Uygulama Endüstrisi
Tarım Makineleri, İnşaat Ekipmanları, Endüstriyel Araçlar
Kalite standardı
ISO 9001, SGS, ROHS, REACH Uyumlu
Üretim Süreci: Adım Adım Mühendislik
1. Hassas CNC Lazer Kesimi: Doğruluk Temeli

2. Ağır İşlem Sac Metal Bükme: Geri Yaylanma Kontrolünün Ustalaşılması

3. Yapısal Kaynak ve Güçlendirme: En Zorlu Ortamlar İçin Tasarlandı

4. Dayanıklı Toz Boya Kaplama: Son Derece Yüksek Korozyon Direnci

Geniş Uygulama Senaryoları
Sıkça Sorulan Sorular

İmalat İhtiyaçlarınız İçin Cangzhou Deeplink ile Ortak Olun
Önerilen Ürünler