杨磊
2024-06-12 71e6a0857c5f411b8b8df3df4102cc32e7d32ba1
src/pages/character/detail.vue
@@ -100,7 +100,6 @@
            >
          </view>
          <view
            v-if="biogData.length > 1"
            style="font-size: 0.12rem; color: #244a7b; cursor: pointer"
            @click="ProfileClick"
            >阅读更多></view
@@ -408,6 +407,7 @@
  getPersonInfo,
  getRelationTypeTreeList,
  getWebBasic,
  getDynastyAll,
  getIntroduction,
  getSource,
  getPersonImages,
@@ -415,7 +415,7 @@
  getPersonWritings,
  getPersonRelationAtSchool,
  getSpaceTime,
  getDynastyData,
  getDynastyData
} from "@/api/index.js";
import { getImg } from "@/static/tool.js";
import L from "leaflet";
@@ -478,6 +478,8 @@
        },
        {
          prop: "d",
          width: 300,
          showOverflowTooltip: true,
          label: "出处"
        }
      ],
@@ -556,7 +558,6 @@
      });
    },
    toLink(item) {
      console.log(item);
      if (item.url) {
        window.open(item.url);
      }
@@ -585,6 +586,20 @@
        }
        console.log(obj);
        this.detailInfo = obj;
        getDynastyAll().then((dynastyData) => {
          getWebBasic({
            personId: this.detailId
          }).then((res) => {
            const obj = res.object;
            if (obj.school) {
              getIntroduction(Number(obj.school)).then((sres) => {
                this.handleData(obj, sres, dynastyData.list);
              });
            } else {
              this.handleData(obj, null, dynastyData.list);
            }
          });
        });
        // 关系图谱
        this.getMappingData(this.detailInfo.NAME);
      });
@@ -594,19 +609,6 @@
        type: "PERSON_RESEARCH"
      }).then((res) => {
        this.personResearchList = res.object.personResearchList;
      });
      getWebBasic({
        personId: this.detailId
      }).then((res) => {
        const obj = res.object;
        if (obj.school) {
          getIntroduction(Number(obj.school)).then((sres) => {
            this.handleData(obj, sres);
          });
        } else {
          this.handleData(obj);
        }
      });
      // 活动年谱
@@ -620,19 +622,19 @@
              a: item.time,
              b: item.activityName,
              c: item.activityAddrOld,
              d: item.desc // 这里缺少活动描述字段
              d: item.desc
            };
          });
        }
      });
    },
    handleData(obj, sres) {
    handleData(obj, sres, dynastyData) {
      this.tableArr = [
        {
          list: [
            {
              name: "别名",
              value: obj.alias || "-"
              name: "姓名",
              value: obj.name || "-"
            },
            {
              name: "字",
@@ -644,7 +646,9 @@
            },
            {
              name: "所处时期",
              value: obj.dynastyDesc || "-",
              value:
                dynastyData.find((item) => item.dynastyId == obj.dynastyId)
                  .name || "-",
              valueClick: () => {
                uni.navigateTo({
                  url:
@@ -744,93 +748,64 @@
      });
    },
    getRelationship() {
      getRelationTypeTreeList().then((res) => {
        console.log(res, "getRelationTypeTreeList");
        console.log(res);
      });
      // getPersonRelationAtSchool({
      //   personId: this.detailId,
      // }).then((res) => {
      //   this.personRelationList = res.object.personRelationList;
      //   if (this.personRelationList.length) {
      //     this.tableData4 = this.personRelationList.map((f) => {
      //       return {
      //         a: f.nodeName,
      //         b: f.relationTypeName,
      //       };
      //     });
      //   }
      // });
      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,
              c: f.textualResearch,
              d:
                res.object.bookList &&
                res.object.bookList.find((citem) => citem.id == f.bookId)
                  ? "《" +
                    res.object.bookList.find((citem) => citem.id == f.bookId)
                      .name +
                    "》 P" +
                    f.pageNo
                  : ""
            };
          });
        }
        if (res.object.personRelationMap.teacherStudent.length) {
          this.tableData3 = res.object.personRelationMap.teacherStudent.map((f) => {
            return {
              a: f.nodeName,
              b: f.relationTypeName,
            };
          });
          this.tableData3 = res.object.personRelationMap.teacherStudent.map(
            (f) => {
              return {
                a: f.nodeName,
                b: f.relationTypeName,
                c: f.textualResearch,
                d:
                  res.object.bookList &&
                  res.object.bookList.find((citem) => citem.id == f.bookId)
                    ? "《" +
                      res.object.bookList.find((citem) => citem.id == f.bookId)
                        .name +
                      "》 P" +
                      f.pageNo
                    : ""
              };
            }
          );
        }
        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,
        relationSearchTypeEO: "SOCIAL"
      }).then((res) => {
        if (res.list && res.list.length) {
          this.tableData4 = res.list.map((f) => {
            return {
              a: f.name1,
              b: f.relationName
            };
          });
        }
      });
      // 亲属关系
      getPersonRelationAtSchool({
        personId: this.detailId,
        relationSearchTypeEO: "KINSHIP"
      }).then((res) => {
        console.log(res, "123123");
        if (res.list && res.list.length) {
          this.tableData2 = res.list.map((f) => {
            return {
              a: f.name1,
              b: f.relationName
            };
          });
        }
      });
      // 师承关系
      getPersonRelationAtSchool({
        personId: this.detailId,
        relationSearchTypeEO: "INHERITANCE"
      }).then((res) => {
        if (res.list && res.list.length) {
          this.tableData3 = res.list.map((f) => {
            return {
              a: f.name1,
              b: f.relationName
              c: f.textualResearch,
              d:
                res.object.bookList &&
                res.object.bookList.find((citem) => citem.id == f.bookId)
                  ? "《" +
                    res.object.bookList.find((citem) => citem.id == f.bookId)
                      .name +
                    "》 P" +
                    f.pageNo
                  : ""
            };
          });
        }
@@ -1027,25 +1002,8 @@
      let FontSize = 12; // 字体大小
      let BorderWidth = 2; // 边框大小
      let SymbolSize = 80; // 尺寸距离
      let SymbolSize = 50; // 尺寸距离
      let Distance = 10;
      // 不同尺寸下修改echarts的字体
      if (window.innerWidth > 2560 && window.innerWidth <= 3840) {
        FontSize = 28;
        BorderWidth = 5;
        SymbolSize = 100;
        Distance = 33;
      } else if (window.innerWidth > 1920 && window.innerWidth <= 2560) {
        FontSize = 28;
        BorderWidth = 4;
        SymbolSize = 90;
        Distance = 22;
      } else if (window.innerWidth >= 1366 && window.innerWidth <= 1920) {
        FontSize = 18;
        BorderWidth = 4;
        SymbolSize = 70;
        Distance = 22;
      }
      // 根据关系数据生成连接线
      var links = [];
      relationships.forEach((relationship, i) => {