develoop
Your Name 6 months ago
parent c40f11c115
commit 93cb03a381
  1. 32
      src/styles/index.scss
  2. 168
      src/views/MyCourseStudy/ContainerCla.vue
  3. 4
      src/views/MyCourseStudy/ContainerRes.vue
  4. 324
      src/views/MyCourseStudy/courseCollections.vue

@ -2,43 +2,51 @@
@import './reset.scss'; @import './reset.scss';
// 滚动条外观样式设置 // 滚动条外观样式设置
::-webkit-scrollbar{ ::-webkit-scrollbar {
width: 10px; width: 10px;
} }
::-webkit-scrollbar-track{
background-color:$base-menu-background; ::-webkit-scrollbar-track {
background-color: $base-menu-background;
} }
::-webkit-scrollbar-thumb{
::-webkit-scrollbar-thumb {
width: 10px; width: 10px;
background-color: #fff; background-color: #7d7b7b;
border-radius: 10px; border-radius: 10px;
} }
// 修改elemen plus样式 // 修改elemen plus样式
.el-menu{ .el-menu {
background-color: #ffffff; background-color: #ffffff;
} }
.el-menu-item:hover{
.el-menu-item:hover {
background-color: #5577ff; background-color: #5577ff;
color: #fff; color: #fff;
} }
.el-sub-menu__title:hover{
.el-sub-menu__title:hover {
background-color: #5577ff; background-color: #5577ff;
color: #fff; color: #fff;
} }
.el-menu-item.is-active{
.el-menu-item.is-active {
color: #fff; color: #fff;
background-color: #5577ff; background-color: #5577ff;
} }
.el-menu-item{
.el-menu-item {
color: #9896A3; color: #9896A3;
border-radius: 10px; border-radius: 10px;
margin: 5px 0; margin: 5px 0;
} }
.el-sub-menu__title{
.el-sub-menu__title {
color: #9896A3; color: #9896A3;
border-radius: 10px; border-radius: 10px;
} }
.el-scrollbar__wrap{
.el-scrollbar__wrap {
padding: 0 15px; padding: 0 15px;
} }

