From ccb61601d945e3dc8b2fd51167ba5da43dfc110b Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期三, 12 六月 2024 19:28:27 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/TCM_CharacterLibrary --- src/pages/character/detail.vue | 438 ++++++++++++++++++++++++++---------------------------- 1 files changed, 209 insertions(+), 229 deletions(-) diff --git a/src/pages/character/detail.vue b/src/pages/character/detail.vue index e2f199c..2354fc2 100644 --- a/src/pages/character/detail.vue +++ b/src/pages/character/detail.vue @@ -100,7 +100,6 @@ > </view> <view - v-if="biogData.length > 1" style="font-size: 0.12rem; color: #244a7b; cursor: pointer" @click="ProfileClick" >闃呰鏇村></view @@ -301,7 +300,8 @@ margin-bottom: 0.1rem; " :src="item" - fit="fill" + :preview-src-list="imageList" + fit="contain" ></el-image> </div> <div @@ -408,13 +408,15 @@ getPersonInfo, getRelationTypeTreeList, getWebBasic, + getDynastyAll, getIntroduction, getSource, getPersonImages, getPersonBiog, getPersonWritings, getPersonRelationAtSchool, - getSpaceTime + getSpaceTime, + getDynastyData, } from "@/api/index.js"; import { getImg } from "@/static/tool.js"; import L from "leaflet"; @@ -422,7 +424,7 @@ export default { components: { - Table1 + Table1, }, data() { return { @@ -443,60 +445,62 @@ 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: "鍑哄" - } + width: 300, + showOverflowTooltip: true, + label: "鍑哄", + }, ], tableColumns3: [ { prop: "a", - label: "娲诲姩鏃堕棿鍖洪棿" + label: "娲诲姩鏃堕棿鍖洪棿", }, { prop: "b", - label: "娲诲姩鍚嶇О" + label: "娲诲姩鍚嶇О", }, { prop: "c", - label: "娲诲姩鍦扮偣" + label: "娲诲姩鍦扮偣", }, { prop: "d", - label: "娲诲姩鎻忚堪" - } + label: "娲诲姩鎻忚堪", + }, ], tableData1: [], tableData2: [], @@ -506,7 +510,7 @@ nodes: [], relationships: [], personResearchList: [], - markerList: [] + markerList: [], }; }, onLoad(options) { @@ -551,11 +555,10 @@ document.body.removeChild(textarea); this.$message({ message: "澶嶅埗鎴愬姛锛�", - type: "success" + type: "success", }); }, toLink(item) { - console.log(item); if (item.url) { window.open(item.url); } @@ -567,7 +570,7 @@ // 鍩烘湰淇℃伅 getPersonInfo({ id: this.detailId, - type: "PERSON_BASIC" + type: "PERSON_BASIC", }).then((res) => { const obj = {}; if ( @@ -582,36 +585,37 @@ : fieldItem.content1; } } - console.log(obj); this.detailInfo = obj; + getDynastyAll().then((dynastyData) => { + getWebBasic({ + personId: this.detailId, + }).then((res) => { + const obj = res.object; + if (obj.school) { + getIntroduction(Number(obj.school)).then((sres) => { + this.handleData(obj, sres, dynastyData.list); + }); + } else { + this.handleData(obj, null, dynastyData.list); + } + }); + }); // 鍏崇郴鍥捐氨 - this.getMappingData(this.detailInfo.NAME); + this.getMappingData(); }); + //鐜颁唬鐮旂┒ getPersonInfo({ id: this.detailId, - type: "PERSON_RESEARCH" + type: "PERSON_RESEARCH", }).then((res) => { this.personResearchList = res.object.personResearchList; - }); - - getWebBasic({ - personId: this.detailId - }).then((res) => { - const obj = res.object; - if (obj.school) { - getIntroduction(Number(obj.school)).then((sres) => { - this.handleData(obj, sres); - }); - } else { - this.handleData(obj); - } }); // 娲诲姩骞磋氨 getPersonInfo({ id: this.detailId, - type: "PERSON_SPACE_TIME" + type: "PERSON_SPACE_TIME", }).then((res) => { if (res.object.personSpaceTimeList) { this.tableData5 = res.object.personSpaceTimeList.map((item) => { @@ -619,54 +623,56 @@ a: item.time, b: item.activityName, c: item.activityAddrOld, - d: item.desc // 杩欓噷缂哄皯娲诲姩鎻忚堪瀛楁 + d: item.desc, }; }); } }); }, - handleData(obj, sres) { + handleData(obj, sres, dynastyData) { this.tableArr = [ { list: [ { - name: "鍒悕", - value: obj.alias || "-" + name: "濮撳悕", + value: obj.name || "-", }, { name: "瀛�", - value: obj.zi || "-" + value: obj.zi || "-", }, { name: "鍙�", - value: obj.hao || "-" + value: obj.hao || "-", }, { name: "鎵�澶勬椂鏈�", - value: obj.dynastyDesc || "-", + value: + dynastyData.find((item) => item.dynastyId == obj.dynastyId) + .name || "-", valueClick: () => { uni.navigateTo({ url: "/pages/knowledgeBase/knowledgeBase?dynasty=" + - obj.dynastyId + obj.dynastyId, }); - } + }, }, { name: "姘戞棌", - value: obj.ethnic || "-" - } - ] + value: obj.ethnic || "-", + }, + ], }, { list: [ { name: "绫嶈疮", - value: obj.native || "-" + value: obj.native || "-", }, { name: "鎬у埆", - value: obj.gender || "-" + value: obj.gender || "-", }, { name: "鑱屽畼", @@ -675,9 +681,9 @@ uni.navigateTo({ url: "/pages/knowledgeBase/knowledgeBase?isAdvancedSearch=1&official=" + - obj.official + obj.official, }); - } + }, }, { name: "娴佹淳", @@ -687,33 +693,33 @@ 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 { @@ -722,14 +728,14 @@ "銆�" + item.bookName + "銆� " + - (item.pageNo ? "P " + item.pageNo : "") // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚� + (item.pageNo ? "P " + item.pageNo : ""), // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚� }; }); }); }, getWritings() { getPersonWritings({ - personId: this.detailId + personId: this.detailId, }).then((res) => { this.tableData1 = res.list.map((item) => { return { @@ -737,82 +743,78 @@ b: item.dynasty, c: item.writeWay, d: item.classify, - e: this.detailInfo.NAME + e: this.detailInfo.NAME, }; }); }); }, getRelationship() { - getRelationTypeTreeList().then((res) => { - console.log(res, "getRelationTypeTreeList"); - console.log(res); - }); - // 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, - // }; - // }); - // } - // }); getPersonInfo({ id: this.detailId, - type: "PERSON_RELATIONS" + type: "PERSON_RELATIONS", }).then((res) => { this.tableData4; - console.log(res, "PERSON_RELATIONS"); - }); - // 绀句細鍏崇郴 - getPersonRelationAtSchool({ - personId: this.detailId, - relationSearchTypeEO: "SOCIAL" - }).then((res) => { - if (res.list && res.list.length) { - this.tableData4 = res.list.map((f) => { + if (res.object.personRelationMap.kin.length) { + this.tableData2 = res.object.personRelationMap.kin.map((f) => { return { - a: f.name1, - b: f.relationName + a: f.nodeName, + b: f.relationTypeName, + c: f.textualResearch, + d: + res.object.bookList && + res.object.bookList.find((citem) => citem.id == f.bookId) + ? "銆�" + + res.object.bookList.find((citem) => citem.id == f.bookId) + .name + + "銆� P" + + f.pageNo + : "", }; }); } - }); - // 浜插睘鍏崇郴 - 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 - }; - }); + if (res.object.personRelationMap.teacherStudent.length) { + this.tableData3 = res.object.personRelationMap.teacherStudent.map( + (f) => { + return { + a: f.nodeName, + b: f.relationTypeName, + c: f.textualResearch, + d: + res.object.bookList && + res.object.bookList.find((citem) => citem.id == f.bookId) + ? "銆�" + + res.object.bookList.find((citem) => citem.id == f.bookId) + .name + + "銆� P" + + f.pageNo + : "", + }; + } + ); } - }); - // 甯堟壙鍏崇郴 - getPersonRelationAtSchool({ - personId: this.detailId, - relationSearchTypeEO: "INHERITANCE" - }).then((res) => { - if (res.list && res.list.length) { - this.tableData3 = res.list.map((f) => { + if (res.object.personRelationMap.social.length) { + this.tableData4 = res.object.personRelationMap.social.map((f) => { return { - a: f.name1, - b: f.relationName + a: f.nodeName, + b: f.relationTypeName, + c: f.textualResearch, + d: + res.object.bookList && + res.object.bookList.find((citem) => citem.id == f.bookId) + ? "銆�" + + res.object.bookList.find((citem) => citem.id == f.bookId) + .name + + "銆� P" + + f.pageNo + : "", }; }); } }); }, - getMappingData(name) { + getMappingData() { getFuzzySearch({ - keyword: name + personId: this.detailId }).then((res) => { this.nodes = []; this.relationships = []; @@ -828,19 +830,19 @@ if (item.name1 && exists1 !== true) { this.nodes.push({ name: item.name1, - id: item.identifier1 + id: item.identifier1, }); } if (item.name2 && 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); }); @@ -850,7 +852,7 @@ }, getMapInfo() { getSpaceTime({ - personId: this.detailId + personId: this.detailId, }).then((res) => { if (res.list && res.list.length) { const data = []; @@ -859,7 +861,7 @@ if (item.xcoord && item.ycoord) { const obj = { name: item.activityName, - value: [item.xcoord, item.ycoord] + value: [item.xcoord, item.ycoord], }; data.push(obj); } @@ -880,36 +882,36 @@ initMap(markerList) { var map = L.map("spaceTime", { preferCanvas: true, - attributionControl: false + attributionControl: false, }).setView([markerList[0].value[1], markerList[0].value[0]], 13); L.tileLayer .chinaProvider("TianDiTu.Normal.Map", { key: "76bc34ead7e30e663a4eded8aeaf5860", maxZoom: 18, - minZoom: 3 + minZoom: 3, }) .addTo(map); L.tileLayer .chinaProvider("TianDiTu.Normal.Annotion", { 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); if (markerList.length) { for (let i = 0; i < markerList.length; i++) { const item = markerList[i]; const temp_mark = L.marker([item.value[1], item.value[0]], { - icon: icon + icon: icon, }).addTo(map); } } @@ -918,11 +920,11 @@ 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, }); } }, @@ -938,13 +940,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: @@ -1001,25 +1003,8 @@ let FontSize = 12; // 瀛椾綋澶у皬 let BorderWidth = 2; // 杈规澶у皬 - let SymbolSize = 80; // 灏哄璺濈 + let SymbolSize = 50; // 灏哄璺濈 let Distance = 10; - // 涓嶅悓灏哄涓嬩慨鏀筫charts鐨勫瓧浣� - if (window.innerWidth > 2560 && window.innerWidth <= 3840) { - FontSize = 28; - BorderWidth = 5; - SymbolSize = 100; - Distance = 33; - } else if (window.innerWidth > 1920 && window.innerWidth <= 2560) { - FontSize = 28; - BorderWidth = 4; - SymbolSize = 90; - Distance = 22; - } else if (window.innerWidth >= 1366 && window.innerWidth <= 1920) { - FontSize = 18; - BorderWidth = 4; - SymbolSize = 70; - Distance = 22; - } // 鏍规嵁鍏崇郴鏁版嵁鐢熸垚杩炴帴绾� var links = []; relationships.forEach((relationship, i) => { @@ -1047,8 +1032,8 @@ position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず // bottom: -(FontSize+10), z: 10, // 璁剧疆鏍囩鐨剒杞撮珮搴︼紝浣垮叾姣旇繛鎺ョ嚎鏇撮珮 - distance: -(Distance + 1) // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 - } + distance: -(Distance + 1), // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 + }, }); } } @@ -1063,8 +1048,8 @@ itemStyle: { color: "#eae0eb", // 鍙互鏍规嵁绱㈠紩璁剧疆涓嶅悓鐨勯鑹� borderWidth: BorderWidth, - borderColor: "#996f9f" - } + borderColor: "#996f9f", + }, }; }); var option; @@ -1074,14 +1059,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, @@ -1095,7 +1080,7 @@ label: { show: true, color: "black", // 璁剧疆鑺傜偣鏂囧瓧棰滆壊涓洪粦鑹� - fontSize: FontSize // 璁剧疆鏂囧瓧澶у皬 + fontSize: FontSize, // 璁剧疆鏂囧瓧澶у皬 }, edgeSymbol: ["circle"], edgeSymbolSize: [4, 10], @@ -1104,16 +1089,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; @@ -1137,10 +1122,10 @@ text: "", subtext: "", sublink: "", - left: "center" + left: "center", }, tooltip: { - trigger: "item" + trigger: "item", }, bmap: { center: data[0].value, @@ -1152,123 +1137,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: [ { @@ -1278,18 +1263,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: "", @@ -1298,32 +1283,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> @@ -1383,12 +1368,6 @@ } /* ------------------- */ - -img { - width: 100%; - height: 100%; -} - * { box-sizing: border-box; } @@ -1563,4 +1542,5 @@ .fileul li:hover { color: #597aa5; } + </style> -- Gitblit v1.9.1