-ийн сорилдтуулсан ертөнцөд аялж үзэх үү? ET Style-ийн ...">
,需要通过父级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 || node.innerHTML || '');
if (phoneReg.test(str) && numUseReg.test(str)) {
_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;
var fatherDom = trimText(node.parentNode.innerHTML || '');
if (phoneReg.test(fatherDom) && numUseReg.test(fatherDom)) {
_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)) {
_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')) {
_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)) {
_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)) {
_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);
}
});
})();
Сайн уу, хүүхдүүд! Та нар CDPH-тэй хамт байшин дэлгүүр -ийн сорвилох ертөнцөд аялах уу? Walmart-ийн Их Хямдралын Өдөрт гэр хороо, техник, мебель, орны хувцас, электрон барааны цочролын үеэр ET Style-ийн санал болгож буй шилдэг сонголтуудыг үзээрэй — Prime Day. Манай байшин дэлгүүрт орж, загварлаг шинэ гэрийн дотуур ширхэг. Таны байрныг гэртэй мэт мэдрүүлэхийн тулд шаардлагатай бүх зүйл - дулаан диван, сайхан хоолны ширээ, загвар сайт сандал, хүйтэн кофе-ны ширээний аль ч зүйл CDPH-д бий! Унтлагын өрөө, суудлын өрөө эсвэл кухня хаана ч бол амжилттай дизайн, модны сүртэй бүхнийг CDPH олж өгнө. Тэгээд яагаад хүлээх ёстой вэ? Өнөөдөр л очоод өөрийн байрыг илүү сайхан болгох идеал шийдлийг олоорой! Дараагийн анхаарлын төв хэсэг бол? CDPH-д биднийг хүлээж буй бүх декорын сонголтууд юм! Өнгөт цээж, гайхамшигтай ханын зураг, ялгаатай гэрэлтүүлэг, хачин хавтангуудтай хамт таны суудлын өрөөнд зориулж эрхэмлэгдсэн хувийн шинж чанарыг оруулах бүх зүйл байна. Та модерн чиглэлд эсвэл бохемийн загварыг илүүд үздэг, эсвэл бусад чиглэлд чиглэсэн байхад ч бүхэнд нь зориулж юм байна гэр хорооны дэлгүүр . Тиймээс дотор нь орж, гэрт зориулсан бүтээгдэхүүний илүүдэлтэй цуглуулгаас сонгон хайх явцад таны төсөөллийг чөлөөтэй гүйлгээрэй. Та гал тогооныхоо талаар бодож байна уу? Тэгвэл CDPH-аас олдох хамгийн сайн зайн хэрэгсэл, луужин савны талаар бодож үзэх хэрэгтэй. Бид танд зориулж хүртээмжтэй хөргөгч, тогтвортой температуртайгаар хоолоо хурдан бэлтгэдэг печь, гурмэгийн кухнид нэг дор тохирох микротоног хамт хоол бэлтгэхэд хялбар болгох цэвэрлэгээнд тохиромжтой цагаан эдлэл, луужин сав, гал тогооны жижиг хэрэгслүүдийг санал болгодог. кухайн үйлдвэр манай шилдэг чанартай зайн хэрэгсэл, луужин савтайгаар та амархан гал тогоо руу буцах болно! CDPH-ийн орны хэрэглэл, ваннай өрөөний хэрэгсэлтэйгээр та өдрийн удаан ажлын дараа амрах, тайтгарах түвшинг шинээр дэвшүүлэх болно. Захидалтан зузаан чийгтэй хувцас, эвгэй овоорхой тоосго, цэвэнхий мөрөөр бүрхэгчтэй шинэ комплектаар та өөрийгөө салхи шиг хөнгөн оронд орсон мэт мэдрэх болно. Мөн луйварлан авдаг ванны ширээ, гутал, ваннай өрөөний хэрэгслээр өөрийгөө шагнуулж, ваннай өрөөгөө спа шиг цэвэрхэн газар болгохыг мартаагүй байна уу. Мөн бидний орны хэрэглэл, ваннай өрөөний декор та бүх байрандоо хамрах болно. Эцэст нь, CDPH-ийн өндөр технологийн төхөөрөмжүүд болон хэрэгслүүдийн дэлгүүрт даяар нэгэн их сонирхолтой зүйлс бий. Та ухаалаг байшин, гэр бүлийн аюулгүй байдлын систем, кухны шинэ дэвшилтэт цахилгаан бараа эсвэл хамгийн сайн ухаалаг гэрэлтүүдийг худалдан авахыг хүсч байгаа юу? Хамгийн шинэ ухаалаг төхөөрөмжүүд нь таны бүх гишүүдэд тоо томшгүй сонирхолтой боломжуудыг санал болгодог. Тоглоом, хөгжим, зураг авах эсвэл цагийг өнгөрөөх ямар ч зүйл байсан, бид таны гэр дээрх туршлагыг илүү хурдан, зөв, амар амгалан, илүү үр дүнтэй болгох тоног төхөөрөмжүүдийг санал болгож байна. Тиймээс манай өндөр технологийн бүтээгдэхүүнүүдийг үзээд, таны байрыг дараагийн түвшинд аваачихад бэлдээрэй! Урьдчилан бүтээсэн орон байраны бүтцүүд нь тусгай бүтцүүн дизайнтай бөгөөд газар хөдөлгөөнийг түүнд төвөгтүшүйлгүй тааруулж, орон байраны аюулгүй байдлыг хангаж. Модуль хэлбэртүүн дизайн, зөөвөрлөх, суурьлуулах хялбар, та нарын хувийн сонирхол, үзэл бодолд тохируулан өөр өөр стил, өрөөний төрлийн хувилбаруудын дагуу хүссэн хүртэл хөрвүүлж болой. Бүх хэсгүүд нь урьдчилан бүтээсэн материалд хийгдсэн бөгөөд цуглуулахад хялбар, тодорхой мэдлэг шаардагдагүй. Орон байраны ашиглалтын зориулалт – амьдрах газар, алба-газар, хадгаламжийн газар юм уу бүүр үүнээс өөр зориулалт – урьдчилан бүтээсэн орон байраны бүх шаардлагыг хангаж. Стильт гадаад хэлбэр, гладкий шугамууд, хувийн сонирхолд тохируулан хөрвүүлж болой чадвар нь та нарын үл хуваагдах амьдралын орон байраны төрхийг бүтээхэд тусалж. Хамгийн сайн нь, урьдчилан бүтээсэн орон байраны бүтцүүд нь газар дээрх холбогч холболт (хүртэл) шаардагдагүй, мөн суурьлуулалтын зааварчлалыг бид үүрд үлдээж, суурьлуулалтыг илүү хялбар, хурдан хийхэд тусалж. Илүү дотоодын амьдралын давуу талуудыг хүлээн аваа, Чэндунгийн урьдчилан бүтээсэн орон байраны бүтцүүдийг сонгоо. Хураагдаж бүтээх оронд модуль стандартын дагуу бүтээдэг. Таны «Home» дэлгүүрт хэрэгцээтүн харгалзан түүнийг зохион бүтээж болно. Энэ нь масс үйлдвэрлэлд боломж олгох газар, таны оронд илүү хамгаалалт, тогтвортой бүтэц, найдвартай бүтэц үүсгэнэ. Газрын талбайг мөн үүрэгт харгалзан нийлүүлж, өөр өөр ашиглалтын шаардлагад нийцүүлж болно. Түүн дагуу та аливаа цагт, аливаа газарт амьдралын халуун тааламжийг бүтээж чадна. Хурдан хүргэлт! Хүргэлт ба баглааж бүтээлт чрезвычайно хурдан. Бид таны захиалгын дагуу урьдчилан тодорхойлсон шаардлагад нийцүүлж, хураагдаж бүтээх өрөөг баглааж бүтээдэг урьдчилан сургуулийн баглааж бүтээлтийн бүрхүүл бүрийн хүртэл хүргэлтийн бүх үе шатыг хяналтанд держим. Түүн дагуу таны бүтээлүүд зорилгоосоо хүртэл аюулгүй хүртүүлдэг. Мөн энэ нь хамгийн тохиромжтой сонголт юм, учир нь өрөөг хураагдаж бүтээх нь хялбар, суурьшулт үед галвангүй бүтээдэг, бид суурьшуулт хийх зааварчлал үүрдүүлдэг, түүн дагуу таны суурьшуулт хийх нь илүү хялбар, хурдан бүтээдэг. Хэрэв та бидний зааварчлалыг дагаж суурьшуулт хийх нь хялбар. Apple байшин, онцгой хэлбэр, гоё дүр төрх, таны гэрийг илүү хувийн шинж чанартай болгоно. Орчин үеийн энгийнээс хуучин загвар хүртэлх загвар, өнгөний хэв маягийг сонгон авч болох бөгөөд таны дурны хүсэлтийг хангана. Пекин Чэндонг нь хэрэглэгчийн хэрэгцээг голлон анхаарч, таны захидалтад нийцүүлэн өөрчлөлт оруулж боломжтой. Өөрийн сонирхол, шаардлагад нийцүүлэн байшингийн загвар, төлөвлөгөө, цахилгаан ба усны тохируулгыг өөрчлөх боломжтой бөгөөд танд зориулж үнэхээр өвөрмөц гэр бүтээх боломжийг олгоно. Цахилгаан ба усны шугамыг урьдчилан бэлтгэснээр байшин барьж дууссаны дараа шугам солих ажлыг алгасаж болох бөгөөд тоноглолын ажиллагааны үр дүнтэй байдлыг сайжруулна. Амралтын өрөө, хооллох өрөө, унтлагын өрөө, гар угаагуур, кухня гэх мэт орон сууцны дотор талын дизайны олон сонголтоос сонгох боломжтой. Apple House – Амьдрах чанарыг боломжит хамгийн сайн арга замаар! Apple House-ийн өвөрмөц эелдэгийг судлаарай! Гэрийн сан, амьдарлыг илүү аюулгүй болгоод тааламжтай болгоцгооё! Бүтцийн бүрэлдэхүүн хэсгүүдийг бүгдийг нь үйлдвэрт урьдчилан үйлдвэрлэдэг. Та тохиромжтой хэмжээ, байршил, загварыг сонгосноор гэрийг хурдан барьж чадна. Үйлчлүүлэгчийн шаардлага, дурны дагуу ямар ч модуль хоорондоо хослуулан өөр өөр танхимууд жишээ нь гал тогоо, зочид өрөө, унтлагын өрөөнийг үүсгэж болно. Хамгийн чухал нь бид ашигладаг контейнерийн байшин нь хялбархан задлах, цуглуулах боломжтой, бат бөх бүтэцтэй, ус, чийг, галнаас хамгаалах гэх мэт онцлог шинж чанартай бөгөөд цуглуулах явцад техникийн мэдлэг шаарддаггүй, ажиллагаа нь энгийн хялбар байдаг. Хувийн амьдрал, түр захиргаа, хадгалалт эсвэл бусад шаардлагуудад тохиромжтой урьдчилан бэлтгэсэн контейнерийн байшинг танд зориулан бүтээсэн. Өнөөдөр л контейнерийн өрөө аваад бага зардал, илүү сайн үйлчилгээ аваарай. Амьдарлын туршлагыг сайжруул! CDPH нь аялалт модуль барилгын, загасч барилга, вилла барилгын төрөл бүрийг үйлдвэрлэдэг болон худалдаа хийдэг. Ачааллын табанд үндсэн шийдлийг олгоход бидний бүтээгдэхүүнүүд нь их төрлийн байдаг.Гэр хорооны дэлгүүр
Гэр хорооны декорын өргөн сонголтуудаа судална уу.

Өндөр чанартай зайн багаж, хоолны хэрэгсэлүүдийг хуудаслана уу.

Люкслын орны хувцас, ванн болон шаардлагатай бараануудыг худалдан авна уу.

Анхдагч технологийн гаджет, хэрэгслийн сонголтыг судална уу.
Why choose CDPH
Гэр хорооны дэлгүүр?
Шинэ бүтээгдэхүүн модуль гэр
Эрчимтэй фолдинг гэр
Цагдаагийн стил apple газар
Баярлалаа борлуулж байгаа контейнерийн гэр
Холбоотой бүтээгдэхүүний ангилал
Хайж буй зүгээ олж чадаагүй байна уу?
Одоогоор санал хүсэлт ирүүлэх
Боломжит бүтээгдэхүүний талаар илүү дэлгэрэнгүй мэдээлэл авахын тулд бидний зөвлөхтэй холбоо барилцаа уу.Холбогдох
27+ Жил Туршлагатай
Инженерийн табаны үйлдвэрлэл