index.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. //index.js
  2. //获取应用实例
  3. const api = require('../../utils/o2Api.js');
  4. const firstId = '(0)';
  5. const defaultPageSize = 15;
  6. Page({
  7. data: {
  8. bannerList:[],
  9. swiperIndex: 0,
  10. currentTab: 'news', //当前列表是信息中心还是办公中心: news | tasks
  11. page: 1, // 分页查询
  12. lastId: firstId,
  13. //文章列表,信息中心和办公中心的数据
  14. /**
  15. {
  16. id: '',
  17. title: '这里是一个新闻标题',
  18. type: '【新闻通知】',
  19. date: '2020-09-10',
  20. tag: 'news'
  21. }
  22. **/
  23. articleList:[]
  24. },
  25. onLoad: function () {
  26. this.loadHotNews();
  27. },
  28. onShow: function() {
  29. this.loadArticleList(true);
  30. },
  31. // 滚动图片数据请求
  32. loadHotNews: function() {
  33. api.hotPicList().then(list => {
  34. // url前端拼接
  35. let newList = [];
  36. for (let i = 0; i < list.length; i++) {
  37. let element = list[i];
  38. element.newUrl = this.hotPicUrl(element.picId);
  39. newList.push(element);
  40. }
  41. this.setData({
  42. bannerList: newList
  43. })
  44. }).catch(err => {
  45. api.o2Error(err)
  46. })
  47. },
  48. // 滚动图片url拼接
  49. hotPicUrl: function(picId) {
  50. return api.hotPicUrl(picId)
  51. },
  52. loadArticleList: function(isRefresh) {
  53. if (this.data.currentTab == 'news') {
  54. this.loadNews(isRefresh);
  55. }else if (this.data.currentTab == 'tasks') {
  56. this.loadTasks(isRefresh);
  57. }
  58. },
  59. //查询办公中心数据
  60. loadTasks: function(isRefresh) {
  61. var lastId = this.data.lastId;
  62. if (isRefresh) {
  63. this.data.lastId = firstId;
  64. lastId = firstId;
  65. }
  66. api.taskList(lastId, defaultPageSize).then(list => {
  67. if (isRefresh) {
  68. this.data.articleList = [];
  69. }
  70. if (list && list.length > 0) {
  71. var taskList = [];
  72. list.forEach(function(v) {
  73. var obj = {
  74. id: v.work, //work id
  75. title: v.title == '' ? '无标题' : v.title,
  76. type: '【'+v.processName+'】',
  77. date: v.startTime.length > 9 ? v.startTime.substring(0, 10) : v.startTime,
  78. tag: 'tasks'
  79. };
  80. taskList.push(obj);
  81. });
  82. this.data.articleList.push(...taskList);
  83. var lastId = list[list.length-1].id;
  84. this.setData({
  85. articleList: this.data.articleList,
  86. lastId: lastId
  87. });
  88. }else {
  89. this.setData({
  90. articleList: this.data.articleList
  91. });
  92. }
  93. wx.stopPullDownRefresh();
  94. }).catch(err => {
  95. api.o2Error(err);
  96. wx.stopPullDownRefresh();
  97. })
  98. },
  99. //查询信息中心数据
  100. loadNews: function(isRefresh) {
  101. let param = {
  102. orderField: '',
  103. statusList: ['published'],
  104. justData: true,
  105. };
  106. if (isRefresh) {
  107. this.data.page = 1;
  108. } else {
  109. this.data.page++;
  110. }
  111. api.cmsDocumentFilterListNew(this.data.page, defaultPageSize, param).then(list => {
  112. if (isRefresh) {
  113. this.data.articleList = [];
  114. }
  115. if (list && list.length > 0) {
  116. var newList = [];
  117. list.forEach(function(v) {
  118. var obj = {
  119. id: v.id,
  120. title: v.title == '' ? '无标题' : v.title,
  121. type: '【'+v.categoryName+'】',
  122. date: v.publishTime.length > 9 ? v.publishTime.substring(0, 10) : v.publishTime,
  123. tag: 'news'
  124. };
  125. newList.push(obj);
  126. });
  127. this.data.articleList.push(...newList);
  128. this.setData({
  129. articleList: this.data.articleList,
  130. });
  131. }else {
  132. this.setData({
  133. articleList: this.data.articleList
  134. });
  135. }
  136. wx.stopPullDownRefresh();
  137. }).catch(err => {
  138. api.o2Error(err);
  139. wx.stopPullDownRefresh();
  140. })
  141. },
  142. swiperChange: function(event) {
  143. this.setData({
  144. swiperIndex: event.detail.current
  145. })
  146. },
  147. /**
  148. * 新建工作
  149. * @param event
  150. */
  151. bindTapAddProcess: function(event) {
  152. wx.navigateTo({
  153. url: '../progress/start-work'
  154. });
  155. },
  156. //点击滚动图片
  157. bindTapHotNews: function(event) {
  158. let index = event.currentTarget.dataset.index;
  159. let data = this.data.bannerList[index];
  160. if (data.application == 'BBS') { //论坛
  161. }else if (data.application == 'CMS') { //cms
  162. wx.navigateTo({
  163. url: '../cms/cms-web?id=' + data.infoId + '&title=' + encodeURIComponent(data.title)
  164. });
  165. }
  166. },
  167. //点击新闻或者任务
  168. bindTapArticle: function(event) {
  169. let index = event.currentTarget.dataset.index;
  170. let data = this.data.articleList[index];
  171. if (data.tag == 'news') { //cms
  172. wx.navigateTo({
  173. url: '../cms/cms-web?id=' + data.id + '&title=' + encodeURIComponent(data.title)
  174. });
  175. }else if (data.tag == 'tasks') { //待办
  176. wx.navigateTo({
  177. url: '../progress/work-web?work=' + data.id + '&title=' + encodeURIComponent(data.title)
  178. });
  179. }
  180. },
  181. //点击信息中心Tab
  182. bindTapInfoCenter: function(event) {
  183. if (this.data.currentTab == 'tasks') {
  184. this.setData({
  185. currentTab: 'news'
  186. });
  187. this.loadArticleList(true);
  188. }
  189. },
  190. //点击办公中心Tab
  191. bindTapTaskInfoCenter: function(event) {
  192. if (this.data.currentTab == 'news') {
  193. this.setData({
  194. currentTab: 'tasks'
  195. });
  196. this.loadArticleList(true);
  197. }
  198. },
  199. bindTapTaskList: function() {
  200. wx.navigateTo({
  201. url: '../progress/work-list?type=task',
  202. });
  203. },
  204. bindTapTaskCompletedList: function() {
  205. wx.navigateTo({
  206. url: '../progress/work-list?type=taskCompleted',
  207. });
  208. },
  209. bindTapReadList: function() {
  210. wx.navigateTo({
  211. url: '../progress/work-list?type=read',
  212. });
  213. },
  214. bindTapReadCompletedList: function() {
  215. wx.navigateTo({
  216. url: '../progress/work-list?type=readCompleted',
  217. });
  218. },
  219. /**
  220. * 页面相关事件处理函数--监听用户下拉动作
  221. */
  222. onPullDownRefresh: function() {
  223. // wx.showNavigationBarLoading()
  224. this.loadHotNews();
  225. this.loadArticleList(true);
  226. },
  227. /**
  228. * 页面上拉触底事件的处理函数
  229. */
  230. onReachBottom: function() {
  231. this.loadArticleList(false);
  232. },
  233. })