From 49a435043b0b1a289a24606e35253365d7ab3956 Mon Sep 17 00:00:00 2001 From: QYF-GitLab1 <1940665526@qq.com> Date: 星期一, 25 八月 2025 17:51:57 +0800 Subject: [PATCH] 首页、及教学出版样式修改 --- src/views/home/index.vue | 257 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 192 insertions(+), 65 deletions(-) diff --git a/src/views/home/index.vue b/src/views/home/index.vue index f836b74..d5dddec 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -1,8 +1,8 @@ <template> <div class="homePage"> - <el-carousel :height="screenheight + 'px'"> + <el-carousel :height="'615px'"> <el-carousel-item v-for="(item, index) in banner" :key="index"> - <div class="bannerBox imgBox"> + <div class="bannerBox"> <img id="autoHeight" class="bannerImg" :src="item.icon" @click="bannerLink(item)" /> </div> </el-carousel-item> @@ -28,29 +28,27 @@ <div class="bookListBox"> <div class="contentBox"> <div class="bookListTitle"> - <div class="title">鎺ㄨ崘鏁欐潗</div> + <div class="titleBox"> + <span class="titleTextBg">鎺ㄨ崘</span> + <span>鏁欐潗</span> + </div> <div class="more" @click="toMore">鏇村></div> </div> <div class="recommendList"> - <div - class="recommendItem" - v-for="item in bookListData" - :key="item.id" - @click="toDetail(item)" - > + <div class="recommendItem" v-for="item in bookListData" :key="item.id" @click="toDetail(item)"> <div class="recommendItemImg"> <img class="autoImg" :src="item.icon" /> </div> <div class="infoBox"> <div class="bookName">{{ item.name }}</div> <div class="author"> - 浣滆�咃細{{ item.authorcaupress_author ? item.caupress_author : '-' }} + {{ item.author ? item.author : '-' }} 钁� </div> <div class="priceBox"> <span class="price" v-if="item.price && item.price > 0"> <span> 楼{{ item.price }}</span> </span> - <span class="oldPrice" v-if="item.oldPrice"> 楼{{ item.oldPrice }}</span> + <span class="oldPrice" v-if="item.oldPrice > 0"> 楼{{ item.oldPrice }}</span> </div> </div> </div> @@ -61,56 +59,53 @@ <div class="funBox"> <div class="authentication"> <div class="cardNav" @click="toAuthentication(true)"> + <img id="rightImg" src="@/assets/images/xiehe/home/jxfw.png" alt=""> <div class="cardTitle">鏁欏笀璁よ瘉</div> <div class="cardText"> - 瀛︽牎浠昏鑰佸笀涓婁紶鏁欏笀璇佹槑鏂囦欢锛岄�氳繃璁よ瘉鍚庯紝鍙繘琛屾牱涔︿笌鏁欏璧勬簮涓嬭浇鐢宠 + 瀛︽牎浠昏鑰佸笀涓婁紶鏁欏笀璇佹槑鏂囦欢锛岄�氳繃璁よ瘉鍚庯紝鍙繘琛屾暟瀛楁暀鏉愯瘯鐢ㄧ敵璇峰強寮�璇惧紑鐝� </div> </div> </div> <div class="manual"> <div class="cardNav" @click="toAuthentication(false)"> + <img id="rightImg" src="@/assets/images/xiehe/home/jxfw.png" alt=""> <div class="cardTitle">鎿嶄綔鎵嬪唽</div> - <div class="cardText">蹇�熶簡瑙d娇鐢ㄦ楠わ紝杞绘澗寮�鍚暀瀛︽敮鎸佷箣鏃呫��</div> + <div class="cardText">蹇�熶簡瑙d娇鐢ㄦ楠わ紝杞绘澗寮�鍚暀瀛︽敮鎸佷箣鏃�</div> </div> </div> </div> <div class="bookListTitle"> <div class="title" style="display: flex; line-height: 50px"> - <div>鏁欏瀵艰埅</div> + <div class="titleBox"> + <span class="titleTextBg">鏁欏</span> + <span>瀵艰埅</span> + </div> <div class="titleTabs" v-if="classfeild.length > 0"> <el-tabs v-model="activeName" @tab-change="handleClick"> - <el-tab-pane - v-for="item in classfeild" - :key="item.value" - :label="item.name" - :name="item.value" - /> + <el-tab-pane v-for="item in classfeild" :key="item.value" :label="item.name" :name="item.value" /> </el-tabs> </div> - <div class="more" style="margin-left: 20px" @click="toMore">鏇村></div> + <div class="more" style="margin-left: 30px; font-weight: normal" @click="toMore"> + 鏇村> + </div> </div> </div> <div class="recommendList"> - <div - class="recommendItem" - v-for="item in navBookList" - :key="item.id" - @click="toDetail(item)" - > + <div class="recommendItem" v-for="item in navBookList" :key="item.id" @click="toDetail(item)"> <div class="recommendItemImg"> <img class="autoImg" :src="item.icon" /> </div> <div class="infoBox"> <div class="bookName">{{ item.name }}</div> <div class="author"> - 浣滆�咃細{{ item.authorcaupress_author ? item.caupress_author : '-' }} + {{ item.author ? item.author : '-' }} 钁� </div> <div class="priceBox"> <span class="price" v-if="item.price && item.price > 0"> <span>楼{{ item.price }}</span> </span> - <span class="oldPrice" v-if="item.oldPrice">楼{{ item.oldPrice }}</span> + <span class="oldPrice" v-if="item.oldPrice > 0">楼{{ item.oldPrice }}</span> </div> </div> </div> @@ -124,10 +119,11 @@ import moment from 'moment' import { ElMessage } from 'element-plus' import teacherCertification from '@/views/personalCenter/teacherCertification.vue' -import { ref, onBeforeMount, inject, reactive, onMounted } from 'vue' +import { ref, onBeforeMount, inject, reactive, onMounted, watch } from 'vue' let screenheight = ref(document.documentElement.clientHeight / 2) import { useRouter, useRoute } from 'vue-router' const router = useRouter() +const route = useRoute() const MG = inject('MG') const config = inject('config') @@ -138,6 +134,7 @@ const informationList = reactive([]) let classfeild = ref([]) let activeName = ref('A1') +let callbackLink = ref(null) let bookListData = ref([]) let navBookList = ref([]) @@ -181,6 +178,13 @@ getNavBookList() }) +watch( + () => route, // 鐩戝惉 path 鍙樺寲 + (newPath, oldPath) => { + console.log('璺敱璺緞浠�', oldPath, '鍙樹负', newPath) + }, +) + const toMore = () => { router.push({ path: '/bookStore', @@ -219,10 +223,8 @@ value: item.value, } }) - console.log(noCheck, 'noCheck') classfeild.value = noCheck - console.log(classfeild, 'classfeild') }) } @@ -238,11 +240,17 @@ }, fields: { 'teachingLevel=': activeName.value, + author: [], }, }) .then((res) => { - console.log(res, '11111111111') - navBookList.value = res.datas + navBookList.value = res.datas?.map(item => { + return { + ...item, + price: toolClass.toDecimal2(item.price), + oldPrice: toolClass.toDecimal2(item.oldPrice), + } + }) }) } @@ -310,11 +318,17 @@ }, fields: { author: [], + isbn: [] }, }) .then((res) => { - console.log(res, '鎺ㄨ崘鏁欐潗') - bookListData.value = res.datas + bookListData.value = res.datas?.map(item => { + return { + ...item, + price: toolClass.toDecimal2(item.price), + oldPrice: toolClass.toDecimal2(item.oldPrice), + } + }) }) } @@ -351,7 +365,34 @@ min-height: calc(100vh - 61.8%); background-color: #fff; padding-bottom: 100px; + + .titleBox { + min-width: 127px; + font-family: JDLangZhengTi, JDLangZhengTi; + font-weight: 400; + font-size: 24px; + color: #000; + line-height: 24px; + text-align: left; + white-space: nowrap; + + .titleTextBg { + padding: 2px 5px; + box-sizing: border-box; + background-image: url('@/assets/images/xiehe/home/Text_bg2@.png'); + background-size: 100% 100%; + background-repeat: no-repeat; + background-position: center; + color: #fff; + } + } + + .bannerBox { + width: 100%; + height: 100%; + } } + .el-carousel__item h3 { color: #475669; opacity: 0.75; @@ -371,6 +412,7 @@ .informationList { display: flex; flex-wrap: wrap; + .informationItem { display: flex; width: 42%; @@ -381,14 +423,17 @@ border-radius: 10px; padding: 10px; cursor: pointer; + .imgBox { width: 30%; height: 100%; position: relative; } + .informationContent { width: 70%; padding-left: 10px; + .informationTitle { font-size: 14px; width: 100%; @@ -399,30 +444,37 @@ font-weight: bold; margin-bottom: 10px; } + .informationDate { margin-top: 10px; } + .informationText { color: #666666; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; margin-top: 10px; - display: -webkit-box; /* 灏嗗璞′綔涓哄脊鎬т几缂╃洅瀛愭ā鍨嬫樉绀� */ - -webkit-line-clamp: 3; /* 鏄剧ず鐨勮鏁� */ - -webkit-box-orient: vertical; /* 璁剧疆鎴栨绱几缂╃洅瀵硅薄鐨勫瓙鍏冪礌鐨勬帓鍒楁柟寮� */ - overflow: hidden; /* 婧㈠嚭闅愯棌 */ + display: -webkit-box; + /* 灏嗗璞′綔涓哄脊鎬т几缂╃洅瀛愭ā鍨嬫樉绀� */ + -webkit-line-clamp: 3; + /* 鏄剧ず鐨勮鏁� */ + -webkit-box-orient: vertical; + /* 璁剧疆鎴栨绱几缂╃洅瀵硅薄鐨勫瓙鍏冪礌鐨勬帓鍒楁柟寮� */ + overflow: hidden; + /* 婧㈠嚭闅愯棌 */ } } } - .informationItem:hover { - border: 1px solid #019e58; - } + + // .informationItem:hover { + // border: 1px solid #019e58; + // } } + .bookListBox { width: 100%; padding: 80px 0; - margin-top: 30px; background-repeat: no-repeat; background-size: 100% 100%; background-image: url('@/assets/images/tuijian-bg.png'); @@ -437,52 +489,81 @@ .recommendItem { flex: 1; margin-right: 20px; - height: 300px; + width: 261px; + height: 389px; background-repeat: no-repeat; background-size: 100% 100%; cursor: pointer; border: 1px solid #dedede; background-color: #fff; padding-top: 10px; + background: rgba(255, 255, 255, 0.73); + border-radius: 8px 8px 8px 8px; + border: 1px solid #DEDEDE; + box-sizing: border-box; + padding: 30px 0; + box-sizing: border-box; + &:last-child { margin-right: 0; } } + .recommendItem:hover { background-image: url(@/assets/images/Mouse_fill.png); + background-position: center; + background-size: 100% 100%; + background-repeat: no-repeat; } } .recommendItemImg { - width: 150px; - height: 200px; + width: 156px; + height: 210px; position: relative; margin: 0 auto; } .infoBox { text-align: center; - margin-top: 10px; + padding: 20px 0; + box-sizing: border-box; + font-family: Microsoft YaHei UI, Microsoft YaHei UI; + box-sizing: border-box; } + .bookName { + font-weight: bold; + font-size: 18px; + color: #000000; font-weight: 700; } + .author { - margin-top: 10px; + font-weight: 400; + font-size: 16px; color: #333333; + padding: 15px 0; + box-sizing: border-box; } + .priceBox { - margin-top: 10px; + font-family: DIN, DIN; + font-weight: 500; + font-size: 18px; + color: #D91523; + padding: 15px 0; + box-sizing: border-box; + .oldPrice { - font-size: 16px; color: #999999; text-decoration: line-through; margin-left: 20px; } + .price { span { font-weight: bold; - font-size: 14px; color: #d91523; } } @@ -494,26 +575,29 @@ align-items: center; margin-top: 60px; margin-bottom: 60px; + .authentication { - width: 40%; - height: 100px; + width: 650px; + height: 123px; background-repeat: no-repeat; background-size: 100% 100%; background-image: url('@/assets/images/xiehe/home/jiaoshirenzheng.png'); } + .manual { - width: 40%; - height: 100px; + width: 650px; + height: 123px; background-repeat: no-repeat; background-size: 100% 100%; - background-image: url('@/assets/images/xiehe/home/jiaoshirenzheng.png'); + background-image: url('@/assets/images/xiehe/home/caozuoshouce.png'); } } .titleTabs { - margin-left: 50px; - width: 75%; + margin-left: 30px; + width: 85%; } + .bookListTitle { display: flex; justify-content: space-between; @@ -521,31 +605,74 @@ margin-bottom: 20px; border-bottom: 1px solid #ebebeb; - padding-bottom: 20px; + .title { font-size: 20px; color: #333333; font-weight: bold; } + .more { font-size: 14px; color: #999999; cursor: pointer; + font-weight: 500; + min-width: 60px; + text-align: center; } } + .cardNav { - margin-left: 30%; + margin-left: 150px; margin-top: 20px; padding-right: 20px; cursor: pointer; + position: relative; + + #rightImg { + position: absolute; + right: 48px; + top: 26px; + height: 30px; + } + .cardTitle { - font-size: 28px; - color: #ffffff; + font-family: JDLangZhengTi, JDLangZhengTi; + font-weight: 400; + font-size: 32px; + color: #FFFFFF; + margin-bottom: 5px; + font-weight: 500; } + .cardText { + width: 351px; + font-family: PingFang SC, PingFang SC; + font-weight: 400; font-size: 14px; - color: #ccc; - margin-top: 10px; + color: #FFFFFF; + line-height: 25px; } + + +} + +::v-deep(.el-tabs__item) { + height: 50px; + line-height: 22px; + text-align: center; + padding: 15px 0; + box-sizing: border-box; + margin: 0 10px; +} + + +::v-deep(.el-tabs__header) { + padding: 0; + position: relative; + margin: 0 0 0 0px; + display: flex; + align-items: center; + justify-content: space-between } </style> -- Gitblit v1.9.1