杨磊
2 天以前 ac478242e0ecb50b23b2e91c0541f9ceae2dccf6
Merge branch 'master' of http://182.92.203.7:2001/r/wyyDatabase
3个文件已修改
326 ■■■■■ 已修改文件
src/views/achievements/details.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/achievements/index.vue 291 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/searchBox.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/achievements/details.vue
@@ -9,35 +9,35 @@
          <p>
            <el-button icon="el-icon-arrow-left" @click="goBack()">返回</el-button>
          </p>
          <p>{{ detailsList.name }}</p>
          <p>{{ details.name }}</p>
        </li>
        <li class="page-main-time">
          <p>
            <span>{{ detailsList.source }}</span>
            <span>{{ detailsList.year }}</span>
            <span>{{ details.source }}</span>
            <span>{{ details.year }}</span>
          </p>
        </li>
        <li class="page-main-title">
          <p>
            <span v-for="(item, index) in detailsList.characterList" :key="index">{{ item.name }}</span>
            <span v-for="(item, index) in details.characterList" :key="index">{{ item.name }}</span>
          </p>
          <p>
            <span>摘要:</span>
            <span class="page-main-abstract" v-html="detailsList.abstract"></span>
            <span class="page-main-abstract" v-html="details.abstract"></span>
          </p>
          <p>
            <span>关键词:</span>
            <span class="page-main-keyword" v-for="(item, index) in detailsList.keyWords" :key="index">{{ item
            <span class="page-main-keyword" v-for="(item, index) in details.keyWords" :key="index">{{ item
            }}</span>
          </p>
          <p v-if="!isDisplay">
            <el-button @click="isDisplay = !isDisplay">查看全文</el-button>
          </p>
          <p class="page-main-video" v-if="isDisplay">
            <video :src="detailsList.videoUrl" controls autoplay class="video" width="70%"></video>
            <video :src="details.videoUrl" controls autoplay class="video" width="70%"></video>
          </p>
          <p class="page-main-audio" v-if="isDisplay">
            <audio :src="detailsList.videoUrl" controls autoplay class="video" width="100%"></audio>
            <audio :src="details.videoUrl" controls autoplay class="video" width="100%"></audio>
          </p>
        </li>
        <li class="page-main-literature">
@@ -82,7 +82,7 @@
  data() {
    return {
      isDisplay: false,
      detailsList: {
      details: {
        name: "中药闸柜的历史传承与新时代发展思考",
        sources: "北京中医药大学学报",
        time: "2025-02-24",
@@ -241,7 +241,8 @@
  },
  mounted() {
    console.log(this.$route.params.key, "key001");
    this.detailsList = this.$route.params.key;
    this.details = this.$route.params.key;
  },
  methods: {
    goPage(key) { },
src/views/achievements/index.vue
@@ -10,7 +10,7 @@
        <!-- 搜索框 -->
        <ul class="page-input">
          <li class="input-main">
            <SearchBox @search="handleSearch" />
            <SearchBox @search="handleSearch" :options="inputOptions" />
          </li>
          <li class="input-txt" @click="isDisplay = !isDisplay">
            高级检索
@@ -120,12 +120,13 @@
              </li>
            </ul>
          </div>
          <div class="content-right">
          <div class="content-right" v-loading="loading" element-loading-text="检索结果加载中"
            element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0)">
            <!-- title部分 -->
            <ul class="right-header">
              <li v-for="(item, index) in associationList" :key="index">
                <p>{{ item.type }} : {{ item.content }}</p>
                <img :src="errorIcon" alt="" />
                <img @click="removeAssociationList(item.content)" :src="errorIcon" alt="" />
              </li>
            </ul>
            <!-- 共xx条 -->
@@ -151,6 +152,7 @@
                <span>{{ item.resourceTypeName }}</span>
                <span>{{ item.source }}</span>
                <span>{{ item.year }}</span>
                <span v-if="item.DOI">doi:{{ item.DOI }}</span>
              </li>
              <li class="main-author">
                {{ item.author }}
@@ -167,9 +169,9 @@
              </li>
            </ul>
            <!-- 分页 -->
            <div class="pagination">
            <div class="pagination" v-if="total > 6">
              <el-pagination @current-change="handleCurrentChange" class="msg-pagination-container"
                :background="isBackground" layout="prev, pager, next" :total="total">
                :background="isBackground" layout="prev, pager, next" :total="total" :page-size="6">
              </el-pagination>
            </div>
          </div>
@@ -193,8 +195,22 @@
  },
  data() {
    return {
      // 输入框的内容
      inputValue: "",
      // 选择的类型
      inputType: "",
      //类型选择
      inputOptions: [
        { value: "all", label: "全部" },
        { value: "Name", label: "标题" },
        { value: "author", label: "作者" },
        { value: "keyWords", label: "关键词" },
        { value: "abstract", label: "摘要" },
        { value: "source", label: "来源" },
      ],
      subjectAffiliationRefCode: "subjectAffiliation",
      resourceTypeRefCode: "resourceType",
      resourceTypeValueList: [],
      errorIcon: require("@/assets/images/achievements/errorIcon.png"),
      topIcon: require("@/assets/images/achievements/top-Icon.png"),
      bottomIcon: require("@/assets/images/achievements/bottom-Icon.png"),
@@ -421,163 +437,11 @@
      // 现在多少条时期数据
      dynastyIndex: 4,
      // 所关联内容
      associationList: [
        {
          type: "作者",
          content: "陈衡哲",
        },
        {
          type: "作者",
          content: "陈衡哲",
        },
        {
          type: "作者",
          content: "陈衡哲",
        },
      ],
      associationList: [],
      // 查询结果
      resultList: [
        {
          name: "中药闸柜的历史传承与新时代发展思考",
          sources: "北京中医药大学学报",
          type: "期刊",
          author: "杨浣菲  北京中医药大学中药学院;赵天成  北京师范大学",
          time: "2025-02-24 09:21",
          title:
            "中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。",
          keyword: [
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
          ],
        },
        {
          name: "中药闸柜的历史传承与新时代发展思考",
          sources: "北京中医药大学学报",
          type: "期刊",
          author: "杨浣菲  北京中医药大学中药学院;赵天成  北京师范大学",
          time: "2025-02-24 09:21",
          title:
            "中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。",
          keyword: [
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
          ],
        },
        {
          name: "中药闸柜的历史传承与新时代发展思考",
          sources: "北京中医药大学学报",
          type: "期刊",
          author: "杨浣菲  北京中医药大学中药学院;赵天成  北京师范大学",
          time: "2025-02-24 09:21",
          title:
            "中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。",
          keyword: [
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
          ],
        },
        {
          name: "中药闸柜的历史传承与新时代发展思考",
          sources: "北京中医药大学学报",
          type: "期刊",
          author: "杨浣菲  北京中医药大学中药学院;赵天成  北京师范大学",
          time: "2025-02-24 09:21",
          title:
            "中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。",
          keyword: [
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
          ],
        },
        {
          name: "中药闸柜的历史传承与新时代发展思考",
          sources: "北京中医药大学学报",
          type: "期刊",
          author: "杨浣菲  北京中医药大学中药学院;赵天成  北京师范大学",
          time: "2025-02-24 09:21",
          title:
            "中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。",
          keyword: [
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
          ],
        },
        {
          name: "中药闸柜的历史传承与新时代发展思考",
          sources: "北京中医药大学学报",
          type: "期刊",
          author: "杨浣菲  北京中医药大学中药学院;赵天成  北京师范大学",
          time: "2025-02-24 09:21",
          title:
            "中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。中药闸柜是传统中药调剂的高级管理人员,在'前店后厂式'中药房发挥重要作用和关键职能。传承中药闸柜的宝贵学术经验与优秀文化对厘清中药学学科发展脉络、规范中药调剂技术操作、促进老药工技艺'活态传承'具有重要科学价值和现实意义。面向新时代、开启新思维,本文对老字号中药铺的兴起和中药闸柜进行考证,分析中药闸柜的岗位责任、传承路径及未来发展,提出高素质中药闸柜人才培养策略,旨在培养符合当代社会需求的中药行业复合型创新人才。",
          keyword: [
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
            {
              name: "中药闸柜",
            },
          ],
        },
      ],
      resultList: [],
      total: 0,
      currentPage: 1,
      paginationPage: 1,
      loading: false,
    };
  },
@@ -585,7 +449,6 @@
    this.getSelectContent();
    this.getLeftCheckbox()
    this.getSelectData();
    this.getItemList()
  },
  methods: {
@@ -596,7 +459,7 @@
    },
    // 页面跳转
    goPage(key) {
      console.log(key,"key");
      console.log(key, "key");
      this.$router.push({ name: "details", params: { key: key } });
    },
    // 收起和展示
@@ -625,6 +488,7 @@
    //获取下拉选择框的内容
    async getSelectData() {
      this.loading = true;
      try {
        // 同时发起两个异步请求,并等待它们的结果
        const [subjectListResult, resourceListResult] = await Promise.all([
@@ -633,6 +497,12 @@
        ]);
        this.subject.list = subjectListResult.option
        this.category.list = resourceListResult.option;
        if (this.category.list && this.category.list.length) {
          this.category.list.forEach((item) => {
            this.resourceTypeValueList.push(item.value)
          });
        }
        this.getItemList()
      } catch (error) {
        console.error("获取下拉框数据失败:", error);
      }
@@ -645,47 +515,96 @@
        .getProductTypeField(requestData)
        .then((res) => {
          const selestList = JSON.parse(res[0].config);
          this.getLeftCheckbox()
          console.log(selestList, "下拉框数据");
          return selestList;
        })
        .catch((error) => {
          console.error("获取荣誉失败:", error);
          console.error("获取选择内容失败:", error);
          return null;
        });
    },
    // 删除
    removeAssociationList(value) {
      this.associationList = this.associationList.filter(
        (item) => item.content !== value
      );
      this.inputValue = "";
      this.getItemList()
    },
    // 搜索
    handleSearch(text, type) {
    handleSearch(isText) {
      console.log(1234);
      console.log(text, type, "搜索123");
      console.log(isText, "搜索123");
      if (isText.text != "") {
        this.inputValue = isText.text
        this.inputType = isText.type
        this.associationList.push({
          type: isText.label,
          content: isText.text,
        });
        this.getItemList()
      }
    },
    // getTtem
    getItemList() {
      this.loading = true;
      let searchData = {};
      if (this.inputValue) {
        if (this.inputType != "all") {
          searchData[this.inputType + "*"] = this.inputValue;
        } else {
          for (let index = 0; index < this.inputOptions.length; index++) {
            const item = this.inputOptions[index];
            if (item.value !== "all" ) {
              console.log(item.value, "987");
              if (!Object.keys(searchData).length) {
                searchData[item.value + "*"] = this.inputValue
              } else {
                searchData["||" + item.value + "*"] = this.inputValue
              }
            }
          }
        }
        console.log(searchData, "搜索数据123");
      }
      debugger
      MG.resource
        .getItem({
          path: "*",
          queryType: "*",
          paging: {
            start: (this.currentPage - 1) * 6,
            start: (this.paginationPage - 1) * 6,
            size: 6
          },
          fields: {
            cmsType: ["cmsItem"],
            resourceType: [],
            "resourceType*": this.resourceTypeValueList,
            source: [],
            year: [],
            abstract: [],
            keyWords: [],
            author: [],
            DOI: [],
            AIReading: [],
            file: [],
            IssueNumber: [],
            ...searchData,
          },
        })
        .then((res) => {
          console.log(res, "全部数据");
          res.datas.forEach((item) => {
            item.year = moment(item.year).format("YYYY-MM-DD")
            item.keyWords = item.keyWords.split(";;")
            item.resourceTypeName = this.category.list.find((citem) => citem.value == item.resourceType).name
            if (typeof item.keyWords === 'string') {
              item.keyWords = item.keyWords.split(";;");
            } else {
              // 设置一个默认值或者进行其他错误处理
              item.keyWords = [];
            }
            item.resourceTypeName = this.category.list.find((citem) => citem.value == item.cmsItemType).name
          })
          this.resultList = res.datas
          this.total = res.total;
@@ -695,7 +614,7 @@
    // 处理页码变化
    handleCurrentChange(newPage) {
      this.currentPage = newPage;
      this.paginationPage = newPage;
      this.getItemList(); // 重新获取数据
    },
@@ -1078,6 +997,7 @@
          background-color: #87a8b9;
          color: #fff;
          margin-right: 10px;
        }
        span:nth-child(2) {
@@ -1085,8 +1005,8 @@
          font-size: 12px;
          font-weight: 350;
          padding-right: 10px;
          border-right: 1px solid #2c2c2c;
          color: #333;
        }
        span:nth-child(3) {
@@ -1094,8 +1014,21 @@
          font-size: 12px;
          font-weight: 350;
          padding-left: 10px;
          padding-right: 10px;
          color: #333;
          border-left: 1px solid #2c2c2c;
        }
        span:nth-child(4) {
          font-family: Source Han Sans;
          font-size: 12px;
          font-weight: 350;
          padding-left: 10px;
          color: #333;
          border-left: 1px solid #2c2c2c;
        }
        margin-bottom: 10px;
      }
@@ -1128,12 +1061,12 @@
      }
      .page-main-abstract {
      font-family: Source Han Sans !important;
      font-size: 14px !important;
      font-weight: 350 !important;
      line-height: 26px !important;
      color: #333333 !important;
    }
        font-family: Source Han Sans !important;
        font-size: 14px !important;
        font-weight: 350 !important;
        line-height: 26px !important;
        color: #333333 !important;
      }
      .main-keyword {
        span:nth-child(1) {
src/views/home/components/searchBox.vue
@@ -45,15 +45,20 @@
  data() {
    return {
      searchText: "", // 输入框内容
      selectedType: "", // 下拉框选中值
      selectedType: "all", // 下拉框选中值
    };
  },
  methods: {
    // 搜索处理
    handleSearch() {
      this.$emit("searchFun", {
    // 找到选中的选项的label
    const selectedOption = this.options.find(option => option.value === this.selectedType);
    const selectedLabel = selectedOption ? selectedOption.label : '';
    console.log(selectedLabel,"001")
      this.$emit("search", {
        text: this.searchText,
        type: this.selectedType,
        label: selectedLabel
      });
    },
  },
@@ -71,7 +76,8 @@
/* 输入框样式 */
.search-input {
  background-color: transparent;
  width: 100%;
}
.inputBox {
@@ -80,6 +86,7 @@
  width: 400px;
  display: flex;
  justify-content: space-between;
  background-color: transparent !important;
  align-items: center;
  padding-right: 5px;
  border-radius: 5px;
@@ -92,6 +99,7 @@
  width: 70px;
  height: 30px;
  background-color: #937950;
  border-radius: 5px;
  margin-left: 10px;
  cursor: pointer;
  font-size: 14px;