From 87c87f989dcc3027407eccde48a6b35f0f999570 Mon Sep 17 00:00:00 2001 From: 杨磊 <505174330@qq.com> Date: 星期一, 28 四月 2025 14:48:23 +0800 Subject: [PATCH] 高级检索 --- src/views/achievements/index.vue | 155 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 130 insertions(+), 25 deletions(-) diff --git a/src/views/achievements/index.vue b/src/views/achievements/index.vue index 087462f..80fc281 100644 --- a/src/views/achievements/index.vue +++ b/src/views/achievements/index.vue @@ -251,16 +251,31 @@ <li class="main-author"> {{ item.author }} </li> - <li class="main-title" :title="item.cleanAbstract" v-if="item.abstract"> + <li + class="main-title" + :title="item.cleanAbstract" + v-if="item.abstract" + > <span>鎽樿: </span> <span class="page-main-abstract" v-html="item.abstract"></span> </li> - <li class="main-keyword" v-if="item.keyWords && item.keyWords.length > 0"> + <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" + @click=" + () => + handleSearch({ + text: citem, + type: 'keyWords', + label: '鍏抽敭璇�', + }) + " > {{ citem }} </span> @@ -278,8 +293,8 @@ > </el-pagination> </div> + <el-empty v-if="!loading && !resultList.length"></el-empty> </div> - <el-empty v-if="!loading && !resultList.length"></el-empty> </div> </div> </div> @@ -569,14 +584,21 @@ methods: { categoryChange(val) { - console.log(val, "val"); if (val.checked) { this.categoryChecList.push(val.value); + this.associationList.push({ + type: "绫诲瀷", + content: val.name, + }); } else { const index = this.categoryChecList.findIndex( (item) => item === val.value ); + const index2 = this.associationList.findIndex( + (item) => item.name === val.name + ); this.categoryChecList.splice(index, 1); + this.associationList.splice(index2, 1); } this.getItemList(); }, @@ -679,12 +701,12 @@ ); this.inputValue = ""; // 閫氱煡鐖剁粍浠舵暟鎹凡鏀瑰彉 - this.getItemList() + this.getItemList(); }, // 鎼滅储 handleSearch(isText) { - this.associationList = [] + this.associationList = []; if (isText.text != "") { this.inputValue = isText.text; this.inputType = isText.type; @@ -699,19 +721,25 @@ // 璇锋眰鏁版嵁 getItemList() { let searchData = {}; // 鍒濆鍖栦竴涓┖瀵硅薄鏉ュ瓨鍌ㄦ悳绱㈡暟鎹� - if (this.inputValue) { // 濡傛灉杈撳叆鍊煎瓨鍦� - if (this.inputType != "all") { // 濡傛灉杈撳叆绫诲瀷涓嶆槸"all" + if (this.inputValue) { + // 濡傛灉杈撳叆鍊煎瓨鍦� + if (this.inputType != "all") { + // 濡傛灉杈撳叆绫诲瀷涓嶆槸"all" // 灏嗚緭鍏ュ�间笌杈撳叆绫诲瀷鍏宠仈锛屽苟娣诲姞涓�涓槦鍙�(*)浣滀负鍚庣紑 searchData[this.inputType + "*"] = this.inputValue; - } else { // 濡傛灉杈撳叆绫诲瀷鏄�"all" + } else { + // 濡傛灉杈撳叆绫诲瀷鏄�"all" // 閬嶅巻杈撳叆閫夐」 for (let index = 0; index < this.inputOptions.length; index++) { const item = this.inputOptions[index]; // 鑾峰彇褰撳墠閫夐」 - if (item.value !== "all") { // 濡傛灉褰撳墠閫夐」鐨勫�间笉鏄�"all" - if (!Object.keys(searchData).length) { // 濡傛灉searchData鏄┖鐨� + if (item.value !== "all") { + // 濡傛灉褰撳墠閫夐」鐨勫�间笉鏄�"all" + if (!Object.keys(searchData).length) { + // 濡傛灉searchData鏄┖鐨� // 灏嗙涓�涓�夐」鐨勫�间笌杈撳叆鍊煎叧鑱旓紝骞舵坊鍔犱竴涓槦鍙�(*)浣滀负鍚庣紑 searchData[item.value + "*"] = this.inputValue; - } else { // 濡傛灉searchData涓嶆槸绌虹殑 + } else { + // 濡傛灉searchData涓嶆槸绌虹殑 // 浣跨敤"||"浣滀负鍓嶇紑锛屽皢鍚庣画閫夐」鐨勫�间笌杈撳叆鍊煎叧鑱旓紝骞舵坊鍔犱竴涓槦鍙�(*)浣滀负鍚庣紑 // 杩欓�氬父鐢ㄤ簬鏋勫缓涓�涓�昏緫鎴栵紙OR锛夋煡璇� searchData["||" + item.value + "*"] = this.inputValue; @@ -720,6 +748,19 @@ } } } + if (this.associationList && this.associationList.length) { + this.associationList.forEach((item) => { + 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 { + searchData[item.value + "*"] = item.content; + } + }); + } + console.log(searchData, "searchData"); MG.resource .getItem({ path: "*", @@ -761,11 +802,16 @@ // 璁剧疆涓�涓粯璁ゅ�兼垨鑰呰繘琛屽叾浠栭敊璇鐞� item.keyWords = []; } - // item.cleanAbstract = item.abstract.replace(/<[^>]+>/g, ""); - const foundItem = this.category.list.find((citem) => citem.value == item.cmsItemType); - item.resourceTypeName = foundItem ? foundItem.name : ''; - }) - this.resultList = res.datas + if (item.abstract) { + item.cleanAbstract = item.abstract.replace(/<[^>]+>/g, ""); + } + + const foundItem = this.category.list.find( + (citem) => citem.value == item.cmsItemType + ); + item.resourceTypeName = foundItem ? foundItem.name : ""; + }); + this.resultList = res.datas; this.total = res.total; this.loading = false; }); @@ -776,11 +822,11 @@ this.getItemList(); // 閲嶆柊鑾峰彇鏁版嵁 // 婊氬姩鍒伴〉闈㈤《閮� 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", }); } }); @@ -827,6 +873,18 @@ } } +::v-deep .el-loading-spinner { + .el-loading-text { + font-size: 14px; + color: #937950; + } + + .el-icon-loading { + font-size: 14px; + color: #937950; + } +} + .page-main-father { flex: 1; width: 100%; @@ -850,15 +908,40 @@ background-color: #fefbf5; border: 1px solid #e4dace; - .input-main { + ::v-deep(.input-main) { padding: 15px 0; display: flex; justify-content: center; width: 90%; border-right: 2px solid #e4dace; + font-weight: bold; .input-with-select { width: 50%; + font-weight: bold; + } + + .el-select .el-input.is-focus .el-input__inner { + color: #937950 !important; + border-color: #937950 !important; + font-weight: bold; + } + + .el-select-dropdown__item.selected { + color: #937950 !important; + font-weight: bold; + } + + .el-select .el-input__inner:focus { + border-color: #937950; + font-weight: bold; + } + + .el-select .el-input__inner { + font-family: Source Han Sans; + font-size: 14px; + font-weight: bold; + color: #2c2c2c; } } @@ -911,11 +994,11 @@ font-size: 14px; background-color: transparent; color: #937950; - border: 1px solid #6f5a3a; + border: 1px solid #937950; cursor: pointer; &:hover { - background-color: #6f5a3a; + background-color: #937950; color: #fffdf8; } } @@ -1081,6 +1164,7 @@ .right-header { display: flex; + flex-wrap: wrap; li { background: #ffffff; @@ -1092,6 +1176,8 @@ font-family: Poppins; font-size: 13px; color: #937950; + line-height: 20px; + margin-bottom: 10px; img { cursor: pointer; @@ -1151,16 +1237,17 @@ font-size: 16px; font-weight: bold; color: #937950; + margin-bottom: 5px; ::v-deep .el-button { font-size: 14px; background-color: transparent; color: #937950; - border: 1px solid #6f5a3a; + border: 1px solid #937950; border-radius: 0; &:hover { - background-color: #6f5a3a; + background-color: #937950; color: #fffdf8; } } @@ -1305,4 +1392,22 @@ border-radius: 5px; border: 1px solid #cccccc; } -</style> \ No newline at end of file +</style> + +<style> +.el-input.is-focus .el-input__inner { + color: #937950 !important; + border-color: #937950 !important; + font-weight: bold; +} + +.el-select-dropdown__item.selected { + color: #937950 !important; + font-weight: bold; +} + +.el-select .el-input__inner:focus { + border-color: #937950; + font-weight: bold; +} +</style> -- Gitblit v1.9.1