YM
2024-07-26 fe85e4208e502c78e3494a460617ae8753f51341
src/pages/academicSchools/index.vue
@@ -2,7 +2,7 @@
  <view
    style="width: 100%; height: 100%; display: flex; flex-direction: column"
  >
    <headNav :idIndex="'6'" text="学术流派" />
    <headNav :idIndex="'6'" text="学术图谱" />
    <!-- 高级搜索 -->
    <view
      style="
@@ -149,13 +149,14 @@
            empty-text="暂无搜索信息"
            size="small"
            :border="true"
            :height="tableData.length > 0 ? '443' : 'auto'"
          >
            <el-table-column
              prop="id"
              label="序号"
              width="70"
            ></el-table-column>
            <el-table-column prop="name" width="120" label="姓名">
            <el-table-column prop="name" width="150" label="姓名">
              <template slot-scope="scope">
                <a
                  style="cursor: pointer; color: #027edc"
@@ -175,22 +176,22 @@
            <el-table-column
              prop="medicalBranch"
              label="医学分科"
              width="120"
              width="150"
            ></el-table-column>
            <el-table-column prop="workName" label="作品"></el-table-column>
            <el-table-column
              prop="personLabel"
              width="120"
              width="150"
              label="人物标签"
            ></el-table-column>
            <el-table-column
              prop="socialDistinction"
              label="社会身份"
              width="120"
              width="150"
            ></el-table-column>
            <el-table-column
              prop="period"
              width="120"
              width="150"
              label="时期"
            ></el-table-column>
          </el-table>
@@ -198,8 +199,8 @@
            <el-pagination
              class="paging flex"
              background
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
              @size-change="handleSizeChangeForm"
              @current-change="handleCurrentChangeForm"
              :current-page="formData.currentPage"
              :page-sizes="[10, 20, 60, 100]"
              :page-size="formData.pageSize"
@@ -219,7 +220,7 @@
            }
          "
        ></i>
        <el-table :data="personList" style="width: 100%">
        <el-table :data="personList" style="width: 100%" :max-height="600">
          <el-table-column prop="name" label="姓名">
            <template slot-scope="scope">
              <span
@@ -248,7 +249,7 @@
      style="margin-top: 0.1rem; flex: 1; width: 100%; position: relative"
    >
      <div
        v-if="!loading && links.length == 0"
        v-if="!loading && nodeDatas.length == 0"
        style="
          position: absolute;
          top: 30%;
@@ -297,11 +298,10 @@
        <span @click="closeDom">关闭</span>
      </div>
      <div class="content">
        <p>姓名:{{ detailData.name }}</p>
        <p>别名:{{ detailData.alias }}</p>
        <p>籍贯:{{ detailData.nativePlace }}</p>
        <p>医学分科: {{ detailData.medicalBranch }}</p>
        <p>小传:{{ detailData.biography }}</p>
        <p>代表人物:{{ detailData.character }}</p>
        <p>重要医家:{{ detailData.skilledDoctor }}</p>
        <p>代表性著作:{{ detailData.works }}</p>
        <p>学派思想: {{ detailData.thought }}</p>
      </div>
      <div class="btn" @click="spaceTimeArr(detailData.id)">查看更多>>></div>
    </div>
@@ -420,28 +420,28 @@
      // 分类
      categories: [
        {
          name: "亲属关系",
          name: "亲属关系"
        },
        {
          name: "师承关系",
          name: "师承关系"
        },
        {
          name: "文献作品",
          name: "文献作品"
        },
        {
          name: "社会关系",
          name: "社会关系"
        },
        {
          name: "活动地",
          name: "活动地"
        },
        {
          name: "学术流派",
        },
          name: "学术图谱"
        }
      ],
      // 当前人物信息
      ownInfo: null,
      detailData: {
        name: "",
        name: ""
      },
      isAdvancedSearch: false,
      formData: {
@@ -461,7 +461,7 @@
      personPageInfo: {
        totalCount: 0,
        page: 1,
        limit: 10,
        limit: 10
      },
      personTag: [],
      socialDistinction: [],
@@ -480,7 +480,7 @@
      infoOfPersons: [],
      infoOfSchools: [],
      nodeDatas: [],
      links: [],
      links: []
    };
  },
  mounted() {
@@ -502,7 +502,7 @@
      this.gridData = [];
      this.getAddressList();
    },
    //  分页
    // 分页
    handleSizeChange(val) {
      this.pageSize = val;
      this.getAddressList();
@@ -511,13 +511,22 @@
      this.page = val;
      this.getAddressList();
    },
    handleSizeChangeForm(val) {
      this.formData.pageSize = val;
      this.searchFun();
    },
    handleCurrentChangeForm(val) {
      this.formData.page = val;
      this.searchFun();
    },
    // 表格选择
    handleSelectionChange(val) {
      const data = val.map((item) => {
        return {
          ...item,
          name: item.currentName,
          id: item.dynastyId,
          id: item.dynastyId
        };
      });
      this.formData.actively = data;
@@ -538,7 +547,7 @@
          return {
            ...item,
            name: item.currentName,
            id: item.dynastyId,
            id: item.dynastyId
          };
        });
        this.formData.actively = data;
