From cf7e71c6d0fb64eeb6b5deac540da843b4bb465c Mon Sep 17 00:00:00 2001 From: QYF-GitLab1 <1940665526@qq.com> Date: 星期二, 26 八月 2025 10:41:52 +0800 Subject: [PATCH] 关于我们-理念与品牌文化 --- src/views/bookStore/index.vue | 252 +++++++++++++++++++++++++++----------------------- 1 files changed, 136 insertions(+), 116 deletions(-) diff --git a/src/views/bookStore/index.vue b/src/views/bookStore/index.vue index b99bb35..c568d39 100644 --- a/src/views/bookStore/index.vue +++ b/src/views/bookStore/index.vue @@ -14,13 +14,8 @@ <div class="classificationBox"> <div style="width: 100px; line-height: 60px">鍒嗙被锛�</div> <div class="classificaListBox"> - <div - class="classificaItem" - :class="{ active: currentLevel == item.value }" - v-for="(item, index) in classfeild" - :key="index" - @click="changeLevel(item)" - > + <div class="classificaItem" :class="{ active: currentLevel == item.value }" + v-for="(item, index) in classfeild" :key="index" @click="changeLevel(item)"> {{ item.name }} </div> </div> @@ -31,11 +26,7 @@ <div class="listTitle"> <div>缁撴灉锛氬叡璁{ total }}鏉�</div> <div style="width: 340px"> - <el-input - v-model="input3" - placeholder="杈撳叆涔﹀悕銆佷綔鑰呫�佷功鍙锋悳绱�" - class="input-with-select" - > + <el-input v-model="input3" placeholder="杈撳叆涔﹀悕銆佷綔鑰呫�佷功鍙锋悳绱�" class="input-with-select"> <template #append> <el-button :icon="Search" @click="getBookList" /> </template> @@ -45,25 +36,20 @@ <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.author ? item.author : '-' }}</div> + <div class="author">{{ item.author ? item.author : '-' }} 钁�</div> <div class="priceBox"> - <span class="oldPrice" v-if="item.oldPrice">鍘熶环锛毬{ item.oldPrice }}</span> <span class="price" v-if="item.price && item.price > 0"> - 瀹氫环锛毬� - <span>{{ item.price }}</span> + <span>楼 {{ item.price }}</span> </span> - <span class="price" v-else> 瀹氫环锛�<span class="freePrice">鍏嶈垂</span> </span> + <span class="oldPrice" v-if="item.oldPrice > 0">楼 {{ item.oldPrice }}</span> + <span class="price" v-if="item.price && item.price == 0"> <span class="freePrice">鍏嶈垂</span> + </span> </div> </div> </div> @@ -74,38 +60,27 @@ </div> <div class="pagingBox"> - <el-pagination - layout="total, prev, pager, next" - :total="total" - v-model:current-page="currentPage1" - :page-size="20" - @current-change="handleCurrentChange" - hide-on-single-page="true" - /> + <el-pagination layout="total, prev, pager, next" :total="total" v-model:current-page="currentPage1" + :page-size="20" @current-change="handleCurrentChange" hide-on-single-page="true" /> </div> </div> <div class="recommendBox"> <div class="recommendTitle">鎺ㄨ崘鏁欐潗</div> <div class="newRecommendList"> - <div - class="recommendItem" - v-for="item in recommendBookListData" - :key="item.id" - @click="toDetail(item)" - > + <div class="recommendItem" v-for="item in recommendBookListData" :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.author ? item.author : '-' }}</div> + <div class="author">{{ item.author ? item.author : '-' }} 钁�</div> <div class="priceBox"> - <span class="oldPrice" v-if="item.oldPrice">鍘熶环锛毬{ item.oldPrice }}</span> <span class="price" v-if="item.price && item.price > 0"> - 瀹氫环锛毬� - <span>{{ item.price }}</span> + <span>楼 {{ item.price }}</span> </span> - <span class="price" v-else> 瀹氫环锛�<span class="freePrice">鍏嶈垂</span> </span> + <span class="oldPrice" v-if="item.oldPrice > 0">楼 {{ item.oldPrice }}</span> + <span class="price" v-if="item.price && item.price == 0"> <span class="freePrice">鍏嶈垂</span> + </span> </div> </div> </div> @@ -179,8 +154,13 @@ }, }) .then((res) => { - console.log(res, '鎺ㄨ崘鏁欐潗') - recommendBookListData.value = res.datas + recommendBookListData.value = res.datas?.map(item => { + return { + ...item, + price: toolClass.toDecimal2(item.price), + oldPrice: toolClass.toDecimal2(item.oldPrice), + } + }) }) } @@ -206,8 +186,13 @@ query.fields['||isbn*'] = input3.value } MG.store.getProductList(query).then((res) => { - console.log(res, '11111111111') - bookListData.value = res.datas + bookListData.value = res.datas?.map(item => { + return { + ...item, + price: toolClass.toDecimal2(item.price), + oldPrice: toolClass.toDecimal2(item.oldPrice), + } + }) total.value = res.total }) } @@ -217,15 +202,12 @@ refCodes: ['digitalTextbooks'], } MG.resource.getCmsTypeByRefCode(query).then((res) => { - console.log(res, 'res') const types = toolClass.handleTypeList(res) const typeData = types[0].cmsTypeLinks[0].children feildList.push(...typeData) const temp_classfeild = typeData.find((item) => item.typeField.refCode === 'teachingLevel') ?.typeField.cfg.option classfeild.push({ name: '鍏ㄩ儴', value: 'all' }, ...temp_classfeild) - console.log(typeData, 'typeData') - console.log(classfeild, 'classfeild') }) } onMounted(() => { @@ -246,6 +228,7 @@ .bannerBox { height: 380px; position: relative; + .bannerText { position: absolute; top: 50%; @@ -257,6 +240,7 @@ text-shadow: 0px 0px 10px #000000; text-align: center; } + .enText { font-size: 28px; opacity: 0.45; @@ -268,10 +252,12 @@ display: flex; justify-content: space-between; margin-top: 30px; + .classificaListBox { display: flex; justify-content: space-between; flex-wrap: wrap; + .classificaItem { display: flex; align-items: center; @@ -286,6 +272,7 @@ } } } + .bookList { display: flex; justify-content: space-between; @@ -296,6 +283,7 @@ border: 1px solid #e4e7ed; height: 100%; border-radius: 10px; + .listTitle { display: flex; justify-content: space-between; @@ -303,21 +291,27 @@ padding: 20px 30px; } } + .recommendBox { width: 19%; border: 1px solid #e4e7ed; border-radius: 10px; + .recommendTitle { - height: 50px; - line-height: 50px; - padding-left: 20px; - border-bottom: 1px solid #e4e7ed; + height: 29px; + font-family: PingFang SC, PingFang SC; + font-weight: bold; + font-size: 16px; color: #333333; - font-weight: 700; + line-height: 29px; + border-bottom: 1px solid #e4e7ed; + padding: 0px 10px; + box-sizing: border-box; } } } } + .recommendList { display: flex; padding: 20px; @@ -326,49 +320,84 @@ justify-content: start; .recommendItem { - margin-right: 20px; - width: 22%; - height: 300px; + margin-right: 10px; + width: 240px; + height: 357px; background-repeat: no-repeat; background-size: 100% 100%; cursor: pointer; border: 1px solid #dedede; - background-color: #fff; + background: rgba(255, 255, 255, 0.73); + border-radius: 8px 8px 8px 8px; + border: 1px solid #DEDEDE; padding-top: 10px; - margin-top: 10px; + padding: 30px 0; + box-sizing: border-box; + margin-bottom: 10px; + &:last-child { margin-right: 0; } - } - .recommendItem:hover { - background-image: url(@/assets/images/Mouse_fill.png); - } - .recommendItemImg { - width: 150px; - height: 200px; - position: relative; - margin: 0 auto; - } - .infoBox { - text-align: center; - margin-top: 10px; - } - .author { - margin-top: 10px; - } - .priceBox { - margin-top: 10px; - .oldPrice { - font-size: 16px; - color: #444444; - text-decoration: line-through; - margin-right: 20px; + + + &:hover { + background-image: url(@/assets/images/Mouse_fill.png); + background-position: center; + background-size: 100% 100%; + background-repeat: no-repeat; } - .price { - span { - font-weight: bold; - font-size: 14px; - } + + .recommendItemImg { + width: 139px; + height: 189px; + position: relative; + margin: 0 auto; + } + + } +} + +.infoBox { + text-align: center; + 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 { + font-weight: 400; + font-size: 16px; + color: #333333; + padding: 15px 0; + box-sizing: border-box; +} + +.priceBox { + font-family: DIN, DIN; + font-weight: 500; + font-size: 18px; + color: #D91523; + padding: 15px 0; + box-sizing: border-box; + + .oldPrice { + color: #999999; + text-decoration: line-through; + margin-left: 20px; + } + + .price { + span { + font-weight: bold; + color: #d91523; } } } @@ -379,48 +408,39 @@ flex-direction: column; justify-content: center; align-items: center; + .recommendItem { - margin-right: 20px; - height: 300px; + margin-right: 1%; + width: 240px; + height: 357px; background-repeat: no-repeat; background-size: 100% 100%; cursor: pointer; background-color: #fff; padding-top: 10px; margin-top: 10px; + &:last-child { margin-right: 0; } - } - .recommendItemImg { - width: 150px; - height: 200px; - position: relative; - margin: 0 auto; - } - .infoBox { - text-align: center; - margin-top: 10px; - } - .author { - margin-top: 10px; - } - .priceBox { - margin-top: 10px; - .oldPrice { - font-size: 16px; - color: #444444; - text-decoration: line-through; - margin-right: 20px; + + .recommendItemImg { + width: 150px; + height: 200px; + position: relative; + margin: 0 auto; } - .price { - span { - font-weight: bold; - font-size: 14px; - } + + .recommendItem:hover { + background-image: url(@/assets/images/Mouse_fill.png); + background-position: center; + background-size: 100% 100%; + background-repeat: no-repeat; } } + } + .pagingBox { display: flex; justify-content: center; -- Gitblit v1.9.1