495 lines
18 KiB
JavaScript
495 lines
18 KiB
JavaScript
app.factory('alertService', function(){
|
||
function Alert(){
|
||
this.title = null;
|
||
this.message = null;
|
||
this.visible = null;
|
||
this.cb = null;
|
||
this.invite = "";
|
||
}
|
||
|
||
Alert.prototype.showMessage = function(title, msg, cb){
|
||
this.message = msg;
|
||
this.title = title;
|
||
this.visible = true;
|
||
this.cb = cb;
|
||
this.invite = "";
|
||
}
|
||
|
||
Alert.prototype.dismiss = function(){
|
||
this.message = null;
|
||
this.title = null;
|
||
this.visible = false;
|
||
this.invite = "";
|
||
if(this.cb) {this.cb();}
|
||
}
|
||
|
||
return {
|
||
create: function(){
|
||
return new Alert();
|
||
}
|
||
}
|
||
});
|
||
|
||
app.factory('wx', ['$window', function($window){
|
||
var wechat = $window.wx;
|
||
return wechat;
|
||
}]);
|
||
|
||
app.factory('auth', ['$http','$routeParams', '$q', 'session', 'config',function($http,$routeParams, $q, session,config){
|
||
//是否已经绑定
|
||
var isBind = function(){
|
||
var defer = $q.defer();
|
||
|
||
var token = getToken();
|
||
if(token && token.length>10){
|
||
defer.resolve(token);
|
||
} else {
|
||
var code = window.g_code || $routeParams.code || session.get("code");
|
||
$http.post(
|
||
'/wechat/get_bind',
|
||
{} ///不用传code了,都由服务器来处理
|
||
).then(function(response){
|
||
if(response.data.status!=0){
|
||
defer.reject(response.data.message);
|
||
}else {
|
||
session.save("token", response.data.token);
|
||
defer.resolve(response.data.token);
|
||
}
|
||
}).catch(function(e){
|
||
defer.reject(e);
|
||
});
|
||
}
|
||
|
||
return defer.promise;
|
||
}
|
||
|
||
var getToken = function(){
|
||
return 'token';//session.get("token");
|
||
}
|
||
return {get_bind: isBind, token: getToken};
|
||
}]);
|
||
|
||
app.factory("session", function(){
|
||
return {
|
||
save: function(key,value){
|
||
sessionStorage.setItem(key,value);
|
||
},
|
||
get: function(key){
|
||
return sessionStorage.getItem(key);
|
||
}
|
||
}
|
||
});
|
||
|
||
app.factory('rms', function(){
|
||
var _saveStorage = {};
|
||
var save = function(key, value){
|
||
_saveStorage[key] = value;
|
||
};
|
||
|
||
var get = function(key){
|
||
return _saveStorage[key];
|
||
};
|
||
|
||
return {save: save, get: get};
|
||
});
|
||
|
||
app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$location', function($http, auth, $routeParams,rms,config,wx,$location){
|
||
var addCommonReply = function(id, type, data,args,reply_type, cb){
|
||
//先判断有没有绑定
|
||
// $http.post(
|
||
// '/wechat/is_bind',
|
||
// {} ///不用传code了,都由服务器来处理
|
||
// ).then(function(response){
|
||
// console.log(response.data);
|
||
// if(response.data.status != 0){
|
||
// $location.path("/login_tip");
|
||
// }
|
||
// });
|
||
|
||
if(!data.comment || data.comment.length<=0){
|
||
return;
|
||
}
|
||
|
||
var temp = data.comment.replace(/\n/g,'<br/>');
|
||
|
||
var userInfo = {
|
||
type: type,
|
||
content: temp,
|
||
token: auth.token(),
|
||
reply_type:reply_type
|
||
};
|
||
//回复按钮禁用
|
||
data.disabled = true;
|
||
|
||
$http({
|
||
method: 'POST',
|
||
url: apiUrl+ "new_comment/"+id,
|
||
data: userInfo
|
||
}).then(function successCallback(response) {
|
||
//alert("提交成功");
|
||
//数据提交完成,回复按钮启用
|
||
console.log(response);
|
||
if(response.data.status == -1){
|
||
console.log("回复失败!");
|
||
data.comment = "";
|
||
if(response.data.tip == 0){
|
||
args.scope.replytip = "您不是该私有班级成员,不能回复";
|
||
}
|
||
else{
|
||
args.scope.replytip = "您不是该私有项目成员,不能回复";
|
||
}
|
||
return;
|
||
}
|
||
|
||
data.disabled = false;
|
||
if(typeof cb === 'function'){
|
||
cb(response.data.subscribe);
|
||
}
|
||
|
||
var act_id = response.data.act_id;
|
||
|
||
//保证内外回复数一致
|
||
activities = rms.get("activities") || [];
|
||
course_activities = rms.get("course_activities") || [];
|
||
project_activities = rms.get("project_activities") || [];
|
||
for(var i in activities){
|
||
if(activities[i].act_id == act_id){
|
||
activities[i].reply_count += 1;
|
||
break;
|
||
}
|
||
}
|
||
for(var i in course_activities){
|
||
if(course_activities[i].act_id == act_id){
|
||
course_activities[i].reply_count += 1;
|
||
break;
|
||
}
|
||
}
|
||
for(var i in project_activities){
|
||
if(project_activities[i].act_id == act_id){
|
||
project_activities[i].reply_count += 1;
|
||
break;
|
||
}
|
||
}
|
||
rms.save("activities",activities);
|
||
rms.save("course_activities",course_activities);
|
||
rms.save("project_activities",project_activities);
|
||
|
||
}, function errorCallback(response) {
|
||
});
|
||
};
|
||
|
||
// var loadCommonData = function(id, type,replytype,page){
|
||
// return $http({
|
||
// method: 'GET',
|
||
// url: apiUrl+ type + "/" + id+"?token="+auth.token(),
|
||
// })
|
||
// };
|
||
|
||
var loadCommonData = function(id, type,replytype,page){
|
||
return $http({
|
||
method: 'POST',
|
||
url: apiUrl+ type + "/" + id,
|
||
dataType: 'jsonp',
|
||
data:{token:auth.token(),type:replytype,page:page}
|
||
})
|
||
};
|
||
|
||
var addCommonPraise = function(act){
|
||
// act.praise_count += 1;
|
||
// act.has_praise = true;
|
||
|
||
$http({
|
||
method: 'POST',
|
||
url: apiUrl + "praise/" + act.act_id,
|
||
data:{token:auth.token(),type:act.act_type}
|
||
}).then(function successCallback(response) {
|
||
console.log(response.data);
|
||
}, function errorCallback(response) {
|
||
});
|
||
|
||
};
|
||
|
||
var decreaseCommonPraise = function(act){
|
||
// act.praise_count -= 1;
|
||
// act.has_praise = false;
|
||
$http({
|
||
method: 'POST',
|
||
url: apiUrl + "praise/" + act.act_id,
|
||
data:{token:auth.token(),type:act.act_type}
|
||
}).then(function successCallback(response) {
|
||
console.log(response.data);
|
||
}, function errorCallback(response) {
|
||
});
|
||
};
|
||
|
||
var init = function(args){
|
||
args.scope.replytip = "输入回复内容~";
|
||
// args.scope.formData = {comment: ''};
|
||
var loadData = function(id,replytype,page){
|
||
loadCommonData(id, args.type,replytype,page).then(function successCallback(response) {
|
||
console.log(response.data);
|
||
if(response.data.status == -1){
|
||
args.loadCallback(response.data);
|
||
return;
|
||
}
|
||
//--------------分享内容定制-------------
|
||
var tmptile = "分享动态";
|
||
var imgUrl = "";
|
||
|
||
if(response.data.data.title){
|
||
tmptile = response.data.data.title;
|
||
}
|
||
|
||
var tmpname = "匿名用户";
|
||
|
||
if(response.data.data.user){
|
||
tmpname = response.data.data.user.realname;
|
||
imgUrl = window.g_localhost+response.data.data.user.img_url;
|
||
}
|
||
|
||
if(response.data.data.author){
|
||
tmpname = response.data.data.author.realname;
|
||
imgUrl = window.g_localhost+response.data.data.author.img_url;
|
||
}
|
||
|
||
var desc = ""
|
||
if(response.data.data.content){
|
||
desc = response.data.data.content.replace(/<[^>]+>/gi,"").replace(/[\f\n\r\t\v]/gi,"").replace(/ /gi,"");
|
||
}
|
||
|
||
if(response.data.data.description){
|
||
desc = response.data.data.description.replace(/<[^>]+>/gi,"").replace(/[\f\n\r\t\v]/gi,"").replace(/ /gi,"");
|
||
}
|
||
|
||
if(desc.length > 30){
|
||
desc = desc.substring(0,30)+"...";
|
||
}
|
||
|
||
var title = tmpname+":"+tmptile;
|
||
console.log("desc = "+desc);
|
||
console.log("imgUrl= "+imgUrl);
|
||
|
||
var link = "";
|
||
|
||
if(args.urlName == "discussion"){
|
||
var urlName = response.data.type_name + "_discussion";
|
||
link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+window.g_appid +
|
||
"&redirect_uri="+window.g_localhost+"/wechat/user_activities?id="+response.data.data.act_id+
|
||
"&response_type=code&scope=snsapi_userinfo&state="+urlName+"&connect_redirect=1#wechat_redirect";
|
||
}
|
||
else{
|
||
link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+window.g_appid +
|
||
"&redirect_uri="+window.g_localhost+"/wechat/user_activities?id="+response.data.data.act_id+
|
||
"&response_type=code&scope=snsapi_userinfo&state="+args.urlName+"&connect_redirect=1#wechat_redirect";
|
||
}
|
||
|
||
// if(args.urlName == "discussion"){
|
||
// var urlName = response.data.type_name + "_discussion";
|
||
// link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d" +
|
||
// "&redirect_uri=https://test.forge.trustie.net/wechat/user_activities?id="+response.data.data.act_id+
|
||
// "&response_type=code&scope=snsapi_base&state="+urlName+"&connect_redirect=1#wechat_redirect";
|
||
// }
|
||
// else{
|
||
// link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d" +
|
||
// "&redirect_uri=https://test.forge.trustie.net/wechat/user_activities?id="+response.data.data.act_id+
|
||
// "&response_type=code&scope=snsapi_base&state="+args.urlName+"&connect_redirect=1#wechat_redirect";
|
||
// }
|
||
|
||
console.log("link= "+link);
|
||
|
||
wxConfig(title,desc,imgUrl,link);
|
||
|
||
//--------------分享内容定制-------------
|
||
args.loadCallback(response.data);
|
||
}, function errorCallback(response) {
|
||
});
|
||
};
|
||
|
||
loadData(args.id,0,0);
|
||
args.scope.addReply = function(data,reply_type){
|
||
console.log(data.comment);
|
||
addCommonReply(data.act_id, args.replyType, data,args,reply_type, function(subscribe){
|
||
// args.scope.formData = {comment: ''};
|
||
if(subscribe == 0){
|
||
$location.path("/login_tip");
|
||
return;
|
||
}
|
||
else{
|
||
loadData(args.id,0,0);
|
||
}
|
||
|
||
if(typeof args.replyCallback === 'function'){
|
||
args.replyCallback();
|
||
}
|
||
});
|
||
};
|
||
|
||
args.scope.inputfocus = function(data){
|
||
data.notshow = true;
|
||
};
|
||
|
||
args.scope.inputblur = function(data){
|
||
data.notshow = false;
|
||
};
|
||
|
||
args.scope.clickReply = function(act_id,data) {
|
||
allchidren = data.all_children;
|
||
for(var i in allchidren){
|
||
if(allchidren[i].act_id != act_id ){
|
||
allchidren[i].showinput = false;
|
||
}
|
||
else{
|
||
allchidren[i].showinput = !allchidren[i].showinput;
|
||
data.notshow = allchidren[i].showinput;
|
||
}
|
||
}
|
||
};
|
||
|
||
// 动态详情界面点赞与动态界面的数据要同步 保证进入详情点赞后出来显示一致
|
||
args.scope.addPraise = function(act){
|
||
activities = rms.get("activities") || [];
|
||
course_activities = rms.get("course_activities") || [];
|
||
project_activities = rms.get("project_activities") || [];
|
||
for(var i in activities){
|
||
if(activities[i].act_id == act.act_id){
|
||
activities[i].praise_count += 1;
|
||
activities[i].has_praise = true;
|
||
break;
|
||
}
|
||
}
|
||
for(var i in course_activities){
|
||
if(course_activities[i].act_id == act.act_id){
|
||
course_activities[i].praise_count += 1;
|
||
course_activities[i].has_praise = true;
|
||
break;
|
||
}
|
||
}
|
||
for(var i in project_activities){
|
||
if(project_activities[i].act_id == act.act_id){
|
||
project_activities[i].praise_count += 1;
|
||
project_activities[i].has_praise = true;
|
||
break;
|
||
}
|
||
}
|
||
rms.save("activities",activities);
|
||
rms.save("course_activities",course_activities);
|
||
rms.save("project_activities",project_activities);
|
||
|
||
act.praise_count += 1;
|
||
act.has_praise = true;
|
||
addCommonPraise(act);
|
||
};
|
||
|
||
args.scope.decreasePraise = function(act){
|
||
activities = rms.get("activities") || [];
|
||
course_activities = rms.get("course_activities") || [];
|
||
project_activities = rms.get("project_activities") || [];
|
||
for(var i in activities){
|
||
if(activities[i].act_id == act.act_id){
|
||
activities[i].praise_count -= 1;
|
||
activities[i].has_praise = false;
|
||
break;
|
||
}
|
||
}
|
||
for(var i in course_activities){
|
||
if(course_activities[i].act_id == act.act_id){
|
||
course_activities[i].praise_count -= 1;
|
||
course_activities[i].has_praise = false;
|
||
break;
|
||
}
|
||
}
|
||
for(var i in project_activities){
|
||
if(project_activities[i].act_id == act.act_id){
|
||
project_activities[i].praise_count -= 1;
|
||
project_activities[i].has_praise = false;
|
||
break;
|
||
}
|
||
}
|
||
rms.save("activities",activities);
|
||
rms.save("course_activities",course_activities);
|
||
rms.save("project_activities",project_activities);
|
||
|
||
act.praise_count -= 1;
|
||
act.has_praise = false;
|
||
decreaseCommonPraise(act);
|
||
};
|
||
|
||
args.scope.showMoreReply = function(replytype,data){
|
||
if(!data.page){
|
||
data.page = 1;
|
||
}
|
||
else{
|
||
data.page = data.page + 1;
|
||
}
|
||
|
||
loadCommonData(data.id, args.type,replytype,data.page).then(function successCallback(response) {
|
||
args.loadCallback(response.data);
|
||
}, function errorCallback(response) {
|
||
});
|
||
};
|
||
|
||
args.scope.commentreply_path = config.rootPath+ 'templates/comment_reply.html';
|
||
|
||
};
|
||
|
||
var wxConfig = function(title,desc,imgUrl,link){
|
||
|
||
if(title == null || title == ""){
|
||
title = 'Trustie创新实践平台';
|
||
}
|
||
|
||
if(desc == null || desc == ""){
|
||
desc = 'Trustie创新实践平台';
|
||
}
|
||
|
||
if(imgUrl == null || imgUrl == ""){
|
||
imgUrl = window.g_localhost+'/images/wechat/wx_logo.jpg';
|
||
}
|
||
|
||
wx.ready(function(){
|
||
wx.onMenuShareTimeline({
|
||
title: title, // 分享标题
|
||
link: link, // 分享链接
|
||
imgUrl: imgUrl, // 分享图标
|
||
success: function () {
|
||
console.log("share successed.");
|
||
},
|
||
cancel: function () {
|
||
console.log("share canceled.");
|
||
}
|
||
});
|
||
|
||
wx.onMenuShareAppMessage({
|
||
title: title, // 分享标题
|
||
desc: desc, // 分享描述
|
||
link: link, // 分享链接
|
||
// imgUrl: '', // 分享图标
|
||
imgUrl: imgUrl, // 分享图标
|
||
// type: '', // 分享类型,music、video或link,不填默认为link
|
||
// dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
|
||
success: function () {
|
||
// 用户确认分享后执行的回调函数
|
||
},
|
||
cancel: function () {
|
||
// 用户取消分享后执行的回调函数
|
||
}
|
||
});
|
||
});
|
||
};
|
||
|
||
var checkLogin = function(){
|
||
$http.post(
|
||
'/wechat/is_bind',
|
||
{} ///不用传code了,都由服务器来处理
|
||
).then(function(response){
|
||
console.log(response.data);
|
||
if(response.data.status != 0){
|
||
$location.path("/login");
|
||
return;
|
||
}
|
||
});
|
||
};
|
||
|
||
return {init: init, addCommonReply: addCommonReply, loadCommonData: loadCommonData, addCommonPraise: addCommonPraise, decreaseCommonPraise: decreaseCommonPraise, wxConfig: wxConfig, checkLogin: checkLogin};
|
||
}]);
|