app.factory('alertService', function(){ function Alert(){ this.title = null; this.message = null; this.visible = null; this.cb = null; } Alert.prototype.showMessage = function(title, msg, cb){ this.message = msg; this.title = title; this.visible = true; this.cb = cb; } Alert.prototype.dismiss = function(){ this.message = null; this.title = null; this.visible = false; if(this.cb) {this.cb();} } return { create: function(){ return new Alert(); } } }); 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 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', function($http, auth, $routeParams,rms){ var addCommonReply = function(id, type, data, cb){ if(!data.comment || data.comment.length<=0){ return; } var temp = data.comment.replace(/\n/g,'
'); 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(); } }, function errorCallback(response) { }); }; var loadCommonData = function(id, type){ return $http({ method: 'GET', url: apiUrl+ type + "/" + id+"?token="+auth.token() }) }; 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){ loadCommonData(id, args.type).then(function successCallback(response) { args.loadCallback(response.data); }, function errorCallback(response) { }); }; loadData(args.id); args.scope.addReply = function(data){ console.log(data.comment); addCommonReply(args.id, args.replyType, data, function(){ args.scope.formData = {comment: ''}; loadData(args.id); 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); }; } return {init: init, addCommonReply: addCommonReply, loadCommonData: loadCommonData, addCommonPraise: addCommonPraise, decreaseCommonPraise: decreaseCommonPraise}; }]);