杨磊
4 天以前 060c875b23539dc338e780ddfc187394a40743a9
src/views/achievements/index.vue
@@ -170,33 +170,21 @@
              </li>
            </ul>
            <!-- 学科 -->
            <ul>
            <!-- <ul>
              <li class="left-title">
                <span>{{ subject.title }}</span>
                <p @click="subject.isDisplay = !subject.isDisplay">
                  <img
                    :src="[subject.isDisplay ? topIcon : bottomIcon]"
                    alt=""
                  />
                  <img :src="[subject.isDisplay ? topIcon : bottomIcon]" alt="" />
                </p>
              </li>
              <li class="left-main" v-if="subject.isDisplay">
                <div
                  class="category-main"
                  v-for="(item, index) in subject.list"
                  :key="index"
                >
                  <el-checkbox
                    class="el-checkbox"
                    v-model="item.checked"
                    :title="item.name"
                    @change="subjectChange(item)"
                    >{{ item.name }}</el-checkbox
                  >
                <div class="category-main" v-for="(item, index) in subject.list" :key="index">
                  <el-checkbox class="el-checkbox" v-model="item.checked" :title="item.name"
                    @change="subjectChange(item)">{{ item.name }}</el-checkbox>
                  <span class="">{{ item.num }}</span>
                </div>
              </li>
            </ul>
            </ul> -->
          </div>
          <div
            class="content-right"
@@ -243,7 +231,9 @@
                </p>
              </li>
              <li class="main-sources">
                <span>{{ item.resourceTypeName }}</span>
                <span :class="getResourceTypeClass(item.cmsItemType)">{{
                  item.resourceTypeName
                }}</span>
                <span>{{ item.source }}</span>
                <span>{{ item.year }}</span>
                <span v-if="item.DOI">doi:{{ item.DOI }}</span>
@@ -257,7 +247,10 @@
                v-if="item.abstract"
              >
                <span>摘要: </span>
                <span class="page-main-abstract" v-html="item.cleanAbstract"></span>
                <span
                  class="page-main-abstract"
                  v-html="item.cleanAbstract"
                ></span>
              </li>
              <li
                class="main-keyword"
@@ -289,7 +282,7 @@
                :background="isBackground"
                layout="prev, pager, next"
                :total="total"
                :page-size="6"
                :page-size="10"
              >
              </el-pagination>
            </div>
@@ -370,7 +363,7 @@
          {
            type: "input",
            label: "标 题",
            name: "title",
            name: "Name",
            value: "",
          },
          {
@@ -388,7 +381,7 @@
          {
            type: "input",
            label: "关键词",
            name: "keyword",
            name: "keyWords",
            value: "",
          },
          {
@@ -447,37 +440,32 @@
        list: [
          {
            years: "2025",
            num: 20,
            num: 10,
            check: false,
          },
          {
            years: "2025",
            num: 20,
            years: "2024",
            num: 18,
            check: false,
          },
          {
            years: "2025",
            num: 20,
            years: "2023",
            num: 21,
            check: false,
          },
          {
            years: "2025",
            num: 20,
            years: "2022",
            num: 19,
            check: false,
          },
          {
            years: "2025",
            num: 20,
            years: "2021",
            num: 22,
            check: false,
          },
          {
            years: "2025",
            num: 20,
            check: false,
          },
          {
            years: "2025",
            num: 20,
            years: "2020",
            num: 24,
            check: false,
          },
        ],
@@ -495,28 +483,23 @@
            check: false,
          },
          {
            name: "北京中医药大学大学学报",
            num: 190,
            name: "北京师范大学",
            num: 19,
            check: false,
          },
          {
            name: "中国中医科学院",
            num: 22,
            check: false,
          },
          {
            name: "北京中医药大学大学学报",
            num: 190,
            num: 31,
            check: false,
          },
          {
            name: "北京中医药大学大学学报",
            num: 190,
            check: false,
          },
          {
            name: "北京中医药大学大学学报",
            num: 190,
            check: false,
          },
          {
            name: "北京中医药大学大学学报",
            num: 190,
            name: "广州中医药大学",
            num: 25,
            check: false,
          },
        ],
@@ -567,13 +550,13 @@
      resultList: [],
      total: 0,
      paginationPage: 1,
      loading: false,
      loading: true,
      labelList: {
        abstract: "摘要",
        author: "作者",
        keyword: "关键词",
        keyWords: "关键词",
        source: "来源",
        title: "标题",
        Name: "标题",
        year: "年份",
      },
    };
