From 72b9a182062fd824431e7e40a66f32a721a4df5f Mon Sep 17 00:00:00 2001 From: daihh Date: Wed, 1 Mar 2023 11:46:26 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9scorm=E7=9A=84=E5=AD=A6?= =?UTF-8?q?=E4=B9=A0=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/study/courseStudy.vue | 45 ++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/pages/study/courseStudy.vue b/pages/study/courseStudy.vue index 97a20ac..857db41 100644 --- a/pages/study/courseStudy.vue +++ b/pages/study/courseStudy.vue @@ -918,13 +918,20 @@ if(con.contentType>20){ let $this=this; //用户的学习时长,音视频课程学习,单独的处理,不再追加学习时长 - this.isAppendTime = false; - this.appendStudyOtherHandle = setTimeout(function() { + this.isAppendTime = false; + this.appendStudyOtherHandle = setTimeout(function() { $this.appendStudyOtherTime(); - }, 1000*60*2); //非音视频课程学习,2分钟后记录,因为一次记录是60秒 - //this.appendStudyTime(); + }, 1000*60*2); //非音视频课程学习,2分钟后记录,因为一次记录是60秒 + //this.appendStudyTime(); //非视频,音频的5秒后学习完成 - this.handleTimeout = setTimeout(function(){$this.saveStudyInfo();},5000);//5秒后记录学习完成 + if(con.contentType!=50){ + this.handleTimeout = setTimeout(function(){$this.saveStudyInfo();},5000);//5秒后记录学习完成 + }else{ + //scorm课件不记录完成情况,由播放回调记录完成情况 + //当前先保存学习记录,未学习状态 + this.saveScormStudy(); + } + } }, followUser(tea){ @@ -1522,6 +1529,34 @@ }) } }, + saveScormStudy() { + //只记录SCORM课件的学习 + if(this.curContent.contentType!=50){ + return; + } + if(this.curContent.status==9){ + //已学习完的,不用再添加 + return; + } + let params ={ + studyId: this.studyId,//学习id, + courseId: this.courseId,//课程id, + contentId: this.curContent.id,//内容id, + contentType: this.curContent.contentType, + contentName: this.curContent.contentName,//内容名称 + progress: 1, + status: 2, + contentTotal:this.totalContent + } + apiCourseStudy.studyContent(params).then(res=>{ + if(res.status == 200) { + this.curContent.status=2;//完成 + this.curContent.studyItemId=res.result;//学习记录id + }else{ + console.log('记录学习失败:'+res.message+','+res.error); + } + }) + }, //还需要记录播放时间 saveStudyInfo() { //记录课件学习信息 if(this.curContent.contentType>=60){ From 8d2a270fa7b3d11f73ee867908e397cd77deb18b Mon Sep 17 00:00:00 2001 From: daihh Date: Wed, 1 Mar 2023 16:27:38 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/boe/userbasic.js | 8 +- api/manage/manage.js | 27 ++++++ api/unionAjax.js | 170 ++++++++++++++++++++++++++++++++++++ config/index.js | 2 + manifest.json | 6 +- pages/study/courseStudy.vue | 14 ++- 6 files changed, 222 insertions(+), 5 deletions(-) create mode 100644 api/manage/manage.js create mode 100644 api/unionAjax.js diff --git a/api/boe/userbasic.js b/api/boe/userbasic.js index ce5df2a..8c0069a 100644 --- a/api/boe/userbasic.js +++ b/api/boe/userbasic.js @@ -55,6 +55,11 @@ const modifyPassword = function(data) { return ajax.postJson('/user/resetPassword',data); } +/**获取加入的受众的id集合*/ +const getInAudienceIds = function() { + return ajax.post(baseURL,'/audience/audienceByUser',{}); +} + export default { userParentOrg, findOrgsByKeyword, @@ -63,5 +68,6 @@ export default { getUserInfoById, getUserCrowds, getOrgHrbpInfo, - modifyPassword + modifyPassword, + getInAudienceIds } diff --git a/api/manage/manage.js b/api/manage/manage.js new file mode 100644 index 0000000..a827518 --- /dev/null +++ b/api/manage/manage.js @@ -0,0 +1,27 @@ +/** 管理端接口 **/ +import ajax from '../unionAjax.js'; +const baseURL ="/manageApi"; + +/**用户的待办任务数量*/ +const getTaskNum = function(){ + return ajax.get(baseURL+'/todoTask/queryTodoTaskCounts'); +} + +/**用户的待办任务数量 +{ +"pageNo":1, +"pageSize":10, +"cmtask_name":"",任务名称 +"cmtask_code":"",任务Id +"cmtask_status":"",状态 +"cmtask_id":"965341999643234304" 学员id,当前人的 +} +*/ +const userTaskList = function(data){ + return ajax.postJson(baseURL+'/todoTask/queryTodoTaskDetail',data); +} + +export default { + getTaskNum, + userTaskList +} diff --git a/api/unionAjax.js b/api/unionAjax.js new file mode 100644 index 0000000..9971dbe --- /dev/null +++ b/api/unionAjax.js @@ -0,0 +1,170 @@ +import config from '@/config/index.js' +import {getToken,removeToken} from '@/utils/token.js' +import qs from 'qs' + +const ReLoginUrl="/login"; + +const formatUrl=function(url){ + return url; + // if(url.startsWith('http') || url.startsWith('https')){ + // //console.log(url,"我拿到的url值,我想知道下面有啥方法") + // return url; + // }else{ + // return config.oldApiBaseUrl+url + // } +} +const formRequest=function(method,url,data){ + let token=getToken(); + if(!token){ + token=''; + } + let headers={ + 'content-type':'application/x-www-form-urlencoded', + 'token':token + } + let reUrl=formatUrl(url); + return new Promise(function(resolve, reject){ + uni.request({ + url: reUrl, + method, + data: data, + xhrFields: {withCredentials: true}, + dataType: 'json', + header: headers, + success:function(rs,statusCode){ + if(rs.statusCode==200){ + if(rs.data.status==6001){ + //uni.removeStorageSync('userInfo'); + removeToken(); + let loginPath=config.loginPath; + if(loginPath.startsWith('http')){ + // #ifdef APP-PLUS + plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 + // #endif + // #ifdef H5 + //window.open(loginPath) + let returnUrl=window.location.protocol+'//'+window.location.host+config.context; + location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); + // #endif + }else{ + uni.redirectTo({ + url:loginPath + }) + } + }else{ + resolve(rs.data); + } + }else{ + reject("API请求错误"); + } + }, + fail:function(err){ + reject(err); + } + }); + }); + +} +const jsonRequest=function(method,url,data){ + let token=getToken(); + if(!token){ + token=''; + } + let headers={ + 'token':token + } + let reUrl=formatUrl(url); + return new Promise(function(resolve, reject){ + uni.request({ + url: reUrl, + method, + data: data, + xhrFields: {withCredentials: true}, + dataType: 'json', + header: headers, + success:function(rs,statusCode){ + if(rs.statusCode==200){ + if(rs.data.status==6001){ + removeToken(); + let loginPath=config.loginPath; + if(loginPath.startsWith('http')){ + // #ifdef APP-PLUS + plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 + // #endif + // #ifdef H5 + //window.open(loginPath) + let returnUrl=window.location.protocol+'//'+window.location.host+config.context; + location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); + // #endif + }else{ + uni.redirectTo({ + url:loginPath + }) + } + }else{ + resolve(rs.data); + } + }else{ + reject("API请求错误"); + } + }, + fail:function(err){ + reject(err); + } + }); + }); +} +//get请求 +const get=function(url){ + return formRequest('GET',url,''); +} +//post请求 +const post=function(url,data){ + if(data){ + data=qs.stringify(data); + } + return formRequest('POST',url,data); +} +//postJson请求 +const postJson=function(url,json){ + return jsonRequest('POST',url,json); +} +//put请求 +const put=function(url,data){ + if(data){ + data=qs.stringify(data); + } + return formRequest('PUT',url,data); +} +//putJson请求 +const putJson=function(url,json){ + return jsonRequest('PUT',url,json); +} +//patch请求 +const patch=function(url,data){ + if(data){ + data=qs.stringify(data); + } + return formRequest('PATCH',url,data); +} +//patchJson请求 +const patchJson=function(url,json){ + return jsonRequest('PATCH',url,json); +} +//delete请求 +const del=function(url,data){ + if(data){ + data=qs.stringify(data); + } + return formRequest('DELETE',url,data); +} +export default { + get, + post, + postJson, + put, + putJson, + patch, + patchJson, + del +} \ No newline at end of file diff --git a/config/index.js b/config/index.js index 2c62f6b..869b3af 100644 --- a/config/index.js +++ b/config/index.js @@ -1,6 +1,7 @@ /**系统的一些全局配置变量*/ let apiBaseUrl = ''; let oldApiBaseUrl ='/uboeApi'; +let manageApiBaseUrl ='/manageApi'; let statApiBaseUrl='/statApi'; let socialApiBaseUrl='/socialApi'; let loginPath='/pages/login/login'; @@ -53,6 +54,7 @@ if(process.env.NODE_ENV === 'development'){ export default { apiBaseUrl:apiBaseUrl, oldApiBaseUrl:oldApiBaseUrl, + manageApiBaseUrl:manageApiBaseUrl, statApiBaseUrl:statApiBaseUrl, socialApiBaseUrl:socialApiBaseUrl, context:context, diff --git a/manifest.json b/manifest.json index 869daed..961fcd6 100644 --- a/manifest.json +++ b/manifest.json @@ -74,7 +74,7 @@ "https" : false, "proxy" : { "/systemapi" : { - "target" : "http://192.168.0.11:9090", + "target" : "http://127.0.0.1:9090", "changeOrigin" : true, "secure" : false, "pathRewrite" : { @@ -91,7 +91,7 @@ }, "/statApi" : { // 目标代理服务器地址 - "target" : "http://192.168.0.11:9080", + "target" : "http://127.0.0.1:9080", "changeOrigin" : true, "logLevel" : "debug", "secure" : false, @@ -101,7 +101,7 @@ }, "/socialApi" : { // 目标代理服务器地址 - "target" : "http://192.168.0.11:9081", + "target" : "http://127.0.0.1:9081", "changeOrigin" : true, "logLevel" : "debug", "secure" : false, diff --git a/pages/study/courseStudy.vue b/pages/study/courseStudy.vue index 857db41..cd54f59 100644 --- a/pages/study/courseStudy.vue +++ b/pages/study/courseStudy.vue @@ -84,7 +84,7 @@
- +
@@ -577,6 +577,18 @@ window.clearTimeout(this.handleTimeout); } }, + iframeScormLoad(){ + setTimeout(function(){ + var scormIframe=document.getElementById('iframe-scorm'); + if (scormIframe) { + var iframeWin = scormIframe.contentWindow || scormIframe.contentDocument.parentWindow; + if (iframeWin.document.body) { + scormIframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight; + } + } + },500); + + }, loadMyScore(){ apiCourseGrade.score({courseId:this.courseId}).then(rs=>{ if(rs.status==200){ From b874ef530745cc68b06e2b1493cd5cc6d577dbad Mon Sep 17 00:00:00 2001 From: daihh Date: Wed, 1 Mar 2023 19:25:50 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E5=AF=B9=E7=99=BB=E5=BD=95=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E9=AA=8C=E8=AF=81=E8=BF=9B=E8=A1=8C=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 8 ++++- api/ajax.js | 65 ++++++++++++++++++++----------------- api/boe/boeApiAjax.js | 63 ++++++++++++++++++----------------- config/index.js | 2 +- pages/login/loading.vue | 38 +++++++++++++--------- pages/login/login.vue | 20 ++++++++---- pages/study/courseStudy.vue | 2 +- utils/tologin.js | 33 +++++++++++++++++++ utils/xajax.js | 63 ++++++++++++++++++----------------- 9 files changed, 180 insertions(+), 114 deletions(-) create mode 100644 utils/tologin.js diff --git a/App.vue b/App.vue index cb4d3fc..d1a14b9 100644 --- a/App.vue +++ b/App.vue @@ -20,7 +20,13 @@ }); //获取或加载一次用户信息 //console.log('App Launch'); - this.$store.dispatch('GetUserInfo'); + //登录页面不需要,此页面用于本地测试 + //console.log(location.href,'location.href'); + var href=location.href; + if(href.indexOf('/pages/login/login')==-1){ + this.$store.dispatch('GetUserInfo'); + } + }, mounted() { }, diff --git a/api/ajax.js b/api/ajax.js index e24799c..912a6ce 100644 --- a/api/ajax.js +++ b/api/ajax.js @@ -1,9 +1,11 @@ import config from '@/config/index.js' +import {toLogin} from '@/utils/tologin.js' import {getToken,removeToken} from '@/utils/token.js' import qs from 'qs' const ReLoginUrl="/login"; + const formatUrl=function(url){ return url; // if(url.startsWith('http') || url.startsWith('https')){ @@ -32,24 +34,28 @@ const formRequest=function(method,url,data){ dataType: 'json', header: headers, success:function(rs,statusCode){ + //toLogin(); if(rs.statusCode==200){ if(rs.data.status==401 || rs.data.status==402){ removeToken(); - let loginPath=config.loginPath; - if(loginPath.startsWith('http')){ - // #ifdef APP-PLUS - plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 - // #endif - // #ifdef H5 - //window.open(loginPath) - let returnUrl=window.location.protocol+'//'+window.location.host+config.context; - location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); - // #endif - }else{ - uni.redirectTo({ - url:loginPath - }) - } + toLogin(reUrl); + // let loginPath=config.loginPath; + // if(loginPath.startsWith('http')){ + // // #ifdef APP-PLUS + // plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 + // // #endif + // // #ifdef H5 + // //window.open(loginPath) + // toLogin(); + // //let returnUrl=window.location.protocol+'//'+window.location.host+config.context; + // //location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); + // // #endif + // }else{ + + // uni.redirectTo({ + // url:loginPath + // }) + // } }else{ resolve(rs.data); } @@ -86,20 +92,21 @@ const jsonRequest=function(method,url,data){ if(rs.statusCode==200){ if(rs.data.status==401 || rs.data.status==402){ removeToken(); - let loginPath=config.loginPath; - if(loginPath.startsWith('http')){ - // #ifdef APP-PLUS - plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 - // #endif - // #ifdef H5 - let returnUrl=window.location.protocol+'//'+window.location.host+config.context; - location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); - // #endif - }else{ - uni.redirectTo({ - url:loginPath - }) - } + toLogin(reUrl); + // let loginPath=config.loginPath; + // if(loginPath.startsWith('http')){ + // // #ifdef APP-PLUS + // plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 + // // #endif + // // #ifdef H5 + // let returnUrl=window.location.protocol+'//'+window.location.host+config.context; + // location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); + // // #endif + // }else{ + // uni.redirectTo({ + // url:loginPath + // }) + // } }else{ resolve(rs.data); } diff --git a/api/boe/boeApiAjax.js b/api/boe/boeApiAjax.js index 51ffb6c..545b52f 100644 --- a/api/boe/boeApiAjax.js +++ b/api/boe/boeApiAjax.js @@ -1,4 +1,5 @@ import config from '@/config/index.js' +import {toLogin} from '@/utils/tologin.js' import {getToken,removeToken} from '@/utils/token.js' import qs from 'qs' @@ -35,21 +36,22 @@ const formRequest=function(method,url,data){ if(rs.data.status==6001){ //uni.removeStorageSync('userInfo'); removeToken(); - let loginPath=config.loginPath; - if(loginPath.startsWith('http')){ - // #ifdef APP-PLUS - plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 - // #endif - // #ifdef H5 - //window.open(loginPath) - let returnUrl=window.location.protocol+'//'+window.location.host+config.context; - location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); - // #endif - }else{ - uni.redirectTo({ - url:loginPath - }) - } + toLogin(reUrl); + // let loginPath=config.loginPath; + // if(loginPath.startsWith('http')){ + // // #ifdef APP-PLUS + // plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 + // // #endif + // // #ifdef H5 + // //window.open(loginPath) + // let returnUrl=window.location.protocol+'//'+window.location.host+config.context; + // location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); + // // #endif + // }else{ + // uni.redirectTo({ + // url:loginPath + // }) + // } }else{ resolve(rs.data); } @@ -85,21 +87,22 @@ const jsonRequest=function(method,url,data){ if(rs.statusCode==200){ if(rs.data.status==6001){ removeToken(); - let loginPath=config.loginPath; - if(loginPath.startsWith('http')){ - // #ifdef APP-PLUS - plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 - // #endif - // #ifdef H5 - //window.open(loginPath) - let returnUrl=window.location.protocol+'//'+window.location.host+config.context; - location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); - // #endif - }else{ - uni.redirectTo({ - url:loginPath - }) - } + toLogin(reUrl); + // let loginPath=config.loginPath; + // if(loginPath.startsWith('http')){ + // // #ifdef APP-PLUS + // plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 + // // #endif + // // #ifdef H5 + // //window.open(loginPath) + // let returnUrl=window.location.protocol+'//'+window.location.host+config.context; + // location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); + // // #endif + // }else{ + // uni.redirectTo({ + // url:loginPath + // }) + // } }else{ resolve(rs.data); } diff --git a/config/index.js b/config/index.js index 869b3af..aedfcb6 100644 --- a/config/index.js +++ b/config/index.js @@ -19,7 +19,7 @@ if(process.env.NODE_ENV === 'development'){ statApiBaseUrl='/statApi'; socialApiBaseUrl='/socialApi'; fileUrl = 'http://127.0.0.1:9090/cdn/upload'; - loginPath='/pages/login/login'; + loginPath='/mobile/pages/login/login'; scormPlayer='http://localhost:9083/scorm-player'; }else if(process.env.ENV_TYPE === 'preview'){ // 预发布环境,当前配置未使用上 diff --git a/pages/login/loading.vue b/pages/login/loading.vue index 2ed1ae5..7a256af 100644 --- a/pages/login/loading.vue +++ b/pages/login/loading.vue @@ -19,23 +19,23 @@ mounted() { let token=getToken(); let $this=this; + let urlPre=window.location.protocol+'//'+window.location.host+this.$config.context; //console.log(token,'得到token'); if(!token){ console.log('未获得token,转向登录'); - //this.$router.push({ path: process.env.VUE_APP_LOGIN_URL }) - // #ifdef APP-PLUS - plus.runtime.openURL(this.$config.loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 - // #endif - // #ifdef H5 - //console.log('this.$config.loginPath',this.$config.loginPath); - if(this.$config.loginPath.startsWith('http')){ - let returnUrl=window.location.protocol+'//'+window.location.host+this.$config.context; - location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); - }else{ - location.href=this.$config.loginPath; - } - - // #endif + //this.$router.push({ path: process.env.VUE_APP_LOGIN_URL }) + // #ifdef APP-PLUS + plus.runtime.openURL(this.$config.loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 + // #endif + // #ifdef H5 + //console.log('this.toUrl',this.toUrl); + //console.log('this.$config.loginPath',this.$config.loginPath); + if(this.toUrl){ + location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+'/pages/login/loading?returnUrl='+this.toUrl); + }else{ + location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+'/pages/login/loading'); + } + // #endif }else{ apiLogin.boeLogin(token).then(rs=>{ if(rs.status==200){ @@ -49,7 +49,10 @@ // }) uni.setStorageSync("boe_new_login",1);//记录新登录 let openUrl=$this.toUrl; + console.log(openUrl); + //http://localhost:8081/mobile/pages/login/loading?returnUrl=/pages/study/courseStudy?id=1028700304503054336 if(openUrl){ + //如果openUrl的页面不存在,或不对,就会出现跳转不动的问题,这个情况 if(openUrl.startsWith('http')){ location.href=openUrl }else{ @@ -74,8 +77,11 @@ plus.runtime.openURL(this.$config.loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 // #endif // #ifdef H5 - location.href=this.$config.loginPath; - //window.open(this.$config.loginPath) + if(this.toUrl){ + location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+'/pages/login/loading?returnUrl='+this.toUrl); + }else{ + location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+'/pages/login/loading'); + } // #endif } }).catch(err=>{ diff --git a/pages/login/login.vue b/pages/login/login.vue index 47af6a7..df84b19 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -33,14 +33,17 @@ loginName: '',//10181457 password: '',//666666 loading:false, - redirect: undefined + redirect: '' } }, + onLoad(options) { + this.redirect=options.returnUrl; + }, mounted() { //对cookies进行操作,这里是写 //document.cookie = "mytest=qweqwe131231; path=/; max-age=" + 30*24*60*60; - console.log('process.env.NODE_ENV',process.env.NODE_ENV); - console.log('process.env.ENV_TYPE',process.env.ENV_TYPE); + //console.log('process.env.NODE_ENV',process.env.NODE_ENV); + //console.log('process.env.ENV_TYPE',process.env.ENV_TYPE); }, methods: { submitLogin(){ @@ -63,9 +66,14 @@ // uni.switchTab({ // url:'/pages/index/index' // }) - uni.switchTab({ - url:'/pages/index/index' - }) + if($this.redirect){ + location.href=$this.redirect; + }else{ + uni.switchTab({ + url:'/pages/index/index' + }) + } + }); }else{ console.log(rs.error); diff --git a/pages/study/courseStudy.vue b/pages/study/courseStudy.vue index cd54f59..b48c262 100644 --- a/pages/study/courseStudy.vue +++ b/pages/study/courseStudy.vue @@ -84,7 +84,7 @@
- +
diff --git a/utils/tologin.js b/utils/tologin.js new file mode 100644 index 0000000..1039780 --- /dev/null +++ b/utils/tologin.js @@ -0,0 +1,33 @@ +import config from '@/config/index.js' + +export function toLogin(ajaxUrl) { + let pageUrl=location.href; + console.log(pageUrl,'pageUrl'); + let urlPre=window.location.protocol+'//'+window.location.host; + console.log(urlPre,'urlPre'); + let urlContext=config.context; + console.log(urlContext,'urlContext'); + let returnPage=pageUrl.substring((urlPre+urlContext).length); + console.log(returnPage,'returnPage'); + console.log(config.loginPath+"?returnUrl="+urlPre+urlContext+'/pages/login/loading?returnUrl='+returnPage,'生成的url'); + + if(ajaxUrl && ajaxUrl.indexOf('/xboe/portal/init')>-1){ + return; + } + //http://localhost:8081/mobile/pages/study/courseStudy?id=1028700304503054336 + if(pageUrl.indexOf('returnUrl')>-1){ + console.log(pageUrl,'to pageUrl') + //location.href=config.loginPath+"?returnUrl="+pageUrl; + // uni.redirectTo({ + // url:config.loginPath + // }) + }else{ + if(process.env.NODE_ENV === 'development'){ + location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnPage); + }else{ + location.href=config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+urlContext+'/pages/login/loading?returnUrl='+returnPage); + } + //location.href=config.loginPath + } + +} \ No newline at end of file diff --git a/utils/xajax.js b/utils/xajax.js index b2661c6..165ea6f 100644 --- a/utils/xajax.js +++ b/utils/xajax.js @@ -1,4 +1,5 @@ import config from '../config/index.js' +import {toLogin} from '@/utils/tologin.js' import {getToken,removeToken} from '@/utils/token.js' import qs from 'qs' @@ -34,21 +35,22 @@ const formRequest=function(method,url,data){ if(rs.statusCode==200){ if(rs.data.status==401 || rs.data.status==402){ removeToken(); - let loginPath=config.loginPath; - if(loginPath.startsWith('http')){ - // #ifdef APP-PLUS - plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 - // #endif - // #ifdef H5 - //window.open(loginPath) - let returnUrl=window.location.protocol+'//'+window.location.host+config.context; - location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); - // #endif - }else{ - uni.redirectTo({ - url:loginPath - }) - } + toLogin(reUrl); + // let loginPath=config.loginPath; + // if(loginPath.startsWith('http')){ + // // #ifdef APP-PLUS + // plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 + // // #endif + // // #ifdef H5 + // //window.open(loginPath) + // let returnUrl=window.location.protocol+'//'+window.location.host+config.context; + // location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); + // // #endif + // }else{ + // uni.redirectTo({ + // url:loginPath + // }) + // } }else{ resolve(rs.data); } @@ -85,21 +87,22 @@ const jsonRequest=function(method,url,data){ if(rs.statusCode==200){ if(rs.data.status==401 || rs.data.status==402){ removeToken(); - let loginPath=config.loginPath; - if(loginPath.startsWith('http')){ - // #ifdef APP-PLUS - plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 - // #endif - // #ifdef H5 - //window.open(loginPath) - let returnUrl=window.location.protocol+'//'+window.location.host+config.context; - location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); - // #endif - }else{ - uni.redirectTo({ - url:loginPath - }) - } + toLogin(reUrl); + // let loginPath=config.loginPath; + // if(loginPath.startsWith('http')){ + // // #ifdef APP-PLUS + // plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开 + // // #endif + // // #ifdef H5 + // //window.open(loginPath) + // let returnUrl=window.location.protocol+'//'+window.location.host+config.context; + // location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading'); + // // #endif + // }else{ + // uni.redirectTo({ + // url:loginPath + // }) + // } }else{ resolve(rs.data); } From b72df146b9f3209d916f094a4bff0338fb531ee3 Mon Sep 17 00:00:00 2001 From: daihh Date: Thu, 2 Mar 2023 10:47:30 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E4=B8=A4=E6=AC=A1=E7=BC=96=E7=A0=81url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/login/loading.vue | 5 +++-- utils/tologin.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pages/login/loading.vue b/pages/login/loading.vue index 7a256af..1b6f9f0 100644 --- a/pages/login/loading.vue +++ b/pages/login/loading.vue @@ -15,6 +15,7 @@ }, onLoad(options) { this.toUrl=options.returnUrl; + console.log(this.toUrl,'options.returnUrl'); }, mounted() { let token=getToken(); @@ -31,7 +32,7 @@ //console.log('this.toUrl',this.toUrl); //console.log('this.$config.loginPath',this.$config.loginPath); if(this.toUrl){ - location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+'/pages/login/loading?returnUrl='+this.toUrl); + location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+'/pages/login/loading?returnUrl='+encodeURIComponent(this.toUrl)); }else{ location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+'/pages/login/loading'); } @@ -78,7 +79,7 @@ // #endif // #ifdef H5 if(this.toUrl){ - location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+'/pages/login/loading?returnUrl='+this.toUrl); + location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+'/pages/login/loading?returnUrl='+encodeURIComponent(this.toUrl)); }else{ location.href=this.$config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+'/pages/login/loading'); } diff --git a/utils/tologin.js b/utils/tologin.js index 1039780..a800f6d 100644 --- a/utils/tologin.js +++ b/utils/tologin.js @@ -25,7 +25,7 @@ export function toLogin(ajaxUrl) { if(process.env.NODE_ENV === 'development'){ location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnPage); }else{ - location.href=config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+urlContext+'/pages/login/loading?returnUrl='+returnPage); + location.href=config.loginPath+"?returnUrl="+encodeURIComponent(urlPre+urlContext+'/pages/login/loading?returnUrl='+encodeURIComponent(returnPage)); } //location.href=config.loginPath } From f0ae862b9452881e3e12d2edde00ea3258a77363 Mon Sep 17 00:00:00 2001 From: daihh Date: Thu, 2 Mar 2023 12:33:04 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/login/loading.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/login/loading.vue b/pages/login/loading.vue index 1b6f9f0..6b8a195 100644 --- a/pages/login/loading.vue +++ b/pages/login/loading.vue @@ -15,6 +15,7 @@ }, onLoad(options) { this.toUrl=options.returnUrl; + console.log(options,'options'); console.log(this.toUrl,'options.returnUrl'); }, mounted() { From 0e761475598140d48af7ba2f0d2d8ca0c82cb6d8 Mon Sep 17 00:00:00 2001 From: daihh Date: Thu, 2 Mar 2023 12:54:40 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/login/loading.vue | 11 ++++++++++- pages/login/login.vue | 14 ++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/pages/login/loading.vue b/pages/login/loading.vue index 6b8a195..04fc518 100644 --- a/pages/login/loading.vue +++ b/pages/login/loading.vue @@ -15,7 +15,16 @@ }, onLoad(options) { this.toUrl=options.returnUrl; - console.log(options,'options'); + + var pvArray=Object.keys(options); + var params=''; + pvArray.forEach(pv=>{ + if(pv!='returnUrl'){ + params+='&'+pv+'='+options[pv]; + } + }); + this.toUrl=this.toUrl+params; + console.log(this.toUrl,'options.returnUrl'); }, mounted() { diff --git a/pages/login/login.vue b/pages/login/login.vue index df84b19..798ea5f 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -37,7 +37,21 @@ } }, onLoad(options) { + console.log(options,'options'); + var pvArray=Object.keys(options); this.redirect=options.returnUrl; + var params=''; + pvArray.forEach(pv=>{ + if(pv!='returnUrl'){ + params+='&'+pv+'='+options[pv]; + } + console.log(pv,'=',options[pv]); + }); + //if(params){ + console.log(this.redirect+params) + //} + + }, mounted() { //对cookies进行操作,这里是写 From 6c00f96a0d3f15d211bdab4c9bdd779577839d04 Mon Sep 17 00:00:00 2001 From: daihh Date: Thu, 2 Mar 2023 13:04:29 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/study/courseStudy.vue | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/pages/study/courseStudy.vue b/pages/study/courseStudy.vue index b48c262..28ac049 100644 --- a/pages/study/courseStudy.vue +++ b/pages/study/courseStudy.vue @@ -581,12 +581,20 @@ setTimeout(function(){ var scormIframe=document.getElementById('iframe-scorm'); if (scormIframe) { - var iframeWin = scormIframe.contentWindow || scormIframe.contentDocument.parentWindow; - if (iframeWin.document.body) { - scormIframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight; - } + let iframeWin = scormIframe.contentWindow; + let iframeDoc = scormIframe.contentDocument || scormIframe.document; + + let cHeight = Math.max(iframeDoc.body.clientHeight,iframeDoc.documentElement.clientHeight); + let sHeight = Math.max(iframeDoc.body. scrollHeight,iframeDoc.documentElement.scrollHeight); + let winHeight = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight; + + let lheight = Math.max(cHeight, sHeight); + let finalHeight = Math.max(lheight, winHeight ); + + scormIframe.height =finalHeight; + console.log('scormIframe.height',scormIframe.height); } - },500); + },1500); }, loadMyScore(){ From c2af365ad80509e25e9e2d6bf5b5c65d720209b0 Mon Sep 17 00:00:00 2001 From: daihh Date: Thu, 2 Mar 2023 14:13:35 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=97=A0returnUrl?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/login/loading.vue | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/pages/login/loading.vue b/pages/login/loading.vue index 04fc518..193810d 100644 --- a/pages/login/loading.vue +++ b/pages/login/loading.vue @@ -15,16 +15,19 @@ }, onLoad(options) { this.toUrl=options.returnUrl; - - var pvArray=Object.keys(options); - var params=''; - pvArray.forEach(pv=>{ - if(pv!='returnUrl'){ - params+='&'+pv+'='+options[pv]; + if(this.toUrl){ + if(this.toUrl=='/'){ + this.toUrl=''; } - }); - this.toUrl=this.toUrl+params; - + var pvArray=Object.keys(options); + var params=''; + pvArray.forEach(pv=>{ + if(pv!='returnUrl'){ + params+='&'+pv+'='+options[pv]; + } + }); + this.toUrl=this.toUrl+params; + } console.log(this.toUrl,'options.returnUrl'); }, mounted() { @@ -60,7 +63,6 @@ // }) uni.setStorageSync("boe_new_login",1);//记录新登录 let openUrl=$this.toUrl; - console.log(openUrl); //http://localhost:8081/mobile/pages/login/loading?returnUrl=/pages/study/courseStudy?id=1028700304503054336 if(openUrl){ //如果openUrl的页面不存在,或不对,就会出现跳转不动的问题,这个情况