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

Toate categoriile

Serviciu de producție în volum mare

Oct 19, 2026
Serviciu de producție în volum mare Serviciu de producție în volum mare de piese metalice personalizate
Cangzhou Deeplink International Supply Chain Co., Ltd.

Producție repetată cu control al sculelor și al inspecțiilor

Serviciu de producție în volum mare

Alegeți ștanțarea, tăierea cu laser, tragerea profundă sau o rută integrată, în funcție de cerința stabilă, eficiența economică a sculelor și de cerințele pieselor.

Trimiteți desenul dumneavoastră pentru revizuire Consultați echipamentele și capacitatea

Producția în volum este o problemă diferită de cea a prototipării. Odată ce o piesă este lansată, ceea ce contează este ca piesa cu numărul zece mii să corespundă piesei cu numărul unu și ca înregistrările să existe pentru a dovedi acest lucru.

Rute de producție

  • Stampare cu matrițe progresive pe prese de la 25T la 400T, cu scule construite și întreținute în interiorul companiei
  • Serii repetate de piese tăiate cu laser și deformate, acolo unde utilizarea unei matrițe nu este justificată
  • Piese obținute prin tragere profundă, fabricate conform grosimii pereților, diametrului și adâncimii confirmate
  • Unități sudate și asamblate livrate ca produse finite

Specificație tehnică

Articol Capacitate
Gama de prese 25T până la 400T
Ștampilare Stampare cu matrițe progresive, decupare, perforare, deformare
Utilaje Proiectate, construite și întreținute intern
Serii repetate Tăiere cu laser și deformare acolo unde utilizarea unei matrițe nu este justificată
Trație profundă Grosimea pereților, diametrul și adâncimea sunt confirmate la primul articol
Trasabilitate Înregistrări păstrate pentru trasabilitate în cadrul sistemului nostru de calitate ISO 9001

Ce menține consistența unei producții pe termen lung

  • Un prim articol aprobat care definește piesa și care este păstrat ca referință pe întreaga durată a comenzii
  • Utilaje întreținute intern, astfel încât uzura este gestionată, nu descoperită
  • Inspecție în timpul procesului care detectează derapajele înainte ca acestea să devină probleme la nivel de lot
  • Înregistrări păstrate astfel încât o comandă repetată să poată fi măsurată în raport cu originalul, nu în raport cu o interpretare nouă

Volumul și procesul sunt adaptate unul celuilalt

Ambutisarea este, în mod normal, calea mai ieftină odată ce o piesă este produsă suficient de mult pentru a amortiza costul matriței. Pentru serii mai scurte sau acolo unde designul s-ar putea încă modifica, tăierea cu laser și deformarea nu implică niciun cost pentru matriță și rămân flexibile. Ofertăm calea care se potrivește volumului și duratei prevăzute de producție și indicăm clar care este mai ieftină și de ce.

Controlul calității

Fiecare comandă este supusă a 39+ de verificări de calitate în cadrul sistemului nostru de calitate ISO 9001: verificare a materialelor primite, primul articol, inspecție în timpul procesului și inspecție finală, cu înregistrări păstrate pentru trasabilitate.

Exemple reale de fabricație

High-volume stamped parts in serial production
Piese ștanțate în volum mare, în producție în serie
SUS304 progressive die stamped brackets in repeat production
Suporturi ștanțate din SUS304 cu matriță progresivă, în producție repetată
Metal fabrication workshop for repeat production
Atelier de prelucrare a metalelor pentru producție repetată

Modul în care proiectul avansează prin procesul de producție

  1. 1.Revizuirea maturității desenelor, a cantității comandate, a cererii anuale și a duratei programului
  2. 2.Compararea rutelor de producție și definirea deciziei privind dotările
  3. 3.Aprobarea primului articol și a referinței pentru inspecție
  4. 4.Executarea producției repetate cu verificări în timpul procesului și întreținerea dotărilor
  5. 5.Finalizarea inspecției finale, a înregistrărilor, a ambalării și a controlului comenzilor repetitive

Aplicații și tipuri de piese

Piese stampilate cu matrițe progresive
Suporturi și panouri fabricate repetat
Componente de producție obținute prin tragere adâncă
Unități sudate și asamblate
Programe de echipamente industriale
Componente metalice OEM cu durată lungă de funcționare

Ce trebuie inclus în cererea dvs. de ofertă (RFQ)

  • Desen eliberat și nivel de revizie
  • Material, grosime și finisare
  • Cantitate comandată și cerere anuală estimată
  • Durata programului și programul de repetare
  • Necesități de inspecție, trasabilitate și ambalare

Un pachet clar de desene permite echipei de inginerie să evalueze realizabilitatea fabricării, alegerea procesului și necesitățile de inspecție înainte de producție. Nici o toleranță, nici un angajament privind prețul sau livrarea nu este presupus până când desenul specific nu este analizat.

Resurse de fabricație conexe

Întrebări frecvente

La ce volum devine ambutisarea mai ieftină?

Depinde de complexitatea piesei și de durata prevăzută de funcționare a acesteia, deoarece costul matriței este amortizat pe întreaga comandă. Trimiteți-ne cantitatea comandată și volumul anual estimat, iar noi vă vom oferi o ofertă pentru ambele variante, astfel încât să puteți compara cifrele.

Cum mențineți identică piesa zece mii cu piesa unu?

Prima piesă aprobată definește piesa și este păstrată ca referință pe întreaga durată a comenzii. Matrițele sunt întreținute în interiorul uzinei, inspecția în curs de execuție detectează orice abatere înainte ca aceasta să devină o problemă la nivel de lot, iar înregistrările sunt păstrate, astfel încât o comandă repetată este măsurată în raport cu originalul.

Puteți susține comenzi repetitive pe parcursul mai multor ani?

Da. Matrițele sunt păstrate și întreținute în interiorul uzinei, iar prima piesă aprobată și înregistrările de inspecție sunt conservate, astfel încât o comandă repetată este produsă în conformitate cu referința originală, nu cu o nouă interpretare.

Se poate folosi tăierea cu laser în locul ambutisării pentru producția de volum?

Da, acolo unde utilizarea unei matrițe nu este justificată sau când flexibilitatea rămâne esențială. Procesul este comparat cu cerința de volum și durata prevăzută a programului.

Cum se controlează reviziile comenzilor repetate?

Furnizați revizia desenului aprobat cu fiecare comandă. Producția și inspecția trebuie să respecte revizia aprobată și referința primului articol.

Se pot menține sculele între comenzile repetitive?

Sculele sunt păstrate în interiorul uzinei, astfel încât uzura și modificările pot fi gestionate înainte următorului ciclu de producție.

Poate un program de volum să includă sudură și asamblare?

Da. Piese ambutisate, tăiate, deformate, sudate și asamblate pot fi furnizate în cadrul unui singur program coordonat.

Ce informații sunt necesare pentru a compara traseele de producție?

Cantitatea comandată, cerința anuală, durata prevăzută a programului, stabilitatea proiectului, materialul și caracteristicile critice sunt necesare pentru a compara traseele cu și fără utilaje.

Trimiteți desenul dvs. pentru o analiză de fabricație

Trimiteți desenul, împreună cu materialul, grosimea, cantitatea comandată, volumul anual estimat și durata prevăzută de funcționare a piesei. Aceste informații determină ruta de procesare și decizia privind matrițarea.

Solicitați o revizuire a procesului de fabricație