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 | 179 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 92 insertions(+), 87 deletions(-) diff --git a/src/pages/territory/territory.vue b/src/pages/territory/territory.vue index 8e94f77..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" @@ -177,10 +192,13 @@ import L from "leaflet"; 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, @@ -329,6 +347,7 @@ ], // 鎼滅储鍚庢槸鍚︽樉绀哄脊妗� isSearch: false, + currentMark: null, SearchArr: [ { id: 1, @@ -355,101 +374,84 @@ // 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() { - // var map = L.map("map", { - - // center: [34.26, 108.96], - - // zoom: 4, - - // maxZoom: 18, //鏈�澶х缉鏀惧眰绾� - - // minZoom: 1, //鏈�灏忕缉鏀惧眰绾� - - // tileSize: 256, //鍒囩墖澶у皬 - - // attributionControl: false, // 绉婚櫎鍙充笅瑙抣eaflet鏍囪瘑 - - // zoomControl: false, //绂佺敤 + - 鎸夐挳 - - // maxBounds: bounds, //璁剧疆杈圭晫 - - // preferCanvas: true, //榛樿浣跨敤svg娓叉煋锛岃缃甤anvas娓叉煋 - - // doubleClickZoom: false, //鍏抽棴鍙屽嚮缂╂斁 - - // // dragging: false, //榧犳爣绉诲姩浜嬩欢 - // }); + initMap(markerList) { var map = L.map("map", { attributionControl: false, preferCanvas: true, withPopup: L.latLng(34.261, 108.96), - }).setView([39.91667, 116.41667], 4); - - // L.tileLayer( - // "http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}" - // ).addTo(map); - L.tileLayer( - "http://t0.tianditu.gov.cn/vec_c/wmts?tk=36ef7d20eba483627b043f0909c493ee" - ).addTo(map); + }).setView([39.91667, 116.41667], 3); L.tileLayer - .wmts( - "http://t{s}.tianditu.gov.cn/vec_c/wmts?tk=36ef7d20eba483627b043f0909c493ee", - { - layer: "vec", // 鐭㈤噺鍥惧眰 - style: "default", - tilematrixset: "c", // 缂╂斁绾у埆 - format: "tiles", - attribution: "Map Data © 2023 Tencent", - subdomains: ["0", "1", "2", "3", "4", "5", "6", "7"], - } - ) + .chinaProvider("TianDiTu.Normal.Map", { + key: "76bc34ead7e30e663a4eded8aeaf5860", + // maxZoom: 18, + // 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寜閽� @@ -458,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) { @@ -601,5 +605,6 @@ width: 100%; margin: 0 auto; font-size: 14px !important; + z-index: -1 !important; } </style> -- Gitblit v1.9.1