From c44f0ab61e6ca562baa6832cb4494900653f4c78 Mon Sep 17 00:00:00 2001 From: 杨磊 <505174330@qq.com> Date: 星期五, 17 五月 2024 22:17:26 +0800 Subject: [PATCH] 11 --- src/pages/territory/territory.vue | 131 ++++++++++++++++++++++++++++--------------- 1 files changed, 86 insertions(+), 45 deletions(-) diff --git a/src/pages/territory/territory.vue b/src/pages/territory/territory.vue index 5337057..bf31e36 100644 --- a/src/pages/territory/territory.vue +++ b/src/pages/territory/territory.vue @@ -11,6 +11,7 @@ placehold="杈撳叆濮撳悕/鍒悕/鏈濅唬/浼犱富鑱屼笟鎼滅储" @onSearch="onSearch" :isAvancedTrue="false" + :keyword="keyword" /> <ul class="flex"> <li style="" v-for="(item, index) in dynasty" :key="item.id"> @@ -77,9 +78,14 @@ </div> <view class="" style="overflow: auto; height: 2.5rem"> <ul class="information" v-for="(item, index) in SearchArr" :key="index"> - <li style="font-size: 0.18rem; font-weight: 700">{{ item.name }}</li> - <li>鐢熷崚骞�: {{ item.birthAndDeath }}</li> - <li>鏉ユ簮: {{ item.source }}</li> + <li style="font-size: 0.18rem; font-weight: 700"> + {{ item.name ? item.name : "-" }} + </li> + <li> + 鐢熷崚骞�: + {{ item.birthAndDeath ? item.birthAndDeath : "-" }} + </li> + <li>鏉ユ簮: {{ item.source ? item.source : "-" }}</li> <li v-if="SearchArr.length - 1 !== index" style="margin: 0.1rem 0; border-bottom: 1px solid #d8d8d8" @@ -100,7 +106,9 @@ :style="{ top: isTop, left: isLeft }" > <div slot="header" class="clearfix"> - <span>{{ information[0].content }}</span> + <span v-if="currentMark">{{ + currentMark.name ? currentMark.name : "-" + }}</span> <el-button style=" float: right; @@ -113,10 +121,17 @@ >鍏抽棴</el-button > </div> - <ul class="information"> - <li v-for="(item, index) in information" :key="index"> - {{ item.label }}: {{ item.content }} + <ul class="information" v-if="currentMark"> + <li> + 濮撳悕: + {{ currentMark.name ? currentMark.name : "-" }} </li> + <li>鍒悕: {{ currentMark.nikeName ? currentMark.nikeName : "-" }}</li> + <li> + 绫嶈疮: {{ currentMark.nativePlace ? currentMark.nativePlace : "-" }} + </li> + <li>鍖诲鍒嗙: {{ currentMark.barnch ? currentMark.barnch : "-" }}</li> + <li>灏忎紶: {{ currentMark.medical ? currentMark.medical : "-" }}</li> </ul> <el-button class="flex" @@ -178,10 +193,12 @@ import * as echarts from "echarts"; import "echarts/extension/bmap/bmap"; import "leaflet.chinatmsproviders"; +import { getRetrieval } from "@/api/index.js"; export default { data() { return { // echarts鍏冪礌鐐瑰嚮鏃跺嚭鏉ョ殑寮圭獥鍜屽潗鏍� + keyword: "", isEchTrue: false, isLeft: 0, isTop: 0, @@ -330,6 +347,7 @@ ], // 鎼滅储鍚庢槸鍚︽樉绀哄脊妗� isSearch: false, + currentMark: null, SearchArr: [ { id: 1, @@ -356,16 +374,40 @@ // this.innt(); // }); // }) - this.initMap(); + this.getDataList(); }, methods: { + getDataList() { + getRetrieval({ keyword: this.keyword, dynasty: "" }).then((res) => { + let markerList = []; + const listData = res.object.personList; + for (let i = 0; i < listData.length; i++) { + const item = listData[i]; + if (item.NATIVE_PLACE?.length > 0) { + item.NATIVE_PLACE.forEach((citem) => { + if (citem.xCoord && citem.yCoord) { + markerList.push({ ...citem, ...item }); + } + }); + } + } + this.initMap(markerList); + this.SearchArr = markerList.map((item) => ({ + birthAndDeath: item?.BIRTH_YEAR[0]?.content1 ? + item?.BIRTH_YEAR[0]?.content1 + "-" + item?.DEATH_YEAR[0]?.content1 :'-', + name: item?.NAME[0]?.content1, + source: "-", + })); + console.log(markerList, "markerList"); + }); + }, //鍒濆鍖栧湴鍥� - initMap() { + initMap(markerList) { var map = L.map("map", { attributionControl: false, preferCanvas: true, withPopup: L.latLng(34.261, 108.96), - }).setView([39.91667, 116.41667], 4); + }).setView([39.91667, 116.41667], 3); L.tileLayer .chinaProvider("TianDiTu.Normal.Map", { @@ -374,46 +416,42 @@ // minZoom: 5, }) .addTo(map); - + this.map = map; let DefaultIcon1 = L.icon({ iconUrl: this.icoName, iconSize: [24, 41], // 鍥炬爣鐨勫ぇ灏� 銆愬��1锛屽��2銆� 涓哄叿浣撲綘鑷畾涔夊浘鏍囩殑灏哄锛屾瘮濡傛垜鍥炬爣灏哄鏄�32脳52锛岃〃绀鸿鍥炬爣锛氬搴�32鍍忕礌锛岄珮搴︼細52鍍忕礌锛岄偅涔堝��1:灏辨槸32锛屽��2锛氬氨鏄�52 iconAnchor: [24, 41], // 鍥炬爣灏嗗搴旀爣璁扮偣鐨勪綅缃� 杩欎釜鏄噸鐐癸紝 銆愬��1锛屽��2銆戯紝鍊�1锛氫负鍥炬爣鍧愭爣绗竴涓��(鍗�32)鐨勪竴鍗婏紝鍊�2锛氫负鍥炬爣鍧愭爣绗簩涓��(鍗�52) popupAnchor: [1, -24], // 璇ョ偣鏄浉瀵逛簬iconAnchor寮瑰嚭淇℃伅鐨勪綅缃� 杩欎釜鏄垜鎵嬪姩璋冨嚭鏉ョ殑锛屾枃妗i粯璁ゅ師濮嬪�兼槸[-1锛�-76]锛屾垜鏄幓涓�鍗婂�硷紝鍙栦竴鍗婂�艰皟鍑烘潵鐨� }); - const marker1 = L.marker([34.261, 108.96], { - icon: DefaultIcon1, - }).addTo(map); - L.marker([39.90609, 116.38543], { - icon: DefaultIcon1, - }) - .addTo(map) - .bindPopup(this.popContent); //鍖椾含 - L.marker([29.55546, 106.5448], { - icon: DefaultIcon1, - }).addTo(map); // 閲嶅簡 - L.marker([30.56781, 114.30222], { - icon: DefaultIcon1, - }).addTo(map); //婀栧寳 - L.marker([18.23522, 109.51085], { - icon: DefaultIcon1, - }).addTo(map); //娴峰崡 - marker1.on("click", (e) => { - this.isEchTrue = true; - console.log(document.querySelector(".echartsTrue").offsetWidth); - console.log(document.querySelector(".echartsTrue").offsetHeight); - this.$nextTick(() => { - this.isTop = - e.containerPoint.y - - document.querySelector(".echartsTrue").offsetHeight / 2 + - "px"; - this.isLeft = - e.containerPoint.x - - document.querySelector(".echartsTrue").offsetWidth / 2 + - "px"; - }); - }); + if (markerList.length) { + for (let i = 0; i < markerList.length; i++) { + const item = markerList[i]; + const temp_mark = L.marker([item.yCoord, item.xCoord], { + icon: DefaultIcon1, + }).addTo(map); + temp_mark.on("click", (e) => { + this.isEchTrue = true; + this.currentMark = { + name: item?.WEAK_NAME[0]?.content1, + nikeName: item?.ALIAS[0]?.content2, + nativePlace: item?.content1, + barnch: item?.MEDICAL_BRANCH[0]?.content1, + medical: item?.MEDICAL_EXPERTISE[0]?.content1, + }; + this.$nextTick(() => { + this.isTop = + e.containerPoint.y - + document.querySelector(".echartsTrue").offsetHeight / 2 + + "px"; + this.isLeft = + e.containerPoint.x - + document.querySelector(".echartsTrue").offsetWidth / 2 + + "px"; + }); + }); + } + } }, // 鐐瑰嚮涓嬮潰鐨勬湞浠f寜閽� @@ -422,9 +460,11 @@ this.dynasty1Color = id; }, onSearch(val) { - console.log(val); - // this.isSearch = true; + this.keyword = val.text; + this.map.invalidateSize(); + + this.getDataList(); }, // 鐐瑰嚮涓婇潰鐨勬湞浠f寜閽� SchoolClick(id) { @@ -565,5 +605,6 @@ width: 100%; margin: 0 auto; font-size: 14px !important; + z-index: -1 !important; } </style> -- Gitblit v1.9.1