教师节

This commit is contained in:
nisen
2023-08-28 17:16:17 +08:00
parent 622bcf9d14
commit db2936f051
9 changed files with 666 additions and 105 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

View File

@@ -57,21 +57,42 @@ export const constantRoutes = [{
hidden: true, hidden: true,
component: (resolve) => require(['@/views/grateful/GratefulHomePage'], resolve), component: (resolve) => require(['@/views/grateful/GratefulHomePage'], resolve),
name: 'GratefulHomePage', name: 'GratefulHomePage',
meta: { title: '感恩教师首页', icon: 'dashboard', noCache: true, affix: true } meta: { title: '感恩教师首页', icon: 'dashboard', noCache: true, affix: true, hidden:false }
}, },
{ {
path: 'teacherEmpowerment', path: 'teacherEmpowerment',
hidden: true, hidden: true,
component: (resolve) => require(['@/views/grateful/TeacherEmpowerment'], resolve), component: (resolve) => require(['@/views/grateful/TeacherEmpowerment'], resolve),
name: 'TeacherEmpowerment', name: 'TeacherEmpowerment',
meta: { title: '教师赋能', icon: 'dashboard', noCache: true, affix: true } meta: { title: '教师赋能', icon: 'dashboard', noCache: true, affix: true, hidden:true }
}, },
{ {
path: 'toolDown', path: 'toolDown',
hidden: true, hidden: true,
component: (resolve) => require(['@/views/grateful/ToolDown'], resolve), component: (resolve) => require(['@/views/grateful/ToolDown'], resolve),
name: 'ToolDown', name: 'ToolDown',
meta: { title: '工具下载', icon: 'dashboard', noCache: true, affix: true } meta: { title: '工具下载', icon: 'dashboard', noCache: true, affix: true, hidden:true }
},
{
path: 'gratefulNotice',
hidden: true,
component: (resolve) => require(['@/views/grateful/GratefulNotice'], resolve),
name: 'GratefulNotice',
meta: { title: '通知列表', icon: 'dashboard', noCache: true, affix: true, hidden:true }
},
{
path: 'noticeDetail',
hidden: true,
component: (resolve) => require(['@/views/grateful/NoticeDetail'], resolve),
name: 'NoticeDetail',
meta: { title: '通知详情', icon: 'dashboard', noCache: true, affix: true, hidden:true }
},
{
path: 'teacherOpinion',
hidden: true,
component: (resolve) => require(['@/views/grateful/TeacherOpinion'], resolve),
name: 'TeacherOpinion',
meta: { title: '师资大全', icon: 'dashboard', noCache: true, affix: true, hidden:true }
}, },
] ]
}, },

View File