@@ -549,7 +558,7 @@
    getAddressList() {
      const data = {
        page: this.page,
        pageSize: this.pageSize,
        pageSize: this.pageSize
      };
      if (this.dynastyId != "") {
        data["dynastyId"] = this.dynastyId;
@@ -565,7 +574,7 @@
          this.gridData = res?.list?.map((item, i) => {
            return {
              ...item,
              index: i,
              index: i
            };
          });
        } else {
@@ -600,7 +609,6 @@
        total: 0,
      };
    },
    searchFun() {
      const palceData = this.formData.actively?.map((item) => {
        return {
@@ -627,48 +635,90 @@
              id: item.personId,
              name:
                item?.NAME?.map((e, i) => {
                  i += 1;
                  return e["content" + i];
                }).join("、") ?? "",
                  let data = [];
                  Object.entries(e).forEach((c) => {
                    if (c[0]?.indexOf("content") > -1) {
                      data.push(c[1]);
                    }
                  });
                  return data;
                }).join() ?? "",
              alias:
                item?.ALIAS?.map((e, i) => {
                  i += 1;
                  return e["content" + i];
                }).join("、") ?? "",
                  let data = [];
                  Object.entries(e).forEach((c) => {
                    if (c[0]?.indexOf("content") > -1) {
                      data.push(c[1]);
                    }
                  });
                  return data;
                }).join() ?? "",
              place:
                item?.NATIVE_PLACE?.map((e, i) => {
                  i += 1;
                  return e["content" + i];
                }).join("、") ?? "",
                  let data = [];
                  Object.entries(e).forEach((c) => {
                    if (c[0]?.indexOf("content") > -1) {
                      data.push(c[1]);
                    }
                  });
                  return data;
                }).join() ?? "",
              medicalBranch:
                item?.MEDICAL_BRANCH?.map((e, i) => {
                  i += 1;
                  return e["content" + i];
                }).join("、") ?? "",
                  let data = [];
                  Object.entries(e).forEach((c) => {
                    if (c[0]?.indexOf("content") > -1) {
                      data.push(c[1]);
                    }
                  });
                  return data;
                }).join() ?? "",
              socialDistinction:
                item?.SOCIAL_IDENTITY?.map((e, i) => {
                  i += 1;
                  return e["content" + i];
                }).join("、") ?? "",
                  let data = [];
                  Object.entries(e).forEach((c) => {
                    if (c[0]?.indexOf("content") > -1) {
                      data.push(c[1]);
                    }
                  });
                  return data;
                }).join() ?? "",
              period:
                item?.PERIOD?.map((e, i) => {
                  i += 1;
                  return e["content" + i];
                }).join("、") ?? "",
                  let data = [];
                  Object.entries(e).forEach((c) => {
                    if (c[0]?.indexOf("content") > -1) {
                      data.push(c[1]);
                    }
                  });
                  return data;
                }).join() ?? "",
              workName:
                item?.REPRESENTATIVE_WORKS?.map((e, i) => {
                  i += 1;
                  return e["content" + i];
                }).join("、") ?? "",
                  let data = [];
                  Object.entries(e).forEach((c) => {
                    if (c[0]?.indexOf("content") > -1) {
                      data.push(c[1]);
                    }
                  });
                  return data;
                }).join() ?? "",
              personLabel:
                item?.PERSON_LABEL?.map((e, i) => {
                  i += 1;
                  return e["content" + i];
                }).join("、") ?? "",
                  let data = [];
                  Object.entries(e).forEach((c) => {
                    if (c[0]?.indexOf("content") > -1) {
                      data.push(c[1]);
                    }
                  });
                  return data;
                }).join() ?? "",
            };
          });
          // 总数量
          this.formData.total = res.npage.totalCount;
          if (res?.npage) {
            // 总数量
            this.formData.total = res.npage.totalCount;
          }
        }
      });
    },
