From 4cdc35b7911554a955a7f5b29f55dbd91d7fd34e Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期五, 17 五月 2024 22:26:23 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/TCM_CharacterLibrary --- src/pages/character/detail.vue | 503 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 308 insertions(+), 195 deletions(-) diff --git a/src/pages/character/detail.vue b/src/pages/character/detail.vue index 0cce91d..73265c0 100644 --- a/src/pages/character/detail.vue +++ b/src/pages/character/detail.vue @@ -11,7 +11,6 @@ }}</view> <ul class="flex" style="line-height: 1.2; margin: 0.15rem 0"> <li - v-for="item in 4" style=" background-color: #fff; padding: 0 0.08rem; @@ -22,7 +21,46 @@ margin-right: 0.15rem; " > - VSDS + RDF + </li> + <li + style=" + background-color: #fff; + padding: 0 0.08rem; + border: 0.01rem solid #000; + border-radius: 0.1rem; + font-size: 0.12rem; + text-align: center; + margin-right: 0.15rem; + " + > + NT + </li> + <li + style=" + background-color: #fff; + padding: 0 0.08rem; + border: 0.01rem solid #000; + border-radius: 0.1rem; + font-size: 0.12rem; + text-align: center; + margin-right: 0.15rem; + " + > + XML + </li> + <li + style=" + background-color: #fff; + padding: 0 0.08rem; + border: 0.01rem solid #000; + border-radius: 0.1rem; + font-size: 0.12rem; + text-align: center; + margin-right: 0.15rem; + " + > + JSON </li> </ul> <view @@ -58,9 +96,9 @@ </view> <view style="width: 5%"></view> </view> - <el-row style="padding: 0 1.2rem 0; padding-top: 0.24rem"> + <div style="padding: 0 1.2rem 0; padding-top: 0.24rem; display: flex"> <!-- 宸︿晶 --> - <el-col + <div :span="5" class="BoxLeft" style="padding-right: 0.2rem; width: 2.8rem" @@ -145,12 +183,18 @@ > {{ index + 1 }}.{{ item }} </li> + <div + v-if="sourceDataList.length == 0" + style="color: #666; text-align: center; font-size: 16px" + > + 鏆傛棤鏁版嵁 + </div> </ul> </el-card> </div> - </el-col> + </div> <!-- 鍙充晶 --> - <el-col :span="18" class="BoxRight"> + <div :span="18" class="BoxRight"> <div class="grid-content bg-purple-dark" style="width: 100%"> <el-card class="box-card" style="padding: 0"> <div @@ -218,14 +262,22 @@ > <span>鐩稿叧闄勮〃/鍥惧儚</span> </div> - <view class="flex"> - <el-image - v-for="item in imageList" - :key="item" - style="width: 2.05rem; height: 1.4rem" - :src="item" - fit="fill" - ></el-image> + <view> + <div class="flex"> + <el-image + v-for="item in imageList" + :key="item" + style="width: 2.05rem; height: 2.4rem" + :src="item" + fit="fill" + ></el-image> + </div> + <div + v-if="imageList.length == 0" + style="color: #666; text-align: center; font-size: 16px" + > + 鏆傛棤鏁版嵁 + </div> </view> </el-card> <el-card class="box-card"> @@ -237,30 +289,27 @@ padding-bottom: 0.1rem; " > - <span>鐩稿叧闄勮〃/鍥惧儚</span> + <span>鐜颁唬鐮旂┒</span> </div> <ul class="font-family" style="font-size: 0.13rem; line-height: 2"> - <li> - [1|鍒樼倻,璋㈣搲,寮犵,绛�.鍚戜汉鏂囩爺绌剁殑鍥藉鏁版嵁鍩虹璁炬柦寤鸿[J|.涓浗鍥句功棣嗗鎶�,2016,42(5):29-39. + <li + v-for="(item, index) in personResearchList" + :key="index" + @click="toLink(item)" + > + {{ "[" + Number(index + 1) + "]" + item.achievementName }} </li> - <li> - [2|鍛ㄦ櫒.鍥介檯鏁板瓧浜烘枃鐮旂┒鐗瑰緛涓庣煡璇嗙粨鏋剕J鍥句功棣嗚鍧�2017.37(4):1-8. - </li> - <li> - [3]鍌呭痉鍗�,浜庣繝鑹�,鏉庢槬鍗�,鍏充簬鍒涘缓鈥�20 - 涓栫邯涓浗浜虹墿浼犺璧勬枡鍏ㄦ枃鏁版嵁搴撴不鐨勬瀯鎯砙宸�,涓浗鑰呭紩,2009,714):24-26. - </li> - <li> - [4|浜庣繝鑹�,鍌呭痉鍗�,鏉庢槬鍗�,鍏充簬鈥�20涓栫邯涓浗浜虹墿浼犺璧勬枡鍏ㄦ枃鏁版嵁搴撴不鐨勮繘灞曚笌鍥版儜[J1.涓浗甯稿紩,2012.10111:20-22 - </li> - <li> - [5]璐炬銆傘�婃箹鍗楄繎浠d汉鐗╂暟鎹巼銆嬭祫婧愭敹褰曡寖鍥寸爺绌秥J娌冲崡鍥句功棣嗗鍒�,2015,35(7):126.127.140. - </li> + <div + v-if="personResearchList.length == 0" + style="color: #666; text-align: center; font-size: 16px" + > + 鏆傛棤鏁版嵁 + </div> </ul> </el-card> </div> - </el-col> - </el-row> + </div> + </div> <!-- 杩斿洖椤堕儴 --> <el-col style="position: absolute; bottom: 1rem; left: 1.2rem"> @@ -274,9 +323,13 @@ <!-- 涓汉灏忎紶 --> <el-dialog :visible.sync="isProfile" :modal-append-to-body="false"> <view class="ProfileNav flex flex-center"> 涓汉灏忎紶 </view> - <view style="padding: 0.44rem 0.3rem; min-height: 7.32rem"> + <view + style="padding: 0.44rem 0.3rem; min-height: 7.32rem" + v-if="biogData.length > 0" + > <view - v-for="item in biogData" + v-for="(item, index) in biogData" + :key="index" style=" margin-bottom: 0.2rem; background-color: #f0f0f0; @@ -297,6 +350,9 @@ </view> </view> </view> + <div v-else> + <el-empty description="鏆傛棤鏁版嵁"></el-empty> + </div> </el-dialog> </view> </template> @@ -309,18 +365,20 @@ import { getFuzzySearch, getPersonInfo, + getWebBasic, + getIntroduction, getSource, getPersonImages, getPersonBiog, getPersonWritings, getPersonRelationAtSchool, - getSpaceTime, + getSpaceTime } from "@/api/index.js"; import { getImg } from "@/static/tool.js"; export default { components: { - Table1, + Table1 }, data() { return { @@ -341,56 +399,60 @@ tableColumns1: [ { prop: "a", - label: "姝d功鍚�", + label: "姝d功鍚�" + }, + { + prop: "e", + 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: [], @@ -399,6 +461,7 @@ tableData5: [], nodes: [], relationships: [], + personResearchList: [] }; }, onLoad(options) { @@ -433,19 +496,21 @@ }, methods: { copyText() { - var textToCopy = document.getElementById("copyBox").innerText; - console.log(textToCopy, "textToCopy"); - navigator.clipboard.writeText(textToCopy).then(); + const txt = this.biogData[0].content + ";鏉ユ簮锛氫腑鍖诲尰瀛︿汉鐗╂暟鎹簱"; + navigator.clipboard.writeText(txt).then(); this.$message({ message: "澶嶅埗鎴愬姛锛�", - type: "success", + type: "success" }); + }, + toLink(item) { + window.open(item.url); }, getData() { // 鍩烘湰淇℃伅 getPersonInfo({ id: this.detailId, - type: "PERSON_BASIC", + type: "PERSON_BASIC" }).then((res) => { const obj = {}; if ( @@ -461,108 +526,149 @@ } } console.log(obj); - this.tableArr = [ - { - list: [ - { - name: "鍒悕", - value: obj.WEAK_NAME || "-", - }, - { - name: "瀛�", - value: obj.ALIAS || "-", - }, - { - name: "鍙�", - value: obj.ALIAS || "-", - }, - { - name: "鎵�澶勬椂鏈�", - value: obj.PERIOD || "-", - }, - { - name: "姘戞棌", - value: obj.ETHNIC || "-", - }, - ], - }, - { - list: [ - { - name: "绫嶈疮", - value: obj.NATIVE_PLACE || "-", - }, - { - name: "鎬у埆", - value: obj.GENDER - ? obj.GENDER == "UNKNOWN" - ? "鏈煡" - : "-" - : "-", - }, - { - name: "鑱屽畼", - value: obj.MEDICAL_BRANCH || "-", - }, - { - name: "娴佹淳", - value: obj.MEDICAL_BRANCH || "-", - }, - { - name: "瀛︽湳鐗圭偣", - value: obj.MEDICAL_EXPERTISE || "-", - }, - ], - }, - ]; this.detailInfo = obj; // 鍏崇郴鍥捐氨 this.getMappingData(this.detailInfo.NAME); }); + //鐜颁唬鐮旂┒ + getPersonInfo({ + id: this.detailId, + type: "PERSON_RESEARCH" + }).then((res) => { + this.personResearchList = res.object.personResearchList; + }); + getPersonInfo({ + id: this.detailId, + type: "PERSON_RELATIONS" + }).then((res) => { + console.log(res, "PERSON_RELATIONS"); + 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) => { + console.log(res, "resres"); + const obj = res.object; + if (obj.school) { + getIntroduction(Number(obj.school)).then((sres) => { + console.log(sres, "sres"); + handleData(obj, sres); + }); + } else { + handleData(obj); + } + }); + // 娲诲姩骞磋氨 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, // 杩欓噷缂哄皯娲诲姩鎻忚堪瀛楁 + d: item.desc // 杩欓噷缂哄皯娲诲姩鎻忚堪瀛楁 }; }); }); }, + handleData(obj, sres) { + this.tableArr = [ + { + list: [ + { + name: "鍒悕", + value: obj.alias || "-" + }, + { + name: "瀛�", + value: obj.zi || "-" + }, + { + name: "鍙�", + value: obj.hao || "-" + }, + { + name: "鎵�澶勬椂鏈�", + value: obj.dynastyDesc || "-" + }, + { + name: "姘戞棌", + value: obj.ethnic || "-" + } + ] + }, + { + list: [ + { + name: "绫嶈疮", + value: obj.native || "-" + }, + { + name: "鎬у埆", + value: obj.gender || "-" + }, + { + name: "鑱屽畼", + value: obj.official || "-" + }, + { + name: "娴佹淳", + value: + sres && + sres.object && + sres.object.school_NAME && + sres.object.school_NAME.length + ? sres.object.school_NAME[0].content + : "-" + }, + { + name: "瀛︽湳鐗圭偣", + 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, - pageNo: "銆�" + item.pageNo + "銆� " + "P " + item.pageNo, // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚� + pageNo: "銆�" + item.pageNo + "銆� " + "P " + item.pageNo // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚� }; }); }); }, getWritings() { getPersonWritings({ - personId: this.detailId, + personId: this.detailId }).then((res) => { this.tableData1 = res.list.map((item) => { return { @@ -570,13 +676,14 @@ b: item.dynasty, c: item.writeWay, d: item.classify, + e: this.detailInfo.NAME }; }); }); }, getRelationship() { getPersonRelationAtSchool({ - personId: this.detailId, + personId: this.detailId // relationSearchTypeEO: "SOCIAL" }).then((res) => { console.log(res, "getPersonRelationAtSchool"); @@ -585,7 +692,7 @@ }, getMappingData(name) { getFuzzySearch({ - keyword: name, + keyword: name }).then((res) => { this.nodes = []; this.relationships = []; @@ -601,19 +708,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); }); @@ -623,13 +730,13 @@ }, getMapInfo() { getSpaceTime({ - personId: this.detailId, + personId: this.detailId }).then((res) => { console.log(res, "getSpaceTime"); const data = res.list.map((item) => { return { name: item.activityName, - value: [item.xcoord, item.ycoord], + value: [item.xcoord, item.ycoord] }; }); // 鏃剁┖鍦板浘 @@ -643,11 +750,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", + url: "/pages/characterMap/characterMap?id=" + this.detailId }); } }, @@ -663,7 +770,7 @@ scrollToTop() { window.scrollTo({ top: 0, - behavior: "smooth", // 浣跨敤骞虫粦婊氬姩 + behavior: "smooth" // 浣跨敤骞虫粦婊氬姩 }); }, handleClick(tab) { @@ -746,8 +853,8 @@ position: "middle", // 璁剧疆鏍囩鏂囨湰鍦ㄧ嚎鐨勪腑闂翠綅缃笂灞呬腑鏄剧ず // bottom: -(FontSize+10), z: 10, // 璁剧疆鏍囩鐨剒杞撮珮搴︼紝浣垮叾姣旇繛鎺ョ嚎鏇撮珮 - distance: -(Distance + 1), // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 - }, + distance: -(Distance + 1) // 灏嗘爣绛炬斁缃湪杩炴帴绾夸笂 + } }); } } @@ -762,8 +869,8 @@ itemStyle: { color: "#eae0eb", // 鍙互鏍规嵁绱㈠紩璁剧疆涓嶅悓鐨勯鑹� borderWidth: BorderWidth, - borderColor: "#996f9f", - }, + borderColor: "#996f9f" + } }; }); var option; @@ -773,14 +880,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, @@ -794,7 +901,7 @@ label: { show: true, color: "black", // 璁剧疆鑺傜偣鏂囧瓧棰滆壊涓洪粦鑹� - fontSize: FontSize, // 璁剧疆鏂囧瓧澶у皬 + fontSize: FontSize // 璁剧疆鏂囧瓧澶у皬 }, edgeSymbol: ["circle"], edgeSymbolSize: [4, 10], @@ -803,16 +910,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; @@ -858,10 +965,10 @@ text: "", subtext: "", sublink: "", - left: "center", + left: "center" }, tooltip: { - trigger: "item", + trigger: "item" }, bmap: { center: data[0].value, @@ -873,123 +980,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: [ { @@ -999,18 +1106,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: "", @@ -1019,32 +1126,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> @@ -1073,6 +1180,12 @@ .BoxLeft ::v-deep.el-card__body { padding: 0.1rem 0.11rem !important; } +.BoxLeft { + width: 30%; +} +.BoxRight { + width: 70%; +} ::v-deep .el-tabs__content { line-height: 1; -- Gitblit v1.9.1