From 87c87f989dcc3027407eccde48a6b35f0f999570 Mon Sep 17 00:00:00 2001 From: 杨磊 <505174330@qq.com> Date: 星期一, 28 四月 2025 14:48:23 +0800 Subject: [PATCH] 高级检索 --- src/assets/font/SourceHanSansCN-Bold.otf | 0 src/assets/font/SourceHanSansCN-Regular.otf | 0 src/assets/css/base.css | 4 dist.zip | 0 src/views/achievements/index.vue | 291 +++++++++++++++++++++++++++++++---------- src/views/achievements/details.vue | 1 src/views/chronology/floatingWindow.vue | 33 +++- src/layout/index.vue | 13 + src/assets/images/right_arrow.svg | 1 src/views/chronology/yearWindow.vue | 43 +++++ src/views/chronology/index.vue | 33 +++- src/views/directory/index.vue | 1 12 files changed, 318 insertions(+), 102 deletions(-) diff --git a/dist.zip b/dist.zip index ed835c2..89a8539 100644 --- a/dist.zip +++ b/dist.zip Binary files differ diff --git a/src/assets/css/base.css b/src/assets/css/base.css index 8e41ba6..55e18a9 100644 --- a/src/assets/css/base.css +++ b/src/assets/css/base.css @@ -101,11 +101,11 @@ @font-face { font-family: "siyuanBold"; - src: url(../font/SourceHanSerifCN-Bold.otf); + src: url(../font/SourceHanSansCN-Bold.otf); } @font-face { font-family: "siyuan"; - src: url(../font/SourceHanSerifCN-Regular.otf); + src: url(../font/SourceHanSansCN-Regular.otf); } diff --git a/src/assets/font/SourceHanSansCN-Bold.otf b/src/assets/font/SourceHanSansCN-Bold.otf new file mode 100644 index 0000000..4b3429a --- /dev/null +++ b/src/assets/font/SourceHanSansCN-Bold.otf Binary files differ diff --git a/src/assets/font/SourceHanSansCN-Regular.otf b/src/assets/font/SourceHanSansCN-Regular.otf new file mode 100644 index 0000000..886f82f --- /dev/null +++ b/src/assets/font/SourceHanSansCN-Regular.otf Binary files differ diff --git a/src/assets/images/right_arrow.svg b/src/assets/images/right_arrow.svg new file mode 100644 index 0000000..eac093d --- /dev/null +++ b/src/assets/images/right_arrow.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="48" height="48" viewBox="0 0 48 48"><defs><clipPath id="master_svg0_55_1931"><rect x="0" y="0" width="48" height="48" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_55_1931)"><g><rect x="0" y="0" width="48" height="48" rx="0" fill="#FFFFFF" fill-opacity="0.009999999776482582" style="mix-blend-mode:passthrough"/></g><g><path d="M9.15075,9.15076Q3,15.3015,3,24Q3,32.698499999999996,9.15076,38.8492Q15.3015,45,24,45Q32.698499999999996,45,38.8492,38.8492Q45,32.698499999999996,45,24Q45,15.3015,38.8492,9.15075Q32.698499999999996,3,24,3Q15.3015,3,9.15075,9.15076ZM10.564969999999999,37.435Q5,31.8701,5,24Q5,16.1299,10.564969999999999,10.564969999999999Q16.1299,5,24,5Q31.8701,5,37.435,10.564969999999999Q43,16.1299,43,24Q43,31.8701,37.435,37.435Q31.8701,43,24,43Q16.1299,43,10.564969999999999,37.435Z" fill-rule="evenodd" fill="#6F5A3A" fill-opacity="1" style="mix-blend-mode:passthrough"/></g><g><path d="M14.49163818359375,23.5L32.49163818359375,23.5Q32.59013818359375,23.5,32.68673818359375,23.519215Q32.78333818359375,23.538429999999998,32.87433818359375,23.576121Q32.96533818359375,23.613812,33.04723818359375,23.66853Q33.12913818359375,23.723249,33.19873818359375,23.792893Q33.268338183593755,23.862537,33.32313818359375,23.94443Q33.37783818359375,24.026322,33.41553818359375,24.117317Q33.453238183593754,24.208311,33.47243818359375,24.30491Q33.49163818359375,24.4015086,33.49163818359375,24.5Q33.49163818359375,24.5984914,33.47243818359375,24.69509Q33.453238183593754,24.791689,33.41553818359375,24.882683Q33.37783818359375,24.973678,33.32313818359375,25.05557Q33.268338183593755,25.137463,33.19873818359375,25.207107Q33.12913818359375,25.276751,33.04723818359375,25.33147Q32.96533818359375,25.386188,32.87433818359375,25.423879Q32.78333818359375,25.461570000000002,32.68673818359375,25.480785Q32.59013818359375,25.5,32.49163818359375,25.5L14.49163818359375,25.5Q14.39314678359375,25.5,14.29654818359375,25.480785Q14.19994918359375,25.461570000000002,14.10895518359375,25.423879Q14.01796018359375,25.386188,13.93606818359375,25.33147Q13.85417518359375,25.276751,13.78453118359375,25.207107Q13.71488718359375,25.137463,13.66016818359375,25.05557Q13.60545018359375,24.973678,13.56775918359375,24.882683Q13.53006818359375,24.791689,13.510853183593749,24.69509Q13.49163818359375,24.5984914,13.49163818359375,24.5Q13.49163818359375,24.4015086,13.510853183593749,24.30491Q13.53006818359375,24.208311,13.56775918359375,24.117317Q13.60545018359375,24.026322,13.66016818359375,23.94443Q13.71488718359375,23.862537,13.78453118359375,23.792893Q13.85417518359375,23.723249,13.93606818359375,23.66853Q14.01796018359375,23.613812,14.10895518359375,23.576121Q14.19994918359375,23.538429999999998,14.29654818359375,23.519215Q14.39314678359375,23.5,14.49163818359375,23.5Z" fill-rule="evenodd" fill="#6F5A3A" fill-opacity="1" style="mix-blend-mode:passthrough"/></g><g><path d="M22.78453118359375,16.207107Q22.64387918359375,16.066455,22.56775818359375,15.882683Q22.49163818359375,15.698912,22.49163818359375,15.5Q22.49163818359375,15.4015086,22.51085318359375,15.30491Q22.530068183593748,15.208311,22.56775918359375,15.117317Q22.60545018359375,15.026322,22.66016818359375,14.94443Q22.71488718359375,14.862537,22.78453118359375,14.792893Q22.85417518359375,14.723249,22.93606818359375,14.66853Q23.01796018359375,14.613812,23.10895518359375,14.576121Q23.19994918359375,14.53843,23.29654818359375,14.519214999999999Q23.39314678359375,14.5,23.49163818359375,14.5Q23.69055018359375,14.5,23.87432118359375,14.57612Q24.05809318359375,14.652241,24.19874518359375,14.792893L33.19874818359375,23.79289Q33.33939818359375,23.93355,33.41551818359375,24.11732Q33.49163818359375,24.301090000000002,33.49163818359375,24.5Q33.49163818359375,24.698909999999998,33.41551818359375,24.88268Q33.33939818359375,25.06645,33.19874818359375,25.20711L24.19874518359375,34.2071Q24.05809218359375,34.3478,23.87432118359375,34.4239Q23.69055018359375,34.5,23.49163818359375,34.5Q23.39314678359375,34.5,23.29654818359375,34.4808Q23.19994918359375,34.461600000000004,23.10895518359375,34.4239Q23.01796018359375,34.3862,22.93606818359375,34.3315Q22.85417518359375,34.276700000000005,22.78453118359375,34.2071Q22.71488718359375,34.1375,22.66016818359375,34.0556Q22.60545018359375,33.9737,22.56775918359375,33.8827Q22.530068183593748,33.7917,22.51085318359375,33.6951Q22.49163818359375,33.5985,22.49163818359375,33.5Q22.49163818359375,33.301100000000005,22.56775818359375,33.1173Q22.64387918359375,32.933499999999995,22.78453118359375,32.7929L22.78541118359375,32.792L31.07742818359375,24.5L22.78453118359375,16.207107L22.78453118359375,16.207107Z" fill-rule="evenodd" fill="#6F5A3A" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></svg> \ No newline at end of file diff --git a/src/layout/index.vue b/src/layout/index.vue index 0308721..eb9f1ab 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -114,13 +114,14 @@ background: #937950; display: flex; flex-direction: column; - font-family: Alimama DongFangDaKai; - + font-family: siyuanBlod; + .leftMenuTitle { width: 100%; height: 50px; line-height: 50px; text-align: center; + margin-top: 20px; color: #fff; font-size: 24px; } @@ -129,11 +130,14 @@ font-size: 20px; line-height: 30px; color: #fff; - margin: 10px 20px; + margin: 10px 14px; + margin-top: 0px; padding: 10px 0; text-align: center; border-top: 1px solid #fff; border-bottom: 1px solid #fff; + letter-spacing: 4px; + white-space: nowrap; } .leftMenuList > menuItem:first-child { @@ -146,7 +150,7 @@ justify-content: space-around; border-top: 1px solid #b9a587; margin-top: 20px; - + font-weight: bold; .menuItem { width: 100%; display: flex; @@ -161,6 +165,7 @@ cursor: pointer; .menuText { line-height: 50px; + font-weight: 700; } i { diff --git a/src/views/achievements/details.vue b/src/views/achievements/details.vue index c2b8297..cd98c70 100644 --- a/src/views/achievements/details.vue +++ b/src/views/achievements/details.vue @@ -182,6 +182,7 @@ if (this.details.cmsItemType == "video" || this.details.cmsItemType == "audio") { if (this.details.file != "") { this.details.src = await this.getResourcePath(this.details.file) + console.log(this.details.src, "瑙嗛鍦板潃"); } } diff --git a/src/views/achievements/index.vue b/src/views/achievements/index.vue index eb71247..80fc281 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,15 +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" 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> @@ -53,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> @@ -83,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> @@ -109,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" - @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> @@ -158,22 +251,46 @@ <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: '鍏抽敭璇�' })"> + <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> @@ -467,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(); }, @@ -577,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; @@ -597,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; @@ -618,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: "*", @@ -663,10 +806,12 @@ 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 + 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; }); @@ -677,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", }); } }); @@ -730,7 +875,6 @@ ::v-deep .el-loading-spinner { .el-loading-text { - font-size: 14px; color: #937950; } @@ -740,7 +884,6 @@ color: #937950; } } - .page-main-father { flex: 1; @@ -798,10 +941,8 @@ font-family: Source Han Sans; font-size: 14px; font-weight: bold; - color: #2C2C2C; - + color: #2c2c2c; } - } .input-txt { @@ -854,7 +995,6 @@ background-color: transparent; color: #937950; border: 1px solid #937950; - ; cursor: pointer; &:hover { @@ -982,12 +1122,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; } @@ -1240,7 +1383,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; @@ -1254,9 +1399,7 @@ color: #937950 !important; border-color: #937950 !important; font-weight: bold; - } - .el-select-dropdown__item.selected { color: #937950 !important; @@ -1267,4 +1410,4 @@ border-color: #937950; font-weight: bold; } -</style> \ No newline at end of file +</style> diff --git a/src/views/chronology/floatingWindow.vue b/src/views/chronology/floatingWindow.vue index 0a45b56..c8665c9 100644 --- a/src/views/chronology/floatingWindow.vue +++ b/src/views/chronology/floatingWindow.vue @@ -4,7 +4,7 @@ class="journalBox" v-if="info.cmsItemType === 'journal' || info.cmsItemType === 'books'" > - <div class="title">{{ info.name }}</div> + <div :title="info.name" class="title">{{ info.name }}</div> <div class="subtitle"> <div class="source">{{ info.source }}</div> <div class="journalInformation">{{ info.IssueNumber }}</div> @@ -43,7 +43,7 @@ </div> </div> <div class="videoBox" v-if="info.cmsItemType === 'video'"> - <video width="370" height="200" controls :src="info.requestCtx"></video> + <video width="370" height="200" controls :src="info.fileLink"></video> <div> <div class="subtitle"> @@ -52,15 +52,16 @@ </div> <div class="contentBox" style="text-align: left"> <div class="contentBox" style="text-align: left"> - <div class="audioContent" v-html="info.abstract"></div> - </div></div> + <div class="audioContent" v-html="info.abstract"></div> + </div> + </div> </div> </div> <div class="audioBox" v-if="info.cmsItemType === 'audio'"> <div style="text-align: center"> <audio style="width: 90%" - src="https://www.w3schools.com/html/horse.ogg" + :src="info.fileLink" controls ></audio> </div> @@ -76,7 +77,7 @@ </div> <div class="btnBox"> - <div class="detailBtn">鏌ョ湅璇︽儏</div> + <div @click="toDetail" class="detailBtn">鏌ョ湅璇︽儏</div> </div> </div> </template> @@ -94,7 +95,14 @@ data() { return {}; }, - + mounted() { + console.log(this.info); + }, + methods: { + toDetail() { + this.$router.push({ name: "details", query: { id: this.info.id } }); + }, + }, }; </script> @@ -112,6 +120,10 @@ font-size: 16px; line-height: 22px; font-weight: 600; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin-top: 10px; } .subtitle { @@ -197,7 +209,7 @@ cursor: pointer; border: 1px solid #8f7a5a; } -.audioContent{ +.audioContent { white-space: pre-line; line-height: 18px; margin-top: 10px; @@ -205,4 +217,9 @@ overflow-y: auto; margin-top: 20px; } +video { + 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 8b5e4db..ba47e3f 100644 --- a/src/views/chronology/index.vue +++ b/src/views/chronology/index.vue @@ -96,7 +96,8 @@ import floatingWindow from "./floatingWindow.vue"; import yearWindow from "./yearWindow.vue"; import { nextTick } from "vue"; - +import fileApi from "@/assets/js/middleGround/api/file"; +import { requestCtx, appRefCode } from "@/assets/js/config"; export default { components: { floatingWindow, @@ -158,6 +159,7 @@ }, }) .then(async (res) => { + console.log(res, "res"); for (let i = 0; i < res.datas.length; i++) { const item = res.datas[i]; this.$set(item, "showDetail", false); @@ -172,7 +174,6 @@ } } - console.log(this.contentList, "this.contentList"); this.contentList = res.datas; this.showList = true; }); @@ -205,13 +206,12 @@ const filterList = yearDataList.datas.filter((item) => { return item.cmsItemType != "chronology" && item.cmsItemType != "AWARD"; }); - if (filterList && filterList.length > 0) { for (let i = 0; i < filterList.length; i++) { const item = filterList[i]; if (item.file) { - const requestCtx = - this.config.requestCtx + `/file/api/ApiDownload?md5=${item.file}`; + const requestCtx = await this.getResourcePath(item.file); + console.log(requestCtx, "requestCtx"); this.$set(item, "fileLink", requestCtx); } this.$set(item, "showDetail", false); @@ -224,6 +224,20 @@ } return filterList; }, + + // 鑾峰彇闃块噷浜戝姞閫熷湴鍧� (瑙嗛锛岄煶棰�) + async getResourcePath(md5) { + try { + // 濡傛灉杩斿洖鐨勬暟鎹负绌烘垨鏈畾涔夛紝鍒欐嫾鎺ラ粯璁や笅杞借矾寰� + return requestCtx + "/file/api/ApiDownload?md5=" + md5; + } catch (error) { + // 鎹曡幏寮傚父骞舵墦鍗伴敊璇棩蹇� + console.error("鑾峰彇璧勬簮璺緞澶辫触:", error); + // 杩斿洖涓�涓粯璁ゅ�兼垨鎶涘嚭閿欒锛堟牴鎹笟鍔¢渶姹傦級 + return requestCtx + "/file/api/ApiDownload?md5=" + md5; + } + }, + closeDetail(index, cindex, type) { for (let i = 0; i < this.contentList.length; i++) { const item = this.contentList[i]; @@ -297,6 +311,7 @@ display: flex; flex-direction: column; overflow: auto; + font-family: Source Han Sans; } .pageBox { @@ -469,7 +484,11 @@ border: 2px solid #cbbeaa; box-shadow: 2px 2px 4px 1px rgba(0, 0, 0, 0.5); } - +video { + border-radius: 10px; + border: 1px solid #dcdcdc; + box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1); +} .yaerWindow { position: absolute; left: -54px; @@ -501,7 +520,6 @@ ::v-deep .el-loading-spinner { .el-loading-text { - font-size: 14px; color: #937950; } @@ -511,5 +529,4 @@ color: #937950; } } - </style> diff --git a/src/views/chronology/yearWindow.vue b/src/views/chronology/yearWindow.vue index d2e9f6e..3c12b53 100644 --- a/src/views/chronology/yearWindow.vue +++ b/src/views/chronology/yearWindow.vue @@ -4,10 +4,20 @@ <div class="content"> <div class="leftTxt" v-html="info.eventOverview"></div> <div class="rightimg"> - <div v-if="imgLink != ''" class="imgBox"> - <img class="autoImg" :src="imgLink" alt="" /> + <div class="imgBox" style="text-align: center" v-if="imgLink != ''"> + <div class="arrowBox leftArrowBox"> + <img class="autoImg" :src="arrow" alt="" /> + </div> + <div class="imgBox"> + <img class="autoImg" :src="imgLink" alt="" /> + </div> + <div class="arrowBox"> + <img class="autoImg" :src="arrow" alt="" /> + </div> </div> - <div style="text-align: center; font-size: 18px; color: #999" v-else>鏆傛棤鍥剧墖</div> + <div style="text-align: center; font-size: 18px; color: #999" v-else> + 鏆傛棤鍥剧墖 + </div> </div> </div> </div> @@ -15,7 +25,7 @@ <script> import { getPublicImage } from "@/assets/js/middleGround/tool"; - +import arrow from "@/assets/images/right_arrow.svg"; export default { name: "floatingWindow", props: { @@ -28,6 +38,7 @@ return { title: "", imgLink: "", + arrow, }; }, methods: {}, @@ -49,7 +60,7 @@ padding: 15px; z-index: 20; box-sizing: border-box; - background-color: #FDF8F0; + background-color: #fdf8f0; } .content { display: flex; @@ -61,11 +72,13 @@ overflow: hidden; white-space: normal; overflow-y: auto; - + padding: 10px; } .rightimg { width: 350px; height: 100%; + padding: 10px; + padding-top: 0px; } .title { font-size: 24px; @@ -77,4 +90,22 @@ min-height: 300px; position: relative; } + +.arrowBox { + width: 30px; + height: 30px; + position: relative; +} +.imgBox{ + display: flex; + justify-content: center; + align-items: center; +} +.arrowBox{ + margin: 0 5px; +} + +.leftArrowBox{ + transform: rotate(180deg); +} </style> diff --git a/src/views/directory/index.vue b/src/views/directory/index.vue index 2d7af1d..d41d60c 100644 --- a/src/views/directory/index.vue +++ b/src/views/directory/index.vue @@ -594,6 +594,7 @@ overflow: hidden; display: flex; flex-direction: column; + font-family: Source Han Sans; } .page-header { -- Gitblit v1.9.1