杨磊
2024-07-26 652a4348e1b2e1b5253c562bd37e15e2c5518ea7
src/pages/academicSchools/index.vue
@@ -149,50 +149,65 @@
            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="personName" width="120" label="姓名">
            <el-table-column prop="name" width="150" label="姓名">
              <template slot-scope="scope">
                <a
                  style="cursor: pointer; color: #027edc"
                  @click="gotoDetail(scope.row.id)"
                  >{{ scope.row.personName }}</a
                  @click="
                    () => {
                      currentId = scope.row.id;
                      getData();
                      isAdvancedSearch = false;
                    }
                  "
                  >{{ scope.row.name }}</a
                >
              </template>
            </el-table-column>
            <el-table-column prop="personAlias" label="别名"></el-table-column>
            <el-table-column prop="palce" label="活动地"></el-table-column>
            <el-table-column prop="alias" label="别名"></el-table-column>
            <el-table-column prop="place" label="活动地"></el-table-column>
            <el-table-column
              prop="birthYear"
              prop="medicalBranch"
              label="医学分科"
              width="120"
              width="150"
            ></el-table-column>
            <el-table-column prop="deathYear" label="作品"></el-table-column>
            <el-table-column prop="workName" label="作品"></el-table-column>
            <el-table-column
              prop="nativePlace"
              width="120"
              prop="personLabel"
              width="150"
              label="人物标签"
            ></el-table-column>
            <el-table-column
              prop="socialDistinction"
              label="社会身份"
              width="120"
              width="150"
            ></el-table-column>
            <el-table-column
              prop="official"
              width="120"
              prop="period"
              width="150"
              label="时期"
            ></el-table-column>
          </el-table>
          <div style="text-align: right; padding-top: 20px">
            <el-button
              style="width: 120px; background-color: #244a7b; color: #fff"
              >确认</el-button
          <div class="drawerPage">
            <el-pagination
              class="paging flex"
              background
              @size-change="handleSizeChangeForm"
              @current-change="handleCurrentChangeForm"
              :current-page="formData.currentPage"
              :page-sizes="[10, 20, 60, 100]"
              :page-size="formData.pageSize"
              layout="total, sizes, prev, pager, next, jumper"
              :total="formData.total"
            >
            </el-pagination>
          </div>
        </div>
      </view>
@@ -234,7 +249,7 @@
      style="margin-top: 0.1rem; flex: 1; width: 100%; position: relative"
    >
      <div
        v-if="!loading && relationships.length == 0"
        v-if="!loading && nodeDatas.length == 0"
        style="
          position: absolute;
          top: 30%;
@@ -383,7 +398,8 @@
  getPersonTag,
  getSocialDistinction,
  getDynastyAll,
  getPlaceInfo
  getAdvancedData,
  getPlaceInfo,
} from "@/api/index.js";
import * as echarts from "echarts";
export default {
@@ -434,7 +450,11 @@
        works: "",
        personTags: "",
        socialIdentity: "",
        period: ""
        period: "",
        page: 1,
        currentPage: 1,
        pageSize: 10,
        total: 0,
      },
      showPerson: false,
      personList: [],
@@ -482,7 +502,7 @@
      this.gridData = [];
      this.getAddressList();
    },
    //  分页
    // 分页
    handleSizeChange(val) {
      this.pageSize = val;
      this.getAddressList();
@@ -490,6 +510,15 @@
    handleCurrentChange(val) {
      this.page = val;
      this.getAddressList();
    },
    handleSizeChangeForm(val) {
      this.formData.pageSize = val;
      this.searchFun();
    },
    handleCurrentChangeForm(val) {
      this.formData.page = val;
      this.searchFun();
    },
    // 表格选择
    handleSelectionChange(val) {
@@ -548,12 +577,6 @@
              index: i
            };
          });
          setTimeout(() => {
            this.multipleTableSelection.forEach((row) => {
              this.$refs.multipleTable.toggleRowSelection(row);
            });
            this.formData.actively = this.multipleTableSelection;
          }, 2000);
        } else {
          this.gridData = [];
        }
@@ -577,14 +600,127 @@
        name: "",
        actively: [],
        works: "",
        personTags: "",
        socialIdentity: "",
        period: ""
        personTags: [],
        socialIdentity: [],
        period: [],
        page: 1,
        currentPage: 1,
        pageSize: 10,
        total: 0,
      };
    },
    searchFun() {
      console.log(this.formData);
      const palceData = this.formData.actively?.map((item) => {
        return {
          ancientName: item.ancientName ?? "",
          dynastyId: item.dynastyId,
          currentName: item.currentName,
        };
      });
      let Obj = {
        keyword: this.formData.name,
        placeList: [...palceData],
        literatureName: this.formData.works,
        personTagIdList: this.formData.personTags,
        socialDistinctionIdList: this.formData.socialIdentity,
        dynastyIdList: this.formData.period,
        page: this.formData.page,
        pageSize: this.formData.pageSize,
      };
      // // 搜索
      getAdvancedData(Obj).then((res) => {
        if (res?.success) {
          this.tableData = res.list.map((item) => {
            return {
              id: item.personId,
              name:
                item?.NAME?.map((e, i) => {
                  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) => {
                  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) => {
                  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) => {
                  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) => {
                  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) => {
                  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) => {
                  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) => {
                  let data = [];
                  Object.entries(e).forEach((c) => {
                    if (c[0]?.indexOf("content") > -1) {
                      data.push(c[1]);
                    }
                  });
                  return data;
                }).join() ?? "",
            };
          });
          if (res?.npage) {
            // 总数量
            this.formData.total = res.npage.totalCount;
          }
        }
      });
    },
    selectActively() {
@@ -724,6 +860,7 @@
      }
      return arr;
    },
    //数组去重
    deduplicateArray(arr, idKey) {
      // 使用一个辅助对象来跟踪已经见过的ID
@@ -1270,9 +1407,9 @@
      const div = document.getElementById("customDialog");
      div.style.display = "none";
    },
    // 基础搜索
    onSearch(val, index) {
      console.log(val);
      if (index !== undefined) {
        // 热门搜索关键字,直接查询数据
        this.searchKey = "";
@@ -1286,6 +1423,7 @@
        this.searchPerson(val.text);
      }
    },
    // 根据关键字检索人物
    searchPerson(key) {
      academicSearch({
@@ -1318,6 +1456,7 @@
        this.showPerson = true;
      });
    },
    // 关系图 点击里面的元素
    spaceTimeArr(id) {
      // 关系图的数据
@@ -1325,6 +1464,7 @@
        url: "/pages/character/detail?id=" + id
      });
    },
    // 获取朝代echarts的数据
    echartsArr() {
      getDataStatistics().then((res) => {
@@ -1338,6 +1478,7 @@
        });
      });
    },
    // 热门搜索
    hotSearch() {
      getHotSearch().then((res) => {
@@ -1351,6 +1492,7 @@
        });
      });
    },
    isAvancedClick() {
      this.isAdvancedSearch = !this.isAdvancedSearch;
      // this.$nextTick(() => {
@@ -1380,6 +1522,14 @@
  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 {
  margin-bottom: 20px;
  border-bottom: 1px solid #eee;