index.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. const pageInit = {},
  2. _Http = getApp().globalData.http;
  3. Page({
  4. data: {
  5. PageCur: 'Home',
  6. collectCount: "", //购物车商品数量
  7. },
  8. onLoad(options) {
  9. if (options.PageCur) this.setData({
  10. PageCur: options.PageCur
  11. })
  12. this.refreshData();
  13. this.getCollectCount();
  14. getApp().globalData.getCollectCount = this.getCollectCount.bind(this);
  15. },
  16. /**
  17. * 更新站点信息
  18. * 主要用来渲染首页的banner和宫格
  19. */
  20. refreshData() {
  21. let page = this.selectComponent("#Home");
  22. if (page && wx.getStorageSync('userauth').length != 0) {
  23. let authList = {},
  24. entrance = [{
  25. label: "E-订单",
  26. appid: "wxc1b6ae925ac1d06a",
  27. icon: "work-E-dingdan",
  28. list: getedd()
  29. }];
  30. //E订单
  31. function getedd() {
  32. let paths = [{
  33. name: "商城",
  34. PageCur: "Market",
  35. icon: "work-shangcheng"
  36. }, {
  37. name: "销售订单",
  38. path: "/packageA/orderForm/index",
  39. icon: "work-dingdan"
  40. }, {
  41. name: "账户",
  42. path: "/packageA/account/index",
  43. icon: "work-zhanghu"
  44. }, {
  45. name: "促销活动",
  46. path: "/packageA/activity/index",
  47. icon: "work-cuxiaohuodong"
  48. }, {
  49. name: "购物车",
  50. PageCur: "Collect",
  51. icon: "work-gouwuche"
  52. }, {
  53. name: "打款凭证",
  54. path: "/packageA/remitVoucher/index",
  55. icon: "work-dakuanpingzheng"
  56. }, {
  57. name: "退返申请",
  58. path: "/packageA/returnOne/index",
  59. icon: "work-shujuchaxun"
  60. }, {
  61. name: "发货单",
  62. path: "/packageA/dispatchBill/index",
  63. icon: "icon-shouhuo"
  64. }];
  65. let edd = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ["E-订单"], ["商品档案", "销售管理", "财务管理", "售后管理", "发货与库存", "业绩查询"]),
  66. list = [];
  67. edd.forEach(v => {
  68. v.apps.forEach(s => {
  69. authList[s.name] = {
  70. options: s.meta.auth.map(a => a.option),
  71. optionnames: s.meta.auth.map(a => a.optionname),
  72. }
  73. if (authList[s.name].options.some(s => s == "read")) {
  74. let i = paths.findIndex(k => k.name == s.meta.title);
  75. if (i != -1) {
  76. paths[i].index = i;
  77. list.push(paths[i])
  78. }
  79. }
  80. })
  81. });
  82. return dye(list.sort((a, b) => a.index - b.index))
  83. };
  84. //染色
  85. function dye(list) {
  86. let colorList = [{
  87. color: "#3874F6",
  88. bColor: "#F0F3FF",
  89. }, {
  90. color: "#5AB73F",
  91. bColor: "#F4FAEF",
  92. }, {
  93. color: "#F29C37",
  94. bColor: "#FCF6EF",
  95. }, {
  96. color: "#EB4B5C",
  97. bColor: "#FDF1ED",
  98. }, {
  99. color: "#3874F6",
  100. bColor: "#F0F3FF",
  101. }, {
  102. color: "#F29C37",
  103. bColor: "#FCF6EF",
  104. }, {
  105. color: "#EB4B5C",
  106. bColor: "#FDF1ED",
  107. }, {
  108. color: "#3874F6",
  109. bColor: "#F0F3FF",
  110. }, {
  111. color: "#5AB73F",
  112. bColor: "#F4FAEF",
  113. }, {
  114. color: "#F29C37",
  115. bColor: "#FCF6EF",
  116. }, {
  117. color: "#5AB73F",
  118. bColor: "#F4FAEF",
  119. }, {
  120. color: "#3874F6",
  121. bColor: "#F0F3FF",
  122. }, {
  123. color: "#F29C37",
  124. bColor: "#FCF6EF",
  125. }, {
  126. color: "#EB4B5C",
  127. bColor: "#FDF1ED",
  128. }, {
  129. color: "#5AB73F",
  130. bColor: "#F4FAEF",
  131. }];
  132. return list.map((v, i) => {
  133. return {
  134. ...v,
  135. ...colorList[i > colorList.length - 1 ? i - colorList.length : i]
  136. }
  137. })
  138. };
  139. wx.setStorageSync('auth', authList)
  140. let banner = wx.getStorageSync('banner_list').find(v => v.location == "index_top");
  141. page.setData({
  142. entrance,
  143. bannerList: banner ? banner.ads : []
  144. });
  145. pageInit.Home = true;
  146. } else {
  147. setTimeout(this.refreshData, 10);
  148. return;
  149. }
  150. },
  151. /**
  152. * 更新购物车数量
  153. */
  154. getCollectCount() {
  155. return _Http.basic({
  156. "id": 20220927093202,
  157. "content": {}
  158. }).then(res => {
  159. console.log("购物车数量", res)
  160. getApp().globalData.collectCount = res.data.num;
  161. pageInit.Collect = false;
  162. this.setData({
  163. collectCount: res.data.num
  164. })
  165. return res.data.num;
  166. });
  167. },
  168. /**
  169. * 切换页面
  170. */
  171. NavChange(e) {
  172. this.cutBar({
  173. detail: e.currentTarget.dataset.cur
  174. })
  175. },
  176. /**
  177. * 切换bar
  178. */
  179. cutBar({
  180. detail
  181. }) {
  182. if (!pageInit[detail]) {
  183. let page = this.selectComponent("#" + detail);
  184. page && page.init();
  185. pageInit[detail] = true;
  186. }
  187. this.setData({
  188. PageCur: detail
  189. })
  190. }
  191. })