\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); } }); })();

Tất Cả Danh Mục

TIN TỨC

Trang chủ&gt;TIN TỨC

Hướng dẫn chọn vật liệu kim loại

Sep 18, 2026

Việc chọn đúng loại kim loại quyết định một bộ phận có hoạt động ổn định trong nhiều năm hay sớm gặp sự cố. Hướng dẫn này so sánh các vật liệu mà chúng tôi gia công thường xuyên nhất để bạn có thể lựa chọn phù hợp giữa tính chất vật liệu và yêu cầu ứng dụng trước khi đầu tư vào khuôn mẫu.

Thép không gỉ: 304 so với 316

304 là loại thép không gỉ phổ biến nhất: khả năng chống ăn mòn tốt, dễ gia công và hàn, đồng thời có chi phí thấp nhất trong số các loại thép không gỉ thông dụng. 316 bổ sung molypden, giúp cải thiện khả năng chống lại muối clorua và môi trường biển; do đó, đây thường là lựa chọn ưu tiên cho các công trình ven biển, thiết bị chế biến thực phẩm và các ứng dụng tiếp xúc với hóa chất. Chúng tôi gia công cả hai loại này dưới dạng tấm, ống và thanh.

Nhôm: 5052 so với 6061

5052 là loại nhôm dễ tạo hình hơn với khả năng chống ăn mòn cao, nên được mặc định sử dụng cho các chi tiết tấm uốn cong hoặc dập sâu, vỏ bọc và nắp đậy. 6061 có thể xử lý nhiệt và có độ bền cao hơn, thích hợp cho các chi tiết gia công cơ khí, giá đỡ và bộ phận kết cấu. Cả hai loại đều hoàn thiện bề mặt tốt bằng anod hóa, phủ bột hoặc chải bóng.

Thép carbon

Thép carbon cán nguội và cán nóng mang lại tỷ lệ độ bền trên chi phí tốt nhất cho các giá đỡ, khung, gầm xe và kết cấu hàn. Vật liệu này cần được bảo vệ chống ăn mòn, thường bằng cách mạ kẽm, phủ bột hoặc sơn điện ly.

Đồng và đồng

Đồng có độ dẫn điện và dẫn nhiệt cao nhất trong số các kim loại gia công phổ biến, và là lựa chọn tiêu chuẩn cho thanh cái, đầu nối và các bộ phận truyền nhiệt. Đồng thau dễ gia công và được sử dụng làm phụ kiện, đầu nối và linh kiện cơ khí khi cả yếu tố thẩm mỹ lẫn độ dẫn điện đều quan trọng.

Độ dày, bề mặt hoàn thiện và cấp chất lượng được xác định đồng thời.

Việc lựa chọn vật liệu không chỉ liên quan đến kim loại: độ dày, lớp hoàn thiện bề mặt và quy trình tạo hình tương tác với nhau. Một cấp chất lượng có thể uốn tốt ở độ dày 1,0 mm nhưng lại nứt ở độ dày 2,5 mm khi uốn với bán kính cong nhỏ, và lớp anod hóa sẽ làm thay đổi kết quả về kích thước. Đội ngũ kỹ thuật của chúng tôi xem xét bản vẽ, vật liệu điển hình và độ dày trước khi chế tạo khuôn, đồng thời báo cáo bằng văn bản về khả năng sản xuất và các yếu tố ảnh hưởng đến chi phí.

Chúng tôi hỗ trợ bạn lựa chọn như thế nào

  • Đánh giá bản vẽ của bạn bởi DFM trước khi chế tạo khuôn, bao gồm vật liệu, độ dày và lộ trình gia công
  • Hướng dẫn thay thế mác vật liệu khi mác được chỉ định không kinh tế ở khối lượng sản xuất của bạn
  • Chứng chỉ vật liệu và hồ sơ kiểm tra theo hệ thống quản lý chất lượng ISO 9001 của chúng tôi
  • Một nhà cung cấp cho gia công kim loại tấm , dập, kéo sâu, cắt laser, gia công CNC và hàn

Các câu hỏi thường gặp

Loại thép không gỉ nào phù hợp nhất cho sử dụng ngoài trời?

thép không gỉ 316 thường là lựa chọn tiêu chuẩn cho ứng dụng ngoài trời và ven biển vì hàm lượng molypden giúp chống lại clorua và ăn mòn điểm tốt hơn so với 304. Đối với sử dụng trong đất liền, nơi được che chắn, thép không gỉ 304 thường đủ đáp ứng và có chi phí thấp hơn.

Tôi nên chọn nhôm 5052 hay 6061?

chọn 5052 nếu chi tiết cần tạo hình, uốn hoặc kéo sâu, vì loại này uốn mà không nứt. Chọn 6061 nếu chi tiết cần gia công cơ khí hoặc yêu cầu độ bền cao hơn. Vui lòng gửi bản vẽ để chúng tôi xác nhận mác phù hợp với lộ trình gia công.

Các bạn có thể gia công chi tiết bằng đồng và đồng thau không?

Có. Chúng tôi làm việc với đồng và đồng thau cho các đầu nối, thanh dẫn điện, phụ kiện và linh kiện cơ khí, bao gồm cả các bộ phận mà độ dẫn điện hoặc dẫn nhiệt là yêu cầu chính.

Bạn có cung cấp chứng chỉ vật liệu không?

Có. Chứng chỉ vật liệu và hồ sơ kiểm tra được lưu giữ cho các đơn hàng sản xuất theo hệ thống quản lý chất lượng ISO 9001 của chúng tôi, bao gồm hơn 39 kiểm tra trên mỗi dự án.

Nếu tôi không biết nên chọn vật liệu nào thì sao?

Gửi bản vẽ kèm theo ứng dụng và điều kiện vận hành. Đội ngũ kỹ thuật của chúng tôi sẽ đề xuất vật liệu, độ dày và bề mặt hoàn thiện, sau đó báo giá quy trình gia công cùng giải thích rõ các yếu tố ảnh hưởng đến chi phí.

Liên quan đến: gia công kim loại tấm ,metal stamping parts và Phụ tùng gia công CNC .