index.jsx 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import React from "react"
  2. import style from './index.less'
  3. import { Map, APILoader, InfoWindow, Marker, NavigationControl } from '@uiw/react-baidu-map';
  4. function MyMap(props) {
  5. let { isMobile } = props
  6. const [visiable, setVisiable] = React.useState(true);
  7. const [isOpen, setIsOpen] = React.useState(true);
  8. function markerRef(props) {
  9. if (props && props.marker) {
  10. console.log('marker::', props.marker, props.map, props.BMap);
  11. }
  12. }
  13. function infoWindowRef(props) {
  14. if (props && props.infoWindow) {
  15. console.log('infoWindow:', props.infoWindow, props.map, props.BMap);
  16. }
  17. }
  18. function clickHandle({ type, target }) {
  19. setIsOpen(!isOpen)
  20. setVisiable(!visiable)
  21. }
  22. return <div className={style.myMap}>
  23. <div className={style.content}>
  24. {isMobile ? <div className={style.mobile}>
  25. <div className={style.title}><div></div>联系地址</div>
  26. <div className={style.line}></div>
  27. <div className={style.editor}>浙江省杭州市余杭区五常街道联创街188号,贝达梦工场E座2层</div>
  28. <div className={style.title}><div></div>联系电话</div>
  29. <div className={style.line}></div>
  30. <div className={`${style.phone} ${style.editor}`}>17348538372</div>
  31. <div className={style.title}><div></div>邮箱</div>
  32. <div className={style.line}></div>
  33. <div className={`${style.phone} ${style.editor}`}>wl9511@dingtalk.com</div>
  34. </div> : <div className={style.noMobile}>
  35. <div className={style.noTitle}>
  36. <div>
  37. <div className={style.name}>联系我们</div>
  38. <div className={style.a}>联系地址</div>
  39. <div className={style.b}>浙江省杭州市余杭区五常街道联创街188号,贝达梦工场E座2层</div>
  40. <div className={style.a}>联系电话</div>
  41. <div className={style.b}>17348538372</div>
  42. <div className={style.a}>联系邮箱</div>
  43. <div className={style.b}>wl9511@dingtalk.com</div>
  44. </div>
  45. </div>
  46. <div style={{ width: '820px', height: '500px' }} className={style.noMap}>
  47. <APILoader akay="GTrnXa5hwXGwgQnTBG28SHBubErMKm3f">
  48. <Map
  49. center={'浙江省杭州市余杭区五常街道联创街188号'}
  50. zoom={16}
  51. ref={(props) => {
  52. if (props && props.map) {
  53. // 启用滚轮放大缩小,默认禁用
  54. props.map.enableScrollWheelZoom();
  55. }
  56. }}>
  57. <Marker ref={markerRef} position={{ lng: 120.030511, lat: 30.295114 }} onClick={clickHandle} />
  58. <InfoWindow
  59. ref={infoWindowRef}
  60. visiable={visiable}
  61. isOpen={isOpen}
  62. width={200}
  63. onClose={() => { setIsOpen(!isOpen); setVisiable(!visiable) }}
  64. enableCloseOnClick={false}
  65. position={{ lng: 120.030511, lat: 30.295114 }}
  66. content='<div style="font-size: 12px">浙江省杭州市余杭区五常街道联创街188号,贝达梦工场E座2层</div>'
  67. title='<div style="font-size: 16px;margin-bottom: 10px">杭州趣程网络科技有限公司</div>'
  68. offset={{ width: 0, height: -25 }}
  69. />
  70. {/* <NavigationControl
  71. type='BMAP_NAVIGATION_CONTROL_LARGE'
  72. anchor="BMAP_ANCHOR_BOTTOM_LEFT"
  73. enableGeolocation
  74. showZoomInfo /> */}
  75. </Map>
  76. </APILoader>
  77. </div>
  78. </div>}
  79. </div>
  80. </div>
  81. }
  82. export default React.memo(MyMap)