From 231de87426edb19d38e62a669034108e3a74069d Mon Sep 17 00:00:00 2001 From: 杨磊 <505174330@qq.com> Date: 星期日, 27 四月 2025 18:10:48 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/wyyDatabase --- src/views/achievements/index.vue | 292 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 229 insertions(+), 63 deletions(-) diff --git a/src/views/achievements/index.vue b/src/views/achievements/index.vue index ff1d65c..0d9ce7f 100644 --- a/src/views/achievements/index.vue +++ b/src/views/achievements/index.vue @@ -19,12 +19,17 @@ </ul> <!-- 楂樼骇鎼滅储 --> <div v-if="isDisplay" class="page-search"> - <MyForm class="myfrom" @submit=" - (data) => { - CurrentPage = 1; - onSubmit(data); - } - " @reset="resetForm" :from="from" /> + <MyForm + class="myfrom" + @submit=" + (data) => { + CurrentPage = 1; + onSubmit(data); + } + " + @reset="resetForm" + :from="from" + /> </div> <!-- 鎼滅储缁撴灉 --> <div class="page-content"> @@ -34,14 +39,31 @@ <li class="left-title"> <span>{{ category.title }}</span> <p @click="category.isDisplay = !category.isDisplay"> - <img :src="[category.isDisplay ? topIcon : bottomIcon]" alt="" /> + <img + :src="[category.isDisplay ? topIcon : bottomIcon]" + alt="" + /> </p> </li> <li class="left-main" v-if="category.isDisplay"> - <div class="category-main" v-for="(item, index) in category.list" :key="index"> - <el-checkbox class="el-checkbox" style="display: inline-block; vertical-align: middle;" - v-model="item.checked" :title="item.name">{{ item.name }}</el-checkbox> - <span class="" style="display: inline-block; vertical-align: middle;">{{ item.num }}</span> + <div + class="category-main" + v-for="(item, index) in category.list" + :key="index" + > + <el-checkbox + class="el-checkbox" + v-model="item.checked" + :title="item.name" + @change="categoryChange(item)" + style="display: inline-block; vertical-align: middle" + >{{ item.name }}</el-checkbox + > + <span + class="" + style="display: inline-block; vertical-align: middle" + >{{ item.num }}</span + > </div> </li> </ul> @@ -52,25 +74,50 @@ <span>{{ annual.title }}</span> <span> 鏃堕棿 - <img class="sort-Icon" :src="[isDisplay ? sortTop : sortBottom]" alt="" /> + <img + class="sort-Icon" + :src="[isDisplay ? sortTop : sortBottom]" + alt="" + /> </span> - <span>鏂囩尞閲� - <img class="sort-Icon" :src="[isDisplay ? sortBottom : sortTop]" alt="" /> + <span + >鏂囩尞閲� + <img + class="sort-Icon" + :src="[isDisplay ? sortBottom : sortTop]" + alt="" + /> </span> </div> <p @click="annual.isDisplay = !annual.isDisplay"> - <img :src="[annual.isDisplay ? topIcon : bottomIcon]" alt="" /> + <img + :src="[annual.isDisplay ? topIcon : bottomIcon]" + alt="" + /> </p> </li> <li class="left-main" v-if="annual.isDisplay"> - <div class="annual-main" :style="{ - display: index + 1 > professionIndex ? 'none' : '', - }" v-for="(item, index) in annual.list" :key="index"> - <el-checkbox class="el-checkbox" v-model="item.checked" :title="item.years">{{ item.years - }}</el-checkbox> + <div + class="annual-main" + :style="{ + display: index + 1 > professionIndex ? 'none' : '', + }" + v-for="(item, index) in annual.list" + :key="index" + > + <el-checkbox + class="el-checkbox" + v-model="item.checked" + :title="item.years" + >{{ item.years }}</el-checkbox + > <span class="">{{ item.num }}</span> </div> - <p class="annual-footer" v-if="annual.list && annual.list.length > 5" @click="shrinkClick('a', '骞村害')"> + <p + class="annual-footer" + v-if="annual.list && annual.list.length > 5" + @click="shrinkClick('a', '骞村害')" + > {{ activeBox !== "a" ? "鏇村 鈭�" : "鏀惰捣 鈭�" }} </p> </li> @@ -82,23 +129,42 @@ <span>{{ sources.title }}</span> <span> 鏂囩尞閲� - <img class="sort-Icon" :src="[isDisplay ? sortBottom : sortTop]" alt="" /> + <img + class="sort-Icon" + :src="[isDisplay ? sortBottom : sortTop]" + alt="" + /> </span> </div> <p @click="sources.isDisplay = !sources.isDisplay"> - <img :src="[sources.isDisplay ? topIcon : bottomIcon]" alt="" /> + <img + :src="[sources.isDisplay ? topIcon : bottomIcon]" + alt="" + /> </p> </li> <li class="left-main" v-if="sources.isDisplay"> - <div class="sources-main" v-for="(item, index) in sources.list" :key="index" :style="{ - display: index + 1 > dynastyIndex ? 'none' : '', - }"> - <el-checkbox class="el-checkbox" :title="item.name" v-model="item.checked">{{ item.name - }}</el-checkbox> + <div + class="sources-main" + v-for="(item, index) in sources.list" + :key="index" + :style="{ + display: index + 1 > dynastyIndex ? 'none' : '', + }" + > + <el-checkbox + class="el-checkbox" + :title="item.name" + v-model="item.checked" + >{{ item.name }}</el-checkbox + > <span class="">{{ item.num }}</span> </div> - <p class="sources-footer" v-if="sources.list && sources.list.length > 5" - @click="shrinkClick('b', '鏂囩尞鏉ユ簮')"> + <p + class="sources-footer" + v-if="sources.list && sources.list.length > 5" + @click="shrinkClick('b', '鏂囩尞鏉ユ簮')" + > {{ activeBox !== "b" ? "鏇村 鈭�" : "鏀惰捣 鈭�" }} </p> </li> @@ -108,39 +174,67 @@ <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">{{ 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> </div> - <div class="content-right" v-loading="loading" element-loading-text="妫�绱㈢粨鏋滃姞杞戒腑" - element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0)"> + <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 @click="removeAssociationList(item.content)" :src="errorIcon" alt="" /> + <img + @click="removeAssociationList(item.content)" + :src="errorIcon" + alt="" + /> </li> </ul> <!-- 鍏眡x鏉� --> <ul class="right-number"> <ul class="number-number"> - 鍏辨壘鍒�<span>{{ this.total }}</span>鏉$粨鏋� + 鍏辨壘鍒�<span>{{ this.total }}</span + >鏉$粨鏋� </ul> <ul class="number-time"> 鍙戣〃鏃堕棿 - <span><img :src="sortBottom" alt="" /></span> + <span @click="sortChange()" + ><img :src="!postedSortInfo ? sortBottom : sortTop" alt="" + /></span> </ul> </ul> <!-- 缁撴灉灞曠ず --> - <ul class="right-main" v-for="(item, index) in resultList" :key="index"> + <ul + class="right-main" + v-for="(item, index) in resultList" + :key="index" + > <li class="main-name"> <p>{{ item.name }}</p> <p> @@ -163,15 +257,25 @@ </li> <li class="main-keyword" v-if="item.keyWords && item.keyWords.length > 0"> <span>鍏抽敭璇嶏細</span> - <span class="keyWord" v-for="(citem, cindex) in item.keyWords" :key="cindex"> + <span + class="keyWord" + v-for="(citem, cindex) in item.keyWords" + :key="cindex" + > {{ citem }} </span> </li> </ul> <!-- 鍒嗛〉 --> <div class="pagination" v-if="total > 6"> - <el-pagination @current-change="handleCurrentChange" class="msg-pagination-container" - :background="isBackground" layout="prev, pager, next" :total="total" :page-size="6"> + <el-pagination + @current-change="handleCurrentChange" + class="msg-pagination-container" + :background="isBackground" + layout="prev, pager, next" + :total="total" + :page-size="6" + > </el-pagination> </div> </div> @@ -315,6 +419,10 @@ }, ], }, + categoryChecList: [], + subjectCheckList: [], + + postedSortInfo: true, // 骞村害 annual: { title: "骞村害", @@ -445,6 +553,14 @@ total: 0, paginationPage: 1, loading: false, + labelList: { + abstract: "鎽樿", + author: "浣滆��", + keyword: "鍏抽敭璇�", + source: "鏉ユ簮", + title: "鏍囬", + year: "骞翠唤", + }, }; }, mounted() { @@ -452,7 +568,45 @@ }, methods: { - async onSubmit(val) { }, + categoryChange(val) { + console.log(val, "val"); + if (val.checked) { + this.categoryChecList.push(val.value); + } else { + const index = this.categoryChecList.findIndex( + (item) => item === val.value + ); + this.categoryChecList.splice(index, 1); + } + this.getItemList(); + }, + + subjectChange(val) { + console.log(val, "val"); + if (val.checked) { + this.subjectCheckList.push(val.value); + } else { + const index = this.subjectCheckList.findIndex( + (item) => item === val.value + ); + this.subjectCheckList.splice(index, 1); + } + this.getItemList(); + }, + + async onSubmit(val) { + for (let key in val) { + if (val[key] != "") { + this.associationList.push({ + type: this.labelList[key], + content: val[key], + value: key, + }); + } + } + console.log(this.associationList, "this.associationList"); + this.getItemList(); + }, //閲嶇疆鎼滅储缁撴灉 resetForm() { // this.onSearch(""); @@ -489,14 +643,15 @@ this.getSelectContent(this.subjectAffiliationRefCode), this.getSelectContent(this.resourceTypeRefCode), ]); - this.subject.list = subjectListResult.option + console.log(subjectListResult.option); + 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.resourceTypeValueList.push(item.value); }); } - this.getItemList() + this.getItemList(); } catch (error) { console.error("鑾峰彇涓嬫媺妗嗘暟鎹け璐�:", error); } @@ -531,13 +686,13 @@ handleSearch(isText) { this.associationList = [] if (isText.text != "") { - this.inputValue = isText.text - this.inputType = isText.type + this.inputValue = isText.text; + this.inputType = isText.type; this.associationList.push({ type: isText.label, content: isText.text, }); - this.getItemList() + this.getItemList(); } }, @@ -571,11 +726,17 @@ queryType: "*", paging: { start: (this.paginationPage - 1) * 6, - size: 6 + size: 6, + }, + sort: { + year: this.postedSortInfo ? "Desc" : "Asc", }, fields: { cmsType: ["cmsItem"], - "resourceType*": this.resourceTypeValueList, + "resourceType*": + this.categoryChecList.length > 0 + ? this.categoryChecList + : this.resourceTypeValueList, source: [], year: [], abstract: [], @@ -585,6 +746,7 @@ AIReading: [], file: [], IssueNumber: [], + "subjectAffiliation*": this.subjectCheckList, ...searchData, }, }) @@ -592,8 +754,8 @@ console.log(res, "鍏ㄩ儴鍐呭"); res.datas.forEach((item) => { - item.year = moment(item.year).format("YYYY-MM-DD") - if (typeof item.keyWords === 'string') { + item.year = moment(item.year).format("YYYY-MM-DD"); + if (typeof item.keyWords === "string") { item.keyWords = item.keyWords.split(";;"); } else { // 璁剧疆涓�涓粯璁ゅ�兼垨鑰呰繘琛屽叾浠栭敊璇鐞� @@ -606,7 +768,7 @@ this.resultList = res.datas this.total = res.total; this.loading = false; - }) + }); }, // 澶勭悊椤电爜鍙樺寲 handleCurrentChange(newPage) { @@ -623,7 +785,10 @@ } }); }, - + sortChange() { + this.postedSortInfo = !this.postedSortInfo; + this.getItemList(); + }, }, }; </script> @@ -874,12 +1039,15 @@ border-color: #d1d1d1; } - ::v-deep .el-checkbox .el-checkbox__input.is-checked+.el-checkbox__label { + ::v-deep .el-checkbox .el-checkbox__input.is-checked + .el-checkbox__label { color: #2c2c2c; } ::v-deep .el-checkbox .el-checkbox__input.is-checked .el-checkbox__inner, - ::v-deep .el-checkbox .el-checkbox__input.is-indeterminate .el-checkbox__inner { + ::v-deep + .el-checkbox + .el-checkbox__input.is-indeterminate + .el-checkbox__inner { border-color: #8f7a5a; background-color: #8f7a5a; } @@ -1004,7 +1172,6 @@ background-color: #87a8b9; color: #fff; margin-right: 10px; - } span:nth-child(2) { @@ -1013,7 +1180,6 @@ font-weight: 350; padding-right: 10px; color: #333; - } span:nth-child(3) { @@ -1034,8 +1200,6 @@ color: #333; border-left: 1px solid #2c2c2c; } - - margin-bottom: 10px; } @@ -1132,7 +1296,9 @@ border: 1px solid #cccccc; } -:deep.msg-pagination-container.is-background .el-pager li:not(.disabled).active { +:deep.msg-pagination-container.is-background + .el-pager + li:not(.disabled).active { /*褰撳墠閫変腑椤垫暟鐨勬牱寮忚繘琛屼慨鏀�*/ background-color: #937950; color: #fff; -- Gitblit v1.9.1