From 428519bd36af8e719e56abbc5f1ba0b37cdadb8c Mon Sep 17 00:00:00 2001 From: zhongshujie <2862698242@qq.com> Date: 星期一, 28 四月 2025 14:49:32 +0800 Subject: [PATCH] 样式调整 --- src/views/achievements/index.vue | 391 +++++++++++++++++++++++++++---------------------------- 1 files changed, 190 insertions(+), 201 deletions(-) diff --git a/src/views/achievements/index.vue b/src/views/achievements/index.vue index 4faf930..c1ab2ea 100644 --- a/src/views/achievements/index.vue +++ b/src/views/achievements/index.vue @@ -19,17 +19,12 @@ </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"> @@ -39,31 +34,15 @@ <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" - 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 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> @@ -74,50 +53,25 @@ <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> @@ -129,42 +83,23 @@ <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> @@ -174,71 +109,43 @@ <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> </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 @click="sortChange()" - ><img :src="!postedSortInfo ? sortBottom : sortTop" 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> - <el-button @click="goPage(item)">璇︽儏</el-button> + <el-button @click="goPage(item.id)">璇︽儏</el-button> <el-button>AI鏅鸿兘闃呰</el-button> </p> </li> @@ -251,33 +158,25 @@ <li class="main-author"> {{ item.author }} </li> - <li class="main-title" :title="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> + <span class="page-main-abstract" v-html="item.cleanAbstract"></span> </li> - <li class="main-keyword"> + <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" + @click="() => handleSearch({ text: citem, type: 'keyWords', label: '鍏抽敭璇�' })"> {{ 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> + <el-empty v-if="!loading && !resultList.length"></el-empty> </div> </div> </div> @@ -299,6 +198,7 @@ }, data() { return { + relatedList: [], // 杈撳叆妗嗙殑鍐呭 inputValue: "", // 閫夋嫨鐨勭被鍨� @@ -308,6 +208,7 @@ { value: "all", label: "鍏ㄩ儴" }, { value: "Name", label: "鏍囬" }, { value: "author", label: "浣滆��" }, + // { value: "year", label: "骞翠唤" }, { value: "keyWords", label: "鍏抽敭璇�" }, { value: "abstract", label: "鎽樿" }, { value: "source", label: "鏉ユ簮" }, @@ -562,8 +463,6 @@ }; }, mounted() { - this.getSelectContent(); - this.getLeftCheckbox(); this.getSelectData(); }, @@ -612,9 +511,8 @@ // this.onSearch(""); }, // 椤甸潰璺宠浆 - goPage(key) { - console.log(key, "key"); - this.$router.push({ name: "details", params: { key: key } }); + goPage(id) { + this.$router.push({ name: "details", query: { id } }); }, // 鏀惰捣鍜屽睍绀� shrinkClick(key, name) { @@ -634,8 +532,6 @@ this.activeBox = this.activeBox === "b" ? null : "b"; } }, - // 鑾峰彇宸︿晶checkbox鏁版嵁 - getLeftCheckbox() {}, //鑾峰彇涓嬫媺閫夋嫨妗嗙殑鍐呭 async getSelectData() { @@ -667,7 +563,6 @@ .getProductTypeField(requestData) .then((res) => { const selestList = JSON.parse(res[0].config); - console.log(selestList, "涓嬫媺妗嗘暟鎹�"); return selestList; }) .catch((error) => { @@ -682,13 +577,13 @@ (item) => item.content !== value ); this.inputValue = ""; - this.getItemList(); + // 閫氱煡鐖剁粍浠舵暟鎹凡鏀瑰彉 + this.getItemList() }, // 鎼滅储 handleSearch(isText) { - console.log(1234); - console.log(isText, "鎼滅储123"); + this.associationList = [] if (isText.text != "") { this.inputValue = isText.text; this.inputType = isText.type; @@ -700,32 +595,30 @@ } }, - // getTtem + // 璇锋眰鏁版嵁 getItemList() { - let searchData = {}; - if (this.inputValue) { - if (this.inputType != "all") { + let searchData = {}; // 鍒濆鍖栦竴涓┖瀵硅薄鏉ュ瓨鍌ㄦ悳绱㈡暟鎹� + if (this.inputValue) { // 濡傛灉杈撳叆鍊煎瓨鍦� + if (this.inputType != "all") { // 濡傛灉杈撳叆绫诲瀷涓嶆槸"all" + // 灏嗚緭鍏ュ�间笌杈撳叆绫诲瀷鍏宠仈锛屽苟娣诲姞涓�涓槦鍙�(*)浣滀负鍚庣紑 searchData[this.inputType + "*"] = this.inputValue; - } else { + } else { // 濡傛灉杈撳叆绫诲瀷鏄�"all" + // 閬嶅巻杈撳叆閫夐」 for (let index = 0; index < this.inputOptions.length; index++) { - const item = this.inputOptions[index]; - if (item.value !== "all") { - console.log(item.value, "987"); - if (!Object.keys(searchData).length) { + const item = this.inputOptions[index]; // 鑾峰彇褰撳墠閫夐」 + if (item.value !== "all") { // 濡傛灉褰撳墠閫夐」鐨勫�间笉鏄�"all" + if (!Object.keys(searchData).length) { // 濡傛灉searchData鏄┖鐨� + // 灏嗙涓�涓�夐」鐨勫�间笌杈撳叆鍊煎叧鑱旓紝骞舵坊鍔犱竴涓槦鍙�(*)浣滀负鍚庣紑 searchData[item.value + "*"] = this.inputValue; - } else { + } else { // 濡傛灉searchData涓嶆槸绌虹殑 + // 浣跨敤"||"浣滀负鍓嶇紑锛屽皢鍚庣画閫夐」鐨勫�间笌杈撳叆鍊煎叧鑱旓紝骞舵坊鍔犱竴涓槦鍙�(*)浣滀负鍚庣紑 + // 杩欓�氬父鐢ㄤ簬鏋勫缓涓�涓�昏緫鎴栵紙OR锛夋煡璇� searchData["||" + item.value + "*"] = this.inputValue; } } } } } - if (this.associationList && this.associationList.length) { - this.associationList.forEach((item) => { - searchData[item.value + "*"] = item.content; - }); - } - console.log(searchData, "searchData"); MG.resource .getItem({ path: "*", @@ -757,7 +650,8 @@ }, }) .then((res) => { - console.log(res, "鍏ㄩ儴鏁版嵁"); + console.log(res, "鍏ㄩ儴鍐呭"); + res.datas.forEach((item) => { item.year = moment(item.year).format("YYYY-MM-DD"); if (typeof item.keyWords === "string") { @@ -766,20 +660,46 @@ // 璁剧疆涓�涓粯璁ゅ�兼垨鑰呰繘琛屽叾浠栭敊璇鐞� item.keyWords = []; } - item.resourceTypeName = this.category.list.find( - (citem) => citem.value == item.cmsItemType - ).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; + }).catch((error) => { + // 鎵撳嵃閿欒淇℃伅 + console.error("鑾峰彇鏁版嵁澶辫触:", error); }); - }, + // 婊氬姩鍒伴〉闈㈤《閮� + this.$nextTick(() => { + const pageMain = document.querySelector('.page-main-father'); + if (pageMain) { + pageMain.scrollTo({ + top: 0, + behavior: 'smooth' + }); + } + }); + }, // 澶勭悊椤电爜鍙樺寲 handleCurrentChange(newPage) { this.paginationPage = newPage; this.getItemList(); // 閲嶆柊鑾峰彇鏁版嵁 + // 婊氬姩鍒伴〉闈㈤《閮� + this.$nextTick(() => { + const pageMain = document.querySelector('.page-main-father'); + if (pageMain) { + pageMain.scrollTo({ + top: 0, + behavior: 'smooth' + }); + } + }); }, sortChange() { this.postedSortInfo = !this.postedSortInfo; @@ -823,11 +743,25 @@ } } +::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%; height: 100%; - min-width: 1292px; + min-width: 1200px; overflow: auto; padding-top: 1%; padding-bottom: 2%; @@ -846,16 +780,43 @@ 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; + + } + } .input-txt { @@ -907,10 +868,12 @@ 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; } } @@ -1034,15 +997,12 @@ 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; } @@ -1076,6 +1036,7 @@ .right-header { display: flex; + flex-wrap: wrap; li { background: #ffffff; @@ -1087,6 +1048,8 @@ font-family: Poppins; font-size: 13px; color: #937950; + line-height: 20px; + margin-bottom: 10px; img { cursor: pointer; @@ -1146,16 +1109,21 @@ font-size: 16px; font-weight: bold; color: #937950; + margin-bottom: 5px; + + p { + overflow: hidden; + } ::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; } } @@ -1196,7 +1164,7 @@ border-left: 1px solid #2c2c2c; } - margin-bottom: 10px; + margin-bottom: 15px; } .main-author { @@ -1217,7 +1185,7 @@ overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; - -webkit-line-clamp: 4; + -webkit-line-clamp: 3; span { font-family: Source Han Sans; @@ -1291,13 +1259,34 @@ 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; border-radius: 5px; border: 1px solid #cccccc; } +:deep.el-pagination.is-background .el-pager li:not(.disabled):hover{ + color: #937950 +} </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> \ No newline at end of file -- Gitblit v1.9.1