| | |
| | | <li class="left-title"> |
| | | <div> |
| | | <span>{{ annual.title }}</span> |
| | | <span> |
| | | <span @click="timeSortChange()"> |
| | | 时间 |
| | | <img |
| | | class="sort-Icon" |
| | | :src="[isDisplay ? sortTop : sortBottom]" |
| | | :src="[resourceTypeSortInfo ? sortTop : sortBottom]" |
| | | alt="" |
| | | /> |
| | | </span> |
| | | <span |
| | | <span @click="countSortChange()" |
| | | >文献量 |
| | | <img |
| | | class="sort-Icon" |
| | | :src="[isDisplay ? sortBottom : sortTop]" |
| | | :src="[particularYearSortInfo ? sortTop : sortBottom]" |
| | | alt="" |
| | | /> |
| | | </span> |
| | |
| | | <li class="left-title"> |
| | | <div> |
| | | <span>{{ sources.title }}</span> |
| | | <span> |
| | | <span @click="sourcesSortChange()"> |
| | | 文献量 |
| | | <img |
| | | class="sort-Icon" |
| | | :src="[isDisplay ? sortBottom : sortTop]" |
| | | :src="[sourceFromSortInfo ? sortBottom : sortTop]" |
| | | alt="" |
| | | /> |
| | | </span> |
| | |
| | | <!-- title部分 --> |
| | | <ul class="right-header"> |
| | | <li v-for="(item, index) in associationList" :key="index"> |
| | | <p>{{ item.type }} : {{ item.content }}</p> |
| | | <p>{{ item.type }} : {{ item.name }}</p> |
| | | <img |
| | | @click="removeAssociationList(item.content)" |
| | | @click="removeAssociationList(item)" |
| | | :src="errorIcon" |
| | | alt="" |
| | | /> |
| | |
| | | class="right-main" |
| | | v-for="(item, index) in resultList" |
| | | :key="index" |
| | | @click ="goPage(item.id)" |
| | | > |
| | | <li class="main-name"> |
| | | <p>{{ item.name }}</p> |
| | | <p> |
| | | <el-button @click="goPage(item.id)">详情</el-button> |
| | | <el-button @click="openAiReading(item.AIReading, item.name)" |
| | | <!-- <el-button >详情</el-button> --> |
| | | <el-button @click.stop="openAiReading(item.AIReading, item.name)" |
| | | >AI智能阅读</el-button |
| | | > |
| | | </p> |
| | |
| | | class="keyWord" |
| | | v-for="(citem, cindex) in item.keyWords" |
| | | :key="cindex" |
| | | @click=" |
| | | @click.stop=" |
| | | () => |
| | | handleSearch({ |
| | | text: citem, |
| | |
| | | subjectCheckList: [], |
| | | |
| | | postedSortInfo: true, |
| | | resourceTypeSortInfo: true, |
| | | particularYearSortInfo: true, |
| | | sourceFromSortInfo: true, |
| | | // 年度 |
| | | annual: { |
| | | title: "年度", |
| | |
| | | }; |
| | | }, |
| | | mounted() { |
| | | console.log(this.$route.query, "query"); |
| | | this.inputType = this.$route.query.type; |
| | | this.inputValue = this.$route.query.value; |
| | | this.getSelectData(); |
| | |
| | | |
| | | methods: { |
| | | categoryChange(typeName, val) { |
| | | console.log(val, "val"); |
| | | console.log(typeName, "typeName"); |
| | | if (val.checked) { |
| | | this.categoryChecList.push(val.value); |
| | | this.associationList.push({ |
| | | type: typeName, |
| | | content: val.name, |
| | | value: val.value, |
| | | name: val.valueName || val.name, |
| | | }); |
| | | } else { |
| | | const index = this.categoryChecList.findIndex( |
| | |
| | | |
| | | // 删除 |
| | | removeAssociationList(value) { |
| | | console.log(value, "value"); |
| | | this.associationList = this.associationList.filter( |
| | | (item) => item.content !== value |
| | | (item) => item.content !== value.content |
| | | ); |
| | | this.inputValue = ""; |
| | | |
| | | switch (value.value) { |
| | | case "resourceType": |
| | | this.categoryOBJ.list.forEach((item) => { |
| | | if (item.name == value.content) { |
| | | item.checked = false; |
| | | } |
| | | }); |
| | | break; |
| | | |
| | | case "particularYear": |
| | | this.annual.list.forEach((item) => { |
| | | if (item.name == value.content) { |
| | | item.checked = false; |
| | | } |
| | | }); |
| | | break; |
| | | case "sourceFrom": |
| | | this.sources.list.forEach((item) => { |
| | | if (item.name == value.content) { |
| | | item.checked = false; |
| | | } |
| | | }); |
| | | break; |
| | | } |
| | | // 通知父组件数据已改变 |
| | | this.getItemList(); |
| | | }, |
| | |
| | | // 请求数据 |
| | | getItemList() { |
| | | this.loading = true; |
| | | console.log(this.inputValue, " inputValue"); |
| | | console.log(this.inputType, " inputType"); |
| | | |
| | | let searchData = {}; // 初始化一个空对象来存储搜索数据 |
| | | if (this.inputValue) { |
| | |
| | | } |
| | | } |
| | | |
| | | console.log(this.associationList, "searchData11111"); |
| | | console.log(this.associationList, "this.associationList"); |
| | | if (this.associationList && this.associationList.length) { |
| | | let resourceTypeValueList = []; |
| | | let particularYearValueList = []; |
| | | let sourceFromValueList = []; |
| | | |
| | | this.associationList.forEach((item) => { |
| | | debugger; |
| | | if (item.value !== "all") { |
| | | if (item.value == "year") { |
| | | const endDate = item.content.split("/")[0] + "/12/31 23:59:59"; |
| | | 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; |
| | | const key = |
| | | item.value === "resourceType" ? "resourceType*" : item.value; |
| | | if (!searchData[key]) { |
| | | searchData[key] = []; // 如果属性不存在,初始化为数组 |
| | | } else if (item.value != "year") { |
| | | if (item.value == "resourceType") { |
| | | resourceTypeValueList.push(item.content); |
| | | searchData[item.value + "*"] = resourceTypeValueList; |
| | | } else if (item.value == "particularYear") { |
| | | particularYearValueList.push(item.content); |
| | | searchData[item.value + "*"] = particularYearValueList; |
| | | } else if (item.value == "sourceFrom") { |
| | | sourceFromValueList.push(item.content); |
| | | searchData[item.value + "*"] = sourceFromValueList; |
| | | } |
| | | searchData[key].push(item.content); |
| | | } else { |
| | | searchData["||" + item.value + "*"] = item.content; |
| | | } |
| | |
| | | // searchData[key] = searchData[key][0]; |
| | | // } |
| | | // } |
| | | |
| | | console.log(searchData, "searchData"); |
| | | console.log(this.resourceTypeValueList, "resourceTypeValueList"); |
| | | const isResourceTypeValueList = this.categoryChecList.filter( |
| | | (item) => this.resourceTypeValueList.indexOf(item) !== -1 |
| | | ); |
| | | MG.resource |
| | | .getItem({ |
| | | path: "*", |
| | |
| | | fields: { |
| | | cmsType: ["cmsItem"], |
| | | "resourceType*": |
| | | this.categoryChecList.length > 0 |
| | | ? this.categoryChecList |
| | | isResourceTypeValueList.length > 0 |
| | | ? isResourceTypeValueList |
| | | : this.resourceTypeValueList, |
| | | source: [], |
| | | isbn: [], |
| | |
| | | AIReading: [], |
| | | file: [], |
| | | IssueNumber: [], |
| | | // "particularYear*": ["2009"], |
| | | GroupBy: [["particularYear"], ["sourceFrom"], ["resourceType"]], |
| | | "subjectAffiliation*": this.subjectCheckList, |
| | | ...searchData, |
| | |
| | | sortChange() { |
| | | this.postedSortInfo = !this.postedSortInfo; |
| | | this.getItemList(); |
| | | }, |
| | | timeSortChange() { |
| | | this.resourceTypeSortInfo = !this.resourceTypeSortInfo; |
| | | this.annual.list.sort((a, b) => { |
| | | a.name - b.name; |
| | | }); |
| | | if (this.resourceTypeSortInfo) { |
| | | this.annual.list.sort((a, b) => a.name - b.name); |
| | | } else { |
| | | this.annual.list.sort((a, b) => b.name - a.name); |
| | | } |
| | | }, |
| | | countSortChange() { |
| | | this.particularYearSortInfo = !this.particularYearSortInfo; |
| | | |
| | | if (!this.particularYearSortInfo) { |
| | | this.annual.list.sort((a, b) => a.num - b.num); |
| | | } else { |
| | | this.annual.list.sort((a, b) => b.num - a.num); |
| | | } |
| | | console.log(this.annual.list, "this.annual.list"); |
| | | }, |
| | | sourcesSortChange() { |
| | | this.sourceFromSortInfo = !this.sourceFromSortInfo; |
| | | if (this.sourceFromSortInfo) { |
| | | this.sources.list.sort((a, b) => a.num - b.num); |
| | | } else { |
| | | this.sources.list.sort((a, b) => b.num - a.num); |
| | | } |
| | | }, |
| | | getResourceTypeClass(typeName) { |
| | | switch (typeName) { |
| | |
| | | padding: 19px 30px 15px 30px; |
| | | border: 1px solid #decaac; |
| | | |
| | | &:hover { |
| | | cursor: pointer; |
| | | border: 1px solid #937950; |
| | | } |
| | | |
| | | .main-name { |
| | | display: flex; |
| | | align-items: center; |