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 | 311 +++++++++++++++++++++++++++++++++++---------------- 1 files changed, 214 insertions(+), 97 deletions(-) diff --git a/src/pages/character/detail.vue b/src/pages/character/detail.vue index e1e94ec..2354fc2 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,7 +99,6 @@ <img src="@/static/image/yinyong.png" alt="" />寮曠敤</el-button > </view> - <!-- v-if="biogData.length > 1" --> <view style="font-size: 0.12rem; color: #244a7b; cursor: pointer" @click="ProfileClick" @@ -154,6 +158,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 +167,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 @@ -272,13 +289,19 @@ <span>鐩稿叧闄勮〃/鍥惧儚</span> </div> <view> - <div class="flex"> + <div style="overflow: auto"> <el-image v-for="item in imageList" :key="item" - style="width: 2.05rem; height: 2.4rem" + style=" + width: 2.05rem; + height: 2.4rem; + margin-right: 0.2rem; + margin-bottom: 0.1rem; + " :src="item" - fit="fill" + :preview-src-list="imageList" + fit="contain" ></el-image> </div> <div @@ -300,8 +323,9 @@ > <span>鐜颁唬鐮旂┒</span> </div> - <ul class="font-family" style="font-size: 0.13rem; line-height: 2"> + <ul class="fileul" style="font-size: 0.13rem; line-height: 2"> <li + style="cursor: pointer" v-for="(item, index) in personResearchList" :key="index" @click="toLink(item)" @@ -309,7 +333,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" > 鏆傛棤鏁版嵁 @@ -321,9 +345,17 @@ </div> <!-- 杩斿洖椤堕儴 --> - <el-col style="position: absolute; bottom: 1rem; left: 1.2rem"> + <el-col + style=" + position: absolute; + bottom: 1rem; + left: 1.2rem; + width: 0.6rem; + height: 0.6rem; + " + > <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" @@ -374,7 +406,9 @@ import { getFuzzySearch, getPersonInfo, + getRelationTypeTreeList, getWebBasic, + getDynastyAll, getIntroduction, getSource, getPersonImages, @@ -382,6 +416,7 @@ getPersonWritings, getPersonRelationAtSchool, getSpaceTime, + getDynastyData, } from "@/api/index.js"; import { getImg } from "@/static/tool.js"; import L from "leaflet"; @@ -444,6 +479,8 @@ }, { prop: "d", + width: 300, + showOverflowTooltip: true, label: "鍑哄", }, ], @@ -473,6 +510,7 @@ nodes: [], relationships: [], personResearchList: [], + markerList: [], }; }, onLoad(options) { @@ -507,7 +545,8 @@ }, methods: { copyText() { - const textToCopy = this.biogData[0].content + ";鏉ユ簮锛氫腑鍖诲尰瀛︿汉鐗╂暟鎹簱"; + const textToCopy = + this.biogData[0].content + "\n鏉ユ簮锛氫腑鍖诲尰瀛︿汉鐗╃煡璇嗗簱"; const textarea = document.createElement("textarea"); textarea.value = textToCopy; document.body.appendChild(textarea); @@ -520,7 +559,12 @@ }); }, toLink(item) { - window.open(item.url); + if (item.url) { + window.open(item.url); + } + if (item.filePath) { + window.open(getImg(item.filePath)); + } }, getData() { // 鍩烘湰淇℃伅 @@ -542,9 +586,24 @@ } } 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, @@ -552,54 +611,31 @@ }).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, - }).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", }).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) { + handleData(obj, sres, dynastyData) { this.tableArr = [ { list: [ { - name: "鍒悕", - value: obj.alias || "-", + name: "濮撳悕", + value: obj.name || "-", }, { name: "瀛�", @@ -611,7 +647,16 @@ }, { name: "鎵�澶勬椂鏈�", - value: obj.dynastyDesc || "-", + value: + dynastyData.find((item) => item.dynastyId == obj.dynastyId) + .name || "-", + valueClick: () => { + uni.navigateTo({ + url: + "/pages/knowledgeBase/knowledgeBase?dynasty=" + + obj.dynastyId, + }); + }, }, { name: "姘戞棌", @@ -632,6 +677,13 @@ { name: "鑱屽畼", value: obj.official || "-", + valueClick: () => { + uni.navigateTo({ + url: + "/pages/knowledgeBase/knowledgeBase?isAdvancedSearch=1&official=" + + obj.official, + }); + }, }, { name: "娴佹淳", @@ -672,7 +724,11 @@ this.biogData = res.list.map((item) => { return { content: item.content1, - bookName: "銆�" + item.bookName + "銆� " + "P " + item.pageNo, // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚� + bookName: + "銆�" + + item.bookName + + "銆� " + + (item.pageNo ? "P " + item.pageNo : ""), // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚� }; }); }); @@ -693,16 +749,72 @@ }); }, getRelationship() { - getPersonRelationAtSchool({ - personId: this.detailId, - relationSearchTypeEO: "KINSHIP" + getPersonInfo({ + id: this.detailId, + type: "PERSON_RELATIONS", }).then((res) => { - // 杩欓噷鎺ュ彛鏈夐棶棰� + this.tableData4; + if (res.object.personRelationMap.kin.length) { + this.tableData2 = res.object.personRelationMap.kin.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 + : "", + }; + }); + } + 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 + : "", + }; + } + ); + } + if (res.object.personRelationMap.social.length) { + this.tableData4 = res.object.personRelationMap.social.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 + : "", + }; + }); + } }); }, - getMappingData(name) { + getMappingData() { getFuzzySearch({ - keyword: name, + personId: this.detailId }).then((res) => { this.nodes = []; this.relationships = []; @@ -715,13 +827,13 @@ (node) => node.id === item.identifier2 && node.name === item.name2 ); // 璇佹槑涓嶅瓨鍦� - if (exists1 !== true) { + if (item.name1 && exists1 !== true) { this.nodes.push({ name: item.name1, id: item.identifier1, }); } - if (exists2 !== true) { + if (item.name2 && exists2 !== true) { this.nodes.push({ name: item.name2, id: item.identifier2, @@ -742,14 +854,26 @@ getSpaceTime({ 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 = []; + for (let i = 0; i < res.list.length; i++) { + const item = res.list[i]; + if (item.xcoord && item.ycoord) { + const obj = { + name: item.activityName, + value: [item.xcoord, item.ycoord], + }; + data.push(obj); + } + } + this.markerList = data; + // 鏃剁┖鍦板浘 + // 杩欓噷鍙彇浜嗙涓�鏉★紝闇�瑕佸叏閮ㄦ暟鎹� + if (data && data.length) { + this.initMap(data); + } + } + // loadBMap("1NJdwrI1CfT6lrykVhDkmWgsO6O2bjQK").then(() => { // this.spaceTime(data); // }); @@ -759,9 +883,16 @@ var map = L.map("spaceTime", { preferCanvas: true, attributionControl: false, - }).setView([markerList.value[1], markerList.value[0]], 13); + }).setView([markerList[0].value[1], markerList[0].value[0]], 13); L.tileLayer .chinaProvider("TianDiTu.Normal.Map", { + key: "76bc34ead7e30e663a4eded8aeaf5860", + maxZoom: 18, + minZoom: 3, + }) + .addTo(map); + L.tileLayer + .chinaProvider("TianDiTu.Normal.Annotion", { key: "76bc34ead7e30e663a4eded8aeaf5860", maxZoom: 18, minZoom: 3, @@ -776,6 +907,14 @@ const temp_mark = L.marker([markerList.value[1], markerList.value[0]], { 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, + }).addTo(map); + } + } }, // 鏀惧ぇ鍦板浘璺宠浆 fangdaClick(index) { @@ -864,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) => { @@ -1235,10 +1357,6 @@ padding: 0; } -::v-deep .el-dialog__wrapper { - z-index: 999999999999999 !important; -} - .ProfileNav { width: 100%; height: 0.7rem; @@ -1250,12 +1368,6 @@ } /* ------------------- */ - -img { - width: 100%; - height: 100%; -} - * { box-sizing: border-box; } @@ -1426,4 +1538,9 @@ opacity: 0; } } + +.fileul li:hover { + color: #597aa5; +} + </style> -- Gitblit v1.9.1