From 8bffcbb7f5fca4e1e7a308f6f786b63d0773704c Mon Sep 17 00:00:00 2001 From: zhongshujie <2862698242@qq.com> Date: 星期一, 28 四月 2025 19:28:29 +0800 Subject: [PATCH] 页面优化 --- src/views/achievements/index.vue | 304 ++++++++++++++++++------------------------------- 1 files changed, 113 insertions(+), 191 deletions(-) diff --git a/src/views/achievements/index.vue b/src/views/achievements/index.vue index 186b937..37c181e 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,67 +109,39 @@ <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> @@ -243,7 +150,7 @@ </p> </li> <li class="main-sources"> - <span>{{ item.resourceTypeName }}</span> + <span :class="getResourceTypeClass(item.cmsItemType)">{{ item.resourceTypeName }}</span> <span>{{ item.source }}</span> <span>{{ item.year }}</span> <span v-if="item.DOI">doi锛歿{ item.DOI }}</span> @@ -251,46 +158,28 @@ <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.cleanAbstract"></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: '鍏抽敭璇�', - }) - " - > + <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="10"> </el-pagination> </div> <el-empty v-if="!loading && !resultList.length"></el-empty> @@ -567,7 +456,7 @@ resultList: [], total: 0, paginationPage: 1, - loading: false, + loading: true, labelList: { abstract: "鎽樿", author: "浣滆��", @@ -707,7 +596,6 @@ handleSearch(isText) { this.associationList = []; console.log(isText, "isText"); - if (isText.text != "") { this.inputValue = isText.text; this.inputType = isText.type; @@ -751,26 +639,26 @@ } } } - 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; - } - }); - } + // 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: "*", queryType: "*", paging: { - start: (this.paginationPage - 1) * 6, - size: 6, + start: (this.paginationPage - 1) * 10, + size: 10, }, sort: { year: this.postedSortInfo ? "Desc" : "Asc", @@ -782,6 +670,7 @@ ? this.categoryChecList : this.resourceTypeValueList, source: [], + isbn: [], year: [], abstract: [], keyWords: [], @@ -852,6 +741,22 @@ this.postedSortInfo = !this.postedSortInfo; this.getItemList(); }, + getResourceTypeClass(typeName) { + switch (typeName) { + case 'journal': + return 'journal-color'; + case 'books': + return 'books-color'; + case 'video': + return 'video-color'; + case 'audio': + return 'audio-color'; + case 'newspaper': + return 'newspaper-color'; + default: + return 'other-color'; + } + } }, }; </script> @@ -1139,15 +1044,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; } @@ -1274,10 +1176,31 @@ } } + .journal-color { + background-color: #87a8b9; + } + .books-color { + background-color: #C48787; + } + .video-color { + background-color: #6F8F5A; + } + .audio-color { + background-color: #937950; + } + .newspaper-color { + background-color: #8D77B3; + } + .other-color { + background-color: #009F9F; + } + + + .main-sources { span:nth-child(1) { padding: 3px 5px; - background-color: #87a8b9; + color: #fff; margin-right: 10px; } @@ -1404,16 +1327,15 @@ 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{ + +:deep.el-pagination.is-background .el-pager li:not(.disabled):hover { color: #937950 } </style> -- Gitblit v1.9.1