@@ -696,7 +746,7 @@
            parentName: parent?.NAME[0]?.content1 ?? parent.parentName,
            name: personInfo?.NAME[0]?.content1,
            category: type,
            symbolSize: 15,
            symbolSize: 15
          };
          if (order > 80) {
            order = 80;
@@ -798,7 +848,7 @@
              const data = item[str]?.map((e) => {
                return {
                  ...e,
                  personId: item.personId,
                  personId: item.personId
                };
              });
              if (ele[str] && data?.length) {
@@ -932,7 +982,7 @@
        //       place = [...newArr];
        //     }
        //     if (obj.schoolList?.length) {
        //       this.categories.push({ name: "学术流派" });
        //       this.categories.push({ name: "学术图谱" });
        //       let newArr = [];
        //       const data = this.changeLiterature(obj.schoolList, "schoolList");
        //       this.getPersonInfo(
@@ -987,8 +1037,8 @@
            id: item.mainId,
            name: mainPerson.NAME[0].content1,
            itemStyle: {
              color: "#244a7b",
            },
              color: "#244a7b"
            }
          });
        } else {
          switch (parent.thisType) {
@@ -1005,7 +1055,7 @@
                  this.nodeDatas.push({
                    category: 0,
                    id: item.mainId,
                    name: p.NAME[0].content1,
                    name: p.NAME[0].content1
                  });
                }
              }
@@ -1021,8 +1071,8 @@
                  padding: [3, 8],
                  borderRadius: 30,
                  position: "middle", // 设置标签文本在线的中间位置上居中显示
                  distance: -10, // 将标签放置在连接线上
                },
                  distance: -10 // 将标签放置在连接线上
                }
              });
              break;
            case 2:
@@ -1034,12 +1084,12 @@
                this.nodeDatas.push({
                  category: 2,
                  id: item.mainId,
                  name: item.literatureName,
                  name: item.literatureName
                });
              }
              this.links.push({
                source: item.mainId,
                target: parent.mainId,
                target: parent.mainId
              });
              break;
            case 3:
@@ -1051,12 +1101,12 @@
                this.nodeDatas.push({
                  category: 4,
                  id: item.mainId,
                  name: item.ancientName,
                  name: item.ancientName
                });
              }
              this.links.push({
                source: item.mainId,
                target: parent.mainId,
                target: parent.mainId
              });
              break;
            case 4:
@@ -1072,13 +1122,13 @@
                  this.nodeDatas.push({
                    category: 5,
                    id: item.mainId,
                    name: s.name[0],
                    name: s.name[0]
                  });
                }
              }
              this.links.push({
                source: item.mainId,
                target: parent.mainId,
                target: parent.mainId
              });
              break;
            case 5:
@@ -1094,7 +1144,7 @@
                  this.nodeDatas.push({
                    category: 3,
                    id: item.mainId,
                    name: p.NAME[0].content1,
                    name: p.NAME[0].content1
                  });
                }
              }
@@ -1110,8 +1160,8 @@
                  padding: [3, 8],
                  borderRadius: 30,
                  position: "middle", // 设置标签文本在线的中间位置上居中显示
                  distance: -10, // 将标签放置在连接线上
                },
                  distance: -10 // 将标签放置在连接线上
                }
              });
              break;
            case 6:
@@ -1127,7 +1177,7 @@
                  this.nodeDatas.push({
                    category: 1,
                    id: item.mainId,
                    name: p.NAME[0].content1,
                    name: p.NAME[0].content1
                  });
                }
              }
@@ -1143,8 +1193,8 @@
                  padding: [3, 8],
                  borderRadius: 30,
                  position: "middle", // 设置标签文本在线的中间位置上居中显示
                  distance: -10, // 将标签放置在连接线上
                },
                  distance: -10 // 将标签放置在连接线上
                }
              });
              break;
          }
@@ -1162,7 +1212,7 @@
        if (item.placeList && item.placeList.length) {
          this.handleData(item.placeList, { ...item, thisType: 3 });
        }
        // 学术流派
        // 学术图谱
        if (item.schoolList && item.schoolList.length) {
          this.handleData(item.schoolList, { ...item, thisType: 4 });
        }
@@ -1195,7 +1245,7 @@
        }
        return {
          ...item,
          symbolSize: size > 80 ? 80 : size,
          symbolSize: size > 80 ? 80 : size
        };
      });
