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

Gach Catagóir

Seirbhís prótatóipíochta tapaidh

Oct 19, 2026
Seirbhís prótatóipíochta tapaidh Seirbhís próitéáil chomhluath de mheatail
Cangzhou Deeplink Idirnáisiúnta Solúbthachta Sláinteachta Co., Ltd.

Dearbhaigh an fheidhmiú, an comhoiriúnacht agus an gá le tionscnaimh roimh úsáid na n-inneall

Seirbhís prótatóipíochta tapaidh

Úsáid gearrthóga laisre, cruthú, maireannach CNC, ceangal agus cruinniú chun dearadh a thástáil roimh ghlacadh le hinealltógáil tháirgealaíochta.

Seol Do Tharraingt le haghaidh Athbhreithniú Taispeáin Inneall agus Cumas

Tá sampla ann chun ceist amháin a fhreagairt: an oibríonn an dearadh? Is é a tháirgeadh gan tiomáint ar dhíochlaonadh go dtí na heagarthóga a dhéanann é seo ina bhrabhsa, mar gheall ar an bhfianaise go dtí an gclár nua ina ionad an díochlaonadh nua.

Conas a dhéanaimid samplaí

  • Gearrtha agus cruthú leis an ngearrthóir lasair, nach bhfuil aon chostas ag an ndíochlaonadh leo
  • Machánú CNC do na gceapairí a n-úsáideann an cruthú ná féidir a choinneáil
  • Samplaí le ceangal agus le comhdhú, a tháirgeann mar a tháirgeofaí an aonad táirgeachta
  • Próisis a mheaitseálann an rud a bhfuil an sampla le fiorú

Sonraíocht theicniúil

Mír Néasú
Costas Uirlisíochta Níl aon cheann le haghaidh samplaí gearrtha agus cruthaithe
Próisis samplaí Gearrtha lasair, cruthú, machánú CNC, ceangal, comhdhú
Tolaráns Timpeall 0.1mm do pháirteanna gearrtha agus foirmithe; timpeall 0.01mm do ghnéithe a rinneadh le heinín
Fíorú An chéad mhionsamh measadh i gcomparáid leis an t-oileán; an deireadh-mheasú roimh an bpackáil
Aistriú an phéinteoir An bhfuil an bpróiseas céanna mar a úsáidtear sa ord táirgeachta, mar sin is é an rud atá ceadaithe an rud atá athchóirithe

An rud a chaithfeadh sampla a bhunú

  • Go mbeidh an pháirt chomhoiriúnach leis na compháirteanna agus an tasmacht leis a ndéanann sí ceangal
  • Go mbeidh an t-ábhar agus an t-uaireadás ceart don úsáid
  • Go mbeidh na tollráin a marcáiltear ar an oileán na tollráin a bhfuil tábhacht acu
  • Go mbeidh an bealach próiseála a roghnaíodh in ann a aistriú go dtí an táirgeachta

Athbhreithniú DFM roimh an mbearra a úsáidtear

Nuair a dhéanfar iarracht ar tháirgeachta i mbríocht, déanann ár fhoireann innealtóireachta athbhreithniú ar an gcaoi a dtáirgeofar roimh an mbearra a úsáidtear. Tugtar tuairiscí scríofa ar rioscaí na dtollrán agus ar na príomhfhachtóirí costais, ionas gur féidir athrú a dhéanamh ar an oileán seachas tar éis an bhocsa a ghearradh.

Prótatíp go díolachán

Is iad na céanna próisis a úsáidtear chun an sampla a tháirgeadh is iad a úsáidtear chun ordú táirgeachta a rith, mar sin is é an rud a mhaítear ag an bpointe sampla is é a athdhéanfar.

Rialú cáilíochta

Ritheann na samplaí tríd an bhfeidhmeannán inspéicte céanna le hordú táirgeachta: seiceáiltear an t-ábhar a thagann isteach, tomhaistear an chéad eagrán i gcomparáid leis an ndiagram, agus déantar inspéacht dheireannach roimh phacáil.

Samplaí Fíor-Tháirgealaíochta

Sheet metal prototype parts made without production tooling
Cuidithe próitéála de bhileog mheatail déanta gan innealltógáil tháirgealaíochta
Laser cutting used for tool-free metal prototypes
Gearrthóga laisre úsáidte do phróitéáil mheatail gan inneall
Prototype fabricated enclosure for fit and assembly validation
Cás próitéála déanta le haghaidh dearbhaigh comhoiriúnachta agus cruinniú

Conas a imíonn an t-ionad trí tháirgeáil

  1. 1.Sainmhínigh cad a chaithfear a dhearbhú leis an mbreiseán agus aitheanta na comhéadan criticiúla
  2. 2.Athbhreathnaigh an tionscadal le haghaidh bealaí fabhráil gan uirlisí nó le tiomantas íseal
  3. 3.Táirgeadh agus inspéacht na gcuid fisiciúla chéad cheann
  4. 4.Seiceáil an fheidhm, an fhorbairt agus an comhlachas i gcomparáid leis an úsáid bhur mian
  5. 5.Taifead na hathruithe ceadaithe agus pleanáil an aistriú go dtí an t-ábhar a tháirgeann arís

