mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-09 19:06:43 +08:00
Compare commits
15 Commits
master_202
...
250422-dem
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ffbc4ef808 | ||
|
|
5936183912 | ||
|
|
702881c100 | ||
|
|
b0229f6cde | ||
|
|
9c6c1708fc | ||
|
|
b67d7f4311 | ||
|
|
c5e54f0170 | ||
|
|
5c5a71ec55 | ||
|
|
b6a3a32412 | ||
|
|
d6fd44830b | ||
|
|
d01fd6f07b | ||
|
|
0989360183 | ||
|
|
5e31f7d1a8 | ||
|
|
eaa7f04cd6 | ||
|
|
0d7a2ad353 |
@@ -506,6 +506,13 @@ export default {
|
|||||||
updateProgressBySetTime(newCurrentTime) {
|
updateProgressBySetTime(newCurrentTime) {
|
||||||
this.currentProgress = newCurrentTime / this.videoDom.duration;
|
this.currentProgress = newCurrentTime / this.videoDom.duration;
|
||||||
},
|
},
|
||||||
|
/* 点击进度条更新视频播放进度2
|
||||||
|
*/
|
||||||
|
updateProgressByClickBar2(newCurrentTime,progressVideo) {
|
||||||
|
this.currentProgress = progressVideo;
|
||||||
|
this.barrageTimelineStart = newCurrentTime;
|
||||||
|
this.videoDom.currentTime = newCurrentTime;
|
||||||
|
},
|
||||||
/* 提高视频音量
|
/* 提高视频音量
|
||||||
*/
|
*/
|
||||||
increaseVolume() {
|
increaseVolume() {
|
||||||
@@ -619,7 +626,7 @@ export default {
|
|||||||
handleFullscreenChange() {
|
handleFullscreenChange() {
|
||||||
console.log("handleFullscreenChange gx this.isFullScreen()",this.isFullScreen())
|
console.log("handleFullscreenChange gx this.isFullScreen()",this.isFullScreen())
|
||||||
console.log("handleFullscreenChange gx this.isFullscreen",this.isFullscreen)
|
console.log("handleFullscreenChange gx this.isFullscreen",this.isFullscreen)
|
||||||
|
|
||||||
if(this.isFullscreen){
|
if(this.isFullscreen){
|
||||||
this.isFullscreen = !!document.fullscreenElement;
|
this.isFullscreen = !!document.fullscreenElement;
|
||||||
if (!this.isFullscreen) {
|
if (!this.isFullscreen) {
|
||||||
@@ -629,7 +636,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|||||||
@@ -341,6 +341,13 @@ export const constantRoutes = [{
|
|||||||
name: 'hotforum',
|
name: 'hotforum',
|
||||||
meta: {title: '热点论坛', icon: 'dashboard', noCache: true, affix: true},
|
meta: {title: '热点论坛', icon: 'dashboard', noCache: true, affix: true},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/lexiang',
|
||||||
|
hidden: true,
|
||||||
|
component: (resolve) => require(['@/views/sso/lexiang'], resolve),
|
||||||
|
name: 'lexiang',
|
||||||
|
meta: {title: '单点登录', icon: 'dashboard', noCache: true, affix: true},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/404',
|
path: '/404',
|
||||||
component: (resolve) => require(['@/views/error/404'], resolve),
|
component: (resolve) => require(['@/views/error/404'], resolve),
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<!--
|
||||||
<template>
|
<template>
|
||||||
<div class="login" :style="`background: url(${webBaseUrl}/temp/background.jpg) no-repeat`">
|
<div class="login" :style="`background: url(${webBaseUrl}/temp/background.jpg) no-repeat`">
|
||||||
<el-form :model="form" ref="form" :rules="rules">
|
<el-form :model="form" ref="form" :rules="rules">
|
||||||
@@ -24,7 +25,7 @@
|
|||||||
<el-form-item>
|
<el-form-item>
|
||||||
<section>
|
<section>
|
||||||
<el-checkbox v-model="rememberMe">记住密码</el-checkbox>
|
<el-checkbox v-model="rememberMe">记住密码</el-checkbox>
|
||||||
<!-- <span>忘记密码</span> -->
|
<!– <span>忘记密码</span> –>
|
||||||
</section>
|
</section>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item><el-button type="primary" @click="loginSubmit">点击登录</el-button></el-form-item>
|
<el-form-item><el-button type="primary" @click="loginSubmit">点击登录</el-button></el-form-item>
|
||||||
@@ -194,3 +195,4 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
-->
|
||||||
|
|||||||
@@ -195,14 +195,14 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--课程管理-->
|
<!--课程管理-->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
custom-class="g-dialog"
|
custom-class="g-dialog"
|
||||||
title="课程学习管理"
|
title="课程学习管理"
|
||||||
width="900px"
|
width="900px"
|
||||||
height="900px"
|
height="900px"
|
||||||
:visible.sync="manageStudy.dlgShow"
|
:visible.sync="manageStudy.dlgShow"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
|
|
||||||
>
|
>
|
||||||
<manager :manageStudyData="manageStudyData" :isShowDialog="manageStudy.dlgShow"></manager>
|
<manager :manageStudyData="manageStudyData" :isShowDialog="manageStudy.dlgShow"></manager>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
@@ -676,8 +676,10 @@ export default {
|
|||||||
}
|
}
|
||||||
apiCourse.pageList(this.params).then(rs=>{
|
apiCourse.pageList(this.params).then(rs=>{
|
||||||
if(rs.status==200){
|
if(rs.status==200){
|
||||||
this.pageData = rs.result.list;
|
this.pageData = rs.result.list ? rs.result.list : [];
|
||||||
|
// this.pageData = rs.result.list;
|
||||||
this.page.count = rs.result.count;
|
this.page.count = rs.result.count;
|
||||||
|
this.page.pageSize = rs.result.pageSize;
|
||||||
}else{
|
}else{
|
||||||
return this.$message.error(rs.message);
|
return this.$message.error(rs.message);
|
||||||
}
|
}
|
||||||
|
|||||||
53
src/views/sso/lexiang.vue
Normal file
53
src/views/sso/lexiang.vue
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<p v-if="loading">正在跳转,请稍候...</p>
|
||||||
|
<p v-if="error" class="error">{{ errorMessage }}</p>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import axios from 'axios'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: true,
|
||||||
|
error: false,
|
||||||
|
errorMessage: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.fetchCode()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async fetchCode() {
|
||||||
|
try {
|
||||||
|
// 替换为你的实际API地址
|
||||||
|
const response = await axios.post('/userbasic/sso/getCode', {})
|
||||||
|
const code = response.data.result
|
||||||
|
if (code) {
|
||||||
|
// 替换为你的目标外部链接,并确保参数名称正确
|
||||||
|
const redirectUrl = `https://lexiangla.com?company_from=d1f3b156e9ed11ef9dc9720f77c5afa9&login_way=sso&sso_auth_code=${encodeURIComponent(code)}`
|
||||||
|
window.location.href = redirectUrl
|
||||||
|
} else {
|
||||||
|
this.handleError('未获取到有效code')
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
this.handleError(`请求失败: ${error.message}`)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleError(message) {
|
||||||
|
this.loading = false
|
||||||
|
this.error = true
|
||||||
|
this.errorMessage = message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.error {
|
||||||
|
color: red;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -802,6 +802,11 @@
|
|||||||
|
|
||||||
|
|
||||||
this.$nextTick(function(){
|
this.$nextTick(function(){
|
||||||
|
if(this.contentData.progressVideo){
|
||||||
|
this.$refs.myVideoPlayer.updateProgressByClickBar2(this.contentData.lastStudyTime,this.contentData.progressVideo);
|
||||||
|
// $this.notePlay = this.contentData.lastStudyTime;
|
||||||
|
}
|
||||||
|
|
||||||
//let h0=document.getElementById('id_course_player').offsetHeight;
|
//let h0=document.getElementById('id_course_player').offsetHeight;
|
||||||
let h=$this.$refs.coursePlayer.offsetHeight;
|
let h=$this.$refs.coursePlayer.offsetHeight;
|
||||||
//let h1=$this.$refs.coursePlayer.clientHeight;
|
//let h1=$this.$refs.coursePlayer.clientHeight;
|
||||||
@@ -1448,6 +1453,7 @@
|
|||||||
}
|
}
|
||||||
//console.log(scon.contentId,con.id);
|
//console.log(scon.contentId,con.id);
|
||||||
con.lastStudyTime = scon.lastStudyTime;
|
con.lastStudyTime = scon.lastStudyTime;
|
||||||
|
con.progressVideo = scon.progressVideo;
|
||||||
//以下判断是为了兼容之前的问题,学习状态
|
//以下判断是为了兼容之前的问题,学习状态
|
||||||
if (scon.status) {
|
if (scon.status) {
|
||||||
con.status = scon.status;
|
con.status = scon.status;
|
||||||
|
|||||||
@@ -380,15 +380,19 @@ export default {
|
|||||||
getExperience() {//经验值
|
getExperience() {//经验值
|
||||||
let data = {
|
let data = {
|
||||||
aid:this.userInfo.aid,// #用户id
|
aid:this.userInfo.aid,// #用户id
|
||||||
statType:21, // #统计类型 10学习时长 11 学习天数 20表经验值 30表u币 40表获取天数
|
statType:20, // #统计类型 10学习时长 11 学习天数 20表经验值 30表u币 40表获取天数
|
||||||
field:this.experience.field,// #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
|
field:this.experience.field,// #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
|
||||||
num:10,// #显示的条数
|
num:10,// #显示的条数
|
||||||
}
|
}
|
||||||
if(data.field == 'now'){
|
if(data.field == 'now'){
|
||||||
|
data.statType = 20
|
||||||
|
data.field = 'years'
|
||||||
|
this.experience.field = 'years'
|
||||||
|
this.isNow = true
|
||||||
|
}else{
|
||||||
data.statType = 20
|
data.statType = 20
|
||||||
data.field = 'total'
|
data.field = 'total'
|
||||||
this.experience.field = 'total'
|
this.experience.field = 'total'
|
||||||
this.isNow = true
|
|
||||||
}
|
}
|
||||||
apiStat.getRanking(data).then(res=>{
|
apiStat.getRanking(data).then(res=>{
|
||||||
if(res.status==200){
|
if(res.status==200){
|
||||||
@@ -402,12 +406,15 @@ export default {
|
|||||||
}
|
}
|
||||||
this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData])
|
this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData])
|
||||||
this.experience.data = res.result.currentUserRankingData;
|
this.experience.data = res.result.currentUserRankingData;
|
||||||
if(this.experience.field == 'total') {
|
this.currentUserRankingTotalData.rankNo = res.result.currentUserRankingData.rankingNo;
|
||||||
|
this.currentUserRankingTotalData.endValue = this.current.endValue;
|
||||||
|
if(data.field == 'total') {
|
||||||
this.current = this.experienceValue(res.result.currentUserRankingData.total);
|
this.current = this.experienceValue(res.result.currentUserRankingData.total);
|
||||||
this.currentUserRankingTotalData.rankNo = res.result.currentUserRankingData.rankingNo;
|
|
||||||
this.currentUserRankingTotalData.rankValue = res.result.currentUserRankingData.total;
|
this.currentUserRankingTotalData.rankValue = res.result.currentUserRankingData.total;
|
||||||
this.currentUserRankingTotalData.endValue = this.current.endValue;
|
}else if(data.field == 'years'){
|
||||||
|
this.currentUserRankingTotalData.rankValue = res.result.currentUserRankingData.years;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
this.current.total=res.result.currentUserRankingData.total;//当前用户的经验值是固定的
|
this.current.total=res.result.currentUserRankingData.total;//当前用户的经验值是固定的
|
||||||
const ids= [];
|
const ids= [];
|
||||||
@@ -434,9 +441,15 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this.experience.list = listData.sort((a,b)=>{
|
if(data.field == 'total') {
|
||||||
return b.total-a.total
|
this.experience.list = listData.sort((a,b)=>{
|
||||||
}).slice(0,5);
|
return b.total-a.total
|
||||||
|
}).slice(0,5);
|
||||||
|
}else if(data.field == 'years'){
|
||||||
|
this.experience.list = listData.sort((a,b)=>{
|
||||||
|
return b.years-a.years
|
||||||
|
}).slice(0,5);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res.message);
|
this.$message.error(res.message);
|
||||||
}
|
}
|
||||||
@@ -447,15 +460,19 @@ export default {
|
|||||||
getDuration() {//学习时长
|
getDuration() {//学习时长
|
||||||
let data = {
|
let data = {
|
||||||
aid:this.userInfo.aid,// #用户id
|
aid:this.userInfo.aid,// #用户id
|
||||||
statType:12, // #统计类型 10学习时长 11 学习天数 20表经验值 30表u币 40表获取天数
|
statType:10, // #统计类型 10学习时长 11 学习天数 20表经验值 30表u币 40表获取天数
|
||||||
field:this.learningDuration.field,// #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
|
field:this.learningDuration.field,// #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
|
||||||
num:10,// #显示的条数
|
num:10,// #显示的条数
|
||||||
}
|
}
|
||||||
if(data.field == 'now'){
|
if(data.field == 'now'){
|
||||||
data.statType = 10
|
data.statType = 10;
|
||||||
data.field = 'total'
|
data.field = 'years';
|
||||||
this.learningDuration.field = 'total'
|
this.learningDuration.field = 'years';
|
||||||
this.isStudyTime = true
|
this.isStudyTime = true;
|
||||||
|
}else{
|
||||||
|
data.statType = 10;
|
||||||
|
data.field = 'total';
|
||||||
|
this.learningDuration.field = 'total';
|
||||||
}
|
}
|
||||||
apiStat.getRanking(data).then(res=>{
|
apiStat.getRanking(data).then(res=>{
|
||||||
if(res.status==200){
|
if(res.status==200){
|
||||||
@@ -469,9 +486,11 @@ export default {
|
|||||||
}
|
}
|
||||||
this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData])
|
this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData])
|
||||||
this.learningDuration.data = res.result.currentUserRankingData;
|
this.learningDuration.data = res.result.currentUserRankingData;
|
||||||
|
this.learningDurationTotalData.rankNo = res.result.currentUserRankingData.rankingNo;
|
||||||
if(data.field == 'total'){
|
if(data.field == 'total'){
|
||||||
this.learningDurationTotalData.rankNo = res.result.currentUserRankingData.rankingNo;
|
|
||||||
this.learningDurationTotalData.rankValue = res.result.currentUserRankingData.total;
|
this.learningDurationTotalData.rankValue = res.result.currentUserRankingData.total;
|
||||||
|
} else if(data.field == 'years'){
|
||||||
|
this.learningDurationTotalData.rankValue = res.result.currentUserRankingData.years;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -500,9 +519,16 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this.learningDuration.list = listData.sort((a,b)=>{
|
if(data.field == 'total'){
|
||||||
return b.total-a.total
|
this.learningDuration.list = listData.sort((a,b)=>{
|
||||||
}).slice(0,5);
|
return b.total-a.total
|
||||||
|
}).slice(0,5)
|
||||||
|
} else if(data.field == 'years'){
|
||||||
|
this.learningDuration.list = listData.sort((a,b)=>{
|
||||||
|
return b.years-a.years
|
||||||
|
}).slice(0,5)
|
||||||
|
}
|
||||||
|
;
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res.message);
|
this.$message.error(res.message);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user