diff --git a/App.vue b/App.vue
index 0b7ced7..cb4d3fc 100644
--- a/App.vue
+++ b/App.vue
@@ -71,7 +71,34 @@
border-right: 1px solid #bdbdbd;
transform: rotate(45deg);
}
-
+ uni-modal {
+ .uni-modal {
+ width: 288px !important;
+ max-width: 288px !important;
+ border-radius: 26upx;
+ .uni-modal__bd{
+ font-size: 36upx;
+ font-weight: 600;
+ color: #333333;
+ padding: 33px 25px 33px 25px;
+ }
+ .uni-modal__ft{
+ font-size: 32upx;
+ .uni-modal__btn_default{
+ color: #333333;
+ }
+ .uni-modal__btn_primary{
+ color: #387DF7;
+ }
+ }
+ }
+ }
+ uni-toast .uni-toast{
+ img{
+ width: 38px;
+ height: 18px;
+ }
+ }
/**统一样式*/
.fixed-field{
width: 180px;
diff --git a/api/ajax.js b/api/ajax.js
new file mode 100644
index 0000000..e24799c
--- /dev/null
+++ b/api/ajax.js
@@ -0,0 +1,169 @@
+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.apiBaseUrl+url
+ // }
+}
+const formRequest=function(method,url,data){
+ let token=getToken();
+ if(!token){
+ token='';
+ }
+ let headers={
+ 'content-type':'application/x-www-form-urlencoded',
+ 'XBOE-Access-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==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
+ })
+ }
+ }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={
+ 'XBOE-Access-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==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
+ })
+ }
+ }else{
+ resolve(rs.data);
+ }
+ }else{
+ reject("API请求错误");
+ }
+ },
+ fail:function(err){
+ reject(err);
+ }
+ });
+ });
+}
+//get请求
+const get=function(baseURL,url){
+ return formRequest('GET',baseURL+url,'');
+}
+//post请求
+const post=function(baseURL,url,data){
+ if(data){
+ data=qs.stringify(data);
+ }
+ return formRequest('POST',baseURL+url,data);
+}
+//postJson请求
+const postJson=function(baseURL,url,json){
+ return jsonRequest('POST',baseURL+url,json);
+}
+//put请求
+const put=function(baseURL,url,data){
+ if(data){
+ data=qs.stringify(data);
+ }
+ return formRequest('PUT',baseURL+url,data);
+}
+//putJson请求
+const putJson=function(baseURL,url,json){
+ return jsonRequest('PUT',baseURL+url,json);
+}
+//patch请求
+const patch=function(baseURL,url,data){
+ if(data){
+ data=qs.stringify(data);
+ }
+ return formRequest('PATCH',baseURL+url,data);
+}
+//patchJson请求
+const patchJson=function(baseURL,url,json){
+ return jsonRequest('PATCH',baseURL+url,json);
+}
+//delete请求
+const del=function(baseURL,url,data){
+ if(data){
+ data=qs.stringify(data);
+ }
+ return formRequest('DELETE',baseURL+url,data);
+}
+export default {
+ get,
+ post,
+ postJson,
+ put,
+ putJson,
+ patch,
+ patchJson,
+ del
+}
\ No newline at end of file
diff --git a/api/boe/boeApiAjax.js b/api/boe/boeApiAjax.js
index c743cdc..51ffb6c 100644
--- a/api/boe/boeApiAjax.js
+++ b/api/boe/boeApiAjax.js
@@ -42,7 +42,8 @@ const formRequest=function(method,url,data){
// #endif
// #ifdef H5
//window.open(loginPath)
- location.href=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({
@@ -91,7 +92,8 @@ const jsonRequest=function(method,url,data){
// #endif
// #ifdef H5
//window.open(loginPath)
- location.href=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({
diff --git a/api/modules/comments.js b/api/modules/comments.js
index 697c571..494cfae 100644
--- a/api/modules/comments.js
+++ b/api/modules/comments.js
@@ -28,6 +28,9 @@ send 姓名
const pagelist=function(query){
return ajax.post('/xboe/m/comment/tome/page',query);
}
+const mobilepage=function(query){
+ return ajax.post('/xboe/m/comment/tome/mobilepage',query);
+}
/*
保存评论
{Object }
@@ -87,5 +90,6 @@ export default{
pageQuery,
reply,
replyList,
- delReply
+ delReply,
+ mobilepage
}
diff --git a/api/modules/courseGrade.js b/api/modules/courseGrade.js
index 08e683f..cfdc76e 100644
--- a/api/modules/courseGrade.js
+++ b/api/modules/courseGrade.js
@@ -16,7 +16,16 @@ const has=function(id){
return ajax.get(`/xboe/m/grade/has?courseId=${id}`);
}
+/**
+ * courseId,aid
+ * aid不传默认当前账户
+ */
+const score=function (query){
+ return ajax.post('/xboe/m/grade/score',query);
+}
+
export default{
grade,
- has
+ has,
+ score
}
\ No newline at end of file
diff --git a/api/modules/coursePortal.js b/api/modules/coursePortal.js
index 0c0bcfe..d6f9d40 100644
--- a/api/modules/coursePortal.js
+++ b/api/modules/coursePortal.js
@@ -76,6 +76,18 @@ const courseSearch=function(query){
return ajax.post('/xboe/m/course/fulltext/search',query);
}
+/*
+* 课程详情页推荐列表
+* @param num 条数
+* 以下参数 详情中有就传,没有就不传
+* @param sysType1
+* @param sysType2
+* @param sysType3
+* */
+const recommendList=function (data){
+ return ajax.post('/xboe/m/course/portal/mobile-recommend',data);
+}
+
export default {
courseSearch,
list,
@@ -83,5 +95,6 @@ export default {
detail,
ranking,
scorelist,
+ recommendList,
getTeacherByCourseIDs
}
diff --git a/api/modules/courseStudy.js b/api/modules/courseStudy.js
index bc1b47b..d29faad 100644
--- a/api/modules/courseStudy.js
+++ b/api/modules/courseStudy.js
@@ -58,6 +58,10 @@ const importSignup = function(data) {
return ajax.post('/xboe/school/study/signup/import',data);
}
+/**进入学习首页的后的调用*/
+const studyIndex = function(courseId) {
+ return ajax.get('/xboe/school/study/course/studyIndex?cid='+courseId+'&addView=true');
+}
/**
* 课程学习,根据课程id来获取,
@@ -322,12 +326,19 @@ const deleteSignUp=function(id,courseId){
return ajax.post(`/xboe/school/study/course/delete-signup?id=${id}&couserId=${courseId}`);
}
+/**课程详细页面的推荐课程*/
+const courseRecommends=function(query) {
+ return ajax.post('/xboe/portal/index/course-for-recommend',query);
+}
+
+
export default {
hasSignup,
signup,
findSignup,
deleteSignup,
importSignup,
+ studyIndex,
studyInfo,
studyVideoTime,
lastStudy,
@@ -348,5 +359,6 @@ export default {
myExamList,
myAssessList,
myExamList2,
- deleteSignUp
+ deleteSignUp,
+ courseRecommends
}
diff --git a/api/modules/shares.js b/api/modules/shares.js
index 55d723c..b862c18 100644
--- a/api/modules/shares.js
+++ b/api/modules/shares.js
@@ -13,6 +13,16 @@ import ajax from '@/utils/xajax.js'
const save=function(data){
return ajax.post('/xboe/m/share/add',data);
}
+/**
+ * 我分享的全部
+ * @param pageIndex 第几页
+ * @param pageSize 每页多少行
+ * @param keyword 关键字搜索
+ * @param isRead 是否已读
+ * */
+const findMeShare=function (query){
+ return ajax.post('/xboe/m/share/findMeShare',query);
+}
// 删除分享
// 参数 id
const del=function(id){
@@ -65,6 +75,16 @@ const myqalist=function(query){
const myarticlelist=function(query){
return ajax.post('/xboe/m/share/myArticleList',query);
}
+/**
+ * 分享给我的全部
+ * @param pageIndex 第几页
+ * @param pageSize 每页多少行
+ * @param keyword 关键字搜索
+ * @param isRead 是否已读
+ * */
+const findShareMe=function (query){
+ return ajax.post('/xboe/m/share/findShareMe',query);
+}
/*分页查询 我分享的课程信息
@param {Object} query
@param type 查询的条件,暂时未确定
@@ -134,5 +154,7 @@ const updateIsRead=function(id){
mymecourselist,
mymearticlelist,
deleteshares,
+ findShareMe,
+ findMeShare,
updateIsRead
}
\ No newline at end of file
diff --git a/api/phase2/guestbook.js b/api/phase2/guestbook.js
new file mode 100644
index 0000000..374d5f5
--- /dev/null
+++ b/api/phase2/guestbook.js
@@ -0,0 +1,70 @@
+import config from '@/config/index.js'
+import ajax from '../ajax';
+const baseURL = config.socialApiBaseUrl;
+
+
+/**
+ * 保存或者编辑留言
+ * @param{
+ * content,留言内容
+ * aid 要留言的人的id
+ *
+ * }
+ * */
+const save=function (data){
+ return ajax.postJson(baseURL,'/xboe/subgroup/m/guest/save',data);
+}
+
+/**
+ * 删除留言
+ * */
+const del=function (id){
+ return ajax.get(baseURL,'/xboe/subgroup/m/guest/delete?id='+id);
+}
+
+/**
+ * 回复或者删除留言
+ * @param{
+ * id
+ * reply 回复内容
+ * }
+ * */
+const answer=function (data){
+ return ajax.post(baseURL,'/xboe/subgroup/m/guest/answer',data);
+}
+
+/**
+ * 给我的留言
+ * @param{
+ * pageIndex
+ * pageSize
+ * aid
+ * }
+ * */
+const givelist=function (query){
+ return ajax.post(baseURL,'/xboe/subgroup/m/guest/givelist',query);
+}
+
+/**
+ * 我的留言
+ * @param{
+ * pageIndex
+ * pageSize
+ * aid
+ * }
+ * */
+const mylist=function (query){
+ return ajax.post(baseURL,'/xboe/subgroup/m/guest/mylist',query);
+}
+
+export default {
+ save,
+ answer,
+ del,
+ givelist,
+ mylist
+}
+
+
+
+
diff --git a/api/phase2/guide.js b/api/phase2/guide.js
new file mode 100644
index 0000000..3e05303
--- /dev/null
+++ b/api/phase2/guide.js
@@ -0,0 +1,32 @@
+// import ajax from '@/utils/xajax.js'
+import config from '@/config/index.js'
+import ajax from '../ajax';
+const baseURL = config.socialApiBaseUrl;
+
+
+/**
+ * 显示提取,一次性
+ * */
+const list=function (){
+ return ajax.get(baseURL,'/xboe/subgroup/m/guide/list');
+}
+
+/**
+ * 保存或编辑
+ * */
+const save=function (data){
+ return ajax.postJson(baseURL,'/xboe/subgroup/m/guide/save',data);
+}
+
+/**
+ * 判断当前用户是否登录过
+ * */
+const hasUser=function (){
+ return ajax.get(baseURL,'/xboe/subgroup/m/guide/hasUser');
+}
+
+export default {
+ list,
+ save,
+ hasUser
+}
diff --git a/api/phase2/index.js b/api/phase2/index.js
new file mode 100644
index 0000000..56729e9
--- /dev/null
+++ b/api/phase2/index.js
@@ -0,0 +1,77 @@
+import ajax from '@/utils/xajax.js'
+
+
+/**
+ * 首页推荐案例
+ * @param type 2最热 1最新
+ * */
+const cases=function (type){
+ return ajax.get('/xboe/portal/index/cases?type='+type);
+}
+
+/**
+ * 首页文章排行榜
+ * @param num 条数 不传默认5条
+ * */
+const articleViews=function (num){
+ return ajax.get('/xboe/portal/index/article-views?num='+num);
+}
+
+/**
+ * 首页问答排行榜
+ * @param num 条数 不传默认5条
+ * */
+const qaAnswers=function (num){
+ return ajax.get('/xboe/portal/index/qa-answers?num='+num);
+}
+
+/**
+ * 1最新 2最热
+ * */
+const articlelist=function (type){
+ return ajax.get('/xboe/portal/index/articlelist?type='+type);
+}
+
+/**
+ * 首页课程排行榜
+ * 参数和原接口一样,只需要换接口名称就可以
+ * */
+const courselist=function (data){
+ return ajax.post('/xboe/portal/index/courselist',data);
+}
+// 移动端首页课程
+const mobileIndex=function(data){return ajax.post('/xboe/portal/index/mobile-courseindex',data);}
+/*
+评分榜
+@param num 要几条传几条 不传默认五条
+ */
+const scorelist=function(num,p){
+ return ajax.get(`/xboe/m/course/portal/score-list?num=${num}&index=${p}`);
+}
+/**首页查询问答
+ * pageSize
+ * orderField
+ * orderAsc
+*/
+const indexList=function(query) {
+ return ajax.post('/xboe/m/qa/question/query-random',query);
+}
+// 1最新 2最热
+const mobieArticle=function (type){
+ return ajax.get('/xboe/portal/index/mobile-article?type='+type);
+}
+
+
+
+
+export default {
+ cases,
+ articleViews,
+ qaAnswers,
+ articlelist,
+ courselist,
+ mobileIndex,
+ scorelist,
+ indexList,
+ mobieArticle
+}
diff --git a/api/phase2/place.js b/api/phase2/place.js
new file mode 100644
index 0000000..a2660e9
--- /dev/null
+++ b/api/phase2/place.js
@@ -0,0 +1,27 @@
+import config from '@/config/index.js'
+import ajax from '../ajax';
+const baseURL = config.socialApiBaseUrl;
+
+
+/**
+ * 添加或编辑
+ * @param 参数见设计文档
+ * */
+const saveOrUpdate=function (data){
+ return ajax.postJson(baseURL,'/xboe/subgroup/m/pageplace/saveOrUpdate',data);
+}
+
+/**
+ * 根据key获取资源信息
+ * */
+
+const detail=function (key){
+ return ajax.get(baseURL,'/xboe/subgroup/m/pageplace/detail-key?key='+key);
+}
+
+
+
+export default {
+ saveOrUpdate,
+ detail
+}
diff --git a/api/phase2/stat.js b/api/phase2/stat.js
new file mode 100644
index 0000000..f66e6b7
--- /dev/null
+++ b/api/phase2/stat.js
@@ -0,0 +1,178 @@
+/**文章模块的相关处理*/
+// import ajax from '@/utils/xajax.js'
+import config from '@/config/index.js'
+import ajax from '../ajax';
+const baseURL = config.statApiBaseUrl;
+/**
+ * 发送事件,具体事件参考后台管理的事件查看
+ *参数如下:
+ {
+ "key": "ReadCase",//后台的事件key
+ "title": "浏览案例【案例名称】",//事件的标题
+ "parameters":"",//用户自定义参数 name:value,name:value
+ "content": "案例名称",//事件的内容
+ "source":"页面事件",
+ "objId": "案例id",//关联的id
+ "objType": "3",//关联的类型
+ "objInfo": "记录一般折内容部分",
+ "aid": "用户的id", //当前登录人的id
+ "aname": "用户的名称,用于显示",//当前人的姓名
+ "status": 1 //状态,直接写1
+ }
+ *
+ */
+const sendEvent = function(data) {
+ return ajax.postJson(baseURL,'/xboe/m/stat/event/send',data);
+}
+
+/**
+ * 用户的统计信息
+ * @param {Object} aid 主页人的id
+ * @param {Object} data 参数 []数组,10学习时长 11 学习天数 20表经验值 30表u币 40表获取天数,空数组 返回用户的全部类型统计。
+ */
+const userTotal = function(aid,data) {
+ return ajax.postJson(baseURL,'/xboe/m/stat/user/total/'+aid,data);
+}
+
+/**
+ * 用户动态,分页查询
+ *
+ * @param {
+ pageIndex,
+ pageSize,
+ contentType:'',内容类型
+ aid:'', //指定用户的动态,
+ hidden:true/false,//是否隐藏,不指定,查询全部
+ } data
+ */
+const userDynamicList = function(data) {
+ return ajax.post(baseURL,'/xboe/m/stat/userdynamic/list',data);
+}
+
+/**
+ * 用户动态,分页查询
+ *
+ * @param {
+ pageIndex,
+ pageSize,
+ contentType:'',内容类型
+ aid 数组
+ } data
+ */
+const userDynamicfollows = function(data) {
+ return ajax.postJson(baseURL,'/xboe/m/stat/userdynamic/follow',data);
+}
+
+/**
+ * 获取用户全部勋章
+ * @param {String} aid 用户的id
+ *
+ */
+ const userMedal = function(aid) {
+ return ajax.get(baseURL,'/xboe/m/stat/medal/user-medal?aid='+aid);
+}
+
+
+/**
+ * 勋章信息
+ * 页面上不能修改,删除
+ */
+// const userMedalConfig = function() {
+// return ajax.get(baseURL,'/xboe/m/stat/medalinfo/config');
+// }
+// get 获取勋章配置,返回的是列表
+const userMedalConfig = function() {
+ return ajax.get(baseURL,'/xboe/m/stat/medal/config');
+}
+
+/**
+ * 查询勋章下等级所对应的用户数量
+ * @author wn
+ * @param {String} medalId 勋章id(必填)
+ */
+const userMedalLevelInfo = function(medalId) {
+ return ajax.get(baseURL,'/xboe/m/stat/medal/getUserMedalLevelInfo?medalId='+medalId);
+}
+
+/**
+ * 隐藏动态
+ * @author wn
+ * @param {String} id 动态id(必填)
+ */
+const dynamicHide = function(id) {
+ return ajax.post(baseURL,'/xboe/m/stat/userdynamic/hide?id='+id);
+}
+
+/**
+ * 导出用户近7天的U币记录
+ * @author wn
+ * @param {String} aid 用户aid
+ */
+const exportUserCoinRecord = function(aid) {
+ return ajax.get(baseURL,'/xboe/m/stat/usercoinrecord/export?aid='+aid);
+}
+
+/**
+ * 获取用户最近 x 天的U币记录
+ * @param {String} aid 用户的id
+ * @param {Integer} days x天的记录,默认为7天
+ */
+ const userCoinList = function(aid,days) {
+ return ajax.get(baseURL,'/xboe/m/stat/usercoinrecord/list?aid='+aid+'&days='+days);
+}
+
+/**
+ * 查询排名数据
+ * @author wn
+ * @params {
+ "aid":"952948626497724414", #用户id
+ "statType":20, #统计类型 10学习时长 11 学习天数 20表经验值 30表u币 40表获取天数
+ "field":"total", #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
+ "num":8 #显示的条数
+ }
+ */
+const getRanking = function(queryData) {
+ return ajax.postJson(baseURL,'/xboe/m/stat/user/ranking',queryData);
+}
+
+
+/**
+ * 查询统计用户经验值等级、累计学习时长、累计U币数量、累计经验值
+ * @author wn
+ * @param {String} aid 用户的id
+ */
+ const getUserStatTotalInfo = function(aid) {
+ return ajax.get(baseURL,'/xboe/m/stat/user/statinfo?aid='+aid);
+}
+
+/**
+ * 用户的登录勋章,新版上线,15天内登录过一次
+ * @author wn
+ */
+ const getUserLoginMedal = function() {
+ return ajax.get(baseURL,'/xboe/m/stat/medal/login-medal');
+}
+
+/**
+ * 提取需要提示的勋章
+ */
+const getUserMedalTips = function() {
+ return ajax.get(baseURL,'/xboe/m/stat/medal/tips');
+}
+
+export default {
+ sendEvent,
+ userTotal,
+ userDynamicList,
+ userCoinList,
+ userMedal,
+ userMedalConfig,
+ userMedalLevelInfo,
+ dynamicHide,
+ exportUserCoinRecord,
+ getRanking,
+ getUserStatTotalInfo,
+ userDynamicfollows,
+ getUserLoginMedal,
+ getUserMedalTips
+}
diff --git a/api/phase2/userfollow.js b/api/phase2/userfollow.js
new file mode 100644
index 0000000..0a0f42f
--- /dev/null
+++ b/api/phase2/userfollow.js
@@ -0,0 +1,103 @@
+import config from '@/config/index.js'
+import ajax from '../ajax';
+const baseURL = config.socialApiBaseUrl;
+
+
+/**
+ * 添加关注
+ * @param{
+ * followId
+ * }
+ * */
+const save=function (followId){
+ return ajax.get(baseURL,'/xboe/subgroup/m/userfollow/save?followId='+followId);
+}
+
+/**
+ * 检查是否已关注
+ * @param{
+ * followId
+ * }
+ * */
+const checkFllow=function (followId){
+ return ajax.get(baseURL,'/xboe/subgroup/m/userfollow/checkFllow?followId='+followId);
+}
+
+/**
+ * 取消关注
+ *
+ * */
+const remove=function (followId){
+ return ajax.get(baseURL,'/xboe/subgroup/m/userfollow/remove?followId='+followId);
+}
+
+/**
+ * 我关注的人列表
+ * @param{
+ * pageIndex
+ * pageSize,
+ * aid
+ * }
+ * */
+const page=function (query){
+ return ajax.post(baseURL,'/xboe/subgroup/m/userfollow/page',query);
+}
+
+/**
+ * 我关注的人列表
+ * @param{
+ * pageIndex
+ * pageSize,
+ * aid
+ * }
+ * */
+const mypage=function (query){
+ return ajax.post(baseURL,'/xboe/subgroup/m/userfollow/mypage',query);
+}
+
+/**
+ * 二次查询
+ * */
+const ids=function (data){
+ return ajax.postJson(baseURL,'/xboe/subgroup/m/userfollow/ids',data);
+}
+
+/**
+ * 被关注数
+ * 关注数
+ * @pram{
+ * aid
+ * }
+ * */
+const counts=function (aid){
+ return ajax.get(baseURL,'/xboe/subgroup/m/userfollow/counts?aid='+aid);
+}
+
+/**
+ * 查询是否已关注
+ * @param{
+ * followId 关注人的id
+ * }
+ * */
+const has=function (followId){
+ return ajax.get(baseURL,'/xboe/subgroup/m/userfollow/has?followId='+followId);
+}
+
+/**
+ * 我的关注二次查询
+ * */
+const list=function (){
+ return ajax.get(baseURL,'/xboe/subgroup/m/userfollow/list');
+}
+
+export default {
+ save,
+ remove,
+ page,
+ mypage,
+ ids,
+ counts,
+ has,
+ checkFllow,
+ list
+}
diff --git a/api/phase2/userhobby.js b/api/phase2/userhobby.js
new file mode 100644
index 0000000..6dab853
--- /dev/null
+++ b/api/phase2/userhobby.js
@@ -0,0 +1,59 @@
+import config from '@/config/index.js'
+import ajax from '../ajax';
+const baseURL = config.socialApiBaseUrl;
+
+
+/**
+ * 用户采集的添加
+ * @param{
+ * type 类型 1表课程分类
+ * refId 关联的id
+ * refCode 关联的code
+ * }
+ * */
+const save=function (data){
+ return ajax.postJson(baseURL,'/xboe/subgroup/m/userhobby/save',data);
+}
+
+/**
+ * 同兴趣人匹配查询
+ * 参数:下面那个接口的返回值直接传
+ * */
+const list=function (aid){
+ return ajax.get(baseURL,'/xboe/subgroup/m/userhobby/list?aid='+aid);
+}
+
+/**
+ * 获取用户兴趣关联的id
+ * */
+const info=function (aid){
+ return ajax.get(baseURL,'/xboe/subgroup/m/userhobby/info?aid='+aid);
+}
+
+/**
+ * 修改用户兴趣爱好兴趣爱好,
+ * 参数是上一个接口 info查出来的返回值
+ * */
+const update=function (data){
+ return ajax.postJson(baseURL,'/xboe/subgroup/m/userhobby/update',data);
+}
+
+/**
+ * 删除
+ * */
+const del=function (id){
+ return ajax.get(baseURL,'/xboe/subgroup/m/userhobby/delete?id='+id);
+}
+const has=function(){
+ return ajax.get(baseURL,'/xboe/subgroup/m/userhobby/has');
+}
+
+export default {
+ save,
+ list,
+ info,
+ update,
+ del,
+ has
+}
+
diff --git a/api/system/message.js b/api/system/message.js
index 9ab4269..34a755f 100644
--- a/api/system/message.js
+++ b/api/system/message.js
@@ -10,6 +10,10 @@ import ajax from '@/utils/xajax.js'
const list=function(query){
return ajax.post('/xboe/sys/message/list',query);
}
+const mobilelist=function(query){
+ return ajax.post('/xboe/sys/message/mobilelist',query);
+}
+// mobilelist
/*
删除消息
@param ids 勾选的多个消息id
@@ -42,11 +46,25 @@ const isRead=function(){
const updateIsRead=function(ids){
return ajax.postJson('/xboe/sys/message/updateIsRead',ids)
}
+
+/**把当前人所有未读消息设置为已读*/
+const readAll=function(){
+ return ajax.get('/xboe/sys/message/readall')
+}
+
+/**清空当前人的接收到的所有的消息*/
+const cleanAll=function(){
+ return ajax.get('/xboe/sys/message/clearall')
+}
+
export default{
list,
del,
detail,
save,
isRead,
- updateIsRead
+ updateIsRead,
+ readAll,
+ cleanAll,
+ mobilelist
}
diff --git a/components/at-my/at-my.vue b/components/at-my/at-my.vue
new file mode 100644
index 0000000..a224572
--- /dev/null
+++ b/components/at-my/at-my.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+ {{at.sysCreateBy}} {{at.sysCreateTime.split(' ')[0]}}
+
+
+ @我
+ {{filterObjType(at.objType)}}不错,你也来看看吧
+
+
+
+
+
+ 《{{at.title}}》
+
+
+
+
+
+
+
+
+
diff --git a/components/author-img/author-img.vue b/components/author-img/author-img.vue
new file mode 100644
index 0000000..d9dff48
--- /dev/null
+++ b/components/author-img/author-img.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/author-info/author-info.vue b/components/author-info/author-info.vue
index 3d68131..3f46458 100644
--- a/components/author-info/author-info.vue
+++ b/components/author-info/author-info.vue
@@ -1,17 +1,17 @@
-
+
-
+
- {{name}}
+ {{name}}
@@ -43,10 +43,19 @@
sex:{
type:Number,
default:null
- }
+ },
+ width:{
+ type:String,
+ default:'20px'
+ },
+ height:{
+ type:String,
+ default:'20px'
+ },
},
data(){
return {
+ fileUrl:this.$config.fileUrl,
userAvatar:'',
// sex:null,
}
@@ -87,8 +96,8 @@
diff --git a/components/author/author.vue b/components/author/author.vue
index 9ce84ea..07093d9 100644
--- a/components/author/author.vue
+++ b/components/author/author.vue
@@ -1,19 +1,19 @@
-
-
+
+
-
-
+
+
- {{data.name || data.sysCreateBy}}
+ {{data.name || data.sysCreateBy}}
@@ -36,7 +36,19 @@
showCode:{
type:Boolean,
default:true
- }
+ },
+ size:{
+ type:Number,
+ default:24
+ },
+ width:{
+ type:String,
+ default:'24px'
+ },
+ height:{
+ type:String,
+ default:'24px'
+ },
},
data(){
return {
@@ -65,8 +77,10 @@
diff --git a/components/course-list/course-list.vue b/components/course-list/course-list.vue
new file mode 100644
index 0000000..c6b5656
--- /dev/null
+++ b/components/course-list/course-list.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+ {{converToScore(course.score)}}分
+
+
+
+
+ {{course.name}}
+
+
+ {{course.teacher}} | {{formatUserNumber(course.studys || course.studies)}}人已学
+
+
+ {{sysTypeName(course.sysType1)}}
+ {{sysTypeName(course.sysType2)}}
+
+
+
+
+
+
+
+
diff --git a/components/data-filter/data-filter.vue b/components/data-filter/data-filter.vue
index 9dd40be..c10856b 100644
--- a/components/data-filter/data-filter.vue
+++ b/components/data-filter/data-filter.vue
@@ -1,12 +1,17 @@
-
- 筛选
-
+
+
+
+ 清除筛选
-
-
-
+
+
+
+
+
+ 课程分类
+
排序
@@ -15,28 +20,31 @@
授课方式
-
录播课
线下课
学习项目
-
- 内容分类
+
+
+
+ 内容分类
{{sysType.name}}
-
- U选小课堂
+
+
+
+
+ {{course.sysType1.name}}
+
+ {{tow.name}}
+
+
+ {{three.name}}
+
@@ -69,8 +77,8 @@
@@ -89,21 +97,28 @@
type: {
type: Number,
required:true
- }
+ },
+ filterWidth:{
+ type:String,
+ default:'100%'
+ }
},
data(){
return{
+ clearswitch:false,
courseSysTypeTree:[],
courseScenceList:[],
filterShow:false,//是否显示过虑器
- filterWidth:'300px',
+ // filterWidth:'300px',
+ sysTypeTow:[],
+ sysTypeThree:[],
course:{
orderType:-1,//表未选中,排序,最新,最热
courseType:-1,//表未选中
scenes:[],
- sysType1:'',
- sysType2:'',
- sysType3:''
+ sysType1:{},
+ sysType2:{},
+ sysType3:{}
},
article:{
orderType:-1
@@ -116,8 +131,10 @@
}
},
mounted() {
- this.filterWidth=(this.$width-100)+'px'; //右边出来的抽屉宽度控制
+ // this.filterWidth=(this.$width-100)+'px'; //右边出来的抽屉宽度控制
this.loadData();
+ this.clswitch();
+
},
computed:{
filterTags(){ //过滤标签
@@ -145,13 +162,14 @@
tags.push({type:'scenes',text:sc.name,value:sc.id})
})
}
- if(filters.sysType1!=''){
+
+ if(!filters.sysType1){
tags.push({type:'sysType1',text:filters.sysType1.name,value:filters.sysType1.id})
}
- if(filters.sysType2!=''){
+ if(!filters.sysType2){
tags.push({type:'sysType2',text:filters.sysType2.name,value:filters.sysType2.id})
}
- if(filters.sysType3!=''){
+ if(!filters.sysType3){
tags.push({type:'sysType3',text:filters.sysType3.name,value:filters.sysType3.id})
}
}else if(this.type==2){
@@ -179,6 +197,52 @@
}
},
methods:{
+ clswitch(){
+ if(JSON.stringify(this.course.sysType1) !== '{}'){
+ this.clearswitch = true;
+ console.log(this.course,this.filterTags.length)
+ }else if(JSON.stringify(this.course.sysType2) !== '{}'){
+ this.clearswitch = true;
+ }else if(JSON.stringify(this.course.sysType2) !== '{}'){
+ this.clearswitch = true;
+ }else if(this.filterTags.length !== 0 && 3){
+ this.clearswitch = true;
+ }
+
+ },
+ // 清除筛选
+ clearsf(){
+ console.log(this.filterTags);
+ if(this.type==1){//生成课程查询条件
+ let params={
+ pageIndex:1,
+ pageSize:20,
+ name:'',
+ keyword:'',
+ publish:true,
+ device:2,
+ type:'',
+ sysType1:'',
+ sysType2:'',
+ sysType3:'',
+ scenes:'',
+ orderField:'',
+ orderAsc:false,
+ cateName:''
+ }
+ this.$emit('submit',this.filterTags,params);
+ this.clearswitch = false;
+ }
+ this.course.sysType1 = '';
+ this.course.sysType2 = '';
+ this.course.sysType3 = '';
+ this.course.orderType = -1;
+ this.course.courseType = -1;
+ this.course.scenes = [];
+
+ console.log('清除成功')
+ },
+ stopRoll(){},
toNewLink(){
location.href='https://m.qingxuetang.com/x/?appId=qxtcorp306130';
},
@@ -249,6 +313,16 @@
}else if(strType=='sysType1'){
this.course.sysType1=value;
+ this.sysTypeTow = value.children;
+ this.course.sysType2 = {};
+ this.course.sysType3={};
+ this.sysTypeThree = [];
+ }else if(strType=='sysType2'){
+ this.course.sysType2=value;
+ this.sysTypeThree = value.children;
+ this.course.sysType3={};
+ }else if(strType=='sysType3'){
+ this.course.sysType3=value;
}
},
moreFilters(){
@@ -359,65 +433,136 @@
this.$emit('submit',this.filterTags,params);
}
-
+ // console.log(this.filterTags.length,'llll')
+ this.clswitch();
}
}
}
diff --git a/components/inner-share/inner-share.vue b/components/inner-share/inner-share.vue
deleted file mode 100644
index 7dbcd10..0000000
--- a/components/inner-share/inner-share.vue
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/components/interact-bar/interact-bar.vue b/components/interact-bar/interact-bar.vue
index 2547fbb..3e95709 100644
--- a/components/interact-bar/interact-bar.vue
+++ b/components/interact-bar/interact-bar.vue
@@ -2,19 +2,20 @@
- {{data.comments}}
+ {{data.comments}}
-
- {{data.answers}}
+
+ {{data.answers}}
-
-
- {{data.praises}}
+
+
+
+ {{data.praises}}
- {{data.favorites}}
+ {{data.favorites}}
-
+
- {{data.comments}}
+
- {{data.praises}}
-
-
-
- 分享
+
- {{data.favorites}}
+
+
+
+
+
-
-
+
@@ -56,11 +55,11 @@
-
-
-
- @
-
+
+
+
+
+
@@ -68,21 +67,7 @@
-
-
- 请输入要分享给人的姓名
-
-
-
-
-
-
-
-
- {{suidx+1}}, {{su.name}} ({{su.code}})
-
-
-
+
+
+
\ No newline at end of file
diff --git a/components/page-title/page-title.vue b/components/page-title/page-title.vue
index ee3f382..ace9517 100644
--- a/components/page-title/page-title.vue
+++ b/components/page-title/page-title.vue
@@ -1,9 +1,12 @@
-
-
+
+
+
+
+
+
-
@@ -17,6 +20,10 @@
showBack:{
type:Boolean,
default:false
+ },
+ goPgae:{
+ type:String,
+ default:''
}
},
data() {
@@ -25,6 +32,13 @@
}
},
methods: {
+ topgae() {
+ if(this.goPgae!=''){
+ uni.navigateTo({
+ url:this.goPgae
+ });
+ }
+ },
toBack(){
if(this.backUrl!=''){
if(this.backUrl == '/pages/my/index'){
@@ -57,18 +71,21 @@
diff --git a/components/recommend-index/recommend-index.vue b/components/recommend-index/recommend-index.vue
new file mode 100644
index 0000000..0d46fa6
--- /dev/null
+++ b/components/recommend-index/recommend-index.vue
@@ -0,0 +1,500 @@
+
+
+
+
+
+
+
+
+ 热门课程推荐
+
+
+
+
+
+
+
+
+
+
+ 排行榜
+
+
+
+
+ 热门课程排行榜
+
+
+
+
+
+
+
+
+
+
+
+
+ {{cou.name}}
+
+
+
+
+ 热门文章排行榜
+
+
+
+
+
+
+
+
+
+
+
+
+ {{arl.title}}
+
+
+
+
+ 热门问答排行榜
+
+
+
+
+
+
+
+
+
+
+
+
+ {{qa.title}}
+
+
+
+
+
+
+
+ 热门文章推荐
+
+
+
+
+
+
+
+ {{ar.title}}
+
+
+
+
+
+
+
+
+
+
+
+
+ 热门问答推荐
+
+
+
+
+
+ {{qa.title}}
+
+
+
+
+ 「最热答案」
+
+
+ {{qa.content}}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/system-news/system-news.vue b/components/system-news/system-news.vue
new file mode 100644
index 0000000..a9edf00
--- /dev/null
+++ b/components/system-news/system-news.vue
@@ -0,0 +1,320 @@
+
+
+
+
+ 多选
+ 清空
+ 一键已读
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.sendName}}
+ {{item.msgTime.split(' ')[0]}}
+
+
+ {{item.content}}
+
+
+
+
+
+
+
+
+
+ 删除
+ 取消
+
+
+
+
+
+
+
+
+
+
diff --git a/components/video-player/images/back.png b/components/video-player/images/back.png
new file mode 100644
index 0000000..8fe86c0
Binary files /dev/null and b/components/video-player/images/back.png differ
diff --git a/components/video-player/images/full.png b/components/video-player/images/full.png
new file mode 100644
index 0000000..44e378d
Binary files /dev/null and b/components/video-player/images/full.png differ
diff --git a/components/video-player/images/pause.png b/components/video-player/images/pause.png
new file mode 100644
index 0000000..15d2a12
Binary files /dev/null and b/components/video-player/images/pause.png differ
diff --git a/components/video-player/images/play.png b/components/video-player/images/play.png
new file mode 100644
index 0000000..d965471
Binary files /dev/null and b/components/video-player/images/play.png differ
diff --git a/components/video-player/video-player.vue b/components/video-player/video-player.vue
index 5b6d635..95cfc81 100644
--- a/components/video-player/video-player.vue
+++ b/components/video-player/video-player.vue
@@ -1,62 +1,128 @@
-
+
-
diff --git a/config/index.js b/config/index.js
index 364e637..c59bd6e 100644
--- a/config/index.js
+++ b/config/index.js
@@ -1,8 +1,10 @@
/**系统的一些全局配置变量*/
let apiBaseUrl = '';
let oldApiBaseUrl ='/uboeApi';
+let statApiBaseUrl='/statApi';
+let socialApiBaseUrl='/socialApi';
let loginPath='/pages/login/login';
-let context='/mbile';
+let context='/mobile';
let tokenName='';
let appId=''
let fileUrl='';
@@ -10,26 +12,35 @@ let version=1;
if(process.env.NODE_ENV === 'development'){
//本地开发环境
- apiBaseUrl = '/systemapi';
- oldApiBaseUrl = '/uboeApi';
- fileUrl = 'http://localhost:9090/cdn/upload';
- loginPath='/pages/login/login';
-}else if(process.env.NODE_ENV === 'preview'){
- // 预发布环境,当前配置未使用上
apiBaseUrl = '/systemapi';
oldApiBaseUrl = '/uboeApi';
- fileUrl = 'https://u-pre.boe.com/upload';
- loginPath='https://u-pre.boe.com/m/preview';
-}else if(process.env.NODE_ENV === 'testing'){
+ statApiBaseUrl='/statApi';
+ socialApiBaseUrl='/socialApi';
+ fileUrl = 'http://192.168.0.11:9090/cdn/upload';
+ loginPath='/pages/login/login';
+}else if(process.env.ENV_TYPE === 'preview'){
+ // 预发布环境,当前配置未使用上
+ context='/mobile-release';
+ apiBaseUrl = '/systemapi';
+ oldApiBaseUrl = '/uboeApi';
+ statApiBaseUrl='/statApi';
+ socialApiBaseUrl='/socialApi';
+ fileUrl = 'https://u.boe.com/upload';
+ loginPath='https://u.boe.com/m/loginuser';
+}else if(process.env.ENV_TYPE === 'testing'){
// 测试环境
apiBaseUrl = '/systemapi';
oldApiBaseUrl = '/uboeApi';
+ statApiBaseUrl='/statApi';
+ socialApiBaseUrl='/socialApi';
fileUrl = 'https://u-pre.boe.com/upload';
- loginPath='https://u-pre.boe.com/m/testing';
+ loginPath='https://u-pre.boe.com/m/loginuser';
}else{
// 生产环境
apiBaseUrl = '/systemapi';
oldApiBaseUrl = '/uboeApi';
+ statApiBaseUrl='/statApi';
+ socialApiBaseUrl='/socialApi';
fileUrl = 'https://u.boe.com/upload';
loginPath='https://u.boe.com/m/loginuser';
}
@@ -37,6 +48,8 @@ if(process.env.NODE_ENV === 'development'){
export default {
apiBaseUrl:apiBaseUrl,
oldApiBaseUrl:oldApiBaseUrl,
+ statApiBaseUrl:statApiBaseUrl,
+ socialApiBaseUrl:socialApiBaseUrl,
context:context,
appId:appId,
loginPath:loginPath,
diff --git a/index.html b/index.html
index 23d40c5..460492b 100644
--- a/index.html
+++ b/index.html
@@ -8,13 +8,13 @@
-
-
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 784a430..dfcc244 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -1,58 +1,62 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.con}}
-
-
-
-
+
+
+
+
-
-
-
-
-
-
- {{tag.text}}
-
-
-
+
+
+
+
+
+
+
+
-
+
-
-
-
-
- 录播
- 录播
- 录播
- 线下课
- 学习项目
-
-
-
-
-
-
-
-
- {{c.teacher}}
-
-
-
-
-
-
-
- {{c.studies}}
-
- 人学习
-
-
- {{converToScore(c.score)}}分
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
-
-
- {{item.sysCreateTime.substring(0,10)}}
-
-
-
- {{ item.summary }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{tag.text}}
-
-
-
-
-
-
-
-
- [已解决]
- [待解决]
- {{ item.title }}
+ -->
+
+
+
+
+
+
+
+ 最热
+ 最新
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+ {{item.sysCreateTime.substring(0,10)}}
+
+
+
+
+ {{ item.summary }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 最热
+ 最新
+
+
+
+
+
+
+ 【已解决】
+ 【待解决】
+ {{ item.title }}
-
-
-
-
- {{item.sysCreateTime.substring(0,10)}}
-
-
-
-
- {{item.content }}
-
- 最佳回答:
- {{item.bestAnswer}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.sysCreateTime.substring(0,10)}}
+
+
+
+ {{item.praises}} 赞同
+ ·
+
+ {{item.answers}} 回答
+
+
+
+
+
+
+
+
+
+
+
+
-
+ sex:author.sex
+ };
+ if(author.avatar!=''){
+ item.authorInfo.avatar=$this.fileUrl+author.avatar;
+ }
+
+ return true;
+ }
+ return false;
+ })
+ })
+ }else{
+ console.log('查询用户信息失败:'+res.error);
+ }
+ })
+ }
+ }
+ }
+
+
+
diff --git a/pages/login/loading.vue b/pages/login/loading.vue
index d2ad12e..2ed1ae5 100644
--- a/pages/login/loading.vue
+++ b/pages/login/loading.vue
@@ -27,57 +27,48 @@
plus.runtime.openURL(this.$config.loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开
// #endif
// #ifdef H5
- window.open(this.$config.loginPath)
+ //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
}else{
- console.log('获取用户信息');
apiLogin.boeLogin(token).then(rs=>{
if(rs.status==200){
- console.log('获取用户信息成功');
//setToken(rs.result.access_token);
//加载用户信息
- this.$store.dispatch("InitData").then(res => {
- //console.log(res)
- //this.$watermark.set(res.result.name + res.result.loginName);
- // uni.switchTab({
- // url:'/pages/index/index'
- // })
- uni.setStorageSync("boe_new_login",1);//记录新登录
- let openUrl=$this.toUrl;
- if(openUrl){
- console.log('跳转url='+openUrl);
- if(openUrl.startsWith('http')){
- //alert('跳转url0='+openUrl)
- location.href=openUrl
+ this.$store.dispatch("InitData").then(res => {
+ //console.log(res)
+ //this.$watermark.set(res.result.name + res.result.loginName);
+ // uni.switchTab({
+ // url:'/pages/index/index'
+ // })
+ uni.setStorageSync("boe_new_login",1);//记录新登录
+ let openUrl=$this.toUrl;
+ if(openUrl){
+ if(openUrl.startsWith('http')){
+ location.href=openUrl
+ }else{
+ if(openUrl=='/pages/index/index' || openUrl=='/pages/study/index' || openUrl=='/pages/plus/index' || openUrl=='/pages/my/index'){
+ uni.switchTab({
+ url:openUrl
+ })
}else{
- if(openUrl=='/pages/index/index' || openUrl=='/pages/study/index' || openUrl=='/pages/plus/index' || openUrl=='/pages/my/index'){
- //alert('跳转url1='+openUrl)
- uni.switchTab({
- url:openUrl
- })
- }else{
- //alert('跳转url2='+openUrl)
- uni.navigateTo({url:openUrl})
- }
+ uni.navigateTo({url:openUrl})
}
- }else{
- console.log('跳转到首页');
- //alert('跳转到首页')
- uni.switchTab({
- url:'/pages/index/index'
- })
- }
-
- }).catch(error => {
- console.log('加载用户信息错误:',error);
- //alert('加载用户信息错误')
- uni.showModal({
- title:'错误',
- content:error
- })
- })
+ }
+ }else{
+ uni.switchTab({
+ url:'/pages/index/index'
+ })
+ }
+
+ });
}else{
- //alert('加载用户错误')
console.log(rs.message+','+rs.error);
//#ifdef APP-PLUS
plus.runtime.openURL(this.$config.loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开
@@ -89,7 +80,6 @@
}
}).catch(err=>{
//
- //alert('请求超时')
uni.showToast({
title:'请求超时'
})
diff --git a/pages/login/login.vue b/pages/login/login.vue
index aaa684b..47af6a7 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -39,6 +39,8 @@
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);
},
methods: {
submitLogin(){
@@ -62,7 +64,7 @@
// url:'/pages/index/index'
// })
uni.switchTab({
- url:'/pages/study/index'
+ url:'/pages/index/index'
})
});
}else{
diff --git a/pages/login/next.vue b/pages/login/next.vue
index c5c3540..b212913 100644
--- a/pages/login/next.vue
+++ b/pages/login/next.vue
@@ -2,32 +2,30 @@
修改密码
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
- 如有问题请联系管理员
+
+
+ 如有问题联系管理员
-
-
+
-
- 李玉冰
- 00004409
- 01060965462
+
+ 李玉冰0000 4409
+ 0106 0965 462
@@ -173,5 +171,10 @@ export default {
.u-button {
width: 350px;
+ background-color: rgba(0, 125, 255, 1);
+ border-radius: 23px;
}
+
+
+
diff --git a/pages/login/nickName.vue b/pages/login/nickName.vue
index d980bfa..7724e11 100644
--- a/pages/login/nickName.vue
+++ b/pages/login/nickName.vue
@@ -34,7 +34,8 @@
if(res.status==200){
uni.showToast({
title:"修改成功" ,
- duration: 1000
+ duration: 1000,
+ image:'../../static/images/icon/ok-icon.png'
});
setTimeout(()=>{
uni.navigateTo({
diff --git a/pages/my/follow.vue b/pages/my/follow.vue
new file mode 100644
index 0000000..9a98e36
--- /dev/null
+++ b/pages/my/follow.vue
@@ -0,0 +1,382 @@
+
+
+ 关注列表
+
+
+
+ 关注我的
+ 我关注的
+
+
+
+
+
+
+
+
+
+ {{item.userFollow.authorInfo.name}}
+ {{item.userFollow.authorInfo.sign}}
+
+
+ 已关注
+ 关注
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{follow.userFollow.authorInfo.name}}
+ {{follow.userFollow.authorInfo.sign}}
+
+
+ 已关注
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 停止关注 {{cancelData.userFollow.authorInfo.name}}
+
+
+ 取消
+
+
+
+
+
+
+
+
+
diff --git a/pages/my/index.vue b/pages/my/index.vue
index f4e0515..dfe4979 100644
--- a/pages/my/index.vue
+++ b/pages/my/index.vue
@@ -38,9 +38,61 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{userInfoObj.name}}
+
+
+ {{ statData.level }}
+
+ {{statData.evalue}}/{{statData.levelMaxValue}}
+
+
+
+ 编辑资料
+
+
+
+
+
+
+ {{statData.uvalue}}
+ U币
+
+
+
+
+ {{ statData.totalStudyHour }}h
+ 学习时长
+
+
+
+
+ {{ concernme }}
+ 关注我的
+
+
+
+ {{ myconcern }}
+ 我的关注
+
+
+
+
+
-
+
+
+
+
+
+
+ 我的u币
+
+
+
+
+
+
+
+
+
+ 我的勋章
+
+
+
+
+
+
+
+
+
+ 我的排行榜
+
+
+
+
+
+
-
-
-
-
-
-
- 我的文章
-
-
-
-
+
我的测评
@@ -155,21 +227,71 @@
+
+
+
+
+
+ 我的文章
+
+
+
+
+
+
+
+
+
+ 我的问答
+
+
+
+
+
+
+
+
+
+ 我的收藏
+
+
+
+
+
+
+
+
+
+ 我分享的
+
+
+
+
+
+
+
+
+
+ 分享给我的
+
+
+
+
+
@@ -180,8 +302,10 @@
diff --git a/pages/my/myQa.vue b/pages/my/myQa.vue
new file mode 100644
index 0000000..681df5b
--- /dev/null
+++ b/pages/my/myQa.vue
@@ -0,0 +1,599 @@
+
+
+
+ 我的问答
+
+ 去提问
+
+
+
+
+
+
+
+
+
+ 提问
+ 回答
+
+
+
+
+
+ 【已解决】
+ 【待解决】
+
+
+
+
+
+
+
+
+ {{put.sysCreateTime}}
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 【已解决】
+ 【待解决】
+
+
+
+
+ 我的回答:
+ {{displayAll(item)}}
+
+ {{item.isAll?'收起':'展开'}}
+
+
+
+
+ {{ item.sysCreateTimeA }}
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/my/myShares.vue b/pages/my/myShares.vue
index d9efd2f..54f611a 100644
--- a/pages/my/myShares.vue
+++ b/pages/my/myShares.vue
@@ -1,198 +1,88 @@
- 我的分享
-
-
- 课程
- 文章
- 问答
-
-
-
-
-
-
- 状态
-
-
-
-
-
-
-
-
-
-
- 全部
- 已查看
- 未查看
-
-
-
-
-
-
-
- {{ contentTypeFilter(item.contentType).text }}
- 分享日期:{{ item.time }}
-
- 我分享给{{ item.toAname }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [已查看]
- [未查看]
-
-
-
-
-
-
-
-
-
-
- {{item.time}}
- 我分享给{{item.toAname}}
+ 我分享的
+
+
+
+
+
+
+
+ {{ contentTypeFilter(item.contentType).text }}
-
-
-
-
+
+
+
+
+ 分享给{{ item.toAname }}
+
+ 撤回
+
+
+ 已查看
+
+
+ 未查看
-
-
-
-
+
-
-
-
-
-
- [已解决]
-
- [待解决]
-
-
-
-
-
-
-
-
-
-
- 最佳回答:{{ item.question.bestAnswer }}
-
-
-
-
- {{item.time}}
- 我分享给{{item.toAname}}
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 分享给{{item.toAname}}
+
+
+
+ 撤回
+
+
+ 已查看
+
+
+ 未查看
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 分享给{{item.toAname}}
+
+
+
+ 撤回
+
+
+ 已查看
+
+
+ 未查看
+
+
-
-
+
@@ -204,21 +94,20 @@ export default {
computed: mapState(['resourceTab']),
data() {
return {
+ dataList: {
+ pageIndex: 1,
+ pageSize: 10,
+ keyword: '',
+ count: 0,
+ list: []
+ },
isRead:null,
statusBtn: '全部',
- selectData: [
- [
- { label: '全部', value: null },
- { label: '已查看', value: true },
- { label: '未查看', value: false },
-
- ]
- ],
statusSelectShow: false,
conType: 1,
query:{
pageIndex: 1,
- pageSize: 4,
+ pageSize: 10,
keyword:'',
isRead:null
},
@@ -236,8 +125,7 @@ export default {
this.onReachBottom();
},
async onReachBottom() {
- if(this.conType==1){
- if(this.courseList.length {
+ apiShares.findMeShare(this.query).then(rs => {
if (rs.status == 200) {
this.count=rs.result.count
+ rs.result.list.forEach(item => {
+ if(item.type == 4) {
+ item.question = {isResolve:false,title:'',content:'',bestAnswer:''};
+ item.question.isResolve=item.isResolve;
+ item.question.title=item.title;
+ item.question.content=item.content;
+ item.question.bestAnswer=item.bestAnswer;
+ item.question.id=item.id;
+ }
+ if(item.type == 3){
+ item.cases = {title:'',summary:''};
+ item.cases.title=item.title;
+ item.cases.summary=item.content;
+ item.cases.id=item.id;
+ }
+
+ });
+ if(flag){
+ this.dataList.list = rs.result.list;
+ }else{
+ this.dataList.list.push(...rs.result.list);
+ }
+
+
- if(this.conType==1){
- rs.result.list.forEach(item=>{
- $this.courseList.push(item)
- })
- }
- if(this.conType==2){
- let userIds = [];
- rs.result.list.forEach(item=>{
- item.avatar=''
- item.orgInfo='';
- item.sex=null;
- userIds.push(item.sysCreateAid);
- $this.articleList.push(item)
-
- })
- $this.loadUserInfos(rs.result.list,userIds);
- }
- if(this.conType==4){
- let userIds = [];
- rs.result.list.forEach(item=>{
- item.avatar=''
- item.orgInfo='';
- item.sex=null;
- userIds.push(item.question.sysCreateAid);
- $this.qaList.push(item)
- })
- $this.loadUserInfos(rs.result.list,userIds);
- }
}else{
uni.showToast({
title: "获取数据失败",
@@ -352,10 +222,8 @@ export default {
uni.hideLoading();
}, 100);
},
-
-
withdraw(item){
- apiShares.deleteshares(item.id).then(res=>{
+ apiShares.deleteshares(item.shareId).then(res=>{
if(res.status == 200){
uni.showToast({
icon:'success',
@@ -364,19 +232,7 @@ export default {
setTimeout(()=>{
this.findData(true);
},1000)
- // console.log('撤回成功')
- // setTimeout(function() {
- // uni.showToast()
- // }, 1000);
- // if (this.conType == 1) {
- // this.findData(true);
- // }
- // if (this.conType == 2) {
- // this.findData(true);
- // }
- // if (this.conType == 4) {
- // this.findData(true);
- // }
+
}else{
uni.showToast({
icon:'none',
@@ -429,19 +285,20 @@ export default {
});
},
toCourseDetail(citem) {
- if (citem.contentType == 10) {
+ // if (citem.contentType == 10) {
+ // uni.navigateTo({
+ // url: '/pages/resource/microDetail?id=' + citem.objId
+ // });
+ // } else {
+
uni.navigateTo({
- url: '/pages/resource/microDetail?id=' + citem.objId
+ url: '/pages/study/courseStudy?id=' + citem.id
});
- } else if (citem.contentType == 20 || citem.contentType == 21) {
- uni.navigateTo({
- url: '/pages/resource/courseDetail?id=' + citem.objId
- });
- }
+ // }
},
toArticleDetail(item) {
uni.navigateTo({
- url: '/pages/resource/articeDetail?id=' + item.objId
+ url: '/pages/resource/articeDetail?id=' + item.id
});
},
toQaDetail(item) {
@@ -457,58 +314,72 @@ export default {
this.findData(true);
},
- contentTypeFilter(value) {
- let obj = {};
- switch (value) {
- case '10': {
- obj.class = 'uc-course-type2';
- obj.text = '录播';
- break;
- }
- case '21': {
- obj.class = 'uc-course-type2';
- obj.text = '直播';
- break;
- }
- case '20': {
- obj.class = 'uc-course-type2';
- obj.text = '录播';
- break;
- }
- case '30': {
- obj.class = 'uc-course-type2';
- obj.text = '面授';
- break;
- }
- case '90': {
- obj.class = 'uc-course-type2';
- obj.text = '混合';
- break;
- }
- }
- return obj;
- },
+
}
}
diff --git a/pages/my/myubrules.vue b/pages/my/myubrules.vue
new file mode 100644
index 0000000..3835663
--- /dev/null
+++ b/pages/my/myubrules.vue
@@ -0,0 +1,336 @@
+
+
+
+
+
+
+
+
+ 课程学习
+ 知识贡献
+ 平台活跃
+
+
+
+ 分类
+ 描述
+ 经验值/U币
+ 每日上限
+
+
+ {{ item.name }}
+ {{ item.hear }}
+ {{ item.value }}
+ {{ item.upperlimit }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/my/rankingList.vue b/pages/my/rankingList.vue
index a88e8d5..080fe3e 100644
--- a/pages/my/rankingList.vue
+++ b/pages/my/rankingList.vue
@@ -1,5 +1,8 @@
+
+
+
-
+
+
- 我的排名:128
- 我的学习天数:367
+ 我的排名:{{learningDays.data.rankingNo}}
+ 我的学习天数:{{learningDays.data.total}}
@@ -107,7 +109,7 @@
姓名
学习天数
-
+
@@ -115,27 +117,27 @@
{{index+1}}
-
- 小张
- (数据资产部)
+
+ {{days.authorInfo.name}}
+ {{cutOrgNamePath(days.authorInfo.orgInfo)}}
- 1073
+ {{days.total}}
-
+
.
.
.
-
+
- 128
+ {{learningDays.data.rankingNo}}
-
- 小张
- (数据资产部)
+
+ {{userInfo.name}}
+ {{cutOrgNamePath(userInfo.departFullName)}}
- 1073
+ {{learningDays.data.total}}
@@ -145,19 +147,49 @@
diff --git a/pages/plus/addArticle.vue b/pages/plus/addArticle.vue
index 5087127..6a7ca68 100644
--- a/pages/plus/addArticle.vue
+++ b/pages/plus/addArticle.vue
@@ -1,6 +1,6 @@
-
+
@@ -13,7 +13,7 @@
保存草稿
- 提交
+ 发布
@@ -21,7 +21,7 @@
-
+
设置封面
@@ -29,6 +29,9 @@
+
+
+
@@ -43,47 +46,42 @@
@ready="onEditorReady">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -94,6 +92,8 @@
import apiArtice from '@/api/modules/article.js'
import config from '@/config/index.js'
import uploadUtil from '@/utils/upload.js'
+ import apiStat from '@/api/phase2/stat.js'
+ import { mapGetters } from 'vuex';
export default {
data() {
return {
@@ -101,6 +101,7 @@
formats: {},
hasKeyword:false,
hasSummary:false,
+ cover:false,
article:{
title:'',
coverurl:'',
@@ -112,6 +113,9 @@
fileList: []
}
},
+ computed:{
+ ...mapGetters(['userInfo']),
+ },
mounted() {
uni.onKeyboardHeightChange(res => {
this.editorCtx.scrollIntoView({
@@ -136,6 +140,9 @@
addSummary(){
this.hasSummary=true;
},
+ addcover(){
+ this.cover=true;
+ },
saveDraft(){
this.article.status=1;
this.saveArticle();
@@ -146,9 +153,12 @@
},
saveArticle(){
let $this=this;
- uni.showLoading({
- title:'正在保存...'
- })
+ if($this.article.title !== ''){
+ uni.showLoading({
+ title:'正在保存...'
+ })
+ }
+
this.editorCtx.getContents({
success(res){
$this.article.content=res.html;
@@ -161,6 +171,20 @@
}else if(res.result.status==3){
$this.$refs.messager.show({message:'审核未通过已转人工审核',type:'error'});
}else if(res.result.status==9){
+ let event = {
+ key: "PublishArticle",//后台的事件key 发布文章且审核通过
+ title: "发表文章",//事件的标题
+ parameters:"",//用户自定义参数 name:value,name:value
+ content: "发表了文章",//事件的内容
+ objId: res.result.id,//关联的id
+ objType: "2",//关联的类型
+ objInfo: $this.article.title,
+ aid: $this.userInfo.aid, //当前登录人的id
+ aname: $this.userInfo.name,//当前人的姓名
+ status: 1 ,//状态,直接写1
+ source:"h5",
+ }
+ apiStat.sendEvent(event);
uni.redirectTo({
url:'/pages/resource/articeDetail?id='+res.result.id
})
@@ -298,6 +322,16 @@
diff --git a/pages/plus/editQuestion.vue b/pages/plus/editQuestion.vue
index c6c31f5..697ebcf 100644
--- a/pages/plus/editQuestion.vue
+++ b/pages/plus/editQuestion.vue
@@ -12,10 +12,11 @@
-
+
-
+
@@ -35,11 +36,15 @@
diff --git a/pages/study/courseStudy.vue b/pages/study/courseStudy.vue
new file mode 100644
index 0000000..abd2342
--- /dev/null
+++ b/pages/study/courseStudy.vue
@@ -0,0 +1,2001 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+
+
+
+
+
+
+ 赞
+
+
+
+
+
+ 踩
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看更多∨
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 简介
+ 评论
+
+
+
+
+
+
+ 赞
+
+
+
+
+
+ 踩
+
+
+
+
+
+
+
+
+ {{courseInfo.name}}
+
+
+ {{convertTypeName(courseInfo.sysType1)}}
+ {{convertTypeName(courseInfo.sysType2)}}
+ {{convertTypeName(courseInfo.sysType3)}}
+
+
+
+
+
+ 目标人群:
+ {{courseInfo.forUsers}}
+
+ {{formatUserNumber(courseInfo.studys)}}人学习
+
+
+ 讲师:
+
+
+
+ {{tea.teacherName}}
+ ({{tea.orgInfo}})
+
+
+ 已关注
+ +关注
+
+
+
+
+
+
+ 课程评分:
+
+ {{toScore(courseInfo.score)}}
+
+
+
+
+
+ 我的评分:
+
+ {{toScore(myScore)}}
+
+
+
+ 目录
+ 全部>
+
+
+
+
+
+
+
+
+ {{con.contentName}}
+
+
+
+
+
+
+
+
+
+
+ {{con.contentName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{con.contentName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{con.cataName}}
+
+
+
+
+ {{con.contentName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 评价
+
+
+
+
+
+
+ 已收藏收藏
+
+
+
+
+
+ 转发
+
+
+
+
+
+
+
+
+
+
+
+
+ 目录
+
+
+
+
+
+
+
+
+ {{cata.section.name}}
+
+
+ 未开始
+ 进行中
+ 已完成
+
+
+
+
+
+ {{catIdx+1}}.{{conIdx+1}}.
+
+ {{con.contentName}}
+
+
+ 未开始
+ 进行中
+ 已完成
+
+
+
+
+
+
+
+
+
+ {{conIdx+1}}.
+
+ {{con.contentName}}
+
+
+ 未开始
+ 进行中
+ 已完成
+
+
+
+
+
+
+
+
+
+
+
+ 课程推荐
+
+
+
+
+
+
+
+ 课程详情
+
+
+ 暂无
+
+
+
+
+
+
+
+
+ 课程评价
+ 对课程进行评分吧!
+
+
+
+
+
+
+ 取消
+
+
+ 提交
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/study/exam.vue b/pages/study/exam.vue
index 39b6463..4cc9bc0 100644
--- a/pages/study/exam.vue
+++ b/pages/study/exam.vue
@@ -217,11 +217,11 @@
item.options.forEach(it =>{
if(it.answer){ //正确答案
if(item.userAnswer.indexOf(it.id)==-1){
- allRight=false;
+ allRight=false;
}
}else{
if(item.userAnswer.indexOf(it.id)>-1){
- allRight=false;
+ allRight=false;
}
}
});
@@ -292,15 +292,18 @@
},
confirmFinish(){
//这里应该是返回课程的页面
- if(this.ctype==10){
- uni.redirectTo({
- url:'/pages/resource/microDetail?id='+this.info.courseId + '&exam=1'
- })
- }else if(this.ctype==20){
- uni.redirectTo({
- url:'/pages/study/onlineCourse?id='+this.info.courseId
- })
- }
+ uni.redirectTo({
+ url:'/pages/study/courseStudy?id='+this.info.courseId + '&contentId='+this.examId
+ })
+ // if(this.ctype==10){
+ // uni.redirectTo({
+ // url:'/pages/resource/microDetail?id='+this.info.courseId + '&exam=1'
+ // })
+ // }else if(this.ctype==20){
+ // uni.redirectTo({
+ // url:'/pages/study/onlineCourse?id='+this.info.courseId
+ // })
+ // }
}
diff --git a/pages/study/index.vue b/pages/study/index.vue
index 41de70f..e0c11bd 100644
--- a/pages/study/index.vue
+++ b/pages/study/index.vue
@@ -1,107 +1,89 @@
-
-
-
-
- 学习任务
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 学习任务
+
+
+
+ 我报名的
+
+
+
+
+
+ 筛选
+
+
+
+
+ {{status.name}}
+
+
+
+
+
+ 筛选
+
+
+
+
+ {{status.name}}
+
- 我报名的
-
-
-
-
-
- 状态
-
-
-
-
-
-
+
{{item.name}}
-
-
-
-
-
-
+
-
+ style="font-size: 32upx; font-weight: 500;" v-html="task.cmtask_name">
-
-
- 推送时间:
- {{task.created_at}}
+
+
+
+ 未开始
+ 进行中
+ 已完成
-
-
-
- 未开始
- 进行中
- 已完成
-
+
-
-
-
-
-
-
- 类型
- 进度
-
-
-
-
-
-
- {{item.name}}
-
-
- 全部
- 未开始
- 进行中
- 已完成
-
+
您还没有学习课程,快去学习吧~
@@ -112,53 +94,32 @@
- 录播
+
-
-
+
-
- {{c.teacherName}}
-
-
-
-
-
-
+
+
+
+
+
+ {{c.teacherName}}
+
-
-
-
-
-
-
-
-
-
@@ -199,7 +160,7 @@
-
+
@@ -247,11 +208,12 @@
ref="uModal" :asyncClose="true">
您确定要重新学习吗?
-
+
+
@@ -292,24 +254,22 @@
-
\ No newline at end of file
diff --git a/static/images/banner-index.png b/static/images/banner-index.png
new file mode 100644
index 0000000..97b0fa6
Binary files /dev/null and b/static/images/banner-index.png differ
diff --git a/static/images/banner-tow.png b/static/images/banner-tow.png
new file mode 100644
index 0000000..a4a5160
Binary files /dev/null and b/static/images/banner-tow.png differ
diff --git a/static/images/cancel.png b/static/images/cancel.png
new file mode 100644
index 0000000..59c35bf
Binary files /dev/null and b/static/images/cancel.png differ
diff --git a/static/images/center/Evaluation.png b/static/images/center/Evaluation.png
new file mode 100644
index 0000000..11e03f2
Binary files /dev/null and b/static/images/center/Evaluation.png differ
diff --git a/static/images/center/articon.png b/static/images/center/articon.png
new file mode 100644
index 0000000..a65669d
Binary files /dev/null and b/static/images/center/articon.png differ
diff --git a/static/images/center/colle.png b/static/images/center/colle.png
new file mode 100644
index 0000000..d8fa8c6
Binary files /dev/null and b/static/images/center/colle.png differ
diff --git a/static/images/center/interlocu.png b/static/images/center/interlocu.png
new file mode 100644
index 0000000..0cca571
Binary files /dev/null and b/static/images/center/interlocu.png differ
diff --git a/static/images/center/mycentericon.png b/static/images/center/mycentericon.png
new file mode 100644
index 0000000..70ed480
Binary files /dev/null and b/static/images/center/mycentericon.png differ
diff --git a/static/images/center/mymedalicon.png b/static/images/center/mymedalicon.png
new file mode 100644
index 0000000..18822bd
Binary files /dev/null and b/static/images/center/mymedalicon.png differ
diff --git a/static/images/center/myubicon.png b/static/images/center/myubicon.png
new file mode 100644
index 0000000..32de798
Binary files /dev/null and b/static/images/center/myubicon.png differ
diff --git a/static/images/center/rankingicon.png b/static/images/center/rankingicon.png
new file mode 100644
index 0000000..27e8b2e
Binary files /dev/null and b/static/images/center/rankingicon.png differ
diff --git a/static/images/center/shareme.png b/static/images/center/shareme.png
new file mode 100644
index 0000000..edb6c42
Binary files /dev/null and b/static/images/center/shareme.png differ
diff --git a/static/images/centerbg.png b/static/images/centerbg.png
new file mode 100644
index 0000000..8856bba
Binary files /dev/null and b/static/images/centerbg.png differ
diff --git a/static/images/close.png b/static/images/close.png
new file mode 100644
index 0000000..7467130
Binary files /dev/null and b/static/images/close.png differ
diff --git a/static/images/course/c_comment.png b/static/images/course/c_comment.png
new file mode 100644
index 0000000..9651ba4
Binary files /dev/null and b/static/images/course/c_comment.png differ
diff --git a/static/images/course/c_favorite.png b/static/images/course/c_favorite.png
new file mode 100644
index 0000000..0958a98
Binary files /dev/null and b/static/images/course/c_favorite.png differ
diff --git a/static/images/course/c_favorite_2.png b/static/images/course/c_favorite_2.png
new file mode 100644
index 0000000..3eeb84e
Binary files /dev/null and b/static/images/course/c_favorite_2.png differ
diff --git a/static/images/course/c_share.png b/static/images/course/c_share.png
new file mode 100644
index 0000000..390a079
Binary files /dev/null and b/static/images/course/c_share.png differ
diff --git a/static/images/default.png b/static/images/default.png
new file mode 100644
index 0000000..f969483
Binary files /dev/null and b/static/images/default.png differ
diff --git a/static/images/favorite-empt.png b/static/images/favorite-empt.png
new file mode 100644
index 0000000..97d5f69
Binary files /dev/null and b/static/images/favorite-empt.png differ
diff --git a/static/images/filter.png b/static/images/filter.png
index 2482014..15f66b8 100644
Binary files a/static/images/filter.png and b/static/images/filter.png differ
diff --git a/static/images/follow-empt.png b/static/images/follow-empt.png
new file mode 100644
index 0000000..dd17b60
Binary files /dev/null and b/static/images/follow-empt.png differ
diff --git a/static/images/icon/artice-praise.png b/static/images/icon/artice-praise.png
index bc0be12..cf64adb 100644
Binary files a/static/images/icon/artice-praise.png and b/static/images/icon/artice-praise.png differ
diff --git a/static/images/icon/article2.png b/static/images/icon/article2.png
index 481fc65..665bee4 100644
Binary files a/static/images/icon/article2.png and b/static/images/icon/article2.png differ
diff --git a/static/images/icon/artleft.png b/static/images/icon/artleft.png
new file mode 100644
index 0000000..74a4114
Binary files /dev/null and b/static/images/icon/artleft.png differ
diff --git a/static/images/icon/artright.png b/static/images/icon/artright.png
new file mode 100644
index 0000000..208826e
Binary files /dev/null and b/static/images/icon/artright.png differ
diff --git a/static/images/icon/bar-comment.png b/static/images/icon/bar-comment.png
index e5c5ae7..7149709 100644
Binary files a/static/images/icon/bar-comment.png and b/static/images/icon/bar-comment.png differ
diff --git a/static/images/icon/bar-favorite.png b/static/images/icon/bar-favorite.png
index a0eb88c..405908a 100644
Binary files a/static/images/icon/bar-favorite.png and b/static/images/icon/bar-favorite.png differ
diff --git a/static/images/icon/bar-praise-active.png b/static/images/icon/bar-praise-active.png
new file mode 100644
index 0000000..03087ec
Binary files /dev/null and b/static/images/icon/bar-praise-active.png differ
diff --git a/static/images/icon/bar-praise.png b/static/images/icon/bar-praise.png
index 2b2c035..318cb13 100644
Binary files a/static/images/icon/bar-praise.png and b/static/images/icon/bar-praise.png differ
diff --git a/static/images/icon/del.png b/static/images/icon/del.png
new file mode 100644
index 0000000..7f00071
Binary files /dev/null and b/static/images/icon/del.png differ
diff --git a/static/images/icon/disagree2.png b/static/images/icon/disagree2.png
index e317f66..7790634 100644
Binary files a/static/images/icon/disagree2.png and b/static/images/icon/disagree2.png differ
diff --git a/static/images/icon/edit.png b/static/images/icon/edit.png
new file mode 100644
index 0000000..8a1c295
Binary files /dev/null and b/static/images/icon/edit.png differ
diff --git a/static/images/icon/exam-duration.png b/static/images/icon/exam-duration.png
new file mode 100644
index 0000000..9b8b440
Binary files /dev/null and b/static/images/icon/exam-duration.png differ
diff --git a/static/images/icon/exam-score.png b/static/images/icon/exam-score.png
new file mode 100644
index 0000000..196895f
Binary files /dev/null and b/static/images/icon/exam-score.png differ
diff --git a/static/images/icon/exam-times.png b/static/images/icon/exam-times.png
new file mode 100644
index 0000000..200e64c
Binary files /dev/null and b/static/images/icon/exam-times.png differ
diff --git a/static/images/icon/eye.png b/static/images/icon/eye.png
new file mode 100644
index 0000000..b2cafcd
Binary files /dev/null and b/static/images/icon/eye.png differ
diff --git a/static/images/icon/eye_close.png b/static/images/icon/eye_close.png
new file mode 100644
index 0000000..5f15fc7
Binary files /dev/null and b/static/images/icon/eye_close.png differ
diff --git a/static/images/icon/eye_open.png b/static/images/icon/eye_open.png
new file mode 100644
index 0000000..2c0715a
Binary files /dev/null and b/static/images/icon/eye_open.png differ
diff --git a/static/images/icon/favo.png b/static/images/icon/favo.png
new file mode 100644
index 0000000..6c40d2e
Binary files /dev/null and b/static/images/icon/favo.png differ
diff --git a/static/images/icon/favorite.png b/static/images/icon/favorite.png
index 7ad924a..240a9f4 100644
Binary files a/static/images/icon/favorite.png and b/static/images/icon/favorite.png differ
diff --git a/static/images/icon/follow-stop.png b/static/images/icon/follow-stop.png
new file mode 100644
index 0000000..fda73c0
Binary files /dev/null and b/static/images/icon/follow-stop.png differ
diff --git a/static/images/icon/index-start.png b/static/images/icon/index-start.png
new file mode 100644
index 0000000..c1e9e7a
Binary files /dev/null and b/static/images/icon/index-start.png differ
diff --git a/static/images/icon/ok-icon.png b/static/images/icon/ok-icon.png
new file mode 100644
index 0000000..df72b10
Binary files /dev/null and b/static/images/icon/ok-icon.png differ
diff --git a/static/images/icon/question2.png b/static/images/icon/question2.png
index 9edf3bc..bc85ef9 100644
Binary files a/static/images/icon/question2.png and b/static/images/icon/question2.png differ
diff --git a/static/images/icon/scoreicon.png b/static/images/icon/scoreicon.png
new file mode 100644
index 0000000..da5a640
Binary files /dev/null and b/static/images/icon/scoreicon.png differ
diff --git a/static/images/icon/share.png b/static/images/icon/share.png
index af36388..f2455d2 100644
Binary files a/static/images/icon/share.png and b/static/images/icon/share.png differ
diff --git a/static/images/icon/withdrawnew.png b/static/images/icon/withdrawnew.png
new file mode 100644
index 0000000..f8a9ac5
Binary files /dev/null and b/static/images/icon/withdrawnew.png differ
diff --git a/static/images/login_medal.png b/static/images/login_medal.png
new file mode 100644
index 0000000..3ecaf5a
Binary files /dev/null and b/static/images/login_medal.png differ
diff --git a/static/images/me-bg.png b/static/images/me-bg.png
new file mode 100644
index 0000000..db50ef4
Binary files /dev/null and b/static/images/me-bg.png differ
diff --git a/static/images/me-box.png b/static/images/me-box.png
new file mode 100644
index 0000000..69c0e39
Binary files /dev/null and b/static/images/me-box.png differ
diff --git a/static/images/myubimg.png b/static/images/myubimg.png
new file mode 100644
index 0000000..bfbbf53
Binary files /dev/null and b/static/images/myubimg.png differ
diff --git a/static/images/ranking/list-01.png b/static/images/ranking/list-01.png
new file mode 100644
index 0000000..4745632
Binary files /dev/null and b/static/images/ranking/list-01.png differ
diff --git a/static/images/ranking/list-or.png b/static/images/ranking/list-or.png
new file mode 100644
index 0000000..c58247c
Binary files /dev/null and b/static/images/ranking/list-or.png differ
diff --git a/static/images/ranking/list-pink.png b/static/images/ranking/list-pink.png
new file mode 100644
index 0000000..65fbc71
Binary files /dev/null and b/static/images/ranking/list-pink.png differ
diff --git a/static/images/ranking/list02.png b/static/images/ranking/list02.png
new file mode 100644
index 0000000..9acd2cb
Binary files /dev/null and b/static/images/ranking/list02.png differ
diff --git a/static/images/ranking/list03.png b/static/images/ranking/list03.png
new file mode 100644
index 0000000..893043a
Binary files /dev/null and b/static/images/ranking/list03.png differ
diff --git a/static/images/ranking/listblue01.png b/static/images/ranking/listblue01.png
new file mode 100644
index 0000000..4a76db1
Binary files /dev/null and b/static/images/ranking/listblue01.png differ
diff --git a/static/images/ranking/listblue010.png b/static/images/ranking/listblue010.png
new file mode 100644
index 0000000..d90d730
Binary files /dev/null and b/static/images/ranking/listblue010.png differ
diff --git a/static/images/ranking/listblue02.png b/static/images/ranking/listblue02.png
new file mode 100644
index 0000000..fe437aa
Binary files /dev/null and b/static/images/ranking/listblue02.png differ
diff --git a/static/images/ranking/listblue03.png b/static/images/ranking/listblue03.png
new file mode 100644
index 0000000..249ff37
Binary files /dev/null and b/static/images/ranking/listblue03.png differ
diff --git a/static/images/ranking/listblue04.png b/static/images/ranking/listblue04.png
new file mode 100644
index 0000000..c449a43
Binary files /dev/null and b/static/images/ranking/listblue04.png differ
diff --git a/static/images/ranking/listblue05.png b/static/images/ranking/listblue05.png
new file mode 100644
index 0000000..108f031
Binary files /dev/null and b/static/images/ranking/listblue05.png differ
diff --git a/static/images/ranking/listblue06.png b/static/images/ranking/listblue06.png
new file mode 100644
index 0000000..e674a33
Binary files /dev/null and b/static/images/ranking/listblue06.png differ
diff --git a/static/images/ranking/listblue07.png b/static/images/ranking/listblue07.png
new file mode 100644
index 0000000..64ad47e
Binary files /dev/null and b/static/images/ranking/listblue07.png differ
diff --git a/static/images/ranking/listblue08.png b/static/images/ranking/listblue08.png
new file mode 100644
index 0000000..5ef726e
Binary files /dev/null and b/static/images/ranking/listblue08.png differ
diff --git a/static/images/ranking/listblue09.png b/static/images/ranking/listblue09.png
new file mode 100644
index 0000000..f053434
Binary files /dev/null and b/static/images/ranking/listblue09.png differ
diff --git a/static/images/ranking/listred01.png b/static/images/ranking/listred01.png
new file mode 100644
index 0000000..6d696ed
Binary files /dev/null and b/static/images/ranking/listred01.png differ
diff --git a/static/images/ranking/listred02.png b/static/images/ranking/listred02.png
new file mode 100644
index 0000000..92de0a4
Binary files /dev/null and b/static/images/ranking/listred02.png differ
diff --git a/static/images/ranking/listred03.png b/static/images/ranking/listred03.png
new file mode 100644
index 0000000..92a1677
Binary files /dev/null and b/static/images/ranking/listred03.png differ
diff --git a/static/images/ranking/qa-bg.png b/static/images/ranking/qa-bg.png
new file mode 100644
index 0000000..b627f17
Binary files /dev/null and b/static/images/ranking/qa-bg.png differ
diff --git a/static/images/ranking/qa-box.png b/static/images/ranking/qa-box.png
new file mode 100644
index 0000000..906be26
Binary files /dev/null and b/static/images/ranking/qa-box.png differ
diff --git a/static/images/seach-empt.png b/static/images/seach-empt.png
new file mode 100644
index 0000000..1dd95b1
Binary files /dev/null and b/static/images/seach-empt.png differ
diff --git a/static/images/show-bg.png b/static/images/show-bg.png
new file mode 100644
index 0000000..eb0d754
Binary files /dev/null and b/static/images/show-bg.png differ
diff --git a/static/images/tabbar/home0.png b/static/images/tabbar/home0.png
index 92c36cc..c3c852d 100644
Binary files a/static/images/tabbar/home0.png and b/static/images/tabbar/home0.png differ
diff --git a/static/images/tabbar/home1.png b/static/images/tabbar/home1.png
index f0e9f2c..382436c 100644
Binary files a/static/images/tabbar/home1.png and b/static/images/tabbar/home1.png differ
diff --git a/static/images/tabbar/my0.png b/static/images/tabbar/my0.png
index 0f92666..a640292 100644
Binary files a/static/images/tabbar/my0.png and b/static/images/tabbar/my0.png differ
diff --git a/static/images/tabbar/my1.png b/static/images/tabbar/my1.png
index 748a107..a7d1d51 100644
Binary files a/static/images/tabbar/my1.png and b/static/images/tabbar/my1.png differ
diff --git a/static/images/tabbar/new0.png b/static/images/tabbar/new0.png
new file mode 100644
index 0000000..e7c99c5
Binary files /dev/null and b/static/images/tabbar/new0.png differ
diff --git a/static/images/tabbar/new1.png b/static/images/tabbar/new1.png
new file mode 100644
index 0000000..e650c17
Binary files /dev/null and b/static/images/tabbar/new1.png differ
diff --git a/static/images/tabbar/plus.png b/static/images/tabbar/plus.png
new file mode 100644
index 0000000..21a7c8b
Binary files /dev/null and b/static/images/tabbar/plus.png differ
diff --git a/static/images/tabbar/study0.png b/static/images/tabbar/study0.png
index 39ecfc2..f04830a 100644
Binary files a/static/images/tabbar/study0.png and b/static/images/tabbar/study0.png differ
diff --git a/static/images/tabbar/study1.png b/static/images/tabbar/study1.png
index c2e9a00..26862ef 100644
Binary files a/static/images/tabbar/study1.png and b/static/images/tabbar/study1.png differ
diff --git a/static/images/triangle.png b/static/images/triangle.png
new file mode 100644
index 0000000..779c34e
Binary files /dev/null and b/static/images/triangle.png differ
diff --git a/static/images/ubbgimg.png b/static/images/ubbgimg.png
new file mode 100644
index 0000000..37c91b6
Binary files /dev/null and b/static/images/ubbgimg.png differ
diff --git a/static/images/wenhao.png b/static/images/wenhao.png
new file mode 100644
index 0000000..f29ab91
Binary files /dev/null and b/static/images/wenhao.png differ
diff --git a/store/getters.js b/store/getters.js
index 3f27b38..4d6ed6f 100644
--- a/store/getters.js
+++ b/store/getters.js
@@ -4,5 +4,6 @@ const getters = {
studyTab: state => state.study.studyTab,
userMsg:state => state.user.msg,
isOneStady:state => state.user.isOneStady,
+ sysTypeMap:state => state.sysType.sysTypeMap,
}
export default getters
diff --git a/store/index.js b/store/index.js
index 3c1809d..aaf33cb 100644
--- a/store/index.js
+++ b/store/index.js
@@ -4,6 +4,7 @@ import user from './modules/user'
import resource from './modules/resource'
import study from './modules/study'
import getters from './getters'
+import sysType from './modules/sysType'
Vue.use(Vuex)
@@ -12,7 +13,8 @@ const store = new Vuex.Store({
modules: {
user,
resource,
- study
+ study,
+ sysType
},
getters
})
diff --git a/store/modules/sysType.js b/store/modules/sysType.js
new file mode 100644
index 0000000..3b52588
--- /dev/null
+++ b/store/modules/sysType.js
@@ -0,0 +1,94 @@
+import {getToken} from '@/utils/token'
+import apiType from '../../api/modules/type.js'
+
+const state={
+ sysTypeTree: [], //内容类型
+ sysTypeMap:null
+ }
+
+const mutations={
+ setSysTypeTree: (state, tree) => {
+ state.sysTypeTree = tree
+ },
+ setSysTypeMap: (state, map) => {
+ state.sysTypeMap = map
+ },
+ }
+ const actions={
+ getSysTypeTree({commit}) {
+ return new Promise((resolve,reject)=>{
+ if(state.sysTypeTree.length>0){
+ resolve(state.sysTypeTree);
+ }else{
+ let hasData = sessionStorage.getItem('sysTypeTree');
+ if(hasData){
+ let treeData = JSON.parse(hasData);
+ commit('setSysTypeTree', treeData);
+ resolve(treeData);
+ }else{
+ apiType.tree(1).then(res=>{
+ if(res.status === 200) {
+ sessionStorage.setItem('sysTypeTree',JSON.stringify(res.result));
+ commit('setSysTypeTree', res.result);
+ //转化为map放到状态中
+ let map=new Map();
+ res.result.forEach(item=>{
+ map.set(item.id, item.name);
+ if(item.children && item.children!=''){
+ item.children.forEach(child=>{
+ map.set(child.id, child.name);
+ if(child.children && child.children!=''){
+ child.children.forEach(last=>{
+ map.set(last.id, last.name);
+ })
+ }
+ })
+ }
+ });
+ commit('setSysTypeMap', map);
+ resolve(res.result)
+ } else {
+ reject('资源归属获取失败!');
+ }
+ })
+ }
+ }
+ });
+ },
+ loadSysTypes(context){
+ if(state.sysTypeMap==null){
+ let hasData = sessionStorage.getItem('sysTypeMap');
+ if(hasData){
+ hasData=JSON.parse(hasData);
+ }
+ if(hasData && hasData.length>10){
+ let map=new Map();
+ hasData.forEach(item=>{
+ map.set(item.id, item.name);
+ });
+ context.commit('setSysTypeMap',map);
+ }else{
+ apiType.list(1,'').then(res=>{
+ if(res.status === 200) {
+ let map=new Map();
+ res.result.forEach(item=>{
+ map.set(item.id, item.name);
+ });
+ //console.log(map,map);
+ sessionStorage.setItem('sysTypeMap',JSON.stringify(res.result));
+ context.commit('setSysTypeMap', map);
+ } else {
+ console.log('内容分类获取失败!');
+ }
+ });
+ }
+ }
+ }
+}
+
+export default {
+ namespaced: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/uni_modules/uview-ui/components/u-toast/u-toast.vue b/uni_modules/uview-ui/components/u-toast/u-toast.vue
index f194830..41708a3 100644
--- a/uni_modules/uview-ui/components/u-toast/u-toast.vue
+++ b/uni_modules/uview-ui/components/u-toast/u-toast.vue
@@ -97,7 +97,8 @@
const style = {
justifyContent: 'center',
alignItems: 'center',
- display: 'flex'
+ display: 'flex',
+ zIndex: 100090 // 添加比u-popup高的层级
}
// 将遮罩设置为100%透明度,避免出现灰色背景
style.backgroundColor = 'rgba(0, 0, 0, 0)'
diff --git a/utils/study.js b/utils/study.js
index 8c885d4..5d39856 100644
--- a/utils/study.js
+++ b/utils/study.js
@@ -3,7 +3,7 @@ const studyDurationKey='xus_duration';
const studyVideoSpeedKey='xus_video_speed';
const studyVideoKeyPre='xus_video';
-
+/**保存播放速度*/
const setVideoSpeed=function(speed){
uni.setStorageSync(studyVideoSpeedKey,speed);
}
diff --git a/utils/tools.js b/utils/tools.js
index 162ad11..f6f53a0 100644
--- a/utils/tools.js
+++ b/utils/tools.js
@@ -32,7 +32,7 @@ export function getCourseType(type) {
21: '直播课',
20: '录播课',
30: '面授课',
- 40: '混合式',
+ 40: '学习项目',
};
return maps[type];
}
@@ -200,3 +200,67 @@ export function userAvatarText(text) {
}
return text;
}
+/**截取机构名称路径namePath最后两段,不包含第一个 */
+export const cutOrgNamePath = (namePath) => {
+ let newName=namePath;
+ if(newName){
+ let names=newName.split('/');
+ let len=names.length;
+ //使用最后两们
+ if(len>1){
+ //newName=names[len-2]+'/'+names[len-1];
+ newName=names[1];
+ }
+ }
+ return newName;
+};
+/**
+ * 将秒转换成小时
+ * @author wn
+ * @date 2022.10.18
+ * @param {Object} second 秒
+ * @@return 小时
+ */
+export function formatSecondToHour(second) {
+ var n = 1; // 保留小数位
+ second = Number(second);
+ var h = second / 3600;
+ h = h.toFixed(n);
+ if(isNaN(h)){
+ h = 0;
+ }
+ return h;
+}
+// 秒换成时分秒
+export function getHMS(time) {
+ const hour = parseInt(time / 3600) < 10 ? '0' + parseInt(time / 3600) : parseInt(time / 3600)
+ const min = parseInt(time % 3600 / 60) < 10 ? '0' + parseInt(time % 3600 / 60) : parseInt(time % 3600 / 60)
+ const sec = parseInt(time % 3600 % 60) < 10 ? '0' + parseInt(time % 3600 % 60) : parseInt(time % 3600 % 60)
+ return hour + ':' + min + ':' + sec
+}
+
+/**格式化人数的文档 ,学习人数,关注人数等*/
+export function formatUserNumber(num) {
+ let rsNum =0;
+ if(num<5){return num;}
+ if(num>=5 && num<= 10){return 10 +"+";}
+ if(num<=94){
+ rsNum=Math.round((num)/10)*10;
+ return rsNum+'+';
+ }
+ if(num>94 && num <= 1000){
+ rsNum=Math.round((num)/100)*100;
+ return rsNum+'+';
+ }
+ if(num>1000 && num <= 10000){
+ rsNum=Math.round((num)/1000)*1000;
+ return rsNum+'+';
+ }
+ if(num>10000){
+ // rsNum=Math.round((num)/10000)*10000;
+ // return rsNum+'+';
+ rsNum=Math.round((num)/10000);
+ return rsNum+'W+';
+ }
+ return num;
+}
diff --git a/utils/xajax.js b/utils/xajax.js
index afd92d3..b2661c6 100644
--- a/utils/xajax.js
+++ b/utils/xajax.js
@@ -1,5 +1,5 @@
import config from '../config/index.js'
-import {getToken} from '@/utils/token.js'
+import {getToken,removeToken} from '@/utils/token.js'
import qs from 'qs'
const ReLoginUrl="/login";
@@ -33,6 +33,7 @@ const formRequest=function(method,url,data){
success:function(rs,statusCode){
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
@@ -40,7 +41,8 @@ const formRequest=function(method,url,data){
// #endif
// #ifdef H5
//window.open(loginPath)
- location.href=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({
@@ -82,6 +84,7 @@ const jsonRequest=function(method,url,data){
success:function(rs,statusCode){
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
@@ -89,7 +92,8 @@ const jsonRequest=function(method,url,data){
// #endif
// #ifdef H5
//window.open(loginPath)
- location.href=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({