From 60e16bd5406c4cbdf61bf20a50e8e1b49a45b2aa Mon Sep 17 00:00:00 2001 From: quanyawei <401863037@qq.com> Date: Fri, 06 Sep 2024 11:14:59 +0800 Subject: [PATCH] Merge branch 'feature_1.0' --- src/components/map/pickCoordinate1.vue | 196 +++++++++++++++++++++++------------------------- 1 files changed, 95 insertions(+), 101 deletions(-) diff --git a/src/components/map/pickCoordinate1.vue b/src/components/map/pickCoordinate1.vue index 8016aba..255a951 100644 --- a/src/components/map/pickCoordinate1.vue +++ b/src/components/map/pickCoordinate1.vue @@ -1,22 +1,15 @@ <template> - <a-modal - title="������������" - destroyOnClose - :visible="true" - @ok="addLonAndLat" - @cancel="handleMapCancel" - okText="������" - class="modalStyle" - > + <a-modal title="������������" destroyOnClose :visible="true" @ok="addLonAndLat" @cancel="handleMapCancel" okText="������" + class="modalStyle"> <div> <div style="display: flex"> <div style="display: flex; width: 300px"> <div>���������</div> - <a-input + <!-- <a-input placeholder="���������������" id="tipinput" style="width: 160px; height: 26px" - ></a-input> + ></a-input> --> <!-- <a-input v-model="input" placeholder="���������������" @@ -24,6 +17,15 @@ style="width: 160px; height: 26px" @change="searchMap" ></a-input> --> + <input v-model="input" id="tipinput" /><button @click="searchAddress" style=" + background-color: #1890ff; + color: white; + border: none; + margin-left: 5px; + "> + ������ + </button> + <div id="panel"></div> <!-- <a-button size="small" type="primary" @@ -40,34 +42,19 @@ <!-- <a-input style="width: 160px; height: 26px" @focus="selectPoi" /> --> </div> <div> - <span style="margin-left: 25px">���������</span - ><a-input - v-model="clickPoint[0]" - style="display: inline; width: 160px; height: 26px" - /> + <span style="margin-left: 25px">���������</span><a-input v-model="clickPoint[0]" + style="display: inline; width: 160px; height: 26px" /> </div> <div> - <span style="margin-left: 25px">���������</span - ><a-input - v-model="clickPoint[1]" - style="display: inline; width: 160px; height: 26px" - /> + <span style="margin-left: 25px">���������</span><a-input v-model="clickPoint[1]" + style="display: inline; width: 160px; height: 26px" /> </div> </div> - <el-amap - ref="map" - :center="clickPoint" - :events="{ click: mapClick }" - :zoom="zoom" - :scroll-wheel-zoom="true" - style="height: 400px; width: 100%; margin-top: 20px" - > - <el-amap-marker - :position="clickPoint" - animation="AMAP_ANIMATION_BOUNCE" - :dragging="true" - ></el-amap-marker> + <el-amap ref="map" :center="clickPoint" :events="{ click: mapClick }" :zoom="zoom" :scroll-wheel-zoom="true" + style="height: 400px; width: 100%; margin-top: 20px" id="amap"> + <el-amap-marker :position="clickPoint" animation="AMAP_ANIMATION_BOUNCE" :dragging="true"></el-amap-marker> </el-amap> + <!-- :scroll-wheel-zoom="true"--> <!-- <baidu-map :center="center" @@ -104,14 +91,16 @@ } from 'vue-property-decorator'; import any = jasmine.any; import { get, post } from "@/util/request"; +import $ from 'jquery' +import func from 'vue-temp/vue-editor-bridge'; @Component({ }) export default class PickCoordinate extends Vue { private center: any = [ - 120.726838, - 31.3421 + 120.726838, + 31.3421 ] @Prop({ type: String, @@ -127,18 +116,18 @@ private keyword: string = '' private zoom = 19 - private searchOption:any={ - city: '������', - citylimit: false + private searchOption: any = { + city: '������', + citylimit: false } - @Watch('clickPoint', {deep: true, immediate: true},) + @Watch('clickPoint', { deep: true, immediate: true },) private monitorMapFlag(newVal: any, oldVal: any) { - console.log(newVal,'newVal'); - this.center= [newVal.lng,newVal.lat] + console.log(newVal, 'newVal'); + this.center = [newVal.lng, newVal.lat] } - private num1:any=1 + private num1: any = 1 - @Watch('lnglat', {deep: true, immediate: true}) + @Watch('lnglat', { deep: true, immediate: true }) private lnglatWatch(newVal: any, oldVal: any) { console.log('------------'); console.log(newVal); @@ -146,68 +135,57 @@ // this.center.lat = newVal.lat } private created() { - console.log(this.clickPoint,'clickPoint'); + // console.log(this.clickPoint,'clickPoint'); } - // ��������������� - // private handler({BMap, map}) { - // this.center.lng = this.typeOperation === 'add' ? '120.726838' : this.lnglat.split(',')[1] - // this.center.lat = this.typeOperation === 'add' ? '31.3421' : this.lnglat.split(',')[0] - // this.zoom = 19 + private input: any = '' + private mark: any = '' - // } - private selectPoi(e){ - console.log(e); - let poi = e - if (poi.length > 0) { - this.clickPoint = [poi[0].lng, poi[0].lat] - } - } - private input:any='' - private mark:any='' - private searchMap(){ - var autoOptions = { - input: "tipinput" - }; - var auto = new AMap.AutoComplete(autoOptions); - const placeSearch = new AMap.PlaceSearch(this.input); - console.log(window); - auto.on("select", select);//������������������������������������������������ - function select(e) { - console.log(e.poi.adcode); - placeSearch.setCity(e.poi.adcode); - placeSearch.search(e.poi.name); //��������������������� - } - - // ��������������� - // console.log(this.input); - // placeSearch.search(this.input, (status, result) => { - // // ������������������result������������������POI������ - - // console.log(result);//��������������������������������������������������������������������������� - // }); - // // ������������������������ - // AMap.event.addListener(placeSearch, "selectChanged", (SelectChangeEvent) => { - // // ������������������������������������������ - // this.mark = SelectChangeEvent.selected.data; - // console.log(SelectChangeEvent.selected.data,'������'); - // }); - + private searchAddress() { + var map = new AMap.Map("amap", { + resizeEnable: true + }); + var placeSearch = new AMap.PlaceSearch({ + pageSize: 5, // ������������������������ + pageIndex: 1, // ������ + city: "������", // ��������������� + citylimit: false, //��������������������������������������������� + panel: "panel", // ��������������������������������������������� + map: map, // ��������������������������� + autoFitView: true // ������������������������������������������ Marker��������������������������������� + }); + //��������������� + placeSearch.search(this.input) + var salf = this + var markerone = 0 + map.on('click', click); + function click(e) { + if (markerone === 1) { + map.remove(map.Marker) + } + salf.mapClick(e) + map.Marker = new AMap.Marker({ + map: map, + position: salf.clickPoint, + animation: "AMAP_ANIMATION_BOUNCE" + }) + markerone = 1 + } } // ��������������������������� - private clickPoint: any = this.lnglat === '' ? [ - 120.720262, - 31.335757 - ] : [ - this.lnglat.split(',')[1], - this.lnglat.split(',')[0] + private clickPoint: any = this.lnglat === '' ? [ + 120.720262, + 31.335757 + ] : [ + this.lnglat.split(',')[1], + this.lnglat.split(',')[0] ] private mapClick(e: any) { - const { lng, lat } = e.lnglat - this.clickPoint=[ lng, lat] - this.$forceUpdate() - // console.log(this.clickPoint); + // console.log(e); + const { lng, lat } = e.lnglat + this.clickPoint = [lng, lat] + console.log(this.clickPoint); } private handleMapCancel() { @@ -233,13 +211,13 @@ @Emit('sendLonLat') private sendLonLat(lonLat: any) { - console.log(lonLat,'jia'); + console.log(lonLat, 'jia'); return lonLat; } @Emit('editLonLat') private editLonLat(lonLat: any) { - console.log(lonLat,'gai'); + console.log(lonLat, 'gai'); return lonLat; } } @@ -250,27 +228,43 @@ .ant-modal { margin-left: 25%; } + .ant-modal-content { width: 800px; } } + .BMap_cpyCtrl, .anchorBL { display: none; } + /* ���������������������logo */ /deep/.amap-logo { display: none; opacity: 0 !important; } + /deep/.amap-copyright { opacity: 0; } + .amap-sug-result { position: absolute; - z-index: 9999 !important;; + z-index: 9999 !important; background-color: #fefefe; border: 1px solid #d1d1d1; bottom: auto; } + +#panel { + z-index: 999; + position: absolute; + background-color: white; + max-height: 100%; + overflow-y: auto; + left: 25px; + width: 280px; + top: 126px; +} </style> -- Gitblit v1.8.0