From 9342d91f064ab3056d0fcfad5ad3f78833e8c536 Mon Sep 17 00:00:00 2001 From: y505174330 <505174330@qq.com> Date: 星期六, 18 五月 2024 17:20:14 +0800 Subject: [PATCH] 1 --- src/pages/character/detail.vue | 458 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 326 insertions(+), 132 deletions(-) diff --git a/src/pages/character/detail.vue b/src/pages/character/detail.vue index f341f14..857b0fa 100644 --- a/src/pages/character/detail.vue +++ b/src/pages/character/detail.vue @@ -1,17 +1,26 @@ <template> <view class="relative"> - <headNav :idIndex="1 + ''" text="涓尰浜虹墿鏁版嵁搴�" /> + <headNav + :idIndex="1 + ''" + text="涓尰浜虹墿鏁版嵁搴�" + /> <view class="Midde flex"> - <el-button class="MiddeBack flex flex-center" @click="goBack" - >杩斿洖</el-button + <el-button + class="MiddeBack flex flex-center" + @click="goBack" + >杩斿洖</el-button> + <view + style="width: 70%" + class="flex flex-center flex-column" > - <view style="width: 70%" class="flex flex-center flex-column"> <view style="font-weight: bold; font-size: 0.2rem">{{ detailInfo.NAME }}</view> - <ul class="flex" style="line-height: 1.2; margin: 0.15rem 0"> + <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; @@ -21,8 +30,54 @@ text-align: center; margin-right: 0.15rem; " + @click="openFileClick(1)" > - 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; + cursor: pointer; + " + @click="openFileClick(2)" + > + 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; + cursor: pointer; + " + @click="openFileClick(3)" + > + 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; + cursor: pointer; + " + @click="openFileClick(4)" + > + JSON </li> </ul> <view @@ -33,11 +88,15 @@ font-weight: normal; line-height: 0.2rem; letter-spacing: 0.03rem; + cursor: pointer; " > {{ biogData.length ? biogData[0].content : "-" }} </view> - <view class="flex" style="width: 100%; margin: 0.25rem 0 0.15rem 0"> + <view + class="flex" + style="width: 100%; margin: 0.25rem 0 0.15rem 0" + > <view> <!-- <el-button style="padding: 10rpx;" size="mini" icon="el-icon-folder-add">鏀惰棌</el-button> --> <el-button @@ -45,28 +104,32 @@ class="yinyong flex" @click="copyText" > - <img src="@/static/image/yinyong.png" alt="" />寮曠敤</el-button - > + <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" - >闃呰鏇村></view - > + >闃呰鏇村></view> </view> </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" > <div class="grid-content bg-purple-dark flex flex-column"> - <el-card class="box-card" style="width: 100%; height: 2.06rem"> + <el-card + class="box-card" + style="width: 100%; height: 2.06rem" + > <div class="clearfix flex" style=" @@ -75,14 +138,11 @@ padding-bottom: 0.1rem; " > - <span - style=" + <span style=" margin-left: 0.12rem; font-size: 0.14rem; font-weight: 900; - " - >鍏崇郴鍥捐氨</span - > + ">鍏崇郴鍥捐氨</span> <!-- <el-button icon="el-icon-rank" style="float: right; padding: 3px 0;" type="text"></el-button> --> <img src="@/static/image/fangda.png" @@ -91,7 +151,10 @@ alt="" /> </div> - <view id="relation" style="height: 1.51rem; width: 100%"></view> + <view + id="relation" + style="height: 1.51rem; width: 100%" + ></view> </el-card> <el-card class="box-card" @@ -145,14 +208,29 @@ > {{ 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 class="grid-content bg-purple-dark" style="width: 100%"> - <el-card class="box-card" style="padding: 0"> + <div + :span="18" + class="BoxRight" + > + <div + class="grid-content bg-purple-dark" + style="width: 100%" + > + <el-card + class="box-card" + style="padding: 0" + > <div class="clearfix" style=" @@ -170,35 +248,60 @@ class="box-card" style="min-height: 1.91rem; margin: 0.2rem 0" > - <el-tabs ref="tabs" v-model="activeName" @tab-click="handleClick"> - <el-tab-pane label="浠h〃钁椾綔" data-id="1" name="representative"> + <el-tabs + ref="tabs" + v-model="activeName" + @tab-click="handleClick" + > + <el-tab-pane + label="浠h〃钁椾綔" + data-id="1" + name="representative" + > <Table1 :data="tableData1" :columns="tableColumns1" :height="400" /> </el-tab-pane> - <el-tab-pane label="浜插睘鍏崇郴" data-id="2" name="family "> + <el-tab-pane + label="浜插睘鍏崇郴" + data-id="2" + name="family " + > <Table1 :data="tableData2" :columns="tableColumns2" :height="400" /> </el-tab-pane> - <el-tab-pane label="甯堟壙鍏崇郴" data-id="3" name="mentoring " - ><Table1 + <el-tab-pane + label="甯堟壙鍏崇郴" + data-id="3" + name="mentoring " + > + <Table1 :data="tableData3" :columns="tableColumns2" :height="400" - /></el-tab-pane> - <el-tab-pane label="绀句細鍏崇郴" data-id="4" name="society"> + /> + </el-tab-pane> + <el-tab-pane + label="绀句細鍏崇郴" + data-id="4" + name="society" + > <Table1 :data="tableData4" :columns="tableColumns2" :height="400" /> </el-tab-pane> - <el-tab-pane label="娲诲姩骞磋氨" data-id="5" name="activity"> + <el-tab-pane + label="娲诲姩骞磋氨" + data-id="5" + name="activity" + > <Table1 :data="tableData5" :columns="tableColumns3" @@ -218,14 +321,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 +348,30 @@ 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. + <ul + class="font-family" + style="font-size: 0.13rem; line-height: 2" + > + <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"> @@ -272,11 +383,18 @@ ></el-button> </el-col> <!-- 涓汉灏忎紶 --> - <el-dialog :visible.sync="isProfile" :modal-append-to-body="false"> + <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; @@ -291,12 +409,13 @@ </view> <view class="flex"> <view></view> - <view style="font-weight: 700; color: #2c2c2c" - >鈥斺�攞{ item.pageNo }}</view - > + <view style="font-weight: 700; color: #2c2c2c">鈥斺�攞{ item.pageNo }}</view> </view> </view> </view> + <div v-else> + <el-empty description="鏆傛棤鏁版嵁"></el-empty> + </div> </el-dialog> </view> </template> @@ -344,6 +463,10 @@ { prop: "a", label: "姝d功鍚�", + }, + { + prop: "e", + label: "浣滆��", }, { prop: "b", @@ -401,6 +524,7 @@ tableData5: [], nodes: [], relationships: [], + personResearchList: [], }; }, onLoad(options) { @@ -435,13 +559,21 @@ }, methods: { copyText() { - var textToCopy = document.getElementById("copyBox").innerText; - console.log(textToCopy, "textToCopy"); - navigator.clipboard.writeText(textToCopy).then(); + console.log(navigator.clipboard); + const textToCopy = this.biogData[0].content + ";鏉ユ簮锛氫腑鍖诲尰瀛︿汉鐗╂暟鎹簱"; + const textarea = document.createElement("textarea"); + textarea.value = textToCopy; + document.body.appendChild(textarea); + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); this.$message({ message: "澶嶅埗鎴愬姛锛�", type: "success", }); + }, + toLink(item) { + window.open(item.url); }, getData() { // 鍩烘湰淇℃伅 @@ -467,72 +599,43 @@ // 鍏崇郴鍥捐氨 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 + personId: this.detailId, }).then((res) => { console.log(res, "resres"); const obj = res.object; - getIntroduction(Number(obj.school)).then((sres) => { - console.log(sres, "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 || "-" - } - ] - } - ]; - }); + if (obj.school) { + getIntroduction(Number(obj.school)).then((sres) => { + console.log(sres, "sres"); + handleData(obj, sres); + }); + } else { + handleData(obj); + } }); + // 娲诲姩骞磋氨 getPersonInfo({ id: this.detailId, @@ -547,6 +650,64 @@ }; }); }); + }, + 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({ @@ -584,6 +745,7 @@ b: item.dynasty, c: item.writeWay, d: item.classify, + e: this.detailInfo.NAME, }; }); }); @@ -643,7 +805,7 @@ const data = res.list.map((item) => { return { name: item.activityName, - value: [item.xcoord, item.ycoord] + value: [item.xcoord, item.ycoord], }; }); // 鏃剁┖鍦板浘 @@ -661,7 +823,7 @@ }); } else if (index == 2) { uni.navigateTo({ - url: "/pages/characterMap/characterMap", + url: "/pages/characterMap/characterMap?id=" + this.detailId, }); } }, @@ -679,6 +841,32 @@ top: 0, behavior: "smooth", // 浣跨敤骞虫粦婊氬姩 }); + }, + openFileClick(index) { + let obj = { + id: this.detailId, + type: "Person", + }; + switch (index) { + case 1: + obj.outputType = "RDF"; + break; + case 2: + obj.outputType = "NT"; + break; + case 3: + obj.outputType = "XML"; + break; + case 4: + obj.outputType = "JSON"; + break; + } + let queryString = Object.keys(obj) + .map( + (key) => `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}` + ) + .join("&"); + window.open(`#/pages/fileDetail/index?${queryString}`); }, handleClick(tab) { let index = tab.$attrs["data-id"] - 1; @@ -1087,6 +1275,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