From f65eb0dfefd593058abaf51404a7472677c4473e Mon Sep 17 00:00:00 2001
From: YM <479443481@qq.com>
Date: 星期一, 20 五月 2024 16:54:40 +0800
Subject: [PATCH] 地图层级

---
 src/pages/character/detail.vue |  335 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 228 insertions(+), 107 deletions(-)

diff --git a/src/pages/character/detail.vue b/src/pages/character/detail.vue
index 97bea81..857b0fa 100644
--- a/src/pages/character/detail.vue
+++ b/src/pages/character/detail.vue
@@ -1,15 +1,25 @@
 <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
             style="
               background-color: #fff;
@@ -20,6 +30,7 @@
               text-align: center;
               margin-right: 0.15rem;
             "
+            @click="openFileClick(1)"
           >
             RDF
           </li>
@@ -32,7 +43,9 @@
               font-size: 0.12rem;
               text-align: center;
               margin-right: 0.15rem;
+              cursor: pointer;
             "
+            @click="openFileClick(2)"
           >
             NT
           </li>
@@ -45,7 +58,9 @@
               font-size: 0.12rem;
               text-align: center;
               margin-right: 0.15rem;
+              cursor: pointer;
             "
+            @click="openFileClick(3)"
           >
             XML
           </li>
@@ -58,7 +73,9 @@
               font-size: 0.12rem;
               text-align: center;
               margin-right: 0.15rem;
+              cursor: pointer;
             "
+            @click="openFileClick(4)"
           >
             JSON
           </li>
@@ -71,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
@@ -83,20 +104,21 @@
               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>
-    <div style="padding: 0 1.2rem 0; padding-top: 0.24rem;display: flex;">
+    <div style="padding: 0 1.2rem 0; padding-top: 0.24rem; display: flex">
       <!-- 宸︿晶 -->
       <div
         :span="5"
@@ -104,7 +126,10 @@
         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="
@@ -113,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"
@@ -129,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"
@@ -183,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>
       </div>
       <!-- 鍙充晶 -->
-      <div :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="
@@ -208,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"
@@ -256,14 +321,22 @@
             >
               <span>鐩稿叧闄勮〃/鍥惧儚</span>
             </div>
-            <view class="flex">
-              <el-image
-                v-for="item in imageList"
-                :key="item"
-                style="width: 2.05rem; height: 2.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">
@@ -277,7 +350,10 @@
             >
               <span>鐜颁唬鐮旂┒</span>
             </div>
-            <ul class="font-family" style="font-size: 0.13rem; line-height: 2">
+            <ul
+              class="font-family"
+              style="font-size: 0.13rem; line-height: 2"
+            >
               <li
                 v-for="(item, index) in personResearchList"
                 :key="index"
@@ -285,6 +361,12 @@
               >
                 {{ "[" + Number(index + 1) + "]" + item.achievementName }}
               </li>
+              <div
+                v-if="personResearchList.length == 0"
+                style="color: #666; text-align: center; font-size: 16px"
+              >
+                鏆傛棤鏁版嵁
+              </div>
             </ul>
           </el-card>
         </div>
@@ -301,7 +383,10 @@
       ></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"
@@ -324,9 +409,7 @@
           </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>
@@ -476,9 +559,14 @@
   },
   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",
@@ -516,7 +604,6 @@
         id: this.detailId,
         type: "PERSON_RESEARCH",
       }).then((res) => {
-        console.log(res, "123123123");
         this.personResearchList = res.object.personResearchList;
       });
       getPersonInfo({
@@ -539,66 +626,16 @@
       }).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,
@@ -613,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({
@@ -746,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;
@@ -1154,10 +1275,10 @@
 .BoxLeft ::v-deep.el-card__body {
   padding: 0.1rem 0.11rem !important;
 }
-.BoxLeft{
+.BoxLeft {
   width: 30%;
 }
-.BoxRight{
+.BoxRight {
   width: 70%;
 }
 

--
Gitblit v1.9.1