@ -0,0 +1,168 @@
<template>
<!-- 课程收藏页面 -->
<el-tab-pane label="课程收藏" name="first">
<div class="Container_Cla">
<div class="item_1" v-for="(item_1, index) in 12" :key="index">
<!-- 课程图片盒子 -->
<div class="ClassImg">
<!-- 更多图片盒子 -->
<div class="ClassGd">
<img src="../../assets/icons/更多.svg" width="100%" height="100%" />
</div>
<!-- 课程图片 -->
<img src="../../assets/images/kctp.png" />
</div>
<div class="ClaCon">
<div class="Con">
<h3>软件项目管理{{ item_1 }}</h3>
<p>讲师:王兴</p>
<p>
<span>32</span>
学时 &nbsp; | &nbsp;
<span>2.0</span>
学分
</p>
</div>
</div>
</div>
</div>
<div class="Page-1">
<el-pagination v-model:current-page="currentPage4" v-model:page-size="pageSize4" :page-sizes="[1, 2, 3, 4]"
:small="small" :disabled="disabled" :background="background" layout="total, sizes, prev, pager, next, jumper"
:total="400" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
</div>
</el-tab-pane>
</template>
<style lang="scss" scoped>
.el-pagination {
justify-content: center;
}
.example-pagination-block+.example-pagination-block {
margin-top: 10px;
}
.example-pagination-block .example-demonstration {
margin-bottom: 16px;
}
.curse-collection {
margin: 0;
}
::v-deep .el-tabs__header {
margin-bottom: 5px;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.demo-tabs {
padding: 0px;
color: #6b778c;
font-size: 32px;
font-weight: 600;
}
.Container_Cla {
width: 100%;
height: 100%;
display: grid;
grid-template-columns: repeat(auto-fill, 350px);
justify-content: space-around;
padding-top: 20px;
}
.item_1 {
display: inline-block;
width: 100%;
height: 300px;
margin-bottom: 30px;
border-left: 1px solid #e4e4e4;
border-top: 1px solid #e4e4e4;
border-radius: 6px;
overflow: hidden;
box-shadow: 2px 2px 2px 2px rgba(214, 212, 212, 0.5);
}
.ClassImg {
height: 180px;
width: 100%;
position: relative;
background-color: rgb(249, 245, 245);
border-bottom: 1px solid rgb(217, 217, 217);
}
.ClassImg>img {
width: 100%;
height: 180px;
}
.item_1:hover {
.ClassGd {
display: block;
}
}
.ClassGd {
position: absolute;
display: none;
margin-top: -9px;
margin-left: 95%;
cursor: pointer;
}
.ClaCon {
display: flex;
justify-content: space-between;
background-color: #cfded071;
}
.Con {
display: inline-block;
height: 120px;
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
}
.Con>h3 {
margin-left: 15px;
font-size: 25px;
font-weight: 600;
cursor: pointer;
}
.Con>p {
margin-left: 15px;
margin-top: 5px;
font-size: 13px;
font-weight: 400;
cursor: pointer;
}
.Con>p>span {
margin-left: 5px;
margin-right: 5px;
color: rgb(94, 188, 231);
font-weight: 600;
}
.Con>button {
width: 45px;
height: 20px;
font-size: 9px;
margin-left: 200px;
margin-bottom: 10px;
}
.Page-1 {
width: 100%;
justify-content: center;
}
</style >

@ -0,0 +1,4 @@
<template></template>
<script lang="ts" setup>
</script>
<style lang="scss" scoped></style>

@ -1,53 +1,12 @@
<template> <template>
<div class="curse-collection"> <div class="curse-collection">
<el-tabs <el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick" style="padding-top: 0">
v-model="activeName" <!-- 课程收藏页面 -->
type="card" <ContainerCla />
class="demo-tabs" <!-- 资源收藏页面 -->
@tab-click="handleClick"
style="padding-top: 0"
>
<el-tab-pane label="课程收藏" name="first">
<div class="Container_Cla">
<div class="item_1" v-for="(item_1, index) in 12" :key="index">
<div class="ClassImg">
<div class="bu">
<img
src="../../assets/icons/更多.svg"
width="100%"
height="100%"
/>
</div>
<img src="../../assets/images/kctp.png" />
</div>
<div class="ClaCon">
<div class="Con">
<h3>软件项目管理{{ item_1 }}</h3>
<p>讲师:王兴</p>
<p>
<span>32</span>
学时 &nbsp; | &nbsp;
<span>2.0</span>
学分
</p>
</div>
</div>
</div>
<div style="width: 100%; display: flex; justify-content: center">
<el-pagination
v-model:current-page="params.page"
v-model:page-size="params.pageNum"
:page-sizes="[100, 200, 300, 400]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="资源收藏" name="second"> <el-tab-pane label="资源收藏" name="second">
<div class="Container_Res"> <div class="Container_Res">
<!-- Tab切换栏 -->
<ul class="Container_Res_Tab"> <ul class="Container_Res_Tab">
<li class="img-svg" @click="hsndelShow(1)"> <li class="img-svg" @click="hsndelShow(1)">
<img src="../../assets/icons/课程简介.svg" alt="简介" /> <img src="../../assets/icons/课程简介.svg" alt="简介" />
@ -75,78 +34,78 @@
<p>音频</p> <p>音频</p>
</li> </li>
</ul> </ul>
<div class="Res_con" v-show="activeIndex == 1"> </div>
<div class="item_2-1" v-for="(item, index) in 5" :key="index"> <!-- 切换栏对应的小页面 -->
<div class="ResImg-1"> <!-- 小页面-1 -->
<img src="../../assets/images/kctp.png" /> <div class="Res_con" v-show="activeIndex == 1">
</div> <div class="item_2-1" v-for="(item, index) in 5" :key="index">
<div class="ResClaDic"> <div class="ResImg-1">
<p>课程名称-----{{ item }}</p> <img src="../../assets/images/kctp.png" />
<P>课程描述-----{{ item }}</P> </div>
</div> <div class="ResClaDic">
<p>课程名称-----{{ item }}</p>
<P>课程描述-----{{ item }}</P>
</div> </div>
</div> </div>
<div style="width: 100%; display: flex; justify-content: center"> </div>
<el-pagination <!-- 页面-2 -->
v-model:current-page="params.page" <div class="Res_con" v-show="activeIndex == 2">
v-model:page-size="params.pageNum" <div class="item_2-2" v-for="(item, index) in 7" :key="index">
:page-sizes="[100, 200, 300, 400]" <div class="ResImg-2">
layout="total, sizes, prev, pager, next, jumper" <div class="Img">
:total="total" <img src="../../assets/icons/ppt.png" />
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
<div class="Res_con" v-show="activeIndex == 2">
<div class="item_2-2" v-for="(item, index) in 7" :key="index">
<div class="ResImg-2">
<div class="Img">
<img src="../../assets/icons/ppt.png" />
</div>
</div>
<div class="ResClaDic">
<p>PPT名称-----{{ item }}</p>
</div> </div>
</div> </div>
<div class="ResClaDic">
<p>PPT名称-----{{ item }}</p>
</div>
</div> </div>
<div class="Res_con" v-show="activeIndex == 3"> </div>
<div class="item_2-3" v-for="(item, index) in 6" :key="index"> <!-- 小页面-3 -->
<div class="ResImg-2"> <div class="Res_con" v-show="activeIndex == 3">
<div class="Img"> <div class="item_2-3" v-for="(item, index) in 6" :key="index">
<img src="../../assets/icons/视频.png" /> <div class="ResImg-2">
</div> <div class="Img">
</div> <img src="../../assets/icons/视频.png" />
<div class="ResClaDic">
<p>视频名称-----{{ item }}</p>
</div> </div>
</div> </div>
<div class="ResClaDic">
<p>视频名称-----{{ item }}</p>
</div>
</div> </div>
<div class="Res_con" v-show="activeIndex == 4"> </div>
<div class="item_2-4" v-for="(item, index) in 8" :key="index"> <!-- 小页面-4 -->
<div class="ResImg-2"> <div class="Res_con" v-show="activeIndex == 4">
<div class="Img"> <div class="item_2-4" v-for="(item, index) in 8" :key="index">
<img src="../../assets/icons/文本.png" /> <div class="ResImg-2">
</div> <div class="Img">
</div> <img src="../../assets/icons/文本.png" />
<div class="ResClaDic">
<p>文本名称-----{{ item }}</p>
</div> </div>
</div> </div>
<div class="ResClaDic">
<p>文本名称-----{{ item }}</p>
</div>
</div> </div>
<div class="Res_con" v-show="activeIndex == 5"> <div>
<div class="item_2-5" v-for="(item, index) in 10" :key="index"> </div>
<div class="ResImg-2"> </div>
<div class="Img"> <div class="Res_con" v-show="activeIndex == 5">
<img src="../../assets/icons/音频.png" /> <div class="item_2-5" v-for="(item, index) in 10" :key="index">
</div> <div class="ResImg-2">
</div> <div class="Img">
<div class="ResClaDic"> <img src="../../assets/icons/音频.png" />
<p>音频名称-----{{ item }}</p>
</div> </div>
</div> </div>
<div class="ResClaDic">
<p>音频名称-----{{ item }}</p>
</div>
</div> </div>
</div>
<div class="Page-2">
</div> </div>
</el-tab-pane> </el-tab-pane>
<!-- 知识点收藏页面 -->
<el-tab-pane label="知识点收藏" name="third"> <el-tab-pane label="知识点收藏" name="third">
<div class="Container_Kno"> <div class="Container_Kno">
<div class="item_3" v-for="(item_3, index) in 10" :key="index"> <div class="item_3" v-for="(item_3, index) in 10" :key="index">
@ -183,6 +142,8 @@ import { ref } from 'vue'
import type { TabsPaneContext } from 'element-plus' import type { TabsPaneContext } from 'element-plus'
import { SeCourseFavourControllerService } from '../../../generated/services/SeCourseFavourControllerService' import { SeCourseFavourControllerService } from '../../../generated/services/SeCourseFavourControllerService'
import { CourseFavourQueryRequest } from 'generated/models/CourseFavourQueryRequest' import { CourseFavourQueryRequest } from 'generated/models/CourseFavourQueryRequest'
import ContainerCla from './ContainerCla.vue'
// import ContainerRes from "./ContainerRes.vue";
// import { getDataListApi } from '@/api/user/corc.js' // import { getDataListApi } from '@/api/user/corc.js'
const activeIndex = ref(1) const activeIndex = ref(1)
function hsndelShow(index: number) { function hsndelShow(index: number) {
@ -260,7 +221,11 @@ const handleCurrentChange = (page: any) => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.example-pagination-block + .example-pagination-block { .el-pagination {
justify-content: center;
}
.example-pagination-block+.example-pagination-block {
margin-top: 10px; margin-top: 10px;
} }
@ -290,126 +255,54 @@ const handleCurrentChange = (page: any) => {
font-weight: 600; font-weight: 600;
} }
.Container_Cla { //
width: 100%;
height: 100%;
display: grid;
grid-template-columns: repeat(auto-fill, 350px);
justify-content: space-around;
padding-top: 20px;
}
.item_1 {
display: inline-block;
width: 100%;
height: 300px;
margin-bottom: 30px;
border-left: 1px solid #e4e4e4;
border-top: 1px solid #e4e4e4;
border-radius: 6px;
overflow: hidden;
box-shadow: 2px 2px 2px 2px rgba(214, 212, 212, 0.5);
}
.ClassImg {
height: 180px;
width: 100%;
position: relative;
background-color: rgb(249, 245, 245);
border-bottom: 1px solid rgb(217, 217, 217);
}
.ClassImg > img {
width: 100%;
height: 180px;
}
.ClaCon {
display: flex;
justify-content: space-between;
background-color: #cfded071;
}
.Con {
display: inline-block;
height: 120px;
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
}
.Con > h3 {
margin-left: 15px;
font-size: 25px;
font-weight: 600;
cursor: pointer;
}
.Con > p {
margin-left: 15px;
margin-top: 5px;
font-size: 13px;
font-weight: 400;
cursor: pointer;
}
.Con > p > span {
margin-left: 5px;
margin-right: 5px;
color: rgb(94, 188, 231);
font-weight: 600;
}
.Con > button {
width: 45px;
height: 20px;
font-size: 9px;
margin-left: 200px;
margin-bottom: 10px;
}
.Container_Res { .Container_Res {
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: #f2f7fb; background-color: #f2f7fb;
} }
//
.Container_Res_Tab { .Container_Res_Tab {
height: 60px; height: 60px;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
background-color: #f0f4fa; background-color: #f3f5f8;
border-bottom: #e4e4e4 solid 1px; border-bottom: #e4e4e4 solid 1px;
flex-direction: row; flex-direction: row;
} }
//
.img-svg { .img-svg {
width: 54px; width: 54px;
height: 58px; height: 58px;
padding: 4px 11px 6px 11px; padding: 4px 11px 6px 11px;
}
.img-svg > p { //
font-size: 10px; & img {
font-weight: 400; width: 32px;
text-align: center; height: 32px;
}
//
& p {
font-size: 10px;
font-weight: 400;
text-align: center;
}
} }
//
.img-svg:hover { .img-svg:hover {
cursor: pointer; cursor: pointer;
border-bottom: rgb(96, 93, 172) solid 3px; border-bottom: rgb(96, 93, 172) solid 3px;
}
.img-svg > img {
width: 32px;
height: 32px;
}
.img-svg > p:hover { & p:hover {
text-decoration: underline; text-decoration: underline;
}
} }
//
.Res_con { .Res_con {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -419,6 +312,7 @@ const handleCurrentChange = (page: any) => {
background-color: #ffffff; background-color: #ffffff;
} }
//
.item_2-1 { .item_2-1 {
width: 100%; width: 100%;
height: 300px; height: 300px;
@ -430,18 +324,20 @@ const handleCurrentChange = (page: any) => {
box-shadow: 2px 2px 2px 2px rgba(214, 212, 212, 0.5); box-shadow: 2px 2px 2px 2px rgba(214, 212, 212, 0.5);
} }
//
.ResImg-1 { .ResImg-1 {
width: 100%; width: 100%;
height: 60%; height: 60%;
border-bottom: 1px solid rgb(229, 227, 227); border-bottom: 1px solid rgb(229, 227, 227);
overflow: hidden; overflow: hidden;
}
.ResImg-1 > img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
}
} }
//
.ResClaDic { .ResClaDic {
width: 100%; width: 100%;
height: 40%; height: 40%;
@ -465,7 +361,7 @@ const handleCurrentChange = (page: any) => {
align-items: center; align-items: center;
} }
.ResClaDic > p { .ResClaDic>p {
font-family: Inter, Inter; font-family: Inter, Inter;
font-weight: 500; font-weight: 500;
font-size: 20px; font-size: 20px;
@ -487,6 +383,7 @@ const handleCurrentChange = (page: any) => {
overflow: hidden; overflow: hidden;
box-shadow: 2px 2px 2px 2px rgba(214, 212, 212, 0.5); box-shadow: 2px 2px 2px 2px rgba(214, 212, 212, 0.5);
border-radius: 6px; border-radius: 6px;
margin-bottom: 32px;
} }
.Container_Kno { .Container_Kno {
@ -516,8 +413,8 @@ const handleCurrentChange = (page: any) => {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-direction: row; flex-direction: row;
padding-left: 15px; padding-left: 9px;
padding-right: 30px; padding-right: 20px;
} }
.KnoCon { .KnoCon {
@ -526,7 +423,8 @@ const handleCurrentChange = (page: any) => {
justify-content: space-around; justify-content: space-around;
} }
.KnoBtn > img { .KnoBtn>img {
padding-top: 20px;
cursor: pointer; cursor: pointer;
} }
@ -553,7 +451,7 @@ const handleCurrentChange = (page: any) => {
flex-direction: column; flex-direction: column;
} }
.Knowledge_point > ul > li { .Knowledge_point>ul>li {
display: inline-block; display: inline-block;
margin-top: 5px; margin-top: 5px;
margin-bottom: 5px; margin-bottom: 5px;
@ -577,19 +475,9 @@ const handleCurrentChange = (page: any) => {
color: rgb(15, 57, 76); color: rgb(15, 57, 76);
} }
.bu { .Page-2 {
width: 20%;
height: 10%;
z-index: 10;
padding-left: 93%;
position: absolute; position: absolute;
// display: none; width: 100%;
} justify-content: center;
.item_1 :hover {
&.bu {
display: block;
background-color: #0052d9;
}
} }
</style> </style>

Loading…
Cancel
Save