From 5adb70f8f046e2de37c4984a454503c5daaf08b3 Mon Sep 17 00:00:00 2001
From: YM <479443481@qq.com>
Date: 星期五, 17 五月 2024 22:26:20 +0800
Subject: [PATCH] 1

---
 src/pages/character/detail.vue |  323 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 225 insertions(+), 98 deletions(-)

diff --git a/src/pages/character/detail.vue b/src/pages/character/detail.vue
index 984d3b5..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,10 +21,50 @@
               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
+          id="copyBox"
           class="fz font-family"
           style="
             font-size: 0.13rem;
@@ -39,7 +78,11 @@
         <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 style="padding: 0.05rem 0.085rem" class="yinyong flex">
+            <el-button
+              style="padding: 0.05rem 0.085rem"
+              class="yinyong flex"
+              @click="copyText"
+            >
               <img src="@/static/image/yinyong.png" alt="" />寮曠敤</el-button
             >
           </view>
@@ -53,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"
@@ -140,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
@@ -213,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">
@@ -232,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">
@@ -269,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;
@@ -292,6 +350,9 @@
           </view>
         </view>
       </view>
+      <div v-else>
+        <el-empty description="鏆傛棤鏁版嵁"></el-empty>
+      </div>
     </el-dialog>
   </view>
 </template>
@@ -304,6 +365,8 @@
 import {
   getFuzzySearch,
   getPersonInfo,
+  getWebBasic,
+  getIntroduction,
   getSource,
   getPersonImages,
   getPersonBiog,
@@ -337,6 +400,10 @@
         {
           prop: "a",
           label: "姝d功鍚�"
+        },
+        {
+          prop: "e",
+          label: "浣滆��"
         },
         {
           prop: "b",
@@ -393,7 +460,8 @@
       tableData4: [],
       tableData5: [],
       nodes: [],
-      relationships: []
+      relationships: [],
+      personResearchList: []
     };
   },
   onLoad(options) {
@@ -427,6 +495,17 @@
     window.addEventListener("resize", this.relation);
   },
   methods: {
+    copyText() {
+      const txt = this.biogData[0].content + ";鏉ユ簮锛氫腑鍖诲尰瀛︿汉鐗╂暟鎹簱";
+      navigator.clipboard.writeText(txt).then();
+      this.$message({
+        message: "澶嶅埗鎴愬姛锛�",
+        type: "success"
+      });
+    },
+    toLink(item) {
+      window.open(item.url);
+    },
     getData() {
       // 鍩烘湰淇℃伅
       getPersonInfo({
@@ -447,64 +526,47 @@
           }
         }
         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,
@@ -515,10 +577,68 @@
             a: item.time,
             b: item.activityName,
             c: item.activityAddrOld,
-            d: "-" // 杩欓噷缂哄皯娲诲姩鎻忚堪瀛楁
+            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({
@@ -555,7 +675,8 @@
             a: item.name,
             b: item.dynasty,
             c: item.writeWay,
-            d: item.classify
+            d: item.classify,
+            e: this.detailInfo.NAME
           };
         });
       });
@@ -611,13 +732,13 @@
       getSpaceTime({
         personId: this.detailId
       }).then((res) => {
-        console.log(res,'getSpaceTime');
-        const data = res.list.map(item=>{
+        console.log(res, "getSpaceTime");
+        const data = res.list.map((item) => {
           return {
             name: item.activityName,
-            value: [item.xcoord,item.ycoord]
-          }
-        })
+            value: [item.xcoord, item.ycoord]
+          };
+        });
         // 鏃剁┖鍦板浘
         loadBMap("1NJdwrI1CfT6lrykVhDkmWgsO6O2bjQK").then(() => {
           this.spaceTime(data);
@@ -633,7 +754,7 @@
         });
       } else if (index == 2) {
         uni.navigateTo({
-          url: "/pages/characterMap/characterMap"
+          url: "/pages/characterMap/characterMap?id=" + this.detailId
         });
       }
     },
@@ -1059,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