{"version":3,"sources":["actions/app.js","reducers/app.js","reducers/index.js","configureStore.js","components/Footer.js","components/TopBanner.js","components/SnapStart.js","constants.js","pages/Home.js","pages/BespokeProcess.js","pages/Products.js","components/CollectionItem.js","components/Collection.js","images/商品分类下拉箭头.svg","pages/Collections.js","pages/OurClients.js","pages/ContactUs.js","components/LogoIcon.js","components/MobileHeader.js","App.js","index.js"],"names":["UPDATE_APP_SIZE","TOGGLE_TOP_MENUS","MOUSE_ENTER","MOUSE_LEAVE","SET_AUTO_SCROLLING","SET_BLACK_HEADER","SELECT_SECTION","CHANGE_LANG","RND_ID","rndID","sectionId","dispatch","type","toggleTopMenus","mouseEnter","mouseLeave","setBlackHeader","isBlack","payload","local","window","localStorage","getItem","initialState","lang","footerHeight","bannerHeight","logoRatio","width","height","openTopMenus","showBigBall","selectedSection","autoScrolling","blackHeader","randID","sports","pdfs","name","url","arts","aspire","state","action","actions","setItem","Math","random","createRootReducer","history","combineReducers","router","connectRouter","app","createBrowserHistory","connect","ownProps","pathname","location","className","onClick","onMouseEnter","onMouseLeave","to","indexOf","date","Date","getFullYear","href","target","children","style","MobileBreakPoint","SwiperCore","use","Autoplay","isDesktopOrLaptop","useMediaQuery","query","isTabletOrMobile","useState","layoutReady","setLayoutReady","scrollIntoView","setScrollIntoView","slides","setSlides","ref","useRef","topRef","useEffect","current","behavior","axios","get","then","data","split","map","s","useLayoutEffect","timer","setTimeout","clearTimeout","onMouseOver","Helmet","SnapStart","backgroundImage","backgroundPosition","backgroundRepeat","backgroundSize","overflow","position","direction","slidesPerView","loop","speed","autoplay","delay","disableOnInteraction","slideContent","index","virtualIndex","display","paddingBottom","textAlign","src","CollectionItem","collection","collectionType","nameCn","images","img","key","nameEn","l","i","price","trim","detailsEn","detailsCn","Collection","collections","c","id","cover","_","showTimer","match","params","collectionID","menuOpen","setMenuOpen","showNav","setShowNav","firstOpen","setFirstOpen","setCollections","setCollection","contentRef","console","log","event","preventDefault","stopPropagation","Arrow","alt","clients","setClients","viewIndex","setViewIndex","showLoading","setShowLoading","hideSnap","setHideSnap","length","slice","debounceLoad","debounce","onScroll","e","abs","scrollHeight","scrollTop","clientHeight","breakpointCols","columnClassName","titleEn","titleCn","paddingTop","verticalAlign","props","viewBox","version","d","cx","cy","r","points","openMenu","setOpenMenu","stroke","fill","fillRule","LogoIcon","updateAppSize","withSize","monitorHeight","size","React","exact","path","component","Home","BespokeProcess","Products","Collections","OurClients","ContactUs","store","preloadedState","enhancer","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","applyMiddleware","routerMiddleware","thunkMiddleware","createStore","configureStore","ReactDOM","render","document","getElementById"],"mappings":"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","file":"static/js/main.63408ee6.chunk.js","sourcesContent":["export const UPDATE_APP_SIZE = \"UPDATE_APP_SIZE\"\nexport const TOGGLE_TOP_MENUS = \"TOGGLE_TOP_MENUS\"\nexport const MOUSE_ENTER = \"MOUSE_ENTER\"\nexport const MOUSE_LEAVE = \"MOUSE_LEAVE\"\nexport const SET_AUTO_SCROLLING = \"SET_AUTO_SCROLLING\"\nexport const SET_BLACK_HEADER = \"SET_BLACK_HEADER\"\n\nexport const SELECT_SECTION = \"SELECT_SECTION\"\n\nexport const CHANGE_LANG = \"CHANGE_LANG\"\n\nexport function selectSection(sectionId) {\n return (dispatch) => {\n dispatch({type: SELECT_SECTION, payload: sectionId})\n }\n}\n\nexport const RND_ID = \"RND_ID\"\nexport function rndID(sectionId) {\n return (dispatch) => {\n dispatch({type: RND_ID})\n }\n}\n\nexport function updateAppSize(width, height) {\n return (dispatch) => {\n dispatch({type: UPDATE_APP_SIZE, payload: {width, height}})\n }\n}\n\nexport function toggleTopMenus() {\n return (dispatch) => {\n dispatch({type: TOGGLE_TOP_MENUS})\n }\n}\n\nexport function mouseEnter() {\n return (dispatch) => {\n dispatch({type: MOUSE_ENTER})\n }\n}\n\nexport function mouseLeave() {\n return (dispatch) => {\n dispatch({type: MOUSE_LEAVE})\n }\n}\n\nlet autoScrollingTimer\n\nexport function setAutoScrolling() {\n return (dispatch) => {\n clearTimeout(autoScrollingTimer)\n dispatch({type: SET_AUTO_SCROLLING, payload: true})\n autoScrollingTimer = setTimeout(() => {\n dispatch({type: SET_AUTO_SCROLLING, payload: false})\n }, 2000)\n }\n}\n\nexport function setBlackHeader(isBlack) {\n return (dispatch) => {\n dispatch({type: SET_BLACK_HEADER, payload: isBlack})\n }\n}\n\nexport function changeLang(lang) {\n return (dispatch) => {\n dispatch({type: CHANGE_LANG, payload: lang})\n }\n}","import * as actions from \"../actions/app\"\n\nconst local = window.localStorage.getItem(\"lang\")\n\nconst initialState = {\n lang: ((local === \"en\" || local === \"cn\") && local) || \"cn\",\n footerHeight: 108,\n bannerHeight: 68,\n logoRatio: 0.09,\n width: null,\n height: null,\n openTopMenus: false,\n showBigBall: false,\n selectedSection: null,\n autoScrolling: false,\n blackHeader: false,\n randID: 0,\n sports: {\n pdfs: [\n {name: \"冰球介绍\", url: \"/test.pdf\"},\n {name: \"棒球介绍\", url: \"/test.pdf\"},\n ]\n },\n arts: {\n pdfs: [\n {name: \"KAP 介绍\", url: \"/test.pdf\"},\n {name: \"KAP 院校推荐\", url: \"/test.pdf\"},\n {name: \"KAP UGC\", url: \"/test.pdf\"},\n ]\n },\n aspire: {\n pdfs: []\n }\n}\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case \"@@router/LOCATION_CHANGE\":\n return {...state, openTopMenus: false, selectedSection: null}\n case actions.UPDATE_APP_SIZE:\n return {...state, ...action.payload}\n case actions.TOGGLE_TOP_MENUS:\n return {...state, openTopMenus: !state.openTopMenus}\n case actions.MOUSE_ENTER:\n return {...state, showBigBall: true}\n case actions.MOUSE_LEAVE:\n return {...state, showBigBall: false}\n case actions.SELECT_SECTION:\n return {...state, selectedSection: action.payload}\n case actions.SET_AUTO_SCROLLING:\n return {...state, autoScrolling: action.payload}\n case actions.SET_BLACK_HEADER:\n return {...state, blackHeader: action.payload}\n case actions.CHANGE_LANG:\n window.localStorage.setItem(\"lang\", action.payload)\n return {...state, lang: action.payload}\n case actions.RND_ID:\n return {...state, randID: Math.random()}\n default:\n return state\n }\n}","import { combineReducers } from 'redux'\nimport { connectRouter } from 'connected-react-router'\nimport app from \"./app\"\n\nconst createRootReducer = (history) => combineReducers({\n router: connectRouter(history),\n app,\n})\n\nexport default createRootReducer","import { createBrowserHistory } from 'history'\nimport { applyMiddleware, compose, createStore } from 'redux'\nimport { routerMiddleware } from 'connected-react-router'\nimport createRootReducer from './reducers'\nimport thunkMiddleware from 'redux-thunk'\n\nexport const history = createBrowserHistory()\n\nexport default function configureStore(preloadedState) {\n const composeEnhancers =\n typeof window === 'object' &&\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\n // Specify extension’s options like name, actionsBlacklist, actionsCreators, serialize...\n }) : compose;\n\n const enhancer = composeEnhancers(\n applyMiddleware(\n routerMiddleware(history), // for dispatching history actions\n thunkMiddleware,\n ),\n );\n return createStore(\n createRootReducer(history), // root reducer with router state\n preloadedState,\n enhancer,\n )\n}","import React from \"react\"\nimport {connect} from \"react-redux\"\nimport {Link} from \"react-router-dom\";\nimport \"./Footer.css\"\nimport {mouseEnter, mouseLeave, rndID} from \"../actions/app\";\n\nfunction Footer({rndID, pathname, mouseLeave, mouseEnter}) {\n\n return
\n {\n rndID()\n }}\n className={`${(pathname === \"/about-brand\" || pathname === \"/\")? \"Active\" : \"\"}`}>\n
\n \n ABOUT BRAND\n \n
\n
\n \n 关于品牌\n \n
\n
\n
\n
\n \n BESPOKE PROCESS\n \n
\n
\n \n 定制流程\n \n
\n
\n
\n
\n \n PRODUCTS\n \n
\n
\n \n 产品介绍\n \n
\n
\n
\n
\n \n COLLECTIONS\n \n
\n
\n \n 样衣展示\n \n
\n
\n
\n
\n \n OUR CLIENTS\n \n
\n
\n \n 明星案例\n \n
\n
\n
\n
\n \n CONTACT US\n \n
\n
\n \n 联系我们\n \n
\n
\n \n}\n\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n pathname: state.router.location.pathname,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n mouseEnter: () => dispatch(mouseEnter()),\n mouseLeave: () => dispatch(mouseLeave()),\n rndID: ()=>dispatch(rndID()),\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Footer);\n\n","import React from \"react\"\nimport \"./TopBanner.css\"\nimport {mouseEnter, mouseLeave} from \"../actions/app\";\nimport {connect} from \"react-redux\";\n\nfunction TopBanner({mouseEnter, mouseLeave}) {\n const date=new Date();\n return
\n
\n COPYRIGHT ©️ 2014-{date.getFullYear()} 北京唯臻商贸有限公司 京ICP备16038627号\n {/*MR. DANDY 高级定制*/}\n \n
\n
\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n pathname: state.router.location.pathname,\n openTopMenus: state.app.openTopMenus,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n mouseEnter: () => dispatch(mouseEnter()),\n mouseLeave: () => dispatch(mouseLeave()),\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TopBanner);\n\n\n","import React from \"react\"\n\nexport default function ({children}) {\n return
{children}
\n}","export const MobileBreakPoint = 1024\nexport const SmallScreenBreakPoint = 1224\n","import React, {useRef, useState, useLayoutEffect, useEffect} from \"react\"\nimport {connect} from \"react-redux\";\nimport \"./Home.css\"\nimport {mouseEnter, mouseLeave, rndID, setBlackHeader, toggleTopMenus} from \"../actions/app\";\nimport SnapStart from \"../components/SnapStart\";\nimport {useMediaQuery} from 'react-responsive'\nimport {MobileBreakPoint} from \"../constants\";\nimport {Swiper, SwiperSlide} from 'swiper/react';\nimport 'swiper/swiper.min.css';\n\nimport SwiperCore, {Autoplay} from 'swiper';\nimport axios from \"axios\";\nimport {Helmet} from \"react-helmet\";\n\nSwiperCore.use([Autoplay]);\n\n\nfunction Home({randID, footerHeight, bannerHeight, logoRatio, width, height}) {\n const isDesktopOrLaptop = useMediaQuery({\n query: `(min-width: ${MobileBreakPoint+1}px)`\n })\n const isTabletOrMobile = useMediaQuery({\n query: `(max-width: ${MobileBreakPoint}px)`\n })\n const [layoutReady, setLayoutReady] = useState(false)\n const [scrollIntoView, setScrollIntoView] = useState(true)\n const [slides, setSlides] = useState(null)\n const ref = useRef(null)\n const topRef = useRef(null)\n useEffect(() => {\n if (randID > 0 && topRef && topRef.current) {\n topRef.current.scrollIntoView(false, {behavior: \"smooth\"})\n }\n }, [randID])\n\n useEffect(() => {\n axios.get(`/api/v1/settings`).then(({data}) => {\n if(data.slides) {\n setSlides(data.slides.split(\",\").map(s=>`/images/${s}/750`))\n }\n })\n }, [])\n\n useLayoutEffect(() => {\n const timer = setTimeout(() => {\n setLayoutReady(true)\n }, 250)\n return () => {\n clearTimeout(timer)\n }\n }, [])\n\n // slides = [\"/products-cover.jpg\", \"/collections-cover.jpg\"]\n\n return {\n if (isDesktopOrLaptop && scrollIntoView && ref && ref.current) {\n ref.current.scrollIntoView(true, {behavior: \"smooth\"})\n setScrollIntoView(false)\n }\n }}\n >\n \n {window.location.pathname === '/' && mrdandy,mr.dandy,西装定制,高级定制}\n {window.location.pathname !== '/' && mrdandy,mr.dandy,西装定制,高级定制 | 关于品牌}\n \n {isDesktopOrLaptop && layoutReady && }\n {isDesktopOrLaptop &&
}\n {isDesktopOrLaptop && \n }\n {isDesktopOrLaptop && layoutReady && }\n {isDesktopOrLaptop &&
}\n {isDesktopOrLaptop && 1440.0/900?\"home-cover.jpg\":\"home-cover-2.jpg\"}')`,\n backgroundPosition: \"center center\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"cover\",\n }}\n className={\"CoverImage\"}\n />\n }\n {(isTabletOrMobile && window.location.pathname !== '/') && \n }\n {(isTabletOrMobile && window.location.pathname === '/' && !!slides) && \n console.log('slide change')}\n // onSwiper={(swiper) => console.log(swiper)}\n >\n {slides && slides.map((slideContent, index) => (\n \n \n \n ))}\n \n
}\n {/*{(isTabletOrMobile && window.location.pathname !== '/') && slides.map((slideContent, index) => (*/}\n {/* */}\n {/*))}*/}\n {isDesktopOrLaptop && layoutReady && }\n {(isDesktopOrLaptop || window.location.pathname !== '/') &&\n \n

\n 绅士,从来不只是徒有其表
MR.DANDY,从来不只是量体裁衣\n

\n -\n Gentlemen go beyond their good appearances
\n MR. DANDY goes beyond his tailored suits
\n

\n

\n \n

\n {/*

FULL FUR LINING 全毛衬

*/}\n

\n MR.DANDY高级定制创立于2014年。品牌创立至今,已成为中国男装高级定制的标杆,客户覆盖政商、体育、演艺界名流,目前已于北京、上海、深圳、武汉、郑州、杭州设有6家门店。

\n “喜好精致衣物的男人”是MR.DANDY的名词解释。作为形容词,它代表了“顶级的、做工精细的” 衣物。这样的MR.DANDY总是精致优雅,总是会对生活有独到的追求,也是我们渴望塑造的当代绅士。

\n MR.DANDY高级定制品牌,区别于传统的高级定制,在西装的经典延续基础上融入了全新的理解与诠释。MR.DANDY希望不仅能够将最好的产品带到更多男士的生活中,同时把“高级定制”的服务概念做到深入人心。除了坚持最顶级的服装品质之外,更致力于满足精致男士生活的全方位定制需求。\n

\n \n Since its establishment in 2014, MR. DANDY has become in a leading position of Chinese bespoke brands, covering celebrities in politics, business, sports and entertainment industries. At present, there are 6 stores in Beijing, Shanghai, Shenzhen, Wuhan, Zhengzhou and Hangzhou all over China.\n

\n \n The word \"DANDY\" itself describes \"a man devoted to style, neatness and fashion in dress and appearance\". As an adjective, it represents \"top quality\" clothes. Always being delicate and elegant, MR. DANDY has a unique pursuit of life. Besides, it is also a type of contemporary gentleman that we aspire to create.\n

\n \n Different from traditional bespoke brand, MR. DANDY integrates new understanding and interpretation into classic menswear on the basis of continuing the traditions. MR. DANDY hopes to bring the best product to more gentlemen and makes more aesthetic customers enjoy bespoke service. In addition to adhering to the highest quality, it's more committed to meeting the all-round customization requirements of delicate men in life.\n \n

\n
\n \n {/*

IMPORTED AUXILIARY MATERIALS 全进口辅料

*/}\n
\n }\n \n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n pathname: state.router.location.pathname,\n width: state.app.width,\n height: state.app.height,\n footerHeight: state.app.footerHeight,\n bannerHeight: state.app.bannerHeight,\n logoRatio: state.app.logoRatio,\n openTopMenus: state.app.openTopMenus,\n blackHeader: state.app.blackHeader,\n randID: state.app.randID,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n toggleTopMenus: () => dispatch(toggleTopMenus()),\n mouseEnter: () => dispatch(mouseEnter()),\n mouseLeave: () => dispatch(mouseLeave()),\n setBlackHeader: (isBlack) => dispatch(setBlackHeader(isBlack))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Home);\n","import React, {useRef, useState, useLayoutEffect, useEffect} from \"react\"\nimport {connect} from \"react-redux\";\nimport \"./BespokeProcess.css\"\nimport {mouseEnter, mouseLeave, setBlackHeader, toggleTopMenus} from \"../actions/app\";\nimport SnapStart from \"../components/SnapStart\";\nimport {useMediaQuery} from \"react-responsive\";\nimport {MobileBreakPoint} from \"../constants\";\nimport { Helmet } from 'react-helmet';\n\n\nfunction BespokeProcess({pathname, footerHeight, bannerHeight, logoRatio, width, height}) {\n const [layoutReady, setLayoutReady] = useState(false)\n const [scrollIntoView, setScrollIntoView] = useState(true)\n const ref = useRef(null)\n const isDesktopOrLaptop = useMediaQuery({\n query: `(min-width: ${MobileBreakPoint+1}px)`\n })\n const isTabletOrMobile = useMediaQuery({\n query: `(max-width: ${MobileBreakPoint}px)`\n })\n\n useLayoutEffect(() => {\n const timer = setTimeout(() => {\n setLayoutReady(true)\n }, 250)\n return () => {\n clearTimeout(timer)\n }\n }, [])\n\n return {\n if (isDesktopOrLaptop && scrollIntoView && ref && ref.current) {\n ref.current.scrollIntoView(true, {behavior: \"smooth\"})\n setScrollIntoView(false)\n }\n }}\n >\n \n mrdandy西装定制-mr.dandy高级定制 | 定制流程\n \n {isDesktopOrLaptop && layoutReady && }\n {isDesktopOrLaptop &&\n
\n }\n {isDesktopOrLaptop && layoutReady && }\n
\n {isDesktopOrLaptop && 1440.0/900?\"bespoke-process-cover.jpg\":\"bespoke-process-cover-2.jpg\"}')`,\n backgroundPosition: \"center center\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"cover\",\n }}\n className={\"CoverImage\"}\n />}\n {!isDesktopOrLaptop && }\n {isDesktopOrLaptop && layoutReady && }\n
\n

\n 以自己的喜好为笔,在MR. DANDY,打造全世界最独一无二的艺术
\n -\n \nCreate the most unique art in the world on the canvas of MR. DANDY by pen of own preferences.\n \n

\n

\n DESIGN\n 设计\n

\n

\n MR.DANDY为客人精心准备了上万种面料,并根据客人的穿着风格、习惯以及场合设计最适合的款式。

\n \nMR. DANDY prepares more than ten thousands of different fabrics and provides most suitable designs by customer's dress style, habit and occasion.\n \n

\n\n

MEASUREMENT 量体

\n

\n 针对人体50处关键位置收集客人数据,量体师会根据客人的体态特征,有针对性的给予客人西装款式和风格的最佳建议。

\n \n Based on measurement data from 50 critical positions of the body, the master cutter provides the best advices on suit design and style according to the customer's physical characteristics.\n \n

\n\n

FITTING 试样

\n

\n 10-15天之后,做出毛样供客人试版,并进行调整。调整至完美程度后,将以此毛样制版并留存。

\n \n The rough sample is made for customer fitting in 10-15 days and it will be adjusted by their preferences. After adjusting to perfection, this pattern will be made and stored.\n \n

\n

COMPLETION 完成

\n

\n 试样之后25-30天,对成品进行最后的细微调试。交付成衣后,我们会提供终身的修改和维护服务。

\n \n The final subtle adjustment for the finished product will be made within 25-30 days after fitting process finishes. After delivery, we will provide the life-long adjustment and maintenance service.\n \n

\n
\n
\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n pathname: state.router.location.pathname,\n width: state.app.width,\n height: state.app.height,\n footerHeight: state.app.footerHeight,\n bannerHeight: state.app.bannerHeight,\n logoRatio: state.app.logoRatio,\n openTopMenus: state.app.openTopMenus,\n blackHeader: state.app.blackHeader,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n toggleTopMenus: () => dispatch(toggleTopMenus()),\n mouseEnter: () => dispatch(mouseEnter()),\n mouseLeave: () => dispatch(mouseLeave()),\n setBlackHeader: (isBlack) => dispatch(setBlackHeader(isBlack))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BespokeProcess);\n","import React, {useRef, useState, useLayoutEffect} from \"react\"\nimport {connect} from \"react-redux\";\nimport \"./Products.css\"\nimport {mouseEnter, mouseLeave, setBlackHeader, toggleTopMenus} from \"../actions/app\";\nimport SnapStart from \"../components/SnapStart\";\nimport {useMediaQuery} from \"react-responsive\";\nimport {MobileBreakPoint} from \"../constants\";\nimport { Helmet } from 'react-helmet';\n\n\nfunction Products({footerHeight, bannerHeight, logoRatio, width, height}) {\n const [layoutReady, setLayoutReady] = useState(false)\n const [scrollIntoView, setScrollIntoView] = useState(true)\n const ref = useRef(null)\n useLayoutEffect(() => {\n const timer = setTimeout(() => {\n setLayoutReady(true)\n }, 250)\n return () => {\n clearTimeout(timer)\n }\n }, [])\n const isDesktopOrLaptop = useMediaQuery({\n query: `(min-width: ${MobileBreakPoint+1}px)`\n })\n const isTabletOrMobile = useMediaQuery({\n query: `(max-width: ${MobileBreakPoint}px)`\n })\n\n return {\n if (scrollIntoView && ref && ref.current) {\n ref.current.scrollIntoView(true, {behavior: \"smooth\"})\n setScrollIntoView(false)\n }\n }}\n >\n \n mrdandy西装定制-mr.dandy高级定制 | 产品介绍\n \n {isDesktopOrLaptop && layoutReady && }\n {isDesktopOrLaptop &&\n
\n }\n {isDesktopOrLaptop && layoutReady && }\n
\n {isDesktopOrLaptop && 1440.0/900?\"products-cover.jpg\":\"products-cover-2.jpg\"}')`,\n backgroundPosition: \"center center\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"cover\",\n }}\n className={\"CoverImage\"}\n />}\n {!isDesktopOrLaptop && }\n {isDesktopOrLaptop && layoutReady && }\n
\n

\n 定制种种皆可估量,唯有匠心不可预计。
\n -\n \n The customization is measurable, while the craftsmanship is uncountable.
\n
\n

\n

FULL CANVAS 全毛衬

\n

\n 在MR.DANDY,体验身体最完美的呼吸方式。

\n 纯手工定制西装消耗的从来不只是物质,还有隐藏在这之后看不见的时间打磨。前后多达360多套工序,一万多个针脚的手工缝制,工时超过40个小时。

\n 有人认为款式是一件西装成败的关键,而实际上,全毛衬才是手工西装的灵魂所在。毛衬工艺,避免了工业西装工艺对优质面料原始性能的破坏,最大程度的保留了西装面料的悬垂感、柔软感和自然感。

\n \n Experience the perfect breath way of the body at MR. DANDY.\n

\n \nThe handmade tailored suit never just consumes the material, but also consumes time. There are more than 360 processes and over 10,000 stitches made by hand with above 40 hours.\n

\n \n People may think design is the key to a well-made suit. In fact, full canvas is the true spirit of a handmade tailored suit. Averting the destruction of original performance of high-quality fabric by industrial suit process, the full canvas process retains the draping feeling, soft feeling and natural feeling of top quality suit fabric to the greatest extent.\n \n

\n

PERSONAL PATTERN 一人一版

\n

\n 在MR.DANDY,您的所有细节都会得到尊重。

\n 一直以来,单独制版过程都是高级定制的核心之一。每一位客人都由版师单独剪裁制版,这是高级定制与成衣的最大分别。您的版型纸样都会永久保存在MR.DANDY。若没有太大变化,之后的定制服务,都可以根据这个专属版型制作。

\n \n All your personal details will be respected at MR. DANDY.\n

\n \n The personal pattern cutting process has always been one of the most important part of bespoke suit service. The master cutter makes patterns for each customer after body measurement, which is the biggest difference between bespoke and ready-to-wear suit. The paper pattern for each customer will be stored in MR. DANDY permanently and provides life-long time service.\n \n

\n

DETAILS 细节特征

\n

\n 在MR.DANDY,每一道线条都有生命。

\n 绅士西装的每一处细节,都刺绣着他们的风度。毛衬工艺赋予了西装翻领一个完美的弧线,在翻领处用真丝线花费超过两个小时锁出的米兰眼插花孔是顶级手工西装的标志之一,而米兰眼上合尾处的18k金线手缝金点就是MR.DANDY的独特标识。金点细节已于2019年申请专利设计保护。

\n MR.DANDY的另外一个精致细节,在于口袋的处理。船型口袋的设计贴合于身体,又让整个设计都充满了流畅的节奏。

\n MR.DANDY的每一处细节都可以被定制,亦提供西装内衬图案的私人定制服务。它可以是一张客人珍爱的油画作品,也可以是一张带着记忆的珍贵照片,身着一件MR.DANDY,无时无刻不与自己的珍爱相拥。

\n D字形的插笔袋也是MR.DANDY的标志之一,使本来严肃的西装气质中流露出一丝生动的风情。

\n MR.DANDY部也会进行一些特殊的处理。大部分工业西装很难达到完全贴服肩膀和肱二头肌,而我们采用了一种特殊工艺,在肩袖缝合处做出一个与客人身体曲线一致的部分。这种设计不仅体现在日常穿着上,在悬挂时也会呈现出一个优美的弧度。将客人的身体特征融入到整体设计里,让西装不再仅仅是一件衣服,而是身体的一个部分。

\n \n Every detail is alive at MR. DANDY.\n

\n \n Every detail on a bespoke suit shows the gentleman's style. The well-made full canvas makes the lapel a perfect roll. The flower hole on suit lapel made by Milanese button hole technique is made from pure silk, which is one of the top-quality suit symbol, and the 18k gold thread hand sewing golden dot at the side of Milanese flower holes is the unique signature of MR. DANDY. The patent protection had been applied for this golden dot design in 2019.\n

\n \n Another fine detail of MR. DANDY lies in chest pocket. The boat-shape pocket design fits the body curve for every gentleman.\n

\n \n Every detail of MR. DANDY can be customized at MR. DANDY, even suit linings. It can be a favorite oil painting or a precious picture with memories. Wearing MR. DANDY, you're surrounded by your loved ones all the time.\n

\n \n The D-shape pen pocket is also one of MR. DANDY symbols. It makes the serious suit spirit with a vivid amorous feeling.\n

\n \n Some special techniques are used for the shoulder parts of MR. DANDY products. As it is difficult for most ready-to-wear suits to fully fit the shoulders, we use a technique to match the curve of the customer's body at the shoulder sleeve suture part. Performed by everyday dressing, it also shows a beautiful curve when hanging. The body details of the customer are integrated into the overall design, making the suit not only a piece of clothing but also a part of the body.\n \n

\n\n

World Finest Fabric 全球顶级面料

\n\n

\n 以时间为针,空间为线,在岁月变迁中编织优雅年轮。

\n MR.DANDY只选择最优秀的合作,只将最美好的事物送入您的视野。我们提供来自英国、法国和意大利的几十种品牌,共计上万种面料供顾客选择。除了网罗大部分经典西装面料,亦准备了如超高支纱、100%Vicuña、钻石粉、兰花香、古董面料、定制条纹等珍稀面料。

\n \n With time as the needle and space as thread, we weave the elegant products through the years.\n

\n \n To bring the best to you, MR. DANDY only selects the best fabric around the world and provides all the top fabric brands from United Kingdom, France and Italy with over ten thousands different kinds of fabrics that can be chosen for the customer. In addition to seek most of classic suit fabrics, we also prepare the rare and precious fabrics (such as ultra-high super, 100%Vicuña, diamond chip, orchid fragrance, vintage and even customized stripe fabrics).\n \n

\n\n

Top Quality Accessories\n 全进口辅料

\n

\n MR.DANDY从来不只是表面,所有在客人看不到的地方我们也做到了极致。

\n MR.DANDY的全部产品细节,大至毛衬,小至每一粒纽扣每一道缝线,均选用世界顶级的材料打造。这是MR.DANDY为所有客人献上的诚意。

\n \n MR. DANDY makes every effort to do the best for all the details, even the parts can't be seen.\n

\n \n All the product details of MR. DANDY (including canvas, every button or thread) are made from top materials in the world. This is the sincerity from MR. DANDY.\n \n

\n
\n
\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n pathname: state.router.location.pathname,\n width: state.app.width,\n height: state.app.height,\n footerHeight: state.app.footerHeight,\n bannerHeight: state.app.bannerHeight,\n logoRatio: state.app.logoRatio,\n openTopMenus: state.app.openTopMenus,\n blackHeader: state.app.blackHeader,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n toggleTopMenus: () => dispatch(toggleTopMenus()),\n mouseEnter: () => dispatch(mouseEnter()),\n mouseLeave: () => dispatch(mouseLeave()),\n setBlackHeader: (isBlack) => dispatch(setBlackHeader(isBlack))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Products);\n","import React from \"react\"\nimport \"./CollectionItem.css\"\nimport {useMediaQuery} from \"react-responsive\";\nimport {MobileBreakPoint} from \"../constants\";\nimport {Helmet} from \"react-helmet\";\n\nfunction CollectionItem({collection, collectionType}) {\n\n const isDesktopOrLaptop = useMediaQuery({\n query: `(min-width: ${MobileBreakPoint}px)`\n })\n\n return
\n {(collection && collection.nameCn) && \n MR.DANDY | {collection.nameCn}\n \n }\n {collection && collection.images && collection.images.split(\",\").map((img, key) => {\n return
\n \n
\n })}\n
\n {collectionType === \"formalwear\" &&\n (FORMALWEAR 礼服) \n }\n {collectionType === \"suits\" &&\n (SUIT 西服套装) \n }\n {collectionType === \"blazer-jackets\" &&\n (BLAZER & JACKET 单西与夹克) \n }\n {collectionType === \"overcoat\" &&\n ( OVERCOAT 大衣) \n }\n
\n
\n
\n {(collection && collection.nameEn) && collection.nameEn.split(\"\\n\").map((l, i) => {\n return {l}
\n })}\n {(collection && collection.nameCn) && collection.nameCn.split(\"\\n\").map((l, i) => {\n return {l}
\n })}\n {isDesktopOrLaptop &&\n \n {(collection && collection.price) ? `∙ ${collection.price.trim()} ∙` : \"\"}\n \n }\n
\n
\n
\n
\n {(collection && collection.detailsEn) && collection.detailsEn.split(\"\\n\").map((l, i) => {\n return {l}
\n })}\n {(collection && collection.detailsCn) && collection.detailsCn.split(\"\\n\").map((l, i) => {\n return {l}
\n })}\n {isDesktopOrLaptop &&
}\n {isDesktopOrLaptop &&
}\n
\n
\n {!isDesktopOrLaptop &&
\n
\n \n {(collection && collection.price) ? `∙ ${collection.price.trim()} ∙` : \"\"}\n \n
\n
}\n
\n \n If you have any questions, you may contact us to assist you.
\n
\n 如果您有任何疑问,请联系我们。\n
\n
\n}\n\nexport default CollectionItem;\n","import React from \"react\"\nimport \"./Collection.css\"\nimport {Link} from \"react-router-dom\";\n\nfunction Collection({mouseLeave, mouseEnter, collectionType, collections}) {\n if (!collectionType) {\n collectionType = \"formalwear\"\n }\n return
\n {collections && collections.map((c, key) => {\n return
\n \n {c.cover && }\n \n
\n \n {c.nameEn && c.nameEn.split(\"\\n\").map((l, i) => {\n return {l}
\n })}\n {c.nameCn && c.nameCn.split(\"\\n\").map((l, i) => {\n return {l}
\n })}\n \n
\n \n {c.price ? `∙ ${c.price.trim()} ∙` : \"\"}\n \n
\n
\n })}\n
\n}\n\nexport default Collection;\n","export default __webpack_public_path__ + \"static/media/商品分类下拉箭头.d25a0c32.svg\";","import React, {useRef, useState, useEffect, useLayoutEffect} from \"react\"\nimport {connect} from \"react-redux\";\nimport \"./Collections.css\"\nimport {Link} from \"react-router-dom\";\nimport {mouseEnter, mouseLeave, setBlackHeader, toggleTopMenus} from \"../actions/app\";\nimport SnapStart from \"../components/SnapStart\";\nimport CollectionItem from \"../components/CollectionItem\";\nimport Collection from \"../components/Collection\";\nimport {useMediaQuery} from \"react-responsive\";\nimport {MobileBreakPoint} from \"../constants\";\nimport Arrow from \"../images/商品分类下拉箭头.svg\"\nimport axios from \"axios\";\nimport {Helmet} from \"react-helmet\";\n\nfunction Collections({match: {params: {type: collectionType, name: collectionID}}, footerHeight, bannerHeight, logoRatio, width, height, mouseEnter, mouseLeave, pathname}) {\n const [layoutReady, setLayoutReady] = useState(false)\n const [scrollIntoView, setScrollIntoView] = useState(true)\n const [menuOpen, setMenuOpen] = useState(false)\n const [showNav, setShowNav] = useState(false)\n const [firstOpen, setFirstOpen] = useState(true)\n const [collections, setCollections] = useState(null)\n const [collection, setCollection] = useState(null)\n const ref = useRef(null)\n const topRef = useRef(null)\n const contentRef = useRef(null)\n const isDesktopOrLaptop = useMediaQuery({\n query: `(min-width: ${MobileBreakPoint+1}px)`\n })\n const isTabletOrMobile = useMediaQuery({\n query: `(max-width: ${MobileBreakPoint}px)`\n })\n // if (!collectionType) {\n // collectionType = \"formalwear\"\n // }\n useEffect(() => {\n if (!collectionID) {\n setCollections(null)\n axios.get(`/api/v1/collections?type=${collectionType ? collectionType : \"formalwear\"}`).then(({data}) => {\n console.log(data)\n setCollections(data)\n })\n } else if (!!collectionID) {\n setCollection(null)\n axios.get(`/api/v1/collections/${collectionID}`).then(({data}) => {\n setCollection(data)\n })\n }\n }, [pathname])\n useEffect(() => {\n if (firstOpen) {\n setFirstOpen(false)\n return\n }\n if (pathname === \"/collections\") {\n setScrollIntoView(true)\n if (isDesktopOrLaptop && topRef && topRef.current) {\n topRef.current.scrollIntoView(false, {behavior: \"smooth\"})\n }\n return\n }\n if (isDesktopOrLaptop && contentRef && contentRef.current) {\n contentRef.current.scrollIntoView(true, {behavior: \"smooth\"})\n }\n }, [pathname])\n var showTimer\n useLayoutEffect(() => {\n const timer = setTimeout(() => {\n setLayoutReady(true)\n }, 250)\n return () => {\n clearTimeout(timer)\n clearTimeout(showTimer)\n }\n }, [])\n console.log(collectionType, collectionID)\n return {\n if (isDesktopOrLaptop && scrollIntoView && ref && ref.current) {\n ref.current.scrollIntoView(true, {behavior: \"smooth\"})\n setScrollIntoView(false)\n }\n }}\n >\n \n mrdandy西装定制-mr.dandy高级定制 | 样衣展示\n \n {isDesktopOrLaptop && layoutReady && }\n
\n {isDesktopOrLaptop &&\n
\n }\n {isDesktopOrLaptop && layoutReady && }\n {isDesktopOrLaptop &&\n
\n }\n {/*{(!(collectionID || collectionType) && isDesktopOrLaptop) &&*/}\n {isDesktopOrLaptop &&\n
1440.0/900?\"collections-cover.jpg\":\"collections-cover-2.jpg\"}')`,\n\n backgroundPosition: \"center center\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"cover\",\n }}\n className={\"CoverImage\"}\n />\n }\n {isDesktopOrLaptop &&\n
\n }\n {isDesktopOrLaptop && layoutReady && }\n
\n
\n {!isDesktopOrLaptop && {\n event.preventDefault()\n event.stopPropagation()\n if (!menuOpen) {\n showTimer = setTimeout(() => {\n setShowNav(true)\n }, 10)\n } else {\n setShowNav(false)\n }\n setMenuOpen(!menuOpen)\n }}\n src={Arrow}\n alt={\"arrow\"}\n className={menuOpen ? \"Opened\" : \"\"}\n />}\n {(isDesktopOrLaptop || menuOpen || collectionType === \"formalwear\" || !collectionType) &&\n
\n {\n setMenuOpen(false)\n }}\n className={`${(collectionType === \"formalwear\" || !collectionType) ? 'Active' : ''} ${showNav ? 'Show' : 'Hide'}`}\n to={\"/collections/formalwear\"} onMouseEnter={mouseEnter} onMouseLeave={mouseLeave}>\n \n FORMALWEAR\n
\n
\n 礼服\n \n
\n }\n {(isDesktopOrLaptop || menuOpen || collectionType === \"suit\") &&\n
\n {\n setMenuOpen(false)\n }}\n className={`${collectionType === 'suits' ? 'Active' : ''} ${showNav ? 'Show' : 'Hide'}`}\n to={\"/collections/suits\"} onMouseEnter={mouseEnter} onMouseLeave={mouseLeave}>\n \n SUIT\n
\n
\n 西服套装\n \n
\n }\n {(isDesktopOrLaptop || menuOpen || collectionType === \"blazer-jackets\") &&\n
\n {\n setMenuOpen(false)\n }}\n className={`${collectionType === 'blazer-jackets' ? 'Active' : ''} ${showNav ? 'Show' : 'Hide'}`}\n to={\"/collections/blazer-jackets\"} onMouseEnter={mouseEnter} onMouseLeave={mouseLeave}>\n \n BLAZER & JACKET\n
\n
\n 单西与夹克\n \n
\n }\n {(isDesktopOrLaptop || menuOpen || collectionType === \"overcoat\") &&\n
\n {\n setMenuOpen(false)\n }}\n className={`${collectionType === 'overcoat' ? 'Active' : ''} ${showNav ? 'Show' : 'Hide'}`}\n to={\"/collections/overcoat\"} onMouseEnter={mouseEnter} onMouseLeave={mouseLeave}>\n \n OVERCOAT\n
\n
\n 大衣\n \n
\n }\n
\n {isDesktopOrLaptop &&
}\n \n \n {!!collectionID && }\n {!collectionID && }\n\n
\n
\n
\n {/*{layoutReady && }*/}\n
\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n pathname: state.router.location.pathname,\n width: state.app.width,\n height: state.app.height,\n footerHeight: state.app.footerHeight,\n bannerHeight: state.app.bannerHeight,\n logoRatio: state.app.logoRatio,\n openTopMenus: state.app.openTopMenus,\n blackHeader: state.app.blackHeader,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n toggleTopMenus: () => dispatch(toggleTopMenus()),\n mouseEnter: () => dispatch(mouseEnter()),\n mouseLeave: () => dispatch(mouseLeave()),\n setBlackHeader: (isBlack) => dispatch(setBlackHeader(isBlack))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Collections);\n","import React, {useRef, useState, useLayoutEffect} from \"react\"\nimport {connect} from \"react-redux\";\nimport \"./OurClients.css\"\nimport {mouseEnter, mouseLeave, setBlackHeader, toggleTopMenus} from \"../actions/app\";\nimport SnapStart from \"../components/SnapStart\";\n\nimport debounce from \"react-reveal/src/lib/debounce\";\nimport Masonry from 'react-masonry-css'\nimport {useMediaQuery} from \"react-responsive\";\nimport {MobileBreakPoint} from \"../constants\";\nimport axios from \"axios\";\nimport {Helmet} from 'react-helmet';\n\n\nfunction OurClients({footerHeight, bannerHeight, logoRatio, width, height}) {\n const [layoutReady, setLayoutReady] = useState(false)\n const [scrollIntoView, setScrollIntoView] = useState(true)\n const [clients, setClients] = useState(null)\n const [hasMore, setHasMore] = useState(true)\n const [viewIndex, setViewIndex] = useState(0)\n const [showLoading, setShowLoading] = useState(false)\n const [hideSnap, setHideSnap] = useState(false)\n const ref = useRef(null)\n const isDesktopOrLaptop = useMediaQuery({\n query: `(min-width: ${MobileBreakPoint + 1}px)`\n })\n const isTabletOrMobile = useMediaQuery({\n query: `(max-width: ${MobileBreakPoint}px)`\n })\n const viewCount = isDesktopOrLaptop ? 8 : 8\n useLayoutEffect(() => {\n const timer = setTimeout(() => {\n setLayoutReady(true)\n }, 250)\n axios.get(`/api/v1/clients`).then(({data}) => {\n if (data.length > 100) {\n data = data.slice(0, 100)\n }\n setClients(data)\n if (data.length < viewCount) {\n setViewIndex(data.length)\n } else {\n setViewIndex(viewCount)\n }\n })\n return () => {\n clearTimeout(timer)\n }\n }, [])\n\n const debounceLoad = debounce(() => {\n if (!clients) {\n return\n }\n if (viewIndex + viewCount < clients.length) {\n setViewIndex(viewCount + viewIndex)\n } else {\n setViewIndex(clients.length)\n }\n setShowLoading(false)\n }, 1000)\n\n const handleScroll = (e) => {\n // if (isDesktopOrLaptop) {\n // return\n // }\n const bottom = Math.abs(e.target.scrollHeight - e.target.scrollTop - e.target.clientHeight) < 20;\n // console.log(e.target.scrollHeight - e.target.scrollTop, e.target.clientHeight, e.target.scrollHeight - e.target.scrollTop - e.target.clientHeight)\n if (bottom) {\n if(viewIndex !== clients.length) {\n setShowLoading(true)\n }\n setHideSnap(true)\n debounceLoad()\n }\n }\n\n return {\n if (isDesktopOrLaptop && scrollIntoView && ref && ref.current) {\n // console.log(\"scroll into view\")\n ref.current.scrollIntoView(true, {behavior: \"smooth\"})\n setScrollIntoView(false)\n }\n }}\n >\n \n mrdandy西装定制-mr.dandy高级定制 | 明星案例\n \n {(!hideSnap && isDesktopOrLaptop && layoutReady) && }\n {isDesktopOrLaptop &&\n
\n }\n {(!hideSnap && isDesktopOrLaptop && layoutReady) && }\n {isDesktopOrLaptop &&\n
\n }\n {isDesktopOrLaptop &&\n
\n }\n {isDesktopOrLaptop &&\n
\n }\n
\n \n {clients && clients.slice(0, isDesktopOrLaptop ? viewIndex : viewIndex).map((c, key) => {\n return
\n \n
\n {c.titleEn}
\n {c.titleCn}\n
\n
\n })}\n \n {showLoading && }\n
\n
\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n pathname: state.router.location.pathname,\n width: state.app.width,\n height: state.app.height,\n footerHeight: state.app.footerHeight,\n bannerHeight: state.app.bannerHeight,\n logoRatio: state.app.logoRatio,\n openTopMenus: state.app.openTopMenus,\n blackHeader: state.app.blackHeader,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n toggleTopMenus: () => dispatch(toggleTopMenus()),\n mouseEnter: () => dispatch(mouseEnter()),\n mouseLeave: () => dispatch(mouseLeave()),\n setBlackHeader: (isBlack) => dispatch(setBlackHeader(isBlack))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OurClients);\n","import React, {useRef, useState, useLayoutEffect} from \"react\"\nimport {connect} from \"react-redux\";\nimport \"./ContactUs.css\"\nimport {mouseEnter, mouseLeave, setBlackHeader, toggleTopMenus} from \"../actions/app\";\nimport SnapStart from \"../components/SnapStart\";\nimport {useMediaQuery} from \"react-responsive\";\nimport {MobileBreakPoint} from \"../constants\";\nimport {Helmet} from 'react-helmet';\n\n\nfunction ContactUs({footerHeight, bannerHeight, logoRatio, width, height}) {\n const [layoutReady, setLayoutReady] = useState(false)\n const [scrollIntoView, setScrollIntoView] = useState(true)\n const ref = useRef(null)\n const isDesktopOrLaptop = useMediaQuery({\n query: `(min-width: ${MobileBreakPoint + 1}px)`\n })\n const isTabletOrMobile = useMediaQuery({\n query: `(max-width: ${MobileBreakPoint}px)`\n })\n useLayoutEffect(() => {\n const timer = setTimeout(() => {\n setLayoutReady(true)\n }, 250)\n return () => {\n clearTimeout(timer)\n }\n }, [])\n\n return {\n if (isDesktopOrLaptop && scrollIntoView && ref && ref.current) {\n ref.current.scrollIntoView(true, {behavior: \"smooth\"})\n setScrollIntoView(false)\n }\n }}\n >\n \n mrdandy西装定制-mr.dandy高级定制 | 联系我们\n \n {isDesktopOrLaptop && layoutReady && }\n {isDesktopOrLaptop &&\n
\n }\n {isDesktopOrLaptop && layoutReady && }\n
\n {isDesktopOrLaptop &&\n 1440.0 / 900 ? \"contact-us-cover.jpg\" : \"contact-us-cover-2.jpg\"}')`,\n // backgroundImage: \"url(/contact-us-cover.jpg)\",\n backgroundPosition: \"center center\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"cover\",\n }}\n className={\"CoverImage\"}\n />}\n {!isDesktopOrLaptop &&\n }\n\n {isDesktopOrLaptop &&
}\n
\n {isDesktopOrLaptop && layoutReady && }\n
\n
\n \n ADDRESS
\n
\n 店铺地址\n
\n
\n
\n
\n
\n \n BEIJING
\n
\n \n 北京店\n \n
\n
\n\n\n \n NO. 103, XINGYUANHUI COMMERCE-SUBJACENT,
\n \n \n NO. 63 XINYUAN STREET, CHAOYANG DISTRICT,
\n \n \n BEIJING, CHINA
\n
\n 北京市朝阳区新源街63号底商103\n
\n
\n
\n
\n
\n
\n
\n \n SHANGHAI
\n
\n 上海店\n
\n
\n \n RM 502, WALDORF DOLLAR BUILDING,
\n NO.51, GUANGDONG ROAD, HUANGPU DISTRICT,
\n SHANGHAI, CHINA
\n
\n 上海市黄浦区广东路51号华尔道大来大楼502\n
\n
\n
\n
\n
\n
\n
\n \n SHENZHEN
\n
\n 深圳店\n
\n
\n \n 6009, BUILDING C, NEO ENTERPRISE BUILDING,
\n SHENNAN ROAD, FUTIAN DISTRICT,
\n SHENZHEN, GUANGDONG, CHINA
\n
\n 广东省深圳市福田区深南大道6009号NEO大厦C座\n
\n
\n
\n
\n
\n
\n
\n \n WUHAN
\n
\n 武汉店\n
\n
\n \n 604 WUHAN WANDA CENTER,
\n NO. 96 LINJIANG ROAD, JIYU BRIDGE STREET,
\n WUCHANG DISTRICT, WUHAN, CHINA
\n
\n 湖北省武汉市武昌区积玉桥街临江大道96号武汉万达中心604\n
\n
\n
\n
\n
\n
\n
\n \n ZHENGZHOU
\n
\n 郑州店\n
\n
\n \n ROOM 201-A, FLOOR 2, KAILIN BUILDING,
\n INTERSECTION OF RUYI WEST ROAD
\n AND RUYI HEXI SECOND STREET,
\n JINSHUI DISTRICT, ZHENGZHOU,
\n HENAN PROVINCE
\n
\n 河南省郑州市金水区如意⻄路与如意河⻄二街交叉口楷林大厦2层201-A\n
\n
\n
\n
\n
\n
\n
\n \n HANGZHOU
\n
\n 杭州店\n
\n
\n \n BUILDING 4,NO.90 CHENGXING ROAD,
\n SHANGCHENG DISTRICT,
\n HANGZHOU,ZHEJIANG
\n
\n 浙江省杭州市上城区城星路90号4幢\n
\n
\n
\n
\n
\n
\n {isDesktopOrLaptop && layoutReady && }\n
\n
\n \n CONTACT
\n
\n 联系方式\n
\n
\n
\n
\n
\n \n TELEPHONE
\n
\n 全国统一客服电话\n
\n
\n \n 400-886-5786\n \n
\n
\n
\n
\n \n WECHAT ID
\n
\n 全国统一客服微信\n
\n
\n \n mrdandyservice\n \n
\n
\n
\n
\n \n E-MAIL
\n
\n 邮箱\n
\n
\n \n huzhen@mrdandy.com.cn\n \n
\n
\n
\n
\n
\n {/*{isDesktopOrLaptop && layoutReady && }*/}\n
\n
\n \n SOCIAL MEDIA
\n
\n 官方媒体\n
\n
\n
\n
\n
\n \n INSTAGRAM\n \n
\n
\n \n mrdandybespoke\n \n
\n
\n
\n
\n \n WEIBO
\n
\n 新浪微博\n
\n
\n \n MrDandy\n 官方微博\n
\n
\n
\n
\n \n WECHAT PUBLIC
ACCOUNTS
\n
\n 微信公众号\n
\n
\n
\n
\n
\n \n TIK TOK
\n
\n 抖音\n
\n
\n \n Mr.Dandy\n 胡榛\n
\n
\n
\n
\n \n BILIBILI
\n
\n
\n
\n \n MrDandy\n 胡榛\n
\n
\n
\n
\n \n XIAOHONGSHU
\n
\n 小红书\n
\n
\n \n Mr. Dandy\n \n
\n
\n
\n
\n
\n
\n
\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n pathname: state.router.location.pathname,\n width: state.app.width,\n height: state.app.height,\n footerHeight: state.app.footerHeight,\n bannerHeight: state.app.bannerHeight,\n logoRatio: state.app.logoRatio,\n openTopMenus: state.app.openTopMenus,\n blackHeader: state.app.blackHeader,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n toggleTopMenus: () => dispatch(toggleTopMenus()),\n mouseEnter: () => dispatch(mouseEnter()),\n mouseLeave: () => dispatch(mouseLeave()),\n setBlackHeader: (isBlack) => dispatch(setBlackHeader(isBlack))\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ContactUs);\n","import React from \"react\"\n\nexport default function (props) {\n const {width, height} = props\n return \n \n \n \n \n \n \n \n \n \n}\n","import React, {useState} from \"react\"\nimport {connect} from \"react-redux\"\nimport {Link} from \"react-router-dom\";\nimport \"./MobileHeader.css\"\nimport {mouseEnter, mouseLeave, rndID} from \"../actions/app\";\nimport LogoIcon from \"./LogoIcon\";\n\nfunction MobileHeader({rndID, pathname, mouseLeave, mouseEnter}) {\n const [openMenu, setOpenMenu] = useState(false)\n\n return
\n {!openMenu && \n {\n setOpenMenu(true)\n }}\n >\n \n \n \n \n \n
\n {\n setOpenMenu(false)\n }}\n >\n \n \n \n
\n
}\n {openMenu && \n {\n setOpenMenu(false)\n }}\n >\n \n \n \n \n
\n {\n setOpenMenu(false)\n }}\n >\n \n \n \n
\n
}\n {\n setOpenMenu(false)\n }}\n >\n {\n rndID()\n }}\n className={`${(pathname === \"/about-brand\" || pathname === \"/\") ? \"Active\" : \"\"}`}>\n
\n \n ABOUT BRAND\n \n
\n
\n \n 关于品牌\n \n
\n
\n
\n
\n \n BESPOKE PROCESS\n \n
\n
\n \n 定制流程\n \n
\n
\n
\n
\n \n PRODUCTS\n \n
\n
\n \n 产品介绍\n \n
\n
\n
\n
\n \n COLLECTIONS\n \n
\n
\n \n 样衣展示\n \n
\n
\n
\n
\n \n OUR CLIENTS\n \n
\n
\n \n 明星案例\n \n
\n
\n
\n
\n \n CONTACT US\n \n
\n
\n \n 联系我们\n \n
\n
\n
\n
\n}\n\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n pathname: state.router.location.pathname,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n mouseEnter: () => dispatch(mouseEnter()),\n mouseLeave: () => dispatch(mouseLeave()),\n rndID: () => dispatch(rndID()),\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MobileHeader);\n\n","import {\n Switch,\n Route,\n} from \"react-router\";\nimport {Link} from \"react-router-dom\";\nimport {connect} from \"react-redux\"\nimport React, {useEffect} from \"react\"\nimport Footer from \"./components/Footer\";\nimport TopBanner from \"./components/TopBanner\";\nimport {withSize} from 'react-sizeme'\nimport {mouseEnter, mouseLeave, rndID, toggleTopMenus, updateAppSize} from \"./actions/app\";\nimport Home from \"./pages/Home\";\nimport BespokeProcess from \"./pages/BespokeProcess\";\nimport Products from \"./pages/Products\";\nimport Collections from \"./pages/Collections\";\n\nimport './App.css';\nimport OurClients from \"./pages/OurClients\";\nimport ContactUs from \"./pages/ContactUs\";\nimport LogoIcon from \"./components/LogoIcon\";\nimport {useMediaQuery} from \"react-responsive\";\nimport MobileHeader from \"./components/MobileHeader\";\nimport {MobileBreakPoint} from \"./constants\";\n\n\nfunction App({pathname, showBigBall, rndID, size: {width, height}, openTopMenus, updateAppSize, toggleTopMenus, mouseEnter, mouseLeave}) {\n const ref = React.useRef(null)\n const contentRef = React.useRef(null)\n useEffect(() => {\n updateAppSize(width, height)\n }, [width, height])\n const isDesktopOrLaptop = useMediaQuery({\n query: `(min-width: ${MobileBreakPoint+1}px)`\n })\n const isTabletOrMobile = useMediaQuery({\n query: `(max-width: ${MobileBreakPoint}px)`\n })\n // const mouse = useMouse(ref, {\n // enterDelay: 30,\n // leaveDelay: 30,\n // })\n return (\n
\n {isDesktopOrLaptop && }\n {isTabletOrMobile && }\n {isDesktopOrLaptop && \n {\n rndID()\n }}\n >\n \n \n
\n }\n {\n if (openTopMenus) {\n e.stopPropagation()\n e.preventDefault()\n toggleTopMenus()\n }\n }}>\n {(!!width && !!height) &&\n \n \n \n \n \n \n \n \n \n \n \n }\n
\n {isDesktopOrLaptop &&
}\n {/*{isDesktopOrLaptop &&*/}\n {/**/}\n {/*}*/}\n
\n );\n}\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n pathname: state.router.location.pathname,\n openTopMenus: state.app.openTopMenus,\n showBigBall: state.app.showBigBall,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n toggleTopMenus: () => dispatch(toggleTopMenus()),\n updateAppSize: (width, height) => dispatch(updateAppSize(width, height)),\n mouseEnter: () => dispatch(mouseEnter()),\n mouseLeave: () => dispatch(mouseLeave()),\n rndID: () => dispatch(rndID())\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withSize({monitorHeight: true})(App));\n","import 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport {ConnectedRouter} from 'connected-react-router'\nimport configureStore, {history} from './configureStore'\nimport {Provider} from 'react-redux';\nimport App from './App';\n// import reportWebVitals from './reportWebVitals';\n\nimport './index.css';\n\nconst store = configureStore()\n\nReactDOM.render(\n // \n \n \n \n \n ,\n // ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\n// reportWebVitals();\n"],"sourceRoot":""}