@@ -617,16 +600,23 @@
    },
    async onSubmit(val) {
      console.log(val, "val");
      console.log(this.associationList, "associationList");
      for (let key in val) {
        if (val[key] != "") {
          this.associationList.push({
            type: this.labelList[key],
            content: val[key],
            value: key,
          });
          const hasKey = this.associationList.find((item) => item.value == key);
          if (!hasKey) {
            this.associationList.push({
              type: this.labelList[key],
              content: val[key],
              value: key,
            });
          } else {
            hasKey.content = val[key];
          }
        }
      }
      console.log(this.associationList, "this.associationList");
      this.getItemList();
    },
    //重置搜索结果
@@ -658,7 +648,6 @@
    //获取下拉选择框的内容
    async getSelectData() {
      this.loading = true;
      try {
        // 同时发起两个异步请求,并等待它们的结果
        const [subjectListResult, resourceListResult] = await Promise.all([
@@ -706,13 +695,16 @@
    // 搜索
    handleSearch(isText) {
      console.log(isText, "isText");
      this.associationList = [];
      console.log(isText, "isText");
      if (isText.text != "") {
        this.inputValue = isText.text;
        this.inputType = isText.type;
        this.associationList.push({
          type: isText.label,
          content: isText.text,
          value: isText.type,
        });
        this.getItemList();
      }
@@ -720,6 +712,7 @@
    // 请求数据
    getItemList() {
      this.loading = true;
      let searchData = {}; // 初始化一个空对象来存储搜索数据
      if (this.inputValue) {
        // 如果输入值存在
@@ -755,8 +748,10 @@
            const startDate = item.content.split("/")[0] + "/01/01 00:00:00";
            searchData[item.value + ">="] = startDate;
            searchData[item.value + "<="] = endDate;
          } else {
          } else if (item.value) {
            searchData[item.value + "*"] = item.content;
          } else {
            searchData["||" + item.value + "*"] = item.content;
          }
        });
      }
@@ -766,8 +761,8 @@
          path: "*",
          queryType: "*",
          paging: {
            start: (this.paginationPage - 1) * 6,
            size: 6,
            start: (this.paginationPage - 1) * 10,
            size: 10,
          },
          sort: {
            year: this.postedSortInfo ? "Desc" : "Asc",
@@ -779,6 +774,7 @@
                ? this.categoryChecList
                : this.resourceTypeValueList,
            source: [],
            isbn: [],
            year: [],
            abstract: [],
            keyWords: [],
@@ -814,18 +810,19 @@
          this.resultList = res.datas;
          this.total = res.total;
          this.loading = false;
        }).catch((error) => {
        })
        .catch((error) => {
          // 打印错误信息
          console.error("获取数据失败:", error);
        });
      // 滚动到页面顶部
      this.$nextTick(() => {
        const pageMain = document.querySelector('.page-main-father');
        const pageMain = document.querySelector(".page-main-father");
        if (pageMain) {
          pageMain.scrollTo({
            top: 0,
            behavior: 'smooth'
            behavior: "smooth",
          });
        }
      });
@@ -848,6 +845,22 @@
    sortChange() {
      this.postedSortInfo = !this.postedSortInfo;
      this.getItemList();
    },
    getResourceTypeClass(typeName) {
      switch (typeName) {
        case "journal":
          return "journal-color";
        case "books":
          return "books-color";
        case "video":
          return "video-color";
        case "audio":
          return "audio-color";
        case "newspaper":
          return "newspaper-color";
        default:
          return "other-color";
      }
    },
  },
};
@@ -1271,10 +1284,29 @@
        }
      }
      .journal-color {
        background-color: #87a8b9;
      }
      .books-color {
        background-color: #c48787;
      }
      .video-color {
        background-color: #6f8f5a;
      }
      .audio-color {
        background-color: #937950;
      }
      .newspaper-color {
        background-color: #8d77b3;
      }
      .other-color {
        background-color: #009f9f;
      }
      .main-sources {
        span:nth-child(1) {
          padding: 3px 5px;
          background-color: #87a8b9;
          color: #fff;
          margin-right: 10px;
        }
@@ -1327,7 +1359,7 @@
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 4;
        -webkit-line-clamp: 3;
        span {
          font-family: Source Han Sans;
@@ -1410,6 +1442,10 @@
  border-radius: 5px;
  border: 1px solid #cccccc;
}
:deep.el-pagination.is-background .el-pager li:not(.disabled):hover {
  color: #937950;
}
</style>
<style>