Feidhmeanna agus cineálacha cuidí

Dearbhadh dearadh ar phlátaí meitile
Bracáin agus cásanna feidhmiúla
Cuidí cruthaíochta a rinneadh trí mheaisínú
Ailtireachtaí breaiseáin le ceangal tríd an mbuailt
Triailí ar pháirteanna clóite roimh thosú an tionsaí
Aonaid philéadha roimh tháirgeadh atá athshainithe

Cé a chuirfidh tú isteach i do iarratas ar fhorghníomhartha

  • Líneachán 2T agus an mhodhl 3T atá ar fáil
  • An t-ábhar agus an próiseas tháirgeachta a bheas i gceist
  • An rud a chaithfidh an sampla a dhearbhú
  • Na comhéadan criticiúla agus na tolaransanna
  • An líon táirgeachta a bhíonn súil leis tar éis an bhailíochta a shealbhú

Ceadaíonn pacáiste líneachán soiléir don fhoireann innealtóireachta an t-ábhar a athbhreithniú, an rogha próiseas agus na riachtanais uirlisí roimh tháirgeadh. Ní dhéantar aon ghiarú, aon mholadh faoi bhrabús nó aon ghiarú maidir le seoladh go dtí go mbrathfar an líneachán sonrach.

Acmhainní Táirgeachta Gaolmhara

Ceisteanna Coitianta

An bhfuil uimhir íosta ordú do na samplaí?

Níl aon fóirceann riachtanach do shampla a bhíonn gearrtha agus cruthaithe, mar sin níl aon bhaltas i dtreo thooling le haghaidh ordú bheag ar dtús. Seol do tharraingt agus do uimhir, agus dearfaimid an bealach lena chur i bhfógra leat.

An mbeidh an sampla mar an gcéanna le cuid táirgeachta?

Úsáidtear na céanna próisis do shampla agus do ordú táirgeachta, mar sin is é an rud a mhaítear ag an bpointe sampla is é a athdhéanfar. Nuair a aistritheann cuid go dtí stampáil fhoirceann chun toirmiscthe, pléitear an t-athrú agus dearfaí é in advance.

An féidir leat an dearadh a athbhreithniú sula dtógaim an t-éileamh ar na uirlisí?

Sea. Sa chás ina bhfuil dearadh curtha le dul i gcríoch i mbrabhsáil mhórchumais, déanann ár fhoireann innealtóireachta athbhreithniú ar an bhféidearthacht a tháirgeála roimh éileamh na n-uirlisí agus cuirimid tuairiscí i scríbhinn ar rioscaí an fhiorúcháin agus ar na fachtóirí costais.

An bhfuil an críochnú deiridh de phróitéip riachtanach?

Amháin nuair a thagann an críochnú i gceist le comhoiriúnú, caor, taisce nó sprioc an tástála. Cuir isteach cad a chaithfear a dhearbhú leis an bpróitéip ionas gur féidir an raon oiriúnach a athbhreithniú.

An féidir an próitéip a dhéanamh gan uirlisí monaraithe?

Is féidir go minic dearbhadh dearadh trí ghreamú le lasair, baint agus meaisínú CNC gan an die monaraithe a úsáid.

Conas a bhaintear an t-ábhar aisghabhála roimh mhonarú?

Réitítear rioscaí maidir le féidireacht an mhonaraithe agus le tolérans a aithnítear le linn an athbhreithniú agus an chéad eagrán i gcoinne an tionsnaimh sula dtugtar deireadh le bealach an mhonaraithe.

An féidir roinnt leaganacha de phróitéip a chur i gcomparáid?

Is féidir leaganacha éagsúla a tháirgeadh ó leaganacha rialaithe na ndearbhchárta. Ba cheart gach leagan a aithniú go soiléir sa RFQ agus sna comhaid.

Conas a aistritheann sampla iomlán chuig táirgeadh ar scála mór?

Nuair a fhaightear cead ar an dearadh, athbhreithnítear an bealach táirgeachta le haghaidh iarratais atá ann go minic. Pleanáiltear agus deimhnítear an t-aistriú go dtí stampáil nó uirlisí sainiompaithe seachas a ghlacadh mar rud a thuigeann gach duine.

Seol do dharbhchárt le haghaidh Athbhreithnithe Táirgeachta

Seol an tarraingt leis an mbearna, an líon agus an rud a chaithfidh an sampla a chruthú. Má tá críochmhéadú i gceist ina dhiaidh sin, abair é anois ionas go roghnófar an bealach próiseála leis sin san áireamh.

Iarr ar Athbhreithniú Táirgeachta