| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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">快速了解使用步骤,轻松开启教学支持之旅。</div> |
| | | <div class="cardText">快速了解使用步骤,轻松开启教学支持之旅</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> |
| | |
| | | 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') |
| | |
| | | const informationList = reactive([]) |
| | | let classfeild = ref([]) |
| | | let activeName = ref('A1') |
| | | let callbackLink = ref(null) |
| | | |
| | | let bookListData = ref([]) |
| | | let navBookList = ref([]) |
| | |
| | | } |
| | | }) |
| | | |
| | | // 获取url参数 |
| | | const getUrlParams = () => { |
| | | let url = window.location.href |
| | | let params = url.split('?')[1] |
| | | let paramsObj = {} |
| | | if (params) { |
| | | paramsObj = params.split('&').reduce((pre, cur) => { |
| | | pre[cur.split('=')[0]] = cur.split('=')[1] |
| | | return pre |
| | | }, {}) |
| | | } |
| | | return paramsObj |
| | | } |
| | | |
| | | onMounted(() => { |
| | | // 监听是否来自数字阅读 |
| | | const params = getUrlParams() |
| | | if (params.login) { |
| | | localStorage.setItem('loginBack', decodeURIComponent(params.callBackUrl)) |
| | | logIn() |
| | | } |
| | | getBanner() |
| | | classifList() |
| | | getInformationList() |
| | | getBookList() |
| | | getNavBookList() |
| | | }) |
| | | |
| | | watch( |
| | | () => route, // 监听 path 变化 |
| | | (newPath, oldPath) => { |
| | | console.log('路由路径从', oldPath, '变为', newPath) |
| | | }, |
| | | ) |
| | | |
| | | const toMore = () => { |
| | | router.push({ |
| | |
| | | value: item.value, |
| | | } |
| | | }) |
| | | console.log(noCheck, 'noCheck') |
| | | |
| | | classfeild.value = noCheck |
| | | console.log(classfeild, 'classfeild') |
| | | }) |
| | | } |
| | | |
| | |
| | | }, |
| | | 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), |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | |
| | |
| | | }, |
| | | 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), |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | .informationList { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .informationItem { |
| | | display: flex; |
| | | width: 42%; |
| | |
| | | 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%; |
| | |
| | | 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'); |
| | |
| | | .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; |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | 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> |