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

すべてのカテゴリ

高品質オーダーメイドシート金属粉体塗装部品 溶接・プレス金属部品製造

見積
お持ちの図面(サイズ、材質、板厚、加工内容、必要な技術など)およびサンプルにより
材質
炭素鋼、SPCC、SGCC、ステンレス鋼、アルミニウム、真鍮、銅など
加工
レーザー切断、曲げ加工、精密プレス加工、CNCパンチング、タッピング、リベット、ドリリング、溶接など
表面処理
ブラッシング、研磨、アノダイズ、粉体塗装、電気めっき、シルクスクリーン印刷、サンドブラストなど
  • 概要
  • おすすめ商品

信頼できるパートナー シートメタル加工メーカー

リーディング シートメタル加工会社 産業分野を問わず、OEM向けに信頼性の高い大規模生産および受託製造を提供しています。

ISO 9001:2015認証 工場面積:50,000平方フィート 年間生産能力:10,000件以上

High Quality Custom Sheet Metal Powder Coating Parts Welding Stamping Metal Parts Production details

当社の 板金加工 および加工能力

私たちは、シンプルなブラケットから複雑なエンクロージャーまで、お客様のあらゆる 板金加工サービス ニーズに対応できる体制を整えています。

レーザー切断

最大1インチの軟鋼、ステンレス、アルミニウムに対して、複雑な形状でも高精度なファイバーレーザー切断を実現。

CNC プレスブレーキ

高度なツールを用いた最大120トンまでの正確な曲げ加工で、一貫性を実現 シートメタル加工 効果を

溶接および組立

清潔で強固な接合のためのTIGおよびMIG溶接。ハードウェア挿入付きの完全な組立も可能

精加工

外観および耐久性要件を満たすための粉体塗装、陽極酸化処理、電気めっき

カスタム板金製造プロジェクト

High Quality Custom Sheet Metal Powder Coating Parts Welding Stamping Metal Parts Production supplier

業界リーダーから信頼されています

私たちは評価の高いブランドと提携し、専任の シートメタル加工会社 .

High Quality Custom Sheet Metal Powder Coating Parts Welding Stamping Metal Parts Production supplierHigh Quality Custom Sheet Metal Powder Coating Parts Welding Stamping Metal Parts Production supplier今すぐ開始 カスタム金属板材加工 プロジェクト

迅速かつ正確な見積もりのために、図面(DXF、DWG、STEP、PDF)をアップロードしてください


すべてのお問い合わせには 営業24時間以内 .

なぜ私たちの シートメタルサービス ?

  • 迅速な見積もり: ほとんどのRFQに24時間以内で対応します。
  • 製造を念頭に置いた設計: 当社のエンジニアが、コストと効率を最適化するよう設計を調整します。
  • 最小発注数量なし: 試作および小ロットの生産も歓迎です。
  • 品質保証: すべての案件で初品検査および最終品質検査を実施します。

大量生産とパートナーシップを念頭に設計

50+
Cnc機械
200+
熟練した 技術者
24/7
生産シフト(任意)
JIT
ジャストインタイム納品プログラム

確立された シートメタル加工メーカー 、長期的なパートナーに対して一貫性、拡張性、費用対効果を確保しながら、サプライチェーン全体を管理します。

見積
お持ちの図面(サイズ、材質、板厚、加工内容、必要な技術など)およびサンプルにより
材質
炭素鋼、SPCC、SGCC、ステンレス鋼、アルミニウム、真鍮、銅など
加工
レーザー切断、曲げ加工、精密プレス加工、CNCパンチング、タッピング、リベット、ドリリング、溶接など
表面処理
ブラッシング、研磨、アノダイズ、粉体塗装、電気めっき、シルクスクリーン印刷、サンドブラストなど

公差
レーザー切断:±0.1mm
曲げ加工:±0.2~0.5mm
精密プレス加工:±0.02~±0.05mm
ロゴ
シルクスクリーン印刷、レーザー彫刻
サイズ
カスタムサイズの受注対応可
カラー
ホワイト、ブラック、シルバー、レッド、グレー、パンタオン、RALなど
図面形式
DWG, DXF, STEP, IGS, 3DS, STL, SKP, AI, PDF, JPG, 下書き。
サンプル納期
表面処理なしの場合:1~3営業日;表面処理が必要な場合:3~5営業日。
価格条件
DAP、DDP、EXW、FCA、FOB、CIFなど
支払条件
サンプル:生産前の100%支払い
量産:(前払い30%を頭金として、残額は出荷前)
証明書
ISO9001:2015/SGS/TUV/RoHS
包装
PE袋/EPE発泡/カスタムボックス/合板ボックス、またはご要望に応じて
よくある質問
Q. 求めている表面処理は何ですか?
A: アルマイト処理、粉体塗装、研磨、亜鉛めっき/ニッケルめっき/クロムめっき、溶融亜鉛めっき、サンドブラスト等
 
Q: どのようなサービスを求めていますか?
A: 当社はOEM金属加工、金属製品製造の包括的サポートサプライヤー、スマートデバイス全体ソリューションを提供できます
 
Q: 見積もりのために必要な情報は何ですか?
A: 見積もりを迅速に行うために、お問い合わせの際に以下の情報をご提供ください
1. 詳細な図面(STEP、CAD、PROE、DXF、PDF形式のファイル)
2. 材料要件(ALU.、STEEL、IRON、COPPERなど)
3. 表面処理(アノダイズ、粉体塗装、サンドブラスト、メッキ、研磨、ブラッシング)
4. 数量(1回注文/月間/年間)
5. 特殊な要望や要求事項(梱包、ラベル、納期など)
 
Q: 図面がない場合はどうすればよいですか?
A: 見本と草案(厚み、長さ、高さ、幅)を送ってください。その後、当社のエンジニアがCADまたは3Dファイルを作成いたします。
 
Q: 会社に訪問しなくても製品の状況を知ることはできますか?
A: 詳細な生産スケジュールを作成し、送付いたします。
製造工程を示す写真や動画を添付した週次報告書を送信いたします。

無料お見積もりを取得

担当者よりすぐにご連絡いたします。
メールアドレス
携帯電話/WhatsApp
氏名
お問い合わせ内容
0/1000
添付ファイル
図面または仕様書のアップロード(任意)
Up to 3 files,more 30mb,suppor jpg、jpeg、png、pdf、doc、docx、xls、xlsx、csv、txt

お問い合わせ

板金加工サービス

カスタム成形の板金部品の即時見積もり | プロトタイプおよび量産部品を数日で提供 | 図面は3日、サンプルは7日で対応 | ISOおよびCE認証取得の品質保証

お問い合わせ

氏名
メールアドレス
携帯電話/WhatsApp
お問い合わせ内容
0/1000