Merge branch 'zcwyTeacher' into 'master'
Zcwy teacher See merge request !40
@@ -16,13 +16,15 @@ VUE_APP_CESOURCE_BASE_API = '/socialApi'
|
|||||||
VUE_APP_STAT_BASE_API = '/statApi'
|
VUE_APP_STAT_BASE_API = '/statApi'
|
||||||
|
|
||||||
# BOE系统网址
|
# BOE系统网址
|
||||||
VUE_APP_BOE_WEB_URL = 'http://127.0.0.1'
|
VUE_APP_BOE_WEB_URL = 'https://u-pre.boe.com'
|
||||||
|
|
||||||
# BOE 移动端url
|
# BOE 移动端url
|
||||||
VUE_APP_BOE_MOBILE_URL = 'http://127.0.0.1:8082/mobile'
|
# VUE_APP_BOE_MOBILE_URL = 'http://127.0.0.1:8082/mobile'
|
||||||
|
VUE_APP_BOE_MOBILE_URL = 'https://u-pre.boe.com'
|
||||||
|
|
||||||
# File路径的基础url
|
# File路径的基础url
|
||||||
VUE_APP_FILE_BASE_URL = 'http://127.0.0.1:9090/cdn/upload'
|
# VUE_APP_FILE_BASE_URL = 'http://127.0.0.1:9090/cdn/upload'
|
||||||
|
VUE_APP_FILE_BASE_URL='https://u-pre.boe.com/upload'
|
||||||
|
|
||||||
# File路径的基础url的相对路径,加此项是为了不影响之前的路径配置
|
# File路径的基础url的相对路径,加此项是为了不影响之前的路径配置
|
||||||
VUE_APP_FILE_RELATIVE_PATH = '/upload'
|
VUE_APP_FILE_RELATIVE_PATH = '/upload'
|
||||||
@@ -44,7 +46,8 @@ VUE_APP_MANAGER_API_PATH='/manageApi'
|
|||||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||||
|
|
||||||
# scorm课件的播放url地址
|
# scorm课件的播放url地址
|
||||||
VUE_APP_SCORM_URL = 'http://localhost:9083/scorm-player'
|
# VUE_APP_SCORM_URL = 'http://localhost:9083/scorm-player'
|
||||||
|
VUE_APP_SCORM_URL = 'https://u-pre.boe.com/newscorm/scorm-player'
|
||||||
|
|
||||||
#案例组织领域类型
|
#案例组织领域类型
|
||||||
VUE_APP_CASE_TYPE = '90'
|
VUE_APP_CASE_TYPE = '90'
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['userInfo'])
|
...mapGetters(['userInfo'])
|
||||||
},
|
},
|
||||||
mounted(){
|
mounted() {
|
||||||
//从状态值中取,因为登录处理,所以移动watch中
|
//从状态值中取,因为登录处理,所以移动watch中
|
||||||
// console.log(this.userInfo);
|
// console.log(this.userInfo);
|
||||||
// if(this.userInfo && this.userInfo.name!=''){
|
// if(this.userInfo && this.userInfo.name!=''){
|
||||||
|
|||||||
35
src/api/modules/grateful.js
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
// import ajax from '@/utils/xajax.js'
|
||||||
|
import ajax from '../ajax';
|
||||||
|
const baseURL = '/activityApi';
|
||||||
|
|
||||||
|
//notice新增
|
||||||
|
const saveOpinion = (data = {}) => ajax.postJson(baseURL, '/xboe/m/boe/opinion/save', data);
|
||||||
|
//工具列表
|
||||||
|
const toolList = (data = {}) => ajax.postJson(baseURL, '/xboe/m/boe/tools/list', data);
|
||||||
|
//工具下载
|
||||||
|
const toolDown = ({ urlStr, fileName }) => ajax.get('/systemapi', `/xboe/sys/xuploader/url/download?urlStr=${urlStr}&fileName=${fileName}`);
|
||||||
|
//通知列表
|
||||||
|
const noticeList = (data = {}) => ajax.postJson(baseURL, '/xboe/m/boe/notice/list', data);
|
||||||
|
//通知列表
|
||||||
|
const courselList = (data = {}) => ajax.postJson(baseURL, '/xboe/m/boe/course/list', data);
|
||||||
|
//通知根据id查询
|
||||||
|
const noticeDataById = (id) => ajax.get(baseURL, `/xboe/m/boe/notice/getDataById?id=${id}`);
|
||||||
|
//教师列表
|
||||||
|
const teachersList = (data = {}) => ajax.postJson(baseURL, '/xboe/m/boe/teachers/list', data);
|
||||||
|
//教师列表
|
||||||
|
const carouselList = (data = {}) => ajax.postJson(baseURL, '/xboe/m/boe/rotation/list', data);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export {
|
||||||
|
saveOpinion,
|
||||||
|
toolList,
|
||||||
|
toolDown,
|
||||||
|
noticeList,
|
||||||
|
noticeDataById,
|
||||||
|
courselList,
|
||||||
|
teachersList,
|
||||||
|
carouselList
|
||||||
|
}
|
||||||
BIN
src/assets/images/grateful/empBanner.png
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
src/assets/images/grateful/famousTeacher.png
Normal file
|
After Width: | Height: | Size: 362 KiB |
BIN
src/assets/images/grateful/gratefulFooter.png
Normal file
|
After Width: | Height: | Size: 364 KiB |
BIN
src/assets/images/grateful/gratefulbanner.png
Normal file
|
After Width: | Height: | Size: 609 KiB |
BIN
src/assets/images/grateful/logo.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
src/assets/images/grateful/noticGift.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
src/assets/images/grateful/notice.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
BIN
src/assets/images/grateful/noticeBanner.png
Normal file
|
After Width: | Height: | Size: 341 KiB |
BIN
src/assets/images/grateful/noticeBgc.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
BIN
src/assets/images/grateful/noticeLogo.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
src/assets/images/grateful/opinionBanner.png
Normal file
|
After Width: | Height: | Size: 525 KiB |
BIN
src/assets/images/grateful/suggestion.png
Normal file
|
After Width: | Height: | Size: 542 B |
BIN
src/assets/images/grateful/team.png
Normal file
|
After Width: | Height: | Size: 310 KiB |
BIN
src/assets/images/grateful/tool1.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
src/assets/images/grateful/tool2.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
src/assets/images/grateful/tool3.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
src/assets/images/grateful/toolBanner.png
Normal file
|
After Width: | Height: | Size: 522 KiB |
BIN
src/assets/images/grateful/toolBgc.png
Normal file
|
After Width: | Height: | Size: 165 KiB |
@@ -396,6 +396,13 @@ body {margin: 0px;padding: 0px;}
|
|||||||
.xcontent{width: 1100px;}
|
.xcontent{width: 1100px;}
|
||||||
.xcontent2{
|
.xcontent2{
|
||||||
width: 1100px;
|
width: 1100px;
|
||||||
|
.list {
|
||||||
|
grid-template-columns: repeat(4, 255px);
|
||||||
|
}
|
||||||
|
.toolImg{
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.home-page-right{
|
.home-page-right{
|
||||||
width: 330px;
|
width: 330px;
|
||||||
@@ -470,6 +477,13 @@ body {margin: 0px;padding: 0px;}
|
|||||||
.xcontent{width: 1366px;}
|
.xcontent{width: 1366px;}
|
||||||
.xcontent2{
|
.xcontent2{
|
||||||
width: 1366px;
|
width: 1366px;
|
||||||
|
//后添加的教师节
|
||||||
|
.list {
|
||||||
|
grid-template-columns: repeat(4, 332px);
|
||||||
|
}
|
||||||
|
.liList{
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.rankimg{
|
.rankimg{
|
||||||
width:76px;
|
width:76px;
|
||||||
@@ -513,6 +527,12 @@ body {margin: 0px;padding: 0px;}
|
|||||||
.xcontent{width: 1690px;}
|
.xcontent{width: 1690px;}
|
||||||
.xcontent2{
|
.xcontent2{
|
||||||
width: 1690px;
|
width: 1690px;
|
||||||
|
.list {
|
||||||
|
grid-template-columns: repeat(4, 400px);
|
||||||
|
}
|
||||||
|
.liList{
|
||||||
|
margin-top: 24px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.rankimg{
|
.rankimg{
|
||||||
width:86px;
|
width:86px;
|
||||||
@@ -555,6 +575,12 @@ body {margin: 0px;padding: 0px;}
|
|||||||
.xcontent{width: 1880px;}
|
.xcontent{width: 1880px;}
|
||||||
.xcontent2{
|
.xcontent2{
|
||||||
width: 1846px;
|
width: 1846px;
|
||||||
|
.list {
|
||||||
|
grid-template-columns: repeat(4, 445px);
|
||||||
|
}
|
||||||
|
.liList{
|
||||||
|
margin-top: 32px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.home-page-right{
|
.home-page-right{
|
||||||
width: 395px;
|
width: 395px;
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--用于显示课程的图片-->
|
<!--用于显示课程的图片-->
|
||||||
<div style="border-radius: 5px;" class="img-box" id="img-box">
|
<div style="border-radius: 5px;" class="img-box" id="img-box">
|
||||||
<el-image
|
<el-image style="background-color: #eeeeee;border-radius: 5px;" :style="`width:${width};height:${height};`"
|
||||||
style="background-color: #eeeeee;border-radius: 5px;"
|
fit="fill " :src="imageUrl">
|
||||||
:style="`width:${width};height:${height};`"
|
|
||||||
fit="fill "
|
|
||||||
:src="imageUrl"
|
|
||||||
>
|
|
||||||
<div slot="error" class="image-slot">
|
<div slot="error" class="image-slot">
|
||||||
<i class="el-icon-picture-outline"></i>
|
<i class="el-icon-picture-outline"></i>
|
||||||
</div>
|
</div>
|
||||||
@@ -32,46 +28,45 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
course: {
|
course: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => {},
|
default: () => { },
|
||||||
},
|
},
|
||||||
height: {
|
height: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "100%",
|
default: "100%",
|
||||||
},
|
},
|
||||||
text:{
|
text: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default:true,
|
default: true,
|
||||||
},
|
},
|
||||||
width: {
|
width: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "100%",
|
default: "100%",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
name(){
|
name() {
|
||||||
let name = '';
|
let name = '';
|
||||||
if(this.course && this.course.name && this.course.name !== '') {
|
if (this.course && this.course.name && this.course.name !== '') {
|
||||||
name = this.course.name.replace('color:#FF0000','color:#fff');
|
name = this.course.name.replace('color:#FF0000', 'color:#fff');
|
||||||
}
|
}
|
||||||
if(this.course && this.course.courseName && this.course.courseName !== '') {
|
if (this.course && this.course.courseName && this.course.courseName !== '') {
|
||||||
name = this.course.courseName.replace('color:#FF0000','color:#fff');
|
name = this.course.courseName.replace('color:#FF0000', 'color:#fff');
|
||||||
}
|
}
|
||||||
if(this.course && this.course.title && this.course.title !== '') {
|
if (this.course && this.course.title && this.course.title !== '') {
|
||||||
name = this.course.title.replace('color:#FF0000','color:#fff');
|
name = this.course.title.replace('color:#FF0000', 'color:#fff');
|
||||||
}
|
}
|
||||||
return name;
|
return name;
|
||||||
// course.name || course.courseName || course.title
|
// course.name || course.courseName || course.title
|
||||||
},
|
},
|
||||||
imageUrl() {
|
imageUrl() {
|
||||||
this.isShow = false;
|
this.isShow = false;
|
||||||
if(this.course && this.course.coverImg && this.course.coverImg.startsWith('http')) {
|
if (this.course && this.course.coverImg && this.course.coverImg.startsWith('http')) {
|
||||||
return this.course.coverImg;
|
return this.course.coverImg;
|
||||||
}
|
}
|
||||||
if(this.course && this.course.courseImage && this.course.courseImage.startsWith('http')) {
|
if (this.course && this.course.courseImage && this.course.courseImage.startsWith('http')) {
|
||||||
return this.course.courseImage;
|
return this.course.courseImage;
|
||||||
}
|
}
|
||||||
if (this.course && this.course.coverImg && this.course.coverImg != "") {
|
if (this.course && this.course.coverImg && this.course.coverImg != "") {
|
||||||
return this.fileBaseUrl + this.course.coverImg;
|
return this.fileBaseUrl + this.course.coverImg;
|
||||||
} else if (
|
} else if (
|
||||||
this.course &&
|
this.course &&
|
||||||
@@ -122,7 +117,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
imageError() {},
|
imageError() { },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -130,43 +125,56 @@ export default {
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.text {
|
.text {
|
||||||
text-shadow: 0px 0px 2px #ffffff;
|
text-shadow: 0px 0px 2px #ffffff;
|
||||||
span{
|
|
||||||
|
span {
|
||||||
color: #ffffff !important;
|
color: #ffffff !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.image-slot{
|
|
||||||
display: flex;
|
.image-slot {
|
||||||
width: 100%;
|
display: flex;
|
||||||
height: 100%;
|
width: 100%;
|
||||||
align-items: center;
|
height: 100%;
|
||||||
justify-content: center;
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.img-box {
|
.img-box {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
-moz-user-select: none; /*火狐*/
|
-moz-user-select: none;
|
||||||
-webkit-user-select: none; /*webkit浏览器*/
|
/*火狐*/
|
||||||
-ms-user-select: none; /*IE10*/
|
-webkit-user-select: none;
|
||||||
-khtml-user-select: none; /*早期浏览器*/
|
/*webkit浏览器*/
|
||||||
|
-ms-user-select: none;
|
||||||
|
/*IE10*/
|
||||||
|
-khtml-user-select: none;
|
||||||
|
/*早期浏览器*/
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
// white-space:pre-wrap;
|
// white-space:pre-wrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
// text-overflow:ellipsis;
|
// text-overflow:ellipsis;
|
||||||
word-break:break-all;
|
word-break: break-all;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
-moz-user-select: none; /*火狐*/
|
-moz-user-select: none;
|
||||||
-webkit-user-select: none; /*webkit浏览器*/
|
/*火狐*/
|
||||||
-ms-user-select: none; /*IE10*/
|
-webkit-user-select: none;
|
||||||
-khtml-user-select: none; /*早期浏览器*/
|
/*webkit浏览器*/
|
||||||
|
-ms-user-select: none;
|
||||||
|
/*IE10*/
|
||||||
|
-khtml-user-select: none;
|
||||||
|
/*早期浏览器*/
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mini {
|
.mini {
|
||||||
top: 30%;
|
top: 30%;
|
||||||
left: 8%;
|
left: 8%;
|
||||||
@@ -174,6 +182,7 @@ export default {
|
|||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mid {
|
.mid {
|
||||||
top: 30%;
|
top: 30%;
|
||||||
left: 8%;
|
left: 8%;
|
||||||
@@ -181,6 +190,7 @@ export default {
|
|||||||
line-height: 35px;
|
line-height: 35px;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.max {
|
.max {
|
||||||
top: 30%;
|
top: 30%;
|
||||||
left: 8%;
|
left: 8%;
|
||||||
@@ -188,12 +198,12 @@ export default {
|
|||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.te-max {
|
.te-max {
|
||||||
top: 30%;
|
top: 30%;
|
||||||
left: 8%;
|
left: 8%;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
line-height: 35px;
|
line-height: 35px;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
}
|
}
|
||||||
}
|
}</style>
|
||||||
</style>
|
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
<el-dropdown-item command="four" divided>U选小课堂</el-dropdown-item>
|
<el-dropdown-item command="four" divided>U选小课堂</el-dropdown-item>
|
||||||
<el-dropdown-item command="five" divided>社招新员工</el-dropdown-item>
|
<el-dropdown-item command="five" divided>社招新员工</el-dropdown-item>
|
||||||
<el-dropdown-item command="six" divided>贡献者专区</el-dropdown-item>
|
<el-dropdown-item command="six" divided>贡献者专区</el-dropdown-item>
|
||||||
|
<!-- <el-dropdown-item command="seven" divided>教师专区</el-dropdown-item> -->
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</div>
|
</div>
|
||||||
@@ -232,7 +233,7 @@ export default {
|
|||||||
handleCommand(val) {
|
handleCommand(val) {
|
||||||
if (val === "four") {
|
if (val === "four") {
|
||||||
this.$emit('showClass',true)
|
this.$emit('showClass',true)
|
||||||
} else {
|
} else {
|
||||||
let urlPre = window.location.protocol + "//" + window.location.host;
|
let urlPre = window.location.protocol + "//" + window.location.host;
|
||||||
// process.env.VUE_APP_BOE_WEB_URL
|
// process.env.VUE_APP_BOE_WEB_URL
|
||||||
let obj = {
|
let obj = {
|
||||||
@@ -242,6 +243,7 @@ export default {
|
|||||||
// four: 'https://m.qingxuetang.com/x/?appId=qxtcorp306130',
|
// four: 'https://m.qingxuetang.com/x/?appId=qxtcorp306130',
|
||||||
five: urlPre + "/boe/new-employee/index.html",
|
five: urlPre + "/boe/new-employee/index.html",
|
||||||
six: urlPre + "/web/contributor/index",
|
six: urlPre + "/web/contributor/index",
|
||||||
|
seven:this.webBaseUrl + '/grateful'
|
||||||
};
|
};
|
||||||
window.open(obj[val]);
|
window.open(obj[val]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
<el-dropdown-item command='three' divided>管理者进阶</el-dropdown-item>
|
<el-dropdown-item command='three' divided>管理者进阶</el-dropdown-item>
|
||||||
<el-dropdown-item command='for' divided>U选小课堂</el-dropdown-item>
|
<el-dropdown-item command='for' divided>U选小课堂</el-dropdown-item>
|
||||||
<el-dropdown-item command='five' divided>社招新员工</el-dropdown-item>
|
<el-dropdown-item command='five' divided>社招新员工</el-dropdown-item>
|
||||||
|
<!-- <el-dropdown-item command="seven" divided>教师专区</el-dropdown-item> -->
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</div>
|
</div>
|
||||||
@@ -68,7 +69,7 @@
|
|||||||
<img v-if="userInfo.sex === 1 " src="../../../../public/images/Avatarman.png" alt="" style="width: 30px;height: 30px;vertical-align: middle;">
|
<img v-if="userInfo.sex === 1 " src="../../../../public/images/Avatarman.png" alt="" style="width: 30px;height: 30px;vertical-align: middle;">
|
||||||
<img v-else src="../../../../public/images/Avatarwoman.png" alt="" style="width: 30px;height: 30px;vertical-align: middle;">
|
<img v-else src="../../../../public/images/Avatarwoman.png" alt="" style="width: 30px;height: 30px;vertical-align: middle;">
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
{{userInfo.name}}
|
{{userInfo.name}}
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
@@ -267,6 +268,7 @@ export default {
|
|||||||
three: this.webBaseUrl + "/study/index?study=1",
|
three: this.webBaseUrl + "/study/index?study=1",
|
||||||
// four: 'https://m.qingxuetang.com/x/?appId=qxtcorp306130',
|
// four: 'https://m.qingxuetang.com/x/?appId=qxtcorp306130',
|
||||||
five: urlPre + "/boe/new-employee/index.html",
|
five: urlPre + "/boe/new-employee/index.html",
|
||||||
|
seven: this.webBaseUrl + '/grateful'
|
||||||
};
|
};
|
||||||
window.open(obj[val]);
|
window.open(obj[val]);
|
||||||
}
|
}
|
||||||
@@ -491,7 +493,7 @@ export default {
|
|||||||
::v-deep.el-dropdown-menu {
|
::v-deep.el-dropdown-menu {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border: none !important;
|
border: none !important;
|
||||||
|
|
||||||
}
|
}
|
||||||
::v-deep .el-avatar{
|
::v-deep .el-avatar{
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
@@ -506,7 +508,7 @@ text-align: center;
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
img{
|
img{
|
||||||
|
|
||||||
}
|
}
|
||||||
::v-deep .dialog-signin{
|
::v-deep .dialog-signin{
|
||||||
background: transparent;
|
background: transparent;
|
||||||
|
|||||||
@@ -3,279 +3,336 @@ import VueRouter from 'vue-router'
|
|||||||
/* Layout */
|
/* Layout */
|
||||||
import Layout from '@/layout/index'
|
import Layout from '@/layout/index'
|
||||||
import LayoutPortal from '@/layout/portal'
|
import LayoutPortal from '@/layout/portal'
|
||||||
|
import Grateful from '@/views/grateful'
|
||||||
|
|
||||||
Vue.use(VueRouter)
|
Vue.use(VueRouter)
|
||||||
|
|
||||||
export const constantRoutes = [{
|
export const constantRoutes = [{
|
||||||
path: '/redirect',
|
path: '/redirect',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
hidden: true,
|
hidden: true,
|
||||||
children: [{
|
children: [{
|
||||||
path: '/redirect/:path(.*)',
|
path: '/redirect/:path(.*)',
|
||||||
component: (resolve) => require(['@/views/Redirect'], resolve)
|
component: (resolve) => require(['@/views/Redirect'], resolve)
|
||||||
}]
|
}]
|
||||||
}, {
|
}, {
|
||||||
path: '',
|
path: '',
|
||||||
redirect: '/study'
|
redirect: '/study'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/loading',
|
path: '/loading',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/Loading'], resolve),
|
component: (resolve) => require(['@/views/Loading'], resolve),
|
||||||
name: 'loading',
|
name: 'loading',
|
||||||
meta: { title: '正在进入学习中心', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '正在进入学习中心', icon: 'dashboard', noCache: true, affix: false },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/login',
|
path: '/login',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/Login'], resolve),
|
component: (resolve) => require(['@/views/Login'], resolve),
|
||||||
name: 'login',
|
name: 'login',
|
||||||
meta: { title: '京东方大学堂登录', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '京东方大学堂登录', icon: 'dashboard', noCache: true, affix: false },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/index',
|
path: '/index',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/Index'], resolve),
|
component: (resolve) => require(['@/views/Index'], resolve),
|
||||||
name: 'index',
|
name: 'index',
|
||||||
meta: { title: '首页', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '首页', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// path: '/grateful/index',
|
||||||
|
// hidden: true,
|
||||||
|
// component: (resolve) => require(['@/views/grateful'], resolve),
|
||||||
|
// name: 'gratefulIndex',
|
||||||
|
// meta: { title: '感恩教师首页', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
path: '/grateful',
|
||||||
|
component: Grateful,
|
||||||
|
redirect: '/grateful/index',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'index',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/grateful/GratefulHomePage'], resolve),
|
||||||
|
name: 'GratefulHomePage',
|
||||||
|
meta: { title: '感恩教师首页', icon: 'dashboard', noCache: true, affix: true, hidden:false }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'teacherEmpowerment',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/grateful/TeacherEmpowerment'], resolve),
|
||||||
|
name: 'TeacherEmpowerment',
|
||||||
|
meta: { title: '教师赋能', icon: 'dashboard', noCache: true, affix: true, hidden:true }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'toolDown',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/grateful/ToolDown'], resolve),
|
||||||
|
name: 'ToolDown',
|
||||||
|
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 }
|
||||||
|
},
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/forward',
|
path: '/forward',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/Forward'], resolve),
|
component: (resolve) => require(['@/views/Forward'], resolve),
|
||||||
name: 'forward',
|
name: 'forward',
|
||||||
meta: { title: '详细信息', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '详细信息', icon: 'dashboard', noCache: true, affix: false },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/course',
|
path: '/course',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/course/Index'], resolve),
|
component: (resolve) => require(['@/views/portal/course/Index'], resolve),
|
||||||
name: 'course',
|
name: 'course',
|
||||||
meta: { title: '课程',keepAlive:true, icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '课程', keepAlive: true, icon: 'dashboard', noCache: true, affix: false },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/course/micro',
|
path: '/course/micro',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/course/Micro'], resolve),
|
component: (resolve) => require(['@/views/portal/course/Micro'], resolve),
|
||||||
name: 'courseDetailMicro',
|
name: 'courseDetailMicro',
|
||||||
meta: { title: '课程详情', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '课程详情', icon: 'dashboard', noCache: true, affix: false },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/course/detail',
|
path: '/course/detail',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/course/Detail'], resolve),
|
component: (resolve) => require(['@/views/portal/course/Detail'], resolve),
|
||||||
name: 'courseDetail',
|
name: 'courseDetail',
|
||||||
meta: { title: '课程详情',keepAlive:true, icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '课程详情', keepAlive: true, icon: 'dashboard', noCache: true, affix: false },
|
||||||
},
|
},
|
||||||
// 课程预览
|
// 课程预览
|
||||||
{
|
{
|
||||||
path: '/course/microPreview',
|
path: '/course/microPreview',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/course/microPreview'], resolve),
|
component: (resolve) => require(['@/views/portal/course/microPreview'], resolve),
|
||||||
name: 'microPreview',
|
name: 'microPreview',
|
||||||
meta: { title: '课程预览', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '课程预览', icon: 'dashboard', noCache: true, affix: false },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/course/rePreview',
|
path: '/course/rePreview',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/course/rePreview'], resolve),
|
component: (resolve) => require(['@/views/portal/course/rePreview'], resolve),
|
||||||
name: 'courseRePreview',
|
name: 'courseRePreview',
|
||||||
meta: { title: '课程预览', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '课程预览', icon: 'dashboard', noCache: true, affix: false },
|
||||||
},
|
},
|
||||||
//
|
//
|
||||||
// 外来链接
|
// 外来链接
|
||||||
{
|
{
|
||||||
path: '/course/boeframe',
|
path: '/course/boeframe',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/boeframe'], resolve),
|
component: (resolve) => require(['@/views/portal/boeframe'], resolve),
|
||||||
name: 'courseBoeframe',
|
name: 'courseBoeframe',
|
||||||
meta: { title: '课程预览', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '课程预览', icon: 'dashboard', noCache: true, affix: false },
|
||||||
},
|
},
|
||||||
//外来链接
|
//外来链接
|
||||||
{
|
{
|
||||||
path: '/course/recorded',
|
path: '/course/recorded',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/course/Recorded'], resolve),
|
||||||
|
name: 'courseDetailRecorded',
|
||||||
|
meta: { title: '课程详情', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
//此页面需要指定课程的参数
|
||||||
|
path: '/course/studyindex',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/study/coursenew'], resolve),
|
||||||
|
name: 'courseStudyIndex',
|
||||||
|
meta: { title: '课程学习', keepAlive: true, icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/case',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/case/Index'], resolve),
|
||||||
|
name: 'case',
|
||||||
|
meta: { title: '案例', keepAlive: true, icon: 'dashboard', noCache: false, affix: true },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/case/detail',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/case/Detail'], resolve),
|
||||||
|
name: 'caseDetail',
|
||||||
|
meta: { title: '案例详情', keepAlive: true, icon: 'dashboard', noCache: false, affix: true },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/article',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/article/Index'], resolve),
|
||||||
|
name: 'article',
|
||||||
|
meta: { title: '文章', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/article/detail',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/article/Detail'], resolve),
|
||||||
|
name: 'articleDetail',
|
||||||
|
meta: { title: '文章详情', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/article/add',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/article/Add'], resolve),
|
||||||
|
name: 'articleAdd',
|
||||||
|
meta: { title: '发布文章', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/qa',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/qa/Index'], resolve),
|
||||||
|
name: 'qa',
|
||||||
|
meta: { title: '问答', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/message',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/user/Message'], resolve),
|
||||||
|
name: 'userMsg',
|
||||||
|
meta: { title: '我的消息', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/home',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/homepage/Index'], resolve),
|
||||||
|
name: 'homePage',
|
||||||
|
redirect: '/home/:id',
|
||||||
|
meta: { title: '个人主页', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
children: [{
|
||||||
|
path: ':id',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/course/Recorded'], resolve),
|
component: (resolve) => require(['@/views/homepage/page'], resolve),
|
||||||
name: 'courseDetailRecorded',
|
name: 'page',
|
||||||
meta: { title: '课程详情', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '个人主页', icon: 'dashboard', noCache: true, affix: true }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
//此页面需要指定课程的参数
|
path: ':id/leaving',
|
||||||
path: '/course/studyindex',
|
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/study/coursenew'], resolve),
|
component: (resolve) => require(['@/views/homepage/leavingMessage'], resolve),
|
||||||
name: 'courseStudyIndex',
|
name: 'leavingMessage',
|
||||||
meta: { title: '课程学习',keepAlive:true, icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '留言', icon: 'dashboard', noCache: true, affix: true }
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/case',
|
path: '/comments',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/Comments'], resolve),
|
||||||
|
name: 'commentReply',
|
||||||
|
meta: { title: '评论回复', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/qa/answer',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/qa/Answer'], resolve),
|
||||||
|
name: 'qaAnswer',
|
||||||
|
meta: { title: '写回答', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/follow',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/portal/follow'], resolve),
|
||||||
|
name: 'follow',
|
||||||
|
meta: { title: '我的关注', icon: 'dashboard', noCache: true, affix: false },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/study',
|
||||||
|
component: Layout,
|
||||||
|
redirect: '/study/index',
|
||||||
|
children: [{
|
||||||
|
path: 'index',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/case/Index'], resolve),
|
component: (resolve) => require(['@/views/StudyIndex'], resolve),
|
||||||
name: 'case',
|
name: 'studyIndex',
|
||||||
meta: { title: '案例',keepAlive:true, icon: 'dashboard', noCache: false, affix: true },
|
meta: { title: '首页', icon: 'dashboard', noCache: true, affix: true }
|
||||||
|
}]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/case/detail',
|
path: '/teacher',
|
||||||
|
component: Layout,
|
||||||
|
children: [{
|
||||||
|
path: 'index',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/case/Detail'], resolve),
|
component: (resolve) => require(['@/views/TeacherIndex'], resolve),
|
||||||
name: 'caseDetail',
|
name: 'teacherIndex',
|
||||||
meta: { title: '案例详情',keepAlive:true, icon: 'dashboard', noCache: false, affix: true },
|
meta: { title: '教师个人中心', icon: 'dashboard', noCache: true, affix: true }
|
||||||
|
}]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/article',
|
path: '/manager',
|
||||||
|
component: Layout,
|
||||||
|
children: [{
|
||||||
|
path: 'index',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/article/Index'], resolve),
|
component: (resolve) => require(['@/views/ManageIndex'], resolve),
|
||||||
name: 'article',
|
name: 'managerIndex',
|
||||||
meta: { title: '文章', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '管理员个人中心', icon: 'dashboard', noCache: true, affix: true }
|
||||||
|
}]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/article/detail',
|
path: '/exam/test',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/article/Detail'], resolve),
|
component: (resolve) => require(['@/views/exam/Test'], resolve),
|
||||||
name: 'articleDetail',
|
name: 'test',
|
||||||
meta: { title: '文章详情', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '京东方大学堂考试', icon: 'dashboard', noCache: true, affix: true },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/article/add',
|
path: '/video/test',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: (resolve) => require(['@/views/portal/article/Add'], resolve),
|
component: (resolve) => require(['@/views/portal/course/video'], resolve),
|
||||||
name: 'articleAdd',
|
name: 'videotest',
|
||||||
meta: { title: '发布文章', icon: 'dashboard', noCache: true, affix: false },
|
meta: { title: '课程视频测试', icon: 'dashboard', noCache: true, affix: true },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/qa',
|
path: '/404',
|
||||||
hidden: true,
|
component: (resolve) => require(['@/views/error/404'], resolve),
|
||||||
component: (resolve) => require(['@/views/portal/qa/Index'], resolve),
|
hidden: true
|
||||||
name: 'qa',
|
|
||||||
meta: { title: '问答', icon: 'dashboard', noCache: true, affix: false },
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/message',
|
path: '/401',
|
||||||
hidden: true,
|
component: (resolve) => require(['@/views/error/401'], resolve),
|
||||||
component: (resolve) => require(['@/views/portal/user/Message'], resolve),
|
hidden: true
|
||||||
name: 'userMsg',
|
|
||||||
meta: { title: '我的消息', icon: 'dashboard', noCache: true, affix: false },
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/home',
|
path: '/500',
|
||||||
hidden: true,
|
component: (resolve) => require(['@/views/error/500'], resolve),
|
||||||
component: (resolve) => require(['@/views/homepage/Index'], resolve),
|
hidden: true
|
||||||
name: 'homePage',
|
|
||||||
redirect: '/home/:id',
|
|
||||||
meta: { title: '个人主页', icon: 'dashboard', noCache: true, affix: false },
|
|
||||||
children: [{
|
|
||||||
path: ':id',
|
|
||||||
hidden: true,
|
|
||||||
component: (resolve) => require(['@/views/homepage/page'], resolve),
|
|
||||||
name: 'page',
|
|
||||||
meta: { title: '个人主页', icon: 'dashboard', noCache: true, affix: true }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: ':id/leaving',
|
|
||||||
hidden: true,
|
|
||||||
component: (resolve) => require(['@/views/homepage/leavingMessage'], resolve),
|
|
||||||
name: 'leavingMessage',
|
|
||||||
meta: { title: '留言', icon: 'dashboard', noCache: true, affix: true }
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/comments',
|
|
||||||
hidden: true,
|
|
||||||
component: (resolve) => require(['@/views/portal/Comments'], resolve),
|
|
||||||
name: 'commentReply',
|
|
||||||
meta: { title: '评论回复', icon: 'dashboard', noCache: true, affix: false },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/qa/answer',
|
|
||||||
hidden: true,
|
|
||||||
component: (resolve) => require(['@/views/portal/qa/Answer'], resolve),
|
|
||||||
name: 'qaAnswer',
|
|
||||||
meta: { title: '写回答', icon: 'dashboard', noCache: true, affix: false },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/follow',
|
|
||||||
hidden: true,
|
|
||||||
component: (resolve) => require(['@/views/portal/follow'], resolve),
|
|
||||||
name: 'follow',
|
|
||||||
meta: { title: '我的关注', icon: 'dashboard', noCache: true, affix: false },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/study',
|
|
||||||
component: Layout,
|
|
||||||
redirect: '/study/index',
|
|
||||||
children: [{
|
|
||||||
path: 'index',
|
|
||||||
hidden: true,
|
|
||||||
component: (resolve) => require(['@/views/StudyIndex'], resolve),
|
|
||||||
name: 'studyIndex',
|
|
||||||
meta: { title: '首页', icon: 'dashboard', noCache: true, affix: true }
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/teacher',
|
|
||||||
component: Layout,
|
|
||||||
children: [{
|
|
||||||
path: 'index',
|
|
||||||
hidden: true,
|
|
||||||
component: (resolve) => require(['@/views/TeacherIndex'], resolve),
|
|
||||||
name: 'teacherIndex',
|
|
||||||
meta: { title: '教师个人中心', icon: 'dashboard', noCache: true, affix: true }
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/manager',
|
|
||||||
component: Layout,
|
|
||||||
children: [{
|
|
||||||
path: 'index',
|
|
||||||
hidden: true,
|
|
||||||
component: (resolve) => require(['@/views/ManageIndex'], resolve),
|
|
||||||
name: 'managerIndex',
|
|
||||||
meta: { title: '管理员个人中心', icon: 'dashboard', noCache: true, affix: true }
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/exam/test',
|
|
||||||
hidden: true,
|
|
||||||
component: (resolve) => require(['@/views/exam/Test'], resolve),
|
|
||||||
name: 'test',
|
|
||||||
meta: { title: '京东方大学堂考试', icon: 'dashboard', noCache: true, affix: true },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/video/test',
|
|
||||||
hidden: true,
|
|
||||||
component: (resolve) => require(['@/views/portal/course/video'], resolve),
|
|
||||||
name: 'videotest',
|
|
||||||
meta: { title: '课程视频测试', icon: 'dashboard', noCache: true, affix: true },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/404',
|
|
||||||
component: (resolve) => require(['@/views/error/404'], resolve),
|
|
||||||
hidden: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/401',
|
|
||||||
component: (resolve) => require(['@/views/error/401'], resolve),
|
|
||||||
hidden: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/500',
|
|
||||||
component: (resolve) => require(['@/views/error/500'], resolve),
|
|
||||||
hidden: true
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
const router = new VueRouter({
|
const router = new VueRouter({
|
||||||
mode: 'history',
|
mode: 'history',
|
||||||
base: process.env.BASE_URL,
|
base: process.env.BASE_URL,
|
||||||
routes: constantRoutes,
|
routes: constantRoutes,
|
||||||
scrollBehavior(to, from, saveTop) {
|
scrollBehavior(to, from, saveTop) {
|
||||||
if (saveTop) {
|
if (saveTop) {
|
||||||
return saveTop;
|
return saveTop;
|
||||||
} else {
|
} else {
|
||||||
return { x: 0, y: 0 }
|
return { x: 0, y: 0 }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
export default router
|
export default router
|
||||||
|
|||||||
@@ -1308,6 +1308,8 @@ export default {
|
|||||||
courseIds.push(item.id);
|
courseIds.push(item.id);
|
||||||
});
|
});
|
||||||
this.loadCouserTeacher(res.result, courseIds);
|
this.loadCouserTeacher(res.result, courseIds);
|
||||||
|
console.log(res.result,'lalalala');
|
||||||
|
|
||||||
this.courseList.list = res.result;
|
this.courseList.list = res.result;
|
||||||
//this.couname = res.result.list.name;
|
//this.couname = res.result.list.name;
|
||||||
// if (res.result.count - pageIndex * num < 8) {
|
// if (res.result.count - pageIndex * num < 8) {
|
||||||
|
|||||||
891
src/views/grateful/GratefulHomePage.vue
Normal file
@@ -0,0 +1,891 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="course-banner">
|
||||||
|
<div id="container" style="z-index: 99" v-if="resonimg.length == 1">
|
||||||
|
<!-- 当轮播图等于一张时 -->
|
||||||
|
<swiper :options="swiperOptiontwo">
|
||||||
|
<swiper-slide style="margin: 0 auto" v-for="(item, idx) in resonimg" :key="'a' + idx"
|
||||||
|
class="swiper-slide games pointer">
|
||||||
|
<div class="bannbox" :style="{
|
||||||
|
background: `url(${fileBaseUrl + item.image
|
||||||
|
}) no-repeat 100% / 100%`,
|
||||||
|
}"></div>
|
||||||
|
<img class="banner-img" style="margin: 0 auto;width:100%;" :src="fileBaseUrl + item.image" alt="" />
|
||||||
|
</swiper-slide>
|
||||||
|
</swiper>
|
||||||
|
</div>
|
||||||
|
<div id="container" style="z-index: 99" v-else>
|
||||||
|
<swiper :options="swiperOption" ref="mySwiper" v-if="resonimg.length > 1">
|
||||||
|
<swiper-slide style="margin: 0 auto" v-for="(item, idx) in resonimg" :key="'b' + idx"
|
||||||
|
class="swiper-slide games pointer">
|
||||||
|
<div class="bannbox" :style="{
|
||||||
|
background: `url(${fileBaseUrl + item.image
|
||||||
|
}) no-repeat 100% / 100%`,
|
||||||
|
}"></div>
|
||||||
|
<img class="banner-img" style="margin: 0 auto;width:100%;" :src="fileBaseUrl + item.image" alt="" />
|
||||||
|
</swiper-slide>
|
||||||
|
<div class="swiper-pagination" slot="pagination"></div>
|
||||||
|
</swiper>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 图片 -->
|
||||||
|
<div class="xindex-content">
|
||||||
|
<div class="modules xcontent2">
|
||||||
|
<div class="xcontent2-main">
|
||||||
|
<div class="gratefulNav">
|
||||||
|
<div class="navImg">
|
||||||
|
<router-link to="/grateful/teacherOpinion">
|
||||||
|
<img src="../../assets/images/grateful/famousTeacher.png" alt="">
|
||||||
|
</router-link>
|
||||||
|
</div>
|
||||||
|
<div class="navNotice">
|
||||||
|
<div id="fixd-box" style="height: 100%;">
|
||||||
|
<div class="portal-ranking ranking-bg" style="height: 100%;display: flex;flex-direction: column;"
|
||||||
|
:class="showNoticeImg ? 'allPadding' : ''">
|
||||||
|
<div :class="showNoticeImg ? 'noticeBgc' : ''">
|
||||||
|
<div style="display: flex;justify-content: space-between;">
|
||||||
|
<p class="ranking-title">通知</p>
|
||||||
|
<router-link v-if="courseList.noticeList.length >= 6" to="/grateful/gratefulNotice"
|
||||||
|
style="font-size: 14px;">查看更多</router-link>
|
||||||
|
</div>
|
||||||
|
<ul>
|
||||||
|
<li v-for="(item, index) in courseList.noticeList" :key="index"
|
||||||
|
style="cursor: pointer;line-height: 22px;" class="liList">
|
||||||
|
<router-link :to="'/grateful/noticeDetail?id=' + item.id"
|
||||||
|
style="display: flex;align-items: center;">
|
||||||
|
<span class="portal-right-text blue-one">
|
||||||
|
<img :src="getPic(index)" alt="">
|
||||||
|
</span>
|
||||||
|
<div class="portal-title-desc"
|
||||||
|
style="flex: 1;font-size: 14px;display: flex;justify-content: space-between;">
|
||||||
|
<span class="title-line-ellipsis " style="flex: 1;">{{ item.name }}</span>
|
||||||
|
<span>{{ item.createTime.split(' ')[0] }}</span>
|
||||||
|
</div>
|
||||||
|
</router-link>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="navTool">
|
||||||
|
<div id="fixd-box" style="height: 100%;">
|
||||||
|
<div class="portal-ranking ranking-bg1" style="height: 100%;display: flex;flex-direction: column;"
|
||||||
|
:class="showToolImg ? 'allPadding' : ''">
|
||||||
|
<div :class="showToolImg ? 'toolBgc' : ''">
|
||||||
|
<div style="display: flex;justify-content: space-between;">
|
||||||
|
<p class="ranking-title">工具下载</p>
|
||||||
|
<router-link v-if="courseList.toolList.length >= 6" to="/grateful/toolDown"
|
||||||
|
style="font-size: 14px;">查看更多</router-link>
|
||||||
|
</div>
|
||||||
|
<ul>
|
||||||
|
<li v-for="(item, index) in courseList.toolList" :key="index"
|
||||||
|
style="cursor: pointer;line-height: 22px;" class="title-line-ellipsis liList"
|
||||||
|
@click="downTool(item)">
|
||||||
|
<span class="portal-right-text orange-one" v-if="index == 0">
|
||||||
|
<img :src="`${webBaseUrl}/images/list-01.png`" alt="">
|
||||||
|
</span>
|
||||||
|
<span class="portal-right-text orange-tow" v-if="index == 1">
|
||||||
|
<img :src="`${webBaseUrl}/images/list02.png`" alt="">
|
||||||
|
</span>
|
||||||
|
<span class="portal-right-text orange-three" v-if="index == 2">
|
||||||
|
<img :src="`${webBaseUrl}/images/list03.png`" alt="">
|
||||||
|
</span>
|
||||||
|
<span class="portal-right-text" v-if="index == 3">
|
||||||
|
<img :src="`${webBaseUrl}/images/list04.png`" alt="">
|
||||||
|
</span>
|
||||||
|
<span class="portal-right-text" v-if="index == 4">
|
||||||
|
<img :src="`${webBaseUrl}/images/list05.png`" alt="">
|
||||||
|
</span>
|
||||||
|
<span class="portal-right-text" v-if="index == 5">
|
||||||
|
<img :src="`${webBaseUrl}/images/listblue06.png`" alt="">
|
||||||
|
</span>
|
||||||
|
<span class="portal-title-desc" style="font-size: 14px;">{{ item.name.split('.')[0] }}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 教师赋能 -->
|
||||||
|
<div class="xindex-content">
|
||||||
|
<div class="modules xcontent2">
|
||||||
|
<div class="xcontent2-main">
|
||||||
|
<!--内容块-->
|
||||||
|
<div class="modules-title xindex-main">
|
||||||
|
<span class="modules-text">教师赋能</span>
|
||||||
|
<span class="more">
|
||||||
|
<router-link to="/grateful/teacherEmpowerment">查看更多</router-link>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="modules-list list">
|
||||||
|
<!--内容列表内容-->
|
||||||
|
<div v-for="(course, ccidx) in courseList.list" :key="'cc' + ccidx" class="xindex-course"
|
||||||
|
style="position: relative;margin-right: 0;">
|
||||||
|
<a @click="toCourseDetail(course)">
|
||||||
|
<div class="xindex-course-image">
|
||||||
|
<course-image :course="course"></course-image>
|
||||||
|
<span v-if="course.type == 20 || course.type == 10" class="course-type">录播课</span>
|
||||||
|
<span v-if="course.type == 30" class="course-type">面授课</span>
|
||||||
|
<span v-if="course.type == 40" class="course-type">学习项目</span>
|
||||||
|
</div>
|
||||||
|
<div style="width: 80%" :title="course.name" class="course-title portal-title-tow two-line-ellipsis">
|
||||||
|
{{ course.name }}
|
||||||
|
</div>
|
||||||
|
<div class="course-author">
|
||||||
|
<div class="course-author-left">
|
||||||
|
{{ course.teacher }}
|
||||||
|
<span class="study-num">{{ formatNum(course.studies) }}人学习</span>
|
||||||
|
</div>
|
||||||
|
<div style="display: flex">
|
||||||
|
<div v-if="course.score != '0'">
|
||||||
|
<span class="course-score-value" style="margin-left: 10px">{{ toScore(Number(course.score))
|
||||||
|
}}分</span>
|
||||||
|
</div>
|
||||||
|
<div v-else class="course-score-no">未评分</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="float-tools" @click="() => (gratefulVisible = !gratefulVisible)">
|
||||||
|
<div class="content">
|
||||||
|
<img src="../../assets/images/grateful/suggestion.png" alt="" />
|
||||||
|
<span>给点建议</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 意见 -->
|
||||||
|
<el-dialog :close-on-click-modal="false" width="629px" :visible.sync="gratefulVisible" :append-to-body="true"
|
||||||
|
@closed="closeDlg">
|
||||||
|
<div class="dialogContent">
|
||||||
|
<div class="dialogTop">
|
||||||
|
<div class="words">
|
||||||
|
<div>欢迎留下您的宝贵建议</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-form :model="form">
|
||||||
|
<el-form-item>
|
||||||
|
<el-input type="textarea" placeholder="请输入内容......" v-model="form.textarea" 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;" @click="submitNotice" type="primary">确认</el-button>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import apiCourseStudy from "@/api/modules/courseStudy.js";
|
||||||
|
import courseImage from "@/components/Course/courseImage.vue";
|
||||||
|
import { toScore, formatUserNumber } from "@/utils/tools.js";
|
||||||
|
import { saveOpinion, noticeList, courselList, toolList, carouselList, toolDown } from '@/api/modules/grateful.js'
|
||||||
|
export default {
|
||||||
|
name: "Grateful",
|
||||||
|
components: {
|
||||||
|
courseImage,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
showNoticeImg: false,
|
||||||
|
showToolImg: false,
|
||||||
|
form: {
|
||||||
|
textarea: "",
|
||||||
|
},
|
||||||
|
gratefulVisible: false,
|
||||||
|
formatNum: formatUserNumber,
|
||||||
|
toScore,
|
||||||
|
// 列表
|
||||||
|
courseList: {
|
||||||
|
num: 12,
|
||||||
|
orderType: 2,
|
||||||
|
list: [],
|
||||||
|
noticeList: [],
|
||||||
|
toolList: []
|
||||||
|
},
|
||||||
|
resonimg: [],
|
||||||
|
fileBaseUrl: process.env.VUE_APP_FILE_BASE_URL,
|
||||||
|
swiperOptiontwo: {
|
||||||
|
autoplay: false,
|
||||||
|
// noSwiping: true,
|
||||||
|
},
|
||||||
|
resonimg: [],
|
||||||
|
swiperOption: {
|
||||||
|
autoplay: {
|
||||||
|
delay: 2000,
|
||||||
|
disableOnInteraction: false, //解决滑动后不能轮播的问题
|
||||||
|
},
|
||||||
|
speed: 3000, //切换速度,即slider自动滑动开始到结束的时间(单位ms)
|
||||||
|
loop: true, //循环切换
|
||||||
|
peed: 300, //循环速度
|
||||||
|
scrollbar: ".swiper-scrollbar",
|
||||||
|
pagination: {
|
||||||
|
el: ".swiper-pagination",
|
||||||
|
// type : 'progressbar', //分页器形状
|
||||||
|
clickable: true, //点击分页器的指示点分页器会控制Swiper切换
|
||||||
|
},
|
||||||
|
navigation: {
|
||||||
|
nextEl: ".swiper-button-next",
|
||||||
|
prevEl: ".swiper-button-prev",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.couresreso();
|
||||||
|
this.getCourseData(1);
|
||||||
|
this.getNoticeData()
|
||||||
|
this.getToolData()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
downTool(toolInfo) {
|
||||||
|
console.log(toolInfo);
|
||||||
|
window.open(`/activityApi/xboe/m/boe/tools/url/download?urlStr=${process.env.VUE_APP_BOE_WEB_URL}/upload${toolInfo.filePath}&fileName=${toolInfo.name}`)
|
||||||
|
// toolDown({
|
||||||
|
// urlStr: `${process.env.VUE_APP_BOE_WEB_URL}/upload${toolInfo.filePath}`,
|
||||||
|
// fileName: toolInfo.name
|
||||||
|
// }).then((result) => {
|
||||||
|
// const link = document.createElement('a');// 创建a标签
|
||||||
|
// let blob = new Blob([result.data], { type: '' }); // 设置文件类型
|
||||||
|
// link.style.display = "none";
|
||||||
|
// link.href = URL.createObjectURL(blob); // 创建URL
|
||||||
|
// link.setAttribute("download", `${toolInfo.name}`);
|
||||||
|
// document.body.appendChild(link);
|
||||||
|
// link.click();
|
||||||
|
// URL.revokeObjectURL(link.href);
|
||||||
|
// document.body.removeChild(link);
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
couresreso() {
|
||||||
|
carouselList().then((res) => {
|
||||||
|
console.log(res);
|
||||||
|
const list = res.data.records.map(item => {
|
||||||
|
return {
|
||||||
|
image: item.picPath,
|
||||||
|
name: item.displayPage,
|
||||||
|
JumpUrl: '',
|
||||||
|
bgcolor: '',
|
||||||
|
...item
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.resonimg = list;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
submitNotice() {
|
||||||
|
if (!this.form.textarea) return this.$message({ message: '请输入内容', type: 'error' })
|
||||||
|
saveOpinion({ content: this.form.textarea }).then(() => {
|
||||||
|
this.$message({ message: '提交成功', type: 'success' })
|
||||||
|
this.closeDlg()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getPic(index) {
|
||||||
|
return this.webBaseUrl + "/images/listblue0" + (index + 1) + ".png";
|
||||||
|
},
|
||||||
|
closeDlg() {
|
||||||
|
this.form.textarea = ''
|
||||||
|
this.gratefulVisible = false
|
||||||
|
},
|
||||||
|
toCourseDetail(item) {
|
||||||
|
console.log(item);
|
||||||
|
if (item.type == 10) {
|
||||||
|
//console.log("直接进入学习页面");
|
||||||
|
this.$router.push("/course/studyindex?id=" + item.courseId);
|
||||||
|
} else if (item.type == 20) {
|
||||||
|
apiCourseStudy.hasSignup(item.courseId).then((rs) => {
|
||||||
|
if (rs.status == 200) {
|
||||||
|
this.$router.push("/course/studyindex?id=" + item.courseId);
|
||||||
|
} else {
|
||||||
|
this.$router.push("/course/detail?id=" + item.courseId);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getCourseData(pageIndex) {
|
||||||
|
courselList({
|
||||||
|
pageNo: pageIndex,
|
||||||
|
pageSize: 8
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.code == 200 && res.data.records.length > 0) {
|
||||||
|
console.log(res.data.records, '之前的');
|
||||||
|
// res.data.records.map((item) => {
|
||||||
|
// return {
|
||||||
|
// ...item,
|
||||||
|
// coverImg:item.coverImg
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
this.courseList.list = res.data.records;
|
||||||
|
} else {
|
||||||
|
console.log("加载课程信息失败:" + res.error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getNoticeData() {
|
||||||
|
noticeList({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 6,
|
||||||
|
isTop: ''
|
||||||
|
}).then((res) => {
|
||||||
|
console.log(res, '通知');
|
||||||
|
if (res.data.records.length <= 3) {
|
||||||
|
this.showNoticeImg = true
|
||||||
|
}
|
||||||
|
this.courseList.noticeList = res.data.records || []
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getToolData() {
|
||||||
|
toolList({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 6
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.data.records.length <= 3) {
|
||||||
|
this.showToolImg = true
|
||||||
|
}
|
||||||
|
console.log(result.data.records, '哈哈哈哈');
|
||||||
|
this.courseList.toolList = result.data.records || []
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.allPadding {
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noticeBgc {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
background: url('../../assets/images/grateful/noticeBgc.png') no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
background-position: left bottom;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toolBgc {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
background: url('../../assets/images/grateful/toolBgc.png') no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
background-position: left bottom;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 1366px) {
|
||||||
|
.swiper-pagination {
|
||||||
|
top: 310px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 1680px) and (min-width:1367px) {
|
||||||
|
.swiper-pagination {
|
||||||
|
top: 360px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 1920px) and (min-width: 1681px) {
|
||||||
|
.swiper-pagination {
|
||||||
|
top: 360px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 1921px) {
|
||||||
|
.swiper-pagination {
|
||||||
|
top: 360px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bannbox {
|
||||||
|
width: 100%;
|
||||||
|
height: 420px;
|
||||||
|
text-align: center;
|
||||||
|
filter: blur(5px);
|
||||||
|
z-index: -1;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep.swiper-slide .games .swiper-slide-active {
|
||||||
|
text-align: center !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
position: absolute;
|
||||||
|
height: 420px;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner-img {
|
||||||
|
height: 420px;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
transform: (-50%, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-banner {
|
||||||
|
height: 420px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: url(../../assets/images/grateful/logo.png);
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
left: 40px;
|
||||||
|
z-index: 100
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper-button-prev {
|
||||||
|
height: 38px;
|
||||||
|
padding: 0 16px;
|
||||||
|
background: rgba($color: #000000, $alpha: 0.8) url("../../assets/images/icon/ban-left.png") no-repeat;
|
||||||
|
background-size: 12px 18px;
|
||||||
|
background-position: 16px 10px;
|
||||||
|
bottom: 66px;
|
||||||
|
border-radius: 19px 0 0 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper-button-next {
|
||||||
|
height: 38px;
|
||||||
|
bottom: 66px;
|
||||||
|
top: auto;
|
||||||
|
padding: 0 16px;
|
||||||
|
background: rgba($color: #000000, $alpha: 0.1) url("../../assets/images/icon/ban-right.png") no-repeat;
|
||||||
|
background-size: 12px 18px;
|
||||||
|
background-position: 6px 10px;
|
||||||
|
border-radius: 0 19px 19px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper-pagination-bullets {
|
||||||
|
left: 60px;
|
||||||
|
bottom: 66px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .swiper-pagination {
|
||||||
|
line-height: 25px;
|
||||||
|
height: 32px;
|
||||||
|
border-radius: 19px;
|
||||||
|
width: auto;
|
||||||
|
left: 45%;
|
||||||
|
padding: 0 20px;
|
||||||
|
border-radius: 19px;
|
||||||
|
|
||||||
|
.swiper-pagination-bullet {
|
||||||
|
position: relative;
|
||||||
|
width: 25px;
|
||||||
|
height: 5px;
|
||||||
|
margin-top: 10px;
|
||||||
|
background: #fff;
|
||||||
|
opacity: 1 !important;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper-pagination-bullet::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: -20px;
|
||||||
|
bottom: -20px;
|
||||||
|
left: -2px;
|
||||||
|
right: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper-pagination-bullet-active {
|
||||||
|
height: 5px;
|
||||||
|
opacity: 1 !important;
|
||||||
|
margin-top: 10px;
|
||||||
|
width: 25px;
|
||||||
|
background: #387df7;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-dialog__body {
|
||||||
|
background: linear-gradient(180deg, rgba(56, 125, 247, 0.2) 0%, rgba(166, 168, 255, 0) 100%) no-repeat;
|
||||||
|
background-size: 100% 136px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-dialog__header {
|
||||||
|
background: linear-gradient(180deg, rgba(56, 125, 247, 0.2) 0%, rgba(166, 168, 255, 0) 100%) no-repeat;
|
||||||
|
background-size: 100% 1000px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialogContent {
|
||||||
|
|
||||||
|
.dialogTop {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 40px;
|
||||||
|
|
||||||
|
.words {
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 37px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-line-ellipsis {
|
||||||
|
display: -webkit-box;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 1;
|
||||||
|
box-sizing: border-box;
|
||||||
|
word-break: break-all;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gratefulNav {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1.5fr 1fr 1fr;
|
||||||
|
column-gap: 40px;
|
||||||
|
|
||||||
|
.navImg {
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.textarea {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
::v-deep .el-textarea__inner {
|
||||||
|
min-height: 300px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.float-tools {
|
||||||
|
position: fixed;
|
||||||
|
right: 0;
|
||||||
|
bottom: 40%;
|
||||||
|
z-index: 999;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
.content {
|
||||||
|
width: 152px;
|
||||||
|
height: 55px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
background: linear-gradient(86deg, #00c8ff 0%, #167cff 100%);
|
||||||
|
border-radius: 100px 0px 0px 100px;
|
||||||
|
padding: 20px;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
margin-left: 10px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.xindex-course-image:hover {
|
||||||
|
transform: scale(1.2) translateY(-15px);
|
||||||
|
transition: all 0.6s;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.two-line-ellipsis {
|
||||||
|
display: -webkit-box;
|
||||||
|
overflow: hidden;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 内容部分
|
||||||
|
.modules {
|
||||||
|
margin-top: 20px;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.modules-title {
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
.modules-text {
|
||||||
|
height: 28px;
|
||||||
|
font-size: 20px;
|
||||||
|
font-family: PingFangSC-Semibold-, PingFangSC-Semibold;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recommend {
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
height: 26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quyer-tag {
|
||||||
|
margin-left: 15px;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #333333;
|
||||||
|
font-size: 14px;
|
||||||
|
margin: 0 15px;
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.current {
|
||||||
|
width: 44px;
|
||||||
|
height: 26px;
|
||||||
|
background: #387df7;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #fff;
|
||||||
|
line-height: 26px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.more {
|
||||||
|
float: right;
|
||||||
|
margin-top: 7px;
|
||||||
|
color: #333333;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-list {
|
||||||
|
margin-top: 30px;
|
||||||
|
|
||||||
|
.case-card {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
|
||||||
|
.case-info-image-box {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.case-info {
|
||||||
|
width: 385px;
|
||||||
|
|
||||||
|
.case-info-title {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #343434;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
|
||||||
|
.case-info-time {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999999;
|
||||||
|
float: right;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-info-summary {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #666666;
|
||||||
|
height: 82px;
|
||||||
|
line-height: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 160px;
|
||||||
|
height: 105px;
|
||||||
|
position: absolute;
|
||||||
|
top: 5px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-info-box {
|
||||||
|
.case-info {
|
||||||
|
.case-info-title {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #343434;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
|
||||||
|
.case-info-time {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999999;
|
||||||
|
float: right;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-info-summary {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #666666;
|
||||||
|
height: 82px;
|
||||||
|
line-height: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-other-info {
|
||||||
|
height: 40px;
|
||||||
|
margin-top: 10px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-card {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 8px;
|
||||||
|
|
||||||
|
.article-card-left {
|
||||||
|
.article-card-box {
|
||||||
|
.article-info-image-box {
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
.article-info {
|
||||||
|
height: 400px;
|
||||||
|
|
||||||
|
.article-info-title {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #00253e;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-info-summary {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #6e7b84;
|
||||||
|
height: 160px;
|
||||||
|
line-height: 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 470px;
|
||||||
|
height: 330px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-card-right {
|
||||||
|
flex: 1;
|
||||||
|
margin-left: 28px;
|
||||||
|
|
||||||
|
.article-card-box {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding-bottom: 16px;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-info-box {
|
||||||
|
.article-info {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.article-image {
|
||||||
|
width: 140px;
|
||||||
|
height: 105px;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-body {
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.article-info-title {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #343434;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
|
||||||
|
.article-info-time {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999999;
|
||||||
|
float: right;
|
||||||
|
margin-top: 8px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-info-summary {
|
||||||
|
padding-top: 9px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #666666;
|
||||||
|
height: 43px;
|
||||||
|
line-height: 18px;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-card-box:not(:last-child) {
|
||||||
|
border-bottom: 1px solid #ededed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-other-info {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.qa-card {
|
||||||
|
box-sizing: border-box;
|
||||||
|
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.05);
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.qa-top {
|
||||||
|
& span:first-child {
|
||||||
|
height: 24px;
|
||||||
|
background: rgba($color: #387df7, $alpha: 0.05);
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #387df7;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #6e7b84;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.qa-center {
|
||||||
|
position: relative;
|
||||||
|
background: rgba($color: #04243c, $alpha: 0.04);
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
.qa-views {
|
||||||
|
position: absolute;
|
||||||
|
color: #6e7b84;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.qa-char {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
display: grid;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
168
src/views/grateful/GratefulNotice.vue
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="noticeBanner">
|
||||||
|
</div>
|
||||||
|
<div class="xindex-content" style="padding: 0">
|
||||||
|
<div class="modules xcontent2">
|
||||||
|
<div class="xcontent2-main">
|
||||||
|
<div class="navTop">
|
||||||
|
<router-link to="/grateful" class="nav">首页</router-link> > <span style="cursor: pointer;" class="nav">通知列表</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</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 style="padding:20px 70px;" class="bgc">
|
||||||
|
<div style="min-height: 600px;">
|
||||||
|
<!--内容列表内容-->
|
||||||
|
<div v-for="(item, ccidx) in list" :key="'cc' + ccidx" class="toolEvery" @click="noticeDetail(item)">
|
||||||
|
<div class="contnet">{{ item.name }}</div>
|
||||||
|
<div class="case-info-date portal-time">
|
||||||
|
<i class="el-icon-time" style="margin-right: 5px;"></i>
|
||||||
|
<time-show :time="item.createTime"></time-show>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div v-if="total > 0">
|
||||||
|
<pagination style="background-color: rgba(0, 0, 0, 0);" :size="params.pageSize" :total="total"
|
||||||
|
:page="params.pageNo" @change-size="changePageSize" @change-page="changPage" :autoScroll="false">
|
||||||
|
</pagination>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="list.length == 0" class="pagination-div">
|
||||||
|
<span class="notcoures">
|
||||||
|
<img :src="`${webBaseUrl}/images/nocase.png`" alt="">
|
||||||
|
<h5>暂无数据~</h5>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import timeShow from "@/components/Portal/datetimeShow.vue";
|
||||||
|
import { noticeList } from '@/api/modules/grateful.js'
|
||||||
|
export default {
|
||||||
|
data: () => {
|
||||||
|
return {
|
||||||
|
list: [],
|
||||||
|
total: 0,
|
||||||
|
params: {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
components: { timeShow },
|
||||||
|
mounted() {
|
||||||
|
this.getNoticeList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getNoticeList() {
|
||||||
|
noticeList(this.params).then((result) => {
|
||||||
|
console.log(result);
|
||||||
|
const { total, records } = result.data
|
||||||
|
this.total = total
|
||||||
|
this.list = records
|
||||||
|
})
|
||||||
|
},
|
||||||
|
noticeDetail(item) {
|
||||||
|
console.log(item);
|
||||||
|
this.$router.push('/grateful/noticeDetail?id=' + item.id)
|
||||||
|
},
|
||||||
|
getPic(index) {
|
||||||
|
return this.webBaseUrl + "/images/listblue0" + (index + 1) + ".png";
|
||||||
|
},
|
||||||
|
changePageSize(pageSize) {
|
||||||
|
this.params.pageSize = pageSize;
|
||||||
|
this.getNoticeList()
|
||||||
|
},
|
||||||
|
changPage(pageNo) {
|
||||||
|
this.params.pageNo = pageNo
|
||||||
|
this.getNoticeList()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped lang='scss'>
|
||||||
|
.nav:hover{
|
||||||
|
color: #387DF7;
|
||||||
|
}
|
||||||
|
.noticeBanner {
|
||||||
|
width: 100%;
|
||||||
|
height: 240px;
|
||||||
|
position: relative;
|
||||||
|
background: url('../../assets/images/grateful/noticeBanner.png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: url(../../assets/images//grateful/noticeLogo.png);
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
left: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '通知';
|
||||||
|
position: absolute;
|
||||||
|
bottom: 25px;
|
||||||
|
left: 180px;
|
||||||
|
color: #387DF7;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 240px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.navTop {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-list {
|
||||||
|
min-height: 682px;
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 8px;
|
||||||
|
|
||||||
|
.pagination-div {
|
||||||
|
text-align: center;
|
||||||
|
padding: 70px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgc {
|
||||||
|
background: linear-gradient(180deg,
|
||||||
|
rgba(56, 125, 247, 0.2) 0%,
|
||||||
|
rgba(166, 168, 255, 0) 100%) no-repeat;
|
||||||
|
background-size: 100% 166px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toolEvery {
|
||||||
|
height: 56px;
|
||||||
|
line-height: 56px;
|
||||||
|
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>
|
||||||
150
src/views/grateful/NoticeDetail.vue
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="portal-header"></div>
|
||||||
|
<div class="xindex-content" style="padding: 0">
|
||||||
|
<div class="modules xcontent2">
|
||||||
|
<div class="xcontent2-main">
|
||||||
|
<div class="navTop">
|
||||||
|
<div>
|
||||||
|
<router-link to="/grateful" class="nav">首页</router-link> > <router-link
|
||||||
|
to="/grateful/gratefulNotice" class="nav">通知列表</router-link> > <span style="cursor: pointer;"
|
||||||
|
class="nav">通知详情</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</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">{{ name }}</div>
|
||||||
|
<!--内容列表内容-->
|
||||||
|
<div class="timeAndAuthor">
|
||||||
|
<div class="author">发布人:{{ createName }}</div>
|
||||||
|
<div class="case-info-date portal-time">
|
||||||
|
<i class="el-icon-time" style="margin-right: 5px;"></i>
|
||||||
|
<time-show :time="createTime"></time-show>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="topTitle">通知内容</div>
|
||||||
|
<!-- <div class="noticeContent" style="white-space: pre;">{{ content }}</div> -->
|
||||||
|
<div class="noticeContent" v-html="content"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import timeShow from "@/components/Portal/datetimeShow.vue";
|
||||||
|
import { noticeDataById } from '@/api/modules/grateful';
|
||||||
|
export default {
|
||||||
|
data: () => {
|
||||||
|
return {
|
||||||
|
content: '',
|
||||||
|
createName: '',
|
||||||
|
createTime: '',
|
||||||
|
name: ''
|
||||||
|
};
|
||||||
|
},
|
||||||
|
components: { timeShow },
|
||||||
|
mounted() {
|
||||||
|
noticeDataById(this.$route.query.id).then((result) => {
|
||||||
|
console.log(result);
|
||||||
|
const { content, createName, createTime, name } = result.data
|
||||||
|
this.content = content
|
||||||
|
this.createTime = createTime
|
||||||
|
this.createName = createName
|
||||||
|
this.name = name
|
||||||
|
})
|
||||||
|
},
|
||||||
|
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'>
|
||||||
|
.nav:hover {
|
||||||
|
color: #387DF7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.portal-header {
|
||||||
|
position: relative;
|
||||||
|
height: 72px;
|
||||||
|
background: #0078FC;
|
||||||
|
border: 1px solid rgba(61, 61, 61, 0.15);
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: url(../../assets/images//grateful/logo.png);
|
||||||
|
position: absolute;
|
||||||
|
left: 40px;
|
||||||
|
top: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.navTop {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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%) no-repeat;
|
||||||
|
background-size: 100% 166px;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 40px 70px;
|
||||||
|
|
||||||
|
.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>
|
||||||
501
src/views/grateful/TeacherEmpowerment.vue
Normal file
@@ -0,0 +1,501 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="empBanner">
|
||||||
|
</div>
|
||||||
|
<div class="xindex-content" style="padding: 0">
|
||||||
|
<div class="modules xcontent2">
|
||||||
|
<div class="xcontent2-main">
|
||||||
|
<div class="navTop">
|
||||||
|
<div>
|
||||||
|
<router-link to="/grateful" class="nav">首页</router-link> >
|
||||||
|
<span style="cursor: pointer;" class="nav">教师赋能</span>
|
||||||
|
</div>
|
||||||
|
<div style="position: relative;">
|
||||||
|
<el-input class="portal-input" placeholder="请输入课程名称" style="border-radius: 20px !important; "
|
||||||
|
@keyup.enter.native="searchJump()" clearable maxlength="50" v-model="param.name">
|
||||||
|
</el-input>
|
||||||
|
<el-button class="sear-but" @click="searchJump()" type="primary" size="mini">搜索</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 教师赋能 -->
|
||||||
|
<div class="xindex-content" style="padding: 0">
|
||||||
|
<div class="modules xcontent2">
|
||||||
|
<div class="xcontent2-main">
|
||||||
|
<div class="modules-list list" style="margin-top: 0">
|
||||||
|
<!--内容列表内容-->
|
||||||
|
<div v-for="(course, ccidx) in list" :key="'cc' + ccidx" class="xindex-course" style="position: relative">
|
||||||
|
<a @click="toCourseDetail(course)">
|
||||||
|
<div class="xindex-course-image">
|
||||||
|
<course-image :course="course"></course-image>
|
||||||
|
<span v-if="course.type == 20 || course.type == 10" class="course-type">录播课</span>
|
||||||
|
<span v-if="course.type == 30" class="course-type">面授课</span>
|
||||||
|
<span v-if="course.type == 40" class="course-type">学习项目</span>
|
||||||
|
</div>
|
||||||
|
<div style="width: 80%" :title="course.name" v-html="course.name"
|
||||||
|
class="course-title portal-title-tow two-line-ellipsis"></div>
|
||||||
|
<div class="course-author">
|
||||||
|
<div class="course-author-left">
|
||||||
|
{{ course.teacher }}
|
||||||
|
<span class="study-num">{{ formatNum(course.studies) }}人学习</span>
|
||||||
|
</div>
|
||||||
|
<div style="display: flex">
|
||||||
|
<div v-if="course.score != '0'">
|
||||||
|
<span class="course-score-value" style="margin-left: 10px">{{ toScore(Number(course.score))
|
||||||
|
}}分</span>
|
||||||
|
</div>
|
||||||
|
<div v-else class="course-score-no">未评分</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="list.length == 0" class="pagination-div">
|
||||||
|
<span class="notcoures">
|
||||||
|
<img :src="`${webBaseUrl}/images/nocase.png`" alt="">
|
||||||
|
<h5>暂无数据~</h5>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="list.length !== 0" style="margin-bottom: 45px;">
|
||||||
|
<pagination :size="param.pageSize" :total="total" :page="param.pageNo" @change-size="changePageSize"
|
||||||
|
@change-page="loadData" style="background-color: rgba(0, 0, 0, 0);" :autoScroll="false"
|
||||||
|
:pageSizes="[12, 24, 36, 48]"></pagination>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import apiCourseStudy from "@/api/modules/courseStudy.js";
|
||||||
|
import courseImage from "@/components/Course/courseImage.vue";
|
||||||
|
import { toScore, formatUserNumber } from "@/utils/tools.js";
|
||||||
|
import { courselList } from '@/api/modules/grateful.js'
|
||||||
|
export default {
|
||||||
|
name: "TeacherEmpowerment",
|
||||||
|
components: {
|
||||||
|
courseImage,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
formatNum: formatUserNumber,
|
||||||
|
toScore,
|
||||||
|
list: [],
|
||||||
|
total: 0,
|
||||||
|
param: {
|
||||||
|
name: '',
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 12
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getCourseData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
searchJump() {
|
||||||
|
this.param.pageNo = 1
|
||||||
|
this.getCourseData();
|
||||||
|
},
|
||||||
|
changePageSize(pageSize) {
|
||||||
|
this.param.pageSize = pageSize;
|
||||||
|
this.getCourseData()
|
||||||
|
},
|
||||||
|
loadData(pageNo) {
|
||||||
|
this.param.pageNo = pageNo
|
||||||
|
this.getCourseData()
|
||||||
|
},
|
||||||
|
getPic(index) {
|
||||||
|
return this.webBaseUrl + "/images/listblue0" + (index + 1) + ".png";
|
||||||
|
},
|
||||||
|
toCourseDetail(item) {
|
||||||
|
//二期调整,直接改成一个地址
|
||||||
|
//return this.webBaseUrl + '/course/detail?id=' + item.id;
|
||||||
|
let $this = this;
|
||||||
|
if (item.type == 10) {
|
||||||
|
//return this.webBaseUrl + "/course/studyindex?id=" + item.id;
|
||||||
|
//console.log("直接进入学习页面");
|
||||||
|
this.$router.push("/course/studyindex?id=" + item.courseId);
|
||||||
|
} else if (item.type == 20) {
|
||||||
|
apiCourseStudy.hasSignup(item.courseId).then((rs) => {
|
||||||
|
if (rs.status == 200) {
|
||||||
|
//return $this.webBaseUrl + "/course/studyindex?id=" + item.id;
|
||||||
|
this.$router.push("/course/studyindex?id=" + item.courseId);
|
||||||
|
} else {
|
||||||
|
//return $this.webBaseUrl + "/course/detail?id=" + item.id;
|
||||||
|
this.$router.push("/course/detail?id=" + item.courseId);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//return $this.webBaseUrl + "/course/detail?id=" + item.id;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//高亮
|
||||||
|
brightenKeyword(val, keyword) {
|
||||||
|
const Reg = new RegExp(keyword, 'i');
|
||||||
|
let res = '';
|
||||||
|
if (val) {
|
||||||
|
res = val.replace(Reg, `<span style="color: #3e7fff;">${keyword}</span>`);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getCourseData() {
|
||||||
|
courselList(this.param).then((res) => {
|
||||||
|
if (res.code == 200 && res.data.records.length > 0) {
|
||||||
|
console.log(res.data, '之前的');
|
||||||
|
res.data.records.forEach(item => {
|
||||||
|
item.name = this.brightenKeyword(item.name, this.param.name);
|
||||||
|
});
|
||||||
|
this.list = res.data.records;
|
||||||
|
this.total = res.data.total
|
||||||
|
} else {
|
||||||
|
console.log("加载课程信息失败:" + res.error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.nav:hover {
|
||||||
|
color: #387DF7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empBanner {
|
||||||
|
width: 100%;
|
||||||
|
height: 240px;
|
||||||
|
position: relative;
|
||||||
|
background: url('../../assets/images/grateful/empBanner.png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: url(../../assets/images//grateful/logo.png);
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
left: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '教师赋能';
|
||||||
|
position: absolute;
|
||||||
|
bottom: 25px;
|
||||||
|
left: 180px;
|
||||||
|
color: #ffffff;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 240px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.navTop {
|
||||||
|
color: #666;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.sear-but {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 10%;
|
||||||
|
right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.xindex-course-image:hover {
|
||||||
|
transform: scale(1.2) translateY(-15px);
|
||||||
|
transition: all 0.6s;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.two-line-ellipsis {
|
||||||
|
display: -webkit-box;
|
||||||
|
overflow: hidden;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 内容部分
|
||||||
|
.modules {
|
||||||
|
margin-top: 20px;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.modules-title {
|
||||||
|
.modules-text {
|
||||||
|
height: 28px;
|
||||||
|
font-size: 20px;
|
||||||
|
font-family: PingFangSC-Semibold-, PingFangSC-Semibold;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recommend {
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
height: 26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quyer-tag {
|
||||||
|
margin-left: 15px;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #333333;
|
||||||
|
font-size: 14px;
|
||||||
|
margin: 0 15px;
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.current {
|
||||||
|
width: 44px;
|
||||||
|
height: 26px;
|
||||||
|
background: #387df7;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #fff;
|
||||||
|
line-height: 26px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.more {
|
||||||
|
float: right;
|
||||||
|
margin-top: 7px;
|
||||||
|
margin-right: 30px;
|
||||||
|
color: #333333;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination-div {
|
||||||
|
text-align: center;
|
||||||
|
padding: 70px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-list {
|
||||||
|
margin-top: 30px;
|
||||||
|
|
||||||
|
.case-card {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
|
||||||
|
.case-info-image-box {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.case-info {
|
||||||
|
width: 385px;
|
||||||
|
|
||||||
|
.case-info-title {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #343434;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
|
||||||
|
.case-info-time {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999999;
|
||||||
|
float: right;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-info-summary {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #666666;
|
||||||
|
height: 82px;
|
||||||
|
line-height: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 160px;
|
||||||
|
height: 105px;
|
||||||
|
position: absolute;
|
||||||
|
top: 5px;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-info-box {
|
||||||
|
.case-info {
|
||||||
|
.case-info-title {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #343434;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
|
||||||
|
.case-info-time {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999999;
|
||||||
|
float: right;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-info-summary {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #666666;
|
||||||
|
height: 82px;
|
||||||
|
line-height: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-other-info {
|
||||||
|
height: 40px;
|
||||||
|
margin-top: 10px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-card {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 8px;
|
||||||
|
|
||||||
|
.article-card-left {
|
||||||
|
.article-card-box {
|
||||||
|
.article-info-image-box {
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
.article-info {
|
||||||
|
height: 400px;
|
||||||
|
|
||||||
|
.article-info-title {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #00253e;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-info-summary {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #6e7b84;
|
||||||
|
height: 160px;
|
||||||
|
line-height: 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 470px;
|
||||||
|
height: 330px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-card-right {
|
||||||
|
flex: 1;
|
||||||
|
margin-left: 28px;
|
||||||
|
|
||||||
|
.article-card-box {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding-bottom: 16px;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-info-box {
|
||||||
|
.article-info {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.article-image {
|
||||||
|
width: 140px;
|
||||||
|
height: 105px;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-body {
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.article-info-title {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #343434;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
|
||||||
|
.article-info-time {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #999999;
|
||||||
|
float: right;
|
||||||
|
margin-top: 8px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-info-summary {
|
||||||
|
padding-top: 9px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #666666;
|
||||||
|
height: 43px;
|
||||||
|
line-height: 18px;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-card-box:not(:last-child) {
|
||||||
|
border-bottom: 1px solid #ededed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-other-info {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.qa-card {
|
||||||
|
box-sizing: border-box;
|
||||||
|
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.05);
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.qa-top {
|
||||||
|
& span:first-child {
|
||||||
|
height: 24px;
|
||||||
|
background: rgba($color: #387df7, $alpha: 0.05);
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #387df7;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #6e7b84;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.qa-center {
|
||||||
|
position: relative;
|
||||||
|
background: rgba($color: #04243c, $alpha: 0.04);
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
.qa-views {
|
||||||
|
position: absolute;
|
||||||
|
color: #6e7b84;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.qa-char {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
display: grid;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
180
src/views/grateful/TeacherOpinion.vue
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="opinionBanner">
|
||||||
|
</div>
|
||||||
|
<div class="xindex-content" style="padding: 0">
|
||||||
|
<div class="modules xcontent2">
|
||||||
|
<div class="xcontent2-main">
|
||||||
|
<div class="navTop">
|
||||||
|
<div>
|
||||||
|
<router-link to="/grateful" class="nav">首页</router-link> >
|
||||||
|
<span style="cursor: pointer;" class="nav">认证讲师库(2023)</span>
|
||||||
|
</div>
|
||||||
|
<div style="position: relative;">
|
||||||
|
<el-input class="portal-input" placeholder="请输入课程名称" style="border-radius: 20px !important; "
|
||||||
|
@keyup.enter.native="searchJump()" clearable maxlength="50" v-model="params.courseName">
|
||||||
|
</el-input>
|
||||||
|
<el-button class="sear-but" @click="searchJump()" type="primary" size="mini">搜索</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 教师赋能 -->
|
||||||
|
<div class="xindex-content" style="padding: 0">
|
||||||
|
<div class="modules xcontent2">
|
||||||
|
<div class="xcontent2-main" style="width: 100%;">
|
||||||
|
<div class="modules-list" style="margin-top: 0;">
|
||||||
|
<div class="content">
|
||||||
|
<div style="min-height: 485px;width: 100%;">
|
||||||
|
<el-table style="width: 100%;" :data="list" stripe border>
|
||||||
|
<el-table-column label="课程名称" prop="courseName" align="center" show-overflow-tooltip></el-table-column>
|
||||||
|
<el-table-column label="课程价值" prop="meaning" align="center" show-overflow-tooltip></el-table-column>
|
||||||
|
<el-table-column label="教师名称" prop="teacherName" align="center" min-width="50"></el-table-column>
|
||||||
|
<el-table-column label="教师工号" prop="teacherNo" align="center" min-width="50" fixed="right"></el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div v-if="list.length > 0" style="text-align: center;margin-top: 50px;">
|
||||||
|
<pagination style="background-color: rgba(0, 0, 0, 0);" :size="params.pageSize" :total="total"
|
||||||
|
:page="params.pageNo" @change-size="changePageSize" @change-page="loadData" :autoScroll="false">
|
||||||
|
</pagination>
|
||||||
|
</div>
|
||||||
|
<div v-if="list.length == 0" class="pagination-div">
|
||||||
|
<span class="notcoures">
|
||||||
|
<img :src="`${webBaseUrl}/images/nocase.png`" alt="">
|
||||||
|
<h5>暂无数据~</h5>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import timeShow from "@/components/Portal/datetimeShow.vue";
|
||||||
|
import { teachersList } from "../../api/modules/grateful";
|
||||||
|
export default {
|
||||||
|
data: () => {
|
||||||
|
return {
|
||||||
|
total: 0,
|
||||||
|
list: [],
|
||||||
|
params: {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
courseName: '',
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
components: { timeShow },
|
||||||
|
mounted() {
|
||||||
|
this.getTeachersList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getTeachersList() {
|
||||||
|
teachersList(this.params).then((result) => {
|
||||||
|
console.log(result);
|
||||||
|
const { total, records } = result.data
|
||||||
|
this.total = total;
|
||||||
|
this.list = records;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
searchJump() {
|
||||||
|
this.params.pageNo = 1
|
||||||
|
this.getTeachersList()
|
||||||
|
},
|
||||||
|
loadData(pageNo) {
|
||||||
|
this.params.pageNo = pageNo
|
||||||
|
this.getTeachersList()
|
||||||
|
},
|
||||||
|
getPic(index) {
|
||||||
|
return this.webBaseUrl + "/images/listblue0" + (index + 1) + ".png";
|
||||||
|
},
|
||||||
|
changePageSize(pageSize) {
|
||||||
|
this.params.pageSize = pageSize;
|
||||||
|
this.getTeachersList()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped lang='scss'>
|
||||||
|
.nav:hover {
|
||||||
|
color: #387DF7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.opinionBanner {
|
||||||
|
width: 100%;
|
||||||
|
height: 240px;
|
||||||
|
position: relative;
|
||||||
|
background: url('../../assets/images/grateful/opinionBanner.png');
|
||||||
|
// background-size: 100% 100%;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: url(../../assets/images//grateful/logo.png);
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
left: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '认证讲师库(2023)';
|
||||||
|
position: absolute;
|
||||||
|
bottom: 25px;
|
||||||
|
left: 180px;
|
||||||
|
color: #ffffff;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 240px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.navTop {
|
||||||
|
color: #666;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.sear-but {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 10%;
|
||||||
|
right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-list {
|
||||||
|
min-height: 667px;
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 8px;
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 40px 70px;
|
||||||
|
background: linear-gradient(180deg,
|
||||||
|
rgba(56, 125, 247, 0.2) 0%,
|
||||||
|
rgba(166, 168, 255, 0) 100%) no-repeat;
|
||||||
|
background-size: 100% 166px;
|
||||||
|
border-radius: 8px;
|
||||||
|
|
||||||
|
.pagination-div {
|
||||||
|
text-align: center;
|
||||||
|
padding: 70px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination-div {
|
||||||
|
text-align: center;
|
||||||
|
padding: 70px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.sear-but {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 10%;
|
||||||
|
right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
194
src/views/grateful/ToolDown.vue
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="toolBanner">
|
||||||
|
<div class="portal-header"></div>
|
||||||
|
</div>
|
||||||
|
<div class="xindex-content" style="padding: 0">
|
||||||
|
<div class="modules xcontent2">
|
||||||
|
<div class="xcontent2-main">
|
||||||
|
<div class="navTop">
|
||||||
|
<div>
|
||||||
|
<router-link to="/grateful" class="nav">首页</router-link> >
|
||||||
|
<span style="cursor: pointer;" class="nav">下载工具</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</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 v-if="total > 0" style="padding: 20px 70px;border-radius: 8px 8px 0 0;min-height: 600px;" class="bgc">
|
||||||
|
<!--内容列表内容-->
|
||||||
|
<div v-for="(tool, index) in list" :key="'cc' + index" class="toolEvery">
|
||||||
|
<div class="contnet">
|
||||||
|
{{ tool.name.split('.')[0] }}
|
||||||
|
</div>
|
||||||
|
<div class="btn">
|
||||||
|
<el-button @click="downLoad(tool)">立即下载</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<pagination :size="params.pageSize" :total="total" :page="params.pageIndex" @change-size="changePageSize"
|
||||||
|
@change-page="loadData" :autoScroll="false">
|
||||||
|
</pagination>
|
||||||
|
</div>
|
||||||
|
<div v-if="list.length == 0" class="pagination-div">
|
||||||
|
<span class="notcoures">
|
||||||
|
<img :src="`${webBaseUrl}/images/nocase.png`" alt="">
|
||||||
|
<h5>暂无工具~</h5>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { toolList, toolDown } from '../../api/modules/grateful';
|
||||||
|
export default {
|
||||||
|
data: () => {
|
||||||
|
return {
|
||||||
|
list: [],
|
||||||
|
total: 0,
|
||||||
|
params: {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getToolList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getToolList() {
|
||||||
|
const result = await toolList(this.params)
|
||||||
|
if (result.code === 200) {
|
||||||
|
const { total, records } = result.data
|
||||||
|
this.list = records
|
||||||
|
this.total = total
|
||||||
|
}
|
||||||
|
},
|
||||||
|
downLoad(toolInfo) {
|
||||||
|
console.log(toolInfo);
|
||||||
|
window.open(`/activityApi/xboe/m/boe/tools/url/download?urlStr=${process.env.VUE_APP_BOE_WEB_URL}/upload${toolInfo.filePath}&fileName=${toolInfo.name}`)
|
||||||
|
// toolDown({
|
||||||
|
// urlStr: `${process.env.VUE_APP_BOE_WEB_URL}/upload${toolInfo.filePath}`,
|
||||||
|
// fileName: toolInfo.name
|
||||||
|
// }).then((result) => {
|
||||||
|
// const link = document.createElement('a');// 创建a标签
|
||||||
|
// let blob = new Blob([result.data], { type: '' }); // 设置文件类型
|
||||||
|
// link.style.display = "none";
|
||||||
|
// link.href = URL.createObjectURL(blob); // 创建URL
|
||||||
|
// link.setAttribute("download", `${toolInfo.name}`);
|
||||||
|
// document.body.appendChild(link);
|
||||||
|
// link.click();
|
||||||
|
// URL.revokeObjectURL(link.href);
|
||||||
|
// document.body.removeChild(link);
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
getPic(index) {
|
||||||
|
return this.webBaseUrl + "/images/listblue0" + (index + 1) + ".png";
|
||||||
|
},
|
||||||
|
changePageSize(pageSize) {
|
||||||
|
this.params.pageSize = pageSize;
|
||||||
|
this.getToolList()
|
||||||
|
},
|
||||||
|
loadData(pageNo) {
|
||||||
|
this.params.pageNo = pageNo;
|
||||||
|
this.getToolList()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped lang='scss'>
|
||||||
|
.nav:hover {
|
||||||
|
color: #387DF7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toolBanner {
|
||||||
|
width: 100%;
|
||||||
|
height: 240px;
|
||||||
|
position: relative;
|
||||||
|
background: url('../../assets/images/grateful/toolBanner.png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '下载工具';
|
||||||
|
position: absolute;
|
||||||
|
bottom: 25px;
|
||||||
|
left: 180px;
|
||||||
|
color: #ffffff;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.portal-header {
|
||||||
|
position: relative;
|
||||||
|
height: 72px;
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border: 1px solid rgba(61, 61, 61, 0.15);
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: url(../../assets/images//grateful/logo.png);
|
||||||
|
position: absolute;
|
||||||
|
left: 40px;
|
||||||
|
top: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.navTop {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgc {
|
||||||
|
background: linear-gradient(180deg,
|
||||||
|
rgba(56, 125, 247, 0.2) 0%,
|
||||||
|
rgba(166, 168, 255, 0) 100%) no-repeat;
|
||||||
|
background-size: 100% 166px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-list {
|
||||||
|
min-height: 682px;
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 8px;
|
||||||
|
|
||||||
|
.pagination-div {
|
||||||
|
text-align: center;
|
||||||
|
padding: 70px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.toolEvery {
|
||||||
|
height: 56px;
|
||||||
|
line-height: 56px;
|
||||||
|
font-size: 18px;
|
||||||
|
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>
|
||||||
72
src/views/grateful/index.vue
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<template>
|
||||||
|
<div class="main">
|
||||||
|
<!-- <div class="mianRouter"> -->
|
||||||
|
<router-view></router-view>
|
||||||
|
<!-- </div> -->
|
||||||
|
<!-- 底部 -->
|
||||||
|
<div class="grateful">
|
||||||
|
<img src="../../assets/images/grateful/gratefulFooter.png" alt="" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "Grateful",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.main {
|
||||||
|
background-color: #f2F5F7;
|
||||||
|
// height: 100%;
|
||||||
|
// display: flex;
|
||||||
|
// flex-direction: column;
|
||||||
|
|
||||||
|
// .mianRouter {
|
||||||
|
// flex: 1;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
.grateful {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
height: 240px;
|
||||||
|
background: url('../../../public/images/courseBg.png') no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
|
||||||
|
.portal-header {
|
||||||
|
height: 72px;
|
||||||
|
display: flex;
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border: 1px solid rgba(61, 61, 61, 0.15);
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
|
||||||
|
.portal-top {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0px 40px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.portal-top-left {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -231,10 +231,8 @@ export default {
|
|||||||
this.allRequests()
|
this.allRequests()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
beforeRouteEnter(to, from, next) {
|
beforeRouteEnter(to, from, next) {
|
||||||
console.log(from, '哈哈哈');
|
|
||||||
console.log(to, '嘿嘿');
|
|
||||||
let time = new Date().getTime()
|
let time = new Date().getTime()
|
||||||
sessionStorage.setItem('startTime', time)
|
sessionStorage.setItem('startTime', time)
|
||||||
next()
|
next()
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="couser-list-content" class="couser-list-content">
|
<div id="couser-list-content" class="couser-list-content">
|
||||||
<div class="course-banner">
|
<div class="course-banner">
|
||||||
<portal-header current="course" textColor="#fff" :keywords="keyword" @emitInput="emitInput" @showClass="showClass"></portal-header>
|
<portal-header current="course" textColor="#fff" :keywords="keyword" @emitInput="emitInput"
|
||||||
|
@showClass="showClass"></portal-header>
|
||||||
</div>
|
</div>
|
||||||
<div style="padding-top:30px">
|
<div style="padding-top:30px">
|
||||||
<div class="xcontent2">
|
<div class="xcontent2">
|
||||||
@@ -394,7 +395,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<!-- 线上品牌系列课程 -->
|
<!-- 线上品牌系列课程 -->
|
||||||
<template v-if="newData">
|
<template v-if="newData">
|
||||||
<div class="xcourse-card" style="margin-bottom: 0;margin-top: 36px;" v-for="(cinfo, cidx) in courseList" :key="cinfo.id">
|
<div class="xcourse-card" v-for="cinfo in courseList" :key="cinfo.id" style="margin-bottom: 0;margin-top: 36px;">
|
||||||
<div class="course-card" style="padding: 10px;">
|
<div class="course-card" style="padding: 10px;">
|
||||||
<a @click="() => $message.success('如需了解详情,请联系BOEU')">
|
<a @click="() => $message.success('如需了解详情,请联系BOEU')">
|
||||||
<div class="course-img-box">
|
<div class="course-img-box">
|
||||||
@@ -615,7 +616,7 @@ export default {
|
|||||||
oneList: [], //一级分类{type:11}
|
oneList: [], //一级分类{type:11}
|
||||||
twoList: [], //二级分类{type:12}
|
twoList: [], //二级分类{type:12}
|
||||||
threeList: [],//三级分类{type:13}
|
threeList: [],//三级分类{type:13}
|
||||||
searching:false,//是否正在搜索中
|
searching: false,//是否正在搜索中
|
||||||
|
|
||||||
resonimg: {},
|
resonimg: {},
|
||||||
formatDate,
|
formatDate,
|
||||||
@@ -631,7 +632,7 @@ export default {
|
|||||||
// 查询信息
|
// 查询信息
|
||||||
course: {
|
course: {
|
||||||
orderField: "studys",
|
orderField: "studys",
|
||||||
companyId:'',
|
companyId: '',
|
||||||
keyword: '',//关键词
|
keyword: '',//关键词
|
||||||
topOrder: true,
|
topOrder: true,
|
||||||
orderAsc: false,
|
orderAsc: false,
|
||||||
@@ -666,12 +667,12 @@ export default {
|
|||||||
created() {
|
created() {
|
||||||
let localKey = "user_" + this.userInfo.sysId + "_gids";
|
let localKey = "user_" + this.userInfo.sysId + "_gids";
|
||||||
apiUserbasic.getInAudienceIds().then(rs => {
|
apiUserbasic.getInAudienceIds().then(rs => {
|
||||||
if (rs.status == 200) {
|
if (rs.status == 200) {
|
||||||
this.audiences = rs.result;
|
this.audiences = rs.result;
|
||||||
sessionStorage.setItem(localKey, this.audiences);
|
sessionStorage.setItem(localKey, this.audiences);
|
||||||
} else {
|
} else {
|
||||||
console.log(rs.message);
|
console.log(rs.message);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -799,37 +800,37 @@ export default {
|
|||||||
let hasData = sessionStorage.getItem(this.localSessionKey);
|
let hasData = sessionStorage.getItem(this.localSessionKey);
|
||||||
let $this = this;
|
let $this = this;
|
||||||
if (hasData) {
|
if (hasData) {
|
||||||
let typeCodeList=JSON.parse(hasData);
|
let typeCodeList = JSON.parse(hasData);
|
||||||
typeCodeList.forEach(item=>{
|
typeCodeList.forEach(item => {
|
||||||
if(item.type==0){
|
if (item.type == 0) {
|
||||||
this.keyword=item.name;
|
this.keyword = item.name;
|
||||||
}else if(item.type==1){
|
} else if (item.type == 1) {
|
||||||
if(item.id==20){
|
if (item.id == 20) {
|
||||||
$this.ctypeList[0].checked=true;
|
$this.ctypeList[0].checked = true;
|
||||||
}else if(item.id==30){
|
} else if (item.id == 30) {
|
||||||
$this.ctypeList[1].checked=true;
|
$this.ctypeList[1].checked = true;
|
||||||
}else if(item.id==40){
|
} else if (item.id == 40) {
|
||||||
$this.ctypeList[2].checked=true;
|
$this.ctypeList[2].checked = true;
|
||||||
|
}
|
||||||
|
} else { //三级分类的处理,如果一个分类选中多个,显示哪个,显示第一个,是否可以
|
||||||
|
this.oneList.forEach(one => {
|
||||||
|
if (one.id == item.id && item.type == '11') {
|
||||||
|
this.navTitle = [{ ...one }]
|
||||||
|
one.checked = true
|
||||||
}
|
}
|
||||||
}else{ //三级分类的处理,如果一个分类选中多个,显示哪个,显示第一个,是否可以
|
one.children.forEach(two => {
|
||||||
this.oneList.forEach(one => {
|
if (two.id == item.id && item.type == '12') {
|
||||||
if(one.id == item.id && item.type == '11'){
|
this.navTitle = [{ ...one }, { ...two }]
|
||||||
this.navTitle = [{ ...one }]
|
two.checked = true
|
||||||
one.checked = true
|
|
||||||
}
|
}
|
||||||
one.children.forEach(two => {
|
two.children.forEach(three => {
|
||||||
if(two.id == item.id && item.type == '12'){
|
if (three.id == item.id && item.type == '13') {
|
||||||
this.navTitle = [{ ...one }, { ...two }]
|
this.navTitle = [{ ...one }, { ...two }, { ...three }]
|
||||||
two.checked = true
|
three.checked = true
|
||||||
}
|
}
|
||||||
two.children.forEach(three => {
|
|
||||||
if(three.id == item.id && item.type == '13'){
|
|
||||||
this.navTitle = [{ ...one }, { ...two }, { ...three }]
|
|
||||||
three.checked = true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -1010,16 +1011,16 @@ export default {
|
|||||||
// });
|
// });
|
||||||
// }
|
// }
|
||||||
// })
|
// })
|
||||||
this.oneList.forEach(one=>{
|
this.oneList.forEach(one => {
|
||||||
if(one.checked){
|
if (one.checked) {
|
||||||
one.children.forEach(two=>{
|
one.children.forEach(two => {
|
||||||
$this.twoList.push(two);
|
$this.twoList.push(two);
|
||||||
if(two.checked){
|
if (two.checked) {
|
||||||
two.children.forEach(three=>{
|
two.children.forEach(three => {
|
||||||
$this.threeList.push(three);
|
$this.threeList.push(three);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -1318,11 +1319,11 @@ export default {
|
|||||||
// 查询
|
// 查询
|
||||||
async search() {
|
async search() {
|
||||||
//
|
//
|
||||||
if(this.searching){
|
if (this.searching) {
|
||||||
this.$message.warning("正在搜索中,请待搜索完成后再重新搜索");
|
this.$message.warning("正在搜索中,请待搜索完成后再重新搜索");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.searching=true;
|
this.searching = true;
|
||||||
//测试时间格式化
|
//测试时间格式化
|
||||||
// let s=1650973801;
|
// let s=1650973801;
|
||||||
// var d = new Date(1650973801*1000);
|
// var d = new Date(1650973801*1000);
|
||||||
@@ -1370,11 +1371,11 @@ export default {
|
|||||||
let isTopList = [];
|
let isTopList = [];
|
||||||
// 隐藏loadMore
|
// 隐藏loadMore
|
||||||
this.moreState = 2;
|
this.moreState = 2;
|
||||||
await apiCoursePortal.courseSearch(this.course).then(res => {
|
await apiCoursePortal.courseSearch(this.course).then(res => {
|
||||||
this.searching=false;
|
this.searching = false;
|
||||||
if (res.status == 200) {
|
if (res.status == 200) {
|
||||||
this.totalPages = res.result.totalPages;
|
this.totalPages = res.result.totalPages;
|
||||||
res.result.list.forEach(item => {
|
res.result.list.forEach(item => {
|
||||||
if (item.startTime != '') {
|
if (item.startTime != '') {
|
||||||
item.startTime = formatDateByFmt(new Date(item.startTime * 1000), 'yyyy-MM-dd hh:mm')
|
item.startTime = formatDateByFmt(new Date(item.startTime * 1000), 'yyyy-MM-dd hh:mm')
|
||||||
//let time = item.startTime.split('-');
|
//let time = item.startTime.split('-');
|
||||||
@@ -1407,50 +1408,50 @@ export default {
|
|||||||
if (this.newData) {
|
if (this.newData) {
|
||||||
this.courseList = [
|
this.courseList = [
|
||||||
{
|
{
|
||||||
audiences: "",
|
audiences: "",
|
||||||
companyId: "",
|
companyId: "",
|
||||||
coverImg: "",
|
coverImg: "",
|
||||||
createdAt: "",
|
createdAt: "",
|
||||||
device: 3,
|
device: 3,
|
||||||
domainIds: "",
|
domainIds: "",
|
||||||
duration: 7,
|
duration: 7,
|
||||||
endTime: "",
|
endTime: "",
|
||||||
esId: "Z4LAbYkBfn0lSHQ9acXX",
|
esId: "Z4LAbYkBfn0lSHQ9acXX",
|
||||||
id: "1091051270927183872",
|
id: "1091051270927183872",
|
||||||
isSetAudience: 0,
|
isSetAudience: 0,
|
||||||
isTop: 0,
|
isTop: 0,
|
||||||
keywords: "回归,新建,在线,课程",
|
keywords: "回归,新建,在线,课程",
|
||||||
keywordsList: ['回归', '新建', '在线', '课程'],
|
keywordsList: ['回归', '新建', '在线', '课程'],
|
||||||
maxDuration: "",
|
maxDuration: "",
|
||||||
name: "人力资源知识技能晋升(人力资源总监空降现场,为各位答疑解惑",
|
name: "人力资源知识技能晋升(人力资源总监空降现场,为各位答疑解惑",
|
||||||
openCourse: 0,
|
openCourse: 0,
|
||||||
openEnroll: 0,
|
openEnroll: 0,
|
||||||
orderType: "",
|
orderType: "",
|
||||||
publishTime: 1689748779,
|
publishTime: 1689748779,
|
||||||
resOwner: "",
|
resOwner: "",
|
||||||
score: 5,
|
score: 5,
|
||||||
source: 2,
|
source: 2,
|
||||||
startTime: "",
|
startTime: "",
|
||||||
studies: 2,
|
studies: 2,
|
||||||
studiesFormat: "",
|
studiesFormat: "",
|
||||||
summary: "",
|
summary: "",
|
||||||
sysType1: "966458733088919552",
|
sysType1: "966458733088919552",
|
||||||
sysType2: "966459050400600064",
|
sysType2: "966459050400600064",
|
||||||
sysType3: "1060578278816509959",
|
sysType3: "1060578278816509959",
|
||||||
tags: "",
|
tags: "",
|
||||||
teacher: "张学智",
|
teacher: "张学智",
|
||||||
teacherCode: "",
|
teacherCode: "",
|
||||||
title: "BOE",
|
title: "BOE",
|
||||||
topTime: "",
|
topTime: "",
|
||||||
type: 20,
|
type: 20,
|
||||||
types: "",
|
types: "",
|
||||||
remark: '备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备'
|
remark: '备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备'
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
this.count = res?.result?.count
|
this.count = res?.result?.count
|
||||||
if(this.newData) {
|
if (this.newData) {
|
||||||
this.count = 1
|
this.count = 1
|
||||||
}
|
}
|
||||||
this.moreState = 3
|
this.moreState = 3
|
||||||
} else {
|
} else {
|
||||||
@@ -1553,9 +1554,10 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.couser-list-content{
|
.couser-list-content {
|
||||||
min-height: 110%;
|
min-height: 110%;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 标题
|
// 标题
|
||||||
.navTitle {
|
.navTitle {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
@@ -2388,5 +2390,4 @@ export default {
|
|||||||
|
|
||||||
.option-active {
|
.option-active {
|
||||||
color: #387DF7;
|
color: #387DF7;
|
||||||
}
|
}</style>
|
||||||
</style>
|
|
||||||
|
|||||||
@@ -128,12 +128,13 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
'/systemapi': {
|
'/systemapi': {
|
||||||
// 目标代理服务器地址
|
// 目标代理服务器地址
|
||||||
target: 'http://127.0.0.1:9090',
|
// target: 'http://127.0.0.1:9090',
|
||||||
|
target: 'https://u-pre.boe.com',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
logLevel:'debug',
|
logLevel:'debug',
|
||||||
secure: false,
|
secure: false,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'^/systemapi': ''
|
// '^/systemapi': ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'/uboeApi': {
|
'/uboeApi': {
|
||||||
@@ -156,22 +157,24 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
'/statApi': {
|
'/statApi': {
|
||||||
// 目标代理服务器地址
|
// 目标代理服务器地址
|
||||||
target: 'http://127.0.0.1:9080',
|
// target: 'http://127.0.0.1:9080',
|
||||||
|
target: 'https://u-pre.boe.com',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
logLevel:'debug',
|
logLevel:'debug',
|
||||||
secure: false,
|
secure: false,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'^/statApi': ''
|
// '^/statApi': ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'/socialApi': {
|
'/socialApi': {
|
||||||
// 目标代理服务器地址
|
// 目标代理服务器地址
|
||||||
target: 'http://127.0.0.1:9081',
|
// target: 'http://127.0.0.1:9081',
|
||||||
|
target: 'https://u-pre.boe.com',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
logLevel:'debug',
|
logLevel:'debug',
|
||||||
secure: false,
|
secure: false,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'^/socialApi': ''
|
// '^/socialApi': ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'/report': {
|
'/report': {
|
||||||
@@ -183,13 +186,25 @@ module.exports = {
|
|||||||
'^/report': '/report'
|
'^/report': '/report'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
'/infrasApi': {
|
||||||
|
// 目标代理服务器地址
|
||||||
|
target: 'https://u-pre.boe.com',
|
||||||
|
changeOrigin: true,
|
||||||
|
secure: false,
|
||||||
|
},
|
||||||
|
'/activityApi': {
|
||||||
|
// 目标代理服务器地址
|
||||||
|
target: 'https://u-pre.boe.com',
|
||||||
|
changeOrigin: true,
|
||||||
|
secure: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
css: {
|
css: {
|
||||||
extract: {
|
extract: {
|
||||||
ignoreOrder: true
|
ignoreOrder: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||