| | |
| | | </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" |
| | |
| | | <p>{{ item.name }}</p> |
| | | <p> |
| | | <el-button @click="goPage(item.id)">详情</el-button> |
| | | <el-button>AI智能阅读</el-button> |
| | | <el-button @click="openAiReading(item.AIReading, item.name)">AI智能阅读</el-button> |
| | | </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> |
| | |
| | | :background="isBackground" |
| | | layout="prev, pager, next" |
| | | :total="total" |
| | | :page-size="6" |
| | | :page-size="10" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog v-model="dialogVisible" :title="aIName" width="60vw" top="3vh" bottom="2vh" |
| | | :visible.sync="dialogVisible" class="custom-dialog"> |
| | | <div class="AIReadingBox" element-loading-spinner="el-icon-loading" |
| | | element-loading-background="rgba(0, 0, 0, 0)"> |
| | | <div class="richTextInitBox" v-if="AIReading" v-html="AIReading"></div> |
| | | <div class="richTextInitError" v-else>网络繁忙,请稍后再试。</div> |
| | | </div> |
| | | </el-dialog> |
| | | <el-empty v-if="!loading && !resultList.length"></el-empty> |
| | | </div> |
| | | </div> |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | dialogVisible: false, |
| | | aIName: "", |
| | | AIReading: "", |
| | | relatedList: [], |
| | | // 输入框的内容 |
| | | inputValue: "", |
| | |
| | | { |
| | | type: "input", |
| | | label: "标 题", |
| | | name: "title", |
| | | name: "Name", |
| | | value: "", |
| | | }, |
| | | { |
| | |
| | | { |
| | | type: "input", |
| | | label: "关键词", |
| | | name: "keyword", |
| | | name: "keyWords", |
| | | value: "", |
| | | }, |
| | | { |
| | |
| | | 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, |
| | | }, |
| | | ], |
| | |
| | | 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, |
| | | }, |
| | | ], |
| | |
| | | resultList: [], |
| | | total: 0, |
| | | paginationPage: 1, |
| | | loading: false, |
| | | loading: true, |
| | | labelList: { |
| | | abstract: "摘要", |
| | | author: "作者", |
| | | keyword: "关键词", |
| | | keyWords: "关键词", |
| | | source: "来源", |
| | | title: "标题", |
| | | Name: "标题", |
| | | year: "年份", |
| | | }, |
| | | }; |
| | |
| | | }, |
| | | |
| | | 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(); |
| | | }, |
| | | //重置搜索结果 |
| | |
| | | |
| | | // 搜索 |
| | | handleSearch(isText) { |
| | | console.log(isText, "isText"); |
| | | this.associationList = []; |
| | | console.log(isText, "isText"); |
| | | |
| | | if (isText.text != "") { |
| | | this.inputValue = isText.text; |
| | | this.inputType = isText.type; |
| | |
| | | const startDate = item.content.split("/")[0] + "/01/01 00:00:00"; |
| | | searchData[item.value + ">="] = startDate; |
| | | searchData[item.value + "<="] = endDate; |
| | | } else if (item.value) { |
| | | searchData[item.value + "*"] = item.content; |
| | | } else { |
| | | searchData["||" +item.value + "*"] = item.content; |
| | | searchData["||" + item.value + "*"] = item.content; |
| | | } |
| | | }); |
| | | } |
| | |
| | | path: "*", |
| | | queryType: "*", |
| | | paging: { |
| | | start: (this.paginationPage - 1) * 6, |
| | | size: 6, |
| | | start: (this.paginationPage - 1) * 10, |
| | | size: 10, |
| | | }, |
| | | sort: { |
| | | year: this.postedSortInfo ? "Desc" : "Asc", |
| | |
| | | ? this.categoryChecList |
| | | : this.resourceTypeValueList, |
| | | source: [], |
| | | isbn: [], |
| | | year: [], |
| | | abstract: [], |
| | | keyWords: [], |
| | |
| | | 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", |
| | | }); |
| | | } |
| | | }); |
| | |
| | | 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"; |
| | | } |
| | | }, |
| | | |
| | | openAiReading(text, name) { |
| | | this.AIReading = text; |
| | | this.aIName = name; |
| | | this.dialogVisible = true; |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | } |
| | | } |
| | | |
| | | .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; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | .AIReadingBox { |
| | | height: 85vh; |
| | | min-height: 600px; |
| | | padding: 20px 10px; |
| | | } |
| | | |
| | | .richTextInitBox { |
| | | height: 100%; |
| | | overflow: auto; |
| | | } |
| | | .richTextInitError{ |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .pagination { |
| | | display: flex; |
| | | justify-content: center; |
| | |
| | | border-radius: 5px; |
| | | border: 1px solid #cccccc; |
| | | } |
| | | :deep.el-pagination.is-background .el-pager li:not(.disabled):hover{ |
| | | color: #937950 |
| | | |
| | | :deep.el-pagination.is-background .el-pager li:not(.disabled):hover { |
| | | color: #937950; |
| | | } |
| | | |
| | | :deep.el-button--primary { |
| | | background-color: #937950; |
| | | color: #937950; |
| | | border: 1px solid #937950; |
| | | cursor: pointer; |
| | | |
| | | &:hover { |
| | | background-color: #937950; |
| | | color: #fffdf8; |
| | | } |
| | | } |
| | | </style> |
| | | |