@@ -13,52 +13,30 @@
</div> </div>
<div class="modules-list"> <div class="modules-list">
<!--内容列表内容--> <!--内容列表内容-->
<div <div v-for="(course, ccidx) in courseList.list" :key="'cc' + ccidx" class="xindex-course"
v-for="(course, ccidx) in courseList.list" style="position: relative">
:key="'cc' + ccidx"
class="xindex-course"
style="position: relative"
>
<div style="position: absolute; right: 25px; bottom: 72px"> <div style="position: absolute; right: 25px; bottom: 72px">
<interactBar <interactBar nodeWidth="20px" :courseExclusive="true" :type="1" :data="course" :comments="false"
nodeWidth="20px" :praises="false" :shares="false" :views="false">
:courseExclusive="true"
:type="1"
:data="course"
:comments="false"
:praises="false"
:shares="false"
:views="false"
>
</interactBar> </interactBar>
</div> </div>
<a @click="toCourseDetail(course)"> <a @click="toCourseDetail(course)">
<div class="xindex-course-image"> <div class="xindex-course-image">
<course-image :course="course"></course-image> <course-image :course="course"></course-image>
<span v-if="course.type == 20 || 10" class="course-type" <span v-if="course.type == 20 || 10" class="course-type">录播课</span>
>录播课</span
>
</div> </div>
<div <div style="width: 80%" :title="course.name" class="course-title portal-title-tow two-line-ellipsis">
style="width: 80%"
:title="course.name"
class="course-title portal-title-tow two-line-ellipsis"
>
{{ course.name }} {{ course.name }}
</div> </div>
<div class="course-author"> <div class="course-author">
<div class="course-author-left"> <div class="course-author-left">
{{ course.authorInfo.name }} {{ course.authorInfo.name }}
<span class="study-num" <span class="study-num">{{ formatNum(course.studys) }}人学习</span>
>{{ formatNum(course.studys) }}人学习</span
>
</div> </div>
<div style="display: flex"> <div style="display: flex">
<div v-if="course.score"> <div v-if="course.score">
<span class="course-score-value" style="margin-left: 10px" <span class="course-score-value" style="margin-left: 10px">{{ toScore(course.score) }}</span>
>{{ toScore(course.score) }}</span
>
</div> </div>
<div v-else class="course-score-no">未评分</div> <div v-else class="course-score-no">未评分</div>
</div> </div>
@@ -69,12 +47,35 @@
</div> </div>
</div> </div>
</div> </div>
<div class="float-tools"> <div class="float-tools" @click="() => (gratefulVisible = !gratefulVisible)">
<div class="content"> <div class="content">
<img src="../../assets/images/grateful/suggestion.png" alt="" /> <img src="../../assets/images/grateful/suggestion.png" alt="" />
<span>给点意见</span> <span>给点意见</span>
</div> </div>
</div> </div>
<!-- 意见 -->
<el-dialog :close-on-click-modal="false" :visible.sync="gratefulVisible" :append-to-body="true" @closed="closeDlg"
:width="dlgWidth" title="感谢您百忙之中给我们提交您宝贵的意见~">
<div class="dialogContent" :style="{ 'min-height': dlgHeight }">
<el-form :model="form">
<el-form-item label="类型">
<el-checkbox-group v-model="form.type">
<el-checkbox v-for="(item, index) in roleList" :label="item" :key="index"
@change="handleChecked(form.type)"></el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="内容">
<el-input type="textarea" placeholder="请输入内容......" v-model="form.desc" class="textarea"></el-input>
</el-form-item>
<el-form-item>
<div style="display: flex; justify-content: center">
<el-button style="width: 100px;" @click="closeDlg">取消</el-button>
<el-button style="width: 100px;" type="primary">确认</el-button>
</div>
</el-form-item>
</el-form>
</div>
</el-dialog>
</div> </div>
</template> </template>
@@ -126,6 +127,14 @@ export default {
}, },
data() { data() {
return { return {
roleList: ["功能", "界面设计", "其他"],
form: {
type: [],
desc: "",
},
dlgHeight: "400px",
dlgWidth: "688px",
gratefulVisible: false,
showUClass: false, showUClass: false,
showLoginMedal: false, //是否显示登录勋章 showLoginMedal: false, //是否显示登录勋章
needLoginMedal: false, //是否需要显示纪念勋章 needLoginMedal: false, //是否需要显示纪念勋章
@@ -263,6 +272,15 @@ export default {
}, },
}, },
methods: { methods: {
handleChecked(list) {
if (list.length > 1) {
let one = list.splice(1);
this.form.type = one;
}
},
closeDlg() {
this.gratefulVisible = false
},
tylClick() { tylClick() {
window.open("https://m.qingxuetang.com/x/?appId=qxtcorp306130"); window.open("https://m.qingxuetang.com/x/?appId=qxtcorp306130");
}, },
@@ -736,19 +754,28 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.textarea {
width: 600px;
::v-deep .el-textarea__inner {
min-height: 300px !important;
}
}
.team { .team {
display: grid; display: grid;
// grid-template-columns: 1.5fr 1fr 1fr;
.teamImg { .teamImg {
width: 749px; width: 749px;
height: 478px; height: 478px;
} }
} }
.float-tools { .float-tools {
position: fixed; position: fixed;
right: 0; right: 0;
bottom: 50%; bottom: 50%;
z-index: 999; z-index: 999;
.content { .content {
width: 152px; width: 152px;
height: 55px; height: 55px;
@@ -757,10 +784,12 @@ export default {
background: linear-gradient(86deg, #00c8ff 0%, #167cff 100%); background: linear-gradient(86deg, #00c8ff 0%, #167cff 100%);
border-radius: 100px 0px 0px 100px; border-radius: 100px 0px 0px 100px;
padding: 20px; padding: 20px;
img { img {
width: 20px; width: 20px;
height: 20px; height: 20px;
} }
span { span {
margin-left: 10px; margin-left: 10px;
color: #fff; color: #fff;
@@ -805,33 +834,35 @@ export default {
.course-banner { .course-banner {
height: 520px; height: 520px;
.swiper-button-prev { .swiper-button-prev {
height: 38px; height: 38px;
padding: 0 16px; padding: 0 16px;
background: rgba($color: #000000, $alpha: 0.8) background: rgba($color: #000000, $alpha: 0.8) url("../../assets/images/icon/ban-left.png") no-repeat;
url("../../assets/images/icon/ban-left.png") no-repeat;
background-size: 12px 18px; background-size: 12px 18px;
background-position: 16px 10px; background-position: 16px 10px;
bottom: 66px; bottom: 66px;
border-radius: 19px 0 0 19px; border-radius: 19px 0 0 19px;
} }
.swiper-button-next { .swiper-button-next {
height: 38px; height: 38px;
// right: 52.65%; // right: 52.65%;
bottom: 66px; bottom: 66px;
top: auto; top: auto;
padding: 0 16px; padding: 0 16px;
background: rgba($color: #000000, $alpha: 0.1) background: rgba($color: #000000, $alpha: 0.1) url("../../assets/images/icon/ban-right.png") no-repeat;
url("../../assets/images/icon/ban-right.png") no-repeat;
background-size: 12px 18px; background-size: 12px 18px;
background-position: 6px 10px; background-position: 6px 10px;
border-radius: 0 19px 19px 0; border-radius: 0 19px 19px 0;
} }
.swiper-pagination-bullets { .swiper-pagination-bullets {
// background: #000; // background: #000;
left: 60px; left: 60px;
bottom: 66px; bottom: 66px;
} }
::v-deep .swiper-pagination { ::v-deep .swiper-pagination {
line-height: 25px; line-height: 25px;
height: 32px; height: 32px;
@@ -841,6 +872,7 @@ export default {
left: 45%; left: 45%;
padding: 0 20px; padding: 0 20px;
border-radius: 19px; border-radius: 19px;
.swiper-pagination-bullet { .swiper-pagination-bullet {
position: relative; position: relative;
width: 25px; width: 25px;
@@ -851,6 +883,7 @@ export default {
// background: rgba($color: #fff, $alpha: 0.5); // background: rgba($color: #fff, $alpha: 0.5);
border-radius: 2px; border-radius: 2px;
} }
.swiper-pagination-bullet::before { .swiper-pagination-bullet::before {
content: ""; content: "";
position: absolute; position: absolute;
@@ -859,6 +892,7 @@ export default {
left: -2px; left: -2px;
right: -2px; right: -2px;
} }
.swiper-pagination-bullet-active { .swiper-pagination-bullet-active {
height: 5px; height: 5px;
opacity: 1 !important; opacity: 1 !important;
@@ -868,6 +902,7 @@ export default {
// background: rgba($color: #fff, $alpha: 0.8); // background: rgba($color: #fff, $alpha: 0.8);
border-radius: 2px; border-radius: 2px;
} }
.swiper-container { .swiper-container {
// background-color: rgba($color: #000000, $alpha: 0.2); // background-color: rgba($color: #000000, $alpha: 0.2);
} }
@@ -900,6 +935,7 @@ export default {
.course-image-box { .course-image-box {
position: relative; position: relative;
.course-type { .course-type {
position: absolute; position: absolute;
top: 0px; top: 0px;
@@ -982,9 +1018,11 @@ export default {
/*早期浏览器*/ /*早期浏览器*/
user-select: none; user-select: none;
} }
.course-title-box { .course-title-box {
display: flex; display: flex;
} }
.course-author { .course-author {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -1085,6 +1123,7 @@ export default {
.modules-list { .modules-list {
margin-top: 30px; margin-top: 30px;
.case-card { .case-card {
margin-bottom: 15px; margin-bottom: 15px;
@@ -1164,6 +1203,7 @@ export default {
.article-card-box { .article-card-box {
.article-info-image-box { .article-info-image-box {
border-radius: 4px; border-radius: 4px;
.article-info { .article-info {
height: 400px; height: 400px;
@@ -1284,6 +1324,7 @@ export default {
position: relative; position: relative;
background: rgba($color: #04243c, $alpha: 0.04); background: rgba($color: #04243c, $alpha: 0.04);
border-radius: 4px; border-radius: 4px;
.qa-views { .qa-views {
position: absolute; position: absolute;
color: #6e7b84; color: #6e7b84;

View File

@@ -0,0 +1,122 @@
<template>
<div>
<!-- 教师赋能 -->
<div class="xindex-content" style="padding: 0">
<div class="modules xcontent2">
<div class="xcontent2-main">
<div class="modules-list" style="margin-top: 0;">
<div class="bgc">
<div class="title">重要通知</div>
</div>
<div style="padding:0 20px;">
<!--内容列表内容-->
<div v-for="(item, ccidx) in 5" :key="'cc' + ccidx" class="toolEvery" @click="noticeDetail(item)">
<div class="contnet">教师节活动通知</div>
<div class="case-info-date portal-time">
<i class="el-icon-time"></i>
<time-show time="2023-08-04"></time-show>
</div>
</div>
<pagination :size="courseList.pageSize" :total="courseList.count" :page="courseList.pageIndex"
layout="total, prev, pager, next, jumper" @change-size="changePageSize" @change-page="loadData">
</pagination>
</div>
</div>
</div>
<div class="xcontent2-minor" style="margin-left: 25px;">
<div class="portal-ranking ranking-bg">
<p class="ranking-title">教师赋能排行榜</p>
<ul class="xindex-ranking-course">
<li class="xindex-ranking-li" v-for="(item, cindex) in 10" :key="'cc' + cindex">
<a style="display: inherit">
<span class="portal-right-text blue-one">
<img :src="getPic(cindex)" alt="" />
</span>
<span class="portal-title-desc index-one-line-ellipsis title-line-ellipsis"
style="font-size: 14px; color: #04243c">哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈</span>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import timeShow from "@/components/Portal/datetimeShow.vue";
export default {
data: () => {
return {
courseList: {
list: [],
count: 0,
pageIndex: 1,
pageSize: 10,
},
};
},
components: { timeShow },
methods: {
noticeDetail(detailInfo) {
console.log(detailInfo);
this.$router.push({
path: '/grateful/noticeDetail',
})
},
getPic(index) {
return this.webBaseUrl + "/images/listblue0" + (index + 1) + ".png";
},
changePageSize(pageSize) {
this.courseList.pageSize = pageSize;
},
loadData(pindex) {
console.log(pindex);
},
},
};
</script>
<style scoped lang='scss'>
.modules-list {
min-height: 555px;
background: #ffffff;
border-radius: 8px;
.bgc {
font-size: 18px;
font-weight: 600;
color: #000000;
height: 80px;
background: linear-gradient(180deg,
rgba(56, 125, 247, 0.2) 0%,
rgba(166, 168, 255, 0) 100%);
border-radius: 8px 8px 0 0;
.title {
padding: 20px 20px 0 20px;
display: flex;
justify-content: space-between;
}
}
.toolEvery {
height: 80px;
line-height: 80px;
font-size: 18px;
font-weight: 500;
color: #333333;
border-bottom: 1px solid rgba($color: #999, $alpha: 0.2);
display: flex;
justify-content: space-between;
cursor: pointer;
.contnet {
font-size: 18px;
font-weight: 500;
color: #333333;
}
}
}
</style>

View File

@@ -0,0 +1,116 @@
<template>
<div>
<!-- 教师赋能 -->
<div class="xindex-content" style="padding: 0">
<div class="modules xcontent2">
<div class="xcontent2-main">
<div class="modules-list" style="margin-top: 0;">
<div class="bgc">
<div class="title">教师节活动通知</div>
<!--内容列表内容-->
<div class="timeAndAuthor">
<div class="author">发布人李玉冰</div>
<div class="case-info-date portal-time">
<i class="el-icon-time"></i>
<time-show time="2023-08-04"></time-show>
</div>
</div>
</div>
<div class="topTitle">通知内容</div>
<div class="noticeContent">--内容列表内容--</div>
</div>
</div>
<div class="xcontent2-minor" style="margin-left: 25px">
<div class="portal-ranking ranking-bg">
<p class="ranking-title">重要通知</p>
<ul class="xindex-ranking-course">
<li class="xindex-ranking-li" v-for="(item, cindex) in 10" :key="'cc' + cindex" @click="noticeDetail(item)">
<a style="display: inherit">
<span class="portal-right-text blue-one">
<img :src="getPic(cindex)" alt="" />
</span>
<span class="portal-title-desc index-one-line-ellipsis title-line-ellipsis"
style="font-size: 14px; color: #04243c">哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈</span>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import timeShow from "@/components/Portal/datetimeShow.vue";
export default {
data: () => {
return {
courseList: {
list: [],
count: 0,
pageIndex: 1,
pageSize: 10,
},
};
},
components: { timeShow },
methods: {
noticeDetail(item) {
},
getPic(index) {
return this.webBaseUrl + "/images/listblue0" + (index + 1) + ".png";
},
changePageSize(pageSize) {
this.courseList.pageSize = pageSize;
},
loadData(pindex) {
console.log(pindex);
},
},
};
</script>
<style scoped lang='scss'>
.modules-list {
min-height: 555px;
background: #ffffff;
border-radius: 8px;
.bgc {
font-size: 18px;
font-weight: 600;
color: #000000;
background: linear-gradient(180deg,
rgba(56, 125, 247, 0.2) 0%,
rgba(166, 168, 255, 0) 100%);
border-radius: 8px 8px 0 0;
.title {
padding: 20px;
display: flex;
justify-content: space-between;
}
}
.timeAndAuthor {
padding: 0 20px;
.author {
font-size: 14px;
font-weight: 400;
color: #333333;
margin-bottom: 5px;
}
}
.topTitle {
display: flex;
justify-content: center;
font-size: 18px;
font-weight: 600;
margin-bottom: 30px;
}
.noticeContent {
padding: 0 80px;
}
}
</style>

View File

@@ -6,52 +6,30 @@
<div class="xcontent2-main"> <div class="xcontent2-main">
<div class="modules-list" style="margin-top: 0"> <div class="modules-list" style="margin-top: 0">
<!--内容列表内容--> <!--内容列表内容-->
<div <div v-for="(course, ccidx) in courseList.list" :key="'cc' + ccidx" class="xindex-course"
v-for="(course, ccidx) in courseList.list" style="position: relative">
:key="'cc' + ccidx"
class="xindex-course"
style="position: relative"
>
<div style="position: absolute; right: 25px; bottom: 72px"> <div style="position: absolute; right: 25px; bottom: 72px">
<interactBar <interactBar nodeWidth="20px" :courseExclusive="true" :type="1" :data="course" :comments="false"
nodeWidth="20px" :praises="false" :shares="false" :views="false">
:courseExclusive="true"
:type="1"
:data="course"
:comments="false"
:praises="false"
:shares="false"
:views="false"
>
</interactBar> </interactBar>
</div> </div>
<a @click="toCourseDetail(course)"> <a @click="toCourseDetail(course)">
<div class="xindex-course-image"> <div class="xindex-course-image">
<course-image :course="course"></course-image> <course-image :course="course"></course-image>
<span v-if="course.type == 20 || 10" class="course-type" <span v-if="course.type == 20 || 10" class="course-type">录播课</span>
>录播课</span
>
</div> </div>
<div <div style="width: 80%" :title="course.name" class="course-title portal-title-tow two-line-ellipsis">
style="width: 80%"
:title="course.name"
class="course-title portal-title-tow two-line-ellipsis"
>
{{ course.name }} {{ course.name }}
</div> </div>
<div class="course-author"> <div class="course-author">
<div class="course-author-left"> <div class="course-author-left">
{{ course.authorInfo.name }} {{ course.authorInfo.name }}
<span class="study-num" <span class="study-num">{{ formatNum(course.studys) }}人学习</span>
>{{ formatNum(course.studys) }}人学习</span
>
</div> </div>
<div style="display: flex"> <div style="display: flex">
<div v-if="course.score"> <div v-if="course.score">
<span class="course-score-value" style="margin-left: 10px" <span class="course-score-value" style="margin-left: 10px">{{ toScore(course.score) }}</span>
>{{ toScore(course.score) }}</span
>
</div> </div>
<div v-else class="course-score-no">未评分</div> <div v-else class="course-score-no">未评分</div>
</div> </div>
@@ -64,13 +42,8 @@
</div> </div>
<!-- <div v-if="courseList.count > courseList.pageSize"> --> <!-- <div v-if="courseList.count > courseList.pageSize"> -->
<div> <div>
<pagination <pagination :size="courseList.pageSize" :total="courseList.count" :page="courseList.pageIndex"
:size="courseList.pageSize" @change-size="changePageSize" @change-page="loadData" style="background-color: rgba(0, 0, 0, 0);"></pagination>
:total="courseList.count"
:page="courseList.pageIndex"
@change-size="changePageSize"
@change-page="loadData"
></pagination>
</div> </div>
</div> </div>
</template> </template>
@@ -743,6 +716,14 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.gratefulBanner {
width: 100vw;
img {
width: 100%;
}
}
.xindex-course-image:hover { .xindex-course-image:hover {
transform: scale(1.3) translateY(-15px); transform: scale(1.3) translateY(-15px);
transition: all 0.6s; transition: all 0.6s;
@@ -779,33 +760,35 @@ export default {
.course-banner { .course-banner {
height: 520px; height: 520px;
.swiper-button-prev { .swiper-button-prev {
height: 38px; height: 38px;
padding: 0 16px; padding: 0 16px;
background: rgba($color: #000000, $alpha: 0.8) background: rgba($color: #000000, $alpha: 0.8) url("../../assets/images/icon/ban-left.png") no-repeat;
url("../../assets/images/icon/ban-left.png") no-repeat;
background-size: 12px 18px; background-size: 12px 18px;
background-position: 16px 10px; background-position: 16px 10px;
bottom: 66px; bottom: 66px;
border-radius: 19px 0 0 19px; border-radius: 19px 0 0 19px;
} }
.swiper-button-next { .swiper-button-next {
height: 38px; height: 38px;
// right: 52.65%; // right: 52.65%;
bottom: 66px; bottom: 66px;
top: auto; top: auto;
padding: 0 16px; padding: 0 16px;
background: rgba($color: #000000, $alpha: 0.1) background: rgba($color: #000000, $alpha: 0.1) url("../../assets/images/icon/ban-right.png") no-repeat;
url("../../assets/images/icon/ban-right.png") no-repeat;
background-size: 12px 18px; background-size: 12px 18px;
background-position: 6px 10px; background-position: 6px 10px;
border-radius: 0 19px 19px 0; border-radius: 0 19px 19px 0;
} }
.swiper-pagination-bullets { .swiper-pagination-bullets {
// background: #000; // background: #000;
left: 60px; left: 60px;
bottom: 66px; bottom: 66px;
} }
::v-deep .swiper-pagination { ::v-deep .swiper-pagination {
line-height: 25px; line-height: 25px;
height: 32px; height: 32px;
@@ -815,6 +798,7 @@ export default {
left: 45%; left: 45%;
padding: 0 20px; padding: 0 20px;
border-radius: 19px; border-radius: 19px;
.swiper-pagination-bullet { .swiper-pagination-bullet {
position: relative; position: relative;
width: 25px; width: 25px;
@@ -825,6 +809,7 @@ export default {
// background: rgba($color: #fff, $alpha: 0.5); // background: rgba($color: #fff, $alpha: 0.5);
border-radius: 2px; border-radius: 2px;
} }
.swiper-pagination-bullet::before { .swiper-pagination-bullet::before {
content: ""; content: "";
position: absolute; position: absolute;
@@ -833,6 +818,7 @@ export default {
left: -2px; left: -2px;
right: -2px; right: -2px;
} }
.swiper-pagination-bullet-active { .swiper-pagination-bullet-active {
height: 5px; height: 5px;
opacity: 1 !important; opacity: 1 !important;
@@ -842,6 +828,7 @@ export default {
// background: rgba($color: #fff, $alpha: 0.8); // background: rgba($color: #fff, $alpha: 0.8);
border-radius: 2px; border-radius: 2px;
} }
.swiper-container { .swiper-container {
// background-color: rgba($color: #000000, $alpha: 0.2); // background-color: rgba($color: #000000, $alpha: 0.2);
} }
@@ -874,6 +861,7 @@ export default {
.course-image-box { .course-image-box {
position: relative; position: relative;
.course-type { .course-type {
position: absolute; position: absolute;
top: 0px; top: 0px;
@@ -956,9 +944,11 @@ export default {
/*早期浏览器*/ /*早期浏览器*/
user-select: none; user-select: none;
} }
.course-title-box { .course-title-box {
display: flex; display: flex;
} }
.course-author { .course-author {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -1059,6 +1049,7 @@ export default {
.modules-list { .modules-list {
margin-top: 30px; margin-top: 30px;
.case-card { .case-card {
margin-bottom: 15px; margin-bottom: 15px;
@@ -1138,6 +1129,7 @@ export default {
.article-card-box { .article-card-box {
.article-info-image-box { .article-info-image-box {
border-radius: 4px; border-radius: 4px;
.article-info { .article-info {
height: 400px; height: 400px;
@@ -1258,6 +1250,7 @@ export default {
position: relative; position: relative;
background: rgba($color: #04243c, $alpha: 0.04); background: rgba($color: #04243c, $alpha: 0.04);
border-radius: 4px; border-radius: 4px;
.qa-views { .qa-views {
position: absolute; position: absolute;
color: #6e7b84; color: #6e7b84;

View File

@@ -0,0 +1,209 @@
<template>
<div>
<!-- 教师赋能 -->
<div class="xindex-content" style="padding: 0">
<div class="modules xcontent2">
<div class="xcontent2-main">
<div class="modules-list" style="margin-top: 0;">
<div class="bgc">
<div class="title">
<div>师资大全</div>
<div style="position: relative;">
<el-input class="portal-input" placeholder="请输入课程名称或教师姓名工号"
style="border-radius: 20px !important;width: 300px; " @keyup.enter.native="searchJump()" clearable
maxlength="50" v-model="keyword">
</el-input>
<el-button class="sear-but" @click="searchJump()" type="primary" size="mini">搜索</el-button>
</div>
</div>
</div>
<div class="content">
<el-table :data="pageData" stripe border>
<el-table-column label="序号" type="index" width="50" align="center"></el-table-column>
<el-table-column label="课程名称" prop="courseUser" align="center"></el-table-column>
<el-table-column label="课程价值" prop="auditTime" align="center" show-overflow-tooltip></el-table-column>
<el-table-column label="教师名称" prop="auditRemark" align="center" width="200px"
show-overflow-tooltip></el-table-column>
<el-table-column label="教师工号" prop="auditRemark" align="center" width="200px"
show-overflow-tooltip></el-table-column>
</el-table>
<div v-if="pageData.length > 0" style="text-align: center;margin-top: 50px;">
<pagination :size="courseList.pageSize" :total="courseList.count" :page="courseList.pageIndex"
@change-size="changePageSize" @change-page="loadData"></pagination>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import timeShow from "@/components/Portal/datetimeShow.vue";
export default {
data: () => {
return {
keyword: '',
pageData: [
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
{
courseUser: '2016-05-02',
auditTime: '王小虎',
auditRemark: '上海市普陀区金沙江路 1518 弄'
},
],
courseList: {
list: [],
count: 0,
pageIndex: 1,
pageSize: 10,
},
};
},
components: { timeShow },
methods: {
searchJump() {
},
changePageSize(pageSize) {
this.courseList.pageSize = pageSize
},
loadData(pageIndex) {
this.pageIndex = pageIndex
},
noticeDetail(item) { },
getPic(index) {
return this.webBaseUrl + "/images/listblue0" + (index + 1) + ".png";
},
changePageSize(pageSize) {
this.courseList.pageSize = pageSize;
},
loadData(pindex) {
console.log(pindex);
},
},
};
</script>
<style scoped lang='scss'>
.modules-list {
min-height: 555px;
background: #ffffff;
border-radius: 8px;
.bgc {
font-size: 18px;
font-weight: 600;
color: #000000;
height: 100px;
background: linear-gradient(180deg,
rgba(56, 125, 247, 0.2) 0%,
rgba(166, 168, 255, 0) 100%);
.title {
padding: 20px 20px 0 20px;
display: flex;
justify-content: space-between;
}
}
.content{
padding: 0 40px 40px;
}
.sear-but {
position: absolute;
bottom: 10%;
right: 5px;
}
}
</style>

View File

@@ -4,36 +4,38 @@
<div class="xindex-content" style="padding: 0"> <div class="xindex-content" style="padding: 0">
<div class="modules xcontent2"> <div class="modules xcontent2">
<div class="xcontent2-main"> <div class="xcontent2-main">
<div class="modules-list" style="margin-top: 0; padding: 48px"> <div class="modules-list" style="margin-top: 0;">
<!--内容列表内容--> <div class="bgc">
<div <div class="title">工具下载</div>
v-for="(course, ccidx) in 5"
:key="'cc' + ccidx"
class="toolEvery"
style="position: relative"
>
HHh
</div> </div>
<div style="padding: 0 20px;border-radius: 8px 8px 0 0;">
<!--内容列表内容-->
<div v-for="(course, ccidx) in 5" :key="'cc' + ccidx" class="toolEvery">
<div class="contnet">
MNT销量突破促经营哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
</div>
<div class="btn">
<button>立即下载</button>
</div>
</div>
</div>
<pagination :size="courseList.pageSize" :total="courseList.count" :page="courseList.pageIndex"
layout="total, prev, pager, next, jumper" @change-size="changePageSize" @change-page="loadData">
</pagination>
</div> </div>
</div> </div>
<div class="xcontent2-minor" style="margin-left: 25px"> <div class="xcontent2-minor" style="margin-left: 25px">
<div class="portal-ranking ranking-bg"> <div class="portal-ranking ranking-bg">
<p class="ranking-title">教师赋能排行榜</p> <p class="ranking-title">教师赋能排行榜</p>
<ul class="xindex-ranking-course"> <ul class="xindex-ranking-course">
<li <li class="xindex-ranking-li" v-for="(item, cindex) in 10" :key="'cc' + cindex">
class="xindex-ranking-li"
v-for="(item, cindex) in 10"
:key="'cc' + cindex"
>
<a style="display: inherit"> <a style="display: inherit">
<span class="portal-right-text blue-one"> <span class="portal-right-text blue-one">
<img :src="getPic(cindex)" alt="" /> <img :src="getPic(cindex)" alt="" />
</span> </span>
<span <span class="portal-title-desc index-one-line-ellipsis title-line-ellipsis"
class="portal-title-desc index-one-line-ellipsis title-line-ellipsis" style="font-size: 14px; color: #04243c">哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈</span>
style="font-size: 14px; color: #04243c"
>哈哈哈哈</span
>
</a> </a>
</li> </li>
</ul> </ul>
@@ -46,25 +48,73 @@
<script> <script>
export default { export default {
data: () => { data: () => {
return {}; return {
courseList: {
list: [],
count: 0,
pageIndex: 1,
pageSize: 10,
},
};
}, },
methods: { methods: {
getPic(index) { getPic(index) {
return this.webBaseUrl + "/images/listblue0" + (index + 1) + ".png"; return this.webBaseUrl + "/images/listblue0" + (index + 1) + ".png";
}, },
changePageSize(pageSize) {
this.courseList.pageSize = pageSize;
},
loadData(pindex) {
console.log(pindex);
},
}, },
}; };
</script> </script>
<style scoped lang='scss'> <style scoped lang='scss'>
.modules-list { .modules-list {
height: 555px; min-height: 555px;
background: #ffffff; background: #ffffff;
border-radius: 8px; border-radius: 8px;
.bgc {
font-size: 18px;
font-weight: 600;
color: #000000;
height: 80px;
background: linear-gradient(180deg,
rgba(56, 125, 247, 0.2) 0%,
rgba(166, 168, 255, 0) 100%);
border-radius: 8px 8px 0 0;
.title {
padding: 20px 20px 0 20px;
display: flex;
justify-content: space-between;
}
}
.toolEvery { .toolEvery {
height: 80px; height: 80px;
line-height: 80px; line-height: 80px;
opacity: 0.2; font-size: 18px;
border-bottom: 1px solid #999999; font-weight: 500;
color: #333333;
border-bottom: 1px solid rgba($color: #999, $alpha: 0.2);
display: flex;
justify-content: space-between;
.btn {
button {
width: 140px;
height: 40px;
background: #387df7;
border: 0;
box-shadow: 1px 2px 8px 1px rgba(56, 125, 247, 0.3);
border-radius: 4px;
color: #ffffff;
line-height: 22px;
}
}
} }
} }
</style> </style>

View File

@@ -1,6 +1,9 @@
<template> <template>
<div> <div>
<div class="course-banner" style="background-color: red"> <div class="grateful" v-if="$route.meta.hidden">
<img src="../../assets/images/grateful/gratefulbanner.png" alt="" />
</div>
<div class="course-banner" v-if="!$route.meta.hidden">
<div id="container" style="z-index: 99" v-if="resonimg.length == 1"> <div id="container" style="z-index: 99" v-if="resonimg.length == 1">
<!-- 当轮播图等于一张时 --> <!-- 当轮播图等于一张时 -->
<swiper :options="swiperOptiontwo"> <swiper :options="swiperOptiontwo">
@@ -60,7 +63,7 @@
</div> </div>
<router-view></router-view> <router-view></router-view>
<!-- 底部 --> <!-- 底部 -->
<div class="gratefulfooter"> <div class="grateful">
<img src="../../assets/images/grateful/gratefulFooter.png" alt="" /> <img src="../../assets/images/grateful/gratefulFooter.png" alt="" />
</div> </div>
</div> </div>
@@ -724,6 +727,12 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.grateful{
width: 100%;
img{
width: 100%;
}
}
.team{ .team{
display: grid; display: grid;
// grid-template-columns: 1.5fr 1fr 1fr; // grid-template-columns: 1.5fr 1fr 1fr;