diff --git a/api/manage/manage.js b/api/manage/manage.js index a827518..dcbfa3b 100644 --- a/api/manage/manage.js +++ b/api/manage/manage.js @@ -1,5 +1,5 @@ /** 管理端接口 **/ -import ajax from '../unionAjax.js'; +import ajax from './manageAjax.js'; const baseURL ="/manageApi"; /**用户的待办任务数量*/ diff --git a/api/manage/manageAjax.js b/api/manage/manageAjax.js new file mode 100644 index 0000000..275d010 --- /dev/null +++ b/api/manage/manageAjax.js @@ -0,0 +1,158 @@ +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')){ + // //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.code==1000){ + //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){ + //console.log(rs.data,'rs.data') + if(rs.data.code==1000){ + removeToken(); + toLogin(reUrl); + }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/api/unionAjax.js b/api/unionAjax.js index 9971dbe..1da306c 100644 --- a/api/unionAjax.js +++ b/api/unionAjax.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' @@ -36,21 +37,7 @@ 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); }else{ resolve(rs.data); } @@ -86,21 +73,7 @@ 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); }else{ resolve(rs.data); } diff --git a/manifest.json b/manifest.json index 961fcd6..67d7d99 100644 --- a/manifest.json +++ b/manifest.json @@ -81,8 +81,16 @@ "^/systemapi" : "" } }, + "/manageApi" : { + "target" : "https://u-pre.boe.com", + "changeOrigin" : true, + "secure" : false, + "pathRewrite" : { + "^/manageApi" : "/manageApi" + } + }, "/uboeApi" : { - "target" : "http://u-pre.boe.com", + "target" : "https://u-pre.boe.com", "changeOrigin" : true, "secure" : false, "pathRewrite" : { diff --git a/pages.json b/pages.json index 08be094..2021dc5 100644 --- a/pages.json +++ b/pages.json @@ -6,7 +6,8 @@ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pageS "pages": [ {"path" : "pages/login/loading","style" : { "navigationBarTitleText": "正在加载","enablePullDownRefresh": false}}, - {"path" : "pages/index/index","style": {"navigationBarTitleText": "首页","app-plus":{"titleNView":false}}}, + {"path" : "pages/index/index","style": {"navigationBarTitleText": "首页","app-plus":{"titleNView":false}}}, + {"path" : "pages/forward","style": {"navigationBarTitleText": "正在打开","app-plus":{"titleNView":false}}}, {"path" : "pages/resource/index","style": {"navigationBarTitleText": "资源","enablePullDownRefresh": false,"onReachBottomDistance": 50 }}, {"path" : "pages/resource/search","style": {"navigationBarTitleText": "资源搜索"}}, {"path" : "pages/resource/articeDetail","style": {"navigationBarTitleText": "文章详细"}}, diff --git a/pages/forward.vue b/pages/forward.vue new file mode 100644 index 0000000..6c2edb3 --- /dev/null +++ b/pages/forward.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/pages/study/index.vue b/pages/study/index.vue index e0c11bd..3ce3964 100644 --- a/pages/study/index.vue +++ b/pages/study/index.vue @@ -260,6 +260,7 @@ import apicourseStudy from "../../api/modules/courseStudy.js" import apiCoursePortal from '@/api/modules/coursePortal.js' import apiBoeCourse from '@/api/boe/course.js'; + import apiManage from '@/api/manage/manage.js'; import { formatDate } from '@/utils/tools.js'; import apiUser from '@/api/system/user.js' import { mapGetters } from 'vuex' @@ -413,7 +414,7 @@ let $this = this; if (this.tabIndex == 0) { if (this.taskHasMore) { - this.taskPageSize++; + this.taskPageIndex++; this.loadBoeData(false); } @@ -585,10 +586,20 @@ }, // 学习任务跳转详情 loaddetail(task) { + // uni.navigateTo({ + // url: '/pages/study/loaddetail?id=' + task.cmtask_id + // }); + let taskUrl=''; + if(task.cmtask_type==1){ //学习路径图 + let params=encodeURIComponent('routerId='+task.cmtask_id); + taskUrl='/pages/forward?to=/student-h5/pathdetails¶ms='+params; + }else if(task.cmtask_type==2){ //学习项目 + let params=encodeURIComponent('projectId='+task.cmtask_id); + taskUrl='/pages/forward?to=/student-h5/projectdetails¶ms='+params; + } uni.navigateTo({ - url: '/pages/study/loaddetail?id=' + task.cmtask_id + url: taskUrl }); - // window.open(`/loaddetail?id=${task.cmtask_id}`) }, loadBoeData(flag) { @@ -605,29 +616,58 @@ if (this.cmtask_name) { params.cmtask_name = this.keyWord; } - apiBoeCourse.cmtaskList(params).then(res => { - this.taskCount = res.result.count; - res.result.list.forEach(item => { - let time = this.formatDate(item.created_at * 1000); - item.created_at = time.split(' ')[0]; - }); - this.couresList.push(...res.result.list); - if (this.taskCount > this.taskPageIndex * this.taskPageSize) { - this.taskHasMore = true; - } else { - this.taskHasMore = false; + + apiManage.userTaskList(params).then(res => { + if(res.code==200){ + this.taskCount = parseInt(res.data.total); + this.couresList.push(...res.data.records); + if (this.taskCount > this.taskPageIndex * this.taskPageSize) { + this.taskHasMore = true; + } else { + this.taskHasMore = false; + } + if (this.isOne) { + this.value = this.taskCount; + } + if (this.isOne && res.result.records.length == 0) { + this.tabIndex = 1; + } + this.isOne = false; + }else{ + uni.showToast({ + title: '获取任务失败', + icon: 'none' + }); } - if (this.isOne) { - this.value = res.result.count; - } - if (this.isOne && res.result.list.length == 0) { - this.tabIndex = 1; - } - this.isOne = false; - + + }).catch(err => { - + }) + + // apiBoeCourse.cmtaskList(params).then(res => { + // this.taskCount = res.result.count; + // res.result.list.forEach(item => { + // let time = this.formatDate(item.created_at * 1000); + // item.created_at = time.split(' ')[0]; + // }); + // this.couresList.push(...res.result.list); + // if (this.taskCount > this.taskPageIndex * this.taskPageSize) { + // this.taskHasMore = true; + // } else { + // this.taskHasMore = false; + // } + // if (this.isOne) { + // this.value = res.result.count; + // } + // if (this.isOne && res.result.list.length == 0) { + // this.tabIndex = 1; + // } + // this.isOne = false; + + // }).catch(err => { + + // }) }, loadUserInfos(list, userIds) { const noReapetIds = [...new Set(userIds)];