1
YM
2024-06-11 a4fe90ef374a9a3144fb8de5d7229dd11bfa7ff4
src/pages/character/detail.vue
@@ -290,11 +290,16 @@
              <span>相关附表/图像</span>
            </div>
            <view>
              <div class="flex">
              <div style="overflow: auto">
                <el-image
                  v-for="item in imageList"
                  :key="item"
                  style="width: 2.05rem; height: 2.4rem"
                  style="
                    width: 2.05rem;
                    height: 2.4rem;
                    margin-right: 0.2rem;
                    margin-bottom: 0.1rem;
                  "
                  :src="item"
                  fit="fill"
                ></el-image>
@@ -318,8 +323,9 @@
            >
              <span>现代研究</span>
            </div>
            <ul class="font-family" style="font-size: 0.13rem; line-height: 2">
            <ul class="fileul" style="font-size: 0.13rem; line-height: 2">
              <li
                style="cursor: pointer"
                v-for="(item, index) in personResearchList"
                :key="index"
                @click="toLink(item)"
@@ -339,7 +345,15 @@
    </div>
    <!-- 返回顶部 -->
    <el-col style="position: absolute; bottom: 1rem; left: 1.2rem">
    <el-col
      style="
        position: absolute;
        bottom: 1rem;
        left: 1.2rem;
        width: 0.6rem;
        height: 0.6rem;
      "
    >
      <el-button
        style="font-size: 0.3rem"
        icon="el-icon-top"
@@ -392,6 +406,7 @@
import {
  getFuzzySearch,
  getPersonInfo,
  getRelationTypeTreeList,
  getWebBasic,
  getIntroduction,
  getSource,
@@ -399,7 +414,8 @@
  getPersonBiog,
  getPersonWritings,
  getPersonRelationAtSchool,
  getSpaceTime
  getSpaceTime,
  getDynastyData,
} from "@/api/index.js";
import { getImg } from "@/static/tool.js";
import L from "leaflet";
@@ -526,7 +542,8 @@
  },
  methods: {
    copyText() {
      const textToCopy = this.biogData[0].content + " 来源:中医医学人物知识库";
      const textToCopy =
        this.biogData[0].content + "\n来源:中医医学人物知识库";
      const textarea = document.createElement("textarea");
      textarea.value = textToCopy;
      document.body.appendChild(textarea);
@@ -539,7 +556,13 @@
      });
    },
    toLink(item) {
      window.open(item.url);
      console.log(item);
      if (item.url) {
        window.open(item.url);
      }
      if (item.filePath) {
        window.open(getImg(item.filePath));
      }
    },
    getData() {
      // 基本信息
@@ -560,6 +583,7 @@
              : fieldItem.content1;
          }
        }
        console.log(obj);
        this.detailInfo = obj;
        // 关系图谱
        this.getMappingData(this.detailInfo.NAME);
@@ -620,7 +644,14 @@
            },
            {
              name: "所处时期",
              value: obj.dynastyDesc || "-"
              value: obj.dynastyDesc || "-",
              valueClick: () => {
                uni.navigateTo({
                  url:
                    "/pages/knowledgeBase/knowledgeBase?dynasty=" +
                    obj.dynastyId
                });
              }
            },
            {
              name: "民族",
@@ -640,7 +671,14 @@
            },
            {
              name: "职官",
              value: obj.official || "-"
              value: obj.official || "-",
              valueClick: () => {
                uni.navigateTo({
                  url:
                    "/pages/knowledgeBase/knowledgeBase?isAdvancedSearch=1&official=" +
                    obj.official
                });
              }
            },
            {
              name: "流派",
@@ -681,7 +719,11 @@
        this.biogData = res.list.map((item) => {
          return {
            content: item.content1,
            bookName: "《" + item.bookName + "》 " + "P " + item.pageNo // 这里只有bookid无法匹配到书名
            bookName:
              "《" +
              item.bookName +
              "》 " +
              (item.pageNo ? "P " + item.pageNo : "") // 这里只有bookid无法匹配到书名
          };
        });
      });
