micro-home-map.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. exports.ids = [24];
  2. exports.modules = {
  3. /***/ 257:
  4. /***/ (function(module, exports, __webpack_require__) {
  5. // style-loader: Adds some css to the DOM by adding a <style> tag
  6. // load the styles
  7. var content = __webpack_require__(284);
  8. if(content.__esModule) content = content.default;
  9. if(typeof content === 'string') content = [[module.i, content, '']];
  10. if(content.locals) module.exports = content.locals;
  11. // add CSS to SSR context
  12. var add = __webpack_require__(4).default
  13. module.exports.__inject__ = function (context) {
  14. add("482f05de", content, true, context)
  15. };
  16. /***/ }),
  17. /***/ 258:
  18. /***/ (function(module, exports, __webpack_require__) {
  19. // style-loader: Adds some css to the DOM by adding a <style> tag
  20. // load the styles
  21. var content = __webpack_require__(286);
  22. if(content.__esModule) content = content.default;
  23. if(typeof content === 'string') content = [[module.i, content, '']];
  24. if(content.locals) module.exports = content.locals;
  25. // add CSS to SSR context
  26. var add = __webpack_require__(4).default
  27. module.exports.__inject__ = function (context) {
  28. add("4cc0ff7c", content, true, context)
  29. };
  30. /***/ }),
  31. /***/ 283:
  32. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  33. "use strict";
  34. __webpack_require__.r(__webpack_exports__);
  35. /* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_4_3_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_9_8_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_10_2_1_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_2_2_4_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_components_2_2_1_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_15_9_8_vue_loader_lib_index_js_vue_loader_options_map_vue_vue_type_style_index_0_id_5064c234_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(257);
  36. /* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_4_3_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_9_8_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_10_2_1_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_2_2_4_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_components_2_2_1_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_15_9_8_vue_loader_lib_index_js_vue_loader_options_map_vue_vue_type_style_index_0_id_5064c234_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_4_3_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_9_8_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_10_2_1_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_2_2_4_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_components_2_2_1_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_15_9_8_vue_loader_lib_index_js_vue_loader_options_map_vue_vue_type_style_index_0_id_5064c234_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
  37. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_4_3_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_9_8_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_10_2_1_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_2_2_4_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_components_2_2_1_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_15_9_8_vue_loader_lib_index_js_vue_loader_options_map_vue_vue_type_style_index_0_id_5064c234_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_4_3_0_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_15_9_8_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_10_2_1_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_2_2_4_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_components_2_2_1_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_15_9_8_vue_loader_lib_index_js_vue_loader_options_map_vue_vue_type_style_index_0_id_5064c234_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  38. /***/ }),
  39. /***/ 284:
  40. /***/ (function(module, exports, __webpack_require__) {
  41. // Imports
  42. var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3);
  43. var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
  44. // Module
  45. ___CSS_LOADER_EXPORT___.push([module.i, ".col_red[data-v-5064c234]{color:#f11111}.col_green[data-v-5064c234]{color:#44be95}.col_white[data-v-5064c234]{color:#fff}.flex-col[data-v-5064c234]{flex-direction:column}.flex-j-c[data-v-5064c234]{justify-content:center}.flex-j-sb[data-v-5064c234]{justify-content:space-between}.flex-j-ar[data-v-5064c234]{justify-content:space-around}.flex-a-c[data-v-5064c234]{align-items:center}.flex-a-e[data-v-5064c234]{align-items:flex-end}.w[data-v-5064c234]{width:1200px}.m-auto[data-v-5064c234]{margin:0 auto}.height-one[data-v-5064c234]{height:100%}.flex[data-v-5064c234]{display:flex}.text-overflow[data-v-5064c234]{-webkit-line-clamp:4}.text-overflow[data-v-5064c234],.text-overflow-2[data-v-5064c234]{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.text-overflow-2[data-v-5064c234]{-webkit-line-clamp:2}.text-overflow-3[data-v-5064c234]{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.overflow-hide[data-v-5064c234],.text-overflow-3[data-v-5064c234]{overflow:hidden;text-overflow:ellipsis}.overflow-hide[data-v-5064c234]{white-space:nowrap}.hiddenScroll[data-v-5064c234]{scrollbar-width:none;-ms-overflow-style:none;overflow-x:hidden;overflow-y:scroll}.hiddenScroll[data-v-5064c234]::-webkit-scrollbar{display:none}.finger-point[data-v-5064c234]{cursor:pointer}.cursor-default[data-v-5064c234]{cursor:default}.el-icon-circle-close[data-v-5064c234]{color:#fff}#map-wrapper[data-v-5064c234]{width:100%;height:45vh}", ""]);
  46. // Exports
  47. module.exports = ___CSS_LOADER_EXPORT___;
  48. /***/ }),
  49. /***/ 285:
  50. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  51. "use strict";
  52. __webpack_require__.r(__webpack_exports__);
  53. /* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_4_3_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_15_9_8_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_2_2_1_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_15_9_8_vue_loader_lib_index_js_vue_loader_options_map_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(258);
  54. /* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_4_3_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_15_9_8_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_2_2_1_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_15_9_8_vue_loader_lib_index_js_vue_loader_options_map_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_4_3_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_15_9_8_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_2_2_1_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_15_9_8_vue_loader_lib_index_js_vue_loader_options_map_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__);
  55. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_4_3_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_15_9_8_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_2_2_1_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_15_9_8_vue_loader_lib_index_js_vue_loader_options_map_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_4_3_0_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_15_9_8_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_3_0_0_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_2_2_1_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_15_9_8_vue_loader_lib_index_js_vue_loader_options_map_vue_vue_type_style_index_1_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  56. /***/ }),
  57. /***/ 286:
  58. /***/ (function(module, exports, __webpack_require__) {
  59. // Imports
  60. var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3);
  61. var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
  62. // Module
  63. ___CSS_LOADER_EXPORT___.push([module.i, ".amap-sug-result{z-index:2500}", ""]);
  64. // Exports
  65. module.exports = ___CSS_LOADER_EXPORT___;
  66. /***/ }),
  67. /***/ 367:
  68. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  69. "use strict";
  70. // ESM COMPAT FLAG
  71. __webpack_require__.r(__webpack_exports__);
  72. // CONCATENATED MODULE: ./node_modules/_vue-loader@15.9.8@vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/_@nuxt_components@2.2.1@@nuxt/components/dist/loader.js??ref--0-0!./node_modules/_vue-loader@15.9.8@vue-loader/lib??vue-loader-options!./components/microHome/map.vue?vue&type=template&id=5064c234&scoped=true&
  73. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{staticClass:"dialog-images-manager",attrs:{"title":"选择坐标","visible":_vm.visible,"width":"960px"},on:{"close":_vm.handle_cancel}},[_c('div',{staticStyle:{"height":"50vh","overflow":"auto"}},[_c('el-input',{staticStyle:{"width":"80%","margin-bottom":"10px","margin-right":"10px"},attrs:{"id":"tipinput","placeholder":"请输入关键字搜索地址"},model:{value:(_vm.keywords),callback:function ($$v) {_vm.keywords=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:"keywords"}}),_vm._v(" "),_c('el-button',{staticStyle:{"width":"90px"},attrs:{"type":"primary"},on:{"click":function($event){$event.stopPropagation();return _vm.search.apply(null, arguments)}}},[_vm._v("搜索")]),_vm._v(" "),_c('div',{attrs:{"id":"map-wrapper"}})],1),_vm._v(" "),_c('span',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c('el-button',{on:{"click":_vm.handle_cancel}},[_vm._v("取 消")]),_vm._v(" "),_c('el-button',{attrs:{"type":"primary"},on:{"click":_vm.handle_confirm}},[_vm._v("确 定")])],1)])}
  74. var staticRenderFns = []
  75. // CONCATENATED MODULE: ./components/microHome/map.vue?vue&type=template&id=5064c234&scoped=true&
  76. // CONCATENATED MODULE: ./node_modules/_babel-loader@8.2.3@babel-loader/lib??ref--2-0!./node_modules/_@nuxt_components@2.2.1@@nuxt/components/dist/loader.js??ref--0-0!./node_modules/_vue-loader@15.9.8@vue-loader/lib??vue-loader-options!./components/microHome/map.vue?vue&type=script&lang=js&
  77. //
  78. //
  79. //
  80. //
  81. //
  82. //
  83. //
  84. //
  85. //
  86. //
  87. //
  88. //
  89. //
  90. //
  91. //
  92. //
  93. //
  94. //
  95. //
  96. //
  97. //
  98. //
  99. // 拖拽
  100. /* harmony default export */ var mapvue_type_script_lang_js_ = ({
  101. name: 'map-choose',
  102. data() {
  103. return {
  104. location: {
  105. address: '地址',
  106. lng: "",
  107. lat: "",
  108. city: ""
  109. },
  110. keywords: '',
  111. visible: false,
  112. placeSearch: null,
  113. map: null
  114. };
  115. },
  116. watch: {},
  117. mounted() {},
  118. methods: {
  119. initMap() {
  120. let that = this;
  121. if (this.location.lng) {
  122. this.map = new AMap.Map('map-wrapper', {
  123. resizeEnable: true,
  124. //是否监控地图容器尺寸变化
  125. zoom: 15,
  126. //指定缩放级别
  127. viewMode: '3D',
  128. center: [this.location.lng, this.location.lat] //初始化地图中心点
  129. });
  130. } else {
  131. this.map = new AMap.Map('map-wrapper', {
  132. resizeEnable: true,
  133. //是否监控地图容器尺寸变化
  134. zoom: 10,
  135. //指定缩放级别
  136. viewMode: '3D'
  137. });
  138. } //经纬度转地址 逆地址解析
  139. var geocoder = new AMap.Geocoder({
  140. radius: 1000 //范围,默认:500
  141. });
  142. AMap.plugin(['AMap.ControlBar'], () => {
  143. // 添加 3D 罗盘控制
  144. this.map.addControl(new AMap.ControlBar());
  145. }); // 创建一个 Marker 实例:
  146. var marker = new AMap.Marker({
  147. position: new AMap.LngLat(116.39, 39.9),
  148. // icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png',
  149. // 设置是否可以拖拽
  150. draggable: true,
  151. cursor: 'move' // 设置拖拽效果
  152. // raiseOnDrag: true
  153. // title: '北京'
  154. }); // 将创建的点标记添加到已有的地图实例:
  155. this.map.add(marker);
  156. this.map.on('click', ev => {
  157. // 触发事件的对象
  158. // var target = ev.target;
  159. // 触发事件的地理坐标,AMap.LngLat 类型
  160. // var lnglat = ev.lnglat;
  161. // 触发事件的像素坐标,AMap.Pixel 类型
  162. // var pixel = ev.pixel;
  163. // 触发事件类型
  164. // var type = ev.type;
  165. that.location.lng = ev.lnglat.lng;
  166. that.location.lat = ev.lnglat.lat;
  167. marker.setPosition([ev.lnglat.lng, ev.lnglat.lat]); //更新点标记位置
  168. geocoder.getAddress([ev.lnglat.lng, ev.lnglat.lat], function (status, result) {
  169. if (status === 'complete' && result.regeocode) {
  170. // console.log(result.regeocode.addressComponent)
  171. that.location.city = result.regeocode.addressComponent.city || result.regeocode.addressComponent.province;
  172. that.location.address = result.regeocode.formattedAddress; // console.log(that.location,'click')
  173. } else {
  174. that.location.city = "";
  175. that.location.address = '';
  176. console.error('根据经纬度查询地址失败');
  177. }
  178. }); // console.log(target,lnglat,pixel,type)
  179. });
  180. marker.on('dragend', showInfoM);
  181. function showInfoM(e) {
  182. // console.log(e,'您拖拽了marker!')
  183. that.location.lng = e.lnglat.lng;
  184. that.location.lat = e.lnglat.lat;
  185. geocoder.getAddress([e.lnglat.lng, e.lnglat.lat], function (status, result) {
  186. if (status === 'complete' && result.regeocode) {
  187. that.location.city = result.regeocode.addressComponent.city || result.regeocode.addressComponent.province;
  188. that.location.address = result.regeocode.formattedAddress; // console.log(that.location,'dragend')
  189. } else {
  190. that.location.address = '';
  191. console.error('根据经纬度查询地址失败');
  192. }
  193. });
  194. } //输入提示
  195. var autoOptions = {
  196. input: "tipinput"
  197. };
  198. var auto = new AMap.Autocomplete(autoOptions);
  199. this.placeSearch = new AMap.PlaceSearch({
  200. map: this.map
  201. }); //构造地点查询类
  202. AMap.event.addListener(auto, "select", this.select); //注册监听,当选中某条记录时会触发
  203. AMap.event.addListener(this.placeSearch, 'markerClick', function (e) {
  204. that.map.remove(marker); // console.log(e.data,"e.data")
  205. that.location.lng = e.data.location.lng;
  206. that.location.lat = e.data.location.lat;
  207. that.location.city = e.data.cityname || e.data.pname;
  208. that.location.address = e.data.pname + e.data.cityname + e.data.adname + e.data.address; // console.log(that.location,'markerClick')
  209. });
  210. },
  211. select(e) {
  212. this.placeSearch.setCity(e.poi.adcode);
  213. this.placeSearch.search(e.poi.name); //关键字查询查询
  214. },
  215. search() {
  216. this.placeSearch.search(this.keywords, function (status, result) {// 搜索成功时,result即是对应的匹配数据
  217. // console.log(status,result)
  218. });
  219. },
  220. destroyMap() {
  221. this.map && this.map.destroy();
  222. },
  223. show(location) {
  224. this.visible = true;
  225. if (location) {
  226. this.location = location;
  227. } // 延迟1秒让弹窗初始化地图
  228. setTimeout(() => {
  229. this.initMap();
  230. }, 1000);
  231. },
  232. /**
  233. * 弹窗按钮 - 确认
  234. */
  235. handle_confirm() {
  236. this.$emit('confirm', this.location);
  237. this.destroyMap();
  238. this.visible = false;
  239. },
  240. /**
  241. * 弹窗按钮 - 取消
  242. */
  243. handle_cancel() {
  244. this.destroyMap();
  245. this.visible = false;
  246. }
  247. }
  248. });
  249. // CONCATENATED MODULE: ./components/microHome/map.vue?vue&type=script&lang=js&
  250. /* harmony default export */ var microHome_mapvue_type_script_lang_js_ = (mapvue_type_script_lang_js_);
  251. // EXTERNAL MODULE: ./node_modules/_vue-loader@15.9.8@vue-loader/lib/runtime/componentNormalizer.js
  252. var componentNormalizer = __webpack_require__(2);
  253. // CONCATENATED MODULE: ./components/microHome/map.vue
  254. function injectStyles (context) {
  255. var style0 = __webpack_require__(283)
  256. if (style0.__inject__) style0.__inject__(context)
  257. var style1 = __webpack_require__(285)
  258. if (style1.__inject__) style1.__inject__(context)
  259. }
  260. /* normalize component */
  261. var component = Object(componentNormalizer["a" /* default */])(
  262. microHome_mapvue_type_script_lang_js_,
  263. render,
  264. staticRenderFns,
  265. false,
  266. injectStyles,
  267. "5064c234",
  268. "cf0893be"
  269. )
  270. /* harmony default export */ var map = __webpack_exports__["default"] = (component.exports);
  271. /***/ })
  272. };;
  273. //# sourceMappingURL=micro-home-map.js.map