index.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. import {
  2. ApiModel
  3. } from "../../utils/api";
  4. const _Http = new ApiModel();
  5. const handleList = require("../../utils/processingData")
  6. Page({
  7. /**
  8. * 页面的初始数据
  9. */
  10. data: {
  11. //轮播图列表
  12. swiperBannerList: [],
  13. liveList: [], //云展会直播大厅
  14. showLiveList: [], //显示直播列表
  15. liveClassifyList: [], //直播分类
  16. liveSelectClassify: '全部', //直播分类选择
  17. agentList: [], //热门展商
  18. showAgentList: [], //显示热门展商
  19. agentClassifyList: [], //热门展商分类
  20. agentSelectClassify: '全部', //展商分类选择
  21. prodList: [], //热门展品
  22. fagentcount: null, //展示商
  23. flivecount: null, //正在直播
  24. ftotalcustcount: null, //观众总数
  25. showDownIndex: -1, //显示下拉下标
  26. },
  27. /**
  28. * 生命周期函数--监听页面加载
  29. */
  30. onLoad: function (options) {
  31. let data = {
  32. "classname": "publicmethod.live.live",
  33. "method": "getLiveChannelData",
  34. "content": {
  35. "tactivityid": options.id,
  36. "siteid":"BWJ"
  37. }
  38. }
  39. /* 云展会直播大厅 */
  40. _Http.basic(data).then(res => {
  41. if (res.msg != "成功") {
  42. wx.showToast({
  43. title: '直播大厅加载失败,请重新进入页面',
  44. icon: "error",
  45. duration: 5000
  46. })
  47. } else {
  48. let data = JSON.parse(JSON.stringify(res.data.tlivelist));
  49. const ClassifyList = this.setClassifyList(data);
  50. const liveList = handleList.twoDimensionalArr(data, 4, 10);
  51. this.setData({
  52. liveList: res.data.tlivelist,
  53. showLiveList: liveList,
  54. liveClassifyList: ClassifyList,
  55. fagentcount: res.data.fagentcount,
  56. flivecount: res.data.flivecount,
  57. ftotalcustcount: res.data.ftotalcustcount
  58. })
  59. }
  60. });
  61. /* 热门展商 */
  62. data.method = "agentList";
  63. _Http.basic(data).then(res => {
  64. if (res.msg != "成功") {
  65. wx.showToast({
  66. title: '热门展商加载失败,请重新进入页面',
  67. icon: "error",
  68. duration: 5000
  69. })
  70. } else {
  71. data = JSON.parse(JSON.stringify(res.data));
  72. const classifyList = this.setClassifyList(data);
  73. const List = handleList.twoDimensionalArr(data, 4, 10);
  74. this.setData({
  75. agentList: res.data,
  76. showAgentList: List,
  77. agentClassifyList: classifyList
  78. })
  79. }
  80. });
  81. /* 热门展品 */
  82. data.method = "prodList";
  83. _Http.basic(data).then(res => {
  84. if (res.msg != "成功") {
  85. wx.showToast({
  86. title: '热门展品加载失败,请重新进入页面',
  87. icon: "error",
  88. duration: 5000
  89. })
  90. } else {
  91. const prodList = handleList.twoDimensionalArr(res.data, 6, 10);
  92. this.setData({
  93. prodList,
  94. })
  95. }
  96. });
  97. /* 获取轮播图 */
  98. const bannerList = getApp().globalData.bannerDataList.filter(value => value.flocation == 'activity_head');
  99. this.setData({
  100. swiperBannerList: bannerList[0].banner
  101. });
  102. },
  103. /* 分类 */
  104. setClassifyList(data) {
  105. let List = [];
  106. for (let i = 0; i < data.length; i++) {
  107. const cur = data[i].flocationclass
  108. if (cur != null && cur != undefined && cur != '' && cur != [] && cur != {}) List.push(cur)
  109. };
  110. let arr = List.reduce((pre, cur) => {
  111. if (!pre.includes(cur)) {
  112. return pre.concat(cur)
  113. } else {
  114. return pre
  115. }
  116. }, [])
  117. arr.unshift('全部');
  118. return arr
  119. },
  120. /* 直播大厅搜索 */
  121. searchBlur(e) {
  122. const {
  123. value
  124. } = e.detail;
  125. const va = value.trim();
  126. let data = JSON.parse(JSON.stringify(this.data.liveList));
  127. if (this.data.liveSelectClassify == '全部') {
  128. if (va == '') {
  129. this.setData({
  130. showLiveList: handleList.twoDimensionalArr(data, 4, 10)
  131. })
  132. } else {
  133. let arrList = data.filter(item => {
  134. let arr = [];
  135. for (let i in item) {
  136. if (item[i] != null || item[i] != undefined) arr.push(item[i])
  137. }
  138. if (arr.includes(va)) {
  139. return item
  140. }
  141. });
  142. this.setData({
  143. showLiveList: handleList.twoDimensionalArr(arrList, 4, 10)
  144. })
  145. }
  146. } else {
  147. let cList = data.filter(item => item.flocationclass == this.data.liveSelectClassify),
  148. list = cList;
  149. if (va != '') {
  150. list = cList.filter(item => {
  151. let arr = [];
  152. for (let i in item) {
  153. if (item[i] != null || item[i] != undefined) arr.push(item[i])
  154. }
  155. if (arr.includes(va)) {
  156. return item
  157. }
  158. })
  159. }
  160. this.setData({
  161. showLiveList: handleList.twoDimensionalArr(list, 4, 10)
  162. })
  163. }
  164. },
  165. /* 显示下拉 */
  166. showPullDown(e) {
  167. const {
  168. index
  169. } = e.target.dataset;
  170. if (this.data.showDownIndex == index) return this.setData({
  171. showDownIndex: -1
  172. });
  173. this.setData({
  174. showDownIndex: index
  175. })
  176. },
  177. /* 关闭 */
  178. closeTheDropDown() {
  179. this.setData({
  180. showDownIndex: -1
  181. })
  182. },
  183. /* 选择分类 */
  184. modeSelect(e) {
  185. const {
  186. name,
  187. index
  188. } = e.target.dataset;
  189. if (this.data.showDownIndex == 1) {
  190. let list = JSON.parse(JSON.stringify(this.data.liveList));
  191. if (name == '全部') {
  192. var List = list;
  193. } else {
  194. var List = list.filter(value => value.flocationclass == name);
  195. };
  196. var liveList = handleList.twoDimensionalArr(List, 4, 10);
  197. //直播大厅
  198. this.setData({
  199. showDownIndex: -1,
  200. liveSelectClassify: name,
  201. showLiveList: liveList
  202. });
  203. } else {
  204. //热门展商
  205. let list = JSON.parse(JSON.stringify(this.data.agentList));
  206. if (name == '全部') {
  207. var List = list;
  208. } else {
  209. var List = list.filter(value => value.flocationclass == name);
  210. };
  211. var agentList = handleList.twoDimensionalArr(List, 4, 10);
  212. this.setData({
  213. showDownIndex: -1,
  214. agentSelectClassify: name,
  215. showAgentList: agentList
  216. });
  217. }
  218. },
  219. /**
  220. * 生命周期函数--监听页面初次渲染完成
  221. */
  222. onReady: function () {
  223. },
  224. /**
  225. * 生命周期函数--监听页面显示
  226. */
  227. onShow: function () {
  228. },
  229. /**
  230. * 生命周期函数--监听页面隐藏
  231. */
  232. onHide: function () {
  233. },
  234. /**
  235. * 生命周期函数--监听页面卸载
  236. */
  237. onUnload: function () {
  238. },
  239. /**
  240. * 页面相关事件处理函数--监听用户下拉动作
  241. */
  242. onPullDownRefresh: function () {
  243. },
  244. /**
  245. * 页面上拉触底事件的处理函数
  246. */
  247. onReachBottom: function () {
  248. },
  249. /**
  250. * 用户点击右上角分享
  251. */
  252. onShareAppMessage: function () {
  253. }
  254. })