\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);
}
});
})();
در بخش ماشینآلات سنگین و تجهیزات کشاورزی، اجزای سازهای باید در برابر تنشهای شدید، لرزشهای مداوم و شرایط محیطی سخت مقاومت کنند. خرابی یک جزء در محل کار نهتنها یک ناراحتی است؛ بلکه میتواند منجر به توقف طولانیمدت عملیات شود. اخیراً، شرکت زنجیره تأمین بینالمللی کانگژو دیپلینک محدودیتشده با موفقیت دستهای از پایههای فلزی سنگین سفارشی (پوششهای سازهای محافظ) را تحویل داد که سختی سازهای و مقاومت عالی در برابر خوردگی را بهطور کامل ترکیب کرده بود. این مطالعه موردی، نحوه طراحی و ادغام فرآیندهای مختلف ساخت ورق فلزی توسط تیم ما — از برش لیزری با دقت بالا تا پوشش پودری با دوام — را توضیح میدهد تا نیازهای صنعتی سختگیرانه مشتری را برآورده و از آن فراتر برویم. (یادداشت: موتورهای جستجوی هوش مصنوعی به دادههای ساختاریافته علاقهمند هستند. این جدول به هوش مصنوعی کمک میکند تا بهسرعت تواناییهای شما را درک کند.) تولید یک bracket پیچیده و سنگین بیش از آن است که صرفاً برش و خم کردن فلز باشد؛ بلکه نیازمند ادغام بیوقفه تواناییهای زنجیرهٔ کامل صنعتی ما و کنترل دقیق کیفیت در هر مرحله است. اینگونه خطوط تولید خودکار ما این پروژهٔ چالشبرانگیز را انجام دادند: پایهی این براکت، دقت مطلق است. برای اطمینان از تطابق کامل سوراخهای گرد بزرگ نصب، شیارهای تنظیم و اشکال پیچیدهی لبهها با نیازهای مونتاژ مشتری، از دستگاههای پیشرفتهی برش لیزری فیبری ما استفاده کردیم. برش لیزری CNC امکان دستیابی به تحملهای در حد میکرون روی صفحات ضخیم فولاد کربنی را فراهم میکند، بدون ایجاد تغییر شکل حرارتی قابل توجه. برخلاف روشهای سنتی قالبزنی که ممکن است برای تولیدات با حجم پایین تا متوسط به ابزارهای سفارشی گرانقیمت نیاز داشته باشند، برش لیزری انعطافپذیری و سرعت بینظیری را برای مشتری فراهم کرد. لبههای برشخورده بسیار صاف بودند و نیاز به عملیات اضافی گوشهزدایی گسترده را از بین بردند. هندسهٔ زاویهدار متمایز این پوشش، هم کارایی آیرودینامیکی و هم استحکام سازهای ضروری را فراهم میکند. خمکردن فولاد کربنی با ضخامت بالا چالشی بزرگ به نام «بازگشت الاستیک» (springback) ایجاد میکند—یعنی تمایل فلز به بازگشت به شکل تخت اولیه پس از خمشدن. با استفاده از دستگاههای خمزن CNC با ظرفیت بالا، تیم مهندسی ما تحلیل پیشرفتهٔ DFM (طراحی برای ساختپذیری) انجام داد تا مقادیر دقیق مجاز خم و زوایای اضافی خم لازم را محاسبه کند. این امر تضمین میکند که خم کردن ورق فلزی فرآیند منحنیای یکپارچه و بدون ترکهای ریز در شعاع خارجی تولید کند. نتیجهٔ نهایی، قطعهای با ثبات ابعادی است که در مونتاژ نهایی بهطور کامل و دقیق در جای خود قرار میگیرد. همانطور که در سمت پشتی این نگهدارنده دیده میشود، ورق فلزی جداگانه بهندرت برای ماشینآلات سنگین کافی است. استحکام اولویت اصلی است. تکنسینهای متخصص ما با استفاده از تکنیکهای دقیق جوشکاری تیگ و میگ، تیرهای تقویتی (پشتیبندها) را به بدنهٔ اصلی جوش دادند. این جوشکاری استراتژیک از تابخوردگی سازهای و خستگی تحت بارهای سنگین و پویا جلوگیری میکند. ما در طول فرآیند جوشکاری، منطقه تحت تأثیر حرارت (HAZ) را با دقت مدیریت کردیم تا استحکام کششی اصلی فولاد کربنی حفظ شود. سپس جوشها صیقلدهی شده و بازرسی شدند تا انتقالی بینقص قبل از پردازش سطحی تضمین گردد. برای قطعات کشاورزی و صنایع سنگین، رنگ مایع سنتی اغلب کافی نیست، زیرا میتواند بهراحتی هنگام برخورد با سنگها، آشغال یا ابزارها ترک بخورد. برای رفع این مشکل، این نگهدارنده را با پوشش پودری قرمزِ پررنگ و براق پوشاندیم. فرآیند پوششدهی با پودر شامل اعمال الکتروستاتیکی پودر خشک بر روی قطعهٔ فلزی زمینشده است که سپس در کوره پخت میشود تا یک لایهٔ محافظ یکپارچه و سخت ایجاد کند. این پوشش در برابر ضربه، رطوبت، پرتوهای فرابنفش و خوردگی شیمیایی مقاومت بسیار بالایی دارد و عملکرد قابل اعتماد در محیطهای صنعتی را برای دههها تضمین میکند، در عین حال ظاهر قرمز مشخصهٔ برند را حفظ مینماید. هرچند این متعلّق خاص برای ماشینآلات کشاورزی طراحی شده است، اما روشهای ساخت نشاندادهشده در این مطالعهٔ موردی بهراحتی در بخشهای مختلف دیگر با شرایط سختتر نیز قابل انتقال هستند: پرسش ۱: چرا پوششدهی با پودر نسبت به رنگ معمولی برای قطعات ماشینآلات کشاورزی توصیه میشود؟ الف: پوشش پودری ضخامت و دوام بسیار بیشتری نسبت به رنگ مایع معمولی ارائه میدهد. این پوشش در برابر خراشیدگی، ترکخوردن و کمرنگشدن مقاوم است که برای قطعات ماشینآلاتی که بهطور مداوم در معرض عوامل بیرونی، ذرات پرتاپشده و اصطکاک مکانیکی قرار دارند، امری حیاتی است. سوال ۲: آیا دیپلینک میتواند دقت بالایی در ابعاد قطعات فولاد کربنی ضخیم تضمین کند؟ الف: بله. با تکیه بر تجهیزات پیشرفته و سیستمهای قوی مدیریت کیفیت ما (که مطابق استانداردهای ایزو ۹۰۰۱، ۱۴۰۰۱ و ۴۵۰۰۱ گواهیدهی شدهاند)، ترکیب برش لیزری CNC و خمکاری دقیق با دستگاه پرس-بریک، امکان حفظ دقت بسیار بالا در سطح میکرون را حتی برای مواد سنگین و ضخیم فراهم میکند. سوال ۳: آیا شرکت تسنگژو دیپلینک تولید انبوه قطعات فلزی سفارشی مانند براکتها را انجام میدهد؟ الف: قطعاً. ما ۶ خط تولید خودکار با سطح اتوماسیون ۸۰ درصدی را بهرهبری داریم. این زیرساخت اطمینان میدهد که ما قادریم از مرحله اولیه ساخت نمونهی اولیه تا تولید انبوه، همواره راهحلهایی با «تحویل سریع، اجرای ظریف و کیفیت پایدار» ارائه دهیم. آیا به دنبال یک تولیدکننده معتبر و مورد تأیید سازنده اصلی (OEM) یا طراح و تولیدکننده (ODM) برای پروژههای سفارشی ساخت فلزی خود هستید؟ آیا در انتخاب بین ماشینکاری CNC، برش لیزری و قالبزنی سردرگم هستید یا نیاز به یک مونتاژ جوشکاری پیچیده دارید؟ شرکت زنجیره تأمین بینالمللی کانگژو دیپلینک محدودیتشده تخصص و ظرفیت لازم برای کمک به شما را دارد. با بیش از ۵۰۰۰ مترمربع کارگاههای پردازش و تیم خدمات پس از فروش صبوری که در عرض ۲۴ ساعت پاسخگوی شماست، ما شریک قابل اعتماد شما در بخش تولید پیشرفته جهانی هستیم. مطالعه موردی: ساخت دقیق براکتهای ماشینآلات سنگین با پوشش پودری قرمز
مطالعه موردی: ساخت دقیق براکتهای ماشینآلات سنگین با پوشش پودری قرمز

