scienceCircleHomeCtrl.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. angular.module('push')
  2. .controller('scienceCircleHomeCtrl', function ($scope, $timeout, IMChatService, IMChatTempData, $rootScope, $ionicPopup, ScienceCircleService,ConfigService,UserService) {
  3. //TODO
  4. document.title='科技圈';
  5. if (UserService.defaultLan == 'English') {
  6. document.title = 'Technology Circle';
  7. }
  8. if($scope.app){
  9. $scope.setStatusBar(1);
  10. }
  11. $scope.comfromWeb=sessionStorage.comfrom=='web';
  12. //加载等待页
  13. $scope.isloadingPageFloor=false;
  14. //加载失败页
  15. $scope.isloadingPageFail=false;
  16. $scope.defaultLan = UserService.defaultLan;
  17. //进入获取数据
  18. $scope.$on('$ionicView.beforeEnter', function () {
  19. console.log("$ionicView.beforeEnter");
  20. });
  21. $scope.islogin = ConfigService.islogin;
  22. $scope.goLogin = function () {
  23. if (localStorage.wxFlag == "true") {
  24. if (localStorage.isUserFocusXW == 0) {
  25. var title = localStorage.appidStr;
  26. $ionicPopup.alert({
  27. title: '提示',
  28. template: '请先关注微信公众号"' + title + '"!'
  29. });
  30. } else {
  31. if (localStorage.isUserBindWx == 0) {
  32. var wxFlag = JSON.parse(localStorage.params);
  33. if (wxFlag.weChatModel) {
  34. $scope.go('bindPhone', {
  35. params: localStorage.params,
  36. comfrom: 'maincontroller',
  37. url: window.location.href.split('#/')[1]
  38. });
  39. } else {
  40. $scope.go('login');
  41. }
  42. } else {
  43. $scope.go('login');
  44. }
  45. }
  46. } else {
  47. $scope.go('login');
  48. }
  49. };
  50. // if(!$scope.islogin){
  51. // if (localStorage.wxFlag == "true") {
  52. // if (localStorage.isUserFocusXW == 0) {
  53. // var title = localStorage.appidStr;
  54. // $ionicPopup.alert({
  55. // title: '提示',
  56. // template: '请先关注微信公众号"' + title + '"!'
  57. // });
  58. // } else {
  59. // if (localStorage.isUserBindWx == 0) {
  60. // var wxFlag = JSON.parse(localStorage.params);
  61. // if (wxFlag.weChatModel) {
  62. // $scope.go('bindPhone', {
  63. // params: localStorage.params,
  64. // comfrom: 'maincontroller',
  65. // url: window.location.href.split('#/')[1]
  66. // });
  67. // } else {
  68. // $scope.go('login');
  69. // }
  70. // } else {
  71. // $scope.go('login');
  72. // }
  73. // }
  74. // } else {
  75. // $scope.go('login');
  76. // }
  77. // }
  78. $scope.keyfilter = {key: ""};
  79. $scope.tabflg = 0;// 0 聊天,1 通讯录,2 动态
  80. $scope.changeTab = function (flg) {
  81. $scope.tabflg = flg;
  82. };
  83. // 本页面所有消息提示初始化
  84. $rootScope.msgBadge = "";//底部Tab页签新消息标志
  85. $scope.dynamicmsgflg = false;//动态新消息标志
  86. $scope.chatmsgflg = false;//聊天新消息标志
  87. $scope.contactmsgflg = false;//通讯录新消息标志
  88. //获取会话列表
  89. var getConversationList = function () {
  90. $scope.isloadingPageFloor=true;
  91. ScienceCircleService.getConversationList().then(function (response) {
  92. console.log(response);
  93. $scope.conversationList = response;
  94. $scope.isloadingPageFloor=false;
  95. $scope.isloadingPageFail=false;
  96. if (angular.isDefined(response) && response.length > 0) {
  97. handleNewMessage(1, []);
  98. }
  99. }, function () {
  100. $scope.isloadingPageFloor=false;
  101. $scope.isloadingPageFail=true;
  102. })
  103. };
  104. getConversationList();
  105. $scope.repeatLoad = function () {
  106. $scope.isloadingPageFail=false;
  107. getConversationList();
  108. };
  109. $scope.doRefresh = function () {
  110. getConversationList();
  111. $scope.$broadcast('scroll.refreshComplete');
  112. };
  113. // 处理新消息 1:第一次加载处理,2:接收到新消息处理
  114. var handleNewMessage = function (flg, data) {
  115. if (flg == 1) {
  116. angular.forEach($scope.conversationList, function (value, index) {
  117. angular.forEach(IMChatTempData.msgdata, function (val, ind) {
  118. if (value.topicname == val.topic) {
  119. value.msgcount = val.msglist.length;
  120. var len = val.msglist.length - 1;
  121. value.messagelist[0] = val.msglist[len];
  122. }
  123. });
  124. })
  125. }
  126. if (flg == 2) {
  127. var topicindex = -1;
  128. angular.forEach($scope.conversationList, function (value, index) {
  129. if (value.topicname == data.topicname) {
  130. value.msgcount = angular.isDefined(value.msgcount) ? ++value.msgcount : 1;
  131. value.messagelist[0] = data;
  132. topicindex = index;
  133. }
  134. });
  135. // 当接收到的新消息 不在会话列表 则重新刷新会话列表
  136. if (topicindex == -1) {
  137. getConversationList();
  138. }
  139. }
  140. };
  141. //进入个人聊天页面
  142. $scope.goSingleModel = function (con) {
  143. IMChatTempData.clearMsgDataByTopic(con.topicname);
  144. $scope.go('singleChatMode', {
  145. "topicid": con.topicid,
  146. "topicname": con.topicname,
  147. "username": con.userModel.username,
  148. "reciverid": con.reciverid,
  149. "isfocus": con.isfocus
  150. });
  151. };
  152. //科技圈搜索
  153. $scope.goResourceSearch = function () {
  154. $timeout(function () {
  155. $scope.go('resourceSearch');
  156. }, 350);
  157. };
  158. //顶部添加
  159. $scope.chatAddFlag = false;
  160. $scope.goShow = function () {
  161. if(!$scope.islogin){
  162. if (localStorage.wxFlag == "true") {
  163. if (localStorage.isUserFocusXW == 0) {
  164. var title = localStorage.appidStr;
  165. $ionicPopup.alert({
  166. title: '提示',
  167. template: '请先关注微信公众号"' + title + '"!'
  168. });
  169. } else {
  170. if (localStorage.isUserBindWx == 0) {
  171. var wxFlag = JSON.parse(localStorage.params);
  172. if (wxFlag.weChatModel) {
  173. $scope.go('bindPhone', {
  174. params: localStorage.params,
  175. comfrom: 'maincontroller',
  176. url: window.location.href.split('#/')[1]
  177. });
  178. } else {
  179. $scope.go('login');
  180. }
  181. } else {
  182. $scope.go('login');
  183. }
  184. }
  185. } else {
  186. $scope.go('login');
  187. }
  188. }else {
  189. $timeout(function () {
  190. $scope.chatAddFlag = true;
  191. $(".tab_hide").show();
  192. }, 100);
  193. }
  194. };
  195. $scope.notGOShow = function () {
  196. $scope.chatAddFlag = false;
  197. $(".tab_hide").hide();
  198. };
  199. //进入通讯录
  200. $scope.goChatMailList = function () {
  201. if(!$scope.islogin){
  202. if (localStorage.wxFlag == "true") {
  203. if (localStorage.isUserFocusXW == 0) {
  204. var title = localStorage.appidStr;
  205. $ionicPopup.alert({
  206. title: '提示',
  207. template: '请先关注微信公众号"' + title + '"!'
  208. });
  209. } else {
  210. if (localStorage.isUserBindWx == 0) {
  211. var wxFlag = JSON.parse(localStorage.params);
  212. if (wxFlag.weChatModel) {
  213. $scope.go('bindPhone', {
  214. params: localStorage.params,
  215. comfrom: 'maincontroller',
  216. url: window.location.href.split('#/')[1]
  217. });
  218. } else {
  219. $scope.go('login');
  220. }
  221. } else {
  222. $scope.go('login');
  223. }
  224. }
  225. } else {
  226. $scope.go('login');
  227. }
  228. }else {
  229. $scope.go('chatMailList');
  230. }
  231. };
  232. //接收新信息
  233. $scope.$on("recMessagePrompt", function (event, data) {
  234. console.log(data);
  235. handleNewMessage(2, data)
  236. });
  237. // 通讯录搜索
  238. $scope.goSearchChatMail = function () {
  239. $scope.go('chatSearchModel');
  240. };
  241. // 添加好友
  242. $scope.addChatFriends = function () {
  243. $scope.go('addChatFriends');
  244. };
  245. //虚拟搜索框
  246. $scope.isShowSearchButton = true;
  247. $scope.showSearchButtonLeft = function () {
  248. $scope.isShowSearchButton = false;
  249. // $(".showSearchInput").focus();
  250. $timeout(function(){
  251. $(".showSearchInput").focus();
  252. },300)
  253. };
  254. //清空搜索内容
  255. $scope.clearSearch = function () {
  256. $scope.isShowSearchButton = true;
  257. $scope.keyfilter.key = "";
  258. };
  259. });