message.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. ;
  2. var helpSuggestion = new Vue({
  3. el: "#dashboard",
  4. mixins: [noticeMixin,cmSysVitaMixins],
  5. data: {
  6. btnLoading: false,
  7. isRequset:true,
  8. mssageTabBarIndex:0,
  9. mssageTabBar: [
  10. {messageType: '',text: '全部消息',bages:0},
  11. {messageType: 1,text: '交易物流',bages:0},
  12. {messageType: 2,text: '账户通知',bages:0},
  13. {messageType: 3,text: '服务通知',bages:0},
  14. {messageType: 4,text: '优惠促销',bages:0},
  15. ],
  16. allCount:0,
  17. listQuery: {
  18. source: 1,
  19. commonId: 0,
  20. messageType: '',
  21. pageNum: 1,
  22. pageSize: 10
  23. },
  24. noMore:false,
  25. listRecord: 0,
  26. pageInput: '1',
  27. degree:'',
  28. isCheckedAll:false,
  29. messagesList:[],//消息列表
  30. check:false,
  31. checklist:[],
  32. msgId:'',
  33. },
  34. filters: {
  35. NumBadge: function (n) {//处理
  36. var num = '';
  37. if (n > 100) {
  38. num = 99
  39. } else {
  40. num = n;
  41. }
  42. return num;
  43. }
  44. },
  45. computed: {
  46. pageTotal: function () {
  47. var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
  48. return total > 0 ? total : 1;
  49. },
  50. showPageBtn: function () {
  51. var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
  52. total = total > 0 ? total : 1;
  53. var index = this.listQuery.pageNum, arr = [];
  54. if (total <= 6) {
  55. for (var i = 1; i <= total; i++) {
  56. arr.push(i);
  57. }
  58. return arr;
  59. }
  60. if (index <= 3) return [1, 2, 3, 4, 5, 0, total];
  61. if (index >= total - 2) return [1, 0, total - 4, total - 3, total - 2, total - 1, total];
  62. return [1, 0, index - 2, index - 1, index, index + 1, index + 2, 0, total];
  63. }
  64. },
  65. methods: {
  66. toPagination: function (pageNum) {//点击切换分页
  67. if (pageNum <= this.pageTotal) {
  68. this.listQuery.pageNum = pageNum;
  69. this. getAuthClubMessageList();
  70. }
  71. },
  72. checkNum: function () {//输入跳转分页
  73. if (this.pageInput > this.pageTotal) {
  74. this.pageInput = this.pageTotal;
  75. } else if (this.pageInput < 1) {
  76. this.pageInput = 1;
  77. }
  78. },
  79. changeTabsFn:function(index,messageType){//点击Tab切换消息通知
  80. this.mssageTabBarIndex = index;
  81. this.listQuery.messageType = messageType;
  82. this.listQuery.pageNum = 1;
  83. this.messagesList = [];
  84. this. getAuthClubMessageList();
  85. },
  86. getAuthClubMessageCount:function(){//查询tabs数量
  87. var _self = this;
  88. UserApi.getAuthClubMessageCount({commonId:_self.listQuery.commonId},function (response) {
  89. var data = response.data;
  90. _self.mssageTabBar[0].bages = _self.allCount = data.count;
  91. _self.mssageTabBar[1].bages = data.tradeCount;
  92. _self.mssageTabBar[2].bages = data.account;
  93. _self.mssageTabBar[3].bages = data.notificationCount;
  94. _self.mssageTabBar[4].bages = data.promotionCount;
  95. })
  96. },
  97. getAuthClubMessageList:function(){
  98. var _self = this;
  99. UserApi.getAuthClubMessageList(_self.listQuery,function (response) {
  100. if(response.code == 0){
  101. _self.isRequset = false;
  102. _self.isCheckedAll = false;
  103. var data = response.data;
  104. if (data.list.length>0){
  105. if(isPC){
  106. _self.messagesList = data.list.map(function (el) {
  107. el.check = false
  108. return el;
  109. });
  110. }else{
  111. var list = data.list.map(function (el) {
  112. el.check = false
  113. return el;
  114. });
  115. _self.messagesList = _self.messagesList.concat(list);
  116. }
  117. _self.listRecord = data.total;
  118. _self.requestFlag = true;
  119. }else {
  120. _self.requestFlag = false;
  121. _self.listRecord = data.total;
  122. }
  123. }else{
  124. CAIMEI.Alert(response.msg, '确定', false);
  125. _self.requestFlag = false;
  126. }
  127. })
  128. },
  129. checkedContains(arr, val) {// 校验
  130. return arr.some(item => item === val)
  131. },
  132. checkedItemFn:function(item){ //单选
  133. var _self = this;
  134. if(event.target.checked){
  135. if(!_self.checkedContains(_self.checklist,item.id)){
  136. _self.checklist.push(item.id);
  137. }
  138. }else {
  139. _self.checklist.splice(_self.checklist.indexOf(item.id), 1);
  140. }
  141. _self.msgId = _self.checklist.toString()+','
  142. if(_self.checklist.length==_self.messagesList.length){
  143. _self.isCheckedAll=true;
  144. }else {
  145. _self.isCheckedAll=false;
  146. }
  147. },
  148. checkedAllFn: function () { //全選
  149. var _self = this;
  150. _self.isCheckedAll = !_self.isCheckedAll;
  151. if (_self.isCheckedAll) {
  152. _self.checklist = [];
  153. _self.messagesList.forEach(function (item) {
  154. item.check = true;
  155. _self.checklist.push(item.id);
  156. _self.msgId = _self.checklist.toString()+','
  157. })
  158. }else{
  159. _self.messagesList.forEach(function(item){
  160. item.check = false;
  161. });
  162. _self.checklist = [];
  163. _self.msgId = ''
  164. }
  165. },
  166. deleteMessageFn: function(){//删除消息
  167. var _this =this;
  168. if(this.allCount === 0){
  169. CAIMEI.dialog('暂无消息');
  170. }else if(_this.checklist.length==0){
  171. CAIMEI.dialog('请勾选未读消息');
  172. }else{
  173. UserApi.authDeleteMessage({id:_this.msgId},function (res) {
  174. if (res.code==0){
  175. CAIMEI.dialog('刪除成功');
  176. setTimeout(function (){
  177. _this.getAuthClubMessageList();
  178. },500)
  179. }else {
  180. CAIMEI.Alert(res.msg, '确定', false);
  181. }
  182. })
  183. }
  184. },
  185. signMessageFn: function(){//标记为已读
  186. var _this =this;
  187. console.log(_this.checklist);
  188. console.log(_this.msgId);
  189. if(this.allCount === 0){
  190. CAIMEI.dialog('暂无未读消息');
  191. }else if(_this.checklist.length==0){
  192. CAIMEI.dialog('请勾选未读消息');
  193. }else {
  194. UserApi.authUpdateRead({userType:1,Id:_this.msgId},function (res) {
  195. if(res.code==0){
  196. CAIMEI.dialog('标记已读成功');
  197. setTimeout(function (){
  198. _this.getAuthClubMessageCount();
  199. _this.getAuthClubMessageList();
  200. },500)
  201. }else {
  202. CAIMEI.Alert(res.msg, '确定', false);
  203. }
  204. })
  205. }
  206. }
  207. },
  208. mounted: function () {
  209. var _self=this;
  210. if(globalUserData){
  211. this.listQuery.commonId = globalUserData.clubId;
  212. this.getAuthClubMessageCount()
  213. this.getAuthClubMessageList();
  214. }
  215. if(!isPC){
  216. $('footer').addClass("noneImportant");
  217. //移动端上垃加载更多
  218. $(window).on('scroll', function(){
  219. var scrollTop = $(this).scrollTop();
  220. var scrollHeight = $(document).height();
  221. var windowHeight = window.innerHeight;
  222. if (scrollTop + windowHeight >= scrollHeight) {
  223. //此处是滚动条到底部时候触发的事件,在这里写要加载的数据,或者是拉动滚动条的操作
  224. var totalPage = Math.ceil(_self.listRecord / _self.listQuery.pageSize)?Math.ceil(_self.listRecord / _self.listQuery.pageSize):1;
  225. var next = _self.listQuery.pageNum+1;
  226. if(next <= totalPage){
  227. if (_self.requestFlag){
  228. _self.listQuery.pageNum = next;
  229. // 获取列表数据
  230. _self.getAuthClubMessageList();
  231. }
  232. _self.requestFlag = false;
  233. }else{
  234. //到底了
  235. _self.noMore = true;
  236. $('footer').removeClass("noneImportant");
  237. }
  238. }
  239. });
  240. }
  241. }
  242. });