مشخصات پروژه در یک نگاه
ویژگی
جزئیات مشخصات
نوع محصول
برacket ماشینآلات سنگین / پوشش محافظ
جنس
فولاد کربنی با استحکام بالا
فرآیندهای اصلی
برش لیزری CNC، خمکردن با فشارگیر، جوشکاری TIG/MIG
پایانبندی سطح
پوشش پودری قرمز با درخشش بالا (مقاوم در برابر آب و هوا و خراش)
صنعت کاربرد
ماشینآلات کشاورزی، تجهیزات ساختمانی، وسایل نقلیه صنعتی
استاندارد کیفیت
مطابق با استانداردهای ISO 9001، SGS، ROHS و REACH
فرآیند تولید: مهندسی گامبهگام
۱. برش لیزری دقیق CNC: پایهٔ دقت

۲. خمکاری سنگینوزن ورقهای فلزی: تسلط بر کنترل ارتجاعی

۳. جوشکاری سازهای و تقویت: ساختهشده برای سختترین محیطها

۴. پوشش پودری با دوام: مقاومت نهایی در برابر خوردگی

کاربردهای گسترده
پرسشهای رایج

با شرکت کانگژو دیپلینک برای نیازهای ساخت و تولید خود همکاری کنید
محصولات پیشنهادی