socialforge/public/javascripts/wechat/others/factory.js

395 lines
13 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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', function($http, auth, $routeParams,rms,config,wx){
var addCommonReply = function(id, type, data, cb){
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()
};
//回复按钮禁用
data.disabled = true;
$http({
method: 'POST',
url: apiUrl+ "new_comment/"+id,
data: userInfo
}).then(function successCallback(response) {
//alert("提交成功");
//数据提交完成,回复按钮启用
data.disabled = false;
if(typeof cb === 'function'){
cb();
}
//保证内外回复数一致
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 == id){
activities[i].reply_count += 1;
break;
}
}
for(var i in course_activities){
if(course_activities[i].act_id == id){
course_activities[i].reply_count += 1;
break;
}
}
for(var i in project_activities){
if(project_activities[i].act_id == 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.formData = {comment: ''};
var loadData = function(id,replytype,page){
loadCommonData(id, args.type,replytype,page).then(function successCallback(response) {
console.log(response.data);
//--------------分享内容定制-------------
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(/<[^>]+>/g,"").replace(/\s*/g,"").replace(/&nbsp;/g,"");
}
if(response.data.data.description){
desc = response.data.data.description.replace(/<[^>]+>/g,"").replace(/\s*/g,"").replace(/&nbsp;/g,"");
}
if(desc.length > 30){
desc = desc.substring(0,30)+"...";
}
var title = tmpname+""+tmptile;
console.log("desc = "+desc);
console.log("imgUrl= "+imgUrl);
wxConfig(title,desc,imgUrl);
//--------------分享内容定制-------------
args.loadCallback(response.data);
}, function errorCallback(response) {
});
};
loadData(args.id,0,0);
args.scope.addReply = function(data){
console.log(data.comment);
addCommonReply(args.id, args.replyType, data, function(){
args.scope.formData = {comment: ''};
loadData(args.id,0,0);
if(typeof args.replyCallback === 'function'){
args.replyCallback();
}
});
};
// 动态详情界面点赞与动态界面的数据要同步 保证进入详情点赞后出来显示一致
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){
if(title == null || title == ""){
title = 'Trustie创新实践平台';
}
if(desc == null || desc == ""){
desc = 'Trustie创新实践平台';
}
if(imgUrl == null || imgUrl == ""){
imgUrl = 'http://www.trustie.net/images/logo2.png';
}
wx.ready(function(){
wx.onMenuShareTimeline({
title: title, // 分享标题
// link: 'http://www.trustie.net/', // 分享链接
imgUrl: imgUrl, // 分享图标
success: function () {
console.log("share successed.");
},
cancel: function () {
console.log("share canceled.");
}
});
wx.onMenuShareAppMessage({
title: title, // 分享标题
desc: desc, // 分享描述
// link: '', // 分享链接
// imgUrl: '', // 分享图标
imgUrl: imgUrl, // 分享图标
// type: '', // 分享类型,music、video或link不填默认为link
// dataUrl: '', // 如果type是music或video则要提供数据链接默认为空
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
});
};
return {init: init, addCommonReply: addCommonReply, loadCommonData: loadCommonData, addCommonPraise: addCommonPraise, decreaseCommonPraise: decreaseCommonPraise, wxConfig: wxConfig};
}]);