|
- 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, beforeReply, cb){
- if(!data.comment || data.comment.length<=0){
- return;
- }
-
- var temp = data.comment.replace(/\n/g,'<br/>');
-
- if(typeof beforeReply==='function'){
- temp = beforeReply(temp);
- }
-
- var userInfo = {
- type: type,
- content: temp,
- token: auth.token(),
- reply_type:reply_type
- };
- //回复按钮禁用
- data.disabled = true;
-
- console.log(userInfo);
-
- $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, args.beforeReplay, 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};
- }]);
|