zhongshujie
2025-05-14 5c4837cdef21239ab1f192aade5e08b2cb75fcc0
src/views/home/index.vue
@@ -7,11 +7,17 @@
          <p>学术思想传承多维度数据库</p>
        </div>
        <div class="searchBox">
          <SearchBox />
          <SearchBox @search="handleSearch" />
        </div>
      </div>
      <div class="menuBox">
        <div class="menuList">
      <div
        class="menuBox"
        v-loading="loading"
        element-loading-text="加载中"
        element-loading-spinner="el-icon-loading"
        element-loading-background="rgba(0, 0, 0, 0)"
      >
        <div class="menuList" v-show="!loading">
          <div
            class="menu"
            v-for="item in menuList"
@@ -22,8 +28,21 @@
              <img class="autoImg" :src="item.icon" alt="" />
            </div>
            <div class="menuTitle">{{ item.title }}</div>
            <div class="menuSubTitle">{{ item.subTitle }}</div>
            <div class="menuLine"><i class="el-icon-right"></i></div>
            <div class="menuSubTitle" v-if="item.title == '年谱'">
              {{ startYear + "-" + endDate }}
            </div>
            <div class="menuSubTitle" v-else-if="item.title == '学术成果'">
              {{ achievementsNum > 100 ? "100+" : achievementsNum }}
            </div>
            <div class="menuSubTitle" v-else-if="item.title == '荣誉奖项'">
              {{ honorNum > 100 ? "100+" : honorNum }}
            </div>
            <div class="menuSubTitle" v-else-if="item.title == '学生目录'">
              {{ studentNum > 100 ? "100+" : studentNum }}
            </div>
            <div class="menuLine">
              <img class="autoImg" :src="arrow" alt="" />
            </div>
          </div>
        </div>
      </div>
@@ -47,7 +66,7 @@
import rongyu from "@/assets/images/menuIcon/rongyu.png";
import xueshu from "@/assets/images/menuIcon/xueshu.png";
import homeBg from "@/assets/images/homeBg1.jpg";
import arrow from "@/assets/images/right_arrow.svg";
export default {
  components: {
    SearchBox,
@@ -55,11 +74,21 @@
  data() {
    return {
      arrow,
      loading: false,
      resourceList: [
        "journal",
        "books",
        "audio",
        "video",
        "newspaper",
        "other",
      ],
      menuList: [
        {
          icon: nianpu1,
          title: "年谱",
          subTitle: "1936-2024",
          subTitle: "100+",
          path: "/chronology",
        },
        {
@@ -82,17 +111,141 @@
        },
      ],
      introduction: "",
      startYear: "",
      endDate: "",
      achievementsNum: "",
      honorNum: "",
      studentNum: "",
    };
  },
  momunted() {},
  created() {
    this.getPersonInfo();
    this.getListData();
    this.getAchievementList();
    this.getHonorList();
    this.getStudentList();
  },
  methods: {
    goPage(row) {
      console.log(row);
      this.$router.push(row.path);
    },
    getStudentList() {
      this.MG.resource
        .getItem({
          path: "WYY_student",
          fields: {
            // 性别
            gender: "",
            //学习时间
            studyTime: [],
            // 单位
            unit: [],
            // 现工作单位(到二级单位全称)
            currentEmployer_secondary: "",
            //职务
            jobTitle: "",
            professionalTitle: "",
            //学位
            academicDegree: "",
            // 学生简介
            studentProfile: "",
          },
          paging: {
            size: 99999,
          },
        })
        .then((res) => {
          console.log(res, "res1111111");
          this.studentNum = res.total;
          this.loading = false;
        });
    },
    getHonorList() {
      this.MG.resource
        .getItem({
          path: "WYY_honor",
          fields: {
            honor: [],
            year: [],
          },
          paging: {
            start: 0,
            size: 999,
          },
        })
        .then((res) => {
          this.honorNum = res.total;
        });
    },
    getAchievementList() {
      this.MG.resource
        .getItem({
          path: "*",
          queryType: "*",
          paging: {
            start: (this.paginationPage - 1) * 10,
            size: 10,
          },
          sort: {
            year: this.postedSortInfo ? "Desc" : "Asc",
          },
          fields: {
            cmsType: ["cmsItem"],
            "resourceType*": this.resourceList,
            source: [],
            isbn: [],
            year: [],
            particularYear: [],
            contributor: [],
            abstract: [],
            keyWords: [],
            author: [],
            DOI: [],
            AIReading: [],
            file: [],
            IssueNumber: [],
          },
        })
        .then((res) => {
          console.log(res, "res");
          this.achievementsNum = res.total;
        });
    },
    getListData() {
      this.loading = true;
      this.MG.resource
        .getItem({
          path: "WYY_chronology",
          fields: {
            year: [],
            age: [],
            eventOverview: [],
            eventPictures: [],
          },
          paging: {
            start: 0,
            size: 999,
          },
        })
        .then((res) => {
          this.startYear = res.datas[res.datas.length - 1].year.split("/")[0];
          this.endDate = res.datas[0].year.split("/")[0];
        });
    },
    handleSearch(type) {
      if (type.text != "") {
        this.$router.push({
          name: "achievements",
          query: { type: type.type, value: type.text },
        });
      }
    },
    //获取人物介绍
    getPersonInfo() {
@@ -116,7 +269,7 @@
};
</script>
<style>
<style lang="less" scoped>
.home {
  width: 100%;
  height: 100vh;
@@ -125,6 +278,7 @@
  background-size: 98% 95%;
  position: relative;
  box-sizing: border-box;
  font-family: siyuan;
}
.bgBox {
  width: 100%;
@@ -202,12 +356,17 @@
  font-size: 40px;
  font-weight: 600;
  margin-top: 20px;
  font-family: siyuan;
}
.menuSubTitle {
  font-size: 28px;
  margin-top: 20px;
  font-family: siyuan;
}
.menuLine {
  width: 30px;
  height: 30px;
  position: relative;
  margin-top: 40px;
  font-size: 40px;
}
@@ -242,10 +401,22 @@
  text-align: center;
}
@media screen and (min-width: 1950px) {
::v-deep .el-loading-spinner {
  .el-loading-text {
    font-size: 14px;
    color: #937950;
  }
  .el-icon-loading {
    font-size: 14px;
    color: #937950;
  }
}
/* @media screen and (min-width: 1950px) {
  .textInfo {
    font-size: 20px;
    line-height: 24px;
  }
}
} */
</style>