@@ -1229,8 +1279,8 @@
            orient: "vertical",
            data: this.categories.map(function (a) {
              return a.name;
            }),
          },
            })
          }
        ],
        series: [
          {
@@ -1245,27 +1295,27 @@
            label: {
              show: true,
              position: "right",
              formatter: "{b}",
              formatter: "{b}"
            },
            scaleLimit: {
              min: 0.4,
              max: 2,
              max: 2
            },
            lineStyle: {
              color: "source",
              curveness: 0.2,
              curveness: 0.2
            },
            emphasis: {
              focus: "adjacency",
              lineStyle: {
                width: 5,
              },
                width: 5
              }
            },
            force: {
              repulsion: 600,
              edgeLength: 300,
            },
          },
              edgeLength: 300
            }
          }
        ],
        color: [
          "#5470c6",
@@ -1273,8 +1323,8 @@
          "#fac858",
          "#ee6666",
          "#ea7ccc",
          "#9a60b4",
        ],
          "#9a60b4"
        ]
      };
      // 设置点击事件监听
      myChart.off("click");
@@ -1319,7 +1369,7 @@
              i += 1;
              return e["content" + i];
            }).join("、") ?? "",
          biography: data?.BIOGRAPHY ?? "",
          biography: data?.BIOGRAPHY ?? ""
        };
        this.detailData = obj;
      }
@@ -1330,30 +1380,24 @@
        div.style.display = "block";
        div.style.left = e.offsetX + 50 + "px";
        div.style.top = e.offsetY - 50 + "px";
        const data = this.infoOfPersons?.find((i) => i.id == id);
        const data = this.infoOfSchools?.find((i) => i.schoolId == id);
        console.log(data);
        debugger
        const obj = {
          id: params.data.id,
          name:
            data?.NAME?.map((e, i) => {
              i += 1;
              return e["content" + i];
            }).join("、") ?? "",
          alias:
            data?.ALIAS?.map((e, i) => {
              i += 1;
              return e["content" + i];
            }).join("、") ?? "",
          nativePlace:
            data?.NATIVE_PLACE?.map((e, i) => {
              i += 1;
              return e["content" + i];
            }).join("、") ?? "",
          medicalBranch:
            data?.MEDICAL_BRANCH?.map((e, i) => {
              i += 1;
              return e["content" + i];
            }).join("、") ?? "",
          biography: data?.BIOGRAPHY ?? "",
          name: data.name[0],
          character: data.important_PEOPLE
            ? data.important_PEOPLE.map((item) => item.content2).join("、")
            : "",
          skilledDoctor: data.important_PHYSICIAN
            ? data.important_PHYSICIAN.map((item) => item.content2).join("、")
            : "",
          works: data.important_WORK
            ? data.important_WORK.map((item) => item.content).join("、")
            : "",
          thought: data.school_THOUGHT
            ? data.school_THOUGHT.map((item) => item.content).join("、")
            : ""
        };
        this.detailData = obj;
      }
@@ -1366,7 +1410,6 @@
    // 基础搜索
    onSearch(val, index) {
      console.log(val);
      if (index !== undefined) {
        // 热门搜索关键字,直接查询数据
        this.searchKey = "";
@@ -1385,8 +1428,8 @@
    searchPerson(key) {
      academicSearch({
        keyword: key,
        page: this.personPageInfo.page,
        pageSize: this.personPageInfo.limit,
        page: 1,
        pageSize: 999
      }).then((res) => {
        this.personList = res.list.map((item) => {
          return {
@@ -1407,7 +1450,7 @@
            division:
              item.medicalBranchList && item.medicalBranchList.length
                ? item.medicalBranchList[0].content1
                : "-",
                : "-"
          };
        });
        this.showPerson = true;
@@ -1418,7 +1461,7 @@
    spaceTimeArr(id) {
      // 关系图的数据
      uni.navigateTo({
        url: "/pages/character/detail?id=" + id,
        url: "/pages/character/detail?id=" + id
      });
    },
@@ -1444,7 +1487,7 @@
        this.hotKeyList = indexList.map((item) => {
          return {
            id: item,
            name: res.object[item],
            name: res.object[item]
          };
        });
      });
@@ -1460,8 +1503,8 @@
      //     document.querySelector(".fbox1").style.height = box1Height + "px";
      //   }
      // });
    },
  },
    }
  }
};
</script>
@@ -1477,6 +1520,14 @@
  color: #333;
  font-weight: normal;
  font-size: 14px;
}
.fromTable
  .drawerPage
  >>> .el-pagination.is-background
  .el-pager
  li:not(.disabled).active {
  background-color: rgb(36, 74, 123) !important;
}
.customDrawer >>> .el-drawer__header {
@@ -1520,12 +1571,6 @@
  justify-content: flex-end;
  padding: 20px 0;
  box-sizing: border-box;
}
.drawerPage
  >>> .el-pagination.is-background
  .el-pager
  li:not(.disabled).active {
}
.drawerBtn {