From 6cffb189105aaa2dbde8886c3f43a1a65276e872 Mon Sep 17 00:00:00 2001
From: 杨磊 <505174330@qq.com>
Date: 星期一, 20 五月 2024 17:44:43 +0800
Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/TCM_CharacterLibrary

---
 src/pages/character/detail.vue |  347 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 250 insertions(+), 97 deletions(-)

diff --git a/src/pages/character/detail.vue b/src/pages/character/detail.vue
index 0cce91d..7664ed8 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;
@@ -21,8 +20,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,6 +78,7 @@
             font-weight: normal;
             line-height: 0.2rem;
             letter-spacing: 0.03rem;
+            cursor: pointer;
           "
         >
           {{ biogData.length ? biogData[0].content : "-" }}
@@ -58,9 +104,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 +191,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
@@ -185,12 +237,13 @@
                   :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>
               <el-tab-pane label="绀句細鍏崇郴" data-id="4" name="society">
                 <Table1
                   :data="tableData4"
@@ -218,14 +271,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 +298,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 +332,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,11 +354,14 @@
           <view class="flex">
             <view></view>
             <view style="font-weight: 700; color: #2c2c2c"
-              >鈥斺�攞{ item.pageNo }}</view
+              >鈥斺�攞{ item.bookName }}</view
             >
           </view>
         </view>
       </view>
+      <div v-else>
+        <el-empty description="鏆傛棤鏁版嵁"></el-empty>
+      </div>
     </el-dialog>
   </view>
 </template>
@@ -309,6 +374,8 @@
 import {
   getFuzzySearch,
   getPersonInfo,
+  getWebBasic,
+  getIntroduction,
   getSource,
   getPersonImages,
   getPersonBiog,
@@ -342,6 +409,10 @@
         {
           prop: "a",
           label: "姝d功鍚�",
+        },
+        {
+          prop: "e",
+          label: "浣滆��",
         },
         {
           prop: "b",
@@ -399,6 +470,7 @@
       tableData5: [],
       nodes: [],
       relationships: [],
+      personResearchList: [],
     };
   },
   onLoad(options) {
@@ -433,13 +505,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() {
       // 鍩烘湰淇℃伅
@@ -461,64 +541,46 @@
           }
         }
         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;
+      });
+      getPersonRelationAtSchool({
+        personId: this.detailId,
+      }).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,
@@ -533,6 +595,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({
@@ -555,7 +675,7 @@
         this.biogData = res.list.map((item) => {
           return {
             content: item.content1,
-            pageNo: "銆�" + item.pageNo + "銆� " + "P " + item.pageNo, // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚�
+            bookName: "銆�" + item.bookName + "銆� " + "P " + item.pageNo, // 杩欓噷鍙湁bookid鏃犳硶鍖归厤鍒颁功鍚�
           };
         });
       });
@@ -570,6 +690,7 @@
             b: item.dynasty,
             c: item.writeWay,
             d: item.classify,
+            e: this.detailInfo.NAME,
           };
         });
       });
@@ -647,7 +768,7 @@
         });
       } else if (index == 2) {
         uni.navigateTo({
-          url: "/pages/characterMap/characterMap",
+          url: "/pages/characterMap/characterMap?id=" + this.detailId,
         });
       }
     },
@@ -665,6 +786,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;
@@ -1073,6 +1220,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