@@ -702,6 +744,10 @@
      });
    },
    getRelationship() {
      getRelationTypeTreeList().then((res) => {
        console.log(res, "getRelationTypeTreeList");
        console.log(res);
      });
      // getPersonRelationAtSchool({
      //   personId: this.detailId,
      // }).then((res) => {
@@ -715,6 +761,37 @@
      //     });
      //   }
      // });
      getPersonInfo({
        id: this.detailId,
        type: "PERSON_RELATIONS"
      }).then((res) => {
        this.tableData4;
        console.log(res, "PERSON_RELATIONS");
        if (res.object.personRelationMap.kin.length) {
          this.tableData2 = res.object.personRelationMap.kin.map((f) => {
            return {
              a: f.nodeName,
              b: f.relationTypeName,
            };
          });
        }
        if (res.object.personRelationMap.teacherStudent.length) {
          this.tableData3 = res.object.personRelationMap.teacherStudent.map((f) => {
            return {
              a: f.nodeName,
              b: f.relationTypeName,
            };
          });
        }
        if (res.object.personRelationMap.social.length) {
          this.tableData4 = res.object.personRelationMap.social.map((f) => {
            return {
              a: f.nodeName,
              b: f.relationTypeName,
            };
          });
        }
      });
      // 社会关系
      getPersonRelationAtSchool({
        personId: this.detailId,
@@ -734,6 +811,7 @@
        personId: this.detailId,
        relationSearchTypeEO: "KINSHIP"
      }).then((res) => {
        console.log(res, "123123");
        if (res.list && res.list.length) {
          this.tableData2 = res.list.map((f) => {
            return {
@@ -773,13 +851,13 @@
              (node) => node.id === item.identifier2 && node.name === item.name2
            );
            // 证明不存在
            if (exists1 !== true) {
            if (item.name1 && exists1 !== true) {
              this.nodes.push({
                name: item.name1,
                id: item.identifier1
              });
            }
            if (exists2 !== true) {
            if (item.name2 && exists2 !== true) {
              this.nodes.push({
                name: item.name2,
                id: item.identifier2
@@ -801,15 +879,23 @@
        personId: this.detailId
      }).then((res) => {
        if (res.list && res.list.length) {
          const data = res.list.map((item) => {
            return {
              name: item.activityName,
              value: [item.xcoord, item.ycoord]
            };
          });
          const data = [];
          for (let i = 0; i < res.list.length; i++) {
            const item = res.list[i];
            if (item.xcoord && item.ycoord) {
              const obj = {
                name: item.activityName,
                value: [item.xcoord, item.ycoord]
              };
              data.push(obj);
            }
          }
          this.markerList = data;
          // 时空地图
          this.initMap(data[0]);
          // 这里只取了第一条,需要全部数据
          if (data && data.length) {
            this.initMap(data);
          }
        }
        // loadBMap("1NJdwrI1CfT6lrykVhDkmWgsO6O2bjQK").then(() => {
@@ -821,9 +907,16 @@
      var map = L.map("spaceTime", {
        preferCanvas: true,
        attributionControl: false
      }).setView([markerList.value[1], markerList.value[0]], 13);
      }).setView([markerList[0].value[1], markerList[0].value[0]], 13);
      L.tileLayer
        .chinaProvider("TianDiTu.Normal.Map", {
          key: "76bc34ead7e30e663a4eded8aeaf5860",
          maxZoom: 18,
          minZoom: 3
        })
        .addTo(map);
      L.tileLayer
        .chinaProvider("TianDiTu.Normal.Annotion", {
          key: "76bc34ead7e30e663a4eded8aeaf5860",
          maxZoom: 18,
          minZoom: 3
@@ -838,6 +931,14 @@
      const temp_mark = L.marker([markerList.value[1], markerList.value[0]], {
        icon: icon
      }).addTo(map);
      if (markerList.length) {
        for (let i = 0; i < markerList.length; i++) {
          const item = markerList[i];
          const temp_mark = L.marker([item.value[1], item.value[0]], {
            icon: icon
          }).addTo(map);
        }
      }
    },
    // 放大地图跳转
    fangdaClick(index) {
@@ -1297,10 +1398,6 @@
  padding: 0;
}
::v-deep .el-dialog__wrapper {
  z-index: 999999999999999 !important;
}
.ProfileNav {
  width: 100%;
  height: 0.7rem;
@@ -1488,4 +1585,8 @@
    opacity: 0;
  }
}
.fileul li:hover {
  color: #597aa5;
}
</style>