From 3efb4b13a0c22332f75b48af4015541d6833c1fe Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期三, 29 五月 2024 11:17:20 +0800 Subject: [PATCH] 人物详情 --- src/pages/character/detail.vue | 386 ++++++++++++++++++++++++++++++++----------------------- 1 files changed, 224 insertions(+), 162 deletions(-) diff --git a/src/pages/character/detail.vue b/src/pages/character/detail.vue index e1e94ec..70367fd 100644 --- a/src/pages/character/detail.vue +++ b/src/pages/character/detail.vue @@ -73,12 +73,17 @@ <view id="copyBox" class="fz font-family" + :title="biogData.length ? biogData[0].content : ''" style=" - font-size: 0.13rem; + font-size: 0.14rem; font-weight: normal; - line-height: 0.2rem; + line-height: 2; letter-spacing: 0.03rem; cursor: pointer; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 4; + overflow: hidden; " > {{ biogData.length ? biogData[0].content : "-" }} @@ -94,8 +99,8 @@ <img src="@/static/image/yinyong.png" alt="" />寮曠敤</el-button > </view> - <!-- v-if="biogData.length > 1" --> <view + v-if="biogData.length > 1" style="font-size: 0.12rem; color: #244a7b; cursor: pointer" @click="ProfileClick" >闃呰鏇村></view @@ -154,6 +159,7 @@ <span>鏃剁┖鍦板浘</span> <!-- <el-button icon="el-icon-rank" style="float: right; padding: 3px 0" type="text"></el-button> --> <img + v-if="markerList && markerList.length > 0" src="@/static/image/fangda.png" @click="fangdaClick(2)" style="width: 0.18rem; height: 0.18rem; cursor: pointer" @@ -162,7 +168,19 @@ <view id="spaceTime" style="height: 1.51rem; width: 100%; position: relative" - ></view> + > + <p + v-if="markerList && markerList.length == 0" + style=" + margin-top: 0.5rem; + color: #666; + text-align: center; + font-size: 12px; + " + > + 鏆傛棤鏁版嵁 + </p> + </view> </el-card> <el-card style="width: 100%; height: 2.06rem"> <div @@ -309,7 +327,7 @@ {{ "[" + Number(index + 1) + "]" + item.achievementName }} </li> <div - v-if="personResearchList.length == 0" + v-if="!personResearchList || personResearchList.length == 0" style="color: #666; text-align: center; font-size: 16px" > 鏆傛棤鏁版嵁 @@ -323,7 +341,7 @@ <!-- 杩斿洖椤堕儴 --> <el-col style="position: absolute; bottom: 1rem; left: 1.2rem"> <el-button - style="width: 0.5rem; height: 0.5rem; font-size: 0.3rem" + style="font-size: 0.3rem" icon="el-icon-top" circle @click="scrollToTop" @@ -381,7 +399,7 @@ getPersonBiog, getPersonWritings, getPersonRelationAtSchool, - getSpaceTime, + getSpaceTime } from "@/api/index.js"; import { getImg } from "@/static/tool.js"; import L from "leaflet"; @@ -389,7 +407,7 @@ export default { components: { - Table1, + Table1 }, data() { return { @@ -410,60 +428,60 @@ tableColumns1: [ { prop: "a", - label: "姝d功鍚�", + label: "姝d功鍚�" }, { prop: "e", - label: "浣滆��", + label: "浣滆��" }, { prop: "b", - label: "钁椾綔骞�", + label: "钁椾綔骞�" }, { prop: "c", - label: "钁椾綔鏂瑰紡", + label: "钁椾綔鏂瑰紡" }, { prop: "d", - label: "鎬荤洰鍒嗙被", - }, + label: "鎬荤洰鍒嗙被" + } ], tableColumns2: [ { prop: "a", - label: "鍏崇郴浜�", + label: "鍏崇郴浜�" }, { prop: "b", - label: "鍏崇郴绫诲瀷", + label: "鍏崇郴绫诲瀷" }, { prop: "c", - label: "鑰冩嵁", + label: "鑰冩嵁" }, { prop: "d", - label: "鍑哄", - }, + label: "鍑哄" + } ], tableColumns3: [ { prop: "a", - label: "娲诲姩鏃堕棿鍖洪棿", + label: "娲诲姩鏃堕棿鍖洪棿" }, { prop: "b", - label: "娲诲姩鍚嶇О", + label: "娲诲姩鍚嶇О" }, { prop: "c", - label: "娲诲姩鍦扮偣", + label: "娲诲姩鍦扮偣" }, { prop: "d", - label: "娲诲姩鎻忚堪", - }, + label: "娲诲姩鎻忚堪" + } ], tableData1: [], tableData2: [], @@ -473,6 +491,7 @@ nodes: [], relationships: [], personResearchList: [], + markerList: [] }; }, onLoad(options) { @@ -507,7 +526,7 @@ }, methods: { copyText() { - const textToCopy = this.biogData[0].content + ";鏉ユ簮锛氫腑鍖诲尰瀛︿汉鐗╂暟鎹簱"; + const textToCopy = this.biogData[0].content + " 鏉ユ簮锛氫腑鍖诲尰瀛︿汉鐗╃煡璇嗗簱"; const textarea = document.createElement("textarea"); textarea.value = textToCopy; document.body.appendChild(textarea); @@ -516,7 +535,7 @@ document.body.removeChild(textarea); this.$message({ message: "澶嶅埗鎴愬姛锛�", - type: "success", + type: "success" }); }, toLink(item) { @@ -526,7 +545,7 @@ // 鍩烘湰淇℃伅 getPersonInfo({ id: this.detailId, - type: "PERSON_BASIC", + type: "PERSON_BASIC" }).then((res) => { const obj = {}; if ( @@ -548,25 +567,13 @@ //鐜颁唬鐮旂┒ getPersonInfo({ id: this.detailId, - type: "PERSON_RESEARCH", + type: "PERSON_RESEARCH" }).then((res) => { this.personResearchList = res.object.personResearchList; }); - getPersonRelationAtSchool({ - personId: this.detailId, - }).then((res) => { - // this.personRelationList = res.object.personRelationList; - // if (this.personRelationList.length) { - // this.tableData4 = this.personRelationList.map((f) => { - // return { - // a: f.nodeName, - // b: f.relationTypeName, - // }; - // }); - // } - }); + getWebBasic({ - personId: this.detailId, + personId: this.detailId }).then((res) => { const obj = res.object; if (obj.school) { @@ -581,16 +588,18 @@ // 娲诲姩骞磋氨 getPersonInfo({ id: this.detailId, - type: "PERSON_SPACE_TIME", + type: "PERSON_SPACE_TIME" }).then((res) => { - this.tableData5 = res.object.personSpaceTimeList.map((item) => { - return { - a: item.time, - b: item.activityName, - c: item.activityAddrOld, - d: item.desc, // 杩欓噷缂哄皯娲诲姩鎻忚堪瀛楁 - }; - }); + if (res.object.personSpaceTimeList) { + this.tableData5 = res.object.personSpaceTimeList.map((item) => { + return { + a: item.time, + b: item.activityName, + c: item.activityAddrOld, + d: item.desc // 杩欓噷缂哄皯娲诲姩鎻忚堪瀛楁 + }; + }); + } }); }, handleData(obj, sres) { @@ -599,39 +608,39 @@ list: [ { name: "鍒悕", - value: obj.alias || "-", + value: obj.alias || "-" }, { name: "瀛�", - value: obj.zi || "-", + value: obj.zi || "-" }, { name: "鍙�", - value: obj.hao || "-", + value: obj.hao || "-" }, { name: "鎵�澶勬椂鏈�", - value: obj.dynastyDesc || "-", + value: obj.dynastyDesc || "-" }, { name: "姘戞棌", - value: obj.ethnic || "-", - }, - ], + value: obj.ethnic || "-" + } + ] }, { list: [ { name: "绫嶈疮", - value: obj.native || "-", + value: obj.native || "-" }, { name: "鎬у埆", - value: obj.gender || "-", + value: obj.gender || "-" }, { name: "鑱屽畼", - value: obj.official || "-", + value: obj.official || "-" }, { name: "娴佹淳", @@ -641,45 +650,45 @@ sres.object.school_NAME && sres.object.school_NAME.length ? sres.object.school_NAME[0].content - : "-", + : "-" }, { name: "瀛︽湳鐗圭偣", - value: obj.features || "-", - }, - ], - }, + value: obj.features || "-" + } + ] + } ]; }, getSourceData() { getSource({ - personId: this.detailId, + personId: this.detailId }).then((res) => { this.sourceDataList = res.list; }); }, getImages() { getPersonImages({ - personId: this.detailId, + personId: this.detailId }).then((res) => { this.imageList = res.list.map((item) => getImg(item.filePath)); }); }, getBiog() { getPersonBiog({ - personId: this.detailId, + personId: this.detailId }).then((res) => { this.biogData = res.list.map((item) => { return { content: item.content1, - bookName: "銆�" + item.bookName + "銆� " + "P " + item.pageNo, // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚� + bookName: "銆�" + item.bookName + "銆� " + "P " + item.pageNo // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚� }; }); }); }, getWritings() { getPersonWritings({ - personId: this.detailId, + personId: this.detailId }).then((res) => { this.tableData1 = res.list.map((item) => { return { @@ -687,22 +696,71 @@ b: item.dynasty, c: item.writeWay, d: item.classify, - e: this.detailInfo.NAME, + e: this.detailInfo.NAME }; }); }); }, getRelationship() { + // getPersonRelationAtSchool({ + // personId: this.detailId, + // }).then((res) => { + // this.personRelationList = res.object.personRelationList; + // if (this.personRelationList.length) { + // this.tableData4 = this.personRelationList.map((f) => { + // return { + // a: f.nodeName, + // b: f.relationTypeName, + // }; + // }); + // } + // }); + // 绀句細鍏崇郴 + getPersonRelationAtSchool({ + personId: this.detailId, + relationSearchTypeEO: "SOCIAL" + }).then((res) => { + if (res.list && res.list.length) { + this.tableData4 = res.list.map((f) => { + return { + a: f.name1, + b: f.relationName + }; + }); + } + }); + // 浜插睘鍏崇郴 getPersonRelationAtSchool({ personId: this.detailId, relationSearchTypeEO: "KINSHIP" }).then((res) => { - // 杩欓噷鎺ュ彛鏈夐棶棰� + if (res.list && res.list.length) { + this.tableData2 = res.list.map((f) => { + return { + a: f.name1, + b: f.relationName + }; + }); + } + }); + // 甯堟壙鍏崇郴 + getPersonRelationAtSchool({ + personId: this.detailId, + relationSearchTypeEO: "INHERITANCE" + }).then((res) => { + if (res.list && res.list.length) { + this.tableData3 = res.list.map((f) => { + return { + a: f.name1, + b: f.relationName + }; + }); + } }); }, getMappingData(name) { getFuzzySearch({ - keyword: name, + keyword: name }).then((res) => { this.nodes = []; this.relationships = []; @@ -718,19 +776,19 @@ if (exists1 !== true) { this.nodes.push({ name: item.name1, - id: item.identifier1, + id: item.identifier1 }); } if (exists2 !== true) { this.nodes.push({ name: item.name2, - id: item.identifier2, + id: item.identifier2 }); } let obj = { source: item.name1, target: item.name2, - relation: item.relationName || "", // 濡傛灉瀛樺湪 relationName 瀛楁鍒欎娇鐢紝鍚﹀垯涓虹┖瀛楃涓� + relation: item.relationName || "" // 濡傛灉瀛樺湪 relationName 瀛楁鍒欎娇鐢紝鍚﹀垯涓虹┖瀛楃涓� }; this.relationships.push(obj); }); @@ -740,16 +798,20 @@ }, getMapInfo() { getSpaceTime({ - personId: this.detailId, + personId: this.detailId }).then((res) => { - const data = res.list.map((item) => { - return { - name: item.activityName, - value: [item.xcoord, item.ycoord], - }; - }); - // 鏃剁┖鍦板浘 - this.initMap(data[0]); + if (res.list && res.list.length) { + const data = res.list.map((item) => { + return { + name: item.activityName, + value: [item.xcoord, item.ycoord] + }; + }); + this.markerList = data; + // 鏃剁┖鍦板浘 + this.initMap(data[0]); + } + // loadBMap("1NJdwrI1CfT6lrykVhDkmWgsO6O2bjQK").then(() => { // this.spaceTime(data); // }); @@ -758,34 +820,34 @@ initMap(markerList) { var map = L.map("spaceTime", { preferCanvas: true, - attributionControl: false, + attributionControl: false }).setView([markerList.value[1], markerList.value[0]], 13); L.tileLayer .chinaProvider("TianDiTu.Normal.Map", { key: "76bc34ead7e30e663a4eded8aeaf5860", maxZoom: 18, - minZoom: 3, + minZoom: 3 }) .addTo(map); let icon = L.divIcon({ html: "<div class='map-circle-name ripple'></div>", iconSize: [80, 80], - className: "map-circle", + className: "map-circle" }); this.map = map; const temp_mark = L.marker([markerList.value[1], markerList.value[0]], { - icon: icon, + icon: icon }).addTo(map); }, // 鏀惧ぇ鍦板浘璺宠浆 fangdaClick(index) { if (index == 1) { uni.navigateTo({ - url: "/pages/character/index?keyword=" + this.detailInfo.NAME, + url: "/pages/character/index?keyword=" + this.detailInfo.NAME }); } else if (index == 2) { uni.navigateTo({ - url: "/pages/characterMap/characterMap?id=" + this.detailId, + url: "/pages/characterMap/characterMap?id=" + this.detailId }); } }, @@ -801,13 +863,13 @@ scrollToTop() { window.scrollTo({ top: 0, - behavior: "smooth", // 浣跨敤骞虫粦婊氬姩 + behavior: "smooth" // 浣跨敤骞虫粦婊氬姩 }); }, openFileClick(index) { let obj = { id: this.detailId, - type: "Person", + type: "Person" }; switch (index) { case 1: @@ -910,8 +972,8 @@ position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず // bottom: -(FontSize+10), z: 10, // 璁剧疆鏍囩鐨剒杞撮珮搴︼紝浣垮叾姣旇繛鎺ョ嚎鏇撮珮 - distance: -(Distance + 1), // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 - }, + distance: -(Distance + 1) // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 + } }); } } @@ -926,8 +988,8 @@ itemStyle: { color: "#eae0eb", // 鍙互鏍规嵁绱㈠紩璁剧疆涓嶅悓鐨勯鑹� borderWidth: BorderWidth, - borderColor: "#996f9f", - }, + borderColor: "#996f9f" + } }; }); var option; @@ -937,14 +999,14 @@ top: FontSize + 10, subtextStyle: { fontSize: FontSize, // 璁剧疆鍓爣棰樻枃瀛楀ぇ灏忎负 14px - color: "#2C2C2C", - }, + color: "#2C2C2C" + } }, backgroundColor: { type: "image", image: "/static/image/characterRelationBg.png", size: "100% 100%", // 鑳屾櫙鍥剧墖鐨勫昂瀵革紝鍙互鏄櫨鍒嗘瘮鎴栬�呭儚绱� - position: "center center", // 鑳屾櫙鍥剧墖鐨勪綅缃紝鍙互鏄� top, bottom, middle 鎴栬�呯櫨鍒嗘瘮 + position: "center center" // 鑳屾櫙鍥剧墖鐨勪綅缃紝鍙互鏄� top, bottom, middle 鎴栬�呯櫨鍒嗘瘮 }, tooltip: {}, animationDurationUpdate: 1500, @@ -958,7 +1020,7 @@ label: { show: true, color: "black", // 璁剧疆鑺傜偣鏂囧瓧棰滆壊涓洪粦鑹� - fontSize: FontSize, // 璁剧疆鏂囧瓧澶у皬 + fontSize: FontSize // 璁剧疆鏂囧瓧澶у皬 }, edgeSymbol: ["circle"], edgeSymbolSize: [4, 10], @@ -967,16 +1029,16 @@ lineStyle: { opacity: 0.9, width: 2, - curveness: 0.3, + curveness: 0.3 }, emphasis: { focus: "adjacency", lineStyle: { - width: 10, - }, - }, - }, - ], + width: 10 + } + } + } + ] }; // 灏嗙敓鎴愮殑杩炴帴绾挎坊鍔犲埌echarts鍥捐〃鐨刼ption涓� option.series[0].links = links; @@ -1000,10 +1062,10 @@ text: "", subtext: "", sublink: "", - left: "center", + left: "center" }, tooltip: { - trigger: "item", + trigger: "item" }, bmap: { center: data[0].value, @@ -1015,123 +1077,123 @@ featureType: "water", elementType: "all", stylers: { - color: "#86a1ac", - }, + color: "#86a1ac" + } }, { featureType: "land", elementType: "all", stylers: { - color: "#f1d99d", - }, + color: "#f1d99d" + } }, { featureType: "railway", elementType: "all", stylers: { - visibility: "off", - }, + visibility: "off" + } }, { featureType: "highway", elementType: "all", stylers: { - color: "#f1d99d", - }, + color: "#f1d99d" + } }, { featureType: "highway", elementType: "labels", stylers: { - visibility: "off", - }, + visibility: "off" + } }, { featureType: "arterial", elementType: "geometry", stylers: { - color: "#f1d99d", - }, + color: "#f1d99d" + } }, { featureType: "arterial", elementType: "geometry.fill", stylers: { - color: "#f1d99d", - }, + color: "#f1d99d" + } }, { featureType: "poi", elementType: "all", stylers: { - visibility: "off", - }, + visibility: "off" + } }, { featureType: "green", elementType: "all", stylers: { - visibility: "off", - }, + visibility: "off" + } }, { featureType: "subway", elementType: "all", stylers: { - visibility: "off", - }, + visibility: "off" + } }, { featureType: "manmade", elementType: "all", stylers: { - color: "#f1d99d", - }, + color: "#f1d99d" + } }, { featureType: "local", elementType: "all", stylers: { - color: "#f1d99d", - }, + color: "#f1d99d" + } }, { featureType: "local", elementType: "labels", stylers: { - visibility: "off", - }, + visibility: "off" + } }, { featureType: "arterial", elementType: "labels", stylers: { - visibility: "off", - }, + visibility: "off" + } }, { featureType: "boundary", elementType: "all", stylers: { - color: "#f1d99d", - }, + color: "#f1d99d" + } }, { featureType: "building", elementType: "all", stylers: { - color: "#f1d99d", - }, + color: "#f1d99d" + } }, { featureType: "label", elementType: "labels.text.fill", stylers: { - color: "#000", - }, - }, - ], - }, + color: "#000" + } + } + ] + } }, series: [ { @@ -1141,18 +1203,18 @@ data: data, symbolSize: 0, encode: { - value: 2, + value: 2 }, label: { formatter: "{b}", position: "right", - show: false, + show: false }, emphasis: { label: { - show: true, - }, - }, + show: true + } + } }, { name: "", @@ -1161,32 +1223,32 @@ data: data, symbolSize: 20, encode: { - value: 2, + value: 2 }, showEffectOn: "render", rippleEffect: { - brushType: "stroke", + brushType: "stroke" }, label: { formatter: "{b}", position: "right", - show: false, + show: false }, itemStyle: { color: "#ec7b43", shadowBlur: 10, - shadowColor: "#333", + shadowColor: "#333" }, emphasis: { - scale: false, + scale: false }, - zlevel: 1, - }, - ], + zlevel: 1 + } + ] }; option && myChart.setOption(option); - }, - }, + } + } }; </script> -- Gitblit v1.9.1