From 73c8b0ef3c3b120e8ca7c293bffa49d052c8ee39 Mon Sep 17 00:00:00 2001 From: 杨磊 <505174330@qq.com> Date: 星期三, 14 五月 2025 17:19:18 +0800 Subject: [PATCH] 问题修改 --- src/views/home/index.vue | 138 +++++++++++++++++++++++++++ src/views/achievements/index.vue | 116 ++++++++++++++++++---- src/views/chronology/floatingWindow.vue | 28 +++-- src/views/chronology/index.vue | 1 4 files changed, 245 insertions(+), 38 deletions(-) diff --git a/src/views/achievements/index.vue b/src/views/achievements/index.vue index b336a01..44e9d58 100644 --- a/src/views/achievements/index.vue +++ b/src/views/achievements/index.vue @@ -72,19 +72,19 @@ <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> @@ -128,11 +128,11 @@ <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> @@ -198,9 +198,9 @@ <!-- 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="" /> @@ -450,6 +450,9 @@ subjectCheckList: [], postedSortInfo: true, + resourceTypeSortInfo: true, + particularYearSortInfo: true, + sourceFromSortInfo: true, // 骞村害 annual: { title: "骞村害", @@ -524,7 +527,6 @@ }; }, mounted() { - console.log(this.$route.query, "query"); this.inputType = this.$route.query.type; this.inputValue = this.$route.query.value; this.getSelectData(); @@ -533,12 +535,15 @@ 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( @@ -652,10 +657,36 @@ // 鍒犻櫎 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(); }, @@ -736,8 +767,6 @@ // 璇锋眰鏁版嵁 getItemList() { this.loading = true; - console.log(this.inputValue, " inputValue"); - console.log(this.inputType, " inputType"); let searchData = {}; // 鍒濆鍖栦竴涓┖瀵硅薄鏉ュ瓨鍌ㄦ悳绱㈡暟鎹� if (this.inputValue) { @@ -770,23 +799,31 @@ } } - 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; } @@ -798,8 +835,11 @@ // 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: "*", @@ -814,8 +854,8 @@ fields: { cmsType: ["cmsItem"], "resourceType*": - this.categoryChecList.length > 0 - ? this.categoryChecList + isResourceTypeValueList.length > 0 + ? isResourceTypeValueList : this.resourceTypeValueList, source: [], isbn: [], @@ -829,6 +869,7 @@ AIReading: [], file: [], IssueNumber: [], + // "particularYear*": ["2009"], GroupBy: [["particularYear"], ["sourceFrom"], ["resourceType"]], "subjectAffiliation*": this.subjectCheckList, ...searchData, @@ -892,6 +933,35 @@ 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) { case "journal": diff --git a/src/views/chronology/floatingWindow.vue b/src/views/chronology/floatingWindow.vue index c8665c9..a0c44d4 100644 --- a/src/views/chronology/floatingWindow.vue +++ b/src/views/chronology/floatingWindow.vue @@ -48,7 +48,8 @@ <div> <div class="subtitle"> <div class="source">{{ info.source }}</div> - <div class="journalInformation">2005 3鏈� 绗�40鍗� 绗�4鏈�</div> + <div :title="info.contributor">璐$尞鑰咃細{{ info.contributor + "" }}</div> + <div class="journalInformation">{{ info.endDate }}</div> </div> <div class="contentBox" style="text-align: left"> <div class="contentBox" style="text-align: left"> @@ -59,16 +60,13 @@ </div> <div class="audioBox" v-if="info.cmsItemType === 'audio'"> <div style="text-align: center"> - <audio - style="width: 90%" - :src="info.fileLink" - controls - ></audio> + <audio style="width: 90%" :src="info.fileLink" controls></audio> </div> <div> <div class="subtitle"> - <div class="source">{{ info.source }}</div> - <div class="journalInformation">2005 3鏈� 绗�40鍗� 绗�4鏈�</div> + <div :title="info.contributor" class="source">{{ info.source }}</div> + <div :title="info.contributor">璐$尞鑰咃細{{ info.contributor + "" }}</div> + <div :title="info.contributor" class="journalInformation">{{ info.endDate }}</div> </div> <div class="contentBox" style="text-align: left"> <div class="audioContent" v-html="info.abstract"></div> @@ -129,6 +127,12 @@ .subtitle { display: flex; justify-content: space-between; +} +.subtitle > div { + max-width: 32%; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } .subtitle { margin-top: 20px; @@ -218,8 +222,8 @@ margin-top: 20px; } video { - border-radius: 10px; - border: 1px solid #dcdcdc; - box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1); - } + border-radius: 10px; + border: 1px solid #dcdcdc; + box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1); +} </style> diff --git a/src/views/chronology/index.vue b/src/views/chronology/index.vue index 9e8b18a..7f5f982 100644 --- a/src/views/chronology/index.vue +++ b/src/views/chronology/index.vue @@ -193,6 +193,7 @@ abstract: [], keyWords: [], subjectAffiliation: [], + contributor: [], file: [], }, SysType: "CmsItem", diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 96480e9..c8c53d7 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -11,7 +11,7 @@ </div> </div> <div class="menuBox"> - <div class="menuList"> + <div class="menuList" v-show="startYear != ''"> <div class="menu" v-for="item in menuList" @@ -22,7 +22,18 @@ <img class="autoImg" :src="item.icon" alt="" /> </div> <div class="menuTitle">{{ item.title }}</div> - <div class="menuSubTitle">{{ item.subTitle }}</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 == '鑽h獕濂栭」'"> + {{ 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> @@ -58,11 +69,19 @@ data() { return { arrow, + resourceList: [ + "journal", + "books", + "audio", + "video", + "newspaper", + "other", + ], menuList: [ { icon: nianpu1, title: "骞磋氨", - subTitle: "1936-2024", + subTitle: "100+", path: "/chronology", }, { @@ -85,12 +104,21 @@ }, ], introduction: "", + startYear: "", + endDate: "", + achievementsNum: "", + honorNum: "", + studentNum: "", }; }, momunted() {}, created() { this.getPersonInfo(); + this.getListData(); + this.getAchievementList(); + this.getHonorList(); + this.getStudentList(); }, methods: { goPage(row) { @@ -98,6 +126,110 @@ 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; + }); + }, + + 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.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({ -- Gitblit v1.9.1