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 _openid = ''; if(typeof g_openid !== 'undefined'){ _openid = g_openid; } if(!_openid){ _openid = session.get("openid"); } //是否已经绑定 var isBind = function(){ var defer = $q.defer(); var token = getToken(); if(token && token.length>10){ defer.resolve(token); } else { getOpenId().then(function(openid){ return $http.post( config.apiUrl+ 'users/isbind', {openid: openid} ) }).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 getOpenId = function() { var deferred = $q.defer(); console.log(_openid); if (typeof _openid !== 'undefined' && _openid && _openid.length > 0){ deferred.resolve(_openid); } else { var code = window.g_code || $routeParams.code || session.get("code"); $http({ url: '/wechat/get_open_id', data: {code: code}, method: 'POST' }).then(function successCallback(response) { if(response.data.status != 0){ deferred.reject(response.data.message); } else{ _openid = response.data.openid; //session.save("openid", _openid); deferred.resolve(_openid); } }, function errorCallback(response) { deferred.reject(response); }); } return deferred.promise; }; var openid = function(){ return _openid; }; var getToken = function(){ return session.get("token"); } return {isBind: isBind, token: getToken, openid: getOpenId}; }]); 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', function($http, auth, $routeParams){ 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 = addCommonPraise; args.scope.decreasePraise = decreaseCommonPraise; } return {init: init, addCommonReply: addCommonReply, loadCommonData: loadCommonData, addCommonPraise: addCommonPraise, decreaseCommonPraise: decreaseCommonPraise}; }]);